Lade Inhalt...

XML als Beschreibungssprache für Textcorpora

Magisterarbeit 2005 66 Seiten

Informatik - Allgemeines

Leseprobe

Inhaltsverzeichnis

1. Einleitung
1.2 Schreibweisen
1.3 Verwendete Software
1.3.1 Java
1.3.2 Perl

2. Die „Extensible Markup Language“ (XML)
2.1 XML - ein offener Standard
2.2 XML - Syntax
2.3 Wohlgeformte und gültige XML-Dokumente
2.4 Die Document Type Definition (DTD)
2.5 Die DTD des TAZ-Corpus
2.6 XML-Schema
2.6.1 Das Instanz-Dokument
2.6.2 Das XML-Schema Dokument
2.6.2.1 Der Kopf des XML-Schemas
2.6.2.2 Elemente deklarieren
2.6.2.3 Attribute deklarieren
2.7 Weitere Ansätze zur Erzeugung gültiger XML-Dokumente
2.8 Unterstützung fremdsprachlicher Zeichensätze

3. Be- und Verarbeitung von XML-Daten
3.1 XML Parsen
3.1.1 XML-Parser für Perl
3.1.1.1 XML::Parser
3.1.1.2 Das Modul XML::Parser::PerlSax
3.1.1.3 Das Modul XML::DOM
3.1.2 XML-Parser für Java
3.1.2.1 SAX-Parser
3.1.2.2 DOM-Parser
3.2 XPath
3.2.1 Teilbäume identifizieren
3.2.2 Attribute berücksichtigen
3.2.3 Der Inhalt eines Elements
3.2.4 Weitere Operatoren und Berechnungen
3.2.5 XPath-Beispiele anhand des TAZ-Corpus
3.3 XQuery
3.3.1 FOR, LET, WHERE und RETURN
3.3.2 Weitere Konstrukte
3.4 XUpdate
3.4.1 Elemente einfügen
3.4.2 Elemente anfügen
3.4.3 Elemente aktualisieren
3.4.4 Elemente löschen
3.4.5 Elemente umbenennen
3.5 Externe Datenquellen in XML-Daten integrieren
3.5.1 XLink
3.5.2 XPointer
3.5.3 XInclude
3.5.3.1 TAZ-Corpus: Meta-Daten mittels XInclude auslagern
3.6 Webservices
3.6.1 SOAP
3.6.2 XML-RPC
3.6.2.1 XML-RPC: Server-Implementierung
3.6.2.2 XML-RPC: Client-Implementierung
3.7 XML-Daten transformieren
3.7.1 XML-Daten mit CSS formatieren
3.7.2 XSLT
3.7.2.1 XSLT-Prozessoren
3.7.2.2 Grundlegende Syntax-Elemente
3.7.2.3 Abfragen
3.7.2.4 Weitere XSLT-Funktionen
3.7.2.5 Formatting Objects (XSL-FO)
3.7.2.6 XSLT-Beispiel anhand des TAZ-Corpus

4. Weitere Spezifikationen des W3C
4.1 XML-Elemente mit xml:id indizieren
4.2 Binären Daten Media-Typen zuweisen
4.3 SMIL - Synchronized Multimedia Integration Language
4.4 Scalable Vector Graphics
4.4.1 Grundlegende SVG-Elemente
4.4.2 Weitere SVG-Elemente
4.4.3 Transformationen

5. XML-Datenbanken
5.1 Das relationale Datenmodell versus XML
5.2 OpenSource XML-Datenbanken
5.3 Die XML-Datenbank eXist
5.3.1 Installation von eXist
5.3.2 XML-Workflow in eXist
5.3.3 Das TAZ-Corpus in der eXist-Datenbank
5.3.4 Deutsch-Englisches Wörterbuch
5.4 Beipielanwendung (Perl): Validieren des Zipfschen Gesetzes anhand des TAZ-Corpus. .
5.4.1 Programmlauf

6. Weitere Tools zum Bearbeiten von XML-Daten
6.1 XML-Editoren
6.1.1 Kommerzielle Produkte
6.1.2 OpenSource-Produkte
6.1.3 Übersicht
6.2 Weitere Perl-Module zur Verarbeitung von XML-Daten
6.2.1 XML::Simple
6.2.2 XML::XPath

