Page Menu
Home
Search
Configure Global Search
Log In
Files
F19798
gdml.xsd
Public
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Authored By
Matthew Reid (mattreid9956)
Nov 13 2013, 4:20 PM
Size
11 KB
Subscribers
None
gdml.xsd
View Options
<?xml version="1.0" encoding="UTF-8"?>
<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"
>
<xs:include
schemaLocation=
"gdml_core.xsd"
/>
<xs:include
schemaLocation=
"gdml_define.xsd"
/>
<xs:include
schemaLocation=
"gdml_materials.xsd"
/>
<xs:include
schemaLocation=
"gdml_solids.xsd"
/>
<xs:include
schemaLocation=
"gdml_replicas.xsd"
/>
<xs:include
schemaLocation=
"gdml_parameterised.xsd"
/>
<xs:include
schemaLocation=
"gdml_extensions.xsd"
/>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:complexType
abstract=
"true"
name=
"IdentifiableVolumeType"
>
<xs:attribute
name=
"name"
type=
"xs:ID"
use=
"required"
/>
</xs:complexType>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:complexType
name=
"SinglePlacementType"
>
<xs:annotation>
<xs:documentation>
Represents a single unique copy a of an associated logical volume
in geometrical hierarchy
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:choice
minOccurs=
"1"
>
<xs:element
name=
"file"
type=
"FileReferenceType"
/>
<xs:element
name=
"volumeref"
type=
"ReferenceType"
/>
</xs:choice>
<xs:choice
minOccurs=
"0"
>
<xs:element
name=
"position"
type=
"positionType"
/>
<xs:element
name=
"positionref"
type=
"ReferenceType"
/>
</xs:choice>
<xs:choice
minOccurs=
"0"
>
<xs:element
name=
"rotation"
type=
"rotationType"
/>
<xs:element
name=
"rotationref"
type=
"ReferenceType"
/>
</xs:choice>
</xs:sequence>
<xs:attribute
name=
"name"
type=
"xs:ID"
></xs:attribute>
</xs:complexType>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:complexType
name=
"DivisionPlacementType"
>
<xs:annotation>
<xs:documentation>
Represents a division of the associated logical volume
in geometrical hierarchy
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element
name=
"volumeref"
type=
"ReferenceType"
/>
</xs:sequence>
<xs:attribute
name=
"axis"
type=
"xs:string"
use=
"required"
></xs:attribute>
<xs:attribute
name=
"number"
type=
"ExpressionOrIDREFType"
use=
"required"
></xs:attribute>
<xs:attribute
name=
"width"
type=
"ExpressionOrIDREFType"
use=
"required"
></xs:attribute>
<xs:attribute
name=
"offset"
type=
"ExpressionOrIDREFType"
use=
"required"
></xs:attribute>
<xs:attribute
default=
"mm"
name=
"unit"
type=
"xs:string"
></xs:attribute>
</xs:complexType>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:complexType
name=
"VolumeType"
>
<xs:annotation>
<xs:documentation>
Represents a top of a geometrical sub-hierarchy not placed in space
None of its children can coincide with its boundary defined by an associated solid
Two different placements of the same logical volume represent two different geometrical
hierarchies in space
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension
base=
"IdentifiableVolumeType"
>
<xs:sequence>
<xs:element
name=
"materialref"
type=
"ReferenceType"
/>
<xs:element
name=
"solidref"
type=
"ReferenceType"
/>
<xs:choice
minOccurs=
"0"
>
<xs:element
maxOccurs=
"unbounded"
name=
"physvol"
type=
"SinglePlacementType"
/>
<xs:element
maxOccurs=
"1"
minOccurs=
"1"
name=
"divisionvol"
type=
"DivisionPlacementType"
/>
<xs:element
maxOccurs=
"1"
minOccurs=
"1"
ref=
"replicavol"
/>
<xs:element
maxOccurs=
"1"
minOccurs=
"1"
name=
"paramvol"
type=
"ParameterisedPlacementType"
/>
</xs:choice>
<xs:element
maxOccurs=
"unbounded"
minOccurs=
"0"
ref=
"loop"
/>
<xs:element
name=
"auxiliary"
maxOccurs=
"unbounded"
minOccurs=
"0"
type=
"AuxiliaryType"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:complexType
name=
"AssemblyVolumeType"
>
<xs:annotation>
<xs:documentation>
Allows to create a group of volumes bound together without a boundary
All the volumes exits inside the same virtual reference system of the assmebly volume
they belong to
When assembly volume is placed all its children follow the global transformation applied
to their assembly volume
After the assembly volume is placed its children exist as standalone placements in space
independent of each other
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension
base=
"IdentifiableVolumeType"
>
<xs:choice>
<xs:element
maxOccurs=
"unbounded"
name=
"physvol"
type=
"SinglePlacementType"
/>
<xs:element
maxOccurs=
"1"
minOccurs=
"1"
ref=
"replicavol"
/>
<xs:element
maxOccurs=
"1"
minOccurs=
"1"
name=
"paramvol"
type=
"ParameterisedPlacementType"
/>
</xs:choice>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:complexType
name=
"LogicalSurfaceType"
>
<xs:annotation>
<xs:documentation>
Base type for logical surfaces (for the moment only optical)
</xs:documentation>
</xs:annotation>
<xs:attribute
name=
"name"
type=
"xs:ID"
use=
"required"
></xs:attribute>
<xs:attribute
name=
"surfaceproperty"
type=
"ExpressionOrIDREFType"
use=
"required"
></xs:attribute>
</xs:complexType>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:element
abstract=
"true"
name=
"Surface"
type=
"LogicalSurfaceType"
>
<xs:annotation>
<xs:documentation>
Abstract element for all solids substitution group
</xs:documentation>
</xs:annotation>
</xs:element>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:element
name=
"bordersurface"
substitutionGroup=
"Surface"
>
<xs:annotation>
<xs:documentation>
Surface between two physical volumes
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension
base=
"LogicalSurfaceType"
>
<xs:sequence>
<xs:element
name=
"physvolref"
type=
"ReferenceType"
/>
<xs:element
name=
"physvolref"
type=
"ReferenceType"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:element
name=
"skinsurface"
substitutionGroup=
"Surface"
>
<xs:annotation>
<xs:documentation>
Surface between two physical volumes
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension
base=
"LogicalSurfaceType"
>
<xs:sequence>
<xs:element
name=
"volumeref"
type=
"ReferenceType"
/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:element
name=
"structure"
>
<xs:annotation>
<xs:documentation>
Definitions of a geometrical hierarchy of a set of volumes
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:choice
maxOccurs=
"unbounded"
>
<xs:element
name=
"volume"
type=
"VolumeType"
/>
<xs:element
name=
"assembly"
type=
"AssemblyVolumeType"
/>
<xs:element
maxOccurs=
"unbounded"
minOccurs=
"0"
ref=
"loop"
/>
<xs:element
ref=
"ParameterisationAlgorithm"
/>
</xs:choice>
<xs:element
minOccurs=
"0"
maxOccurs=
"unbounded"
ref=
"Surface"
/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:element
name=
"gdml"
>
<xs:complexType>
<xs:sequence>
<xs:element
ref=
"define"
/>
<xs:element
ref=
"materials"
/>
<xs:element
ref=
"solids"
/>
<xs:element
ref=
"structure"
/>
<xs:element
maxOccurs=
"unbounded"
name=
"setup"
>
<xs:annotation>
<xs:documentation>
Geometry setup representing the particular geometry hierarchy by refferring to
a given volume which becomes the top level volume
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element
name=
"world"
type=
"ReferenceType"
>
<xs:annotation>
<xs:documentation>
A reference to the previously defined volume
in the structure block chosen by this setup
World volumme can't be an assembly volume
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute
name=
"name"
type=
"xs:ID"
use=
"required"
/>
<xs:attribute
name=
"version"
type=
"xs:string"
use=
"required"
/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute
fixed=
"2.9.0"
name=
"version"
type=
"xs:string"
>
<xs:annotation>
<xs:documentation>
The GDML Schema version consists of 3 digits X.Y.Z
where these mean:
X - major number, increased when major new
features or backward incompatible bug fixes
are added and means the GDML Processor is
allowed to refuse processing of such a
document if this is using the more recent
version of the GDML Schema then GDML Processor
understands
Y - minor number, increased when incremental and
backward compatible changes or improvements
are made into the GDML Schema. GDML Processor
should be able to process such a document
using higher minor version number then that of
the GDML Processor
Z - bugfix revision number, increased when fully
backward compatible changes which resolve a
problem in GDML Schema are applied
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:complexType
name=
"GDMLType"
>
<xs:sequence>
<xs:element
ref=
"define"
/>
<xs:element
ref=
"materials"
/>
<xs:element
ref=
"solids"
/>
<xs:element
ref=
"structure"
/>
<xs:element
maxOccurs=
"unbounded"
name=
"setup"
>
<xs:annotation>
<xs:documentation>
Geometry setup representing the particular geometry hierarchy by refferring to
a given volume which becomes the top level volume
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element
name=
"world"
type=
"ReferenceType"
>
<xs:annotation>
<xs:documentation>
A reference to the previously defined volume
in the structure block chosen by this setup
World volumme can't be an assembly volume
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute
name=
"name"
type=
"xs:ID"
use=
"required"
/>
<xs:attribute
name=
"version"
type=
"xs:string"
use=
"required"
/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute
fixed=
"2.8.0"
name=
"version"
type=
"xs:string"
>
<xs:annotation>
<xs:documentation>
The GDML Schema version consists of 3 digits X.Y.Z
where these mean:
X - major number, increased when major new
features or backward incompatible bug fixes
are added and means the GDML Processor is
allowed to refuse processing of such a
document if this is using the more recent
version of the GDML Schema then GDML Processor
understands
Y - minor number, increased when incremental and
backward compatible changes or improvements
are made into the GDML Schema. GDML Processor
should be able to process such a document
using higher minor version number then that of
the GDML Processor
Z - bugfix revision number, increased when fully
backward compatible changes which resolve a
problem in GDML Schema are applied
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:schema>
File Metadata
Details
Mime Type
application/xml
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
f6/61/ba0b7620ae1ecaf1f21255c3364f
Event Timeline
Log In to Comment