GML er et XML-basert format for utveksling av geografisk informasjon.
GML er spesifisert av OGC og senere standardisert av ISO for GML 3.2.1 OGC/ISO19136
Sentral litteratur:
Veileder for Geography Markup Language (GML)
https://www.geonorge.no/Geodataarbeid/veiledere/
(mange av figurene i denne presentasjonen er hentet fra denne)
Geography Markup Language (GML) Encoding Standard v. 3.2.1
Geography Markup Language (GML) — Extended schemas and encoding rules v. 3.3.0
http://www.opengeospatial.org/standards/gml
Eksempel på GML-objekt fra SOSI objektkatalog,
Ledningsnett v. 4.5, fra side 209: Eksempel på produktspesifikasjon
GML gir oss byggeklosser til å definere objekttyper i XML Skjema. Vi skal se på disse byggeklossene.
Eksempel på GML-objekt fra SOSI objektkatalog,
Ledningsnett v. 4.5, fra side 209: Eksempel på produktspesifikasjon
<VA_Vannledning gml:id="VA_Vannledning.id2011">
<kommune>0101</kommune>
<identifikasjon>
<Identifikasjon>
<lokalId>11</lokalId>
<navnerom>SOSI_VA</navnerom>
</Identifikasjon>
</identifikasjon>
<status codeSpace="http://skjema.geonorge.no/SOSI/produktspesifikasjon/SOSI_Ledning_Vedlegg_1/1.0/LedningsStatus">I bruk</status>
<høydereferanse codeSpace="http://skjema.geonorge.no/SOSI/produktspesifikasjon/SOSI_Ledning_Vedlegg_1/1.0/LedningHøydereferanse">Senter</høydereferanse>
<nettverk ns2:href="#Ledningsnettverk.id2000"/>
<beliggenhet>
<gml:LineString gml:id="id5011" srsName="urn:ogc:def:crs:EPSG::5972" srsDimension="3">
<gml:posList count="2">250495.0 6735215.0 10.0 250440.0 6735420.0 10.0</gml:posList>
</gml:LineString>
</beliggenhet>
<fraKobling ns2:href="#VA_Anboring.id2009-1"/>
<tilKobling ns2:href="#VA_Bakkekran.id2010"/>
<sikkerhetsavstand>1.0</sikkerhetsavstand>
</VA_Vannledning>
Alle elementer uten prefiks tilhører standard navnerom (GML applikasjonskjema):
xmlns=http://skjema.geonorge.no/SOSI/produktspesifikasjon/SOSI_Ledning_Vedlegg_1/1.0
<kommune>
<identifikasjon>
<lokalId>
<navnerom>
<status>
<høydereferanse>
<nettverk>
<beliggenhet>
<fraKobling>
<tilKobling>
<sikkerhetsavstand>
<element name="kommune" type="gml:CodeType">
<element name="identifikasjon" type="app:IdentifikasjonPropertyType"/>
<element name="lokalId" type="string">
<element name="navnerom" type="string">
<element name="status" type="gml:CodeType"/>
<element name="høydereferanse" type="gml:CodeType"/>
<element maxOccurs="unbounded" minOccurs="0" name="nettverk" type="app:LedningsnettverkPropertyType"/>
<element minOccurs="0" name="beliggenhet" type="gml:CurvePropertyType"/>
<element minOccurs="0" name="fraKobling" type="app:KoplingPropertyType"/>
<element minOccurs="0" name="tilKobling" type="app:KoplingPropertyType"/>
<element name="sikkerhetsavstand" type="double">
@<?xml version="1.0" encoding="UTF-8"?>
<gml:FeatureCollection
xmlns="http://skjema.geonorge.no/SOSI/produktspesifikasjon/SOSI_Ledning_Vedlegg_1/1.0"
xmlns:gml="http://www.opengis.net/gml/3.2"
xmlns:ns2="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
gml:id="SOSI_Ledning_Datasett_eksempel_a"
xsi:schemaLocation="http://skjema.geonorge.no/SOSI/produktspesifikasjon/SOSI_Ledning_Vedlegg_1/1.0
http://skjema.geonorge.no/SOSI/produktspesifikasjon/SOSI_Ledning_Vedlegg_1/1.0/SOSI_Ledning_Vedlegg1.xsd">
Hvordan finner vi standard navnerom?
Se i toppen av fil - under xmlns =
Øvrige navnerom - med prefiks:
gml - geography markup language
ns2 - xlink
xsi - XML Schema instans
Hvilke elementer på vannledningsobjektet er merket med gml-navnerom?
<gml:LineString gml:id="id5011" srsName="urn:ogc:def:crs:EPSG::5972" srsDimension="3">
<gml:posList count="2">250495.0 6735215.0 10.0 250440.0 6735420.0 10.0</gml:posList>
</gml:LineString>
Hvor finner vi gml:Linestring og gml:posList definert?
Sjekker navnerom for gml i skjema-dokumentet (xsd-fil):
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:app="http://skjema.geonorge.no/SOSI/produktspesifikasjon/SOSI_Ledning_Vedlegg_1/1.0"
xmlns:gml="http://www.opengis.net/gml/3.2"
elementFormDefault="qualified"
targetNamespace="http://skjema.geonorge.no/SOSI/produktspesifikasjon/SOSI_Ledning_Vedlegg_1/1.0" version="1.0">
<import namespace="http://www.opengis.net/gml/3.2"
schemaLocation="http://schemas.opengis.net/gml/3.2.1/gml.xsd"/>
Går til schemalocation:
<schema xmlns:gml="http://www.opengis.net/gml/3.2"
xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.opengis.net/gml/3.2"
elementFormDefault="qualified" version="3.2.1.2">
<annotation>
<appinfo source="urn:x-ogc:specification:gml:schema-xsd:gml:3.2.1">gml.xsd</appinfo>
<documentation>
GML is an OGC Standard. Copyright (c) 2007,2010 Open Geospatial Consortium.
To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .
</documentation>
</annotation>
<!--
======================================================================
-->
<include schemaLocation="dynamicFeature.xsd"/>
<include schemaLocation="topology.xsd"/>
<include schemaLocation="coverage.xsd"/>
<include schemaLocation="coordinateReferenceSystems.xsd"/>
<include schemaLocation="observation.xsd"/>
<include schemaLocation="temporalReferenceSystems.xsd"/>
<include schemaLocation="deprecatedTypes.xsd"/>
<!--
======================================================================
-->
</schema>
Hvordan finner vi gml:LineString her?
Topp-nivået på gml navnerom:
http://schemas.opengis.net/gml/3.2.1/gml.xsd
gml:LineString er 1D geometri - vi ser i geometryBasic2D
Fra GML-standard, side 412
gml.xsd
dynamicFeature.xsd
feature.xsd
geometryAggregates.xsd
geometryPrimitives.xsd
geometryBasic2d.xsd
geometryBasic0d1d.xsd
Hierarki i xsd-filer:
<complexType name="LineStringType">
<complexContent>
<extension base="gml:AbstractCurveType">
<sequence>
<choice>
<choice minOccurs="2" maxOccurs="unbounded">
<element ref="gml:pos"/>
<element ref="gml:pointProperty"/>
<element ref="gml:pointRep"/>
</choice>
<element ref="gml:posList"/>
<element ref="gml:coordinates"/>
</choice>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="LineString" type="gml:LineStringType" substitutionGroup="gml:AbstractCurve">
<annotation>
<documentation>
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.
</documentation>
</annotation>
</element>
Index of /gml/3.2.1 >>> geometryBasic0d1d.xsd >>> LineString
<complexType name="DirectPositionListType">
<annotation>
<documentation>
posList instances (and other instances with the content model specified by
DirectPositionListType) hold the coordinates for a sequence of direct positions
within the same coordinate reference system (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. The optional attribute count
specifies the number of direct positions in the list. If the attribute count is present
then the attribute srsDimension shall be present, too. The number of entries in the list
is equal to the product of the dimensionality of the coordinate reference system
(i.e. it is a derived value of the coordinate reference system definition)
and the number of direct positions.
</documentation>
</annotation>
<simpleContent>
<extension base="gml:doubleList">
<attributeGroup ref="gml:SRSReferenceGroup"/>
<attribute name="count" type="positiveInteger"/>
</extension>
</simpleContent>
</complexType>
<element name="posList" type="gml:DirectPositionListType"/>
Index of /gml/3.2.1 >>> geometryBasic0d1d.xsd >>> posList
<?xml version="1.0" encoding="UTF-8"?>
<gml:FeatureCollection
xmlns="http://skjema.geonorge.no/SOSI/produktspesifikasjon/SOSI_Ledning_Vedlegg_1/1.0"
xmlns:gml="http://www.opengis.net/gml/3.2"
xmlns:ns2="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
gml:id="SOSI_Ledning_Datasett_eksempel_a"
xsi:schemaLocation="http://skjema.geonorge.no/SOSI/produktspesifikasjon/SOSI_Ledning_Vedlegg_1/1.0
http://skjema.geonorge.no/SOSI/produktspesifikasjon/SOSI_Ledning_Vedlegg_1/1.0/SOSI_Ledning_Vedlegg1.xsd">
<!-- Koordinat-referanse-system EPSG 5972 (ETRS89 / UTM zone 32 + NN2000 height)-->
<!-- Akserekkefølgen på UTM: 5971-5976 bygger på 25831-36+5941
og er east-north-height, enhet er meter -->
<gml:boundedBy>
<gml:Envelope srsName="urn:ogc:def:crs:EPSG::5972" srsDimension="3">
<gml:lowerCorner>250000.0 6735000.0 0.0</gml:lowerCorner>
<gml:upperCorner>250800.0 6735500.0 3000.0</gml:upperCorner>
</gml:Envelope>
</gml:boundedBy>
<gml:featureMembers>
.....
<VA_Vannledning gml:id="VA_Vannledning.id2011">
.....
</VA_Vannledning>
</gml:featureMembers>
</gml:FeatureCollection>
Kodelister:
http://skjema.geonorge.no/SOSI/produktspesifikasjon/SOSI_Ledning_Vedlegg_1/1.0/
Codelist 'Ledningsnettverkstype':
Demo QGIS og FME Universal Viewer