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