blob: fee99f7b9653a22ceef3b4310c6a705ebaa94dfc [file] [log] [blame]
Kasimier T. Buchcik3eec7902005-05-10 09:16:19 +00001<?xml version="1.0"?>
2<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3
4 <xsd:simpleType name="codeType">
5 <xsd:restriction base="xsd:string">
6 <xsd:pattern value="[A-Z]+"/>
7 </xsd:restriction>
8 </xsd:simpleType>
9
10 <xsd:element name="Test">
11 <xsd:complexType>
12 <xsd:sequence>
13 <xsd:element ref="Country"
14 maxOccurs="unbounded"/>
15 </xsd:sequence>
16 </xsd:complexType>
17 </xsd:element>
18
19 <xsd:element name="Country">
20 <xsd:complexType>
21 <xsd:sequence>
22 <xsd:element ref="City"
23 maxOccurs="unbounded"/>
24 </xsd:sequence>
25 <xsd:attribute name="code"
26 type="codeType"
27 use="required"/>
28 </xsd:complexType>
29 <xsd:key name="CountryDummyKey">
30 <xsd:selector xpath="."/>
31 <xsd:field xpath="@code"/>
32 </xsd:key>
33 <xsd:keyref name="PartRefCountryDummy"
34 refer="CountryDummyKey">
35 <xsd:selector xpath=".//Part"/>
36 <xsd:field xpath="@country"/>
37 </xsd:keyref>
38 </xsd:element>
39
40 <xsd:element name="City">
41 <xsd:complexType>
42 <xsd:sequence>
43 <xsd:element ref="Part"
44 minOccurs="2"
45 maxOccurs="2"/>
46 </xsd:sequence>
47 <xsd:attribute name="name"
48 type="xsd:string"
49 use="required"/>
50 <xsd:attribute name="code"
51 type="xsd:string"
52 use="required"/>
53 </xsd:complexType>
54 </xsd:element>
55
56 <xsd:element name="Part">
57 <xsd:complexType>
58 <xsd:attribute name="country"
59 type="codeType"
60 use="required"/>
61 </xsd:complexType>
62 </xsd:element>
63</xsd:schema>