Konzepte Content-Repräsentation & Markup-Sprachen

9.3 XML-Namespaces

Für viele XML-Anwendungen ist es sinnvoll, Dokumente verarbeiten zu können, die Elementtypen und Attribute, im folgenden Markup-Vokabular genannt, verwenden, die für verschiedene Anwendungen definiert wurden. Diese könnten z.B. in unterschiedlichen DTDs vorliegen. Beispielsweise kann man sich vorstellen, daß Anwendungen, die Dokumente mit logisch ausgezeichneten Textinhalten verarbeiten, die Verwendung der Elementtypen der verbreiteten HTML-DTD erlauben. Die Motivation dabei ist, Definitionen aber auch Anwendungsmodule für existierendes Markup-Vokabular wiederverwenden zu können. Zum Beispiel gilt für HTML, daß die Dokumenttypdefinition im allgemeinen als wohlverstanden betrachtet wird und es viele Anwendungen gibt, die HTML-Dokumente verarbeiten können. Deswegen bietet es sich in vielen Fällen an, das Markup-Vokabular in Dokumenten wiederzuverwenden, die beispielsweise Textinhalte mit Hyperlinks und einfachem darstellungsorientiertem Markup enthalten.

So könnte ein Rechnungsdokument neben den für die Auszeichnung von Rechnungsdaten verwendeten Elementtypen für andere Textinhalte wie beschreibenden Text Markup-Vokabular aus der HTML-DTD verwenden. Beispiel 7 stellt ein Fragment aus einem Beispieldokument dar, in dem Markup-Vokabular aus der HTML-DTD in Elemente für die Auszeichnung von Rechnungsdaten eingebettet ist.

Beispiel 7. Fragment eines XML-Dokuments, das HTML-Markup-Vokabular wiederverwendet


<rechnung>
<posten anzahl="1000" bestell-nummer="0815">
<einzelpreis betrag="100,00" waehrung="EUR"/>
<bezeichnung>
Dachziegel, <em>rot</em> engobiert, wie abgebildet auf
<a href="http://www.example.com/ziegel/rot/">
unserer Homepage
</a>
</bezeichnung>
</posten>
</rechnung>

XML-Namespaces stellen Mechanismen zur Verfügung, die es erlauben, Dokumente so auszuzeichnen, daß sie Markup-Vokabular verschiedener existierender Anwendungen verwenden. Dabei werden Lösungen für die folgenden Probleme bereitgestellt:

Erkennung von Markup

Wenn, wie in Beispiel 7 gezeigt, Markup-Vokabular aus verschiedenen Anwendungskontexten in einem Dokument verwendet wird, müssen Anwendungen die Möglichkeit haben zu erkennen, welche Elementtypen eigentlich aus welchem Anwendungskontext stammen. Beispielsweise muß ausgedrückt werden können, daß das Element a aus der HTML-DTD stammt und entsprechend zu behandeln ist.

Vermeidung von Namenskollisionen

Bei der Verwendung von Markup-Vokabular aus verschiedenen Anwendungskontexten könnte es theoretisch vorkommen, daß ein GI in mehreren Anwendungskontexten definiert ist. Beispielsweise könnte eine DTD einen Elementtyp a für Adressen definieren. Wenn in einem Dokument a-Elemente aus HTML und a-Elemente für die Auszeichnung von Adressen verwendet würden, gäbe es eine Namenskollision, weil der GI a nicht mehr eindeutig wäre.

Das Konzept der XML Namespaces löst diese Probleme, indem die Möglichkeit geschaffen wird, GIs eindeutig zu qualifizieren, so daß immer deutlich ist, aus welchem Namensraum (Namespace) ein in einem Dokument verwendeter GI stammt. XML Namespaces ist als W3C-Empfehlung REC-xml-names (Namespaces in XML) spezifiziert.

Kommentare (0)

Ihr Kommentar

Name