Eingabehilfen

Inhalt

XML-Übersicht

XML-Syntax

Wenn Sie das vorige Beispiel verfolgt haben, sollten Sie jetzt eine Vorstellung davon haben, wie ein XML-Dokument aussieht. Die Syntax ist ziemlich leicht verständlich; die Regeln sind klar und sehr einfach. Ein XML-Dokument besteht aus einer XML-Deklaration und einem Stammelement oder Tag mit verschiedenen verschachtelten Elementen. Zunächst werde ich Ihnen kurz die wichtigsten Syntaxregeln vorstellen:

  • Alle XML-Dokumente benötigen ein Stammelement.
  • Alle XML-Elemente benötigen ein schließendes Tag.
  • Bei Tags ist die Groß- und Kleinschreibung zu beachten.
  • Alle XML-Elemente müssen korrekt verschachtelt sein.
  • Attribute müssen im öffnenden Tag enthalten sein und in Anführungszeichen gesetzt werden.

Alle XML-Dokumente müssen mit der XML-Deklaration beginnen. Wenn Sie XML-Dokumente mit Dreamweaver erstellen, wird die XML-Deklaration automatisch eingefügt. Die XML-Deklaration wird von den Anwendungen verwendet, die das XML-Dokument aufrufen, um die Informationen korrekt zu lesen und zu interpretieren. Standardmäßig erstellt Dreamweaver XML-Dokumente, die der Spezifikation 1.0* entsprechen und den Zeichensatz iso-8859-1 (Latin-1/West European) verwenden. Die XML-Deklaration ist kein Element und wird nicht als Teil des XML-Dokuments betrachtet.

Als Nächstes sollte das Dokument ein einzelnes Stammelement enthalten. Im vorigen Beispiel war <department> das Stammelement. Vermutlich hat das Unternehmen aber mehr als eine Abteilung. Können wir also ein zweites Element <department> in das Dokument einfügen, etwa so?

<?xml version="1.0" encoding="iso-8859-1"?>
<department> </department>
<department> </department>

Nein. In diesem Fall müssen Sie ein neues Stammelement definieren: <company>. Das neue Stammelement kann beliebig viele untergeordnete Elemente (also Abteilungen) haben:

<company>
 <department>
  	<employee>
    	<name>John Doe</name>
	<job>Software Analyst</job>
    	<salary>2000</salary>
  	</employee>
  <employee>
    	<name>Jane Fletcher</name>
    	<job>Designer</job>
	<salary>2500</salary>
  </employee>
 </department>
 <department>
   <employee>
   </employee>
 </department>
</company>

Alle anderen untergeordneten Elemente müssen im Stamm-Tag enthalten sein.

Während in HTML einfach-getaggte Elemente wie etwa <hr> oder <br> zulässig sind, müssen in XML alle Elemente über ein schließendes Tag verfügen. Wenn Sie ein schließendes Tag vergessen, gibt Ihr Browser einen Fehler aus, zum Beispiel:

The following tags were not closed: department. Fehler beim Ausführen der Ressource 'http://www.domain.org/company.xml'.

Eine der neuen Funktionen in Dreamweaver 8 ist die standardmäßige Codevervollständigung, die auch mit XML-Dateien funktioniert. Wenn ich Folgendes eingebe:

<company>
   <department>
      <employees>

dann schließt Dreamweaver die Tags ordnungsgemäß, wenn ich </ tippe. Im Beispiel oben fügt Dreamweaver bei der ersten Eingabe von </ Folgendes ein: </item>. Bei der zweiten Eingabe von </ fügt Dreamweaver </item> ein. Bei der nächsten Eingabe von </ fügt Dreamweaver </root> ein. Dreamweaver 8 "weiß", an welcher Stelle Sie sich gerade befinden und schließt das Tag entsprechend. Die Codevervollständigung ist beim Erstellen gut strukturierter XML-Dokumente wirklich hilfreich, besonders wenn Sie nicht gerade ein Code-Experte sind.

Außerdem ist bei Tag-Namen die Groß- und Kleinschreibung zu beachten; <Department> ist zum Beispiel ein ganz anderes Element als <department> oder <DEPARTMENT>. Das öffnende und das schließende Tag eines Elements müssen deshalb genau gleich geschrieben werden. Folgendes ist zum Beispiel ein unzulässiges Tag-Paar in XML:

<JOB>Software Analyst </job>

Wie schon erwähnt stehen XML-Elemente als untergeordnete oder übergeordnete Elemente zueinander in Beziehung. Im Beispiel oben ist <employee> ein untergeordnetes Element von <department>, welches wiederum ein untergeordnetes Element des einzigen Stammelements, <company>, ist. Damit diese Beziehungen erhalten bleiben, müssen die Elemente korrekt verschachtelt werden. Während sich Tags in HTML überschneiden dürfen, wie im folgenden Beispiel, müssen in XML alle Elemente richtig angeordnet werden.

<b>This text is <i> emphasized </b> and italic</i>.

In HTML ist dies zulässig und wird wie folgt im Browser angezeigt:

