GML 2.0 Überblick: - Einführung (einschließlich Rückblick) - 3 Basis Schema - Geometry schema - Geometrieklassen - Feature schema - Xlink schema - Namensräume 13.06.02 GML 2.0 1 Einführung - GML= Geographic Markup Language - GML ist eine XML-Anwendung zum Transport und zur Speicherung einfacher Geodaten. - es wird zum Beispiel genutzt um ein City Model darzustellen - GML 2.0 - veröffentlich: Oktober 2000 - Verabschiedet: April 2001 - GML 3.0 zur Zeit in Arbeit 13.06.02 GML 2.0 2 Einführung - seit GML 2.0 erfolgt die Spezifikation nicht mehr durch Dokumenttyp-Deklaration, sondern mittles XML Schema 1. Geometry schema 2. Feature schema 3. Xlinks schema 13.06.02 GML 2.0 3 Rückblick: DTD die Dokumententyp- Deklaration besteht aus einzelnen DokumenttypDefinitionen (DTD) die wiederum aus Element-Definitionen und Attribut-Definitionen besteht Grundform der Element-Definition: <!Element Elementname (Inhaltsmodell)> Beispiel für Inhaltsmodell (geben an in welcher Reihenfolge, welche Kinder und wie viele Kinder) : #PCDATA Attribut-Definitionen spezifizieren die zu einem Element erlaubten Attribute mit ihren Datentypen: <!ATTLIST Elementname Attributname Attributtyp Optionen> Beispiel für Attributtypen: CDATA, ENITITY, ID 13.06.02 GML 2.0 4 Einführung Vorteil GML 2.0 gegenüber GML 1.0: - Typ Definition Vererbung Bedingungen 13.06.02 GML 2.0 5 Einführung GML 2.0 basiert auf simple feature - begrenzt auf einfache Geometrie -Elemente haben entweder einfache Attribute (booleans, intergers, reals, strings) oder geometrische Attribute - 2D - die Elemente werden auf ein zwei dimensionales Referenzsystem SRS (Spatial Reference System) zurüchgeführt 13.06.02 GML 2.0 6 3 Basis Schema 1. Geometry schema (geometry.xsd) - beinhaltet die detaillierten geometrischen Komponenten (Geometrieklassen) 2. Feature schema (feature.xsd) - geometrische Feature (Merkmale) verbinden die Geometrieklassen aus den „Geometry Schema“ mit nicht geometrischen Elementen 3. Xlink schema (Xlink.xsd) - Xlinks benutzt man zum Zuweisen von Links (Verknüpfungen) zu XML-Dokumenten 13.06.02 GML 2.0 7 Geometry schema - enthält die detaillierten geometrischen Komponenten (Geometrieklassen) - die detaillierten geometrischen Komponenten braucht man beispielsweise um eine Stadt darzustellen, wie Straßen, Flüsse usw. - die Geometrie wird durch Simple Feature repräsentiert - nur 0-2 dimensional - begrenzt auf eine einfache Geometrie 13.06.02 GML 2.0 8 Geometrieklassen in GML • • • • • • • • Point LineString LinearRing Polygon MultiPoint MultiLineString MultiPolygon GeometryCollection 13.06.02 auf diese Klassen wird im Näheren weiter eingegangen GML 2.0 9 Spatial Reference System (SRS) - Zu den Geometriedaten muss das räumliche Bezugssystem (engl.: Spatial Reference System) <Pointbenannt srsName=”http://www.opengis.net/gml/srs/epsg.xml#4326”> werden, in den die Koordinaten vorliegen. - Bei<coord><X>5.0</X><Y>40.0</Y></coord> zusammengesetzten Geometrie reicht es, wenn </Point> das Bezugssystem bei der Angabe des umschliessenden Rechtecks (Bounding Box) benannt ist. - der srsName leitet zu der Definition des SRS 13.06.02 GML 2.0 10 Coordinates Element Zwei Arten der Darstellung von Koordinaten: - coord – jede Koordinate einzeln dargestellt Beispiel: <Point> <coord><X>5.0</X><Y>40.0</Y></coord> </Point> - coordinates - als Koordinatenpaar dargestellt Beispiel: <LinearRing> <coordinates>0.0,0.0 100.0,0.0 100.0,100.0 0.0,100.0 0.0,0.0</coordinates> </LinearRing> 13.06.02 GML 2.0 11 Coordinates Element Coord-Schema <element name=“coord“ type=“gml:CoordType“/> „Begriffebene“: beinhaltet nur den Name und den Typ des Element <complexType name=“CoordType“> <sequence> <element name=“X“ type=“decimal“/> <element name=“Y“ type=“decimal“ minOccurs=“0“/> </sequence> </complexType> „Durchführungsebene“: XML-Schema: beinhaltet die Art und Weise, wie das - man unterscheidet in GML 2.0 zwischen den „Begriffebene“ Element dargestellt und der „Durchführungsebene“ werden kann 13.06.02 GML 2.0 12 Element Name Coordinates Element Namensraum Typ Coord-Schema <element name=“coord“ type=“gml:CoordType“/> Bedingung: Y muß mindestens Null sein <complexType name=“CoordType“> <sequence> <element name=“X“ type=“decimal“/> <element name=“Y“ type=“decimal“ minOccurs=“0“/> </sequence> Sequence = </complexType> Reihenfolge, Aufzählung 13.06.02 GML 2.0 13 Vererbung: aus den Element AbstractGeometryType erbt das Element PointType z.B. das Attribut „srsName“ Point Element Point-Schema: <complexType name=AbstractGeometryType“ abstract=true“> <attribute name=„srsName“ type=........ <element name=“Point“ type=“gml:PointType“ substitutionGroup=“gml:_Geometry“/> <complexType> <complexType name=“PointType“> <complexContent> <extension base=“gml:AbstractGeometryType“> <sequence> <choice> <element ref=“gml:coord“/> <element ref=“gml:coordinates“/> </choice> </sequence> </extension> </complexContent> </complexType> 13.06.02 GML 2.0 entweder nimmt man das Element coord oder coordinates 15 Point Element Beispiel: <Point gid=“P1“ srsName=”http://www.opengis.net/gml/srs/epsg.xml#4326”> <coord><X>56.1</X><Y>0.45</Y></coord> </Point> stellt ein eindeutiges Kennzeichen für geometrische Elemente dar 13.06.02 ein Point Element besteht aus einem Koordinatenpaar GML 2.0 16 Polygon Element outerBoundaryIs innerBoundaryIs - die Punkte des Polygon sind zu einen Pfad verbunden Boundary ist ein Linear Ring - InnerBoundary: darf keinen anderen Pfad kreuzen und enthält keinen anderen -muß mindestens ein ExteriorBoundary und Null oder mehr innereBoundry Elements enthalten 13.06.02 GML 2.0 20 Polygon Element PolygonSchema: <element name=“innerBoundaryIs“ minOccurs=“0“ maxOccurs=“unbounded“> <complexType name=“PolygonType“> <complexType> <complexContent> <sequence> <extension base=“gml:AbstractGeometryType“> <element ref=“gml:LinearRing“/> <sequence> <sequence> </complexType> <element name=“outerBoundaryIs“> </element> ...... </element> </element name=“innerBoundaryIs“ minOccurs=“0“ maxOccurs=“unbounded“> ...... </element> <element name=“outerBoundaryIs“> </sequence> <complexType> <sequence> </extension> <element ref=“gml:LinearRing“/> </complexContent> <sequence> </complexType> </complexType> </element> 13.06.02 GML 2.0 21 Polygon Element Beispiel: <Polygon gid= “_98217” srsName= “http://www.opengis.net/gml/srs/epsg.xml#4326”> <outerBoundaryIs> <LinearRing> <coordinates>0.0,0.0 100.0,0.0 100.0,100.0 0.0,100.0 0.0,0.0</coordinates> </LinearRing> </outerBoundaryIs> <inner BoundaryIs> <LinearRing> <coordinates>10.0,10.0 10.0,40.0 40.0,40.0 40.0,10.0 10.0,10.0</coordinates> </LinearRing> </innerBoundaryIs> </Polygon> 13.06.02 GML 2.0 22 GeometryCollection Element Geometrie Collection: 1. eine Reihe von gleichartigen Geometrien - MultiPoint ist eine Collection von Punkten - MultiLineString ist eine Collection von LineString - MultiPolygon ist eine Collection von Polygon 2. eine Reihe von unterschiedlichen Geometrien Ein GeometryCollection Element kann wiederum ein GeometryCollection Element enthalten (Rekursion). 13.06.02 GML 2.0 23 Feature schema - geometrische Feature (Merkmale) verbinden die Geometrieklassen aus den „Geometry Schema“ mit nicht geometrischen Elementen 13.06.02 GML 2.0 26 Feature schema Feature (Merkmal) Descriptive name = Location Formal name = point Property Beispiel: <Dean> <familyName>Smith</familyName> <age>42</age> <nickName>Smith</nickName> <nickName>Bornehead</nickName> <gml:location> <gml:Point> <gml:coord><gml:X>1.0</gml:X><gml:Y>1.0</gml:Y></gml:coord> </gml:Point> <gml:location> </Dean> 13.06.02 GML 2.0 Geometrieklasse 27 Point Feature schema Formal name Descriptive name Geometry type boundedBy - Box pointProperty location, position, centerOf Point lineStringProperty centerLineOf, edgeOf LineString polygonProperty extentOf, couverage Poygon geometryProperty kennzeichnen geometrische multiPointProperty Attribute multiLineStringProperty multiPolygonProperty multiGeometrieProperty 13.06.02 eine Reihe von vereinheitlichen multiLocation, Synonyms multiPosition, oder multiCenterOf Decknamen für die formal name multiCenterLineOf, multiEdgeOf multiExtentOf, -multiCoverage dies erlaubt eine Benutzer freundliches Set GML 2.0 Any MultiPoint MultiLineString MultiPolygon MultiGeometry 28 Feature schema Ein Element kann jede Art von geometrischen Attributen haben: z.B. ein Fernsehturm um den Ort zu identifizieren hat das Element ein Descriptive name: location, die auf eine Punktgeometry zurück zuführen ist um die physikalische Struktur zu identifizieren hat das Element ein Descriptive name: extenOf, die auf eine Polygongeometry zurück zu führen ist 13.06.02 GML 2.0 29 Xlink schema - XML Linking Language (Xlink) ist eine Empfehlung des World Wide Web Consortium - Xlinks benutzt man zum Zuweisen von Links (Verknüpfungen) zu XML-Dokumenten - Kann eine Punkt A- zu Punkt B-Verknüpfung sein, oder - Bidirektional: zwei Dokumente in beide Richtungen verbinden, so können sie sowohl von A nach B als auch von B nach A gehen - Können auch multidirektional sein, d.h. unterschiedliche Wege zwischen beliebig vielen XML-Dokumenten repräsentieren 13.06.02 GML 2.0 30 Xlink schema Einfache Links (simple links): - ist eine „Einbahnstraßen-Verbindung“ zwischen zwei XML Schemas xlink:title Attribut ist optional xlink:type Attribute: simple Xlink:href zeigt den Ort an, wo das andere XML Element liegt Beispiel: <propertyName xlink:type=“simple“ xlink:title=“Description of target instance“ xlink:href=http://www.myfavoritesite.com/location.xml#identifier/> 13.06.02 GML 2.0 31 Xlink schema Beispiel: <CityModel> <cityMember> <River> ..... </River> </cityMember> <cityMember xlink:type= “ simple“ xlink:title= “Trinity Lane“ xlink:“href://www.foo.net/cgi-bin/wfs?FeatureID=C10239“/> </CityModel> 13.06.02 GML 2.0 32 Xlink schema z.B. man will ein neues Fluss - eine Ergänzung des Xlink AttributElement einführen, dann - verweist auf ein GML Schema verweist remoteSchema auf das allgemeine Schema von Flüssen Beispiel: <gml:featureMember xlink:type=“simple“ gml:remoteSchema=http://www.myfavoritesite.com/types.xsd#RiverTyp xlink:href=http://www.myfavoritesite.com/rivers#Rv567> 13.06.02 GML 2.0 33 Vielen Dank für Eure Aufmerksamkeit! 13.06.02 GML 2.0 37