Referenzen

(Auszug aus "XML in a Nutshell" von Elliotte Rusty Harold & W. Scott Means)

In den Zeichendaten innerhalb eines Elements dürfen geöffnete spitze Klammern < nicht als ungeschützte Zeichen auftreten. Dieses Zeichen wird immer als Beginn eines Tags interpretiert. Falls Sie dieses Zeichen in Ihrem Text benötigen, können Sie es mit der Entity-Referenz &lt;, der numerischen Zeichenreferenz &#60; oder der hexadezimalen Zeichenreferenz &#x3C; darstellen. Wenn ein Parser das Dokument liest, ersetzt er alle&lt;-, &#x60;- oder &#x3C;-Referenzen, die er findet, durch das eigentliche Zeichen <. Er verwechselt jedoch das &lt; nicht mit dem Anfang eines Tags. Zum Beispiel:

<SCRIPT LANGUAGE="JavaScript">
  if (location.host.toLowerCase( ).indexOf("ibiblio") &lt; 0) {
    location.href="http://ibiblio.org/xml/";}
</SCRIPT>

Zeichendaten dürfen auch das Ampersand & (Kaufmanns-Und) nicht als ungeschütztes Zeichen enthalten. Dieses Zeichen wird immer als Anfang einer Entity-Referenz interpretiert. Sie können es jedoch mit dieser Entity-Referenz darstellen: &amp;

<firma>W. L. Gore &amp; Associates</firma>

Dem Kaufmanns-Und entspricht der Kodepunkt 38. Es könnte also auch mit der numerischen Zeichenreferenz &#38; geschrieben werden:

 

<firma>W.L. Gore &#38; Associates</firma>

Entity-Referenzen wie &amp; und Zeichenreferenzen wie &#60; sind Markup. Wenn eine Anwendung ein XML-Dokument parst, ersetzt sie die betreffende Auszeichnung durch das eigentliche oder die eigentlichen Zeichen, auf das bzw. die die Referenz verweist.

XML hat genau fünf vordefinierte Entity-Referenzen. Dies sind:

&lt;

das Kleiner-als-Zeichen, auch als öffnende spitze Klammer bezeichnet (<)

&amp;

das Ampersand (&)

&gt;

das Größer-als-Zeichen, auch als schließende spitze Klammer bezeichnet (>)

&quot;

die geraden doppelten Anführungszeichen (")

&apos;

der Apostroph bzw. das einfache gerade Anführungszeichen (')

Anstelle eines wirklichen Zeichens dürfen nur &lt; und &amp; im Inhalt eines Elements benutzt werden. Die anderen sind optional. &quot; und &apos; sind innerhalb von Attributwerten ganz nützlich, wo " oder ' als Ende des Attributwerts missverstanden werden könnten. Zum Beispiel verwendet dieses bild-Tag die Entity-Referenz &apos;, um den Apostroph in O'Reilly zu setzen:

<bild src='oreilly_koala3.gif' width='122' height='66' alt='Powered by O&apos;Reilly Books'/>

Obwohl es unmöglich ist, dass ein ungeschütztes Größer-als-Zeichen > so fehlinterpretiert wird, dass es ein Tag schließt, das es gar nicht schließen sollte, ist &gt; hauptsächlich aus Gründen der Symmetrie mit &lt; erlaubt.

Anmerkung: Es gibt einen ungewöhnlichen Fall, in dem das Größer-als-Zeichen geschützt werden muss. In Zeichendaten darf die aus den drei Zeichen ]]> bestehende Zeichenfolge nicht vorkommen. Stattdessen müssen Sie sie als ]]&gt; schreiben.

Zusätzlich zu den fünf vordefinierten Entity-Referenzen können Sie weitere in der Dokumenttyp-Definition festlegen. Wir werden auf der Seite Allgemeine Entity-Deklarationen näher darauf eingehen.

Entity- und Zeichenreferenzen können nur in Elementinhalten und Attributwerten vorkommmen. In Elementnamen, Attributnamen oder anderem Markup dürfen sie nicht erscheinen. Text wie &amp; oder &#60; kann in einem Kommentar oder einer Verarbeitungsanweisung stehen. An diesen Stellen werden Referenzen jedoch nicht aufgelöst. Der Parser ersetzt sie nur in Elementinhalten und Attributwerten. An anderen Stellen erkennt er Referenzen nicht.

  

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema XML bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

  


Copyright © 2005 O'Reilly Verlag GmbH & Co. KG
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XML in a Nutshell" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

O’Reilly Verlag GmbH & Co. KG, Balthasarstraße 81, 50670 Köln, kommentar(at)oreilly.de