Datenmodellierung - Format XML
XML (Extensible Markup Language) ist eine Metasprache zur Auszeichnung von Texten nach Definitionen verschiedener Dokumenttypen: XML liefert also Regeln, die beim Erzeugen von XML Instanzen angewendet werden müssen, damit ein standardisiertes Dokument als Datenbasis entsteht, das anschließend mit Softwarewerkzeugen weiter verarbeitet werden kann.
Sind diese Regeln vollständig eingehalten, spricht man von „Well-formedness“ (Wohlgeformtheit) einer XML Instanz. Diese muss gewährleistet sein, damit XML Prozessoren/Parser/Browser die XML-Dateien lesen können.
Es wird auf der Basis dieser Regeln mit einem einfachen Texteditor oder spezifischen XML Editoren verschachteltes deskriptives Markup (= semantische Tags) erzeugt, das eine Baumstruktur aufweist und einem bestimmten, in dem Dokumenttyp festgeschriebenen Konzept folgt. Mit welchen Elementen und auf welche Art und Weise die Verschachtelungen erfolgen sollen, wird für jeden Dokumenttypen in Form von Regeln in der Dokumenttyp-Definition festgelegt und unabhängig von den zu codierenden Daten in einer eigenen Datei definiert. Diese wird als Dokumenttyp-Definition (engl. document type definition, Abkürzung DTD) bezeichnet.
XML-fähige Software liest diese DTDs aus und beurteilen die Daten der darauf bezugnehmenden Instanz. Dabei kann die interpretierende Software feststellen, ob innerhalb der XML-Daten ungültige Notationen vorkommen. Das Verfahren zur Überprüfung einer XML-Datei nach den Regeln ihrer zugehörigen DTD, nennt man Validierung (von engl. valid = gültig).
Folgendes MUSS Beachtung finden:
- XML-Deklaration:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
- Root-Element Alle Elemente sind Child-Elements des Root-Elementes Elemente bestehen grundsätzlich aus:
- Start-Tag
- Inhalt
- End-Tag
und dürfen nicht überlappen.
- Elementnamen können grundsätzlich frei gewählt werden, müssen aber mit einem Buchstaben oder einem Unterstrich beginnen und dürfen kein Leerzeichen oder Doppelpunkt enthalten. Ebenfalls untersagt sind Namen, die mit xml oder XML beginnen.
- ACHTUNG: XML ist case-sensitive!
- Elementen können Attribute zugewiesen werden, für die gilt:
- pro Element ist der Attributname eindeutig.
- Regeln für Attributname siehe Elementnamen.
- Kommentare (Bereiche, die nicht interpretiert werden) stehen entweder zwischen Elementen oder umfassen Start- und End-Tag (Auskommentieren):
<!– Kommentar dazu –> … <!– <Elementname >Inhalt</Elementname > –>
XML Instanz
Das Erzeugen von XML Instanzen im Kontext des Seminars erfolgt immer mit dem Ziel, dass eine Ressource geschaffen werden soll, die einen Teil unserer Wirklichkeit so beschreibt. Die Instanz dient dann als Datenquelle für Web-Informationssysteme. Dazu wird zunächst ein Konzept erarbeitet, dass den Realitätsausschnitt möglichst vollständig als hierarchische Baumstruktur beschreibt. Basierend auf diesem Baum kann nun eine XML Instanz geschrieben werden, die zusätzliche zu den konzeptuellen Beschreibungen des Baumes konkrete Werte enthält.
Originalobjekte einer Sammlung:
Beispiel:
<bildersammlung>
<name>Neue schöne Bilder</name>
<lokalisation url="http://www.bilder.de/">
<bild>
<titel>Mona Lisa vor dem Eiffelturm</titel>
<url>http://www.woauchimmer.de</url>
<person>Mona Lisa</person>
<bauwerk>Eiffelturm</bauwerk >
</bild>
<bild>
<titel>Ritter, Burgen, Adel</titel>
<url>http://www.beispielseite.de</url>
<person>byzantinische Kaiserin</person>
<person>Ritter des 13.Jhd</person>
<person>fränkischer Edelmann</person>
<bauwerk>Wasserburg</bauwerk>
</bild>
</bildersammlung>
Die Datei wird unter einem beliebigen Namen mit dem Suffix .xml abgespeichert.
Damit Informationssysteme mit diesen Daten arbeiten können muss ein Prolog erzeugt werden:
- Jede XML Datei begint mit einer „Processing Instruction“ (PI), die durch die Klammerung mittels <? … ?> gekennzeichnet ist. Processing Instructions teilen in der Regel mit, welche Applikation die XML Datei verarbeiten soll beispielsweise ein XML-Browser. Dies wird durch die drei Buchstaben xmlfestgelegt.Die nachfolgenden Attribute der Processing Instruction geben idR 3 Eigenschaften des Dokuments an:
- standalone=“no“ teilt mit ob die Document Type Definition in der Instanz steht oder als externe Ressource vorhanden ist.
- encoding=“UTF-8″ teilt mit, nach welchem Standard die Zeichen kodiert sind.
- version=“1.0″ steht vorläufig immer so – es gibt derzeit nur eine erste Version von XML
- Anschließend muß jede XML Datei angeben, welchen Dokumententyp sie verwendet. Dies geschieht durch eine Doctype Anweisung , die mit <! DOCTYPE … > gekennzeichnet ist. (Es ist möglich, den Typ des Dokuments direkt in der XML Datei zu definieren, dies wird jedoch definitiv nicht empfohlen.)
- Ergänzend wird nun der Name des obersten oder Wurzelelements, in unserem Fall also ‚bildersammlung‘, angegeben.
- Dahinter teilt das Schlüsselwort SYSTEM, nach einer Leerstelle gefolgt von einer URL in Anführungszeichen, mit, wo die Definition dieses Documententyps, die „Document Type definition“ zu finden ist.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE bildersammlung SYSTEM "bild01.dtd">
<bildersammlung>...
Übung
Software: Oxygen Lizenzkey bei Ilias!
Brief:
Soundsostadt, den 20.09.2019
Unternehmen So&So GmbH, Soundsostr. 1, 12345 Soundsostadt
Herr Sowieso
Sowiesostr. 2
54321 Sowiesostadt
Telefonnr.: 0842 2457158
Sehr geehrter Herr Sowieso,
Wir freuen Ihnen mitteilen zu dürfen, dass Sie ein Upgrade für Ihren Flug nach Timbuktu erhalten haben. Sie fliegen nun First Class.
Unter folgendem Link können Sie die aktuellen Flugdetails verfolgen.
http://firstclasssowieso.de
Sie können Ihre Flugdetails auch unter +499 711 48 68 69 abrufen.
Mit freundlichen Grüßen,
i.A. Sarah Soundso
ABC Amtsgericht
Musterstr. 1, 9876 Musterstadt
Und mehr zum Üben gibt es wie immer bei den w3schools ...