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">
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
228