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

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

Sanity check of schemas with minor corrections, mods to UML.

  • 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:gml="http://www.opengis.net/gml" xmlns:csml="http://ndg.nerc.ac.uk/csml" 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.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="FileExtractType" abstract="true">
115                <complexContent>
116                        <extension base="csml:ArrayDescriptorType">
117                                <sequence>
118                                        <element name="fileName" type="anyURI"/>
119                                </sequence>
120                        </extension>
121                </complexContent>
122        </complexType>
123        <element name="FileExtract" type="csml:FileExtractType" abstract="true" substitutionGroup="csml:ArrayDescriptor"/>
124        <!--====================================================================== -->
125        <complexType name="NASAAmesExtractType">
126                <complexContent>
127                        <extension base="csml:FileExtractType">
128                                <sequence>
129                                        <element name="variableName" type="string"/>
130                                        <element name="index" type="int" minOccurs="0"/>
131                                </sequence>
132                        </extension>
133                </complexContent>
134        </complexType>
135        <element name="NASAAmesExtract" type="csml:NASAAmesExtractType" substitutionGroup="csml:FileExtract"/>
136        <complexType name="NASAAmesExtractPropertyType">
137                <sequence>
138                        <element ref="csml:NASAAmesExtract"/>
139                </sequence>
140        </complexType>
141        <!--====================================================================== -->
142        <complexType name="NetCDFExtractType">
143                <complexContent>
144                        <extension base="csml:FileExtractType">
145                                <sequence>
146                                        <element name="variableName" type="string"/>
147                                </sequence>
148                        </extension>
149                </complexContent>
150        </complexType>
151        <element name="NetCDFExtract" type="csml:NetCDFExtractType" substitutionGroup="csml:FileExtract"/>
152        <complexType name="NetCDFExtractPropertyType">
153                <sequence>
154                        <element ref="csml:NetCDFExtract"/>
155                </sequence>
156        </complexType>
157        <!--====================================================================== -->
158        <complexType name="GRIBExtractType">
159                <complexContent>
160                        <extension base="csml:FileExtractType">
161                                <sequence>
162                                        <element name="parameterCode" type="int"/>
163                                        <element name="recordNumber" type="int" minOccurs="0"/>
164                                        <element name="fileOffset" type="int" minOccurs="0"/>
165                                        <element name="ctlVariableName" type="string" minOccurs="0"/>
166                                </sequence>
167                        </extension>
168                </complexContent>
169        </complexType>
170        <element name="GRIBExtract" type="csml:GRIBExtractType" substitutionGroup="csml:FileExtract"/>
171        <complexType name="GRIBExtractPropertyType">
172                <sequence>
173                        <element ref="csml:GRIBExtract"/>
174                </sequence>
175        </complexType>
176        <!--====================================================================== -->
177        <complexType name="CDMLExtractType">
178                <complexContent>
179                        <extension base="csml:NetCDFExtractType"/>
180                </complexContent>
181        </complexType>
182        <element name="CDMLExtract" substitutionGroup="csml:NetCDFExtract"/>
183        <complexType name="CDMLExtractPropertyType">
184                <sequence>
185                        <element ref="csml:CDMLExtract"/>
186                </sequence>
187        </complexType>
188        <!--====================================================================== -->
189        <complexType name="RawFileExtractType">
190                <complexContent>
191                        <extension base="csml:FileExtractType">
192                                <sequence>
193                                        <element name="bitDepth" type="int" minOccurs="0"/>
194                                        <element name="endianness" type="string" minOccurs="0"/>
195                                </sequence>
196                        </extension>
197                </complexContent>
198        </complexType>
199        <element name="RawFileExtract" type="csml:RawFileExtractType" substitutionGroup="csml:FileExtract"/>
200        <!--====================================================================== -->
201        <complexType name="RawFileExtractPropertyType">
202                <sequence>
203                        <element ref="csml:RawFileExtract"/>
204                </sequence>
205        </complexType>
206        <!--====================================================================== -->
207        <!--====================================================================== -->
208        <!--====================================================================== -->
209        <!--====================================================================== -->
210</schema>
Note: See TracBrowser for help on using the repository browser.