Schema po.xsd


schema location:  po.xsd
 
Elements  Complex types  Simple types 
billTo  itemType  SKU 
comment  ProductType 
items  PurchaseOrderType 
purchaseOrder  USAddress 
shipTo 


element billTo
diagram
type USAddress
children name street city zip country
source
<xsd:element name="billTo" type="USAddress"/>

element comment
diagram
type xsd:string
used by
complexType PurchaseOrderType
source
<xsd:element name="comment" type="xsd:string"/>

element items
diagram
children item
source
<xsd:element name="items">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element name="item" type="itemType" minOccurs="0" maxOccurs="10"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>

element items/item
diagram
type itemType
children product shipDate
source
<xsd:element name="item" type="itemType" minOccurs="0" maxOccurs="10"/>

element purchaseOrder
diagram
type extension of PurchaseOrderType
children deliveryOption email express shipTo billTo paymentMethod comment item
attributes
Name  Type  Use  Default  Fixed  Annotation
orderDate  xsd:date  required      
source
<xsd:element name="purchaseOrder">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="PurchaseOrderType"/>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>

element shipTo
diagram
type USAddress
children name street city zip country
source
<xsd:element name="shipTo" type="USAddress"/>

complexType itemType
diagram
children product shipDate
used by
elements items/item PurchaseOrderType/item
source
<xsd:complexType name="itemType">
  <xsd:sequence>
    <xsd:element name="product" type="ProductType"/>
    <xsd:element name="shipDate" type="xsd:date" minOccurs="0"/>
  </xsd:sequence>
</xsd:complexType>

element itemType/product
diagram
type ProductType
children productName quantity price
attributes
Name  Type  Use  Default  Fixed  Annotation
partNum  SKU  optional      
source
<xsd:element name="product" type="ProductType"/>

element itemType/shipDate
diagram
type xsd:date
source
<xsd:element name="shipDate" type="xsd:date" minOccurs="0"/>

complexType ProductType
diagram
children productName quantity price
used by
element itemType/product
attributes
Name  Type  Use  Default  Fixed  Annotation
partNum  SKU  optional      
source
<xsd:complexType name="ProductType">
  <xsd:sequence>
    <xsd:element name="productName" type="xsd:string"/>
    <xsd:element name="quantity">
      <xsd:simpleType>
        <xsd:restriction base="xsd:positiveInteger">
          <xsd:maxInclusive value="100"/>
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:element>
    <xsd:element name="price" type="xsd:decimal"/>
  </xsd:sequence>
  <xsd:attribute name="partNum" type="SKU" use="optional"/>
</xsd:complexType>

element ProductType/productName
diagram
type xsd:string
source
<xsd:element name="productName" type="xsd:string"/>

element ProductType/quantity
diagram
type restriction of xsd:positiveInteger
facets
maxInclusive 100
source
<xsd:element name="quantity">
  <xsd:simpleType>
    <xsd:restriction base="xsd:positiveInteger">
      <xsd:maxInclusive value="100"/>
    </xsd:restriction>
  </xsd:simpleType>
</xsd:element>

element ProductType/price
diagram
type xsd:decimal
source
<xsd:element name="price" type="xsd:decimal"/>

