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

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/TI02-CSML/branches/CSML2/XMLSchemas/csmlMain.xsd@1693
Revision 1693, 9.8 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<!-- edited with XMLSPY v5 rel. 3 U (http://www.xmlspy.com) by Andrew Woolf (CCLRC) -->
2<schema targetNamespace="http://ndg.nerc.ac.uk/csml" xmlns:csml="http://ndg.nerc.ac.uk/csml" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml" xmlns:swe="http://www.opengis.net/swe" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.9">
3        <annotation>
4                <documentation>Main CSML schema file - includes domain geometries, coverage classes, feature types etc.</documentation>
5        </annotation>
6        <import namespace="http://www.opengis.net/gml" schemaLocation="gml/gml.xsd"/>
7        <import namespace="http://www.opengis.net/swe" schemaLocation="sweCommon/phenomenon.xsd"/>
8        <!--====================================================================== -->
9        <!--==== ReferenceableGrid ==== -->
10        <!--====================================================================== -->
11        <annotation>
12                <documentation>TimeValueList and TimePositonListType based on the obvious extensions of GML TimePositionUnion and TimePositionType, and identical to the equivalents in SWE.</documentation>
13        </annotation>
14        <simpleType name="TimeValueList">
15                <list itemType="gml:TimePositionUnion"/>
16        </simpleType>
17        <complexType name="TimePositionListType">
18                <simpleContent>
19                        <extension base="csml:TimeValueList">
20                                <attribute name="frame" type="anyURI" default="#ISO-8601"/>
21                                <attribute name="calendarEraName" type="string"/>
22                                <attribute name="indeterminatePosition" type="gml:TimeIndeterminateValueType"/>
23                        </extension>
24                </simpleContent>
25        </complexType>
26        <element name="timePositionList" type="csml:TimePositionListType"/>
27        <!--====================================================================== -->
28        <complexType name="SpatialOrTemporalPositionListType">
29                <annotation>
30                        <documentation>SpatialOrTemporalPositionList allows efficient lists of either spatial or temporal positions.</documentation>
31                </annotation>
32                <choice>
33                        <group ref="gml:geometricPositionListGroup"/>
34                        <element ref="csml:timePositionList"/>
35                </choice>
36        </complexType>
37        <element name="SpatialOrTemporalPositionList" type="csml:SpatialOrTemporalPositionListType" substitutionGroup="gml:AbstractObject"/>
38        <complexType name="SpatialOrTemporalPositionListPropertyType">
39                <sequence>
40                        <element ref="csml:SpatialOrTemporalPositionList"/>
41                </sequence>
42                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
43        </complexType>
44        <!--====================================================================== -->
45        <complexType name="GridOrdinateDescriptionType">
46                <annotation>
47                        <documentation>GridOrdinateDescription defines grid point locations over entire Grid for a single spatial or temporal coordinate axis.</documentation>
48                </annotation>
49                <sequence>
50                        <element name="coordAxisLabel" type="NCName"/>
51                        <element name="coordAxisValues" type="csml:SpatialOrTemporalPositionListPropertyType"/>
52                        <element name="gridAxesSpanned">
53                                <simpleType>
54                                        <list itemType="int"/>
55                                </simpleType>
56                        </element>
57                        <element name="sequenceRule" type="gml:SequenceRuleType"/>
58                </sequence>
59        </complexType>
60        <element name="GridOrdinateDescription" type="csml:GridOrdinateDescriptionType" substitutionGroup="gml:AbstractObject"/>
61        <complexType name="GridOrdinateDescriptionPropertyType">
62                <sequence>
63                        <element ref="csml:GridOrdinateDescription"/>
64                </sequence>
65                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
66        </complexType>
67        <!--====================================================================== -->
68        <complexType name="GridPointDescriptionType">
69                <annotation>
70                        <documentation>GridPointDescription defines grid point locations over entire Grid by listing direct positions in given sequence order.</documentation>
71                </annotation>
72                <sequence>
73                        <group ref="gml:geometricPositionListGroup"/>
74                        <element name="sequenceRule" type="gml:SequenceRuleType"/>
75                </sequence>
76        </complexType>
77        <element name="GridPointDescription" type="csml:GridPointDescriptionType" substitutionGroup="gml:AbstractObject"/>
78        <complexType name="GridPointDescriptionPropertyType">
79                <sequence>
80                        <element ref="csml:GridPointDescription"/>
81                </sequence>
82                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
83        </complexType>
84        <!--====================================================================== -->
85        <complexType name="GridCoordinatesTableType">
86                <annotation>
87                        <documentation>Defines a table providing the transformation between grid coordinates and external coordinate references system. See ISO 19123 8.2.1.</documentation>
88                </annotation>
89                <choice>
90                        <element name="gridOrdinate" type="csml:GridOrdinateDescriptionPropertyType" maxOccurs="unbounded"/>
91                        <element name="gridPoints" type="csml:GridPointDescriptionPropertyType"/>
92                </choice>
93        </complexType>
94        <element name="GridCoordinatesTable" type="csml:GridCoordinatesTableType" substitutionGroup="gml:AbstractObject"/>
95        <complexType name="GridCoordinatesTablePropertyType">
96                <sequence>
97                        <element ref="csml:GridCoordinatesTable"/>
98                </sequence>
99                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
100        </complexType>
101        <!--====================================================================== -->
102        <complexType name="ReferenceableGridType">
103                <annotation>
104                        <documentation>An implementation of CV_ReferenceableGrid of ISO 19123.
105                       
106                        The association role 'crs' to the SC_CRS to which it is referenceable is implemented using the gml:SRSReferenceGroup attributeGroup inherited from gml:Grid.</documentation>
107                </annotation>
108                <complexContent>
109                        <extension base="gml:GridType">
110                                <sequence>
111                                        <element name="coordTransformTable" type="csml:GridCoordinatesTablePropertyType"/>
112                                </sequence>
113                        </extension>
114                </complexContent>
115        </complexType>
116        <element name="ReferenceableGrid" type="csml:ReferenceableGridType" substitutionGroup="gml:Grid"/>
117        <!--====================================================================== -->
118        <!--====================================================================== -->
119        <!--==== ReferenceableGridCoverage ====-->
120        <!--====================================================================== -->
121        <complexType name="ReferenceableGridDomainType">
122                <annotation>
123                        <documentation>Implemented by analogy with gml:RectifiedGridDomainType.</documentation>
124                </annotation>
125                <complexContent>
126                        <restriction base="gml:DomainSetType">
127                                <sequence minOccurs="0">
128                                        <element ref="csml:ReferenceableGrid"/>
129                                </sequence>
130                                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
131                                <attributeGroup ref="gml:AssociationAttributeGroup"/>
132                        </restriction>
133                </complexContent>
134        </complexType>
135        <element name="referenceableGridDomain" type="csml:ReferenceableGridDomainType" substitutionGroup="gml:domainSet"/>
136        <!--====================================================================== -->
137        <complexType name="ReferenceableGridCoverageType">
138                <annotation>
139                        <documentation>Implementation of ISO 19123 CV_DiscreteGridPointCoverage for a CV_ReferenceableGrid domain.</documentation>
140                </annotation>
141                <complexContent>
142                        <restriction base="gml:AbstractDiscreteCoverageType">
143                                <sequence>
144                                        <group ref="gml:StandardObjectProperties"/>
145                                        <element ref="gml:boundedBy" minOccurs="0"/>
146                                        <element ref="csml:referenceableGridDomain"/>
147                                        <element ref="gml:rangeSet"/>
148                                        <element ref="gml:coverageFunction" minOccurs="0"/>
149                                </sequence>
150                        </restriction>
151                </complexContent>
152        </complexType>
153        <element name="ReferenceableGridCoverage" type="csml:ReferenceableGridCoverageType" substitutionGroup="gml:AbstractDiscreteCoverage"/>
154        <complexType name="ReferenceableGridCoveragePropertyType">
155                <sequence>
156                        <element ref="csml:ReferenceableGridCoverage"/>
157                </sequence>
158                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
159        </complexType>
160        <!--====================================================================== -->
161        <!--====================================================================== -->
162        <!--==== CSML Grid Feature Type ====-->
163        <!--====================================================================== -->
164        <complexType name="GridFeatureType">
165                <complexContent>
166                        <extension base="gml:AbstractFeatureType">
167                                <sequence>
168                                        <element name="time" type="gml:TimeInstantPropertyType"/>
169                                        <element name="value" type="csml:ReferenceableGridCoveragePropertyType"/>
170                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
171                                </sequence>
172                        </extension>
173                </complexContent>
174        </complexType>
175        <element name="GridFeature" type="csml:GridFeatureType" substitutionGroup="gml:AbstractFeature"/>
176        <complexType name="GridFeaturePropertyType">
177                <sequence>
178                        <element ref="csml:GridFeature"/>
179                </sequence>
180                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
181        </complexType>
182        <!--====================================================================== -->
183        <!--====================================================================== -->
184        <!--==== CSML GridSeries Feature Type ====-->
185        <!--====================================================================== -->
186        <complexType name="SpatioTemporalCRSType">
187                <annotation>
188                        <documentation>Exactly one component reference system must be a TM_TemporalCRS (i.e. gml:TemporalCRS)</documentation>
189                </annotation>
190                <complexContent>
191                        <extension base="gml:CompoundCRSType"/>
192                </complexContent>
193        </complexType>
194        <element name="SpatioTemporalCRS" type="csml:SpatioTemporalCRSType" substitutionGroup="gml:CompoundCRS"/>
195        <!--====================================================================== -->
196        <complexType name="GridSeriesDomainType">
197                <annotation>
198                        <documentation>The SC_CRS to which this is referenced (via the inherited gml:SRSReferenceGroup attributeGroup) should be a csml:SpatioTemporalCRS</documentation>
199                </annotation>
200                <complexContent>
201                        <extension base="csml:ReferenceableGridDomainType"/>
202                </complexContent>
203        </complexType>
204        <!--====================================================================== -->
205        <complexType name="GridSeriesCoverageType"/>
206        <!--====================================================================== -->
207        <!--====================================================================== -->
208</schema>
Note: See TracBrowser for help on using the repository browser.