vorheriges KapitelInhaltsverzeichnisStichwortverzeichnisFeedbacknächstes Kapitel


Tag 1

Ein Überblick über die Auszeichnungsspra chen

Willkommen bei »XML in 21 Tagen« von Markt + Technik! An diesem ersten Tag soll ein kurzer Überblick über die Geschichte des Internets den evolutionären Charakter des World Wide Webs verdeutlichen sowie die Rolle, die das W3C (World Wide Web Consortium) dabei spielt.

Sie erfahren heute:

1.1 Das Web als revolutionäres Phänomen

In kurzer Zeit ist das Web von einer Neuigkeit zur Weltbibliothek angewachsen. Im Herzen dieses globalen Lagers steht das machtvolle Konzept »Hypertext«, ein Begriff, der von Ted Nelson im Jahre 1965 geprägt wurde, um eine Methode zu beschreiben, die die Datenströme verschiedener Computer verbindet.

Ted Nelson hat diese Gedanken in A File Structure for the Complex, the Changing, and the Indeterminate auf der 20. National Conference der Association for Computing Machinery in New York im Jahre 1965 vorgestellt. Weitere Informationen über ihn und sein Projekt Xanadu finden Sie unter
http:// jefferson.village.virginia.edu/elab/hfl0155.html.

In den späten 60er Jahren erschuf Doug Engelbart den Prototyp »oNLine System« (NLS), der Hypertext-Browsing, Bearbeitung, E-Mail und weitere Komponenten umfasste, die wir heute mit dem Web in Verbindung bringen.

Aber das Web ist zu viel mehr geworden. Das breite Feld der Multimedia-Präsentationen mit Video, Grafik, Ton und Audio übertrifft die ursprünglichen Absichten von Tim Berners- Lee, der als Erfinder des Webs gilt, und der 1989 folgenden Vorschlag machte:

Es muss ein universelles, verknüpftes Informationssystem entwickelt werden, in dem die Allgemeingültigkeit und die Übertragbarkeit wichtiger sind als schicke Grafiken - aus http://www.w3.org/History/1989/proposal.html.

Berners-Lee begann im Jahr 1980 mit dem Notebook-Programm »Enquire-Within-Upon- Everything«, das Myriaden von Hyperlinks enthielt, welche die virtuelle Kommunikation zwischen verschiedenen Informationslagern auf Computern ermöglichen sollte. Später (im Oktober 1990) nannte er seine Schöpfung dann World Wide Web. Auch wenn er mit großen und aufstrebenden Visionen begann (das Web sollte immerhin das gesamte menschliche Wissen enthalten), war sein Ansatz zur Vermittlung dieses Wissens doch praktischer und eher einfacher Natur.

Die Methoden, die er während seiner Mitarbeit bei CERN (Conseil Européenne pour la Recherche Nucléaire oder auf deutsch: Europäische Organisation für Nukleare Forschung) entwickelte, waren dazu gedacht, den Dokumentenaustausch über das TCP/IP (Transmission Control Protocol / Internet Protocol) möglich zu machen. Berners-Lee schlug dazu Folgendes vor:

All diese Dinge erblickten das Licht der Welt in Form einer Reihe von Software-Tools (Browsern). Ursprünglich wurden sie in Objective C auf der NeXT-Plattform programmiert, später dann in C übertragen, damit sie auch auf anderen Plattformen funktionieren konnten.

Eine kurze und recht interessante Zusammenfassung der Entwicklungen, die für diese Revolution im Web charakteristisch sind, kann man in einem Artikel mit dem Titel »A Little History of the World Wide Web« (»Kleine Geschichte des WWW«) unter http://www.w3.org/History.html nachlesen.

Das heißt, dass hinter all den farbigen Schlagzeilen, ausgefeilten beweglichen Animationen und Audio- oder Videoabläufen in Echtzeit, die für das moderne Web charakteristisch sind, Sammlungen einfacher Textdokumente stehen (vor allem in HTML und verwandten Technologien), die man auf effiziente Weise und verlässlich im Internet von einem Computer auf den anderen übertragen kann.

1.2 Wozu eine weitere Auszeichnungssprache?

Es sieht vielleicht so aus, als wäre die Revolution im Web ziemlich schnell vorangegangen, wobei sie sich vor allem auf die Website-Auszeichnung durch HTML gestützt hat. Sicherlich können Programmierer mit HTML einfache und funktionierende Hypertext- Links erstellen. Von einer HTML-Seite aus kann ein Link ausgelöst werden, um den Inhalt einer anderen Seite herunterzuladen.

HTML stellt eine Übertragbarkeit bereit, die anderen Technologien nicht innewohnt. Die Übertragbarkeit ist eine von mehreren grundsätzlichen Zielsetzungen im zu Grunde liegenden Webdesign.

Der Lernaufwand bei HTML ist relativ gering. Alle, angefangen bei Schulkindern, die ihre Hobbys und gemeinsamen Interessen erkunden wollen, bis hin zu Großvätern, die Bilder ihrer Enkel austauschen, können diese Auszeichnungssprache ohne große Mühe erlernen. Editoren und HTML-Entwicklungs-Tools für grafische Oberflächen (GUI = Graphical User Interface) sind erschwinglich oder stehen im Web zum kostenlosen Download zur Verfügung. Browseroberflächen sind nicht teuer, aber leistungsstark und einfach anzuwenden.

Wenn HTML all dies zu bieten hat, warum sollte man also in Erwägung ziehen, XML zu erlernen?

Einer der Gründe liegt in der Tatsache, dass HTML schwerwiegende Einschränkungen hat. Was zunächst als Auszeichnungssprache für Daten gedacht war, wurde zu einem Werkzeug der Webpräsentation umgeformt. Als Präsentations-Tool ist HTML aber schwach und hat wenig Steuerungsmöglichkeiten für die Platzierung und Verwaltung, etwa von »White Space« (Leerraum), auf einer Seite zu bieten. HTML hat seine Probleme mit dem Setzen von Zeichenabständen, der Ausrichtung und der Silbentrennung. Der Umgang mit mehreren Spalten von Daten, wie etwa in einer Zeitung, ist für HTML problematisch.

