1 | <?xml version="1.0"?> |
---|
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_define.xsd"/> |
---|
4 | <xs:include schemaLocation="gdml_extensions.xsd"/> |
---|
5 | <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> |
---|
6 | <xs:complexType abstract="false" name="ReplicationAlgorithmType"> |
---|
7 | <xs:annotation> |
---|
8 | <xs:documentation>Abstract base for replication placement strategies</xs:documentation> |
---|
9 | </xs:annotation> |
---|
10 | </xs:complexType> |
---|
11 | <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> |
---|
12 | <xs:element name="ReplicationAlgorithm" abstract="true" type="ReplicationAlgorithmType"> |
---|
13 | <xs:annotation> |
---|
14 | <xs:documentation>Abstract element for substitution group</xs:documentation> |
---|
15 | </xs:annotation> |
---|
16 | </xs:element> |
---|
17 | <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> |
---|
18 | |
---|
19 | <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> |
---|
20 | <xs:complexType name="AxisReplicationAlgorithmType"> |
---|
21 | <xs:annotation> |
---|
22 | <xs:documentation>Replica volumes get created along the specified direction |
---|
23 | starting with the first replica placed at the given position and rotated |
---|
24 | according to the given rotation and others placed using the given distance; |
---|
25 | If position and/or rotation is omitted the defaults will be applied, e.g. |
---|
26 | position at the mother volume center and identity rotation; |
---|
27 | NOTE: THE ROTATION IS APPLIED TO ALL REPLICATED VOLUMES!</xs:documentation> |
---|
28 | </xs:annotation> |
---|
29 | <xs:complexContent> |
---|
30 | <xs:extension base="ReplicationAlgorithmType"> |
---|
31 | <xs:sequence> |
---|
32 | <xs:choice minOccurs="0"> |
---|
33 | <xs:element name="position" type="positionType"/> |
---|
34 | <xs:element name="positionref" type="ReferenceType"/> |
---|
35 | </xs:choice> |
---|
36 | <xs:choice minOccurs="0"> |
---|
37 | <xs:element name="rotation" type="rotationType"/> |
---|
38 | <xs:element name="rotationref" type="ReferenceType"/> |
---|
39 | </xs:choice> |
---|
40 | <xs:choice> |
---|
41 | <xs:element ref="direction"/> |
---|
42 | <xs:element name="directionref" type="ReferenceType"/> |
---|
43 | </xs:choice> |
---|
44 | <xs:element ref="width"/> |
---|
45 | <xs:element ref="offset"/> |
---|
46 | </xs:sequence> |
---|
47 | </xs:extension> |
---|
48 | </xs:complexContent> |
---|
49 | </xs:complexType> |
---|
50 | <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> |
---|
51 | <xs:element name="replicate_along_axis" substitutionGroup="ReplicationAlgorithm" type="AxisReplicationAlgorithmType"/> |
---|
52 | <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> |
---|
53 | <xs:complexType name="ReplicaPlacementType"> |
---|
54 | <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> |
---|
55 | <xs:annotation> |
---|
56 | <xs:documentation>Base type for replicated volumes</xs:documentation> |
---|
57 | </xs:annotation> |
---|
58 | <xs:sequence> |
---|
59 | <xs:element name="volumeref" type="ReferenceType"></xs:element> |
---|
60 | <xs:element ref="ReplicationAlgorithm"/> |
---|
61 | </xs:sequence> |
---|
62 | <xs:attribute name="number" type="xs:positiveInteger" use="required"/> |
---|
63 | <xs:attribute name="copy_num_start" type="xs:positiveInteger" use="optional" default="1"/> |
---|
64 | <xs:attribute name="copy_num_step" type="xs:positiveInteger" use="optional" default="1"/> |
---|
65 | </xs:complexType> |
---|
66 | <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> |
---|
67 | <xs:complexType name="directionType"> |
---|
68 | <xs:complexContent> |
---|
69 | <xs:restriction base="QuantityVectorType"> |
---|
70 | <xs:attribute default="mm" type="xs:string" name="unit"/> |
---|
71 | <xs:attribute default="cartesian" type="xs:string" name="type"/> |
---|
72 | </xs:restriction> |
---|
73 | </xs:complexContent> |
---|
74 | </xs:complexType> |
---|
75 | <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> |
---|
76 | <xs:element name="direction" type="directionType"/> |
---|
77 | <xs:element name="width" type="QuantityType"/> |
---|
78 | <xs:element name="offset" type="QuantityType"/> |
---|
79 | <xs:element name="replicavol" type="ReplicaPlacementType"/> |
---|
80 | </xs:schema> |
---|