Wesentliche Stuktureinheit zur Gliederung von Dateninhalten in XML ist das Element. Es besitzt einen Elementnamen und weist den in Abbildung 2 dargestellten Aufbau auf, besteht also aus einem einleitenden Start-Tag , dem Elementinhalt und dem schließenden End-Tag. Der Elementname taucht in beiden Tags auf, beim End-Tag mit vorangestelltem Schrägstrich.

Element als Grundstruktur von XML

Element als Grundstruktur von XML

Für den Elementinhalt gilt, dass er Text (wie in Abbildung 2) oder, wie in GML häufig der Fall, wiederum andere Elemente enthalten kann (siehe nachfolgendes punkt-Beispiel); er kann aber auch leer sein und dann in verkürzter Schreibweise in der Form

     <name/>  

Elementnamen sind weitgehend frei wählbar und können beispielsweise auch deutsche Sonderzeichen enthalten.

Elemente können neben ihrem Inhalt weitere Informationen in Form von Attributen tragen, die im Start-Tag eingetragen werden:

     <text x= "15" y= "135" >AbcDef </text>   

Von dieser Möglichkeit wird insbesondere bei der XML-definierten Sprache SVG sowie bei der
Entwicklung von GML-Fachschemata Gebrauch gemacht. Das Start-Tag des text-Elements zeigt, dass Attributangaben paarweise aus
Attributnamen und Wert bestehen. Der Wert muss in einfachen oder doppelten Anführungszeichen stehen;
jedes Attribut darf in einem Element nur ein Mal erscheinen.

Aus der Tatsache, dass ein Element andere Elemente enthalten kann, ergibt sich die Forderung, dass diese “Schachtelung” korrekt vorgenommen werden muss .
Die äußerste “Schachtel”, das heißt, das Element, das alle anderen umschließt, heißt Wurzelelement (engl. root element).

Folgt ein XML-Dokument diesen Regeln, so wird es als wohlgeformt (engl. well formed) bezeichnet.

Jedes XML-Dokument besteht aus:

  • einem Prolog, der XML-Deklaration
  • einem Abschnitt oder Verweis auf eine Dokumententyp-Deklaration oder ein XML-Schema, in denen die nachfolgenden Elemente deklariert werden,
  • einem Wurzelelement und darin hierarchisch eingebetteten, weiteren Elementen,
  • Verarbeitungsanweisungen (optional),
  • Kommentaren (optional),
  • optionalen CDATA-Abschnitten
  • optionalen Entitäten, d. h. Kürzel oder Ersetzungszeichen für Einzelzeichen oder Zeichenketten.

