1. See ISO/DIS 19136 8.2. W3C XML Schema provides a set of built-in "simple" types which define methods for representing values as literals without internal markup. These are described in W3C XML Schema Part 2:2001. Because GML is an XML encoding in which instances are described using XML Schema, these simple types shall be used as far as possible and practical for the representation of data types. W3C XML Schema also provides methods for defining - new simple types by restriction and combination of the built-in types, and - complex types, with simple content, but which also have XML attributes. In many places where a suitable built-in simple type is not available, simple content types derived using the XML Schema mechanisms are used for the representation of data types in GML. A set of these simple content types that are required by several GML components are defined in the basicTypes schema, as well as some elements based on them. These are primarily based around components needed to record amounts, counts, flags and terms, together with support for exceptions or null values. GML is an OGC Standard. Copyright (c) 2007,2010 Open Geospatial Consortium, Inc. All Rights Reserved. To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .

1.1. Simple type definitions

NCNameList

List(xs:NCName)

A type for a list of values of the respective simple type.

NameList

List(xs:Name)

A type for a list of values of the respective simple type.

NameOrNilReason

Extension to the respective XML Schema built-in simple type to allow a choice of either a value of the built-in simple type or a reason for a nil value.

inapplicable

-

missing

-

template

-

unknown

-

withheld

-

NameOrNilReason

Extension to the respective XML Schema built-in simple type to allow a choice of either a value of the built-in simple type or a reason for a nil value.

inapplicable

-

missing

-

template

-

unknown

-

withheld

-

NameOrNilReasonList

A type for a list of values of the respective simple type.

inapplicable

-

missing

-

template

-

unknown

-

withheld

-

NilReasonEnumeration

-

inapplicable

-

missing

-

template

-

unknown

-

withheld

-

NilReasonType

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.

inapplicable

-

missing

-

template

-

unknown

-

withheld

-

QNameList

List(xs:QName)

A type for a list of values of the respective simple type.

SignType

gml:SignType is a convenience type with values "+" (plus) and "-" (minus).

-

-

+

-

UomIdentifier

