XML

Co-Standards machen XML erst praxistauglich

21.04.2000
XML wird häufig als Markup-Sprache missverstanden. Ihr Nutzen liegt aber vielmehr darin, solche Auszeichnungssprachen zu definieren. Thomas Michel* gibt einen Überblick über die wichtigsten solcher XML-Anwendungen und beschreibt die wesentlichen ergänzenden Standards, ohne die eine XML-Nutzung nicht möglich wäre.

Hin und wieder scheint uns ein Name nicht ganz zum Gesicht seines Trägers zu passen. Das gilt nicht nur für Menschen, sondern auch für Technologien - und ganz besonders für XML. Der Name Extensible Markup Language (XML) steht genau genommen weder für eine Auszeichnungssprache (Markup Language) noch für eine Sprache, die sich erweitern lässt - etwa für eine erweiterbare Hypertext Markup Language (HTML). Noch weniger handelt es sich bei XML, wie oft gemutmaßt, um eine Obermenge von HTML. XML ist zwar eine Sprache und umfasst auch einige Regeln, nach denen Informationen ausgezeichnet werden müssen. Aber XML schreibt weder das Vokabular vor, mit dem diese Auszeichnung erfolgt, noch legt XML die strukturellen Beziehungen der ausgezeichneten Daten fest. Vielmehr ist XML eine Sprache zur Definition von Auszeichnungssprachen (ihrer Syntax und ihres Vokabulars) - und als solche keineswegs erweiterbar.

Auszeichnungssprachen gibt es viele. Ihnen gemeinsam ist, dass sich mit ihnen in Dokumenten zusammengefasste Informationen um Metainformationen ergänzen lassen, das heißt um Informationen, deren Gegenstand Informationen sind. Wer etwa zum Ausdruck bringen möchte, wie eine Information dargestellt (formatiert) werden soll, kann das mit Hilfe so verschiedener Auszeichnungssprachen wie RTF, PDF oder auch HTML tun. Solche präsentationsbezogenen Auszeichnungssprachen haben im weitesten Sinn prozeduralen Charakter - sie steuern die Verarbeitung eines Dokuments durch einen Formatierer. Im Unterschied dazu verhält sich eine mit XML definierte Auszeichnungssprache hinsichtlich jeder Art von Verarbeitung eines Dokuments neutral. Sie trennt insbesondere den Inhalt vom Layout eines Dokuments und konzentriert sich auf die inhaltsbezogene Beschreibung der Informationen eines Dokuments. Die mit XML definierten Auszeichnungssprachen sind also deskriptiv. Ein Beispiel:

<produkt>

<modell>Einbauküche Z2307-a</modell>

<lieferant>Möbelhaus am Eck</lieferant>

<bestnr>E0012805</bestnr>

<preis>

<brutto einheit="euro">4.990</brutto>

<ust einheit="%">16</ust>

</preis>

<frist einheit="wochen">6-8</frist>

</produkt>

Das Beispiel zeigt: Die Information wird nicht nur durch die Namen von Elementen (wie "produkt") und durch deren Attribute (beispielsweise "einheit") beschrieben, sondern sie wird auch hierarchisch und sequenziell gegliedert. Das Element "lieferant" ist Teil des Elements "produkt". Das Element "modell" geht dem Element "lieferant" voran. Eine mit XML definierte Auszeichnungssprache normiert neben den Namen auch die Häufigkeit von Elementen, ihre Schachtelung und die Abfolge, in der sie auftreten dürfen, kurz: die Struktur der Elemente. Namen, Attributwerte und Struktur ergeben zusammen die Metainformation eines XML-Dokuments.

XML trennt den Inhalt von der DarstellungMit der deskriptiven Auszeichnung von Informationen verfolgt man gewöhnlich gleich mehrere Zwecke. Der augenfälligste Vorzug von XML-Dokumenten ist ihre Austauschbarkeit über Applikationen, Medien und Plattformen hinweg. Das ist unter anderem möglich, weil XML sehr bescheidene, allgemein erfüllbare Anforderungen an das Datenformat stellt - was wiederum seinen Grund in der Trennung von Darstellung und Inhalt (und zwar bis auf Zeichenebene) hat. Dass sich aus dieser Trennung Vorteile hinsichtlich der Portabilität des Inhalts, nicht aber Nachteile hinsichtlich der Präsentation ergeben, resultiert aus der Auszeichnung der Inhalte, die eine automatische Zuweisung des Layouts in Abhängigkeit von den verfügbaren Metainformationen ermöglicht. Das Layout wird in Form von Stylesheets physisch getrennt vom XML-Dokument aufbewahrt und in Abhängigkeit von Adressat oder Medium zugewiesen.

