Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
Geleitwort des Fachgutachters
1 Einführung
2 Mathematische und technische Grundlagen
3 Hardware
4 Netzwerkgrundlagen
5 Betriebssystemgrundlagen
6 Windows
7 Linux und UNIX
8 Grundlagen der Programmierung
9 Konzepte der Programmierung
10 Software-Engineering
11 Datenbanken
12 Server für Webanwendungen
13 Weitere Internet-Serverdienste
14 XML
15 Weitere Datei- und Datenformate
16 Webseitenerstellung mit (X)HTML und CSS
17 Webserveranwendungen
18 JavaScript und Ajax
19 Computer- und Netzwerksicherheit
A Glossar
B Zweisprachige Wortliste
C Kommentiertes Literatur- und Linkverzeichnis
Stichwort

Download:
- ZIP, ca. 6,6 MB
Buch bestellen
Ihre Meinung?

Spacer
 <<   zurück
IT-Handbuch für Fachinformatiker von Sascha Kersken
Der Ausbildungsbegleiter
Buch: IT-Handbuch für Fachinformatiker

IT-Handbuch für Fachinformatiker
3., aktualisierte und erweiterte Auflage
1014 S., 34,90 Euro
Galileo Computing
ISBN 978-3-8362-1015-7
gp 14 XML
  gp 14.1 Der Aufbau von XML-Dokumenten
    gp 14.1.1 Die grundlegenden Bestandteile von XML-Dokumenten
    gp 14.1.2 Wohlgeformtheit
  gp 14.2 DTDs und XML Schema
    gp 14.2.1 Document Type Definitions (DTDs)
    gp 14.2.2 Namensräume
    gp 14.2.3 XML Schema
  gp 14.3 XSLT
  gp 14.4 Grundlagen der XML-Programmierung
    gp 14.4.1 SAX
    gp 14.4.2 DOM
  gp 14.5 Zusammenfassung

More matter, with less art. – William Shakespeare

14 XML

XML, die Extensible Markup Language (»erweiterbare Auszeichnungssprache«), ist kein bestimmtes Dokumentformat, sondern eine Metasprache zur Definition beliebiger Auszeichungssprachen. Diese Sprachen können Textdokumente, Vektorgrafiken, multimediale Präsentationen, Datenbanken oder andere Arten von strukturierten Daten beschreiben. XML wurde vom World Wide Web Consortium (W3C) entworfen und standardisiert. Es handelt sich um eine schlanke, moderne und an Internet-Bedürfnisse angepasste Weiterentwicklung der klassischen Metasprache SGML (Standard Generalized Markup Language), die Ende der 60er-Jahre des vorigen Jahrhunderts erfunden und in den 1980ern entscheidend weiterentwickelt wurde.

