| <?xml version="1.0"?> |
| <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> |
| <xsd:element name="comment" type="xsd:string"/> |
| <!-- Stock Keeping Unit, a code for identifying products --> |
| <xsd:simpleType name="SKU"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:pattern value="\d{3}-[A-Z]{2}"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <xsd:element name="Item" minOccurs="0" maxOccurs="unbounded"> |
| <xsd:complexType> |
| <xsd:sequence> |
| <xsd:element name="productName" type="xsd:string"/> |
| <xsd:element name="quantity"> |
| <xsd:simpleType> |
| <xsd:restriction base="xsd:positiveInteger"> |
| <xsd:maxExclusive value="100"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| </xsd:element> |
| <xsd:element name="USPrice" type="xsd:decimal"/> |
| <xsd:element ref="comment" minOccurs="0"/> |
| <xsd:element name="shipDate" type="xsd:date" minOccurs="0"/> |
| </xsd:sequence> |
| <!-- attributeGroup replaces individual declarations --> |
| <xsd:attributeGroup ref="ItemDelivery"/> |
| </xsd:complexType> |
| </xsd:element> |
| <xsd:attributeGroup name="ItemDelivery"> |
| <xsd:attribute name="partNum" type="SKU" use="required"/> |
| <xsd:attribute name="weightKg" type="xsd:decimal"/> |
| <xsd:attribute name="shipBy"> |
| <xsd:simpleType> |
| <xsd:restriction base="xsd:string"> |
| <xsd:enumeration value="air"/> |
| <xsd:enumeration value="land"/> |
| <xsd:enumeration value="any"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:attributeGroup> |
| </xsd:schema> |