2.4 XML und HTML. 26 Das XML-Konzept

26 Das XML-Konzept Satzphase vorbehalten zu sein), so dass sich die Prozeßkette von der Konzeption zur Produktion signifikant verkürzt. Austauschbar...
Author: Gerrit Kappel
0 downloads 0 Views 156KB Size
26

Das XML-Konzept

Satzphase vorbehalten zu sein), so dass sich die Prozeßkette von der Konzeption zur Produktion signifikant verkürzt. Austauschbarkeit, Modularisierbarkeit und Qualitätssicherung sind die wesentlichen Nutzenaspekte, die XML mit SGML teilt. Aufgrund seines, verglichen mit SGML, deutlich verringerten Sprachumfangs (der nicht nur die Implementierung erleichtert, sondern auch die Verarbeitung von XML-Dokumenten beschleunigt) und aufgrund weiterer konzeptioneller Unterschiede, auf die wir noch zu sprechen kommen werden, ist XML aber auch besser geeignet für den Einsatz im Internet als SGML. Zu den Vorteilen, die man sich hier von XML verspricht, zählen insbesondere die drei folgenden: •

Aufgrund der durch XML eröffneten Möglichkeit einer semantischen Auszeichnung von Dokumenten können diese qualifiziert (kontextuell) durchsucht werden – was in einem chaotischen, nicht mehr überblickbaren Informationspool wie dem Internet von kaum zu überschätzender Bedeutung ist.



Dokumente können (unter Voraussetzung ihrer geeigneten Auszeichnung und verfügbarer Anwenderinformation) selektiv an Interessenten übertragen, d.h. personalisiert werden. Der Empfänger bekommt die Information, die er braucht oder zu brauchen glaubt (und ggf. für die er zahlt).



Die Aufbereitung von Informationen zum Zweck ihrer Präsentation (Transformation und Formatierung) kann in größerem Umfang als bisher den Netz-Clients oder zwischengeschalteten Servern überlassen werden (client-centered computing). Übertragen wird die angeforderte Nettoinformation. Das entlastet die Server und entschärft die Durchsatzproblematik.

2.4 XML und HTML Was für XML spricht, spricht zum Teil gegen HTML − und umgekehrt. Und die Kritik an HTML ist schwer zu trennen von der Kritik an seinen unterschiedlichen, vom W3C-QuasiStandard mehr oder weniger dreist abweichenden Implementierungen. Die wichtigsten Argumente gegen HTML sind folgende: •

Zu viele offizielle Versionen stehen neben zu vielen proprietären Varianten – mit der Konsequenz partieller Inkompatibilität (gilt zugleich für unterstützende Technologien wie Script-Sprachen).



Inhalt (Struktur) und Layout sind nur mangelhaft getrennt, so dass weder semantische Metainformation vermittelt noch das kontextuelle Layout hinreichend kontrolliert werden kann. HTML-Tags wie p, h1, div, strong sagen weder dem Betrachter noch der verarbeitenden Maschine viel über den jeweils ausgezeichneten Inhalt. (Ausnahmen sind address, acronym, legend.) Allenfalls informieren sie über die Wertigkeit eines Inhalts. Das entspricht natürlich dem mit HTML verfolgten primären Ziel: der Präsentation von Dokumenten. Aber selbst zur Präsentation ist HTML nur bedingt tauglich; das beweisen die vielfältigen auf Darstellung zielenden Technologien, die HTML unterstützen, allen voran CSS (Cascading Style Sheets).

XML und HTML •

27

Aufgrund der strukturellen Freizügigkeit, d.h. der fehlenden Strukturiertheit, können die meisten Elemente in nahezu beliebigen Kontexten stehen – ganz nach Geschmack der Autoren. Ein Beispiel dafür, was HTML erlaubt: Ueberschrift 1.1.1 Ueberschrift 1.1 Ueberschrift 1

Und ein (verschärftes) Beispiel dafür, was marktgängige HTML-Browser (im Widerspruch zur HTML-DTD) zulassen: Ueberschrift 1.1.1 Ueberschrift 1.1 Ueberschrift 1

Die Darstellung im Browser: Ueberschrift 1.1.1

Ueberschrift 1.1

Ueberschrift 1 •

