0

我有一个名为“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>
4

2 回答 2

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>
于 2011-07-14T02:21:27.920 回答
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]*

于 2011-07-14T01:52:18.147 回答