Die XML-Spezifikation selbst enthält nur wenige formale Regeln für den Aufbau von Dokumenten. Wenn Sie sich an diese – weiter unten erläuterten – Regeln halten, erzeugen Sie ein wohlgeformtes XML-Dokument. Darüber hinaus besteht die Möglichkeit, Standards für XML-Dokumentformate zu definieren und Dokumente von diesen Standards abhängig zu machen. Dokumente, die auf solchen Formatdefinitionen basieren, sind nicht nur wohlgeformt, sondern auch gültig. Die klassische, bereits in SGML bekannte Form für solche Dokumentklassen ist die Document Type Definition oder DTD. Moderne Alternativen, die zum einen leistungsfähiger sind und zum anderen selbst in reinem XML verfasst werden, sind XML Schema und RELAX NG (siehe http://www.relaxng.org).

Vorteile von Klartextformaten

Grundsätzlich bietet die Verwendung klartextbasierter Dokumentformate eine Reihe von Vorteilen gegenüber Binärdateien:

  • Sämtliche Konfigurations- und Strukturinformationen sind für Menschen lesbar und können notfalls auch manuell geändert werden.
  • Die Dokumente lassen sich auf jedem beliebigen Computersystem in einem einfachen Texteditor öffnen und eventuell bearbeiten. Der reine Textinhalt erschließt sich auch Anwendern, die die verwendeten Auszeichnungsbefehle nicht verstehen.
  • Der Austausch von Dokumenten mit anderen Anwendungen, neuen Versionen einer Anwendung oder Programmiersprachen ist erheblich einfacher als bei Binärformaten.

Die interessanteste Frage ist eher, was XML gegenüber anderen textbasierten Auszeichnungssprachen auszeichnet. Zunächst haben fast alle textbasierten Formate außer XML spezielle Aufgaben: Beispielsweise dient LaTeX dem Erstellen von Vorlagen für den professionellen Satz; PostScript beschreibt dagegen fertig formatierte Ausgabeseiten für Highend-Drucker und -Belichter. Diese beiden Formate werden in Kapitel 15, Weitere Datei- und Datenformate, angesprochen. Des Weiteren besitzen UNIX-Serveranwendungen und viele andere Programme jeweils ein eigenes, ASCII-basiertes Konfigurationsdateiformat. In Kapitel 12, Server für Webanwendungen, werden zum Beispiel die Konfigurationsdateien des Webservers Apache erläutert.

Universelles XML

XML ist dagegen eine universelle Sprache; es spielt keine Rolle, ob Sie Ihre Musik-CD-Sammlung, Ihre Doktorarbeit oder Ihre Geschäftsdaten in einem XML-Dokument speichern. Wichtig ist allerdings, zu verstehen, dass XML immer nur die Struktur und den Aufbau der Daten beschreibt. Das Layout der Druck- oder Webversion von Textinhalten muss durch eine externe Stil- oder Formatierungssprache beschrieben werden, beispielsweise durch das weiter unten beschriebene XSLT. Auch die Aufbereitung und Darstellung von Datendokumenten ist nicht im XML-Format selbst festgelegt, sondern wird durch Programmierung oder durch ein spezielles Anwendungsprogramm durchgeführt.

Übrigens werden in der Praxis gar nicht so oft neue Dokumentformate für eigene Anwendungen entwickelt. Der überwiegende Anteil der Anwendungen von XML beruht auf dem Einsatz vorhandener XML-basierter Sprachen. Beispiele sind hier etwa die Webseiten-Auszeichnungssprache XHTML, das Vektorgrafikformat SVG oder die beliebte Handbuch- und Dokumentationssprache DocBook. XHTML wird in Kapitel 16, Webseitenerstellung mit (X)HTML und CSS, erläutert.

Eine wichtige Frage wurde bisher noch nicht angesprochen: Wie werden XML-Dokumente editiert und abgespeichert? Darauf gibt es keine allgemein gültige Antwort. Prinzipiell handelt es sich bei XML-Dokumenten um Textdateien, Sie können sie also mit Ihrem bevorzugten Texteditor eingeben. Wichtig ist nur, dass der gewählte Editor den Zeichensatz unterstützt, den das XML-Dokument verwendet.

XML- Editoren

Neben den einfachen Texteditoren werden inzwischen unzählige spezielle XML-Editoren angeboten, sowohl Open-Source-Lösungen als auch kommerzielle Programme. Bekannte kommerzielle Editoren sind beispielsweise XMLSpy für Windows von der österreichischen Firma Altova (www.xmlspy.com) oder der Java-basierte Oxygen XML-Editor (www.oxygenxml.com). Zu den Open-Source-Lösungen gehört beispielsweise der ebenfalls in Java geschriebene Editor Xerlin (www.xerlin.org).

Ein guter XML-Editor bietet neben dem direkten Bearbeiten der XML-Codes die Möglichkeit, XML-Dokumente in einer Baumansicht oder anderweitig visuell zu editieren. Außerdem sollten zusätzliche Formate wie DTDs, XML Schema, XSLT und so weiter unterstützt werden.

Abgesehen davon verwenden viele Anwendungsprogramme XML-basierte Datenformate, beispielsweise OpenOffice oder die neuesten Versionen der Microsoft-Office-Programme. Dennoch käme wohl kaum jemand auf die Idee, diese Dokumente von Hand mithilfe eines Text- oder XML-Editors zu bearbeiten. [Ein unbestreitbarer Vorteil besteht aber natürlich darin, dass es relativ leicht ist, Programme zu schreiben, die diese Formate generieren. ] Ebenso gibt es spezielle Editoren für besondere XML-Formate wie XHTML oder SVG. Letzteres lässt sich beispielsweise leicht aus Adobe Illustrator exportieren.

Datei- endungen und MIME-Types

Gespeichert werden XML-Dokumente entweder als Datei mit der Endung .xml, wenn es sich um allgemeine XML-Dokumente handelt, oder mit einer speziellen Dateierweiterung, falls ein besonderes XML-Format verwendet wird. Zum Beispiel werden XHTML-Dokumente üblicherweise mit der Endung .htm oder .html gespeichert; SVG-Dateien besitzen dagegen die Erweiterung .svg.

Der für Webserver und E-Mail-Anwendungen wichtige MIME-Type allgemeiner XML-Dokumente ist text/xml, während spezielle Formate entweder einen ganz eigenen Typ wie text/html oder eine Kombination wie image/svg+xml bilden. Beachten Sie, dass ein SVG-Dokument zwar formal noch immer ein Textdokument ist, aber den Verwendungszweck eines Bildes erfüllt – deshalb der Haupttyp image.


Galileo Computing

14.1 Der Aufbau von XML-Dokumenten  downtop

Jedes XML-Dokument besteht aus einer Hierarchie ineinander verschachtelter Steueranweisungen, die als Elemente oder Tags bezeichnet werden, und kann zusätzlich einfachen Text enthalten. Die XML-Tags werden in spitze Klammern gesetzt, also zwischen ein <-Zeichen und ein >-Zeichen. Sie können ein oder mehrere Attribute in der Form attribut="wert" enthalten. Jedes Tag wird unter Angabe seiner Bezeichnung geöffnet (zum Beispiel <test>) und weiter unten im Dokument durch eine Wiederholung mit vorangestelltem Slash (/) wieder geschlossen (etwa </test>). Wahrscheinlich haben Sie eine solche Syntax schon einmal gesehen, wenn Sie sich den Quellcode von HTML-Dokumenten angesehen haben, die ähnlich aufgebaut sind.


Galileo Computing

14.1.1 Die grundlegenden Bestandteile von XML-Dokumenten  downtop

Hier sehen Sie ein einfaches XML-Dokument, in dem eine Übersicht über einige Bücher zum Thema XML geboten wird:

<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
<xml-buecher> 
  <buch isbn="3898423611"> 
    <autor> 
      <name>Bongers</name> 
      <vorname>Frank</vorname> 
    </autor> 
    <titel>XSLT 2.0</titel> 
    <auflage>1</auflage> 
    <ort>Bonn</ort> 
    <jahr>2004</jahr> 
    <verlag>Galileo Computing</verlag> 
  </buch> 
  <buch isbn="389842488X"> 
    <autor> 
      <name>Vonhoegen</name> 
      <vorname>Helmut</vorname> 
    </autor> 
    <titel>Einstieg in XML</titel> 
    <auflage>2</auflage> 
    <ort>Bonn</ort> 
    <jahr>2004</jahr> 
    <verlag>Galileo Computing</verlag> 
  </buch> 
  <buch isbn="3897213397"> 
    <autor> 
      <name>Harold</name> 
      <vorname>Eliotte Rusty</vorname> 
    </autor> 
    <autor> 
      <name>Means</name> 
      <vorname>W. Scott</vorname> 
    </autor> 
    <titel>XML in a Nutshell</titel> 
    <auflage>3</auflage> 
    <ort>Köln</ort> 
    <jahr>2005</jahr> 
    <verlag>O&apos;Reilly</verlag> 
  </buch> 
  <!-- und viele weitere Bücher -->
</xml-buecher>

Die xml-Steueranweisung

Jedes XML-Dokument beginnt mit einer xml-Steueranweisung, die die verwendete XML-Version (bisher immer 1.0) und den Zeichensatz des Dokuments angibt:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>

Die hier verwendete Zeichencodierung utf-8 ist eine spezielle Schreibweise des Unicode-Zeichensatzes: Die ASCII-Zeichen 0 bis 127 benötigen nur 1 Byte, alle anderen Unicode-Zeichen dagegen 2 bis 4. Selbstverständlich können Sie auch andere Zeichensätze angeben, zum Beispiel iso-8859 - 1 für den USA/Westeuropa-Standardzeichensatz oder gb2312 für Chinesisch (VR China). Dazu muss der verwendete Zeichensatz allerdings von Ihrem Text- oder XML-Editor unterstützt werden.

Das Attribut standalone gibt an, ob sich das Dokument auf ein externes Formatdokument wie eine DTD oder ein XML Schema bezieht. Der Wert yes besagt, dass das Dokument selbstständig ist und nicht von einer solchen Standardisierung abhängt.

Steueranweisungen (auch PI, Processing Instructions) können in XML-Dokumenten an beliebiger Stelle vorkommen. Es handelt sich um Anweisungen für interpretierende Geräte oder Programme, die mit dem Dokument selbst nichts zu tun haben.

XML-Elemente

Es ist wichtig, dass genau ein Tag, das Wurzelelement, das gesamte Dokument umschließt. Das Wurzelelement des vorliegenden Dokuments sieht folgendermaßen aus:

<xml-buecher> 
  <!-- umschlossener Inhalt --> 
</xml-buecher>

Verschachtelung von Tags

Innerhalb des Wurzelelements sind weitere Elemente mit ihren Unterelementen und Textinhalten verschachtelt. Das Wichtigste ist dabei, dass Sie auf die korrekte Reihenfolge bei der Verschachtelung achten müssen. Eine Schreibweise wie die folgende ist nicht gestattet:

<autor><name>Vonhoegen</autor></name>

Richtig muss es folgendermaßen lauten:

<autor><name>Vonhoegen</name></autor>

Die hierarchische Gliederung von XML-Dokumenten ergibt eine Art Baumdiagramm. Das Wurzelelement bildet logischerweise die Wurzel, die verschachtelten Elemente sind die Äste und Zweige und die Textinhalte die Blätter. Abbildung 14.1 zeigt einen Ausschnitt des XML-Bücher-Dokuments in Form eines solchen Diagramms.

Abbildung 14.1    Darstellung eines XML-Dokuments in Form einer Baumstruktur

Die Namen von Tags und den weiter unten besprochenen Attributen dürfen aus Buchstaben und Ziffern sowie aus den folgenden Sonderzeichen bestehen: _ (Unterstrich), – (Bindestrich) und . (Punkt). Das erste Zeichen darf keine Ziffer sein. Es wird zwischen Groß- und Kleinschreibung unterschieden.

Wie bereits indirekt erwähnt, muss jedes XML-Tag, das geöffnet wurde, auch wieder geschlossen werden. Erst das öffnende und das schließende Tag zusammen ergeben das eigentliche Element. Geschlossen wird ein Tag durch die Wiederholung seines Namens mit vorangestelltem Slash (/). In der Regel steht zwischen den beiden Tags Inhalt, der aus tiefer verschachtelten Tags oder aus einfachem Text bestehen kann. Mitunter kommt es jedoch vor, dass ein Element leer ist, also keinen weiteren Inhalt enthält.

Leere Tags

Zum Beispiel könnte die Bücherliste für jedes Buch ein zusätzliches Element enthalten, das auf den Dateinamen und den MIME-Type einer Abbildung des Buchcovers verweist. Für diese Angaben würden sich Attribute (siehe nächster Unterabschnitt) besonders gut eignen:

... 
<titel>Einstieg in XML</titel> 
<cover datei="einstieg_xml.gif" type="image/gif"> 
</cover> 
...

Da alle erforderlichen Informationen über das Cover-Bild bereits in den Attributen stehen, benötigt das Element cover keinen verschachtelten Inhalt. Falls Sie bereits Kenntnisse in HTML haben, könnten Ihnen die dort verwendeten »Einfach-Tags« wie der Zeilenumbruch <br> vertraut sein. In XML ist eine solche Ausnahme nicht zulässig, die Schreibweise stammt noch aus SGML. Als »Entschädigung« bietet XML allerdings eine kurzgefasste Schreibweise für leere Elemente an. Das cover-Element könnten Sie entsprechend dieser Syntax auch folgendermaßen schreiben:

<cover datei="einstieg_xml.gif" type="image/gif" />

Der Slash am Ende des Tags ersetzt also das vollständige schließende Tag. Das Leerzeichen vor dem End-Slash ist nach der eigentlichen XML-Syntax nicht erforderlich. Allerdings ist es nützlich, um kompatiblen Code für Browser abzuliefern, die nur HTML, aber nicht das neue XHTML verstehen. Der oben erwähnte Zeilenumbruch wird in der voll kompatiblen Fassung also so geschrieben:

<br />

Alte Browser ignorieren den Slash einfach, während XML-Parser kein Problem mit dem Leerzeichen haben. Falls Sie dagegen einfach <br/> schreiben, versteht ein älterer Browser dies möglicherweise nicht, weil er dies für ein unbekanntes Tag hält.

Genaueres über klassisches HTML im Unterschied zu XHTML erfahren Sie in Kapitel 16, Webseitenerstellung mit (X)HTML und CSS.

Attribute

Das Element buch enthält jeweils ein Attribut namens isbn. Attribute stehen nur beim öffnenden Tag und werden beim schließenden niemals wiederholt. Die Form ist stets attributname="attributwert" oder attributname='attributwert'. Die doppelten oder einfachen Anführungszeichen sind zwingend erforderlich. Zwischen dem Attributnamen, dem Gleichheitszeichen und dem öffnenden Anführungszeichen ist kein Abstand erlaubt, während mehrere Attribute durch Whitespace voneinander getrennt werden, genau wie Tag-Name und Attribut.

Verwendungszweck von Attributen

Allgemein werden Attribute häufig verwendet, um Ordnungskriterien oder Metainformationen für Elemente anzugeben. Allerdings ergäbe sich kein Unterschied im Informationsgehalt des Dokuments, wenn Sie statt

<buch isbn="3898423611"> 
   ... 
</buch>

die folgende Schreibweise wählen würden:

<buch> 
   <isbn>3898423611</isbn> 
   ... 
</buch>

Beachten Sie jedoch, dass Attribute immer nur für Informationen geeignet sind, die nur einmal vorkommen. Es ist nämlich nicht zulässig, zwei Attribute gleichen Namens in ein und demselben Tag zu verwenden. Außerdem ist ein Attribut naturgemäß nicht für mehrgliedrige Angaben geeignet, die eigentlich verschachtelt werden müssen.

Das folgende Beispiel zeigt einen extrem schlechten Stil bei der Verwendung von Attributen, da es vor allem die erste Regel missachtet:

<buch isbn="3827316367" autor1="Howard, Eliotte Rusty" autor2="Means, W. Scott"> 
   ... 
</buch>

Was machen Sie aber, wenn ein Buch zehn Autoren hat (bei Anthologien oder umfangreichen wissenschaftlichen Werken ist das keine Seltenheit)?

Noch übler ist die folgende Schreibweise, die beide Regeln ignoriert:

<buch isbn="3827316367" autor-name1="Howard" 
autor-vorname1="Eliotte Rusty" autor-name2="Means" 
autor-vorname2="W. Scott"> 
  ... 
</buch>

Diese beiden schlechten Beispiele sollten Sie so schnell wie möglich wieder vergessen; sie sind zwar formal zulässig, stilistisch aber vollkommen indiskutabel.

Entity-Referenzen

Beim dritten Buch steht als Verlagsangabe O&apos;Reilly. Wahrscheinlich haben Sie bereits erraten, dass es sich um den O’Reilly-Verlag handelt. &apos; ersetzt in einem XML-Dokument den Apostroph.

Eingebaute XML-Entities

Einige Zeichen sind in XML-Dokumenten nicht zulässig, sondern müssen durch spezielle Escape-Sequenzen ersetzt werden, die als Entity-Referenzen bezeichnet werden. Eine Entity-Referenz beginnt mit einem &-Zeichen, darauf folgt ein spezieller Code und am Ende ein Semikolon. Tabelle 14.1 zeigt die fünf Zeichen, die nicht gestattet sind, und die passenden Entity-Referenzen.


Tabelle 14.1    Die fünf Standard-Entity-Referenzen in XML
Zeichen Entity-Referenz Bedeutung

<

&lt;

less than (kleiner als)

>

&gt;

greater than (größer als)

&

&amp;

Ampersand (»and per se and«)

'

&apos;

Apostroph

"

&quot;

quotation mark (Anführungszeichen)


Alle diese Zeichen haben im XML-Code eine spezielle Bedeutung: < und > umschließen die Tags. Die Werte von Attributen stehen in Anführungszeichen oder wahlweise in einfachen Anführungszeichen (Apostrophen). Das &-Zeichen schließlich leitet eben die Entity-Referenzen ein.

Numerische Entity- Referenzen

Neben diesen vorgefertigten Entity-Referenzen können Sie in XML auch beliebige Unicode-Zeichen numerisch angeben. Die Syntax ist entweder &#Dezimalcode; oder &#xHexadezimalcode;. Beispielsweise können Sie ein »Registered Trademark«-Zeichen ® durch die Zeichenfolge &#174; (dezimal) oder &#xAE; (hexadezimal) erzeugen.

Schließlich können Sie eigene Entities definieren und in Ihren Dokumenten Referenzen darauf verwenden. Dies ermöglicht Ihnen den schnellen Zugriff auf häufig benötigte Sonderzeichen oder sogar XML-Codeblöcke. Die Definition von Entities wird innerhalb von DTDs durchgeführt, die weiter unten behandelt werden.

CDATA-Abschnitte

Der normale Text in XML-Dokumenten besteht aus sogenannten PCDATA-Abschnitten. »PCDATA« steht für »parsed character data«. Dies bedeutet, dass einige Sonderzeichen innerhalb des Textes gemäß ihrer speziellen XML-Bedeutung behandelt werden – es sei denn, Sie verwenden die im vorigen Unterabschnitt vorgestellten Entity-Referenzen.

In einigen Fällen können Entity-Referenzen sehr störend sein. Stellen Sie sich zum Beispiel eine XML-Version des vorliegenden Kapitels vor. Diese müssen in normalen Textabschnitten die Entity-Referenzen verwenden.

Der folgende Code ist die XML-Entsprechung eines Ausschnitts aus dem vorigen Unterabschnitt:

<para> 
  Das <code>cover</code>-Element könnten Sie nach dieser 
  Syntax auch folgendermaßen schreiben: 
</para> 
<codeblock> 
  &lt;cover datei=&quot;einstieg_xml.gif&quot; 
  type=&quot;image/gif&quot; /&gt; 
</codeblock> 
<para> 
  Der Slash am Ende des Tags ersetzt also das komplette 
  schließende Tag. 
</para>

Das XML-Codebeispiel zwischen den Tags <codeblock> und </codeblock> ist durch die Häufung von Entity-Referenzen absolut unleserlich. Um solche Probleme zu vermeiden, haben sich die XML-Entwickler ein spezielles Format für solche Textblöcke ausgedacht, die sogenannten CDATA-Abschnitte. Diese Abkürzung bedeutet »character data«. Innerhalb dieser speziellen Bereiche sind alle Sonderzeichen erlaubt und werden nicht als XML interpretiert.

Ein CDATA-Abschnitt wird durch die Sequenz <![CDATA[ eingeleitet und durch ]]> abgeschlossen. Mithilfe eines CDATA-Abschnitts wird das obige Beispiel sofort viel lesbarer:

<para> 
  Das <code>cover</code>-Element könnten Sie nach dieser 
  Syntax auch folgendermaßen schreiben: 
</para> 
<codeblock> 
<![CDATA[ 
  <cover datei="einstieg_xml.gif" 
  type="image/gif" /> 
]]> 
</codeblock> 
<para> 
  Der Slash am Ende des Tags ersetzt also das komplette 
  schließende Tag. 
</para>

Es versteht sich von selbst, dass die Zeichenfolge ]]> innerhalb eines CDATA-Blocks unzulässig ist – schließlich beendet sie eben diesen Block. Genau deshalb wurde eine so unwahrscheinliche Zeichensequenz gewählt.


