Standardisierung und Offenheit
1.2.4 Standardisierung und Offenheit

Standardisierung von Dokumentformaten und Validierbarkeit erleichtern die Kommunikation im World Wide Web und schränken die Zahl der möglichen Empfänger von Dokumenten so wenig wie möglich ein. Sie erlauben es außerdem, allgemein verwendbare Software-Komponenten zu entwickeln, die sich für unterschiedliche Typen von Dokumenten benutzen lassen.

XML ist ein offener Standard, der sich von jedem, der daran interessiert ist, ohne rechtliche Einschränkungen und ohne Lizenzgebühren verwenden lässt. Auch alle wichtigen auf XML aufbauenden Standards und Formate sind offen und lizenzfrei. Es ist kein Zufall, dass die Entwicklung von XML parallel zu den Erfolgen des Open-Source-Prinzips in wichtigen Bereichen der Software-Industrie verlief. Die Möglichkeiten der weltweiten Kooperation im WWW lassen sich am effizientesten nutzen, wenn die Daten selbst in offenen Formaten vorliegen (XML) und wenn Software unbeschränkt ausgetauscht, eingesehen und weiterentwickelt werden kann (Open Source).

XML ist als Format insbesondere dann geeignet, wenn unsicher oder unbekannt ist, mit welcher Software Dokumente verarbeitet werden. Ein XML-Format legt nicht fest, mit welchem Programm ein Dokument verarbeitet werden soll; es enthält nur Informationen darüber, wie es zu verarbeiten ist. Jeder Anbieter eines "Micro-Browsers" für die Darstellung von WML-Dokumenten auf tragbaren Geräten kann z. B. die WML-Spezifikation implementieren.

XML bietet als einheitliche, standardisierte Metasprache, in der sich unterschiedliche Dokumenttypen definieren lassen, den Vorteil, dass Dokumente bei aller Unterschiedlichkeit mit denselben Werkzeugen verarbeitet werden können. Die elementarsten dieser Werkzeuge sind XML-Parser, die die Dokumente auf formale Korrektheit überprüfen und ihnen — in einer meist wiederum standardisierten Form — Informationen für die Weiterverarbeitung entnehmen können. So können z. B. ein Webbrowser, ein XML-Editor und eine E-Commerce-Anwendung denselben Parser verwenden. Die validierenden Parser dienen außerdem zur Überprüfung, ob Dokumente zu einem vorgegebenen Dokumenttyp gehören, ob also zum Beispiel ein XHTML-Dokument den formalen Regeln für diese Sprache genügt.

Anwendungsfall: XHTML

Damit alle XML-Dokumente von denselben Standard-Parsern verarbeitet werden können, müssen einige Grundregeln eingehalten werden. Um dies zu verdeutlichen, sollen im Folgenden HTML und die XML-Anwendung XHTML gegenübergestellt werden. XHTML war zunächst eine Redefinition von HTML 4.0 als XML-Anwendung. Aufgrund der Erweiterbarkeit und Modularisierung, die für XML charakteristisch sind, hat sich XHTML in der Folge ab Version 1.1 zu einer eigenen Sprachfamilie entwickelt, die deutlich über den Sprachumfang von HTML hinausgeht. (Wenn heute — April 2003 — von XHTML gesprochen wird, ist damit meistens die mit HTML 4 weitgehend äquivalente Version 1.0 gemeint.)