7. XML-Bearbeitung in weiteren Programmiersprachen

8. Schlussbemerkungen

Quellenangaben

Literaturangaben

WWW-Adressen

1. Einleitung

Seitdem es elektronisch gespeicherte Daten gibt, existiert das Problem der unterschiedlichen Datenformate: Die Frage nach der Art und Weise, wie die Daten gespeichert werden. Programme unterschiedlicher Hersteller, die alle einem ähnlichen Zweck dienen, benutzen dennoch zueinander nicht kompatible Datenformate. So kann es vorkommen, dass eine Textverarbeitung die Dokumente einer anderen Textverarbeitung nicht oder nur mehr schlecht als recht lesen kann. Ältere Dokumente können nicht mehr verarbeitet werden, wenn es die sie erzeugenden Programme nicht mehr gibt oder diese auf aktuellen Computer-Plattformen nicht mehr laufen. Verschärfend kommt hinzu, dass auch die verwendeten Speichermedien einer rasanten Entwicklung unterliegen - heute noch auf dem aktuellsten Stand der Technik, in wenigen Jahren schon wieder veraltet und mit den dann gängigen Geräten nicht mehr lesbar.

Liesse sich letzteres Problem noch durch das ständige Umkopieren auf neue Datenträger lösen, so bleibt doch weiterhin das Problem der verschiedenen Datenformate bestehen. In der Quantitativen Linguistik werden grosse Datenbestände in Form von Text-Corpora benötigt. Diese liegen zumeist als ASCII-Dateien1 vor: In dieser Form sind sie zumindest für Menschen direkt lesbar. Allerdings enthalten die Corpora unterschiedlichste linguistische Informationen und sind dementsprechend unterschiedlich strukturiert. In der Praxis bedeutet dies dass Programme, Schnittstellen etc., die für das eine Corpus erstellt wurden, nur mit erheblichen AnpassungsAufwand auf andere Corpora angewandt werden können.

In dieser Arbeit soll versucht werden aufzuzeigen, dass es eine Alternative gibt: Mittels der „Extensible Markup Language“, kurz XML, liesse sich ein einheitlicher Workflow für die verschiedensten Corpora erstellen.

1.2 Schreibweisen

Für den Fliesstext in dieser Arbeit wird die Schriftart Times New Roman in 12 pt Schriftgrösse benutzt. Davon unterscheiden sich Beispiele und Auszüge in Programmiercode oder XML durch die Schriftart Courier New.

Blöcke von Beispielcode werden zusätzlich eingerückt:

Abbildung in dieser Leseprobe nicht enthalten

Auf der dieser Arbeit beiliegenden CD befindlichen Dateien verweist ein Ordner-Symbol in der entsprechenden Fussnote:[Abbildung in dieser Leseprobe nicht enthalten]

Sofern keine weiteren Angaben folgen bzw. das Kapitel endet beziehen sich alle folgenden CodeBeispiele auf diese Datei.

1.3 Verwendete Software

Alle in dieser Arbeit beschriebenen Programme wurden unter Suse Linux 9.1 Personal Edition erstellt2. Um diese kompilieren zu können, sind in fast jedem Fall weitere Software, die nicht im Umfang der Suse-Distribution enthalten ist, notwendig.

Die benutzten Module, Bibliotheken etc. liegen ausschliesslich als OpenSource bzw. zumindest kostenloser Software vor. Abhängig vom Installations-Umfang sind auf anderen Linux-/Unix- Distributionen u.U. schon einige vorhanden, andere müssen nachinstalliert werden. Prinzipiell steht auch einer Installation unter Windows nichts im Wege.

1.3.1 Java

Um die bereits kompilierten Java-Klassen der beschriebenen Programme auszuführen, genügt ein installiertes „Java Runtime Environment (JRE)“3. Zum erneuten Kompilieren ist das „Java Development Kit (JDK)“ notwendig4.

Java sollte mindestens in der Version 1.4 vorliegen.

1.3.2 Perl

Auf dem Referenz-System befand sich die Perl-Version 5.8.3. Die verwendeten Perl-Module befinden sich alle auf dem „Comprehensive Perl Archive Network CPAN)“5 und können von dort heruntergeladen und installiert werden.

