我有一个名为“PRICE”的xml元素。
我想在这个字段中允许使用枚举值{MAX,MIN,UNAV}中的数字或其中一个。这可以用XSD吗?
此代码段演示了我想要的内容,但它无效:
<xs:choice>
<xs:element name="PRICE">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="MAX"/>
<xs:enumeration value="MIN"/>
<xs:enumeration value="UNAV"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="PRICE">
<xs:simpleType>
<xs:restriction base="xs:float"/>
</xs:simpleType>
</xs:element>
</xs:choice>
答案 0 :(得分:5)
<xs:element name="Price">
<xs:simpleType>
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="MAX"/>
<xs:enumeration value="MIN"/>
<xs:enumeration value="UNAV"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType>
<xs:restriction base="xs:float"/>
</xs:simpleType>
</xs:union>
</xs:simpleType>
</xs:element>
答案 1 :(得分:1)
你可以试试这样的事情
<xs:element name="PRICE">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="MAX|MIN|UNAV|\d+"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
编辑:
\d+
适用于整数,但对于浮点数,您可以使用[-+]?[0-9]*\.?[0-9]*