po2.xsd
[This sample code uses features that were only implemented in MSXML 6.0.]
The Locate Declarations application uses the following XML Schema document.
<xsd:schema xmlns:xsd='http://www.w3.org/2001/XMLSchema'
xmlns:po = "http://www.example.microsoft.com/po"
targetNamespace = "http://www.example.microsoft.com/po">
<xsd:annotation>
<xsd:documentation>
Purchase order schema for Example.Microsoft.com.
Copyright 2000 Example.Microsoft.com. All rights reserved.
</xsd:documentation>
<xsd:appinfo>
</xsd:appinfo>
</xsd:annotation>
<xsd:element name='comment' type='xsd:string'/>
<xsd:element name='purchaseOrder' type='po:PurchaseOrderType'/>
<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:simpleType name='SKU'>
<xsd:restriction base='xsd:string'>
<xsd:pattern value='\d{3}-[A-Z]{2}'/>
</xsd:restriction>
</xsd:simpleType>
<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:minInclusive value='1'/>
<xsd:maxExclusive value='100'/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name='USPrice' type='xsd:decimal'/>
<xsd:element ref='po:comment'/>
<xsd:element name='shipDate' type='xsd:date' minOccurs='0'/>
</xsd:sequence>
<xsd:attribute name='partNum' type='po:SKU'/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<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:attribute name='confirmDate' type='xsd:date' use='required'/>
</xsd:complexType>
</xsd:schema>