我正在创建一个xsd架构来支持以下xml结构:
<Switch code="enable'>
.....more..stuff.....
</Switch>
以下是在架构中声明它的方式
<xs:element name="Switch minOccurs="1" maxOccurs="1">
<xs:complexType>
................
<xs:attribute type="xs:string" name="Code" use="required"/>
</xs:complexType>
</xs:element>
现在,Switch代码的值只能是“启用”或“禁用”。在我的xsd架构中,我如何指定它只能是其中一个值?这是可能的还是我需要使用C#等编程语言来处理这个问题?
如果有人能帮助我,我将不胜感激。
谢谢,
答案 0 :(得分:2)
您可以在XML架构中定义枚举类型:
<xs:simpleType name="enableDisable">
<xs:restriction base="xs:string">
<xs:enumeration value="enable" />
<xs:enumeration value="disable" />
</xs:restriction>
</xs:simpleType>
使用此类型,您可以使用此类型而不是xs:string
作为属性
<xs:attribute type="enableDisable" name="Code" use="required"/>
(如果您的架构有targetNamespace
)
答案 1 :(得分:1)
请参阅Ian回答...或直接查看命名类型:
<xs:element name="Switch" minOccurs="1" maxOccurs="1">
<xs:complexType>
................
<xs:attribute name="Code" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="enable" />
<xs:enumeration value="disable" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>