XML-Know How

Die Lösung: Character Entities

Der ASCII-Code wurde rasch zur Standard-Zeichencodierung für den Datenaustausch – war er doch der einzig zuverlässige Code, um Textinformationen zu übertragen. Doch blieb ein Problem bestehen: Wie überträgt bzw. codiert man die Zeichen, die nicht Bestandteil des ASCII-Codes sind? Denn genau bei diesen tritt ja das Problem der »verschiedenen Setzkästen« auf.

Der Aufbau der Entities

Die Antwort war einfach: wenn es nur 95 druckbare Zeichen gibt, die zuverlässig weltweit identisch gelesen werden, dann dürfen auch nur diese Zeichen für die Datenübertragung genutzt werden, wenn diese zuverlässig funktionieren soll. Alle Zeichen, die nicht Bestandteil des ASCII-Codes sind, müssen daher codiert werden – als eine Folge von Zeichen, die ihrerseits wieder Bestandteil des ASCII-Codes sind. Aufgrund dieser Überlegungen entwickelte man für die Ersatzzeichenfolgen, die in mehreren ISO-Standards Eingang gefunden haben, sogenannte Character Entities. Sie beginnen immer mit einem »&«-Zeichen und enden mit einem »;«. Dazwischen sind ausschließlich ASCII-Zeichen erlaubt – und auch das & und das »;« selbst sind Bestandteile des ASCII-Codes. Die ISO-Standard-Entity für ein »ü« lautet so z. B. ü.

Abb. 12 Durch den Einsatz von Entities werden zwar mehr Zeichen übertragen, dafür aber nur ASCII-Zeichen, die vom Zielrechner sämtlich korrekt interpretiert und in der Darstellung wieder durch das ursprünglichen Zeichen (hier: »ü«) ersetzt werden

Auf diese Weise werden zwar mehr Zeichen übertragen, aber ausschließlich ASCII-Zeichen. Diese werden vom Zielrechner korrekt interpretiert und die Entities werden für die Darstellung am Bildschirm wieder in die zugehörige Glyphe umgewandelt.

Auf diesem Grundprinzip basiert bis heute ein Großteil der Datenübertragung im gesamten Internet. Jeder Browser (das Darstellungsprogramm, das benötigt wird, um eine Website anzuzeigen) hat umfangreiche Listen von Standard-Entities und deren Auflösung hinterlegt. Die Umwandlung von Entity zur darzustellenden Glyphe geschieht in Echtzeit, während der Browser die Webseite aufbaut.

Tipp:

Sie können dieses Prinzip leicht selbst überprüfen, indem Sie sich den Quellcode einer Webseite anzeigen lassen. In den meisten Browsern können Sie das dadurch tun, dass Sie mit der rechten Maustaste in den Text der Webseite klicken und dann den Menüpunkt »Seitenquelltext anzeigen« auswählen.

Natürlich muss der Anwender die Entities nicht im Quellcode eintippen; ebenso, wie der Browser das Entity interpretiert, gibt es Programme, um Webseiten zu erstellen, die beim Eintippen eines Sonderzeichens gleich das zugehörige Entity in den Quellcode der Seite einfügen.

Dieses Prinzip war Jahrzehnte lang die einzige zuverlässige Möglichkeit der Datenübertragung. Aber es erfuhr seine Grenzen mit der zunehmenden Globalisierung. Denn beim ASCII-Code handelt sich nun einmal um den American Standard Code – das heißt, er basiert auf dem lateinischen Alphabet. Für alle Länder, deren Sprachen auf diesem Alphabet basieren, ist der ASCII-Code ein sehr effizientes Mittel der Zeichencodierung. Nicht so für Länder, die andere Alphabete verwenden. Für diese galt: ALLE Schriftzeichen der eigenen Sprache müssen stets in Entities umgewandelt werden – und zwar in einem Alphabet (dem lateinischen), das der Schreiber der Seite möglicherweise gar nicht versteht. Anders herum ausgedrückt: Wäre das einheitliche Codierungsschema nicht in Amerika, sondern in Indien entwickelt worden, müssten wir heute jeden Buchstaben aller unserer Texte als eine Folge von Devanagari-Zeichen codieren.