complexType PurchaseOrderType
diagram
children deliveryOption email express shipTo billTo paymentMethod comment item
used by
element purchaseOrder
attributes
Name  Type  Use  Default  Fixed  Annotation
orderDate  xsd:date  required      
source
<xsd:complexType name="PurchaseOrderType">
  <xsd:sequence>
    <xsd:element name="deliveryOption">
      <xsd:annotation>
        <xsd:documentation>This is the delivery option annotation from XSD.</xsd:documentation>
      </xsd:annotation>
      <xsd:simpleType>
        <xsd:restriction base="xsd:string"/>
      </xsd:simpleType>
    </xsd:element>
    <xsd:element name="email" type="xsd:string" minOccurs="0"/>
    <xsd:element name="express" type="xsd:boolean"/>
    <xsd:element name="shipTo">
      <xsd:complexType>
        <xsd:complexContent>
          <xsd:extension base="USAddress"/>
        </xsd:complexContent>
      </xsd:complexType>
    </xsd:element>
    <xsd:element name="billTo" type="USAddress" minOccurs="0"/>
    <xsd:element name="paymentMethod">
      <xsd:complexType>
        <xsd:choice>
          <xsd:element name="cash" type="xsd:string" minOccurs="0"/>
          <xsd:element name="cashOnDelivery" type="xsd:string" minOccurs="0"/>
          <xsd:element name="cheque">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="no" type="xsd:int"/>
                <xsd:element name="chequeInstitut" type="xsd:string"/>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="creditCard">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="no" type="xsd:int"/>
                <xsd:element name="expirationDate" type="xsd:date"/>
                <xsd:element name="holderName"/>
                <xsd:element name="type">
                  <xsd:simpleType>
                    <xsd:restriction base="xsd:string">
                      <xsd:enumeration value="master"/>
                      <xsd:enumeration value="visa"/>
                      <xsd:enumeration value="americanExpress"/>
                    </xsd:restriction>
                  </xsd:simpleType>
                </xsd:element>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
    <xsd:element ref="comment"/>
    <xsd:element name="item" type="itemType" minOccurs="3" maxOccurs="unbounded"/>
  </xsd:sequence>
  <xsd:attribute name="orderDate" type="xsd:date" use="required"/>
</xsd:complexType>

element PurchaseOrderType/deliveryOption
diagram
type restriction of xsd:string
annotation
documentation 
This is the delivery option annotation from XSD.
source
<xsd:element name="deliveryOption">
  <xsd:annotation>
    <xsd:documentation>This is the delivery option annotation from XSD.</xsd:documentation>
  </xsd:annotation>
  <xsd:simpleType>
    <xsd:restriction base="xsd:string"/>
  </xsd:simpleType>
</xsd:element>

element PurchaseOrderType/email
diagram
type xsd:string
source
<xsd:element name="email" type="xsd:string" minOccurs="0"/>

element PurchaseOrderType/express
diagram
type xsd:boolean
source
<xsd:element name="express" type="xsd:boolean"/>

element PurchaseOrderType/shipTo
diagram
type extension of USAddress
children name street city zip country
source
<xsd:element name="shipTo">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="USAddress"/>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>

element PurchaseOrderType/billTo
diagram
type USAddress
children name street city zip country
source
<xsd:element name="billTo" type="USAddress" minOccurs="0"/>

element PurchaseOrderType/paymentMethod
diagram
children cash cashOnDelivery cheque creditCard
source
<xsd:element name="paymentMethod">
  <xsd:complexType>
    <xsd:choice>
      <xsd:element name="cash" type="xsd:string" minOccurs="0"/>
      <xsd:element name="cashOnDelivery" type="xsd:string" minOccurs="0"/>
      <xsd:element name="cheque">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="no" type="xsd:int"/>
            <xsd:element name="chequeInstitut" type="xsd:string"/>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="creditCard">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="no" type="xsd:int"/>
            <xsd:element name="expirationDate" type="xsd:date"/>
            <xsd:element name="holderName"/>
            <xsd:element name="type">
              <xsd:simpleType>
                <xsd:restriction base="xsd:string">
                  <xsd:enumeration value="master"/>
                  <xsd:enumeration value="visa"/>
                  <xsd:enumeration value="americanExpress"/>
                </xsd:restriction>
              </xsd:simpleType>
            </xsd:element>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
    </xsd:choice>
  </xsd:complexType>
</xsd:element>

element PurchaseOrderType/paymentMethod/cash
diagram
type xsd:string
source
<xsd:element name="cash" type="xsd:string" minOccurs="0"/>

