| <?xml version="1.0"?> |
| <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> |
| |
| <xsd:simpleType name="codeType"> |
| <xsd:restriction base="xsd:string"> |
| <xsd:pattern value="[A-Z]+"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| |
| <xsd:element name="Test"> |
| <xsd:complexType> |
| <xsd:sequence> |
| <xsd:element ref="Country" |
| maxOccurs="unbounded"/> |
| </xsd:sequence> |
| </xsd:complexType> |
| </xsd:element> |
| |
| <xsd:element name="Country"> |
| <xsd:complexType> |
| <xsd:sequence> |
| <xsd:element ref="City" |
| maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:attribute name="code" |
| type="codeType" |
| use="required"/> |
| </xsd:complexType> |
| <xsd:key name="CountryDummyKey"> |
| <xsd:selector xpath="."/> |
| <xsd:field xpath="@code"/> |
| </xsd:key> |
| <xsd:keyref name="PartRefCountryDummy" |
| refer="CountryDummyKey"> |
| <xsd:selector xpath=".//Part"/> |
| <xsd:field xpath="@country"/> |
| </xsd:keyref> |
| </xsd:element> |
| |
| <xsd:element name="City"> |
| <xsd:complexType> |
| <xsd:sequence> |
| <xsd:element ref="Part" |
| minOccurs="2" |
| maxOccurs="2"/> |
| </xsd:sequence> |
| <xsd:attribute name="name" |
| type="xsd:string" |
| use="required"/> |
| <xsd:attribute name="code" |
| type="xsd:string" |
| use="required"/> |
| </xsd:complexType> |
| </xsd:element> |
| |
| <xsd:element name="Part"> |
| <xsd:complexType> |
| <xsd:attribute name="country" |
| type="codeType" |
| use="required"/> |
| </xsd:complexType> |
| </xsd:element> |
| </xsd:schema> |