我对XSD schema
感到很困惑。我需要覆盖复选框(即每个元素有多个值)。见下文:
[1]
<xsd:element name="Parent">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="2" minOccurs="0" name="Children">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Child" type="xsd:string">
.
.
这意味着我们可以:
<parent>
<children>
<child />
</children>
<children>
<child />
</children>
</parent>
现在可以使用 <xsd:list>
来定义和实现相同的目标吗?
像这样:
<xsd:element name="Parent">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Children">
<xsd:simpleType>
<xsd:list>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Child 1"/>
<xsd:enumeration value="Child 2"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:list>
</xsd:simpleType>
</xsd:element>
所以,总的来说,我在xsd:list
和minOccurs/maxOccurs
之间有点困惑。
答案 0 :(得分:1)
xsd:list
元素定义了可能的值,而不是可能的子元素 - 您的第二个示例定义了一个元素Children
,该元素具有作为有效内容的空格分隔的字符串列表Child 1
和Child 2
- 即这样的XML:
<Parent>
<Children>Child 1</Children>
</Parent>
或
<Parent>
<Children>Child 2</Children>
</Parent>
或
<Parent>
<Children>Child 1 Child 2</Children>
</Parent>
另请注意,使用xsd:list
定义的列表中的值是以空格分隔的,因此它们不应包含空格。