Platzhalter

 
Platzhalter PlatzhalterPlatzhalter

XML-Tutorial III: Namensräume

Platzhalter
 
  Startseite
  eBook-Projekt
  Web-Lexikon
  Bücher bestellen
   
  Design-Theorie
  Design-Praxis
  Promotion
  HTML/XML-Praxis
  Projekt-Management
  Webmaster-Praxis
  Fragen & Antworten
  Technik-Ecke
   
  Portal/Links
  Buch-Rezensionen
  Software
  Impressum
PlatzhalterPlatzhalter







 

Platzhalter Das Vektorgrafikformat SVG baut auf XML auf, der HTML-Nachfolger XHTML ebenfalls. Also sollte es doch möglich sein, die beiden Sprachen irgendwie in einem Dokument zu vereinen?

Kennzeichnungsprobleme


Das ist jedoch nicht so einfach, wie es eigentlich scheint: was passiert, wenn es in beiden Sprachen Elemente gibt, die den gleichen Namen tragen? Woher soll der darstellende Browser dann wissen, ob ein XHTML- oder SVG-Befehl gemeint ist?

Die Lösung: wir brauchen eine Methode, klar zu kennzeichnen, zu welchem Bereich, zu welcher Sprache ein Element gehört: ein Namensraum ist eine Sammlung von Element- und Attributnamen. Wenn ein Element also zum SVG-Namensraum gehört, dann weiß der Browser, was er damit tun soll.

Namensraum festlegen


Um den Namensraum für ein Element festzulegen, wird ein Doppelpunkt vor den eigentlichen Namen gestellt: aus <element> wird <namensraum:element>.

Namensraum deklarieren


Der Ordnung halber sollte irgendwo erwähnt werden, welche Namensräume im Dokument Verwendung finden. Das geschieht in Attribut-Form: xmlns:Namensraum-Name="irgendeine_URL". Das xmlns wird nie verändert, Namensraum-Name kann dagegen frei gewählt werden - theoretisch. Wenn Sie z.B. ein bestimmtes Format wie SVG einbinden wollen, erwartet die darstellende Software oft einen bestimmten Namensraum-Namen. irgendeine_URL ist schließlich die URL der Organisation, die beispielsweise den Namensraum entwickelt hat.

Bitte beachten Sie, dass ein solches Namensraum-Attribut oberhalb der Tags stehen sollte, die zum Namensraum gehören. Folgendes wäre also schlecht:

<AWD:title>Ein Artikel</AWD:title>
<AWD:zielgruppe xmlns:AWD="http://www.aboutwebdesign.de">
...
</AWD:zielgruppe>


Richtig wäre dagegen:

<AWD:artikel xmlns:AWD="http://www.aboutwebdesign.de">
<AWD:title>Ein Artikel</AWD:title>
<AWD:zielgruppe>
...
</AWD:zielgruppe>
</AWD:artikel>


Wichtig ist weiterhin, dass die angegebene URL meist das entscheidende Kriterium ist, nicht der Namensraum-Name. Letzterer sollte übrigens weder xml noch xsl lauten, denn diese beiden Beispiele sind für XML-interne Anwendungen reserviert.

Standard-Namensraum


Wenn man sich Tipparbeit ersparen will, verwendet man das xmlns-Attribut in dieser Form:
<html xmlns="http://www.w3.org/1999/xhtml">

Das bedeutet, dass für alle folgenden Elemente der durch die URL spezifizierte Namensraum als Standard gilt.

DTD-Verwirrungen


Sie wissen aus vorangegangenen Teilen, dass DTDs angeben, wie Dokumente aufgebaut sein dürfen. Problematisch ist nun, dass mit der Verwendung eines Namensraumes keine eigene DTD für diesen Namensraum importiert wird. Der Parser weiß also nicht, wie er die zum neuen Namensraum gehörenden Elemente auf Korrektheit überprüfen soll.

Schlimmer noch: wenn der Haupt-Namensraum eine DTD verwendet, muss dieses so angepasst werden, dass sie auch mit den Elementen des neu hinzugekommenen Namensraums arbeitet.

Daher müssen Namensräume leider als noch unausgereift gelten. Um ihren Einsatz wird man in näherer Zukunft jedoch nicht herumkommen.

Autor: Alexander Dilthey | Erstmalig veröffentlicht: 30.06.2002 | Einen Artikel schreiben?

 

Artikelreihe XML
XML-Tutorial I: Allgemeines
XML-Tutorial II: Entities
XML-Tutorial IV: Style Sheets
XML-Tutorial V: Dokumentenstrukturen mit DTDs validieren
XML-Tutorial VI: XLinks & XPointer
XML-Tutorial VII: Transformationen mit XSLT & XPath
Rezension: Einführung in XML

Neue Artikel

Rezension: Entwurfsmuster von Kopf bis Fuß
Rezension: Webdesign mit CSS
AJAX - XML und JavaScript in Schönheit vereint?
Rich Email - Flash im Newsletter
Screen Reader Usability
Comment Spam und CAPTCHAs
Logfile-Analyse selbst gemacht - ein Perl-Beispiel

Partnerprogramm




Kommentar

Ist die Freiheit der Informationsgesellschaft in Gefahr?
Derzeit leben wir in einer relativ freien Welt. Doch sind derzeit Tendenzen erkennbar, die Freiheit des Individuums den Interessen der Großindustrie zu opfern. Ein Kommentar.

Druckversion
Sie wollen diese Seite ausdrucken? Dafür haben wir eine spezielle Druckversion ohne grafische Elemente entwickelt!



Einführung in CSS bei HTMLWorld.