Datenbanksysteme 2 Frühjahr-/Sommersemester April Darf man in der XML Declaration die Versionsnummer weglassen? (d.h.

Ähnliche Dokumente
Datenbanksysteme 1 Frühjahrs-/Sommersemester Abril 2012

Projektseminar Texttechnologische Informationsmodellierung

IT-Zertifikat: Daten- und Metadatenstandards. Transformation von XML-Dokumenten mit XSLT (und XPATH) XSLT kurz und knackig. XSLT und die Praxis

Seminar: XML und intelligente Systeme

XPath & XQuery Standardisierte Abfragesprachen für XML-Dokumente. Sebastian Apel

XML 1. Einführung, oxygen. Ulrike Henny. IDE Summer School 2013, Chemnitz

Datenbanksysteme. XML und Datenbanken. Burkhardt Renz. Sommersemester Fachbereich MNI Technische Hochschule Mittelhessen

Semistrukturierte Daten

Speicherung von XML in (objekt-)relationalen Datenbanken. Burkhard Schäfer

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

Dokumentverarbeitung

CARL HANSER VERLAG. Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis

Linux I II III Res WN/TT NLTK XML Weka E XML BNC XSLT BNC/XML 7 BNC/XML XML BNC XSLT. Ressourcen-Vorkurs

XPath 1.0 Pfadausdrücke zur Adressierung von XML-Fragmenten

XSL. extended Stylesheet Language. Die Stylesheet Sprache für XML

Einführung in XML. Arthur Brack FHDW Hannover. 1. Oktober 2009

Datenbanksysteme 1 Herbst-/Wintersemester Oktober Angestellte(PersonalNr, Name, Gehalt, Beruf, AbteilNr, ChefNr, Wohnort)

XSL und XSLT. Inhalt. Mathias Heilig XSL Übersicht. Formatierungsprozess. Sprachbeschreibung. Vorführung Resümee

Java: Kapitel 9. Java und XML. Programmentwicklung WS 2008/2009. Holger Röder

FileMaker Konferenz 2010 XML / XSLT. Ein Workshop mit [x] cross solution Armin Egginger

Einführung in XML Torsten Schaßan SCRIPTO digital Wolfenbüttel

Inhaltsverzeichnis. 1 Grundlagen. Vorwort VII

Eine Schnelleinführung in XSL

Grundlagen der Extensible Stylesheet Language

Inhalt. Beispiel: XML Dokument. Beispiel: Dokumentenbaum. XPath VU Semistrukturierte Daten 1. Datenmodell

Prof. Dr. Martin Leischner Fachbereich Informatik XML. Prof. Dr. Martin Leischner Fachbereich Informatik. Anwendungen (SOAP,WSDL, ) Verknüpfungen XSL

Inhaltsverzeichnis. Teil 1 Grundlagen 5. Teil 2 Formatierung 31 INHALTSVERZEICHNIS

Gegeben ist das folgende XML-Dokument.

XML-Verarbeitung. XPath XSL die extensible Stylesheet Language. Torsten Schaßan SCRIPTO Modul 4: EDV Wolfenbüttel

5. Programmierschnittstellen für XML

Referat 11: Einführung in XPath

Query Transformation based on XSLT

Übungsbeispiel 1 Erstellen Sie eine Homepage für Ihre Gruppe in XML und überprüfen Sie die Wohlgeformtheit in einem Editor/Browser.

XML Data Management Herbst-/Wintersemester Dezember 2007

1 Was ist XML? Hallo XML! Kommentare in XML 52

Anfragen an XML-Dokumente mit XPath

Implementierung der XPath-Anfragesprache für XML-Daten in RDBMS unter Ausnutzung des Nummerierungsschemas DLN

Universität Augsburg, Institut für Informatik WS 2007/2008 Prof. Dr. W. Kießling 18. Jan Dr. A. Huhn, M. Endres, T. Preisinger Übungsblatt 12

XPATH (XPATH) Lernziele

Praktikum zur Veranstaltung XML-Technologie: Übung 09

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

cs241: Datenbanken mit Übungen HS 2011

<Trainingsinhalt> XML und Datenbanken

Grundlagen der Mathematik

Transformation von XML-Dokumenten. IDE SummerSchool 2013, Chemnitz

Office meets XML. XML-Schnittstellen von Bürosoftware (konkret: OpenOffice)

5. Programmierschnittstellen für XML

... MathML XHTML RDF

Komplexe Transformationen mit XSLT

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - WS 2016 SQLX. Andreas Schmidt Oracle und XML (SQLX) 1/15

Web-basierte Anwendungen: 08: Ergänzungen zum Projekt

Kapitel 6: SQL und XML

Konzept und Realisierung Extensible Stylesheet Language

2. XML 2.1 XML 1.0 und XML Schema. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit

XML Extensible Markup Language

XSL Templates. Mit Templates arbeiten. XSL Templates

Welche Kunden haben die gleiche Ware bestellt? select distinct a1.name, a2.name from Auftrag a1, Auftrag a2 where a1.ware = a2.ware.

VNUML Projektpraktikum

IT-Zertifikat: Daten- und Metadatenstandards

Einführung. Hallo-Welt in XSLT

Fragen zur Prüfungsvorbereitung Datenbanksysteme II. im Sommersemester 2008

Eine Schnelleinführung in CSS

DocBook für Anfänger

INEX. INitiative for the Evaluation of XML Retrieval. Sebastian Rassmann, Christian Michele

XSD - XML Schema Definition

Kapitel 5: Datenaustausch mit XML

X-Technologien. XML and Friends. Jörn Clausen 9. Juli 2001

XML Path Language (XPath)

JAVA/XML Das bhv Taschenbuch

Kurzanleitung zu XML2DB

3 XSLT Einführung in die Transformationssprache

XSLT Vortrag. 2. Beispiel XML. 3. Anwendungsmöglichkeiten von XSLT 4. XHTML

Ressourcen-Beschreibung im Semantic Web

Relationale Kalküle. Grundlagen der Datenbanken. Dr. Jérôme Kunegis Wintersemester 2013/14

XML-Einführung. Entwicklung Begriffe Vorteile/Möglichkeiten von XML Adressen Beispiele. Fachhochschule Nordwestschweiz FHNW Martin Hüsler

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS 2015 SQLX. Christian Senger/Andreas Schmidt Oracle und XML (SQLX) 1/14

PROBEKlausur XML-Technologien, Sommersemester 2011 Matrikelnummer Vorname. korrigiert von Gesamtpunktzahl von 30 Note

Innere Klassen. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

Physische XML-Speicherstrukturen und Indizes

Verarbeitung von XML-Dateien. Jörn Clausen

Vorlesung Dokumentation und Datenbanken Klausur

Übersicht. Web (Site) Engineering (WebSE) Java-Applets II. Java-Applets. Client-basierte Techniken Applets

XML. Einführung, XML-Grundlagen und -Konzepte. XPath DTD. XQuery. XML-Schema XSLT XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

Einführung: Installation und Anpassung der Site zum Buch 15

Einstieg in die Informatik mit Java

Textnavigation mit XPath

Bibliothekssysteme / Verbundsysteme / Netze

Projektseminar "Texttechnologische Informationsmodellierung"

XML Tutorium mit Oxygen. Oxygen Version 9.3!!

XSLT, XPath und XQuery Marco Skulschus Marcus Wiederstein Sarah Winterstone

Geschichte der Logik ist eng verknüpft mit (Sprach-) Philosophie. Logik untersucht, wie aus wahren Aussagen andere wahre Aussagen folgen

XML Grundlagen Teil I

XML-Datenbanken. Autor: Nan Zhang Veranstaltung: XML in Bioinformatik

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Einführung in XML Einführung in XML. Erik Wilde Institut für Technische Informatik und Kommunikationsnetze (TIK) ETH Zürich

XML-Praxis. XML-Anwendungen. Jörn Clausen

Kapitel 5: Der SQL-Standard

Dataport IT Bildungs- und Beratungszentrum. HTML- Grundlagen und CSS XML Programmierung - Grundlagen PHP Programmierung - Grundlagen...

Transkript:

Lehrstuhl für Praktische Informatik III Prof. Dr. Guido Moerkotte Email: moer@db.informatik.uni-mannheim.de Pit Fender B6, 29, Raum C0.02 68131 Mannheim Telefon: (0621) 181 2517 Email: pfender@pi3.informatik.uni-mannheim.de Datenbanksysteme 2 6. Übungsblatt Frühjahr-/Sommersemester 2013 24. April 2013 Aufgabe 1 Einige Fragen zu XML Version 1.0. Aufgabe 1 a) Darf man in der XML Declaration die Versionsnummer weglassen? (d.h. ist <?xml?> <trala/> ein wohlgeformtes XML-Dokument? Nein, siehe XML-Standard Abschnitt 2.8. Aufgabe 1 b) Dürfen Attributwerte nur mit oder auch mit begrenzt werden? Muss die Begrenzung für jedes Element einheitlich gewählt werden? Begrenzung ist mit und möglich, auch gemischt in einem Element (pro Attribut natürlich einheitlich), siehe XML-Standard Abschnitt 2.3. Aufgabe 2 Auf der Webseite der Vorlesung finden Sie ein Beispieldokument mondial.xml mit einer dazugehörigen DTD mondial.dtd. Diese Datei enthält einige geographische Informationen über die Länder der Erde. Machen Sie sich mit dem Dokument vertraut. Um die folgenden Teilaufgaben zu lösen, ist ein XPath-Auswerter zum Ausprobieren hilfreich. Bei allen unten aufgeführten Paketen handelt es sich um Auswerter für die Sprache XSLT, von der XPath eine Teilsprache ist. Auf der Webseite zur Vorlesung gibt es eine XSLT-Datei xpath.xsl. Wenn Sie in dieser Datei die Zeichenkette ###XPATHAUSDRUCK### durch einen XPath-Ausdruck ersetzen, und dann den jeweiligen XSLT-Auswerter mit der mondial.xml-datei und der xpath.xsl-datei laufen lassen, erhalten Sie die qualifizierenden Ergebnisknoten (Vorsicht: Beachten Sie, in welcher 1

