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 に答える