我有两种复杂的类型,XML中的元素可以采用这两种类型中的任何一种。有时,我知道元素可以采用哪种类型。因此,我在XSD中定义。
RowNumber ------------- ID ------- value
1 ------------------- 001 ------- 1
2 ------------------- 001 ------- 1
3 ------------------- 001 ------- 1
4 ------------------- 002 ------- 1
5 ------------------- 002 ------- 0
6 ------------------- 003 ------- 1
7 ------------------- 003 ------- 1
8 --------------------004 ------- 1
9 -------------------- 004 ------- 0
10 ------------------- 004 ------- 1
但有时我没有,所以我创建了另一种类型,如<xs:complexType name="A">
<xs:sequence>
<xs:element name="one" type="onetype" minOccurs="0"
maxOccurs="1" />
<xs:element name="two" type="twotype" minOccurs="0"
maxOccurs="unbounded" />
<xs:element name="three" type="country" minOccurs="0"
maxOccurs="1" />
</xs:sequence>
<xs:attribute name="oneattr" type="xs:string" />
<xs:attribute name="twoattr" type="xs:string" />
</xs:complexType>
<xs:complexType name="B">
<xs:sequence>
<xs:element name="four" type="fourtype" minOccurs="0"
maxOccurs="1" />
</xs:sequence>
<xs:attribute name="fourattr" type="xs:string" />
</xs:complexType>
。
AorB
所以我的问题是:在<xs:complexType name="AorB">
<xs:choice>
<xs:sequence>
<xs:element name="one" type="onetype" minOccurs="0"
maxOccurs="1" />
<xs:element name="two" type="twotype" minOccurs="0"
maxOccurs="unbounded" />
<xs:element name="three" type="country" minOccurs="0"
maxOccurs="1" />
</xs:sequence>
<xs:sequence>
<xs:element name="four" type="fourtype" minOccurs="0"
maxOccurs="1" />
</xs:sequence>
</xs:choice>
<xs:attribute name="oneattr" type="xs:string" />
<xs:attribute name="twoattr" type="xs:string" />
<xs:attribute name="fourattr" type="xs:string" />
</xs:complexType>
内的两个序列中,当验证XML时,如果XML包含来自两个序列的元素或仅包含一个元素,它是否验证为真?
答案 0 :(得分:1)
type.nil?
需要一个或另一个验证XML时,如果XML包含,它是否验证为true 两个序列中的元素或只有一个?
xsd:choice
上的@minOccurs
默认值为xsd:choice
,这意味着子内容模型中的一个或另一个,而不是两者都适用。如果为值添加1
值 minOccurs="
大于"
或值等于{ {1}},然后允许多次出现其子项。但请注意,第二次出现可能是从第一次出现时选择的子项的重复。