2012-07-31 119 views
2
的價值

考慮這個XSD:限制屬性值取決於另一個屬性

<?xml version="1.0" encoding="UTF-8"?> 

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="Test"> 
     <xs:complexType> 
      <xs:attribute name="X"> 
       <xs:simpleType> 
        <xs:restriction> 
         <xs:enumeration value="One"/> 
         <xs:enumeration value="Two"/> 
        </xs:restriction> 
       </xs:simpleType> 
      </xs:attribute> 
      <xs:attribute name="Y"> 
       <xs:simpleType> 
        <!-- Choose how to restrict the value based on the value of the X attribute. --> 
        <xs:restriction base="if X=One then List1 else List2"/> 
       </xs:simpleType> 
      </xs:attribute> 
     </xs:complexType> 
    </xs:element> 

    <xs:simpleType name="List1"> 
     <xs:restriction base="xs:string"> 
      <xs:enumeration value="Option1"/> 
      <xs:enumeration value="Option2"/> 
     </xs:restriction> 
    </xs:simpleType> 

    <xs:simpleType name="List2"> 
     <xs:restriction base="xs:string"> 
      <xs:enumeration value="Option3"/> 
      <xs:enumeration value="Option4"/> 
     </xs:restriction> 
    </xs:simpleType> 
</xs:schema> 

所以對於屬性Test/@Y,我想限制的基礎上Test/@X值的可能值。如果XOne,則Y必須在List1,否則,Y必須在List2。這可能嗎?

回答