Umsetzung

Unsere Container sind zwar sehr schön anschaulich, XML-Daten werden aber normalerweise in einfachen Textdateien dargestellt. Deshalb beschreibe ich im Folgenden die Umsetzung von Containern zu Text. Die XML-Konventionen sind denen für HTML sehr ähnlich, Falls Sie HTML beherrschen wird das folgende Ihnen wahrscheinlich trivial erscheinen. Ein Blick auf die Sonderregelungen zeigt uns aber, das XML nicht so einfach und klar ist wie es oft behauptet wird.

Ein Container wird im durch sogenannte Tags dargestellt, und zwar jeweils ein öffnender und ein schliessender Tag, die den Inhalt umfassen. Der schliessende Tag enthält zur Kennzeichnung einen Schrägstrich.

Bezeichner
Inhalt
<Bezeichner>Inhalt</Bezeichner>

Ein Container ohne Inhalt wird anstatt durch ein Paar von Tags nur durch ein einzelnes Tags dargestellt. Dieses enthält hinten einen Schrägstrich , um daran zu erinneren, dass dieses Tag zugleich öffnend und schließend ist.

Bezeichner
<Bezeichner/>

Schachtelung

Geschachtelte Container stellen wir dar, indem wir die öffnenden und schliessenden Tags ebenfalls schachteln:

Adresse
Strasse
Obermainanlage 7
Postleitzahl
60314
Stadt
Frankfurt
	<Adresse>
		<Strasse>Obermainanlage 7</Strasse>
		<Postleitzahl>60314</Postleitzahl>
		<Stadt>Frankfurt</Stadt>
	</Adresse>
	
	

Attribute

Container können neben ihrer Bezeichnung auch weitere Eigenschaften haben, die die Bedeutung ihres Inhalts näher spezifizieren. Diese werden im XML-Slang Attribute genannt.

Bezeichner
Attribut1 Wert1
Attribut2 Wert2
Inhalt
	<Bezeichner Attribut="Wert1" Attribut2="Wert2">Inhalt</Bezeichner>
	
	

Sonderregeln

XML Dateien müssen mit folgender Zeile beginnen:

<?xml version="1.0!?>

Erstaunlicherweise müssen sie aber nicht mit einer entsprechenden Zeile enden.

Es gibt noch weitere Tags, die am Anfang ein Fragezeichen enthalten, die sogenannten "Processings Instruktions". Diese gehören nicht zu den Daten des Dokumentes gehören, sondern enthalten spezielle Anweisungen für Programme, die die XML Datei verarbeiten sollen. Sie sind ebenfalls nicht geschachtelt. Die oft gerühmte Trennung von Daten und Logik ist damit allerdings hinfällig.

Wenn wir als Inhalt eines Containers Text haben, der spitze Klammern enthält, oder sogar weiteren HTML oder XML Code, so müssen wir explizit machen, das dieser Text nicht wie XML Tags zu behandeln ist. Hierzu wurde festgelegt, dass dieser Textteil in <CDATA[[ und ]]> eingeklammert wird. Der Bezeichner CDATA kommt von "Character Data".

Bezeichner
Inhalt mit etwas <b>HTML</b> im Text
	<Bezeichner><CDATA[[Inhalt mit etwas <b>HTML</b> im Text]]></Bezeichner>
	
	

Natürlich muss es dann noch eine Sonderregelung dafür geben, was passiert, der Text wiederum "<CDATA[[..]]>" enthält, dieses Detail lasse ich hier aber aus, um es nicht zu kompliziert zu machen.


home - contact - Developer-Zone