Home | History | Annotate | Download | only in schemas
      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