source: trunk/source/persistency/gdml/schema/gdml_parameterised.xsd @ 1316

Last change on this file since 1316 was 1316, checked in by garnier, 14 years ago

update geant4-09-04-beta-cand-01 interfaces-V09-03-09 vis-V09-03-08

  • Property svn:executable set to *
File size: 14.9 KB
Line 
1<?xml version="1.0"?>
2<xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" version="1.0" xmlns:gdml="http://cern.ch/2001/Schemas/GDML" xmlns:xs="http://www.w3.org/2001/XMLSchema">
3  <xs:include schemaLocation="gdml_define.xsd"/>
4  <xs:include schemaLocation="gdml_extensions.xsd"/>
5  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
6  <xs:complexType abstract="false" name="DimensionsType">
7    <xs:annotation>
8      <xs:documentation>Abstract base for parametrised dimensions</xs:documentation>
9    </xs:annotation>
10  </xs:complexType>
11  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
12  <xs:element name="Dimensions" abstract="true" type="DimensionsType">
13    <xs:annotation>
14      <xs:documentation>Abstract element for substitution group</xs:documentation>
15    </xs:annotation>
16  </xs:element>
17  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
18  <xs:complexType name="BoxDimensionsType">
19    <xs:annotation>
20      <xs:documentation>Dimensions for parametrised Boxes. </xs:documentation>
21    </xs:annotation>
22    <xs:complexContent>
23      <xs:extension base="DimensionsType">
24        <xs:attribute default="1.0" name="x"    type="ExpressionOrIDREFType"></xs:attribute>
25        <xs:attribute default="1.0" name="y"    type="ExpressionOrIDREFType"></xs:attribute>
26        <xs:attribute default="1.0" name="z"    type="ExpressionOrIDREFType"></xs:attribute>
27        <xs:attribute default="mm" name="lunit" type="xs:string"></xs:attribute>
28      </xs:extension>
29    </xs:complexContent>
30  </xs:complexType>
31  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
32  <xs:element name="box_dimensions" substitutionGroup="Dimensions" type="BoxDimensionsType"/>
33   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
34  <xs:complexType name="TrdDimensionsType">
35    <xs:annotation>
36      <xs:documentation>Dimensions for parametrised Trd. </xs:documentation>
37    </xs:annotation>
38    <xs:complexContent>
39      <xs:extension base="DimensionsType">
40        <xs:attribute default="1.0" name="x1"   type="ExpressionOrIDREFType"></xs:attribute>
41        <xs:attribute default="1.0" name="x2"   type="ExpressionOrIDREFType"></xs:attribute>
42        <xs:attribute default="1.0" name="y1"   type="ExpressionOrIDREFType"></xs:attribute>
43        <xs:attribute default="1.0" name="y2"   type="ExpressionOrIDREFType"></xs:attribute>
44        <xs:attribute default="1.0" name="z"    type="ExpressionOrIDREFType"></xs:attribute>
45        <xs:attribute default="mm" name="lunit" type="xs:string"></xs:attribute>
46      </xs:extension>
47    </xs:complexContent>
48  </xs:complexType>
49  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
50  <xs:element name="trd_dimensions" substitutionGroup="Dimensions" type="TrdDimensionsType"/>
51  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
52  <xs:complexType name="TrapDimensionsType">
53    <xs:annotation>
54      <xs:documentation>Dimensions for parametrised Trap. </xs:documentation>
55    </xs:annotation>
56    <xs:complexContent>
57      <xs:extension base="DimensionsType">
58        <xs:attribute default="1.0" name="z"      type="ExpressionOrIDREFType"></xs:attribute>
59        <xs:attribute default="1.0" name="theta"  type="ExpressionOrIDREFType"></xs:attribute>
60        <xs:attribute default="1.0" name="phi"    type="ExpressionOrIDREFType"></xs:attribute>
61        <xs:attribute default="1.0" name="y1"     type="ExpressionOrIDREFType"></xs:attribute>
62        <xs:attribute default="1.0" name="x1"     type="ExpressionOrIDREFType"></xs:attribute>
63        <xs:attribute default="1.0" name="x2"     type="ExpressionOrIDREFType"></xs:attribute>
64        <xs:attribute default="1.0" name="alpha1" type="ExpressionOrIDREFType"></xs:attribute>
65        <xs:attribute default="1.0" name="y2"     type="ExpressionOrIDREFType"></xs:attribute>
66        <xs:attribute default="1.0" name="x3"     type="ExpressionOrIDREFType"></xs:attribute>
67        <xs:attribute default="1.0" name="x4"     type="ExpressionOrIDREFType"></xs:attribute>
68        <xs:attribute default="1.0" name="alpha2" type="ExpressionOrIDREFType"></xs:attribute>
69        <xs:attribute default="mm" name="lunit"   type="xs:string"></xs:attribute>
70        <xs:attribute default="radian" name="aunit" type="xs:string"></xs:attribute>
71      </xs:extension>
72    </xs:complexContent>
73  </xs:complexType>
74  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
75  <xs:element name="trap_dimensions" substitutionGroup="Dimensions" type="TrapDimensionsType"/>
76  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
77  <xs:complexType name="TubeDimensionsType">
78    <xs:annotation>
79      <xs:documentation>Dimensions for parametrised Tubes. </xs:documentation>
80    </xs:annotation>
81    <xs:complexContent>
82      <xs:extension base="DimensionsType">
83        <xs:attribute default="1.0" name="DeltaPhi" type="ExpressionOrIDREFType"></xs:attribute>
84        <xs:attribute default="1.0" name="InR"      type="ExpressionOrIDREFType"></xs:attribute>
85        <xs:attribute default="1.0" name="OutR"     type="ExpressionOrIDREFType"></xs:attribute>
86        <xs:attribute default="0.0" name="StartPhi" type="ExpressionOrIDREFType"></xs:attribute>
87        <xs:attribute default="1.0" name="hz"       type="ExpressionOrIDREFType"></xs:attribute>
88        <xs:attribute default="mm"  name="lunit"    type="xs:string"></xs:attribute>
89        <xs:attribute default="radian" name="aunit" type="xs:string"></xs:attribute>
90      </xs:extension>
91    </xs:complexContent>
92  </xs:complexType>
93  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
94  <xs:element name="tube_dimensions" substitutionGroup="Dimensions" type="TubeDimensionsType"/>
95   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
96  <xs:complexType name="ConeDimensionsType">
97    <xs:annotation>
98      <xs:documentation>Dimensions for parametrised Cones. </xs:documentation>
99    </xs:annotation>
100    <xs:complexContent>
101      <xs:extension base="DimensionsType">
102        <xs:attribute default="1.0" name="rmin1"    type="ExpressionOrIDREFType"></xs:attribute>
103        <xs:attribute default="1.0" name="rmax1"    type="ExpressionOrIDREFType"></xs:attribute>
104        <xs:attribute default="1.0" name="rmin2"    type="ExpressionOrIDREFType"></xs:attribute>
105        <xs:attribute default="1.0" name="rmax2"    type="ExpressionOrIDREFType"></xs:attribute>
106        <xs:attribute default="1.0" name="z"        type="ExpressionOrIDREFType"></xs:attribute>
107        <xs:attribute default="0.0" name="startphi" type="ExpressionOrIDREFType"></xs:attribute>
108        <xs:attribute default="1.0" name="deltaphi" type="ExpressionOrIDREFType"></xs:attribute>
109        <xs:attribute default="mm"  name="lunit"    type="xs:string"></xs:attribute>
110        <xs:attribute default="radian" name="aunit" type="xs:string"></xs:attribute>
111      </xs:extension>
112    </xs:complexContent>
113  </xs:complexType>
114  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
115  <xs:element name="cone_dimensions" substitutionGroup="Dimensions" type="ConeDimensionsType"/>
116  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
117  <xs:complexType name="SphereDimensionsType">
118    <xs:annotation>
119      <xs:documentation>Dimensions for parametrised Spheres. </xs:documentation>
120    </xs:annotation>
121    <xs:complexContent>
122      <xs:extension base="DimensionsType">
123        <xs:attribute default="1.0" name="rmin"       type="ExpressionOrIDREFType"></xs:attribute>
124        <xs:attribute default="1.0" name="rmax"       type="ExpressionOrIDREFType"></xs:attribute>
125        <xs:attribute default="0.0" name="starttheta" type="ExpressionOrIDREFType"></xs:attribute>
126        <xs:attribute default="1.0" name="deltatheta" type="ExpressionOrIDREFType"></xs:attribute>
127        <xs:attribute default="0.0" name="startphi"   type="ExpressionOrIDREFType"></xs:attribute>
128        <xs:attribute default="1.0" name="deltaphi"   type="ExpressionOrIDREFType"></xs:attribute>
129        <xs:attribute default="mm"  name="lunit"      type="xs:string"></xs:attribute>
130        <xs:attribute default="radian" name="aunit"   type="xs:string"></xs:attribute>
131      </xs:extension>
132    </xs:complexContent>
133  </xs:complexType>
134  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
135  <xs:element name="sphere_dimensions" substitutionGroup="Dimensions" type="SphereDimensionsType"/>
136  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
137  <xs:complexType name="OrbDimensionsType">
138    <xs:annotation>
139      <xs:documentation>Dimensions for parametrised Orbs. </xs:documentation>
140    </xs:annotation>
141    <xs:complexContent>
142      <xs:extension base="DimensionsType">
143        <xs:attribute default="1.0" name="r"       type="ExpressionOrIDREFType"></xs:attribute>
144        <xs:attribute default="mm"  name="lunit"   type="xs:string"></xs:attribute>
145      </xs:extension>
146    </xs:complexContent>
147  </xs:complexType>
148  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
149  <xs:element name="orb_dimensions" substitutionGroup="Dimensions" type="OrbDimensionsType"/>
150   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
151  <xs:complexType name="TorusDimensionsType">
152    <xs:annotation>
153      <xs:documentation>Dimensions for parametrised Torus. </xs:documentation>
154    </xs:annotation>
155    <xs:complexContent>
156      <xs:extension base="DimensionsType">
157        <xs:attribute default="1.0" name="rmin"       type="ExpressionOrIDREFType"></xs:attribute>
158        <xs:attribute default="1.0" name="rmax"       type="ExpressionOrIDREFType"></xs:attribute>
159        <xs:attribute default="1.0" name="rtor"       type="ExpressionOrIDREFType"></xs:attribute>
160        <xs:attribute default="0.0" name="startphi"   type="ExpressionOrIDREFType"></xs:attribute>
161        <xs:attribute default="1.0" name="deltaphi"   type="ExpressionOrIDREFType"></xs:attribute>
162        <xs:attribute default="mm"  name="lunit"      type="xs:string"></xs:attribute>
163        <xs:attribute default="radian" name="aunit"   type="xs:string"></xs:attribute>
164      </xs:extension>
165    </xs:complexContent>
166  </xs:complexType>
167  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
168  <xs:element name="torus_dimensions" substitutionGroup="Dimensions" type="TorusDimensionsType"/>
169   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
170  <xs:complexType name="ParaDimensionsType">
171    <xs:annotation>
172      <xs:documentation>Dimensions for parametrised Paras. </xs:documentation>
173    </xs:annotation>
174    <xs:complexContent>
175      <xs:extension base="DimensionsType">
176        <xs:attribute default="1.0" name="x"        type="ExpressionOrIDREFType"></xs:attribute>
177        <xs:attribute default="1.0" name="y"        type="ExpressionOrIDREFType"></xs:attribute>
178        <xs:attribute default="1.0" name="z"        type="ExpressionOrIDREFType"></xs:attribute>
179        <xs:attribute default="1.0" name="alpha"    type="ExpressionOrIDREFType"></xs:attribute>
180        <xs:attribute default="1.0" name="theta"    type="ExpressionOrIDREFType"></xs:attribute>
181        <xs:attribute default="1.0" name="phi"      type="ExpressionOrIDREFType"></xs:attribute>
182        <xs:attribute default="mm"  name="lunit"    type="xs:string"></xs:attribute>
183        <xs:attribute default="radian" name="aunit" type="xs:string"></xs:attribute>
184      </xs:extension>
185    </xs:complexContent>
186  </xs:complexType>
187  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
188  <xs:element name="para_dimensions" substitutionGroup="Dimensions" type="ParaDimensionsType"/>
189   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
190  <xs:complexType name="HypeDimensionsType">
191    <xs:annotation>
192      <xs:documentation>Dimensions for parametrised Hypes. </xs:documentation>
193    </xs:annotation>
194    <xs:complexContent>
195      <xs:extension base="DimensionsType">
196        <xs:attribute default="1.0" name="rmin"     type="ExpressionOrIDREFType"></xs:attribute>
197        <xs:attribute default="1.0" name="rmax"     type="ExpressionOrIDREFType"></xs:attribute>
198        <xs:attribute default="1.0" name="inst"     type="ExpressionOrIDREFType"></xs:attribute>
199        <xs:attribute default="1.0" name="outst"    type="ExpressionOrIDREFType"></xs:attribute>
200        <xs:attribute default="1.0" name="z"        type="ExpressionOrIDREFType"></xs:attribute>
201        <xs:attribute default="mm"  name="lunit"    type="xs:string"></xs:attribute>
202        <xs:attribute default="radian" name="aunit" type="xs:string"></xs:attribute>
203      </xs:extension>
204    </xs:complexContent>
205  </xs:complexType>
206  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
207  <xs:element name="hype_dimensions" substitutionGroup="Dimensions" type="HypeDimensionsType"/>
208  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
209  <xs:complexType abstract="false" name="ParameterisationAlgorithmType">
210    <xs:annotation>
211      <xs:documentation>Abstract base for parameterised placement strategies</xs:documentation>
212    </xs:annotation>
213  </xs:complexType>
214  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
215  <xs:element name="ParameterisationAlgorithm" abstract="true" type="ParameterisationAlgorithmType">
216    <xs:annotation>
217      <xs:documentation>Abstract element for substitution group</xs:documentation>
218    </xs:annotation>
219  </xs:element>
220  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
221  <xs:complexType name="PositionSizeParameterisationAlgorithmType">
222    <xs:annotation>
223      <xs:documentation>Parameterised volumes get created using
224        the tabularized position and sizes. </xs:documentation>
225    </xs:annotation>
226    <xs:complexContent>
227      <xs:extension base="ParameterisationAlgorithmType">
228        <xs:sequence>
229          <xs:element maxOccurs="unbounded" name="parameters" type="ParametersType"/>
230        </xs:sequence>
231      </xs:extension>
232    </xs:complexContent>
233  </xs:complexType>
234  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
235  <xs:element name="parameterised_position_size" substitutionGroup="ParameterisationAlgorithm" type="PositionSizeParameterisationAlgorithmType"/>
236  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
237  <xs:complexType name="ParameterisedPlacementType">
238    <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
239    <xs:annotation>
240      <xs:documentation>Base type for parameterised volumes</xs:documentation>
241    </xs:annotation>
242    <xs:sequence>
243      <xs:element name="volumeref" type="ReferenceType"></xs:element> 
244      <xs:element ref="ParameterisationAlgorithm"/> 
245    </xs:sequence>
246    <xs:attribute name="ncopies" type="xs:positiveInteger" use="required"/>
247  </xs:complexType>
248  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
249  <xs:element name="paramvol" type="ParameterisedPlacementType"/>
250  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
251  <xs:complexType name="ParametersType">
252    <xs:annotation>
253      <xs:documentation>
254        Holds parameteres for parameterised volumes.
255      </xs:documentation>
256    </xs:annotation>
257    <xs:sequence>
258      <xs:element type="positionType" name="position"/>
259      <xs:element ref="Dimensions"/>
260    </xs:sequence>
261    <xs:attribute type="xs:positiveInteger" use="required" name="number"/>
262  </xs:complexType>
263</xs:schema>
Note: See TracBrowser for help on using the repository browser.