/ libxml2 / test / schemas / anyAttr1_0.xsd
anyAttr1_0.xsd
  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  				<!-- Import -->
 10  				<xsd:element ref="import:imp.element"/>							
 11  				<xsd:element name="imp.attribute">
 12  					<xsd:complexType>
 13  						<xsd:attribute ref="import:imp.attribute"/>
 14  					</xsd:complexType>
 15  				</xsd:element>	
 16  				<xsd:element name="imp.group">
 17  					<xsd:complexType>
 18  						<xsd:group ref="import:imp.group"/>
 19  					</xsd:complexType>
 20  				</xsd:element>	
 21  				<!-- Basic -->
 22  				<xsd:element name="basic.A" type="foo:type.basic.A"/>
 23  				<xsd:element name="basic.B" type="foo:type.basic.B"/>
 24  				<xsd:element name="basic.C" type="foo:type.basic.C"/>
 25  				<xsd:element name="basic.D" type="foo:type.basic.D"/>
 26  				<xsd:element name="basic.E" type="foo:type.basic.E"/>
 27  				<!-- Attribute Wildcard Intersection -->
 28  				<xsd:element name="inters.1_1" type="foo:type.inters.1_1"/>
 29  				<xsd:element name="inters.1_2" type="foo:type.inters.1_2"/>
 30  				<xsd:element name="inters.1_3" type="foo:type.inters.1_3"/>
 31  				<xsd:element name="inters.1_4" type="foo:type.inters.1_4"/>
 32  
 33  				<xsd:element name="inters.2_1" type="foo:type.inters.2_1"/>
 34  
 35  				<xsd:element name="inters.3_1" type="foo:type.inters.3_1"/>
 36  
 37  				<xsd:element name="inters.4_1" type="foo:type.inters.4_1"/>
 38  
 39  				<!--xsd:element name="inters.5_1" type="type.inters.5_1"/-->
 40  				<xsd:element name="inters.6_1" type="foo:type.inters.6_1"/>
 41  			</xsd:sequence>
 42  		</xsd:complexType>
 43  	</xsd:element>
 44  	
 45  	<!-- Basic -->
 46  	<xsd:complexType name="type.basic.A">				
 47  		<xsd:anyAttribute namespace="##any" processContents="lax"/>	
 48  	</xsd:complexType>
 49  	<xsd:complexType name="type.basic.B">				
 50  		<xsd:anyAttribute namespace="##other" processContents="lax"/>	
 51  	</xsd:complexType>
 52  	<xsd:complexType name="type.basic.C">				
 53  		<xsd:anyAttribute namespace="##local" processContents="lax"/>	
 54  	</xsd:complexType>
 55  	<xsd:complexType name="type.basic.D">				
 56  		<xsd:anyAttribute namespace="##targetNamespace" processContents="lax"/>	
 57  	</xsd:complexType>
 58  	<xsd:complexType name="type.basic.E">				
 59  		<xsd:anyAttribute namespace="##targetNamespace ##local http://BAR" processContents="lax"/>	
 60  	</xsd:complexType>
 61  	<!-- Attribute Wildcard Intersection -->
 62  
 63  	<!-- 1. If O1 and O2 are the same value, then that value must be the value. -->
 64  	<xsd:complexType name="type.inters.1_1">	
 65  		<xsd:attributeGroup ref="foo:attrGr.inters.1_1"/>			
 66  		<xsd:anyAttribute namespace="##any" processContents="lax"/>	
 67  	</xsd:complexType>
 68  	<xsd:attributeGroup name="attrGr.inters.1_1">
 69  		<xsd:anyAttribute namespace="##any"/>
 70  	</xsd:attributeGroup>
 71  	<xsd:complexType name="type.inters.1_2">	
 72  		<xsd:attributeGroup ref="foo:attrGr.inters.1_2"/>			
 73  		<xsd:anyAttribute namespace="##other" processContents="lax"/>	
 74  	</xsd:complexType>
 75  	<xsd:attributeGroup name="attrGr.inters.1_2">
 76  		<xsd:anyAttribute namespace="##other"/>
 77  	</xsd:attributeGroup>
 78  	<xsd:complexType name="type.inters.1_3">	
 79  		<xsd:attributeGroup ref="foo:attrGr.inters.1_3"/>			
 80  		<xsd:anyAttribute namespace="##local ##targetNamespace" processContents="lax"/>	
 81  	</xsd:complexType>
 82  	<xsd:attributeGroup name="attrGr.inters.1_3">
 83  		<xsd:anyAttribute namespace="##local  ##targetNamespace"/>
 84  	</xsd:attributeGroup>
 85  	<xsd:complexType name="type.inters.1_4">	
 86  		<xsd:attributeGroup ref="foo:attrGr.inters.1_4"/>			
 87  		<xsd:anyAttribute namespace="##local http://BAR   ##targetNamespace " processContents="lax"/>	
 88  	</xsd:complexType>
 89  	<xsd:attributeGroup name="attrGr.inters.1_4">
 90  		<xsd:anyAttribute namespace="  ##targetNamespace  http://BAR ##local"/>
 91  	</xsd:attributeGroup>
 92  
 93  	<!-- 2. If either O1 or O2 is any, then the other must be the value. -->
 94  	<xsd:complexType name="type.inters.2_1">	
 95  		<xsd:attributeGroup ref="foo:attrGr.inters.2_1"/>			
 96  		<xsd:anyAttribute namespace="##any" processContents="lax"/>	
 97  	</xsd:complexType>
 98  	<xsd:attributeGroup name="attrGr.inters.2_1">
 99  		<xsd:anyAttribute namespace="##local ##targetNamespace"/>
