# Geography Markup Language

Geography Markup Language, kurz GML, ist eine Auszeichnungssprache zum Austausch raumbezogener Objekte (Features). GML ist eine Anwendung von XML und durch Schemabeschreibungen (XML-Schemadateien *.xsd) festgelegt. GML erlaubt die Übermittlung von Objekten mit Attributen, Relationen und Geometrien im Bereich der Geodaten unter Einbeziehung von nicht-konventionellen Daten, wie Sensordaten.
GML wird vom Open Geospatial Consortium (OGC) gemeinsam mit dem ISO TC 211, dem technischen Komitee der ISO zur Festlegung digitaler geobezogener Daten, festgelegt. Inzwischen liegt GML in der Version 3.2.1 vor. Wie alle Ergebnisse des OGC-Prozesses ist die Dokumentation für jedermann frei verfügbar.

## Normkonformität

Mit Version 3.2 ist GML nunmehr auch auf die Internationalen Normen der ISO 191xx – Serie zurückgeführt. Die OGC-Spezifikation für GML 3.2 ist identisch mit ISO 19136 und damit auch selbst eine offizielle Internationale Norm der ISO. GML berücksichtigt damit vor allem auch die Festlegungen zu Raumbezugsgrundformen in ISO 19107.

## Das GML-Modell

Ursprünglich basierte das GML-Modell auf dem Resource Description Framework (RDF) des World Wide Web Consortiums (W3C). Später führte das OGC XML-Schemata in GML ein, um die Verknüpfung der zahlreichen unterschiedlichen relationalen Datenbanken mit Geodaten zu erleichtern. Das resultierende XML-Schema-basierte GML behält viele RDF-Elemente, einschließlich des Konzeptes der Vererbung von Eigenschaften des übergeordneten Objekts und der Anwendung von Referenzen auf nicht-lokale Eigenschaften (remote property references).
GML weist eine reichhaltige Menge von Primitiven auf, die zum Aufbau anwendungsbezogener Schemata oder Anwendungssprachen dienen. Die Bestandteile (Pakete) umfassen:
* Objekt (feature)
* Geometrie (geometry)
* Koordinatenreferenzsystem (coordinate reference system)
* Zeit (time)
* dynamisches Objekt (dynamic object)
* Überdeckung unter Einschluss von geographischen Abbildungen (coverage)
* Maßeinheit (unit of measure)
* Gestaltungsregeln für die Kartendarstellung (map presentation styling rules)

## Profile

GML-Profile sind logische Einschränkungen von GML und können durch ein Dokument, ein XML-Schema oder beides ausgedrückt werden. Diese Profile dienen der leichteren Einführung des GML-Standards. Die folgenden Profile wurden für den allgemeinen Gebrauch veröffentlicht oder vorgeschlagen:
* ein Punkt-Profil (point profile) mit punktgeometrischen Daten ohne Annahme der vollen GML-Grammatik
* ein einfaches Objektprofil für GML (GML simple feature profile), das die Abfrage und die Behandlung von Vektorobjekten unterstützt, z. B. via Web Feature Services (WFS)
* ein GML-Profil für JPEG 2000 (GML in JPEG 2000, GMLJP2)
* ein GML-Profil für RSS (GeoRSS GML)
Profile in GML sind keine Anwendungsschemata (application schemas): während Profile Element der GML-Namespaces sind und eingeschränkte Untermengen von GML beschreiben, sind Anwendungsschemata XML-Vokabularien zur Anwendung von GML und befinden sich im Ziel-Namespace, der von der Anwendung vorgegeben wird. Anwendungsschemata können die volle Menge der GML-Schemata oder spezifische GML-Profile benutzen. Profile werden oft definiert, um GML-basierte Sprachen für spezielle Anwendungsbereiche zu implementieren, wie z. B. für den Luftverkehr, nautische Kartierung oder das Management natürlicher Ressourcen.
Ab der Version 3 von GML sind zwei XSLT-Skripts enthalten (meist als Untermengen-Werkzeug, „subset tool“ bezeichnet), mit deren Hilfe GML-Profile aufgebaut werden können.

## Anwendungsschemata

Anwendungsschemata dienen der geeigneten Darstellung geobezogener Daten für einen speziellen Anwendungsbereich mit Hilfe von GML. Dieses Schema beschreibt die Objekttypen, deren Daten präsentiert und die von der Anwendung verarbeitet werden sollen.

## GML-Geometrien

GML codiert GML-Geometrien (GML geometries oder geometric characteristics) geographischer Objekte als Elemente innerhalb von GML-Dokumenten. Die Geometrien der Objekte können solche Dinge, wie Straßen, Flüsse oder Brücken, beschreiben.
Die wichtigsten Objekttypen (GML Primitive) in GML 1.0 und 2.0 sind
* Point
* LineString
* Polygon
Dieses Modell ist identisch mit dem von KML.

## Anwendungen

GML ist einer der XML-Standards für die GeoWeb-Infrastruktur, mit deren Hilfe Internet-fähige Geräte Zugriff auf geobezogene Daten erhalten, wie z. B. Verkehrsbedingungen und die Lage von Geschäften. GML wird auch in der Normbasierten Austauschschnittstelle (NAS) angewendet.

## GML und KML

KML steht für Keyhole Markup Language und wird über Google weltweit verbreitet. GML ist geeignet, den Inhalt geobezogener Dokumente zu erschließen, indem es ein Spektrum von Anwendungsobjekten und deren Eigenschaften (wie Brücken, Straßen, Bojen und Fahrzeugen) beschreibt. KML dagegen steht für die Visualisierung geographischer Informationen und kann verwendet werden, um GML-Inhalte darzustellen. Andererseits kann auch GML so erweitert werden, dass es Inhalte in der Art von KML darstellen kann.