<?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> | |