如何为单个XSD元素强制执行两种类型之一?

Dan*_*iuc 0 xml xsd choice

我有一个名为"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>
Run Code Online (Sandbox Code Playgroud)

Joh*_*ers 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>
Run Code Online (Sandbox Code Playgroud)