<schema targetNamespace="http://www.example.com/IPO" | |
xmlns="http://www.w3.org/2001/XMLSchema" | |
xmlns:ipo="http://www.example.com/IPO" | |
elementFormDefault="qualified"> | |
<annotation> | |
<documentation xml:lang="en"> | |
Addresses for International Purchase order schema | |
Copyright 2000 Example.com. All rights reserved. | |
</documentation> | |
</annotation> | |
<complexType name="Address"> | |
<sequence> | |
<element name="name" type="string"/> | |
<element name="street" type="string"/> | |
<element name="city" type="string"/> | |
</sequence> | |
</complexType> | |
<complexType name="USAddress"> | |
<complexContent> | |
<extension base="ipo:Address"> | |
<sequence> | |
<element name="state" type="ipo:USState"/> | |
<element name="zip" type="positiveInteger"/> | |
</sequence> | |
</extension> | |
</complexContent> | |
</complexType> | |
<complexType name="UKAddress"> | |
<complexContent> | |
<extension base="ipo:Address"> | |
<sequence> | |
<element name="postcode" type="ipo:UKPostcode"/> | |
</sequence> | |
<attribute name="exportCode" type="positiveInteger" fixed="1"/> | |
</extension> | |
</complexContent> | |
</complexType> | |
<!-- other Address derivations for more countries --> | |
<simpleType name="USState"> | |
<restriction base="string"> | |
<enumeration value="AK"/> | |
<enumeration value="AL"/> | |
<enumeration value="AR"/> | |
<!-- and so on ... --> | |
<enumeration value="PA"/> | |
</restriction> | |
</simpleType> | |
<!-- simple type definition for UKPostcode --> | |
<simpleType name="UKPostcode"> | |
<restriction base="string"> | |
<pattern value="[A-Z]{1,2}[0-9R][0-9A-Z]? [0-9][A-Z]{2}"/> | |
</restriction> | |
</simpleType> | |
</schema> |