Galileo Computing

14.1.2 Wohlgeformtheit  toptop

Jedes XML-Dokument muss eine Reihe formaler Regeln erfüllen, um wohlgeformt zu sein. XML-Dateien, die diesen Regeln nicht genügen, werden von XML-Parsern in Anwendungen und Programmiersprachen nicht verarbeitet, sondern erzeugen Fehlermeldungen. In diesem Unterabschnitt werden die Regeln für die Wohlgeformtheit noch einmal explizit erläutert. Zwar wurden sie bereits am Rande erwähnt, sind aber wichtig genug, um genauer erklärt zu werden.

Regeln für die Wohl- geformtheit

Hier sehen Sie zunächst eine kurze Liste aller Regeln für die Wohlgeformtheit:

  • Ein XML-Dokument benötigt genau ein Wurzelelement: Ein bestimmtes Element muss alle anderen Elemente und Textinhalte umschließen.
  • Alle Elemente müssen korrekt ineinander verschachtelt werden; das zuletzt geöffnete Element wird als Erstes wieder geschlossen.
  • Jedes Element besteht aus einem öffnenden und einem schließenden Tag; »Einfach-Tags« wie in klassischem HTML gibt es nicht. Für leere Tags existiert die spezielle Kurzfassung mit dem End-Slash.
  • Attribute haben die Form name="wert". Der Wert muss stets in Anführungszeichen stehen.
  • Die Namen von Elementen und Attributen dürfen nur Buchstaben, Ziffern, Unterstriche, Bindestriche und Punkte enthalten. Es wird zwischen Groß- und Kleinschreibung unterschieden. Das erste Zeichen darf keine Ziffer sein.
  • Bestimmte Zeichen sind in XML-Dokumenten nicht zulässig: <, >, &, " und ' müssen durch die Entity-Referenzen &lt;, &gt;, &amp;, &quot; beziehungsweise &apos; ersetzt werden. Die Definition weiterer Entity-Referenzen ist zulässig.
  • CDATA-Blöcke ermöglichen die beliebige Verwendung der Sonderzeichen, die normalerweise durch Entity-Referenzen ersetzt werden müssen. Ein CDATA-Abschnitt steht zwischen <![CDATA[ und ]]>.