Der Sprachumfang von HTML ist notorisch begrenzt, so dass die Berücksichtigung besonderer Dokumenteigenschaften und Anforderungen nur durch zusätzliche Technologien (oder proprietäre Erweiterungen) möglich ist. Wer spezifische Informationen über Informationen übermitteln oder zur Verwaltung und Recherche nutzen will, ist auf eine eigene Sprache – z.B. ein individuelles Datenbankdesign – angewiesen, die z.B. Auszeichnungen wie , , , zuläßt. Derselbe Inhalt läßt sich mit XML-Mitteln in wesentlich effizienterer Weise erschließen als mit HTML. Was in HTML nichtssagend (nur zum Zweck der Präsentation) ausgezeichnet wird: Einbaukueche Z2307-a Moebelhaus am Eck DM 5.990,
6-8 Wochen

läßt sich mit XML-Tags signifikant beschreiben und zielgenau recherchieren: Einbaukueche Z2307-a Moebelhaus am Eck DM 5.990,- 6-8 Wochen



Das Verweiskonzept von HTML ist zu schlicht, um den Anforderungen eines komplexen Informationsnetzes und Informationsmanagements gerecht zu werden. HTML-Verweise haben jeweils genau ein Ziel, sie sind unidirektional, und sie müssen im Quelldokument stehen – das bedeutet große Mühe, mehrfach gerichtete Verknüpfungen und alternative Verweisziele zu implementieren und keine Chance, Dokumente zu vernetzen, die man nicht editieren kann oder darf.

28

Das XML-Konzept

Mit XML und seinen assoziierten Konzepten lassen sich diese Defizite beseitigen. Das hat seinen Grund primär in dem schon erläuterten Umstand, dass HTML eine Auszeichnungssprache ist, XML aber eine Metasprache, mit der man Auszeichnungssprachen definiert. Und diese selbstdefinierten Auszeichnungssprachen können anders als HTML den individuellen Anforderungen ihrer Anwender entsprechen. Nochmal zur Verdeutlichung dieses entscheidenden Unterschieds zwischen einer Auszeichnungssprache (wie HTML bzw. seiner XMLkompatiblen Version XHTML) und einem formalen Entwicklungswerkzeug (wie XML) zur Definition von Auszeichnungssprachen:

XML XHTML 1.0

Dokument

Dokument

XHTML 1.1

...

Dokument

... Dokument

...

Metasprache (Werkzeug) zur Definition von Sprachen (XML-Applikationen) zur Auszeichnung von Dokumentstrukturen

HTML ist also eine vergleichsweise klein dimensionierte, wenig strukturierte ("flache") und semantisch ziemlich leere, dabei allerdings leicht handhabbare Auszeichnungssprache, die weitgehend analog zu einer einfachen Satzsprache funktioniert (jedenfalls solange man auf externe Stylesheets verzichtet). Ihr Zweck beschränkt sich auf eine möglichst ansprechende, dabei ressourcenschonende Formatierung von Dokumenten für Intra- und Internet. Die Kehrseite dieser Vorzüge ist, dass der Auszeichung von Dokumenten strukturell und in der Folge auch typografisch enge Grenzen gesetzt sind. Weder lassen sich mit HTML spezifische inhaltliche Strukturen (z.B. für Personaldaten oder Werkzeugteile) abbilden, noch kann ohne weiteres (ohne den Einsatz von Stylesheets) den typografischen Anforderungen beliebiger Dokumenttypen Rechnung getragen werden. Und es sind diese systematischen Beschränkungen, die die Entwicklung von Teillösungen in Gestalt von proprietären HTML-Erweiterungen und ergänzenden Applikationen provozieren, die u.a. die medialen Qualitäten des Intra/Internet in Frage stellen. XML befreit das Intra-/Internet von den Beschränkungen einer einzelnen Auszeichnungsspra3 che, dort wo diese Beschränkungen sinnlos sind. XML ersetzt nicht HTML , sondern erweitert die Funktionalität des Inter-/Intranets über das mit HTML Mögliche hinaus. Auch ein beliebig erweitertes und damit kompliziertes HTML würde niemals die semantische Vielfalt erreichen, die sich mit einer Metasprache wie XML erzeugen läßt. Umgekehrt würde ein expandiertes HTML, das allen Ansprüchen gerecht werden wollte, absehbar Netz und Anwender überfordern. Statt einer Aufzählung zulässiger Elemente benötigt man darum einen Satz von Regeln, aus denen sich beliebige Elemente erzeugen lassen, und genau das leistet XML. HTML selbst ist, wie angedeutet, nicht XML-, sondern SGML-kompatibel. Ein XML-Browser, der nicht zugleich ein SGML- bzw. HTML-Browser ist, wird sich weigern, ein HTMLDokument zu lesen. Das liegt an etlichen Eigenschaften von HTML-Dokumenten, die sie als 3

