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

Last change on this file since 200 was 200, checked in by prjemian, 10 years ago

properties

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