XML

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg

Die Extensible Markup Language wurde von der „XML Activity“ des W3C entwickelt. Als eine von SGML abgeleitete Auszeichnungssprache bietet sie die Möglichkeit, weitere Auszeichnungssprachen zu definieren.

Sprachelemente

Mit XML werden Informationen in einer Baum-Struktur gespeichert.

Ein Vorteil dieser Auszeichnungssprache ist, dass für die Baum-Struktur keine festen Element- oder Attributnamen, wie beipielsweise in HTML, vorgegeben sind. Das bedeutet, der Programmierer kann sein Dokument nach eine eigenen der Situation angepassten Muster entwerfen. Vor allem durch die Möglichkeit, Elemente und Attribute selbst zu benennen, wird die spätere Lesbarkeit der Dokumente erhöht.

Jedes XML-Dokument beginnt mit einem so genannten Prolog. In diesem muss die XML-Version angegeben, eventuell können auch der verwendete Zeichensatz oder die Art des Dokuments angegeben werden.

Der XML-Baum kann die folgenden Knotentypen beinhalten:

  • Kommentare (z.B.:
  • Elemente (z.B.: <element>...</element> oder <element /> für ein leeres Element)
  • Attribute (z.B.: <element attribute="value" />)
  • Text (z.B.: <element attribute="text">text</element>)
  • Ausführungsanweisungen (engl.: Processing Instructions, PIs)

Schemas

Die Struktur des XML-Dokuments kann durch Schemasprachen definiert werden. Hier kann man festlegen, in welcher Reihenfolge und welcher Verschachtelung die Elemente auftreteen, welche Attribute sie beinhalten und welche Inhalte die Text-Knoten annehmen dürfen. Hierzu kann beispielsweise DTD (Dokument Type Definition) oder das jüngere und flexiblere [www.w3.org/XML/Schema XML Schema] verwendet werden.

In einer DTD wird Abfolge und Verschachtelung der Elemente anhand regulärer Ausdrücke dargestellt. Es können Entitäten definiert und Wertelisten für Attribute vorgegeben werden.

In einem XML Schema können weit mehr Eigenschaften einex XML-Dokuments als in DTDs festgelegt werden. XML Schema kennt mehrere Datentypen (z.B.: date, string, integer), es können jedoch auch neue Datentypen definiert und diese wiederverwendet werden Auch das Ertellen von Patterns für die möglichen Werte der Text-Knoten ist möglich. XML-Schema-Dokumente werden selbst in einer XML-Syntax geschrieben.

Wohlgeformtheit

Zwar bietet XML dem Programmeirer sehr viel Spielruam, jedoch müssen bestimmte Regeln eingehalten werden. Diese Regeln definieren die Wohlgeformtheit eines XML-Dokuments:

  • der XML-Baum enthält genau ein Wurzelelement (vgl.: <books>...</books>)
  • Tags müssen immer geschlossen werden (z.B.: <book>...</book> oder <location />)
  • Tags dürfen sich nicht überlappen (z.B.: <a1><b1></a1><b1> nicht erlaubt, erlaubt: <a1><b1></b1></a1>)
  • Die Werte von Attributen müssen stets in Anführungszeichen stehen (z.B.: <elem attr="value" /> oder <elem attr='value'" />)
  • Attribute dürfen nicht mehrmals in einem Element vorkommen (z.B. <elem attr="value" attr="value" /> nicht erlaubt)
  • Kommentare werden durch beendet
  • Kommentare und PIs dürfen nicht innerhalb von Tags statttfinden
  • Sonderzeichen (<, &) dürfen nicht in Text-Knoten verwendet werden
  • die Struktur des Dokument wird durch DTD definiert und eingebunden), oder das Attribut standalone erhält im Prolog den Wert yes

Die XML-Familie

  • XML Schema zur Definition des Dokumenten-Baums
  • XLink zum Einfügen von Hyperlinks in XML-Dateien
  • XPointer um auf Daten innerhalb eines XML-Dokuments zu zeigen
  • XSLT zum Transformieren von XML-Dokumenten
  • XPath für die Navigation innerhalb eines XML-Dokuments
  • XQuery zur Abfrage von XML-Datenbanken

Beispiel

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<books>
  <book id="1">
    <authors>
      <author title="Dr.">
        <firstname>John</firstname>
        <lastname>Smith</lastname>
      </autor>
    </authors>
    <title>1st Book</title>
    <subtitle>This is my first book</subtitle>
    <location>London</location>
    <year>2006</year>
  </book>
</books>

Quellen