Allerdings wird XHTML HTML ersetzen.

XML und SGML

29

SGML-Dokumente haben dürfen, nicht aber als XML-Dokumente. Womit nichts anderes gesagt ist, als dass XML Dinge verbietet, die SGML zuläßt (wenn nicht fordert), was wiederum darauf hinweist, dass XML eine Untermenge von SGML ist. Mit XHTML 1.0 wird voraussichtlich noch 1999 die erste vom W3C verabschiedete XML-kompatible Version von HTML vorliegen. Sie wird HTML 4.0 entsprechen.

2.5 XML und SGML Dieser Abschnitt wendet sich an den SGML-Kenner und ist nur für ihn informativ und verständlich; alle anderen können und sollten ihn überspringen. Zunächst die Gemeinsamkeiten von SGML und XML. Beide Sprachen sind selbst (ihren Namen zum Trotz) keine Auszeichnungssprachen, sondern Metasprachen im Sinne von formalen Werkzeugen zur Definition von Auszeichnungssprachen. XML-Dokumente bestehen in der Regel wie die meisten SGML-Dokumente logisch aus zwei Teilen: der eine enthält die ausgezeichneten ("getaggten") Daten, der andere enthält die Deklarationen der Sprachelemente und ihrer Beziehungen (d.i. die Dokumenttyp-Definition, kurz: DTD). Das einzelne Dokument wird damit zum Element einer Klasse typidentischer Dokumente; als solches läßt es sich gegen die DTD validieren. Die DTD muß ihrerseits gültig sein in Bezug auf die Regeln zur Deklaration von Auszeichnungssprachen von XML bzw. SGML. XML und SGML umfassen demzufolge zwei Typen von Regeln: einerseits Regeln zur Definition von Auszeichnungssprachen, kurz: Deklarationsregeln, andererseits Regeln zur Auszeichnung von Dokumenten mit diesen Sprachen, kurz: Auszeichnungsregeln.

XML/SGML DeklarationsRegeln

AuszeichnungsRegeln

DTD

Dokument (Daten)

Den mit SGML und XML definierten Auszeichnungssprachen ist weiter gemeinsam, dass sie kein bestimmtes Erscheinungsbild der durch sie ausgezeichneten Daten präjudizieren, d.h. sie erlauben die konsequente Trennung von Layout und Inhalt.

30

Das XML-Konzept

Wesentliche Unterschiede zwischen SGML und XML sind dagegen: •

XML ist ein Subset von SGML, d.h. zahlreiche Optionen von SGML fehlen in XML, aber jedes gültige XML-Dokument ist zugleich ein gültiges SGML-Dokument (nach der Erweiterung von SGML um Anhang K "Web SGML Adaptations" vom Dezember 1997). Die aufgegebenen SGML-Eigenschaften sind generell solche, die entweder selten genutzt werden oder zu einer ihren durchschnittlichen Nutzen übertreffenden Komplizierung der Dokumentverarbeitung beitragen. Details unten in diesem Abschnitt.



Während mit SGML definierte Auszeichnungssprachen immer bezogen sind auf eine variierbare SGML-Deklaration – entweder eine restriktive Standard-Deklaration (CRS) oder eine individuelle Deklaration – ist XML mit einer spezialisierten Standard-Deklaration "verdrahtet", die insbesondere einen erweiterten Basiszeichensatz (Unicode bzw. ISO 10646) vorsieht. Sämtliche Kapazitätsgrenzen sind aufgehoben. Groß-/Kleinschreibung ist für Elementnamen, Entity-Namen, Notation-Namen, Attributnamen und Attributwerte signifikant.



Während SGML zur Spezifikation von Hyperlink-Konstrukten einen zusätzlichen Standard benötigt (den Hypermedia/Time-based Structuring Language-Standard, ISO 10744, der bislang nur selten und unvollständig implementiert worden ist), lassen sich die LinkModelle von XLink als Teil eines erweiterten XML begreifen, insofern sie zusammen mit XML geplant wurden und auf XML basieren.



Während SGML-Dokumente nicht ohne eine korrespondierende DTD genutzt werden können (auf die bezogen sie gültig sind), lassen sich XML-Dokumente verarbeiten, ohne gegen eine DTD validiert werden zu müssen. Man spricht von wohlgeformten XML-Dokumenten. Dazu später mehr.

