XSD
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:annotation>
<xsd:documentation xml:lang="en">Item price at store</xsd:documentation>
</xsd:annotation>
<xsd:element name="Store" type="StoreType"/>
<xsd:element name="Address" type="USAddressType"/>
<xsd:element name="HomePage" type="HomePageType"/>
<xsd:simpleType name="valueRequired">
<xsd:restriction base="xsd:string">
<xsd:minLength value="1"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="positiveNumber">
<xsd:restriction base="xsd:float">
<xsd:minInclusive value="0"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="positiveNonZeroNumber">
<xsd:restriction base="xsd:float">
<xsd:minExclusive value="0"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="StoreType">
<xsd:sequence>
<xsd:element name="Name" type="valueRequired"/>
<xsd:element ref="Address" />
<xsd:element ref="HomePage" minOccurs="0"/>
<xsd:element name="Phone" type="xsd:string" />
<xsd:element name="Date" type="xsd:date" />
<xsd:element name="Items" type="ItemsType" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ItemsType">
<xsd:sequence>
<xsd:element name="Item" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Name" type="valueRequired" />
<xsd:element name="Category" type="valueRequired"/>
<xsd:element name="Quantity" type="positiveNonZeroNumber" />
<xsd:element name="Unit" type="valueRequired"/>
<xsd:element name="Price" type="positiveNumber"/>
<xsd:element name="Comment" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="USAddressType">
<xsd:sequence>
<xsd:element name="Address1" type="valueRequired"/>
<xsd:element name="Address2" type="xsd:string"/>
<xsd:element name="City" type="valueRequired"/>
<xsd:element name="State" type="USState"/>
<xsd:element name="ZipCode" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute name="country" type="xsd:NMTOKEN" fixed="US"/>
</xsd:complexType>
<xsd:complexType name="HomePageType">
<xsd:attribute name="URL" type="xsd:string"/>
</xsd:complexType>
<xsd:simpleType name="USState">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="AL"/><xsd:enumeration value="AK"/>
<xsd:enumeration value="AZ"/><xsd:enumeration value="AR"/>
<xsd:enumeration value="CA"/><xsd:enumeration value="CO"/>
<xsd:enumeration value="CT"/><xsd:enumeration value="DE"/>
<xsd:enumeration value="DC"/><xsd:enumeration value="FL"/>
<xsd:enumeration value="GA"/><xsd:enumeration value="HI"/>
<xsd:enumeration value="ID"/><xsd:enumeration value="IL"/>
<xsd:enumeration value="IN"/><xsd:enumeration value="IA"/>
<xsd:enumeration value="KS"/><xsd:enumeration value="KY"/>
<xsd:enumeration value="LA"/><xsd:enumeration value="ME"/>
<xsd:enumeration value="MD"/><xsd:enumeration value="MA"/>
<xsd:enumeration value="MI"/><xsd:enumeration value="MN"/>
<xsd:enumeration value="MS"/><xsd:enumeration value="MO"/>
<xsd:enumeration value="MT"/><xsd:enumeration value="NE"/>
<xsd:enumeration value="NV"/><xsd:enumeration value="NH"/>
<xsd:enumeration value="NJ"/><xsd:enumeration value="NM"/>
<xsd:enumeration value="NY"/><xsd:enumeration value="NC"/>
<xsd:enumeration value="ND"/><xsd:enumeration value="OH"/>
<xsd:enumeration value="OK"/><xsd:enumeration value="OR"/>
<xsd:enumeration value="PA"/><xsd:enumeration value="RI"/>
<xsd:enumeration value="SC"/><xsd:enumeration value="SD"/>
<xsd:enumeration value="TN"/><xsd:enumeration value="TX"/>
<xsd:enumeration value="UT"/><xsd:enumeration value="VT"/>
<xsd:enumeration value="VA"/><xsd:enumeration value="WA"/>
<xsd:enumeration value="WV"/><xsd:enumeration value="WI"/>
<xsd:enumeration value="WY"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
Sample XML
<Store>
<Name>CVS</Name>
<Address country="US">
<Address1>123 Main St</Address1>
<Address2></Address2>
<City>New York</City>
<State>NY</State>
<ZipCode>11106</ZipCode>
</Address>
<Phone></Phone>
<Date>21012-09-21</Date>
<Items>
<Item>
<Name>Folger Coffee</Name>
<Category>Coffee</Category>
<Quantity>1</Quantity>
<Unit>lb</Unit>
<Price>9.99</Price>
<Comment>On 30% sale</Comment>
</Item>
<Item>
<Name>Prude Chicken</Name>
<Category>Chicken</Category>
<Quantity>7.5</Quantity>
<Unit>lb</Unit>
<Price>4.99</Price>
<Comment>Price is per pound</Comment>
</Item>
</Items>
</Store>
No comments:
Post a Comment