XMLidP2000

Sitemap

Sitemap

1 Einführung
1.1 Warum mehr weniger ist
1.2 Warum mehr mehr ist
1.3 Wohin die Reise geht
2 Was sind Dokumente?
2.1 Eine kurze Geschichte der Textverarbeitung
2.2 Bestandteile eines Dokumentes
2.3 Die neue, alte Idee: Strukturorientiert schreiben
2.4 Die Entwicklung des Hypertextes
2.5 Textformate im Web
2.6 Das SGML-Konzept: Generic Markup
2.7 Dokumente versus Daten
3 XML im Web
3.1 XML bei der Verwaltung von Websites
3.2 Clientseitige XML-Interpretation
3.2.1 XML mit CSS
3.2.2 XML mit XSL(T)
3.3 XML auf dem Server
3.4 Linking-Möglichkeiten von XML
3.5 XML als Datenaustauschformat
4 XML Quick Start
4.1 Dokumenttyp-Definition (DTD) und Instanzen
4.2 Verarbeitung der Dokumente
4.2.1 Beispiel: Verarbeitung mit Cost/TCL
4.2.2 Beispiel: Verarbeitung mit XSLT
4.2.3 Beispiel: XML/XSLT im Internet Explorer
4.2.4 Fazit
5 XML-DTDs: Die verständliche Beschreibung
5.1 Ein Wort zur Notation
5.2 Dokumente
5.3 Elemente
5.4 Zeichen, Namen und Zeichendaten
5.5 Kommentare
5.6 Processing Instructions
5.7 Wo bleibt Multimedia?
5.8 Dokumenttyp-Definition (DTD)
5.8.1 Elementtyp-Deklaration
5.8.2 Attributlisten-Deklaration
5.8.3 Möglichkeiten, die DTD zu gestalten und zu gliedern
5.8.4 Notation-Deklaration
6 Namensräume in XML
7 XPath: Adressierung von XML-Dokumentteilen
7.1 Zu Grunde liegendes Datenmodell
7.2 Zugriff auf den Datenbaum
7.3 Hilfe von Operatoren
7.4 Kernfunktionen für den Datenzugriff
8 XML: Linking
8.1 Notwendige Begriffe
8.2 XLink: einfache und erweiterte Links
8.2.1 Einfache Verweise
8.2.2 Erweiterte Links
8.2.3 XLink in der Praxis
8.3 XPointer: Verweise in Dokumente hinein
8.3.1 XPath-Erweiterungen in XPointer
9 Überblick über Stylesheet-Sprachen
9.1 Cascading Style Sheets
9.1.1 Wertzuweisungen
9.1.2 Formatierungsmodell
9.1.3 CSS und XML
9.1.4 Ein Beispiel: XML im Mozilla
9.2 Document Style Semantics and Specification Language
9.2.1 Flow Objects
9.2.2 Verarbeitungs-Modus
9.2.3 DSSSL praktisch
9.2.4 Langer Marsch von DSSSL nach HTML
9.3 Extensible Stylesheet Language (XSLT und XSL)
9.3.1 Verhältnis von XSLT zu XSL
9.3.2 Formatierung mit XSL
10 XSL-Transformationen
10.1 Grundsätzliches über Templates
10.2 Ergänzungen zum Datenmodell von XPath
10.3 Struktur von XSLT-Stylesheets
10.4 Den Ergebnisbaum erzeugen
10.4.1 Diverse Basiselemente
10.4.2 Formatierte Nummerierung
10.4.3 Schleifen und bedingte Verarbeitung
10.4.4 Sortieren
10.4.5 Variable und Parameter
10.4.6 Zusätzliche Funktionen
10.4.7 XSLT-Erweiterungen
10.4.8 message, output
11 XSLT in Web-Anwendungen
11.1 XSLT im Internet Explorer
11.2 Linklisten erzeugen
11.3 Details einer Literaturgeschichte
11.3.1 Sortierte Überblicksseiten
11.3.2 Kalender: einzelne Tage ausgeben
12 XML-Editoren
12.1 Übersicht
12.1.1 Emacs + PSGML (mit XML-Unterstützung)
12.1.2 XML Notepad
12.1.3 XML Spy
12.1.4 XMetal
12.1.5 Epic
12.1.6 MarkupKit (für MS Word)
12.1.7 WordPerfect Office2000
12.2 Emacs und PSGML (mit XML-Unterstützung)
12.3 XML-Notepad
12.4 XML Spy
12.5 XMetal
12.6 Epic
12.7 MarkupKit (für MS Word)
12.8 WordPerfect Office2000
12.9 Fazit
13 Entwicklung einer DTD
13.1 Auswahl einer Mehrzweck-DTD
13.2 Entwurf einer DTD
13.2.1 Dokumentanalyse
13.2.2 Tipps und Tricks
13.3 Instanzen ohne DTD
14 Herstellung dieses Buches
14.1 Zielsetzung und Randbedingungen
14.2 Definition der DTD
14.2.1 Schritt 1: Die Grobstruktur
14.2.2 Schritt 2: Elemente auf Zeichenebene
14.2.3 Schritt 3: Die Details
14.3 Formatieren des Manuskriptes
14.3.1 Konvertierung in HTML
14.3.2 Aufbereitung für den Ausdruck
14.4 Erfahrungen mit der zweiten Auflage
15 Anwendungsbeispiel Literatur
15.1 Vorüberlegungen
15.2 En détail: die Autoren in der DTD
15.3 Wie die Daten ins Web gelangen
15.3.1 Inhaltsverzeichnis generieren
15.3.2 Ausgabe der Autorendaten
15.4 Vollständige Listings
15.4.1 DTD für die Literaturgeschichte
15.4.2 DSSSL-Listing: Inhaltsverzeichnis
15.4.3 DSSSL-Listing: Ausgabe eines einzelnen Autors
15.4.4 Perl-Code für Ausgabe einzelner Autoren
16 Verteilte Softwareverwaltung mit XML
16.1 Aufgabenbeschreibung
16.2 XML als Datenbasis
16.3 Bilden von DTD-Hierarchien
16.4 Zusammentragen von verteilten XML-Fragmenten
16.5 Fazit
16.6 Stylesheet zur Transformation in HTML
17 E-Commerce mit XML
17.1 B2B-E-Commerce
17.1.1 Die Rolle von XML
17.1.2 Technische Aspekte
17.2 BMEcat
17.3 Electronic Business XML (ebXML)
17.3.1 Arbeitsgruppen
17.3.2 Zeitplan des Projekts
17.4 XML und EDIFACT
18 XML und Apache
18.1 XML-Transformation per CGI
18.1.1 Konfiguration des Servers
18.1.2 CGI-Skript: xmlhandler.cgi
18.1.3 Beispiel: von HTML nach HTML mit DSSSL oder XSLT
18.2 Cocoon
18.2.1 Extensible Server Pages (XSP)
18.2.2 Beispiel: Formatierung in PDF mit XSL
18.2.3 Beispiel: Simuliertes XLink mit Dynamic HTML/JavaScript
18.2.4 Installation
19 XHTML: Neues HTML 4 — erweiterbar
19.1 Status quo: HTML neu definiert
19.2 Modulare Zukunft
20 Transformation von XML in WML und HTML
20.1 Erzeugen der WML-Dateien
20.2 Erzeugen der HTML-Dateien
21 Ausblick
21.1 XML Schema
21.2 Programmierung mit XML-Daten
21.3 XML und Java
21.4 Resource Description Framework
21.5 Die Zukunft
A Extensible Markup Language (XML) 1.0
A.1 Einleitung
A.1.1 Herkunft und Ziele
A.1.2 Terminologie
A.2 Dokumente
A.2.1 Wohlgeformte XML-Dokumente
A.2.2 Zeichen
A.2.3 Allgemeine syntaktische Konstrukte
A.2.4 Zeichendaten und Markup
A.2.5 Kommentare
A.2.6 Processing Instructions
A.2.7 CDATA-Abschnitte
A.2.8 Prolog und Dokumenttyp-Deklaration
A.2.9 Standalone-Dokumentdeklaration
A.2.10 Behandlung von Leerraum
A.2.11 Behandlung des Zeilenendes
A.2.12 Identifikation der Sprache
A.3 Logische Strukturen
A.3.1 Start-Tags, End-Tags und Leeres-Element-Tags
A.3.2 Elementtyp-Deklarationen
A.3.3 Attributlisten-Deklaration
A.3.4 Bedingte Abschnitte
A.4 Physikalische Strukturen
A.4.1 Zeichen- und Entity-Referenzen
A.4.2 Entity-Deklarationen
A.4.3 Analysierte Entities
A.4.4 Behandlung von Entities und Referenzen durch einen XML-Prozessor
A.4.5 Konstruktion des Ersetzungstextes von internen Entities
A.4.6 Vordefinierte Entities
A.4.7 Notation-Deklarationen
A.4.8 Dokument-Entity
A.5 Konformität
A.5.1 Validierende und nicht-validierende Prozessoren
A.5.2 Benutzen von XML-Prozessoren
A.6 Notation
A.7 Anhang A: Referenzen
A.7.1 Normative Referenzen
A.7.2 Weitere Referenzen
A.8 Anhang B: Zeichenklassen
A.9 Anhang C: XML und SGML (nicht normativ)
A.10 Anhang D: Expansion von Entity- und Zeichenreferenzen (nicht normativ)
A.11 Anhang E: Deterministische Inhaltsmodelle (nicht normativ)
A.12 Anhang F: Automatische Erkennung von Zeichenkodierungen (nicht normativ)
A.13 Anhang G: XML-Arbeitsgruppe des W3C (nicht normativ)
B Verknüpfen von Style Sheets mit XML-Dokumenten Version 1.0
B.1 Die xml-stylesheet-Processing-Instruction
B.2 Anhang A: Referenzen
B.3 Anhang B: Begründung
C Verhältnis von XML zu SGML und HTML
C.1 XML und SGML
C.2 XML und HTML
D Übersichten
D.1 Cascading Style Sheets
D.1.1 CSS-Eigenschaften und -Werte
D.1.2 CSS-Muster
D.2 DSSSL: Flow Objects
D.3 Syntax der XSLT-Elemente
D.4 DTD-Fragment für XSLT-Stylesheets (nicht normativ)
D.5 Relevante Spezifikationen und Organisationen
D.5.1 International Organization for Standardization
D.5.2 World Wide Web Consortium
D.5.3 Organization for the Advancement of Structured Information Standards
D.5.4 Internet Society und Internet Engineering Task Force
D.5.5 ISO-639-Sprachcodes
D.5.6 ISO-3166-Ländercodes
D.5.7 Zeichensatz ISO-Latin-1
D.5.8 Sonderzeichen
D.6 XML-1.0-Regeln