XML vs SGML im Detail: (1) XML erlaubt i.U. zu SGML keine Minimierung von Auszeichnungen, d.h. der Verzicht auf Start- oder Ende-Tags in XML-Dokumenten ist nicht zulässig. Eine reguläre SGML-Elementtyp-Deklaration hat z.B. folgendes Aussehen:
- -

(#PCDATA) >

(2) In XML dürfen Namen i.U. zu SGML nicht mit [Xx][Mm][Ll] beginnen. Solche Namen gelten als reserviert. (3) In XML dürfen zusätzliche Zeichen in Namen verwendet werden, insbesondere Unterstrich und Doppelpunkt (s. Abschnitt 4.1.2). (4) XML erlaubt i.U. zu SGML keine Namegroups in Element- und Attribut-Deklarationen. Folgende Deklarationen sind in XML-DTDs irregulär:

(5) XML kennt i.U. zu SGML keine UND-Verknüpfungen (&) in Inhaltsmodellen. Anstelle der UND-Verknüpfung (a & b) kann man in einer XML-DTD eine äquivalente ODER-Verknüpfung verwenden: ((a,b)|(b,a))

XML und SGML

31

(6) XML kennt i.U. zu SGML keine Inhaltsdeklarationen vom Typ CDATA und RCDATA. (7) XML erlaubt i.U. zu SGML weder Inklusionen noch Exklusionen in Inhaltsmodellen. (8) XML erlaubt i.U. zu SGML keine NAME[S]-, NUMBER[S]- oder NUTOKEN[S]Deklarationen für Attribute. (9) XML erlaubt i.U. zu SGML keine Attribute mit der Voreinstellung #CURRENT oder #CONREF. (10) XML verlangt in Attribut-Deklarationen, die zulässige Attribut-Werte (enumeration tokens) sowie einen konkreten Wert als Voreinstellung angeben, folgende Syntax:
attributname (wert1 | wert2) "wert1">

d.h. das zulässige Trennzeichen ist | und der voreingestellte Wert muß zwischen Anführungszeichen (oder Hochkommata) stehen. (11) XML verlangt i.U. zu SGML in Attribut-Spezifikationen (in Start-Tags) Attributnamen und Anführung von Attribut-Werten. Solche Auszeichungen sind in SGML-Dokumenten zulässig, in XML-Dokumenten unzulässig: ...

Korrekt ist in SGML und XML dagegen: ...

(12) XML erlaubt (sozusagen als Gegenleistung) i.U. zu SGML identische enumeration tokens für Attribute des selben Elements. Das ist in SGML unzulässig, in XML aber regulär:
weight (regular|bold) "regular" angle (regular|italic) "regular" >

(13) XML kennt i.U. zu SGML weder SHORTREF-, USEMAP-, LINKTYPE-, USELINKnoch LINK-Deklarationen. (14) XML kennt markierte Bereiche nur mit eingeschränkter Syntax und Semantik. Als Schlüsselwörter sind zulässig: CDATA, INCLUDE, IGNORE. Markierte Bereiche mit den Schlüsselwörtern INCLUDE und IGNORE (bedingte Abschnitte) dürfen nur im externen DTD-Subset stehen. (15) XML kennt i.U. zu SGML keine Entitäten vom Typ SUBDOC, CDATA oder SDATA (damit auch keine SDATA-Zeichenentitäten mit bracketed text). Das ist in XML ungültig:

und ebenso ,

32

Das XML-Konzept kann aber in eine Entität für eine dezimale oder hexadezimale Zeichenreferenz transformiert werden:

oder

(16) XML kennt keine Default-Entität:

(17) XML erlaubt i.U. zu SGML keine externen Entitäten mitten im Textinhalt. Solche Zeiger (Referenzen) auf externe Entitäten erlaubt XML nicht: ... Wie die folgende Abbildung zeigt: &polyd; ...

Alternative: Wie die folgende ...

SYSTEM "Polyd1.cgm" NDATA cgm > EMPTY > content ENTITY #REQUIRED > Abbildung zeigt:

(18) Inhaltsmodelle mit gemischtem Inhalt müssen in XML i.U. zu SGML wiederholbare (*) ODER-Verknüpfungen sein, in denen #PCDATA an erster Stelle steht. Folgende Modelle sind in XML-DTDs irregulär:
abschnitt abschnitt abschnitt

(titel, #PCDATA) > (titel | #PCDATA)+ > (#PCDATA | titel)+ >

abschnitt

(#PCDATA | titel)* >

Korrekt ist:
(19) XML definiert i.U. zu SGML folgende Zeichenentitäten: < > & ' " zum Schutz der entsprechenden Zeichen vor ihrer Interpretation als Markup. (20) System-IDs genießen in XML i.U. zu SGML gegenüber Public-IDs Priorität, d.h. externe Referenzen dürfen auf letztere, nicht aber auf erstere verzichten (Ausnahme: NOTATION-Deklarationen). (21) In XML-Dokumenten können i.U. zu SGML-Dokumenten leere Elemente so oder so ausgezeichnet werden. Die folgende Auszeichnung leerer Elemente ist in XML unzulässig:

Was bedeutet „Dokumentstruktur“?

33

(22) In XML enden Verarbeitungsanweisungen (processing instructions) auf ?> statt (wie in der CRS) auf >. (23) In XML ist i.U. zu SGML die Groß-/Kleinscheibung von Namen signifikant. Aufgrund der signifikanten Groß-/Kleinschreibung müssen XML-Schlüsselwörter wie ELEMENT, ATTLIST oder DOCTYPE immer mit Großbuchstaben geschrieben werden. (24) XML erlaubt i.U. zu SGML keine Kommentare in Deklarationen.

2.6 Was bedeutet "Dokumentstruktur"? 2.6.1 Layout und Inhalt Wenn ein Wort in der Erklärung von XML nicht fehlen darf, dann das Wort "Struktur". Und so häufig wie dieses Wort im Zusammenhang mit XML verwendet wird – gewöhnlich ohne Erläuterung –, sollte man annehmen, dass kein Wort geläufiger und verständlicher sein kann als "Struktur". Insbesondere scheint es vielen Zeitgenossen offensichtlich, was man unter der Struktur von Dokumenten zu verstehen hat. Wenn, wie hier, mehrere Seiten auf die Klärung des Strukturbegriffs für Dokumente verwendet werden, dann mag man das als Indiz dafür auffassen, dass das ein Irrtum ist. Der Begriff der Dokumentstruktur ist vieldeutig. Zunächst: Schlechthin alles hat Struktur, oder besser: alles läßt sich als strukturiert begreifen. Denn die Struktur eines Gegenstandes umfaßt die Teile, aus denen er sich zusammensetzt, und die Art und Weise, wie diese Teile zusammenhängen (ihre Ordnung). Wir reden von Wirtschaftsstruktur, Molekularstruktur, Sozialstruktur, Datenstruktur, Sprachstruktur, Organisationsstruktur, Persönlichkeitsstruktur und spätenstens mit SGML auch von Dokumentstruktur. Unstrukturiert ist nur das Unteilbare. Die geläufige Erklärung, mit XML beschreibe man die Struktur (oder auch die "logische" Struktur oder die "formale" Struktur) von Dokumenten, ist darum ebenso unverfänglich wie nichtssagend. Welches sind die Teile dieser Struktur, und wie hängen sie zusammen? Orientiert man sich an der allgemeinen Definition von Struktur, dann sind Dokumente offenbar in mancherlei Hinsicht strukturiert. Zum Beispiel haben die in ihnen verwendeten natürlichen Sprachen eine syntaktische Struktur, und die in sie eingebetteten Grafiken haben eine formale wie auch eine Farb- bzw. Pixel-Struktur. Dokumente haben außerdem, sofern sie nicht (nur) hörbar, sondern (auch) sichtbar sind, immer ein Layout. Und dieses Layout basiert auf visuellen Einheiten, ihren Eigenschaften und ihrer relativen Positionierung. Layout ist also strukturell und zwar unabhängig davon, ob man vom Layout eines konkreten Dokuments oder dem Layout einer Klasse von Dokumenten spricht, also der Gestalt, die beliebig vielen Dokumenten gemeinsam sein kann. Beim Layouten setzt man die visuellen Einheiten einer Seite bzw. eines Dokuments ins Verhältnis zueinander: bedruckte zu unbedruckten Flächen, Schrift zu Bildern, normale zu ausgezeichneter Schrift etc. XSL hat als Grundlage ein Layout-Modell, das ein Dokument als Komposition aus Rechtecken begreift, deren räumliche Beziehungen zueinander und deren Erscheinungsbild durch Eigenschaften beschrieben werden können. Dokumente haben also in diesem Sinne eine Layoutstruktur. Layout ist wiederholbar, weil es Regeln folgt (z.B. denen eines Corporate Design), die auf unterschiedliche Dokumente − und damit auf unterschiedliche Inhalte − anwendbar sind.