1<?xml version="1.0"?> 2<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 3 <xsd:element name="comment" type="xsd:string"/> 4<!-- Stock Keeping Unit, a code for identifying products --> 5 <xsd:simpleType name="SKU"> 6 <xsd:restriction base="xsd:string"> 7 <xsd:pattern value="\d{3}-[A-Z]{2}"/> 8 </xsd:restriction> 9 </xsd:simpleType> 10 <xsd:element name="Item"> 11 <xsd:complexType> 12 <xsd:sequence> 13 <xsd:element name="productName" type="xsd:string"/> 14 <xsd:element name="quantity"> 15 <xsd:simpleType> 16 <xsd:restriction base="xsd:positiveInteger"> 17 <xsd:maxExclusive value="100"/> 18 </xsd:restriction> 19 </xsd:simpleType> 20 </xsd:element> 21 <xsd:element name="USPrice" type="xsd:decimal"/> 22 <xsd:element ref="comment" minOccurs="0"/> 23 <xsd:element name="shipDate" type="xsd:date" minOccurs="0"/> 24 </xsd:sequence> 25<!-- attributeGroup replaces individual declarations --> 26 <xsd:attributeGroup ref="ItemDelivery"/> 27 </xsd:complexType> 28 </xsd:element> 29 <xsd:attributeGroup name="ItemDelivery"> 30 <xsd:attribute name="partNum" type="SKU" use="required"/> 31 <xsd:attribute name="weightKg" type="xsd:decimal"/> 32 <xsd:attribute name="shipBy"> 33 <xsd:simpleType> 34 <xsd:restriction base="xsd:string"> 35 <xsd:enumeration value="air"/> 36 <xsd:enumeration value="land"/> 37 <xsd:enumeration value="any"/> 38 </xsd:restriction> 39 </xsd:simpleType> 40 </xsd:attribute> 41 </xsd:attributeGroup> 42</xsd:schema> 43