XML
Data Islands
DTD
Namensräume
Schema
XLink
XPath
Links
ASCII Table
ISO-8859-1
Impressum

XML Kompaktwissen

Grundsätzliches

Was ist XML?

  • XML ist eine Abkürzung für EXtensible Markup Language.
  • XML ist eine Syntax zur Erstellung von Auszeichnungssprachen.
  • XML Befehle (Tags) müssen selbst definiert werden.
  • XML verwendet eine Document Type Definition oder XML Schema um Daten zu beschreiben.
  • XML wird vom W3C standardisiert.

Aufgaben von XML

  • XML wurde geschaffen um Daten zu...
    • beschreiben,
    • strukturieren,
    • speichern,
    • transportieren.
  • XML verpackt Informationen in Auszeichnungen (Tags).

Dokumentaufbau

Ein XML Dokument besteht aus

  • Prolog (optional)
  • Body
  • Epilog (optional)

Prolog

  • kündigt den Beginn der Daten an.
  • spezifiziert den verwendeten Zeichensatz.
  • verweist auf oder enthält die DTD.
  • darf Whitespace enthalten.
  • kann PIs enthalten.

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

<!-- Verweis auf eine externe DTD -->
<!DOCTYPE eshop SYSTEM "eshop.dtd">

Alternativ kann die DTD auch direkt im Dokument definiert werden.

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

