Share via


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>