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

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

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

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

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

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

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

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

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

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

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

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

Gruppe A Bitte tragen Sie sofort und leserlich Namen, Studienkennzahl und Matrikelnummer ein und legen Sie Ihren Studentenausweis

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

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

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

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

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

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

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

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

PRÜFUNG IN SEMI-STRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

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

PRÜFUNG IN SEMI-STRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

PRÜFUNG IN SEMI-STRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

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

PRÜFUNG IN SEMI-STRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

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

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

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

PRÜFUNG IN SEMI-STRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

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

Android will doch nur spielen XML

Programmieren II. Einführung in XML. Vorlesung 13. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2010 XML JAXP SAX DOM

2a) Rekursion (zugeschnitten auf Anfrage) (C) Prof. E. Rahm Universität Leipzig

Matrikelnummer: Bitte Namen und Matrikelnummer auf jeder Seite der Vorgabe und allen Arbeitsblättern eintragen!

Programmieren II SAX. Beispiel-Schema kontakt.xsd SAX DOM. Dr. Klaus Höppner JAXB. Hochschule Darmstadt SS 2008

XML Schema vs. Relax NG

XML und Datenbanken Fortsetzung

Vor allem in Internetanwendungen erfreut sich xml großer Akzeptanz XML ist heute eine universelle Datenbeschreibungssprache Validierend mit

XSD - XML Schema Definition

XML Schema S 2010/2011 a W _d Seite 1 h

urn:schemas-microsoft-com:xml-msdata 1.1 DefaultTypes.xsd MoveIn MoveInDate STDDate UnitType UnitType NumOccupants

Programmieren II. Annotationen (1/3) Vorlesung 6. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester Annotationen XML JAXB

Programmieren II. Annotationen (1/3) Vorlesung 6. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester Annotationen XML JAXB

Extraktion von Metainformationen

XML Schema 2016 S h_da S Seite 1

Namensräume. Allgemeines Deklaration Komponenten aus beliebigen Namensräumen

Simple API for XML (SAX) Ulrich Hoffmann

XML exemplarisch. nach: André Bergholz, Extending Your Markup: An XML Tutorial IEEE Internet Computing, Jul./Aug. 2000, 74 79

Klausur zur Vorlesung Einführung in XML

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

XML Schema 2012/2013 S Seite 1 h_da W

Seminar: XML und Datenbanken

XSLT für SAP NetWeaver Process Integration. Transformationssprache für XML Dokumente

XML Schema 2012/2013 S Seite 1 h_da W

Klausur zur Vorlesung Einführung in XML

Aufgabe 1 XML-Schema. <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs=" elementformdefault="qualified"

Übung 2: XML / XQuery

Document Type Definitions (DTDs)

XML-Übersicht. Von HTML zu XML

XML-Übersicht. Von HTML zu XML. Nutzen von XML. Geschichte von XML. Eigenschaften von XML. Nutzen von XML (extensible Markup Language)

XML Schema 2014 S h_da S Seite 1

Web Technologien XML, XQuery, XPath und XSLT

XSLT IDE AUTUMN SCHOOL

XML-Programmierschnittstellen: SAX, DOM

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

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

<B1>Skript</B1> Skript zur Vorlesung Auszeichnungssprachen Stand: September 2016

Herbstsemester Januar Datenbanksysteme II

DTDs und XML- Schemata

Datenaustauschformate. Datenaustauschformate - FLV

Einführung. Hallo-Welt in XSLT

Einführung in Datenbanken - XML - Philipp Cimiano AG Semantische Datenbanken und Wissensverarbeitung

Einführung in XML. Präsenzveranstaltung zur E-Learning-Veranstaltung. Sommersemester Prof. Dr. Klaus-Peter Fähnrich Dr.

Übung zur Vorlesung Digitale Medien. Hanna Schneider Ludwig-Maximilians-Universität München Wintersemester 2014/2015

XML Schema 2016 S h_da S Seite 1

Vorlesung XML und Datenbanken Klausur

XML Vorlesung ETHZ SS XML Vorlesung ETHZ, Sommersemester

XML. extensible Markup Language

Grundlagen der Extensible Stylesheet Language

Universität Osnabrück Fachbereich Mathematik / Informatik 1. Übung Prof. Dr. rer. nat. Oliver Vornberger Nico Marniok, B. Sc. Erik Wittkorn, B. Sc.

XML Schema S 2012 h_da S Seite 1

Musterlösung des Übungsblattes 1

Document Type Definition (DTD)

Aufgaben eines Codegenerators

Inhalt des Moduls: Grundlagen. Vorlagen. Kontrollstrukturen. Ausgabestrukturen. Parameter und Variablen. Dateibasierte Auslagerung

DTDs und XML-Schema. Robert Tolksdorf Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme

Web (Site) Engineering (WebSE)