Die meisten Unix-Distributionen enthalten bereits ein installiertes Perl. Wenn nicht, kann es ebenfalls vom CPAN bezogen werden6.

Unter Windows bietet sich die ActivePerl-Distribution von ActiveState7 an. Hierbei handelt es sich um ein fertig kompiliertes Perl, welches bereits zahlreiche nützliche Module enthält.

2. Die „Extensible Markup Language“ (XML)

2.1 XML - ein offener Standard

Am 10. Februar 1998 veröffentlichte das „Worl Wide Web Consortium8 “ (kurz: W3C) die Version 1.0 seines Vorschlags zu einer „Extensible Markup Language“9. In der Zusammenfassung heisst es:

Its goal is to enable generic SGML to be served, received, and processed on the Web in the way that is now possible with HTML. XML has been designed for ease of implementation and for interoperability with both SGML and HTML.

Hieraus wird ersichtlich, dass XML vornehmlich für den Datenaustausch im Internet gedacht war und die Eigenschaften von HTML und SGML10 kombinieren sollte. In der Praxis resultierte hieraus die XHTML-Spezifikation11: Diese stellt eine Neudefinition des HTML - 4.0 - Standards in Form von XML dar. Zwar besitzt XHTML nicht die grosse Flexibilität des eigentlichen XML-Standards, die syntaktisch wesentlich strengeren Regeln erleichtern aber z.B. das Parsen gegenüber HTML 4.012.

Mittlerweile haben die großen Einsatzmöglichkeiten und die offene Verfügbarkeit des XML- Standards dafür gesorgt, dass XML auch in den verschiedensten Bereichen ausserhalb des Webs zum Einsatz kommt. Überall dort, wo offene Standards wichtig erscheinen und reger Datenaustausch herrscht, kann XML zum Einsatz kommen. Einige Beispiele hierfür wären:

- Die Büro-Software OpenOffice13 und das daraus abgeleitete kommerzielle StarOffice14 benutzen XML als Format für alle Dokumententypen (Textverarbeitung, Tabellenkalkulation, Präsentation und Vector-Graphik)
- SCORM, das „Sharable Content Object Reference Model“ ermöglicht den Austausch von Daten zwischen eLearning-Plattformen15
- Mittels der „XML User Interface Language“ (kurz: XUL) des Mozilla-Projekts lassen sich Programme mit graphischer Benutzeroberfläche entwickeln16.

Die verschiedensten Arten von Daten können mittels XML repräsentiert und verarbeitet werden. Jedoch ist XML nicht für alle Datentypen gleich gut geeignet: Pixelbilder, Audio- und Video-Daten dürften sich nur schwerlich in XML darstellen lassen. Hierbei handelt es sich meistens um sehr große binäre Datenmengen, die durch ein XML-Gerüst noch unnötig weiter aufgebläht werden würden. Eine eigene Arbeitsgruppe kümmert sich beim W3C um die Frage, wann das Einbetten binärer Daten in XML Sinn machen würde17.

2.2 XML - Syntax

Als echte Untermenge18 von SGML hält sich XML an deren syntaktische Vorgaben. So beginnt jedes XML-Document mit der Angabe des Dokumententyps und der Version:

Abbildung in dieser Leseprobe nicht enthalten

Optional können hier in weiteren Attributen Angaben zu verwendeten Zeichensätzen, Sprache des Dokuments etc. gemacht werden.

Alle Daten eines XML-Dokuments werden in „Tags“ eingeschlossen. Jedes Tag umschliesst einen Daten-Bereich und muss nach diesem explizit geschlossen werden. Name und eventuelle Attribute des Tags werden in spitzen Klammern eingeschlossen:

Abbildung in dieser Leseprobe nicht enthalten

Anschliessend folgen die Daten des so deklarierten Bereichs und die Schliessung des Tags:

Abbildung in dieser Leseprobe nicht enthalten

Letztere erfolgt durch Setzen eines / („Slash“) nach der öffnenden spitzen Klammer, gefolgt von dem Namen des zu schliessenden Tags.