Im nachfolgenden Beispiel spezifiziert die XML-Deklaration in Zeile 1 die zugrundegelegte
XML-Version, den für das Kodieren verwendete Zeichensatz (hier ISO-8859-1) und legt fest,
dass das Dokument “standalone”, ohne weitere Deklarationen, gültig ist.

 1: <?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>
 2: <!DOCTYPE punkt [
 3: <!ELEMENT punkt (x, y)>
 4: <!ELEMENT x (#PCDATA)>
 5: <!ELEMENT y (#PCDATA)>
 6: ]>
 7: <punkt>
 8: <x>3500000.0</x>
 9: <y>5400000.0</y>
10: </punkt>

In den Zeilen 2 bis 6 erfolgt die Dokumenttyp-Deklaration (engl. document type declaration), die den Aufbau des Dokumentes vorgibt. In unserem einfachen Fall beschreibt sie in den Zeile 2 – 6 die Zugehörigkeit zum Wurzelelement punkt, das als Inhalt die Elemente x und y enthält. Diese bestehen aus Zeichendaten .

Die Zeilen 7 bis 10 enthalten ein punkt-Element, das zugleich Wurzelelement ist. Elementinhalt sind, wie in Zeile 3 deklariert, die x- und y-Elemente mit den Koordinatenwerten.

Verarbeitungsanweisungen (im Beispiel nicht enthalten) sind für weiter verarbeitende Programme vorgesehen,
beispielsweise zur Berücksichtigung von Stilangaben oder zur Durchführung einer
XSL-Transformation. In CDATA-Abschnitten können beispielsweise ECMAScript-Anweisungen in das XML-Dokument
integriert werden, ohne dass sie von einem
XML-Parser ausgewertet werden, der das Zerlegen und Weiterverarbeiten der Inhalte vornimmt.

Wichtiger Bestandteil von Programmier- und Auszeichnungssprachen sind Kommentare, eine
Dokumentbeschreibung im Source-Code, die vom Parser ignoriert wird. Für XML-Sprachen sieht ein Kommentar folgendermaßen aus:

&lt;!-- Dies ist ein Kommentar -->

Zwischen den Kommentarzeichen können alle beliebigen Zeichen stehen, mit Ausnahme von –, da dies das Ende eines Kommentars markiert.

Die XML-Sprachfamilie

Unter dem Oberbegriff XML verbergen sich eine große Reihe unterschiedlicher Sprachen und Konzepte, die weitgehend vom World Wide Web Consortium (W3C, http://w3.org/) koordiniert und verantwortet werden . Im Zusammenhang mit GML sind unter anderem zu nennen:

  • Dokumententyp-Deklaration und XML Schema,
  • XML-Namensräume,
  • XLink – XML Linking Language und XML Pointer,
  • Extensible Stylesheet Language Family mit XSL Transformations, XML Path Language und XSL Formatting Objects,
  • CSS2 – Cascading Stylesheets.

Weitere XML-Technologien finden sich in unterschiedlichsten Anwendungsbereichen. Für die Kodierung mathematischer Formeln beispielsweise steht MathML zur Verfügung (http://www.w3.org/Math/). Selbst im Musikbereich eröffnen sich neue Möglichkeiten des Datenaustausch zwischen Programmen dank eines XML-basierten Formats (http://www.capella.de/).

Im Umfeld der Geoinformatik bildet, wie bereits erwähnt, XML die Grundlage der Geography Markup Language sowie der darauf aufbauenden künftigen deutschen Normbasierten Austauschschnittstelle (NAS) der AdV (Düren 2005,http://www.adv-online.de/ ). Weitere Einsatzgebiete sind Kommunikationsschnittstellen bei Web-Diensten im Umfeld des Internet-Mapping wie dem Web Map Service (OGC 2004), dem Web Feature Service (OGC 2002), dem Web Coordinate Transformation Service (Whiteside et al. 2005) sowie bei Internet-GIS-Servern.

XML-Namensräume

Wie zuvor erwähnt besteht bei der Wahl der Elementnamen große Freiheit, so dass
die mehrfache Nutzung identischer Namen nicht ausgeschlossen werden kann.
XML-Namensräume (engl. namespaces) bieten eine einfache Möglichkeit, um
Element- und Attributnamen in XML-Dokumenten eindeutig zu benennen.

Element- und Attributnamen werden mit Namensräumen verknüpft, die durch
URI-Verweise identifiziert werden.
Durch die Angabe und Nutzung von Kürzeln für Namensräume können Elemente aus mehreren Schemata gemeinsam benutzt werden.

Im folgenden Beispiel werden für das TKFD-Wurzelelement die Namensräume tkfd, gml und xsi deklariert.
Aus dem Namensraum tkfd, der über den URI-Verweis (< HREF="http://www.lv-bw.de/">http://www.lv-bw.de/)
tkfd identifiziert wird, werden die Elemente Bahnhof und objektArt sowie das Attribut id verwendet.
Aus dem gml-Namensraum werden die Elemente centerOf, Point und pos verwendet.

  <?xml version="1.0" encoding="UTF-8"?>

  <TKFD xmlns:tkfd="http://www.lv-bw.de/tkfd"
  xmlns:gml="http://www.opengis.net/gml" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://www.lv-bw.de/tkfd"


  <tkfd:Bahnhof>
  <tkfd:objektArt tkfd:id="EZ00VPK">9201</tkfd:objektArt>
  <gml:centerOf>
  <gml:Point>
  <gml:pos>3515955.37 5409276.28</gml:pos>
  </gml:Point>
  </gml:centerOf>
  </tkfd:Bahnhof>
  

Dokumententyp-Deklaration und XML Schema

Die Dokumententyp-Deklaration (document type declaration, DTD) erlaubt es, vorkommende Elemente,
ihre Attribute und ihren hierarchischen Aufbau zu definieren. Traditionell u. a. im Bereich von
HTML und SVG sowie bei GML 1.0 angewandt wird diese Form der Elementdeklaration heutzutage als
unzureichend angesehen und zunehmend durch die Nutzung von XML-Schema abgelöst.

Ein XML-Schema (http://www.w3.org/XML/Schema) erlaubt es,
detailliert und exakt eine Klasse von XML-Dokumenten zu spezifizieren (vgl. Abschnitt 3). Im Vergleich zu
DTD wächst die Komplexität, u. a. auch wegen der Vererbungsoptionen.
Für ein auf einem Schema basierendes konkretes “XML-Objekt” wird der Begriff “Instanzdokument” oder
kurz Instanz verwendet.
Eine XML-Instanz kann als XML-Datei existieren, kann aber genauso gut ein Datenstrom oder
Feldinhalt eines Datenbanksatzes sein. Schemadefinitionen, die auch in mehreren Dokumenten verteilt vorliegen können,
spielen bei GML sowie bei NAS eine bedeutende Rolle.

Ist ein XML-Dokument wohlgeformt und folgt es einer als DTD oder Schema vorgegebenen Deklaration, heißt es gültig.

XML Linking Language (XLink) und XML Pointer Language (XPointer)

Die XML Linking Sprache (XLink, http://www.w3.org/XML/Linking) erlaubt es, Elemente in XML-Dokumente einzufügen sowie Verknüpfungen zwischen Ressourcen herzustellen. XLink geht damit über das Verlinken von Informationen, wie es in HTML verwendet wird, wesentlich hinaus. In SVG-Dokumenten gestattet es XLink, separat definierte Symbole, wie z. B. kartographische Signaturen, oder Rasterdaten an beliebiger Stelle zu referenzieren und in eine Karte zu integrieren.

Ein Schema-Dokument xlinks.xsd ist Teil der GML3 zugrunde liegenden Schemadefinitionen. Elemente und Datentypen können somit durch Verweise auf andere Deklarationen beschrieben werden (vgl. Beispiele in Abschnitt 3).

Unterstützt wird XLink durch XPointer (http://www.w3.org/TR/xptr-framework/) zur gezielten Adressierung von Dokumentteilen (Fragmenten). Dabei leitet das Zeichen # (wie in nachfolgenden Beispielen teilweise verwendet) den Namen des Fragments ein.

CSS2 – Cascading Stylesheets

Kaskadierende Stilangaben (Cascading Style Sheets, CSS, (http://www.w3.org/Style/CSS/) spezifizieren auf einfache Weise die Darstellung von XML-Dokumenten auf Ausgabegeräten unterschiedlicher Art (Bildschirm, Drucker, …). Mit der Trennung von Präsentation und Inhalt wird ein wesentliches Konzept der raumbezogenen Informationsverarbeitung umgesetzt. In SVG können z. B. mittels CSS Darstellungsstile für einzelne Layer zentral definiert werden. Auch GML sieht die Möglichkeit vor, Stilvorgaben für die Visualisierung von Geo-Daten zu spezifizieren.