Reihenfolge der jeweilige Auswerter die XML und die XSL-Datei benötigt). Das Xalan- C++-Paket enthält auch noch ein XPath-Auswertungsprogramm XPathWrapper, bei dem man XPath-Ausdrücke auch direkt auf der Kommandozeile angeben kann. Xalan for Java http://xml.apache.org/xalan-j/ Xalan for C++ http://xml.apache.org/xalan-c/ XSLTProc http://xmlsoft.org/xslt/xsltproc2.html Saxon http://saxon.sourceforge.net/ Galax http://www.galaxquery.org/ DB2 http://www-01.ibm.com/software/data/db2/express/download.html Hinweis: Bei einigen Linux-Distributionen sind die entsprechenden Pakete schon dabei oder können sehr einfach nachinstalliert werden. Geben Sie XPath-Ausdrücke für die folgenden Anfragen an. Aufgabe 2 a) Alle city-elemente. /descendant-or-self::city Aufgabe 2 b) Die name-elemente aller Städte. /descendant-or-self::city/child::name Aufgabe 2 c) Nur die Liste der Namen der Städte, d.h. die Text-Knoten der Namen ohne den Tag name. /descendant-or-self::city/child::name/child::text() Aufgabe 2 d) Berechnen Sie die Gesamtanzahl der Länder. count(/descendant-or-self::country) Aufgabe 2 e) 2