1.2 Warum mehr mehr ist

Schade, dass es nur HTML gibtFussnoteWenn hier gelegentlich der Eindruck entsteht, dass HTML schlecht sei, dann stimmt das, wenn auch nur insofern, als jetzt, da wir uns an das Web gewöhnt haben, die Nachteile einer festen DTD ins Auge springen. Ohne Tim Berners-Lees Arbeit aber würden wir heute wahrscheinlich nicht über etwas besseres als HTML diskutieren können. Schon deshalb gebührt ihm Dank.. Denn was könnte man nicht alles mit Dokumenten im World Wide Web anstellen, wenn die Grenzen von HTML (= feststehender Satz an Elementen) nicht für alle Dokumente gälten. Wobei hiermit gemeint ist, dass man sich eben nicht eigene Elemente definieren kann.

Die Zeit, in der es nur HTML gab, ist zwar vorbei; das allein klärt aber nicht die Frage, was man mit Dokumenten im Web machen kann. Schließlich hat eine Reihe von Firmen mit den bisherigen Mitteln (vor XML) auch schon vieles gemacht, wovon normale HTML-Autoren nur träumen (Softwareverteilung, E-Commerce etc.).

XML: SGML fürs Web

Diese Möglichkeiten haben weder die SGML-Anhänger noch das World Wide Web Consortium (meist W3C genannt) ruhen lassen. Eine Arbeitsgruppe hat sich jetzt fast drei Jahre lang damit beschäftigt, wie man das Problem der nicht vorhandenen Erweiterbarkeit von HTML beseitigen kann. 1996 war es soweit, dass ein erster Vorschlag zur Extensible Markup Language (XML) vorgestellt wurde; übrigens im Rahmen einer SGML-Veranstaltung. Ein gutes Vierteljahr später (April 1997) war XML neben dem eigentlichen Hauptthema — Erreichbarkeit/Verwendbarkeit (accessability) von Web-Dokumenten — dasjenige Thema, über das auf der World Wide Web Conference 1997 am meisten diskutiert wurde. Aus Sicht der SGML-Anhänger war es mit XML endlich soweit, dass SGML indirekt ins Web kam.

