| <?xml version="1.0"?> |
| <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> |
| <xsd:annotation> |
| <xsd:documentation xml:lang="en"> |
| Purchase order schema for Example.com. |
| Copyright 2000 Example.com. All rights reserved. |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:element name="purchaseOrder" type="PurchaseOrderType"/> |
| <xsd:element name="comment" type="xsd:string"/> |
| <xsd:complexType name="PurchaseOrderType"> |
| <xsd:sequence> |
| <xsd:element name="shipTo" type="USAddress"/> |
| <xsd:element name="billTo" type="USAddress"/> |
| <xsd:element ref="comment" minOccurs="0"/> |
| <xsd:element name="items" type="Items"/> |
| </xsd:sequence> |
| <xsd:attribute name="orderDate" type="xsd:date"/> |
| </xsd:complexType> |
| <xsd:complexType name="USAddress"> |
| <xsd:sequence> |
| <xsd:element name="name" type="xsd:string"/> |
| <xsd:element name="street" type="xsd:string"/> |
| <xsd:element name="city" type="xsd:string"/> |
| <xsd:element name="state" type="xsd:string"/> |
| <xsd:element name="zip" type="xsd:decimal"/> |
| </xsd:sequence> |
| <xsd:attribute name="country" type="xsd:NMTOKEN" fixed="US"/> |
| </xsd:complexType> |
| <xsd:complexType name="Items"> |
| <xsd:sequence> |
| <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> |
| <xsd:attribute name="partNum" type="SKU" use="required"/> |
| </xsd:complexType> |
| </xsd:element> |
| </xsd:sequence> |
| </xsd:complexType> |
| <!-- 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:schema> |
| |