|Introduction | Sustainability Factors | Content Categories | Format Descriptions | Contact|
|Full name||ISO 19136:2007 Geographic information -- Geography Markup Language (GML)|
The Geography Markup Language (GML) is an encoding specification defined by the Open Geospatial Consortium (OGC) to express geographical features. GML serves as a modeling language for geographic systems as well as an open interchange format for geographic transactions on the Internet.
GML is an extensive XML based language designed to express any geographic concept in common usage. The GML specification defines (a) a language for expressing application schemas for feature types and (b) predefined properties and schemas commonly required to describe geographical features, such as polygons, curves, points, coordinate reference systems, units of measure, observations, coverages, etc. Profiles and application schemas are smaller subsets of the GML schema designed by specific information communities to tailor the more extensive GML for a smaller number of users and more targeted uses.
The ISO standard for GML states that "ISO 19136:2007 defines the XML Schema syntax, mechanisms and conventions that:
|Production phase||GML serves as a modeling language for geographic systems as well as an open interchange format for geographic transactions on the Internet|
|Relationship to other formats|
|Defined via||XML_Schema, W3C XML Schema Language|
|Has subtype||GMLJP2, GML in JPEG2000 for Geographic Imagery. A profile of GML.|
|Has subtype||Various profiles and application schemas not described separately on this website at this time. The Simple Features Profile is a generally applicable profile with a geometry limited to points, lines, and polygons. The GMCOV application schema provides a unified method for encoding OGC coverages in GML. Other profiles and application schemas are domain specific.|
|Affinity to||KML_2_2, KML Version 2.2. Formerly the Keyhole Markup Language and made popular by Google, complements GML.|
|LC experience or existing holdings|
An open standard developed by the Open Geospatial Consortium (OGC), an international voluntary consensus standards organization whose members maintain the Geography Markup Language standard. GML was approved as ISO 19136 in 2007. The OGC coordinates with the technical committee ISO TC 211 to maintain consistency between OGC and ISO standards work. See http://www.opengeospatial.org/standards/gml.
|Documentation||ISO 19136:2007 Geographic information -- Geography Markup Language (GML) is available for purchase. The equivalent document from OGC, OGC 07-036, is freely available online. As of October 2011, the current complete version of GML is 3.2.1. OGC 10-129r1 is GML version 3.3, which builds on ISO 19136:2007 and extends it with additional schema components and requirements.|
Since its initial development, its subsequent adoption as an ISO standard and its approval as an Open Geospatial Consortial (OGC) standard, GML has seen increasing use by the geospatial community. Many application schemas and profiles (subsets of the full GML XML schema) have been developed ranging from aeronautics to climate science to digital weather to US Census TIGER data to GML in JPEG2000. A variety of existing and emerging GML application schemas and profiles can be found on the OGC Network page GML Application Schemas and Profiles(link via Internet Archive). GML has seen enough widespread use to be incorporated into GIS industry desktops via ESRI's Desktop Interoperability Extension which uses the GML Simple Features Profile. See An overview of GML support in ArcGIS for more information about ESRI's support of GML, and for further references on how to use GML within ESRI products. Use and understanding of GML has been furthered by the existence of training materials / tutorials such as that of Pennsylvania State's 2012 online tutorial: Lesson 6: Geographic Markup Language. Snowflake Software provides a GML Viewer and training courses.
A number of open source, commercial open source, and commercial products support the transformation of other formats (such as shapefiles, coverages, and grids) into GML encoding and vice versa. These include Safe Software's FME GML Converter and ogc2org - GDAL which uses the OGR Simple Features Library to provide read and sometimes write access to a variety of vector file formats. A partial list of products can be found on the OGC Network's GML to Shape, Shape to GML, etc.(link via Internet Archive) page.
|Licensing and patents||No known license or patent concerns for generation and use of the format. Comments welcome.|
|Transparency||Based on XML and hence readable with a basic text viewer or editor. GML uses an "object-property" model that makes a GML instance document understandable on its own. GML instances have a predictable structure.|
|Self-documentation||Metadata encoded following ISO/TS 19139:2007 (Geographic Information -- Metadata --XML schema implementation) can be embedded within a GML instance.|
|External dependencies||None beyond availability of supporting software.|
|Technical protection considerations||TBD|
|Internet Media Type||text/xml
The concept of feature in GML is a very general one and includes not only conventional "vector" or discrete objects, but also coverages and sensor data. The ability to integrate all forms of geographic information is key to the utility of GML.
Whereas GML is a language to encode geographic content for any application, by describing a spectrum of application objects and their properties (e.g. bridges, roads, buoys, vehicles etc), KML is a language for the visualization of geographic information tailored for Google Earth and other map and globe browsers. KML can be used to carry GML content, and GML can be “styled” to KML for the purposes of presentation. KML instances may be transformed losslessly to GML; however roughly 90% of GML's structures (such as, to name a few, metadata, coordinate reference systems, horizontal and vertical datums, etc.) cannot be transformed to KML. KML Version 2.2 was adopted as an OGC implementation standard in April 2008.
GML is based on work beginning in 1998. Version 1.0 was recommended by OGC in 2000, followed by version 2.0 in 2001, and version 3.0 in late 2002. Version 3.2.1 was submitted to ISO and adopted as ISO 19136 in 2007. An OGC public comment period on a draft of version 3.3 closed in August 2011. Among the enhancements are support for grids and 3D triangular meshes (TINs).