Hinweis

Die Erweiterbarkeit (Englisch: extensibility) von Auszeichnungssprachen für Dokumente, die im World Wide Web zur Veröffentlichung kommen sollen, ist der wichtigste Aspekt dieses Buches. Alle noch so technischen Abschnitte sind immer nur die Voraussetzung dafür, dass es in XML darum geht, Beschreibungen für eigene Dokumente zu entwickeln. Nur am Rande — siehe Kapitel 19 — soll es um die erweiterbare Version von HTML (XHTML) gehen. Vielmehr wird es sich um davon unabhängige Dokumentstrukturen handeln.

Um das Motto dieses Kapitels zum vorletzten Mal aufzugreifen: Die Beteiligten der genannten Arbeitsgruppe mussten sowohl wagemutig (daring) als auch vorsichtig (cautious) bei ihrem Vorhaben sein. Auf der einen Seite musste schnell etwas geschehen, damit das Web sich nicht innerhalb eines Jahres in zueinander inkompatiblen Teil-Webs entwickelt, auf der anderen ging es darum, das für das Web viel zu komplizierte SGML zu vereinfachen. Dazu mussten Aspekte über Bord geworfen werden, von denen sich mancher ungern trennte. Dennoch war das notwendig, denn nur so war es möglich, innerhalb kurzer Zeit einen Kompromiss zu finden, mit dem alle zufrieden sein konnten. Der Erfolg, den XML nun schon seit zwei Jahren hat ist an Anwendungen ablesbar, die im Laufe dieser Zeit entstanden sind. Auch die Aktivitäten, die Tools betreffen, sowie beim W3C eingereichte weitere Vorschläge sind Belege dafür. Mittlerweile hat man fast das Gefühl, dass im Web und in der Softwareentwicklung nichts mehr ohne XML geht.

