Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/persistency/gdml/schema/gdml_solids.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 <!DOCTYPE xs:schema []>
  3 <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">
  4   <xs:include schemaLocation="gdml_core.xsd"></xs:include>
  5   <xs:include schemaLocation="gdml_define.xsd"></xs:include>
  6   <xs:include schemaLocation="gdml_extensions.xsd"/>
  7   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
  8   
  9   <xs:complexType name="SolidType">
 10     <xs:annotation>
 11       <xs:documentation>Base solid type</xs:documentation>
 12     </xs:annotation>
 13     <xs:attribute default="mm" name="lunit" type="xs:string">
 14       <xs:annotation>
 15   <xs:documentation>Length unit of all dimensions used for this instance of solid</xs:documentation>
 16       </xs:annotation>
 17     </xs:attribute>
 18     <xs:attribute default="radian" name="aunit" type="xs:string">
 19       <xs:annotation>
 20   <xs:documentation>Angle unit of angles used in definition of this solid</xs:documentation>
 21       </xs:annotation>
 22     </xs:attribute>
 23     <xs:attribute name="name" type="xs:ID" use="required"></xs:attribute>
 24   </xs:complexType>
 25   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 26   
 27   <xs:complexType name="BooleanSolidType">
 28     <xs:annotation>
 29       <xs:documentation>Base type for boolean solids</xs:documentation>
 30     </xs:annotation>
 31     <xs:complexContent>
 32       <xs:extension base="SolidType">
 33   <xs:sequence>
 34     <xs:element name="first" type="ReferenceType"></xs:element>
 35     <xs:element name="second" type="ReferenceType"></xs:element>
 36     <xs:choice minOccurs="0">
 37       <xs:element name="position" type="positionType"></xs:element>
 38       <xs:element name="positionref" type="ReferenceType"></xs:element>
 39     </xs:choice>
 40     <xs:choice minOccurs="0">
 41       <xs:element name="rotation" type="rotationType"></xs:element>
 42       <xs:element name="rotationref" type="ReferenceType"></xs:element>
 43     </xs:choice>
 44     <xs:choice minOccurs="0">
 45       <xs:element name="firstposition" type="positionType"></xs:element>
 46       <xs:element name="firstpositionref" type="ReferenceType"></xs:element>
 47     </xs:choice>
 48     <xs:choice minOccurs="0">
 49       <xs:element name="firstrotation" type="rotationType"></xs:element>
 50       <xs:element name="firstrotationref" type="ReferenceType"></xs:element>
 51     </xs:choice>
 52   </xs:sequence>
 53       </xs:extension>
 54     </xs:complexContent>
 55   </xs:complexType>
 56   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 57 
 58   <xs:complexType name="multiUnionNode">
 59     <xs:annotation>
 60       <xs:documentation>Base node for Multi-Union structure</xs:documentation>
 61     </xs:annotation>
 62     <xs:complexContent>
 63       <xs:extension base="SolidType">
 64   <xs:sequence>
 65     <xs:element name="solid" type="ReferenceType"></xs:element>
 66           <xs:choice minOccurs="0">
 67             <xs:element name="position" type="positionType"></xs:element>
 68             <xs:element name="positionref" type="ReferenceType"></xs:element>
 69           </xs:choice>
 70           <xs:choice minOccurs="0">
 71             <xs:element name="rotation" type="rotationType"></xs:element>
 72             <xs:element name="rotationref" type="ReferenceType"></xs:element>
 73           </xs:choice>
 74   </xs:sequence>
 75       </xs:extension>
 76     </xs:complexContent>
 77   </xs:complexType>
 78   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 79   
 80   <xs:element name="multiUnion" substitutionGroup="Solid">
 81     <xs:annotation>
 82       <xs:documentation>MultiUnion is a Solid created by Union of many Solids.
 83        This Solid is constructed by multiUnionNodes;
 84        each Node is described by solid with its position and rotation.
 85       </xs:documentation>
 86     </xs:annotation>
 87     <xs:complexType>
 88       <xs:complexContent>
 89   <xs:extension base="SolidType">
 90     <xs:sequence>
 91       <xs:element name="multiUnionNode" minOccurs="1" maxOccurs="unbounded" type="multiUnionNode"/> 
 92     </xs:sequence>
 93    </xs:extension>
 94       </xs:complexContent>
 95     </xs:complexType>
 96   </xs:element>  
 97   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
 98 
 99   <xs:element name="reflectedSolid" substitutionGroup="Solid">