Union({xs:string: pattern=#[^: \n\r\t]+#}, {xs:anyURI: pattern=#([a-zA-Z][a-zA-Z0-9\-\+\.]*:|\.\./|\./|#).*#})

The simple type gml:Uomidentifier defines the syntax and value space of the unit of measure identifier.

UomSymbol

xs:string: pattern=#[^: \n\r\t]+#

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.

UomURI

xs:anyURI: pattern=#([a-zA-Z][a-zA-Z0-9\-\+\.]*:|\.\./|\./|#).*#

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.

booleanList

List(xs:boolean)

A type for a list of values of the respective simple type.

booleanOrNilReason

Extension to the respective XML Schema built-in simple type to allow a choice of either a value of the built-in simple type or a reason for a nil value.

inapplicable

-

missing

-

template

-

unknown

-

withheld

-

booleanOrNilReasonList

A type for a list of values of the respective simple type.

inapplicable

-

missing

-

template

-

unknown

-

withheld

-

doubleList

List(xs:double)

A type for a list of values of the respective simple type.

doubleOrNilReason

Extension to the respective XML Schema built-in simple type to allow a choice of either a value of the built-in simple type or a reason for a nil value.

inapplicable

-

missing

-

template

-

unknown

-

withheld

-

doubleOrNilReasonList

A type for a list of values of the respective simple type.

inapplicable

-

missing

-

template

-

unknown

-

withheld

-

integerList

List(xs:integer)

A type for a list of values of the respective simple type.

integerOrNilReason

Extension to the respective XML Schema built-in simple type to allow a choice of either a value of the built-in simple type or a reason for a nil value.

inapplicable

-

missing

-

template

-

unknown

-

withheld

-

integerOrNilReasonList

A type for a list of values of the respective simple type.

inapplicable

-

missing

-

template

-

unknown

-

withheld

-

stringOrNilReason

Extension to the respective XML Schema built-in simple type to allow a choice of either a value of the built-in simple type or a reason for a nil value.

inapplicable

-

missing

-

template

-

unknown

-

withheld

-

1.2. The complex type gml:CodeListType

gml:CodeListType

gml:NameList

A type for a list of values of the respective simple type.

Inherited content is followed by own content:

@codeSpace

1:1

1.3. The complex type gml:CodeOrNilReasonListType

gml:CodeOrNilReasonListType

gml:NameOrNilReasonList

A type for a list of values of the respective simple type.

Inherited content is followed by own content:

@codeSpace

1:1

1.4. The complex type gml:CodeType

gml:CodeType

xs:string

-

Inherited content is followed by own content:

@codeSpace

1:1

1.5. The complex type gml:CodeWithAuthorityType

gml:CodeWithAuthorityType

gml:CodeType

-

The element content starts with items inherited from the base type:

@codeSpace

1:1

Base type content is restricted, resulting in the following own content:

@codeSpace

1:1

1.6. The complex type gml:CoordinatesType

gml:CoordinatesType

xs:string

-

Inherited content is followed by own content:

@decimal

1:1

@cs

1:1

@ts

1:1

1.7. The complex type gml:MeasureListType

gml:MeasureListType

gml:doubleList

A type for a list of values of the respective simple type.

Inherited content is followed by own content:

@uom

1:1

gml:UomIdentifier

1.8. The complex type gml:MeasureOrNilReasonListType

gml:MeasureOrNilReasonListType

gml:doubleOrNilReasonList

A type for a list of values of the respective simple type.

Inherited content is followed by own content:

@uom

1:1

gml:UomIdentifier

1.9. The complex type gml:MeasureType

gml:MeasureType

xs:double

-

Inherited content is followed by own content:

@uom

1:1

gml:UomIdentifier

2. See ISO/DIS 19136 Clause 10. Any geometry element that inherits the semantics of AbstractGeometryType may be viewed as a set of direct positions. All of the classes derived from AbstractGeometryType inherit an optional association to a coordinate reference system. All direct positions shall directly or indirectly be associated with a coordinate reference system. When geometry elements are aggregated in another geometry element (such as a MultiGeometry or GeometricComplex), which already has a coordinate reference system specified, then these elements are assumed to be in that same coordinate reference system unless otherwise specified. The geometry model distinguishes geometric primitives, aggregates and complexes. Geometric primitives, i.e. instances of a subtype of AbstractGeometricPrimitiveType, will be open, that is, they will not contain their boundary points; curves will not contain their end points, surfaces will not contain their boundary curves, and solids will not contain their bounding surfaces. GML is an OGC Standard. Copyright (c) 2007,2010 Open Geospatial Consortium, Inc. All Rights Reserved. To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .

2.1. The toplevel element gml:AbstractCurve

gml:AbstractCurve

+gml:AbstractCurveType (↔ gml:AbstractGeometricPrimitive)

The AbstractCurve element is the abstract head of the substitution group for all (continuous) curve elements.

2.2. The toplevel element gml:AbstractGeometricPrimitive

gml:AbstractGeometricPrimitive

+gml:AbstractGeometricPrimitiveType (↔ gml:AbstractGeometry)

The AbstractGeometricPrimitive element is the abstract head of the substitution group for all (pre- and user-defined) geometric primitives.

2.3. The toplevel element gml:AbstractGeometry

gml:AbstractGeometry

+gml:AbstractGeometryType (↔ gml:AbstractGML)

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.

2.4. The toplevel element gml:curveProperty

gml:curveProperty

+gml:CurvePropertyType

This property element either references a curve via the XLink-attributes or contains the curve element. curveProperty is the predefined property which may be used by GML Application Schemas whenever a GML feature has a property with a value that is substitutable for AbstractCurve.

2.5. The toplevel element gml:Envelope

gml:Envelope

+gml:EnvelopeType (↔ gml:AbstractObject)

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.

2.6. The toplevel element gml:LineString

gml:LineString

+gml:LineStringType (↔ gml:AbstractCurve)

A LineString is a special curve that consists of a single segment with linear interpolation. It is defined by two or more coordinate tuples, with linear interpolation between them. The number of direct positions in the list shall be at least two.

2.7. The toplevel element gml:Point

gml:Point

+gml:PointType (↔ gml:AbstractGeometricPrimitive)

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.

2.8. The toplevel element gml:pointProperty

gml:pointProperty

+gml:PointPropertyType

This property element either references a point via the XLink-attributes or contains the point element. pointProperty is the predefined property which may be used by GML Application Schemas whenever a GML feature has a property with a value that is substitutable for Point.

2.9. The toplevel element gml:pos

2.10. The toplevel element gml:posList

2.11. The toplevel element gml:vector

gml:vector

+gml:VectorType

2.12. The group gml:geometricPositionGroup

gml:geometricPositionGroup

GML supports two different ways to specify a geometric position: either by a direct position (a data type) or a point (a geometric object). pos elements are positions that are "owned" by the geometric primitive encapsulating this geometric position. pointProperty elements contain a point that may be referenced from other geometry elements or reference another point defined elsewhere (reuse of existing points).

The element contains one of the following elements (a-b)

gml:geometricPositionGroup

a

→‍gml:pos

-1:1

>gml:DirectPositionType

b

→‍gml:pointProperty

-1:1

+gml:PointPropertyType

This property element either references a point via the XLink-attributes or contains the point element. pointProperty is the predefined property which may be used by GML Application Schemas whenever a GML feature has a property with a value that is substitutable for Point.

2.13. The group gml:geometricPositionListGroup

gml:geometricPositionListGroup

GML supports two different ways to specify a list of geometric positions: either by a sequence of geometric positions (by reusing the group definition) or a sequence of direct positions (element posList). The posList element allows for a compact way to specify the coordinates of the positions, if all positions are represented in the same coordinate reference system.

The element contains one of the following elements (a-b)

gml:geometricPositionListGroup

a

→‍gml:posList

-1:1

>gml:DirectPositionListType

In case of choice 'b', the element contains one of the following elements (ba-bb)

gml:geometricPositionGroup

ba

→‍gml:pos

-1:1

>gml:DirectPositionType

bb

→‍gml:pointProperty

-1:1

+gml:PointPropertyType

This property element either references a point via the XLink-attributes or contains the point element. pointProperty is the predefined property which may be used by GML Application Schemas whenever a GML feature has a property with a value that is substitutable for Point.

2.14. The complex type gml:AbstractCurveType

gml:AbstractCurveType

gml:AbstractGeometricPrimitiveType

-

The element content starts with items inherited from the base type:

@gml:id

1:1

The attribute gml:id supports provision of a handle for the XML element representing a GML Object. Its use is mandatory for all GML objects. It is of XML type ID, so is constrained to be unique in the XML document within which it occurs.

gml:StandardObjectProperties

→‍gml:descriptionReference

0:1

gml:ReferenceType

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.

→‍gml:identifier

0:1

>gml:CodeWithAuthorityType

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.

→‍gml:name

0:*

>gml:CodeType

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.

@srsName

1:1

@srsDimension

1:1

2.15. The complex type gml:AbstractGeometricPrimitiveType

gml:AbstractGeometricPrimitiveType

gml:AbstractGeometryType

-

The element content starts with items inherited from the base type:

@gml:id

1:1

The attribute gml:id supports provision of a handle for the XML element representing a GML Object. Its use is mandatory for all GML objects. It is of XML type ID, so is constrained to be unique in the XML document within which it occurs.

gml:StandardObjectProperties

→‍gml:descriptionReference

0:1

gml:ReferenceType

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.

→‍gml:identifier

0:1

>gml:CodeWithAuthorityType

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.

→‍gml:name

0:*

>gml:CodeType

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.

@srsName

1:1

@srsDimension

1:1

2.16. The complex type gml:AbstractGeometryType

gml:AbstractGeometryType

gml:AbstractGMLType

-

The element content starts with items inherited from the base type:

@gml:id

1:1

The attribute gml:id supports provision of a handle for the XML element representing a GML Object. Its use is mandatory for all GML objects. It is of XML type ID, so is constrained to be unique in the XML document within which it occurs.

gml:StandardObjectProperties

→‍gml:descriptionReference

0:1

gml:ReferenceType

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.

→‍gml:identifier

0:1

>gml:CodeWithAuthorityType

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.

→‍gml:name

0:*

>gml:CodeType

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.

Inherited content is followed by own content:

@srsName

1:1

@srsDimension

1:1

2.17. The complex type gml:CurveArrayPropertyType

gml:CurveArrayPropertyType

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.

@owns

1:1

→‍gml:AbstractCurve

1:1

+gml:AbstractCurveType

The AbstractCurve element is the abstract head of the substitution group for all (continuous) curve elements.

2.18. The complex type gml:CurvePropertyType

gml:CurvePropertyType

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.

@nilReason

1:1

gml:NilReasonType

@owns

1:1

→‍gml:AbstractCurve

1:1

+gml:AbstractCurveType

The AbstractCurve element is the abstract head of the substitution group for all (continuous) curve elements.

2.19. The complex type gml:DirectPositionListType

gml:DirectPositionListType

gml:doubleList

A type for a list of values of the respective simple type.

Inherited content is followed by own content:

@srsName

1:1

@srsDimension

1:1

@count

1:1

2.20. The complex type gml:DirectPositionType

gml:DirectPositionType

gml:doubleList

A type for a list of values of the respective simple type.

Inherited content is followed by own content:

@srsName

1:1

@srsDimension

1:1

2.21. The complex type gml:EnvelopeType

gml:EnvelopeType

-

@srsName

1:1

@srsDimension

1:1

The element contains one of the following elements (b) or element sequences (a)

a

gml:lowerCorner

-1:1

>gml:DirectPositionType

a

gml:upperCorner

-1:1

>gml:DirectPositionType

b

→‍gml:pos

-2:2

>gml:DirectPositionType

2.22. The complex type gml:GeometricPrimitivePropertyType

gml:GeometricPrimitivePropertyType

A property that has a geometric primitive 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.

@owns

1:1

@nilReason

1:1

gml:NilReasonType

→‍gml:AbstractGeometricPrimitive

1:1

+gml:AbstractGeometricPrimitiveType

The AbstractGeometricPrimitive element is the abstract head of the substitution group for all (pre- and user-defined) geometric primitives.

2.23. The complex type gml:GeometryArrayPropertyType

gml:GeometryArrayPropertyType

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.

@owns

1:1

→‍gml:AbstractGeometry

1:1

+gml:AbstractGeometryType

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.

2.24. The complex type gml:GeometryPropertyType

gml:GeometryPropertyType

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.

@nilReason

1:1

gml:NilReasonType

@owns

1:1

→‍gml:AbstractGeometry

1:1

+gml:AbstractGeometryType

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.

2.25. The complex type gml:LineStringType

gml:LineStringType

gml:AbstractCurveType

-

The element content starts with items inherited from the base type:

@gml:id

1:1

The attribute gml:id supports provision of a handle for the XML element representing a GML Object. Its use is mandatory for all GML objects. It is of XML type ID, so is constrained to be unique in the XML document within which it occurs.

gml:StandardObjectProperties

→‍gml:descriptionReference

0:1

gml:ReferenceType

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.

→‍gml:identifier

0:1

>gml:CodeWithAuthorityType

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.

→‍gml:name

0:*

>gml:CodeType

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.

@srsName

1:1

@srsDimension

1:1

Inherited content is followed by own content:

The element contains one of the following elements (a-b)

In case of choice 'a', the element contains one or more of the following elements (aa-ab)

aa

→‍gml:pos

-1:1

>gml:DirectPositionType

ab

→‍gml:pointProperty

-1:1

+gml:PointPropertyType

This property element either references a point via the XLink-attributes or contains the point element. pointProperty is the predefined property which may be used by GML Application Schemas whenever a GML feature has a property with a value that is substitutable for Point.

b

→‍gml:posList

-1:1

>gml:DirectPositionListType

2.26. The complex type gml:PointArrayPropertyType

gml:PointArrayPropertyType

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.

@owns

1:1

→‍gml:Point

1:1

+gml:PointType

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.

2.27. The complex type gml:PointPropertyType

gml:PointPropertyType

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.

@nilReason

1:1

gml:NilReasonType

@owns

1:1

→‍gml:Point

1:1

+gml:PointType

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.

2.28. The complex type gml:PointType

gml:PointType

gml:AbstractGeometricPrimitiveType

-

The element content starts with items inherited from the base type:

@gml:id

1:1

The attribute gml:id supports provision of a handle for the XML element representing a GML Object. Its use is mandatory for all GML objects. It is of XML type ID, so is constrained to be unique in the XML document within which it occurs.

gml:StandardObjectProperties

→‍gml:descriptionReference

0:1

gml:ReferenceType

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.

→‍gml:identifier

0:1

>gml:CodeWithAuthorityType

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.

→‍gml:name

0:*

>gml:CodeType

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.

@srsName

1:1

@srsDimension

1:1

Inherited content is followed by own content:

The element contains one of the following elements (a)

a

→‍gml:pos

-1:1

>gml:DirectPositionType

2.29. The complex type gml:VectorType

gml:VectorType

gml:DirectPositionType

A type for a list of values of the respective simple type.

The element content starts with items inherited from the base type:

@srsName

1:1

@srsDimension

1:1

3. See ISO/DIS 19136 7.2. The gmlBase schema components establish the GML model and syntax, in particular - a root XML type from which XML types for all GML objects should be derived, - a pattern and components for GML properties, - patterns for collections and arrays, and components for generic collections and arrays, - components for associating metadata with GML objects, - components for constructing definitions and dictionaries. GML is an OGC Standard. Copyright (c) 2007,2010 Open Geospatial Consortium, Inc. All Rights Reserved. To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .

3.1. Simple type definitions

AggregationType

-

set

-

bag

-

sequence

-

array

-

record

-

table

-

3.2. The toplevel element gml:abstractAssociationRole

gml:abstractAssociationRole

+gml:AssociationRoleType

Applying this pattern shall restrict the multiplicity of objects in a property element using this content model to exactly one. An instance of this type shall contain an element representing an object, or serve as a pointer to a remote object. Applying the pattern to define an application schema specific property type allows to restrict - the inline object to specified object types, - the encoding to "by-reference only" (see 7.2.3.7), - the encoding to "inline only" (see 7.2.3.8).

3.3. The toplevel element gml:AbstractGML

gml:AbstractGML

+gml:AbstractGMLType (↔ gml:AbstractObject)

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.

3.4. The toplevel element gml:abstractInlineProperty

gml:abstractInlineProperty

+gml:InlinePropertyType

gml:abstractInlineProperty may be used as the head of a subtitution group of more specific elements providing a value inline.

3.5. The toplevel element gml:AbstractObject

gml:AbstractObject

-

3.6. The toplevel element gml:abstractReference

gml:abstractReference

+gml:ReferenceType

gml:abstractReference may be used as the head of a subtitution group of more specific elements providing a value by-reference.

3.7. The toplevel element gml:abstractStrictAssociationRole

gml:abstractStrictAssociationRole

+gml:AssociationRoleType

This element shows how an element declaration may include a Schematron constraint to limit the property to act in either inline or by-reference mode, but not both.

3.8. The toplevel element gml:associationName

gml:associationName

xs:string

3.9. The toplevel element gml:defaultCodeSpace

gml:defaultCodeSpace

xs:anyURI

3.10. The toplevel element gml:descriptionReference

gml:descriptionReference

+gml:ReferenceType

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.

3.11. The toplevel element gml:gmlProfileSchema

gml:gmlProfileSchema

xs:anyURI

3.12. The toplevel element gml:identifier

gml:identifier

+gml:CodeWithAuthorityType

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.

3.13. The toplevel element gml:name

gml:name

+gml:CodeType

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.

3.14. The toplevel element gml:reversePropertyName

gml:reversePropertyName

xs:string

If the value of an object property is another object and that object contains also a property for the association between the two objects, then this name of the reverse property may be encoded in a gml:reversePropertyName element in an appinfo annotation of the property element to document the constraint between the two properties. The value of the element shall contain the qualified name of the property element.

3.15. The toplevel element gml:targetElement

gml:targetElement

xs:string

3.16. The group gml:StandardObjectProperties

gml:StandardObjectProperties

-

gml:StandardObjectProperties

→‍gml:descriptionReference

0:1

gml:ReferenceType

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.

→‍gml:identifier

0:1

>gml:CodeWithAuthorityType

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.

→‍gml:name

0:*

>gml:CodeType

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.

3.17. The complex type gml:AbstractGMLType

gml:AbstractGMLType

-

@gml:id

1:1

The attribute gml:id supports provision of a handle for the XML element representing a GML Object. Its use is mandatory for all GML objects. It is of XML type ID, so is constrained to be unique in the XML document within which it occurs.

gml:StandardObjectProperties

→‍gml:descriptionReference

0:1

gml:ReferenceType

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.

→‍gml:identifier

0:1

>gml:CodeWithAuthorityType

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.

→‍gml:name

0:*

>gml:CodeType

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.

3.18. The complex type gml:AbstractMemberType

gml:AbstractMemberType

To create a collection of GML Objects that are not all features, a property type shall be derived by extension from gml:AbstractMemberType. This abstract property type is intended to be used only in object types where software shall be able to identify that an instance of such an object type is to be interpreted as a collection of objects. By default, this abstract property type does not imply any ownership of the objects in the collection. The owns attribute of gml:OwnershipAttributeGroup may be used on a property element instance to assert ownership of an object in the collection. A collection shall not own an object already owned by another object.

@owns

1:1

3.19. The complex type gml:AbstractMetadataPropertyType

gml:AbstractMetadataPropertyType

To associate metadata described by any XML Schema with a GML object, a property element shall be defined whose content model is derived by extension from gml:AbstractMetadataPropertyType. The value of such a property shall be metadata. The content model of such a property type, i.e. the metadata application schema shall be specified by the GML Application Schema. By default, this abstract property type does not imply any ownership of the metadata. The owns attribute of gml:OwnershipAttributeGroup may be used on a metadata property element instance to assert ownership of the metadata. If metadata following the conceptual model of ISO 19115 is to be encoded in a GML document, the corresponding Implementation Specification specified in ISO/TS 19139 shall be used to encode the metadata information.

@owns

1:1

3.20. The complex type gml:AssociationRoleType

gml:AssociationRoleType

-

@owns

1:1

@nilReason

1:1

gml:NilReasonType

3.21. The complex type gml:InlinePropertyType

gml:InlinePropertyType

-

@owns

1:1

3.22. The complex type gml:ReferenceType

gml:ReferenceType

gml:ReferenceType is intended to be used in application schemas directly, if a property element shall use a "by-reference only" encoding.

@owns

1:1

@nilReason

1:1

gml:NilReasonType

4. See ISO/DIS 19136 Clause 10. GML is an OGC Standard. Copyright (c) 2007,2010 Open Geospatial Consortium, Inc. All Rights Reserved. To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .

4.1. The toplevel element gml:AbstractRing

gml:AbstractRing

+gml:AbstractRingType (↔ gml:AbstractObject)

An abstraction of a ring to support surface boundaries of different complexity. The AbstractRing element is the abstract head of the substitution group for all closed boundaries of a surface patch.

4.2. The toplevel element gml:AbstractSurface

gml:AbstractSurface

+gml:AbstractSurfaceType (↔ gml:AbstractGeometricPrimitive)

The AbstractSurface element is the abstract head of the substitution group for all (continuous) surface elements.

4.3. The toplevel element gml:exterior

gml:exterior

+gml:AbstractRingPropertyType

A boundary of a surface consists of a number of rings. In the normal 2D case, one of these rings is distinguished as being the exterior boundary. In a general manifold this is not always possible, in which case all boundaries shall be listed as interior boundaries, and the exterior will be empty.

4.4. The toplevel element gml:interior

gml:interior

+gml:AbstractRingPropertyType

A boundary of a surface consists of a number of rings. The "interior" rings separate the surface / surface patch from the area enclosed by the rings.

4.5. The toplevel element gml:LinearRing

gml:LinearRing

+gml:LinearRingType (↔ gml:AbstractRing)

A LinearRing is defined by four or more coordinate tuples, with linear interpolation between them; the first and last coordinates shall be coincident. The number of direct positions in the list shall be at least four.

4.6. The toplevel element gml:Polygon

gml:Polygon

+gml:PolygonType (↔ gml:AbstractSurface)

A Polygon is a special surface that is defined by a single surface patch (see D.3.6). The boundary of this patch is coplanar and the polygon uses planar interpolation in its interior. The elements exterior and interior describe the surface boundary of the polygon.

4.7. The toplevel element gml:surfaceProperty

gml:surfaceProperty

+gml:SurfacePropertyType

This property element either references a surface via the XLink-attributes or contains the surface element. surfaceProperty is the predefined property which may be used by GML Application Schemas whenever a GML feature has a property with a value that is substitutable for AbstractSurface.

4.8. The complex type gml:AbstractRingPropertyType

gml:AbstractRingPropertyType

A property with the content model of gml:AbstractRingPropertyType encapsulates a ring to represent the surface boundary property of a surface.

→‍gml:AbstractRing

1:1

gml:AbstractRingType

An abstraction of a ring to support surface boundaries of different complexity. The AbstractRing element is the abstract head of the substitution group for all closed boundaries of a surface patch.

4.9. The complex type gml:AbstractRingType

gml:AbstractRingType

-

4.10. The complex type gml:AbstractSurfaceType

gml:AbstractSurfaceType

gml:AbstractGeometricPrimitiveType

-

The element content starts with items inherited from the base type:

@gml:id

1:1

The attribute gml:id supports provision of a handle for the XML element representing a GML Object. Its use is mandatory for all GML objects. It is of XML type ID, so is constrained to be unique in the XML document within which it occurs.

gml:StandardObjectProperties

→‍gml:descriptionReference

0:1

gml:ReferenceType

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.

→‍gml:identifier

0:1

>gml:CodeWithAuthorityType

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.

→‍gml:name

0:*

>gml:CodeType

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.

@srsName

1:1

@srsDimension

1:1

4.11. The complex type gml:LinearRingPropertyType

gml:LinearRingPropertyType

A property with the content model of gml:LinearRingPropertyType encapsulates a linear ring to represent a component of a surface boundary.

→‍gml:LinearRing

1:1

+gml:LinearRingType

A LinearRing is defined by four or more coordinate tuples, with linear interpolation between them; the first and last coordinates shall be coincident. The number of direct positions in the list shall be at least four.

4.12. The complex type gml:LinearRingType

gml:LinearRingType

gml:AbstractRingType

-

Inherited content is followed by own content:

The element contains one of the following elements (a-b)

In case of choice 'a', the element contains one or more of the following elements (aa-ab)

aa

→‍gml:pos

-1:1

>gml:DirectPositionType

ab

→‍gml:pointProperty

-1:1

+gml:PointPropertyType

This property element either references a point via the XLink-attributes or contains the point element. pointProperty is the predefined property which may be used by GML Application Schemas whenever a GML feature has a property with a value that is substitutable for Point.

b

→‍gml:posList

-1:1

>gml:DirectPositionListType

4.13. The complex type gml:PolygonType

gml:PolygonType

gml:AbstractSurfaceType

-

The element content starts with items inherited from the base type:

@gml:id

1:1

The attribute gml:id supports provision of a handle for the XML element representing a GML Object. Its use is mandatory for all GML objects. It is of XML type ID, so is constrained to be unique in the XML document within which it occurs.

gml:StandardObjectProperties

→‍gml:descriptionReference

0:1

gml:ReferenceType

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.

→‍gml:identifier

0:1

>gml:CodeWithAuthorityType

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.

→‍gml:name

0:*

>gml:CodeType

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.

@srsName

1:1

@srsDimension

1:1

Inherited content is followed by own content:

→‍gml:exterior

0:1

+gml:AbstractRingPropertyType

A boundary of a surface consists of a number of rings. In the normal 2D case, one of these rings is distinguished as being the exterior boundary. In a general manifold this is not always possible, in which case all boundaries shall be listed as interior boundaries, and the exterior will be empty.

→‍gml:interior

0:*

+gml:AbstractRingPropertyType

A boundary of a surface consists of a number of rings. The "interior" rings separate the surface / surface patch from the area enclosed by the rings.

4.14. The complex type gml:SurfaceArrayPropertyType

gml:SurfaceArrayPropertyType

gml:SurfaceArrayPropertyType is a container for an array of surfaces. The elements are always contained in the array property, referencing geometry elements or arrays of geometry elements via XLinks is not supported.

@owns

1:1

→‍gml:AbstractSurface

1:1

+gml:AbstractSurfaceType

The AbstractSurface element is the abstract head of the substitution group for all (continuous) surface elements.

4.15. The complex type gml:SurfacePropertyType

gml:SurfacePropertyType

A property that has a surface 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.

@nilReason

1:1

gml:NilReasonType

@owns

1:1

→‍gml:AbstractSurface

1:1

+gml:AbstractSurfaceType

The AbstractSurface element is the abstract head of the substitution group for all (continuous) surface elements.