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