Berechnen Sie die Gesamtanzahl der Seen. count(/descendant-or-self::lake) Aufgabe 2 f) Berechnen Sie die Gesamtanzahl der Meere. count(/descendant-or-self::sea) Aufgabe 2 g) Geben Sie die Städte aus, die direkt unter den Ländern geschachtelt sind und nicht in einer Provinz liegen. descendant-or-self::country/city oder komplizierter descendant-or-self::city[not(parent::province)] Aufgabe 2 h) Wieviele Einwohner hat das Saarland? //province[name= Saarland ]/population Aufgabe 2 i) Bestimmen Sie die Namen der Länder, in denen es Städte mit mehr als 2000000 Einwohnern gibt. //country[descendant-or-self::city[population>2000000]]/name Aufgabe 2 j) In wievielen Ländern ist laut mondial.xml das Militär an der Regierung beteiligt? 3

count(//country[contains(government, military )]) Tückisch: Bei count(//country[contains( military,government)]) kommt dasselbe Ergebnis raus. Es sind aber andere Länder (count weglassen). Wieso? Aufgabe 2 k) Bestimmen Sie die Namen der Orte (nicht nur Städte!), die nördlicher als 70 Grad nördlicher Breite liegen. /descendant-or-self::*[latitude>70]/name Aufgabe 3 Erläutern Sie, warum die folgenden XPath-Ausdrücke jeweils unterschiedliche Ergebnisse liefern. Aufgabe 3 a) count(/self::mondial) count(/self::node()) Es wird in beiden Fällen der Wurzelknoten mit /self selektiert. Aber der Knotentest des ersten Ausdrucks verlangt jedoch einen Elementknoten mit Tagnamen mondial, wohingegen der Knotentest des zweiten Audrucks jeden Knoten akzeptiert. Der Wurzelknoten ist kein Elementknoten, sondern ein spezieller Dokumentknoten, der als Kind das Dokumentelement mondial hat. Aufgabe 3 b) descendant-or-self::city[position()>3 and position()=5] descendant-or-self::city[position()>3][position()=5] Im ersten Ausdruck könnte man auch nur schreiben position()=5. Der zweite Ausdruck erzeugt mit dem ersten Prädikat einen neuen Kontext, der eine neue Positionsnummerierung erhält. D.h. es wird von den Städten, die im ersten Kontext eine Position größer drei haben, die fünfte selektiert. Dies entspricht der achten Stadt, also ist der zweite Ausdruck auch äquivalent zu descendant-or-self::city[position()=8]. Aufgabe 3 c) 4

/descendant-or-self::country/descendant-or-self::city[position()=1] /descendant-or-self::country//city[1] (/descendant-or-self::country//city)[1] Der erste Ausdruck selektiert die erste Stadt in jedem Land. Der zweite Ausdruck ist in Langschreibweise /descendant-or-self::country/descendant-or-self::node()/child::city[position()=1] selektiert also jede Stadt, die das erste city-element unter dem jeweiligen Vaterknoten ist, also jede erste Stadt in jedem Land und in jeder Provinz. Der dritte Ausdruck selektiert nur die allererste Stadt. Aufgabe 3 d) //province[population>2000000][position()=last()] //province[position()=last()][population>2000000] Der erste Ausdruck selektiert von allen Provinzen die mehr als 2000000 Einwohner haben, jeweils die letzte pro Land. D.h. hier wird mindestens eine Provinz ausgegeben für jedes Land, welches Provinzen mit mehr als 2000000 Einwohnern hat, Der zweite Ausdruck selektiert alle die Provinzen, die die letzte Provinz in ihrem Land sind und mehr als 2000000 Einwohner haben. Hier wird nicht für jedes Land eine Provinz ausgegeben, selbst wenn das Land Provinzen mit mehr als 2000000 Einwohnern hat. Aufgabe 4 Vergleiche zwischen X und Y mit XθY ( θ {<,>,>=,<=, =,! =}) haben in XPath eine existenzquantifizierte Semantik, wenn X und/oder Y vom Typ node-set sind. In Verbindung mit der Negation erlaubt dies die Formulierung komplexerer Prädikate. Geben Sie (außer im Teil a) XPath-Ausdrücke für die folgenden Anfragen auf mondial.xml an. Aufgabe 4 a) Warum ist in XPath X! = Y nicht unbedingt äquivalent zu not(x = Y )? Wenn z.b. X mengenwertig ist, und Y nicht, dann gilt für X! = Y die Definition X! = Y x X : x Y 5

Für not(x = Y ) lät sich hingegen herleiten: not(x = Y ) x X : x = Y x X : x = Y x X : x Y D.h. der erste Ausdruck ergibt einen Existenzquantor, der zweite einen Allquantor! Entsprechendes gilt wenn stattdessen Y ein node-set ist, oder wenn Y und X vom Typ node-set sind. Auf der einen Seite verhalten sich negierte Vergleiche in XPath also etwas ungewöhnlich. Dies gibt einem aber auf der anderen Seite die Möglichkeit, Anfragen mit Allquantoren und/oder Existenzquantoren in XPath zu formulieren. Aufgabe 4 b) Für welche Länder sind keine Provinzen (in mondial.xml) mit weniger als 2 Millionen Einwohnern erfaßt? //country[not(province/population<2000000)] Aufgabe 4 c) Für welche Länder ist zwar mindestens eine Provinz erfaßt, aber keine davon hat weniger als 2 Millionen Einwohner? //country[province and not(province/population<2000000)] Aufgabe 4 d) Welches Land hat die meisten Einwohner? //country[population and not(number(population)<//country/population)]/name 6