Arbeiten mit Xml‐Dateien - iqb-berlin/iqb-berlin.github.io GitHub Wiki

XML ist ein Standardformat und wird durch Texteditoren unterstützt. Daher sind einige Dateien für die Definition von Daten in den IQB-Anwendungen in diesem Format hinterlegt. Der folgende Text soll Neulingen dieses Format nahebringen.

XML ist ein textbasiertes Datenformat. Die Daten können einfach mittels eines Texteditors bearbeitet werden. Beispiele sind Notepad++ oder Sublime. Viele Editoren bieten Ergänzungsmodule für die Arbeit mit XML-Dateien. Diese erleichtern die Bearbeitung durch farbliche Hervorhebung der XML typischen Bestandteile und erkennen Fehler in der XML-Syntax (z. B. schließendes Element fehlt) gemeldet.

Damit die Daten im Text gefunden werden können, muss eine bestimmte Struktur eingehalten werden. Anschließend kann eine entsprechende Gegenstelle z.B. das IQB-Testcenter mittels eindeutiger Schlüsselwörter (Tags oder Elemente) die Daten im Text finden und nutzen.

  • Elemente: XML-Dateien bestehen immer aus Elementen und ggf. mehreren Unterelementen. Der Beginn eines Elements wird mit zwei spitzen Klammern <Element> eingeleitet und wie folgt beendet: </Element>.
  • Attribute: Jedes Element kann außer den eigentlichen Daten, welche sich im Elementenkörper befinden, Attribute enthalten. Attribute werden immer in der folgenden Form ausgedrückt: Name Attribut = "Attributwert" und befinden sich innerhalb des Elementenaufrufs (<Element Attribut="Attributwert">). Es gibt auch Elemente, die Attribute aber keine Daten enthalten und umgekehrt.

Beispiele

  1. Element ohne Attribute mit Daten:

    Daten sind in diesem Fall der Text zwischen den spitzen Klammern, dem Elementenkörper: "Sekundarstufe I Englisch Ansichtsaufgaben".

  <Label>Sekundarstufe I Englisch Ansichtsaufgaben</Label>
  1. Element mit Attributen ohne Daten:

    Hier gibt es 3 Attribute: id, lable und lableshort. Alle 3 Attribute enthalten in diesem Fall Attributwerte.
    Diese sind in Hochkommata gefasst und werden mit einem Gleichheitszeichen dem Attribut zugeordnet. Das keine Daten enthalten sind, ist gut an dem Schließen des Elementes Unit zu erkennen. Denn das Element endet nicht mit: </Unit>, sondern nur mit: />. Diese Syntax gibt an, dass keine Daten folgen.

   <Unit id="Unit1" label="1. Postcard" labelshort="1" />
  1. Element mit Daten und Attributen:

    Attribut ist hier: key. Dieses bekommt den Attributwert force_presentation_complete zugewiesen. Datum ist der Wert: ON.

    <Config key="force_presentation_complete">ON</Config>

Validierung

Die Abfolge der Elemente und Attribute einer IQB-XML-Datei ist streng geregelt. Damit ist sichergestellt, dass die Informationen durch alle beteiligten Komponenten korrekt interpretiert werden. Damit nicht erst bei der Verarbeitung oder beim Hochladen einer XML-Datei die Fehler bemerkt werden, kann man die Prüfung auf syntaktische Fehler (sog. "Validierung") auch automatisieren. Hierzu wurden sog. "Schema-Dateien" eingeführt. Eine Schema-Datei enthält in einer speziellen Beschreibungssprache alle Festlegungen zur Gestaltung der XML-Datei.

Um eine Validierung anzustoßen, fügt man zunächst in den Kopf der XML-Datei (also in das Wurzelelement) einen Verweis auf die Schema-Datei ein. Das IQB hat für alle XML-Dateien solche Schema-Dateien entwickelt. Für eine Unit-Xml wäre z. B. das Hauptelement folgendermaßen zu ändern:

    <Unit
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/iqb-berlin/testcenter-backend/9.1.1/definitions/vo_Unit.xsd">

Es sollte stets die aktuelle Version im Pfad zur Schema-Datei benutzt werden.

Außerdem muss für die automatische Validierung ein Editor verwendet werden, der diese Validierung unterstützt. Das IQB empfiehlt Notepad++.

⚠️ **GitHub.com Fallback** ⚠️