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