XML:
eXtensible Markup Language
XML (Erweiterbare Markup Sprache) wird zum Verpacken und Ausliefern verschiedenster Daten genutzt. XML ist eine Technologie zur Erstellung von Auszeichnungssprachen. Ein XML Dokument beinhaltet nicht nur seinen Content sondern auch seine Selbstbeschreibung.
Das XHTML ist HTML mit XML Regeln, auch das X in Ajax stammt von XML weil dort die Datenübergabe in XML bevorzugt wird. MS-Office-Formate aber auch RSS-Feeds, Podcasts sind in XML geschrieben.
Zum Lesen und Darstellen braucht man einen Parser, ein Unterprogramm, das den XML-Code durchgeht und verarbeitet. Ein XML-Prozessor verarbeitet die Daten des Parsers weiter. Es gibt in XML jedoch keine Möglichkeit, die Ausgabe direkt festzulegen. Dies wird erst über XSLT erledigt, mit dem aus einem Xml-Dokument Outputs für unterschiedliche Ausgabemedien erzeugt werden (Bildschirm, Druck, Braille). Der IE ab Version 5 versteht sich darauf (Siehe Beispiel weiter unten).
Schreibregeln statt Sprachregeln
XML besteht nicht aus vordefinierten logischen Textauszeichnungs Tags: <H2>(Titel), <li>(Listen), wie HTML und XHTML, sondern aus selbstdefinierten inhaltlichen Tags, die nur etwas über ihren Inhalt aussagen wie: <zutat>...</zutat> in einem Rezept (semantische Auszeichnung). Dazu definiert XML nicht die Sprache selbst sondern nur strikte Regeln für ihren Aufbau; Fehler werden nicht verziehen.
Wohlgeformt (wellformed) bedeutet:
- Es gibt ein Root Element welches alle anderen Elemente als Inhalt umschliesst
- Gross-/Kleinschreibung ist zu beachten:
<kochzeit></kochzeit> - Jeder Tag muss geschlossen werden, also:
<img src="bild.gif"> muss mit </img> beendet werden oder, falls das Element keinen Content hat, in der Kurzschreibweise so aussehen: <img src="bild.gif" />. Ebenso bei <p /> und <br />. - Verschachtelungen dürfen sich nicht überschneiden.
Ein Tag, der innerhalb eines anderen geöffnet wurde, muss auch innerhalb des selben wieder geschlossen werden; falsch wäre also:
<temperatur>220 Grad in der Mitte des Ofens<kochzeit>60 Minuten</temperatur></kochzeit> - Alle Attribut-Werte müssen in Anführungszeichen stehen "..." oder '...'.
- Ein Kommentar schreibt sich so: <!-- .... -->
- Erlaubt ist auch Unicode, das heisst auch Umlaute, selbst japanische Zeichen sind zulässig.
- $, §, %, &, ; sind Sonderzeichen welche in Tags nicht genutzt werden dürfen
- <, >, &; auch im Inhalt nicht nutzen
- Zeichendaten-Abschnitte werden eingeschlossen von
<![CDATA[und]]>. Sie dürfen dort alle Regeln für Wohlgeformtheit verletzen, ohne dass es negative Konsequenzen hat.
Sprach Aufbau
Durch strikte Trennung von Inhalt, Gestaltung und Manipulation bleibt XML vielfältig anwendbar. Die Vorteile eines einzigen, auswechselbaren Stylsheets sind inzwischen bekannt, nun wird auch die Manipulation vollständig ausgelagert. XML ist sowohl auf der Clientseite durch JavaScript DOM ansprechbar wie Serverseitig durch PHP DOM (oder andere Sprachen).
Gültiges xml (valid) bedeutet:
- wohlgeformt
- ev. mit processing instructions
- mit Dokument Type Declaration (DTD)
XML Declaration
Die XML Declaration steht zuoberst in der Datei (1. Zeile):
xml Declaration
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
iso-8859-1 steht für deutsche Umlaute: möglich sind auch UTF-8 oder UTF-16
standalone="yes" sagt: der Parser soll keine Externen DTD suchen
Processing Instruktion
Dann die Processing Instruktion - Stylesheet Anweisung (2. Zeile):
xml-stylesheet
<?xml-stylesheet type="text/css" href="xml_rezepte.css" ?>
Dateien zur Ansicht:
rezepte.xml (ohne Stylesheet wird die Dokumentstruktur dargestellt)
rezepte_styled.xml (mit Stylesheet wird der Inhalt gestylt dargestellt)
rezepte_style.css (das Stylesheet)
DOCTYPE
Selbstdefinition der Meta Daten durch die DOKTYPE Angaben (DTD):
DOCTYPE
Die Selbstbeschreibung legt fest, welche Elemente in welcher Reihenfolge Bestandteile eines XML-Dokuments sind:
<!DOCTYPE Biefer-Rezepte [
<!ELEMENT rezepte EMPTY>
]>
(Details der DTD siehe weiter unten)
Die DOCTYPE Definition wird aber meistens in eine Datei ausgelagert, dort kann sie für mehrere Dokumente genutzt werden:
<!DOCTYPE Biefer-Rezepte SYSTEM "http://lehrling.biefer.com/andere/xml_rezepte.dtd" > (Pfad als Beisp. aber die Datei existiert nicht)
Die bekanntesten DTD sind jene, welche von Millionen Menschen für XHTML benuzt werden:
(PUBLIC-Identifier, ein veröffentlichter und dem Parser bekannter Dokumenttyp)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" >
Zusätzlich lassen sich noch immer eigene Definitionen anfügen!
Syntax Details der DTD
DTD Syntax
Elemente kommen optional oder obligatorisch, einmal oder mehrmals vor.
Die Form der Definition ist:
<!ELEMENT Name Wert>
A?das Element A kommt optional vorA+das Element A kommt 1 oder mehrmals vorA*das Element A kommt 0 oder mehrmals vorA|Bdas Element A oder das Element BA,Bdas Element A gefolgt von Element B(A,B)?ebenso optional#PCDATA?eine beliebige Zeichenkette im character-encoding
Elemente können Attribute haben wie Namen, Id, etc.
Die Form in der Attribute zu Element hinzugefügt werden:
<!ATTLIST zuElement AttributName AttributDefinition>
#REQUIREDerforderlich#IMPLIEDfreiwillig(a|b|c)Aufzählung der Werte enumerateCDATAirgendein AusdruckCDATA #FIXED 'POST'das Attribut ist immer POSTIDder Wert des Attributs ist einmalig im Dokument ( Identifizierung)IDREFIDREFS