Öffnende und schliessenden Angabe sowie der Datenbereich zusammen ergeben ein Element. Jedes XML-Dokument benötigt mindestens ein sogenanntes Root-Element. Dieses muss alle anderen Elemente des Dokuments umschliessen, kann aber auch das einzige Element eines XMLDokuments darstellen.

Ein einfaches, wohlgeformtes XML-Dokument könnte so aussehen19:

Abbildung in dieser Leseprobe nicht enthalten

Hallo Welt! </ausgabe>

Elemente lassen sich beliebig tief ineinander verschachteln, allerdings muss hierbei auf syntaktische Korrektheit der öffnenden und schliessenden Teile der Tags geachtet werden. Nicht zulässig wäre folgendes, da tag1 vor tag2 geschlossen wird:

Abbildung in dieser Leseprobe nicht enthalten

XML unterscheidet zwischen Gross- und Kleinschreibung, so dass ein Tag mit dem Namen <tag1> nicht identisch ist mit[Abbildung in dieser Leseprobe nicht enthalten];[Abbildung in dieser Leseprobe nicht enthalten].

In den verschiedenen Spezifikationen des W3C werden teilweise unterschiedliche Terminologien benutzt: So entspricht ein XML-Element im XPath- oder XSLT-Kontext einem Knoten.

2.3 Wohlgeformte und gültige XML-Dokumente

XML-Dokumente werden in wohlgeformte und gültige unterteilt. Wohlgeformte XML-Dokumente sind solche, die den in 2.2 beschriebenen syntaktischen Regeln folgen und nach der Header-Angabe mindestens ein Root-Element enthalten20.

Gültige XML-Dokumente sind wohlgeformte Dokumente, die zusätzlich eine „Document Type Definition“ (kurz: DTD) oder ein XML-Schema21 besitzen und die die dort beschriebene Struktur einhalten.

Von Fall zu Fall muss entschieden werden, ob wohlgeformte oder gültige XML-Dokumente erstellt werden sollen. Sowohl DTD als auch XML-Schema stellen eine Grammatik für das jeweilige XML- Dokument dar. Sie geben eine eindeutig definierte Struktur vor und ermöglichen so die Erstellung weiterer Dokumente, die die gleiche Struktur besitzen sollen. Ein gültiges XML-Dokument muss allerdings jedesmal auf seine syntaktische Übereinstimmung mit der zugrunde liegenden DTD bzw. dem XML-Schema überprüft werden. Dies bedeutet einen erheblichen Aufwand an Rechenleistung. In Anwendungen, in denen einmalig XML-Daten erstellt und diese anschliessend nur noch lesend zur Verfügung gestellt werden, würde auch ein „Zwischenszenario“ genügen: Nach der Erstellung werden die Daten einmalig auf ihre Gültigkeit gegenüber einer DTD oder XML-Schema überprüft. Nach erfolgreicher Prüfung werden sie - ohne Verweis auf DTD oder einem XML-Schema - als lediglich wohlgeformte Daten zur Verfügung gestellt.

2.4 Die Document Type Definition (DTD)

Eine DTD legt die Struktur eines XML-Dokuments fest: Welches Element darf an welcher Stelle auftauchen, wie werden Elemente geschachtelt und welchen Inhalt dürfen sie haben? Für die DTD gilt eine eigene, nicht XML-konforme Syntax. Eingeleitet wird sie durch das Schlüssel-Tag <!DOCTYPE , gefolgt von einem beliebig zu wählendem Namen. Eine eckige Klammer zeigt den Beginn der Element-Definitionen an, mittels ]> wird die DTD beendet22. Durch das Hinzufügen einer DTD würde aus dem wohlgeformeten Dokument aus Kapitel 2.2 ein gültiges23:

Abbildung in dieser Leseprobe nicht enthalten

