source: 1dwg/trunk/cansas1d.xsd @ 32

Last change on this file since 32 was 32, checked in by prjemian, 12 years ago

removed annotation/documentation nodes from XML schema

  • replaced by wiki pages with easier to digest information
  • no need for xsd-documentation.xsl
  • same Schema ruleset

Added JAXB-generated Java binding

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