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 ]

Diff markup

Differences between /persistency/gdml/schema/gdml_solids.xsd (Version 11.3.0) and /persistency/gdml/schema/gdml_solids.xsd (Version 9.5.p1)


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