XML (Extensible Markup Language) ist, wie der Name sagt, eine erweiterbare Auszeichnungssprache. XML kann genutzt werden, um Informationen bzw. Text zu strukturieren.
Zum Bearbeiten von XML-Dateien können Texteditoren oder spezielle XML-Editoren genutzt werden. Zum Lesen von XML-Dokumenten/XML-Dateien können Sie auch einen Browser verwenden. In der ersten Zeile eines XML-Dokuments steht die XML-Deklaration. An der XML-Deklaration erkennt das ausführende Programm, dass es sich um eine XML-Datei handelt.
<?xml version="1.0" encoding="UTF-8"?>
Die XML-Deklaration kann eine Angabe zur Kodierung enthalten. UTF-8 ist die häufigste Kodierung im Internet. Sollte Ihr LIDO-XML-Dokument "merkwürdige" Zeichen enthalten, könnte es sein, dass die Kodierung bzw. die Angabe der Kodierung nicht stimmt.
Ein XML-Dokument enthält ein Wurzelelement (root element), welches alle Inhalte des Dokuments (weitere Unterelemente oder Text) enthält. Ein LIDO-XML-Dokument kann einen oder mehrere LIDO-Datensätze (record) beinhalten (s. Modul "Dokumentstruktur, Elementtypen, Attribute"). Enthält das Dokument nur einen Datensatz, dann kann das Wurzelelement entweder <lido:lidoWrap>
oder <lido:lido>
sein. Enthält das Dokument mehrere Datensätze, dann muss das Wurzelelement <lido:lidoWrap>
sein.
Wurzelelement <lido:lidoWrap>
in einem Dokument mit einem LIDO-Datensatz:
<lido:lidoWrap>
<lido:lido>[Inhalt des Datensatzes]</lido:lido>
</lido:lidoWrap>
Wurzelelement <lido:lido>
in einem Dokument mit einem LIDO-Datensatz:
<lido:lido>[Inhalt des Datensatzes]</lido:lido>
Wurzelelement <lido:lidoWrap>
in einem Dokument mit mehreren LIDO-Datensätzen:
<lido:lidoWrap>
<lido:lido>[Inhalt des ersten Datensatzes]</lido:lido>
<lido:lido>[Inhalt des zweiten Datensatzes]</lido:lido>
<lido:lido>[Inhalt des dritten Datensatzes]</lido:lido>
</lido:lidoWrap>
Das Wurzelelement (root element) kann weitere Elemente (Struktureinheiten) enthalten. Elemente können Text oder weitere Unterelemente enthalten. Elemente können Attribute besitzen. Über Attribute können Elementen Eigenschaften zugewiesen werden.
Im unten folgenden Beispiel zur Angabe eines Werktitels sieht man das LIDO-Element <lido:titleSet>
mit dem Unterelement <lido:appellationValue>
.
Elemente bestehen aus einem sog. "start tag", hier <lido:titleSet>
, einem sog. "end tag" erkennbar am Schrägstrich ("/"), hier </lido:titleSet>
. Der Inhalt des Elements befindet sich zwischen start tag und end tag. Der Textinhalt des Unterelements <lido:appellationValue>
ist hier im Beispiel "La Primavera".
Das Element <lido:appellationValue>
enthält ein Attribut ,@xml:lang
mit der Sprachangabe "it" für "Italienisch". Das Zeichen "@" wird hier im erklärenden Text nur verwendet, um sichtbar zu machen, dass es sich um ein Attribut handelt, im XML-Dokument wird es nicht verwendet, wie man im folgenden Beispiel sieht.
<lido:titleSet>
<lido:appellationValue xml:lang="it">La Primavera</lido:appellationValue>
</lido:titleSet>
Will man den Werktitel zusätzlich in deutscher Sprache angeben, sieht das Beispiel so aus:
<lido:titleSet>
<lido:appellationValue xml:lang="it">La Primavera</lido:appellationValue>
<lido:appellationValue xml:lang="de">Der Frühling</lido:appellationValue>
</lido:titleSet>
Weitere Informationen zu Elementen und Attributen s. Modul "LIDO Dokumentstruktur, Elementtypen, Attribute".
LIDO ist als XML-Schema definiert. Die jeweils aktuelle ("latest") Definitionsdatei (XML Schema Definition/XSD) ist unter https://lido-schema.org/schema/latest/lido.xsd zu finden. Darin werden die LIDO-Elemente und LIDO-Attribute definiert und es wird festgelegt, in welcher Reihenfolge sie in einem LIDO-Dokument vorkommen können bzw. müssen.
Die Schema-Datei der LIDO-Version v1.1 (http://www.lido-schema.org/schema/v1.1/lido-v1.1.xsd) wird im folgenden Beispiel über das Wurzelelement <lido:lidoWrap>
in das XML-Dokument eingebunden:
<?xml version="1.0" encoding="UTF-8"?>
<lido:lidoWrap
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.lido-schema.org"
xmlns:lido="http://www.lido-schema.org"
xsi:schemaLocation="http://www.lido-schema.org http://www.lido-schema.org/schema/v1.1/lido-v1.1.xsd">
[...]
</lido:lidoWrap>
Ein XML-Dokument ist valide (gültig), wenn es den in der Schema-Datei festgelegten Regeln entspricht.
Wenn ein XML-Dokument nicht valide ist, kann es zu Problemen bei der Verarbeitung des Dokuments kommen. So kann es beispielsweise sein, dass ein Programm das Dokument nicht lesen oder verarbeiten kann, oder dass die Daten im Dokument falsch interpretiert werden.
Um die Validität (Gültigkeit) eines XML-Dokuments zu überprüfen, kann man ein XML-Validierungstool verwenden. Ein XML-Validierungstool vergleicht das XML-Dokument mit der Schema-Datei und gibt an, ob das Dokument valide ist oder nicht. XML-Editoren enthalten üblicherweise auch eine Validierungsmöglichkeit. Sollte das Dokument nicht valide sein, also den im LIDO Schema festgelegten Regeln nicht vollständig entsprechen, bekommt man bei der Validierung zeilengenau angezeigt, wo sich Fehler befinden.
Die Elementdefinitionen in der Schemadatei enthalten auch Angaben dazu, wie oft ein Element an einer Stelle im Dokument vorkommen kann:
LIDO nutzt für die Definition von Elementen ausgiebig das Element <xs:complexType>
aus der XML Schema Language und ist somit sehr modular aufgebaut. Z. B. liegt dem LIDO-Element <lido:place>
das Element <lido:placeComplexType>
zugrunde. Dieses Element enthält Unterelemente, die wiederum unter Nutzung von <xs:complexType>
definiert wurden. Das Element <lido:place>
kann an verschiedenen Stellen in einem LIDO-Element vorkommen, etwa für eine Ortsangabe bei der Beschreibung von Ereignissen aus der Objektgeschichte unterhalb von <lido:eventWrap>
oder bei der Beschreibung von auf dem Objekt abgebildeten Orten unterhalb von <lido:subjectWrap>
(s. LIDO-Element <lido:place>
in der LIDO Documentation).
Die Elemente und Attribute, die im LIDO Schema definiert werden, haben den Namensraum "lido". Der Namensraum wird Elementnamen und Attributen mit einem Doppelpunkt (":") vorangestellt. Das Element <lido:recordType>
zur Angabe eines Datensatztyps (z. B. "Einzelobjekt" oder "Objektgruppe") hat als Namensraum "lido" und als Elementnamen "recordType". Das Attribut @lido:type
hat als Namensraum "lido" und als Attributnamen "type". Das Attribut @xml:lang
hat als Namensraum "xml" und als Attributnamen "lang". Das Attribut @xml:lang
wird nicht in der LIDO Schema Datei definiert, sondern gehört zur "Grundausstattung" von XML. LIDO-Dokumente können Elemente aus weiteren Namensräumen enthalten (wie skos, gml, owl, s. Modul "Dokumentstruktur, Elementtypen, Attribute").
LIDO-XML-Beispiele können Erläuterungen in Form von Kommentaren enthalten. Kommentare werden bei der Weiterverarbeitung von LIDO-Daten üblicherweise nicht ausgewertet.
<!-- einzeiliger Kommentar -->
<!--
mehrzeiliger
Kommentar
//-->
XML-Grundlagen für LIDO
Einfache XML-Struktur für Ihre Objektinformationen (das ist nicht LIDO-XML):
<?xml version="1.0" encoding="UTF-8"?>
<beispielobjekt>
<objekt>
<name>Objekttitel/Objektname</name>
<typ xml:lang="de">Objekttyp deutsch</typ>
<typ xml:lang="en">Objekttyp englisch</typ>
<ereignis>
<typ>Herstellung</typ>
<person>Beteiligte Person</person>
<person>Beteiligte Person</person>
<institution>Beteiligte Institution</institution>
<ort>Herstellungsort</ort>
<datum>Datierung</datum>
</ereignis>
<material-technik>Angaben zu Material und Technik</material-technik>
<masse>Maßangaben</masse>
<schlagwort>Thema bzw. Bildinhalt</schlagwort>
<schlagwort>Thema bzw. Bildinhalt</schlagwort>
<institution>Bewahrende Institution</institution>
<rechte>Rechte am Objekt</rechte>
</objekt>
<abbildungen>
<abbildung>
<link>Link zur Abbildung</link>
<rechte>Rechte an der Abbildung</rechte>
</abbildung>
</abbildungen>
<datensatz>
<quelle>Quelle des Datensatzes</quelle>
<link>Link zum Datensatz</link>
</datensatz>
</beispielobjekt>
Beispiel: Peter Paul Rubens, Rubens und Isabella Brant in der Geißblattlaube, um 1609/10, Bayerische Staatsgemäldesammlungen – Alte Pinakothek München, URL: http://www.sammlung.pinakothek.de/de/artwork/o5xrMEr47X (Zuletzt aktualisiert am 28.08.2023).
<?xml version="1.0" encoding="UTF-8"?>
<beispielobjekt>
<objekt>
<name>Peter Paul Rubens, Rubens und Isabella Brant in der Geißblattlaube, um 1609/10</name>
<typ xml:lang="de">[im Online-Datensatz nicht enthalten: Ölgemälde]</typ>
<typ xml:lang="en">[im Online-Datensatz nicht enthalten: oil painting]</typ>
<ereignis>
<typ>Herstellung</typ>
<person>Peter Paul Rubens (1577-1640)</person>
<ort>[im Online-Datensatz nicht explizit enthalten: Antwerpen]</ort>
<datum>um 1609/10</datum>
</ereignis>
<material-technik>Leinwand, auf Holz übertragen</material-technik>
<masse>178 x 136,5 cm</masse>
<schlagwort>[den Angaben im Online-Datensatz entnommen: Rubens, Peter Paul]</schlagwort>
<schlagwort>[den Angaben im Online-Datensatz entnommen: Rubens, Isabella]</schlagwort>
<schlagwort>[den Angaben im Online-Datensatz entnommen: Ehe]</schlagwort>
<schlagwort>[den Angaben im Online-Datensatz entnommen: Geißblatt]</schlagwort>
<institution>Bayerische Staatsgemäldesammlungen - Alte Pinakothek München</institution>
<rechte>[keine explizite Angabe im Online-Datensatz]</rechte>
</objekt>
<abbildungen>
<abbildung>
<link>https://res.cloudinary.com/tne/image/authenticated/s--kAZIN-Uj--/q_80/artworks/PETER-PAUL-RUBENS_RUBENS-UND-ISABELLA-BRANT-IN-DER-GEISSBLATTLAUBE_CC-BY-SA_BSTGS_334.jpg</link>
<rechte>CC BY-SA 4.0; https://creativecommons.org/licenses/by-sa/4.0/</rechte>
</abbildung>
</abbildungen>
<datensatz>
<quelle>Bayerische Staatsgemäldesammlungen - Alte Pinakothek München</quelle>
<link>http://www.sammlung.pinakothek.de/de/artwork/o5xrMEr47X</link>
</datensatz>
</beispielobjekt>