我想这样做: XML Schema How to Restrict Attribute by Enumeration
...但我有许多不同的属性,它们采用完全相同的值。这使我的XSD非常复杂。 我可以定义一次限制,然后以某种方式在每个属性上引用它
提前致谢。 :)
答案 0 :(得分:2)
如果您有许多不同的属性采用完全相同的值,只需重复使用属性类型定义:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
version="1.0">
<xs:simpleType name="colorType">
<xs:restriction base="xs:string">
<xs:enumeration value="red" />
<xs:enumeration value="green" />
<xs:enumeration value="blue" />
</xs:restriction>
</xs:simpleType>
<xs:element name="RoomColors">
<xs:complexType>
<xs:attribute name="wall" type="colorType"/>
<xs:attribute name="carpet" type="colorType"/>
<xs:attribute name="ceiling" type="colorType"/>
<xs:attribute name="funiture" type="colorType"/>
</xs:complexType>
</xs:element>
</xs:schema>
当价值不完全相同时,所涉及的创造力就会增加。请参阅Extend enumerated lists in XML schema。