Websiteentwicklung: XML: Geschichte

Standard Generalized Markup Language (ISO 8879:1986) ist eine komplexe Auszeichnungssprache, die als Vorgänger von XML angesehen wird, beziehungsweise XML als spezielle Anwendung von SGML, die nur einfache Strukturen von SGML verwendet. SGML wurde in den 80er Jahren standardisiert und ist aus einem IBM-Forschungsprojekt hervorgegangen. Das Ziel war, ein allgemeines Kodierungsschema zu schaffen, mit dem Texte logisch und semantisch strukturiert werden können. SGML fand eine weite Verbreitung, da jedoch aufgrund seiner Komplexität und Flexibilität die Programme zu ihrer Verarbeitung komplex, teuer und schwer zu handhaben waren, wurde sie nur von größeren Organisationen und Konzernen verwendet.

1989 entwickelte Tim Berners-Lee auf Basis von SGML eine einfache Sprache zur Strukturierung von Dokumenten des CERN. Das war HTML (Hypertext Markup Language) zusammen mit dem Transferprotokoll HTTP (Hypertext Transfer Protocol). Im Interesse einer einfachen Verwendung von HTML wurden einige Vorteile von SGML geopfert. Das war eine pragmatische Entscheidung, die dazu führte, daß sich HTML explosionartig verbreitete. Der geringe Sprachumfang der frühen HTML-Versionen führte jedoch dazu, dass proprietäre Elemente eingeführt wurden und ein Chaos hinsichtlich der Interpretation von verschiedenen Darstellungsprogrammen entstand. HTML3 und HTML3.2 waren als Standards problematisch, weil Version 3 kaum auf die Interessen der Anbieter von Darstellungsprogrammen einging und 3.2 unter deren Einfluß die wesentlichen Ideen von HTML ignoriert hat. Deshalb wurde HTML4 vom W3C als Empfehlung herausgegeben. Ziemlich zur gleichen Zeit wurde dazu auch die Stilvorlagensprache CSS als Empfehlung herausgegeben, was es dann Autoren ermöglicht hat, Inhalt (HTML) vom Design oder der Präsentation (CSS) zu trennen.

Als nachteilig hinsichtlich der Erweiterungen und Aktualisierung von HTML hat sich schnell erwiesen, dass dies praktisch keine Behandlung von fehlerhaften Dokumenten vorgesehen hat, zur Interpretation zudem genau bekannt sein mußte, welche Elemente Endmarkierungen haben müssen, welche Endmarkierungen haben können und welche keine haben dürfen, welche Elemente gar komplett weggelassen werden können, weil sie automatisch zu implizieren sind. Zudem hat HTML einige Syntax-Varianten von SGML erlaubt, die tatsächlich bei keinem gängigen HTML-Darstellungsprogramm je implementiert wurden. Somit ist praktisch immer eine detaillierte Kenntnis der aktuellen HTML-Version notwendig, um korrekte HTML-Dokumente korrekt zu analysieren, während Autoren zunehmend auch noch mangelhafte oder fehlerhafte Dokumente veröffentlicht haben, weil die Darstellungsprogramme mit nicht spezifizierten Methoden Fehler zu kompensieren versucht haben, zudem eventuell korrekte Inhalte aber konsequent falsch interpretiert haben, was HTML letzlich zu einer Markierungssuppe hat verkommen lassen, deren Interpretation durch Darstellungsprogramme den Dokumentautoren teils hochgradig beliebig erscheinen mußte. Autoren haben sich teilweise auf Fehler der Darstellungsprogramme verlassen oder auf deren beliebige Interpretation von fehlerhaften Dokumenten eingestellt, was dann wieder zur Folge hatte, dass Programmierer der Darstellungsprogramme es nicht mehr gewagt haben, einige gravierende Fehler und Mängel zu beheben, um ihre Programme dazu zu bringen, HTML4 korrekt zu interpretieren. Nach Jahren war dann kaum noch zu identifizieren und zu unterscheiden, wer alles als Koch, Umrührer und Würzer für die tatsächlich existierende HTML-Markierungssuppe verantwortlich war, irgendwie mischten alle auf unheilvolle Weise mit, sowohl die Implementierer und Programmierer von Darstellungsprogrammen als auch die Autoren, die HTML für ihre Dokumente (falsch) nutzten.

