80 lines
4.1 KiB
XML
80 lines
4.1 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="ReplicationAlgorithmType">
|
|
<xs:annotation>
|
|
<xs:documentation>Abstract base for replication placement strategies</xs:documentation>
|
|
</xs:annotation>
|
|
</xs:complexType>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:element name="ReplicationAlgorithm" abstract="true" type="ReplicationAlgorithmType">
|
|
<xs:annotation>
|
|
<xs:documentation>Abstract element for substitution group</xs:documentation>
|
|
</xs:annotation>
|
|
</xs:element>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:complexType name="AxisReplicationAlgorithmType">
|
|
<xs:annotation>
|
|
<xs:documentation>Replica volumes get created along the specified direction
|
|
starting with the first replica placed at the given position and rotated
|
|
according to the given rotation and others placed using the given distance;
|
|
If position and/or rotation is omitted the defaults will be applied, e.g.
|
|
position at the mother volume center and identity rotation;
|
|
NOTE: THE ROTATION IS APPLIED TO ALL REPLICATED VOLUMES!</xs:documentation>
|
|
</xs:annotation>
|
|
<xs:complexContent>
|
|
<xs:extension base="ReplicationAlgorithmType">
|
|
<xs:sequence>
|
|
<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:choice>
|
|
<xs:element ref="direction"/>
|
|
<xs:element name="directionref" type="ReferenceType"/>
|
|
</xs:choice>
|
|
<xs:element ref="width"/>
|
|
<xs:element ref="offset"/>
|
|
</xs:sequence>
|
|
</xs:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:element name="replicate_along_axis" substitutionGroup="ReplicationAlgorithm" type="AxisReplicationAlgorithmType"/>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:complexType name="ReplicaPlacementType">
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:annotation>
|
|
<xs:documentation>Base type for replicated volumes</xs:documentation>
|
|
</xs:annotation>
|
|
<xs:sequence>
|
|
<xs:element name="volumeref" type="ReferenceType"></xs:element>
|
|
<xs:element ref="ReplicationAlgorithm"/>
|
|
</xs:sequence>
|
|
<xs:attribute name="number" type="xs:positiveInteger" use="required"/>
|
|
<xs:attribute name="copy_num_start" type="xs:positiveInteger" use="optional" default="1"/>
|
|
<xs:attribute name="copy_num_step" type="xs:positiveInteger" use="optional" default="1"/>
|
|
</xs:complexType>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:complexType name="directionType">
|
|
<xs:attribute default="0.0" name="x" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="0.0" name="y" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="0.0" name="z" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="0.0" name="phi" type="ExpressionOrIDREFType"></xs:attribute>
|
|
<xs:attribute default="0.0" name="rho" type="ExpressionOrIDREFType"></xs:attribute>
|
|
</xs:complexType>
|
|
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
|
|
<xs:element name="direction" type="directionType"/>
|
|
<xs:element name="width" type="QuantityType"/>
|
|
<xs:element name="offset" type="QuantityType"/>
|
|
<xs:element name="replicavol" type="ReplicaPlacementType"/>
|
|
</xs:schema>
|