Sql-und-Xml - Home

Xml lernen

Minimale Regeln wohlgeformter XML-Dokumente

  • Jedes Xml-Dokument besteht aus Inhalt (Content) und Metainformationen (Markup, der vollständigen Selbstbeschreibung). Im Unterschied zu Html muß jede Meta-Information selbst definiert werden, die Syntaxregeln sind strikt.
  • Xml kennt damit selbst nur sehr wenige Schlüsselwörter. Es handelt sich um eine Meta-Sprache, mit der man sich seine eigene Sprache definiert, wobei alle nach diesem Muster definierten Sprachen gewisse gemeinsame Prinzipien erfüllen müssen. Das System dieser Prinzipien ist das Regelwerk, welches hier vorgestellt wird.
  • Zeichen mit besonderer Bedeutung: <, >, & gefolgt von einem Semikolon. < und > begrenzen Markup-Elemente, dabei kann es sich um die Xml-Declaration, processing instructions, eine document type definition oder um Elemente handeln. Externe oder interne Entities beginnen mit &. Beim Markup ist Groß/Kleinschreibung zu beachten.
  • Elemente sind die wichtigsten Markup-Bausteine. Ein Element besteht aus einem öffnendem und einem schließenden Element-Tag. Eventueller Content, also Text und Unterelemente, befindet sich zwischen Start- und End-Tag.
  • Ein öffnendes Tag ist von der Form <Elementname>, ein schließendes Tag von der Form </Elementname>. Falls das Element keinen Content hat, kann es in der speziellen Form <Elementname /> notiert werden.
  • Ein Elementname darf nicht mit einer Zahl beginnen und gewisse Sonderzeichen ($, §, %, &, ;) nicht enthalten. Es sind jedoch alle Buchstaben, Zahlen ab der zweiten Stelle, der Unterstrich, Minus und der Punkt zulässig. Ferner sind Zeichen ab Ascii 128 einschließlich höherer Unicode-Zeichen erlaubt, sofern die Datei direkt als Unicode gespeichert und die Zeichen ebenfalls direkt, also nicht als Entities, eingegeben werden. Der Doppelpunkt ist ebenfalls in Namen erlaubt, wird inzwischen jedoch zur Trennung zwischen dem einem Namespace zugeordneten Präfix und dem Elementnamen verwendet. Dies stellt einen wesentlichen Unterschied zu Html dar, dort sind alle Zeichen in Elementnamen aus dem Ascii-Bereich.
  • Beispiel für Elemente: <mein-erstes-Xml-Element />, <Rasenmäher/>, <亹/>. Falls das dritte Element in der Html-Version nicht lesbar dargestellt wird: XML erfordert die vollständige Unicode-Unterstützung, so daß die Beschränkung von Html auf den westeuropäisch-englischen Sprachraum aufgehoben ist.
  • Jedex Xml-Dokument muß genau ein Wurzelelement enthalten, auch root-Element genannt. Die Elemente müssen korrekt geschachtelt sein: Ein Element darf erst dann geschlossen werden, falls alle im Content dieses Elements liegenden Elemente schon geschlossen sind, das zuletzt geöffnete Element muß als erstes geschlossen werden.
  • Falls ein Element ein Attribut verwendet, muß ein Wert (eventuell leer) angegeben und in " oder ' eingeschlossen werden. Einfache und doppelte Anführungszeichen sind nebeneinander verwendbar. Wird ein Attributwert mit einem der beiden Werte geöffnet, muß er mit demselben Wert geschlossen werden.

Beispiele für vollständige Xml-Dokumente (ein Punkt = ein Xml-Dokument)

  • <x/>
  • <empty-element-with-no-content-or-attributes-but-with-a-number-99557711/>
  • <personen>
    	<person age='50' parent="O'Neill">
    		<name>Maier</name>
    		<vorname>Horst</vorname>
    	</person>
    	<person age="30" parent=''>
    		<name>Schmidt</name>
    		<vorname>Willi</vorname>
    	</person>
    </personen>
    Das obige Beispiel kann auch ohne Tabulatoren und Zeilenumbrüche notiert werden. Diese wurden lediglich um der besseren Darstellung willen hinzugefügt.
  • <亹亸亷-35-München>
    	Unicode wird umfangreich unterstützt - ç,
    	ñ, å
    	können in einem Dokument verwendet werden,
    	ohne daß eine Maskierung notwendig ist.
    </亹亸亷-35-München>
  • <buch titel='Xml im Alltag'
    	autor='&#x00A9; Max Mustermann &amp; Monika Musterfrau'
    	empfohlen-ab='&gt; 16' />
    Entities sind in Attributwerten zulässig, die Xml-typischen Sonderzeichen werden direkt maskiert.
  • <h:html xmlns:h='http://www.w3.org/1999/xhtml'>
    	<h:head>
    		<h:title>Unterschiede zwischen Xml und Html</h:title>
    	</h:head>
    	<h:body>
    		Viele Informationen zum Vergleich von Html und Xml ...
    	</h:body>
    </h:html>
    Dieses Xml-Dokument deklariert ein Namespace-Prefix h und verwendet es innerhalb seines Gültigkeitsbereiches für alle Unterelemente.

Beispiele für ungültige Xml-Dokumente

  • <1/>
    Ein Elementname darf nicht mit einer Zahl beginnen
  • <root>Info</root>
    <root>Info</root>
    Es darf nur ein Wurzelelement geben, hier gibt es zwei. Es handelt sich jedoch um ein gültiges XML-Fragment. Setzt man dieses Fragment als Content eines Elements ein, so erhält man ein gültiges Xml-Dokument.
  • <personen>
    	<person age='50'>
    		<name>Maier</name>
    		<vorname>Horst</vorname>
    	<person age="30">
    		<name>Schmidt</name>
    		<vorname>Willi</vorname>
    </personen>
    Die Elemente <person> wurden nicht geschlossen. Browser sind bei Html-Elementen (li, td) weitaus toleranter.
  • <info author=Mustermann @type='individuum' checked ></info>
    Der Wert des Attributes author wurde nicht in Anführungszeichen gesetzt. Ein Attribut darf nicht mit @ beginnen, dies ist in XSLT ein Sonderzeichen. Jedes Attribut muß einen Wert erhalten. Schreiben Sie stattdessen checked='checked'.
    <info author='Mustermann" />
    Wenn das Attribut mit einfachen Anführungszeichen begonnen wurde, muß es auch durch einfache Anführungszeichen beendet werden.
    <div value='This is a <b>Text</b>' />
    Attribut-Werte dürfen nicht die Markup-Zeichen < und > enthalten. Entities (&lt; bzw. &gt;) sind jedoch zulässig.
Kopieren Sie sich die Abschnitte in einen einfachen Texteditor, etwa Notepad, speichern Sie dies mit der Endung .xml ab und öffnen Sie die Datei in Ihrem Browser. Verwenden Sie einen Browser, der Textdokumente auf Xml-Wohlgeformtheit überprüft, so wird Ihnen dieser jeden Fehler anzeigen.

© 2003-2016 Jürgen Auer, Berlin.