XML (Extensible Markup Language)
Voraussetzung für das Arbeiten mit XML ist ein fehlerfreies erzeugen der Datei, damit der Paser die Steuerzeichen richtig interpretieren kann. XML-Dateien werden ausschließlich für strukturierte Text-Daten verwendet und werden hauptsächlich für den Austausch zwischen Programmen und Systemen genutzt. XML legt sogenannte Platzhalter (Tags) fest, die mit Inhalten gefüllt werden. Daten aus einer MySQL Datenbank können z.B. als XML-Datei ausgegeben werden. Ziel ist es, eine einheitliche Datenquelle für verschiedene Anwendungen zu erstellen. Für die Darstellung der Inhalte sorgen Programme (z.B. InDesign) oder Stylesheet-Sprachen (z.B. CSS).
Wohlgeformtheit
Am Beginn steht die XML-Deklaration, die den Bezug zu XML herstellt. Die Tags der Elemente müssen ordnungsgemäß geöffnet und geschlossen werden. Es muss ein Root-Element festgelegt werden und die Attribute der Elemente müssen in Hochkomma stehen. Desweiteren sollten Elemente korrekt ineinander verschachtelt werden.
XML-Prolog
Der Prolog einer XML-Datei befindet sich über dem Root-Verzeichnis mit den Inhalten und enthält mindestens die XML-Version und den Zeichensatz
<?xml version="1.0" encoding="UTF-8"?>
Darüber hinaus kann der Prolog die DTD (Document Type Definition) als externen Verweis oder interne Implementierung enthalten.
Intern:
<!DOCTYPE Rootname
[
ELEMENTE-Tags
]
>
Extern:
<!DOCTYPE Rootname SYSTEM "artikel.dtd">
Document Type Definition
In der DTD werden die Strukturmerkmale und der Aufbau für das Dokument deffiniert, indem festgelegt wird, welche Elementtypen verwendet werden können. Sie gibt vor, wie Elemente ineinander verschachtel werden und welche Attribute den einzelnen Elementen zugewiesen werden. Dies ist wichtig, damit verschiedene Anwenderprogramme auf die Element-Tags zugreifen können. Alle Personen, die an derselben XML-Datei arbeiten, sollten sich an die Definitionen aus der DTD halten, um eine einheitliche Struktur zu erhalten.
Varianten des Elementinhalt (DTD)
- #PC DATA – Erlaubt nur Text als Inhalt
- NY - Deklarierte Elemente dürfen in beliebiger Mischung vorkommen
- EMPTY – Definiert ein leeres Element (z.B. Bild, Grafik)
- + eine spezielle Festlegung des Inhalts in Klammern
- Beispiel:
Aufbau einer XML-Datei
Prolog
<?xml version="1.0" encoding="iso-8859-1" standalone="no" ?>
<!DOCTYPE artikelverzeichnis SYSTEM "artikel.dtd">
<?xml-stylesheet href="style.xls" type="text/xsl"?>
Content
<artikelverzeichnis>
<artikel>
<name>Tisch</name>
<anzahl>20</anzahl>
<kategorie>Möbel</kategorie>
<farbe>schwarz</farbe>
<preis>120 €</preis>
<bild>Bildverknüpfung</bild>
</artikel>
<artikel>
<name>Stuhl</name>
<anzahl>40</anzahl>
<kategorie>Möbel</kategorie>
<farbe>weiss</farbe>
<preis>20 €</preis>
<bild>Bildverknüpfung</bild>
</artikel>
</artikelverzeichnis>
Aufbau einer DTD-Datei
<!ELEMENT artikelverzeichnis (artikel*)>
<!ELEMENT artikel (name, anzahl, kategorie, farbe, preis, bild)>
<!ATTLIST artikel ID CDATA #REQUIRED>
<!ELEMENT name (#PCDATA)>
<!ELEMENT anzahl (#PCDATA)>
<!ELEMENT kategorie (#PCDATA)>
<!ELEMENT farbe ANY> Farbwert oder Grafik
<!ELEMENT preis (#PCDATA)>
<!ELEMENT bild (#EMPTY)>
ATTLIST legt eine Liste mit Attributen fest. CDATA bedeutet, das zugewiesene Werte aus Zeichendaten bestehen müssen. Notwendige Attribute legt man mit #REQUIRED fest.
XML und InDesign
In InDesign kann man z.B. Textfelder mit den Elemente-Containern aus einer importierten XML-Datei verknüpfen. Die Daten lassen sich so durch Änderungen in der XML-Datei aktualisieren. Durch Umbruchoptionen können die XML-Daten formatiert und seitenweise ausgegeben werden.