Dasselbe Prinzip unterstützt auch die Identifikation und Verarbeitung von Inhalten. Mit Hilfe der Metainformation in einem XML-Dokument können dessen Inhalte gezielt angesteuert, kopiert, gefiltert, transformiert, aktualisiert oder aus anderen Dokumenten referenziert werden. Man vermeidet unnötige Redundanz durch Mehrfachnutzung, verbessert den Informationszugang und vereinfacht die Pflege beziehungsweise Aktualisierung der Dokumente. Dass inhaltsbezogen ausgezeichnete XML-Dokumente in einem chaotischen Informationspool wie dem Internet eine ganz neue Effizienz von Suchmaschinen ermöglichen oder dass sich Dokumentteile selektiv (personalisiert) an Interessenten übertragen lassen, ist dabei nur der offenkundigste Nutzen.

Für etliche andere, sehr unterschiedliche Bereiche - vom elektronischen Handel bis zur Produktdokumentation - eröffnet XML eine Reihe weiterer Vorteile im Hinblick auf die inhaltliche wie formale Qualität der Dokumente. Die mit XML zu definierenden Auszeichnungssprachen stellen ja Dokumenttypen dar. Und ein Dokumenttyp kann für den Verfasser eines entsprechenden Dokuments als Modell für dessen gedanklichen, inhaltlichen Aufbau fungieren. Die Struktur eines Dokuments wird nicht immer wieder neu erfunden; die Gefahr verringert sich, dass wesentliche Teile fehlen, andere mehrfach erscheinen und wieder andere falsch platziert sind. Zugleich wird der Verfasser von der Pflicht zur inhaltsadäquaten Formatierung entbunden. Das Layout bekommt das Dokument ja aufgrund seiner Auszeichnungen automatisch zugewiesen.

Die Übereinstimmung zwischen Dokumenttyp (Auszeichnungssprache) und Dokument - man spricht von Validität - lässt sich dabei jederzeit durch einen Parser sicherstellen. Ein Parser kontrolliert also nicht nur, ob ein XML-Dokument XML-konform ausgezeichnet ist; er prüft (als validierender Parser) auch, ob das Dokument die Elemente, Attribute und strukturellen Beziehungen aufweist, die der zugrunde liegende Dokumenttyp vorsieht. Der bei weitem größte Teil der XML-Syntax dient der Definition von Dokumenttypen. Dem Beispiel oben entspricht die folgende Dokumenttypdefinition (DTD):

Die fett gedruckten Teile der DTD stehen für XML-Syntax, der Rest repräsentiert die frei gewählten Namen von Elementen und Attributen. Obwohl es jedem freisteht, mit XML einen eigenen Dokumenttyp zu definieren, sind DTDs gewöhnlich kein Privatvergnügen. Oft normieren sie den Datenaustausch zwischen Unternehmen, zwischen Abteilungen eines Unternehmens oder zwischen Institutionen. Sie sind damit eine Sache der Vereinbarung. Viele DTDs haben inzwischen den Rang weithin akzeptierter Standards erlangt - nicht zuletzt aufgrund ihrer Empfehlung durch W3C, ISO oder disziplinäre und branchenspezifische Konsortien. Zu den bedeutendsten zählen XHTML, WML, SVG, MathML und SMIL.

XHTMLSeit Januar 2000 ist HTML in die XML-Liga aufgestiegen. Bei XHTML 1.0 handelt es sich weder um ein Superset von HTML noch, wie manchmal zu lesen, um eine Verschmelzung von XML und HTML, sondern um eine XML-konforme Reformulierung des lediglich SGML-konformen HTML 4.0. Diese XML-Konformität kommt zunächst nur in einer Reihe strengerer syntaktischer Regeln zum Ausdruck. Beispielsweise müssen die Namen von Elementen und Attributen (und auch die eingebetteten Style-Angaben) kleingeschrieben werden. Auf Ende-Tags darf auch bei leeren Elementen nicht verzichtet werden. Und alle Elemente müssen "sauber", das heißt ohne Überlappung ineinander geschachtelt sein. HTML-Dokumente syntaktisch zu XHTML aufzupolieren, ist eine wenig anspruchsvolle, automatisierbare Aufgabe. Umgekehrt stellt ein so erzeugtes XHTML-Dokument Browser, die HTML 4.0 unterstützen, vor keine ernsten Probleme.

