Thomas J.S.: XML Namensräume

Beitrag lesen

Hallo,

Es werden die Namensräume von XML erklärt. Dabei wird ein Präfix erstellt, der Bezug auf eine URI nimmt. Wieso?

Ein Namensraum ist nichts anderes als eine Sammlung von Namen die über eine URI eindeutig identifizierbar sind und die in XML-Dokumenten als Name für Elementtypen und Attribute genutzt werden.

buch:buch
 buch:titelRatgeber</buch:titel>
 buch:autor
  person:titelDr.</person:titel>
  person:vornamePeter</person:vorname>
  person:nachnameKlug</person:nachname>
 </buch:autor>
</buch:buch>

Hier haben wir Elementen die sich auf eine Person beziehen einen Präfix mit dem Namen „person“ und Elementen die sich auf das Buch beziehen  einen Präfix mit dem Namen „buch“ zugewiesen. Somit erhalten wir zwei Gruppen von Elementen und wir können sofort sagen, welche Elemente in die eine und welche in die andere Gruppe gehören.
Jede diese Gruppen bildet einen Namensraum und das jeweilige Präfix ist das sogenannte Namensraum-Präfix.
Wir habe noch immer nicht die Sicherheit, dass unsere Elemente eindeutig gekennzeichnet sind, denn andere Autoren könnten ebenso diese Präfixe für ihre Elemente benutzen.
Um auch dieses Problem zu lösen, können wir bestimmen, dass für diese Präfixe eine URI als Name genutzt werden soll.
Da URIs eindeutig sind, würden wir also das Problem beheben.
Und so könnte dann eine unsere Elemente in einem XML-Dokument notiert werden:
http://www.meinedomain.de/person/:titelDr.</http://www.meinedomain.de/person/:titel>

In XML darf aber ein  XML-Name nicht das Zeichen „/“ enthalten, und dieses hätten wir in einer URI, womit unsere Dokumente nicht mehr wohlgeformt wären.
Was wir also benötigen ist eine Kombination von beiden, einerseits die Möglichkeit der Verwendung von eindeutigen URIs, anderseits die Möglichkeit Präfixe zu verwenden. Und genau diese Kombination bietet der Namensraumkonzept von XML.
Ein Element oder Attribut aus dem Namensraum wird dann über das Namensraum-Präfix referenziert und das Namensraum-Präfix dient dabei als Abkürzung der URI. Intern ersetzt der XML-Parser den Namensraum-Präfix durch den Namensraum selbst.

Und Wieso kann die URI einfach irendwie heißen? Ich versteh das nicht ganz?

Weil ein URI nun mal irgendwie heissen kann.
Die URI die einen Namensraum definiert ist lediglich eine formale Bezeichnung und muss nicht auf eine real existierende Ressource verweisen. Es ist auch  nicht nötig, dass eine existierende Ressource die verwendete Syntax im Dokument beschreibt.

Klarer?

Grüße
Thomas