Hinweis

Im Vergleich zu HTML bietet XML deshalb mehr Möglichkeiten, weil es eine Metasprache ist. HTML ist, wie oben erwähnt, eine Strukturbeschreibung für Web-Dokumente. XML hingegen ist als Teilmenge von SGML eine Sprache, in der sich wiederum beliebig viele Sprachen wie HTML definieren lassen. XML ist SGML für das Web; aber nicht nur.

Eigentlich reicht HTML doch völlig aus, könnte der eine oder die andere sagen respektive fragen, was denn an XML besser sei. Ohne den vielen Details, die in späteren Kapiteln folgen, vorzugreifen, lässt sich dazu einiges sagen. XML-Dokumente kann man — beispielsweise über StylesheetsFussnoteGemeint sind hier nicht die erwähnten CSS, sondern eine neue Sprache, die unter anderem funktionale Elemente enthält und es dadurch erlaubt, den Inhalt von Dokumenten zu bearbeiten, bevor ein Browser sie anzeigt. Siehe dazu vor allem Kapitel 9. — verändern. Um das klassische Beispiel eines Buches (das Buch selbst) zu benutzen: Aus einem Dokument lässt sich ein Inhaltsverzeichnis generieren, das entweder am Anfang steht oder eigenständig ist. Etwas allgemeiner: Aus einem einzigen XML-Dokument kann ich im Prinzip fast beliebig viele Web-Dokumente machen, etwa eine konkrete Adresse aus einem Adressbuch heraussuchen. Und natürlich ist es möglich, aus XML-Quellen HTML-Dateien zu erzeugen, die ein gemeiner Browser anzeigen kann. Dabei gehen zwar Informationen verloren, aber immerhin bewirkt eine solche Konvertierung generelle Verfügbarkeit.

XML und ODBMS: Dokumente aus Datenbankbeständen generieren

Ähnlich wie HTML lassen sich XML-Daten on the fly aus Datenbankbeständen erzeugen. Allerdings eignet sich diese Auszeichnungssprache besser zur Speicherung in Datenbanken — vor allem in objektorientierten, die eine komplexe Elementstruktur leichter abbilden können als relationale. Die Elemente in XML-Dokumenten müssen strikt ineinander geschachtelt sein. Daher kann man sie als Einheiten (Objekte) betrachten, die sich — samt ihrer Struktur — in einem objektorientierten Datenbanksystem abbilden lassen. Mit HTML-Daten ist das ebenfalls möglich, allerdings entfällt durch die feste Menge an Elementen die Freiheit, eigene Datenstrukturen vorschreiben zu können. Für XML aus Datenbanksystemen gilt natürlich noch mehr, was im vorigen Absatz steht: Datenbankbestände auf unterschiedliche Art und Weise auszugeben, versteht sich fast von selbst. Wiederverwendbarkeit ist das dazugehörige Schlagwort. Mittlerweile sind die ersten Produkte auf dem Markt, die als XML-Server bezeichnet werden.

Beispiel

Hat sich jemand in XML ein kleines Adressbuch geschaffen, heißt Wiederverwendbarkeit in diesem Maßstab, dass aus den (einmal vorhandenen) Daten Übersichten, Teilansichten und einzelne Adressen als Web-Dokumente werden können; etwas, das mit HTML ohne Datenbankanbindung nicht geht.

Metadaten in den Elementnamen

Mit Dokumenten, die statt in HTML in XML verfasst oder aus Datenbeständen generiert sind, lässt sich auch deshalb viel mehr machen, weil in den Elementnamen und selbst definierten Attributen beziehungsweise deren Werten Information über die eigentlichen Daten enthalten ist. Auf diese so genannten Metadaten kann man ebenfalls zugreifen. Insofern ist mehr wirklich mehr.

Schließlich ist da noch der Traum vieler, die XML propagieren: mit XML ein einheitliches (universelles) Datenformat zu besitzen, das sowohl maschinenlesbar als auch für menschliche Augen verständlich istFussnoteNein, damit ist nicht gemeint, alle proprietären Datenformate (Textverarbeitungen, Datenbanken) abzuschaffen — obwohl das auch nicht schlecht wäre.. Und: Eine solche Sprache ist auch eine, die Menschen schreiben können.

Valid HTML 4.01!Valid CSS!