1 added + 7 modified, total 8 files
lcdd/schemas/gdml/1.0
diff -N gdml_extensions.xsd
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ gdml_extensions.xsd 5 Jul 2007 22:27:06 -0000 1.1
@@ -0,0 +1,36 @@
+<?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:element name="loop">
+ <xs:complexType>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element maxOccurs="unbounded" ref="Solid"/>
+ <xs:element name="volume" type="VolumeType"/>
+ <xs:element name="physvol" type="SinglePlacementType"/>
+ </xs:choice>
+ <xs:attribute name="for" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="from" type="xs:nonNegativeInteger">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="to" type="xs:positiveInteger">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="step" type="xs:positiveInteger">
+ <xs:annotation>
+ <xs:documentation>
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>
lcdd/schemas/gdml/1.0
diff -u -r1.2 -r1.3
--- gdml.xsd 25 Mar 2006 02:05:08 -0000 1.2
+++ gdml.xsd 5 Jul 2007 22:27:06 -0000 1.3
@@ -6,6 +6,7 @@
<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"/>
@@ -14,10 +15,13 @@
<xs:complexType name="SinglePlacementType">
<xs:annotation>
<xs:documentation>Represents a single unique copy a of an associated logical volume
- in geometrical hierarchy</xs:documentation>
+ in geometrical hierarchy</xs:documentation>
</xs:annotation>
<xs:sequence>
- <xs:element name="volumeref" type="ReferenceType"/>
+ <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"/>
@@ -27,12 +31,13 @@
<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>
+ in geometrical hierarchy</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="volumeref" type="ReferenceType"/>
@@ -47,21 +52,22 @@
<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>
+ 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 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>
@@ -71,12 +77,12 @@
<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>
+ 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">
@@ -89,6 +95,52 @@
</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>
@@ -98,8 +150,10 @@
<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>
@@ -114,15 +168,15 @@
<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>
+ 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>
+ in the structure block chosen by this setup
+ World volumme can't be an assembly volume</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
@@ -131,28 +185,79 @@
</xs:complexType>
</xs:element>
</xs:sequence>
- <xs:attribute fixed="2.3.0" name="version" type="xs:string">
+ <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>
+ 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>
lcdd/schemas/gdml/1.0
diff -u -r1.1 -r1.2
--- gdml_core.xsd 30 Mar 2005 19:06:51 -0000 1.1
+++ gdml_core.xsd 5 Jul 2007 22:27:06 -0000 1.2
@@ -51,6 +51,13 @@
<xs:attribute name="value" type="ExpressionOrIDREFType" use="required"></xs:attribute>
</xs:complexType>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+ <xs:complexType name="VariableType">
+ <xs:annotation>
+ <xs:documentation>An anonymous, local scope, value</xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="value" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ </xs:complexType>
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:complexType name="IdentifiableConstantType">
<xs:annotation>
<xs:documentation>Named (referenced), global scope, constant value</xs:documentation>
@@ -62,6 +69,17 @@
</xs:complexContent>
</xs:complexType>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+ <xs:complexType name="IdentifiableVariableType">
+ <xs:annotation>
+ <xs:documentation>Named (referenced), local scope, variable value</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="VariableType">
+ <xs:attribute name="name" type="xs:ID" use="required"></xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:complexType name="QuantityType">
<xs:annotation>
<xs:documentation>An anonymous quantity, local scope, with a unit,
@@ -99,6 +117,15 @@
<xs:attribute default="0.0" name="z" type="ExpressionOrIDREFType"></xs:attribute>
</xs:complexType>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+ <xs:complexType name="MatrixType">
+ <xs:annotation>
+ <xs:documentation>A bi-dimensional matrix of doubles</xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="name" type="xs:ID"></xs:attribute>
+ <xs:attribute name="coldim" type="xs:nonNegativeInteger"></xs:attribute>
+ <xs:attribute name="values" type="xs:string"></xs:attribute>
+ </xs:complexType>
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:complexType name="IdentifiableThreeVectorType">
<xs:annotation>
<xs:documentation>Named (referenced), 3 dimensional, global scope, vector of doubles</xs:documentation>
@@ -146,6 +173,14 @@
<xs:attribute name="ref" type="xs:IDREF" use="required"></xs:attribute>
</xs:complexType>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+ <xs:complexType name="FileReferenceType">
+ <xs:annotation>
+ <xs:documentation>Reference to an external file containing sub-volume information</xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="name" type="xs:anyURI" use="required"></xs:attribute>
+ <xs:attribute name="volname" type="xs:string" use="optional"></xs:attribute>
+ </xs:complexType>
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:complexType name="ReferenceListType">
<xs:annotation>
<xs:documentation>List of local references to a set of element of a named type</xs:documentation>
lcdd/schemas/gdml/1.0
diff -u -r1.1 -r1.2
--- gdml_define.xsd 30 Mar 2005 19:06:51 -0000 1.1
+++ gdml_define.xsd 5 Jul 2007 22:27:06 -0000 1.2
@@ -2,6 +2,7 @@
<!DOCTYPE xs:schema>
<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_extensions.xsd"/>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:element name="define" type="defineType">
@@ -23,6 +24,9 @@
<xs:choice maxOccurs="unbounded">
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+ <xs:element maxOccurs="unbounded" minOccurs="0" ref="loop"/>
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+
<xs:element maxOccurs="unbounded" minOccurs="0" name="constant" type="IdentifiableConstantType">
<xs:annotation>
<xs:documentation>Named constant</xs:documentation>
@@ -30,6 +34,20 @@
</xs:element>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="variable" type="IdentifiableVariableType">
+ <xs:annotation>
+ <xs:documentation>Named variable</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+
+ <xs:element maxOccurs="unbounded" minOccurs="0" name="matrix" type="MatrixType">
+ <xs:annotation>
+ <xs:documentation>Named matrix</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+
<xs:element maxOccurs="unbounded" minOccurs="0" name="quantity" type="IdentifiableQuantityType">
<xs:annotation>
<xs:documentation>Named quantity</xs:documentation>
lcdd/schemas/gdml/1.0
diff -u -r1.1 -r1.2
--- gdml_materials.xsd 30 Mar 2005 19:06:51 -0000 1.1
+++ gdml_materials.xsd 5 Jul 2007 22:27:06 -0000 1.2
@@ -4,6 +4,7 @@
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:include schemaLocation="gdml_core.xsd"></xs:include>
<xs:include schemaLocation="gdml_define.xsd"></xs:include>
+ <xs:include schemaLocation="gdml_extensions.xsd"/>
<!-- Removed abstract="true" in AtomType -->
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:complexType name="AtomType">
@@ -35,6 +36,20 @@
<xs:documentation>General material properties</xs:documentation>
</xs:annotation>
<xs:sequence>
+ <xs:choice minOccurs="0">
+ <xs:element maxOccurs="unbounded" name="property">
+ <xs:annotation>
+ <xs:documentation>General material property (const or vector)</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="ReferenceType">
+ <xs:attribute name="name" type="xs:string" use="required"></xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
<xs:choice minOccurs="0">
<xs:element name="RL">
<xs:annotation>
@@ -186,7 +201,8 @@
<xs:documentation>Materials description</xs:documentation>
</xs:annotation>
<xs:complexType>
- <xs:sequence maxOccurs="unbounded">
+ <xs:choice maxOccurs="unbounded">
+ <xs:element maxOccurs="unbounded" minOccurs="0" ref="loop"/>
<xs:element minOccurs="0" name="define" type="defineType">
<xs:annotation>
<xs:documentation>Material related definitons of constants and quantities
@@ -200,7 +216,7 @@
</xs:element>
<xs:element maxOccurs="unbounded" minOccurs="0" name="element" type="MaterialElementType">
<xs:annotation>
- <xs:documentation>A simple element or an element compoased of isotopes</xs:documentation>
+ <xs:documentation>A simple element or an element composed of isotopes</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element maxOccurs="unbounded" minOccurs="0" name="material" type="MaterialMixtureType">
@@ -208,7 +224,7 @@
<xs:documentation>A composite or a mixture complex material</xs:documentation>
</xs:annotation>
</xs:element>
- </xs:sequence>
+ </xs:choice>
</xs:complexType>
</xs:element>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
lcdd/schemas/gdml/1.0
diff -u -r1.1 -r1.2
--- gdml_parameterised.xsd 30 Mar 2005 19:06:51 -0000 1.1
+++ gdml_parameterised.xsd 5 Jul 2007 22:27:06 -0000 1.2
@@ -1,6 +1,7 @@
<?xml version="1.0"?>
<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_define.xsd"/>
+ <xs:include schemaLocation="gdml_extensions.xsd"/>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:complexType abstract="false" name="DimensionsType">
<xs:annotation>
lcdd/schemas/gdml/1.0
diff -u -r1.2 -r1.3
--- gdml_replicas.xsd 25 Mar 2006 02:05:08 -0000 1.2
+++ gdml_replicas.xsd 5 Jul 2007 22:27:06 -0000 1.3
@@ -1,6 +1,7 @@
<?xml version="1.0"?>
<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_define.xsd"/>
+ <xs:include schemaLocation="gdml_extensions.xsd"/>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:complexType abstract="false" name="ReplicationAlgorithmType">
<xs:annotation>
lcdd/schemas/gdml/1.0
diff -u -r1.2 -r1.3
--- gdml_solids.xsd 25 Mar 2006 02:05:08 -0000 1.2
+++ gdml_solids.xsd 5 Jul 2007 22:27:06 -0000 1.3
@@ -3,6 +3,7 @@
<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>
<xs:include schemaLocation="gdml_define.xsd"></xs:include>
+ <xs:include schemaLocation="gdml_extensions.xsd"/>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:complexType name="SolidType">
@@ -79,25 +80,16 @@
</xs:complexContent>
</xs:complexType>
</xs:element>
-
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
- <!--
- <xs:element name="BooleanSolid" abstract="true">
- <xs:annotation>
- <xs:documentation>
- Abstract element for boolean solids substitution group
- </xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:complexContent>
- <xs:extension base="BooleanSolidType"/>
- </xs:complexContent>
- </xs:complexType>
- </xs:element>
- -->
-
- <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+ <xs:complexType name="SurfacePropertyType">
+ <xs:annotation>
+ <xs:documentation>Base surface type</xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="name" type="xs:ID" use="required"></xs:attribute>
+ <xs:attribute name="type" type="xs:string" default="dielectric_dielectric"></xs:attribute>
+ </xs:complexType>
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:element abstract="true" name="Solid" type="SolidType">
<xs:annotation>
@@ -106,12 +98,19 @@
</xs:element>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+ <xs:element abstract="true" name="SurfaceProperty" type="SurfacePropertyType">
+ <xs:annotation>
+ <xs:documentation>Abstract element for surfaces substitution</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+
<xs:element name="solids">
<xs:annotation>
<xs:documentation>Solids definitions block</xs:documentation>
</xs:annotation>
<xs:complexType>
- <xs:sequence>
+ <xs:choice maxOccurs="unbounded">
<xs:element minOccurs="0" name="define" type="defineType">
<xs:annotation>
<xs:documentation>Definitions of constants and expressions to be used for solids'
@@ -120,7 +119,9 @@
</xs:annotation>
</xs:element>
<xs:element maxOccurs="unbounded" ref="Solid"></xs:element>
- </xs:sequence>
+ <xs:element minOccurs="0" maxOccurs="unbounded" ref="SurfaceProperty"></xs:element>
+ <xs:element maxOccurs="unbounded" minOccurs="0" ref="loop"/>
+ </xs:choice>
</xs:complexType>
</xs:element>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
@@ -160,6 +161,109 @@
</xs:complexContent>
</xs:complexType>
</xs:element>
+<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+
+ <xs:element name="twistedbox" substitutionGroup="Solid">
+ <xs:annotation>
+ <xs:documentation>CSG twisted box solid described by 4 dimensions of
+ x length along x axis
+ y length along y axis
+ z length along z axis
+ PhiTwist twist angle </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="SolidType">
+ <xs:attribute name="x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="PhiTwist" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+
+ <xs:element name="twistedtrap" substitutionGroup="Solid">
+ <xs:annotation>
+ <xs:documentation>general twisted trapezoid. faces perpendicular to the z planes are trapezia, and their centres are
+ not necessarily on a line paralell to the z axis.
+ PhiTwist Twist Angle
+ z length along the z-axis
+ Theta Polar angle of the line joining the centres of the faces at -/+z
+ Phi Azimuthal angle of the line joing the centre of the face at -z to the centre of the face at +z
+ y1 length along y of the face at -z
+ x1 length along x of the side at y=-y1 of the face at -z
+ x2 length along x of the side at y=+y1 of the face at -z
+ y2 length along y of the face at +z
+ x3 length along x of the side at y=-y2 of the face at +z
+ x4 length along x of the side at y=+y2 of the face at +z
+ Alph Angle with respect to the y axis from the centre of the side </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="SolidType">
+ <xs:attribute name="PhiTwist" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="Theta" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="Phi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="y1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="x1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="y2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="x2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="x3" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="x4" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="Alph" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+
+ <xs:element name="twistedtrd" substitutionGroup="Solid">
+ <xs:annotation>
+ <xs:documentation>different length axis twistable trapezoid. faces perpendicular to the z planes are trapezia, and their centres are
+ not necessarily on a line paralell to the z axis.
+ PhiTwist Twist Angle
+ z length along the z-axis
+ y1 length along y of the face at -z
+ x1 length along x of the side at y=-y1 of the face at -z
+ x2 length along x of the side at y=+y1 of the face at -z
+ y2 length along y of the face at +z </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="SolidType">
+ <xs:attribute name="PhiTwist" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="y1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="x1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="y2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="x2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+
+ <xs:element name="paraboloid" substitutionGroup="Solid">
+ <xs:annotation>
+ <xs:documentation>CSG paraboloid defined by
+ rlo radius at -dz
+ rhi radius at +dz
+ dz half z length
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="SolidType">
+ <xs:attribute name="rlo" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="rhi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="dz" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:element name="sphere" substitutionGroup="Solid">
@@ -170,7 +274,8 @@
startphi starting angle of the segment in radians(0 <= phi <= 2*PI)
deltaphi delta angle of the segment in radians
starttheta starting angle of the segment in radians(0 <= theta <= PI)
- deltatheta delta angle of the segment in radians</xs:documentation>
+ deltatheta delta angle of the segment in radians
+ </xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
@@ -185,7 +290,7 @@
</xs:complexContent>
</xs:complexType>
</xs:element>
- <!-- +++++++++++++++ G.GUERRIERI - 26.06.2005 +++++++++++++++++++++++ -->
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:element name="ellipsoid" substitutionGroup="Solid">
<xs:annotation>
@@ -233,8 +338,63 @@
</xs:complexContent>
</xs:complexType>
</xs:element>
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+
+ <xs:element name="twistedtubs" substitutionGroup="Solid">
+ <xs:annotation>
+ <xs:documentation>CSG twisted tube segement solid described by
+ twistedangle twist angle
+ endinnerrad inside radius at end of segment
+ endouterrad outside radius at end of segment
+ zlen z length of segment
+ phi phi angle of a segment </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="SolidType">
+ <xs:attribute name="twistedangle" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="endinnerrad" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="endouterrad" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="zlen" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="phi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-
+
+ <xs:element name="cutTube" substitutionGroup="Solid">
+ <xs:annotation>
+ <xs:documentation>CSG cut tube or cut tube segment solid described by
+ rmin Inner radius
+ rmax Outer radius
+ z length in z
+ startphi The starting phi angle in radians, adjusted such that (startphi+deltaphi <= 2PI, startphi > -2PI)
+ deltaphi Delta angle of the segment in radians
+ lowX, lowY, lowZ Normal at lower Z plane
+ highX, highY, highZ Normal at higher Z plane
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="SolidType">
+ <xs:attribute name="z" type="ExpressionOrIDREFType"></xs:attribute>
+ <xs:attribute default="0.0" name="rmin" type="ExpressionOrIDREFType"></xs:attribute>
+ <xs:attribute name="rmax" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute default="0.0" name="startphi" type="ExpressionOrIDREFType"></xs:attribute>
+ <xs:attribute name="deltaphi" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="lowX" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="lowY" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="lowZ" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="highX" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="highY" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="highZ" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+
<xs:element name="cone" substitutionGroup="Solid">
<xs:annotation>
<xs:documentation>CSG cone or cone segment described by
@@ -285,17 +445,15 @@
</xs:extension>
</xs:complexContent>
</xs:complexType>
- </xs:element>
-
+ </xs:element>
<!-- +++++++++++++ -->
-
<xs:complexType name="ZPlaneType">
<xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
<xs:attribute default="0.0" name="rmin" type="ExpressionOrIDREFType"></xs:attribute>
<xs:attribute name="rmax" type="ExpressionOrIDREFType" use="required"></xs:attribute>
</xs:complexType>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-
+
<xs:element name="para" substitutionGroup="Solid">
<xs:annotation>
<xs:documentation>CSG parallelepiped solid is described by
@@ -342,7 +500,7 @@
</xs:complexType>
</xs:element>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-
+
<xs:element name="trap" substitutionGroup="Solid">
<xs:annotation>
<xs:documentation>CSG general trapezoid solid is described by
@@ -371,7 +529,7 @@
<xs:attribute name="y2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
<xs:attribute name="x3" type="ExpressionOrIDREFType" use="required"></xs:attribute>
<xs:attribute name="x4" type="ExpressionOrIDREFType" use="required"></xs:attribute>
- <xs:attribute name="alpha2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="alpha2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
@@ -438,15 +596,47 @@
</xs:extension>
</xs:complexContent>
</xs:complexType>
- </xs:element>
+ </xs:element>
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
- <!-- +++++++++++++ -->
- <!-- this is now obsolete (because polyhedra uses zplanes, like the polycone -->
- <xs:complexType name="RZCornersType">
- <xs:attribute name="z" type="ExpressionOrIDREFType" use="required"></xs:attribute>
- <xs:attribute name="r" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:complexType name="TwoDimVertexType">
+ <xs:attribute name="x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
</xs:complexType>
-
+
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+
+ <xs:complexType name="SectionType">
+ <xs:attribute name="zOrder" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="zPosition" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="xOffset" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="yOffset" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="scalingFactor" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ </xs:complexType>
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+
+ <xs:element name="xtru" substitutionGroup="Solid">
+ <xs:annotation>
+ <xs:documentation>Poligonal extrusion is described by
+ an unbounded (min. 3) number of vertices of the blueprint polygon
+ and an unbounded number of Z sections.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="SolidType">
+ <xs:sequence>
+ <xs:sequence>
+ <xs:element name="twoDimVertex" minOccurs="3" maxOccurs="unbounded" type="TwoDimVertexType"/>
+ </xs:sequence>
+ <xs:sequence>
+ <xs:element name="section" minOccurs="2" maxOccurs="unbounded" type="SectionType"/>
+ </xs:sequence>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:element name="hype" substitutionGroup="Solid">
@@ -471,7 +661,6 @@
</xs:complexContent>
</xs:complexType>
</xs:element>
-
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<xs:element name="eltube" substitutionGroup="Solid">
@@ -490,7 +679,155 @@
</xs:extension>
</xs:complexContent>
</xs:complexType>
+ </xs:element>
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+
+ <xs:element name="tet" substitutionGroup="Solid">
+ <xs:annotation>
+ <xs:documentation>
+ Volume representing a tetrahedron.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="SolidType">
+ <xs:attribute name="vertex1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="vertex2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="vertex3" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="vertex4" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+
+ <xs:element name="arb8" substitutionGroup="Solid">
+ <xs:annotation>
+ <xs:documentation>
+ Volume representing an (almost)arbitrary 8 vertices solid.
+ The solid is defined by two quadrilaterals sitting on parallel planes,
+ the distance between these two planes is dz*2.
+ The base quadrilateral contained within the plane located at -dz is defined by
+ the first 4 vertices (v1,v2,v3,v4 each one with the x and y coordinates).
+ The other parallel quadrilateral contained within the plane at +dz is defined by
+ the other 4 vertices (v5,v6,v7,v8 each one with the x and y coordinates).
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="SolidType">
+ <xs:attribute name="v1x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="v1y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="v2x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="v2y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="v3x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="v3y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="v4x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="v4y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="v5x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="v5y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="v6x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="v6y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="v7x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="v7y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="v8x" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="v8y" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="dz" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+
+ <!-- Tessellated solid elements -->
+
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+
+ <xs:complexType name="FacetType">
+ <xs:annotation>
+ <xs:documentation>Base facet type</xs:documentation>
+ </xs:annotation>
+ </xs:complexType>
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+
+ <xs:element abstract="true" name="Facet" type="FacetType">
+ <xs:annotation>
+ <xs:documentation>Abstract element for all facets substitution group</xs:documentation>
+ </xs:annotation>
</xs:element>
-
- <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+
+ <xs:element name="triangular" substitutionGroup="Facet">
+ <xs:annotation>
+ <xs:documentation>
+ Triangular facet.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="FacetType">
+ <xs:attribute name="vertex1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="vertex2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="vertex3" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="type" type="xs:string" default="ABSOLUTE"></xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+
+ <xs:element name="quadrangular" substitutionGroup="Facet">
+ <xs:annotation>
+ <xs:documentation>
+ Quadrangular facet.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="FacetType">
+ <xs:attribute name="vertex1" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="vertex2" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="vertex3" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="vertex4" type="ExpressionOrIDREFType" use="required"></xs:attribute>
+ <xs:attribute name="type" type="xs:string" default="ABSOLUTE"></xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+
+ <xs:element name="tessellated" substitutionGroup="Solid">
+ <xs:annotation>
+ <xs:documentation>Tessellated solid
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="SolidType">
+ <xs:sequence>
+ <xs:element name="Facet" minOccurs="1" maxOccurs="unbounded" type="FacetType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+
+ <xs:element name="opticalsurface" substitutionGroup="SurfaceProperty">
+ <xs:annotation>
+ <xs:documentation>Optical surface used by Geant4 optical processes</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="SurfacePropertyType">
+ <xs:attribute name="model" type="xs:string" default="glisur"></xs:attribute>
+ <xs:attribute name="finish" type="xs:string" default="polished"></xs:attribute>
+ <xs:attribute name="value" type="xs:string" default="1.0"></xs:attribute>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
+
</xs:schema>
CVSspam 0.2.8