source: 1dwg/trunk/cansas2d.xsd @ 196

Last change on this file since 196 was 196, checked in by ajj, 9 years ago

Version 0.1 of cansas2D format definition

File size: 10.0 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<?xml-stylesheet type="text/xsl" href="xsd-documentation.xsl" ?>
3<schema xmlns="http://www.w3.org/2001/XMLSchema"
4        xmlns:xsd="http://www.w3.org/2001/XMLSchema"
5        xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"  jaxb:version="2.0"
6        targetNamespace="cansas2d/0.1" xmlns:tns="cansas2d/0.1"
7        elementFormDefault="qualified">
8
9<!-- JAXB: http://java.sun.com/developer/technicalArticles/WebServices/jaxb/ -->
10
11        <simpleType name="floatVectorBaseType">
12                <restriction base="string">
13                        <pattern value = "(-?\d+(\.\d+)?\s?)+"/>
14                        </restriction>
15        </simpleType>
16       
17        <complexType name="floatVectorType">
18                <simpleContent>
19                        <extension base="tns:floatVectorBaseType">
20                                <attribute name="unit" type="string" use="required" />
21                        </extension>
22                </simpleContent>               
23        </complexType>
24
25        <complexType name="floatUnitType">
26                <simpleContent>
27                        <extension base="float">
28                                <attribute name="unit" type="string" use="required" />
29                        </extension>
30                </simpleContent>
31        </complexType>
32
33
34        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
35
36        <group name="positionGroup">
37                <sequence>
38                        <element name="x" type="tns:floatUnitType" minOccurs="0" maxOccurs="1" />
39                        <element name="y" type="tns:floatUnitType" minOccurs="0" maxOccurs="1" />
40                        <element name="z" type="tns:floatUnitType" minOccurs="0" maxOccurs="1" />
41                </sequence>
42        </group>
43
44        <complexType name="positionType">
45                <group ref="tns:positionGroup" />
46                <attribute name="name" type="string" use="optional" default="" />
47        </complexType>
48
49        <group name="orientationGroup">
50                <sequence>
51                        <element name="roll" type="tns:floatUnitType" minOccurs="0"  maxOccurs="1" />
52                        <element name="pitch" type="tns:floatUnitType" minOccurs="0" maxOccurs="1" />
53                        <element name="yaw" type="tns:floatUnitType" minOccurs="0"   maxOccurs="1" />
54                </sequence>
55        </group>
56
57        <complexType name="orientationType">
58                <group ref="tns:orientationGroup" />
59                <attribute name="name" type="string" use="optional" default="" />
60        </complexType>
61
62        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
63
64        <complexType name="IdataType">
65                <sequence>
66                        <element name="Qx" minOccurs="1" maxOccurs="1" type="tns:floatVectorType" />
67                        <element name="Qy" minOccurs="1" maxOccurs="1" type="tns:floatVectorType" />
68                        <element name="I" minOccurs="1" maxOccurs="1" type="tns:floatVectorType" />
69                        <element name="Idev" minOccurs="0" maxOccurs="1" type="tns:floatVectorType" default="0.0" />
70                        <element name="Qdev_parallel" minOccurs="0" maxOccurs="1" type="tns:floatVectorType" default="0.0" />
71                        <element name="Qdev_perp" minOccurs="0" maxOccurs="1" type="tns:floatVectorType" default="0.0" />
72                        <element name="Shadowfactor" minOccurs="0" maxOccurs="1" type="tns:floatVectorType" default="1.0" />
73                        <xsd:any minOccurs="0" maxOccurs="unbounded" processContents="skip" namespace="##other" />
74                </sequence>
75        </complexType>
76
77        <complexType name="SASdataType">
78                <sequence>
79                        <element name="Idata" minOccurs="1" maxOccurs="unbounded" type="tns:IdataType" />
80                </sequence>
81                <attribute name="name" type="string" use="optional" default="" />
82        </complexType>
83
84        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
85
86        <complexType name="SASsampleType">
87                <sequence>
88                        <element name="ID" minOccurs="1" maxOccurs="1" type="string" />
89                        <element name="thickness" minOccurs="0" maxOccurs="1" type="tns:floatUnitType" />
90                        <element name="transmission" minOccurs="0" maxOccurs="1" type="float" />
91                        <element name="temperature" minOccurs="0" maxOccurs="1" type="tns:floatUnitType" />
92                        <element name="position" minOccurs="0" maxOccurs="1" type="tns:positionType" />
93                        <element name="orientation" minOccurs="0" maxOccurs="1" type="tns:orientationType" />
94                        <element name="details" minOccurs="0" maxOccurs="unbounded" />
95                        <xsd:any minOccurs="0" maxOccurs="unbounded" processContents="skip" namespace="##other" />
96                </sequence>
97                <attribute name="name" type="string" use="optional" default="" />
98        </complexType>
99
100        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
101
102        <complexType name="termType">
103                <simpleContent>
104                        <extension base="string">
105                                <attribute name="name" type="string" use="optional" default="" />
106                                <attribute name="unit" type="string" use="optional"/>
107                        </extension>
108                </simpleContent>
109        </complexType>
110
111        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
112
113        <complexType name="SASprocessType">
114                <annotation>
115                        <appinfo>
116                                <!-- JAXB: simplify class name -->
117                                <jaxb:property name="SASprocess" />
118                        </appinfo>
119                </annotation>
120                <sequence>
121                        <element name="name" minOccurs="0" maxOccurs="1"
122                                type="string" default="">
123                                <annotation>
124                                        <appinfo>
125                                                <!-- Remap collision of Name when using JAXB -->
126                                                <jaxb:property name="SASprocessName" />
127                                        </appinfo>
128                                </annotation>
129                        </element>
130                        <element name="date" minOccurs="0" maxOccurs="1" type="string" />
131                        <element name="description" minOccurs="0" maxOccurs="1" />
132                        <element name="term" minOccurs="0" maxOccurs="unbounded" type="tns:termType" />
133                        <element name="SASprocessnote" minOccurs="1" maxOccurs="unbounded" />
134                        <xsd:any minOccurs="0" maxOccurs="unbounded" processContents="skip" namespace="##other" />
135                </sequence>
136                <attribute name="name" type="string" use="optional" default="">
137                        <annotation>
138                                <appinfo>
139                                        <!-- Remap collision of Name when using JAXB -->
140                                        <jaxb:property name="SASprocessNameAttr" />
141                                </appinfo>
142                        </annotation>
143                </attribute>
144        </complexType>
145
146        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
147
148        <complexType name="SASsourceType">
149                <sequence>
150                        <element name="radiation" minOccurs="1" maxOccurs="1" type="string" />
151                        <element name="beam_size" minOccurs="0" maxOccurs="1" type="tns:positionType" />
152                        <element name="beam_shape" minOccurs="0" maxOccurs="1" type="string" />
153                        <element name="wavelength" minOccurs="0" maxOccurs="1" type="tns:floatUnitType" />
154                        <element name="wavelength_min" minOccurs="0" maxOccurs="1" type="tns:floatUnitType" />
155                        <element name="wavelength_max" minOccurs="0" maxOccurs="1" type="tns:floatUnitType" />
156                        <element name="wavelength_spread" minOccurs="0" maxOccurs="1" type="tns:floatUnitType" />
157                </sequence>
158                <attribute name="name" type="string" use="optional" default="" />
159        </complexType>
160
161        <complexType name="SAScollimationType">
162                <sequence>
163                        <element name="length" minOccurs="0" maxOccurs="1" type="tns:floatUnitType" />
164                        <element name="aperture" minOccurs="0"
165                                maxOccurs="unbounded">
166                                <complexType>
167                                        <sequence>
168                                                <element name="size" minOccurs="0" maxOccurs="1" type="tns:positionType" />
169                                                <element name="distance" minOccurs="0" maxOccurs="1" type="tns:floatUnitType" />
170                                        </sequence>
171                                        <attribute name="name" type="string" use="optional" default="" />
172                                        <attribute name="type" type="string" use="optional" default="" />
173                                </complexType>
174                        </element>
175                </sequence>
176                <attribute name="name" type="string" use="optional" default="" />
177        </complexType>
178
179        <complexType name="SASdetectorType">
180                <sequence>
181                        <element name="name" minOccurs="1" maxOccurs="1" type="string" default=""/>
182                        <element name="SDD" minOccurs="0" maxOccurs="1" type="tns:floatUnitType" />
183                        <element name="offset" minOccurs="0" maxOccurs="1" type="tns:positionType" />
184                        <element name="orientation" minOccurs="0" maxOccurs="1" type="tns:orientationType" />
185                        <element name="beam_center" minOccurs="0" maxOccurs="1" type="tns:positionType" />
186                        <element name="pixel_size" minOccurs="0" maxOccurs="1" type="tns:positionType" />
187                        <element name="slit_length" minOccurs="0" maxOccurs="1" type="tns:floatUnitType" />
188                </sequence>
189        </complexType>
190
191        <complexType name="SASinstrumentType">
192                <sequence>
193                        <element name="name" type="string" minOccurs="1" maxOccurs="1" default="" />
194                        <element name="SASsource" type="tns:SASsourceType" minOccurs="1" maxOccurs="1" />
195                        <element name="SAScollimation" type="tns:SAScollimationType" minOccurs="1" maxOccurs="unbounded" />
196                        <element name="SASdetector" type="tns:SASdetectorType" minOccurs="1" maxOccurs="unbounded" />
197                </sequence>
198        </complexType>
199
200        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
201
202        <complexType name="SASentryType">
203                <sequence>
204                        <element name="Title" minOccurs="1" maxOccurs="1" type="string" />
205                        <element name="Run" minOccurs="1" maxOccurs="unbounded">
206                                <xsd:complexType>
207                                        <simpleContent>
208                                                <extension base="string">
209                                                        <attribute name="name" type="string" use="optional" default="" />
210                                                </extension>
211                                        </simpleContent>
212                                </xsd:complexType>
213                        </element>
214                        <xsd:any minOccurs="0" maxOccurs="unbounded" processContents="skip" namespace="##other" />
215                        <element name="SASdata" minOccurs="1" maxOccurs="unbounded" type="tns:SASdataType" />
216                        <xsd:any minOccurs="0" maxOccurs="unbounded" processContents="skip" namespace="##other">
217                                <!-- Is a second *any* element needed here? -->
218                                <annotation>
219                                        <appinfo>
220                                                <!-- Remap collision of Any when using JAXB --> 
221                                                <jaxb:property name="SASentryAny2" />
222                                        </appinfo>
223                                </annotation>
224                        </xsd:any>
225                        <element name="SASsample" type="tns:SASsampleType" />
226                        <element name="SASinstrument" type="tns:SASinstrumentType" minOccurs="1" maxOccurs="1" />
227                        <element name="SASprocess" type="tns:SASprocessType" minOccurs="0" maxOccurs="unbounded" />
228                        <element name="SASnote" minOccurs="1" maxOccurs="unbounded" />
229                                <!-- SASnote is a free-form element.
230                                        Do not define any content for it or it will become restrictive.
231                                -->
232                </sequence>
233                <attribute name="name" type="string" use="optional" default="" />
234        </complexType>
235
236        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
237
238        <complexType name="SASrootType">
239                <sequence>
240                        <element name="SASentry" minOccurs="1" maxOccurs="unbounded" type="tns:SASentryType" />
241                </sequence>
242                <attribute name="version" type="string" fixed="1.0" use="required" />
243        </complexType>
244
245        <element name="SASroot" type="tns:SASrootType" />
246
247</schema>
Note: See TracBrowser for help on using the repository browser.