在属性上使用XML Schemas中的限制基础
问题描述:
我需要对“是或否”属性进行限制 - 但不太确定如何构造它 - 我在下面尝试但不知道如何正确或错误它是:(建议将不胜感激)谢谢在属性上使用XML Schemas中的限制基础
<xs:element name="DistinctiveMarks">
<xs:ComplexType>
<xs:SimpleContent>
<xs:extension base="xs:string">
<xs:attribute name="present" type="xs:string">
<xs:restriction base="xs:string">
<xs:pattern value="yes|no"/>
</xs:restriction>
</xs:attribute>
</xs:extension>
</xs:SimpleContent>
</xs:ComplexType>
</xs:element>
答
这应该工作。如果你打算重用它,另一个选项是声明一个简单的类型。然后你可以做type = MY_YesNoType,如果你有一个名字空间前缀,就包含它。另一个可能适用的选项是使用枚举。很不错,如果你想挖掘xsd来建立一个数据录入的选项列表,而不是通过正则表达式来验证。
<xs:simpleType name="MY_YesNoType">
<xs:restriction base="xs:string">
<xs:enumeration value="no" />
<xs:enumeration value="yes" />
</xs:restriction>
</xs:simpleType>
感谢托尼,我只需要在这种情况下使用它一次,但方便知道未来。 – nevermind 2012-01-13 18:16:54