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