-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathgml3.2Profile_diggs.xsd
executable file
·2888 lines (2854 loc) · 143 KB
/
gml3.2Profile_diggs.xsd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml/3.2"
xmlns:xlink="http://www.w3.org/1999/xlink" targetNamespace="http://www.opengis.net/gml/3.2"
elementFormDefault="qualified" version="3.2.1">
<annotation>
<documentation>GML Subset schema for
,PointPropertyType,CodeType,EngineeringDatum,CoordinateSystemAxis,CurvePropertyType,AbstractGML,AbstractFeature,MultiGeometryPropertyType,MultiPointPropertyType,AssociationAttributeGroup,ReferenceType,EngineeringDatumType,CoordinateSystemAxisType,AbstractGMLType,AbstractFeatureCollectionType,AbstractFeatureType,
written by gmlSubset.xslt. </documentation>
</annotation>
<import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlinks.xsd"/>
<!--DSB: restricted from profile
<import namespace="http://www.isotc211.org/2005/gmd" schemaLocation="./ISO_19139_Schemas/gmd/gmd.xsd"/>
-->
<!-- ================================================= -->
<!-- ================================================= -->
<complexType name="PointPropertyType">
<annotation>
<documentation>A property that has a point as its value domain may either be an appropriate
geometry element encapsulated in an element of this type or an XLink reference to a remote
geometry element (where remote includes geometry elements located elsewhere in the same
document). Either the reference or the contained element shall be given, but neither both
nor none.</documentation>
</annotation>
<sequence minOccurs="0">
<element ref="gml:Point"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
<attributeGroup ref="gml:OwnershipAttributeGroup"/>
</complexType>
<!-- ================================================= -->
<element name="Point" type="gml:PointType" substitutionGroup="gml:AbstractGeometricPrimitive">
<annotation>
<documentation>A Point is defined by a single coordinate tuple. The direct position of a point
is specified by the pos element which is of type DirectPositionType.</documentation>
</annotation>
</element>
<!-- ================================================= -->
<complexType name="PointType">
<complexContent>
<extension base="gml:AbstractGeometricPrimitiveType">
<sequence>
<choice>
<element ref="gml:pos"/>
</choice>
</sequence>
</extension>
</complexContent>
</complexType>
<!-- ================================================= -->
<complexType name="AbstractGeometricPrimitiveType" abstract="true">
<annotation>
<documentation>gml:AbstractGeometricPrimitiveType is the abstract root type of the geometric
primitives. A geometric primitive is a geometric object that is not decomposed further into
other primitives in the system. All primitives are oriented in the direction implied by the
sequence of their coordinate tuples.</documentation>
</annotation>
<complexContent>
<extension base="gml:AbstractGeometryType"/>
</complexContent>
</complexType>
<!-- ================================================= -->
<complexType name="AbstractGeometryType" abstract="true">
<annotation>
<documentation>All geometry elements are derived directly or indirectly from this abstract
supertype. A geometry element may have an identifying attribute (gml:id), one or more names
(elements identifier and name) and a description (elements description and
descriptionReference) . It may be associated with a spatial reference system (attribute
group gml:SRSReferenceGroup). The following rules shall be adhered to: - Every geometry type
shall derive from this abstract type. - Every geometry element (i.e. an element of a
geometry type) shall be directly or indirectly in the substitution group of
AbstractGeometry.</documentation>
</annotation>
<complexContent>
<extension base="gml:AbstractGMLType">
<attributeGroup ref="gml:SRSReferenceGroup"/>
</extension>
</complexContent>
</complexType>
<!-- ================================================= -->
<complexType name="AbstractGMLType" abstract="true">
<sequence>
<group ref="gml:StandardObjectProperties"/>
</sequence>
<attribute ref="gml:id" use="required"/>
</complexType>
<!-- ================================================= -->
<group name="StandardObjectProperties">
<sequence>
<element ref="gml:description" minOccurs="0"/>
<element ref="gml:descriptionReference" minOccurs="0"/>
<element ref="gml:identifier" minOccurs="0"/>
<element ref="gml:name" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</group>
<!-- ================================================= -->
<attribute name="id" type="ID">
<annotation>
<documentation>Database handle for the object. It is of XML type ID, so is constrained to be
unique in the XML document within which it occurs. An external identifier for the object in
the form of a URI may be constructed using standard XML and XPointer methods. This is done
by concatenating the URI for the document, a fragment separator, and the value of the id
attribute. </documentation>
</annotation>
</attribute>
<!-- ================================================= -->
<attributeGroup name="SRSReferenceGroup">
<annotation>
<documentation>The attribute group SRSReferenceGroup is an optional reference to the CRS used
by this geometry, with optional additional information to simplify the processing of the
coordinates when a more complete definition of the CRS is not needed. In general the
attribute srsName points to a CRS instance of gml:AbstractCoordinateReferenceSystem. For
well-known references it is not required that the CRS description exists at the location the
URI points to. If no srsName attribute is given, the CRS shall be specified as part of the
larger context this geometry element is part of.</documentation>
</annotation>
<attribute name="srsName" type="anyURI"/>
<attribute name="srsDimension" type="positiveInteger"/>
<attributeGroup ref="gml:SRSInformationGroup"/>
</attributeGroup>
<!-- ================================================= -->
<attributeGroup name="SRSInformationGroup">
<annotation>
<documentation>The attributes uomLabels and axisLabels, defined in the SRSInformationGroup
attribute group, are optional additional and redundant information for a CRS to simplify the
processing of the coordinate values when a more complete definition of the CRS is not
needed. This information shall be the same as included in the complete definition of the
CRS, referenced by the srsName attribute. When the srsName attribute is included, either
both or neither of the axisLabels and uomLabels attributes shall be included. When the
srsName attribute is omitted, both of these attributes shall be omitted. The attribute
axisLabels is an ordered list of labels for all the axes of this CRS. The gml:axisAbbrev
value should be used for these axis labels, after spaces and forbidden characters are
removed. When the srsName attribute is included, this attribute is optional. When the
srsName attribute is omitted, this attribute shall also be omitted. The attribute uomLabels
is an ordered list of unit of measure (uom) labels for all the axes of this CRS. The value
of the string in the gml:catalogSymbol should be used for this uom labels, after spaces and
forbidden characters are removed. When the axisLabels attribute is included, this attribute
shall also be included. When the axisLabels attribute is omitted, this attribute shall also
be omitted.</documentation>
</annotation>
<attribute name="axisLabels" type="gml:NCNameList"/>
<attribute name="uomLabels" type="gml:NCNameList"/>
</attributeGroup>
<!-- ================================================= -->
<simpleType name="NCNameList">
<annotation>
<documentation>A type for a list of values of the respective simple type.</documentation>
</annotation>
<list itemType="NCName"/>
</simpleType>
<!-- ================================================= -->
<element name="pos" type="gml:DirectPositionType"/>
<!-- ================================================= -->
<complexType name="DirectPositionType">
<annotation>
<documentation>Direct position instances hold the coordinates for a position within some
coordinate reference system (CRS). Since direct positions, as data types, will often be
included in larger objects (such as geometry elements) that have references to CRS, the
srsName attribute will in general be missing, if this particular direct position is included
in a larger element with such a reference to a CRS. In this case, the CRS is implicitly
assumed to take on the value of the containing object's CRS. if no srsName attribute is
given, the CRS shall be specified as part of the larger context this geometry element is
part of, typically a geometric object like a point, curve, etc.</documentation>
</annotation>
<simpleContent>
<extension base="gml:doubleList">
<attributeGroup ref="gml:SRSReferenceGroup"/>
</extension>
</simpleContent>
</complexType>
<!-- ================================================= -->
<simpleType name="doubleList">
<annotation>
<documentation>A type for a list of values of the respective simple type.</documentation>
</annotation>
<list itemType="double"/>
</simpleType>
<!-- ================================================= -->
<!-- ================================================= -->
<!--DSB: restricted from profile
<complexType name="CoordinatesType">
<annotation>
<documentation>This type is deprecated for tuples with ordinate values that are numbers.
CoordinatesType is a text string, intended to be used to record an array of tuples or coordinates.
While it is not possible to enforce the internal structure of the string through schema validation, some optional attributes have been provided in previous versions of GML to support a description of the internal structure. These attributes are deprecated. The attributes were intended to be used as follows:
Decimal symbol used for a decimal point (default=”.” a stop or period)
cs symbol used to separate components within a tuple or coordinate string (default=”,” a comma)
ts symbol used to separate tuples or coordinate strings (default=” “ a space)
Since it is based on the XML Schema string type, CoordinatesType may be used in the construction of tables of tuples or arrays of tuples, including ones that contain mixed text and numeric values.</documentation>
</annotation>
<simpleContent>
<extension base="string">
<attribute name="decimal" type="string" default="."/>
<attribute name="cs" type="string" default=","/>
<attribute name="ts" type="string" default=" "/>
</extension>
</simpleContent>
</complexType>
-->
<!-- ================================================= -->
<element name="AbstractGeometricPrimitive" type="gml:AbstractGeometricPrimitiveType"
abstract="true" substitutionGroup="gml:AbstractGeometry">
<annotation>
<documentation>The AbstractGeometricPrimitive element is the abstract head of the substitution
group for all (pre- and user-defined) geometric primitives.</documentation>
</annotation>
</element>
<!-- ================================================= -->
<element name="AbstractGeometry" type="gml:AbstractGeometryType" abstract="true"
substitutionGroup="gml:AbstractGML">
<annotation>
<documentation>The AbstractGeometry element is the abstract head of the substitution group for
all geometry elements of GML. This includes pre-defined and user-defined geometry elements.
Any geometry element shall be a direct or indirect extension/restriction of
AbstractGeometryType and shall be directly or indirectly in the substitution group of
AbstractGeometry.</documentation>
</annotation>
</element>
<!-- ================================================= -->
<element name="AbstractGML" type="gml:AbstractGMLType" abstract="true"
substitutionGroup="gml:AbstractObject">
<annotation>
<documentation>The abstract element gml:AbstractGML is “any GML object having identity”. It
acts as the head of an XML Schema substitution group, which may include any element which is
a GML feature, or other object, with identity. This is used as a variable in content models
in GML core and application schemas. It is effectively an abstract superclass for all GML
objects.</documentation>
</annotation>
</element>
<!-- ================================================= -->
<element name="AbstractObject" abstract="true">
<annotation>
<documentation>This element has no type defined, and is therefore implicitly (according to the
rules of W3C XML Schema) an XML Schema anyType. It is used as the head of an XML Schema
substitution group which unifies complex content and certain simple content elements used
for datatypes in GML, including the gml:AbstractGML substitution group.</documentation>
</annotation>
</element>
<!-- ================================================= -->
<attributeGroup name="AssociationAttributeGroup">
<annotation>
<documentation>XLink components are the standard method to support hypertext referencing in
XML. An XML Schema attribute group, gml:AssociationAttributeGroup, is provided to support
the use of Xlinks as the method for indicating the value of a property by reference in a
uniform manner in GML.</documentation>
</annotation>
<attributeGroup ref="xlink:simpleLink"/>
<attribute name="nilReason" type="gml:NilReasonType"/>
</attributeGroup>
<!-- ================================================= -->
<simpleType name="NilReasonType">
<annotation>
<documentation>gml:NilReasonType defines a content model that allows recording of an
explanation for a void value or other exception. gml:NilReasonType is a union of the
following enumerated values: - inapplicable there is no value - missing the correct value is
not readily available to the sender of this data. Furthermore, a correct value may not exist
- template the value will be available later - unknown the correct value is not known to,
and not computable by, the sender of this data. However, a correct value probably exists -
withheld the value is not divulged - other:text other brief explanation, where text is a
string of two or more characters with no included spaces and - anyURI which should refer to
a resource which describes the reason for the exception A particular community may choose to
assign more detailed semantics to the standard values provided. Alternatively, the URI
method enables a specific or more complete explanation for the absence of a value to be
provided elsewhere and indicated by-reference in an instance document. gml:NilReasonType is
used as a member of a union in a number of simple content types where it is necessary to
permit a value from the NilReasonType union as an alternative to the primary
type.</documentation>
</annotation>
<union memberTypes="gml:NilReasonEnumeration anyURI"/>
</simpleType>
<!-- ================================================= -->
<simpleType name="NilReasonEnumeration">
<union>
<simpleType>
<restriction base="string">
<enumeration value="inapplicable"/>
<enumeration value="missing"/>
<enumeration value="template"/>
<enumeration value="unknown"/>
<enumeration value="withheld"/>
</restriction>
</simpleType>
<simpleType>
<restriction base="string">
<pattern value="other:\w{2,}"/>
</restriction>
</simpleType>
</union>
</simpleType>
<!-- ================================================= -->
<!-- ================================================= -->
<attributeGroup name="OwnershipAttributeGroup">
<annotation>
<documentation>Encoding a GML property inline vs. by-reference shall not imply anything about
the “ownership” of the contained or referenced GML Object, i.e. the encoding style shall not
imply any “deep-copy” or “deep-delete” semantics. To express ownership over the contained or
referenced GML Object, the gml:OwnershipAttributeGroup attribute group may be added to
object-valued property elements. If the attribute group is not part of the content model of
such a property element, then the value may not be “owned”. When the value of the owns
attribute is "true", the existence of inline or referenced object(s) depends upon the
existence of the parent object.</documentation>
</annotation>
<attribute name="owns" type="boolean" default="false"/>
</attributeGroup>
<!-- ================================================= -->
<complexType name="CodeType">
<annotation>
<documentation>gml:CodeType is a generalized type to be used for a term, keyword or name. It
adds a XML attribute codeSpace to a term, where the value of the codeSpace attribute (if
present) shall indicate a dictionary, thesaurus, classification scheme, authority, or
pattern for the term.</documentation>
</annotation>
<simpleContent>
<extension base="string">
<attribute name="codeSpace" type="anyURI"/>
</extension>
</simpleContent>
</complexType>
<!-- ================================================= -->
<element name="EngineeringDatum" type="gml:EngineeringDatumType"
substitutionGroup="gml:AbstractDatum">
<annotation>
<documentation>gml:EngineeringDatum defines the origin of an engineering coordinate reference
system, and is used in a region around that origin. This origin may be fixed with respect to
the earth (such as a defined point at a construction site), or be a defined point on a
moving vehicle (such as on a ship or satellite).</documentation>
</annotation>
</element>
<!-- ================================================= -->
<complexType name="EngineeringDatumType">
<complexContent>
<extension base="gml:AbstractDatumType"/>
</complexContent>
</complexType>
<!-- ================================================= -->
<complexType name="AbstractDatumType" abstract="true">
<complexContent>
<extension base="gml:IdentifiedObjectType">
<sequence>
<element ref="gml:domainOfValidity" minOccurs="0"/>
<element ref="gml:scope" maxOccurs="unbounded"/>
<element ref="gml:anchorDefinition" minOccurs="0"/>
<element ref="gml:realizationEpoch" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<!-- ================================================= -->
<complexType name="IdentifiedObjectType" abstract="true">
<annotation>
<documentation>gml:IdentifiedObjectType provides identification properties of a CRS-related
object. In gml:DefinitionType, the gml:identifier element shall be the primary name by which
this object is identified, encoding the "name" attribute in the UML model. Zero or more of
the gml:name elements can be an unordered set of "identifiers", encoding the "identifier"
attribute in the UML model. Each of these gml:name elements can reference elsewhere the
object's defining information or be an identifier by which this object can be referenced.
Zero or more other gml:name elements can be an unordered set of "alias" alternative names by
which this CRS related object is identified, encoding the "alias" attributes in the UML
model. An object may have several aliases, typically used in different contexts. The context
for an alias is indicated by the value of its (optional) codeSpace attribute. Any needed
version information shall be included in the codeSpace attribute of a gml:identifier and
gml:name elements. In this use, the gml:remarks element in the gml:DefinitionType shall
contain comments on or information about this object, including data source
information.</documentation>
</annotation>
<complexContent>
<extension base="gml:DefinitionType"/>
</complexContent>
</complexType>
<!-- ================================================= -->
<complexType name="DefinitionType">
<complexContent>
<extension base="gml:DefinitionBaseType">
<sequence>
<element ref="gml:remarks" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<!-- ================================================= -->
<complexType name="DefinitionBaseType">
<complexContent>
<restriction base="gml:AbstractGMLType">
<sequence>
<element ref="gml:description" minOccurs="0"/>
<element ref="gml:descriptionReference" minOccurs="0"/>
<element ref="gml:identifier"/>
<element ref="gml:name" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute ref="gml:id" use="required"/>
</restriction>
</complexContent>
</complexType>
<!-- ================================================= -->
<!-- ================================================= -->
<!-- ================================================= -->
<!-- ================================================= -->
<!-- ================================================= -->
<element name="description" type="gml:StringOrRefType">
<annotation>
<documentation>The value of this property is a text description of the object. gml:description
uses gml:StringOrRefType as its content model, so it may contain a simple text string
content, or carry a reference to an external description. The use of gml:description to
reference an external description has been deprecated and replaced by the
gml:descriptionReference property.</documentation>
</annotation>
</element>
<!-- ================================================= -->
<complexType name="StringOrRefType">
<annotation>
<appinfo>deprecated</appinfo>
</annotation>
<simpleContent>
<extension base="string">
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</extension>
</simpleContent>
</complexType>
<!-- ================================================= -->
<element name="descriptionReference" type="gml:ReferenceType">
<annotation>
<documentation>The value of this property is a remote text description of the object. The
xlink:href attribute of the gml:descriptionReference property references the external
description.</documentation>
</annotation>
</element>
<!-- ================================================= -->
<complexType name="ReferenceType">
<annotation>
<documentation>gml:ReferenceType is intended to be used in application schemas directly, if a
property element shall use a “by-reference only” encoding.</documentation>
</annotation>
<sequence/>
<attributeGroup ref="gml:OwnershipAttributeGroup"/>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ================================================= -->
<element name="identifier" type="gml:CodeWithAuthorityType">
<annotation>
<documentation>Often, a special identifier is assigned to an object by the maintaining
authority with the intention that it is used in references to the object For such cases, the
codeSpace shall be provided. That identifier is usually unique either globally or within an
application domain. gml:identifier is a pre-defined property for such
identifiers.</documentation>
</annotation>
</element>
<!-- ================================================= -->
<!-- ================================================= -->
<complexType name="CodeWithAuthorityType">
<annotation>
<documentation> gml:CodeWithAuthorityType requires that the codeSpace attribute is provided in
an instance. </documentation>
</annotation>
<simpleContent>
<restriction base="gml:CodeType">
<attribute name="codeSpace" type="anyURI" use="required"/>
</restriction>
</simpleContent>
</complexType>
<!-- ================================================= -->
<element name="name" type="gml:CodeType">
<annotation>
<documentation>The gml:name property provides a label or identifier for the object, commonly a
descriptive name. An object may have several names, typically assigned by different
authorities. gml:name uses the gml:CodeType content model. The authority for a name is
indicated by the value of its (optional) codeSpace attribute. The name may or may not be
unique, as determined by the rules of the organization responsible for the codeSpace. In
common usage there will be one name per authority, so a processing application may select
the name from its preferred codeSpace.</documentation>
</annotation>
</element>
<!-- ================================================= -->
<element name="remarks" type="string"/>
<!-- ================================================= -->
<element name="domainOfValidity">
<annotation>
<documentation>The gml:domainOfValidity property implements an association role to an
EX_Extent object as encoded in ISO/TS 19139, either referencing or containing the definition
of that extent.</documentation>
</annotation>
<complexType>
<!--DSB: restricted from profile
<sequence minOccurs="0">
<element ref="gmd:EX_Extent"/>
</sequence>
-->
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
</element>
<!-- ================================================= -->
<element name="scope" type="string">
<annotation>
<documentation>The gml:scope property provides a description of the usage, or limitations of
usage, for which this CRS-related object is valid. If unknown, enter "not
known".</documentation>
</annotation>
</element>
<!-- ================================================= -->
<element name="anchorDefinition" type="gml:CodeType">
<annotation>
<documentation>gml:anchorDefinition is a description, possibly including coordinates, of the
definition used to anchor the datum to the Earth. Also known as the "origin", especially for
engineering and image datums. The codeSpace attribute may be used to reference a source of
more detailed on this point or surface, or on a set of such descriptions. - For a geodetic
datum, this point is also known as the fundamental point, which is traditionally the point
where the relationship between geoid and ellipsoid is defined. In some cases, the
"fundamental point" may consist of a number of points. In those cases, the parameters
defining the geoid/ellipsoid relationship have been averaged for these points, and the
averages adopted as the datum definition. - For an engineering datum, the anchor definition
may be a physical point, or it may be a point with defined coordinates in another CRS.may -
For an image datum, the anchor definition is usually either the centre of the image or the
corner of the image. - For a temporal datum, this attribute is not defined. Instead of the
anchor definition, a temporal datum carries a separate time origin of type
DateTime.</documentation>
</annotation>
</element>
<!-- ================================================= -->
<element name="realizationEpoch" type="date">
<annotation>
<documentation>gml:realizationEpoch is the time after which this datum definition is valid.
See ISO 19111 Table 32 for details.</documentation>
</annotation>
</element>
<!-- ================================================= -->
<element name="AbstractDatum" type="gml:AbstractDatumType" abstract="true"
substitutionGroup="gml:Definition">
<annotation>
<documentation>A gml:AbstractDatum specifies the relationship of a coordinate system to the
earth, thus creating a coordinate reference system. A datum uses a parameter or set of
parameters that determine the location of the origin of the coordinate reference system.
Each datum subtype may be associated with only specific types of coordinate systems. This
abstract complex type shall not be used, extended, or restricted, in a GML Application
Schema, to define a concrete subtype with a meaning equivalent to a concrete subtype
specified in this document.</documentation>
</annotation>
</element>
<!-- ================================================= -->
<element name="Definition" type="gml:DefinitionType" substitutionGroup="gml:AbstractGML">
<annotation>
<documentation>The basic gml:Definition element specifies a definition, which can be included
in or referenced by a dictionary. The content model for a generic definition is a derivation
from gml:AbstractGMLType. The gml:description property element shall hold the definition if
this can be captured in a simple text string, or the gml:descriptionReference property
element may carry a link to a description elsewhere. The gml:identifier element shall
provide one identifier identifying this definition. The identifier shall be unique within
the dictionaries using this definition. The gml:name elements shall provide zero or more
terms and synonyms for which this is the definition. The gml:remarks element shall be used
to hold additional textual information that is not conceptually part of the definition but
is useful in understanding the definition.</documentation>
</annotation>
</element>
<!-- ================================================= -->
<element name="CoordinateSystemAxis" type="gml:CoordinateSystemAxisType"
substitutionGroup="gml:Definition">
<annotation>
<documentation>gml:CoordinateSystemAxis is a definition of a coordinate system
axis.</documentation>
</annotation>
</element>
<!-- ================================================= -->
<complexType name="CoordinateSystemAxisType">
<complexContent>
<extension base="gml:IdentifiedObjectType">
<sequence>
<element ref="gml:axisAbbrev"/>
<element ref="gml:axisDirection"/>
<element ref="gml:minimumValue" minOccurs="0"/>
<element ref="gml:maximumValue" minOccurs="0"/>
<element ref="gml:rangeMeaning" minOccurs="0"/>
</sequence>
<attribute name="uom" type="gml:UomIdentifier" use="required">
<annotation>
<documentation>The uom attribute provides an identifier of the unit of measure used for
this coordinate system axis. The value of this coordinate in a coordinate tuple shall
be recorded using this unit of measure, whenever those coordinates use a coordinate
reference system that uses a coordinate system that uses this axis.</documentation>
</annotation>
</attribute>
</extension>
</complexContent>
</complexType>
<!-- ================================================= -->
<element name="axisAbbrev" type="gml:CodeType">
<annotation>
<documentation>gml:axisAbbrev is the abbreviation used for this coordinate system axis; this
abbreviation is also used to identify the coordinates in the coordinate tuple. The codeSpace
attribute may reference a source of more information on a set of standardized abbreviations,
or on this abbreviation.</documentation>
</annotation>
</element>
<!-- ================================================= -->
<element name="axisDirection" type="gml:CodeWithAuthorityType">
<annotation>
<documentation>gml:axisDirection is the direction of this coordinate system axis (or in the
case of Cartesian projected coordinates, the direction of this coordinate system axis at the
origin). Within any set of coordinate system axes, only one of each pair of terms may be
used. For earth-fixed CRSs, this direction is often approximate and intended to provide a
human interpretable meaning to the axis. When a geodetic datum is used, the precise
directions of the axes may therefore vary slightly from this approximate direction. The
codeSpace attribute shall reference a source of information specifying the values and
meanings of all the allowed string values for this property.</documentation>
</annotation>
</element>
<!-- ================================================= -->
<element name="minimumValue" type="double">
<annotation>
<documentation>The gml:minimumValue and gml:maximumValue properties allow the specification of
minimum and maximum value normally allowed for this axis, in the unit of measure for the
axis. For a continuous angular axis such as longitude, the values wrap-around at this value.
Also, values beyond this minimum/maximum can be used for specified purposes, such as in a
bounding box. A value of minus infinity shall be allowed for the gml:minimumValue element, a
value of plus infiniy for the gml:maximumValue element. If these elements are omitted, the
value is unspecified.</documentation>
</annotation>
</element>
<!-- ================================================= -->
<element name="maximumValue" type="double">
<annotation>
<documentation>The gml:minimumValue and gml:maximumValue properties allow the specification of
minimum and maximum value normally allowed for this axis, in the unit of measure for the
axis. For a continuous angular axis such as longitude, the values wrap-around at this value.
Also, values beyond this minimum/maximum can be used for specified purposes, such as in a
bounding box. A value of minus infinity shall be allowed for the gml:minimumValue element, a
value of plus infiniy for the gml:maximumValue element. If these elements are omitted, the
value is unspecified.</documentation>
</annotation>
</element>
<!-- ================================================= -->
<element name="rangeMeaning" type="gml:CodeWithAuthorityType">
<annotation>
<documentation>gml:rangeMeaning describes the meaning of axis value range specified by
gml:minimumValue and gml:maximumValue. This element shall be omitted when both
gml:minimumValue and gml:maximumValue are omitted. This element should be included when
gml:minimumValue and/or gml:maximumValue are included. If this element is omitted when the
gml:minimumValue and/or gml:maximumValue are included, the meaning is unspecified. The
codeSpace attribute shall reference a source of information specifying the values and
meanings of all the allowed string values for this property.</documentation>
</annotation>
</element>
<!-- ================================================= -->
<simpleType name="UomIdentifier">
<annotation>
<documentation>The simple type gml:UomIdentifer defines the syntax and value space of the unit
of measure identifier.</documentation>
</annotation>
<union memberTypes="gml:UomSymbol gml:UomURI"/>
</simpleType>
<!-- ================================================= -->
<simpleType name="UomSymbol">
<annotation>
<documentation>This type specifies a character string of length at least one, and restricted
such that it must not contain any of the following characters: “:” (colon), “ “ (space),
(newline), (carriage return), (tab). This allows values corresponding to familiar
abbreviations, such as “kg”, “m/s”, etc. It is recommended that the symbol be an identifier
for a unit of measure as specified in the “Unified Code of Units of Measure" (UCUM)
(http://aurora.regenstrief.org/UCUM). This provides a set of symbols and a grammar for
constructing identifiers for units of measure that are unique, and may be easily entered
with a keyboard supporting the limited character set known as 7-bit ASCII. ISO 2955 formerly
provided a specification with this scope, but was withdrawn in 2001. UCUM largely follows
ISO 2955 with modifications to remove ambiguities and other problems.</documentation>
</annotation>
<restriction base="string">
<pattern value="[^: \n\r\t]+"/>
</restriction>
</simpleType>
<!-- ================================================= -->
<simpleType name="UomURI">
<annotation>
<documentation>This type specifies a URI, restricted such that it must start with one of the
following sequences: “#”, “./”, “../”, or a string of characters followed by a “:”. These
patterns ensure that the most common URI forms are supported, including absolute and
relative URIs and URIs that are simple fragment identifiers, but prohibits certain forms of
relative URI that could be mistaken for unit of measure symbol . NOTE It is possible to
re-write such a relative URI to conform to the restriction (e.g. “./m/s”). In an instance
document, on elements of type gml:MeasureType the mandatory uom attribute shall carry a
value corresponding to either - a conventional unit of measure symbol, - a link to a
definition of a unit of measure that does not have a conventional symbol, or when it is
desired to indicate a precise or variant definition.</documentation>
</annotation>
<restriction base="anyURI">
<pattern value="([a-zA-Z][a-zA-Z0-9\-\+\.]*:|\.\./|\./|#).*"/>
</restriction>
</simpleType>
<!-- ================================================= -->
<complexType name="CurvePropertyType">
<annotation>
<documentation>A property that has a curve as its value domain may either be an appropriate
geometry element encapsulated in an element of this type or an XLink reference to a remote
geometry element (where remote includes geometry elements located elsewhere in the same
document). Either the reference or the contained element shall be given, but neither both
nor none.</documentation>
</annotation>
<sequence minOccurs="0">
<element ref="gml:AbstractCurve"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
<attributeGroup ref="gml:OwnershipAttributeGroup"/>
</complexType>
<!-- ================================================= -->
<element name="AbstractCurve" type="gml:AbstractCurveType" abstract="true"
substitutionGroup="gml:AbstractGeometricPrimitive">
<annotation>
<documentation>The AbstractCurve element is the abstract head of the substitution group for
all (continuous) curve elements.</documentation>
</annotation>
</element>
<!-- ================================================= -->
<complexType name="AbstractCurveType" abstract="true">
<annotation>
<documentation>gml:AbstractCurveType is an abstraction of a curve to support the different
levels of complexity. The curve may always be viewed as a geometric primitive, i.e. is
continuous.</documentation>
</annotation>
<complexContent>
<extension base="gml:AbstractGeometricPrimitiveType"/>
</complexContent>
</complexType>
<!-- ================================================= -->
<element name="AbstractFeature" type="gml:AbstractFeatureType" abstract="true"
substitutionGroup="gml:AbstractGML">
<annotation>
<documentation>This abstract element serves as the head of a substitution group which may
contain any elements whose content model is derived from gml:AbstractFeatureType. This may
be used as a variable in the construction of content models. gml:AbstractFeature may be
thought of as “anything that is a GML feature” and may be used to define variables or
templates in which the value of a GML property is “any feature”. This occurs in particular
in a GML feature collection where the feature member properties contain one or multiple
copies of gml:AbstractFeature respectively.</documentation>
</annotation>
</element>
<!-- ================================================= -->
<complexType name="AbstractFeatureType" abstract="true">
<annotation>
<documentation>The basic feature model is given by the gml:AbstractFeatureType. The content
model for gml:AbstractFeatureType adds two specific properties suitable for geographic
features to the content model defined in gml:AbstractGMLType. The value of the gml:boundedBy
property describes an envelope that encloses the entire feature instance, and is primarily
useful for supporting rapid searching for features that occur in a particular location. The
value of the gml:location property describes the extent, position or relative location of
the feature.</documentation>
</annotation>
<complexContent>
<extension base="gml:AbstractGMLType">
<sequence>
<!-- DSB restricted from profile
<element ref="gml:boundedBy" minOccurs="0"/>
-->
</sequence>
</extension>
</complexContent>
</complexType>
<!-- ================================================= -->
<!--DSB: restricted from profile
<element name="boundedBy" type="gml:BoundingShapeType" nillable="true">
<annotation>
<documentation>This property describes the minimum bounding box or rectangle that encloses the entire feature.</documentation>
</annotation>
</element>
-->
<!-- ================================================= -->
<!-- DSB: restricted from profile
<complexType name="BoundingShapeType">
<sequence>
<choice>
<element ref="gml:Envelope"/>
</choice>
</sequence>
<attribute name="nilReason" type="gml:NilReasonType"/>
</complexType>
-->
<!-- ================================================= -->
<!-- DSB: restricted from profile
<element name="Envelope" type="gml:EnvelopeType" substitutionGroup="gml:AbstractObject">
<annotation>
<documentation>Envelope defines an extent using a pair of positions defining opposite corners in arbitrary dimensions. The first direct position is the "lower corner" (a coordinate position consisting of all the minimal ordinates for each dimension for all points within the envelope), the second one the "upper corner" (a coordinate position consisting of all the maximal ordinates for each dimension for all points within the envelope).
The use of the properties “coordinates” and “pos” has been deprecated. The explicitly named properties “lowerCorner” and “upperCorner” shall be used instead.</documentation>
</annotation>
</element>
-->
<!-- ================================================= -->
<complexType name="EnvelopeType">
<choice>
<sequence>
<element name="lowerCorner" type="gml:DirectPositionType"/>
<element name="upperCorner" type="gml:DirectPositionType"/>
</sequence>
<!--DSB: restricted from profile
<element ref="gml:pos" minOccurs="2" maxOccurs="2">
<annotation>
<appinfo>deprecated</appinfo>
</annotation>
</element>
-->
</choice>
<attributeGroup ref="gml:SRSReferenceGroup"/>
</complexType>
<complexType name="MultiGeometryType">
<complexContent>
<extension base="gml:AbstractGeometricAggregateType">
<sequence>
<element ref="gml:geometryMember" minOccurs="0" maxOccurs="unbounded"/>
<element ref="gml:geometryMembers" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="MultiGeometry" type="gml:MultiGeometryType"
substitutionGroup="gml:AbstractGeometricAggregate">
<annotation>
<documentation>gml:MultiGeometry is a collection of one or more GML geometry objects of
arbitrary type. The members of the geometric aggregate may be specified either using the
"standard" property (gml:geometryMember) or the array property (gml:geometryMembers). It is
also valid to use both the "standard" and the array properties in the same
collection.</documentation>
</annotation>
</element>
<element name="geometryMember" type="gml:GeometryPropertyType">
<annotation>
<documentation>This property element either references a geometry element via the
XLink-attributes or contains the geometry element.</documentation>
</annotation>
</element>
<complexType name="GeometryPropertyType">
<annotation>
<documentation>A geometric property may either be any geometry element encapsulated in an
element of this type or an XLink reference to a remote geometry element (where remote
includes geometry elements located elsewhere in the same or another document). Note that
either the reference or the contained element shall be given, but not both or none. If a
feature has a property that takes a geometry element as its value, this is called a geometry
property. A generic type for such a geometry property is
GeometryPropertyType.</documentation>
</annotation>
<sequence minOccurs="0">
<element ref="gml:AbstractGeometry"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
<attributeGroup ref="gml:OwnershipAttributeGroup"/>
</complexType>
<element name="geometryMembers" type="gml:GeometryArrayPropertyType">
<annotation>
<documentation>This property element contains a list of geometry elements. The order of the
elements is significant and shall be preserved when processing the array.</documentation>
</annotation>
</element>
<complexType name="GeometryArrayPropertyType">
<annotation>
<documentation>If a feature has a property which takes an array of geometry elements as its
value, this is called a geometry array property. A generic type for such a geometry property
is GeometryArrayPropertyType. The elements are always contained inline in the array
property, referencing geometry elements or arrays of geometry elements via XLinks is not
supported.</documentation>
</annotation>
<sequence minOccurs="0" maxOccurs="unbounded">
<element ref="gml:AbstractGeometry"/>
</sequence>
<attributeGroup ref="gml:OwnershipAttributeGroup"/>
</complexType>
<complexType name="MultiGeometryPropertyType">
<annotation>
<documentation>A property that has a geometric aggregate as its value domain may either be an
appropriate geometry element encapsulated in an element of this type or an XLink reference
to a remote geometry element (where remote includes geometry elements located elsewhere in
the same document). Either the reference or the contained element shall be given, but
neither both nor none.</documentation>
</annotation>
<sequence minOccurs="0">
<element ref="gml:AbstractGeometricAggregate"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
<attributeGroup ref="gml:OwnershipAttributeGroup"/>
</complexType>
<!-- ================================================= -->
<element name="AbstractGeometricAggregate" type="gml:AbstractGeometricAggregateType"
abstract="true" substitutionGroup="gml:AbstractGeometry">
<annotation>
<documentation>gml:AbstractGeometricAggregate is the abstract head of the substitution group
for all geometric aggregates.</documentation>
</annotation>
</element>
<!-- ================================================= -->
<complexType name="AbstractGeometricAggregateType" abstract="true">
<complexContent>
<extension base="gml:AbstractGeometryType">
<attributeGroup ref="gml:AggregationAttributeGroup"/>
</extension>
</complexContent>
</complexType>
<!-- ================================================= -->
<attributeGroup name="AggregationAttributeGroup">
<annotation>
<documentation>A GML Object Collection is any GML Object with a property element in its
content model whose content model is derived by extension from gml:AbstractMemberType. In
addition, the complex type describing the content model of the GML Object Collection may
also include a reference to the attribute group gml:AggregationAttributeGroup to provide
additional information about the semantics of the object collection. This information may be
used by applications to group GML objects, and optionally to order and index them. The
allowed values for the aggregationType attribute are defined by gml:AggregationType. See 8.4
of ISO/IEC 11404:1996 for the meaning of the values in the enumeration.</documentation>
</annotation>
<attribute name="aggregationType" type="gml:AggregationType"/>
</attributeGroup>
<!-- ================================================= -->
<simpleType name="AggregationType" final="#all">
<restriction base="string">
<enumeration value="set"/>
<enumeration value="bag"/>
<enumeration value="sequence"/>
<enumeration value="array"/>
<enumeration value="record"/>
<enumeration value="table"/>
</restriction>
</simpleType>
<!-- ================================================= -->
<complexType name="MultiPointPropertyType">
<annotation>
<documentation>A property that has a collection of points as its value domain may either be an
appropriate geometry element encapsulated in an element of this type or an XLink reference
to a remote geometry element (where remote includes geometry elements located elsewhere in
the same document). Either the reference or the contained element shall be given, but
neither both nor none.</documentation>
</annotation>
<sequence minOccurs="0">
<element ref="gml:MultiPoint"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
<attributeGroup ref="gml:OwnershipAttributeGroup"/>
</complexType>
<!-- ================================================= -->
<element name="MultiPoint" type="gml:MultiPointType"
substitutionGroup="gml:AbstractGeometricAggregate">
<annotation>
<documentation>A gml:MultiPoint consists of one or more gml:Points. The members of the
geometric aggregate may be specified either using the "standard" property (gml:pointMember)
or the array property (gml:pointMembers). It is also valid to use both the "standard" and
the array properties in the same collection.</documentation>
</annotation>
</element>
<!-- ================================================= -->
<complexType name="MultiPointType">
<complexContent>
<extension base="gml:AbstractGeometricAggregateType">
<sequence>
<element ref="gml:pointMember" minOccurs="0" maxOccurs="unbounded"/>
<element ref="gml:pointMembers" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<!-- ================================================= -->
<element name="pointMember" type="gml:PointPropertyType">
<annotation>
<documentation>This property element either references a Point via the XLink-attributes or
contains the Point element.</documentation>
</annotation>
</element>
<!-- ================================================= -->
<element name="pointMembers" type="gml:PointArrayPropertyType">
<annotation>
<documentation>This property element contains a list of points. The order of the elements is
significant and shall be preserved when processing the array.</documentation>
</annotation>
</element>
<!-- ================================================= -->
<complexType name="PointArrayPropertyType">
<annotation>
<documentation>gml:PointArrayPropertyType is a container for an array of points. The elements
are always contained inline in the array property, referencing geometry elements or arrays
of geometry elements via XLinks is not supported.</documentation>
</annotation>
<sequence minOccurs="0" maxOccurs="unbounded">
<element ref="gml:Point"/>
</sequence>
<attributeGroup ref="gml:OwnershipAttributeGroup"/>
</complexType>
<!-- ================================================= -->
<complexType name="FeaturePropertyType">
<sequence minOccurs="0">
<element ref="gml:AbstractFeature"/>
</sequence>
<attributeGroup ref="gml:OwnershipAttributeGroup"/>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- ============ -->
<complexType name="MultiCurveType">
<complexContent>
<extension base="gml:AbstractGeometricAggregateType">
<sequence>
<element ref="gml:curveMember" minOccurs="0" maxOccurs="unbounded"/>
<element ref="gml:curveMembers" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="curveMember" type="gml:CurvePropertyType"/>
<complexType name="CurveArrayPropertyType">
<annotation>
<documentation>A container for an array of curves. The elements are always contained in the
array property, referencing geometry elements or arrays of geometry elements via XLinks is
not supported.</documentation>
</annotation>