在属性上使用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> 
+0

感谢托尼,我只需要在这种情况下使用它一次,但方便知道未来。 – nevermind 2012-01-13 18:16:54