source: TI02-CSML/trunk/csml/XMLSchemas/csmlStorageDescriptor.xsd @ 1961

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/TI02-CSML/trunk/csml/XMLSchemas/csmlStorageDescriptor.xsd@1961
Revision 1961, 8.8 KB checked in by awoolf, 13 years ago (diff)

Update CSML storage descriptor for multiple files, and CSML instance for convention on storage axis names.

  • 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="http://www.w3.org/2001/XMLSchema" xmlns:csml="http://ndg.nerc.ac.uk/csml" xmlns:gml="http://www.opengis.net/gml" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.9">
4        <annotation>
5                <documentation>CSML storage descriptor</documentation>
6        </annotation>
7        <!--====================================================================== -->
8        <import namespace="http://www.opengis.net/gml" schemaLocation="gml/valueObjects.xsd"/>
9        <!--====================================================================== -->
10        <!--====================================================================== -->
11        <!--===== CSML mechanisms for specifying values, providing alternatives for inline doubleLists =====-->
12        <!--====================================================================== -->
13        <!--====================================================================== -->
14        <complexType name="ArrayDescriptorType" abstract="true">
15                <annotation>
16                        <documentation>An abstract type for prescribing an array of numeric values as an indirect realisation of numeric content.</documentation>
17                </annotation>
18                <sequence>
19                        <element name="arraySize">
20                                <simpleType>
21                                        <list itemType="int"/>
22                                </simpleType>
23                        </element>
24                        <element name="uom" type="anyURI" minOccurs="0"/>
25                        <element name="numericType" minOccurs="0">
26                                <simpleType>
27                                        <restriction base="string">
28                                                <enumeration value="float"/>
29                                                <enumeration value="double"/>
30                                                <enumeration value="short"/>
31                                                <enumeration value="int"/>
32                                        </restriction>
33                                </simpleType>
34                        </element>
35                        <element name="regExpTransform" type="string" minOccurs="0"/>
36                        <element name="numericTransform" type="string" minOccurs="0"/>
37                </sequence>
38                <attribute name="id" type="ID"/>
39        </complexType>
40        <element name="ArrayDescriptor" type="csml:ArrayDescriptorType" abstract="true" substitutionGroup="gml:ValueArray"/>
41        <complexType name="ArrayDescriptorPropertyType">
42                <sequence>
43                        <element ref="csml:ArrayDescriptor"/>
44                </sequence>
45        </complexType>
46        <!--====================================================================== -->
47        <complexType name="AggregatedArrayType">
48                <annotation>
49                        <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>
50                </annotation>
51                <complexContent>
52                        <extension base="csml:ArrayDescriptorType">
53                                <sequence>
54                                        <element name="aggType">
55                                                <simpleType>
56                                                        <restriction base="string">
57                                                                <enumeration value="new"/>
58                                                                <enumeration value="existing"/>
59                                                        </restriction>
60                                                </simpleType>
61                                        </element>
62                                        <element name="aggIndex" type="int"/>
63                                        <element name="component" type="csml:ArrayDescriptorPropertyType" maxOccurs="unbounded"/>
64                                </sequence>
65                        </extension>
66                </complexContent>
67        </complexType>
68        <element name="AggregatedArray" type="csml:AggregatedArrayType" substitutionGroup="csml:ArrayDescriptor"/>
69        <complexType name="AggregatedArrayPropertyType">
70                <sequence>
71                        <element ref="csml:AggregatedArray"/>
72                </sequence>
73        </complexType>
74        <!--====================================================================== -->
75        <complexType name="InlineArrayType">
76                <annotation>
77                        <documentation>Enables values to be provided inline.</documentation>
78                </annotation>
79                <complexContent>
80                        <extension base="csml:ArrayDescriptorType">
81                                <sequence>
82                                        <element name="values">
83                                                <simpleType>
84                                                        <list itemType="anySimpleType"/>
85                                                </simpleType>
86                                        </element>
87                                </sequence>
88                        </extension>
89                </complexContent>
90        </complexType>
91        <element name="InlineArray" type="csml:InlineArrayType" substitutionGroup="csml:ArrayDescriptor"/>
92        <complexType name="InlineArrayPropertyType">
93                <sequence>
94                        <element ref="csml:InlineArray"/>
95                </sequence>
96        </complexType>
97        <!--====================================================================== -->
98        <complexType name="ArrayGeneratorType">
99                <complexContent>
100                        <extension base="csml:ArrayDescriptorType">
101                                <sequence>
102                                        <element name="expression" type="string"/>
103                                </sequence>
104                        </extension>
105                </complexContent>
106        </complexType>
107        <element name="ArrayGenerator" type="csml:ArrayGeneratorType" substitutionGroup="csml:ArrayDescriptor"/>
108        <complexType name="ArrayGeneratorPropertyType">
109                <sequence>
110                        <element ref="csml:ArrayGenerator"/>
111                </sequence>
112        </complexType>
113        <!--====================================================================== -->
114        <complexType name="FileListType">
115                <sequence>
116                        <element name="fileNames">
117                                <simpleType>
118                                        <list itemType="anyURI"/>
119                                </simpleType>
120                        </element>
121                </sequence>
122                <attribute name="id" type="ID"/>
123        </complexType>
124        <element name="FileList" type="csml:FileListType"/>
125        <complexType name="FileListPropertyType">
126                <sequence>
127                        <element ref="csml:FileList"/>
128                </sequence>
129                <attributeGroup ref="gml:AssociationAttributeGroup"/>
130        </complexType>
131        <!--====================================================================== -->
132        <complexType name="FileExtractType" abstract="true">
133                <complexContent>
134                        <extension base="csml:ArrayDescriptorType">
135                                <choice>
136                                        <element name="fileName" type="anyURI"/>
137                                        <element name="fileList" type="csml:FileListPropertyType"/>
138                                </choice>
139                        </extension>
140                </complexContent>
141        </complexType>
142        <element name="FileExtract" type="csml:FileExtractType" abstract="true" substitutionGroup="csml:ArrayDescriptor"/>
143        <!--====================================================================== -->
144        <complexType name="NASAAmesExtractType">
145                <complexContent>
146                        <extension base="csml:FileExtractType">
147                                <sequence>
148                                        <element name="variableName" type="string"/>
149                                        <element name="index" type="int" minOccurs="0"/>
150                                </sequence>
151                        </extension>
152                </complexContent>
153        </complexType>
154        <element name="NASAAmesExtract" type="csml:NASAAmesExtractType" substitutionGroup="csml:FileExtract"/>
155        <complexType name="NASAAmesExtractPropertyType">
156                <sequence>
157                        <element ref="csml:NASAAmesExtract"/>
158                </sequence>
159        </complexType>
160        <!--====================================================================== -->
161        <complexType name="NetCDFExtractType">
162                <complexContent>
163                        <extension base="csml:FileExtractType">
164                                <sequence>
165                                        <element name="variableName" type="string"/>
166                                </sequence>
167                        </extension>
168                </complexContent>
169        </complexType>
170        <element name="NetCDFExtract" type="csml:NetCDFExtractType" substitutionGroup="csml:FileExtract"/>
171        <complexType name="NetCDFExtractPropertyType">
172                <sequence>
173                        <element ref="csml:NetCDFExtract"/>
174                </sequence>
175        </complexType>
176        <!--====================================================================== -->
177        <complexType name="GRIBExtractType">
178                <complexContent>
179                        <extension base="csml:FileExtractType">
180                                <sequence>
181                                        <element name="parameterCode" type="int"/>
182                                        <element name="recordNumber" type="int" minOccurs="0"/>
183                                        <element name="fileOffset" type="int" minOccurs="0"/>
184                                        <element name="ctlVariableName" type="string" minOccurs="0"/>
185                                </sequence>
186                        </extension>
187                </complexContent>
188        </complexType>
189        <element name="GRIBExtract" type="csml:GRIBExtractType" substitutionGroup="csml:FileExtract"/>
190        <complexType name="GRIBExtractPropertyType">
191                <sequence>
192                        <element ref="csml:GRIBExtract"/>
193                </sequence>
194        </complexType>
195        <!--====================================================================== -->
196        <complexType name="CDMLExtractType">
197                <complexContent>
198                        <extension base="csml:NetCDFExtractType"/>
199                </complexContent>
200        </complexType>
201        <element name="CDMLExtract" substitutionGroup="csml:NetCDFExtract"/>
202        <complexType name="CDMLExtractPropertyType">
203                <sequence>
204                        <element ref="csml:CDMLExtract"/>
205                </sequence>
206        </complexType>
207        <!--====================================================================== -->
208        <complexType name="RawFileExtractType">
209                <complexContent>
210                        <extension base="csml:FileExtractType">
211                                <sequence>
212                                        <element name="bitDepth" type="int" minOccurs="0"/>
213                                        <element name="endianness" type="string" minOccurs="0"/>
214                                </sequence>
215                        </extension>
216                </complexContent>
217        </complexType>
218        <element name="RawFileExtract" type="csml:RawFileExtractType" substitutionGroup="csml:FileExtract"/>
219        <!--====================================================================== -->
220        <complexType name="RawFileExtractPropertyType">
221                <sequence>
222                        <element ref="csml:RawFileExtract"/>
223                </sequence>
224        </complexType>
225        <!--====================================================================== -->
226        <!--====================================================================== -->
227        <!--====================================================================== -->
228        <!--====================================================================== -->
229</schema>
Note: See TracBrowser for help on using the repository browser.