AVID-Übung 1. XML Schema, XML-Verarbeitung mit Java. 6. Mai Andreas I. Schmied

Zusammenfassung XML. Metasprache um Dokumenttypen zu definieren

D#32058 Spezifikation UPOC DM V2

XML-Technologien. XML-Parser. Florian Raith Hochschule München Fakultät für Informatik und Mathematik am 04. November 2010

XML Kurs LRZ 1

XML Schema 2015 S h_da S Seite 1

Nonstandard Datenbanken

XML. extensible Markup Language. Dr. Beatrice Amrhein.

XML Schema 2015 S h_da S Seite 1

Kritik von HTML. Multimedia-Technik XML. Syntax von XML-Dokumenten. Extensible Markup Language (XML) reine Strukturbeschreibung

Klausur "ADP" SS 2015

Transkript:

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN 181.135 23. 06. 2010 Kennnr. Matrikelnr. Familienname Vorname Arbeitszeit: 120 Minuten. Aufgaben sind auf den Angabeblättern zu lösen; Zusatzblätter werden nicht gewertet. Bitte tragen Sie Namen, Studienkennzahl und Matrikelnummer ein. Halten Sie Ihren Studentenausweis bereit. Aufgabe 1: (9) Betrachten Sie die folgende dtd test.dtd: <!ELEMENT A (B*,C?,D?)> <!ELEMENT B (#PCDATA D E)*> <!ELEMENT C (E?,D,D?)> <!ELEMENT D EMPTY> <!ATTLIST D P ID #REQUIRED> <!ELEMENT E (#PCDATA)> <!ATTLIST E Q IDREF #IMPLIED> Betrachten Sie weiters die sechs verschiedenen xml-dateien, die unten angeführt sind. Hinweise: Gehen Sie davon aus, dass allen folgenden Dateien die Zeilen <!DOCTYPE A SYSTEM "test.dtd"> vorangestellt sind. Sie können auch davon ausgehen, dass alle folgenden xml-dateien wohlgeformt sind. Es geht also lediglich darum, ihre Gültigkeit bezüglich test.dtd zu entscheiden. Kreuzen Sie an, welche der folgenden xml-dateien gültig bezüglich test.dtd sind. 1. <A><B>xyz</B><C>xyz</C></A> gültig ungültig 2. <A><C><D P="s1"/></C></A> gültig ungültig 3. <A><B>xyz<D P="s1"/>xyz</B></A> gültig ungültig 4. <A><C><E Q="s1"></E><D P="s1"/></C></A> gültig ungültig 5. <A><C>xyz<D P="s1"/></C></A> gültig ungültig 6. <A><B><E Q="s1"></E></B></A> gültig ungültig (Pro korrekter Antwort 1.5 Punkte, pro inkorrekter Antwort -1.5 Punkte, pro nicht beantworteter Frage 0 Punkte, für die gesamte Aufgabe mindestens 0 Punkte)

Aufgabe 2: Betrachten Sie die folgende xml- Datei ns.xml: (6) <A xmlns="uri1"> <ns1:b xmlns="uri2" xmlns:ns1="uri1"> <D attr1="x"/> </ns1:b> <C xmlns="uri2"> <E attr2="y"/> </C> </A> Kreuzen Sie an, ob die folgenden Aussagen für die Datei ns.xml wahr oder falsch sind. 1. Element E und Attribut attr2 liegen im selben Namespace. wahr falsch 2. Element A und Element B liegen im selben Namespace. wahr falsch 3. Elemente A und E liegen im selben Namespace. wahr falsch 4. Element D liegt im leeren Namespace. wahr falsch (Pro korrekter Antwort 1.5 Punkte, pro inkorrekter Antwort -1.5 Punkte, pro nicht beantworteter Frage 0 Punkte, für die gesamte Aufgabe mindestens 0 Punkte) Aufgabe 3: Kreuzen Sie an, ob die folgenden Aussagen wahr oder falsch sind. (12) 1. Um die Wohlgeformtheit eines XML-Dokuments zu überprüfen wird eine DTD oder ein XML-Schema benötigt. wahr falsch 2. In einem wohlgeformten XML-Dokument dürfen zwei Attribute mit demselben qualifizierten Namen in einem Elementstarttag auftreten. wahr falsch 3. Die DTD Elementdeklaration (A* B* C*) ist gleichwertig mit (A B C)*. wahr falsch 4. Rekursive Definitionen wie z.b. <!ELEMENT B (B?,C)> sind in DTDs verboten. wahr falsch 5. Im DOM-Modell ist die Wurzel gleich dem Wuzelement des Dokuments. wahr falsch 6. SAX: Textevents können auch direkt hintereinander auftreten. wahr falsch 7. Die Reihenfolge der Templates in einem XSLT 1.0 Stylesheet hat standardmäßig keine Auswirkung auf den Ablauf des XSLT-Stylesheets. wahr falsch 8. In XQuery sind selbst definierte rekursive Funktionen erlaubt. wahr falsch (Pro korrekter Antwort 1.5 Punkte, pro inkorrekter Antwort -1.5 Punkte, pro nicht beantworteter Frage 0 Punkte, für die gesamte Aufgabe mindestens 0 Punkte)

Die folgenden Aufgaben 4 8 beziehen sich auf das XML-Dokument wm.xml, das Sie auf der letzten Seite dieser Prüfungsangabe finden. Aufgabe 4: Nehmen Sie an, dass das Dokument wm.xml (siehe Anhang) als DOM-Baum im Speicher ist. Kreuzen Sie an, ob folgende Codeblöcke den Knoten <land kuerzel="fra" name="frankreich" weltmeister="ja"/> zurückgeben (5. Zeile von wm.xml). Der Aufruf erfolgt jeweils mit der Document-Node von wm.xml als Parameter. (9) 1. public Node variante1(node node) { NodeList nl = ((Document)node).getElementsByTagName("land"); return nl.item(2); wahr falsch 2. public Node variante2(node node) { if (! node.haschildnodes()) return null; NodeList list = node.getchildnodes(); for (int i=0; i < list.getlength(); i++) { Node subnode = list.item(i); if (subnode.getnodetype() == Node.ELEMENT_NODE) { if (subnode.getnodename().equals("land")) { return subnode.getnextsibling().getnextsibling(); else { Node tmp = variante2(subnode); if(tmp!=null) return tmp; return null; wahr falsch 3. public Node variante3(node node) { NodeList nl = ((Document)node).getElementsByTagName("teilnehmer"); Node teilnehmer = nl.item(0); return teilnehmer.getchildnodes().item(2); wahr falsch (Pro korrekter Antwort 3 Punkte, pro inkorrekter Antwort -3 Punkte, pro nicht beantworteter Frage 0 Punkte, für die gesamte Aufgabe mindestens 0 Punkte)

Aufgabe 5: (12) Vervollständigen Sie das XML Schema wm.xsd, sodass XML-Dokumente in der Gestalt von wm.xml (siehe Anhang) bezüglich dieses XML Schemas gültig sind. Berücksichtigen Sie beim Erstellen des XML Schemas folgende Punkte: Sie brauchen nur den Typ einteilungtype zu vervollständigen, der Rest des XML Schemas ist bereits gegeben. Das Element einteilung kann ein oder mehrere Elemente gruppe enthalten. Jedes Element gruppe enthält genau vier Elemente land, gefolgt von einem optionalen Element vorschau. Der Inhalt des vorschau-elementes soll gemischt sein; es dürfen als Subelemente spieler- und land-elemente in beliebiger Anzahl (auch gar nicht) auftreten. Alle Attribute sind verpflichtend und vom Typ xs:string. Die Definition von Schlüsselbeziehungen ist nicht notwendig. Datei wm.xsd: <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> <xs:element name="wm"> <xs:complextype> <xs:sequence> <xs:element name="teilnehmer" type="teilnehmertype"/> <xs:element name="spieler" maxoccurs="unbounded" type="spielertype"/> <xs:element name="einteilung" type="einteilungtype"/> </xs:sequence> <xs:complextype name="teilnehmertype"> <!-- Nicht Teil der Prüfungsangabe --> <xs:complextype name="spielertype"> <!-- Nicht Teil der Prüfungsangabe -->

Datei wm.xsd (Fortsetzung): <xs:complextype name="einteilungtype"> <xs:sequence> <xs:element name="gruppe" maxoccurs="unbounded"> <xs:complextype> <xs:sequence> <xs:element name="land" type="xs:string" minoccurs="4" maxoccurs="4"/> <xs:element name="vorschau" minoccurs="0"> <xs:complextype mixed="true"> <xs:choice maxoccurs="unbounded"> <xs:element name="land"> <xs:complextype> <xs:attribute name="kuerzel" type="xs:string" use="required"/> <xs:element name="spieler"> <xs:complextype> <xs:attribute name="id" type="xs:string" use="required"/> </xs:choice> </xs:sequence> <xs:attribute name="name" type="xs:string" use="required"/> </xs:sequence> </xs:schema>

Aufgabe 6: Betrachten Sie die folgende XQuery-Anfrage kaderliste.xqy. Datei kaderliste.xqy: (12) let $wm := doc( wm.xml )/wm return <kaderliste> {for $land in $wm//teilnehmer/land order by $land/@name return <nation name="{$land/@name"> {for $spieler in $wm/spieler where $spieler/@land = $land/@kuerzel return <spieler trikotnr="{$spieler/@trikotnr"> {$spieler/@name </spieler> </nation> </kaderliste> Vervollständigen Sie hier das XSLT-Stylesheet kaderliste.xsl. Es soll für alle XML-Dokumente der Gestalt wm.xml (siehe Anhang) die gleichen Ergebnisse liefern wie kaderliste.xqy. Verwenden Sie dabei keine Kontrollstrukturen wie z.b. xsl:for-each. Sie brauchen sich nicht um Whitespaces etc. zu kümmern. Datei kaderliste.xsl: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:template match="/"> <kaderliste> <xsl:apply-templates select="//teilnehmer/land"> <xsl:sort select="@name"/> </xsl:apply-templates> </kaderliste> </xsl:template> <xsl:template match="teilnehmer/land"> <nation name="{@name"> <xsl:variable name="land" select="."/> <xsl:apply-templates select="//wm/spieler[@land=$land/@kuerzel]"/> </nation> </xsl:template> <xsl:template match="wm/spieler"> <spieler trikotnr="{@trikotnr"> <xsl:value-of select="@name"/> </spieler> </xsl:template> </xsl:stylesheet>

Aufgabe 7: (6) Schreiben Sie XPath-Anfragen für folgende Aufgabenstellungen. Die Abfragen sollen für alle XML-Dokumente der Gestalt wm.xml (siehe Anhang) funktionieren. Zu jeder Abfrage ist ein Beispiel mit der erwarteten Ausgabe (bezgl. wm.xml) angegeben. 1. Ausgabe aller Spieler mit der Trikotnummer 10. <spieler id="0210" name="lionel Messi" land="arg" trikotnr="10"/> <spieler id="0160" name="diego Forlan" land="uru" trikotnr="10"/> //spieler[@trikotnr= 10 ] 2. Ausgabe aller Länder, die noch nicht Weltmeister waren. <land kuerzel="gre" name="griechenland"/> <land kuerzel="mex" name="mexiko"/> <land kuerzel="nga" name="nigeria"/> <land kuerzel="rsa" name="suedafrika"/> <land kuerzel="kor" name="suedkorea"/> //teilnehmer/land[not(@weltmeister= ja )] 3. Ausgabe aller Gruppen, in denen mehr als eine Weltmeisternation spielt. <gruppe name="a"> <!--... --> </gruppe> //gruppe[count(land[.=//teilnehmer/land[@weltmeister= ja ]/@kuerzel])>1]

Aufgabe 8: (9) Nehmen Sie an, dass folgender XMLFilter auf das XML-Dokument wm.xml (siehe Anhang) ausgeführt wird. Schreiben Sie auf, welche SAX-Events die Applikation weitergereicht bekommt. Eventnamen dürfen Sie abkürzen. public class SSDFilter extends XMLFilterImpl { public void startelement(string uri, String localname, String qname, Attributes atts) throws SAXException { if("10".equals(atts.getvalue("trikotnr"))) { super.startelement(uri,localname,qname,atts); super.endelement(uri,localname,qname); public void endelement(string uri, String localname, String qname) throws SAXException { public void characters(char []ch, int start, int length) throws SAXException { // Eventname Elementname, Attibute, Textinhalt etc... startdocument startelement endelement startelement endelement enddocument spieler [id= 0210, name= Lionel Messi, land= ARG, trikotnr= 10 ] spieler spieler [id= 0160, name= Diego Forlan, land= URU, trikotnr= 10 ] spieler

Sie können diese Seite abtrennen! Datei wm.xml: <wm> <teilnehmer> <land kuerzel="arg" name="argentinien" weltmeister="ja"/> <land kuerzel="gre" name="griechenland"/> <land kuerzel="fra" name="frankreich" weltmeister="ja"/> <land kuerzel="mex" name="mexiko"/> <land kuerzel="nga" name="nigeria"/> <land kuerzel="rsa" name="suedafrika"/> <land kuerzel="kor" name="suedkorea"/> <land kuerzel="uru" name="uruguay" weltmeister="ja"/> <!--... --> </teilnehmer> <spieler id="0210" name="lionel Messi" land="arg" trikotnr="10"/> <spieler id="0160" name="diego Forlan" land="uru" trikotnr="10"/> <spieler id="0301" name="hugo Lloris" trikotnr="1" land="fra"/> <spieler id="0312" name="thierry Henry" trikotnr="12" land="fra"/> <!--... --> <einteilung> <gruppe name="a"> <land>rsa</land><land>mex</land><land>fra</land><land>uru</land> <vorschau> Nur durch das umstrittene Handstor von <spieler id="0312"/> konnte sich <land kuerzel="fra"/> qualifizieren. Toptorjäger in dieser Gruppe ist <spieler id="0160"/>. </vorschau> </gruppe> <gruppe name="b"> <land>kor</land><land>nga</land><land>arg</land><land>gre</land> </gruppe> <!--... --> </einteilung> </wm> Gesamtpunkte: 75