Datenorientiertes XML
Wintersemester 06/07
Martin v. Löwis
Ab sofort ist Altovas "XML Spy" auf Rechnern im Raum C-E.4 installiert,
und zwar auf den drei der Tafel nächsten, sowie auf dem Rechner unmittelbar
rechts neben der Tür.
Die Prüfungen finden am 23.2. und 10.4.2007 im Raum A-2.1 statt.
Mit der Sprache XML die Basissyntax für eine Familie von Sprachen gelegt,
die sich leicht definieren automatisch verarbeiten lassen. Aus diesem
Grund ersetzt XML in der Entwicklung von Komponentensystemen zunehmend
"traditionelle" Sprachen. In der Vorlesung werden zum einen die
Anwendungsgebiete (zusammen mit konkreten XML-Vokubularen), zum anderen
die Techniken zur Verarbeitung von XML vorgestellt.
Literatur
- Harold, Means: XML in a Nutshell, O'Reilly 2003
- van der Vlist: XML Schema, O'Reilly 2002
- Drake, Jones: Python & XML, O'Reilly 2001
- W3C: Extensible Markup Language (XML) 1.0,
W3C 2000
- W3C: XML Schema Specifications,
W3C
- Unicode Consortium:
Unicode
character database (Übersicht)
Vorlesungen
- Course Overview (16.10.2006 14:44:28)
- XML Syntax (16.10.2006 14:57:08)
- Document Types (08.11.2006 16:19:12)
- Character Sets (15.11.2006 11:15:48)
- Namespaces (15.11.2006 11:14:07)
- Parser Interfaces: SAX (24.11.2006 11:28:47)
- Parser Interfaces: DOM (24.11.2006 11:27:39)
- XPath (01.12.2006 16:54:55)
- XSLT (08.12.2006 16:40:41)
- Bits and Pieces (08.12.2006 16:41:10)
- XML Infoset (08.12.2006 16:41:46)
- XML Schema (Part 1) (08.12.2006 16:42:26)
- XML Schema (Part 2) (15.12.2006 17:55:09)
- XML Schema (Part 3) (15.12.2006 17:56:36)
- Other Schema Languages (20.12.2006 15:11:28)
- XML Protocols: XML-RPC (22.01.2007 13:51:42)
- XML Protocols: SOAP (22.01.2007 13:52:16)
- The Good, The Bad and The Ugly: WS-* Specifications for SOA (19.01.2007 13:00:39)
- XQuery (10.01.2007 16:21:27)
- MOF Tutorial
- Meta-Object Facility: Meta Classes (02.02.2007 17:33:49)
- XMI Presentation
- XML Signature and Encryption (02.02.2007 17:34:08)
Übungsaufgaben
1. Aufgabe
Abgabetermin: 2. November
- Finden Sie 3 HTML-Dokumente auf einem
HPI-Webserver(*.hpi.uni-potsdam.de), die
kein well-formed XML sind. Geben Sie für jedes Dokument ein
Fragment an, welches die XML-Syntax verletzt, sowie die XML-
Syntaxregel, die verletzt wird.
- Finden Sie 2 Dokumente auf dem HPI-Webserver, die
zwar well-formed aber nicht valid XML sind. Geben Sie wiederum
ein Fragment des Dokuments an sowie das validity constraint,
welches von diesem Dokument verletzt wird.
- Definieren Sie einen Dokumenttyp,
der zur Beschreibung einer Menge von Studenten verwendet werden
kann, für die ihr Name, ihre Matrikelnummer sowie die Menge
der von ihnen besuchten Lehrveranstaltungen bekannt ist.
Bilden Sie weiterhin ein Dokument, dass diesem Typ entspricht.
2. Aufgabe
Abgabetermin: 16. November
Gegeben ist in allen Teilaufgaben die Datei All.xml
(basierend auf All.dtd, komprimiert in
All.zip),
die die Klassenbibliothek von ECMA .NET definiert.
- Entwickeln Sie eine SAX-Anwendung (in einer Programmiersprache
Ihrer Wahl), die die Zahl aller Klassen (Element Type) ermittelt.
- Entwickeln Sie eine SAX-Anwendung (evtl. in Erweiterung der
Lösung von Teil a), die den Namen der Klasse mit den meisten
Methoden (Member-Elemente mit dem MemberType "Method") ermittelt.
- Entwickeln Sie eine SAX-Anwendung, die für jede Klasse eines
Pakets (etwa Library="Reflection") eine HTML-Seite generiert wird,
in der der Name der Klasse, die Namen der Basisklassen sowie die
Docs-Element-Dokumentation aufgeführt wird; die Basisklassennamen
sollten Hyperlinks auf die Seiten der Basisklassen sein.
3. Aufgabe
Abgabetermin: 7. Dezember
Lösen Sie die gleichen Teilaufgaben wie in Aufgabe 2, jedoch
unter Verwendung einer DOM-Implementierung. Sollte die
DOM-Implementierung die Auswertung von XPath-Ausdrücken unterstützen,
können Sie davon Gebrauch machen; ansonsten sind nur
Standard-DOM-Operationen erlaubt (Level 1 bis 3).
Achten Sie in Teilaufgabe c) darauf, keine ungültigen Links
auf Basisklassen zu generieren (generieren Sie also lediglich den
Klassennamen der Basisklasse, falls die HTML-Seite für die Basisklasse
nicht ebenfalls im gleichen Generierungslauf erzeugt wird).
3. Aufgabe: Alternativaufgabe
Gegeben ist in allen Teilaufgaben die Datei
ad-2001-02-03.xml, die das
XML-Modell für CWM (Common Warehouse Metamodel) definiert.
- Entwickeln Sie eine DOM-Anwendung (in einer Programmiersprache Ihrer Wahl),
die die Zahl aller Klassen (Element Model:Class) ermittelt.
- Entwickeln Sie eine DOM-Anwendung (evtl. in Erweiterung der Lösung von
Teil a), die den Namen der Klasse mit den meisten Attributen (Member-Elemente
Model:Attribute) ermittelt.
- Entwickeln Sie eine DOM-Anwendung, die für jede Klasse eines ausgewählten Pakets
(etwa Model:Package name="Instance") eine HTML-Seite generiert wird, in der
der Name der Klasse, die Namen der Basisklassen (referenziert über supertypes=)
sowie das Attribut annotation aufgeführt wird; die Basisklassennamen sollten
Hyperlinks auf die Seiten der Basisklassen sein.
4. Aufgabe
Abgabetermin: 21. Dezember
Lösen Sie die gleichen Teilaufgabe wie in (einer Alternative von)
Aufgabe 2, jedoch unter Verwendung von XSLT. Verwenden Sie keine
Prozessorerweiterungen, mit Ausnahme von Erweiterungen zur Ausgabe
mehrerer Dateien; Funktionalitäten der Vorabversion von XSLT 2
dürfen ebenfalls verwendet werden. Teilaufgabe c) wird wie
folgt erweitert:
- Generieren Sie neben den Dateien für die einzelnen Klassen auch
Indexdateien
- Generieren Sie in die Dateien auch Angaben über Attribute
(Model:Attribute, MemberType Field), Referenzen (Model:Reference),
Properties (MemberType Property), etwa in tabellarischer Form.
Geben Sie wenigstens jeweils den Namen sowie den Typnamen aus.
- Achten Sie bei der Übertragung von see-Elementen auf eine geeignete
Übertragung in HTML, und sorgen Sie für die Beibehaltung der
Formatierung von code-Elementen.
5. Aufgabe
Abgabetermin: 18. Januar
- Erläutern Sie die Begriffe schema component, ur-type, particle,
initial value, normalized value, assessment,
strict assessment, lax assessment, valid restriction sowie
PSVI im Zusammenhang mit XML Schema.
- Definieren Sie ein XML Schema für All.xml,
welches als gültige Dokumente nur Dokumente erlaubt, die auch der
DTD folgen und zusätzlich
folgende Einschränkungen enthält:
- Klassennamen sind Bezeichner.
- Die Basisklassen und die implementierten Interfaces müssen im gleichen
Dokument definiert sein.
- Der Wert des Excluded-Elements muss 0 oder 1 sein.
- Definieren Sie ein Schema für Dokumente entsprechend Aufgabe 1c).
Definieren Sie für eine Programmiersprache Ihrer Wahl Klassen,
die Werte dieses Schemas aufnehmen können. Implementieren Sie
(unter Verwendung von Werkzeugen Ihrer Wahl) einen Parser,
der ein Schema-konformes Dokument einliest und daraus ein
Objekt der zuvor definierten Klassen erzeugt.
6. Aufgabe
Abgabetermin: 1. Februar
Entwickeln Sie einen Klienten für den
Fortune Web Service
(Dokumentation).
Ermitteln Sie, welche SOAP-Nachrichten ausgetauscht werden, und vergleichen
Sie diese mit der WSDL-Spezifikation.
|