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 10.0.p3)


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