Print

Print


Commit in GeomConverter/resources/org/lcsim/schemas/gdml/1.0 on MAIN
gdml_materials.xsd+405-3851.1 -> 1.2
add lambda to gdml properties in schema

GeomConverter/resources/org/lcsim/schemas/gdml/1.0
gdml_materials.xsd 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- gdml_materials.xsd	14 Dec 2007 21:46:32 -0000	1.1
+++ gdml_materials.xsd	2 Mar 2011 03:43:29 -0000	1.2
@@ -1,390 +1,410 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE xs:schema []>
 <xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" version="0.1" xmlns:gdml="http://cern.ch/2001/Schemas/GDML" xmlns:xs="http://www.w3.org/2001/XMLSchema">
-  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-  <xs:include schemaLocation="gdml_core.xsd"></xs:include>
-  <xs:include schemaLocation="gdml_define.xsd"></xs:include>
-  <xs:include schemaLocation="gdml_extensions.xsd"/>
-  <!-- Removed abstract="true" in AtomType -->
-  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-  <xs:complexType name="AtomType">
-    <xs:annotation>
-      <xs:documentation>Atomic mass, quantity type A, default unit g/mole</xs:documentation>
-    </xs:annotation>
-    <xs:complexContent>
-      <xs:restriction base="QuantityType">
-	<xs:attribute default="g/mole" type="xs:string" name="unit"></xs:attribute>
-	<xs:attribute fixed="A" type="xs:string" name="type"></xs:attribute>
-      </xs:restriction>
-    </xs:complexContent>
-  </xs:complexType>
-  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-  <xs:complexType name="DensityType">
-    <xs:annotation>
-      <xs:documentation>Density</xs:documentation>
-    </xs:annotation>
-    <xs:complexContent>
-      <xs:restriction base="QuantityType">
-	<xs:attribute default="g/cm3" type="xs:string" name="unit"></xs:attribute>
-	<xs:attribute fixed="density" type="xs:string" name="type"></xs:attribute>
-      </xs:restriction>
-    </xs:complexContent>
-  </xs:complexType>
-  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-  <xs:group name="MaterialPropertiesGroup">
-    <xs:annotation>
-      <xs:documentation>General material properties</xs:documentation>
-    </xs:annotation>
-    <xs:sequence>
-	  <xs:choice minOccurs="0">
-	    <xs:element maxOccurs="unbounded" name="property">
-	      <xs:annotation>
-		<xs:documentation>General material property (const or vector)</xs:documentation>
-	      </xs:annotation>
-	      <xs:complexType>
-		<xs:complexContent>
-		  <xs:extension base="ReferenceType">
-		    <xs:attribute name="name" type="xs:string" use="required"></xs:attribute>
-		  </xs:extension>
-		</xs:complexContent>
-	      </xs:complexType>
-	    </xs:element>
-          </xs:choice>
-      <xs:choice minOccurs="0">
-	<xs:element name="RL">
-	  <xs:annotation>
-	    <xs:documentation>Radiation length</xs:documentation>
-	  </xs:annotation>
-	  <xs:complexType>
-	    <xs:complexContent>
-	      <xs:restriction base="QuantityType">
-		<xs:attribute default="cm" type="xs:string" name="unit"></xs:attribute>
-		<xs:attribute fixed="X0" type="xs:string" name="type"></xs:attribute>
-	      </xs:restriction>
-	    </xs:complexContent>
-	  </xs:complexType>
-	</xs:element>
-	<xs:element name="RLref" type="ReferenceType">
-	  <xs:annotation>
-	    <xs:documentation>A reference to a previsouly defined named radiation length quantity value</xs:documentation>
-	  </xs:annotation>
-	</xs:element>
-      </xs:choice>
-      <xs:choice minOccurs="0">
-	<xs:element name="AL">
-	  <xs:annotation>
-	    <xs:documentation>Absorption length</xs:documentation>
-	  </xs:annotation>
-	  <xs:complexType>
-	    <xs:complexContent>
-	      <xs:restriction base="QuantityType">
-		<xs:attribute default="cm" type="xs:string" name="unit"></xs:attribute>
-		<xs:attribute fixed="lambda" type="xs:string" name="type"></xs:attribute>
-	      </xs:restriction>
-	    </xs:complexContent>
-	  </xs:complexType>
-	</xs:element>
-	<xs:element name="ALref" type="ReferenceType">
-	  <xs:annotation>
-	    <xs:documentation>A reference to a previsouly defined named absorption length quantity value</xs:documentation>
-	  </xs:annotation>
-	</xs:element>
-      </xs:choice>
-      <xs:choice minOccurs="0">
-	<xs:element name="T">
-	  <xs:annotation>
-	    <xs:documentation>Temperature</xs:documentation>
-	  </xs:annotation>
-	  <xs:complexType>
-	    <xs:complexContent>
-	      <xs:restriction base="QuantityType">
-		<xs:attribute default="K" type="xs:string" name="unit"></xs:attribute>
-		<xs:attribute fixed="temperature" type="xs:string" name="type"></xs:attribute>
-	      </xs:restriction>
-	    </xs:complexContent>
-	  </xs:complexType>
-	</xs:element>
-	<xs:element name="Tref" type="ReferenceType">
-	  <xs:annotation>
-	    <xs:documentation>A reference to previously defined named temperature quantity value</xs:documentation>
-	  </xs:annotation>
-	</xs:element>
-      </xs:choice>
-      <xs:choice minOccurs="0">
-	<xs:element name="P">
-	  <xs:annotation>
-	    <xs:documentation>Pressure</xs:documentation>
-	  </xs:annotation>
-	  <xs:complexType>
-	    <xs:complexContent>
-	      <xs:restriction base="QuantityType">
-		<xs:attribute default="pascal" type="xs:string" name="unit"></xs:attribute>
-		<xs:attribute fixed="pressure" type="xs:string" name="type"></xs:attribute>
-	      </xs:restriction>
-	    </xs:complexContent>
-	  </xs:complexType>
-	</xs:element>
-	<xs:element name="Pref" type="ReferenceType">
-	  <xs:annotation>
-	    <xs:documentation>A reference to previously defined named pressure quantity value</xs:documentation>
-	  </xs:annotation>
-	</xs:element>
-      </xs:choice>
-    </xs:sequence>
-  </xs:group>
-  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-  <xs:attributeGroup name="MaterialAttributeGroup">
-    <xs:annotation>
-      <xs:documentation>General material attributes</xs:documentation>
-    </xs:annotation>
-    <xs:attribute name="name" type="xs:ID" use="required">
-      <xs:annotation>
-	<xs:documentation>Material name</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="formula" type="xs:string" use="optional">
-      <xs:annotation>
-	<xs:documentation>Material chemical formula</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
-    <xs:attribute default="unknown" name="state">
-      <xs:annotation>
-	<xs:documentation>Material physical state</xs:documentation>
-      </xs:annotation>
-      <xs:simpleType>
-	<xs:restriction base="xs:NMTOKEN">
-	  <xs:enumeration value="gas"></xs:enumeration>
-	  <xs:enumeration value="liquid"></xs:enumeration>
-	  <xs:enumeration value="solid"></xs:enumeration>
-	  <xs:enumeration value="unknown"></xs:enumeration>
-	</xs:restriction>
-      </xs:simpleType>
-    </xs:attribute>
-  </xs:attributeGroup>
-  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-  <xs:complexType name="MaterialType">
-    <xs:annotation>
-      <xs:documentation>Base type for materials</xs:documentation>
-    </xs:annotation>
-    <xs:group ref="MaterialPropertiesGroup"></xs:group>
-    <xs:attributeGroup ref="MaterialAttributeGroup"></xs:attributeGroup>
-  </xs:complexType>
-  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-  <!--
-      <xs:complexType name="ComplexMaterialType">
-	<xs:annotation>
-	  <xs:documentation>
-            Base type for complex materials
-	  </xs:documentation>
-	</xs:annotation>
-	<xs:complexContent>
-	  <xs:extension base="MaterialType">
-	    -->
-  <!-- <xs:group ref="MaterialPropertiesGroup"/> -->
-  <!--
-      Removed from referenced attribute group
-          <xs:attribute name="N" use="prohibited"/>
-          -->
-  <!--        
-	      <xs:attribute name="Z" type="xs:double" use="optional">
-		<xs:annotation>
-		  <xs:documentation>Atomic number</xs:documentation>
-		</xs:annotation>
-      </xs:attribute>
-      </xs:extension>
-      </xs:complexContent>
-      </xs:complexType>
- -->
-  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-  <xs:element name="materials">
-    <xs:annotation>
-      <xs:documentation>Materials description</xs:documentation>
-    </xs:annotation>
-    <xs:complexType>
-      <xs:choice maxOccurs="unbounded">
-        <xs:element maxOccurs="unbounded" minOccurs="0" ref="loop"/>
-	<xs:element minOccurs="0" name="define" type="defineType">
-	  <xs:annotation>
-	    <xs:documentation>Material related definitons of constants and quantities
-              In this version of schema these become visible in global scope</xs:documentation>
-	  </xs:annotation>
-	</xs:element>
-	<xs:element maxOccurs="unbounded" minOccurs="0" name="isotope" type="MaterialIsotopeType">
-	  <xs:annotation>
-	    <xs:documentation>An isotope</xs:documentation>
-	  </xs:annotation>
-	</xs:element>
-	<xs:element maxOccurs="unbounded" minOccurs="0" name="element" type="MaterialElementType">
-	  <xs:annotation>
-	    <xs:documentation>A simple element or an element composed of isotopes</xs:documentation>
-	  </xs:annotation>
-	</xs:element>
-	<xs:element maxOccurs="unbounded" minOccurs="0" name="material" type="MaterialMixtureType">
-	  <xs:annotation>
-	    <xs:documentation>A composite or a mixture complex material</xs:documentation>
-	  </xs:annotation>
-	</xs:element>
-      </xs:choice>
+    <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+    <xs:include schemaLocation="gdml_core.xsd"></xs:include>
+    <xs:include schemaLocation="gdml_define.xsd"></xs:include>
+    <xs:include schemaLocation="gdml_extensions.xsd"/>
+    <!-- Removed abstract="true" in AtomType -->
+    <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+    <xs:complexType name="AtomType">
+        <xs:annotation>
+            <xs:documentation>Atomic mass, quantity type A, default unit g/mole</xs:documentation>
+        </xs:annotation>
+        <xs:complexContent>
+            <xs:restriction base="QuantityType">
+                <xs:attribute default="g/mole" type="xs:string" name="unit"></xs:attribute>
+                <xs:attribute fixed="A" type="xs:string" name="type"></xs:attribute>
+            </xs:restriction>
+        </xs:complexContent>
     </xs:complexType>