Ein XHTML-Dokument muss — wie jedes andere XML-Dokument — folgende Bedingungen erfüllen:

  • Nicht-leere Elemente müssen immer mit einem schließenden Tag geschrieben werden; zu jedem <p> gehört genau ein </p>. Ein HTML-Autor darf dagegen in bestimmten Fällen auf öffnende oder schließende Tags verzichten.

  • Leere Elemente werden entweder mit direkt aufeinander folgenden Start- und Endtags geschrieben, oder es wird ein "Empty-Element-Tag" verwendet, das durch ein "/" vor der schließenden Spitzklammer geschlossen wird, z. B.: <br/> statt <br></br>. In HTML darf ein als leer deklariertes Element kein Endtag besitzen. Das Element br erscheint in einem HTML-Dokument daher immer als <br>.

  • In XHTML müssen alle Attributnamen und Elementnamen klein geschrieben werden, also z. B.: <table> ... </table>. Hier handelt es sich um eine spezielle XHTML-Anforderung. Grundsätzlich behandeln XML-Anwendungen groß- und kleingeschriebene Buchstaben im Markup immer als unterschiedliche Zeichen, sie sind "case-sensitive". Bei HTML spielt dagegen innerhalb der Auszeichnungen die Groß- oder Kleinschreibung keine bedeutungsunterscheidende Rolle.

  • Alle Attributwerte müssen in Anführungszeichen stehen: <img src="bild01.jpg"/>. In einem HTML-Dokument wäre dagegen auch erlaubt: <img src=bild01.jpg>.

  • Bei Attributen müssen immer Namen und Werte angegeben werden. Im Gegensatz dazu ist es in HTML möglich, in bestimmten Fällen auf die Angabe des Attributnamens zu verzichten. So müsste man in XHTML immer schreiben <p align="center">, während in HTML auch <p center> erlaubt ist.

Der Sinn dieser Regeln besteht darin, die Verarbeitung der Dokumente zu erleichtern; es werden weniger Optionen zugelassen als bei HTML. Ein XML-Prozessor muss nicht darüber informiert werden, ob bei einem bestimmten Dokumenttyp zum Beispiel auf schließende Tags verzichtet werden kann. Das ist besonders wichtig, wenn Prozessoren unterschiedliche Dokumenttypen verarbeiten sollen.

XML verfügt außerdem über einen einfacheren Mechanismus zur Angabe der verwendeten Zeichenkodierung. Als Grundmenge der verfügbaren Zeichen wird der Zeichenvorrat aus dem international standardisierten Unicode verwendet. Zu Beginn eines XML-Dokuments wird in der bereits erwähnten XML-Deklaration angegeben, in welcher Kodierung diese Zeichen im Dokument repräsentiert werden. Neben der in Europa verbreiteten Kodierung gemäß dem internationalen Standard ISO/IEC 8859 werden für XML-Dokumente auch häufig die für den mit Unicode vergleichbaren Universal Character Set ("universeller Zeichenvorrat", UCS) von ISO/IEC 10646-1 entwickelten UCS transformation formats (UTF) verwendet. Insbesondere die Variante UTF-8, die ein Zeichen mit einer Folge von bis zu sechs Bytes repräsentiert, wird von vielen XML-Werkzeugen unterstützt.

Anhand eines kurzen HTML-Dokuments und eines entsprechenden Gegenstücks in XHTML wollen wir die wesentlichen Unterschiede noch einmal aufzeigen. Beispiel 1.6 zeigt ein korrektes HTML-Dokument, wo von der Möglichkeit zum Weglassen von Tags Gebrauch gemacht wurde. Im Anschluss daran zeigt Beispiel 1.7, wie ein entsprechendes XHTML-Dokument aussehen könnte.

Beispiel 1.6 HTML ohne schließende Tags

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
   <HEAD>
      <TITLE>20021002_WI_UN_43</TITLE>
   </HEAD>
   <BODY>
        <H1>Firma M&uuml;ller kauft Firma Meier</H1>
        <H2>CIO Schulze: es geht voran</H2>
        <P>Der schw&auml;bische Software-Konzern <B>M&uuml;ller</B>, 
           Hersteller des Warenabrechnungssystems <I>M&uuml;llerwaren</I>,
           hat die &Uuml;bernahme der Firma <B>Meier</B> bekanntgegeben. 
           Der Kaufpreis betr&auml;gt 2 Millionen Euro. 
        <P><IMG SRC="hschulze.png">Heiner Schulze, CIO von M&uuml;ller, 
           sagt dazu <I>Es geht voran</I>.
        <P>Hier sollte noch recherchiert werden!
        <BR>
        <A HREF="http://nachrichtenhost/quelle.html">M&uuml;ller 
          &uuml;bernimmt Meier</A>
   </BODY>