Bei der Entwicklung von HTML waren Stilfragen zunächst nicht dazu vorgesehen, in die Sprache einbezogen zu werden. Event-Tags für gebräuchliche Stilmittel wie die Kursiv- (<I>) und Fettschrift (<B>) wurden der Sprache später hinzugefügt. Diese Stilmittel werden normalerweise dazu verwendet, eine Betonung anzuzeigen, und die Absicht war, ein Betonungs-Tag in die Sprache aufzunehmen, das in einem abgetrennten Prozess verwendet werden konnte, falls Stilmittel anzuwenden wären.

Diese Trennung von Inhalt und Stil ist für XML charakteristisch. XML ist eine auf Metadaten zentrierte Sprache, die Auszeichnungen für Daten und nicht für Stile definiert. Stilformate werden getrennt von den Daten behandelt.

Sie werden lernen, wie man auf unterschiedlichste Weise einen Stil an Datenauszeichnungen anfügt. Am 14. Tag werden Sie erfahren, wie man Cascading Stylesheets (CSS) an XML-Dokumente anfügt, ähnlich wie man sie an eine HTML 4.01- Seite anhängen würde. Am 15. Tag werden Sie XSL, die eXtensible Stylesheet Language, und ihre vielfältigen Komponenten zur Objektformatierung (Formatting Object, FO) kennen lernen. Am 16. Tag werden Sie XSLT, eXtensible Stylesheet Language Transformations, verwenden, um XML-Dokumente in HTML umzuwandeln.

Als Hilfsmittel für die Datenauszeichnung fehlt es HTML an Flexibilität. Es gibt nur eine begrenzte Zahl vordefinierter Tags, ohne dass eine Möglichkeit besteht, über dieses vorab festgelegte Set hinauszugehen. Im Laufe der Entwicklung neuer HTML-Versionen in den vergangenen Jahren wurden neue Funktionen eingefügt, selten aber auf konsequente Art und Weise. Oft wurden neue Tags eingeführt, die nur durch den Browser eines einzigen Anbieters unterstützt werden, was die Grundregeln für die Auszeichnung im Web verletzt, die besagen, dass alle Anwendungen miteinander arbeiten und die Datenübermittlung unabhängig von der Plattform sein sollte.

Das W3C beabsichtigt, die Herausgabe neuer HTML-Versionen zu beenden. Die aktuelle Version (4.01) soll die letzte sein. Vielleicht haben Sie von XHTML gehört und fragen sich, was das ist. XHTML ist eine Neuformulierung von HTML als XML-Anwendung.

Sie werden am heute und morgen mehr über die Regeln von XML erfahren. Besonders werden Sie sehen, dass HTML gleich XML sein kann, wenn es den Syntaxregeln folgt, die für XML gelten. XHTML 1.0 und HTML 4.01 ähneln sich tatsächlich sehr stark, aber die jeweiligen Elemente sind an unterschiedliche Namensräume oder Auflistungen von zulässigen Elementen gebunden. Zu den Namensräumen kommen wir am achten Tag.

HTML unterstützt die Modularität von Code, die in anderen Sprachen üblich ist, nur sehr zurückhaltend. Objektorientierte Sprachen wie C, C++, Visual Basic und Java verfügen über Klassen, die die gemeinsame und erneute Verwendung von Objekten und Methoden zwischen mehreren Programmen unterstützen. Am 18. Tag werden Sie XInclude kennen lernen, eine neue Technologie, die XML-Programmierern Funktionen für die Wiederverwendbarkeit von Code bereitstellt. Am 10. Tag werden Sie ein ähnliches Konzept untersuchen, das eine Einbettungstechnik verwendet, die für Anwendungen zur Verfügung steht, die XLink unterstützen.

HTML enthält Unbeständigkeiten, die dafür verantwortlich sind, dass Code geschrieben und veröffentlicht werden kann, den man bestenfalls als »schlecht« bezeichnen könnte. XML motiviert Sie durch seine konsequente Anwendung von Syntaxregeln zu einem »guten Programmierstil«. Mehr zu diesen Regeln erfahren Sie heute und morgen, aber als Beispiel sei erwähnt, dass einige HTML-Versionen kein Schluss-Tag erfordern, das die Beendigung bestimmter Auszeichnungsformen anzeigt. Browser mussten die unterschiedlichen Regelsätze unterstützen, die für HTML typisch wurden. Ein Absatz wird in HTML etwa mit einem <p>-Tag eingeleitet. Frühe HTML-Versionen erforderten nicht, dass der Programmierer den Absatz mit einem entsprechenden </p>-Tag beendete. Die Browser mussten eine Auszeichnungsanweisung für einen Absatz selbst beenden, indem sie bestimmten, wo im Textstrom die Auszeichnung vollständig war. Die neueste Version, HTML 4.01, erfordert, dass Absätze ebenso wie alle anderen Tags am Ende der Auszeichnung die entsprechenden Schluss-Tags haben. Browser unterstützen aber immer noch viele Hundertmillionen von Webseiten, die auch schlecht formatiertes HTML umfassen, und können daher die Standards für HTML 4.01 nicht durchsetzen oder prüfen.

Sie werden am zweiten Tag lernen, wie wohl geformte XML-Dokumente aussehen, und Sie werden erfahren, dass die Syntaxeinschränkungen in XML sehr streng sind und vehement durchgesetzt werden. Diese Regeln erlauben einem/r Programmierer/in jedoch ein Maß an Flexibilität, das einem/r HTML-Autor/in einfach nicht zur Verfügung steht.

1.3 Sieben Dinge, die Sie über XML wissen sollten

Das Akronym XML steht für eXtensible Markup Language, erweiterbare Auszeichnungssprache, aber in mancher Hinsicht ist dieser Name irreführend. XML sollte besser eXtensible Meta Language, also erweiterbare Metasprache, heißen, weil es ein standardisiertes, aber äußerst flexibles Mittel zur Erzeugung anderer Sprachen darstellt. Genauer gesagt erlaubt XML das Schreiben von Sprachdialekten, die den genauen und anspruchsvollen Regeln für die Struktur, die Syntax und die Semantik folgen, die das World Wide Web Consortium (W3C) aufgestellt hat. Einige dieser Regeln werden Sie heute kennen lernen und im Verlauf der Übungen in diesem Buch die Wichtigkeit anderer feststellen.

