blob: bc14d99cc66880396044fd90160f834a155b3bb3 [file] [log] [blame]
Daniel Veillard3646d642004-06-02 19:19:14 +00001<?xml version="1.0" encoding="ISO-8859-1"?>
2<xsd:schema xmlns:foo="http://FOO" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:import="http://IMPORT"
3 targetNamespace="http://FOO" elementFormDefault="qualified">
4 <xsd:import namespace="http://IMPORT" schemaLocation="anyAttr.importA.1_0.xsd"/>
5 <xsd:import schemaLocation="anyAttr.importB.1_0.xsd"/>
6 <xsd:element name="foo">
7 <xsd:complexType>
8 <xsd:sequence>
9 <!-- Attribute Wildcard Union -->
10 <xsd:element name="derive.1_1" type="foo:type.1_1"/>
11 <xsd:element name="derive.1_4" type="foo:type.1_4"/>
12
13 <xsd:element name="derive.2_1" type="foo:type.2_1"/>
14
15 <xsd:element name="derive.3_1" type="foo:type.3_1"/>
16
17 <xsd:element name="derive.4_1" type="foo:type.4_1"/>
18
19 <xsd:element name="derive.5_1_a" type="foo:type.5_1_a"/>
20 <xsd:element name="derive.5_1_b" type="foo:type.5_1_b"/>
21 <xsd:element name="derive.5_2_a" type="foo:type.5_2_a"/>
22 <xsd:element name="derive.5_2_b" type="foo:type.5_2_b"/>
23 <xsd:element name="derive.5_4_a" type="foo:type.5_4_a"/>
24 <xsd:element name="derive.5_4_b" type="foo:type.5_4_b"/>
25 <xsd:element name="derive.6_1" type="foo:type.6_1"/>
26 <xsd:element name="derive.6_2" type="foo:type.6_2"/>
27 </xsd:sequence>
28 </xsd:complexType>
29 </xsd:element>
30
31 <!-- Attribute Wildcard Union -->
32
33 <!-- 1. If O1 and O2 are the same value, then that value must be the value. -->
34 <xsd:complexType name="type.1_1">
35 <xsd:complexContent>
36 <xsd:extension base="foo:type.base.1_1">
37 <xsd:anyAttribute namespace="##any" processContents="lax"/>
38 </xsd:extension>
39 </xsd:complexContent>
40 </xsd:complexType>
41 <xsd:complexType name="type.base.1_1">
42 <xsd:attributeGroup ref="foo:attrGr.1_1"/>
43 <xsd:anyAttribute namespace="##any" processContents="lax"/>
44 </xsd:complexType>
45 <xsd:attributeGroup name="attrGr.1_1">
46 <xsd:anyAttribute namespace="##any" processContents="lax"/>
47 </xsd:attributeGroup>
48
49 <xsd:complexType name="type.1_4">
50 <xsd:complexContent>
51 <xsd:extension base="foo:type.base.1_4">
52 <xsd:anyAttribute namespace="http://BAR ##local http://FOO" processContents="lax"/>
53 </xsd:extension>
54 </xsd:complexContent>
55 </xsd:complexType>
56 <xsd:complexType name="type.base.1_4">
57 <xsd:attributeGroup ref="foo:attrGr.1_4"/>
58 <xsd:anyAttribute namespace="##local http://BAR ##targetNamespace " processContents="lax"/>
59 </xsd:complexType>
60 <xsd:attributeGroup name="attrGr.1_4">
61 <xsd:anyAttribute namespace=" http://FOO http://BAR ##local"/>
62 </xsd:attributeGroup>
63
64 <!-- 2. If either O1 or O2 is any, then any must be the value. -->
65 <xsd:complexType name="type.2_1">
66 <xsd:complexContent>
67 <xsd:extension base="foo:type.base.2_1">
68 <xsd:anyAttribute namespace="##any" processContents="lax"/>
69 </xsd:extension>
70 </xsd:complexContent>
71 </xsd:complexType>
72 <xsd:complexType name="type.base.2_1">
73 <xsd:attributeGroup ref="foo:attrGr.2_1"/>
74 <xsd:anyAttribute namespace="##any" processContents="lax"/>
75 </xsd:complexType>
76 <xsd:attributeGroup name="attrGr.2_1">
77 <xsd:anyAttribute namespace="##local ##targetNamespace"/>
78 </xsd:attributeGroup>
79
80 <!-- 3. If both O1 and O2 are sets of (namespace names or ·absent·),
81 then the union of those sets must be the value. -->
82 <xsd:complexType name="type.3_1">
83 <xsd:complexContent>
84 <xsd:extension base="foo:type.base.3_1">
85 <xsd:anyAttribute namespace="##targetNamespace http://DOO" processContents="lax"/>
86 </xsd:extension>
87 </xsd:complexContent>
88 </xsd:complexType>
89 <xsd:complexType name="type.base.3_1">
90 <xsd:attributeGroup ref="foo:attrGr.3_1"/>
91 <xsd:anyAttribute namespace="##local" processContents="lax"/>
92 </xsd:complexType>
93 <xsd:attributeGroup name="attrGr.3_1">
94 <xsd:anyAttribute namespace="##local ##targetNamespace http://BAR"/>
95 </xsd:attributeGroup>
96 <!-- 4 If the two are negations of different values (namespace
97 names or ·absent·), then a pair of not and ·absent· must be the value. -->
98 <xsd:complexType name="type.4_1">
99 <xsd:complexContent>
100 <xsd:extension base="imp.type.base.derive.4_1">
101 <xsd:anyAttribute namespace="##other" processContents="lax"/>
102 </xsd:extension>
103 </xsd:complexContent>
104 </xsd:complexType>
105 <!-- 5 If either O1 or O2 is a pair of not and a namespace name and
106 the other is a set of (namespace names or ·absent·) (call this set S),
107 then The appropriate case among the following must be true: -->
108 <!-- 5.1 If the set S includes both the negated namespace name and
109 ·absent·, then any must be the value. -->
110 <xsd:complexType name="type.5_1_a">
111 <xsd:complexContent>
112 <xsd:extension base="foo:type.base.5_1_a">
113 <xsd:anyAttribute namespace="##local ##targetNamespace" processContents="lax"/>
114 </xsd:extension>
115 </xsd:complexContent>
116 </xsd:complexType>
117 <xsd:complexType name="type.base.5_1_a">
118 <xsd:anyAttribute namespace="##other" processContents="lax"/>
119 </xsd:complexType>
120
121 <xsd:complexType name="type.5_1_b">
122 <xsd:complexContent>
123 <xsd:extension base="foo:type.base.5_1_b">
124 <xsd:anyAttribute namespace="##other" processContents="lax"/>
125 </xsd:extension>
126 </xsd:complexContent>
127 </xsd:complexType>
128 <xsd:complexType name="type.base.5_1_b">
129 <xsd:anyAttribute namespace="##local ##targetNamespace" processContents="lax"/>
130 </xsd:complexType>
131
132 <!-- 5.2 If the set S includes the negated namespace name but not ·absent·,
133 then a pair of not and ·absent· must be the value. -->
134 <xsd:complexType name="type.5_2_a">
135 <xsd:complexContent>
136 <xsd:extension base="foo:type.base.5_2_a">
137 <xsd:anyAttribute namespace="##targetNamespace http://BAR" processContents="lax"/>
138 </xsd:extension>
139 </xsd:complexContent>
140 </xsd:complexType>
141 <xsd:complexType name="type.base.5_2_a">
142 <xsd:anyAttribute namespace="##other" processContents="lax"/>
143 </xsd:complexType>
144
145 <xsd:complexType name="type.5_2_b">
146 <xsd:complexContent>
147 <xsd:extension base="foo:type.base.5_2_b">
148 <xsd:anyAttribute namespace="##other" processContents="lax"/>
149 </xsd:extension>
150 </xsd:complexContent>
151 </xsd:complexType>
152 <xsd:complexType name="type.base.5_2_b">
153 <xsd:anyAttribute namespace="##targetNamespace http://BAR" processContents="lax"/>
154 </xsd:complexType>
155 <!-- 5.3 If the set S includes ·absent· but not the negated namespace name,
156 then the union is not expressible. -->
157 <!--
158 <xsd:complexType name="type.5_3_a">
159 <xsd:complexContent>
160 <xsd:extension base="foo:type.base.5_3_a">
161 <xsd:anyAttribute namespace="##local http://BAR" processContents="lax"/>
162 </xsd:extension>
163 </xsd:complexContent>
164 </xsd:complexType>
165 <xsd:complexType name="type.base.5_3_a">
166 <xsd:anyAttribute namespace="##other" processContents="lax"/>
167 </xsd:complexType>
168
169 <xsd:complexType name="type.5_3_b">
170 <xsd:complexContent>
171 <xsd:extension base="foo:type.base.5_3_b">
172 <xsd:anyAttribute namespace="##other" processContents="lax"/>
173 </xsd:extension>
174 </xsd:complexContent>
175 </xsd:complexType>
176 <xsd:complexType name="type.base.5_3_b">
177 <xsd:anyAttribute namespace="##local http://BAR" processContents="lax"/>
178 </xsd:complexType>
179 -->
180 <!-- 5.4 If the set S does not include either the negated namespace name
181 or ·absent·, then whichever of O1 or O2 is a pair of not and a namespace
182 name must be the value. -->
183 <xsd:complexType name="type.5_4_a">
184 <xsd:complexContent>
185 <xsd:extension base="foo:type.base.5_4_a">
186 <xsd:anyAttribute namespace="http://BAR" processContents="lax"/>
187 </xsd:extension>
188 </xsd:complexContent>
189 </xsd:complexType>
190 <xsd:complexType name="type.base.5_4_a">
191 <xsd:anyAttribute namespace="##other" processContents="lax"/>
192 </xsd:complexType>
193
194 <xsd:complexType name="type.5_4_b">
195 <xsd:complexContent>
196 <xsd:extension base="foo:type.base.5_4_b">
197 <xsd:anyAttribute namespace="##other" processContents="lax"/>
198 </xsd:extension>
199 </xsd:complexContent>
200 </xsd:complexType>
201 <xsd:complexType name="type.base.5_4_b">
202 <xsd:anyAttribute namespace="http://BAR" processContents="lax"/>
203 </xsd:complexType>
204 <!-- 6 If either O1 or O2 is a pair of not and ·absent· and the other is a
205 set of (namespace names or ·absent·) (again, call this set S), then The
206 appropriate case among the following must be true: -->
207 <!-- 6.1 If the set S includes ·absent·, then any must be the value. -->
208 <xsd:complexType name="type.6_1">
209 <xsd:complexContent>
210 <xsd:extension base="imp.type.base.derive.6">
211 <xsd:anyAttribute namespace="##local http://BAR" processContents="lax"/>
212 </xsd:extension>
213 </xsd:complexContent>
214 </xsd:complexType>
215 <!-- 6.2 If the set S does not include ·absent·, then a pair of not and ·absent·
216 must be the value. -->
217 <xsd:complexType name="type.6_2">
218 <xsd:complexContent>
219 <xsd:extension base="imp.type.base.derive.6">
220 <xsd:anyAttribute namespace="http://BAR http://DOO" processContents="lax"/>
221 </xsd:extension>
222 </xsd:complexContent>
223 </xsd:complexType>
224
225</xsd:schema>
226
227