</HTML>

      

Beispiel 1.7 XHTML-Dokument

<?xml version="1.0" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
   <head>
      <title>20021002_WI_UN_43</title>
   </head>
   <body>
        <h1>Firma M&uuml;ller kauft Firma Meier</h1>
        <h2>CIO Schulze: es geht voran</h2>
        <p>Der schw&auml;bische Software-Konzern <b>M&uuml;ller</b>, 
           Hersteller des Warenabrechnungssystems <i>M&uuml;llerwaren</i>, 
           hat die &Uuml;bernahme der Firma <b>Meier</b> bekanntgegeben. 
           Der Kaufpreis betr&auml;gt 2 Millionen Euro. 
        </p>
        <p><img src="hschulze.png"/>Heiner Schulze, CIO von M&uuml;ller, 
           sagt dazu <i>Es geht voran</i>.</p>
        <p>Hier sollte noch recherchiert werden!</p>
        <br/>
        <p><a href="http://nachrichtenhost/quelle.html">M&uuml;ller 
          &uuml;bernimmt Meier</a></p>
   </body>
</html>
      

Wie die meisten XML-Dokumente enthält das Dokument eine XML-Deklaration, eine Dokumenttyp-Deklaration sowie die Angabe eines Namensraums durch das Attribut xmlns. Mit diesen Angaben, die bei XML-Dokumenten nicht zwingend erforderlich sind, aber empfohlen werden, beschäftigen wir uns in den Lerneinheiten 2, 3 und 4.

Der vielleicht wichtigste Unterschied zwischen HTML und XHTML besteht nicht in der Syntax, sondern im unterschiedlichen Verhalten von HTML- und XHTML-Prozessoren — also der Software, die die Dokumente verarbeitet. HTML-Prozessoren behandeln Verstöße gegen die HTML-Syntax lax; sie stellen die Verarbeitung des Dokuments nicht ein. Diese Eigenschaft stammt aus der Zeit, als syntaxgesteuerte Editoren für HTML nur wenig verbreitet waren. Ein Großteil der HTML-Dokumente wurde daher vollständig manuell verfasst und wies zahlreiche Syntaxfehler auf. Mittlerweile sind zwar sehr leistungsfähige Werkzeuge zur Erzeugung von HTML-Dokumenten verfügbar, aber häufig entsprechen die Ergebnisse ebenfalls nicht vollständig der jeweils verwendeten Variante von HTML. Durch diese z. T. eklatanten Verstöße gegen die Sprachdefinition wird eine automatische Weiterverarbeitung der Dokumente erschwert, ja gelegentlich unmöglich gemacht.

XHTML-Prozessoren reagieren auf Verstöße gegen die Regeln der XML-Syntax dagegen mit einer Fehlermeldung und dem Beenden der Verarbeitung. Dieses Verhalten wird von der Empfehlung XML 1.0 (siehe unten) gefordert. Es soll sicherstellen, dass XML-Dokumente von jedem Anwendungsprogramm in der gleichen Weise verarbeitet werden können.

XHTML-Elemente müssen wie HTML-Elemente immer hierarchisch ineinander eingebettet sein. Falsche Konstruktionen wie z. B. <b><i>Wichtig:</b></i>, die von vielen HTML-Browsern akzeptiert werden, werden von XHTML-Browsern nicht verarbeitet. Es muss heißen: <b><i>Wichtig:</i></b>.

Validierbarkeit, Verarbeitbarkeit mit Standard-Werkzeugen und verständliche, explizite Auszeichnungen haben auch Nachteile: Die Dokumente werden sehr lang ("wortreich" oder "geschwätzig", englisch "verbose") und benötigen zu ihrer Verarbeitung Software und Rechnerkapazität, die für die im Einzelfall jeweils zu lösende Aufgabe nicht erforderlich wäre. XML wird sinnvoll immer dort verwendet, wo diese Nachteile weniger ins Gewicht fallen als die Vorteile, die es für die Kommunikation in der offenen Umgebung des WWW bietet.