Hier wird das einzige enthaltene Element ausgabe vom Typ #PCDATA definiert. Als #PCDATA definierte Elemente dürfen beliebig lange alphanumerische Zeichenketten enthalten. Die Datei 2.4-2.xml enthält eine etwas komplexere DTD. Hier sind in das Root-Element ausgabe zwei Elemente text geschachtelt - das Plus-Zeichen am Ende der Element-Definition erlaubt mehr als ein text-Element innerhalb ausgabe. Im Gegensatz hierzu definiert ein Fragezeichen ein optionales Element, welches nicht zwingend vorkommen muss. text-Elemente können wiederum die Elemente ueberschrift und kapitel beinhalten. Letztere enthalten alphanumerische Daten. Das Element kapitel wurde zusätzlich um das nicht-optionale Attribut nummer erweitert. Optionale Attribute werden mit #IMPLIED statt #REQUIRED gekennzeichnet.

Abbildung in dieser Leseprobe nicht enthalten

Attribute vom Typ CDATA können beliebigen alphanumerischen Inhalt enthalten. Im Gegensatz zu #PCDATA wird der Inhalt von CDATA nicht vom Parser auf Korrektheit überprüft. Gleichfalls sind Voreinstellungen in der DTD möglich. Eine Definition der Art

Abbildung in dieser Leseprobe nicht enthalten

läßt nur die Werte 1, 2 und 3 für nummer zu. Ein Element kann beliebig viele Attribute besitzen. Abkürzungen, sogenannte Entities, können ebenfalls in der DTD definiert werden. Folgende Entity:

Abbildung in dieser Leseprobe nicht enthalten

Dies sorgt dafür, dass im XML-Dokument alle Vorkommen von &autor; durch den Text „Peter Mustermann“ ersetzt werden. Wird dem Namen der Entity (in diesem Fall autor) ein „%“ vorangestellt, kann die Entity bereits im weiteren Verlauf der DTD und nicht erst im XMLDokument angewandt werden.

Komplexere DTDs würden eine XML-Datei unnötig aufblähen. Deswegen ist es möglich, DTDs in externe Dateien auszulagern. Anschließend können sie über die DOCTYPE-Anweisung in beliebig viele XML-Dokumente eingebunden werden24:

Abbildung in dieser Leseprobe nicht enthalten

Bei Verwendung des Schlüsselwerts SYSTEM handelt es sich um eine DTD, die sich auf demselben Rechner wie die aufrufende XML-Datei befinden muss. Bei Verwendung von PUBLIC kann sich die DTD auch auf anderen Rechnern befinden. Dies ist sinnvoll, wenn z.B. ofizielle DTDs des W3Cs direkt von der Homepage eingebunden werden sollen25.

2.5 Die DTD des TAZ-Corpus

Das TAZ-Corpus wurde aus einzelnen Texten der Berliner Tageszeitung „Die Tageszeitung“ zusammengestellt. Es liegt in Form gültiger XML-Dateien vor. Die entsprechende DTD wird aus einer externen Datei eingebunden26.

Zuerst werden die Entitys textabschnitt und satzabschnitt so definiert, dass sie auch innerhalb des weiteren Verlaufs der DTD benutzt werden können:

Abbildung in dieser Leseprobe nicht enthalten

Das Element corpus stellt das Root-Element dar und kann beliebig viele weitere Elemente des Typs article beinhalten:

Abbildung in dieser Leseprobe nicht enthalten

Das Element article wiederum setzt sich zusammen aus header und body: <!ELEMENT article (header, body)>

Der header setzt sich aus einigen weiter unten definierten Elementen des Typs #PCDATA zusammen. Das mit einem * gekennzeichnete Element autor darf leer bleiben:

Abbildung in dieser Leseprobe nicht enthalten

Der body enthält headings und den text, wobei erstere wieder leer bleiben können: <!ELEMENT body (headings*, text)>

headings setzen sich aus title und subtitle zusammen:

Abbildung in dieser Leseprobe nicht enthalten

title und subtitle machen Gebrauch von der Entity satzabschnitt:

Abbildung in dieser Leseprobe nicht enthalten

text enthält die in der Entity textabschnitt definierten Elemente iwp, clause, token und fnm sowie einen subtitle:

Abbildung in dieser Leseprobe nicht enthalten

Die Elemente fnm und iwp bestehen aus Elementen vom Typ token. Letzteres ist vom Typ #PCDATA definiert. Damit ist die Hierarchie am unteren Ende angelangt:

Abbildung in dieser Leseprobe nicht enthalten

clause expandiert zu den in satzabschnitt festgelegten Elementen: <!ELEMENT clause ((%satzabschnitt;)*)>