Die meisten dieser Regeln wurden weiter oben bereits ausführlich genug erläutert. Im Folgenden wird allerdings noch einmal die Bedeutung des Wurzelelements und der korrekten Verschachtelung von Tags hervorgehoben.

Wurzelelemente

Die Forderung nach einem Wurzelelement bedeutet, dass Code wie der folgende kein vollständiges XML-Dokument bildet:

<buch> 
  <titel>Einstieg in XML</titel> 
</buch> 
 
<buch> 
  <titel>XML im Unternehmen</titel> 
</buch>

Dies ist bestenfalls ein Dokument-Fragment. Manche XML-fähigen Anwendungen sind in der Lage, mit solchen Fragmenten umzugehen. Sie dürfen sich allerdings niemals darauf verlassen. Korrekt wäre dagegen folgende Fassung:

<xml-buecher> 
  <buch> 
    <titel>Einstieg in XML</titel> 
  </buch> 
  <buch> 
    <titel>XML im Unternehmen</titel> 
  </buch> 
</xml-buecher>

Das Element xml-buecher ist das Wurzelelement des gesamten Dokuments: Die Tags <xml-buecher> und </xml-buecher> umschließen alle anderen Inhalte.

Bei vielen vordefinierten XML-basierten Dokumentformaten ist das Wurzelelement ein Hinweis auf das Format selbst. Beispielsweise lautet das Wurzelelement eines XHTML-Dokuments html. Der gesamte Inhalt von HTML-Dokumenten wird also von den Tags <html> und </html> umschlossen.