Die Bemühungen, zu den Idealen der Dokumentenverarbeitung zurückzukehren, führte parallel dazu zur Entwicklung von XML. XML ist im Prinzip eine vereinfachte Version der SGML, die einfacher zu handhaben ist. Die Mängel hinsichtlich der Elementmarkierungen von HTML werden darin ebenso konsequent vermieden wie in HTML erlaubte, aber praktisch nie implementierte Syntax-Varianten von SGML. Ferner sieht XML ein definiertes Verhalten vor, wenn Strukturfehler in einem Dokument gefunden werden. Ein in dem Sinne fehlerhaftes Dokument ist dem Autor zur Kenntnis zu bringen, damit dieser Fehler vor einer Veröffentlichung korrigieren kann. Diese Einfachheit erleichtert die Handhabung so sehr, dass das altbekannte HTML auf Basis von XML, anstatt SGML neu definiert wurde. Das Ergebnis heißt XHTML (Extensible Hypertext Markup Language). XHTML ist dann auch von Anfang an wie vorgesehen von Autoren definiert erweiterbar, etwa durch Kombination mit SVG, MathML, RDF oder anderen XML-Standards, während HTML4 diese Möglichkeit nicht bietet.

Leider hatten sich allerdings abermals die Anbieter von Darstellungsprogrammen für HTML-Markierungssuppe als gute Lobbyisten erwiesen, welche in der Lage waren, mit HTML5 eine weitere Sprachvariante herauszubringen, die neben einer XHTML-Notation auch weiterhin eine HTML-Markierungssuppen-Notation erlaubt, welche weder mit SGML, HTML4 noch mit XML etwas zu tun hat und die mit XML und XHTML etablierten Vorteile wieder zurücknimmt. Eine geplante Weiterentwicklung XHTML2 wurde dafür nach einigen Jahren Entwicklung eingestellt.

Der primäre 'Vorteil' der HTML5-Markierungssuppen-Notation liegt gerade in ihrer Komplexität, welche die etablierten Anbieter von Darstellungsprogrammen weitgehend von neuen Anbietern schützt, weil es eben viel aufwendiger ist, ein Darstellungsprogramm für HTML5-Markierungssuppen-Notation zu programmieren, als für die einfache, auf XML basierende Notation. Da gleichzeitig erfolgreich von denselben Herstellern die Werbetrommel für HTML5-Markierungssuppe getrommelt wurde, wird diese Variante nun auch oft statt der XML-Variante von Autoren verwendet, was auch als herber Rückschlag für XML jedenfalls für den Bereich (X)HTML angesehen werden kann. Die komplexe HTML5-Markierungssuppe ist auch ein herber Rückschlag für die Zugänglichkeit und Barrierefreiheit von Information, eben weil es für neue, unabhängige Anbieter so schwierig und aufwendig ist, neue Programme zu schreiben, die als Markierungssuppe notierte Information nach den spezifischen Bedürfnissen des Publikums zu präsentieren.

Da die HTML5-Markierungssuppen-Notation auch anders als die XHTML-Variante genau vorschreibt, in welcher Weise die Markierungssuppe erweiterbar ist, haben die Anbieter von Darstellungsprogrammen auch hier ihre Möglichkeiten gut genutzt, um Autoren vorzuschreiben, welche Inhalte sie in welcher Form verbreiten dürfen und welche nicht, womit auch in dieser Hinsicht der allgemeinere, liberale, freiere, eigenverantwortlichere Ansatz von XML erfolgreich sabotiert wurde.

Jenseits von (X)HTML hat sich XML allerdings auf breiter Basis etabliert und sich von der Altlast HTML befreit. Autoren, die von den Vorteilen von XML profitieren möchten und nicht unter den Einschränkungen und Gängelungen der HTML5-Markierungssuppen-Notation leiden, welche auch den allgemeinen Zugang zu Information erleichtern wollen, statt ihn künstlich und unnötig zu erschweren, sollten natürlich auch weiterhin die XML-Variante von HTML5 oder ältere Versionen von XHTML nutzen, um diese Probleme weitgehend zu umgehen. Für Personen, die Dokumente automatisch weiterverarbeiten oder konvertieren möchten, bleibt die Komplexität der HTML5-Markierungssuppe allerdings ein massives Problem, weil für diese nicht die einfachen, für XML verfügbaren Programme verwendet werden können.