在下面的这个例子中,
<xs:complexType>
<xs:choice minOccurs="3" maxOccurs="unbounded">
<xs:element ref="Start"/>
<xs:element ref="Center"/>
<xs:element ref="End"/>
<xs:element ref="PI" minOccurs="0"/>
<xs:element ref="Feature" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
</xs:complexType>
Run Code Online (Sandbox Code Playgroud)
选择minOccurs> 1时会发生什么?这是否意味着元素"开始"可以发生3次?
Inf*_*nd' 12
选择minOccurs> 1时会发生什么?这是否意味着元素"开始"可以发生3次?
是的<Start>可以发生3次或更多次!将minOccurs选择为多于1允许元素集出现多次或不同元素多次出现.
详细说明:
在上面的例子中,你已经将minOccurs应用为3,<Choice>而将maxOccurs应用为无界!这意味着..下面列出的子元素<Choice>,其中任何三个或重复三次的任何标记应该出现在他们的父母之下!示例XML如下所示:
让我们假设这些标记集出现在一个名为<parent>then 的节点下:
<parent>
<Start>Start1</Start>
<Center>Center1</Center>
<End>End1</End>
</parent>
Run Code Online (Sandbox Code Playgroud)
- - - - 要么 - - - -
<parent>
<Center>Start1</Center>
<Center>Center1</Center>
<Feature>End1</Feature>
</parent>
Run Code Online (Sandbox Code Playgroud)
- - - - 要么 - - - -
<parent>
<Start>Start1</Start>
<Start>Start1</Start>
<Start>Start1</Start>
<Start>Start1</Start>
</parent>
Run Code Online (Sandbox Code Playgroud)
以上所有组合均有效!
但是你还为'PI'和'功能'定义了minOccurs ="0".
此添加导致Validator也传递没有子元素的父级.即:
<parent>
</parent>
Run Code Online (Sandbox Code Playgroud)
如果从这两个元素中删除minOccurs,则验证会强制您包含最少3个标记以包含在父元素下.
也有maxOccurs="unbounded"用于Feature元素是没有用的!如果您添加或取消它,行为将不会改变..
| 归档时间: |
|
| 查看次数: |
6226 次 |
| 最近记录: |