Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/persistency/gdml/schema/gdml.xsd

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

  1 <?xml version="1.0" encoding="UTF-8"?>
  2 <xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" version="1.0" xmlns:gdml="http://cern.ch/service-spi/app/releases/GDML/schema" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  3   <xs:include schemaLocation="gdml_core.xsd"/>
  4   <xs:include schemaLocation="gdml_define.xsd"/>
  5   <xs:include schemaLocation="gdml_materials.xsd"/>
  6   <xs:include schemaLocation="gdml_solids.xsd"/>
  7   <xs:include schemaLocation="gdml_replicas.xsd"/>
  8   <xs:include schemaLocation="gdml_parameterised.xsd"/>
  9   <xs:include schemaLocation="gdml_extensions.xsd"/>
 10   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 11   <xs:complexType abstract="true" name="IdentifiableVolumeType">
 12     <xs:attribute name="name" type="xs:ID" use="required"/>
 13   </xs:complexType>
 14   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 15   <xs:complexType name="SinglePlacementType">
 16     <xs:annotation>
 17       <xs:documentation>Represents a single unique copy a of an associated logical volume
 18         in geometrical hierarchy</xs:documentation>
 19     </xs:annotation>
 20     <xs:sequence>
 21       <xs:choice minOccurs="1">
 22   <xs:element name="file" type="FileReferenceType"/>
 23   <xs:element name="volumeref" type="ReferenceType"/>
 24       </xs:choice>      
 25       <xs:choice minOccurs="0">
 26   <xs:element name="position" type="positionType"/>
 27   <xs:element name="positionref" type="ReferenceType"/>
 28       </xs:choice>
 29       <xs:choice minOccurs="0">
 30   <xs:element name="rotation" type="rotationType"/>
 31   <xs:element name="rotationref" type="ReferenceType"/>
 32       </xs:choice>
 33       <xs:choice minOccurs="0">
 34   <xs:element name="scale" type="scaleType"/>
 35   <xs:element name="scaleref" type="ReferenceType"/>
 36       </xs:choice>
 37     </xs:sequence>
 38     <xs:attribute name="name" type="xs:ID"></xs:attribute>
 39     <xs:attribute name="copynumber" type="xs:integer"/>
 40   </xs:complexType>
 41   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 42   <xs:complexType name="DivisionPlacementType">
 43     <xs:annotation>
 44       <xs:documentation>Represents a division of the associated logical volume
 45         in geometrical hierarchy</xs:documentation>
 46     </xs:annotation>
 47     <xs:sequence>
 48       <xs:element name="volumeref" type="ReferenceType"/>
 49     </xs:sequence>
 50     <xs:attribute name="axis" type="xs:string" use="required"></xs:attribute>
 51     <xs:attribute name="number" type="ExpressionOrIDREFType" use="required"></xs:attribute>
 52     <xs:attribute name="width" type="ExpressionOrIDREFType" use="required"></xs:attribute>
 53     <xs:attribute name="offset" type="ExpressionOrIDREFType" use="required"></xs:attribute>
 54     <xs:attribute default="mm" name="unit" type="xs:string"></xs:attribute>
 55   </xs:complexType>
 56   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 57   <xs:complexType name="VolumeType">
 58     <xs:annotation>
 59       <xs:documentation>Represents a top of a geometrical sub-hierarchy not placed in space
 60         None of its children can coincide with its boundary defined by an associated solid
 61         Two different placements of the same logical volume represent two different geometrical
 62         hierarchies in space</xs:documentation>
 63     </xs:annotation>
 64     <xs:complexContent>
 65       <xs:extension base="IdentifiableVolumeType">
 66   <xs:sequence>
 67     <xs:element name="materialref" type="ReferenceType"/>
 68     <xs:element name="solidref" type="ReferenceType"/>    
 69     <xs:choice minOccurs="0">     
 70       <xs:element maxOccurs="unbounded" name="physvol" type="SinglePlacementType"/>
 71       <xs:element maxOccurs="1" minOccurs="1" name="divisionvol" type="DivisionPlacementType"/>
 72       <xs:element maxOccurs="1" minOccurs="1" ref="replicavol"/>
 73       <xs:element maxOccurs="1" minOccurs="1" name="paramvol" type="ParameterisedPlacementType"/>
 74     </xs:choice>
 75     <xs:element maxOccurs="unbounded" minOccurs="0" ref="loop"/>
 76     <xs:element name="auxiliary" maxOccurs="unbounded" minOccurs="0" type="AuxiliaryType"/>
 77   </xs:sequence>
 78       </xs:extension>
 79     </xs:complexContent>
 80   </xs:complexType>
 81   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 82   <xs:complexType name="AssemblyVolumeType">
 83     <xs:annotation>
 84       <xs:documentation>Allows to create a group of volumes bound together without a boundary
 85         All the volumes exits inside the same virtual reference system of the assmebly volume
 86         they belong to
 87         When assembly volume is placed all its children follow the global transformation applied
 88         to their assembly volume
 89         After the assembly volume is placed its children exist as standalone placements in space
 90         independent of each other</xs:documentation>
 91     </xs:annotation>
 92     <xs:complexContent>
 93       <xs:extension base="IdentifiableVolumeType">
 94   <xs:choice>
 95     <xs:element maxOccurs="unbounded" name="physvol" type="SinglePlacementType"/>
 96     <xs:element maxOccurs="1" minOccurs="1" ref="replicavol"/>
 97     <xs:element maxOccurs="1" minOccurs="1" name="paramvol" type="ParameterisedPlacementType"/>
 98   </xs:choice>
 99       </xs:extension>
