Your browser doesn't support the features required by impress.mod.js, so you are presented with a simplified version of this presentation.

For the best experience please use the latest Chrome, Safari or Firefox browser.

2021 | Mainz

Einführung in X-Technologien


Modellieren, Strukturieren, Repräsentieren

Sektion 1: XML

Slides: Link

Max Grüntgens | Dominik Kasper | @digicademy | Twitter digicademy | CC-BY 4.0

Überblick

  1. Erklärung und Anwendung
  2. Notation und Syntax
  3. Wohlgeformtheit und Validität
  4. Arbeiten im Oxygen XML Editor (XML allgemein)

Das Repositorium in den eigenen GitHub-Account forken:

  1. Im Browser die Repositoriums-Seite auf GitHub öffnen https://github.com/digicademy/xml-modellieren-strukturieren-repraesentieren
  2. Rechts oben auf den Button "Fork" klicken und dem Dialog folgen.

Das Repositorium klonen (lokal speichern):

  1. Im Browser die Repositoriums-Seite auf GitHub öffnen https://github.com/digicademy/xml-modellieren-strukturieren-repraesentieren
  2. Auf den grünen Button "Code" klicken.
  3. Im Dialog "HTTPS" auswählen (vorausgewählt) und die URL in die Zwischenablage kopieren (strg+c).
  4. In der Eingabeaufforderung (aka Konsole, Terminal, Shell) an den Ort navigieren an dem das Repositorium gespeichert werden soll.
  5. An dieser Stelle in der Eingabeaufforderung das Repositorium per Befehl git clone https://github.com/digicademy/xml-modellieren-strukturieren-repraesentieren.git klonen.

01

XML

Erklärung und Anwendung I

Eine Auszeichnungssprache …

  • … trennt Inhalt und Struktur.
  • … trennt einzelne strukturelle Ebenen.
  • … trennt einzelne bedeutungstragende Ebenen.
  • … ermöglicht verschiedene Ebenen von Meta-Daten.
  • … ermöglicht maschinelle Weiterverarbeitung.
  • … benutzt spezifische Schlüsselwörter und Trennzeichen.

⇒ implizite Information explizit machen!

Erklärung und Anwendung II

Die Auszeichnungsprache: XML (Extensible Markup Language)

XML trennt Inhalt und Struktur sowie verschiedene Ebenen von Semantik und Metadaten durch Trennzeichen und Schlüsselwörter voneinander.

Vokabular und Verwendungsweise von XML sind anpassbar und erweiterbar. Mit Schema-Sprachen lässt sich ein Regelwerk für projekteigene XML-Dateien erstellen.

Erklärung und Anwendung III

Maschinelle Verarbeitung

Die Daten konsistent strukturierter XML-Dokumente können sehr leicht mithilfe von Abfrage- und Transformations-Sprachen durchsucht, akkumuliert und bspw. in Ausgabeformate überführt werden.

Für Abfragen verwendet man XPath (in XML-Dokumenten) und XQuery (XML-Datenbanken), für Transformationen XSLT, wobei dies prinzipiell auch mit XQuery möglich ist.

Auf der Grundlage konsistenter Datenhaltung können also Register und Indices akkumuliert werde. Zudem lassen sich Druckvorstufen für Verlage oder HTML-Ausgaben im Rahmen dynamischer Webseiten produzieren.

Erklärung und Anwendung IV

Anwendungsgebiete von Auszeichnungssprachen sind …

  • Datenstrukturierung ⇒ Extensible Markup Language (XML)
  • Digitale Edition ⇒ Text Encoding Initiative (TEI-XML)
  • Webseiten ⇒ Hypertext Markup Language (HTML)
  • Textverarbeitung
    • MS-Word: Office Open XML
    • LibreOffice: OpenDocument XML; FlatOpenDocument XML
  • eBooks ⇒ EPUB3 (HTML + XML)
  • Vektorgraphiken ⇒ Scalable Vector Graphics (SVG-XML)
  • Semantic Web (gerichteter Graph) ⇒ (RDF-XML)
  • Geodaten Keyhole Markup Language ⇒ (KML-XML)
  • Konfiguration und Datenaustausch in Finanz- und Industrie-Software ⇒ XML-Derivate

Notation und Syntax I

Trennzeichen:

  • Spitze Klammern (<>) und Schrägstrich (/)
  • ASCII-Anführungszeichen ("")
  • Kaufmanns-Und und Semikolon (& ;)
Die genannten Zeichen trennen die besonderen Textbereiche, die allgemein zur Ebene des XML gehören oder innerhalb von XML besondere Funtkionen ausüben, vom übrigen "normalen" Text ab:
<1xml>2Normaler Text.<3/4xml>5

