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

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

Made  csml:FeatureCollectionType correctly extend gml:AbstractFeatureType.

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