<?xml version="1.0"?> <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:ipo="http://www.altova.com/IPO" targetNamespace="http://www.altova.com/IPO" elementFormDefault="qualified" attributeFormDefault="unqualified"> <include schemaLocation="address.xsd" /> <element name="purchaseOrder" type="ipo:PurchaseOrderType" /> <element name="comment" type="string" /> <complexType name="PurchaseOrderType"> <sequence> <element name="shipTo" type="ipo:Address" /> <element name="billTo" type="ipo:Address" /> <element ref="ipo:comment" minOccurs="0" /> <element name="Items" type="ipo:items" /> </sequence> <attribute name="orderDate" type="date" /> </complexType> <complexType name="items"> <sequence> <element name="item" maxOccurs="unbounded"> <complexType> <sequence> <element name="productName" type="string" /> <element name="quantity"> <simpleType> <restriction base="positiveInteger"> <maxExclusive value="1000" /> </restriction> </simpleType> </element> <element name="price" type="decimal" /> <element name="ipo:comment" minOccurs="0" /> <element name="shipDate" type="date" /> </sequence> <attribute name="partNum" type="ipo:Sku" /> </complexType> </element> </sequence> </complexType> <simpleType name="Sku"> <restriction base="string"> <pattern value="\d{3}-[A-Z]{2}" /> </restriction> </simpleType> </schema> <!-- address.xsd --> <?xml version="1.0"?> <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:ipo="http://www.altova.com/IPO" targetNamespace="http://www.altiva.com/IPO" elementFormDefault="qualified" attributeFormDefault="unqualified"> <complexType name="Address" abstract="true"> <sequence> <element name="name" type="string" /> <element name="street" type="string" /> <element name="city" type="string" /> </sequence> <attribute name="type"> <simpleType> <restriction base="string"> <enumeration value="ipo:US-Address" /> <enumeration value="ipo:EU-Address" /> </restriction> </simpleType> </attribute> </complexType> <complexType name="US-Address"> <comlexContent> <extension base="ipo:Address"> <sequence> <element name="state" type="ipo:US-State" /> <element name="zip" type="positiveInteger" /> </sequence> </extension> </complexContent> </complexType> <complexType name="EU-Address"> <complexContent> <extension base="ipo:Address"> <sequence> <element name="postcode" type="ipo:EU-Postcode" /> </sequence> <attribute name="export-code" type="positiveInteger" fixed="1" /> </extension> </complexContent> </complexType> <simpleType name="US-State"> <restriction base="string"> <enumeration value="AK" /> <enumeration value="AL" /> <enumeration value="AR" /> <!-- ... --> <enumeration value="WA" /> <enumeration value="WI" /> <enumeration value="WV" /> <enumeration value="WY" /> </restriction> </simpleType> <simpleType name="EU-Postcode"> <restriction base="positiveInteger"> <maxExclusive value="100000" /> </restriction> </simpleType> </schema>