我有以下XSD,我正在尝试添加一些修改。我想限制GroupType上的条目只允许单词“peer”和“child”。我已经在很多方面试过了restiction条款,但还没有让它工作。
为简洁起见,还删除了一些元素,但流程尚未更改。
任何帮助表示感谢。
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="AllMeta">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="WikiMeta">
<xs:complexType>
<xs:sequence>
<xs:element name="Groups">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="WikiGroup">
<xs:complexType>
<xs:sequence>
<xs:element name="GroupType" type="xs:string" minOccurs="1" maxOccurs="1" />
<xs:element name="Name" type="xs:string" minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
答案 0 :(得分:0)
我想将GroupType上的条目限制为仅允许单词“peer”和“child”
因此,您需要为元素提供带有枚举值的自定义type="xs:string"
,而不是simpleType
:
<xs:element name="GroupType" minOccurs="1" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="peer" />
<xs:enumeration value="child" />
</xs:restriction>
</xs:simpleType>
</xs:element>
如果您在其他地方需要相同的限制,那么您可以声明一个名为simpleType
的顶级,然后在xs:element
中按名称引用该类型。