1 <?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">
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"/>
13 <xsd:element name=
"derive.2_1" type=
"foo:type.2_1"/>
15 <xsd:element name=
"derive.3_1" type=
"foo:type.3_1"/>
17 <xsd:element name=
"derive.4_1" type=
"foo:type.4_1"/>
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"/>
31 <!-- Attribute Wildcard Union -->
33 <!-- 1. If O1 and O2 are the same value, then that value must be the value. -->
34 <xsd:complexType name=
"type.1_1">
36 <xsd:extension base=
"foo:type.base.1_1">
37 <xsd:anyAttribute namespace=
"##any" processContents=
"lax"/>
41 <xsd:complexType name=
"type.base.1_1">
42 <xsd:attributeGroup ref=
"foo:attrGr.1_1"/>
43 <xsd:anyAttribute namespace=
"##any" processContents=
"lax"/>
45 <xsd:attributeGroup name=
"attrGr.1_1">
46 <xsd:anyAttribute namespace=
"##any" processContents=
"lax"/>
49 <xsd:complexType name=
"type.1_4">
51 <xsd:extension base=
"foo:type.base.1_4">
52 <xsd:anyAttribute namespace=
"http://BAR ##local http://FOO" processContents=
"lax"/>
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"/>
60 <xsd:attributeGroup name=
"attrGr.1_4">
61 <xsd:anyAttribute namespace=
" http://FOO http://BAR ##local"/>
64 <!-- 2. If either O1 or O2 is any, then any must be the value. -->
65 <xsd:complexType name=
"type.2_1">
67 <xsd:extension base=
"foo:type.base.2_1">
68 <xsd:anyAttribute namespace=
"##any" processContents=
"lax"/>
72 <xsd:complexType name=
"type.base.2_1">
73 <xsd:attributeGroup ref=
"foo:attrGr.2_1"/>
74 <xsd:anyAttribute namespace=
"##any" processContents=
"lax"/>
76 <xsd:attributeGroup name=
"attrGr.2_1">
77 <xsd:anyAttribute namespace=
"##local ##targetNamespace"/>
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">
84 <xsd:extension base=
"foo:type.base.3_1">
85 <xsd:anyAttribute namespace=
"##targetNamespace http://DOO" processContents=
"lax"/>
89 <xsd:complexType name=
"type.base.3_1">
90 <xsd:attributeGroup ref=
"foo:attrGr.3_1"/>
91 <xsd:anyAttribute namespace=
"##local" processContents=
"lax"/>
93 <xsd:attributeGroup name=
"attrGr.3_1">
94 <xsd:anyAttribute namespace=
"##local ##targetNamespace http://BAR"/>
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">
100 <xsd:extension base=
"imp.type.base.derive.4_1">
101 <xsd:anyAttribute namespace=
"##other" processContents=
"lax"/>
103 </xsd:complexContent>
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">
112 <xsd:extension base=
"foo:type.base.5_1_a">
113 <xsd:anyAttribute namespace=
"##local ##targetNamespace" processContents=
"lax"/>
115 </xsd:complexContent>
117 <xsd:complexType name=
"type.base.5_1_a">
118 <xsd:anyAttribute namespace=
"##other" processContents=
"lax"/>
121 <xsd:complexType name=
"type.5_1_b">
123 <xsd:extension base=
"foo:type.base.5_1_b">
124 <xsd:anyAttribute namespace=
"##other" processContents=
"lax"/>
126 </xsd:complexContent>
128 <xsd:complexType name=
"type.base.5_1_b">
129 <xsd:anyAttribute namespace=
"##local ##targetNamespace" processContents=
"lax"/>
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">
136 <xsd:extension base=
"foo:type.base.5_2_a">
137 <xsd:anyAttribute namespace=
"##targetNamespace http://BAR" processContents=
"lax"/>
139 </xsd:complexContent>
141 <xsd:complexType name=
"type.base.5_2_a">
142 <xsd:anyAttribute namespace=
"##other" processContents=
"lax"/>
145 <xsd:complexType name=
"type.5_2_b">
147 <xsd:extension base=
"foo:type.base.5_2_b">
148 <xsd:anyAttribute namespace=
"##other" processContents=
"lax"/>
150 </xsd:complexContent>
152 <xsd:complexType name=
"type.base.5_2_b">
153 <xsd:anyAttribute namespace=
"##targetNamespace http://BAR" processContents=
"lax"/>
155 <!-- 5.3 If the set S includes ·absent· but not the negated namespace name,
156 then the union is not expressible. -->
158 <xsd:complexType name="type.5_3_a">
160 <xsd:extension base="foo:type.base.5_3_a">
161 <xsd:anyAttribute namespace="##local http://BAR" processContents="lax"/>
163 </xsd:complexContent>
165 <xsd:complexType name="type.base.5_3_a">
166 <xsd:anyAttribute namespace="##other" processContents="lax"/>
169 <xsd:complexType name="type.5_3_b">
171 <xsd:extension base="foo:type.base.5_3_b">
172 <xsd:anyAttribute namespace="##other" processContents="lax"/>
174 </xsd:complexContent>
176 <xsd:complexType name="type.base.5_3_b">
177 <xsd:anyAttribute namespace="##local http://BAR" processContents="lax"/>
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">
185 <xsd:extension base=
"foo:type.base.5_4_a">
186 <xsd:anyAttribute namespace=
"http://BAR" processContents=
"lax"/>
188 </xsd:complexContent>
190 <xsd:complexType name=
"type.base.5_4_a">
191 <xsd:anyAttribute namespace=
"##other" processContents=
"lax"/>
194 <xsd:complexType name=
"type.5_4_b">
196 <xsd:extension base=
"foo:type.base.5_4_b">
197 <xsd:anyAttribute namespace=
"##other" processContents=
"lax"/>
199 </xsd:complexContent>
201 <xsd:complexType name=
"type.base.5_4_b">
202 <xsd:anyAttribute namespace=
"http://BAR" processContents=
"lax"/>
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">
210 <xsd:extension base=
"imp.type.base.derive.6">
211 <xsd:anyAttribute namespace=
"##local http://BAR" processContents=
"lax"/>
213 </xsd:complexContent>
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">
219 <xsd:extension base=
"imp.type.base.derive.6">
220 <xsd:anyAttribute namespace=
"http://BAR http://DOO" processContents=
"lax"/>
222 </xsd:complexContent>