100  	</xsd:attributeGroup>
101  	<!-- 3. If either O1 or O2 is a pair of not and a value (a namespace name or �absent�) 
102  	  and the other is a set of (namespace names or �absent�), then that set, minus the 
103  	  negated value if it was in the set, minus �absent� if it was in the set, must be the value. -->
104  	<xsd:complexType name="type.inters.3_1">	
105  		<xsd:attributeGroup ref="foo:attrGr.inters.3_1"/>			
106  		<xsd:anyAttribute namespace="##other" processContents="lax"/>	
107  	</xsd:complexType>
108  	<xsd:attributeGroup name="attrGr.inters.3_1">
109  		<xsd:anyAttribute namespace="##local ##targetNamespace http://BAR"/>
110  	</xsd:attributeGroup>
111  	<!-- 4. If both O1 and O2 are sets of (namespace names or �absent�), then the 
112  	  intersection of those sets must be the value. -->
113  	<xsd:complexType name="type.inters.4_1">	
114  		<xsd:attributeGroup ref="foo:attrGr.inters.4_1"/>			
115  		<xsd:anyAttribute namespace="##local ##targetNamespace http://BAR" processContents="lax"/>	
116  	</xsd:complexType>
117  	<xsd:attributeGroup name="attrGr.inters.4_1">
118  		<xsd:anyAttribute namespace="##local ##targetNamespace"/>
119  	</xsd:attributeGroup>
120  	<!-- 5. If the two are negations of different namespace names, 
121  	  then the intersection is not expressible. -->
122  	  <!--
123  	<xsd:complexType name="type.inters.5_1">	
124  		<xsd:attributeGroup ref="import:attrGr.inters.5_1"/>			
125  		<xsd:anyAttribute namespace="##other" processContents="lax"/>	
126  	</xsd:complexType>
127  	-->
128  	<!--6. If the one is a negation of a namespace name and the other is a negation of �absent�, 
129  	  then the one which is the negation of a namespace name must be the value. 
130  
131  	  This one uses an attribute group from an imported schema with no targetNamespace.
132  	-->
133  	<xsd:complexType name="type.inters.6_1">	
134  		<xsd:attributeGroup ref="attrGr.inters.6_1"/>			
135  		<xsd:anyAttribute namespace="##other" processContents="lax"/>	
136  	</xsd:complexType>
137  
138  	<xsd:attributeGroup name="attrGrA">
139  		<xsd:anyAttribute namespace="##targetNamespace"/>
140  	</xsd:attributeGroup> 
141  
142  </xsd:schema>
143  
144