source: TI02-CSML/trunk/XMLSchemas/csmlMain.xsd @ 2309

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/TI02-CSML/trunk/XMLSchemas/csmlMain.xsd@2309
Revision 2309, 53.0 KB checked in by awoolf, 13 years ago (diff)

Added new implementation of ProfileFeature?, providing an efficient encoding for the coverage domain through an alternative implementation (CSMLMultiPoint) of the ISO 19107 GM_MultiPoint.

  • 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        <!--==== CSML 'dataset' types ====-->
10        <!--====================================================================== -->
11        <!--====================================================================== -->
12        <complexType name="CSMLFeatureCollectionType">
13                <annotation>
14                        <documentation>This is the base type or a CSML Feature Collection (ref GML 3.2, sections 9.1.10.1 and 22.3.3).</documentation>
15                </annotation>
16                <complexContent>
17                        <extension base="gml:AbstractFeatureType">
18                                <sequence>
19                                        <element name="crsDictionary" minOccurs="0">
20                                                <complexType>
21                                                        <sequence>
22                                                                <element ref="gml:Dictionary"/>
23                                                        </sequence>
24                                                </complexType>
25                                        </element>
26                                        <element name="phenomenonDictionary" minOccurs="0">
27                                                <complexType>
28                                                        <sequence>
29                                                                <element ref="gml:Dictionary"/>
30                                                        </sequence>
31                                                </complexType>
32                                        </element>
33                                        <element name="uomDictionary" minOccurs="0">
34                                                <complexType>
35                                                        <sequence>
36                                                                <element ref="gml:Dictionary"/>
37                                                        </sequence>
38                                                </complexType>
39                                        </element>
40                                        <element name="featureMember" minOccurs="0" maxOccurs="unbounded">
41                                                <complexType>
42                                                        <complexContent>
43                                                                <extension base="gml:AbstractFeatureMemberType">
44                                                                        <sequence>
45                                                                                <element ref="gml:AbstractFeature"/>
46                                                                        </sequence>
47                                                                </extension>
48                                                        </complexContent>
49                                                </complexType>
50                                        </element>
51                                </sequence>
52                                <attributeGroup ref="gml:AggregationAttributeGroup"/>
53                        </extension>
54                </complexContent>
55        </complexType>
56        <element name="CSMLFeatureCollection" type="csml:CSMLFeatureCollectionType"/>
57        <!--====================================================================== -->
58        <!--====================================================================== -->
59        <!--==== Utility types ====-->
60        <!--====================================================================== -->
61        <!--====================================================================== -->
62        <!--==== ReferenceableGrid ==== -->
63        <!--====================================================================== -->
64        <annotation>
65                <documentation>TimeValueList and TimePositionListType based on the obvious extensions of GML TimePositionUnion and TimePositionType, and identical to the equivalents in SWE.</documentation>
66        </annotation>
67        <simpleType name="TimeValueList">
68                <annotation>
69                        <documentation>Provides a list of GML's TimePositionUnion (see GML 3.2, sect 15.2.2.7)</documentation>
70                </annotation>
71                <list itemType="gml:TimePositionUnion"/>
72        </simpleType>
73        <complexType name="TimePositionListType">
74                <annotation>
75                        <documentation>By direct analogy with gml:TimePositionType, adds attributes to csml:TimeValueList to support multiple time coordinate systems (see GML 3.2, sect 15.2.2.7).</documentation>
76                </annotation>
77                <simpleContent>
78                        <extension base="csml:TimeValueList">
79                                <attribute name="frame" type="anyURI" default="#ISO-8601"/>
80                                <attribute name="calendarEraName" type="string"/>
81                                <attribute name="indeterminatePosition" type="gml:TimeIndeterminateValueType"/>
82                        </extension>
83                </simpleContent>
84        </complexType>
85        <element name="timePositionList" type="csml:TimePositionListType">
86                <annotation>
87                        <documentation>By direct analogy with gml:timePosition, creates a list version of the same (see GML 3.2, sect 15.2.2.7).</documentation>
88                </annotation>
89        </element>
90        <!--====================================================================== -->
91        <complexType name="SpatialOrTemporalPositionListType">
92                <annotation>
93                        <documentation>SpatialOrTemporalPositionList allows efficient lists of either spatial or temporal positions. This extends gml:AbstractGMLType in order to have identity and a by-reference property type; the implication is that it should be modelled in UML as a 'Type' rather than 'Union' or 'DataType' (see GML 3.2, sect E.2.4).</documentation>
94                </annotation>
95                <complexContent>
96                        <extension base="gml:AbstractGMLType">
97                                <choice>
98                                        <element name="coordinateList">
99                                                <simpleType>
100                                                        <list itemType="double"/>
101                                                </simpleType>
102                                        </element>
103                                        <element ref="csml:timePositionList"/>
104                                </choice>
105                        </extension>
106                </complexContent>
107        </complexType>
108        <element name="SpatialOrTemporalPositionList" type="csml:SpatialOrTemporalPositionListType" substitutionGroup="gml:AbstractGML"/>
109        <complexType name="SpatialOrTemporalPositionListPropertyType">
110                <sequence minOccurs="0">
111                        <element ref="csml:SpatialOrTemporalPositionList"/>
112                </sequence>
113                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
114                <attributeGroup ref="gml:AssociationAttributeGroup"/>
115        </complexType>
116        <!--====================================================================== -->
117        <complexType name="GridOrdinateDescriptionType">
118                <annotation>
119                        <documentation>GridOrdinateDescription defines grid point locations over entire Grid for a single spatial or temporal coordinate axis.</documentation>
120                </annotation>
121                <sequence>
122                        <element name="coordAxisLabel" type="NCName"/>
123                        <element name="coordAxisValues" type="csml:SpatialOrTemporalPositionListPropertyType"/>
124                        <element name="gridAxesSpanned" type="gml:NCNameList"/>
125                        <element name="sequenceRule" type="gml:SequenceRuleType"/>
126                </sequence>
127        </complexType>
128        <element name="GridOrdinateDescription" type="csml:GridOrdinateDescriptionType" substitutionGroup="gml:AbstractObject"/>
129        <complexType name="GridOrdinateDescriptionPropertyType">
130                <sequence minOccurs="0">
131                        <element ref="csml:GridOrdinateDescription"/>
132                </sequence>
133                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
134        </complexType>
135        <!--====================================================================== -->
136        <complexType name="GridPointDescriptionType">
137                <annotation>
138                        <documentation>GridPointDescription defines grid point locations over entire Grid by listing direct positions in given sequence order.</documentation>
139                </annotation>
140                <sequence>
141                        <group ref="gml:geometricPositionListGroup"/>
142                        <element name="sequenceRule" type="gml:SequenceRuleType"/>
143                </sequence>
144        </complexType>
145        <element name="GridPointDescription" type="csml:GridPointDescriptionType" substitutionGroup="gml:AbstractObject"/>
146        <complexType name="GridPointDescriptionPropertyType">
147                <sequence minOccurs="0">
148                        <element ref="csml:GridPointDescription"/>
149                </sequence>
150                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
151        </complexType>
152        <!--====================================================================== -->
153        <complexType name="GridCoordinatesTableType">
154                <annotation>
155                        <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>
156                </annotation>
157                <choice>
158                        <element name="gridOrdinate" type="csml:GridOrdinateDescriptionPropertyType" maxOccurs="unbounded"/>
159                        <element name="gridPoints" type="csml:GridPointDescriptionPropertyType"/>
160                </choice>
161        </complexType>
162        <element name="GridCoordinatesTable" type="csml:GridCoordinatesTableType" substitutionGroup="gml:AbstractObject"/>
163        <complexType name="GridCoordinatesTablePropertyType">
164                <sequence minOccurs="0">
165                        <element ref="csml:GridCoordinatesTable"/>
166                </sequence>
167                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
168        </complexType>
169        <!--====================================================================== -->
170        <complexType name="ReferenceableGridType">
171                <annotation>
172                        <documentation>An implementation of CV_ReferenceableGrid of ISO 19123.
173                        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>
174                </annotation>
175                <complexContent>
176                        <extension base="gml:GridType">
177                                <sequence>
178                                        <element name="coordTransformTable" type="csml:GridCoordinatesTablePropertyType"/>
179                                </sequence>
180                        </extension>
181                </complexContent>
182        </complexType>
183        <element name="ReferenceableGrid" type="csml:ReferenceableGridType" substitutionGroup="gml:Grid"/>
184        <complexType name="ReferenceableGridPropertyType">
185                <sequence minOccurs="0">
186                        <element ref="csml:ReferenceableGrid"/>
187                </sequence>
188                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
189                <attributeGroup ref="gml:AssociationAttributeGroup"/>
190        </complexType>
191        <!--====================================================================== -->
192        <!--====================================================================== -->
193        <!--==== ReferenceableGridCoverage ====-->
194        <!--====================================================================== -->
195        <complexType name="ReferenceableGridDomainType">
196                <annotation>
197                        <documentation>Implemented by analogy with gml:RectifiedGridDomainType.</documentation>
198                </annotation>
199                <complexContent>
200                        <restriction base="gml:DomainSetType">
201                                <sequence minOccurs="0">
202                                        <choice>
203                                                <element ref="csml:ReferenceableGrid"/>
204                                        </choice>
205                                </sequence>
206                        </restriction>
207                </complexContent>
208        </complexType>
209        <element name="referenceableGridDomain" type="csml:ReferenceableGridDomainType" substitutionGroup="gml:domainSet"/>
210        <!--====================================================================== -->
211        <complexType name="ReferenceableGridCoverageType">
212                <annotation>
213                        <documentation>Implementation of ISO 19123 CV_DiscreteGridPointCoverage for a CV_ReferenceableGrid domain.</documentation>
214                </annotation>
215                <complexContent>
216                        <restriction base="gml:AbstractDiscreteCoverageType">
217                                <sequence>
218                                        <group ref="gml:StandardObjectProperties"/>
219                                        <element ref="gml:boundedBy" minOccurs="0"/>
220                                        <element ref="csml:referenceableGridDomain"/>
221                                        <element ref="gml:rangeSet"/>
222                                        <element ref="gml:coverageFunction" minOccurs="0"/>
223                                </sequence>
224                        </restriction>
225                </complexContent>
226        </complexType>
227        <element name="ReferenceableGridCoverage" type="csml:ReferenceableGridCoverageType" substitutionGroup="gml:AbstractDiscreteCoverage"/>
228        <complexType name="ReferenceableGridCoveragePropertyType">
229                <sequence minOccurs="0">
230                        <element ref="csml:ReferenceableGridCoverage"/>
231                </sequence>
232                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
233                <attributeGroup ref="gml:AssociationAttributeGroup"/>
234        </complexType>
235        <!--====================================================================== -->
236        <!--====================================================================== -->
237        <!--==== CSML Grid Feature Type ====-->
238        <!--====================================================================== -->
239        <complexType name="GridFeatureType">
240                <complexContent>
241                        <extension base="gml:AbstractFeatureType">
242                                <sequence>
243                                        <element name="time" type="gml:TimePositionType"/>
244                                        <element name="value" type="csml:ReferenceableGridCoveragePropertyType"/>
245                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
246                                </sequence>
247                        </extension>
248                </complexContent>
249        </complexType>
250        <element name="GridFeature" type="csml:GridFeatureType" substitutionGroup="gml:AbstractFeature"/>
251        <complexType name="GridFeaturePropertyType">
252                <sequence minOccurs="0">
253                        <element ref="csml:GridFeature"/>
254                </sequence>
255                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
256                <attributeGroup ref="gml:AssociationAttributeGroup"/>
257        </complexType>
258        <!--====================================================================== -->
259        <!--====================================================================== -->
260        <!--==== CSML GridSeries Feature Type ====-->
261        <!--====================================================================== -->
262        <complexType name="SpatioTemporalCRSType">
263                <annotation>
264                        <documentation>Exactly one component reference system must be a TM_TemporalCRS (i.e. gml:TemporalCRS)</documentation>
265                </annotation>
266                <complexContent>
267                        <extension base="gml:CompoundCRSType"/>
268                </complexContent>
269        </complexType>
270        <element name="SpatioTemporalCRS" type="csml:SpatioTemporalCRSType" substitutionGroup="gml:CompoundCRS"/>
271        <!--====================================================================== -->
272        <complexType name="GridSeriesDomainType">
273                <annotation>
274                        <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>
275                </annotation>
276                <complexContent>
277                        <restriction base="csml:ReferenceableGridType">
278                                <sequence>
279                                        <sequence>
280                                                <group ref="gml:StandardObjectProperties"/>
281                                        </sequence>
282                                        <sequence>
283                                                <element name="limits" type="gml:GridLimitsType"/>
284                                                <choice>
285                                                        <element name="axisLabels" type="gml:NCNameList"/>
286                                                        <element name="axisName" type="string" maxOccurs="unbounded"/>
287                                                </choice>
288                                        </sequence>
289                                        <sequence>
290                                                <element name="coordTransformTable" type="csml:GridCoordinatesTablePropertyType"/>
291                                        </sequence>
292                                </sequence>
293                        </restriction>
294                </complexContent>
295        </complexType>
296        <element name="GridSeriesDomain" type="csml:GridSeriesDomainType" substitutionGroup="csml:ReferenceableGrid"/>
297        <complexType name="GridSeriesDomainPropertyType">
298                <sequence minOccurs="0">
299                        <element ref="csml:GridSeriesDomain"/>
300                </sequence>
301                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
302                <attributeGroup ref="gml:AssociationAttributeGroup"/>
303        </complexType>
304        <!--====================================================================== -->
305        <complexType name="GridSeriesCoverageDomainType">
306                <complexContent>
307                        <restriction base="gml:GridDomainType">
308                                <sequence minOccurs="0">
309                                        <element ref="csml:GridSeriesDomain"/>
310                                </sequence>
311                        </restriction>
312                </complexContent>
313        </complexType>
314        <element name="gridSeriesDomain" type="csml:GridSeriesCoverageDomainType" substitutionGroup="gml:gridDomain"/>
315        <!--====================================================================== -->
316        <complexType name="GridSeriesCoverageType">
317                <complexContent>
318                        <restriction base="gml:GridCoverageType">
319                                <sequence>
320                                        <group ref="gml:StandardObjectProperties"/>
321                                        <element ref="gml:boundedBy" minOccurs="0"/>
322                                        <element ref="csml:gridSeriesDomain"/>
323                                        <element ref="gml:rangeSet"/>
324                                        <element ref="gml:coverageFunction" minOccurs="0"/>
325                                </sequence>
326                        </restriction>
327                </complexContent>
328        </complexType>
329        <element name="GridSeriesCoverage" type="csml:GridSeriesCoverageType" substitutionGroup="gml:GridCoverage"/>
330        <complexType name="GridSeriesCoveragePropertyType">
331                <sequence minOccurs="0">
332                        <element ref="csml:GridSeriesCoverage"/>
333                </sequence>
334                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
335                <attributeGroup ref="gml:AssociationAttributeGroup"/>
336        </complexType>
337        <!--====================================================================== -->
338        <complexType name="GridSeriesFeatureType">
339                <complexContent>
340                        <extension base="gml:AbstractFeatureType">
341                                <sequence>
342                                        <element name="value" type="csml:GridSeriesCoveragePropertyType"/>
343                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
344                                </sequence>
345                        </extension>
346                </complexContent>
347        </complexType>
348        <element name="GridSeriesFeature" type="csml:GridSeriesFeatureType" substitutionGroup="gml:AbstractFeature"/>
349        <complexType name="GridSeriesFeaturePropertyType">
350                <sequence minOccurs="0">
351                        <element ref="csml:GridSeriesFeature"/>
352                </sequence>
353                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
354                <attributeGroup ref="gml:AssociationAttributeGroup"/>
355        </complexType>
356        <!--====================================================================== -->
357        <!--====================================================================== -->
358        <!--==== CSML PointCollection Feature Type ====-->
359        <!--====================================================================== -->
360        <complexType name="PointCollectionFeatureType">
361                <complexContent>
362                        <extension base="gml:AbstractFeatureType">
363                                <sequence>
364                                        <element name="time" type="gml:TimePositionType" minOccurs="0"/>
365                                        <element name="value">
366                                                <complexType>
367                                                        <sequence>
368                                                                <element ref="gml:MultiPointCoverage"/>
369                                                        </sequence>
370                                                </complexType>
371                                        </element>
372                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
373                                </sequence>
374                        </extension>
375                </complexContent>
376        </complexType>
377        <element name="PointCollectionFeature" type="csml:PointCollectionFeatureType" substitutionGroup="gml:AbstractFeature"/>
378        <complexType name="PointCollectionFeaturePropertyType">
379                <sequence minOccurs="0">
380                        <element ref="csml:PointCollectionFeature"/>
381                </sequence>
382                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
383                <attributeGroup ref="gml:AssociationAttributeGroup"/>
384        </complexType>
385        <!--====================================================================== -->
386        <!--====================================================================== -->
387        <!--==== CSML Point Feature Type ====-->
388        <!--====================================================================== -->
389        <complexType name="PointDomainType">
390                <annotation>
391                        <documentation>Restricts a gml:MultiPoint to having a single pointMember.</documentation>
392                </annotation>
393                <complexContent>
394                        <restriction base="gml:MultiPointType">
395                                <sequence>
396                                        <group ref="gml:StandardObjectProperties"/>
397                                        <element ref="gml:pointMember" minOccurs="0"/>
398                                </sequence>
399                        </restriction>
400                </complexContent>
401        </complexType>
402        <element name="PointDomain" type="csml:PointDomainType" substitutionGroup="gml:MultiPoint"/>
403        <complexType name="PointDomainPropertyType">
404                <sequence minOccurs="0">
405                        <element ref="csml:PointDomain"/>
406                </sequence>
407                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
408                <attributeGroup ref="gml:AssociationAttributeGroup"/>
409        </complexType>
410        <!--====================================================================== -->
411        <complexType name="PointCoverageDomainType">
412                <complexContent>
413                        <restriction base="gml:MultiPointDomainType">
414                                <sequence minOccurs="0">
415                                        <element ref="csml:PointDomain"/>
416                                </sequence>
417                        </restriction>
418                </complexContent>
419        </complexType>
420        <element name="pointDomain" type="csml:PointCoverageDomainType" substitutionGroup="gml:multiPointDomain"/>
421        <!--====================================================================== -->
422        <complexType name="PointCoverageType">
423                <complexContent>
424                        <restriction base="gml:MultiPointCoverageType">
425                                <sequence>
426                                        <group ref="gml:StandardObjectProperties"/>
427                                        <element ref="gml:boundedBy" minOccurs="0"/>
428                                        <element ref="csml:pointDomain"/>
429                                        <element ref="gml:rangeSet"/>
430                                        <element ref="gml:coverageFunction" minOccurs="0"/>
431                                </sequence>
432                        </restriction>
433                </complexContent>
434        </complexType>
435        <element name="PointCoverage" type="csml:PointCoverageType" substitutionGroup="gml:MultiPointCoverage"/>
436        <complexType name="PointCoveragePropertyType">
437                <sequence minOccurs="0">
438                        <element ref="csml:PointCoverage"/>
439                </sequence>
440                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
441                <attributeGroup ref="gml:AssociationAttributeGroup"/>
442        </complexType>
443        <!--====================================================================== -->
444        <complexType name="PointFeatureType">
445                <complexContent>
446                        <extension base="gml:AbstractFeatureType">
447                                <sequence>
448                                        <element name="location" type="gml:DirectPositionType"/>
449                                        <element name="time" type="gml:TimePositionType" minOccurs="0"/>
450                                        <element name="value" type="csml:PointCoveragePropertyType"/>
451                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
452                                </sequence>
453                        </extension>
454                </complexContent>
455        </complexType>
456        <element name="PointFeature" type="csml:PointFeatureType" substitutionGroup="gml:AbstractFeature"/>
457        <complexType name="PointFeaturePropertyType">
458                <sequence minOccurs="0">
459                        <element ref="csml:PointFeature"/>
460                </sequence>
461                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
462                <attributeGroup ref="gml:AssociationAttributeGroup"/>
463        </complexType>
464        <!--====================================================================== -->
465        <!--====================================================================== -->
466        <!--==== Alternate Point Feature Type ====-->
467        <!--====================================================================== -->
468        <complexType name="AlternatePointDomainType">
469                <complexContent>
470                        <restriction base="gml:DomainSetType">
471                                <sequence minOccurs="0">
472                                        <element ref="gml:Point"/>
473                                </sequence>
474                        </restriction>
475                </complexContent>
476        </complexType>
477        <element name="alternatePointDomain" type="csml:AlternatePointDomainType" substitutionGroup="gml:domainSet"/>
478        <!--====================================================================== -->
479        <complexType name="AlternatePointCoverageType">
480                <complexContent>
481                        <restriction base="gml:AbstractDiscreteCoverageType">
482                                <sequence>
483                                        <group ref="gml:StandardObjectProperties"/>
484                                        <element ref="gml:boundedBy" minOccurs="0"/>
485                                        <element ref="csml:alternatePointDomain"/>
486                                        <element ref="gml:rangeSet"/>
487                                        <element ref="gml:coverageFunction" minOccurs="0"/>
488                                </sequence>
489                        </restriction>
490                </complexContent>
491        </complexType>
492        <element name="AlternatePointCoverage" type="csml:AlternatePointCoverageType" substitutionGroup="gml:AbstractDiscreteCoverage"/>
493        <complexType name="AlternatePointCoveragePropertyType">
494                <sequence minOccurs="0">
495                        <element ref="csml:AlternatePointCoverage"/>
496                </sequence>
497                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
498                <attributeGroup ref="gml:AssociationAttributeGroup"/>
499        </complexType>
500        <!--====================================================================== -->
501        <complexType name="AlternatePointFeatureType">
502                <complexContent>
503                        <extension base="gml:AbstractFeatureType">
504                                <sequence>
505                                        <element name="location" type="gml:PointPropertyType"/>
506                                        <element name="time" type="gml:TimeInstantPropertyType" minOccurs="0"/>
507                                        <element name="value" type="csml:AlternatePointCoveragePropertyType"/>
508                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
509                                </sequence>
510                        </extension>
511                </complexContent>
512        </complexType>
513        <element name="AlternatePointFeature" type="csml:AlternatePointFeatureType" substitutionGroup="gml:AbstractFeature"/>
514        <complexType name="AlternatePointFeaturePropertyType">
515                <sequence minOccurs="0">
516                        <element ref="csml:AlternatePointFeature"/>
517                </sequence>
518                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
519                <attributeGroup ref="gml:AssociationAttributeGroup"/>
520        </complexType>
521        <!--====================================================================== -->
522        <!--====================================================================== -->
523        <!--==== CSML PointSeries Feature Type ====-->
524        <!--====================================================================== -->
525        <complexType name="TimeSeriesType">
526                <complexContent>
527                        <extension base="gml:AbstractTimeComplexType">
528                                <sequence>
529                                        <element ref="csml:timePositionList"/>
530                                </sequence>
531                        </extension>
532                </complexContent>
533        </complexType>
534        <element name="TimeSeries" type="csml:TimeSeriesType" substitutionGroup="gml:AbstractTimeComplex"/>
535        <complexType name="TimeSeriesPropertyType">
536                <sequence minOccurs="0">
537                        <element ref="csml:TimeSeries"/>
538                </sequence>
539                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
540                <attributeGroup ref="gml:AssociationAttributeGroup"/>
541        </complexType>
542        <!--====================================================================== -->
543        <complexType name="PointSeriesCoverageDomainType">
544                <complexContent>
545                        <restriction base="gml:DomainSetType">
546                                <sequence minOccurs="0">
547                                        <element ref="csml:TimeSeries"/>
548                                </sequence>
549                        </restriction>
550                </complexContent>
551        </complexType>
552        <element name="pointSeriesDomain" type="csml:PointSeriesCoverageDomainType" substitutionGroup="gml:domainSet"/>
553        <!--====================================================================== -->
554        <complexType name="PointSeriesCoverageType">
555                <complexContent>
556                        <restriction base="gml:AbstractDiscreteCoverageType">
557                                <sequence>
558                                        <group ref="gml:StandardObjectProperties"/>
559                                        <element ref="gml:boundedBy" minOccurs="0"/>
560                                        <element ref="csml:pointSeriesDomain"/>
561                                        <element ref="gml:rangeSet"/>
562                                        <element ref="gml:coverageFunction" minOccurs="0"/>
563                                </sequence>
564                        </restriction>
565                </complexContent>
566        </complexType>
567        <element name="PointSeriesCoverage" type="csml:PointSeriesCoverageType" substitutionGroup="gml:AbstractDiscreteCoverage"/>
568        <complexType name="PointSeriesCoveragePropertyType">
569                <sequence minOccurs="0">
570                        <element ref="csml:PointSeriesCoverage"/>
571                </sequence>
572                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
573                <attributeGroup ref="gml:AssociationAttributeGroup"/>
574        </complexType>
575        <!--====================================================================== -->
576        <complexType name="PointSeriesFeatureType">
577                <complexContent>
578                        <extension base="gml:AbstractFeatureType">
579                                <sequence>
580                                        <element name="location" type="gml:DirectPositionType" minOccurs="0"/>
581                                        <element name="value" type="csml:PointSeriesCoveragePropertyType"/>
582                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
583                                </sequence>
584                        </extension>
585                </complexContent>
586        </complexType>
587        <element name="PointSeriesFeature" type="csml:PointSeriesFeatureType" substitutionGroup="gml:AbstractFeature"/>
588        <complexType name="PointSeriesFeaturePropertyType">
589                <sequence minOccurs="0">
590                        <element ref="csml:PointSeriesFeature"/>
591                </sequence>
592                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
593                <attributeGroup ref="gml:AssociationAttributeGroup"/>
594        </complexType>
595        <!--====================================================================== -->
596        <!--====================================================================== -->
597        <!--==== CSML Profile Feature Type ====-->
598        <!--====================================================================== -->
599        <complexType name="ProfileDomainType">
600                <annotation>
601                        <documentation>Constrains a gml:MultiPoint to a vertical line of points. The associated CRS should be a valid subtype of gml:VerticalCRS.</documentation>
602                </annotation>
603                <complexContent>
604                        <restriction base="gml:MultiPointType">
605                                <sequence>
606                                        <sequence>
607                                                <group ref="gml:StandardObjectProperties"/>
608                                        </sequence>
609                                        <sequence>
610                                                <element ref="gml:pointMember" minOccurs="0" maxOccurs="unbounded"/>
611                                                <element ref="gml:pointMembers" minOccurs="0"/>
612                                        </sequence>
613                                </sequence>
614                                <attribute name="srsDimension" type="positiveInteger" fixed="1"/>
615                        </restriction>
616                </complexContent>
617        </complexType>
618        <element name="ProfileDomain" type="csml:ProfileDomainType" substitutionGroup="gml:MultiPoint"/>
619        <complexType name="ProfileDomainPropertyType">
620                <sequence minOccurs="0">
621                        <element ref="csml:ProfileDomain"/>
622                </sequence>
623                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
624                <attributeGroup ref="gml:AssociationAttributeGroup"/>
625        </complexType>
626        <!--====================================================================== -->
627        <complexType name="ProfileCoverageDomainType">
628                <complexContent>
629                        <restriction base="gml:MultiPointDomainType">
630                                <sequence minOccurs="0">
631                                        <element ref="csml:ProfileDomain"/>
632                                </sequence>
633                        </restriction>
634                </complexContent>
635        </complexType>
636        <element name="profileDomain" type="csml:ProfileCoverageDomainType" substitutionGroup="gml:multiPointDomain"/>
637        <!--====================================================================== -->
638        <complexType name="ProfileCoverageType">
639                <complexContent>
640                        <restriction base="gml:MultiPointCoverageType">
641                                <sequence>
642                                        <group ref="gml:StandardObjectProperties"/>
643                                        <element ref="gml:boundedBy" minOccurs="0"/>
644                                        <element ref="csml:profileDomain"/>
645                                        <element ref="gml:rangeSet"/>
646                                        <element ref="gml:coverageFunction" minOccurs="0"/>
647                                </sequence>
648                        </restriction>
649                </complexContent>
650        </complexType>
651        <element name="ProfileCoverage" type="csml:ProfileCoverageType" substitutionGroup="gml:MultiPointCoverage"/>
652        <complexType name="ProfileCoveragePropertyType">
653                <sequence minOccurs="0">
654                        <element ref="csml:ProfileCoverage"/>
655                </sequence>
656                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
657                <attributeGroup ref="gml:AssociationAttributeGroup"/>
658        </complexType>
659        <!--====================================================================== -->
660        <complexType name="ProfileFeatureType">
661                <complexContent>
662                        <extension base="gml:AbstractFeatureType">
663                                <sequence>
664                                        <element name="location" type="gml:DirectPositionType" minOccurs="0"/>
665                                        <element name="time" type="gml:TimePositionType" minOccurs="0"/>
666                                        <element name="value" type="csml:ProfileCoveragePropertyType"/>
667                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
668                                </sequence>
669                        </extension>
670                </complexContent>
671        </complexType>
672        <element name="ProfileFeature" type="csml:ProfileFeatureType" substitutionGroup="gml:AbstractFeature"/>
673        <complexType name="ProfileFeaturePropertyType">
674                <sequence minOccurs="0">
675                        <element ref="csml:ProfileFeature"/>
676                </sequence>
677                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
678                <attributeGroup ref="gml:AssociationAttributeGroup"/>
679        </complexType>
680        <!--====================================================================== -->
681        <!--====================================================================== -->
682        <!--==== Alternate Profile Feature Type ====-->
683        <!--====================================================================== -->
684        <complexType name="CSMLMultiPointType">
685                <complexContent>
686                        <extension base="gml:AbstractGeometricAggregateType">
687                                <sequence>
688                                        <element name="position" type="gml:DirectPositionListType"/>
689                                </sequence>
690                        </extension>
691                </complexContent>
692        </complexType>
693        <element name="CSMLMultiPoint" type="csml:CSMLMultiPointType" substitutionGroup="gml:AbstractGeometricAggregate"/>
694        <complexType name="CSMLMultiPointPropertyType">
695                <sequence minOccurs="0">
696                        <element ref="csml:CSMLMultiPoint"/>
697                </sequence>
698                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
699                <attributeGroup ref="gml:AssociationAttributeGroup"/>
700        </complexType>
701        <!--====================================================================== -->
702        <complexType name="AlternateProfileDomainType">
703                <complexContent>
704                        <restriction base="gml:DomainSetType">
705                                <sequence minOccurs="0">
706                                        <element ref="csml:CSMLMultiPoint"/>
707                                </sequence>
708                        </restriction>
709                </complexContent>
710        </complexType>
711        <element name="alternateProfileDomain" type="csml:AlternateProfileDomainType" substitutionGroup="gml:domainSet"/>
712        <!--====================================================================== -->
713        <complexType name="AlternateProfileCoverageType">
714                <complexContent>
715                        <restriction base="gml:AbstractDiscreteCoverageType">
716                                <sequence>
717                                        <sequence>
718                                                <group ref="gml:StandardObjectProperties"/>
719                                        </sequence>
720                                        <sequence>
721                                                <element ref="gml:boundedBy" minOccurs="0"/>
722                                                <element ref="gml:location" minOccurs="0"/>
723                                        </sequence>
724                                        <sequence>
725                                                <element ref="csml:alternateProfileDomain"/>
726                                                <element ref="gml:rangeSet"/>
727                                        </sequence>
728                                        <sequence>
729                                                <element ref="gml:coverageFunction" minOccurs="0"/>
730                                        </sequence>
731                                </sequence>
732                        </restriction>
733                </complexContent>
734        </complexType>
735        <element name="AlternateProfileCoverage" type="csml:AlternateProfileCoverageType" substitutionGroup="gml:AbstractDiscreteCoverage"/>
736        <complexType name="AlternateProfileCoveragePropertyType">
737                <sequence minOccurs="0">
738                        <element ref="csml:AlternateProfileCoverage"/>
739                </sequence>
740                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
741                <attributeGroup ref="gml:AssociationAttributeGroup"/>
742        </complexType>
743        <!--====================================================================== -->
744        <complexType name="AlternateProfileFeatureType">
745                <complexContent>
746                        <extension base="gml:AbstractFeatureType">
747                                <sequence>
748                                        <element name="location" type="gml:DirectPositionType" minOccurs="0"/>
749                                        <element name="time" type="gml:TimePositionType" minOccurs="0"/>
750                                        <element name="value" type="csml:AlternateProfileCoveragePropertyType"/>
751                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
752                                </sequence>
753                        </extension>
754                </complexContent>
755        </complexType>
756        <element name="AlternateProfileFeature" type="csml:AlternateProfileFeatureType" substitutionGroup="gml:AbstractFeature"/>
757        <complexType name="AlternateProfileFeaturePropertyType">
758                <sequence minOccurs="0">
759                        <element ref="csml:AlternateProfileFeature"/>
760                </sequence>
761                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
762                <attributeGroup ref="gml:AssociationAttributeGroup"/>
763        </complexType>
764        <!--====================================================================== -->
765        <!--====================================================================== -->
766        <!--==== CSML ProfileSeries Feature Type ====-->
767        <!--====================================================================== -->
768        <complexType name="ProfileSeriesDomainType">
769                <annotation>
770                        <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>
771                </annotation>
772                <complexContent>
773                        <restriction base="csml:ReferenceableGridType">
774                                <sequence>
775                                        <sequence>
776                                                <group ref="gml:StandardObjectProperties"/>
777                                        </sequence>
778                                        <sequence>
779                                                <element name="limits" type="gml:GridLimitsType"/>
780                                                <choice>
781                                                        <element name="axisLabels" type="gml:NCNameList"/>
782                                                        <element name="axisName" type="string" maxOccurs="unbounded"/>
783                                                </choice>
784                                        </sequence>
785                                        <sequence>
786                                                <element name="coordTransformTable" type="csml:GridCoordinatesTablePropertyType"/>
787                                        </sequence>
788                                </sequence>
789                                <attribute name="dimension" type="positiveInteger" use="required" fixed="2"/>
790                                <attribute name="srsDimension" type="positiveInteger" fixed="2"/>
791                        </restriction>
792                </complexContent>
793        </complexType>
794        <element name="ProfileSeriesDomain" type="csml:ProfileSeriesDomainType" substitutionGroup="csml:ReferenceableGrid"/>
795        <complexType name="ProfileSeriesDomainPropertyType">
796                <sequence minOccurs="0">
797                        <element ref="csml:ProfileSeriesDomain"/>
798                </sequence>
799                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
800                <attributeGroup ref="gml:AssociationAttributeGroup"/>
801        </complexType>
802        <!--====================================================================== -->
803        <complexType name="ProfileSeriesCoverageDomainType">
804                <complexContent>
805                        <restriction base="gml:GridDomainType">
806                                <sequence minOccurs="0">
807                                        <choice>
808                                                <element ref="csml:ProfileSeriesDomain"/>
809                                        </choice>
810                                </sequence>
811                        </restriction>
812                </complexContent>
813        </complexType>
814        <element name="profileSeriesDomain" type="csml:ProfileSeriesCoverageDomainType" substitutionGroup="gml:gridDomain"/>
815        <!--====================================================================== -->
816        <complexType name="ProfileSeriesCoverageType">
817                <complexContent>
818                        <restriction base="gml:GridCoverageType">
819                                <sequence>
820                                        <group ref="gml:StandardObjectProperties"/>
821                                        <element ref="gml:boundedBy" minOccurs="0"/>
822                                        <element ref="csml:profileSeriesDomain"/>
823                                        <element ref="gml:rangeSet"/>
824                                        <element ref="gml:coverageFunction" minOccurs="0"/>
825                                </sequence>
826                        </restriction>
827                </complexContent>
828        </complexType>
829        <element name="ProfileSeriesCoverage" type="csml:ProfileSeriesCoverageType" substitutionGroup="gml:GridCoverage"/>
830        <complexType name="ProfileSeriesCoveragePropertyType">
831                <sequence minOccurs="0">
832                        <element ref="csml:ProfileSeriesCoverage"/>
833                </sequence>
834                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
835                <attributeGroup ref="gml:AssociationAttributeGroup"/>
836        </complexType>
837        <!--====================================================================== -->
838        <complexType name="ProfileSeriesFeatureType">
839                <complexContent>
840                        <extension base="gml:AbstractFeatureType">
841                                <sequence>
842                                        <element name="location" type="gml:DirectPositionType" minOccurs="0"/>
843                                        <element name="value" type="csml:ProfileSeriesCoveragePropertyType"/>
844                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
845                                </sequence>
846                        </extension>
847                </complexContent>
848        </complexType>
849        <element name="ProfileSeriesFeature" type="csml:ProfileSeriesFeatureType" substitutionGroup="gml:AbstractFeature"/>
850        <complexType name="ProfileSeriesFeaturePropertyType">
851                <sequence minOccurs="0">
852                        <element ref="csml:ProfileSeriesFeature"/>
853                </sequence>
854                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
855                <attributeGroup ref="gml:AssociationAttributeGroup"/>
856        </complexType>
857        <!--====================================================================== -->
858        <!--====================================================================== -->
859        <!--==== CSML RaggedProfileSeries Feature Type ====-->
860        <!--====================================================================== -->
861        <complexType name="RaggedProfileSeriesFeatureType">
862                <complexContent>
863                        <extension base="gml:AbstractFeatureType">
864                                <sequence>
865                                        <element name="location" type="gml:DirectPositionType" minOccurs="0"/>
866                                        <element name="profileLength">
867                                                <simpleType>
868                                                        <list itemType="int"/>
869                                                </simpleType>
870                                        </element>
871                                        <element name="value" type="csml:ProfileSeriesCoveragePropertyType"/>
872                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
873                                </sequence>
874                        </extension>
875                </complexContent>
876        </complexType>
877        <element name="RaggedProfileSeriesFeature" type="csml:RaggedProfileSeriesFeatureType" substitutionGroup="gml:AbstractFeature"/>
878        <complexType name="RaggedProfileSeriesFeaturePropertyType">
879                <sequence minOccurs="0">
880                        <element ref="csml:RaggedProfileSeriesFeature"/>
881                </sequence>
882                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
883                <attributeGroup ref="gml:AssociationAttributeGroup"/>
884        </complexType>
885        <!--====================================================================== -->
886        <!--====================================================================== -->
887        <!--==== CSML RaggedSection Feature Type ====-->
888        <!--====================================================================== -->
889        <complexType name="RaggedSectionFeatureType">
890                <complexContent>
891                        <extension base="gml:AbstractFeatureType">
892                                <sequence>
893                                        <element name="stationLocations" type="gml:DirectPositionListType"/>
894                                        <element name="stationTimes" type="csml:TimePositionListType"/>
895                                        <element name="profileLength">
896                                                <simpleType>
897                                                        <list itemType="int"/>
898                                                </simpleType>
899                                        </element>
900                                        <element name="value" type="csml:SectionCoveragePropertyType"/>
901                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
902                                </sequence>
903                        </extension>
904                </complexContent>
905        </complexType>
906        <element name="RaggedSectionFeature" type="csml:RaggedSectionFeatureType" substitutionGroup="gml:AbstractFeature"/>
907        <complexType name="RaggedSectionFeaturePropertyType">
908                <sequence minOccurs="0">
909                        <element ref="csml:RaggedSectionFeature"/>
910                </sequence>
911                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
912                <attributeGroup ref="gml:AssociationAttributeGroup"/>
913        </complexType>
914        <!--====================================================================== -->
915        <!--====================================================================== -->
916        <!--==== CSML ScanningRadar Feature Type ====-->
917        <!--====================================================================== -->
918        <element name="polarCS" substitutionGroup="gml:coordinateSystem">
919                <complexType>
920                        <complexContent>
921                                <restriction base="gml:CoordinateSystemPropertyType">
922                                        <sequence minOccurs="0">
923                                                <element ref="gml:PolarCS"/>
924                                        </sequence>
925                                </restriction>
926                        </complexContent>
927                </complexType>
928        </element>
929        <element name="azimuthRangeDatum" substitutionGroup="gml:engineeringDatum">
930                <complexType>
931                        <complexContent>
932                                <restriction base="gml:EngineeringDatumPropertyType">
933                                        <sequence minOccurs="0">
934                                                <element ref="gml:EngineeringDatum"/>
935                                        </sequence>
936                                </restriction>
937                        </complexContent>
938                </complexType>
939        </element>
940        <complexType name="AzimuthRangeCRSType">
941                <complexContent>
942                        <restriction base="gml:EngineeringCRSType">
943                                <sequence>
944                                        <sequence>
945                                                <element ref="gml:metaDataProperty" minOccurs="0" maxOccurs="unbounded"/>
946                                                <element ref="gml:description" minOccurs="0"/>
947                                                <element ref="gml:descriptionReference" minOccurs="0"/>
948                                                <element ref="gml:identifier"/>
949                                                <element ref="gml:name" minOccurs="0" maxOccurs="unbounded"/>
950                                        </sequence>
951                                        <sequence>
952                                                <element ref="gml:remarks" minOccurs="0"/>
953                                        </sequence>
954                                        <sequence>
955                                                <element ref="gml:domainOfValidity" minOccurs="0" maxOccurs="unbounded"/>
956                                                <element ref="gml:scope" maxOccurs="unbounded"/>
957                                        </sequence>
958                                        <sequence>
959                                                <element ref="csml:polarCS"/>
960                                                <element ref="csml:azimuthRangeDatum"/>
961                                        </sequence>
962                                </sequence>
963                        </restriction>
964                </complexContent>
965        </complexType>
966        <!--====================================================================== -->
967        <complexType name="ScanningRadarDomainType">
968                <annotation>
969                        <documentation>The SC_CRS to which this is associated (through the gml:srsName attribute) should be an AzimuthRangeCRS.</documentation>
970                </annotation>
971                <complexContent>
972                        <restriction base="csml:ReferenceableGridType">
973                                <sequence>
974                                        <sequence>
975                                                <group ref="gml:StandardObjectProperties"/>
976                                        </sequence>
977                                        <sequence>
978                                                <element name="limits" type="gml:GridLimitsType"/>
979                                                <choice>
980                                                        <element name="axisLabels" type="gml:NCNameList"/>
981                                                        <element name="axisName" type="string" maxOccurs="unbounded"/>
982                                                </choice>
983                                        </sequence>
984                                        <sequence>
985                                                <element name="coordTransformTable" type="csml:GridCoordinatesTablePropertyType"/>
986                                        </sequence>
987                                </sequence>
988                                <attribute name="srsDimension" type="positiveInteger" fixed="2"/>
989                                <attribute name="dimension" type="positiveInteger" use="required" fixed="2"/>
990                        </restriction>
991                </complexContent>
992        </complexType>
993        <element name="ScanningRadarDomain" type="csml:ScanningRadarDomainType" substitutionGroup="csml:ReferenceableGrid"/>
994        <complexType name="ScanningRadarDomainPropertyType">
995                <sequence minOccurs="0">
996                        <element ref="csml:ScanningRadarDomain"/>
997                </sequence>
998                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
999                <attributeGroup ref="gml:AssociationAttributeGroup"/>
1000        </complexType>
1001        <!--====================================================================== -->
1002        <complexType name="ScanningRadarCoverageDomainType">
1003                <complexContent>
1004                        <restriction base="gml:GridDomainType">
1005                                <sequence minOccurs="0">
1006                                        <choice>
1007                                                <element ref="csml:ScanningRadarDomain"/>
1008                                        </choice>
1009                                </sequence>
1010                        </restriction>
1011                </complexContent>
1012        </complexType>
1013        <element name="scanningRadarDomain" type="csml:ScanningRadarCoverageDomainType" substitutionGroup="gml:gridDomain"/>
1014        <!--====================================================================== -->
1015        <complexType name="ScanningRadarCoverageType">
1016                <complexContent>
1017                        <restriction base="gml:GridCoverageType">
1018                                <sequence>
1019                                        <group ref="gml:StandardObjectProperties"/>
1020                                        <element ref="gml:boundedBy" minOccurs="0"/>
1021                                        <element ref="csml:scanningRadarDomain"/>
1022                                        <element ref="gml:rangeSet"/>
1023                                        <element ref="gml:coverageFunction" minOccurs="0"/>
1024                                </sequence>
1025                        </restriction>
1026                </complexContent>
1027        </complexType>
1028        <element name="ScanningRadarCoverage" type="csml:ScanningRadarCoverageType" substitutionGroup="gml:GridCoverage"/>
1029        <complexType name="ScanningRadarCoveragePropertyType">
1030                <sequence minOccurs="0">
1031                        <element ref="csml:ScanningRadarCoverage"/>
1032                </sequence>
1033                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
1034                <attributeGroup ref="gml:AssociationAttributeGroup"/>
1035        </complexType>
1036        <!--====================================================================== -->
1037        <complexType name="ScanningRadarFeatureType">
1038                <complexContent>
1039                        <extension base="gml:AbstractFeatureType">
1040                                <sequence>
1041                                        <element name="elevation" type="gml:AngleType" minOccurs="0"/>
1042                                        <element name="value" type="csml:ScanningRadarCoveragePropertyType"/>
1043                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
1044                                </sequence>
1045                        </extension>
1046                </complexContent>
1047        </complexType>
1048        <element name="ScanningRadarFeature" type="csml:ScanningRadarFeatureType" substitutionGroup="gml:AbstractFeature"/>
1049        <complexType name="ScanningRadarFeaturePropertyType">
1050                <sequence minOccurs="0">
1051                        <element ref="csml:ScanningRadarFeature"/>
1052                </sequence>
1053                <attributeGroup ref="gml:AssociationAttributeGroup"/>
1054        </complexType>
1055        <!--====================================================================== -->
1056        <!--====================================================================== -->
1057        <!--==== CSML Section Feature Type ====-->
1058        <!--====================================================================== -->
1059        <complexType name="SectionDomainType">
1060                <complexContent>
1061                        <restriction base="csml:ReferenceableGridType">
1062                                <sequence>
1063                                        <sequence>
1064                                                <group ref="gml:StandardObjectProperties"/>
1065                                        </sequence>
1066                                        <sequence>
1067                                                <element name="limits" type="gml:GridLimitsType"/>
1068                                                <choice>
1069                                                        <element name="axisLabels" type="gml:NCNameList"/>
1070                                                        <element name="axisName" type="string" maxOccurs="unbounded"/>
1071                                                </choice>
1072                                        </sequence>
1073                                        <sequence>
1074                                                <element name="coordTransformTable" type="csml:GridCoordinatesTablePropertyType"/>
1075                                        </sequence>
1076                                </sequence>
1077                                <attribute name="srsDimension" type="positiveInteger" fixed="3"/>
1078                                <attribute name="dimension" type="positiveInteger" use="required" fixed="2"/>
1079                        </restriction>
1080                </complexContent>
1081        </complexType>
1082        <element name="SectionDomain" type="csml:SectionDomainType" substitutionGroup="csml:ReferenceableGrid"/>
1083        <complexType name="SectionDomainPropertyType">
1084                <sequence minOccurs="0">
1085                        <element ref="csml:SectionDomain"/>
1086                </sequence>
1087                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
1088                <attributeGroup ref="gml:AssociationAttributeGroup"/>
1089        </complexType>
1090        <!--====================================================================== -->
1091        <complexType name="SectionCoverageDomainType">
1092                <complexContent>
1093                        <restriction base="gml:GridDomainType">
1094                                <sequence minOccurs="0">
1095                                        <choice>
1096                                                <element ref="csml:SectionDomain"/>
1097                                        </choice>
1098                                </sequence>
1099                        </restriction>
1100                </complexContent>
1101        </complexType>
1102        <element name="sectionDomain" type="csml:SectionCoverageDomainType" substitutionGroup="gml:gridDomain"/>
1103        <!--====================================================================== -->
1104        <complexType name="SectionCoverageType">
1105                <complexContent>
1106                        <restriction base="gml:GridCoverageType">
1107                                <sequence>
1108                                        <group ref="gml:StandardObjectProperties"/>
1109                                        <element ref="gml:boundedBy" minOccurs="0"/>
1110                                        <element ref="csml:sectionDomain"/>
1111                                        <element ref="gml:rangeSet"/>
1112                                        <element ref="gml:coverageFunction" minOccurs="0"/>
1113                                </sequence>
1114                        </restriction>
1115                </complexContent>
1116        </complexType>
1117        <element name="SectionCoverage" type="csml:SectionCoverageType" substitutionGroup="gml:GridCoverage"/>
1118        <complexType name="SectionCoveragePropertyType">
1119                <sequence minOccurs="0">
1120                        <element ref="csml:SectionCoverage"/>
1121                </sequence>
1122                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
1123                <attributeGroup ref="gml:AssociationAttributeGroup"/>
1124        </complexType>
1125        <!--====================================================================== -->
1126        <complexType name="SectionFeatureType">
1127                <complexContent>
1128                        <extension base="gml:AbstractFeatureType">
1129                                <sequence>
1130                                        <element name="stationLocations" type="gml:DirectPositionListType"/>
1131                                        <element name="stationTimes" type="csml:TimePositionListType"/>
1132                                        <element name="value" type="csml:SectionCoveragePropertyType"/>
1133                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
1134                                </sequence>
1135                        </extension>
1136                </complexContent>
1137        </complexType>
1138        <element name="SectionFeature" type="csml:SectionFeatureType" substitutionGroup="gml:AbstractFeature"/>
1139        <complexType name="SectionFeaturePropertyType">
1140                <sequence minOccurs="0">
1141                        <element ref="csml:SectionFeature"/>
1142                </sequence>
1143                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
1144                <attributeGroup ref="gml:AssociationAttributeGroup"/>
1145        </complexType>
1146        <!--====================================================================== -->
1147        <!--====================================================================== -->
1148        <!--==== CSML Swath Feature Type ====-->
1149        <!--====================================================================== -->
1150        <complexType name="SwathFeatureType">
1151                <complexContent>
1152                        <extension base="gml:AbstractFeatureType">
1153                                <sequence>
1154                                        <element name="eqCrossLon" type="double" minOccurs="0"/>
1155                                        <element name="eqCrossTime" type="gml:TimePositionType" minOccurs="0"/>
1156                                        <element name="value" type="csml:ReferenceableGridCoveragePropertyType"/>
1157                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
1158                                </sequence>
1159                        </extension>
1160                </complexContent>
1161        </complexType>
1162        <element name="SwathFeature" type="csml:SwathFeatureType" substitutionGroup="gml:AbstractFeature"/>
1163        <complexType name="SwathFeaturePropertyType">
1164                <sequence minOccurs="0">
1165                        <element ref="csml:SwathFeature"/>
1166                </sequence>
1167                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
1168                <attributeGroup ref="gml:AssociationAttributeGroup"/>
1169        </complexType>
1170        <!--====================================================================== -->
1171        <!--====================================================================== -->
1172        <!--==== CSML Trajectory Feature Type ====-->
1173        <!--====================================================================== -->
1174        <complexType name="TrajectoryDomainType">
1175                <complexContent>
1176                        <restriction base="csml:ReferenceableGridType">
1177                                <sequence>
1178                                        <sequence>
1179                                                <group ref="gml:StandardObjectProperties"/>
1180                                        </sequence>
1181                                        <sequence>
1182                                                <element name="limits" type="gml:GridLimitsType"/>
1183                                                <choice>
1184                                                        <element name="axisLabels" type="gml:NCNameList"/>
1185                                                        <element name="axisName" type="string" maxOccurs="unbounded"/>
1186                                                </choice>
1187                                        </sequence>
1188                                        <sequence>
1189                                                <element name="coordTransformTable" type="csml:GridCoordinatesTablePropertyType"/>
1190                                        </sequence>
1191                                </sequence>
1192                                <attribute name="dimension" type="positiveInteger" use="required" fixed="1"/>
1193                        </restriction>
1194                </complexContent>
1195        </complexType>
1196        <element name="TrajectoryDomain" type="csml:TrajectoryDomainType" substitutionGroup="csml:ReferenceableGrid"/>
1197        <complexType name="TrajectoryDomainPropertyType">
1198                <sequence minOccurs="0">
1199                        <element ref="csml:TrajectoryDomain"/>
1200                </sequence>
1201                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
1202                <attributeGroup ref="gml:AssociationAttributeGroup"/>
1203        </complexType>
1204        <!--====================================================================== -->
1205        <complexType name="TrajectoryCoverageDomainType">
1206                <complexContent>
1207                        <restriction base="gml:DomainSetType">
1208                                <sequence minOccurs="0">
1209                                        <choice>
1210                                                <element ref="csml:TrajectoryDomain"/>
1211                                        </choice>
1212                                </sequence>
1213                        </restriction>
1214                </complexContent>
1215        </complexType>
1216        <element name="trajectoryDomain" type="csml:TrajectoryCoverageDomainType" substitutionGroup="gml:domainSet"/>
1217        <!--====================================================================== -->
1218        <complexType name="TrajectoryCoverageType">
1219                <complexContent>
1220                        <restriction base="gml:AbstractDiscreteCoverageType">
1221                                <sequence>
1222                                        <group ref="gml:StandardObjectProperties"/>
1223                                        <element ref="gml:boundedBy" minOccurs="0"/>
1224                                        <element ref="csml:trajectoryDomain"/>
1225                                        <element ref="gml:rangeSet"/>
1226                                        <element ref="gml:coverageFunction" minOccurs="0"/>
1227                                </sequence>
1228                        </restriction>
1229                </complexContent>
1230        </complexType>
1231        <element name="TrajectoryCoverage" type="csml:TrajectoryCoverageType" substitutionGroup="gml:AbstractDiscreteCoverage"/>
1232        <complexType name="TrajectoryCoveragePropertyType">
1233                <sequence minOccurs="0">
1234                        <element ref="csml:TrajectoryCoverage"/>
1235                </sequence>
1236                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
1237                <attributeGroup ref="gml:AssociationAttributeGroup"/>
1238        </complexType>
1239        <!--====================================================================== -->
1240        <complexType name="TrajectoryFeatureType">
1241                <complexContent>
1242                        <extension base="gml:AbstractFeatureType">
1243                                <sequence>
1244                                        <element name="value" type="csml:TrajectoryCoveragePropertyType"/>
1245                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
1246                                </sequence>
1247                        </extension>
1248                </complexContent>
1249        </complexType>
1250        <element name="TrajectoryFeature" type="csml:TrajectoryFeatureType" substitutionGroup="gml:AbstractFeature"/>
1251        <complexType name="TrajectoryFeaturePropertyType">
1252                <sequence minOccurs="0">
1253                        <element ref="csml:TrajectoryFeature"/>
1254                </sequence>
1255                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
1256                <attributeGroup ref="gml:AssociationAttributeGroup"/>
1257        </complexType>
1258        <!--====================================================================== -->
1259</schema>
Note: See TracBrowser for help on using the repository browser.