XML-Know How

Entities nach ISO 8879

Eine Möglichkeit, auf allen Rechnersystemen Umsetzungsfehler bei der Zeichendarstellung auszuschließen, ist die Beschränkung auf diejenigen Zeichen, die tatsächlich überall identisch belegt sind.

Glücklicherweise haben sich die Rechnerhersteller seit vielen Jahren darauf verständigt, den eigentlichen ASCII-Code, also die internationale Referenzversion des 7-Bit-Code, allen Codepages auf allen Betriebssystemen zugrunde zu legen und die länderspezifischen Zeichen erst ab der Speicheradresse 129 unterzubringen. Solange also nur dieser 7-Bit-Code verwendet wird, wird eine solcherart kodierte Datei auf allen Rechnern konvertierungsfrei lesbar sein.

Wenn aber die 256 Zeichenadressen von ANSI nicht ausreichen, um alle Zeichen darzustellen, reichen 128 Adressen erst recht nicht. Dennoch müssen natürlich weiterhin sämtliche Zeichen verfügbar sein; auch diejenigen, die sich nicht im 7-Bit-ASCII-Code finden.

Die Lösung dieses Problems besteht darin, alle Zeichen, die außerhalb des 7-Bit-Basisalphabets liegen, als eine eindeutige Zeichenfolge zu kodieren, die ihrerseits wieder aus Zeichen des 7-Bit-Codes besteht. Für SGML hat man sich auf eine solche Regel verständigt, die seit 1986 als ISO 8879 international normiert ist: Ein Sonderzeichen wird immer mit einem »&« beginnend kodiert und mit einem »;« abgeschlossen – die dazwischen liegende Zeichenfolge beschreibt das Sonderzeichen (&zeichenname;). Diese Zeichenfolge wird entity reference, kurz Entity genannt. ISO 8879 weist dabei jedem ISO 8859-Zeichen eine Entity zu. Da die Internet-Sprache HTML auf SGML basiert, haben die ISO-Entities durch HTML eine enorm weite Verbreitung gefunden (allerdings umfasst die HTML-Entity-Liste nicht alle ISO-Entities).

In der Tat löst dieses Vorgehen die Probleme beim internationalen Textaustausch. Sind die länderspezifischen Zeichen als Entities im 7-Bit-Code kodiert, kommt auf allen Rechnern eine identische Zeichenfolge an; die Interpretation der Entities übernimmt erst die Software des Endnutzers. Dazu übersetzt sie die Entities in die systemspezifischen Zeichencodes.

Auf diese Weise stellt z. B. jeder Internet-Browser die Zeichenfolge ü (für englisch »u-umlaut«) im Quelltext auf dem Bildschirm als »ü« dar.

<p class="bildlegende">Einige Beispiele für ISO-8879-Entities</p>

Dieses Prinzip hat sich wegen seiner vorteilhaften Neutralität gegenüber Soft- und Hardwaredifferenzen auch für die medienneutrale Datenhaltung durchgesetzt. Wie im Internet alle Browsertypen mit jedem Betriebssystem auf beliebiger Hardware alle als Entities kodierten ISO-8879-Zeichen darstellen können, können mittlerweile auch viele Satzsysteme oder CD-ROM-Publikations-Software Entities für Sonderzeichen auswerten.

Der ISO-8879-Standard enthält freilich nur die üblichen europäischen Zeichen und Sonderzeichen. Viele Symbole und Zeichen, die z. B. in der Wissenschaftswelt benötigt werden, fehlen. SGML sieht daher auch die Definition eigener Entities für Sonderzeichen vor. Innerhalb einer geschlossenen Nutzergruppe, wie sie z. B. ein Verlag mit seinen Dienstleistern darstellt, können daher auch selbstdefinierte Entities verwendet werden. In solchen Fällen muss auf einen selbsterstellten Zeichensatz zurückgegriffen werden, dessen Zeichen durch vom Verlag selbst definierte Entities vertreten werden. Freilich können diese Daten nur für die Erstellung von Printprodukten oder CD-ROM-Anwendungen verwendet werden, bei denen die selbsterstellten Zeichensätze automatisch auf dem Rechner des Nutzers installiert werden. Die Verwendung im Internet ist dagegen unmöglich, da die Standardbrowser auch nur die Standardentities auflösen können.

Auch die ganze nichteuropäische Welt ist in ISO 8879 nicht berücksichtigt. »Sonderzeichen« ist hier immer aus westlicher Sicht gemeint: aus der Perspektive der arabischen oder asiatischen Länder besteht natürlich unsere lateinische Schrift aus »Sonderzeichen«.

Ein weiteres Problem ist, dass sich die ISO-Entities bisher nur in der Internet-Kodierungs-Sprache HTML und in der SGML/XML-Welt durchgesetzt haben. Ein Text, der diese Entities enthält, wird also nur von Webbrowsern und SGML/XML-Spezialsoftware für den professionellen Gebrauch richtig angezeigt. Normale Bürosoftware, die im Verlagsworkflow immer noch eine nicht wegzudenkende Rolle spielt, wird mit Entities Probleme haben. In der Regel wird sie Texte mit Entities nur über den Umweg des HTML-Imports akzeptieren.

Dennoch sind Entities im professionellen Umfeld – soweit damit europäische Verlage gemeint sind – nach wie vor die Lösung der Wahl, da sie hinsichtlich Zuverlässigkeit und Kompatibilität momentan unersetzbar sind.