|
| 1 | +<?xml version="1.0" encoding="UTF-8"?> |
| 2 | +<!DOCTYPE xs:schema > |
| 3 | +<xs:schema attributeFormDefault="unqualified" |
| 4 | + elementFormDefault="unqualified" |
| 5 | + version="1.0" |
| 6 | + xmlns:gdml_simple_extension="http://www.example.org/" |
| 7 | + xmlns:gdml="http://cern.ch/2001/Schemas/GDML" |
| 8 | + xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
| 9 | + |
| 10 | + <xs:redefine schemaLocation="gdml.xsd"> |
| 11 | + |
| 12 | + <xs:annotation> |
| 13 | + <xs:documentation> |
| 14 | + Extend the volume element using the redefine tag. |
| 15 | + </xs:documentation> |
| 16 | + </xs:annotation> |
| 17 | + |
| 18 | + <xs:complexType name="VolumeType"> |
| 19 | + <xs:annotation> |
| 20 | + <xs:documentation> |
| 21 | + Extend the VolumeType defined by GDML. |
| 22 | + </xs:documentation> |
| 23 | + </xs:annotation> |
| 24 | + <xs:complexContent> |
| 25 | + <xs:extension base="VolumeType"> |
| 26 | + <xs:sequence> |
| 27 | + <xs:element minOccurs="0" maxOccurs="1" name="colorref" type="ReferenceType"/> |
| 28 | + </xs:sequence> |
| 29 | + </xs:extension> |
| 30 | + </xs:complexContent> |
| 31 | + </xs:complexType> |
| 32 | + </xs:redefine> |
| 33 | + |
| 34 | + <xs:complexType name="extensionType"> |
| 35 | + <xs:annotation> |
| 36 | + <xs:documentation> |
| 37 | + Contains color elements. |
| 38 | + </xs:documentation> |
| 39 | + </xs:annotation> |
| 40 | + <xs:sequence> |
| 41 | + <xs:element name="color" minOccurs="0" maxOccurs="unbounded" type="ColorType" /> |
| 42 | + </xs:sequence> |
| 43 | + </xs:complexType> |
| 44 | + |
| 45 | + <xs:complexType name="ColorType"> |
| 46 | + <xs:annotation> |
| 47 | + <xs:documentation> |
| 48 | + A complex type defining RGBA values for geometric data display. |
| 49 | + These values will be loaded into a G4VisAttributes object assigned |
| 50 | + to the G4LogicalVolume. |
| 51 | + </xs:documentation> |
| 52 | + </xs:annotation> |
| 53 | + <xs:attribute name="name" type="xs:ID" use="required" /> |
| 54 | + <xs:attribute name="R" type="xs:double" default="1.0"/> |
| 55 | + <xs:attribute name="G" type="xs:double" default="1.0"/> |
| 56 | + <xs:attribute name="B" type="xs:double" default="1.0"/> |
| 57 | + <xs:attribute name="A" type="xs:double" default="1.0" /> |
| 58 | + </xs:complexType> |
| 59 | + |
| 60 | + <xs:element name="extension" type="extensionType"/> |
| 61 | + <xs:element name="gdml_simple_extension"> |
| 62 | + <!--<xs:element ref="define"/>--> |
| 63 | + <xs:annotation> |
| 64 | + <xs:documentation> |
| 65 | + Top-level element including the gdml element |
| 66 | + plus a container extension element for e.g. |
| 67 | + fields, SDs, regions and components. |
| 68 | + </xs:documentation> |
| 69 | + </xs:annotation> |
| 70 | + <xs:complexType> |
| 71 | + <xs:sequence> |
| 72 | + <xs:element ref="extension" minOccurs="0" maxOccurs="1"/> |
| 73 | + <xs:element ref="define" minOccurs="1"/> |
| 74 | + <xs:element ref="materials" minOccurs="0"/> |
| 75 | + <xs:element ref="solids" minOccurs="1"/> |
| 76 | + <xs:element ref="structure" minOccurs="1"/> |
| 77 | + <xs:element maxOccurs="unbounded" name="setup"> |
| 78 | + <xs:annotation> |
| 79 | + <xs:documentation>Geometry setup representing the particular geometry hierarchy by refferring to |
| 80 | + a given volume which becomes the top level volume</xs:documentation> |
| 81 | + </xs:annotation> |
| 82 | + <xs:complexType> |
| 83 | + <xs:sequence> |
| 84 | + <xs:element name="world" type="ReferenceType"> |
| 85 | + <xs:annotation> |
| 86 | + <xs:documentation>A reference to the previously defined volume |
| 87 | + in the structure block chosen by this setup |
| 88 | + World volumme can't be an assembly volume</xs:documentation> |
| 89 | + </xs:annotation> |
| 90 | + </xs:element> |
| 91 | + </xs:sequence> |
| 92 | + <xs:attribute name="name" type="xs:ID" use="required"/> |
| 93 | + <xs:attribute name="version" type="xs:string" use="required"/> |
| 94 | + </xs:complexType> |
| 95 | + </xs:element> |
| 96 | + </xs:sequence> |
| 97 | + <xs:attribute fixed="2.10.0" name="version" type="xs:string"> |
| 98 | + <xs:annotation> |
| 99 | + <xs:documentation>The GDML Schema version consists of 3 digits X.Y.Z |
| 100 | + where these mean: |
| 101 | + X - major number, increased when major new |
| 102 | + features or backward incompatible bug fixes |
| 103 | + are added and means the GDML Processor is |
| 104 | + allowed to refuse processing of such a |
| 105 | + document if this is using the more recent |
| 106 | + version of the GDML Schema then GDML Processor |
| 107 | + understands |
| 108 | + Y - minor number, increased when incremental and |
| 109 | + backward compatible changes or improvements |
| 110 | + are made into the GDML Schema. GDML Processor |
| 111 | + should be able to process such a document |
| 112 | + using higher minor version number then that of |
| 113 | + the GDML Processor |
| 114 | + Z - bugfix revision number, increased when fully |
| 115 | + backward compatible changes which resolve a |
| 116 | + problem in GDML Schema are applied</xs:documentation> |
| 117 | + </xs:annotation> |
| 118 | + </xs:attribute> |
| 119 | + </xs:complexType> |
| 120 | + </xs:element> |
| 121 | +</xs:schema> |
0 commit comments