Da in der Entity satzabschnitt wiederum das Element clause definiert ist, kann eine clause aus beliebig tief ineinander geschachtelten Elementen des Typs clause bestehen. Abschliessend bekommen die Elemente token und clause einige Attribute zugewiesen, die teilweise optional (IMPLIED) sind:

Abbildung in dieser Leseprobe nicht enthalten

Zum Zeitpunkt der Erstellung dieser Arbeit war die DTD des TAZ-Corpus in der Version 1.0 nicht mehr aktuell. Es wurden weitere linguistische Strukturen hinzugefügt.

2.6 XML-Schema

Bereits die erste XML-Defintion von 1998 enthielt die Möglichkeit, XML-Dokumente nach vorgegebenen DTDs zu strukturieren27. Seitdem haben sich die Anwendungsbereiche für XML stark vergrößert und XML-annotierte Datenbestände wurden in ihrer Struktur komplexer. Dieser gestiegenen Komplexität konnte die DTD nicht mehr gerecht werden. Ihr fehlten Eigenschaften wie28:

- Definition neuer Datentypen und komplexer Datenstrukturen
- Aufteilung der DTD in mehrere Dokumente bzw. Kombination mehrerer separat gespeicherter Definitionen
- Wiederverwendbarkeit einzelner Definitionen oder Teile davon (komponentenbasierter Ansatz)

Diese offensichtlichen Nachteile der DTD führten 2001 zur Verabschiedung der XML-Schema- Definition29. Bei XML-Schemata handelt es sich um eine weitere Möglichkeit, die Strukturen eines XML-Dokuments festzulegen und somit gültige Dokumente zu erzeugen.

Auf die Einführung einer neuen Syntax wurde im Gegensatz zur DTD verzichtet, so dass ein XMLSchema lediglich ein weiteres wohlgeformtes XML-Dokument darstellt.

In Konkurrenz zur offiziellen XML-Schema-Definition des W3C-Konsortiums30 stehen die von Microsoft entworfene Variante BizTalk-Schema31 und XDR (XML Data Reduced) - Schema32. Auf letztere beiden soll hier aber nicht eingegangen werden.

2.6.1 Das Instanz-Dokument

Zur Veranschaulichung der Syntax von XML-Schemata33 soll wieder das Beispiel aus Kapitel 2.4 verwendet werden, diesmal allerdings wird anstatt einer DTD ein Schema zur Strukturierung des Dokuments eingesetzt.

Wieder wird das Dokument durch Angabe der XML-Version begonnen:

Abbildung in dieser Leseprobe nicht enthalten

In der nächsten Zeile wird das Root-Element (ausgabe) deklariert:

Abbildung in dieser Leseprobe nicht enthalten

