Modul: Text & Tabellen

XML (Extensible Markup Language)

Schemasprachen

Die Dokumenttyp-Deklaration (DTD) ist die älteste Form, Grammatikregeln für eine XML-Auszeichnungssprache festzulegen, aber nicht die einzige. Die neueren XML-Schemasprachen XML Schema, Schematron und RELAX NG helfen vor allem Entwicklern. Aber auch wenn keine Neuentwickung oder Erweiterung der Sprache stattfindet, bieten sie Vorteile, da sie hierarchische XML-Namensräume unterstützen.

Das Beispiel oben enthält nur Text. Wie aber können wir Texte in XML codieren, die beispielsweise mathematische Formeln und Vektorgrafiken enthalten? Dafür müssten wir TEI, MathML und SVG im selben XML-Dokument verwenden können. Das ist mit hierarchischen Namensräumen möglich. Deren Einzelräume werden mit dem XML-Namespace-Attribut xmlns deklariert. Beispiel für ein TEI-Wurzelelement, in dem auch SVG genutzt werden soll:

<TEI xmlns="http://www.tei-c.org/ns/1.0"
 xmlns:tei="http://www.tei-c.org/ns/1.0"
 xmlns:svg="http://www.w3.org/2000/svg"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="...">

Das Attribut xsi:schemaLocation erwartet zwei Einträge, getrennt durch ein Leerzeichen: Namensraum-URL und Schemadatei als URL. In der Folge können beide Namensräume genutzt werden, indem der Name des Namensraums als Präfix verwendet wird. Das ist selbst dann möglich, wenn es übereinstimmende Elementnamen in den Einzelräumen gibt.

Beispiel: TEI und SVG haben beide ein Element text. Mit

   <tei:text> ... </tei:text>

und

   <svg:text> ... </svg:text>

können beide zuverlässig auseinander gehalten werden. Der Doppelpunkt ist das Trennsymbol zwischen Namensraumname und Elementname und für diesen Zweck reserviert. Im Beispiel-Wurzelelement ist TEI zudem als Default festgelegt (über das xmlns-Attribut ohne Namensraumkürzel).

Info! Die URL im xmlns-Attribut muss nicht existieren. Entscheidend sind viel mehr zwei Voraussetzungen:

  • Die URLs in den xmlns-Attributen unterscheiden sich
  • XML Schema, Schematron oder RELAX NG wird verwendet

Über das Glossar sind weiterführende Informationen zur Extensible Markup Language verlinkt.