element PurchaseOrderType/paymentMethod/cashOnDelivery
diagram
type xsd:string
source
<xsd:element name="cashOnDelivery" type="xsd:string" minOccurs="0"/>

element PurchaseOrderType/paymentMethod/cheque
diagram
children no chequeInstitut
source
<xsd:element name="cheque">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element name="no" type="xsd:int"/>
      <xsd:element name="chequeInstitut" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>

element PurchaseOrderType/paymentMethod/cheque/no
diagram
type xsd:int
source
<xsd:element name="no" type="xsd:int"/>

element PurchaseOrderType/paymentMethod/cheque/chequeInstitut
diagram
type xsd:string
source
<xsd:element name="chequeInstitut" type="xsd:string"/>

element PurchaseOrderType/paymentMethod/creditCard
diagram
children no expirationDate holderName type
source
<xsd:element name="creditCard">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element name="no" type="xsd:int"/>
      <xsd:element name="expirationDate" type="xsd:date"/>
      <xsd:element name="holderName"/>
      <xsd:element name="type">
        <xsd:simpleType>
          <xsd:restriction base="xsd:string">
            <xsd:enumeration value="master"/>
            <xsd:enumeration value="visa"/>
            <xsd:enumeration value="americanExpress"/>
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>

element PurchaseOrderType/paymentMethod/creditCard/no
diagram
type xsd:int
source
<xsd:element name="no" type="xsd:int"/>

element PurchaseOrderType/paymentMethod/creditCard/expirationDate
diagram
type xsd:date
source
<xsd:element name="expirationDate" type="xsd:date"/>

element PurchaseOrderType/paymentMethod/creditCard/holderName
diagram
source
<xsd:element name="holderName"/>

element PurchaseOrderType/paymentMethod/creditCard/type
diagram
type restriction of xsd:string
facets
enumeration master
enumeration visa
enumeration americanExpress
source
<xsd:element name="type">
  <xsd:simpleType>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="master"/>
      <xsd:enumeration value="visa"/>
      <xsd:enumeration value="americanExpress"/>
    </xsd:restriction>
  </xsd:simpleType>
</xsd:element>

element PurchaseOrderType/item
diagram
type itemType
children product shipDate
source
<xsd:element name="item" type="itemType" minOccurs="3" maxOccurs="unbounded"/>

complexType USAddress
diagram
children name street city zip country
used by
elements billTo PurchaseOrderType/billTo shipTo PurchaseOrderType/shipTo
source
<xsd:complexType name="USAddress">
  <xsd:sequence>
    <xsd:element name="name" type="xsd:string"/>
    <xsd:element name="street" type="xsd:string" minOccurs="0"/>
    <xsd:element name="city" type="xsd:string"/>
    <xsd:element name="zip" type="xsd:integer"/>
    <xsd:element name="country" type="xsd:string"/>
  </xsd:sequence>
</xsd:complexType>

element USAddress/name
diagram
type xsd:string
source
<xsd:element name="name" type="xsd:string"/>

element USAddress/street
diagram
type xsd:string
source
<xsd:element name="street" type="xsd:string" minOccurs="0"/>

element USAddress/city
diagram
type xsd:string
source
<xsd:element name="city" type="xsd:string"/>

element USAddress/zip
diagram
type xsd:integer
source
<xsd:element name="zip" type="xsd:integer"/>

element USAddress/country
diagram
type xsd:string
source
<xsd:element name="country" type="xsd:string"/>

simpleType SKU
type restriction of xsd:string
used by
attribute ProductType/@partNum
facets
pattern \d{3}-[A-Z]{2}
source
<xsd:simpleType name="SKU">
  <xsd:restriction base="xsd:string">
    <xsd:pattern value="\d{3}-[A-Z]{2}"/>
  </xsd:restriction>
</xsd:simpleType>


XML Schema documentation generated with
XMLSPY Schema Editor http://www.altova.com/xmlspy