Dieses wurde um zwei Attribute erweitert: Das Attribut xmlns definiert den Namens-Raum („Name-Space“), aus dem die weiteren Elemente des Schemas stammen. Hier wird auf die aktuelle Schema-Definition für Schema-Instanzen34 des W3C verwiesen (http://www.w3.org/2001/XMLSchema-instance).

Diesem Namensraum wird die Abkürzung xsi gegeben, so dass über Konstrukte der Art

xsi:Element

auf Elemente des entsprechenden Namens-Raums verwiesen werden kann. Dies geschieht im zweiten Attribut:

xsi:noNamespaceSchemaLocation="2.6.1-1.XSD"

Dieses verweist auf die Datei 2.6.1-1.xsd, welche die XML-Schema-Deklaration enthält. Im Gegensatz zur DTD wird das XML-Schema direkt im Root-Element deklariert: Somit ist keine weitere, nicht XML-konforme Angabe wie bei der DTD notwendig. Der Rest des Dokuments entspricht dem Inhalt der Datei 2.4-3.xml.

2.6.2 Das XML-Schema Dokument

Abbildung in dieser Leseprobe nicht enthalten

Das in 2.6.1 beschriebene Instanz-Dokument beinhaltet als Validierungs-Schema die Datei gueltig-schema.xsd. Dieses Schema beschreibt eine XML-Datei, die

- Ein Root-Element namens „ausgabe“ enthält.
- Dieses Root-Element kann beliebig viele weitere Elemente des Typs text enthalten.
- Das Element text wiederum enthält die Elemente ueberschrift und kapitel. Letzteres besitzt das Attribut „nummer“.

2.6.2.1 Der Kopf des XML-Schemas

Wie andere XML-Dokumente auch werden35 XML-Schemata eröffnet:

Abbildung in dieser Leseprobe nicht enthalten

Als nächstes folgt das Root-Element. Hier findet wiederum die Deklaration des Namens-Raums (http://www.w3.org/2001/XMLSchema), hier mit xs abgekürzt, statt:

Abbildung in dieser Leseprobe nicht enthalten

Steht das Attribut „elementFormDefault“ auf „qualified“, so dürfen im Dokument nur Elemente auftauchen, die über den deklarierten Namens-Raum (xs) definiert sind. Der Wert „unqualified“ würde hier auch Definitionen anderer Namens-Räume erlauben. Selbst das Root- Element (schema) wird über den Namens-Raum xs definiert. Da der Name und die zugehörigen Attribute eines XML-Elements immer gleichzeitig im Parser präsent sind, spielt es keine Rolle dass die Deklaration des Namens-Raums erst nach der Benennung des Root-Elements erfolgt.

2.6.2.2 Elemente deklarieren

Elemente können auf zwei Arten deklariert werden:

Einfache Elemente: Diese enthalten, unabhängig von möglichen Attributen, nur Text im Inhaltsbereich. Hierbei kann es sich um atomare Typen des Namens-Raums, aber auch um Aufrufe an anderer Stelle definierter komplexerer Daten-Typen handeln.

Eine einfache Definition eines XML-Dokuments mit einem String als Inhalt:

Abbildung in dieser Leseprobe nicht enthalten

Neben Strings können weitere primitive Daten-Typen deklariert werden. Die folgende Liste ist nicht vollständig und enthält nur die wichtigsten Datentypen36:

Zeichenketten:

- String: Alphanumerische Zeichenfolge beliebiger Länge.
- anyURI: Der „Uniform Resource Identifier“ zeigt auf eine externe Resource. Es können relative („../bild.png“) oder absolute Pfadangaben („http://www.doman.de/bild.png“) verwendet werden.
- QName: Mittels QName kann auf Elemente eines qualifizierten XML-Namens-Raums verwiesen werden.
- NOTATION: Attributwerte der in QName festgelegten Elemente.

Boolsche Logik:

- Ein Element vom Typ boolean kann die Werte true oder false enthalten. Alternativ ist die Schreibweise als 0 oder 1 möglich.
Nummerische Werte:
- decimal: Dezimalzahlen von beliebiger Genauigkeit.
- float: Maximal 32-Bit lange Dezimalzahlen. Hinzukommen einige Sonderwerte: Positive und negative Null (+0 bzw. -0), positive und negative Unendlichkiet (+∞ bzw. -∞ ) sowie „Not a Number“.
- double: Maximal 64-Bit lange Dezimalzahlen.

Sowohl bei float als auch double-Datentypen werden Exponentialzahlen in der Schreibweise [Mantisse] E [Exponent] angegeben. Beispiel: 2E10 enspricht 210.

Datum und Zeit:

- time: Enthält eine Uhrzeit in der Form SS:MM:SS.SSS, z.B. 14:20:23.001
- date: Datumsangabe der Form JJJJ-MM-TT, z.B. 2004-10-18

Binäre Daten:

- hexBinary: Speichert binäre Daten in hexadezimaler Schreibweise
- base64Binary: Nach dem Base64-Schema37 kodierter Datenstream

Komplexe Elemente: Elemente können weitere Elemente beinhalten - der Tiefe der Verschachtelung sind in XML keine Grenzen gesetzt. Sie werden durch das Tag

Abbildung in dieser Leseprobe nicht enthalten

umschlossen. Folgt direkt nach diesem (öffnenden) Tag ein weiterer (öffnender) Tag der Art

Abbildung in dieser Leseprobe nicht enthalten

so ist die Reihenfolge der weiteren innerhalb des complexType - definierten Elemente festgelegt und nicht willkürlich.

2.6.2.3 Attribute deklarieren

Jedes XML-Element kann Attribute beinhalten. In der XML-Schema-Syntax können Attribute wiederum auf zwei veschiedene Arten deklariert werden:

- Lokale Definition: Attribute werden direkt innerhalb eines komplexen Elements definiert und sind so auch nur für dieses Element gültig:

Abbildung in dieser Leseprobe nicht enthalten

- Globale Definition: Wird ein Attribut ausserhalb des komplexen Elements definiert so ist es für alle weiteren untergeordneten Elemente gültig. Die eigentliche Definition ändert sich dadurch nicht.

[...]


1 Zur Geschichte der ASCII-Definition: http://de.wikipedia.org/wiki/ASCII

2 ftp.suse.com/pub/suse/i386/9.1-personal-iso

3 http://www.java.com:80/en/download/manual.jsp

4 http://java.sun.com/j2se/1.5.0/download.jsp

5 http://www.cpan.org

6 http://www.cpan.org/src/README.html

7 http://www.activestate.com/Products/ActivePerl/

8 http://www.w3c.org

9 http://www.w3c.org/TR/1998/REC-xml-19980210 - Mittlerweile ist die dritte Edition der Spezifikation vom 4. Februar 2004 aktuell: http://www.w3.org/TR/2004/REC-xml-20040204/

10 http://www.isgmlug.org/sgmlhelp/g-index.htm

11 http://www.w3.org/TR/xhtml1/

12 http://www.w3.org/TR/xhtml1/#diffs

13 http://www.openoffice.org/

14 http://de.sun.com/Produkte/software/star/staroffice/index.jsp

15 http://www.adlnet.org/index.cfm?fuseaction=scormabt

16 http://www.mozilla.org/projects/xul/

17 http://www.w3c.org/XML/Binary/

18 http://www.w3.org/TR/1998/REC-xml-19980210#sec-intro: „ By construction, XML documents are conforming SGML documents “

19 Datei: wohlgeformt.xml

20 http://www.w3.org/TR/2000/REC-xml-20001006#sec-well-formed

21 Auch bei dem später noch zu beschreibenden NG-RELAX handelt es sich um XML-Schemata

22 http://www.w3.org/TR/2000/REC-xml-20001006#dt-doctype

23 Datei: gueltig-dtd.xml

24 Dateien: gueltig-dtd-extern.xml und gueltig-dtd-extern.xml

25 Seeboerger-Weichselbaum, Michael: Das Einsteigerseminar XML. Seite 91, 2. Auflage, Kaarst 2000

26 Datei: taz-corpus-version1.0.dtd - Im Kontext des TAZ-Corpus lautet der Dateiname der DTD lediglich „corpus.dtd“. Aus Gründen der Übersichtlichkeit wurde der Name hier erweitert

27 http://www.w3.org/TR/1998/REC-xml-19980210#dt-doctype

28 Skulschus, Marco und Wiederstein, Marcus: XML Schema. Seite 12, 1. Auflage, Bonn 2004

29 http://www.w3.org/TR/xmlschema-0/

30 http://www.w3.org/TR/xmlschema-1/ und http://www.w3.org/TR/xmlschema-2/

31 http://www.microsoft.com/biztalk/evaluation/overview/biztalkserver.asp und http://www.infoworld.com/cgi- bin/displayStory.pl?991022.hnibmxml.htm

32 http://www.oasis-open.org/cover/XMLData-Reduced19990509.html

33 Datei: gueltig-schema.xml

34 In der Terminologie des W3C wird als „Schema-Instanz“ ein per XML-Schema validiertes XML-Dokument bezeichnet

35 Datei: gueltig-schema.xsd

36 http://www.w3c.org/TR/xmlschema-2/#built-in-primitive-datatypes

37 http://www.ietf.org/rfc/rfc2045.txt

Details

Seiten
66
Jahr
2005
ISBN (eBook)
9783638356756
Dateigröße
732 KB
Sprache
Deutsch
Katalognummer
v35890
Institution / Hochschule
Universität Trier
Note
1,3
Schlagworte
Beschreibungssprache Textcorpora

Autor

Teilen

Zurück

Titel: XML als Beschreibungssprache für Textcorpora