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