Homepage-Webhilfe Event-Banner

Grundlagen

XML (eXtensible Markup Language, zu Deutsch erweiterbare Auszeichnungssprache) ist eine Auszeichnungssprache, welche als Basis für viele weitere Sprachen verwendet wird und vom World Wide Web Consortium (kurz W3C) spezifiziert wurde. Die Sprache XML kommt immer dann zum Einsatz, wenn Daten strukturiert in einer Textdatei abgelegt werden sollen.

Ein XML-Code wird in der Regel in einer Datei mit der Endung .xml abgelegt. Der MIME-Typ von XML-Dateien (auch als XML-Dokumente bezeichnet) ist application/xml. Der MIME-Typ text/xml war ebenfalls für XML-Dokumente gedacht, gilt aber in der Zwischenzeit als veraltet (engl. deprecated).

XML-Dateien sind i. d. R. UTF-8-Dateien und können somit alle darstellbare Zeichen (Textzeichen) des Zeichenvorrats von UTF-8 enthalten. Das Speichern von Binärdaten innerhalb einer XML-Datei ist nur nach einer Umkodierung in Textzeichen (z. B. mittels Base64) möglich.


Baum-Illustration Der Aufbau bzw. die Struktur eines XML-Dokuments ist relativ simpel: Es gibt Elemente, Attribute und Texte. Elemente können ineinander beliebig geschachtelt werden. Ein Element kann dabei über keine, ein oder mehrere Attribute verfügen. Letztendlich kann ein Element noch einen Text enthalten.

Um sich diese Struktur leichter vorstellen zu können, möchten wir an dieser Stelle einen Vergleich mit einem Baum ziehen. Ein Baum verfügt ebenfalls über mehrere Äste (dies sind die XML-Elemente). Die Äste können sich dabei beliebig und unterschiedlich verzweigen. Des Weiteren kann jeder Ast Blätter besitzen (dies sind die XML-Attribute). Dabei ist zu beachten, dass natürlich nicht jeder Ast über Blätter verfügen muss und die Anzahl der Blätter sich unterscheiden kann. Schlussendlich können an einem Ast neben den Blättern noch Früchte hängen. Diese Früchte werden „zusammengefasst“ und stellen in unserem XML-Dokument den Text dar.

Eine weitere Gemeinsamkeit, welche sich bei einem XML-Dokument und einem Baum finden lässt, ist, dass beide über exakt einen Ursprung verfügen. Ein Baum besitzt einen Stamm und ein XML-Dokument enthält ein Wurzelelement. Aus diesem entspringen dann weitere Äste bzw. Elemente.

Bildquelle: Vektor-Grafik von Freepik


Elemente werden in XML mit Hilfe von einem Tag-Paar notiert. Tag-Paar bedeutet, dass es einen Start-Tag und einen End-Tag gibt. Sowohl im Start-Tag als auch im End-Tag wird der Name des Elements in spitzen Klammern (< und >) angegeben. Der End-Tag verfügt zwischen dem <-Zeichen und dem Elementnamen noch zusätzlich über einen Schrägstrich.

<kontakte>
    
</kontakte>

Innerhalb eines solchen Elements können nun entweder weitere Elemente, Text oder auch nichts Weiteres mehr angegeben werden. Die Verschachtelung ist dabei beliebig. Es gilt nur eine Regel: Elemente müssen in der umgekehrten Reihenfolge geschlossen werden wie diese geöffnet wurden.

<kontakte>
    <person>
        
    </person>
    <person>
        
        <adresse>
            
        </adresse>
    </person>
    <person>
        
        <adresse>
            
        </adresse>
    </person>
</kontakte>

Wenn Sie einem Element keine weiteren Elemente oder Text unterordnen möchten, so können Sie auch auf ein „leeres“ Element zurückgreifen. Hierfür notieren wir einen Leer-Tag, welcher sich von dem Start-Tag nur so unterscheidet, dass ein Schrägstrich zwischen Elementname und dem >-Zeichen notiert wird. In der Regel wird vor dem Schrägstrich noch ein Leerzeichen notiert. Dies dient jedoch nur der besseren Lesbarkeit.

<absatz />

Als nächstes wollen wir uns die Notation von Attributen anschauen. Ein Attribut besteht immer aus drei Teilen: dem Attributnamen, einem Gleichheitszeichen und dem Attributwert. Der Attributwert muss dabei in doppelten Anführungszeichen angegeben werden.

<person geschlecht="m">
    
</person>

