In XML wird die Zukunft des modernen Webpublishings gesehen, was macht XML so besonders. Diese Einführung gibt einen Einblick in die Sprache XML.
XML ist aus dem SGML (Standard Generalized Markup Language) entstanden.
Diese wurde bereits in den 80igern von IBM zum größten
Teil entwickelt. SGML gilt als Muttersprache aller Markup Sprachen,
so auch von XML. HTML ist eine winzige Definition, die aus dem SGML
Standard entsprungen ist. Die Befehlswelt von HTML ist beschränkt.
Es gibt lediglich eine begrenzte Anzahl von formatierenden Befehlen.
XML hat eine komplett andere Datenstruktur. In XML gibt es beschreibende
Befehle. Die Befehle dienen primär der Datenspeicherung
und Datenbeschreibung.
Die Formatierung des Inhaltes wird von Stylesheets und anderen Formatierungssprachen
wie XSL und XSLT bestimmt.
Ab dem Internet Explorer 5 ist XML integriert. Doch erst mit der
Version 6 wurden alle Standards implementiert.
Um ein XML-Dokument zu erstellen benötigt man nur einen Texteditior,
wie Notepad. Das erste XML-Dokument, welches wir erstellen wollen
sieht so aus:
<?xml version="1.0" encoding="ISO-8859-1"
?>
<artikel>
<titel>Der Titel</titel>
<teaser>Der Teaser, eine kurze Beschreibung</teaser>
<inhalt>Der Artikelinhalt an sich</inhalt>
</artikel>
Der Code und die Schreibweise hat kaum Unterschiede zu HTML, auf
den ersten Blick. In der ersten Zeile des Codes wird die XML Version
spezifiziert, also die XML Version mit welcher der Inhalt behandelt
oder geparsed werden soll. Zudem ist das Attribut encoding gesetzt.
Es gibt den Zeichensatz mit welchem das Dokument behandelt werden
soll.
Weitere Zeichensätze:
encoding="UTF-8"
internationaler Zeichensatz mit 8 Bit Zeichenbreite
encoding="UTF-16"
internationaler Zeichensatz mit 16 Bit Zeichenbreite
encoding="ISO-8859-1"
ISO-Zeichensatz für westeuropäische Sprachen
Wie an der Struktur des Dokumentes erkennbar wird, ist eine feste
Baumstruktur vorhanden. Sie beschreibt die Verschachtelung
der einzelnen Befehle. Das sogenannte Wurzelelement ist <artikel>
</artikel>. Es ist das erste Element, welches den kompletten
Datensatz umringt. Diesem Wurzelelement sind weitere drei Elemente
untergeordnet.
Speichern Sie dieses Dokument einfach einmal als versuch.xml ab,
und schauen Sie sich das ganze mal mit dem InternetExplorer an.
Das Ergebnis wird ernüchternd sein.
Die Ausgabe von versuch.xml
In gewisser Hinsicht können Sie sich jedoch freuen, da das
XML Dokument wohlgeformt ist, und das auf den ersten Versuch.
Doch was bedeutet eigentlich, das Dokument ist "wohlgeformt"?
Dies hängt von der korrekten Syntax ab. Hierbei müssen
folgende Regeln beachtet werden.
1. XML Deklaration
Die Deklaration des XML Standards am Anfang des Dokumentes ist unabdingbar.
Sie muss immer vorhanden sein.
2. Wurzelelemet
Für ein wohlgeformtes Dokument muss auf jeden Fall ein Wurzelelement,
wie in unserem Beispiel "<artikel> </artikel>"
vorhanden sein. Dieses umschließt alle untergeordneten Elemente.
3. Richtige Schreibweise
Ein Tippfehler ist schnell geschehen, und wird von XML hart bestraft.
Achten Sie darauf, das das öffnende Element genauso geschrieben
wird wie das schließende.
4. Attributwerte
Im Gegensatz zu HTML müssen Attribute in "" stehen.
Ein Beispiel:
<artikel id=2> <!– Ungültig –>
<artikel id="2"> <!– Gültig –>
5. Leere Elemente
Es gibt Tags die kein schließenden Tag besitzen, wie z.B.
den <hr> Tag. XML verlangt jedoch immer ein schließenden
Tag. Um dies zu erreichen wird von das Ende des jeweiligen Tag ein
/ gesetzt.
Beispiel:
<linie> <!– Ungültig –>
<linie /> <!– Gültig –>
6. Elementnamen
Mit XML kann man frei eigene Tags erstellen, jedoch müssen
diese Elementnamen einige Regeln befolgen.
Sie dürfen nicht mit der Zeichenkette XML beginnen, nicht komplett
aus Ziffern bestehen, oder mit Ziffern beginnen, und keine Leerzeichen
enthalten.
Einige Beispiele:
<xml-artikel> <!– Ungültig –>
<artikel-xml> <!– Gültig –>
<123artikel> <!– Ungültig –>
<artikel123> <!– Gültig –>
<artikel 12> <!– Ungültig –>
<artikel-12> <!– Gültig –>
7. Groß und Kleinschreibung
Besonders wichtig ist, das XML einen Unterschied zwischen Groß
und Kleinschreibung macht.
<Teaser> ist nicht gleich </teaser>. Es
sind zwei völlig unterschiedliche Elemente.
8. Kommentare
Sie können wie in HTML Kommentare verwenden, und so die XML
Dokumete und DTDs leichter verständlich machen. Ein Kommentar
beginnt mit <!– und endet mit –>. Alles was
innerhalb der Kommentare steht wird nicht interpretiert.
Doch trotz all dieser Regeln ist ein Dokument noch nicht gültig.
Die Gültigkeit besagt, das die verwendeten Elemente definiert
sein müssen. XML bzw. der Parser muss "wissen" was
für Elemente verwendet werden, und welchen Inhalt bzw. welche
Attribute diese Elemente haben können.
Diese Angaben werden in der DTD (Document Type Definition)
gemacht.
Es gibt zwei Typen von DTDs. Eine interne DTD steht im selben XML
Dokument, und wird auch nur auf dieses angewendet. Diese Art der
DTD wird vor allem bei kleinen Dokumenten verwendet. Sollen jedoch
viele Dokumente mit einer DTD bearbeitet werden, dann ist eine Auslagerung
der DTD empfehlenswert.
Zunächst wollen wir eine kleine interne DTD erstellen.
Wir greifen wieder auf unser erstes Beispiel zurück, dieses
mal jedoch mit der DTD:
<?xml version="1.0" encoding="ISO-8859-1"
?>
<!DOCTYPE artikel [
<!ELEMENT artikel (titel, teaser, inhalt)>
<!ELEMENT titel (#PCDATA)>
<!ELEMENT teaser (#PCDATA)>
<!ELEMENT inhalt (#PCDATA)>
]>
<artikel>
<titel>Der Titel</titel>
<teaser>Der Teaser, eine kurze Beschreibung</teaser>
<inhalt>Der Artikelinhalt an sich</inhalt>
</artikel>
Wenn Sie diesen Code so ansehen entdecken Sie die DTD bestimmt sehr
schnell.
Die gesamte DTD wird von <!DOCTYPE artikel [
]> umschlossen. In ihr wird der Name der DTD bestimmt,
in diesem Fall ist es artikel. Als erstes Element muss immer
das Wurzelelement definiert werden. Ein Element wird mit <!ELEMENT
> definiert.
Die Definition erfolgt einem festen Schema:
<!ELEMENT Name (Inhalt)>
Nach ihr kommt der Name des Elementes und ihm untergeordnete Elemente.
Die Definition des Wurzelelementes artikel ist in dieser Zeile der
DTD:
<!ELEMENT artikel (titel, teaser, inhalt)>
Der Inhalt des Wurzelelemetes besteht (nur) aus weiteren Elementen,
diese werden in der Klammer, jeweils mit einem Komma getrennt, angegeben.
Die einzelnen Unterelmente werden so definiert:
<!ELEMENT titel (#PCDATA)>
Das #PCDATA gibt an, das der Inhalt des Elementes jeder beliebige
Text oder Code sein kann, er darf jedoch keine weiteren Unterelemente
enthalten. Das Element titel hat keine untergeordneten Elemente.
<titel><fett>Der Titel</fett></titel>
Ist ungültig, da dem Element Titel nicht das Element <fett>
untergeordnet wurde.
Doch auch von diesem Ergebnis werden Sie enttäuscht sein, da
es immer noch keinen formatierten Artikel darstellt. Das System
ist jetzt jedoch soweit, das eine komplett gültiges und wohlgeformtes
XML Dokument vorhanden ist.
Die formatierende Ausgabe kann nun in Angriff genommen werden!