XML Zusatztechnologien

In Verbindung mit XML bestehen einige Zusatztechnologien wie XPath, XPointer, XLinks oder XSLT. Diese Zusatztechnologien vereinfachen den Zugriff auf ein XML Dokument, oder das Transformieren der Inhalte in andere Dokumenttypen welche wiederum über dritte Tools angesprochen werden können.

XPath – Dokumentenadressierung

XPath ist eine Abfragesprache um Teile eines XML – Dokumentes zu adressieren. Ein XPath Ausdruck setzt sich wie folgt zusammen:

  • einem oder mehreren Lokalisierungsschritten (Local Steps) ( Trenner: / )
  • optional von einem oder mehreren Prädikaten (predicates)


Ein Lokalisierungsschritt besteht aus:

  • Achse (axis)
  • Knotentest (node-test)

Für die XPath Adressierung gibt es verschiedene Arten von Knoten. Diese können sowohl relativ, wie auch absolut adressiert werden:

  • Wurzelknoten (einer pro Dokument)
  • Elementknoten
  • Attributknoten
  • Textknoten
  • Kommentarknoten
  • Namensraumknoten

Um die Theorie etwas zu verdeutlichen gibt es hierzu ein kleines Beispiel:

<Mitglieder>
    <Mitglied Id="1">
		<Vorname>Simon</Vorname>
		<Nachname>Michel</Nachname>
		<Strasse>Hauptstrasse 12</Strasse>
		<PLZ>33102</PLZ>
		<Stadt>Paderborn</Stadt>
	</Mitglied>
	<Mitglied Id="2">
		<Vorname>Michael</Vorname>
		<Nachname>Müller</Nachname>
		<Strasse>Bahnhofsstrasse 21</Strasse>
		<PLZ>44147</PLZ>
		<Stadt>Dortmund</Stadt>
	</Mitglied>
</Mitglieder> 

Erläuterung Quellcode

Wurzelement: /Mitglieder

Vornamen: /Mitglieder/Mitglied/Vorname

Vorname erstes Mitglied: /Mitglieder/Mitglied[1]/Vorname

Vorname zweites Mitglied: /Mitglieder/Mitglied[@Id=“2“]Vorname

[ad#co-3]

XPointer – Anfragesprache

  • Anfragesprache, um Teile eines XML – Dokumentes zu adressieren
  • Erweiterung der XPath-Spezifikation
  • XPointer erweitert XPath um die Typen point (Punkt) und range (Bereich)
  • dadurch ist es möglich anstelle von ganzen Knoten auch eine bestimmte Stelle oder einen Bereich innerhalb eines Knotens oder über mehrere Knoten hinaus auszuwählen.

Beispiele für XPointer

xpointer(id("ebnf"))
  • wählt das Element der ID ebnf


xpointer(descendant::language[position()=2])
  • wählt das erste language-Element aus, welches das zweite Child seines Parent-Elements ist


ebnf
  • Kurzform für die Suche nach dem Element mit der ID ebnf


1/14/2
  • wählt das zweite Childelement des 14. Child-Elements des ersten Child-Elements des Root-Elements


xpointer(id("ebnf")) xpointer(id(„EBNF")) 
  • zeigt ebenfalls auf das Element mit der ID ebnf


XLink – Definition von Links

  • attributbasierte Syntax zur Definition von Links in XML-Dokumenten
  • Empfehlung des World Wide Web Consortiums
  • kann Verbindung zwischen zwei Punkten herstellen (ähnlich Hyperlink-Elementen)
  • Verweise zu mehreren Dokumenten
  • Verweise zwischen ungleichen Dokumenten
  • Elemente, die Verknüpfungen enthalten, heißen Verknüpfungselemente
  • Verknüpfungselemente werden durch das xlink:form Attribut identifiziert:
    • simple
    • extended
    • locator
    • arc
    • resource
    • title

XLink Beispiel

<COMPOSER 
xmlns:xlink="http://w3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://www.users.interport.net">
Beth Anderson
</COMPOSER>

Erläuterung Quellcode

  • Verknüpfungszielattribut xlink:href
  • Wert des xlink:href-Attributs ist der absolute URL
  • Verbindung zwischen COMPOSER-Element im aktuellen Dokument und dem Inhalt Beth Anderson im Remote-Dokument

XSLT – Transformation in andere Dateiformate

  • Transformationssprache
  • stellt Elemente bereit, die Regeln definieren, wie ein XML-Dokument in ein anderes Dokument transformiert werden soll
  • Bearbeitung durch XSLT-Prozessor
  • Umwandlung von XML-Dokumenten in andere
    • PDF
    • SVG
    • Java-Code
    • Textdatei