HTML und XML anwenden

1 XML

1.1 Aufbau

1.1.1 Der Prolog

Der Prolog ist das Vorwort einer XML Datei um diese als solche identifizieren zu können.

Die Minimalform:

<?xml version="1.0"?>

Die Angabe der Version ist zwingend und optional sind zwei weitere Attribute und zwar encoding und standalone

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

Die Reihenfolge muss eingehalten werden!

Das encoding gibt an welcher Zeichensatz dem Dokument zugrunde liegt. Üblich sind UTF-8, UTF-16 und UTF-32. UTF steht für Unicode Transformation Format

Das Attribut standalone kann nur zwei Werte annehmen. yes und no . Da standalone optional ist, ist der Standardwert no und bedeutet, dass der XML Prozessor nach externen Definition Ausschau halten soll. Dem gegenüber bedeutet der Wert yes , dass alle Informationen in der Datei selbst vorhanden sind. Ist dies der Fall muss dies auch so angegeben werden.

Neben der Angabe der XML-Deklaration können Stylesheet-Angaben (für die Gestaltung), sowie Dokumententyp-Deklarationen folgen.

XML-Aufbau
<?xml-stylesheet type=“text/css“ href=“formate.css”?>
<!DOCTYPE kontaktdaten SYSTEM "kontakte.dtd">

1.1.2 Die XML-Daten

Nach dem Prolog kommen erst die eigentlich Daten in Form eines Baums aus Elementen und Attributen.

Das erste Element kennzeichnet die Wurzel und kann nur einmal vorkommen. Innerhalb der Wurzel kann dann weiter beliebig oft verschachtelt werden.

Genereller Aufbau eines Elements (Tag)

Jedes Element besteht aus den folgenden 3 Teilen. Dem Start-Tag, dem Elementinhalt und dem End-Tag:

<start-tag>Inhalt</end-tag>

Um die Wohlgeformtheit zu gewährleisten muss der Name für das Start-Tag und das End-Tag identisch sein. Außerdem ist auch wie bei HTML für das End-Tag der Schrägstrich vonnöten. Anders als bei HTML muss bei den Tag-Namen auf Groß- und Kleinschreibung geachtet werden. Ansonsten käme es zu einem Parser-Fehler.

<person>
  <vorname>Otto Meier</vorname>
  <Nachname>Sofia Birnbaum</Nachname>
</person>

Regeln für die Wahl der Tag-Namen

Inhalt der Elemente

Spricht man vom Inhalt wird auch oft dazu Container gesagt, da dieser die unterschiedlichsten Daten aufnehmen kann. Er kann einfach nur Text enthalten oder weitere untergeordnete Elemente.

Es sei noch erwähnt, dass immer korrekt verschachtelt werden muss.

1.1.3 Attribute

Innerhalb eines Elements können beliebig viele Attribute, getrennt voneinander durch Leerzeichen, angegeben werden. Genauer gesagt müssen die Attribute in das Start-Tag eingebettet werden:

<element attribut=""></element>

Ein Attributname darf jedoch in einem Start-Tag nur ein einziges Mal vorkommen!

1.1.4 Reservierte Attribute

Die XML Spezifikation gibt 2 Attribute vor die jedes Element aufnehmen kann. Zur Kennzeichnung der Sprache wird das Attribut xml:lang verwendet und wie mit Leeraum im Inhalt umgegangen wird legt das Attribut xml:space fest.

xml:lang

Um die Sprache eines Inhalts zu kennzeichnen wird xml:lang und ein zweistelliger Ländercode nach ISO 639 als Wert angegeben.

<buchtitel xml:lang="de">Die Qual der Wahl</buchtitel>
<buchtitel xml:lang="en">The Agony Of Choice</buchtitel>

xml:space

Damit ist es möglich wie der XML-Parser mit Leerzeichen oder Tabstopps umgeht. Einerseits wird durch preserve der Leerraum geschützt und mit default der Anwendung die Entscheidungsfreiheit gelassen.

Entitäten

Möchte man die Zeichen <, >, ', & oder " innerhalb des Inhalts oder eines Attributwerts nutzen muß man auf folgende vordefinierte Referenzen zurückgreifen.

Referenz Bedeutung
&lt; < (kleiner als Zeichen)
&gt; > (größer als Zeichen)
&amp; & (Ampersand/Und-Zeichen
&apos; ' (einfaches Anführungszeichen)
&quot; " (doppeltes Anführungszeichen)

Natürlich ist es auch möglich eigene Referenzen zu definieren. Dies nimmt man in der Dokumenttyp-Definition vor.

Auch können Zeichen in dezimaler bzw. hexadezimaler Form angegeben werden.

CDATA

Möchte man den XML-Parser daran hindern ein bestimmten Inhalt nach XML-Markup-Zeichen zu durchsuchen kann dies wie folgt erreicht werden:

<[CDATA[
Hier könnte Ihre Werbung stehen :o)
]]>

Nützlich ist dies beispielsweise wenn ein Elementinhalt ein weiteres XML-Dokument enthält. Ohne CDATA würde der XML-Parser versuchen die Tags zu interpretieren und es könnte zu Problemen kommen.

Kommentare - gern gesehen oder doch nicht?

Wie in HTML wird auch in XML mit folgender Zeichenfolge ein Kommentar eingeleitet. Start-Tag <!-- Ende-Tag -->

1.2 Dokumenttypen

Der große Vorteil von XML gegenüber HTML ist, dass man nicht an die fest definierten Tag-Namen gebunden ist. In XML ist es möglich eigene Tag-Namen mit eigener Struktur zu erstellen. Dieser Bauplan wird dabei in einer dafür vorgesehenen Datei abgelegt. Die XML Datei die diesen Bauplan dann implementieren möchte, muss darauf schließlich verweisen.

1.2.1 Dokumenttyp-Definition (DTD)