通过XSD限制XML属性内容

时间:2011-03-27 10:19:50

标签: xml xsd types

我有类似的XML:

<sometag datatype="xs:string" .../>
<sometag datatype="xs:int" .../>

可以看出,属性“datatype”的内容应该引用基本的XML数据类型。目前我正在使用一些自定义的simpleType,如下所示:

<xs:simpleType name="contentDataType">
  <xs:restriction base="xs:string">
    <xs:enumeration value="string"/>
    <xs:enumeration value="int"/>
    <xs:enumeration value="boolean"/>
    <xs:enumeration value="float"/>
  </xs:restriction>
</xs:simpleType>

有没有办法通过XSD将内容限制为XML基本类型的名称?

1 个答案:

答案 0 :(得分:0)

XML数据类型的名称本身不是数据类型,因此您的枚举几乎是执行此操作的唯一方法 - 即正则表达式。无论哪种方式,您都需要提供基于字符串的限制,该限制仅允许值列表或仅允许这些值通过的过滤器。我只是为了清楚而选择枚举。