Korrekte Verschachtelung

Wie bereits erwähnt, muss die korrekte Verschachtelungsreihenfolge von XML-Elementen beachtet werden. Tags werden von außen nach innen geöffnet und in umgekehrter Reihenfolge wieder geschlossen. Das zuletzt geöffnete Tag wird demnach zuerst geschlossen.

Diese Regel ist im Grunde leicht zu merken und einzuhalten. Vielleicht verwirrt es Sie aber in dem Fall, dass zwei Tags unmittelbar hintereinander geöffnet werden, die Sie später auch wieder gleichzeitig schließen möchten.

Verschachtelungsfehler

Stellen Sie sich beispielsweise vor, Sie hätten für die Formatierung eines Textdokuments zwei Elemente namens fett und kursiv definiert und wollten nun einige Wörter fett und kursiv darstellen. In diesem Fall könnte es leicht passieren, dass Sie denken: Diese Wörter sollen fett und kursiv sein. Wenig später denken Sie sich: Dieses Wort soll schon nicht mehr fett und nicht mehr kursiv sein. Dieser Sprachgebrauch würde die folgende Formulierung in XML nahe legen:

Dieser Text ist <fett><kursiv>fett und kursiv</fett></kursiv>  
und dieser nicht mehr.

Allerdings ist dieses Konstrukt absolut verboten. Die richtige Syntax lautet natürlich folgendermaßen:

Dieser Text ist <fett><kursiv>fett und kursiv</kursiv></fett>  
und dieser nicht mehr.

Gute XML- oder HTML-Editoren weisen im Übrigen schon während der Eingabe darauf hin, dass Sie eine falsche Verschachtelung verwendet haben.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






 <<   zurück
  
  Zum Katalog
Zum Katalog: IT-Handbuch für Fachinformatiker






IT-Handbuch für Fachinformatiker
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Linux






 Linux


Zum Katalog: Konzepte und Lösungen für Microsoft-Netzwerke






 Konzepte und
 Lösungen für
 Microsoft-Netzwerke


Zum Katalog: Webseiten programmieren und gestalten






 Webseiten
 programmieren
 und gestalten


Zum Katalog: C/C++






 C/C++


Zum Katalog: Java ist auch eine Insel






 Java ist auch
 eine Insel


Zum Katalog: Einstieg in SQL






 Einstieg in SQL


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de