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 11.1.2)


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