1 Die <-Klammer gibt an, dass der Kontext nun vom "normalen Text" zur Meta-Ebene XML wechselt.

2 Nach dem Elementname xml des StartTags wird der Kontext XML hinter der >-Klammer verlassen.

3 Die nächste <-Klammer zeigt einen erneuten Wechsel zum Kontext XML an.

4 Der Schrägstrich zeigt an, dass es sich um den Kontext EndTag handelt.

5 Die >-Klammer zeigt, dass der Kontext XML erneut verlassen wird.

Notation und Syntax II

Schlüsselwort: Element

Formal:
<StartTag>Inhalt (Text, Elemente)</EndTag>

wobei grundsätzlich gilt: StartTag = EndTag ( = Elementname), d.h. Start- und EndTag teilen denselben "Namen", sie unterscheiden sich nur durch das beim EndTag vorangestellte /!

<letter>1
    <sender>1Max Mustermann</sender>2
    <recipient>1Mina Musterfrau</recipient>2
</letter>2

1 StartTag (= Start-Teil eines Elements) 2 EndTag (= Schluss-Teil eines Elements)

Elemente können Attribute haben, dazu gleich mehr.

Im allgemeinen Sprachgebrauch wird häufig auch nur der Start- und/oder Endtag als Element bezeichnet (öffnendes/schließendes Element), streng technisch betrachtet, ist dies aber unpräzise.

Notation und Syntax III

Spezialfall: selbstschließendes Element

Selbstschließende oder leere Elemente haben weder Text- noch Element-Inhalte!

Formal: <StartTag></EndTag> oder synonym <StartTag/> bzw. <StartTag />

<root>
  <text>
    <p>
      <zbeginn/>1 Der Zeilenfall dieses <lem>2digitalisierten Buches mit
      <zbeginn/>einer Spaltenbreite von ca. 48 Zeichen</lem>2 soll unbe-
      <zbeginn h="true"/>3 dingt erhalten werden.
    </p>
  </text>
</root>

1 Leeres oder selbstschließendes Element. 2 Ein Element, das sich über ein selbstschließendes Element spannt. 3 Leeres oder selbstschließendes Element mit Attribut.

Selbstschließende Elemente können Attribute haben.

Notation und Syntax IV

Schlüsselwort: Attribut

Formal:
<StartTag attribut="wert">Inhalt (Text, Elemente)</EndTag>
Beispiel:
<letter identifier1="xyz123"2>
    <sender identifier="m0001">Max Mustermann</sender>
    <recipient identifier="f0001">Mina Musterfrau</recipient>
</letter>3

1 Dem Attribut mit dem Namen identifier wird per =-Zeichen 2 ein in "-Zeichen notierter Attributwert zugeordnet. 3 Es ist zu beachten, dass Attribute nur innerhalb des StartTags notiert werden.

  • Ein Element kann mehrere Attribute besitzen: <car color="green" brand="audi">
  • Attribute können mehrere Werte beinhalten, diese sind innerhalb der "-Zeichen durch Leerzeichen getrennt: <link refs="#target_1 #target_2">
  • Attribute können nicht für sich alleine stehen, sie gehören immer zu einem Element.
  • Wichtig! Attribute dürfen nur im <StartTag> stehen!

Notation und Syntax V

Schlüsselwort: Namespace(-Präfix)