Abbildung 6. Sich überschneidende Verschachtelungen wie hier sind in HTML zulässig, nicht jedoch in XML

Abbildung 6. Sich überschneidende Verschachtelungen wie hier sind in HTML zulässig, nicht jedoch in XML

In XML werden Inhalte, also die eigentlichen Informationen, durch Elemente und/oder ihre Attribute dargestellt. Ein Element kann einfachen Text, andere Elemente oder beides enthalten. Das folgende Element:

<employee>
    	<name>John Doe</name>
	<job>Software Analyst</job>
    	<salary>2000</salary>
</employee>

kann zum Beispiel auch folgendermaßen geschrieben werden:

<employee>
    	John Doe
	<job>Software Analyst</job>
    	<salary>2000</salary>
</employee>

Das Element employee enthält hier gemischten Inhalt: einfachen Text und andere Elemente.

Leere Elemente sind ebenfalls zulässig. Das nächste Element könnte man so verstehen "es gibt hier ein offenes Stellenangebot, wir suchen noch die richtige Person":

<employee></employee>

Dasselbe Element könnte mithilfe von Attributen neu geschrieben werden:

<employee job="Software Analyst">
	John Doe
	<salary>2000</salary>
</employee>

In XML sind Attribute die Eigenschaften eines Elements. Sie beschreiben dessen Merkmale. Sie können Attributwerte in einfache (' ') oder doppelte (" ") Anführungszeichen setzen. In den vorangegangenen Beispielen haben Sie gesehen, dass dieselben Daten als untergeordnete Elemente oder als Attribute gespeichert werden können. Welche Methode ist also besser? Im Idealfall verwenden Sie Attribute nur, um zusätzliche Informationen zu den Daten anzugeben, wenn Sie also Metadaten benötigen. Beispiel:

<employee id="31">
    	<name>John Doe</name>
	<job>Software Analyst</job>
    	<salary>2000</salary>
</employee>

Die Mitarbeiter-ID ist in diesem Fall für die eigentlichen Daten nicht relevant. Diese ID kann jedoch von der XML-Verarbeitungssoftware verwendet werden, um den jeweiligen Mitarbeiter schneller zu identifizieren. Diese Informationen werden Metadaten genannt, das sind Daten über Daten.

Das Arbeiten mit Attributen anstatt mit Elementen hat aber auch einige Nachteile. Die Gesamtstruktur des XML-Dokuments wird unübersichtlicher und nicht so gut erweiterbar. Attribute können auch mehrere Werte haben und sind schwieriger zu handhaben. Stellen Sie sich vor, die Informationen über einen Mitarbeiter würden folgendermaßen gespeichert:

<employee name="John Doe" job="Software Analyst" salary="2000"></employee>

Damit wird der ganze Sinn eines XML-Dokuments zunichte gemacht – Informationen klar strukturiert und leicht austauschbar zu speichern.

Namenskonventionen – Was darf ich schreiben?

Vielleicht fragen Sie sich jetzt "Na gut, ich kann meine eigenen Tags definieren – darf ich denn ein Element wirklich nennen, wie ich will?" Die Antwort lautet Jein. Sie können beliebige Elementnamen verwenden, da es in XML keine reservierten Wörter gibt, ABER Sie müssen einige wenige Regeln beachten:

  • Namen dürfen alphanumerische Zeichen enthalten, dürfen aber nicht mit einer Ziffer oder einem Satzzeichen anfangen.
  • Namen dürfen keine Leerzeichen enthalten.
  • Namen dürfen nicht mit den Buchstaben xml beginnen, da sie dann leicht mit einer XML-Dokumentdefinition verwechselt werden könnten.
  • Verwenden Sie keinen Doppelpunkt (:) in Elementnamen.

Die Zeichen "." und "-" sind in Elementnamen zwar zulässig, ich empfehle jedoch, sie nicht zu verwenden. Die Anwendung, die die XML-Datei verarbeitet, könnte diese Zeichen als Operatoren interpretieren. Verwenden Sie stattdessen einen Unterstrich (_), wenn Sie einen längeren Namen übersichtlicher schreiben möchten wie im folgenden Beispiel:

<employee>
    	<first_name>John</first_name>
	<last_name>Doe</last_name>
	<job>Software Analyst</job>
    	<salary>2000</salary>
</employee>

Und was ist mit Inhalten? Kann alles als Inhalt eines Elements verwendet werden?

Ja, grundsätzlich ist alles erlaubt. Nicht englische Zeichen werden auch unterstützt, achten Sie aber darauf, den richtigen Zeichensatz festzulegen. Außerdem muss die Clientanwendung, die das XML-Dokument verarbeitet, nicht englische Inhalte unterstützen. Anders als in HTML bleiben Leerstellen im Inhalt erhalten. Das heißt, Sie können mehrere Leerzeichen hintereinander schreiben, ohne dass diese entfernt werden.

Alle Markup- oder Programmiersprachen lassen Kommentare zu. XML auch! Die Syntax ist dieselbe wie in HTML:

<!-- This employee deserves a raise. -->

