Geant4 Cross Reference |
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?> 2 <xs:schema attributeFormDefault="unqualified" << 2 <xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" version="1.0" xmlns:gdml="http://cern.ch/2001/Schemas/GDML" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 3 <xs:include schemaLocation="gdml_core.xsd"/> 3 <xs:include schemaLocation="gdml_core.xsd"/> 4 <xs:include schemaLocation="gdml_define.xsd" 4 <xs:include schemaLocation="gdml_define.xsd"/> 5 <xs:include schemaLocation="gdml_materials.x 5 <xs:include schemaLocation="gdml_materials.xsd"/> 6 <xs:include schemaLocation="gdml_solids.xsd" 6 <xs:include schemaLocation="gdml_solids.xsd"/> 7 <xs:include schemaLocation="gdml_replicas.xs 7 <xs:include schemaLocation="gdml_replicas.xsd"/> 8 <xs:include schemaLocation="gdml_parameteris 8 <xs:include schemaLocation="gdml_parameterised.xsd"/> 9 <xs:include schemaLocation="gdml_extensions. 9 <xs:include schemaLocation="gdml_extensions.xsd"/> 10 <!-- +++++++++++++++++++++++++++++++++++++++ 10 <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> 11 <xs:complexType abstract="true" name="Identi 11 <xs:complexType abstract="true" name="IdentifiableVolumeType"> 12 <xs:attribute name="name" type="xs:ID" use 12 <xs:attribute name="name" type="xs:ID" use="required"/> 13 </xs:complexType> 13 </xs:complexType> 14 <!-- +++++++++++++++++++++++++++++++++++++++ 14 <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> 15 <xs:complexType name="SinglePlacementType"> 15 <xs:complexType name="SinglePlacementType"> 16 <xs:annotation> 16 <xs:annotation> 17 <xs:documentation>Represents a single un 17 <xs:documentation>Represents a single unique copy a of an associated logical volume 18 in geometrical hierarchy</xs:documenta 18 in geometrical hierarchy</xs:documentation> 19 </xs:annotation> 19 </xs:annotation> 20 <xs:sequence> 20 <xs:sequence> 21 <xs:choice minOccurs="1"> 21 <xs:choice minOccurs="1"> 22 <xs:element name="file" type="FileReferenceT 22 <xs:element name="file" type="FileReferenceType"/> 23 <xs:element name="volumeref" type="Reference 23 <xs:element name="volumeref" type="ReferenceType"/> 24 </xs:choice> 24 </xs:choice> 25 <xs:choice minOccurs="0"> 25 <xs:choice minOccurs="0"> 26 <xs:element name="position" type="positionTy 26 <xs:element name="position" type="positionType"/> 27 <xs:element name="positionref" type="Referen 27 <xs:element name="positionref" type="ReferenceType"/> 28 </xs:choice> 28 </xs:choice> 29 <xs:choice minOccurs="0"> 29 <xs:choice minOccurs="0"> 30 <xs:element name="rotation" type="rotationTy 30 <xs:element name="rotation" type="rotationType"/> 31 <xs:element name="rotationref" type="Referen 31 <xs:element name="rotationref" type="ReferenceType"/> 32 </xs:choice> 32 </xs:choice> 33 <xs:choice minOccurs="0"> 33 <xs:choice minOccurs="0"> 34 <xs:element name="scale" type="scaleType"/> 34 <xs:element name="scale" type="scaleType"/> 35 <xs:element name="scaleref" type="ReferenceT 35 <xs:element name="scaleref" type="ReferenceType"/> 36 </xs:choice> 36 </xs:choice> 37 </xs:sequence> 37 </xs:sequence> 38 <xs:attribute name="name" type="xs:ID"></x 38 <xs:attribute name="name" type="xs:ID"></xs:attribute> 39 <xs:attribute name="copynumber" type="xs:i << 40 </xs:complexType> 39 </xs:complexType> 41 <!-- +++++++++++++++++++++++++++++++++++++++ 40 <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> 42 <xs:complexType name="DivisionPlacementType" 41 <xs:complexType name="DivisionPlacementType"> 43 <xs:annotation> 42 <xs:annotation> 44 <xs:documentation>Represents a division 43 <xs:documentation>Represents a division of the associated logical volume 45 in geometrical hierarchy</xs:documenta 44 in geometrical hierarchy</xs:documentation> 46 </xs:annotation> 45 </xs:annotation> 47 <xs:sequence> 46 <xs:sequence> 48 <xs:element name="volumeref" type="Refer 47 <xs:element name="volumeref" type="ReferenceType"/> 49 </xs:sequence> 48 </xs:sequence> 50 <xs:attribute name="axis" type="xs:string" 49 <xs:attribute name="axis" type="xs:string" use="required"></xs:attribute> 51 <xs:attribute name="number" type="Expressi 50 <xs:attribute name="number" type="ExpressionOrIDREFType" use="required"></xs:attribute> 52 <xs:attribute name="width" type="Expressio 51 <xs:attribute name="width" type="ExpressionOrIDREFType" use="required"></xs:attribute> 53 <xs:attribute name="offset" type="Expressi 52 <xs:attribute name="offset" type="ExpressionOrIDREFType" use="required"></xs:attribute> 54 <xs:attribute default="mm" name="unit" typ 53 <xs:attribute default="mm" name="unit" type="xs:string"></xs:attribute> 55 </xs:complexType> 54 </xs:complexType> 56 <!-- +++++++++++++++++++++++++++++++++++++++ 55 <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> 57 <xs:complexType name="VolumeType"> 56 <xs:complexType name="VolumeType"> 58 <xs:annotation> 57 <xs:annotation> 59 <xs:documentation>Represents a top of a 58 <xs:documentation>Represents a top of a geometrical sub-hierarchy not placed in space 60 None of its children can coincide with 59 None of its children can coincide with its boundary defined by an associated solid 61 Two different placements of the same l 60 Two different placements of the same logical volume represent two different geometrical 62 hierarchies in space</xs:documentation 61 hierarchies in space</xs:documentation> 63 </xs:annotation> 62 </xs:annotation> 64 <xs:complexContent> 63 <xs:complexContent> 65 <xs:extension base="IdentifiableVolumeTy 64 <xs:extension base="IdentifiableVolumeType"> 66 <xs:sequence> 65 <xs:sequence> 67 <xs:element name="materialref" type="Refer 66 <xs:element name="materialref" type="ReferenceType"/> 68 <xs:element name="solidref" type="Referenc 67 <xs:element name="solidref" type="ReferenceType"/> 69 <xs:choice minOccurs="0"> 68 <xs:choice minOccurs="0"> 70 <xs:element maxOccurs="unbounded" name=" 69 <xs:element maxOccurs="unbounded" name="physvol" type="SinglePlacementType"/> 71 <xs:element maxOccurs="1" minOccurs="1" 70 <xs:element maxOccurs="1" minOccurs="1" name="divisionvol" type="DivisionPlacementType"/> 72 <xs:element maxOccurs="1" minOccurs="1" 71 <xs:element maxOccurs="1" minOccurs="1" ref="replicavol"/> 73 <xs:element maxOccurs="1" minOccurs="1" 72 <xs:element maxOccurs="1" minOccurs="1" name="paramvol" type="ParameterisedPlacementType"/> 74 </xs:choice> 73 </xs:choice> 75 <xs:element maxOccurs="unbounded" minOccur 74 <xs:element maxOccurs="unbounded" minOccurs="0" ref="loop"/> 76 <xs:element name="auxiliary" maxOccurs="un 75 <xs:element name="auxiliary" maxOccurs="unbounded" minOccurs="0" type="AuxiliaryType"/> 77 </xs:sequence> 76 </xs:sequence> 78 </xs:extension> 77 </xs:extension> 79 </xs:complexContent> 78 </xs:complexContent> 80 </xs:complexType> 79 </xs:complexType> 81 <!-- +++++++++++++++++++++++++++++++++++++++ 80 <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> 82 <xs:complexType name="AssemblyVolumeType"> 81 <xs:complexType name="AssemblyVolumeType"> 83 <xs:annotation> 82 <xs:annotation> 84 <xs:documentation>Allows to create a gro 83 <xs:documentation>Allows to create a group of volumes bound together without a boundary 85 All the volumes exits inside the same 84 All the volumes exits inside the same virtual reference system of the assmebly volume 86 they belong to 85 they belong to 87 When assembly volume is placed all its 86 When assembly volume is placed all its children follow the global transformation applied 88 to their assembly volume 87 to their assembly volume 89 After the assembly volume is placed it 88 After the assembly volume is placed its children exist as standalone placements in space 90 independent of each other</xs:document 89 independent of each other</xs:documentation> 91 </xs:annotation> 90 </xs:annotation> 92 <xs:complexContent> 91 <xs:complexContent> 93 <xs:extension base="IdentifiableVolumeTy 92 <xs:extension base="IdentifiableVolumeType"> 94 <xs:choice> 93 <xs:choice> 95 <xs:element maxOccurs="unbounded" name="ph 94 <xs:element maxOccurs="unbounded" name="physvol" type="SinglePlacementType"/> 96 <xs:element maxOccurs="1" minOccurs="1" re 95 <xs:element maxOccurs="1" minOccurs="1" ref="replicavol"/> 97 <xs:element maxOccurs="1" minOccurs="1" na 96 <xs:element maxOccurs="1" minOccurs="1" name="paramvol" type="ParameterisedPlacementType"/> 98 </xs:choice> 97 </xs:choice> 99 </xs:extension> 98 </xs:extension> 100 </xs:complexContent> 99 </xs:complexContent> 101 </xs:complexType> 100 </xs:complexType> 102 <!-- +++++++++++++++++++++++++++++++++++++++ 101 <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> 103 <xs:complexType name="LogicalSurfaceType"> 102 <xs:complexType name="LogicalSurfaceType"> 104 <xs:annotation> 103 <xs:annotation> 105 <xs:documentation>Base type for logical 104 <xs:documentation>Base type for logical surfaces (for the moment only optical) 106 </xs:documentation> 105 </xs:documentation> 107 </xs:annotation> 106 </xs:annotation> 108 <xs:attribute name="name" type="xs:ID" use 107 <xs:attribute name="name" type="xs:ID" use="required"></xs:attribute> 109 <xs:attribute name="surfaceproperty" type= 108 <xs:attribute name="surfaceproperty" type="ExpressionOrIDREFType" use="required"></xs:attribute> 110 </xs:complexType> 109 </xs:complexType> 111 <!-- +++++++++++++++++++++++++++++++++++++++ 110 <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> 112 <xs:element abstract="true" name="Surface" t 111 <xs:element abstract="true" name="Surface" type="LogicalSurfaceType"> 113 <xs:annotation> 112 <xs:annotation> 114 <xs:documentation>Abstract element for a 113 <xs:documentation>Abstract element for all solids substitution group</xs:documentation> 115 </xs:annotation> 114 </xs:annotation> 116 </xs:element> 115 </xs:element> 117 <!-- +++++++++++++++++++++++++++++++++++++++ 116 <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> 118 <xs:element name="bordersurface" substitutio 117 <xs:element name="bordersurface" substitutionGroup="Surface"> 119 <xs:annotation> 118 <xs:annotation> 120 <xs:documentation>Surface between two ph 119 <xs:documentation>Surface between two physical volumes</xs:documentation> 121 </xs:annotation> 120 </xs:annotation> 122 <xs:complexType> 121 <xs:complexType> 123 <xs:complexContent> 122 <xs:complexContent> 124 <xs:extension base="LogicalSurfaceType"> 123 <xs:extension base="LogicalSurfaceType"> 125 <xs:sequence> 124 <xs:sequence> 126 <xs:element name="physvolref" type="Refere 125 <xs:element name="physvolref" type="ReferenceType"/> 127 <xs:element name="physvolref" type="Refere 126 <xs:element name="physvolref" type="ReferenceType"/> 128 </xs:sequence> 127 </xs:sequence> 129 </xs:extension> 128 </xs:extension> 130 </xs:complexContent> 129 </xs:complexContent> 131 </xs:complexType> 130 </xs:complexType> 132 </xs:element> 131 </xs:element> 133 <!-- +++++++++++++++++++++++++++++++++++++++ 132 <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> 134 <xs:element name="skinsurface" substitutionG 133 <xs:element name="skinsurface" substitutionGroup="Surface"> 135 <xs:annotation> 134 <xs:annotation> 136 <xs:documentation>Surface between two ph 135 <xs:documentation>Surface between two physical volumes</xs:documentation> 137 </xs:annotation> 136 </xs:annotation> 138 <xs:complexType> 137 <xs:complexType> 139 <xs:complexContent> 138 <xs:complexContent> 140 <xs:extension base="LogicalSurfaceType"> 139 <xs:extension base="LogicalSurfaceType"> 141 <xs:sequence> 140 <xs:sequence> 142 <xs:element name="volumeref" type 141 <xs:element name="volumeref" type="ReferenceType"/> 143 </xs:sequence> 142 </xs:sequence> 144 </xs:extension> 143 </xs:extension> 145 </xs:complexContent> 144 </xs:complexContent> 146 </xs:complexType> 145 </xs:complexType> 147 </xs:element> 146 </xs:element> 148 <!-- +++++++++++++++++++++++++++++++++++++++ 147 <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> 149 <xs:element name="structure"> 148 <xs:element name="structure"> 150 <xs:annotation> 149 <xs:annotation> 151 <xs:documentation>Definitions of a geome 150 <xs:documentation>Definitions of a geometrical hierarchy of a set of volumes</xs:documentation> 152 </xs:annotation> 151 </xs:annotation> 153 <xs:complexType> 152 <xs:complexType> 154 <xs:sequence> 153 <xs:sequence> 155 <xs:choice maxOccurs="unbounded"> 154 <xs:choice maxOccurs="unbounded"> 156 <xs:element name="volume" type="VolumeType 155 <xs:element name="volume" type="VolumeType"/> 157 <xs:element name="assembly" type="Assembly 156 <xs:element name="assembly" type="AssemblyVolumeType"/> 158 <xs:element maxOccurs="unbounded" minOccur 157 <xs:element maxOccurs="unbounded" minOccurs="0" ref="loop"/> 159 <xs:element ref="ParameterisationAlgorithm 158 <xs:element ref="ParameterisationAlgorithm"/> 160 </xs:choice> 159 </xs:choice> 161 <xs:element minOccurs="0" maxOccurs="unbound 160 <xs:element minOccurs="0" maxOccurs="unbounded" ref="Surface"/> 162 </xs:sequence> 161 </xs:sequence> 163 </xs:complexType> 162 </xs:complexType> 164 </xs:element> 163 </xs:element> 165 <!-- +++++++++++++++++++++++++++++++++++++++ 164 <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> 166 <xs:element name="gdml"> 165 <xs:element name="gdml"> 167 <xs:complexType> 166 <xs:complexType> 168 <xs:sequence> 167 <xs:sequence> 169 <xs:element ref="define"/> 168 <xs:element ref="define"/> 170 <xs:element ref="materials"/> 169 <xs:element ref="materials"/> 171 <xs:element ref="solids"/> 170 <xs:element ref="solids"/> 172 <xs:element ref="structure"/> 171 <xs:element ref="structure"/> 173 <xs:element minOccurs="0" maxOccurs="1" name << 174 <xs:complexType> << 175 <xs:sequence> << 176 <xs:element maxOccurs="unbounded" minO << 177 </xs:sequence> << 178 </xs:complexType> << 179 </xs:element> << 180 << 181 <xs:element maxOccurs="unbounded" name="setu 172 <xs:element maxOccurs="unbounded" name="setup"> 182 <xs:annotation> 173 <xs:annotation> 183 <xs:documentation>Geometry setup represe 174 <xs:documentation>Geometry setup representing the particular geometry hierarchy by refferring to 184 a given volume which becomes the 175 a given volume which becomes the top level volume</xs:documentation> 185 </xs:annotation> 176 </xs:annotation> 186 <xs:complexType> 177 <xs:complexType> 187 <xs:sequence> 178 <xs:sequence> 188 <xs:element name="world" type="Referen 179 <xs:element name="world" type="ReferenceType"> 189 <xs:annotation> 180 <xs:annotation> 190 <xs:documentation>A reference to the pre 181 <xs:documentation>A reference to the previously defined volume 191 in the structure block cho 182 in the structure block chosen by this setup 192 World volumme can't be an 183 World volumme can't be an assembly volume</xs:documentation> 193 </xs:annotation> 184 </xs:annotation> 194 </xs:element> 185 </xs:element> 195 </xs:sequence> 186 </xs:sequence> 196 <xs:attribute name="name" type="xs:ID" u 187 <xs:attribute name="name" type="xs:ID" use="required"/> 197 <xs:attribute name="version" type="xs:st 188 <xs:attribute name="version" type="xs:string" use="required"/> 198 </xs:complexType> 189 </xs:complexType> 199 </xs:element> 190 </xs:element> 200 </xs:sequence> 191 </xs:sequence> 201 <xs:attribute fixed="3.1.7" name="versio << 192 <xs:attribute fixed="2.10.0" name="version" type="xs:string"> 202 <xs:annotation> 193 <xs:annotation> 203 <xs:documentation>The GDML Schema version 194 <xs:documentation>The GDML Schema version consists of 3 digits X.Y.Z 204 where these mean: 195 where these mean: 205 X - major number, increased when m 196 X - major number, increased when major new 206 features or backward incompatible 197 features or backward incompatible bug fixes 207 are added and means the GDML Proce 198 are added and means the GDML Processor is 208 allowed to refuse processing of su 199 allowed to refuse processing of such a 209 document if this is using the more 200 document if this is using the more recent 210 version of the GDML Schema then GD 201 version of the GDML Schema then GDML Processor 211 understands 202 understands 212 Y - minor number, increased when i 203 Y - minor number, increased when incremental and 213 backward compatible changes or imp 204 backward compatible changes or improvements 214 are made into the GDML Schema. GDM 205 are made into the GDML Schema. GDML Processor 215 should be able to process such a d 206 should be able to process such a document 216 using higher minor version number 207 using higher minor version number then that of 217 the GDML Processor 208 the GDML Processor 218 Z - bugfix revision number, increa 209 Z - bugfix revision number, increased when fully 219 backward compatible changes which 210 backward compatible changes which resolve a 220 problem in GDML Schema are applied 211 problem in GDML Schema are applied</xs:documentation> 221 </xs:annotation> 212 </xs:annotation> 222 </xs:attribute> 213 </xs:attribute> 223 </xs:complexType> 214 </xs:complexType> 224 </xs:element> 215 </xs:element> 225 </xs:schema> 216 </xs:schema>