-  </xs:element>
-  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-  <xs:complexType name="MaterialIsotopeType">
-    <xs:annotation>
-      <xs:documentation>Exported isotope type</xs:documentation>
-    </xs:annotation>
-    <xs:complexContent>
-      <xs:extension base="MaterialType">
-	<xs:sequence>
-	  <xs:choice minOccurs="0">
-	    <xs:element name="D" type="DensityType">
-	      <xs:annotation>
-		<xs:documentation>Density quantity value</xs:documentation>
-	      </xs:annotation>
-	    </xs:element>
-	    <xs:element name="Dref" type="ReferenceType">
-	      <xs:annotation>
-		<xs:documentation>A reference to a previsouly defined named density quantity value</xs:documentation>
-	      </xs:annotation>
-	    </xs:element>
-	  </xs:choice>
-	  <xs:element name="atom" type="AtomType"></xs:element>
-	</xs:sequence>
-	<xs:attribute name="N" type="xs:positiveInteger" use="required">
-	  <xs:annotation>
-	    <xs:documentation>Number of nucleons</xs:documentation>
-	  </xs:annotation>
-	</xs:attribute>
-	<xs:attribute name="Z" type="xs:double" use="required">
-	  <xs:annotation>
-	    <xs:documentation>Atomic number</xs:documentation>
-	  </xs:annotation>
-	</xs:attribute>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-  <xs:complexType name="MaterialElementType">
-    <xs:annotation>
-      <xs:documentation>Exported material element type</xs:documentation>
-    </xs:annotation>
-    <xs:complexContent>
-      <xs:extension base="MaterialType">
-	<xs:sequence>
-	  <xs:choice minOccurs="0">
-	    <xs:element name="D" type="DensityType">
-	      <xs:annotation>
-		<xs:documentation>Density quantity value</xs:documentation>
-	      </xs:annotation>
-	    </xs:element>
-	    <xs:element name="Dref" type="ReferenceType">
-	      <xs:annotation>
-		<xs:documentation>A reference to a previsouly defined named density quantity value</xs:documentation>
-	      </xs:annotation>
-	    </xs:element>
-	  </xs:choice>
-	  <xs:choice>
-	    <xs:annotation>
-	      <xs:documentation>An element can be defined either as a simple element or by a set
-                of isotopes fractions</xs:documentation>
-	    </xs:annotation>
-	    <xs:element name="atom" type="AtomType"></xs:element>
-	    <xs:element maxOccurs="unbounded" name="fraction">
-	      <xs:annotation>
-		<xs:documentation>An isotope fraction of an element where n is the actual amount
-		  of the isotope in the element</xs:documentation>
-	      </xs:annotation>
-	      <xs:complexType>
-		<xs:complexContent>
-		  <xs:extension base="ReferenceType">
-		    <xs:attribute name="n" type="xs:double" use="required"></xs:attribute>
-		  </xs:extension>
-		</xs:complexContent>
-	      </xs:complexType>
-	    </xs:element>
-	  </xs:choice>
-	</xs:sequence>
-	<xs:attribute name="N" type="xs:positiveInteger" use="optional">
-	  <xs:annotation>
-	    <xs:documentation>Number of nucleons</xs:documentation>
-	  </xs:annotation>
-	</xs:attribute>
-	<xs:attribute name="Z" type="xs:double" use="optional">
-	  <xs:annotation>
-	    <xs:documentation>Atomic number</xs:documentation>
-	  </xs:annotation>
-	</xs:attribute>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-  <xs:complexType name="MaterialMixtureType">
-    <xs:annotation>
-      <xs:documentation>Exported material composite or mixture type</xs:documentation>
-    </xs:annotation>
-    <xs:complexContent>
-      <!-- <xs:extension base="ComplexMaterialType"> -->
-      <xs:extension base="MaterialType">
-	<xs:sequence>
-	  <xs:choice>
-	    <xs:element name="D" type="DensityType">
-	      <xs:annotation>
-		<xs:documentation>Density quantity value</xs:documentation>
-	      </xs:annotation>
-	    </xs:element>
-	    <xs:element name="Dref" type="ReferenceType">
-	      <xs:annotation>
-		<xs:documentation>A reference to a previsouly defined named density quantity value</xs:documentation>
-	      </xs:annotation>
-	    </xs:element>
-	  </xs:choice>
-	  <xs:choice>
-	    <xs:annotation>
-	      <xs:documentation>A complex material can be defined as a simple mixture when
-                its material properties are known or as a composite material
-                or a mixture. A composite material is defined by a set of elements
-                by specifying the number of atoms.
-                The second way is by a set of material fractions where the fractions
-                can be either simple elements or other complex materials.
-                The restriction is that one can't mix composition by atoms and fractions
-                at the same time.</xs:documentation>
-						</xs:annotation>
-	    <xs:element name="atom" type="AtomType"></xs:element>
-	    <xs:element maxOccurs="unbounded" name="composite">
-	      <xs:annotation>
-		<xs:documentation>Elements of this composite material specified as a set of local references
-                  to already defined simple elements where value of n in each means the number of atoms</xs:documentation>
-	      </xs:annotation>
-	      <xs:complexType>
-		<xs:complexContent>
-		  <xs:extension base="ReferenceType">
-		    <xs:attribute name="n" type="xs:positiveInteger" use="required"></xs:attribute>
-		  </xs:extension>
-		</xs:complexContent>
-	      </xs:complexType>
-	    </xs:element>
-	    <xs:element maxOccurs="unbounded" name="fraction">
-	      <xs:annotation>
-		<xs:documentation>Fractions of this mixture specified as a set of local references to already defined
-                  elements or other mixtures where value of n in each means the fraction of the whole
-                  material in the range 0.0 &lt; n &lt; 1.0</xs:documentation>
-	      </xs:annotation>
-	      <xs:complexType>
-		<xs:complexContent>
-		  <xs:extension base="ReferenceType">
-		    <xs:attribute name="n" type="xs:double" use="required"></xs:attribute>
-		  </xs:extension>
-		</xs:complexContent>
-	      </xs:complexType>
-	    </xs:element>
-	  </xs:choice>
-	</xs:sequence>
-	<xs:attribute name="Z" type="xs:double" use="optional">
-	  <xs:annotation>
-	    <xs:documentation>Atomic number</xs:documentation>
-	  </xs:annotation>
-	</xs:attribute>
-      </xs:extension>
-    </xs:complexContent>
-  </xs:complexType>
-  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+    <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+    <xs:complexType name="DensityType">
+        <xs:annotation>
+            <xs:documentation>Density</xs:documentation>
+        </xs:annotation>
+        <xs:complexContent>
+            <xs:restriction base="QuantityType">
+                <xs:attribute default="g/cm3" type="xs:string" name="unit"></xs:attribute>
+                <xs:attribute fixed="density" type="xs:string" name="type"></xs:attribute>
+            </xs:restriction>
+        </xs:complexContent>
+    </xs:complexType>
+    <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+    <xs:group name="MaterialPropertiesGroup">
+        <xs:annotation>
+            <xs:documentation>General material properties</xs:documentation>
+        </xs:annotation>
+        <xs:sequence>
+            <xs:choice minOccurs="0">
+                <xs:element maxOccurs="unbounded" name="property">
+                    <xs:annotation>
+                        <xs:documentation>General material property (const or vector)</xs:documentation>
+                    </xs:annotation>
+                    <xs:complexType>
+                        <xs:complexContent>
+                            <xs:extension base="ReferenceType">
+                                <xs:attribute name="name" type="xs:string" use="required"></xs:attribute>
+                            </xs:extension>
+                        </xs:complexContent>
+                    </xs:complexType>
+                </xs:element>
+            </xs:choice>
+            <xs:choice minOccurs="0">
+                <xs:element name="RL">
+                    <xs:annotation>
+                        <xs:documentation>Radiation length</xs:documentation>
+                    </xs:annotation>
+                    <xs:complexType>
+                        <xs:complexContent>
+                            <xs:restriction base="QuantityType">
+                                <xs:attribute default="cm" type="xs:string" name="unit"></xs:attribute>
+                                <xs:attribute fixed="X0" type="xs:string" name="type"></xs:attribute>
+                            </xs:restriction>
+                        </xs:complexContent>
+                    </xs:complexType>
+                </xs:element>
+                <xs:element name="RLref" type="ReferenceType">
+                    <xs:annotation>
+                        <xs:documentation>A reference to a previsouly defined named radiation length quantity value</xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+            </xs:choice>
+            <xs:choice minOccurs="0">
+                <xs:element name="NIL">
+                    <xs:annotation>
+                        <xs:documentation>Nuclear interaction length</xs:documentation>
+                    </xs:annotation>
+                    <xs:complexType>
+                        <xs:complexContent>
+                            <xs:restriction base="QuantityType">
+                                <xs:attribute default="cm" type="xs:string" name="unit"></xs:attribute>
+                                <xs:attribute fixed="lambda" type="xs:string" name="type"></xs:attribute>
+                            </xs:restriction>
+                        </xs:complexContent>
+                    </xs:complexType>
+                </xs:element>
+                <xs:element name="NILref" type="ReferenceType">
+                    <xs:annotation>
+                        <xs:documentation>A reference to a previously defined named nuclear interaction length quantity value</xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+            </xs:choice>
+            <xs:choice minOccurs="0">
+                <xs:element name="AL">
+                    <xs:annotation>
+                        <xs:documentation>Absorption length</xs:documentation>
+                    </xs:annotation>
+                    <xs:complexType>
+                        <xs:complexContent>
+                            <xs:restriction base="QuantityType">
+                                <xs:attribute default="cm" type="xs:string" name="unit"></xs:attribute>
+                                <xs:attribute fixed="lambda" type="xs:string" name="type"></xs:attribute>
+                            </xs:restriction>
+                        </xs:complexContent>
+                    </xs:complexType>
+                </xs:element>
+                <xs:element name="ALref" type="ReferenceType">
+                    <xs:annotation>
+                        <xs:documentation>A reference to a previsouly defined named absorption length quantity value</xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+            </xs:choice>
+            <xs:choice minOccurs="0">
+                <xs:element name="T">
+                    <xs:annotation>
+                        <xs:documentation>Temperature</xs:documentation>
+                    </xs:annotation>
+                    <xs:complexType>
+                        <xs:complexContent>
+                            <xs:restriction base="QuantityType">
+                                <xs:attribute default="K" type="xs:string" name="unit"></xs:attribute>
+                                <xs:attribute fixed="temperature" type="xs:string" name="type"></xs:attribute>
+                            </xs:restriction>
+                        </xs:complexContent>
+                    </xs:complexType>
+                </xs:element>
+                <xs:element name="Tref" type="ReferenceType">
+                    <xs:annotation>
+                        <xs:documentation>A reference to previously defined named temperature quantity value</xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+            </xs:choice>
+            <xs:choice minOccurs="0">
+                <xs:element name="P">
+                    <xs:annotation>
+                        <xs:documentation>Pressure</xs:documentation>
+                    </xs:annotation>
+                    <xs:complexType>
+                        <xs:complexContent>
+                            <xs:restriction base="QuantityType">
+                                <xs:attribute default="pascal" type="xs:string" name="unit"></xs:attribute>
+                                <xs:attribute fixed="pressure" type="xs:string" name="type"></xs:attribute>
+                            </xs:restriction>
+                        </xs:complexContent>
+                    </xs:complexType>
+                </xs:element>
+                <xs:element name="Pref" type="ReferenceType">
+                    <xs:annotation>
+                        <xs:documentation>A reference to previously defined named pressure quantity value</xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+            </xs:choice>
+        </xs:sequence>
+    </xs:group>
+    <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+    <xs:attributeGroup name="MaterialAttributeGroup">
+        <xs:annotation>
+            <xs:documentation>General material attributes</xs:documentation>
+        </xs:annotation>
+        <xs:attribute name="name" type="xs:ID" use="required">
+            <xs:annotation>
+                <xs:documentation>Material name</xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="formula" type="xs:string" use="optional">
+            <xs:annotation>
+                <xs:documentation>Material chemical formula</xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute default="unknown" name="state">
+            <xs:annotation>
+                <xs:documentation>Material physical state</xs:documentation>
+            </xs:annotation>
+            <xs:simpleType>
+                <xs:restriction base="xs:NMTOKEN">
+                    <xs:enumeration value="gas"></xs:enumeration>
+                    <xs:enumeration value="liquid"></xs:enumeration>
+                    <xs:enumeration value="solid"></xs:enumeration>
+                    <xs:enumeration value="unknown"></xs:enumeration>
+                </xs:restriction>
+            </xs:simpleType>
+        </xs:attribute>
+    </xs:attributeGroup>
+    <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+    <xs:complexType name="MaterialType">
+        <xs:annotation>
+            <xs:documentation>Base type for materials</xs:documentation>
+        </xs:annotation>
+        <xs:group ref="MaterialPropertiesGroup"></xs:group>
+        <xs:attributeGroup ref="MaterialAttributeGroup"></xs:attributeGroup>
+    </xs:complexType>
+    <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+    <!--
+        <xs:complexType name="ComplexMaterialType">
+        <xs:annotation>
+        <xs:documentation>
+        Base type for complex materials
+        </xs:documentation>
+        </xs:annotation>
+        <xs:complexContent>
+        <xs:extension base="MaterialType">
+    -->
+    <!-- <xs:group ref="MaterialPropertiesGroup"/> -->
+    <!--
+        Removed from referenced attribute group
+        <xs:attribute name="N" use="prohibited"/>
+    -->
+    <!--        
+         <xs:attribute name="Z" type="xs:double" use="optional">
+         <xs:annotation>
+         <xs:documentation>Atomic number</xs:documentation>
+         </xs:annotation>
+         </xs:attribute>
+         </xs:extension>
+         </xs:complexContent>
+         </xs:complexType>
+    -->
+    <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+    <xs:element name="materials">
+        <xs:annotation>
+            <xs:documentation>Materials description</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice maxOccurs="unbounded">
+                <xs:element maxOccurs="unbounded" minOccurs="0" ref="loop"/>
+                <xs:element minOccurs="0" name="define" type="defineType">
+                    <xs:annotation>
+                        <xs:documentation>Material related definitons of constants and quantities
+                        In this version of schema these become visible in global scope</xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+                <xs:element maxOccurs="unbounded" minOccurs="0" name="isotope" type="MaterialIsotopeType">
+                    <xs:annotation>
+                        <xs:documentation>An isotope</xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+                <xs:element maxOccurs="unbounded" minOccurs="0" name="element" type="MaterialElementType">
+                    <xs:annotation>
+                        <xs:documentation>A simple element or an element composed of isotopes</xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+                <xs:element maxOccurs="unbounded" minOccurs="0" name="material" type="MaterialMixtureType">
+                    <xs:annotation>
+                        <xs:documentation>A composite or a mixture complex material</xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+            </xs:choice>
+        </xs:complexType>
+    </xs:element>
+    <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+    <xs:complexType name="MaterialIsotopeType">
+        <xs:annotation>
+            <xs:documentation>Exported isotope type</xs:documentation>
+        </xs:annotation>
+        <xs:complexContent>
+            <xs:extension base="MaterialType">
+                <xs:sequence>
+                    <xs:choice minOccurs="0">
+                        <xs:element name="D" type="DensityType">
+                            <xs:annotation>
+                                <xs:documentation>Density quantity value</xs:documentation>
+                            </xs:annotation>
+                        </xs:element>
+                        <xs:element name="Dref" type="ReferenceType">
+                            <xs:annotation>
+                                <xs:documentation>A reference to a previsouly defined named density quantity value</xs:documentation>
+                            </xs:annotation>
+                        </xs:element>
+                    </xs:choice>
+                    <xs:element name="atom" type="AtomType"></xs:element>
+                </xs:sequence>
+                <xs:attribute name="N" type="xs:positiveInteger" use="required">
+                    <xs:annotation>
+                        <xs:documentation>Number of nucleons</xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+                <xs:attribute name="Z" type="xs:double" use="required">
+                    <xs:annotation>
+                        <xs:documentation>Atomic number</xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+    <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+    <xs:complexType name="MaterialElementType">
+        <xs:annotation>
+            <xs:documentation>Exported material element type</xs:documentation>
+        </xs:annotation>
+        <xs:complexContent>
+            <xs:extension base="MaterialType">
+                <xs:sequence>
+                    <xs:choice minOccurs="0">
+                        <xs:element name="D" type="DensityType">
+                            <xs:annotation>
+                                <xs:documentation>Density quantity value</xs:documentation>
+                            </xs:annotation>
+                        </xs:element>
+                        <xs:element name="Dref" type="ReferenceType">
+                            <xs:annotation>
+                                <xs:documentation>A reference to a previsouly defined named density quantity value</xs:documentation>
+                            </xs:annotation>
+                        </xs:element>
+                    </xs:choice>
+                    <xs:choice>
+                        <xs:annotation>
+                            <xs:documentation>An element can be defined either as a simple element or by a set
+                            of isotopes fractions</xs:documentation>
+                        </xs:annotation>
+                        <xs:element name="atom" type="AtomType"></xs:element>
+                        <xs:element maxOccurs="unbounded" name="fraction">
+                            <xs:annotation>
+                                <xs:documentation>An isotope fraction of an element where n is the actual amount
+                                of the isotope in the element</xs:documentation>
+                            </xs:annotation>
+                            <xs:complexType>
+                                <xs:complexContent>
+                                    <xs:extension base="ReferenceType">
+                                        <xs:attribute name="n" type="xs:double" use="required"></xs:attribute>
+                                    </xs:extension>
+                                </xs:complexContent>
+                            </xs:complexType>
+                        </xs:element>
+                    </xs:choice>
+                </xs:sequence>
+                <xs:attribute name="N" type="xs:positiveInteger" use="optional">
+                    <xs:annotation>
+                        <xs:documentation>Number of nucleons</xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+                <xs:attribute name="Z" type="xs:double" use="optional">
+                    <xs:annotation>
+                        <xs:documentation>Atomic number</xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+    <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+    <xs:complexType name="MaterialMixtureType">
+        <xs:annotation>
+            <xs:documentation>Exported material composite or mixture type</xs:documentation>
+        </xs:annotation>
+        <xs:complexContent>
+            <!-- <xs:extension base="ComplexMaterialType"> -->
+            <xs:extension base="MaterialType">
+                <xs:sequence>
+                    <xs:choice>
+                        <xs:element name="D" type="DensityType">
+                            <xs:annotation>
+                                <xs:documentation>Density quantity value</xs:documentation>
+                            </xs:annotation>
+                        </xs:element>
+                        <xs:element name="Dref" type="ReferenceType">
+                            <xs:annotation>
+                                <xs:documentation>A reference to a previsouly defined named density quantity value</xs:documentation>
+                            </xs:annotation>
+                        </xs:element>
+                    </xs:choice>
+                    <xs:choice>
+                        <xs:annotation>
+                            <xs:documentation>A complex material can be defined as a simple mixture when
+                            its material properties are known or as a composite material
+                            or a mixture. A composite material is defined by a set of elements
+                            by specifying the number of atoms.
+                            The second way is by a set of material fractions where the fractions
+                            can be either simple elements or other complex materials.
+                            The restriction is that one can't mix composition by atoms and fractions
+                            at the same time.</xs:documentation>
+                        </xs:annotation>
+                        <xs:element name="atom" type="AtomType"></xs:element>
+                        <xs:element maxOccurs="unbounded" name="composite">
+                            <xs:annotation>
+                                <xs:documentation>Elements of this composite material specified as a set of local references
+                                to already defined simple elements where value of n in each means the number of atoms</xs:documentation>
+                            </xs:annotation>
+                            <xs:complexType>
+                                <xs:complexContent>
+                                    <xs:extension base="ReferenceType">
+                                        <xs:attribute name="n" type="xs:positiveInteger" use="required"></xs:attribute>
+                                    </xs:extension>
+                                </xs:complexContent>
+                            </xs:complexType>
+                        </xs:element>
+                        <xs:element maxOccurs="unbounded" name="fraction">
+                            <xs:annotation>
+                                <xs:documentation>Fractions of this mixture specified as a set of local references to already defined
+                                elements or other mixtures where value of n in each means the fraction of the whole
+                                material in the range 0.0 &lt; n &lt; 1.0</xs:documentation>
+                            </xs:annotation>
+                            <xs:complexType>
+                                <xs:complexContent>
+                                    <xs:extension base="ReferenceType">
+                                        <xs:attribute name="n" type="xs:double" use="required"></xs:attribute>
+                                    </xs:extension>
+                                </xs:complexContent>
+                            </xs:complexType>
+                        </xs:element>
+                    </xs:choice>
+                </xs:sequence>
+                <xs:attribute name="Z" type="xs:double" use="optional">
+                    <xs:annotation>
+                        <xs:documentation>Atomic number</xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+            </xs:extension>
+        </xs:complexContent>
+    </xs:complexType>
+    <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 </xs:schema>
CVSspam 0.2.8