|
|
 |
Informatik-Lexikon
XML - eXtensible Markup Language
XML-Schema
XML-Strukturaquisition
XML
Kurzinfo Die
eXtensible Markup Language (XML) findet zunehmend starke Beachtung. In
den letzten Jahren gewann neben Java kein anderes Thema in so kurzer Zeit
an Bedeutung. XML basiert auf der Standard Generalized Markup Language
(SGML), die 1986 zum ISO-Standard avancierte.
|
Erläuterung
Ein Dokument (im weitesten Sinne) besteht aus Inhalt, Struktur und Layout.
Die Ausgabe eines Dokuments auf unterschiedlichen Medien darf nicht zum
Informationsverlust führen, während sich das Aussehen je nach
Medium ändern kann. SGML basiert auf dem Konzept der Trennung des
Informationsgehalts eines Dokuments von seinem Erscheinen. Mit Hilfe von
Markierungen (markups") werden die Struktur und Daten eines
Dokuments beschrieben. Diese Beschreibung wird mit Marken (auch
Tag genannt) in das Dokument eingebettet. Die Interpretation und Verarbeitung
der Strukturinformationen eines Dokuments liegt im Ermessen des verarbeitenden
Programms. Jede Marke markiert den Anfang und das Ende eines Elements.
SGML schreibt keine feste Menge von Elementen vor. Sie beschreibt eher
einen Weg, wie Elemente definiert werden und was die Beziehung der definierten
Elemente in einer bestimmten Dokumentenklasse ist.
Eine Menge von SGML-Elementen, die für die Lösung eines bestimmten
Problems (z.B. eine Vorlage für Berichte) definiert sind, heißt
eine SGML-Anwendung. Jede SGML-Anwendung wird durch eine Document
Type Definition (DTD) beschrieben, die die Grammatik dieser Anwendung
vorschreibt.
Wenn ein Dokument der DTD einer SGML-Anwendung genügt, ist es eine
Instanz dieser Anwendung.
XML
In den ersten Jahren des WWW konnte die HyperText Markup Language
(HTML), eine SGML-Anwendung, ihre Aufgabe als Seitenbeschreibungssprache
erfüllen. Im Laufe der Zeit erwies sich aber HTML als zu restriktiv
und unflexibel. Im Web existieren unterschiedliche Angebote unter anderem
für Datenbanken, Warenhäuser, Dienstleistungen, von denen jedes
seine eigene Datenbeschreibungssprache hat. Eine neue Sprache war notwendig,
die weder die HTML-Einschränkungen, noch die SGML-Komplexität
hatte. Die Lösung sah das WWW-Konsortium (W3C) in der Definition
einer Untermenge von SGML, welche die selten benutzten Elemente von SGML
nicht beinhaltet und gleichzeitig flexibel genug ist, um den unterschiedlichen
Anforderungen des Webs wie z.B. Heterogenität, Internationalisierung,
Erweiterbarkeit gerecht zu werden.
Mit diesem Ziel stellte das W3C im November 1996 den Entwurf des XML-Standards
vor [3]. In der Einführung ist zu lesen:
XML describes a class of data objects stored on computers and
partially describes the behavior of programs which process these objects.
Such objects are called XML documents. XML is an application profile
or restricted form of SGML".
Die Version 1.0 wurde im Februar 1998 vorgelegt. Als Ziele werden darin
u.a. einfache Benutzung im Internet, Unterstützung unterschiedlicher
Anwendungen, Kompatibilität mit SGML, Einfachheit sowohl beim Erzeugen
als auch bei der Verarbeitung, minimale Zahl an optionalen Eigenschaften
und Lesbarkeit genannt.
Ein XML-Dokument besteht aus drei Teilen: dem Prolog, dem Elemente und
Misc". Der letztere beinhaltet Kommentare und Verarbeitungsanweisungen,
die von dem XML-Parser an die Anwendung weitergereicht werden. Im Prologteil
werden XML-Deklarationen, der Dokumenttyp und andere Charakteristika des
Dokuments beschrieben.
Der Prolog kann auch leer sein. Die XML-Deklaration enthält Informationen
über die Version und den Zeichensatz sowie die Angabe, ob ein Dokument
standalone ist.
Beispiel 1 zeigt einen einfachen Prolog:
Beispiel 1:
< ?xml version = „1.0" encoding = „UTF-8"? >
< !DOCTYPE mail SYSTEM „http://server.de/mail.dtd" >
Es handelt sich hier um ein XML-Dokument der Version 1.0, das die Zeichenkodierung
UTF-8" verwendet. Das Dokument ist vom Typ mail",
und dessen DTD ist im Dokument namens mail.dtd" auf dem Rechner
server.de" zu finden. XML ist Unicodefähig. Während
in HTML die Groß-/Kleinschreibung bei Elementnamen keine Rolle spielt
(oder sie wird von den verarbeitenden Programmen geduldet), darf man in
XML diese nicht ignorieren.
Im Beispiel 1 wurde ein XML-Dokument vorgestellt, das eine externe
DTD hat. Die DTD kann auch im Dokument enthalten sein. In diesem Fall
spricht man von einer internen DTD.
XML erlaubt die flexible Organisation des Dokumentinhalts. Die Flexibilität
wird mit Hilfe von Entitäten erreicht. Sie ermöglichen
das Aufbrechen des Dokuments in mehrere Objekte, die getrennt gespeichert
werden können. So erreicht man einen gewissen Grad von Wiederverwendbarkeit
und/oder Verteiltheit. Im einfachen Fall ist eine Entität eine Abkürzung,
welche Entitätsname genannt wird. Der Text, auf den sich die
Abkürzung bezieht, heißt Entitätsinhalt. Eine Entität
kann (so wie die DTD) intern oder extern deklariert werden. Eine Entität,
die als Abkürzung eines XML-Elements verwendet wird, heißt
Parameterentität. Sie kann nur in der DTD eingesetzt werden.
Wie in SGML können Elemente in XML verschachtelt sein. Die wichtigste
Regel ist, daß ein Element andere Elemente umschließen muß.
Diese und einige andere Regeln bilden die Wohlgeformtheitsbeschränkungen.
Ein XML-Dokument ist wohlgeformt, wenn es allen diesen Beschränkungsregeln
genügt. Ist ein Dokument wohlgeformt, und genügt es der Grammatik
einer DTD, ist es ein gültiges XML-Dokument. Beispiel 2 zeigt
ein gültiges XML-Dokument mit der zugehörigen DTD.
Beispiel 2:
organisation. dtd"
< !ELEMENT organisation (name, mail + ) >
< !ELEMENT name (#PCDATA) >
< !ELEMENT mail (#PCDATA) >
organisation. xml"
< ?xml version = 1.0" encoding = UTF-8"? >
< !DOCTYPE organisation SYSTEM organisation.dtd" >
< name > World Wide Web Consortium
< mail > w3c@w3.org
Ein XML-Prozessor muß die Verletzung der Wohlgeformtheitsbeschränkungen
feststellen können.
Namensräume
Um Elemente der DTDs wiederverwenden zu können und sie nicht immer
wieder definieren zu müssen, definiert XML den Namensraum.
Mit Hilfe von Namensräumen kann man unternehmensweit einheitliche
(evtl. vorgeschriebene) Elemente einführen. Mit
< elem xmlns:gi = "http://gi-ev.de/schema" >
wird z.B. ein neuer Namensraum (gi) bekannt gegeben, der den angegebenen
URL vertritt. Nun kann man unter Eingabe von gi:" auf die in
dem angegebenen Dokument definierten Elemente und Attribute zugreifen.
Es ist zu beachten, daß der Zugriff nur innerhalb von elem gültig
ist. Mit
< gi:article band = "22" heft = "6" autor
= "farsi"/ >
wird z.B. dieser Artikel referenziert, vorausgesetzt, es gibt ein Dokument
unter dem angegebenen URL, das das Element article" mit den
angegebenen Attributen enthält.
XLink, XPointer
Die Möglichkeit, Dokumente mit Hilfe von Verweisen (Links) untereinander
zu vernetzen, ist bereits von HTML bekannt. Diese Möglichkeit bietet
auch XML. Es liegen dem W3C zwei Entwürfe vor, nämlich XML
Linking Language (XLink) und XML Pointer Language (XPointer)
(beide vom Juli 1999). XLink definiert zwei Typen von Verweisen, den einfachen
und den erweiterten Verweis. Der einfache Link entspricht dem von
HTML. Mit einem erweiterten Link kann ein Verweis zwischen zwei Ressourcen
errichtet werden, ohne daß eine von ihnen irgend etwas über
diese Relation weiß. In diesem Fall existiert der Link in einer
dritten Ressource. Man kann außerdem einen Link zwischen mehr als
nur zwei Dokumenten definieren. Einrichten von Links von Medien oder Dateien
aus, die selbst nicht beschreibbar sind (z.B. CD-Roms), sind ebenso möglich.
Mit XPointer kann auf eine Stelle oder einen Bereich innerhalb eines
XML-Dokuments verwiesen werden. Absolute Adressierung ist mit Hilfe von
vordefinierten Schlüsselwörtern möglich. Ist mit Hilfe
eines der Schlüsselwörter der Ausgangspunkt eines Verweises
festgestellt, kann man mit relativen Angaben auf beliebige Stellen eines
Dokuments verweisen. Mit http://gi-ev.de/#root().child(2, P) wird z.B.
der zweite mit <P>-Marke definierte Abschnitt in der Homepage der
GI referenziert.
XSL
XML ist eine Strukturbeschreibungssprache und kann u.a. zum Datenaustausch
in heterogenen Umgebungen verwendet werden. Aber was ist mit der Darstellung?
Im Gegensatz zur HTML beinhaltet ein XML-Dokument keine Informationen,
wie seine Daten dargestellt werden sollen. Dies wird mit eXtensible
Stylesheet Language (XSL) bewerkstelligt. Mit XSL werden Stilvorlagen
für XML-Dokumente beschrieben, um sie zwecks der Darstellung im Web
in HTML umzuwandeln oder dem bearbeitenden Programm die Darstellungregeln
vorzuschreiben. Um dies zu erreichen, führt ein XML-Stylesheet-Prozessor
einen zweistufigen Prozeß durch. In der ersten Phase (tree transformation)
wird ein Ergebnisbaum von dem Ausgangsdokument erzeugt, und in
der zweiten Phase (formatting) wird der Ergebnisbaum interpretiert,
um eine formatierte Präsentation für Bildschirm, Papier, Sprache
oder ein anderes Medium zu erzeugen.
Weitergehende Arbeiten, Projekte
Zahlreiche Arbeiten verwenden gegenwärtig XML als Basis. Neben Industrieprojekten
zählen dazu auch Projekte beim W3C. Hier werden nur einige von ihnen
erwähnt:
- XML-Dokumente liegen bekanntlich in Textform vor. Eine Anwendung,
die ein XML-Dokument bearbeiten will, muß zuerst dieses analysieren
und den Inhalt des Dokuments in eine Baumstruktur umwandeln. Um eine
einheitliche Sicht auf XML-Dokumente zu haben, hat das W3C das Document
Object Model (DOM, [2]) spezifiziert. DOM
ist eine plattform- und sprachunabhängige Schnittstelle, die Programmen
einen dynamischen Zugriff auf Inhalt und Struktur der Dokumente ermöglicht.
- Die Synchronized Multimedia Integration Language (SMIL, [4])
soll die Integration einer Menge von unabhängigen" Multimediaobjekten
in eine synchronisierte Multimediapräsentation erlauben.
- Mit dem Resource Description Framework (RDF [5])
versucht W3C, ein Rahmenwerk zur Bearbeitung von Metadaten zur Verfügung
zu stellen. RDF unterstützt die Interoperabilität zwischen
Anwendungen, die maschinenverständliche Informationen über
das Internet austauschen.
- Bei Prescod u. Goldfarb [1] sind weitere
Beispiele angegeben, wo XML in größeren Projekten Einsatz
findet: Von webbasierten Auktionen bis personalisierten Web-Seiten für
Vielflieger.
Fazit
XML unterstützt den Austausch von Daten zwischen Anwendungen in
offenen heterogenen Systemen. Die Standardisierung des Sprachumfangs ermöglicht
die Interoperabilität der Programme verschiedener Anbieter. Es gibt
mittlerweile viele z. T. frei verfügbare Programmbibliotheken für
das Parsen, Konvertieren und Darstellen von XML-Dokumenten. In diesem
Artikel konnte auf einige Aspekte von XML und den Entwicklungstand nicht
eingegangen werden. Weitere Informationen sind bei Prescod u. Goldfarb
[1], Mintert u. Behme [6],
Fachzeitschriften und auf den W3C-Seiten im WWW zu entnehmen.
Danksagung
Der Autor dankt Kurt Geihs und Wolfgang Putz für ihre Kommentare zu diesem
Beitrag.
Artikelanfang Seitenanfang
|
|
Literatur
- Prescod, P., Goldfarb, C.: The XML Handbook.
Prentice-Hall International 1998
- W3Consortium. Document Object Model,
www.w3.org/DOM/,
December 1998
- W3Consortium. EXtensible Markup Language,
www.w3.org/TR/REC-xml,
February 1998
- W3Consortium. Synchronized Multimedia Integration
Language,
www.w3.org/TR/REC-smil/,
June 1998
- W3Consortium. Resource description framework,
www.w3.org/rdf, March
1999
- Mintert, S., Behme H.: XML in der Praxis. Addison-Wesley
1998
|
|
Autor & Copyright
Reza Farsi
Verteilte Systeme und Betriebssysteme,
Johann Wolfgang Goethe-Universität Frankfurt
farsi@cs.unifrankfurt.de
© 1999 Informatik Spektrum, Springer-Verlag Berlin Heidelberg
Artikelanfang Seitenanfang
|
XML-Schema
Kurzinfo XML
hat sich als Sprache zur Definition von Dokumenten für den universellen
Datenaustausch etabliert. XML-Schema ermöglicht ausgefeilte Definitionen
für XML-Dokumente und hat beste Chancen, die bisher eingesetzte DTD abzulösen.
Neben einer allgemeinen Einführung geht dieser Beitrag auch auf verfügbare
Produkte und neue Möglichkeiten der objektorientierten Softwareentwicklung
mit XML-Schema ein.
|
Erläuterung
Das World Wide Web Consortium (W3C) hat die Spezifikation von XML-Schema
im Mai 2001 mit dem Status Recommendation " versehen und somit
nach einem dreijährigen Entwicklungsprozess verabschiedet [14].
Ein XML-Schema definiert ähnlich wie die DTD (Document Type Definition)
Regeln für die Syntax und die Struktur einer Klasse von XML-Dokumenten
[12].
Die DTD ist Teil der XML-Spezifikation. Es hat sich jedoch herausgestellt,
dass die DTD Schwächen aufweist, die zur Entwicklung von XML-Schema
geführt haben. Die wichtigsten Verbesserungen sind:
- Jedes XML-Schema ist selbst ein XML-Dokument, sodass im Gegensatz
zur DTD keine spezielle Syntax verwendet wird, die separate Werkzeuge
zur Verarbeitung erfordert. Insbesondere lässt sich jedes XML-Schema
wiederum durch ein XML-Schema validieren, ohne dass eine weitere Metaebene
benötigt wird.
- Auch komplexe Integritätsbedingungen sind formulierbar.
- XML-Schema enthält eine große Zahl vordefinierter Datentypen
und ermöglicht die Definition von eigenen Datentypen, wodurch eine
Typprüfung möglich wird.
- Bei Datentypen werden Vererbung und Substitution unterstützt.
- Nullwerte sind, wie bei Referenzen und in Datenbanken üblich,
darstellbar.
- Das Modularisieren und Wiederverwenden von XML-Schemata ist möglich.
- Benennungskonflikte können durch Verwendung von XML-Namensräumen
vermieden werden.
Beispiel
|
|
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3 <xsd:complexType name="PersonTyp" abstract="true">
4 <xsd:sequence>
5 <xsd:element name="Vorname"
type="xsd:string" maxOccurs="3"/>
6 <xsd:element name="Name" type="xsd:string"/>
7 <xsd:element name="Geburtsdatum"
type="xsd:date"/>
8 </xsd:sequence>
9 </xsd:complexType>
10 <xsd:complexType name="MitarbeiterTyp">
11 <xsd:complexContent>
12 <xsd:extension base="PersonTyp">
13 <xsd:sequence>
14 <xsd:element name="Gehalt">
15 <xsd:simpleType>
16 <xsd:restriction
base="xsd:float">
17 <xsd:minInclusive
value="10000"/>
18 </xsd:restriction>
19 </xsd:simpleType>
20 </xsd:element>
21 </xsd:sequence>
22 </xsd:extension>
23 </xsd:complexContent>
24 </xsd:complexType>
25 <xsd:element name="Unternehmen">
26 <xsd:complexType>
27 <xsd:sequence>
28 <xsd:element name="Mitarbeiter"
type="MitarbeiterTyp"
29 maxOccurs="unbounded"/>
30 </xsd:sequence>
31 </xsd:complexType>
32 </xsd:element>
33 </xsd:schema>
|
Abb. 1. Beispiel für ein XML-Schema.
|
Einige dieser Besonderheiten sollen anhand des Beispiels in Abb.1 erläutert
werden. In Zeile 2 wird zunächst der Namensraum für alle Schlüsselworte
festgelegt, die im Folgenden durch das Präfix xsd kenntlich
gemacht werden. Der Datentyp PersonTyp wird in Zeile 3 als
abstrakt definiert, kann also nicht für Element- oder Attributdeklarationen
verwendet werden. Das Subelement Vorname kann maximal dreimal
vorkommen (Zeile 5) .Geburtsdatum ist mit dem in XML-Schema
vordefinierten Datentyp date deklariert. In Zeile 12 wird
PersonTyp als Supertyp für MitarbeiterTyp
festgelegt, d.h., MitarbeiterTyp erbt alle Elemente und Attribute
von PersonTyp und fügt ihm das Element Gehalt
hinzu. Gehalt besitzt als Datentyp eine Dezimalzahl, die
größer oder gleich 10.000 sein muss. Schließlich enthält
das Element Unternehmen in Zeile 28 eine Referenz auf das
Element Mitarbeiter des Datentyps MitarbeiterTyp
das beliebig oft vorkommen kann.
Ein Beispiel für ein zum Schema passendes XML-Dokument ist in Abb.
2 enthalten.
|
|
<?xml version="1.0" encoding="UTF-8"?>
<Unternehmen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="Beispiel.xsd">
<Mitarbeiter>
<Vorname>Hagen</Vorname>
<Vorname>Dieter</Vorname>
<Name>Becker</Name>
<Geburtsdatum>1967-08-13</Geburtsdatum>
<Gehalt>39512.34</Gehalt>
</Mitarbeiter>
<Mitarbeiter>
<Vorname>Jutta</Vorname>
<Name>Stehl</Name>
<Geburtsdatum>1976-09-11</Geburtsdatum>
<Gehalt>42500.34</Gehalt>
</Mitarbeiter>
</Unternehmen>
|
Abb. 2. Beispiel für ein zum Schema in Abb. 1
passendes XML-Dokument
Verfügbare Produkte
Das W3C hat neben der Spezifikation [14] auch
eine Einführung in XML-Schema mit zahlreichen Beispielen veröffentlicht
[7].Es gibt bereits ausgereifte XML-Schema-Editoren
(beispielsweise XML Spy Suite [1] und Turbo
XML [13]), welche die Erstellung von XML-Schemata
durch geeignete Benutzeroberflächen stark vereinfachen und die syntaktische
Korrektheit der erstellten XML-Schemata sicherstellen. Die Schemagültigkeit
kann aber auch mittels frei verfügbarer Validatoren kontrolliert
werden. Soll dies innerhalb selbst entwickelter Programme erfolgen, übernehmen
validierende Parser (z.B. Apache Xerces [2])
diese Aufgabe.
Eine Produktübersicht für XML-Schema ist unter www.wifo.uni-mannheim.de/xml-schema/
zu finden.
Die Verbreitung von XML-Schema nimmt ständig zu. Schema-Repositorys,
deren wichtigste Vertreter XML.org [15]
und Microsoft BizTalk [8] sind, enthalten
wiederverwendbare XML-Schemata für bestimmte Anwendungsbereiche.
Auch die Initiative ebXML [4] benutzt XML-Schemata
zur Definition ihrer Standards.
Ein interessanter Aspekt im Zusammenhang mit der objektorientierten
Modellierung von Systemen ist, dass sich jedes XML-Schema (und sogar die
komplette Syntax von XML-Schema) als UML-Klassendiagramm darstellen lässt.
CASE-Tools, welche die XML-Metadata-Interchange-Spezifikation (XMI
[9]) unterstützen, können automatisch
aus einem UML-Klassendiagramm das zugehörige XML-Schema erzeugen.
Und auch der umgekehrte Vorgang das Reverse Engineering
ist möglich.
Objektorientierte Softwareentwicklung
Auch für die objektorientierte Softwareentwicklung bietet XML-Schema
interessante Möglichkeiten, wobei speziell die Programmiersprache
Java in Betracht kommt. Beispielsweise besitzen viele der in XML-Schema
vordefinierten Datentypen direkte Entsprechungen in Java [3].Darüber
hinaus sind sowohl XML als auch Java plattformunabhängig konzipiert.
Der wichtigste Einsatzbereich von XML-Schema bei der objektorientierten
Softwareentwicklung ist derzeit das XML-Data-Binding. Dabei werden
XML-Schemata durch einen Schema-Compiler automatisch in die Klassen einer
objektorientierten Programmiersprache übersetzt. Im Gegensatz dazu
muss bei Verwendung einer DTD in einem manuell zu erstellenden XML-Dokument,
dem sog. Binding-Schema, die mangelnde Ausdrucksfähigkeit der DTD
aufwändig ausgeglichen werden.
Ein XML-Data-Binding-Framework stellt Methoden zum Zugriff und zur Manipulation
der Attribut- und Elementwerte eines schemagültigen XML-Dokuments
zur Verfügung und nimmt deren Validierung vor. Dieses Verfahren ist
effizienter und einfacher als der Einsatz von SAX oder DOM
[11].
Derzeit sind zahlreiche XML-Data-Binding-Frameworks in Entwicklung,
dazu gehören insbesondere die Open-Source-Projekte Castor
[6] und Zeus [5]
sowie von Sun das Java API for XML Processing (JAXP) ab Version
1.2 [10].
|
|
Unternehmen unternehmen
= Unternehmen.unmarshal(new FileReader ("Beispiel.xml"));
Enumeration mitarbeiter
= unternehmen.enumerateMitarbeiter(); // leider keine
Iteratoren
while (mitarbeiter.hasMoreElements()) {
Mitarbeiter m = (Mitarbeiter) mitarbeiter.nextElement();
for (int i = 0; i < m.getVornameCount(); ++i)
out.print(m.getVorname(i) + "");
String name = m.getName();
Date geburtsdatum = m.getGeburtsdatum().toDate();
float gehalt = m.getGehalt();
out.println(name + ", "
+ DateFormat.getDateInstance().format (geburtsdatum) + ",
"
+ gehalt);
}
// ... Daten modifizieren, z.B.
// unternehmen.getMitarbeiter(0).setGehalt(48000);
if (unternehmen.isValid())
unternehmen.marshal(new FileWriter("Beispiel2.xml"));
|
Abb. 3. Java-Programmfragment zum XML-Data-Binding
mit Castor
|
In Abb. 3 ist ein Ausschnitt aus einer Methode gezeigt, die alle Mitarbeiter-Elemente
sowie Subelemente aus einem schemagültigen XML-Dokument ausliest
und anzeigt. Mit geeigneten Methoden wird der Inhalt der einzelnen Mitarbeiter-Elemente
ermittelt. Beim Element Vorname ist dabei zu beachten, dass es mehrfach
auftreten kann. Auf ebenso einfache Weise können Elemente mittels
Methodenaufruf geändert werden.
Ein XML-Data-Binding-Framework übernimmt die Validierungsregeln
aus dem XML-Schema und generiert geeigneten Programmcode zur Validierung
der zu bearbeitenden Daten. In eigenem Programmcode können entsprechende
Prüfungen deshalb entfallen. Dadurch vereinfacht sich die Programmentwicklung,
und die Programme sind später leichter zu warten. Im Beispiel wird
das Gehalt eines Angestellten modifiziert und anschließend mit isValid
geprüft, ob die neuen Daten zum Schema passen (s. Abb. 3) .Dabei
müssen die Daten vor der Validierung nicht erst in einem XML-Dokument
gespeichert werden.
Fazit
Aufgrund der Standardisierung durch das W3C nimmt der Einsatz von XML-Schema
auf breiter Front zu. Dokumentiert wird dieser Trend durch bereits verfügbare
sowie angekündigte Tools. Wie gezeigt, existieren für XML-Schema neben
der eigentlichen Anwendung als Beschreibungssprache für XML-Dokumente
auch interessante Einsatzgebiete bei der objektorientierten Softwareentwicklung.
Dies lässt erwarten, dass XML und XML-Schema auch Eingang in zukünftige
Programmierparadigmen finden werden.
Artikelanfang Seitenanfang
|
|
Literatur
- Altova GmbH: XML Spy Suite. www.xmlspy.com
- Apache XML Project: Xerces – XML Parsers in
Java and C++.
http://xml.apache.org
- Biron, P. V., Malhotra, A.: XML Schema Part
2 – Datatypes. World Wide Web Consortium, Recommendation.
www.w3.org/TR/xmlschema-2
(2001)
- ebXML.org: Electronic Business XML (ebXML).
www.ebxml.org
- Enhydra.org: Zeus. http://zeus.enhydra.org/index.html
- ExoLab Group: Castor Project. http://castor.exolab.org
- Fallside, C.: XML Schema Part 0 – Primer. World
Wide Web Consortium, Recommendation.
www.w3.org/TR/xmlschema-0
(2001)
- Microsoft: BizTalk. www.biztalk.org
- OMG: XMI Production for XML Schema Specification.
http://cgi.omg.org/docs/ptc/01-12-03.pdf
(2001)
- Sun Microsystems: Java API for XML Processing
(JAXP).
http://java.sun.com/xml/jaxp
(2002)
- Sun Microsystems: Java Architecture for XML
Binding (JAXB) – Frequently Asked Questions.
http://java.sun.com/xml/jaxb/faq.html
(2001)
- Thompson, H. S., Beech, D., Maloney, M., Mendelsohn,
N.: XML Schema Part 1 – Structures. World Wide Web Consortium, Recommendation.
www.w3.org/TR/xmlschema-1
(2001)
- TIBCO Software Inc.: TIBCO TurboXML. www.tibco.com
- W3C: XML Schema. www.w3.org/XML/Schema
- XML.org: www.xml.org
Hinweis: Die URLs entsprechen dem Stand bei der Veröffentlichung
des Artikels und werden nicht aktualisiert.
Artikelanfang Seitenanfang |
|
Autoren & Copyright
Matthias Hansch
McKinsey & Company,
Birkenwaldstraße 149,
70191 Stuttgart
matthias_hansch@mckinsey.com
Stefan Kuhlins
Universität Regensburg,
Lehrstuhl für Wirtschaftsinformatik IV,
Universitätsstraße 31,
93040 Regensburg
stefan.kuhlins@wiwi.uni-regensburg.de
Martin Schader
Universität Mannheim,
Lehrstuhl für Wirtschaftsinformatik III,
Schloss,
68131
Mannheim
mscha@wifo3.uni-mannheim.de
© 2002 Informatik Spektrum, Springer-Verlag Berlin Heidelberg
Artikelanfang Seitenanfang |
XML-Strukturakquisition
Kurzinfo Derzeit
oft diskutierte Zukunftsszenarien wie das semantische Web oder der Einsatz
von Datenbanktechnik in der Dokumentenwelt gehen stillschweigend von der
Annahme aus, dass in den Dokumenten relevante strukturelle und inhaltliche
Aspekte durch eine geeignete Form der Annotation explizit kenntlich gemacht
sind.
|
Erläuterung
Diese Annotationsformalismen bezeichnet man als Markup-Sprachen, und
XML ist der De-fac-to-Standard. Ist diese Annahme verletzt, so wird in
der Regel eine direkte maschinelle Auswertung unmöglich. Taucht z.B.
in einem E-Commerce-Angebot die Zahl 12.05 im Fließtext auf, so
kann diese maschinell erst dann vernünftig interpretiert werden,
wenn die semantische Rolle, etwa mit Hilfe von Tags der Form <Haltbarkeitsdatum>
12.05</Haltbarkeitsdatum>, explizit gemacht wurde. Weitere
Tags müssen eindeutig erkennbar machen, auf welches Produkt sich
die Angabe bezieht. Bei der Mehrzahl der existierenden und derzeit produzierten
Dokumente sind die benötigten strukturellen Markierungen a priori
nicht vorhanden. Da eine rein manuelle Akquisition der Strukturinformation
aus Kostengründen nicht in Frage kommt, ist eine maschinelle Unterstützung
notwendig. In diesem Schlagwortartikel gebe ich einen Überblick über
Werkzeuge zur Durchführung einer XML-Strukturakquisition für
vorhandene Dokumente.
Klassifikation von Formaten und Werkzeugen
Ein Blick auf den Schreibtisch, in das eigene Filesystem, in den vorliegenden
Artikel, in das Web oder auf sonstige Dokumentensammlungen zeigt, dass
heute noch sehr wenige Dokumente in XML vorliegen. Gründe dafür
sind die Vorherrschaft von Druck auf Papier als Dokumentenformat, die
noch mangelnde XML-Unterstützung von Microsoft-Office-Paketen sowie
die Etablierung von HTML als Lingua franca des Web. Wenn man zunächst
Papierdokumente außer Acht lässt, lassen sich die elektronischen
Formate in folgende drei Gruppen einteilen:
- deskriptive,
- prozedurale und
- präsentationale Formate.
Liegen Dokumente in einem deskriptiven Format vor, so ist bereits
eine hierarchische, baumartige Struktur explizit ausgezeichnet, die den
Aufbau eines Dokuments und seiner Teile beschreibt. Der rein textuelle
Inhalt ist in Blättern des Baums zu finden. In SGML Ð der Urmutter
der Markup-Sprachen Ð und bei dem daraus abgeleiteten, vereinfachten
XML-Standard wird die entsprechende Markierung realisiert, indem Tags
um die Textbausteine schachtelförmig angeordnet werden. Außerdem
besteht die Möglichkeit, ein Dokument mit Hilfe so genannter Stylesheets
in verschiedene Präsentationsformate zu transformieren. Beispiele
für deskriptive Formate sind MathML, SCORM und TEI Ð in XML formulierte
Standards aus den Bereichen Mathematik, E-Learning und Literatur.
Prozedurale Formate bestehen aus textuellem Inhalt plus expliziten
Visualisierungsanweisungen, wie beispielsweise PostScript.
Präsentationale Formate kennen keine explizite Auszeichnung
von Struktur oder Layout. Sofern diese Informationen nicht gänzlich
fehlen sollen, werden sie mit Hilfe des Zeichensatzes umschrieben, mit
dem auch der Inhalt verfasst ist. In E-Mails und Newsartikeln werden z.B.
Listenelemente mit vorangestelltem Bindestrich oder Mehrspaltigkeit durch
Leerzeichen angedeutet.
Ergänzend bleibt anzumerken, dass XML-basiert nicht zwangsweise
mit deskriptiv gleichzusetzen ist. Die Reformulierung des HTML-Standards
in XHTML1.0 beispielsweise erfolgte zwar aufbauend auf XML, bleibt jedoch
weiterhin eine Mischform deskriptiver Struktur- und prozeduraler Layoutauszeichnung.
Auch LATEX und die Formate aktueller Office-Applikationen besitzen teils
prozedurale, teils deskriptive Elemente.
Um die reichhaltigen Anfrage-, Manipulations- und Weiterverarbeitungsmöglichkeiten
deskriptiver Formate nutzen zu können, muss zum einen bei Werkzeugen
zur Neuerstellung von Dokumenten eine XML-Anbindung realisiert, zum anderen
der vorhandene Dokumentenbestand mittels geeigneter Formen der Strukturakquisition
nach XML konvertiert werden. Die hierfür existierende Software lässt
sich anhand der Ausgangsformate in drei Gruppen einteilen:
- Werkzeuge zur Informationsextraktion (IE) aus präsentationalen
Daten,
- Document-Analysis and Understanding (DAU) gedruckter Dokumente,
- Wrapper-Tools für die Strukturgewinnung aus (X)HTML.
Obwohl sich die Zielsetzung und auch die angewandten Techniken überschneiden,
sind Softwaresysteme in drei weitgehend unabhängigen Forschungs-Communities
entstanden.
Informationsextraktionssysteme
Während in Europa die Forschung zu Informationsextraktionssystemen
auf Anwendungen im E-Commerce fokussiert, sieht man einigen amerikanischen
Veröffentlichungen deutlich das dahinter stehende militärische
Interesse an. In den zitierten Anwendungen werden z.B. in großen
Sammlungen elektronischer Zeitungen Artikel über terroristische Aktivitäten
automatisch lokalisiert und ausgewertet. Abstrakter gesprochen werden
in Textkorpora informationstragende Muster zu speziellen Inhalten gesucht,
mit dem Ziel, die vorgefundenen Informationen in ein Schema bzw. Datenmodell
abzubilden oder die relevanten Textpassagen mit Struktur anzureichern.
Zwei Sorten Regeln zum Lokalisieren von zweierlei Sorten der Informationsverpackung
lassen sich unterscheiden: linguistische und delimiterorientierte Regeln.
Ein ziviles Beispiel: Die Information Michael Schuhmacher gewinnt den
Großen Preis von Brasilien vor seinem Bruder kann entweder -
wie im Kursivteil dieses Satzes - natürlichsprachlich codiert sein
oder tabellarisch:
Großer Preis von Brasilien:
1. Michael Schuhmacher
2. Ralf Schuhmacher
Um die gewünschten Informationen aus der natürlichsprachlichen
Verpackung zu extrahieren, werden mit Hilfe linguistischer Regeln die
Objekte der Verbalphrase GEWINNEN herausgelöst und die semantischen
Beziehungen der Teilphrasen ermittelt.
Da die dazu notwendigen linguistischen Annotationen nicht explizit vorliegen,
wird dazu ein Vorverarbeitungsschritt angestoßen. Bei diesem sog.
Tagging wird versucht, mit Hilfe von Lexika, Heuristiken und statistischen
Methoden jeder Wortform eine eindeutige lexikalische Kategorie zuzuordnen.
Mit Hilfe von Delimiter-Regeln hingegen werden Informationen aus der
tabellarischen Verpackung extrahiert. Im obigen Beispiel stehen etwa die
Namen der Akteure zwischen der Platzierungsnummer - einer Ziffer gefolgt
von einem Punkt sowie einem Leerzeichen - und einem Zeilenumbruch.
Delimiter-Regeln lassen sich überall dort einsetzen, wo bestimmte
Zeichenfolgen auf ein relevantes Textstück hinweisen. Aufgrund des
nur schwach strukturierten Aufbaus der im Informationsextraktionsbereich
behandelten Beispielkorpora werden dort aber hauptsächlich linguistische
Regeln eingesetzt. Die Regeln werden mit verschiedenen Formalismen spezifiziert:
diverse Automaten- und Transducertypen, Grammatiken und Muster kommen
in Frage, zum Teil angereichert mit Formalismen zur Behandlung von Unschärfen.
Um einen höheren Automatisierungsgrad für die zeitraubende manuelle
Codierung dieser Regeln zu erreichen, werden Techniken der KI - verschiedene
Algorithmen des maschinellen Lernens - eingesetzt.
DAU-Systeme
In Hollywood werden Filme über Hollywood gedreht und auch in der Berufsgruppe
der Forscher findet man selbstbezügliches Denken. Ein oft anzutreffendes
Anwendungsbeispiel aus dem Bereich der DAU-Systeme ist der Aufbau eines
Information-Retrieval-Systems über einer Sammlung gedruckter Publikationen.
Die Rekonstruktion eines prozeduralen Formats aus einem Papierdokument
bezeichnet man als Document-Analysis. Für diesen ersten Schritt
existieren heute bereits kommerzielle Produkte für den Massenmarkt,
sog. OCR-Software.
Streng genommen bezeichnet Optical Character Recognition"
nur die Texterkennung. Da OCR-Systeme heute in der Regel auch Features
wie Schriftgröße oder -schnitt erkennen, wird der Begriff oft
auch in diesem erweiterten Sinn verwendet.
Im Allgemeinen ist das Ergebnis der Rekonstruktion noch mit Erkennungs-
und Segmentierungsfehlern behaftet. Abhängig von einer Vielzahl von
Eigenschaften des Ausgangsdokuments reicht das Spektrum von nahezu fehlerfrei
bis zu komplett unbrauchbar.
Im zweiten Schritt - genannt Document-Understanding - werden
den baumartig angeordneten Layoutobjekten semantische Strukturelemente
zugeordnet. So umfassen für gewöhnlich die letzten Blöcke
einer Publikation die Bibliographie, und die darin enthaltenen Subblöcke
entsprechen den Einzelnen Literaturangaben. Die Baumstruktur des Layouts
ermöglicht einen Einbezug der hierarchischen Beziehung in die Strukturierungsregeln
sowie eine schrittweise Bottom-up- oder Top-down-Strukturanreicherung.
Daneben werden auch die Regeltypen verwendet, die man in Informationsextraktionssystemen
findet: linguistische Regeln und delimiterorientierte Regeln, die sich
textuell angedeutete Strukturierung zu Nutze machen. In vielen DAU-Systemen
werden die Regeln ebenfalls mit maschinellem Lernen trainiert.
Wrapper-Tools
Im Web gibt es eine Vielzahl an Sites, die unterschiedliche Informationen
in immer das gleiche Layouttemplate verpacken. Das sind zum einen regelmäßig
aufgefrischte Seiten wie Wetterberichte oder Börsenkurse und zum
anderen dynamisch zu einer Anfrage generierte Webseiten, z.B. Rückgabemengen
von Suchmaschinen oder E-Commerce-Angebote. Möchte man zu mehreren
solchen Datenquellen eine einheitliche Schnittstelle schaffen, muss man
die Informationen aus dem prozeduralen Layoutgewand auspacken und in ein
deskriptives Strukturgewand einpacken. Systeme, die diese Transformation
zur Laufzeit ausführen, nennt man Mediatorensysteme.
Neben solchen virtuell integrierten Systemen gibt es auch Systeme, die
mehrere Quellen so vereinen, dass alle Anfragen innerhalb einer materialisierten
Datenbank verarbeitet werden können. Im UNICO-Projekt der Siemens
AG (University Industry Co-Operation) wird beispielsweise seit fünf
Jahren ein universelles Datenbankmanagementsystem aufgebaut, das systematisch
die Forschungsaktivitäten deutscher Hochschulen katalogisiert.
Dieses Projekt ist ein Beispiel dafür, dass es sich beim Reverse-Engineering
von Datenbanken mittels Wrapper-Tools nicht um Datendiebstahl, sondern
um einen De-facto-Standard des Datenaustausches handelt. Die Technologietransferstellen
der Universitäten stellen bereitwillig Daten zur Verfügung,
allerdings nicht in deskriptiven Formaten, sondern in Form von Forschungskatalogen
und Web-Datenbanken, die mit einem DAU-System und Wrapper-Tools integriert
werden.
Im Zusammenhang mit dem Boom, den das Web erlebt hat, ist das Gebiet
der Wrapper-Tools in der Forschung intensiv bearbeitet worden. Zum Ausprobieren
habe ich eine Liste von zehn Teams zusammengestellt, die gratis Software
zur Verfügung stellen, die meisten davon sind auch Open Source:
Daneben gibt es mindestens ebenso viele kommerzielle Entwicklungen.
Die meisten Wrapper-Tools arbeiten wie Informationsextraktions- und DAU-Systeme
mit Lernalgorithmen, basieren allerdings fast ausschließlich auf
Delimiter-Regeln. Für stark irreguläre Daten und sog. One-Shot-Aufgaben,
wie man sie beim Aufbau eines universellen Datenbankmanagementsystems
vorfindet, ist diese Architektur nicht sinnvoll. Besser dafür geeignet
sind LAPIS, ein spezialisierter Editor oder WebL, eine Programmiersprache,
die eigene Datentypen und Methoden für Crawling und Wrapping mitbringt.
Fast alle angeführten Wrapper-Tools sind in Java implementiert.
Das ist ein Beispiel für den Gewinn bringenden Einsatz der mächtigen
Klassenbibliothek von Java, insbesondere im Bereich der GUI-Entwicklung.
Neben Wiederverwendung, Robustheit und Integration von Wrappern in ein
Gesamtsystem ist Visualisierung eine der Hauptforschungsrichtungen in
diesem Bereich.
Artikelanfang Seitenanfang
|
|
Literatur
- Bry, F., Kraus, M., Olteanu, D., Schaffert, S.: Aktuelles Schlagwort
/ Semistrukturierte Daten. Informatik Spektrum 24(4), 230–233 (2001)
- Crespo, A., Jannink, J., Neuhold, E., Rys, M., Studer, R.: A survey
of semi-automatic extraction and transformation. (Submitted for publication)
- Muslea, I.: Extraction patterns for information extraction tasks:
a survey. AAAI'99 Workshop on Machine Learning for Information Extraction,
AAAI Press 1999
Hinweis: Die URLs entsprechen dem Stand bei der Veröffentlichung
des Artikels und werden nicht aktualisiert.
Artikelanfang Seitenanfang |
|
Autor & Copyright
Christian Strohmaier
Oettingenstr. 67,
80538 München
strohmai@cis.uni-muenchen.de
Auch: Eberhard-Karls Universität Tübingen,
Seminar für Sprachwissenschaft,
Wilhelmstr. 113,
D-72074 Tübingen
© 2002 Informatik Spektrum, Springer-Verlag Berlin Heidelberg
Artikelanfang Seitenanfang |
|
 |
|
|