Formal:
<präfix:StartTag>Inhalt (Text, Elemente)</präfix:EndTag>
ist systematisch äquivalent zu
<{http://url/to/namespace}StartTag>
    Inhalt (Text, Elemente)
</{http://url/to/namespace}EndTag>
Beispiel:
<root xmlns:prj="http://url/to/namespace/prj/">
    <letter>
        <sender identifier="m0001">Max Mustermann</sender>
        <prj:letter>Blackletter Script</prj:letter>
    </letter>
</root>
Die Namespace-URL (xmlns) dient der Disambiguierung der Elemente und muss nicht notwendigerweise auf eine Webseite auflösen.

Notation und Syntax VI

Schlüsselwort: Namespace(-Präfix)

<root xmlns:prj="http://url/to/namespace/prj/"1>  
    <letter>
        <sender identifier="m0001">Max Mustermann</sender>
        <prj:letter>2Blackletter Script</prj:letter>
    </letter>
</root>

1 Die Namespace-URL http://url/to/namespace/prj/ wird als Attributwert an ein Attribut gebunden, das aus xmlns: und einem selbstgewählten Präfixnamen (hier prj) besteht. Dies bindet die Namespace-URL an das Namespace-Präfix.

2 Das Namespace-Präfix kann daraufhin benutzt werden, um Elementnamen zu disambiguieren.

Notation und Syntax VI

Schlüsselwort: XML-Deklaration (optional)

<?xml version="1.0" encoding="UTF-8"?>

Weitere Bezeichnung: XML Prolog

Der XML-Prolog gibt die XML-version und die Zeichencodierung an. Normalerweise ist die hier dargestellte Notation ausreichend und muss nicht angepasst werden.

Notation und Syntax VIIa

Schlüsselwort: Verarbeitungsanweisung I

Schema:
<?1
    xml-model href="schema.file"2 
    type="application/xml"3 
    schematypens="http://url/to/schema/ns"4
?>

1 Verarbeitungsanweisungen werden durch die Tag-Notation <? … ?> eingebunden. 2 Das Attribut href verweist per URL auf den Speicherort der Schema-Datei. 3 Das Attribut type gibt an, um welchen Datei-Typ es sich bei der Schema-Datei handelt. 4 Das Attribut schematypens gibt die Namespace-URL des Schemas an.

Schemata dienen der Definition von Regeln für XML-Dokumente, die über die allgemeine XML Syntax hinausgehen

Notation und Syntax VIIb

Für die Erstellung von Schemata gibt es verschiedene Standards bzw. Schemasprachen (RELAX NG, XML Schema (W3c), Schematron, DTD ...). Je nach Schemasprache ist die Einbindung unterschiedlich. Die Einbindung von W3C Schema erfolgt bspw. in Attributen innerhalb des root-Elements.

Einbindung eines Schemas der Schemasprache RELAX NG:

<?xml-model href="http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rng"
    type="application/xml"
    schematypens="http://relaxng.org/ns/structure/1.0"?>

Einbindung eines Schemas der Schemasprache XML Schema:

<TEI xmlns="http://www.tei-c.org/ns/1.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://www.tei-c.org/release/xml/tei/custom/schema/xsd/tei_all.xsd">

Notation und Syntax VIII

Schlüsselwort: Verarbeitungsanweisung II

Transformation:
<?xml-stylesheet type="text/xsl"1 href="./url/to/xsl-file.xsl"2?>

1 Das Attribut type gibt den Typ der Transformationsdatei an, meist ist das text/xsl. 2 Das Attribut href gibt per URL den Speicherort der Transformationsdatei an.

Beispiel:
<?xml-stylesheet type="text/xsl" href="meinStylesheet.xsl"?>

Auch in deutschsprachigen Publikationen wird meist von processing instructions gesprochen.

Notation und Syntax IX

XML Syntax Regeln I

  • Elemente in XML müssen sauber verschachtelt werden (properly nested)
  • Attribut-Werte müssen immer in Anführungszeichen stehen
  • Bestimmte Zeichen müssen als Entität notiert werden, wenn sie literal im Text verwendet werden sollen:
    • < entspricht &lt;
    • > entspricht &gt;
    • & entspricht &amp;
Nicht sauber verschachtelt
<t>Dieser Text ist ab
    <f>
        <u>hier als fett und
        unterstrichen markiert.</f>
    </u>!The element type "u" must be terminated by the matching end-tag "</u>".
</t>
sauber verschachtelt
<t>Dieser Text ist ab
    <f>
        <u>hier als fett und
        unterstrichen markiert.</u>
    </f>
</t>

Notation und Syntax X

XML Syntax Regeln II

Elementnamen

  • sind case-sensitive
  • müssen mit einem Buchstaben oder einem Unterstrich beginnen
  • dürfen nicht mit den Buchstaben bzw. reserved words xml (oder XML, xMl usw.) beginnen
  • dürfen Buchstaben, Ziffern, Bindestriche, Unterstriche und Punkte enthalten
  • dürfen keine Leerzeichen enthalten

Wohlgeformtheit und Validität I

Wohlgeformheit

Wenn ein XML-Dokument den allgemeinen Syntax-Regeln gehorcht, bezeichnet man es als „wohlgeformt“ (engl. well-formed).

Wohlgeformheit ist eine essentielle Voraussetzung für die weitere Verarbeitung, ja für die Bestimmung eines (vermeintlichen) XML-Dokuments als XML-Dokument an sich.

Wohlgeformtheit und Validität II

Validität

Von „Validität“ spricht man, wenn ein XML-Dokument mit einem zugehörigen Schema konform ist, d.h. den dort hinterlegten Regeln in Bezug auf "Vokabular" (erlaubte Element- und Attribut-Namen) sowie "Grammatik" (Verschachtelungsregeln für Elemente) gehorchen.

Voraussetzung für Validität ist Wohlgeformheit. Dies ergibt sich logisch aus dem bisher Gesagten.

Wohlgeformtheit und Validität III

Sinn und Zweck

Durch die Ansetzung eines Schema-Regelwerks lassen sich XML-Dokumente sehr einfach in konsistenter Form erstellen, da jederzeit ein Feedback zur Regelhaftigkeit des Dokumentes zurückgegeben wird.

Im Oxygen-XML-Editor ist es unter Rückgriff auf ein zugrundeliegendes Schema bspw. möglich, dem Benutzer die im Auszeichnungs-Kontext angebrachten Elemente bzw. Attribute per Knopfdruck anzubieten. Dazu muss ein sog. Framework, auch Dokumenttyp-Assoziation erstellt werden. Ähnliche Funktionalitäten werden auch von vergleichbaren Editoren angeboten.

Wenn im Dokument ein Schema eingebunden ist, bietet der Oxygen bereits build in einen Vorschlagmodus für die korrekten Elemente bzw. Attribute (geleitetes Encoding).

Arbeiten mit einem XML Editor I

Kurzeinführung Oxygen XML Editor

  • Grundlegendes zur Software
  • XML-Beispieldatei öffnen
  • Verschiedene Blickwinkel auf ein XML-Dokument
  • Einrücken und Formatieren
  • Wohlgeformheit prüfen
  • Schema einbinden
  • Validität prüfen
  • Nützliche Shortcuts
  • Beispiele für nicht proprietäre XML Editoren

Hier können Sie eine Probe-Lizenz für den Oxygen-XML-Editor beantragen, den Editor im Anschluss herunterladen und für eine Periode von 30 Tagen ausprobieren.

Übung: XML

  • Öffnen Sie die Datei Uebungen/Inschrift.xml im Oxygen-XML-Editor.
  • Verschaffen Sie sich einen Überblick über die Text-Daten in der Datei. Es handelt sich um eine edierte Inschrift, die die folgenden Bereiche enthält:
    • Metadaten zu Schrifttyp, Material, Dekorationen und Ornamenten.
    • Personen, die mit der Inschriften in Bezug stehen.
    • Den transkribierten Text der Inschrift.
    • Es gibt auch einen kleinen textkritischen Apparat.
  • Erstellen Sie eine XML-Struktur für die Datei, indem Sie selbst gewählte Element- und Attribut-Namen erstellen und diese in einer selbstgewählten Struktur verschachteln. Beachten Sie dabei folgendes:
    • Gruppieren Sie den Datei-Inhalt in einen Metadaten-Bereich und einen eigentlichen Text-Bereich.
    • Gruppieren und strukturieren Sie die Information in der Datei gerne um.
    • Normalisieren Sie Text-Bereiche oder encoden Sie Normalisierungen entsprechend im XML.
    • Fügen Sie Information hinzu oder entfernen Sie diese.
    • Orientieren Sie sich bei dem was? und wie? des Encodings an den Fachspezifika Ihrer geisteswissenschaftlichen Herkunftsfächern oder nutzen Sie die bereits vorhandene Grundstruktur in der Datei.
  • Achten Sie darauf, dass das Dokument wohlgeformt ist, d.h. den allgemeinen Syntax-Regeln folgt!

Vergleichen Sie Ihre selbst erstellte XML-Datei mit der Musterlösung Uebungen/Inschrift_encoding.xml. Welche Unterschiede fallen Ihnen auf? Wo weicht Ihre Struktur von der Musterlösung ab? Versuchen Sie die Abweichungen zu erklären.

F I N I S

Thank you

Literatur & Software

Literatur

  • Flanders, Julia/Jannidis, Fotis (2019): Data modeling in a digital humanities context, in: Flanders, J./Jannidis, F.: The Shape of Data in Digital Humanities. Modeling Texts and Text-based Resources. London, S. 3–25.
  • Flanders, Julia/Jannidis, Fotis (2019): A gentle introduction to data modeling, in: Flanders, J./Jannidis, F.: The Shape of Data in Digital Humanities. Modeling Texts and Text-based Resources. London, S. 26–96.
  • Institut für Dokumentologie und Editorik (2015): Handreichung zur praktischen Arbeit: XML-Kurzreferenz für Einsteiger. Köln, 2. Auflage
  • Jannidis, Fotis (2017): Grundlagen der Datenmodellierung, in: Jannidis, F. et al.: Digital Humanities. Eine Einführung. Stuttgart, S. 99–108.
  • Vogeler, Georg/Sahle, Patrick (2017): XML, in: Jannidis, F. et al.: Digital Humanities. Eine Einführung. Stuttgart, S. 128–146.
  • Vonhoegen, Helmut (2015): Einstieg in XML. Grundlagen, Praxis, Referenz. Stuttgart, 8., akutalisierte Auflage
  • w3schools: https://www.w3schools.com/xml/ (Zugriff 3.12.2018), siehe hier besonders XML Syntax, XML Tree, XML Elements, XML Attributes, XML Namespaces und XML XPath

Eine kommentierte Literaturliste für Einsteiger in die Digital Humanities finden Sie hier.

Software

1 / 27 (02:15)