| <?xml version="1.0"?> | |
| <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" | |
| xmlns:po="http://www.example.com/PO1" | |
| targetNamespace="http://www.example.com/PO1" | |
| elementFormDefault="unqualified" | |
| attributeFormDefault="unqualified"> | |
| <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="po:PurchaseOrderType"/> | |
| <xsd:element name="comment" type="xsd:string"/> | |
| <xsd:complexType name="PurchaseOrderType"> | |
| <xsd:sequence> | |
| <xsd:element name="shipTo" type="po:USAddress"/> | |
| <xsd:element name="billTo" type="po:USAddress"/> | |
| <xsd:element ref="po:comment" minOccurs="0"/> | |
| <xsd:element name="items" type="po: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="po:comment" minOccurs="0"/> | |
| <xsd:element name="shipDate" type="xsd:date" minOccurs="0"/> | |
| </xsd:sequence> | |
| <xsd:attribute name="partNum" type="po: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> | |