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

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

Replaced Profile>OldProfile? (uses inefficient gml:MultiPoint in domain), and AlternateProfile?->Profile (uses more efficient  csml: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:csml="http://ndg.nerc.ac.uk/csml" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml" xmlns:swe="http://www.opengis.net/swe" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.9">
3        <annotation>
4                <documentation>Main CSML schema file - includes domain geometries, coverage classes, feature types etc.</documentation>
5        </annotation>
6        <import namespace="http://www.opengis.net/gml" schemaLocation="gml/gml.xsd"/>
7        <import namespace="http://www.opengis.net/swe" schemaLocation="sweCommon/phenomenon.xsd"/>
8        <!--====================================================================== -->
9        <!--==== 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        <!--==== Od Profile Feature Type (using compliant GML MultiPoint) ====-->
598        <!--====================================================================== -->
599        <complexType name="OldProfileDomainType">
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="OldProfileDomain" type="csml:OldProfileDomainType" substitutionGroup="gml:MultiPoint"/>
619        <complexType name="OldProfileDomainPropertyType">
620                <sequence minOccurs="0">
621                        <element ref="csml:OldProfileDomain"/>
622                </sequence>
623                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
624                <attributeGroup ref="gml:AssociationAttributeGroup"/>
625        </complexType>
626        <!--====================================================================== -->
627        <complexType name="OldProfileCoverageDomainType">
628                <complexContent>
629                        <restriction base="gml:MultiPointDomainType">
630                                <sequence minOccurs="0">
631                                        <element ref="csml:OldProfileDomain"/>
632                                </sequence>
633                        </restriction>
634                </complexContent>
635        </complexType>
636        <element name="oldProfileDomain" type="csml:OldProfileCoverageDomainType" substitutionGroup="gml:multiPointDomain"/>
637        <!--====================================================================== -->
638        <complexType name="OldProfileCoverageType">
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:oldProfileDomain"/>
645                                        <element ref="gml:rangeSet"/>
646                                        <element ref="gml:coverageFunction" minOccurs="0"/>
647                                </sequence>
648                        </restriction>
649                </complexContent>
650        </complexType>
651        <element name="OldProfileCoverage" type="csml:OldProfileCoverageType" substitutionGroup="gml:MultiPointCoverage"/>
652        <complexType name="OldProfileCoveragePropertyType">
653                <sequence minOccurs="0">
654                        <element ref="csml:OldProfileCoverage"/>
655                </sequence>
656                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
657                <attributeGroup ref="gml:AssociationAttributeGroup"/>
658        </complexType>
659        <!--====================================================================== -->
660        <complexType name="OldProfileFeatureType">
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:OldProfileCoveragePropertyType"/>
667                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
668                                </sequence>
669                        </extension>
670                </complexContent>
671        </complexType>
672        <element name="OldProfileFeature" type="csml:OldProfileFeatureType" substitutionGroup="gml:AbstractFeature"/>
673        <complexType name="OldProfileFeaturePropertyType">
674                <sequence minOccurs="0">
675                        <element ref="csml:OldProfileFeature"/>
676                </sequence>
677                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
678                <attributeGroup ref="gml:AssociationAttributeGroup"/>
679        </complexType>
680        <!--====================================================================== -->
681        <!--====================================================================== -->
682        <!--==== CSML Profile Feature Type (using more efficient CSML MultiPoint)====-->
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="ProfileDomainType">
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="profileDomain" type="csml:ProfileDomainType" substitutionGroup="gml:domainSet"/>
712        <!--====================================================================== -->
713        <complexType name="ProfileCoverageType">
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:profileDomain"/>
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="ProfileCoverage" type="csml:ProfileCoverageType" substitutionGroup="gml:AbstractDiscreteCoverage"/>
736        <complexType name="ProfileCoveragePropertyType">
737                <sequence minOccurs="0">
738                        <element ref="csml:ProfileCoverage"/>
739                </sequence>
740                <attributeGroup ref="gml:OwnershipAttributeGroup"/>
741                <attributeGroup ref="gml:AssociationAttributeGroup"/>
742        </complexType>
743        <!--====================================================================== -->
744        <complexType name="ProfileFeatureType">
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:ProfileCoveragePropertyType"/>
751                                        <element name="parameter" type="swe:PhenomenonPropertyType"/>
752                                </sequence>
753                        </extension>
754                </complexContent>
755        </complexType>
756        <element name="ProfileFeature" type="csml:ProfileFeatureType" substitutionGroup="gml:AbstractFeature"/>
757        <complexType name="ProfileFeaturePropertyType">
758                <sequence minOccurs="0">
759                        <element ref="csml:ProfileFeature"/>
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.