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

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

Initial draft schemas complete, UML modelling changes to {Ragged}Section, ScanningRadar? & Swath.

  • 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:swe="http://www.opengis.net/swe" xmlns:gml="http://www.opengis.net/gml" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:csml="http://ndg.nerc.ac.uk/csml" 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:TimeInstantPropertyType"/>
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 timePositonList. 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                                        <sequence>
213                                                <group ref="gml:StandardObjectProperties"/>
214                                        </sequence>
215                                        <sequence>
216                                                <element name="limits" type="gml:GridLimitsType"/>
217                                                <choice>
218                                                        <element name="axisLabels" type="gml:NCNameList"/>
219                                                        <element name="axisName" type="string" maxOccurs="unbounded"/>
220                                                </choice>
221                                        </sequence>
222                                        <sequence>
223                                                <element name="coordTransformTable" type="csml:GridCoordinatesTablePropertyType"/>
224                                        </sequence>
225                                </sequence>
226                        </restriction>
227                </complexContent>
228        </complexType>
229        <element name="GridSeriesDomain" type="csml:GridSeriesDomainType" substitutionGroup="csml:ReferenceableGrid"/>
230        <complexType name="GridSeriesDomainPropertyType">
231                <sequence>
232                        <element ref="csml:GridSeriesDomain"/>
233                </sequence>
234                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
235        </complexType>
236        <!--====================================================================== -->
237        <complexType name="GridSeriesCoverageDomainType">
238                <complexContent>
239                        <restriction base="gml:GridDomainType">
240                                <sequence minOccurs="0">
241                                        <element ref="csml:GridSeriesDomain"/>
242                                </sequence>
243                        </restriction>
244                </complexContent>
245        </complexType>
246        <element name="gridSeriesDomain" type="csml:GridSeriesCoverageDomainType" substitutionGroup="gml:gridDomain"/>
247        <!--====================================================================== -->
248        <complexType name="GridSeriesCoverageType">
249                <complexContent>
250                        <restriction base="gml:GridCoverageType">
251                                <sequence>
252                                        <group ref="gml:StandardObjectProperties"/>
253                                        <element ref="gml:boundedBy" minOccurs="0"/>
254                                        <element ref="csml:gridSeriesDomain"/>
255                                        <element ref="gml:rangeSet"/>
256                                        <element ref="gml:coverageFunction" minOccurs="0"/>
257                                </sequence>
258                        </restriction>
259                </complexContent>
260        </complexType>
261        <element name="GridSeriesCoverage" type="csml:GridSeriesCoverageType" substitutionGroup="gml:GridCoverage"/>
262        <complexType name="GridSeriesCoveragePropertyType">
263                <sequence>
264                        <element ref="csml:GridSeriesCoverage"/>
265                </sequence>
266                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
267        </complexType>
268        <!--====================================================================== -->
269        <complexType name="GridSeriesFeatureType">
270                <complexContent>
271                        <extension base="gml:AbstractFeatureType">
272                                <sequence>
273                                        <element name="value" type="csml:GridSeriesCoveragePropertyType"/>
274                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
275                                </sequence>
276                        </extension>
277                </complexContent>
278        </complexType>
279        <element name="GridSeriesFeature" type="csml:GridSeriesFeatureType" substitutionGroup="gml:AbstractFeature"/>
280        <complexType name="GridSeriesFeaturePropertyType">
281                <sequence>
282                        <element ref="csml:GridSeriesFeature"/>
283                </sequence>
284                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
285        </complexType>
286        <!--====================================================================== -->
287        <!--====================================================================== -->
288        <!--==== CSML PointCollection Feature Type ====-->
289        <!--====================================================================== -->
290        <complexType name="PointCollectionFeatureType">
291                <complexContent>
292                        <extension base="gml:AbstractFeatureType">
293                                <sequence>
294                                        <element name="time" type="gml:TimeInstantPropertyType"/>
295                                        <element name="value">
296                                                <complexType>
297                                                        <sequence>
298                                                                <element ref="gml:MultiPointCoverage"/>
299                                                        </sequence>
300                                                </complexType>
301                                        </element>
302                                </sequence>
303                        </extension>
304                </complexContent>
305        </complexType>
306        <element name="PointCollectionFeature" type="csml:PointCollectionFeatureType" substitutionGroup="gml:AbstractFeature"/>
307        <complexType name="PointCollectionFeaturePropertyType">
308                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
309        </complexType>
310        <!--====================================================================== -->
311        <!--====================================================================== -->
312        <!--==== CSML Point Feature Type ====-->
313        <!--====================================================================== -->
314        <complexType name="PointDomainType">
315                <annotation>
316                        <documentation>Restricts a gml:MultiPoint to having a single pointMember.</documentation>
317                </annotation>
318                <complexContent>
319                        <restriction base="gml:MultiPointType">
320                                <sequence>
321                                        <group ref="gml:StandardObjectProperties"/>
322                                        <element ref="gml:pointMember" minOccurs="0"/>
323                                </sequence>
324                        </restriction>
325                </complexContent>
326        </complexType>
327        <element name="PointDomain" type="csml:PointDomainType" substitutionGroup="gml:MultiPoint"/>
328        <complexType name="PointDomainPropertyType">
329                <sequence>
330                        <element ref="csml:PointDomain"/>
331                </sequence>
332                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
333        </complexType>
334        <!--====================================================================== -->
335        <complexType name="PointCoverageDomainType">
336                <complexContent>
337                        <restriction base="gml:MultiPointDomainType">
338                                <sequence minOccurs="0">
339                                        <element ref="csml:PointDomain"/>
340                                </sequence>
341                        </restriction>
342                </complexContent>
343        </complexType>
344        <element name="pointDomain" type="csml:PointCoverageDomainType" substitutionGroup="gml:multiPointDomain"/>
345        <!--====================================================================== -->
346        <complexType name="PointCoverageType">
347                <complexContent>
348                        <restriction base="gml:MultiPointCoverageType">
349                                <sequence>
350                                        <group ref="gml:StandardObjectProperties"/>
351                                        <element ref="gml:boundedBy" minOccurs="0"/>
352                                        <element ref="csml:pointDomain"/>
353                                        <element ref="gml:rangeSet"/>
354                                        <element ref="gml:coverageFunction" minOccurs="0"/>
355                                </sequence>
356                        </restriction>
357                </complexContent>
358        </complexType>
359        <element name="PointCoverage" type="csml:PointCoverageType" substitutionGroup="gml:MultiPointCoverage"/>
360        <complexType name="PointCoveragePropertyType">
361                <sequence>
362                        <element ref="csml:PointCoverage"/>
363                </sequence>
364                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
365        </complexType>
366        <!--====================================================================== -->
367        <complexType name="PointFeatureType">
368                <complexContent>
369                        <extension base="gml:AbstractFeatureType">
370                                <sequence>
371                                        <element name="location" type="gml:PointPropertyType"/>
372                                        <element name="time" type="gml:TimeInstantPropertyType" minOccurs="0"/>
373                                        <element name="value" type="csml:PointCoveragePropertyType"/>
374                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
375                                </sequence>
376                        </extension>
377                </complexContent>
378        </complexType>
379        <element name="PointFeature" type="csml:PointFeatureType" substitutionGroup="gml:AbstractFeature"/>
380        <complexType name="PointFeaturePropertyType">
381                <sequence>
382                        <element ref="csml:PointFeature"/>
383                </sequence>
384                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
385        </complexType>
386        <!--====================================================================== -->
387        <!--====================================================================== -->
388        <!--==== Alternate Point Feature Type ====-->
389        <!--====================================================================== -->
390        <complexType name="AlternatePointDomainType">
391                <complexContent>
392                        <restriction base="gml:DomainSetType">
393                                <sequence minOccurs="0">
394                                        <element ref="gml:Point"/>
395                                </sequence>
396                        </restriction>
397                </complexContent>
398        </complexType>
399        <element name="alternatePointDomain" type="csml:AlternatePointDomainType" substitutionGroup="gml:domainSet"/>
400        <!--====================================================================== -->
401        <complexType name="AlternatePointCoverageType">
402                <complexContent>
403                        <restriction base="gml:AbstractDiscreteCoverageType">
404                                <sequence>
405                                        <group ref="gml:StandardObjectProperties"/>
406                                        <element ref="gml:boundedBy" minOccurs="0"/>
407                                        <element ref="gml:location" minOccurs="0"/>
408                                        <element ref="csml:alternatePointDomain"/>
409                                        <element ref="gml:rangeSet"/>
410                                        <element ref="gml:coverageFunction" minOccurs="0"/>
411                                </sequence>
412                        </restriction>
413                </complexContent>
414        </complexType>
415        <element name="AlternatePointCoverage" type="csml:AlternatePointCoverageType" substitutionGroup="gml:AbstractDiscreteCoverage"/>
416        <complexType name="AlternatePointCoveragePropertyType">
417                <sequence>
418                        <element ref="csml:AlternatePointCoverage"/>
419                </sequence>
420        </complexType>
421        <!--====================================================================== -->
422        <complexType name="AlternatePointFeatureType">
423                <complexContent>
424                        <extension base="gml:AbstractFeatureType">
425                                <sequence>
426                                        <element name="location" type="gml:PointPropertyType"/>
427                                        <element name="time" type="gml:TimeInstantPropertyType" minOccurs="0"/>
428                                        <element name="value" type="csml:AlternatePointCoveragePropertyType"/>
429                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
430                                </sequence>
431                        </extension>
432                </complexContent>
433        </complexType>
434        <element name="AlternatePointFeature" type="csml:AlternatePointFeatureType" substitutionGroup="gml:AbstractFeature"/>
435        <complexType name="AlternatePointFeaturePropertyType">
436                <sequence>
437                        <element ref="csml:AlternatePointFeature"/>
438                </sequence>
439                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
440        </complexType>
441        <!--====================================================================== -->
442        <!--====================================================================== -->
443        <!--==== CSML PointSeries Feature Type ====-->
444        <!--====================================================================== -->
445        <complexType name="TimeSeriesDomainType">
446                <complexContent>
447                        <extension base="gml:AbstractTimeComplexType">
448                                <sequence>
449                                        <element ref="csml:timePositionList"/>
450                                </sequence>
451                        </extension>
452                </complexContent>
453        </complexType>
454        <element name="TimeSeriesDomain" type="csml:TimeSeriesDomainType" substitutionGroup="gml:AbstractTimeComplex"/>
455        <complexType name="TimeSeriesDomainPropertyType">
456                <sequence>
457                        <element ref="csml:TimeSeriesDomain"/>
458                </sequence>
459                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
460        </complexType>
461        <!--====================================================================== -->
462        <complexType name="PointSeriesCoverageDomainType">
463                <complexContent>
464                        <restriction base="gml:DomainSetType">
465                                <sequence minOccurs="0">
466                                        <element ref="csml:TimeSeriesDomain"/>
467                                </sequence>
468                        </restriction>
469                </complexContent>
470        </complexType>
471        <element name="pointSeriesDomain" type="csml:PointSeriesCoverageDomainType" substitutionGroup="gml:domainSet"/>
472        <!--====================================================================== -->
473        <complexType name="PointSeriesCoverageType">
474                <complexContent>
475                        <restriction base="gml:AbstractDiscreteCoverageType">
476                                <sequence>
477                                        <group ref="gml:StandardObjectProperties"/>
478                                        <element ref="gml:boundedBy" minOccurs="0"/>
479                                        <element ref="gml:location" minOccurs="0"/>
480                                        <element ref="csml:pointSeriesDomain"/>
481                                        <element ref="gml:rangeSet"/>
482                                        <element ref="gml:coverageFunction" minOccurs="0"/>
483                                </sequence>
484                        </restriction>
485                </complexContent>
486        </complexType>
487        <element name="PointSeriesCoverage" type="csml:PointSeriesCoverageType" substitutionGroup="gml:AbstractDiscreteCoverage"/>
488        <complexType name="PointSeriesCoveragePropertyType">
489                <sequence>
490                        <element ref="csml:PointSeriesCoverage"/>
491                </sequence>
492                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
493        </complexType>
494        <!--====================================================================== -->
495        <complexType name="PointSeriesFeatureType">
496                <complexContent>
497                        <extension base="gml:AbstractFeatureType">
498                                <sequence>
499                                        <element name="location" type="gml:PointPropertyType" minOccurs="0"/>
500                                        <element name="value" type="csml:PointSeriesCoveragePropertyType"/>
501                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
502                                </sequence>
503                        </extension>
504                </complexContent>
505        </complexType>
506        <element name="PointSeriesFeature" type="csml:PointSeriesFeatureType" substitutionGroup="gml:AbstractFeature"/>
507        <complexType name="PointSeriesFeaturePropertyType">
508                <sequence>
509                        <element ref="csml:PointSeriesFeature"/>
510                </sequence>
511                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
512        </complexType>
513        <!--====================================================================== -->
514        <!--====================================================================== -->
515        <!--==== CSML Profile Feature Type ====-->
516        <!--====================================================================== -->
517        <complexType name="ProfileDomainType">
518                <annotation>
519                        <documentation>Constrains a gml:MultiPoint to a vertical line of points. The associated CRS should be a valid subtype of gml:VerticalCRS.</documentation>
520                </annotation>
521                <complexContent>
522                        <restriction base="gml:MultiPointType">
523                                <sequence>
524                                        <sequence>
525                                                <group ref="gml:StandardObjectProperties"/>
526                                        </sequence>
527                                        <sequence>
528                                                <element ref="gml:pointMember" minOccurs="0" maxOccurs="unbounded"/>
529                                                <element ref="gml:pointMembers" minOccurs="0"/>
530                                        </sequence>
531                                </sequence>
532                                <attribute name="srsDimension" fixed="1"/>
533                        </restriction>
534                </complexContent>
535        </complexType>
536        <element name="ProfileDomain" type="csml:ProfileDomainType" substitutionGroup="gml:MultiPoint"/>
537        <complexType name="ProfileDomainPropertyType">
538                <sequence>
539                        <element ref="csml:ProfileDomain"/>
540                </sequence>
541                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
542        </complexType>
543        <!--====================================================================== -->
544        <complexType name="ProfileCoverageDomainType">
545                <complexContent>
546                        <restriction base="gml:MultiPointDomainType">
547                                <sequence minOccurs="0">
548                                        <element ref="csml:ProfileDomain"/>
549                                </sequence>
550                        </restriction>
551                </complexContent>
552        </complexType>
553        <element name="profileDomain" type="csml:ProfileCoverageDomainType" substitutionGroup="gml:multiPointDomain"/>
554        <!--====================================================================== -->
555        <complexType name="ProfileCoverageType">
556                <complexContent>
557                        <restriction base="gml:MultiPointCoverageType">
558                                <sequence>
559                                        <group ref="gml:StandardObjectProperties"/>
560                                        <element ref="gml:boundedBy" minOccurs="0"/>
561                                        <element ref="csml:profileDomain"/>
562                                        <element ref="gml:rangeSet"/>
563                                        <element ref="gml:coverageFunction" minOccurs="0"/>
564                                </sequence>
565                        </restriction>
566                </complexContent>
567        </complexType>
568        <element name="ProfileCoverage" type="csml:ProfileCoverageType" substitutionGroup="gml:MultiPointCoverage"/>
569        <complexType name="ProfileCoveragePropertyType">
570                <sequence>
571                        <element ref="csml:ProfileCoverage"/>
572                </sequence>
573                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
574        </complexType>
575        <!--====================================================================== -->
576        <complexType name="ProfileFeatureType">
577                <complexContent>
578                        <extension base="gml:AbstractFeatureType">
579                                <sequence>
580                                        <element name="location" type="gml:PointPropertyType" minOccurs="0"/>
581                                        <element name="time" type="gml:TimeInstantPropertyType" minOccurs="0"/>
582                                        <element name="value" type="csml:ProfileCoveragePropertyType"/>
583                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
584                                </sequence>
585                        </extension>
586                </complexContent>
587        </complexType>
588        <element name="ProfileFeature" type="csml:ProfileFeatureType" substitutionGroup="gml:AbstractFeature"/>
589        <complexType name="ProfileFeaturePropertyType">
590                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
591        </complexType>
592        <!--====================================================================== -->
593        <!--====================================================================== -->
594        <!--==== CSML ProfileSeries Feature Type ====-->
595        <!--====================================================================== -->
596        <complexType name="ProfileSeriesDomainType">
597                <annotation>
598                        <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>
599                </annotation>
600                <complexContent>
601                        <restriction base="csml:ReferenceableGridType">
602                                <sequence>
603                                        <sequence>
604                                                <group ref="gml:StandardObjectProperties"/>
605                                        </sequence>
606                                        <sequence>
607                                                <element name="limits" type="gml:GridLimitsType"/>
608                                                <choice>
609                                                        <element name="axisLabels" type="gml:NCNameList"/>
610                                                        <element name="axisName" type="string" maxOccurs="unbounded"/>
611                                                </choice>
612                                        </sequence>
613                                        <sequence>
614                                                <element name="coordTransformTable" type="csml:GridCoordinatesTablePropertyType"/>
615                                        </sequence>
616                                </sequence>
617                                <attribute name="srsDimension" fixed="2"/>
618                                <attribute name="dimension" fixed="2"/>
619                        </restriction>
620                </complexContent>
621        </complexType>
622        <element name="ProfileSeriesDomain" type="csml:ProfileSeriesDomainType" substitutionGroup="csml:ReferenceableGrid"/>
623        <complexType name="ProfileSeriesDomainPropertyType">
624                <sequence>
625                        <element ref="csml:ProfileSeriesDomain"/>
626                </sequence>
627                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
628        </complexType>
629        <!--====================================================================== -->
630        <complexType name="ProfileSeriesCoverageDomainType">
631                <complexContent>
632                        <restriction base="gml:GridDomainType">
633                                <sequence minOccurs="0">
634                                        <element ref="csml:ProfileSeriesDomain"/>
635                                </sequence>
636                        </restriction>
637                </complexContent>
638        </complexType>
639        <element name="profileSeriesDomain" type="csml:ProfileSeriesCoverageDomainType" substitutionGroup="gml:gridDomain"/>
640        <!--====================================================================== -->
641        <complexType name="ProfileSeriesCoverageType">
642                <complexContent>
643                        <restriction base="gml:GridCoverageType">
644                                <sequence>
645                                        <group ref="gml:StandardObjectProperties"/>
646                                        <element ref="gml:boundedBy" minOccurs="0"/>
647                                        <element ref="csml:profileSeriesDomain"/>
648                                        <element ref="gml:rangeSet"/>
649                                        <element ref="gml:coverageFunction" minOccurs="0"/>
650                                </sequence>
651                        </restriction>
652                </complexContent>
653        </complexType>
654        <element name="ProfileSeriesCoverage" type="csml:ProfileSeriesCoverageType" substitutionGroup="gml:GridCoverage"/>
655        <complexType name="ProfileSeriesCoveragePropertyType">
656                <sequence>
657                        <element ref="csml:ProfileSeriesCoverage"/>
658                </sequence>
659                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
660        </complexType>
661        <!--====================================================================== -->
662        <complexType name="ProfileSeriesFeatureType">
663                <complexContent>
664                        <extension base="gml:AbstractFeatureType">
665                                <sequence>
666                                        <element name="location" type="gml:PointPropertyType" minOccurs="0"/>
667                                        <element name="value" type="csml:ProfileSeriesCoveragePropertyType"/>
668                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
669                                </sequence>
670                        </extension>
671                </complexContent>
672        </complexType>
673        <element name="ProfileSeriesFeature" type="csml:ProfileSeriesFeatureType" substitutionGroup="gml:AbstractFeature"/>
674        <complexType name="ProfileSeriesFeaturePropertyType">
675                <sequence>
676                        <element ref="csml:ProfileSeriesFeature"/>
677                </sequence>
678                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
679        </complexType>
680        <!--====================================================================== -->
681        <!--====================================================================== -->
682        <!--==== CSML RaggedProfileSeries Feature Type ====-->
683        <!--====================================================================== -->
684        <complexType name="RaggedProfileSeriesFeatureType">
685                <complexContent>
686                        <extension base="gml:AbstractFeatureType">
687                                <sequence>
688                                        <element name="location" type="gml:PointPropertyType" minOccurs="0"/>
689                                        <element name="profileLength">
690                                                <simpleType>
691                                                        <list itemType="int"/>
692                                                </simpleType>
693                                        </element>
694                                        <element name="value" type="csml:ProfileSeriesCoveragePropertyType"/>
695                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
696                                </sequence>
697                        </extension>
698                </complexContent>
699        </complexType>
700        <element name="RaggedProfileSeriesFeature" type="csml:RaggedProfileSeriesFeatureType" substitutionGroup="gml:AbstractFeature"/>
701        <complexType name="RaggedProfileSeriesFeaturePropertyType">
702                <sequence>
703                        <element ref="csml:ProfileSeriesFeature"/>
704                </sequence>
705                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
706        </complexType>
707        <!--====================================================================== -->
708        <!--====================================================================== -->
709        <!--==== CSML RaggedSection Feature Type ====-->
710        <!--====================================================================== -->
711        <complexType name="RaggedSectionFeatureType">
712                <complexContent>
713                        <extension base="gml:AbstractFeatureType">
714                                <sequence>
715                                        <group ref="gml:geometricPositionListGroup"/>
716                                        <element ref="csml:timePositionList"/>
717                                        <element name="profileLength">
718                                                <simpleType>
719                                                        <list itemType="int"/>
720                                                </simpleType>
721                                        </element>
722                                        <element name="value" type="csml:SectionCoveragePropertyType"/>
723                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
724                                </sequence>
725                        </extension>
726                </complexContent>
727        </complexType>
728        <element name="RaggedSectionFeature" type="csml:RaggedSectionFeatureType" substitutionGroup="gml:AbstractFeature"/>
729        <complexType name="RaggedSectionFeaturePropertyType">
730                <sequence>
731                        <element ref="csml:RaggedSectionFeature"/>
732                </sequence>
733                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
734        </complexType>
735        <!--====================================================================== -->
736        <!--====================================================================== -->
737        <!--==== CSML ScanningRadar Feature Type ====-->
738        <!--====================================================================== -->
739        <element name="polarCS" substitutionGroup="gml:coordinateSystem">
740                <complexType>
741                        <complexContent>
742                                <restriction base="gml:CoordinateSystemPropertyType">
743                                        <sequence minOccurs="0">
744                                                <element ref="gml:PolarCS"/>
745                                        </sequence>
746                                </restriction>
747                        </complexContent>
748                </complexType>
749        </element>
750        <element name="azimuthRangeDatum" substitutionGroup="gml:engineeringDatum">
751                <complexType>
752                        <complexContent>
753                                <restriction base="gml:EngineeringDatumPropertyType">
754                                        <sequence minOccurs="0">
755                                                <element ref="gml:EngineeringDatum"/>
756                                        </sequence>
757                                </restriction>
758                        </complexContent>
759                </complexType>
760        </element>
761        <complexType name="AzimuthRangeCRSType">
762                <complexContent>
763                        <restriction base="gml:EngineeringCRSType">
764                                <sequence>
765                                        <sequence>
766                                                <element ref="gml:metaDataProperty" minOccurs="0" maxOccurs="unbounded"/>
767                                                <element ref="gml:description" minOccurs="0"/>
768                                                <element ref="gml:descriptionReference" minOccurs="0"/>
769                                                <element ref="gml:identifier"/>
770                                                <element ref="gml:name" minOccurs="0" maxOccurs="unbounded"/>
771                                        </sequence>
772                                        <sequence>
773                                                <element ref="gml:remarks" minOccurs="0"/>
774                                        </sequence>
775                                        <sequence>
776                                                <element ref="gml:domainOfValidity" minOccurs="0" maxOccurs="unbounded"/>
777                                                <element ref="gml:scope" maxOccurs="unbounded"/>
778                                        </sequence>
779                                        <sequence>
780                                                <element ref="csml:polarCS"/>
781                                                <element ref="csml:azimuthRangeDatum"/>
782                                        </sequence>
783                                </sequence>
784                        </restriction>
785                </complexContent>
786        </complexType>
787        <!--====================================================================== -->
788        <complexType name="ScanningRadarDomainType">
789                <annotation>
790                        <documentation>The SC_CRS to which this is associated (through the gml:srsName attribute) should be an AzimuthRangeCRS.</documentation>
791                </annotation>
792                <complexContent>
793                        <restriction base="csml:ReferenceableGridType">
794                                <sequence>
795                                        <sequence>
796                                                <group ref="gml:StandardObjectProperties"/>
797                                        </sequence>
798                                        <sequence>
799                                                <element name="limits" type="gml:GridLimitsType"/>
800                                                <choice>
801                                                        <element name="axisLabels" type="gml:NCNameList"/>
802                                                        <element name="axisName" type="string" maxOccurs="unbounded"/>
803                                                </choice>
804                                        </sequence>
805                                        <sequence>
806                                                <element name="coordTransformTable" type="csml:GridCoordinatesTablePropertyType"/>
807                                        </sequence>
808                                </sequence>
809                                <attribute name="dimension" fixed="2"/>
810                                <attribute name="srsDimension" fixed="2"/>
811                        </restriction>
812                </complexContent>
813        </complexType>
814        <element name="ScanningRadarDomain" type="csml:ScanningRadarDomainType" substitutionGroup="csml:ReferenceableGrid"/>
815        <complexType name="ScanningRadarDomainPropertyType">
816                <sequence>
817                        <element ref="csml:ScanningRadarDomain"/>
818                </sequence>
819                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
820        </complexType>
821        <!--====================================================================== -->
822        <complexType name="ScanningRadarCoverageDomainType">
823                <complexContent>
824                        <restriction base="gml:GridDomainType">
825                                <sequence minOccurs="0">
826                                        <element ref="csml:ScanningRadarDomain"/>
827                                </sequence>
828                        </restriction>
829                </complexContent>
830        </complexType>
831        <element name="scanningRadarDomain" type="csml:ScanningRadarCoverageDomainType" substitutionGroup="gml:gridDomain"/>
832        <!--====================================================================== -->
833        <complexType name="ScanningRadarCoverageType">
834                <complexContent>
835                        <restriction base="gml:GridCoverageType">
836                                <sequence>
837                                        <group ref="gml:StandardObjectProperties"/>
838                                        <element ref="gml:boundedBy" minOccurs="0"/>
839                                        <element ref="csml:scanningRadarDomain"/>
840                                        <element ref="gml:rangeSet"/>
841                                        <element ref="gml:coverageFunction" minOccurs="0"/>
842                                </sequence>
843                        </restriction>
844                </complexContent>
845        </complexType>
846        <element name="ScanningRadarCoverage" type="csml:ScanningRadarCoverageType" substitutionGroup="gml:GridCoverage"/>
847        <complexType name="ScanningRadarCoveragePropertyType">
848                <sequence>
849                        <element ref="csml:ScanningRadarCoverage"/>
850                </sequence>
851                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
852        </complexType>
853        <!--====================================================================== -->
854        <complexType name="ScanningRadarFeatureType">
855                <complexContent>
856                        <extension base="gml:AbstractFeatureType">
857                                <sequence>
858                                        <element name="elevation" type="gml:AngleType"/>
859                                        <element name="value" type="csml:ScanningRadarCoveragePropertyType"/>
860                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
861                                </sequence>
862                        </extension>
863                </complexContent>
864        </complexType>
865        <!--====================================================================== -->
866        <!--====================================================================== -->
867        <!--==== CSML Section Feature Type ====-->
868        <!--====================================================================== -->
869        <complexType name="SectionDomainType">
870                <complexContent>
871                        <restriction base="csml:ReferenceableGridType">
872                                <sequence>
873                                        <sequence>
874                                                <group ref="gml:StandardObjectProperties"/>
875                                        </sequence>
876                                        <sequence>
877                                                <element name="limits" type="gml:GridLimitsType"/>
878                                                <choice>
879                                                        <element name="axisLabels" type="gml:NCNameList"/>
880                                                        <element name="axisName" type="string" maxOccurs="unbounded"/>
881                                                </choice>
882                                        </sequence>
883                                        <sequence>
884                                                <element name="coordTransformTable" type="csml:GridCoordinatesTablePropertyType"/>
885                                        </sequence>
886                                </sequence>
887                                <attribute name="dimension" fixed="2"/>
888                                <attribute name="srsDimension" fixed="3"/>
889                        </restriction>
890                </complexContent>
891        </complexType>
892        <element name="SectionDomain" type="csml:SectionDomainType" substitutionGroup="csml:ReferenceableGrid"/>
893        <complexType name="SectionDomainPropertyType">
894                <sequence>
895                        <element ref="csml:SectionDomain"/>
896                </sequence>
897                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
898        </complexType>
899        <!--====================================================================== -->
900        <complexType name="SectionCoverageDomainType">
901                <complexContent>
902                        <restriction base="gml:GridDomainType">
903                                <sequence minOccurs="0">
904                                        <element ref="csml:SectionDomain"/>
905                                </sequence>
906                        </restriction>
907                </complexContent>
908        </complexType>
909        <element name="sectionDomain" type="csml:SectionCoverageDomainType" substitutionGroup="gml:gridDomain"/>
910        <!--====================================================================== -->
911        <complexType name="SectionCoverageType">
912                <complexContent>
913                        <restriction base="gml:GridCoverageType">
914                                <sequence>
915                                        <group ref="gml:StandardObjectProperties"/>
916                                        <element ref="gml:boundedBy" minOccurs="0"/>
917                                        <element ref="csml:sectionDomain"/>
918                                        <element ref="gml:rangeSet"/>
919                                        <element ref="gml:coverageFunction" minOccurs="0"/>
920                                </sequence>
921                        </restriction>
922                </complexContent>
923        </complexType>
924        <element name="SectionCoverage" type="csml:SectionCoverageType" substitutionGroup="gml:GridCoverage"/>
925        <complexType name="SectionCoveragePropertyType">
926                <sequence>
927                        <element ref="csml:SectionCoverage"/>
928                </sequence>
929                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
930        </complexType>
931        <!--====================================================================== -->
932        <complexType name="SectionFeatureType">
933                <complexContent>
934                        <extension base="gml:AbstractFeatureType">
935                                <sequence>
936                                        <group ref="gml:geometricPositionListGroup"/>
937                                        <element ref="csml:timePositionList"/>
938                                        <element name="value" type="csml:SectionCoveragePropertyType"/>
939                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
940                                </sequence>
941                        </extension>
942                </complexContent>
943        </complexType>
944        <element name="SectionFeature" type="csml:SectionFeatureType" substitutionGroup="gml:AbstractFeature"/>
945        <complexType name="SectionFeaturePropertyType">
946                <sequence>
947                        <element ref="csml:SectionFeature"/>
948                </sequence>
949                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
950        </complexType>
951        <!--====================================================================== -->
952        <!--====================================================================== -->
953        <!--==== CSML Swath Feature Type ====-->
954        <!--====================================================================== -->
955        <complexType name="SwathFeatureType">
956                <complexContent>
957                        <extension base="gml:AbstractFeatureType">
958                                <sequence>
959                                        <element name="eqCrossLon" type="double" minOccurs="0"/>
960                                        <element name="eqCrossTime" type="gml:TimePositionType" minOccurs="0"/>
961                                        <element name="value" type="csml:ReferenceableGridCoveragePropertyType"/>
962                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
963                                </sequence>
964                        </extension>
965                </complexContent>
966        </complexType>
967        <element name="SwathFeature" type="csml:SwathFeatureType" substitutionGroup="gml:AbstractFeature"/>
968        <complexType name="SwathFeaturePropertyType">
969                <sequence>
970                        <element ref="csml:SwathFeature"/>
971                </sequence>
972                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
973        </complexType>
974        <!--====================================================================== -->
975        <!--====================================================================== -->
976        <!--==== CSML Trajectory Feature Type ====-->
977        <!--====================================================================== -->
978        <complexType name="TrajectoryDomainType">
979                <complexContent>
980                        <restriction base="csml:ReferenceableGridType">
981                                <sequence>
982                                        <sequence>
983                                                <group ref="gml:StandardObjectProperties"/>
984                                        </sequence>
985                                        <sequence>
986                                                <element name="limits" type="gml:GridLimitsType"/>
987                                                <choice>
988                                                        <element name="axisLabels" type="gml:NCNameList"/>
989                                                        <element name="axisName" type="string" maxOccurs="unbounded"/>
990                                                </choice>
991                                        </sequence>
992                                        <sequence>
993                                                <element name="coordTransformTable" type="csml:GridCoordinatesTablePropertyType"/>
994                                        </sequence>
995                                </sequence>
996                                <attribute name="dimension" fixed="1"/>
997                        </restriction>
998                </complexContent>
999        </complexType>
1000        <element name="TrajectoryDomain" type="csml:TrajectoryDomainType" substitutionGroup="csml:ReferenceableGrid"/>
1001        <complexType name="TrajectoryDomainPropertyType">
1002                <sequence>
1003                        <element ref="csml:TrajectoryDomain"/>
1004                </sequence>
1005                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
1006        </complexType>
1007        <!--====================================================================== -->
1008        <complexType name="TrajectoryCoverageDomainType">
1009                <complexContent>
1010                        <restriction base="gml:DomainSetType">
1011                                <sequence minOccurs="0">
1012                                        <element ref="csml:TrajectoryDomain"/>
1013                                </sequence>
1014                        </restriction>
1015                </complexContent>
1016        </complexType>
1017        <element name="trajectoryDomain" type="csml:TrajectoryCoverageDomainType" substitutionGroup="gml:domainSet"/>
1018        <!--====================================================================== -->
1019        <complexType name="TrajectoryCoverageType">
1020                <complexContent>
1021                        <restriction base="gml:AbstractDiscreteCoverageType">
1022                                <sequence>
1023                                        <group ref="gml:StandardObjectProperties"/>
1024                                        <element ref="gml:boundedBy" minOccurs="0"/>
1025                                        <element ref="gml:location" minOccurs="0"/>
1026                                        <element ref="csml:trajectoryDomain"/>
1027                                        <element ref="gml:rangeSet"/>
1028                                        <element ref="gml:coverageFunction" minOccurs="0"/>
1029                                </sequence>
1030                        </restriction>
1031                </complexContent>
1032        </complexType>
1033        <element name="TrajectoryCoverage" type="csml:TrajectoryCoverageType" substitutionGroup="gml:AbstractDiscreteCoverage"/>
1034        <complexType name="TrajectoryCoveragePropertyType">
1035                <sequence>
1036                        <element ref="csml:TrajectoryCoverage"/>
1037                </sequence>
1038                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
1039        </complexType>
1040        <!--====================================================================== -->
1041        <complexType name="TrajectoryFeatureType">
1042                <complexContent>
1043                        <extension base="gml:AbstractFeatureType">
1044                                <sequence>
1045                                        <element name="value" type="csml:TrajectoryCoveragePropertyType"/>
1046                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
1047                                </sequence>
1048                        </extension>
1049                </complexContent>
1050        </complexType>
1051        <element name="TrajectoryFeature" type="csml:TrajectoryFeatureType" substitutionGroup="gml:AbstractFeature"/>
1052        <complexType name="TrajectoryFeaturePropertyType">
1053                <sequence>
1054                        <element ref="csml:TrajectoryFeature"/>
1055                </sequence>
1056        </complexType>
1057        <!--====================================================================== -->
1058</schema>
Note: See TracBrowser for help on using the repository browser.