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

Last change on this file since 305 was 281, checked in by prjemian, 8 years ago

revert trunk back to r201 2011-06-08 (see v1.1 in branches)

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