<!-- Interne DTD -->
<!DOCTYPE eshop [
<!ELEMENT artikel_liste (artikel*)>
  <!ELEMENT artikel (artikel_nr, bezeichnung, beschreibung, preis)>
    <!ELEMENT artikel_nr (#PCDATA)>
    <!ELEMENT bezeichnung (#PCDATA)>
    <!ELEMENT beschreibung (#PCDATA)>
    <!ELEMENT preis (#PCDATA)>
]>
 

Body

  • enthält genau ein Wurzelelement (document entity).
  • Das Wurzelelement kann beliebig viele weitere Elemente beinhalten.
  • kann Whitespace enthalten.
  • kann Kommentare enthalten.

<artikel_liste>
  <artikel>
    <artikel_nr>0815</artikel_nr>
    <bezeichnung>Genesis Nomad</bezeichnung>
    <beschreibung>Tragbare Version des Sega Megadrive mit integriertem Farbdisplay.</beschreibung>
    <preis>250 EUR</preis>
  </artikel>
</artikel_liste>

Epilog

  • wird von Tim Bray, einem der Co-Autoren der XML 1.0 Spezifikation, als Design-Fehler bezeichnet und sollte daher nicht verwendet werden.
  • kann PIs enthalten.
  • Auswertung nicht garantiert, da manche Parser die Verarbeitung nach dem Endtag des Root-Elements beenden.

Syntax

  • XML Dokumente werden in reinem Textformat erstellt.
  • Sie bestehen aus Tags, Whitespace und normalen Zeichendaten.
  • XML ist Case-Sensitive, d.h. Groß- und Kleinschreibung werden peinlich genau unterschieden.

<?xml version="1.0"?>
<note>
    <to>Claus</to>
    <from>Heinz</from>
    <topic>Erinnerung</topic>
    <body>Wir treffen uns am Wochenende.</body>
</note>

Whitespace

  • 0x09 Horizontaler Tabulator (HT)
  • 0x0A Line Feed (LF)
  • 0x0D Carriage Return (CR)
  • 0x20 Leerzeichen (Space)

Reservierte Zeichen und Zeichenreferenz

  • Bestimmte Zeichen sind in XML automatisch reserviert, weil Sie z.B. als Delimiter zum Einsatz kommen.
Entität Zeichen
&amp; &
&lt; <
&gt; >
&apos; '
&quot; "
  • In der DTD können weitere Entitäten definiert werden.
  • Diese werden mit &name; referenziert.
  • Alternativ kann anstelle der Entities der Zeichencode aus dem Zeichensatz ISO-8859-1 verwendet werden.

&#Zeichencode;
&#228;
&#169;
&#xA9;

Tags

<tag>Inhalt</tag>

  • Auszeichnungen (Tags) stehen immer in "spitzen Klammern" (Kleiner- und Größer-Zeichen).
    • Tags treten immer paarweise auf.
    • Das schließende Tag wird durch einen "Slash" ergänzt.
    • Zwischen den Tags befinden sich die Daten.

Tagbezeichnungen

  • dürfen keinen Whitespace enthalten.
  • die mit xml beginnen sind durch das W3C reserviert
  • müssen mit einem Buchstaben, Unterstrich oder Doppelpunkt beginnen.
  • dürfen die folgenden Zeichen enthalten "A"-"Z", "a"-"z", "0"-"9", Unterstrich, Bindestrich, Punkt und Doppelpunkt (reserviert für Namensräume).

Elemente

  • Die Einheit aus Inhalt und den umgebenden Tags heißt "Element".

<ort>Berlin</ort>

  • Auszeichnungen unterscheiden zwischen Groß- und Kleinschreibung.
    Das folgende Beispiel ist daher falsch.

<Ort>Berlin</ort>

  • Auszeichnungen müssen korrekt verschachtelt werden, Überlappungen sind nicht zulässig.
    Das folgende Beispiel ist daher fehlerhaft.

<b><i>Dieser Text ist fett und kursiv</b></i>

<adresse>
    <str>Potsdamer Platz</str>
    <nr>1</nr>
    <ort>Berlin</ort>
    <land>Deutschland</land>
<adresse>

Attribute

<tag attribut="wert">Inhalt</tag>

  • Innerhalb von Start- und Empty-Tags können Attribute enthalten sein.
  • Spezifizieren nähere Eigenschaften eines Tags.
  • Dasselbe Attribut darf innerhalb eines Tags nur einmal verwendet werden.
  • Der Wert eines Attributs wird in doppelten oder einfachen Anführungszeichen angegeben.

<adresse typ="privat">
Hier folgen die Daten...
</adresse>

Leere Elemente

  • Für leere Elemente gibt es zwei verschiedene Schreibweisen.
  • Leere Elementen können Attribute beinhalten.

<empty></empty>
<empty/>
<empty attribute="value" />

XML Deklaration

  • muss als allererstes im XML Dokument stehen.
  • Die XML Deklaration kann klar definierte Deklarationen enthalten (es sind keine Attribute!).
  • Diese sind in einer fest vorgegebenen Reihenfolge anzugeben.

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

  • XML Version als minimale Angabe (obligat).

<?xml version="1.0"?>

  • XML Version mit Angabe der Codierung.
  • Fehlt die Codierung wird 7-Bit ASCII angenommen.
  • UFT-8 und UTF-16 sollten von allen Parsern unterstützt werden.

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

  • gibt Auskunft darüber ob es sich um ein Standalone Dokument (optional) handelt.
    Mögliche Werte sind "yes" oder "no". Bei "yes" befindet sich die DTD im Prolog, externe DTDs sind dann nicht zulässig.

<?xml version="1.0" standalone="no"?>

Kommentare

  • werden mit "<!--" eingeleitet.
  • werden mit "-->" beendet.
  • dürfen keine wiederholten Bindestriche enthalten.
  • dürfen auch Whitespace enthalten.
  • dürfen nicht verschachtelt werden.

<!-- Kommentar -->

<!--
Dies ist ein mehrzeiliger Kommentar der zudem
<tags> enthält.
-->

PIs (Processing Instructions)

  • nicht in der Spezifikation zu XML 1.0 enthalten.
  • werden verwendet um Anwendungsspezifische Anweisungen einzubetten.
  • gehören nicht zum Dokument.

<?target Instruction?>

<?searchengine SELECT * FROM articles?>

Stylesheets

  • XML kann mit CSS formatiert werden. Die Funktionalität ist hier allerdings eingeschränkt.
  • XML kann mit XSL formatiert werden.

<?xml-stylesheet type="text/css" href="mystyle.css"?>

Oder mit XSL:

<?xml-stylesheet type="text/xsl" href="mystyle.xsl" ?>

String Literale

  • verwenden die Delimiter "Text" oder 'Text'.
  • können den jeweils anderen Delimiter enthalten.
  • dürfen den verwendeten Delimiter nicht enthalten.

"String"
'String'
'Er sagte: "XML ist fantastisch!"'

 Wohlgeformtheit

  • Dokument beginnt mit XML Deklaration
  • Elemente bilden einen hierarchischen Baum mit GENAU einem Wurzelelement.
  • Alle Start-Tags haben ein korrespondierendes End-Tag.
  • Groß- und Kleinschreibung der Tags wird beachtet.
  • Alle Elemente sind geschlossen.
  • Alle Elemente sind korrekt verschachtelt.
  • Alle Attribut-Werte sind in Anführungszeichen eingeschlossen.
  • Es werden keine externen Entities ohne eine DTD referenziert.
  • Es sind nur gültige Zeichen enthalten.