source: TI02-CSML/branches/csmlStorageDescriptor.xsd @ 2497

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/TI02-CSML/branches/csmlStorageDescriptor.xsd@2497
Revision 2497, 10.1 KB checked in by mggr, 12 years ago (diff)

(checking in for mhen) added ImageFileExtract?, numeric types and removed bitDepth from RawFileExtract?.

  • Property svn:executable set to *
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!-- edited with XMLSPY v5 rel. 3 U (http://www.xmlspy.com) by Andrew Woolf (CCLRC) -->
3<schema targetNamespace="http://ndg.nerc.ac.uk/csml" xmlns:csml="http://ndg.nerc.ac.uk/csml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.9">
4        <annotation>
5                <documentation>CSML storage descriptor</documentation>
6        </annotation>
7        <!--====================================================================== -->
8        <import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink/xlinks.xsd"/>
9        <!--====================================================================== -->
10        <!--====================================================================== -->
11        <!--===== CSML root storage descriptor element =====-->
12        <!--====================================================================== -->
13        <complexType name="CSMLStorageDescriptorType">
14                <sequence>
15                        <element name="descriptor" minOccurs="0" maxOccurs="unbounded">
16                                <complexType>
17                                        <sequence>
18                                                <element ref="csml:ArrayDescriptor"/>
19                                        </sequence>
20                                </complexType>
21                        </element>
22                </sequence>
23        </complexType>
24        <element name="CSMLStorageDescriptor" type="csml:CSMLStorageDescriptorType"/>
25        <!--====================================================================== -->
26        <!--====================================================================== -->
27        <!--===== CSML mechanisms for specifying values, providing alternatives for inline doubleLists =====-->
28        <!--====================================================================== -->
29        <!--====================================================================== -->
30        <complexType name="ArrayDescriptorType" abstract="true">
31                <annotation>
32                        <documentation>An abstract type for prescribing an array of numeric values as an indirect realisation of numeric content.</documentation>
33                </annotation>
34                <sequence>
35                        <element name="arraySize">
36                                <simpleType>
37                                        <list itemType="int"/>
38                                </simpleType>
39                        </element>
40                        <element name="uom" type="anyURI" minOccurs="0"/>
41                        <element name="numericType" minOccurs="0">
42                                <simpleType>
43                                        <restriction base="string">
44                                                <enumeration value="float"/>
45                                                <enumeration value="double"/>
46                                                <enumeration value="short"/>
47                                                <enumeration value="int"/>
48                                                <enumeration value="int8"/>
49                                                <enumeration value="int16"/>
50                                                <enumeration value="int32"/>
51                                                <enumeration value="int64"/>
52                                                <enumeration value="uint8"/>
53                                                <enumeration value="uint16"/>
54                                                <enumeration value="uint32"/>
55                                                <enumeration value="uint64"/>
56                                        </restriction>
57                                </simpleType>
58                        </element>
59                        <element name="regExpTransform" type="string" minOccurs="0"/>
60                        <element name="numericTransform" type="string" minOccurs="0"/>
61                </sequence>
62                <attribute name="id" type="ID"/>
63        </complexType>
64        <element name="ArrayDescriptor" type="csml:ArrayDescriptorType" abstract="true"/>
65        <complexType name="ArrayDescriptorPropertyType">
66                <sequence>
67                        <element ref="csml:ArrayDescriptor"/>
68                </sequence>
69        </complexType>
70        <!--====================================================================== -->
71        <complexType name="AggregatedArrayType">
72                <annotation>
73                        <documentation>Uses the composite pattern to define an aggregation of arrays. The dimension along which aggregation is performed is specified ('aggIndex'), and refers either to a 'new' or 'existing' dimension (specified in 'aggType').</documentation>
74                </annotation>
75                <complexContent>
76                        <extension base="csml:ArrayDescriptorType">
77                                <sequence>
78                                        <element name="aggType">
79                                                <simpleType>
80                                                        <restriction base="string">
81                                                                <enumeration value="new"/>
82                                                                <enumeration value="existing"/>
83                                                        </restriction>
84                                                </simpleType>
85                                        </element>
86                                        <element name="aggIndex" type="int"/>
87                                        <element name="component" type="csml:ArrayDescriptorPropertyType" maxOccurs="unbounded"/>
88                                </sequence>
89                        </extension>
90                </complexContent>
91        </complexType>
92        <element name="AggregatedArray" type="csml:AggregatedArrayType" substitutionGroup="csml:ArrayDescriptor"/>
93        <complexType name="AggregatedArrayPropertyType">
94                <sequence>
95                        <element ref="csml:AggregatedArray"/>
96                </sequence>
97        </complexType>
98        <!--====================================================================== -->
99        <complexType name="InlineArrayType">
100                <annotation>
101                        <documentation>Enables values to be provided inline.</documentation>
102                </annotation>
103                <complexContent>
104                        <extension base="csml:ArrayDescriptorType">
105                                <sequence>
106                                        <element name="values">
107                                                <simpleType>
108                                                        <list itemType="anySimpleType"/>
109                                                </simpleType>
110                                        </element>
111                                </sequence>
112                        </extension>
113                </complexContent>
114        </complexType>
115        <element name="InlineArray" type="csml:InlineArrayType" substitutionGroup="csml:ArrayDescriptor"/>
116        <complexType name="InlineArrayPropertyType">
117                <sequence>
118                        <element ref="csml:InlineArray"/>
119                </sequence>
120        </complexType>
121        <!--====================================================================== -->
122        <complexType name="ArrayGeneratorType">
123                <complexContent>
124                        <extension base="csml:ArrayDescriptorType">
125                                <sequence>
126                                        <element name="expression" type="string"/>
127                                </sequence>
128                        </extension>
129                </complexContent>
130        </complexType>
131        <element name="ArrayGenerator" type="csml:ArrayGeneratorType" substitutionGroup="csml:ArrayDescriptor"/>
132        <complexType name="ArrayGeneratorPropertyType">
133                <sequence>
134                        <element ref="csml:ArrayGenerator"/>
135                </sequence>
136        </complexType>
137        <!--====================================================================== -->
138        <complexType name="FileListType">
139                <sequence>
140                        <element name="fileNames">
141                                <simpleType>
142                                        <list itemType="anyURI"/>
143                                </simpleType>
144                        </element>
145                </sequence>
146                <attribute name="id" type="ID"/>
147        </complexType>
148        <element name="FileList" type="csml:FileListType"/>
149        <complexType name="FileListPropertyType">
150                <sequence minOccurs="0">
151                        <element ref="csml:FileList"/>
152                </sequence>
153                <attributeGroup ref="xlink:simpleLink"/>
154        </complexType>
155        <!--====================================================================== -->
156        <complexType name="FileExtractType" abstract="true">
157                <complexContent>
158                        <extension base="csml:ArrayDescriptorType">
159                                <choice>
160                                        <element name="fileName" type="anyURI"/>
161                                        <element name="fileList" type="csml:FileListPropertyType"/>
162                                </choice>
163                        </extension>
164                </complexContent>
165        </complexType>
166        <element name="FileExtract" type="csml:FileExtractType" abstract="true" substitutionGroup="csml:ArrayDescriptor"/>
167        <!--====================================================================== -->
168        <complexType name="NASAAmesExtractType">
169                <complexContent>
170                        <extension base="csml:FileExtractType">
171                                <sequence>
172                                        <element name="variableName" type="string"/>
173                                        <element name="index" type="int" minOccurs="0"/>
174                                </sequence>
175                        </extension>
176                </complexContent>
177        </complexType>
178        <element name="NASAAmesExtract" type="csml:NASAAmesExtractType" substitutionGroup="csml:FileExtract"/>
179        <complexType name="NASAAmesExtractPropertyType">
180                <sequence>
181                        <element ref="csml:NASAAmesExtract"/>
182                </sequence>
183        </complexType>
184        <!--====================================================================== -->
185        <complexType name="NetCDFExtractType">
186                <complexContent>
187                        <extension base="csml:FileExtractType">
188                                <sequence>
189                                        <element name="variableName" type="string"/>
190                                </sequence>
191                        </extension>
192                </complexContent>
193        </complexType>
194        <element name="NetCDFExtract" type="csml:NetCDFExtractType" substitutionGroup="csml:FileExtract"/>
195        <complexType name="NetCDFExtractPropertyType">
196                <sequence>
197                        <element ref="csml:NetCDFExtract"/>
198                </sequence>
199        </complexType>
200        <!--====================================================================== -->
201        <complexType name="GRIBExtractType">
202                <complexContent>
203                        <extension base="csml:FileExtractType">
204                                <sequence>
205                                        <element name="parameterCode" type="int"/>
206                                        <element name="recordNumber" type="int" minOccurs="0"/>
207                                        <element name="fileOffset" type="int" minOccurs="0"/>
208                                        <element name="ctlVariableName" type="string" minOccurs="0"/>
209                                </sequence>
210                        </extension>
211                </complexContent>
212        </complexType>
213        <element name="GRIBExtract" type="csml:GRIBExtractType" substitutionGroup="csml:FileExtract"/>
214        <complexType name="GRIBExtractPropertyType">
215                <sequence>
216                        <element ref="csml:GRIBExtract"/>
217                </sequence>
218        </complexType>
219        <!--====================================================================== -->
220        <complexType name="CDMLExtractType">
221                <complexContent>
222                        <extension base="csml:NetCDFExtractType"/>
223                </complexContent>
224        </complexType>
225        <element name="CDMLExtract" substitutionGroup="csml:NetCDFExtract"/>
226        <complexType name="CDMLExtractPropertyType">
227                <sequence>
228                        <element ref="csml:CDMLExtract"/>
229                </sequence>
230        </complexType>
231        <!--====================================================================== -->
232        <complexType name="RawFileExtractType">
233                <complexContent>
234                        <extension base="csml:FileExtractType">
235                                <sequence>
236                                        <element name="endianness" type="string" minOccurs="0"/>
237                                </sequence>
238                        </extension>
239                </complexContent>
240        </complexType>
241        <element name="RawFileExtract" type="csml:RawFileExtractType" substitutionGroup="csml:FileExtract"/>
242        <!--====================================================================== -->
243        <complexType name="RawFileExtractPropertyType">
244                <sequence>
245                        <element ref="csml:RawFileExtract"/>
246                </sequence>
247        </complexType>
248        <!--====================================================================== -->
249        <complexType name="ImageFileExtractType">
250                <complexContent>
251                        <extension base="csml:FileExtractType" />
252                </complexContent>
253        </complexType>
254        <element name="ImageFileExtract" type="csml:ImageFileExtractType" substitutionGroup="csml:FileExtract"/>
255        <!--====================================================================== -->
256        <complexType name="ImageFileExtractPropertyType">
257                <sequence>
258                        <element ref="csml:ImageFileExtract"/>
259                </sequence>
260        </complexType>
261        <!--====================================================================== -->
262        <!--====================================================================== -->
263        <!--====================================================================== -->
264        <!--====================================================================== -->
265</schema>
266
Note: See TracBrowser for help on using the repository browser.