source: TI02-CSML/branches/CSML2/XMLSchemas/csmlStorageDescriptor.xsd @ 1693

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

Updated UML for CSML v2, and initial draft schema (includes Grid feature).

  • 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="AbstractArrayDescriptorType" 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                        <sequence>
36                                <element name="regExpTransform" type="string" minOccurs="0"/>
37                                <element name="numericTransform" type="string" minOccurs="0"/>
38                        </sequence>
39                </sequence>
40        </complexType>
41        <element name="_ArrayDescriptor" type="csml:AbstractArrayDescriptorType" abstract="true" substitutionGroup="gml:ValueArray"/>
42        <complexType name="AbstractArrayDescriptorPropertyType">
43                <sequence>
44                        <element ref="csml:_ArrayDescriptor"/>
45                </sequence>
46        </complexType>
47        <!--====================================================================== -->
48        <element name="AggregatedArray" type="csml:AggregatedArrayType" substitutionGroup="csml:_ArrayDescriptor"/>
49        <complexType name="AggregatedArrayType">
50                <annotation>
51                        <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>
52                </annotation>
53                <complexContent>
54                        <extension base="csml:AbstractArrayDescriptorType">
55                                <sequence>
56                                        <element name="aggType">
57                                                <simpleType>
58                                                        <restriction base="string">
59                                                                <enumeration value="new"/>
60                                                                <enumeration value="existing"/>
61                                                        </restriction>
62                                                </simpleType>
63                                        </element>
64                                        <element name="aggIndex" type="int"/>
65                                        <element name="component" type="csml:AbstractArrayDescriptorPropertyType" maxOccurs="unbounded"/>
66                                </sequence>
67                        </extension>
68                </complexContent>
69        </complexType>
70        <!--====================================================================== -->
71        <element name="InlineArray" type="csml:InlineArrayType" substitutionGroup="csml:_ArrayDescriptor"/>
72        <complexType name="InlineArrayType">
73                <annotation>
74                        <documentation>Enables values to be provided inline.</documentation>
75                </annotation>
76                <complexContent>
77                        <extension base="csml:AbstractArrayDescriptorType">
78                                <sequence>
79                                        <element name="values" type="gml:doubleOrNilReasonList"/>
80                                </sequence>
81                        </extension>
82                </complexContent>
83        </complexType>
84        <!--====================================================================== -->
85        <element name="ArrayGenerator" type="csml:ArrayGeneratorType" substitutionGroup="csml:_ArrayDescriptor"/>
86        <complexType name="ArrayGeneratorType">
87                <complexContent>
88                        <extension base="csml:AbstractArrayDescriptorType">
89                                <sequence>
90                                        <element name="expression" type="string"/>
91                                </sequence>
92                        </extension>
93                </complexContent>
94        </complexType>
95        <!--====================================================================== -->
96        <element name="_FileExtract" type="csml:AbstractFileExtractType" abstract="true" substitutionGroup="csml:_ArrayDescriptor"/>
97        <complexType name="AbstractFileExtractType" abstract="true">
98                <complexContent>
99                        <extension base="csml:AbstractArrayDescriptorType">
100                                <sequence>
101                                        <element name="fileName" type="string"/>
102                                </sequence>
103                        </extension>
104                </complexContent>
105        </complexType>
106        <!--====================================================================== -->
107        <element name="NASAAmesExtract" type="csml:NASAAmesExtractType" substitutionGroup="csml:_FileExtract"/>
108        <complexType name="NASAAmesExtractType">
109                <complexContent>
110                        <extension base="csml:AbstractFileExtractType">
111                                <sequence>
112                                        <element name="variableName" type="string"/>
113                                        <element name="index" type="int" minOccurs="0"/>
114                                </sequence>
115                        </extension>
116                </complexContent>
117        </complexType>
118        <!--====================================================================== -->
119        <element name="NetCDFExtract" type="csml:NetCDFExtractType" substitutionGroup="csml:_FileExtract"/>
120        <complexType name="NetCDFExtractType">
121                <complexContent>
122                        <extension base="csml:AbstractFileExtractType">
123                                <sequence>
124                                        <element name="variableName" type="string"/>
125                                </sequence>
126                        </extension>
127                </complexContent>
128        </complexType>
129        <!--====================================================================== -->
130        <element name="GRIBExtract" type="csml:GRIBExtractType" substitutionGroup="csml:_FileExtract"/>
131        <complexType name="GRIBExtractType">
132                <complexContent>
133                        <extension base="csml:AbstractFileExtractType">
134                                <sequence>
135                                        <element name="parameterCode" type="int"/>
136                                        <element name="recordNumber" type="int" minOccurs="0"/>
137                                        <element name="fileOffset" type="int" minOccurs="0"/>
138                                        <element name="ctlVariableName" type="string" minOccurs="0"/>
139                                </sequence>
140                        </extension>
141                </complexContent>
142        </complexType>
143        <!--====================================================================== -->
144        <!--====================================================================== -->
145        <!--====================================================================== -->
146        <!--====================================================================== -->
147        <!--====================================================================== -->
148        <!--====================================================================== -->
149        <!--====================================================================== -->
150</schema>
Note: See TracBrowser for help on using the repository browser.