XML – Daten strukturieren statt gestalten
Vom Prolog bis zur DTD: erst verstehen, dann selbst schreiben. Der eingebaute Prüfer liest deinen Code Zeichen für Zeichen und sagt dir auf Deutsch, was noch nicht stimmt.
Wozu XML? Der Unterschied zu HTML, Einsatzgebiete in der Medienproduktion, Vor- und Nachteile und das Prinzip „ein Datenbestand – viele Medien".
Tippe im Beispielcode auf Prolog, Wurzelelement, Start-Tag, Attribut oder Kommentar – und sieh sofort, wie der Baum dazu aussieht.
Die Regeln der Wohlgeformtheit, ein Prüfer für Tag-Namen zum Ausprobieren und ein Umwandler für &, < und Co.
Der freie Editor: schreibe eigenes XML, lass es live prüfen und sieh die Baumstruktur mitwachsen. Mit Vorlagen und Einfüge-Tasten fürs Handy.
Zehn Aufgaben im Prüfungsstil: aus einem Datensatz eine wohlgeformte XML-Struktur bauen. Der Prüfer kontrolliert Regeln und Inhalt.
Fehlerhafter Quellcode, so wie er in der Prüfung drankommt. Finde und repariere jeden Fehler direkt im Editor.
Wohlgeformt oder valide? DTD lesen, Kardinalitäten ? * + ausprobieren und eigene DTDs schreiben – mit echtem Validator.
Codezeilen sind durcheinandergeraten. Tippe sie in der richtigen Reihenfolge an, bis der Baum wieder stimmt.
Stimmt die Aussage über XML oder nicht? 60 Sekunden, Serienbonus – und bei jedem Fehler die passende Erklärung.
Strukturansicht, Tags-Bedienfeld und die Zuordnung „Tags zu Formaten". Dazu der Visitenkarten-Workflow als Sortierspiel.
Endlose Fragerunde aus allen Bereichen – Prolog, Regeln, Attribute, Wohlgeformtheit, Validität, DTD und InDesign. Mit Serienzähler.
Was ist XML?
XML steht für eXtensible Markup Language – erweiterbare Auszeichnungssprache. XML strukturiert, speichert und transportiert Informationen. Die Daten liegen als reine Textdatei vor und sind dadurch sowohl für Menschen als auch für Maschinen lesbar. XML ist soft- und hardwareunabhängig und lässt sich in jedem beliebigen Texteditor schreiben.
XML ersetzt HTML nicht
HTML ist zur Darstellung von Daten gedacht, XML zum Transport und zur Ablage. XML selbst sendet, empfängt und zeigt nichts an – man schreibt lediglich Informationen zwischen Tags, die diese Daten näher beschreiben. Für den eigentlichen Transport sorgen Protokolle und Programme, für die Darstellung ein Stylesheet oder ein Layoutprogramm. XML ist also kein Ersatz für HTML oder InDesign, sondern der Zusatz, der die Daten liefert, die diese dann darstellen.
<p>, <h1>)<preis>)Einsatzgebiete in der Medienproduktion
Viele Office- und Adobe-Formate setzen im Hintergrund auf XML – etwa docx, xlsx und pptx, das
InDesign-Austauschformat IDML oder die XMP-Metadaten in Bilddateien. XML dient zum plattform- und
softwareunabhängigen Austausch von Daten:
• Export einer Excel-Datenbank zum Import in SAP
• Kundendatenbank für Visitenkarten aus Excel zum Import in ein InDesign-Layout
• Katalog- und Preislistenproduktion aus einer Datenbank
• Informationsaustausch zwischen Servern
• Beschreibung von SVG-Grafiken (SVG ist XML!)
• JDF – die Jobtickets in der Druckindustrie sind XML
Vorteile
• Nur ein Datenbestand, viele Präsentationsmöglichkeiten
• Plattform- und softwareunabhängig
• Flexibel für nahezu jedes Einsatzgebiet
• Große Verbreitung, einfache Grundsyntax
• Trennung von Form und Inhalt
• Daten bleiben aktuell – Änderung nur an einer Stelle
Nachteile
• Hoher Komplexitätsgrad der Gesamtarchitektur (DTD bzw. Schema, XSLT, Namensräume)
• Zeitaufwändige Handhabung
• Erstmaliger Aufbau der Struktur kostet Zeit und Geld – die Einsparung kommt erst bei Mehrfachnutzung
• Alternative: JSON (JavaScript Object Notation), schlanker und in Webanwendungen verbreiteter
Cross Media Publishing – ein Datenbestand, viele Medien
Beim Cross Media Publishing entstehen Publikationen, die zu unterschiedlichen Medien gehören (Print, Online, Mobile), die aber alle auf einer einheitlichen Datenbasis beruhen. Digitalmedien und Printmedien können dieselben XML-Dateien verarbeiten: Der Webeditor und das Layoutprogramm greifen auf die strukturierten Text- und Bildinhalte eines Content-Management-Systems zu. Die Formatierung wird für Digitalmedien mit XSLT durchgeführt, für Printmedien wird aus XML über einen Konverter (z. B. InDesign) ein PDF-Dokument erzeugt.
Merksatz für die Prüfung
„XML beschreibt was ein Inhalt ist – nicht wie er aussieht."
<preis>30,00</preis> sagt: Das ist ein Preis. Ob er rot, fett oder 8 pt groß gesetzt wird,
entscheidet erst das Layoutprogramm oder das Stylesheet.
Tippe auf die Bauteile
Unten steht ein vollständiges XML-Dokument. Tippe auf eine farbige Stelle im Code – darunter erscheint, wie dieses Bauteil heißt und wofür es da ist.
Noch nichts ausgewählt
Tippe oben auf einen farbigen Teil des Codes.
Baumstruktur
Ein XML-Dokument ist wie ein Baum aufgebaut. Das Wurzelelement (root element) umschließt alle weiteren Tags – es darf nur genau einmal vorkommen. Die darin liegenden Elemente sind Kindelemente (child elements) und können immer weiter verästelt werden. Geschlossen wird von innen nach außen: die kleinere Schachtel wird in die nächstgrößere verpackt.
Der Prolog – die XML-Deklaration
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
Prolog-Tag – wird durch <? eingeleitet und durch ?> beendet und
muss kleingeschrieben werden. Er steht ganz am Anfang der Datei.
version="1.0" – legt die XML-Version fest. Version 1.1 ist nicht rückwärtskompatibel und wird
normalerweise nicht verwendet.
encoding="UTF-8" – die Zeichencodierung. UTF steht für „Unicode Transformation Format",
die Zahl gibt die Größe der kleinsten Code-Einheit an (8 Bit). Ein Zeichen belegt in UTF-8 je nach Bedarf
ein bis vier Byte – deshalb kann UTF-8 den gesamten Unicode-Zeichenvorrat abbilden und nicht etwa nur 256 Zeichen.
Für den reibungslosen Austausch nimmt man praktisch immer Unicode.
standalone="yes" – alle Dokumentinformationen sind in der Datei enthalten. Werden Informationen
von außerhalb geholt (z. B. eine externe DTD), steht hier "no". Da „no" die Grundeinstellung ist,
ist das Attribut optional und kann auch weggelassen werden.
Das erste Tag
Jedes Element wird durch ein Start-Tag und ein End-Tag eingerahmt, die Information steht dazwischen.
Das End-Tag wird immer durch einen Schrägstrich / eingeleitet und muss zeichengenau gleich
geschrieben werden wie das Start-Tag. Hat ein Tag keinen Elementinhalt, kann es als <Name/>
geschrieben werden.
Attribute
Tags können mit Attributen versehen werden, durch die sich die Funktion des Tags weiter spezialisieren lässt. Attributwerte müssen in Anführungszeichen stehen.
Dieselbe Information ginge auch als Element: <geschlecht>weiblich</geschlecht>.
Besonders sinnvoll sind Attribute für IDs – eine laufende Nummer, die frei von Redundanzen
bleiben muss, damit man in einer großen Datenbank genau einen Datensatz ansprechen kann:
<person id="0001">. Ein Element darf ein Attribut allerdings nicht mehrfach
enthalten.
Wohlgeformtheit (well-formed)
Ein XML-Dokument ist wohlgeformt, wenn es alle Syntaxregeln von XML einhält. Diese Regeln solltest du auswendig können – sie werden in der Abschlussprüfung regelmäßig abgefragt.
<logo/> geschrieben.<vorname> und <Vorname> sind verschiedene Elemente.=.< und &.Zwei Feinheiten, die gerne verwechselt werden
• Die XML-Deklaration ist nicht Pflicht. Ein Dokument ohne <?xml … ?> ist trotzdem
wohlgeformt. Weil sie Version und Zeichencodierung festhält, gehört sie in der Praxis und in der Prüfung aber dazu.
• Zwingend maskiert werden müssen nur < und &. Das > maskiert man
aus Konvention mit, " und ' braucht man nur innerhalb von Attributwerten,
die mit genau diesem Zeichen begrenzt sind.
Ist dieser Name erlaubt?
Tippe einen Elementnamen ein (ohne spitze Klammern). Der Prüfer sagt dir sofort, ob er zulässig ist.
Warum überhaupt maskieren?
Zeichen wie < und & haben in XML eine besondere Funktion – der Parser
würde sie als Beginn eines Tags bzw. einer Entität deuten. Damit sie als normaler Text ankommen, werden sie
durch Entitäten ersetzt. Diese fünf sind in XML vordefiniert. Streng nötig sind im
Elementinhalt nur < und & – die übrigen drei setzt man aus Konvention
mit, und " bzw. ' braucht man dort, wo ein Attributwert genau mit
diesem Anführungszeichen begrenzt ist.
<<>>&&''""Zehn Tag-Namen, zehn Entscheidungen
Für jeden Namen entscheidest du: ist er als XML-Elementname erlaubt oder nicht? Bei einem Fehler erklärt dir der Trainer, welche Regel verletzt wurde.
Dein Editor mit Live-Prüfung
Schreib los – bei jedem Tastendruck liest der Prüfer deinen Code und meldet, was noch nicht stimmt. Darunter wächst die Baumstruktur mit. Auf dem Handy helfen dir die Tasten über dem Editor beim Eingeben der spitzen Klammern.
Aus Daten wird Struktur
Zehn Aufgaben im Stil der Abschlussprüfung: Du bekommst einen Datensatz und baust daraus eine wohlgeformte XML-Struktur. Wie du deine Tags benennst, ist dir überlassen – geprüft werden die XML-Regeln und ob alle Informationen sauber in eigenen Elementen stecken.
Reparieren statt neu schreiben
Sieben fehlerhafte Quellcodes – genau die Fehlerarten, die in der Abschlussprüfung vorkommen. Deine Aufgabe: den Code im Editor so korrigieren, dass er wohlgeformt ist und alle Inhalte erhalten bleiben. Der Prüfer zeigt dir bei jedem Zwischenstand, was noch offen ist.
Wohlgeformt ist nicht gleich valide
Wohlgeformt ist ein XML-Dokument, wenn es die Syntaxregeln von XML korrekt einhält.
Valide (gültig) ist es zusätzlich dann, wenn es
• eine Dokumenttypdefinition besitzt – als externe DTD-Datei, als interne DTD im Dokument
oder in Form eines XML-Schemas (XSD)
• und sich an die dort hinterlegten Anweisungen hält.
Merke: Jedes valide Dokument ist wohlgeformt – aber nicht jedes wohlgeformte ist valide.
Genau genommen definiert der XML-Standard „valide" nur über die DTD; die Prüfung
gegen ein XML-Schema ist eine eigene Spezifikation. In der Abschlussprüfung werden beide gleichrangig genannt.
Was steht in einer DTD?
Die Dokumenttypdefinition besteht aus Elementtypen, Attributen von Elementen, Entitäten und
Notationen. Konkret heißt das: In einer DTD werden die Reihenfolge, die Verschachtelung
und die Art des Inhalts der Elemente festgelegt – und über <!ATTLIST> außerdem,
welche Attribute ein Element haben darf, von welchem Typ sie sind und ob sie Pflicht sind.
Zusammen ergibt das die Struktur des Dokuments. Eine DTD wird gebraucht, wenn XML-Daten nicht nur wohlgeformt,
sondern auch valide sein sollen. Wird nur eine wohlgeformte Datei gewünscht, kann auf sie verzichtet werden.
Zwei Dateien: die XML-Datei
und die separate .dtd-Datei. Der DOCTYPE-Name
bezieht sich immer auf das Wurzelelement.
Alles in einer Datei – die DTD-Anweisungen stehen in eckigen Klammern direkt im DOCTYPE.
Die Bausteine einer DTD
<!ELEMENT name (inhalt)> – Schlüsselwörter wie ELEMENT werden GROSS
geschrieben, die Elementnamen frei gewählt. Sie müssen in den XML-Daten aber genauso geschrieben werden wie in der DTD.
#PCDATA – parseable character data, also beliebiger Text
EMPTY – leeres Element ohne Inhalt
ANY – beliebiger Inhalt
, – Sequenz: alle Unterelemente in dieser Reihenfolge
| – Auswahl: entweder oder
Innerhalb einer Klammer dürfen , und | nicht gemischt werden. Wer beides
braucht, klammert: <!ELEMENT test1 ((sub_test2|sub_test3), sub_test1)>
Wie oft darf ein Element vorkommen?
Ohne Zusatzzeichen muss ein Element genau einmal vorkommen. Wähle unten ein Zeichen und sieh, welche XML-Varianten die DTD dann noch akzeptiert.
Sechs Aufgaben mit echtem Validator
Mal ist die DTD vorgegeben und du schreibst die passende XML-Datei, mal ist es umgekehrt. Der eingebaute Validator prüft anschließend wirklich, ob deine Datei zur DTD passt – Reihenfolge, Verschachtelung und Häufigkeit inklusive.
Bring den Code in Ordnung
Die Zeilen eines XML-Dokuments sind durcheinandergeraten. Tippe sie in der richtigen Reihenfolge an – von der Deklaration über das Wurzelelement bis zum letzten End-Tag. Ein Fehltipp kostet dich nichts außer einem Versuch, aber am Ende zählt die saubere Verschachtelung.
60 Sekunden, so viele wie möglich
Es erscheint eine Aussage über XML – stimmt sie oder stimmt sie nicht? Jede richtige Antwort bringt Punkte, eine Serie bringt mehr. Bei einem Fehler fällt die Serie auf null, dafür bekommst du die Erklärung.
Zwei Werkzeuge muss man kennen
InDesign stellt für die Arbeit mit XML die Strukturansicht und das Bedienfeld Tags zur Verfügung. Damit lassen sich XML-Daten importieren, im Layout platzieren und wieder exportieren.
Strukturansicht
Ansicht → Struktur → Struktur einblenden
Zeigt alle Elemente des Dokuments mit ihrer Hierarchie an. Zu jedem Element sieht man das Element-Tag,
ein Symbol für den Inhaltstyp und die ersten Wörter des Textes (den Textausschnitt).
Elemente lassen sich hier anzeigen, bearbeiten, verwalten und direkt auf eine Seite ziehen. Auch die
Hierarchie kann angepasst und es können Elemente, Attribute, Kommentare und Verarbeitungsanweisungen
hinzugefügt werden.
Tags-Bedienfeld
Fenster → Hilfsprogramme → Tags
Hier werden die einzelnen Tags für die Elemente angezeigt. Tags können importiert, exportiert, hinzugefügt,
gelöscht und umbenannt werden. Über das Bedienfeld werden Tags auf Textrahmen angewendet – der Rahmen
erhält dann die Farbe des Tags, sodass man die Zuordnung im Layout sofort sieht.
Der entscheidende Schritt: Tags zu Formaten zuordnen
XML-Inhalt trägt keine Information über sein Aussehen – Inhalt und Form sind getrennt. Damit jedes Tag
trotzdem Schriftart und -größe bekommt, muss es über das Menü des Tags-Bedienfelds einem Absatzformat
zugeordnet werden (möglich sind auch Zeichen-, Tabellen- und Zellenformate). Diese Zuordnung muss unbedingt in beide Richtungen erstellt werden:
„Tags zu Formaten zuordnen …" und „Formate zu Tags zuordnen …".
Praxistipp: Sind Absatzformate und Tagnamen identisch benannt, lassen sich die Formate und Tags sehr leicht
nach Namen zuordnen und es entstehen keine Zuordnungsfehler. Das muss aber schon bei der Dateianlage bedacht werden.
Zwei Wege zum fertigen Layout
Weg 1 – Die XML-Daten werden als fertige XML-Datei importiert, die vollständig in einem
XML-Editor aufbereitet wurde. Dateistruktur und Dateiinhalt sind dabei völlig unabhängig von InDesign.
Das InDesign-Dokument muss die entsprechenden Formate und Tags dafür aufweisen. Typisch, wenn fertige
XML-Dateien vom Kunden vorliegen.
Weg 2 – Die XML-Daten werden aus einer aufbereiteten InDesign-Musterdatei exportiert,
mit den Inhalten gefüllt und zurückimportiert. Die InDesign-Datei übernimmt die aktualisierten Daten und
kann sie korrekt formatiert weiterverarbeiten.
Sieben Schritte, eine richtige Reihenfolge
Es sollen Visitenkarten mit vier Nutzen entstehen, in die vier verschiedene Adressen aus einer XML-Datei importiert werden. Tippe die Arbeitsschritte in der richtigen Reihenfolge an.
Zwei Stolperfallen aus der Praxis
• Für jede Information der Visitenkarte braucht es einen eigenen Textrahmen –
nur so lässt sich der Rahmen einem Tag zuordnen und der Inhalt landet an der richtigen Stelle.
• Die Textrahmen dürfen nicht verkettet sein, sonst läuft der importierte Text durch.
Fragen aus allen Bereichen
Prolog, Tag-Regeln, Attribute, Sonderzeichen, Wohlgeformtheit, Validität, DTD und InDesign – in zufälliger Reihenfolge, endlos.