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

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/TI02-CSML/branches/CSML2/XMLSchemas/csmlMain.xsd@1733
Revision 1733, 43.8 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<!-- 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        <!--==== Utility types ====-->
10        <!--====================================================================== -->
11        <!--====================================================================== -->
12        <!--====================================================================== -->
13        <!--==== ReferenceableGrid ==== -->
14        <!--====================================================================== -->
15        <annotation>
16                <documentation>TimeValueList and TimePositionListType based on the obvious extensions of GML TimePositionUnion and TimePositionType, and identical to the equivalents in SWE.</documentation>
17        </annotation>
18        <simpleType name="TimeValueList">
19                <list itemType="gml:TimePositionUnion"/>
20        </simpleType>
21        <complexType name="TimePositionListType">
22                <simpleContent>
23                        <extension base="csml:TimeValueList">
24                                <attribute name="frame" type="anyURI" default="#ISO-8601"/>
25                                <attribute name="calendarEraName" type="string"/>
26                                <attribute name="indeterminatePosition" type="gml:TimeIndeterminateValueType"/>
27                        </extension>
28                </simpleContent>
29        </complexType>
30        <element name="timePositionList" type="csml:TimePositionListType"/>
31        <!--====================================================================== -->
32        <complexType name="SpatialOrTemporalPositionListType">
33                <annotation>
34                        <documentation>SpatialOrTemporalPositionList allows efficient lists of either spatial or temporal positions.</documentation>
35                </annotation>
36                <choice>
37                        <element name="coordinateList">
38                                <simpleType>
39                                        <list itemType="double"/>
40                                </simpleType>
41                        </element>
42                        <element ref="csml:timePositionList"/>
43                </choice>
44        </complexType>
45        <element name="SpatialOrTemporalPositionList" type="csml:SpatialOrTemporalPositionListType" substitutionGroup="gml:AbstractObject"/>
46        <complexType name="SpatialOrTemporalPositionListPropertyType">
47                <sequence>
48                        <element ref="csml:SpatialOrTemporalPositionList"/>
49                </sequence>
50                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
51        </complexType>
52        <!--====================================================================== -->
53        <complexType name="GridOrdinateDescriptionType">
54                <annotation>
55                        <documentation>GridOrdinateDescription defines grid point locations over entire Grid for a single spatial or temporal coordinate axis.</documentation>
56                </annotation>
57                <sequence>
58                        <element name="coordAxisLabel" type="NCName"/>
59                        <element name="coordAxisValues" type="csml:SpatialOrTemporalPositionListPropertyType"/>
60                        <element name="gridAxesSpanned" type="gml:NCNameList"/>
61                        <element name="sequenceRule" type="gml:SequenceRuleType"/>
62                </sequence>
63        </complexType>
64        <element name="GridOrdinateDescription" type="csml:GridOrdinateDescriptionType" substitutionGroup="gml:AbstractObject"/>
65        <complexType name="GridOrdinateDescriptionPropertyType">
66                <sequence>
67                        <element ref="csml:GridOrdinateDescription"/>
68                </sequence>
69                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
70        </complexType>
71        <!--====================================================================== -->
72        <complexType name="GridPointDescriptionType">
73                <annotation>
74                        <documentation>GridPointDescription defines grid point locations over entire Grid by listing direct positions in given sequence order.</documentation>
75                </annotation>
76                <sequence>
77                        <group ref="gml:geometricPositionListGroup"/>
78                        <element name="sequenceRule" type="gml:SequenceRuleType"/>
79                </sequence>
80        </complexType>
81        <element name="GridPointDescription" type="csml:GridPointDescriptionType" substitutionGroup="gml:AbstractObject"/>
82        <complexType name="GridPointDescriptionPropertyType">
83                <sequence>
84                        <element ref="csml:GridPointDescription"/>
85                </sequence>
86                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
87        </complexType>
88        <!--====================================================================== -->
89        <complexType name="GridCoordinatesTableType">
90                <annotation>
91                        <documentation>Defines a table providing the transformation between grid coordinates and external coordinate reference system (see ISO 19123 8.2.1). Allows all grid point locations to be listed explicitly (using the gml:gridPoints property), or individual ordinates to be listed for each coordinate system axis (using a set of gml:gridOrdinate elements – one for each axis of the coordinate reference system).</documentation>
92                </annotation>
93                <choice>
94                        <element name="gridOrdinate" type="csml:GridOrdinateDescriptionPropertyType" maxOccurs="unbounded"/>
95                        <element name="gridPoints" type="csml:GridPointDescriptionPropertyType"/>
96                </choice>
97        </complexType>
98        <element name="GridCoordinatesTable" type="csml:GridCoordinatesTableType" substitutionGroup="gml:AbstractObject"/>
99        <complexType name="GridCoordinatesTablePropertyType">
100                <sequence>
101                        <element ref="csml:GridCoordinatesTable"/>
102                </sequence>
103                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
104        </complexType>
105        <!--====================================================================== -->
106        <complexType name="ReferenceableGridType">
107                <annotation>
108                        <documentation>An implementation of CV_ReferenceableGrid of ISO 19123.
109                        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>
110                </annotation>
111                <complexContent>
112                        <extension base="gml:GridType">
113                                <sequence>
114                                        <element name="coordTransformTable" type="csml:GridCoordinatesTablePropertyType"/>
115                                </sequence>
116                        </extension>
117                </complexContent>
118        </complexType>
119        <element name="ReferenceableGrid" type="csml:ReferenceableGridType" substitutionGroup="gml:Grid"/>
120        <complexType name="ReferenceableGridPropertyType">
121                <sequence>
122                        <element ref="csml:ReferenceableGrid"/>
123                </sequence>
124                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
125        </complexType>
126        <!--====================================================================== -->
127        <!--====================================================================== -->
128        <!--==== ReferenceableGridCoverage ====-->
129        <!--====================================================================== -->
130        <complexType name="ReferenceableGridDomainType">
131                <annotation>
132                        <documentation>Implemented by analogy with gml:RectifiedGridDomainType.</documentation>
133                </annotation>
134                <complexContent>
135                        <restriction base="gml:DomainSetType">
136                                <sequence minOccurs="0">
137                                        <element ref="csml:ReferenceableGrid"/>
138                                </sequence>
139                                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
140                                <attributeGroup ref="gml:AssociationAttributeGroup"/>
141                        </restriction>
142                </complexContent>
143        </complexType>
144        <element name="referenceableGridDomain" type="csml:ReferenceableGridDomainType" substitutionGroup="gml:domainSet"/>
145        <!--====================================================================== -->
146        <complexType name="ReferenceableGridCoverageType">
147                <annotation>
148                        <documentation>Implementation of ISO 19123 CV_DiscreteGridPointCoverage for a CV_ReferenceableGrid domain.</documentation>
149                </annotation>
150                <complexContent>
151                        <restriction base="gml:AbstractDiscreteCoverageType">
152                                <sequence>
153                                        <group ref="gml:StandardObjectProperties"/>
154                                        <element ref="gml:boundedBy" minOccurs="0"/>
155                                        <element ref="csml:referenceableGridDomain"/>
156                                        <element ref="gml:rangeSet"/>
157                                        <element ref="gml:coverageFunction" minOccurs="0"/>
158                                </sequence>
159                        </restriction>
160                </complexContent>
161        </complexType>
162        <element name="ReferenceableGridCoverage" type="csml:ReferenceableGridCoverageType" substitutionGroup="gml:AbstractDiscreteCoverage"/>
163        <complexType name="ReferenceableGridCoveragePropertyType">
164                <sequence>
165                        <element ref="csml:ReferenceableGridCoverage"/>
166                </sequence>
167                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
168        </complexType>
169        <!--====================================================================== -->
170        <!--====================================================================== -->
171        <!--==== CSML Grid Feature Type ====-->
172        <!--====================================================================== -->
173        <complexType name="GridFeatureType">
174                <complexContent>
175                        <extension base="gml:AbstractFeatureType">
176                                <sequence>
177                                        <element name="time" type="gml:TimePositionType"/>
178                                        <element name="value" type="csml:ReferenceableGridCoveragePropertyType"/>
179                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
180                                </sequence>
181                        </extension>
182                </complexContent>
183        </complexType>
184        <element name="GridFeature" type="csml:GridFeatureType" substitutionGroup="gml:AbstractFeature"/>
185        <complexType name="GridFeaturePropertyType">
186                <sequence>
187                        <element ref="csml:GridFeature"/>
188                </sequence>
189                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
190        </complexType>
191        <!--====================================================================== -->
192        <!--====================================================================== -->
193        <!--==== CSML GridSeries Feature Type ====-->
194        <!--====================================================================== -->
195        <complexType name="SpatioTemporalCRSType">
196                <annotation>
197                        <documentation>Exactly one component reference system must be a TM_TemporalCRS (i.e. gml:TemporalCRS)</documentation>
198                </annotation>
199                <complexContent>
200                        <extension base="gml:CompoundCRSType"/>
201                </complexContent>
202        </complexType>
203        <element name="SpatioTemporalCRS" type="csml:SpatioTemporalCRSType" substitutionGroup="gml:CompoundCRS"/>
204        <!--====================================================================== -->
205        <complexType name="GridSeriesDomainType">
206                <annotation>
207                        <documentation>The SC_CRS to which this is referenced (via the inherited gml:SRSReferenceGroup attributeGroup) should be a csml:SpatioTemporalCRS of srsDimension 3 or 4. In addition, one of the GridOrdinateDescription objects must have a timePositionList. Finally, the grid dimension should be 3 or 4. These constraints could perhaps be implemented by deriving by restriction from ReferenceableGridType and applying facets to the attributes (?), or perhaps using schematron. For now, leave it unenforced but understood....</documentation>
208                </annotation>
209                <complexContent>
210                        <restriction base="csml:ReferenceableGridType">
211                                <sequence>
212                                        <group ref="gml:StandardObjectProperties"/>
213                                        <element name="limits" type="gml:GridLimitsType"/>
214                                        <choice>
215                                                <element name="axisLabels" type="gml:NCNameList"/>
216                                                <element name="axisName" type="string" maxOccurs="unbounded"/>
217                                        </choice>
218                                        <element name="coordTransformTable" type="csml:GridCoordinatesTablePropertyType"/>
219                                </sequence>
220                        </restriction>
221                </complexContent>
222        </complexType>
223        <element name="GridSeriesDomain" type="csml:GridSeriesDomainType" substitutionGroup="csml:ReferenceableGrid"/>
224        <complexType name="GridSeriesDomainPropertyType">
225                <sequence>
226                        <element ref="csml:GridSeriesDomain"/>
227                </sequence>
228                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
229        </complexType>
230        <!--====================================================================== -->
231        <complexType name="GridSeriesCoverageDomainType">
232                <complexContent>
233                        <restriction base="gml:GridDomainType">
234                                <sequence minOccurs="0">
235                                        <element ref="csml:GridSeriesDomain"/>
236                                </sequence>
237                        </restriction>
238                </complexContent>
239        </complexType>
240        <element name="gridSeriesDomain" type="csml:GridSeriesCoverageDomainType" substitutionGroup="gml:gridDomain"/>
241        <!--====================================================================== -->
242        <complexType name="GridSeriesCoverageType">
243                <complexContent>
244                        <restriction base="gml:GridCoverageType">
245                                <sequence>
246                                        <group ref="gml:StandardObjectProperties"/>
247                                        <element ref="gml:boundedBy" minOccurs="0"/>
248                                        <element ref="csml:gridSeriesDomain"/>
249                                        <element ref="gml:rangeSet"/>
250                                        <element ref="gml:coverageFunction" minOccurs="0"/>
251                                </sequence>
252                        </restriction>
253                </complexContent>
254        </complexType>
255        <element name="GridSeriesCoverage" type="csml:GridSeriesCoverageType" substitutionGroup="gml:GridCoverage"/>
256        <complexType name="GridSeriesCoveragePropertyType">
257                <sequence>
258                        <element ref="csml:GridSeriesCoverage"/>
259                </sequence>
260                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
261        </complexType>
262        <!--====================================================================== -->
263        <complexType name="GridSeriesFeatureType">
264                <complexContent>
265                        <extension base="gml:AbstractFeatureType">
266                                <sequence>
267                                        <element name="value" type="csml:GridSeriesCoveragePropertyType"/>
268                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
269                                </sequence>
270                        </extension>
271                </complexContent>
272        </complexType>
273        <element name="GridSeriesFeature" type="csml:GridSeriesFeatureType" substitutionGroup="gml:AbstractFeature"/>
274        <complexType name="GridSeriesFeaturePropertyType">
275                <sequence>
276                        <element ref="csml:GridSeriesFeature"/>
277                </sequence>
278                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
279        </complexType>
280        <!--====================================================================== -->
281        <!--====================================================================== -->
282        <!--==== CSML PointCollection Feature Type ====-->
283        <!--====================================================================== -->
284        <complexType name="PointCollectionFeatureType">
285                <complexContent>
286                        <extension base="gml:AbstractFeatureType">
287                                <sequence>
288                                        <element name="time" type="gml:TimePositionType" minOccurs="0"/>
289                                        <element name="value">
290                                                <complexType>
291                                                        <sequence>
292                                                                <element ref="gml:MultiPointCoverage"/>
293                                                        </sequence>
294                                                </complexType>
295                                        </element>
296                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
297                                </sequence>
298                        </extension>
299                </complexContent>
300        </complexType>
301        <element name="PointCollectionFeature" type="csml:PointCollectionFeatureType" substitutionGroup="gml:AbstractFeature"/>
302        <complexType name="PointCollectionFeaturePropertyType">
303                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
304        </complexType>
305        <!--====================================================================== -->
306        <!--====================================================================== -->
307        <!--==== CSML Point Feature Type ====-->
308        <!--====================================================================== -->
309        <complexType name="PointDomainType">
310                <annotation>
311                        <documentation>Restricts a gml:MultiPoint to having a single pointMember.</documentation>
312                </annotation>
313                <complexContent>
314                        <restriction base="gml:MultiPointType">
315                                <sequence>
316                                        <group ref="gml:StandardObjectProperties"/>
317                                        <element ref="gml:pointMember" minOccurs="0"/>
318                                </sequence>
319                        </restriction>
320                </complexContent>
321        </complexType>
322        <element name="PointDomain" type="csml:PointDomainType" substitutionGroup="gml:MultiPoint"/>
323        <complexType name="PointDomainPropertyType">
324                <sequence>
325                        <element ref="csml:PointDomain"/>
326                </sequence>
327                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
328        </complexType>
329        <!--====================================================================== -->
330        <complexType name="PointCoverageDomainType">
331                <complexContent>
332                        <restriction base="gml:MultiPointDomainType">
333                                <sequence minOccurs="0">
334                                        <element ref="csml:PointDomain"/>
335                                </sequence>
336                        </restriction>
337                </complexContent>
338        </complexType>
339        <element name="pointDomain" type="csml:PointCoverageDomainType" substitutionGroup="gml:multiPointDomain"/>
340        <!--====================================================================== -->
341        <complexType name="PointCoverageType">
342                <complexContent>
343                        <restriction base="gml:MultiPointCoverageType">
344                                <sequence>
345                                        <group ref="gml:StandardObjectProperties"/>
346                                        <element ref="gml:boundedBy" minOccurs="0"/>
347                                        <element ref="csml:pointDomain"/>
348                                        <element ref="gml:rangeSet"/>
349                                        <element ref="gml:coverageFunction" minOccurs="0"/>
350                                </sequence>
351                        </restriction>
352                </complexContent>
353        </complexType>
354        <element name="PointCoverage" type="csml:PointCoverageType" substitutionGroup="gml:MultiPointCoverage"/>
355        <complexType name="PointCoveragePropertyType">
356                <sequence>
357                        <element ref="csml:PointCoverage"/>
358                </sequence>
359                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
360        </complexType>
361        <!--====================================================================== -->
362        <complexType name="PointFeatureType">
363                <complexContent>
364                        <extension base="gml:AbstractFeatureType">
365                                <sequence>
366                                        <element name="location" type="gml:DirectPositionType"/>
367                                        <element name="time" type="gml:TimePositionType" minOccurs="0"/>
368                                        <element name="value" type="csml:PointCoveragePropertyType"/>
369                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
370                                </sequence>
371                        </extension>
372                </complexContent>
373        </complexType>
374        <element name="PointFeature" type="csml:PointFeatureType" substitutionGroup="gml:AbstractFeature"/>
375        <complexType name="PointFeaturePropertyType">
376                <sequence>
377                        <element ref="csml:PointFeature"/>
378                </sequence>
379                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
380        </complexType>
381        <!--====================================================================== -->
382        <!--====================================================================== -->
383        <!--==== Alternate Point Feature Type ====-->
384        <!--====================================================================== -->
385        <complexType name="AlternatePointDomainType">
386                <complexContent>
387                        <restriction base="gml:DomainSetType">
388                                <sequence minOccurs="0">
389                                        <element ref="gml:Point"/>
390                                </sequence>
391                        </restriction>
392                </complexContent>
393        </complexType>
394        <element name="alternatePointDomain" type="csml:AlternatePointDomainType" substitutionGroup="gml:domainSet"/>
395        <!--====================================================================== -->
396        <complexType name="AlternatePointCoverageType">
397                <complexContent>
398                        <restriction base="gml:AbstractDiscreteCoverageType">
399                                <sequence>
400                                        <group ref="gml:StandardObjectProperties"/>
401                                        <element ref="gml:boundedBy" minOccurs="0"/>
402                                        <element ref="csml:alternatePointDomain"/>
403                                        <element ref="gml:rangeSet"/>
404                                        <element ref="gml:coverageFunction" minOccurs="0"/>
405                                </sequence>
406                        </restriction>
407                </complexContent>
408        </complexType>
409        <element name="AlternatePointCoverage" type="csml:AlternatePointCoverageType" substitutionGroup="gml:AbstractDiscreteCoverage"/>
410        <complexType name="AlternatePointCoveragePropertyType">
411                <sequence>
412                        <element ref="csml:AlternatePointCoverage"/>
413                </sequence>
414                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
415        </complexType>
416        <!--====================================================================== -->
417        <complexType name="AlternatePointFeatureType">
418                <complexContent>
419                        <extension base="gml:AbstractFeatureType">
420                                <sequence>
421                                        <element name="location" type="gml:PointPropertyType"/>
422                                        <element name="time" type="gml:TimeInstantPropertyType" minOccurs="0"/>
423                                        <element name="value" type="csml:AlternatePointCoveragePropertyType"/>
424                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
425                                </sequence>
426                        </extension>
427                </complexContent>
428        </complexType>
429        <element name="AlternatePointFeature" type="csml:AlternatePointFeatureType" substitutionGroup="gml:AbstractFeature"/>
430        <complexType name="AlternatePointFeaturePropertyType">
431                <sequence>
432                        <element ref="csml:AlternatePointFeature"/>
433                </sequence>
434                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
435        </complexType>
436        <!--====================================================================== -->
437        <!--====================================================================== -->
438        <!--==== CSML PointSeries Feature Type ====-->
439        <!--====================================================================== -->
440        <complexType name="TimeSeriesDomainType">
441                <complexContent>
442                        <extension base="gml:AbstractTimeComplexType">
443                                <sequence>
444                                        <element name="time" type="csml:TimePositionListType"/>
445                                </sequence>
446                        </extension>
447                </complexContent>
448        </complexType>
449        <element name="TimeSeriesDomain" type="csml:TimeSeriesDomainType" substitutionGroup="gml:AbstractTimeComplex"/>
450        <complexType name="TimeSeriesDomainPropertyType">
451                <sequence>
452                        <element ref="csml:TimeSeriesDomain"/>
453                </sequence>
454                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
455        </complexType>
456        <!--====================================================================== -->
457        <complexType name="PointSeriesCoverageDomainType">
458                <complexContent>
459                        <restriction base="gml:DomainSetType">
460                                <sequence minOccurs="0">
461                                        <element ref="csml:TimeSeriesDomain"/>
462                                </sequence>
463                        </restriction>
464                </complexContent>
465        </complexType>
466        <element name="pointSeriesDomain" type="csml:PointSeriesCoverageDomainType" substitutionGroup="gml:domainSet"/>
467        <!--====================================================================== -->
468        <complexType name="PointSeriesCoverageType">
469                <complexContent>
470                        <restriction base="gml:AbstractDiscreteCoverageType">
471                                <sequence>
472                                        <group ref="gml:StandardObjectProperties"/>
473                                        <element ref="gml:boundedBy" minOccurs="0"/>
474                                        <element ref="csml:pointSeriesDomain"/>
475                                        <element ref="gml:rangeSet"/>
476                                        <element ref="gml:coverageFunction" minOccurs="0"/>
477                                </sequence>
478                        </restriction>
479                </complexContent>
480        </complexType>
481        <element name="PointSeriesCoverage" type="csml:PointSeriesCoverageType" substitutionGroup="gml:AbstractDiscreteCoverage"/>
482        <complexType name="PointSeriesCoveragePropertyType">
483                <sequence>
484                        <element ref="csml:PointSeriesCoverage"/>
485                </sequence>
486                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
487        </complexType>
488        <!--====================================================================== -->
489        <complexType name="PointSeriesFeatureType">
490                <complexContent>
491                        <extension base="gml:AbstractFeatureType">
492                                <sequence>
493                                        <element name="location" type="gml:DirectPositionType" minOccurs="0"/>
494                                        <element name="value" type="csml:PointSeriesCoveragePropertyType"/>
495                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
496                                </sequence>
497                        </extension>
498                </complexContent>
499        </complexType>
500        <element name="PointSeriesFeature" type="csml:PointSeriesFeatureType" substitutionGroup="gml:AbstractFeature"/>
501        <complexType name="PointSeriesFeaturePropertyType">
502                <sequence>
503                        <element ref="csml:PointSeriesFeature"/>
504                </sequence>
505                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
506        </complexType>
507        <!--====================================================================== -->
508        <!--====================================================================== -->
509        <!--==== CSML Profile Feature Type ====-->
510        <!--====================================================================== -->
511        <complexType name="ProfileDomainType">
512                <annotation>
513                        <documentation>Constrains a gml:MultiPoint to a vertical line of points. The associated CRS should be a valid subtype of gml:VerticalCRS.</documentation>
514                </annotation>
515                <complexContent>
516                        <restriction base="gml:MultiPointType">
517                                <sequence>
518                                        <sequence>
519                                                <group ref="gml:StandardObjectProperties"/>
520                                        </sequence>
521                                        <sequence>
522                                                <element ref="gml:pointMember" minOccurs="0" maxOccurs="unbounded"/>
523                                                <element ref="gml:pointMembers" minOccurs="0"/>
524                                        </sequence>
525                                </sequence>
526                                <attribute name="srsDimension" fixed="1"/>
527                        </restriction>
528                </complexContent>
529        </complexType>
530        <element name="ProfileDomain" type="csml:ProfileDomainType" substitutionGroup="gml:MultiPoint"/>
531        <complexType name="ProfileDomainPropertyType">
532                <sequence>
533                        <element ref="csml:ProfileDomain"/>
534                </sequence>
535                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
536        </complexType>
537        <!--====================================================================== -->
538        <complexType name="ProfileCoverageDomainType">
539                <complexContent>
540                        <restriction base="gml:MultiPointDomainType">
541                                <sequence minOccurs="0">
542                                        <element ref="csml:ProfileDomain"/>
543                                </sequence>
544                        </restriction>
545                </complexContent>
546        </complexType>
547        <element name="profileDomain" type="csml:ProfileCoverageDomainType" substitutionGroup="gml:multiPointDomain"/>
548        <!--====================================================================== -->
549        <complexType name="ProfileCoverageType">
550                <complexContent>
551                        <restriction base="gml:MultiPointCoverageType">
552                                <sequence>
553                                        <group ref="gml:StandardObjectProperties"/>
554                                        <element ref="gml:boundedBy" minOccurs="0"/>
555                                        <element ref="csml:profileDomain"/>
556                                        <element ref="gml:rangeSet"/>
557                                        <element ref="gml:coverageFunction" minOccurs="0"/>
558                                </sequence>
559                        </restriction>
560                </complexContent>
561        </complexType>
562        <element name="ProfileCoverage" type="csml:ProfileCoverageType" substitutionGroup="gml:MultiPointCoverage"/>
563        <complexType name="ProfileCoveragePropertyType">
564                <sequence>
565                        <element ref="csml:ProfileCoverage"/>
566                </sequence>
567                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
568        </complexType>
569        <!--====================================================================== -->
570        <complexType name="ProfileFeatureType">
571                <complexContent>
572                        <extension base="gml:AbstractFeatureType">
573                                <sequence>
574                                        <element name="location" type="gml:DirectPositionType" minOccurs="0"/>
575                                        <element name="time" type="gml:TimePositionType" minOccurs="0"/>
576                                        <element name="value" type="csml:ProfileCoveragePropertyType"/>
577                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
578                                </sequence>
579                        </extension>
580                </complexContent>
581        </complexType>
582        <element name="ProfileFeature" type="csml:ProfileFeatureType" substitutionGroup="gml:AbstractFeature"/>
583        <complexType name="ProfileFeaturePropertyType">
584                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
585        </complexType>
586        <!--====================================================================== -->
587        <!--====================================================================== -->
588        <!--==== CSML ProfileSeries Feature Type ====-->
589        <!--====================================================================== -->
590        <complexType name="ProfileSeriesDomainType">
591                <annotation>
592                        <documentation>The SC_CRS to which this is referenced (via the inherited gml:SRSReferenceGroup attributeGroup) should be a csml:SpatioTemporalCRS of srsDimension 2. In addition, one of the GridOrdinateDescription objects must have a timePositonList. Finally, the grid dimension should be 2.</documentation>
593                </annotation>
594                <complexContent>
595                        <restriction base="csml:ReferenceableGridType">
596                                <sequence>
597                                        <group ref="gml:StandardObjectProperties"/>
598                                        <element name="limits" type="gml:GridLimitsType"/>
599                                        <choice>
600                                                <element name="axisLabels" type="gml:NCNameList"/>
601                                                <element name="axisName" type="string" maxOccurs="unbounded"/>
602                                        </choice>
603                                        <element name="coordTransformTable" type="csml:GridCoordinatesTablePropertyType"/>
604                                </sequence>
605                                <attribute name="srsDimension" fixed="2"/>
606                                <attribute name="dimension" fixed="2"/>
607                        </restriction>
608                </complexContent>
609        </complexType>
610        <element name="ProfileSeriesDomain" type="csml:ProfileSeriesDomainType" substitutionGroup="csml:ReferenceableGrid"/>
611        <complexType name="ProfileSeriesDomainPropertyType">
612                <sequence>
613                        <element ref="csml:ProfileSeriesDomain"/>
614                </sequence>
615                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
616        </complexType>
617        <!--====================================================================== -->
618        <complexType name="ProfileSeriesCoverageDomainType">
619                <complexContent>
620                        <restriction base="gml:GridDomainType">
621                                <sequence minOccurs="0">
622                                        <element ref="csml:ProfileSeriesDomain"/>
623                                </sequence>
624                        </restriction>
625                </complexContent>
626        </complexType>
627        <element name="profileSeriesDomain" type="csml:ProfileSeriesCoverageDomainType" substitutionGroup="gml:gridDomain"/>
628        <!--====================================================================== -->
629        <complexType name="ProfileSeriesCoverageType">
630                <complexContent>
631                        <restriction base="gml:GridCoverageType">
632                                <sequence>
633                                        <group ref="gml:StandardObjectProperties"/>
634                                        <element ref="gml:boundedBy" minOccurs="0"/>
635                                        <element ref="csml:profileSeriesDomain"/>
636                                        <element ref="gml:rangeSet"/>
637                                        <element ref="gml:coverageFunction" minOccurs="0"/>
638                                </sequence>
639                        </restriction>
640                </complexContent>
641        </complexType>
642        <element name="ProfileSeriesCoverage" type="csml:ProfileSeriesCoverageType" substitutionGroup="gml:GridCoverage"/>
643        <complexType name="ProfileSeriesCoveragePropertyType">
644                <sequence>
645                        <element ref="csml:ProfileSeriesCoverage"/>
646                </sequence>
647                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
648        </complexType>
649        <!--====================================================================== -->
650        <complexType name="ProfileSeriesFeatureType">
651                <complexContent>
652                        <extension base="gml:AbstractFeatureType">
653                                <sequence>
654                                        <element name="location" type="gml:DirectPositionType" minOccurs="0"/>
655                                        <element name="value" type="csml:ProfileSeriesCoveragePropertyType"/>
656                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
657                                </sequence>
658                        </extension>
659                </complexContent>
660        </complexType>
661        <element name="ProfileSeriesFeature" type="csml:ProfileSeriesFeatureType" substitutionGroup="gml:AbstractFeature"/>
662        <complexType name="ProfileSeriesFeaturePropertyType">
663                <sequence>
664                        <element ref="csml:ProfileSeriesFeature"/>
665                </sequence>
666                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
667        </complexType>
668        <!--====================================================================== -->
669        <!--====================================================================== -->
670        <!--==== CSML RaggedProfileSeries Feature Type ====-->
671        <!--====================================================================== -->
672        <complexType name="RaggedProfileSeriesFeatureType">
673                <complexContent>
674                        <extension base="gml:AbstractFeatureType">
675                                <sequence>
676                                        <element name="location" type="gml:DirectPositionType" minOccurs="0"/>
677                                        <element name="profileLength">
678                                                <simpleType>
679                                                        <list itemType="int"/>
680                                                </simpleType>
681                                        </element>
682                                        <element name="value" type="csml:ProfileSeriesCoveragePropertyType"/>
683                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
684                                </sequence>
685                        </extension>
686                </complexContent>
687        </complexType>
688        <element name="RaggedProfileSeriesFeature" type="csml:RaggedProfileSeriesFeatureType" substitutionGroup="gml:AbstractFeature"/>
689        <complexType name="RaggedProfileSeriesFeaturePropertyType">
690                <sequence>
691                        <element ref="csml:ProfileSeriesFeature"/>
692                </sequence>
693                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
694        </complexType>
695        <!--====================================================================== -->
696        <!--====================================================================== -->
697        <!--==== CSML RaggedSection Feature Type ====-->
698        <!--====================================================================== -->
699        <complexType name="RaggedSectionFeatureType">
700                <complexContent>
701                        <extension base="gml:AbstractFeatureType">
702                                <sequence>
703                                        <element name="stationLocations" type="gml:DirectPositionListType"/>
704                                        <element name="stationTimes" type="csml:TimePositionListType"/>
705                                        <element name="profileLength">
706                                                <simpleType>
707                                                        <list itemType="int"/>
708                                                </simpleType>
709                                        </element>
710                                        <element name="value" type="csml:SectionCoveragePropertyType"/>
711                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
712                                </sequence>
713                        </extension>
714                </complexContent>
715        </complexType>
716        <element name="RaggedSectionFeature" type="csml:RaggedSectionFeatureType" substitutionGroup="gml:AbstractFeature"/>
717        <complexType name="RaggedSectionFeaturePropertyType">
718                <sequence>
719                        <element ref="csml:RaggedSectionFeature"/>
720                </sequence>
721                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
722        </complexType>
723        <!--====================================================================== -->
724        <!--====================================================================== -->
725        <!--==== CSML ScanningRadar Feature Type ====-->
726        <!--====================================================================== -->
727        <element name="polarCS" substitutionGroup="gml:coordinateSystem">
728                <complexType>
729                        <complexContent>
730                                <restriction base="gml:CoordinateSystemPropertyType">
731                                        <sequence minOccurs="0">
732                                                <element ref="gml:PolarCS"/>
733                                        </sequence>
734                                </restriction>
735                        </complexContent>
736                </complexType>
737        </element>
738        <element name="azimuthRangeDatum" substitutionGroup="gml:engineeringDatum">
739                <complexType>
740                        <complexContent>
741                                <restriction base="gml:EngineeringDatumPropertyType">
742                                        <sequence minOccurs="0">
743                                                <element ref="gml:EngineeringDatum"/>
744                                        </sequence>
745                                </restriction>
746                        </complexContent>
747                </complexType>
748        </element>
749        <complexType name="AzimuthRangeCRSType">
750                <complexContent>
751                        <restriction base="gml:EngineeringCRSType">
752                                <sequence>
753                                        <sequence>
754                                                <element ref="gml:metaDataProperty" minOccurs="0" maxOccurs="unbounded"/>
755                                                <element ref="gml:description" minOccurs="0"/>
756                                                <element ref="gml:descriptionReference" minOccurs="0"/>
757                                                <element ref="gml:identifier"/>
758                                                <element ref="gml:name" minOccurs="0" maxOccurs="unbounded"/>
759                                        </sequence>
760                                        <sequence>
761                                                <element ref="gml:remarks" minOccurs="0"/>
762                                        </sequence>
763                                        <sequence>
764                                                <element ref="gml:domainOfValidity" minOccurs="0" maxOccurs="unbounded"/>
765                                                <element ref="gml:scope" maxOccurs="unbounded"/>
766                                        </sequence>
767                                        <sequence>
768                                                <element ref="csml:polarCS"/>
769                                                <element ref="csml:azimuthRangeDatum"/>
770                                        </sequence>
771                                </sequence>
772                        </restriction>
773                </complexContent>
774        </complexType>
775        <!--====================================================================== -->
776        <complexType name="ScanningRadarDomainType">
777                <annotation>
778                        <documentation>The SC_CRS to which this is associated (through the gml:srsName attribute) should be an AzimuthRangeCRS.</documentation>
779                </annotation>
780                <complexContent>
781                        <restriction base="csml:ReferenceableGridType">
782                                <sequence>
783                                        <group ref="gml:StandardObjectProperties"/>
784                                        <element name="limits" type="gml:GridLimitsType"/>
785                                        <choice>
786                                                <element name="axisLabels" type="gml:NCNameList"/>
787                                                <element name="axisName" type="string" maxOccurs="unbounded"/>
788                                        </choice>
789                                        <element name="coordTransformTable" type="csml:GridCoordinatesTablePropertyType"/>
790                                </sequence>
791                                <attribute name="dimension" fixed="2"/>
792                                <attribute name="srsDimension" fixed="2"/>
793                        </restriction>
794                </complexContent>
795        </complexType>
796        <element name="ScanningRadarDomain" type="csml:ScanningRadarDomainType" substitutionGroup="csml:ReferenceableGrid"/>
797        <complexType name="ScanningRadarDomainPropertyType">
798                <sequence>
799                        <element ref="csml:ScanningRadarDomain"/>
800                </sequence>
801                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
802        </complexType>
803        <!--====================================================================== -->
804        <complexType name="ScanningRadarCoverageDomainType">
805                <complexContent>
806                        <restriction base="gml:GridDomainType">
807                                <sequence minOccurs="0">
808                                        <element ref="csml:ScanningRadarDomain"/>
809                                </sequence>
810                        </restriction>
811                </complexContent>
812        </complexType>
813        <element name="scanningRadarDomain" type="csml:ScanningRadarCoverageDomainType" substitutionGroup="gml:gridDomain"/>
814        <!--====================================================================== -->
815        <complexType name="ScanningRadarCoverageType">
816                <complexContent>
817                        <restriction base="gml:GridCoverageType">
818                                <sequence>
819                                        <group ref="gml:StandardObjectProperties"/>
820                                        <element ref="gml:boundedBy" minOccurs="0"/>
821                                        <element ref="csml:scanningRadarDomain"/>
822                                        <element ref="gml:rangeSet"/>
823                                        <element ref="gml:coverageFunction" minOccurs="0"/>
824                                </sequence>
825                        </restriction>
826                </complexContent>
827        </complexType>
828        <element name="ScanningRadarCoverage" type="csml:ScanningRadarCoverageType" substitutionGroup="gml:GridCoverage"/>
829        <complexType name="ScanningRadarCoveragePropertyType">
830                <sequence>
831                        <element ref="csml:ScanningRadarCoverage"/>
832                </sequence>
833                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
834        </complexType>
835        <!--====================================================================== -->
836        <complexType name="ScanningRadarFeatureType">
837                <complexContent>
838                        <extension base="gml:AbstractFeatureType">
839                                <sequence>
840                                        <element name="elevation" type="gml:AngleType" minOccurs="0"/>
841                                        <element name="value" type="csml:ScanningRadarCoveragePropertyType"/>
842                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
843                                </sequence>
844                        </extension>
845                </complexContent>
846        </complexType>
847        <element name="ScanningRadarFeature" type="csml:ScanningRadarFeatureType" substitutionGroup="gml:AbstractFeature"/>
848        <complexType name="ScanningRadarFeaturePropertyType">
849                <sequence>
850                        <element ref="csml:ScanningRadarFeature"/>
851                </sequence>
852        </complexType>
853        <!--====================================================================== -->
854        <!--====================================================================== -->
855        <!--==== CSML Section Feature Type ====-->
856        <!--====================================================================== -->
857        <complexType name="SectionDomainType">
858                <complexContent>
859                        <restriction base="csml:ReferenceableGridType">
860                                <sequence>
861                                        <group ref="gml:StandardObjectProperties"/>
862                                        <element name="limits" type="gml:GridLimitsType"/>
863                                        <choice>
864                                                <element name="axisLabels" type="gml:NCNameList"/>
865                                                <element name="axisName" type="string" maxOccurs="unbounded"/>
866                                        </choice>
867                                        <element name="coordTransformTable" type="csml:GridCoordinatesTablePropertyType"/>
868                                </sequence>
869                                <attribute name="dimension" fixed="2"/>
870                                <attribute name="srsDimension" fixed="3"/>
871                        </restriction>
872                </complexContent>
873        </complexType>
874        <element name="SectionDomain" type="csml:SectionDomainType" substitutionGroup="csml:ReferenceableGrid"/>
875        <complexType name="SectionDomainPropertyType">
876                <sequence>
877                        <element ref="csml:SectionDomain"/>
878                </sequence>
879                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
880        </complexType>
881        <!--====================================================================== -->
882        <complexType name="SectionCoverageDomainType">
883                <complexContent>
884                        <restriction base="gml:GridDomainType">
885                                <sequence minOccurs="0">
886                                        <element ref="csml:SectionDomain"/>
887                                </sequence>
888                        </restriction>
889                </complexContent>
890        </complexType>
891        <element name="sectionDomain" type="csml:SectionCoverageDomainType" substitutionGroup="gml:gridDomain"/>
892        <!--====================================================================== -->
893        <complexType name="SectionCoverageType">
894                <complexContent>
895                        <restriction base="gml:GridCoverageType">
896                                <sequence>
897                                        <group ref="gml:StandardObjectProperties"/>
898                                        <element ref="gml:boundedBy" minOccurs="0"/>
899                                        <element ref="csml:sectionDomain"/>
900                                        <element ref="gml:rangeSet"/>
901                                        <element ref="gml:coverageFunction" minOccurs="0"/>
902                                </sequence>
903                        </restriction>
904                </complexContent>
905        </complexType>
906        <element name="SectionCoverage" type="csml:SectionCoverageType" substitutionGroup="gml:GridCoverage"/>
907        <complexType name="SectionCoveragePropertyType">
908                <sequence>
909                        <element ref="csml:SectionCoverage"/>
910                </sequence>
911                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
912        </complexType>
913        <!--====================================================================== -->
914        <complexType name="SectionFeatureType">
915                <complexContent>
916                        <extension base="gml:AbstractFeatureType">
917                                <sequence>
918                                        <element name="stationLocations" type="gml:DirectPositionListType"/>
919                                        <element name="stationTimes" type="csml:TimePositionListType"/>
920                                        <element name="value" type="csml:SectionCoveragePropertyType"/>
921                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
922                                </sequence>
923                        </extension>
924                </complexContent>
925        </complexType>
926        <element name="SectionFeature" type="csml:SectionFeatureType" substitutionGroup="gml:AbstractFeature"/>
927        <complexType name="SectionFeaturePropertyType">
928                <sequence>
929                        <element ref="csml:SectionFeature"/>
930                </sequence>
931                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
932        </complexType>
933        <!--====================================================================== -->
934        <!--====================================================================== -->
935        <!--==== CSML Swath Feature Type ====-->
936        <!--====================================================================== -->
937        <complexType name="SwathFeatureType">
938                <complexContent>
939                        <extension base="gml:AbstractFeatureType">
940                                <sequence>
941                                        <element name="eqCrossLon" type="double" minOccurs="0"/>
942                                        <element name="eqCrossTime" type="gml:TimePositionType" minOccurs="0"/>
943                                        <element name="value" type="csml:ReferenceableGridCoveragePropertyType"/>
944                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
945                                </sequence>
946                        </extension>
947                </complexContent>
948        </complexType>
949        <element name="SwathFeature" type="csml:SwathFeatureType" substitutionGroup="gml:AbstractFeature"/>
950        <complexType name="SwathFeaturePropertyType">
951                <sequence>
952                        <element ref="csml:SwathFeature"/>
953                </sequence>
954                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
955        </complexType>
956        <!--====================================================================== -->
957        <!--====================================================================== -->
958        <!--==== CSML Trajectory Feature Type ====-->
959        <!--====================================================================== -->
960        <complexType name="TrajectoryDomainType">
961                <complexContent>
962                        <restriction base="csml:ReferenceableGridType">
963                                <sequence>
964                                        <group ref="gml:StandardObjectProperties"/>
965                                        <element name="limits" type="gml:GridLimitsType"/>
966                                        <choice>
967                                                <element name="axisLabels" type="gml:NCNameList"/>
968                                                <element name="axisName" type="string" maxOccurs="unbounded"/>
969                                        </choice>
970                                        <element name="coordTransformTable" type="csml:GridCoordinatesTablePropertyType"/>
971                                </sequence>
972                                <attribute name="dimension" fixed="1"/>
973                        </restriction>
974                </complexContent>
975        </complexType>
976        <element name="TrajectoryDomain" type="csml:TrajectoryDomainType" substitutionGroup="csml:ReferenceableGrid"/>
977        <complexType name="TrajectoryDomainPropertyType">
978                <sequence>
979                        <element ref="csml:TrajectoryDomain"/>
980                </sequence>
981                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
982        </complexType>
983        <!--====================================================================== -->
984        <complexType name="TrajectoryCoverageDomainType">
985                <complexContent>
986                        <restriction base="gml:DomainSetType">
987                                <sequence minOccurs="0">
988                                        <element ref="csml:TrajectoryDomain"/>
989                                </sequence>
990                        </restriction>
991                </complexContent>
992        </complexType>
993        <element name="trajectoryDomain" type="csml:TrajectoryCoverageDomainType" substitutionGroup="gml:domainSet"/>
994        <!--====================================================================== -->
995        <complexType name="TrajectoryCoverageType">
996                <complexContent>
997                        <restriction base="gml:AbstractDiscreteCoverageType">
998                                <sequence>
999                                        <group ref="gml:StandardObjectProperties"/>
1000                                        <element ref="gml:boundedBy" minOccurs="0"/>
1001                                        <element ref="csml:trajectoryDomain"/>
1002                                        <element ref="gml:rangeSet"/>
1003                                        <element ref="gml:coverageFunction" minOccurs="0"/>
1004                                </sequence>
1005                        </restriction>
1006                </complexContent>
1007        </complexType>
1008        <element name="TrajectoryCoverage" type="csml:TrajectoryCoverageType" substitutionGroup="gml:AbstractDiscreteCoverage"/>
1009        <complexType name="TrajectoryCoveragePropertyType">
1010                <sequence>
1011                        <element ref="csml:TrajectoryCoverage"/>
1012                </sequence>
1013                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
1014        </complexType>
1015        <!--====================================================================== -->
1016        <complexType name="TrajectoryFeatureType">
1017                <complexContent>
1018                        <extension base="gml:AbstractFeatureType">
1019                                <sequence>
1020                                        <element name="value" type="csml:TrajectoryCoveragePropertyType"/>
1021                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
1022                                </sequence>
1023                        </extension>
1024                </complexContent>
1025        </complexType>
1026        <element name="TrajectoryFeature" type="csml:TrajectoryFeatureType" substitutionGroup="gml:AbstractFeature"/>
1027        <complexType name="TrajectoryFeaturePropertyType">
1028                <sequence>
1029                        <element ref="csml:TrajectoryFeature"/>
1030                </sequence>
1031                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
1032        </complexType>
1033        <!--====================================================================== -->
1034</schema>
Note: See TracBrowser for help on using the repository browser.