git clone https://github.com/digicademy/xml-modellieren-strukturieren-repraesentieren.git
klonen.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.
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.
<>
) und Schrägstrich
(/
)""
)& ;
)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
desStartTags
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.
<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.
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.
<StartTag attribut="wert">Inhalt (Text, Elemente)</EndTag>
<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.
<car color="green" brand="audi">
"
-Zeichen durch Leerzeichen getrennt: <link refs="#target_1 #target_2">
<StartTag>
stehen!<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>
<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.
<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.
<?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.
<?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
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">
<?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.
<?xml-stylesheet type="text/xsl" href="meinStylesheet.xsl"?>
Auch in deutschsprachigen Publikationen wird meist von processing instructions gesprochen.
<
entspricht
<
>
entspricht
>
&
entspricht
&
<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>
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.
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.
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).
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.
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.
Eine kommentierte Literaturliste für Einsteiger in die Digital Humanities finden Sie hier.