100     <xs:annotation>
101       <xs:documentation>Reflected solid: 
102         sx, sy, sz are scale components (containing reflection),
103         rx, ry, rz are rotation angles around given axes and 
104         dx, dy, dz is the translation.
105       </xs:documentation>
106     </xs:annotation>
107     <xs:complexType>
108       <xs:complexContent>
109   <xs:extension base="SolidType">
110     <xs:attribute name="solid" type="ExpressionOrIDREFType" use="required"></xs:attribute>
111     <xs:attribute default="1.0" name="sx" type="ExpressionOrIDREFType"></xs:attribute>
112     <xs:attribute default="1.0" name="sy" type="ExpressionOrIDREFType"></xs:attribute>
113     <xs:attribute default="1.0" name="sz" type="ExpressionOrIDREFType"></xs:attribute>
114     <xs:attribute default="0.0" name="rx" type="ExpressionOrIDREFType"></xs:attribute>
115     <xs:attribute default="0.0" name="ry" type="ExpressionOrIDREFType"></xs:attribute>
116     <xs:attribute default="0.0" name="rz" type="ExpressionOrIDREFType"></xs:attribute>
117     <xs:attribute default="0.0" name="dx" type="ExpressionOrIDREFType"></xs:attribute>
118     <xs:attribute default="0.0" name="dy" type="ExpressionOrIDREFType"></xs:attribute>
119     <xs:attribute default="0.0" name="dz" type="ExpressionOrIDREFType"></xs:attribute>
120   </xs:extension>
121       </xs:complexContent>
122     </xs:complexType>
123   </xs:element>
124   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
125 
126   <xs:element name="scaledSolid" substitutionGroup="Solid">
127     <xs:annotation>
128       <xs:documentation>Scaled solid: 
129         For the scale component, values must be greater than zero.
130       </xs:documentation>
131     </xs:annotation>
132     <xs:complexType>
133       <xs:complexContent>
134   <xs:extension base="SolidType">
135     <xs:sequence>
136       <xs:element name="solidref" type="ReferenceType"></xs:element>
137             <xs:choice minOccurs="1">
138               <xs:element name="scale" type="scaleType"></xs:element>
139               <xs:element name="scaleref" type="ReferenceType"></xs:element>
140             </xs:choice>
141     </xs:sequence>
142   </xs:extension>
143       </xs:complexContent>
144     </xs:complexType>
145   </xs:element>
146   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
147 
148   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
149   <xs:group name="OpticalSurfacePropertiesGroup">
150     <xs:annotation>
151       <xs:documentation>General optical surface properties</xs:documentation>
152     </xs:annotation>
153     <xs:sequence>
154     <xs:choice minOccurs="0">
155       <xs:element maxOccurs="unbounded" name="property">
156         <xs:annotation>
157     <xs:documentation>General optical surface property (const or vector)</xs:documentation>
158         </xs:annotation>
159         <xs:complexType>
160     <xs:complexContent>
161       <xs:extension base="ReferenceType">
162         <xs:attribute name="name" type="xs:string" use="required"></xs:attribute>
163       </xs:extension>
164     </xs:complexContent>
165         </xs:complexType>
166       </xs:element>
167           </xs:choice>
168     </xs:sequence>
169   </xs:group>
170 
171   
172   <xs:complexType name="SurfacePropertyType">
173     <xs:annotation>
174       <xs:documentation>Base surface type</xs:documentation>
175     </xs:annotation>
176     <xs:group ref="OpticalSurfacePropertiesGroup"></xs:group> 
177     <xs:attribute name="name" type="xs:ID" use="required"></xs:attribute>
178     <xs:attribute name="type" type="xs:string" default="dielectric_dielectric"></xs:attribute>
179   </xs:complexType>
180   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
181   
182   <xs:element abstract="true" name="Solid" type="SolidType">
183     <xs:annotation>
184       <xs:documentation>Abstract element for all solids substitution group</xs:documentation>
185     </xs:annotation>
186   </xs:element>
187   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
188   
189   <xs:element abstract="true" name="SurfaceProperty" type="SurfacePropertyType">
190     <xs:annotation>
191       <xs:documentation>Abstract element for surfaces substitution</xs:documentation>
192     </xs:annotation>
193   </xs:element>
194   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
195   
196   <xs:element name="solids">
197     <xs:annotation>
198       <xs:documentation>Solids definitions block</xs:documentation>
199     </xs:annotation>
200     <xs:complexType>
201       <xs:choice maxOccurs="unbounded">
202   <xs:element minOccurs="0" name="define" type="defineType">
203     <xs:annotation>
204       <xs:documentation>Definitions of constants and expressions to be used for solids'
205               dimensions and transformations
206               In this version these become part of the global scope.</xs:documentation>
207     </xs:annotation>
208   </xs:element>
209   <xs:element maxOccurs="unbounded" ref="Solid"></xs:element>
210   <xs:element minOccurs="0" maxOccurs="unbounded" ref="SurfaceProperty"></xs:element>
211   <xs:element maxOccurs="unbounded" minOccurs="0" ref="loop"/>  
212       </xs:choice>
213     </xs:complexType>
214   </xs:element>
215   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
216   
217   <xs:element name="union" substitutionGroup="Solid" type="BooleanSolidType">
218     <xs:annotation>
219       <xs:documentation>Exported boolean union of two solids</xs:documentation>
220     </xs:annotation>
221   </xs:element>
222   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
223   
224   <xs:element name="subtraction" substitutionGroup="Solid" type="BooleanSolidType">
225     <xs:annotation>
226       <xs:documentation>Exported boolean subtraction of two solids</xs:documentation>
227     </xs:annotation>
228   </xs:element>
229   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
230   
231   <xs:element name="intersection" substitutionGroup="Solid" type="BooleanSolidType">
232     <xs:annotation>
233       <xs:documentation>Exported boolean intersectioin of two solids</xs:documentation>
234     </xs:annotation>
235   </xs:element>
236   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
237   
238   <xs:element name="box" substitutionGroup="Solid">
239     <xs:annotation>
240       <xs:documentation>CSG box solid described by 3 dimensions of x, y, and z</xs:documentation>
241     </xs:annotation>
242     <xs:complexType>
243       <xs:complexContent>
244   <xs:extension base="SolidType">
245     <xs:attribute name="x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
246     <xs:attribute name="y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
247     <xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
248   </xs:extension>
249       </xs:complexContent>
250     </xs:complexType>
251   </xs:element>
252 <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
253 
254   <xs:element name="twistedbox" substitutionGroup="Solid">
255     <xs:annotation>
256       <xs:documentation>CSG twisted box solid described by 4 dimensions of 
257   x  length along x axis
258   y  length along y axis
259   z  length along z axis
260   PhiTwist twist angle </xs:documentation>
261     </xs:annotation>
262     <xs:complexType>
263       <xs:complexContent>
264   <xs:extension base="SolidType">
265     <xs:attribute name="x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
266     <xs:attribute name="y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
267     <xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
268     <xs:attribute name="PhiTwist" type="ExpressionOrIDREFType" use="required"></xs:attribute>
269   </xs:extension>
270       </xs:complexContent>
271     </xs:complexType>
272   </xs:element>
273   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
274 
275   <xs:element name="twistedtrap" substitutionGroup="Solid">
276     <xs:annotation>
277       <xs:documentation>general twisted trapezoid. faces perpendicular to the z planes are trapezia, and their centres are 
278       not necessarily on a line paralell to the z axis.
279   PhiTwist Twist Angle
280   z     length along the z-axis
281   Theta  Polar angle of the line joining the centres of the faces at -/+z
282   Phi    Azimuthal angle of the line joing the centre of the face at -z to the centre of the face at +z
283   y1    length along y of the face at -z
284       x1    length along x of the side at y=-y1 of the face at -z
285   x2    length along x of the side at y=+y1 of the face at -z
286   y2    length along y of the face at +z
287   x3    length along x of the side at y=-y2 of the face at +z
288   x4    length along x of the side at y=+y2 of the face at +z
289   Alph   Angle with respect to the y axis from the centre of the side </xs:documentation>
290     </xs:annotation>
291     <xs:complexType>
292       <xs:complexContent>
293   <xs:extension base="SolidType">
294           <xs:attribute name="PhiTwist" type="ExpressionOrIDREFType" use="required"></xs:attribute>
295     <xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
296     <xs:attribute name="Theta" type="ExpressionOrIDREFType" use="required"></xs:attribute>
297     <xs:attribute name="Phi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
298     <xs:attribute name="y1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
299     <xs:attribute name="x1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
300     <xs:attribute name="y2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
301     <xs:attribute name="x2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
302     <xs:attribute name="x3" type="ExpressionOrIDREFType" use="required"></xs:attribute>
303     <xs:attribute name="x4" type="ExpressionOrIDREFType" use="required"></xs:attribute>
304           <xs:attribute name="Alph" type="ExpressionOrIDREFType" use="required"></xs:attribute>
305   </xs:extension>
306       </xs:complexContent>
307     </xs:complexType>
308   </xs:element>
309   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
310 
311   <xs:element name="twistedtrd" substitutionGroup="Solid">
312     <xs:annotation>
313       <xs:documentation>different length axis twistable trapezoid. faces perpendicular to the z planes are trapezia, and their centres are 
314       not necessarily on a line paralell to the z axis.
315   PhiTwist Twist Angle
316   z     length along the z-axis
317   y1    length along y of the face at -z
318       x1    length along x of the side at y=-y1 of the face at -z
319   x2    length along x of the side at y=+y1 of the face at -z
320   y2    length along y of the face at +z </xs:documentation>
321     </xs:annotation>
322     <xs:complexType>
323       <xs:complexContent>
324   <xs:extension base="SolidType">
325           <xs:attribute name="PhiTwist" type="ExpressionOrIDREFType" use="required"></xs:attribute>
326     <xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
327     <xs:attribute name="y1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
328     <xs:attribute name="x1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
329     <xs:attribute name="y2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
330     <xs:attribute name="x2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
331   </xs:extension>
332       </xs:complexContent>
333     </xs:complexType>
334   </xs:element>
335   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
336   
337   <xs:element name="paraboloid" substitutionGroup="Solid">
338     <xs:annotation>
339       <xs:documentation>CSG paraboloid defined by
340        rlo         radius at -dz
341        rhi         radius at +dz
342        dz          half z length
343       </xs:documentation>
344     </xs:annotation>
345     <xs:complexType>
346       <xs:complexContent>
347   <xs:extension base="SolidType">
348     <xs:attribute name="rlo" type="ExpressionOrIDREFType" use="required"></xs:attribute>
349     <xs:attribute name="rhi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
350     <xs:attribute name="dz" type="ExpressionOrIDREFType" use="required"></xs:attribute>
351   </xs:extension>
352       </xs:complexContent>
353     </xs:complexType>
354   </xs:element>
355   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
356 
357   <xs:element name="sphere" substitutionGroup="Solid">
358     <xs:annotation>
359       <xs:documentation>CSG sphere or spherical shell segment solid described by
360         rmin        inner radius
361         rmax        outer radius
362         startphi    starting angle of the segment in radians(0 &lt;= phi &lt;= 2*PI)
363         deltaphi    delta angle of the segment in radians
364         starttheta  starting angle of the segment in radians(0 &lt;= theta &lt;= PI)
365         deltatheta  delta angle of the segment in radians
366       </xs:documentation>
367     </xs:annotation>
368     <xs:complexType>
369       <xs:complexContent>
370   <xs:extension base="SolidType">
371     <xs:attribute default="0.0" name="rmin" type="ExpressionOrIDREFType"></xs:attribute>
372     <xs:attribute name="rmax" type="ExpressionOrIDREFType" use="required"></xs:attribute>
373     <xs:attribute default="0.0" name="startphi" type="ExpressionOrIDREFType"></xs:attribute>
374     <xs:attribute name="deltaphi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
375     <xs:attribute default="0.0" name="starttheta" type="ExpressionOrIDREFType"></xs:attribute>
376     <xs:attribute name="deltatheta" type="ExpressionOrIDREFType" use="required"></xs:attribute>
377   </xs:extension>
378       </xs:complexContent>
379     </xs:complexType>
380   </xs:element>
381   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
382 
383   <xs:element name="ellipsoid" substitutionGroup="Solid">
384     <xs:annotation>
385       <xs:documentation>CSG ellispoid or ellipsoidal shell segment solid described by
386         ax         x semiaxis
387         by         y semiaxis
388   cz     z semiaxis
389         zcut1      bottom plane cutting ellipsoid
390         zcut2      top plane cutting ellispoid
391       </xs:documentation>
392     </xs:annotation>
393     <xs:complexType>
394       <xs:complexContent>
395   <xs:extension base="SolidType">
396     <xs:attribute name="ax" type="ExpressionOrIDREFType" use="required"></xs:attribute>
397     <xs:attribute name="by" type="ExpressionOrIDREFType" use="required"></xs:attribute>
398     <xs:attribute name="cz" type="ExpressionOrIDREFType" use="required"></xs:attribute>
399     <xs:attribute default="-1000000.0" name="zcut1" type="ExpressionOrIDREFType"></xs:attribute>
400     <xs:attribute default="1000000.0" name="zcut2" type="ExpressionOrIDREFType"></xs:attribute>
401   </xs:extension>
402       </xs:complexContent>
403     </xs:complexType>
404   </xs:element>
405   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
406 
407   <xs:element name="tube" substitutionGroup="Solid">
408     <xs:annotation>
409       <xs:documentation>CSG tube or tube segement solid described by
410   rmin      Inner radius
411         rmax      Outer radius
412         z         length in z
413         startphi  The starting phi angle in radians, adjusted such that
414         (startphi+deltaphi &lt;= 2PI, startphi &gt; -2PI)
415         deltaphi  Delta angle of the segment in radians</xs:documentation>
416     </xs:annotation>
417     <xs:complexType>
418       <xs:complexContent>
419   <xs:extension base="SolidType">
420     <xs:attribute name="z" type="ExpressionOrIDREFType"></xs:attribute>
421     <xs:attribute default="0.0" name="rmin" type="ExpressionOrIDREFType"></xs:attribute>
422     <xs:attribute name="rmax" type="ExpressionOrIDREFType" use="required"></xs:attribute>
423     <xs:attribute default="0.0" name="startphi" type="ExpressionOrIDREFType"></xs:attribute>
424     <xs:attribute name="deltaphi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
425   </xs:extension>
426       </xs:complexContent>
427     </xs:complexType>
428   </xs:element>
429  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
430 
431   <xs:element name="twistedtubs" substitutionGroup="Solid">
432     <xs:annotation>
433       <xs:documentation>CSG twisted tube segment solid described by
434   twistedangle  twist angle (constructors 1,2,3,4)
435   endinnerrad inside radius at end of segment (constructors 1,2)
436   endouterrad outside radius at end of segment (constructors 1,2)
437         midinnerrad     inner radius at z=0 (constructors 3,4)
438         midouterrad     outer radius at z=0 (constructors 3,4)
439         negativeEndz    -ve z endplate (constructors 3,4)
440         positiveEndz    +ve z endplate (constructors 3,4)
441   zlen    z length of segment (constructors 1,2)
442         nseg            number of segments in totalPhi (constructors 2,4)
443         totphi          total angle of all segments (constructors 2,4)
444   phi   phi angle of a segment (constructors 1,3)</xs:documentation>
445     </xs:annotation>
446     <xs:complexType>
447       <xs:complexContent>
448   <xs:extension base="SolidType">
449     <xs:attribute name="twistedangle" type="ExpressionOrIDREFType" use="required"></xs:attribute>
450     <xs:attribute default="0.0" name="endinnerrad" type="ExpressionOrIDREFType"></xs:attribute>
451     <xs:attribute default="0.0" name="endouterrad" type="ExpressionOrIDREFType"></xs:attribute>
452     <xs:attribute default="0.0" name="midinnerrad" type="ExpressionOrIDREFType"></xs:attribute>
453     <xs:attribute default="0.0" name="midouterrad" type="ExpressionOrIDREFType"></xs:attribute>
454     <xs:attribute default="0.0" name="negativeEndz" type="ExpressionOrIDREFType"></xs:attribute>
455     <xs:attribute default="0.0" name="positiveEndz" type="ExpressionOrIDREFType"></xs:attribute>
456     <xs:attribute default="0.0" name="zlen" type="ExpressionOrIDREFType"></xs:attribute>
457     <xs:attribute default="0" name="nseg" type="ExpressionOrIDREFType"></xs:attribute>
458     <xs:attribute default="0.0" name="totphi" type="ExpressionOrIDREFType"></xs:attribute>
459     <xs:attribute default="0.0" name="phi" type="ExpressionOrIDREFType"></xs:attribute>
460   </xs:extension>
461       </xs:complexContent>
462     </xs:complexType>
463   </xs:element>
464   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
465 
466   <xs:element name="cutTube" substitutionGroup="Solid">
467     <xs:annotation>
468       <xs:documentation>CSG cut tube or cut tube segment solid described by
469   rmin                    Inner radius
470         rmax                    Outer radius
471         z                       length in z
472         startphi                The starting phi angle in radians, adjusted such that (startphi+deltaphi &lt;= 2PI, startphi &gt; -2PI)
473         deltaphi                Delta angle of the segment in radians
474   lowX, lowY, lowZ        Normal at lower Z plane
475   highX, highY, highZ     Normal at higher Z plane
476       </xs:documentation>
477     </xs:annotation>
478     <xs:complexType>
479       <xs:complexContent>
480   <xs:extension base="SolidType">
481     <xs:attribute name="z" type="ExpressionOrIDREFType"></xs:attribute>
482     <xs:attribute default="0.0" name="rmin" type="ExpressionOrIDREFType"></xs:attribute>
483     <xs:attribute name="rmax" type="ExpressionOrIDREFType" use="required"></xs:attribute>
484     <xs:attribute default="0.0" name="startphi" type="ExpressionOrIDREFType"></xs:attribute>
485     <xs:attribute name="deltaphi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
486     <xs:attribute name="lowX" type="ExpressionOrIDREFType" use="required"></xs:attribute>
487     <xs:attribute name="lowY" type="ExpressionOrIDREFType" use="required"></xs:attribute>
488     <xs:attribute name="lowZ" type="ExpressionOrIDREFType" use="required"></xs:attribute>
489     <xs:attribute name="highX" type="ExpressionOrIDREFType" use="required"></xs:attribute>
490     <xs:attribute name="highY" type="ExpressionOrIDREFType" use="required"></xs:attribute>
491     <xs:attribute name="highZ" type="ExpressionOrIDREFType" use="required"></xs:attribute>
492   </xs:extension>
493       </xs:complexContent>
494     </xs:complexType>
495   </xs:element>
496   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
497 
498   <xs:element name="cone" substitutionGroup="Solid">
499     <xs:annotation>
500       <xs:documentation>CSG cone or cone segment described by
501         rmin1    inside radius at  z/2
502         rmin2    inside radius at  z/2
503         rmax1    outside radius at z/2
504         rmax2    outside radius at z/2
505         z        length in z
506         startphi starting angle of the segment in radians
507         deltaphi delta angle of the segment in radians</xs:documentation>
508     </xs:annotation>
509     <xs:complexType>
510       <xs:complexContent>
511   <xs:extension base="SolidType">
512     <xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
513     <xs:attribute default="0.0" name="rmin1" type="ExpressionOrIDREFType"></xs:attribute>
514     <xs:attribute default="0.0" name="rmin2" type="ExpressionOrIDREFType"></xs:attribute>
515     <xs:attribute name="rmax1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
516     <xs:attribute name="rmax2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
517     <xs:attribute default="0.0" name="startphi" type="ExpressionOrIDREFType"></xs:attribute>
518     <xs:attribute name="deltaphi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
519   </xs:extension>
520       </xs:complexContent>
521     </xs:complexType>
522   </xs:element>
523   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
524 
525   <xs:element name="elcone" substitutionGroup="Solid">
526     <xs:annotation>
527       <xs:documentation>CSG  cone with elliptical cross section 
528         dx    semiaxis in X
529         dy    semiaxis in Y
530         zmax  height of elliptical cone
531         zcut  upper cut plane level
532       </xs:documentation>
533     </xs:annotation>
534     <xs:complexType>
535       <xs:complexContent>
536   <xs:extension base="SolidType">
537     <xs:attribute name="dx" type="ExpressionOrIDREFType"></xs:attribute>
538     <xs:attribute name="dy" type="ExpressionOrIDREFType"></xs:attribute>
539     <xs:attribute name="zmax" type="ExpressionOrIDREFType" use="required"></xs:attribute>
540     <xs:attribute name="zcut" type="ExpressionOrIDREFType" use="required"></xs:attribute>
541    </xs:extension>
542       </xs:complexContent>
543     </xs:complexType>
544   </xs:element>
545   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
546   
547   <xs:element name="polycone" substitutionGroup="Solid">
548     <xs:annotation>
549       <xs:documentation>CSG polycone or polycone segment described by
550         startphi starting angle of the segment in radians
551         deltaphi delta angle of the segment in radians
552   
553   and a set of z-planes each described by
554         rmin     inside radius at  z/2
555         rmax     outside radius at z/2
556         z        length in z
557       </xs:documentation>
558     </xs:annotation>
559     <xs:complexType>
560       <xs:complexContent>
561   <xs:extension base="SolidType">
562     <xs:sequence>
563       <xs:element name="zplane" minOccurs="1" maxOccurs="unbounded" type="ZPlaneType"/> 
564     </xs:sequence>
565     <xs:attribute name="deltaphi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
566     <xs:attribute default="0.0" name="startphi" type="ExpressionOrIDREFType"></xs:attribute>
567   </xs:extension>
568       </xs:complexContent>
569     </xs:complexType>
570   </xs:element>  
571   <!-- +++++++++++++ -->
572   <xs:complexType name="ZPlaneType">
573     <xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
574     <xs:attribute default="0.0" name="rmin" type="ExpressionOrIDREFType"></xs:attribute>
575     <xs:attribute name="rmax" type="ExpressionOrIDREFType" use="required"></xs:attribute>
576   </xs:complexType>
577 
578  <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
579   
580   <xs:element name="genericPolycone" substitutionGroup="Solid">
581     <xs:annotation>
582       <xs:documentation>Generic polycone or polycone segment described by
583         startphi starting angle of the segment in radians
584         deltaphi delta angle of the segment in radians
585   and a set of points with (r,z)coordinates
586       </xs:documentation>
587     </xs:annotation>
588     <xs:complexType>
589       <xs:complexContent>
590   <xs:extension base="SolidType">
591     <xs:sequence>
592       <xs:element name="rzpoint" minOccurs="3" maxOccurs="unbounded" type="RZPointType"/> 
593     </xs:sequence>
594     <xs:attribute name="deltaphi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
595     <xs:attribute default="0.0" name="startphi" type="ExpressionOrIDREFType"></xs:attribute>
596   </xs:extension>
597       </xs:complexContent>
598     </xs:complexType>
599   </xs:element>  
600   <!-- +++++++++++++ -->
601   <xs:complexType name="RZPointType">
602     <xs:attribute name="r" type="ExpressionOrIDREFType" use="required"></xs:attribute>
603     <xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>  
604   </xs:complexType>
605 
606   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
607   
608   <xs:element name="para" substitutionGroup="Solid">
609     <xs:annotation>
610       <xs:documentation>CSG parallelepiped solid is described by
611         x, y, z  length in x,y,z
612         alpha    Angle formed by the y axis and by the plane joining the centre of the faces
613         G4Parallel to the z-x plane at -y and +y
614         theta    Polar angle of the line joining the centres of the faces at -z and +z in z
615         phi      Azimuthal angle of the line joining the centres of the faces at -z and +z in z</xs:documentation>
616     </xs:annotation>
617     <xs:complexType>
618       <xs:complexContent>
619   <xs:extension base="SolidType">
620     <xs:attribute name="x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
621     <xs:attribute name="y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
622     <xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
623     <xs:attribute name="alpha" type="ExpressionOrIDREFType" use="required"></xs:attribute>
624     <xs:attribute name="theta" type="ExpressionOrIDREFType" use="required"></xs:attribute>
625     <xs:attribute name="phi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
626   </xs:extension>
627       </xs:complexContent>
628     </xs:complexType>
629   </xs:element>
630   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
631   
632   <xs:element name="trd" substitutionGroup="Solid">
633     <xs:annotation>
634       <xs:documentation>CSG trapezoid solid with varying x and y dimensions along z axis
635         x1 Length along x at the surface positioned at -z
636         x2 Length along x at the surface positioned at +z
637         y1 Length along y at the surface positioned at -z
638         y2 Length along y at the surface positioned at +z
639         z  Length along z axis</xs:documentation>
640     </xs:annotation>
641     <xs:complexType>
642       <xs:complexContent>
643   <xs:extension base="SolidType">
644     <xs:attribute name="x1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
645     <xs:attribute name="x2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
646     <xs:attribute name="y1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
647     <xs:attribute name="y2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
648     <xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
649   </xs:extension>
650       </xs:complexContent>
651     </xs:complexType>
652   </xs:element>
653   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
654 
655   <xs:element name="trap" substitutionGroup="Solid">
656     <xs:annotation>
657       <xs:documentation>CSG general trapezoid solid is described by
658         z      Length along the z-axis
659         theta  Polar angle of the line joining the centres of the faces at -/+z
660         phi    Azimuthal angle of the line joing the centre of the face at -z to the centre of the face at +z
661         y1     Length along y of the face at -z
662         x1     Length along x of the side at y = -y1 of the face at -z
663         x2     Length along x of the side at y = +y1 of the face at -z
664         alp1   Angle with respect to the y axis from the centre of the side at y =- y1 to the centre at y = +y1 of the face at -z
665         y2     Length along y of the face at +z
666         x3     Length along x of the side at y = -y2 of the face at +z
667         x4     Length along x of the side at y = +y2 of the face at +z
668         alp2   Angle with respect to the y axis from the centre of the side at y = -y2 to the centre at y = +y2 of the face at +z</xs:documentation>
669     </xs:annotation>
670     <xs:complexType>
671       <xs:complexContent>
672   <xs:extension base="SolidType">
673     <xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
674     <xs:attribute name="theta" type="ExpressionOrIDREFType" use="required"></xs:attribute>
675     <xs:attribute name="phi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
676     <xs:attribute name="y1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
677     <xs:attribute name="x1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
678     <xs:attribute name="x2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
679     <xs:attribute name="alpha1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
680     <xs:attribute name="y2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
681     <xs:attribute name="x3" type="ExpressionOrIDREFType" use="required"></xs:attribute>
682     <xs:attribute name="x4" type="ExpressionOrIDREFType" use="required"></xs:attribute>
683     <xs:attribute name="alpha2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
684   </xs:extension>
685       </xs:complexContent>
686     </xs:complexType>
687   </xs:element>
688   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
689   
690   <xs:element name="torus" substitutionGroup="Solid">
691     <xs:annotation>
692       <xs:documentation>CSG torus solid is described by
693   rmin  Inside radius
694   rmax  Outside radius
695   rtor  swept radius of torus
696   startphi  The starting phi angle in radians adjusted such that sphi+dphi lt 2PI, sphi gt -2PI
697   deltaphi  Delta angle of the segment in radians
698       </xs:documentation>
699     </xs:annotation>
700     <xs:complexType>
701       <xs:complexContent>
702   <xs:extension base="SolidType">
703     <xs:attribute name="rmin" type="ExpressionOrIDREFType" use="required"></xs:attribute>
704     <xs:attribute name="rmax" type="ExpressionOrIDREFType" use="required"></xs:attribute>
705     <xs:attribute name="rtor" type="ExpressionOrIDREFType" use="required"></xs:attribute>
706     <xs:attribute name="startphi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
707     <xs:attribute name="deltaphi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
708   </xs:extension>
709       </xs:complexContent>
710     </xs:complexType>
711   </xs:element>
712   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
713   
714   <xs:element name="orb" substitutionGroup="Solid">
715     <xs:annotation>
716       <xs:documentation>CSG orb solid (simplified sphere with only rmax) is described by
717   r  Outside radius</xs:documentation>
718     </xs:annotation>
719     <xs:complexType>
720       <xs:complexContent>
721   <xs:extension base="SolidType">
722     <xs:attribute name="r" type="ExpressionOrIDREFType" use="required"></xs:attribute>
723   </xs:extension>
724       </xs:complexContent>
725     </xs:complexType>
726   </xs:element>
727   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
728   
729   <xs:element name="polyhedra" substitutionGroup="Solid">
730     <xs:annotation>
731       <xs:documentation>Polyhedra is described by
732   startphi     initial phi starting angle
733   totalphi     total phi angle
734   numsides  number sides
735   and a set of zplanes.</xs:documentation>
736     </xs:annotation>
737     <xs:complexType>
738       <xs:complexContent>
739   <xs:extension base="SolidType">
740     <xs:sequence>
741       <xs:element name="zplane" minOccurs="1" maxOccurs="unbounded" type="ZPlaneType"/> 
742     </xs:sequence>
743     
744     <xs:attribute name="startphi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
745     <xs:attribute name="deltaphi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
746     <xs:attribute name="numsides" type="ExpressionOrIDREFType" use="required"></xs:attribute>
747   </xs:extension>
748       </xs:complexContent>
749     </xs:complexType>
750   </xs:element> 
751   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
752   
753   <xs:element name="genericPolyhedra" substitutionGroup="Solid">
754     <xs:annotation>
755       <xs:documentation>Polyhedra is described by
756   startphi     initial phi starting angle
757   totalphi     total phi angle
758   numsides  number sides
759   and a set of points with (r,z) coordinates.</xs:documentation>
760     </xs:annotation>
761     <xs:complexType>
762       <xs:complexContent>
763   <xs:extension base="SolidType">
764     <xs:sequence>
765       <xs:element name="rzpoint" minOccurs="3" maxOccurs="unbounded" type="RZPointType"/> 
766     </xs:sequence>
767     
768     <xs:attribute name="startphi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
769     <xs:attribute name="deltaphi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
770     <xs:attribute name="numsides" type="ExpressionOrIDREFType" use="required"></xs:attribute>
771   </xs:extension>
772       </xs:complexContent>
773     </xs:complexType>
774   </xs:element> 
775   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
776   
777   <xs:complexType name="TwoDimVertexType">
778     <xs:attribute name="x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
779     <xs:attribute name="y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
780   </xs:complexType>
781   
782   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
783     
784   <xs:complexType name="SectionType">
785     <xs:attribute name="zOrder" type="ExpressionOrIDREFType" use="required"></xs:attribute>
786     <xs:attribute name="zPosition" type="ExpressionOrIDREFType" use="required"></xs:attribute>
787     <xs:attribute name="xOffset" type="ExpressionOrIDREFType" use="required"></xs:attribute>
788     <xs:attribute name="yOffset" type="ExpressionOrIDREFType" use="required"></xs:attribute>
789     <xs:attribute name="scalingFactor" type="ExpressionOrIDREFType" use="required"></xs:attribute>
790   </xs:complexType>  
791   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
792   
793   <xs:element name="xtru" substitutionGroup="Solid">
794     <xs:annotation>
795       <xs:documentation>Poligonal extrusion is described by
796   an unbounded (min. 3) number of vertices of the blueprint polygon
797   and an unbounded number of Z sections.
798       </xs:documentation>
799     </xs:annotation>
800     <xs:complexType>
801       <xs:complexContent>
802   <xs:extension base="SolidType">
803     <xs:sequence>
804       <xs:sequence>
805         <xs:element name="twoDimVertex" minOccurs="3" maxOccurs="unbounded" type="TwoDimVertexType"/> 
806             </xs:sequence>
807       <xs:sequence>
808         <xs:element name="section" minOccurs="2" maxOccurs="unbounded" type="SectionType"/> 
809       </xs:sequence>
810     </xs:sequence>
811   </xs:extension>
812       </xs:complexContent>
813     </xs:complexType>
814   </xs:element> 
815   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
816   
817   <xs:element name="hype" substitutionGroup="Solid">
818     <xs:annotation>
819       <xs:documentation>Tube with hyperbolic profile described by
820   rmin    innerRadius
821   rmax    outerRadius
822   inst    innerStereo
823   outst   outerStereo
824         z       z length
825       </xs:documentation>
826     </xs:annotation>
827     <xs:complexType>
828       <xs:complexContent>
829   <xs:extension base="SolidType">
830     <xs:attribute name="rmin" type="ExpressionOrIDREFType" use="required"></xs:attribute>
831     <xs:attribute name="rmax" type="ExpressionOrIDREFType" use="required"></xs:attribute>
832     <xs:attribute name="inst" type="ExpressionOrIDREFType" use="required"></xs:attribute>
833     <xs:attribute name="outst" type="ExpressionOrIDREFType" use="required"></xs:attribute>
834     <xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
835   </xs:extension>
836       </xs:complexContent>
837     </xs:complexType>
838   </xs:element>
839   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
840   
841   <xs:element name="eltube" substitutionGroup="Solid">
842     <xs:annotation>
843       <xs:documentation>
844   Volume representing a tube with elliptical
845   cross section.
846       </xs:documentation>
847     </xs:annotation>
848     <xs:complexType>
849       <xs:complexContent>
850   <xs:extension base="SolidType">
851     <xs:attribute name="dx" type="ExpressionOrIDREFType" use="required"></xs:attribute>
852     <xs:attribute name="dy" type="ExpressionOrIDREFType" use="required"></xs:attribute>
853     <xs:attribute name="dz" type="ExpressionOrIDREFType" use="required"></xs:attribute>
854   </xs:extension>
855       </xs:complexContent>
856     </xs:complexType>
857   </xs:element>  
858   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
859 
860   <xs:element name="tet" substitutionGroup="Solid">
861     <xs:annotation>
862       <xs:documentation>
863   Volume representing a tetrahedron.
864       </xs:documentation>
865     </xs:annotation>
866     <xs:complexType>
867       <xs:complexContent>
868   <xs:extension base="SolidType">
869    <xs:attribute name="vertex1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
870    <xs:attribute name="vertex2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
871    <xs:attribute name="vertex3" type="ExpressionOrIDREFType" use="required"></xs:attribute>
872    <xs:attribute name="vertex4" type="ExpressionOrIDREFType" use="required"></xs:attribute>
873   </xs:extension>
874       </xs:complexContent>
875     </xs:complexType>
876   </xs:element>  
877   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
878 
879   <xs:element name="arb8" substitutionGroup="Solid">
880     <xs:annotation>
881       <xs:documentation>
882   Volume representing an (almost)arbitrary 8 vertices solid.
883   The solid is defined by two quadrilaterals sitting on parallel planes,
884   the distance between these two planes is dz*2.
885   The base quadrilateral contained within the plane located at -dz is defined by
886   the first 4 vertices (v1,v2,v3,v4 each one with the x and y coordinates).
887   The other parallel quadrilateral contained within the plane at +dz is defined by
888   the other 4 vertices (v5,v6,v7,v8 each one with the x and y coordinates).
889       </xs:documentation>
890     </xs:annotation>
891     <xs:complexType>
892       <xs:complexContent>
893   <xs:extension base="SolidType">
894    <xs:attribute name="v1x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
895    <xs:attribute name="v1y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
896    <xs:attribute name="v2x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
897    <xs:attribute name="v2y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
898    <xs:attribute name="v3x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
899    <xs:attribute name="v3y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
900    <xs:attribute name="v4x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
901    <xs:attribute name="v4y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
902    <xs:attribute name="v5x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
903    <xs:attribute name="v5y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
904    <xs:attribute name="v6x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
905    <xs:attribute name="v6y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
906    <xs:attribute name="v7x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
907    <xs:attribute name="v7y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
908    <xs:attribute name="v8x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
909    <xs:attribute name="v8y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
910    <xs:attribute name="dz" type="ExpressionOrIDREFType" use="required"></xs:attribute>
911   </xs:extension>
912       </xs:complexContent>
913     </xs:complexType>
914   </xs:element>     
915   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
916 
917   <!-- Tessellated solid elements -->  
918 
919   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->  
920 
921   <xs:complexType name="FacetType">
922     <xs:annotation>
923       <xs:documentation>Base facet type</xs:documentation>
924     </xs:annotation>
925   </xs:complexType>
926   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
927 
928   <xs:element abstract="true" name="Facet" type="FacetType">
929     <xs:annotation>
930       <xs:documentation>Abstract element for all facets substitution group</xs:documentation>
931     </xs:annotation>
932   </xs:element>
933   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
934 
935   <xs:element name="triangular" substitutionGroup="Facet">
936     <xs:annotation>
937       <xs:documentation>
938       Triangular facet.
939       </xs:documentation>
940     </xs:annotation>
941     <xs:complexType>
942       <xs:complexContent>
943   <xs:extension base="FacetType">
944   <xs:attribute name="vertex1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
945   <xs:attribute name="vertex2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
946   <xs:attribute name="vertex3" type="ExpressionOrIDREFType" use="required"></xs:attribute>
947   <xs:attribute name="type" type="xs:string" default="ABSOLUTE"></xs:attribute>
948   </xs:extension>
949       </xs:complexContent>
950     </xs:complexType>
951   </xs:element>  
952 
953   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
954 
955   <xs:element name="quadrangular" substitutionGroup="Facet">
956     <xs:annotation>
957       <xs:documentation>
958       Quadrangular facet.
959       </xs:documentation>
960     </xs:annotation>
961     <xs:complexType>
962       <xs:complexContent>
963   <xs:extension base="FacetType">
964   <xs:attribute name="vertex1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
965   <xs:attribute name="vertex2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
966   <xs:attribute name="vertex3" type="ExpressionOrIDREFType" use="required"></xs:attribute>
967   <xs:attribute name="vertex4" type="ExpressionOrIDREFType" use="required"></xs:attribute>
968   <xs:attribute name="type" type="xs:string" default="ABSOLUTE"></xs:attribute>
969   </xs:extension>
970       </xs:complexContent>
971     </xs:complexType>
972   </xs:element>  
973   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
974 
975   <xs:element name="tessellated" substitutionGroup="Solid">
976     <xs:annotation>
977       <xs:documentation>Tessellated solid 
978       </xs:documentation>
979     </xs:annotation>
980     <xs:complexType>
981       <xs:complexContent>
982   <xs:extension base="SolidType">
983     <xs:sequence>
984       <xs:element minOccurs="1" maxOccurs="unbounded" ref="Facet"/>
985     </xs:sequence>
986   </xs:extension>
987       </xs:complexContent>
988     </xs:complexType>
989   </xs:element>
990   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
991   
992   <xs:element name="opticalsurface" substitutionGroup="SurfaceProperty">
993     <xs:annotation>
994       <xs:documentation>Optical surface used by Geant4 optical processes</xs:documentation>
995     </xs:annotation>
996     <xs:complexType>
997       <xs:complexContent>
998   <xs:extension base="SurfacePropertyType">
999     <xs:attribute name="model" type="xs:string" default="glisur"></xs:attribute>
1000     <xs:attribute name="finish" type="xs:string" default="polished"></xs:attribute>
1001     <xs:attribute name="value" type="xs:string" default="1.0"></xs:attribute>
1002   </xs:extension>
1003       </xs:complexContent>
1004     </xs:complexType>
1005   </xs:element>
1006   <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->  
1007 
1008 </xs:schema>