Using Substitution Groups to Handle Choice Between Elements : substitutionGroup « XML Schema « XML Tutorial






<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  targetNamespace="http://www.java2s.com" 
  xmlns="http://www.java2s.com"
  elementFormDefault="qualified">

    <xs:element name = "Garment" type = "MyType" abstract="true" />
    <xs:element name = "TShirt" type = "MyType"  substitutionGroup = "Garment" />

    <xs:complexType name = "MyType">
       <xs:sequence>
          <xs:element name = "Quantity" type = "xs:string" />
          <xs:element name = "DesignNumber" type = "xs:integer" />
          <xs:element name = "Size" type = "clothesSizeType" />
       </xs:sequence>
    </xs:complexType>
       
    <xs:simpleType name="clothesSizeType">
       <xs:restriction base="xs:string">
          <xs:enumeration value="S" />
          <xs:enumeration value="M" />
          <xs:enumeration value="L" />
          <xs:enumeration value="XL" />
       </xs:restriction>
    </xs:simpleType>
</xs:schema>


File: Data.xml

<TShirt xmlns="http://www.java2s.com">
   <Quantity>100</Quantity>
   <DesignNumber>114</DesignNumber>
   <Size>S</Size>   
</TShirt>








3.94.substitutionGroup
3.94.1.Using Substitution Groups to Handle Choice Between Elements