• +49-(0)721-402485-12
Ihre Experten für XML, XQuery und XML-Datenbanken

Textueller Inhalt eines Elementes

Wie bereits gezeigt wurde, besteht der Inhalt eines Elementes aus Text oder aus Kindelementen oder einer Mischung von beidem. Nun kann der Text in einem Element Zeichen enthalten, die normalerweise eine besondere Bedeutung in XML haben, wie
z. B. das Zeichen "<". Damit ein XML-Prozessor erkennen kann, dass es sich hier nicht um Markup, sondern um textuellen Inhalt eines Dokumentes handelt, kann man solch einen Text in einen CDATA-Abschnitt einbetten. Solche CDATA-Abschnitte sind
in Elementen überall dort erlaubt, wo Zeichen stehen können. Sie beginnen mit <![CDATA[ und enden mit ]]> und lassen sich nicht verschachteln:

<Station Leitung="Pfleger_01">
<Name><![CDATA[Notfall- & Durchgangsmedizin]]></Name>
</Station>

In einer DTD kann man so genannte "Parsed Entities" definieren, die wie die Makros in Programmiersprachen verwendet werden. Wenn sie vollständig in der internen DTD des Dokumentes definiert sind, heißen sie intern, sonst extern.

<!ENTITY hinweis "<Hinweis>Alle Angaben ohne Gewähr</Hinweis>">
<!ENTITY extern SYSTEM "http://www.xquery-buch.de/myentity">

Parsed Entities können Markup enthalten, wie das Beispiel zeigt (Entity hinweis

Eine Entity wird durch das Symbol "&", gefolgt vom Entity-Namen, referenziert und mit einem Semikolon abgeschlossen. Eine solche Referenz löst ein XML-Prozessor durch gegebenenfalls rekursives Einsetzen auf. Aus dem Dokumentfragment

<Kurs>&hinweis;20.0</Kurs>

wird mit obiger Entity-Definition:

<Kurs><Hinweis>Alle Angaben ohne Gewähr</Hinweis>20.0</Kurs>

In XML sind fünf Entities vordefiniert, um die Verwendung von Zeichen, die in XML eine besondere Bedeutung haben, zu erleichtern. Es sind die Entities lt (für öffnende spitze Klammer), gt (für schließende spitze Klammer), amp (für & ), quot (für ") und apos (für '). Für obiges XML-Fragment kann man also auch schreiben:

<Station Leitung="Pfleger_01">
<Name>Notfall- &amp; Durchgangsmedizin</Name>
</Station>

Die vordefinierten Entities sind die einzigen Entities, die von XQuery unterstützt werden.

Zeichenreferenzen haben die gleiche Syntax wie Entity-Referenzen. Das Unicode-Zeichen U+00FF (Der Buchstabe ÿ) kann z. B. entweder in hexadezimaler Form als &#xFF; oder in dezimaler Form als &#255; geschrieben werden. Zeichenreferenzen werden bevorzugt für Zeichen verwendet, die auf der jeweiligen Tastatur nicht vorhanden sind, sich aber in der Kodierung des Quellsystems darstellen lassen oder beim Transport des Dokumentes zu Nebeneffekten führen könnten. Zeichenreferenzen können auch in XQuery verwendet werden.

 

Quelle: "XQuery – Grundlagen und fortgeschrittene Methoden", dpunkt-Verlag, Heidelberg (2004)

<< zurückvor >>