333 lines
19 KiB
XML
333 lines
19 KiB
XML
<?xml version="1.0"?>
|
|
<xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" version="1.0" xmlns:gdml="http://cern.ch/service-spi/app/releases/GDML/schema" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
|
<xs:include schemaLocation="gdml_define.xsd"/>
|
|
<xs:include schemaLocation="gdml_extensions.xsd"/>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:complexType abstract="false" name="DimensionsType">
|
|
<xs:annotation>
|
|
<xs:documentation>Abstract base for parametrised dimensions</xs:documentation>
|
|
</xs:annotation>
|
|
</xs:complexType>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:element name="Dimensions" abstract="true" type="DimensionsType">
|
|
<xs:annotation>
|
|
<xs:documentation>Abstract element for substitution group</xs:documentation>
|
|
</xs:annotation>
|
|
</xs:element>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:complexType name="BoxDimensionsType">
|
|
<xs:annotation>
|
|
<xs:documentation>Dimensions for parametrised Boxes. </xs:documentation>
|
|
</xs:annotation>
|
|
<xs:complexContent>
|
|
<xs:extension base="DimensionsType">
|
|
<xs:attribute default="1.0" name="x" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="y" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="z" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="mm" name="lunit" type="xs:string"></xs:attribute>
|
|
</xs:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:element name="box_dimensions" substitutionGroup="Dimensions" type="BoxDimensionsType"/>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:complexType name="TrdDimensionsType">
|
|
<xs:annotation>
|
|
<xs:documentation>Dimensions for parametrised Trd. </xs:documentation>
|
|
</xs:annotation>
|
|
<xs:complexContent>
|
|
<xs:extension base="DimensionsType">
|
|
<xs:attribute default="1.0" name="x1" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="x2" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="y1" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="y2" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="z" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="mm" name="lunit" type="xs:string"></xs:attribute>
|
|
</xs:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:element name="trd_dimensions" substitutionGroup="Dimensions" type="TrdDimensionsType"/>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:complexType name="TrapDimensionsType">
|
|
<xs:annotation>
|
|
<xs:documentation>Dimensions for parametrised Trap. </xs:documentation>
|
|
</xs:annotation>
|
|
<xs:complexContent>
|
|
<xs:extension base="DimensionsType">
|
|
<xs:attribute default="1.0" name="z" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="theta" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="phi" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="y1" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="x1" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="x2" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="alpha1" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="y2" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="x3" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="x4" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="alpha2" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="mm" name="lunit" type="xs:string"></xs:attribute>
|
|
<xs:attribute default="radian" name="aunit" type="xs:string"></xs:attribute>
|
|
</xs:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:element name="trap_dimensions" substitutionGroup="Dimensions" type="TrapDimensionsType"/>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:complexType name="TubeDimensionsType">
|
|
<xs:annotation>
|
|
<xs:documentation>Dimensions for parametrised Tubes. </xs:documentation>
|
|
</xs:annotation>
|
|
<xs:complexContent>
|
|
<xs:extension base="DimensionsType">
|
|
<xs:attribute default="1.0" name="DeltaPhi" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="InR" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="OutR" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="0.0" name="StartPhi" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="hz" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="mm" name="lunit" type="xs:string"></xs:attribute>
|
|
<xs:attribute default="radian" name="aunit" type="xs:string"></xs:attribute>
|
|
</xs:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:element name="tube_dimensions" substitutionGroup="Dimensions" type="TubeDimensionsType"/>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:complexType name="ConeDimensionsType">
|
|
<xs:annotation>
|
|
<xs:documentation>Dimensions for parametrised Cones. </xs:documentation>
|
|
</xs:annotation>
|
|
<xs:complexContent>
|
|
<xs:extension base="DimensionsType">
|
|
<xs:attribute default="1.0" name="rmin1" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="rmax1" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="rmin2" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="rmax2" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="z" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="0.0" name="startphi" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="deltaphi" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="mm" name="lunit" type="xs:string"></xs:attribute>
|
|
<xs:attribute default="radian" name="aunit" type="xs:string"></xs:attribute>
|
|
</xs:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:element name="cone_dimensions" substitutionGroup="Dimensions" type="ConeDimensionsType"/>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:complexType name="SphereDimensionsType">
|
|
<xs:annotation>
|
|
<xs:documentation>Dimensions for parametrised Spheres. </xs:documentation>
|
|
</xs:annotation>
|
|
<xs:complexContent>
|
|
<xs:extension base="DimensionsType">
|
|
<xs:attribute default="1.0" name="rmin" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="rmax" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="0.0" name="starttheta" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="deltatheta" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="0.0" name="startphi" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="deltaphi" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="mm" name="lunit" type="xs:string"></xs:attribute>
|
|
<xs:attribute default="radian" name="aunit" type="xs:string"></xs:attribute>
|
|
</xs:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:element name="sphere_dimensions" substitutionGroup="Dimensions" type="SphereDimensionsType"/>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:complexType name="OrbDimensionsType">
|
|
<xs:annotation>
|
|
<xs:documentation>Dimensions for parametrised Orbs. </xs:documentation>
|
|
</xs:annotation>
|
|
<xs:complexContent>
|
|
<xs:extension base="DimensionsType">
|
|
<xs:attribute default="1.0" name="r" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="mm" name="lunit" type="xs:string"></xs:attribute>
|
|
</xs:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:element name="orb_dimensions" substitutionGroup="Dimensions" type="OrbDimensionsType"/>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:complexType name="TorusDimensionsType">
|
|
<xs:annotation>
|
|
<xs:documentation>Dimensions for parametrised Torus. </xs:documentation>
|
|
</xs:annotation>
|
|
<xs:complexContent>
|
|
<xs:extension base="DimensionsType">
|
|
<xs:attribute default="1.0" name="rmin" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="rmax" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="rtor" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="0.0" name="startphi" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="deltaphi" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="mm" name="lunit" type="xs:string"></xs:attribute>
|
|
<xs:attribute default="radian" name="aunit" type="xs:string"></xs:attribute>
|
|
</xs:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:element name="torus_dimensions" substitutionGroup="Dimensions" type="TorusDimensionsType"/>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:complexType name="EllipsoidDimensionsType">
|
|
<xs:annotation>
|
|
<xs:documentation>Dimensions for parametrised Ellipsoid. </xs:documentation>
|
|
</xs:annotation>
|
|
<xs:complexContent>
|
|
<xs:extension base="DimensionsType">
|
|
<xs:attribute default="1.0" name="ax" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="by" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="cz" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="-1000000.0" name="zcut1" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1000000.0" name="zcut2" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="mm" name="lunit" type="xs:string"></xs:attribute>
|
|
</xs:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:element name="ellipsoid_dimensions" substitutionGroup="Dimensions" type="EllipsoidDimensionsType"/>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:complexType name="ParaDimensionsType">
|
|
<xs:annotation>
|
|
<xs:documentation>Dimensions for parametrised Paras. </xs:documentation>
|
|
</xs:annotation>
|
|
<xs:complexContent>
|
|
<xs:extension base="DimensionsType">
|
|
<xs:attribute default="1.0" name="x" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="y" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="z" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="alpha" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="theta" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="phi" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="mm" name="lunit" type="xs:string"></xs:attribute>
|
|
<xs:attribute default="radian" name="aunit" type="xs:string"></xs:attribute>
|
|
</xs:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:element name="para_dimensions" substitutionGroup="Dimensions" type="ParaDimensionsType"/>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:complexType name="PolyconeDimensionsType">
|
|
<xs:annotation>
|
|
<xs:documentation>Dimensions for parametrised Polycone. </xs:documentation>
|
|
</xs:annotation>
|
|
<xs:complexContent>
|
|
<xs:extension base="DimensionsType">
|
|
<xs:sequence>
|
|
<xs:element name="zplane" minOccurs="1" maxOccurs="unbounded" type="ZPlaneType"/>
|
|
</xs:sequence>
|
|
<xs:attribute default="1.0" name="numRZ" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="0.0" name="startPhi" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="openPhi" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="mm" name="lunit" type="xs:string"></xs:attribute>
|
|
<xs:attribute default="radian" name="aunit" type="xs:string"></xs:attribute>
|
|
</xs:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:element name="polycone_dimensions" substitutionGroup="Dimensions" type="PolyconeDimensionsType"/>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:complexType name="PolyhedraDimensionsType">
|
|
<xs:annotation>
|
|
<xs:documentation>Dimensions for parametrised Polyhedra. </xs:documentation>
|
|
</xs:annotation>
|
|
<xs:complexContent>
|
|
<xs:extension base="DimensionsType">
|
|
<xs:sequence>
|
|
<xs:element name="zplane" minOccurs="1" maxOccurs="unbounded" type="ZPlaneParamType"/>
|
|
</xs:sequence>
|
|
<xs:attribute default="1.0" name="numRZ" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="numSide" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="startPhi" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="openPhi" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="mm" name="lunit" type="xs:string"></xs:attribute>
|
|
<xs:attribute default="radian" name="aunit" type="xs:string"></xs:attribute>
|
|
</xs:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:element name="polyhedra_dimensions" substitutionGroup="Dimensions" type="PolyhedraDimensionsType"/>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:complexType name="ZPlaneParamType">
|
|
<xs:attribute default="0.0" name="z" type="ExpressionOrIDREFType" ></xs:attribute>
|
|
<xs:attribute default="0.0" name="rmin" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="rmax" type="ExpressionOrIDREFType" ></xs:attribute>
|
|
</xs:complexType>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:complexType name="HypeDimensionsType">
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:annotation>
|
|
<xs:documentation>Dimensions for parametrised Hypes. </xs:documentation>
|
|
</xs:annotation>
|
|
<xs:complexContent>
|
|
<xs:extension base="DimensionsType">
|
|
<xs:attribute default="1.0" name="rmin" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="rmax" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="inst" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="outst" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="1.0" name="z" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="mm" name="lunit" type="xs:string"></xs:attribute>
|
|
<xs:attribute default="radian" name="aunit" type="xs:string"></xs:attribute>
|
|
</xs:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:element name="hype_dimensions" substitutionGroup="Dimensions" type="HypeDimensionsType"/>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:complexType abstract="false" name="ParameterisationAlgorithmType">
|
|
<xs:annotation>
|
|
<xs:documentation>Abstract base for parameterised placement strategies</xs:documentation>
|
|
</xs:annotation>
|
|
</xs:complexType>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:element name="ParameterisationAlgorithm" abstract="true" type="ParameterisationAlgorithmType">
|
|
<xs:annotation>
|
|
<xs:documentation>Abstract element for substitution group</xs:documentation>
|
|
</xs:annotation>
|
|
</xs:element>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:complexType name="PositionSizeParameterisationAlgorithmType">
|
|
<xs:annotation>
|
|
<xs:documentation>Parameterised volumes get created using
|
|
the tabularized position and sizes. </xs:documentation>
|
|
</xs:annotation>
|
|
<xs:complexContent>
|
|
<xs:extension base="ParameterisationAlgorithmType">
|
|
<xs:sequence>
|
|
<xs:element maxOccurs="unbounded" name="parameters" type="ParametersType"/>
|
|
</xs:sequence>
|
|
</xs:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:element name="parameterised_position_size" substitutionGroup="ParameterisationAlgorithm" type="PositionSizeParameterisationAlgorithmType"/>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:complexType name="ParameterisedPlacementType">
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:annotation>
|
|
<xs:documentation>Base type for parameterised volumes</xs:documentation>
|
|
</xs:annotation>
|
|
<xs:sequence>
|
|
<xs:element name="volumeref" type="ReferenceType"></xs:element>
|
|
<xs:element ref="ParameterisationAlgorithm"/>
|
|
</xs:sequence>
|
|
<xs:attribute name="ncopies" type="xs:positiveInteger" use="required"/>
|
|
</xs:complexType>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:element name="paramvol" type="ParameterisedPlacementType"/>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:complexType name="ParametersType">
|
|
<xs:annotation>
|
|
<xs:documentation>
|
|
Holds parameteres for parameterised volumes.
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
<xs:sequence>
|
|
<xs:element type="positionType" name="position"/>
|
|
<xs:element ref="Dimensions"/>
|
|
</xs:sequence>
|
|
<xs:attribute type="xs:positiveInteger" use="required" name="number"/>
|
|
</xs:complexType>
|
|
</xs:schema>
|