Das eigentliche Motiv für die Reformulierung von HTML liegt daher nicht im Streben nach syntaktischer Strenge, sondern in dem funktionalen Potenzial, das die XML-Welt bereits heute bietet. Zum einen können XHTML-Dokumente auf standardisierte Weise (siehe den Abschnitt zu Namenräumen) um Teile erweitert werden, die auf anderen DTDs beruhen - Vektorgrafiken, Formeln, Animationen oder einfach Daten, die im Dokument vorgehalten und verarbeitet werden sollen. HTML wird damit zu einer mit den Mitteln von XML beliebig erweiterbaren Sprache. Zum andern werden HTML-Dokumente mit XHTML zu schnittstellenkonformen Daten für eine täglich wachsende und längst nicht mehr überschaubare Zahl XML-basierter Applikationen - für das Internet, aber auch darüber hinaus.

WMLWährend WAP (Wireless Application Protocol) spätestens seit der CeBIT 2000 Eingang in die deutsche Umgangssprache gefunden hat, kennen nur Eingeweihte die XML-Grundlage für den Datenaustausch per Handy: die Wireless Markup Language (WML) der WAP Forum Ltd. WML ist eine XML-DTD, die Rücksicht nimmt auf die Größe von Handy-Displays, auf die beschränkten Eingabemöglichkeiten von Handys, auf deren begrenzte Speicher- und Rechenkapazitäten - und nicht zuletzt auch auf die bescheidene Bandbreite der verfügbaren Netze.

Mit WML werden Informationen in einzelne Cards und Decks (Gruppierungen von Cards) aufgesplittet, die dem Benutzer Gelegenheit zur Auswahl geben und ihn per Links zur Zielinformation führen. Dabei leistet WML mehr als bloß die formatierte Textdarstellung. WML ermöglicht die Wiedergabe von Bildern und erlaubt die Verwendung von Eventhandlern, Scripts oder Eingabeformularen. Wie fast alle XML-DTDs befindet sich auch WML in ständiger Weiterentwicklung in Reaktion und im Vorgriff auf sich entwickelnde Technologien, und es ist nur eine Frage der Zeit, dass WML auch multimedial wird.