Das World Wide Web Consortium (W3C) ist die offizielle Organisation zur Förderung und Entwicklung von Standards, die miteinander arbeiten können (Spezifikationen, Richtlinien, Software und Werkzeuge). Sie wurde von Tim Berners-Lee, der als Erfinder des Webs gilt, als Mittel für den ständigen Informationsaustausch gegründet.

Die Website des W3C (http://www.w3.org) ist eine der besten Informationsquellen für XML und mit ihm verwandte Technologien.

In diesem Abschnitt stellen wir Ihnen sieben Aussagen vor, die XML charakterisieren. Das W3C beschreibt XML in zehn Punkten (http://www.w3.org/XML/1999/XML-in-10-points), aber drei davon sind künftige Spezifikationen. Es handelt sich zunächst um folgende sieben charakteristische Merkmale:

  1. XML bietet eine Methode zum Einfügen strukturierter Daten in eine Textdatei.
  2. XML ähnelt HTML ein wenig.
  3. XML wird von Maschinen gelesen, ist aber dem Menschen verständlich.
  4. XML umfasst eine ganze Familie von Technologien.
  5. XML ist wortreich.
  6. XML ist relativ neu, hat aber bedeutende Wurzeln.
  7. XML ist lizenzfrei, plattformunabhängig und wird breit unterstützt.

XML bietet eine Methode zum Einfügen strukturierter Daten in eine Textdatei

Wenn man an die traditionellen Programme denkt, die dazu verwendet werden, Daten zu erstellen, zu manipulieren und zu verwalten, dann werden diese Daten von ihnen in der Regel in einem binären, häufig proprietären Format abgespeichert. Kommerzielle Textverarbeitungen, Datenbanken und Tabellenkalkulationen können zwar die Fähigkeit haben, Textdaten zu erzeugen, sind aber für die optimale Nutzung binärer Datenformate gedacht, wobei die einzelnen Programmtypen untereinander und häufig je nach Händler unterschiedlich sind. Daher ist der Prozess der gemeinsamen Datennutzung im besten Fall mühsam und manchmal wird er durch die proprietäre Natur bestimmter Dateiformate unmöglich gemacht.

Sie kennen vielleicht dieses Dilemma, wenn Sie etwa ein Dokument, das mit einer bestimmten Version von Microsoft Word erzeugt wurde, an jemanden schicken wollten, der mit WordPerfect von Corel arbeitet. Ein Dokument, das im programmspezifischen Binärformat des einen Produkts gespeichert wurde, kann von dem anderen nicht gelesen werden und umgekehrt. Um Dokumente auszutauschen, müssen sie zunächst in einem Format abgespeichert werden, das beiden Produkten bekannt ist. Häufig muss man dabei auf einige der vielfältigen Formatierungsmerkmale verzichten, die ursprünglich Verwendung fanden.

XML bietet die Möglichkeit, Daten als einfachen Text abzuspeichern. Jede Anwendung oder auch jede Person, die eine Textdatei lesen kann, kann auch ein XML-Dokument lesen. Das ursprüngliche Softwareprogramm wird für den Zugriff auf die Daten nicht benötigt. Damit ist es ebenso einfach, ein Problem in der Umgebung eines Informationssystems zu korrigieren wie einen Texteditor zu starten, um das Dokument zu überarbeiten und zu verändern. Die meisten Betriebssysteme stellen wenigstens einen kostenlosen Texteditor als Begleitwerkzeug bereit. Andere Editoren, die für diese Aufgabe hervorragend geeignet sind, sind im Internet frei erhältlich.

Wenn Sie noch einmal nachlesen, lautet die erste Aussage: »XML bietet eine Methode zum Einfügen strukturierter Daten in eine Textdatei«.

XML ist ein Regelsatz zur Erstellung von Textformaten, die einfach zu erzeugen und für Computer leicht zu verarbeiten sind. Die resultierenden Textdateien sind insofern strukturiert, als sie

sind.

Das »X« in XML steht für erweiterbar. Erweiterbarkeit bedeutet, dass die Sprache ausgebaut oder ausgeweitet werden kann, um besondere Bedürfnisse zu erfüllen. Da XML sich nicht auf ein begrenztes Tag-Set gründet, können beschreibende Tags erstellt werden, die den jeweiligen Anforderungen entsprechen.

Auch wenn jeder einfache Texteditor verwendet werden kann, um XML-Dokumente zu erstellen und zu bearbeiten, werden Sie im Laufe der nächsten drei Wochen von einigen spezialisierten Tools erfahren und Informationen darüber erhalten, wie man sie bekommen kann.

Die Konvention besagt, dass XML-Dateien normalerweise die Dateierweiterung .xml haben, wie etwa in meindokument.xml. Die wenigen Ausnahmen sind:

XML ähnelt HTML ein wenig

Es gibt einiges an Gemeinsamkeiten zwischen XML und HTML. Wenn Sie HTML bereits beherrschen, kennen Sie einige der Syntaxregeln, die sich auch auf XML anwenden lassen. Betrachten Sie die Auszeichnung in Listing 1.1. Handelt es sich dabei um einen Codeausschnitt aus HTML oder XML?

Listing 1.1: Ein einfaches Beispiel für die Auszeichnung

<P>
Hier steht Text, der
<EM>ausgezeichnet</EM> wurde für die
Präsentation im Web.
</P>

Die Antwort lautet: »Ja!« Es handelt sich hier tatsächlich um ein Beispiel für einen wohl geformten Textausschnitt, der sowohl mit HTML als auch mit XML geschrieben werden kann. Er folgt den Syntaxregeln, die beiden Sprachen gemeinsam sind. Mehr zu diesen Regeln erfahren Sie heute und morgen.

XML ist dazu gedacht, die Einschränkungen und Mängel, die typisch für HTML sind, zu verbessern. Der Dokumentautor kann die XML-Elemente definieren; es gibt keinen vordefinierten Satz von Tags wie in HTML. Da Sie als Autor Ihre eigenen Tags definieren können, können Sie Namen auswählen, die sinnvoll sind. Statt einen Absatz mit einem <p>-Tag auszuzeichnen, entscheiden Sie sich vielleicht für <paragraph> oder <para>. Oder Sie halten es für sinnvoller, verschiedene Absätze im Dokument auf der Grundlage ihrer Bedeutung oder Relevanz auszuzeichnen. Anstatt eines bloßen <paragraph>-Elements könnten Sie sich entschließen, viele verschiedene Absatzelemente einzuführen, wie etwa:

Hinsichtlich der Ähnlichkeiten sehen Sie also, dass sowohl HTML als auch XML Auszeichnungs-Tags enthalten, die mit den Zeichen < und > eingeklammert sind. Bei Auszeichnungssprachen umfasst ein einfaches Element ein Start-Tag, den Elementinhalt und ein Schluss-Tag, wie in Listing 1.2 gezeigt wird.

Listing 1.2: Ein XML-Dokument mit nur einem Element

1: <title>M + T XML in 21 Tagen</title>

Dieses einzelne Element stellt ein einfaches, wohl geformtes XML-Dokument dar. Der Elementname ist title und er erscheint im Start- (<title>) und Schluss-Tag (</title>) des Elements. Der gesamte String (<title>M + T XML in 21 Tagen</title>) von der einleitenden eckigen Klammer des Start-Tags bis zur beendenden Klammer des Schluss- Tags wird Element genannt. Die Textdaten, welche die Tags enthalten, werden Elementinhalt genannt.

Die Daten, die in den Tags eines Elements enthalten sind, sind der Inhalt dieses Elements. Er wird Elementinhalt oder einfach Inhalt genannt. Der Begriff Elementinhalt wird aber auch von einigen der Schemasprachen benutzt, die Sie später kennen lernen werden.

Alle XML-Elemente müssen beendet werden. Elemente, die nicht leer sind, müssen ein Start- und ein Schluss-Tag haben. Leere Elemente müssen auf die ihnen gemäße Art beendet werden.

Die XML-Elemente bei der Auszeichnung sind die Bausteine der Sprache, analog zu den Nomina in einer richtigen Sprache. XML kann auch Attribute haben, ähnlich den Attributen in HTML, die dazu dienen, Elemente zu bearbeiten oder näher zu bestimmen, genau wie Adjektive die Nomina in einer gesprochenen Sprache modifizieren. Wenn Attribute vorhanden sind, werden sie immer im Start-Tag eines Elements platziert. Listing 1.3 zeigt ein etwas komplexeres Element, in dem Attribute eingebaut sind und das andere Elemente als Elementinhalt hat. Wenn ein Element abgeleitete Elemente enthält, sagt man, dass diese Ableitungen eingebettet sind.

Listing 1.3: Ein XML-Dokument mit eingebetteten abgeleiteten Elementen und Attributen

 1: <account type="überprüfen" Währung="US-Dollar">
2: <name>Smith</name>
3: <balance>34.576,89</balance>
4: </account>

Die Zeilen 1-4 stellen das gesamte account (Konto)-Element dar. Zwei Attribute modifizieren das account-Element, analog dazu, wie ein Adjektiv ein Nomen modifiziert, indem sie zusätzliche Informationen zu dem Element liefern. Die Attribute sind type (Typ) und currency (Währung), mit den jeweiligen Werten überprüfen und US-Dollar. Die Werte der Attribute werden immer in einfache oder doppelte Anführungszeichen platziert. Das account-Element enthält nur einen Elementinhalt (Zeilen 2-3). Mit anderen Worten, das account-Element enthält weder Zeichen noch Text oder Daten, sondern statt dessen die abgeleiteten Elemente name (Name) und balance (Saldo). Alle Elemente, name, balance und account, haben ein Start-Tag und ein entsprechendes Schluss-Tag, wobei im Schluss-Tag ein Schrägstrich (/) steht. Alle XML-Elemente müssen beendet werden.

Attributswerte in XML müssen in einfache oder doppelte Anführungszeichen eingeschlossen sein.

Manchmal ist es schwer zu entscheiden, ob ein Element oder ein Attribut verwendet werden soll, um die Informationen zu charakterisieren. Wenn man sich Informationen vorstellt, die wie Adjektive funktionieren, die ein bestimmtes Nomen modifizieren, wie etwa die Überprüfung eines Kontos oder die Währung US-Dollar, hat man es wahrscheinlich mit Attributen zu tun. Dagegen ist es besser, Informationen, die einen echten Datenwert haben, als Element auszuzeichnen. Elemente können Ableitungen haben, während Attribute dies nicht können. Daher ist jede Entität, die als Container für andere Elemente fungiert, wahrscheinlich ein Element. Das sind keine festen und unumstößlichen Regeln; eigentlich gibt es dazu gar keine Regeln. Man muss jedes Auszeichnungsvorhaben einzeln untersuchen, um zu entscheiden, was in einer bestimmten Situation am ehesten angemessen ist.

XML-Elemente können Textinhalte, andere Elemente und eine Kombination aus Textinhalt und anderen Elementen enthalten oder auch leer sein. Ein leeres Element hat keinen Inhalt zwischen einem Start- und einem Schluss-Tag. <IMG SRC="dateiname.erw"> ist in HTML ein Beispiel für ein leeres Element. Die Syntax für ein leeres Element sieht folgendermaßen aus:

<element_name />

Listing 1.4 zeigt ein Beispiel für ein leeres XML-Element.

Listing 1.4: Beispiel für ein leeres XML-Element

1: <date month="September" year="2001" />

Das Element date ist ein leeres Element. Das abschließende Zeichen (/) ist im Start-Tag platziert, ein abgekürztes Äquivalent für <date month="September" year="2001"></date>. Auch wenn diese beiden Möglichkeiten funktional gleichwertig sind, ist es doch guter Programmierstil, die abgekürzte Form des leeren Elements für die XML-Programmierung zu verwenden. Obwohl dieses Element Attribute mit Werten hat, wird es dennoch als leer betrachtet, weil sich zwischen Start- und Schluss-Tag keine Daten befinden.

Beachten Sie, dass dieses spezielle Element ein Attribut hat. Vielleicht wundern Sie sich, wie man ein Element als leer bezeichnen kann, wenn es Attribute mit Werten hat. Attributswerte sind doch auch Daten, warum sollte man ein solches Element also als leer betrachten? Ein leeres Element ist eines, das keinen Auszeichnungsinhalt hat. Inhalte tauchen nur zwischen Start- und Schluss-Tag auf. Attribute werden nicht als Inhalt angesehen, auch wenn sie zusätzliche Informationen zu den Elementen bereitstellen. Am 12. Tag werden Sie das Document Object Model (DOM) kennen lernen, das eine programmatische Methode zum Zugriff auf einzelne Teile eines XML-Dokuments bietet. Sie werden sehen, dass Attributsdaten einen anderen Teil oder »Knoten« in der Struktur des XML-Dokuments einnehmen als die Inhaltsdaten.

Bislang haben Sie einige syntaktische Ähnlichkeiten zwischen HTML und XML gesehen, die beide aus Elementen und Attributen bestehen. Einer der fundamentalen Unterschiede zwischen beiden Sprachen liegt in der Möglichkeit von XML, eigene, sich selbst beschreibende Elemente zu erstellen. Vergleichen Sie die beiden Codebeispiele in den Listings 1.5 und 1.6.

Listing 1.5: Ein Codeausschnitt in HTML

<HTML>
<H1>Rechnung<H1>
<P>Von: Devan Shepherd</P>
<P>An: Sally Jones</P>
<P>Datum: 26. Juli 2001</P>
<P>Betrag: DM 100.00</P>
<P>Steuer: 16 %</P>
<P>Saldo: DM 121.00</P>
</HTML>

Listing 1.6: Ein vergleichbarer Codeausschnitt in XML

<Rechnung>
<Von>Devan Shepherd</Von>
<An>Sally Jones</An>
<Datum Jahr="2001" Monat="Juli" Tag="26" />
<Betrag Währung="DM">DM 100.00</Betrag>
<Steuer>21</Steuer>
<Saldo Währung="DM">121.00</Saldo>
</Rechnung>

Sehen Sie sich diese beiden Beispiele an und stellen Sie sich dabei folgende Fragen:

Man erkennt, dass XML mit seinen Elementen und Attributen, die sich selbst erklären, reichhaltigere Auszeichnungsmöglichkeiten bietet. Bei einer Anwendung, die Rechnungsdaten benötigt, wäre der HTML-Ausschnitt in Listing 1.5 nicht in der Lage, etwas anderes als eine Reihe von Absätzen anzubieten. Um den Inhalt eines <p>-Elements von einem anderen zu unterscheiden, wären ausführliche Programmierung, Scripting und Schritte zur Anpassung der Logik erforderlich. Dagegen bietet XML in Listing 1.6 Datenkomponenten an, die bedeutungstragend sind, ähnlich den verschiedenen Feldern in einer eindimensionalen Datenbank. XML konzentriert sich auf Metadaten und beinhaltet gleichsam nützliche Informationen zu den ausgezeichneten Daten.

Betrachten Sie die Struktur eines Auszeichnungsdokuments. Ein einzelnes Element enthält alle anderen Elemente im Dokument. Dieses einzelne Element, das auf der obersten Ebene in der Dokumentstruktur liegt, nennt man das Wurzel-Element. In einer HTML-Seite ist das Wurzel-Element immer das Element HTML. In einem XML- Dokument bestimmen Sie den Namen des Wurzel-Elements. In dem Beispiel aus Listing 1.6 ist das Wurzel-Element Rechnung.

Ein wohl geformt es XML-Dokument darf ausschließlich ein Wurzel-Element enthalten, in dem alle anderen enthalten sind.

Ein weiterer entscheidender Unterschied zwischen XML und HTML besteht darin, dass HTML den Inhalt und die Formatierung im selben Auszeichnungsstrom vermischt. So sind die Ziele, die das <H1>-Tag in HTML verfolgt, die Auszeichnung eines bestimmten Datenstrings als Überschrift auf der Ebene 1 sowie die Information an den Browser, dass alles, was dermaßen ausgezeichnet ist, im Browser in einer größeren Schrift ausgegeben wird.

XML basiert auf der Voraussetzung, dass Inhalt und Aussehen oder auch der Stil von der Auszeichnungskodierung der Daten getrennt gehalten werden sollten. XML vertraut bei der Wiedergabe oder der Transformation von Dokumenten von einer Struktur in eine andere ausschließlich auf Stylesheet-Sprachen wie Cascading Stylesheets (CSS) oder der eXtensible Stylesheet Language (XSL). Sie werden am 14. und am 15. Tag lernen, wie man CSS und XSL für die Browserausgabe verwendet. Darauf aufbauend werden Sie am 16. Tag die XSL Transformation Language (XSLT) verwenden, um XML-Dokumente in HTML umzuwandeln, was einen Teil der Middleware-Scripts für die plattformunabhängige Übertragung von XML-Daten über das Web darstellt.

XML wird von Maschinen gelesen, ist aber dem Menschen verständlich

Sie konnten sehen, wie leicht lesbar XML dank der selbst erklärenden Elemente ist. Die eigentliche Semantik der Daten wird als Wissen aufbewahrt, das in XML mit den Inhalten und Attributswerten übermittelt wird. Dennoch handelt es sich bei XML um Computercode. Es wird von XML-Prozessoren gelesen und verwendet. Morgen werden Sie eine Prozessorart kennen lernen, die man Parser nennt und die ein XML-Dokument zeilenweise interpretiert.

XML umfasst eine ganze Familie von Technologien

Es gibt verschiedene wichtige Technologie-Komponenten in der Programmfamilie von XML. Tabelle 1.1 listet diese Technologien zusammen mit ihrer Dateierweiterung und dem Zeitpunkt, an dem Sie sie in diesem Buch beschrieben finden, auf.

Kapitel

Technologie

Beschreibung

1., 2. und 3. Tag

XML Version 1.0

Technische Empfehlung zu XML

4. Tag

DTD

Die Document Type Definition (ein Schema)

5. Tag

XDR

XML Data Reduced (das Microsoft-Schema)

6. Tag

XSD

XML Schema Definition (das Schema des W3C)

8. Tag

Namensräume

Eine Methode zur Qualifizierung von Element- und Attributsnamen

9. Tag

XPath

XML Path Language

10. Tag

XLink

XML Link Language

11. Tag

XPointer

XML Pointer Language

12. Tag

DOM

Document Object Model API

13. Tag

SAX

Simple API for XML

15. Tag

XSL

eXtensible Stylesheet Language

15. Tag

XSL-FO

XSL Formatting Objects

16. Tag

XSLT

XSL Transformation Language

18. Tag

XInclude

XML Include Syntax

18. Tag

XBase

XML Base URI Syntax

Tabelle 1.1: XML-Technologien 

Wenn Sie über diese Technologie-Komponenten lesen und mit den beigegebenen Codebeispielen experimentieren, sollten Sie auf den Status einer jeden beim W3C beschriebenen Technologie Acht geben. Einige dieser Komponenten existieren erst in Form eines Arbeitsentwurfs und werden sich in den kommenden Monaten und Jahren noch stark verändern. XML-Prozessoren unterstützen zum gegenwärtigen Zeitpunkt die verschiedenen Mitglieder der XML-Familie auf unterschiedliche Weise. Viele Erwartungen in der XML-Gemeinde der Programmierer richten sich auf die Standardisierung einiger dieser Komponenten. Die abschließende Version der Schemasprache des W3C wird dazu dienen, die Anzahl der Schema-Optionen zu reduzieren, die zurzeit existieren, wodurch die Entwicklung und Unterstützung für XML- Programmierer leichter wird.

XML ist wortreich

XML-Dateien sind Textdokumente mit Tag-Begrenzern, deshalb sind sie immer umfangreicher als vergleichbare Binärdateien. Dieses Merkmal wurde während der Gestaltung von XML ausgiebig diskutiert. Die Mitglieder des W3C, die mit der Erzeugung des XML-Standards betraut waren, entschieden sich dafür, XML wortreich zu machen, um damit der Erweiterbarkeit und sich selbst beschreibenden Elementen und Attributen einen breiten Raum zur Verfügung zu stellen.

Die Gestalter von XML erkannten, dass Speicher mit der Zeit immer billiger wird, und sie betrachteten die Größe einer Datei nicht als Kriterium bei der Planung. Darüber hinaus steht auf vielen Plattformen billige, häufig kostenlose Software für die Komprimierung zur Verfügung. Anwendungen wie GZIP und ZIP sind schnell und effizient.

Schließlich wird XML bei der Übermittlung im Internet durch das HTTP/1.1-Protokoll optimiert, das so implementiert ist, dass es Strings von Textdaten vor Ort komprimiert und damit die Bandbreite reduziert.

XML ist relativ neu, hat aber bedeutende Wurzeln

XML wurde im Jahr 1996 erstmals konzipiert und am 10. Februar 1998 zum W3C-Standard erhoben. XML gründet auf der Standard Generalized Markup Language (SGML), die zehn Jahre vorher entstand. SGML ist auch eine Metasprache, die zur Erzeugung anderer Sprachen dient. Eine der SGML-Anwendungen ist HTML. Diese Verwandtschaft kann verwirren, aber Sie sollten einfach daran denken, dass XML eine Teilmenge von SGML darstellt und HTML eine SGML-Anwendung ist. XML, HTML und SGML sind nicht gleichrangig. Abbildung 1.1 zeigt ihre Beziehung zueinander und listet mehrere Anwendungen von SGML und XML auf. Sie werden am 19. Tag bei der Besprechung der Integration von XML in ein Geschäftsmodell einige beliebte XML-Anwendungen kennen lernen.

Abbildung 1.1:  Die Beziehung zwischen SGML, XML und HTML

Sie haben vielleicht schon von der eXtensible Hypertext Markup Language, XHTML, gehört und sich gewundert, was sie ist und wie sie sich in den Kontext anderer Auszeichnungssprachen einfügt. Genau genommen ist XHTML eine Neuformulierung von HTML als XML-Anwendung und soll für HTML einiges an Erweiterbarkeit bringen. Das W3C bietet auf seiner Website unter http://www.w3.org/MarkUp/ viele Informationen zu XHTML an. XHTML führt die strengen Regeln von XML ein.

XML ist lizenzfrei, plattformunabhängig und wird breit unterstützt

Niemand verfügt über exklusive Rechte an XML. Es ist frei von Fragen der Lizenzierung und steht für alle Implementierungen bereit. Die mit ihm verbundenen Technologie- Komponenten sind ebenfalls öffentlich zugänglich.

Die Plattformunabhängigkeit von XML eignet sich hervorragend zur Verwendung im Web. Neue E-Business-Modelle steigern das Bedürfnis nach einem transparenten Austausch von Daten, die auf der Übermittlung im Internet basieren.

Viele der wichtigsten Softwareunternehmen haben die XML-Gemeinde mit Tools, der Verbreitung von Standards und Lösungen auf der Grundlage von Beispielen unterstützt.

1.4 Die Rolle des E-Business

Ganz offensichtlich haben die Methoden zur Datenpräsentation, die sich auf Multimedia stützen, den Horizont der Anwender erweitert und dazu geführt, dass sich das typische Web-Gefühl entscheidend verändert hat. Die Forderungen aus der Wirtschaft nach einer ausgeklügelten Informationsvermittlung haben aber auch dazu geführt, dass die notwendigen finanziellen Mittel zur Verfügung stehen, die für ein rasches Anwachsen der allgemeinen und weit reichenden Entwicklung des Webs erforderlich sind. Tatsächlich hat sich unsere Art, Geschäfte zu tätigen, dramatisch verändert, weil kommerzielle Körperschaften sich der Übermittlung von Geschäftsdaten in elektronischer Form zugewandt haben.

Als die Wirtschaft damit begann, die Verwendung des Webs für den Handel zu unterstützen, kam es zu einem immensen Anwachsen der Erwartungen der Webkonsumenten. Statische Webseiten konnten Daten nicht rechtzeitig bereitstellen und mussten dynamischen Inhaltsmodellen Platz machen. Die Wirtschaft verlangte nach neuen Werkzeugen und Technologien, um nicht nur ältere Daten, sondern auch Informationen neuen Stils übermitteln zu können, als Antwort auf die wachsende Detailkenntnis der Kundschaft, die sich im Web auskennt. Vielleicht verwenden Sie bereits Dienste für die Abwicklung von Bankgeschäften über das Web oder Sie tätigen Ihre Reiseabschlüsse über das Internet.

Es folgte eine individuelle und persönliche Gestaltung der Inhalte, sodass Websites einen Besucher »erkennen« und ihre Informationen aus den Erkenntnissen, die die Datenübermittlung mit sich brachte, auf die jeweiligen Bedürfnisse einer einzelnen Person abstimmen konnten. Wahrscheinlich haben Sie bereits öfter eine Website besucht, auf der Sie namentlich begrüßt wurden. Vielleicht auch eine E-Commerce-Site, die Ihren letzten Einkauf, etwa ein Buch oder eine CD, »kennt«. Die Site bietet Ihnen auf Grund Ihrer bisherigen Einkäufe vielleicht einzelne Artikel an, die Sie interessieren könnten, ein Buch des gleichen Autors etwa oder Musik aus dem gleichen Bereich. Vielleicht haben Sie die Seite eines Webportals aufgesucht, die Informationen über die Lokalzeit, die aktuellen Temperaturen und den Wetterbericht für die Umgebung bereitstellt. All das sind Beispiele für persönlich gestaltete Inhalte.

Neue Geschäftskonzepte tragen zum raschen Fortschreiten der Übermittlungstechnologien bei. Das elektronische Zusammenfügen von Daten ist ein Punkt, der angestrebt wird. Nehmen wir das Beispiel mit dem Wetterbericht. Die meisten Sites, die einen solchen Service anbieten, nehmen Ihre Postleitzahl oder Ihre Adresse auf und legen dann eine kleine ID-Nummer als Referenz auf Ihrem Computer ab, die so genannten Cookies. Wenn Sie die Site erneut besuchen, ermittelt ein Programm die ID des Cookies und sucht nach Ihrem Eintrag in der Besucherdatenbank. Es stimmt Ihren Standort mit den Daten des Wetterberichts aus einer umfangreichen Online-Datenbank ab und erzeugt so eine auf Sie persönlich zugeschnittene Webseite. Die verwendeten Daten werden normalerweise von einem zusammengeschlossenen Service ermittelt, der die gleiche grundsätzliche Information zum Wetter an alle Abonnenten übermittelt, ähnlich einem Zeichentricksyndikat, das die gleiche Version einer Karikatur an einem Tag an Zeitungen im ganzen Land übermittelt.

Konzepte zum Zahlen kleiner Beträge sind ein weiteres Beispiel für die Innovationen in der Geschäftswelt, die sich auf Webgrundlage entwickeln. Sie können zum Beispiel einen Online-Buchladen besuchen und dort nur die Kapitel eines Buches kaufen, die Sie auch interessieren, nicht das ganze Buch. Der für eine solche Transaktion erforderliche Informationsaustausch könnte auf einer Website automatisch vonstatten gehen. Vielleicht hilft sie Ihnen sogar, ähnliche Kapitel aus verschiedenen Büchern auszuwählen und so Ihr persönliches Referenzdokument zu einem bestimmten Thema zusammenzustellen. Im Bereich der Musikindustrie erfreut sich diese Vorgehensweise zunehmender Beliebtheit. Das Erzeugen und der Kauf einer CD, die mit Ihren Lieblingsliedern bespielt ist, ist nur noch einen Mausklick entfernt.

Auch Beispiele von E-Business-Transaktionen außerhalb des Webs haben zur Verbreitung technologischen Fortschritts beigetragen. Betrachten wir die elektronischen Transaktionen, die stattfinden, wenn man seine Benzinrechnung gleich an der Zapfsäule mit einer Kreditkarte bezahlen möchte. Sie führen Ihre Karte in ein Lesegerät ein, das die Kontonummer und andere Daten, die auf dem Magnetstreifen Ihrer Kreditkarte gespeichert sind, abliest und die Daten dann zur Verarbeitung an eine Servicestelle weitergibt, die als Clearing-House bekannt ist. Dort wird die Karte geprüft und sichergestellt, dass das Konto über einen ausreichenden Kredit verfügt, um den Kauf zuzulassen. Nach der Prüfung wird eine Bestätigung an die Tankstelle zurückgegeben und die Zapfsäule wird freigegeben. Während Sie Ihren Tank füllen, finden weitere Transaktionen zwischen der Tankstelle und Ihrer Bank statt, die endgültige Berechnung der Summe, abschließende Einträge und der Ausdruck der Quittung, wenn der Zapfhahn wieder eingehängt wird.

Während Sie dieses Buch und die Programmierbeispiele durcharbeiten, werden Sie erkennen, dass XML auf ideale Weise dafür geeignet ist, Lösungen für diese Art geschäftlicher Probleme und für viel mehr anzubieten. Während der nächsten drei Wochen werden Sie XML-Technologien bearbeiten, benutzerdefinierte Dokumente unter Verwendung Ihrer eigenen, sich selbst beschreibenden Daten erstellen und Parser und Anwendungsoberflächen untersuchen. Sie werden auch lernen, wie man Auszeichnungen von einer Sprache in eine andere übermittelt, XML in Zusammenhang mit Datenbanken und serverseitiger Verarbeitung einsetzen und eine Programmfamilie verschiedener Technologien integrieren, um praktisch anwendbare Lösungen zu erzeugen. Dieses Buch liefert Ihnen alle Quellen und deckt alles auf, was zur Beherrschung dieser aufregenden und machtvollen Technologien nötig ist.

1.5 Wir erstellen das erste XML-Dokument

Sie haben gesehen, dass sich XML aus intuitiven, sich selbst beschreibenden Elementen zusammensetzt, die innerhalb eines Wurzel-Elements enthalten sind. Es gibt noch einige einfache Regeln, die zu beherrschen sind, aber dazu kommen wir morgen. Bereits jetzt wissen Sie genug, um Ihr erstes XML-Dokument zu erzeugen. Folgende Werkzeuge benötigen Sie, um diese Übung durchzuführen:

Das Dokument, das Sie erstellen, wird ein einfaches Dokument mit Ihrem Vornamen, Ihrem Nachnamen und einem Scherz sein. Das Element für den ersten Namen nennen Sie <first>, das für den Nachnamen <last>. Der Scherz kann ein beliebiger einzeiliger Textstring in einem Element <joke> sein. Starten Sie zunächst den Editor Ihrer Wahl und erzeugen Sie das XML-Dokument. Sie müssen einen Namen für das Wurzel-Element wählen. Sie müssen außerdem jedes Element beenden. In diesem Fall verwenden Sie dafür ein Schluss-Tag.

Wenn Sie fertig sind, speichern Sie Ihr Dokument unter me.xml ab, starten dann den Microsoft Internet Explorer und zeigen das Ergebnis an. Wenn Sie Ihr Dokument nicht mit der Erweiterung .xml abspeichern, erhalten Sie vielleicht nicht das gewünschte Resultat. Tun Sie das also unbedingt.

Um das Dokument im Internet Explorer anzuzeigen, geben Sie den vollen Pfadnamen und den Dateinamen ins Adressfeld des Browserfensters ein. Wird im Internet Explorer ein Dokument angezeigt, gibt die Browseranwendung Ihr XML-Dokument an einen speziellen Prozessor, den so genannten Parser, weiter. Der Parser überprüft, ob Ihr Dokument den Syntaxregeln für wohl geformtes XML entspricht. Wenn Ihre Auszeichnungen korrekt sind, wandelt der Parser anschließend Ihr Dokument in eine Form um, die leicht zu lesen ist und Auszeichnungs-Tags in einer Farbe enthält, die sich vom Text, den die Tags einschließen, unterscheidet. Dieser Umwandlungsprozess ist als Extensible Stylesheet Language Transformation (XSLT) bekannt. Mehr dazu erfahren Sie am 16. Tag.

Listing 1.7 zeigt eine mögliche Lösung, aber Ihre wird wahrscheinlich eine andere Struktur haben, mit Ihren eigenen Elementnamen, einer möglicherweise anderen Einbettung und einem besseren Witz.

Listing 1.7: Ein erstes XML-Dokument

<data>
<name>
<first>Devan</first>
<last>Shepherd</last>
</name>
<joke>ASCII silly question, get a silly ANSI</joke>
</data>

Abbildung 1.2 zeigt das Resultat der Anzeige dieses einfachen XML-Dokuments mit den Stilmitteln, die dem Microsoft Internet Explorer eingebaut sind. IE führt diese Umwandlung für Sie automatisch durch, wenn das Dokument wohl geformt ist.

Abbildung 1.2:  Die Ausgabe von Listing 1.6

Wie bereits erwähnt, zeigt der Internet Explorer die Elementnamen in einer und den Elementinhalt in einer anderen Farbe an. Das geschieht, wenn XML in eine HTML-Seite umgewandelt und im Speicher mit einem zugeordneten Stylesheet abgelegt wird. Das Stylesheet ist im Lieferpaket von IE enthalten. Der Browser hat auch einen eingebauten XML-Prozessor, den Parser. Über Parser erfahren sie morgen mehr.

1.6 Zusammenfassung

Heute wurden Sie in XML als Gerüst einer Metasprache eingeführt, die zur Erzeugung anderer Sprachen verwendet wird. Sie haben ein wenig von der Bedeutung der Auszeichnungen im Bereich des E-Commerce erfahren und wie die Geschäftswelt die Entwicklung von Webtechnologien beschleunigt hat. Sie haben die sieben Aussagen kennen gelernt, die XML charakterisieren, sowie einige der Syntaxregeln, die den Standard beschränken. Schließlich haben Sie Ihr erstes XML-Dokument erstellt und es mit dem Internet Explorer von Microsoft geparst. Morgen werden Sie eine Menge mehr über wohl geformtes XML erfahren und einige der Vorteile schätzen lernen, die XML einem Webprogrammierer bieten kann.

1.7 Fragen und Antworten

Frage:
Warum brauchen wir eine weitere Auszeichnungssprache?

Antwort:
Genau genommen ist XML keine Auszeichnungssprache, sondern wird zum Teil benötigt, um eine Methode für die Programmierung im Web zur Verfügung zu stellen, die über die eingeschränkten Möglichkeiten hinausgeht, die HTML bietet.

Frage:
Gibt es auch etwas, das HTML anständig erledigt?

Antwort:
Es bietet eine Methode zur Erzeugung von auszuführendem Hypertext. Es ist leicht zu lernen und erfreut sich deshalb im Web einer weiten Verbreitung. Es wird durch eine große Anzahl von billigen, aber leistungsstarken Browseroberflächen unterstützt.

Frage:
Kann ich mein Dokument mit Netscape oder einem anderen Browser anzeigen?

Antwort:
Netscape 6.0 unterstützt XML-Dokumente. Man kann mit Netscape XML- Dokumente anzeigen, aber das Dokument erscheint nicht in der gleichen Form, wie beim Internet Explorer. Sie sollten versuchen, Ihr Dokument mit einem anderen Browser anzuzeigen, um die Unterschiede kennen zu lernen, die zur Ansicht im Internet Explorer bestehen. Denken Sie daran, dass IE eine Umwandlung von XML in HTML vornimmt, um Ihr Dokument mit Auszeichnungssymbolen zu stilisieren. Diese Umwandlung erfolgt mithilfe der Extensible Stylesheet Language Transformation (XSLT) durch ein standardmäßiges Stylesheet, das im IE eingebaut ist. Mehr dazu am 16. Tag.

Frage:
Warum ist HTML ein Problem?

Antwort:
HTML fehlt es an Flexibilität, weil es einen begrenzten und vordefinierten Tag- Satz hat. Es kann nicht einfach erweitert werden und es krankt an den wenig flexiblen eingebauten Stilmitteln.

Frage:
Welches sind die sieben Merkmale von XML?

Antwort:
Die sieben Aussagen lauten:

  1. XML bietet eine Methode zum Einfügen strukturierter Daten in eine Textdatei.
  2. XML ähnelt HTML ein wenig.
  3. XML wird von Maschinen gelesen, ist aber dem Menschen verständlich.
  4. XML umfasst eine ganze Familie von Technologien.
  5. XML ist wortreich.
  6. XML ist relativ neu, hat aber bedeutende Wurzeln.
  7. XML ist lizenzfrei, plattformunabhängig und wird breit unterstützt.

1.8 Übung

Die Übung soll Ihre Kenntnis dessen, was Sie heute gelernt haben, überprüfen. Die Lösungen finden Sie in Anhang A.

Erzeugen Sie ein XML-Dokument, das Ihren Namen, Ihre Anschrift, Ihre E-Mail-Adresse und Ihr Geburtsdatum zeigt. Verwenden Sie für das Datum Attribute. Wenn Sie damit fertig sind, speichern Sie Ihr Dokument ab und zeigen es im Internet Explorer 5.0 an.



vorheriges KapitelInhaltsverzeichnisStichwortverzeichnisFeedbackKapitelanfangnächstes Kapitel


© Markt+Technik Verlag, ein Imprint der Pearson Education Deutschland GmbH