Der erste Teil jedes XML-Dokuments ist i. d. R. eine XML-Deklaration, welche in Form einer Verarbeitungsanweisung notiert wird. Eine Verarbeitungsanweisung beginnt mit dem Spezial-Tag <?xml und endet mit dem Spezial-Tag ?>. Zwischen diesen Tags können nun Attribute angegeben werden: version, encoding und standalone. Das Attribut version muss angegeben werden und besitzt im Regelfall den Wert 1.0. Zwar gibt es bereits eine Version 1.1 der XML-Spezifikation, jedoch ist diese kaum verbreitet, weshalb empfohlen wird, die Version 1.0 zu nutzen, sofern die Funktionen von Version 1.1 nicht erforderlich sind. Mit dem Attribut encoding kann die Zeichenkodierung des Dokuments festgelegt werden. Dieses Attribut ist jedoch nicht erforderlich. Wird es weggelassen, so wird von der UTF-8-Kodierung ausgegangen. Das optionale Attribut standalone gibt an, ob sich eine Dokumenttypdefinition (DTD) im gleichen Dokument (Wert yes) oder in einer externen Datei (Wert no) befindet. Auch wenn die Attribute encoding und standalone optional sind, muss die Reihenfolge (version - encoding - standalone) stets eingehalten werden.

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

So wie in fast jeder anderen Sprache auch, können in XML Kommentare notiert werden. Kommentare enthalten einen beliebigen Text und werden hauptsächlich zu Dokumentationszwecken verwendet. Sie werden von XML-Parsen (also Programmen, die den XML-Code verarbeiten) ignoriert. Die Angabe von XML-Kommentaren erfolgt so wie in HTML auch: <!-- Text -->

<!-- Dieser Inhalt wird nicht interpretiert! -->

Wichtig: Die Namen von Elementen und Attributen sowie die Attributwerte sind frei wählbar. Auch die Struktur ist beliebig. Dies gilt natürlich nur, sofern das XML-Dokument nicht durch eine DTD oder XSD definiert ist.


Prinzipiell sind in XML-Dokumenten alle Zeichen des jeweiligen Zeichensatzes erlaubt. Jedoch gibt es ein paar Sonderzeichen in XML, die nicht direkt verwendet werden dürfen. Die Angabe dieser Zeichen erfolgt dann mittels einer speziellen Notation (siehe Tabelle).

Zeichen Code (Name) Code (Dez.) Code (Hex.)
< &lt; &#60; &#x3C;
> &gt; &#62; &#x3E;
& &amp; &#38; &#x26;
" &quot; &#34; &#x22;
' &apos; &#39; &#x27;

Hierzu ein kurzes Beispiel:

<firma>Max Mustermann GmbH &amp; Co. KG</firma>

Kommen innerhalb eines Textabschnitts mehrere dieser Sonderzeichen vor, so ist es „umständlich“, alle diese Sonderzeichen über den entsprechenden Code anzugeben. Für solche Fälle gibt es sogenannte CDATA-Abschnitte. Innerhalb dieser Abschnitte dürfen alle Zeichen notieret werden, ohne diese speziell umformatieren zu können. Ein solcher CDATA-Abschnitt sieht wie folgt aus:

<![CDATA[
	Dieser Abschnitt darf auch die Zeichen <, >, &, " und ' enthalten.
]]>

Übrigens: Abschnitte, bei denen der Zeicheninhalt direkt angegeben wird, werden als PCDATA-Abschnitte bezeichnet.


Im folgenden XML-Dokument gibt es das Wurzelelement mit dem Namen sprachen. Diesem sind nun Elemente mit dem Namen sprache untergeordnet. Zur Gruppierung wurden die sprache-Elemente den Elementen adressierung, transformation und definition untergeordnet.

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

<sprachen>
    <sprache>XML</sprache>
    <adressierung>
        <sprache>XPath</sprache>
    </adressierung>
    <transformation>
        <sprache>XSLT</sprache>
        <sprache>XSL-FO</sprache>
    </transformation>
    <definition>
        <sprache>DTD</sprache>
        <sprache>XSD</sprache>
    </definition>
</sprachen>
Vorschau

Das folgende XML-Dokument enthält im Vergleich zum obigen Beispiel noch eine Erweiterung: Die sprache-Elemente verfügen über ein Attribut mit dem Namen basierend. Dieses Attribut gibt an, ob es sich bei der Sprache um eine XML basierte Sprache handelt (Wert ja) oder nicht (Wert nein).

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

<sprachen>
    <sprache>XML</sprache>
    <adressierung>
        <sprache basierend="nein">XPath</sprache>
    </adressierung>
    <transformation>
        <sprache basierend="ja">XSLT</sprache>
        <sprache basierend="ja">XSL-FO</sprache>
    </transformation>
    <definition>
        <sprache basierend="nein">DTD</sprache>
        <sprache basierend="ja">XSD</sprache>
    </definition>
</sprachen>
Vorschau

Übrigens: XML-Dokumente können vom Browser direkt angezeigt werden. Der Browser zeigt dabei lediglich den Quellcode an (da keine Style-Informationen verfügbar sind).

Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen OK