Laurent@814: <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> Laurent@814: Laurent@814: <xsd:annotation> Laurent@814: <xsd:documentation xml:lang="en"> Laurent@814: Purchase order schema for Example.com. Laurent@814: Copyright 2000 Example.com. All rights reserved. Laurent@814: </xsd:documentation> Laurent@814: </xsd:annotation> Laurent@814: Laurent@814: <xsd:element name="purchaseOrder" type="PurchaseOrderType"/> Laurent@814: Laurent@814: <xsd:element name="comment" type="xsd:string"/> Laurent@814: Laurent@814: <xsd:complexType name="PurchaseOrderType"> Laurent@814: <xsd:sequence> Laurent@814: <xsd:element name="shipTo" type="USAddress"/> Laurent@814: <xsd:element name="billTo" type="USAddress"/> Laurent@814: <xsd:element ref="comment" minOccurs="0"/> Laurent@814: <xsd:element name="items" type="Items"/> Laurent@814: </xsd:sequence> Laurent@814: <xsd:attribute name="orderDate" type="xsd:date"/> Laurent@814: </xsd:complexType> Laurent@814: Laurent@814: <xsd:complexType name="USAddress"> Laurent@814: <xsd:sequence> Laurent@814: <xsd:element name="name" type="xsd:string"/> Laurent@814: <xsd:element name="street" type="xsd:string"/> Laurent@814: <xsd:element name="city" type="xsd:string"/> Laurent@814: <xsd:element name="state" type="xsd:string"/> Laurent@814: <xsd:element name="zip" type="xsd:decimal"/> Laurent@814: </xsd:sequence> Laurent@814: <xsd:attribute name="country" type="xsd:NMTOKEN" Laurent@814: fixed="US"/> Laurent@814: </xsd:complexType> Laurent@814: Laurent@814: <xsd:complexType name="Items"> Laurent@814: <xsd:sequence> Laurent@814: <xsd:element name="item" minOccurs="0" maxOccurs="unbounded"> Laurent@814: <xsd:complexType> Laurent@814: <xsd:sequence> Laurent@814: <xsd:element name="productName" type="xsd:string"/> Laurent@814: <xsd:element name="quantity"> Laurent@814: <xsd:simpleType> Laurent@814: <xsd:restriction base="xsd:positiveInteger"> Laurent@814: <xsd:maxExclusive value="100"/> Laurent@814: </xsd:restriction> Laurent@814: </xsd:simpleType> Laurent@814: </xsd:element> Laurent@814: <xsd:element name="USPrice" type="xsd:decimal"/> Laurent@814: <xsd:element ref="comment" minOccurs="0"/> Laurent@814: <xsd:element name="shipDate" type="xsd:date" minOccurs="0"/> Laurent@814: </xsd:sequence> Laurent@814: <xsd:attribute name="partNum" type="SKU" use="required"/> Laurent@814: </xsd:complexType> Laurent@814: </xsd:element> Laurent@814: </xsd:sequence> Laurent@814: </xsd:complexType> Laurent@814: Laurent@814: <!-- Stock Keeping Unit, a code for identifying products --> Laurent@814: <xsd:simpleType name="SKU"> Laurent@814: <xsd:restriction base="xsd:string"> Laurent@814: <xsd:pattern value="\d{3}-[A-Z]{2}"/> Laurent@814: </xsd:restriction> Laurent@814: </xsd:simpleType> Laurent@814: Laurent@814: </xsd:schema>