Weiter oben in diesem Artikel habe ich RSS als Anwendungsbeispiel für XML genannt. Im nächsten Beispiel sehen Sie eine vereinfachte Version des Datenstroms vom Macromedia Developer Center, um die Struktur von XML-Dokumenten und die angewendeten Syntaxregeln zu veranschaulichen.

<?xml version="1.0" encoding="utf-8"?>
<rss version="1.0">
	<channel>
		<title>Macromedia Developer Center RSS Feed June 27, 2005</title>
		<link>http://www.macromedia.com/devnet/</link>
		<description>Macromedia Developer Center is your center for the tutorials, articles, and sample applications you need to master Macromedia products.</description>
	<item>
		<title>Creating a Dynamic Playlist for Progressive Flash Video</title>
		<link>http://www.macromedia.com/devnet/flash/articles/prog_download.html</link>
		<description>Learn how to create an XML-driven playlist for viewing progressive FLV files.</description>
	</item>
	<item>
		<title>Chatting Through IM Gateways in ColdFusion MX 7</title>
		<link>http://www.macromedia.com/devnet/coldfusion/articles/imgateway.html</link>
		<description>Learn the fundamentals of gateway apps as you build a sample chat application that monitors your ColdFusion server status</description>
	</item>
</channel>
</rss>

Beachten Sie, wie RSS listenorientierte Informationen (Artikel) übermittelt. RSS wurde natürlich für den Austausch großer Mengen ähnlicher Elemente oder Artikel entwickelt, der Einfachheit halber habe ich im Beispiel oben nur zwei Artikel aufgeführt. Die Elemente bilden einen "Kanal" von Informationen, der aus einem Titel, einem Hyperlink und einer Beschreibung besteht. Jedes Element repräsentiert einen Artikel, der im Developer Center veröffentlicht wurde, und verfügt über untergeordnete Elemente, nämlich den Titel des Artikels, einen Hyperlink zu diesem Artikel und eine kurze Beschreibung. Zusätzlich können Elemente für den Autor, das Veröffentlichungsdatum und das Thema des Artikels hinzugefügt werden, wie ich in meinen nächsten Artikeln erläutern werde. In diesem Artikel habe ich die Regeln beschrieben, mit denen sich XML-Dokumente gut strukturiert und syntaktisch korrekt erstellen lassen. Wenn Sie einige Erfahrungen mit XML gesammelt haben, sollten Sie sich mit XML-Dokumenttypdefinitionen (DTD) und XML-Schemas beschäftigen, wobei es sich um Regeln für die XML-basierten Sprachen, die Sie erstellen und verwenden, handelt. Eine DTD legt die zulässigen Elemente fest, die in einem XML-Dokument verwendet werden können. Wenn Sie mehr über das Validieren Ihres XML-Dokuments anhand einer DTD erfahren möchten, lesen Sie dieses Tutorial* von W3Schools. Ein XML-Schema ist eine XML-basierte Version einer DTD.

Weitere Schritte

Dieser Artikel ist als Einführung in XML gedacht. Er bietet keine umfassende Beschreibung der Technologie oder eine vollständige Anleitung zum Entwickeln XML-basierter Anwendungen. Ich empfehle Ihnen, Ihre XML-Kenntnisse zu vertiefen und die unterschiedlichen Einsatzmöglichkeiten von XML in der Webentwicklung zu erforschen. Hilfreich sind dabei die folgenden Ressourcen:

Weitere Tutorials

  • Das XML Tutorial* von W3Schools beschreibt XML von den Grundlagen bis zu erweiterten Konzepten wie Namespaces und die Verwendung von XML mit Datenbanken.
  • Das RSS Tutorial for Content Publishers and Webmasters* erläutert, was RSS ist und wie Sie eigene Datenströme erstellen können. Das Tutorial enthält auch eine Vielzahl von Ressourcen und Tools zum Erstellen, Überprüfen und Aggregieren von RSS-Feeds.
  • In diesem kurzen Artikel* zeigt Ihnen Mike Chambers, wie Sie die RSS-Feeds aus dem Developer Center von Macromedia "verbrauchen", d. h. in Ihre Website importieren können.

Wenn Sie bereits mit XML gearbeitet haben, können Sie mit diesem XML Validator* von W3 Schools feststellen, ob Ihre XML-Dokumente gut strukturiert sind.

In meinem nächsten Artikel werde ich Ihnen XSL vorstellen, die Sprache zum Formatieren und Darstellen von XML-Daten. Sie finden ihn hier. Lesen Sie auch meine demnächst erscheinenden Artikel zur Verwendung der neuen XML- und XSL-Funktionen von Dreamweaver 8, zur Verwendung eines RSS-Datenstroms mit Dreamweaver 8 und zur Konfiguration Ihres Servers für serverseitige XSL-Transformationen. Schauen Sie also öfter im Developer Center vorbei! Dreamweaver 8 ist bereits erhältlich. Wenn Sie sich über das Macromedia Affiliate Program von InterAKT Online* anmelden, erhalten Sie auch eine kostenlose Ausgabe von ImpAKT*.