SVGUnter dem Titel Scalable Vector Graphics (SVG) bereitet das W3C eine DTD-Spezifikation zur XML-Codierung von Vektorgrafiken vor (aktueller Stand: http://www.w3c.org/TR/SVG).

Sie basiert unter anderem auf der Vector Markup Language VML von Microsoft, die in den Office-2000-Produkten implementiert ist. Getragen wird die SVG-Entwicklung unter anderem von Microsoft, IBM, Sun, Adobe, Hewlett-Packard, Corel, Xerox, Inso, Netscape und Macromedia.

Mit SVG lassen sich zweidimensionale farbige Grafiken codieren, die Text, Verweise, dynamische und interaktive Objekte enthalten können. Das für die Konzeption maßgebliche Medium ist der Bildschirm. Die Grafiken lassen sich (als Vektorgrafiken) ohne Qualitätsverlust skalieren, sie sind animierbar und können mit Hyperlinks (XLinks) bestückt werden. Zahlreiche vorgesehene Event-Handler und Scripts dienen dazu, dass SVG-Grafiken dynamisch gestaltet und interaktiv modifiziert werden können. In Web-Seiten ermöglichen SVG-Grafiken - eingebettet oder referenziert - im Zusammenspiel mit XHTML-Funktionen ein hochwertiges, interaktives Layout.

MathMLBereits seit April 1999 existiert eine W3C-Empfehlung zur Beschreibung mathematischer Formeln mit XML unter dem Titel Mathematical Markup Language (MathML). Damit können Formeln nicht mehr nur als Sequenzen von Sonderzeichen, als referenzierte Grafiken oder in Fremdformaten wie TeX in XML-Dokumenten vorkommen. Auch typografisch anspruchsvolle Formeln lassen sich als XML-Daten erfassen und mit geeigneten Formatierern (beispielsweise Browsern) darstellen.

SMILGrößer noch ist die künftige Bedeutung der Synchronized Multimedia Integration Language (SMIL) des W3C einzuschätzen - einer XML-Sprache zur Beschreibung von Anwendungen, die Text, Bilder, Video- und Audio-Daten kombinieren und synchronisieren. Mit SMIL lassen sich multimediale Objekte definieren, in spezifizierten Bereichen des Bildschirms platzieren, mit temporalen Informationen versehen und durch Hyperlinks verknüpfen. SMIL soll die existierenden Medien-Formate nicht ersetzen, sondern bietet eine Methode zu ihrer Integration in multimedialen Dokumenten. Unter anderem lassen sich damit dynamische Web-Seiten erzeugen.

Genutzt wird SMIL bislang allerdings vornehmlich in Video-Applikationen (beispielsweise in "Real Networks Realplayer" und "Apple Quicktime") sowie Autorensystemen (wie "Allaire Homesite" oder "Real Networks Realslideshow"), mangels unterstützenden Browsern noch nicht zur Web-Seiten-Gestaltung. Das wird sich zweifellos ändern. Eine deutlich erweiterte Version von SMIL erarbeitet unter dem Namen SMIL Boston Specification das W3C (unter Beteiligung von Real Networks, Intel, Macromedia, INRIA, CWI, Microsoft, Philips, Gateway und Compaq) und wird von Internet Explorer 5.5 (Beta) bereits partiell unterstützt.

XHTML, WML, SVG, MathML und SMIL stehen stellvertretend für zahllose XML-Sprachen, die in nächster Zeit den Austausch, die Recherche, die Verknüpfung und die Präsentation von Daten in nahezu allen Bereichen der Informationstechnik bestimmen werden oder bereits bestimmen. Andere Beispiele sind: NITF (IPTC), das News Industries Text Format unter anderem für den Austausch und zur Archivierung von Nachrichten zwischen Presseagenturen und Medien; iXML (Acord), ein Set von XML-Sprachen für die Versicherungswirtschaft; CXML (Ariba), die Commerce eXtensible Markup Language zur Beschreibung von B-to-B-Funktionen wie Abrechnung und Beschaffung; CBL, die Common Business Language von Commerce One, mit der Geschäftsdokumente und Transaktionen ausgezeichnet werden; OMF, das Weather Observation Markup Format zur Codierung von meteorologischen Berichten und Wetterprognosen; SAE J2008 XML der Society for Automotive Engineers, mit der Service-Dokumente in der Automobilindustrie erfasst werden; oder VXML (VXML Forum), die Voice eXtensible Markup Language zur Codierung digitalisierter Lautsprache. Neben den Empfehlungen des W3C lassen sich gegenwärtig weit mehr als 100 industrielle Initiativen zur Definition von XML-Auszeichnungssprachen zählen.

XLL: Information verknüpfenDiese Sprachen bieten für sich genommen einen beachtlichen Nutzwert für den Austausch, die Verwaltung und die Recherchierbarkeit von Informationen - zu einer Schlüssel- und Querschnittstechnologie wird XML aber erst durch eine Reihe ergänzender Standards zur Auswertung, Transformation, Verknüpfung und Präsentation von XML-Dokumenten. Einer dieser Co-Standards des W3C ist die Extensible Linking Language (XLL).

XLL gliedert sich in zwei Teile, die inhaltlich unabhängig voneinander sind, deren zweiter (XPointer) aber den ersten (XLink) ergänzt und entscheidend potenziert. XLink beschreibt, wie Verweiskonstrukte in XML-Dokumenten deklariert und funktional interpretiert werden müssen. Dazu definiert XLink eine Reihe von Modellen, die von einfachen Verweisen bis zu komplexen Verweissystemen reichen.

Im einfachsten Fall (simple-links-Modell) implementiert man mit XLink einen Link-Mechanismus, dessen Funktionalität im Wesentlichen der in HTML ("a"-Element) vorgesehenen entspricht. Das heißt: man referenziert pro Link ein anderes Dokument oder den Teil eines Dokuments und bewegt sich dabei unidirektional von der Quelle zum Ziel. Ein wichtiger Unterschied gegenüber dem HTML-Link kommt bereits hier mit der Lokalisierungssprache XPointer ins Spiel. Damit lassen sich Dokumentteile (speziell Elemente) anhand ihrer relativen Position, ihrer Attribute oder ihres Inhalts identifizieren. Anders als in HTML benötigt man darum zur Verknüpfung von Informationen keine eigens zu diesem Zweck in die Dokumente eingefügten Anker. Es lassen sich mithin auch Dokumentteile per Hyperlink verknüpfen, die darauf nicht vorbereitet wurden und für die man nicht einmal ein Schreibrecht besitzt.

Erweiterte XLink-Verweise (vom Typ in-line) gehen insofern über das einfache Verweismodell hinaus, als sich im selben Link beliebig viele Verweisziele unterbringen lassen. Anwender, die einen solchen Link aktivieren, erhalten eine Auswahlliste der verfügbaren Verweisziele - beispielsweise in einem sich öffnenden Dialogfenster. Um eine sinnvolle Auswahl zu erlauben, müssen die Verweisziele kommentiert sein, was XLink mit entsprechenden Attributen ermöglicht.

Erweiterte Verweise dieser Art genügen zwar so mancher Anforderung - unerfüllt bleibt aber der Wunsch, mit der Codierung eines Links zugleich auch den Rücksprung (unabhängig von einer History-Liste oder dem Back-Button des Browsers) zu implementieren, also bidirektionale Verweise zu realisieren. Angenehm wäre es auch, wenn man zwischen den verschiedenen Verweiszielen, die in einem Link-Element zusammengefasst sind, navigieren könnte, ohne jeweils zur Verweisquelle zurückkehren zu müssen. Hier setzt das Konzept des erweiterten Out-of-line-Links an, das zweifellos zu den innovativsten und folgenreichsten neueren Entwicklungen zu rechnen ist.

Den heute üblichen Hyperlinks ist gemeinsam, dass sie selbst immer Teil der durch sie verknüpften Dokumente sind. Sie fungieren als Verweisquelle und haben einen Verweisinhalt (einen Text oder ein Symbol zum Anklicken). Sie sind im Dokument als Verweisquellen physisch präsent. Eben das meint man, wenn man von Inline-Verweisen spricht. Out-of-line-Verweise zeichnen sich hingegen dadurch aus, dass sie in den verknüpften Dokumenten oder Dokumentteilen nicht physisch präsent sein müssen. Vielmehr können Out-of-line-Verweise in separaten Dokumenten (Zentraldokumenten, Hub-Documents) stehen und von dort aus unter Verwendung von XPointer-Ausdrücken die Verknüpfung anderer Dokumente beziehungsweise Dokumentteile regeln.

Damit eröffnen sich bedeutende technische Möglichkeiten - und zugleich rechtliche Fragen. Wenn Verweise aktive Bezüge zwischen Dokumenten herstellen können, denen sie selbst nicht angehören, dann ist die Verknüpfung von Dokumenten nicht mehr an die Möglichkeit gebunden, sie zu editieren. Dokumente, deren inhaltlicher oder historischer Zusammenhang bei ihrer Erfassung noch kein Thema war, können nachträglich in einen virtuellen Verweiszusammenhang gebracht werden. Insbesondere lassen sich für identische XML-Dokumente beliebig viele, interessen- oder anforderungsspezifische Verweisnetze oder individualisierte Informationssysteme konstruieren, die alternativ geladen werden können. Verweise in Netzen können zentral verwaltet und aktualisiert werden. Das entschärft die Problematik obsoleter Verweisziele. Rechtlich heikel ist, dass sich im Internet verfügbare Dokumente ohne Kenntnis und Zustimmung ihrer Verfasser (und selbst für den Anwender nicht erkennbar) zu neuen virtuellen Dokumenten kombinieren und kommerziell verwerten lassen.

XSL: Dokumente transformieren und formatierenXML-Dokumente enthalten zwar deskriptive Metainformation, aber keine Anweisungen zur Darstellung der Inhalte. Der Vorzug, uneingeschränkt portabel zu sein, erweist sich zugleich als Defizit, denn Darstellung - auf dem Bildschirm oder auf Papier - ist der primäre Existenzgrund vieler Dokumente. Defizitär ist XML hier allerdings nur vordergründig. Gerade die Metainformationen in Gestalt von Elementen und Attributen und ihren strukturellen Beziehungen erlauben eine differenzierte und flexible Verknüpfung von Styles mit Informationseinheiten - in Form von Stylesheets.

Bei diesen Stylesheets kann es sich um Cascading Stylesheets (CSS) handeln, einem im Internet längst etablierten W3C-Standard. Allerdings ermöglicht CSS nur eingeschränkt, was für XML-Dokumente sehr oft wünschenswert ist: Informationen nicht nur zu formatieren, sondern auch inhaltlich zu transformieren, also Informationen zu filtern, hinzuzufügen oder zu restrukturieren. Beides - Formatierung und Transformation - ist die Funktion der Extensible Stylesheet Language (XSL) des W3C.

XSL gliedert sich in zwei Teile. Dem ersten Teil, XSL Transformations (XSLT), offener Standard seit November 1999, fällt dabei die Aufgabe zu, Informationseinheiten in XML-Dokumenten per Mustererkennung anzusprechen und gegebenenfalls zu transformieren. Die Aufgabe, Informationseinheiten zu identifizieren, leistet XSLT nicht allein, sondern zusammen mit einem weiteren W3C-Standard namens XML Path Language (XPath). XPath soll - nebenbei bemerkt - Grundlage einer künftigen XML-Abfragesprache werden, auf die man sich bislang noch nicht verständigen konnte.

Das Ergebnis einer Transformation per XSLT und XPath kann sein: ein neues XML-Dokument, das relativ zur gleichen DTD gültig ist, in dem aber Teile fehlen, andere verschoben wurden, wiederum andere hinzugekommen sind. Das Resultat kann auch ein XML-Dokument sein, das relativ zu einer anderen DTD gültig ist, etwa WML. Bevorzugt setzt man XSLT im Augenblick freilich ein, um XML-Dokumente in HTML-Dokumente zu transformieren - und damit zu formatieren, denn HTML ist eine der wenigen DTDs, für die Styles standardisiert sind, die folglich de facto als Formatiersprache fungiert. XSLT selbst ist eine in XML definierte Sprache - allerdings keine deskriptive, sondern eine funktional interpretierte Sprache, in der sich Konstrukte aus Programmiersprachen (wie Schleifen, Rekursion und Fallunterscheidungen) finden.

HTML ist bekanntlich keine Formatiersprache für gehobene Ansprüche. Um solchen gerecht zu werden, kann man XML-Dokumente mit XSLT in eine spezielle Formatiersprache transformieren, nämlich XSL im engeren Sinne. Dies macht den zweiten (bislang vom W3C noch nicht freigegebenen) Teil von XSL aus. Er definiert eine Vielzahl so genannter Formatierobjekte (fo-Elemente) und Formatiereigenschaften (als Attribute dieser fo-Elemente). Per Transformation werden Inhalte des XML-Dokuments zu Inhalten von Formatierobjekten.

Während also XSLT und XPath unabhängig von XSL (im engeren Sinn) nutzbar sind - und bereits vielfältig eingesetzt werden -, basiert XSL (im engeren Sinn) auf XSLT und dient ausschließlich der anspruchsvollen Formatierung von XML-Dokumenten - wobei XSL nur eine von mehreren Alternativen darstellt. Das ist ein Grund dafür, weshalb die Standardisierung von XSL (im engeren Sinn) vom W3C mit merklich gedämpftem Eifer betrieben wird.

XML Document Object Model (DOM)Auf die in XML-Dokumenten ausgezeichneten Daten sollen natürlich nicht nur Transformierer und Formatierer Zugriff haben. Die Auswertung von in XML codierten Informationen soll vielmehr möglichst für jede Applikation und in jeder gängigen Programmiersprache realisierbar sein. Genau dieses Ziel verfolgt das Document Object Model (DOM) für XML. DOM liegt schon seit Oktober 1998 als W3C-Empfehlung vor. Eine Erweiterung ist derzeit unter dem Titel DOM Level 2 in Vorbereitung.

Das XML-DOM begreift alle wesentlichen Teile von XML-Dokumenten als hierarchisch geordnet und modelliert sie als Knoten in einer Baumstruktur. Die DOM-Spezifikation beschreibt die Schnittstellen für diese Knoten in einer Script- und Programmiersprachen-neutralen Sprache (IDL). Sie beantwortet damit abstrakt die Frage, wie beliebige Anwendungen auf beliebigen Plattformen auf die Informationseinheiten in XML-Dokumenten zugreifen können. Jedem Knotentyp sind Eigenschaften (wie Typ, Namen, Wert, Vorfahren etc.) und Methoden (zum Erzeugen oder Verändern von Knoten) zugeordnet. Sie erlauben eine fast uneingeschränkte Manipulation nahezu jeden Aspekts eines Dokuments - sofern die DOM-Spezifikation in einer konkreten Script- oder Programmiersprache implementiert ist. Letzteres ist inzwischen für alle gängigen Sprachen (wie Java, JavaScript, JScript, C++, Perl, Tcl, VBScript) geschehen, so dass DOM als einer der für die Praxis wichtigsten Co-Standards von XML gelten muss.

NamensräumeMitentscheidend für den Nutzen von XML-Dokumenten (neben ihrer Struktur) ist die Metainformation, die in den Namen von Elementen und Attributen steckt. Anhand dieser Metainformation können Inhalte recherchiert, selektiert, transformiert oder formatiert werden. Dabei zielen nicht alle Namen auf die gleiche Art der Verarbeitung. Die Namen von XHTML-Elementen (wie p, h1 oder blockquote) charakterisieren beispielsweise Inhalte im Hinblick auf ihre Darstellung in Browsern. Die Namen von EDI-Elementen (wie PriceList, ArticleNo oder Quantity) dagegen zielen auf die Bedeutung von Inhalten im Hinblick auf ihre effiziente Auswertung. Das eine (die inhaltliche Auswertung eines Dokuments) schließt das andere (die formatierte Darstellung des Dokuments) nicht aus. Und daraus kann der Wunsch resultieren, Namen des einen wie des anderen Typs im selben Dokument zu verwenden. Das ist solange unproblematisch, wie die verwendeten Namen für die verarbeitenden Applikationen unterscheidbar sind. Der Zweck des W3C-Standards Namespaces in XML (vom Januar 1999) ist, genau dafür zu sorgen.

Dass in einem Dokument identische Namen für artverschiedene Inhalte verwendet werden, ist leicht vorstellbar. Zum Beispiel könnte der Elementname abbr im selben Dokument den Kurztitel eines Buchs kennzeichnen, aber auch die Abkürzung einer Organisation oder das HTML-Element für Abkürzungen sein. Um solche Mehrdeutigkeiten aufzulösen, qualifiziert man Namen durch ihre Bindung an URIs (Universal Resource Identifiers), also eine Adressangabe. Das ist die Idee des Namensraums: Er ist nichts anderes als eine eindeutig identifizierte Sammlung von Namen für Elementtypen und Attribute; und eindeutig identifiziert wird diese Sammlung durch einen URI. Die Bindung der in einem Dokument benutzten Namen kommt zustande durch die Deklaration und Verwendung eines Namenspräfix im XML-Dokument.

Der Namespace-Standard ist sicher einer der prima facie weniger spektakulären XML-Standards, gleichwohl aus der XML-Praxis nicht mehr wegzudenken. Nahezu alle neueren XML-Entwicklungen setzen ihn voraus.

Spektakulärer als das Konzept der Namespaces ist das des Schemas. Damit bezeichnet man in XML die Definition eines Dokumenttyps und damit die Regeln zur Auszeichnung von Dokumenten. Bislang wird zu diesem Zweck die Deklarationssyntax von XML verwendet. Diese Deklarationssyntax unterscheidet sich deutlich von der XML-Auszeichnungssyntax.

XML-Schemata Alternative zu DTDsEin XML-Parser, der ein XML-Dokument auf seine Gültigkeit relativ zu einer Dokumenttyp-Definition prüft, muss darum gleich zwei Sprachen beherrschen. Im Alltag erledigen wir die gleiche Aufgabe - das Definieren von Wörtern und ihre entsprechende Verwendung - in ein und derselben Sprache, der Umgangssprache. Dies auf XML zu übertragen und für die Definition einer Auszeichnungssprache dieselbe Syntax zu verwenden wie zur Auszeichnung von Dokumenten, ist die Idee des Schemas.

Seit Anfang 1999 bemüht sich eine W3C-Arbeitsgruppe um die Spezifikation einer XML Schema Definition Language (XSDL), mit der sich Schemata formulieren lassen und die an die Stelle der Deklarationssyntax von XML treten soll. Die Vorzüge des Konzepts liegen auf der Hand. Dass Parser künftig nur noch eine Syntax beherrschen müssen, ist dabei ein eher beiläufiger Effekt. Stärker ins Gewicht fallen andere Vorteile, darunter die Möglichkeit,

- Datentypen für die Inhalte von Elementen und Attributen zu deklarieren - wobei neben zahlreichen Basis-Datentypen (wie string, float oder date) auch selbstdefinierte Datentypen verwendet werden können;

- Wert-Intervalle zu spezifizieren, was in Kombination mit Datentypen eine signifikant verbesserte Datenkontrolle und Qualitätssicherheit verspricht;

- die Anzahl der aufeinander folgenden Elemente eines bestimmten Typs exakt zu reglementieren;

- Eigenschaften von Elementtypen zu vererben und damit die Modularisierung und Pflege von Schemata zu vereinfachen;

- Inhalte von Elementen voreinzustellen und

- "offene" Inhaltsmodelle zu deklarieren, das heißt die Struktur eines Dokuments nur bedingt festzulegen und sie für individuelle und nicht-antizipierbare Anforderungen offen zu halten.

In XML wird beispielsweise ein Elementtyp so deklariert:

<!ELEMENT name (#PCDATA) >

In XSDL könnte diese Deklaration (samt Angabe eines Datentyps) so aussehen:

<xsd:element name="name" type="xsd:string" />

XSDL wird erlauben, alle Aspekte der Deklarationssyntax von XML abzubilden, so dass Schemata funktional äquivalent zu DTDs sind und sich DTDs automatisch zu Schemata transformieren lassen. Die zusätzliche Funktionalität von Schemata wird - das ist absehbar - für eine mittelfristige Ablösung von DTDs durch Schemata sorgen.

Mit den vorgestellten Co-Standards - und einer kaum noch überschaubaren Zahl an weiteren offenen XML-Standards und Applikationen ist XML in Jahresfrist zur technologischen Grundlage großer Teile dessen geworden, was man in Börsenkreisen new economy nennt, - und die steht, wie der Name andeutet, erst am Anfang.

*Thomas Michel ist Senior Consultant Electronic Business Solutions bei der Siemens Business Services GmbH & Co OHG.

(Bsp. 1 auf S. 46)<!ELEMENT produkt (modell, lieferant, bestnr, preis, frist) >

<!ELEMENT modell (#PCDATA) >

<!ELEMENT lieferant (#PCDATA) >

<!ELEMENT bestnr (#PCDATA) >

<!ELEMENT preis (brutto, ust) >

<!ELEMENT frist (#PCDATA) >

<!ELEMENT brutto (#PCDATA) >

<!ELEMENT ust (#PCDATA) >

<!ATTLIST frist einheit CDATA #IMPLIED >

<!ATTLIST brutto einheit CDATA #IMPLIED >

<!ATTLIST ust einheit CDATA #IMPLIED >

(Bsp. 2 auf S. 48)<svg width="500" height="500">

<g>

<path>

<path>

<path>

<path>

</g>

</svg>

(Bsp. 3 auf S. 50)<h:html xmlns:b="http://www.allesbuecher.de"

xmlns:h="http://www.w3.org/HTML/1998/html4">

<h:body>

<b:title h:style="font-family: arial">

<h:abbr>XML</h:abbr> kompakt - Eine praktische Einführung

</b:title>

<b:abbr h:style="font-family: arial">XML kompakt</b:abbr>

<b:author>Thomas Michel</b:author>

<b:isbn>3-446-21302-3</b:isbn>

</h:body>

</h:html>

Abb.1: Metasprache XML

Mit XML lassen sich Auszeichnungssprachen definieren, auf deren Basis dann Dokumente erstellt werden. Quelle: Thomas Michel

Abb.2: XML-Anwendung WML

Die Transformation von Dokumenten auf WML muss die beschränkten Darstellungsmöglichkeiten von Handys berücksichtigen. Quelle: Thomas Michel

Abb.3: XLink

XLink erlaubt beliebig viele Verweisziele. Quelle: Thomas Michel

Abb.4: Formatierung von XML-Dokumenten

XML trennt den Inhalt vom Layout. Mittels eines XSLT-Prozessors lassen sich Dokumente mit Stylesheets zusammenführen, bei Bedarf abhängig vom Zielmedium. Quelle: Thomas Michel

Abb.5: XLink

Out-of-Line-Verweise lassen sich in separaten Dokumenten speichern. Quelle: Thomas Michel

Abb.6: Dokumentenbaum

DOM-konforme Parser stellen XML-Dokumente als Baum dar und erlauben den einheitlichen Zugriff auf alle Elemente. Quelle: Thomas Michel

Abb.7: DTD versus Schema

Derzeit unterscheidet sich die Syntax für die Deklaration von Dokumenttypen von jener für die Auszeichnung. Schemata überwinden diese Trennung. Quelle: Thomas Michel