100     </xs:complexContent>
101   </xs:complexType>
102   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
103   <xs:complexType name="LogicalSurfaceType">
104     <xs:annotation>
105       <xs:documentation>Base type for logical surfaces (for the moment only optical)
106       </xs:documentation>
107     </xs:annotation>
108     <xs:attribute name="name" type="xs:ID" use="required"></xs:attribute>
109     <xs:attribute name="surfaceproperty" type="ExpressionOrIDREFType" use="required"></xs:attribute>
110   </xs:complexType>
111   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
112   <xs:element abstract="true" name="Surface" type="LogicalSurfaceType">
113     <xs:annotation>
114       <xs:documentation>Abstract element for all solids substitution group</xs:documentation>
115     </xs:annotation>
116   </xs:element>
117   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
118   <xs:element name="bordersurface" substitutionGroup="Surface">
119     <xs:annotation>
120       <xs:documentation>Surface between two physical volumes</xs:documentation>
121     </xs:annotation>
122       <xs:complexType>
123       <xs:complexContent>
124   <xs:extension base="LogicalSurfaceType">
125    <xs:sequence>
126     <xs:element name="physvolref" type="ReferenceType"/>
127     <xs:element name="physvolref" type="ReferenceType"/>
128    </xs:sequence>
129   </xs:extension>
130       </xs:complexContent>
131      </xs:complexType>
132   </xs:element>
133   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
134   <xs:element name="skinsurface" substitutionGroup="Surface">
135     <xs:annotation>
136       <xs:documentation>Surface between two physical volumes</xs:documentation>
137     </xs:annotation>
138      <xs:complexType>
139       <xs:complexContent>
140   <xs:extension base="LogicalSurfaceType">
141     <xs:sequence>
142              <xs:element name="volumeref" type="ReferenceType"/>
143     </xs:sequence>
144   </xs:extension>
145       </xs:complexContent>
146      </xs:complexType>
147   </xs:element>
148   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
149   <xs:element name="structure">
150     <xs:annotation>
151       <xs:documentation>Definitions of a geometrical hierarchy of a set of volumes</xs:documentation>
152     </xs:annotation>
153     <xs:complexType>
154       <xs:sequence>
155   <xs:choice maxOccurs="unbounded">
156     <xs:element name="volume" type="VolumeType"/>
157     <xs:element name="assembly" type="AssemblyVolumeType"/>
158     <xs:element maxOccurs="unbounded" minOccurs="0" ref="loop"/>
159     <xs:element ref="ParameterisationAlgorithm"/>
160   </xs:choice>
161   <xs:element minOccurs="0" maxOccurs="unbounded" ref="Surface"/>
162       </xs:sequence>
163     </xs:complexType>
164   </xs:element>
165   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
166   <xs:element name="gdml">
167     <xs:complexType>
168       <xs:sequence>
169   <xs:element ref="define"/>
170   <xs:element ref="materials"/>
171   <xs:element ref="solids"/>
172   <xs:element ref="structure"/>
173   <xs:element minOccurs="0" maxOccurs="1" name="userinfo">
174     <xs:complexType>
175       <xs:sequence>
176         <xs:element maxOccurs="unbounded" minOccurs="0" name="auxiliary" type="AuxiliaryType"/>
177       </xs:sequence>
178     </xs:complexType>   
179   </xs:element>
180   
181   <xs:element maxOccurs="unbounded" name="setup">
182     <xs:annotation>
183       <xs:documentation>Geometry setup representing the particular geometry hierarchy by refferring to
184               a given volume which becomes the top level volume</xs:documentation>
185     </xs:annotation>
186     <xs:complexType>
187       <xs:sequence>
188         <xs:element name="world" type="ReferenceType">
189     <xs:annotation>
190       <xs:documentation>A reference to the previously defined volume
191                     in the structure block chosen by this setup
192                     World volumme can't be an assembly volume</xs:documentation>
193     </xs:annotation>
194         </xs:element>
195       </xs:sequence>
196       <xs:attribute name="name" type="xs:ID" use="required"/>
197       <xs:attribute name="version" type="xs:string" use="required"/>
198     </xs:complexType>
199   </xs:element>
200       </xs:sequence>
201       <xs:attribute fixed="3.1.7" name="version" type="xs:string">
202   <xs:annotation>
203     <xs:documentation>The GDML Schema version consists of 3 digits X.Y.Z
204             where these mean:
205             X - major number, increased when major new
206             features or backward incompatible bug fixes
207             are added and means the GDML Processor is
208             allowed to refuse processing of such a
209             document if this is using the more recent
210             version of the GDML Schema then GDML Processor
211             understands 
212             Y - minor number, increased when incremental and
213             backward compatible changes or improvements
214             are made into the GDML Schema. GDML Processor
215             should be able to process such a document
216             using higher minor version number then that of
217             the GDML Processor
218             Z - bugfix revision number, increased when fully
219             backward compatible changes which resolve a
220             problem in GDML Schema are applied</xs:documentation>
221   </xs:annotation>
222       </xs:attribute>
223     </xs:complexType>
224   </xs:element>
225 </xs:schema>