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 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 IN SEMI-STRUKTURIERTE 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 IN SEMI-STRUKTURIERTE 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

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

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

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

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

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

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

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

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

Web (Site) Engineering (WebSE)

Projektseminar "Texttechnologische Informationsmodellierung"

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

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

Seminar Dokumentenverarbeitung

Übersicht. Web (Site) Engineering (WebSE) XML-Beispieldokument. Simple API for XML (SAX) [Pro] XML-Beispiel. Vorlesung 6: Tools und Programmierung

Extensible Stylesheet Language Transformations XSLT

2. Klausur Web-basierte Informationssysteme SS 2015

2. Klausur Web-basierte Informationssysteme SS 2016

Transformation von XML-Dokumenten mit XSLT

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

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

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

Aufgabe 5.1: (a) Lösung:

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

XML-Schema Datentypen

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

Vorlesung Datenbanken II SS 2006

Document Type Definition (DTD)

4. Kontrollstrukturen

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

XSLT vs. STX STX. Streaming Transformation for XML. Jan Krueger

artikel.dtd: Document Type Definition mit der Strukturbeschreibung artikel.xml: XML-Datei mit den durch Tags markierten Daten.

XSLT IDE AUTUMN SCHOOL

XSL Transformations (XSLT) Teil II

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

XSLT XSL Transformations

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

XSL Transformations (XSLT) Teil I

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

Web Technologien XML, XQuery, XPath und XSLT

Wege zur Anzeige. XSL die extensible Stylesheet Language. Wege zur Anzeige. Folie 1. Institut für Dokumentologie und Editorik

Musterlösung des Übungsblattes 1

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

XML, XML-DTDs, und XML Schema

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

Klausur zur Vorlesung Einführung in XML

extended Markup Language (XML)

XML-Praxis. Mit XSLT arbeiten. Jörn Clausen

XML-Praxis. Mit XSLT arbeiten. Jörn Clausen

Klausur Semistrukturierte Daten und XML Sommersemester 2011 Prof. Dr. Wolfgang May 14. Juli 2011, Uhr Bearbeitungszeit: 90 Minuten

1. Klausur Web-basierte Informationssysteme SS 2010

Eine Dokumenttypdefinition lässt sich im Kopfbereich des XML-Dokumentes (interne DTD) oder in einer separaten Datei formulieren (externe DTD).

XSLT XSL Transformations

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

Klausur zur Vorlesung Einführung in XML

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

Kurzeinführung in XML. Was ist XML? Well-formed u. gültiges XML Erste Anwendung in XML Externe DTD Attribute und Entities Datenausgabe mit XSL

Android will doch nur spielen XML

XML, FI und JSON strukturiert in Java verwenden. Wolfgang Nast

Einführung in XML. Seminarunterlage. Version 3.05 vom

Deklaration standalone="yes" Quelle:

Musterlösung Übungsblatt 14

Hauptseminar Informatik. Die Strukturierung von XML-Dokumenten mit Hilfe von DTDs und XML Schema

XML Vorlesung FHA SS

Document Type Definitions (DTDs)

Aufgaben eines Codegenerators

Rückblick Klausurvorbereitung

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

DTDs und XML- Schemata

XSLT: Transformation von XML

Web-Anwendungen, SS17 - Fragentypen

XSL Transformation (XSLT) Teil II

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

XML Vorlesung FHA SS

Klausur "C#" WS 2013/2014

Transkript:

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN 184.705 25. 06. 2014 Kennnr. Matrikelnr. Familienname Vorname Arbeitszeit: 100 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: (12) Betrachten Sie die folgende xml-schema Datei test.xsd: <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema"> <xsd:element name="a" type="atype"/> <xsd:complextype name="atype"> <xsd:all> <xsd:element name="b" type="btype" minoccurs="0" maxoccurs="1"/> <xsd:element name="a" type="atype" minoccurs="0" maxoccurs="1"/> </xsd:all> </xsd:complextype> <xsd:complextype name="btype"> <xsd:choice minoccurs="0" maxoccurs="1"> <xsd:element name="b" type="btype"/> <xsd:element name="c" type="xsd:int"/> </xsd:choice> </xsd:complextype> </xsd:schema> Betrachten Sie weiters die acht verschiedenen xml-dateien, die unten angeführt sind. Sie können davon ausgehen, dass alle folgenden xml-dateien wohlgeformt sind. Es geht also lediglich darum, ihre Gültigkeit bezüglich test.xsd zu entscheiden. Kreuzen Sie an, welche der folgenden xml-dateien gültig bezüglich test.xsd sind. 1. <a/> gültig ungültig 2. <a><b/><a/></a> gültig ungültig 3. <a><b><a/></b></a> gültig ungültig 4. <a><a/><a/></a> gültig ungültig 5. <a><b><c>1</c></b></a> gültig ungültig 6. <a><b><c>1</c><c>2</c></b></a> gültig ungültig 7. <a><b><b><b/></b></b></a> gültig ungültig 8. <b/> 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) A 1

Aufgabe 2: Kreuzen Sie an, ob die folgenden Aussagen wahr oder falsch sind. (15) 1. XML gibt es schon wesentlich länger als das WWW. wahr falsch 2. Die XML-Recommendation lässt offen, wie sich XML-Parser bei Wohlgeformtheitsfehler verhalten sollen. wahr falsch 3. Wohlgeformte XML-Dokumente dürfen im Allgemeinen mehr als ein Wurzelelement haben. wahr falsch 4. Der Speicherbedarf eines SAX-Parsers ist im Allgemeinen geringer als eines DOM-Parsers. wahr falsch 5. Das Resultat eines XPATH Ausdrucks ist immer in Dokument-Order. wahr falsch 6. Bei SAX können auch mehrere characters events hintereinander auftreten. wahr falsch 7. Rekursive Definitionen wie z.b. <!ELEMENT B (A,B?,C)> sind in DTDs verboten. wahr falsch 8. Der XPath-Ausdruck //name ist die Kurzschreibweise des XPath-Ausdrucks /descendant::name wahr falsch 9. Syntaktisch ist JSON ein Teil von JavaScript. wahr falsch 10. Das Konzept der CDATA Sections spielt in JSON eine wichtige Rolle. 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) A 2

Die folgenden Aufgaben 3 7 beziehen sich auf das XML-Dokument gruppen.xml, das Sie auf der letzten Seite dieser Prüfungsangabe finden. Aufgabe 3: (12) Vervollständigen Sie das DTD Dokument gruppe.dtd, sodass XML-Dokumente in der Gestalt von gruppe.xml (siehe Anhang) bezüglich dieser DTD gültig sind. Berücksichtigen Sie beim Erstellen der DTD folgende Punkte: Das Element gruppen ist das Wurzelelement und besteht aus mindestens einem gruppe-element. Jedes gruppe-element besitzt ein Attribut bezeichnung und hat folgende Unterstruktur: Exakt vier team-elemente, gefolgt von beliebig vielen spiel-elementen. Jedes team-element besitzt ein Attribut name sowie ein Attribut code. Jedes spiel-element besitzt Attribute a b und erg und kann Kindelemente ereignis und spieler haben. Alle Attribute sollen verpflichtend sein. Spezifizieren Sie die Attribute (wählen Sie sinnvolle Typen aus!) sowie die nicht näher erläuterten Häufigkeiten entsprechend dem gruppe.xml Dokument im Anhang. Versuchen Sie weiters entsprechende Schlüsselbeziehungen zu finden und in der DTD abzubilden. Beachten Sie ebenso anhand von gruppe.xml, dass Elemente gemischten Inhalt haben können. Datei gruppe.dtd: <!ELEMENT gruppen (gruppe+)> <!ELEMENT gruppe (team, team, team, team, spiel*)> <!ATTLIST gruppe bezeichnung CDATA #REQUIRED> <!ELEMENT team EMPTY> <!ATTLIST team name CDATA #REQUIRED> <!ATTLIST team code ID #REQUIRED> <!ELEMENT spiel (#PCDATA spieler ereignis)*> <!ATTLIST spiel a IDREF #REQUIRED> <!ATTLIST spiel b IDREF #REQUIRED> <!ATTLIST spiel erg CDATA #REQUIRED> <!ELEMENT spieler (#PCDATA)> <!ELEMENT ereignis (#PCDATA)> A 3

Aufgabe 4: (10) Betrachten Sie die folgenden XPath-Abfragen angewandt auf das Dokument gruppe.xml (siehe Anhang). Falls als Ergebnis team Elemente selektiert werden, geben Sie jeweils das Attribut code an. Falls als Ergebnis spiel Elemente selektiert werden, geben Sie jeweils das Attribut a an. Falls als Ergebnis gruppe Elemente selektiert werden, geben Sie jeweils das Attribut bezeichnung an. Falls als Ergebnis mehrere Elemente selektiert werden, trennen Sie die jeweiligen Ausgaben durch Leerzeichen. Falls der angegebene XPath Ausdruck keine Knoten selektiert, notieren Sie im entsprechenden Feld leere Ausgabe. Betrachten Sie dazu folgendes Beispiel: //team BRA CRO MEX KAM ESP NED CHI AUS Geben Sie nun die entsprechende Ausgaben der folgenden XPath-Abfragen an. count(//team) 8 //spiel[*] BRA //team[2] CRO NED (//team)[2] CRO //gruppe[spiel] A A 4

Aufgabe 5: (8) Betrachten Sie folgende-xquery Abfrage gruppe.xq angewandt auf gruppe.xml: for $t in //team[@code=//spiel/@a or @code=//spiel/@b] let $b := //spiel[@a=$t/@code or @b=$t/@code] return element {$t/@name { element erg {string($b/@erg) Geben Sie zuerst die code Attribute aller Knoten an, die $t durchläuft: BRA CRO MEX KAM Geben Sie nun die a Attribute aller Knoten an, die in $b gespeichert werden (falls Werte mehrfach vorkommen, geben Sie diese mehrfach an). BRA BRA MEX MEX Geben Sie nun die Ausgabe von gruppe.xq angewandt auf gruppe.xml an. Die exakte Behandlung von Whitespaces ist dabei nicht relevant. <Brasilien> <erg>3:1</erg> </Brasilien> <Kroation> <erg>3:1</erg> </Kroation> <Mexiko> <erg>1:0</erg> </Mexiko> <Kamerun> <erg>1:0</erg> </Kamerun> A 5

Aufgabe 6: (9) Erstellen Sie ein XSLT-Stylesheet gruppe.xsl, das angewandt auf Dokumente der Gestalt gruppe.xml folgende Ausgabe erzeugt: Als Dokumentelement soll das Element berichte erzeugt werden. Für jedes spiel Element wird ein Element bericht mit folgendem Inhalt erzeugt: dem Name des Teams, auf das sich das a Attribut bezieht (nicht der Code!) dem Name des Teams, auf das sich das b Attribut bezieht dem Inhalt des erg Attributs Für das Dokument gruppe.xml soll beispielsweise folgende Ausgabe erzeugt werden: <berichte> <bericht>brasilien - Kroation: 3:1</bericht> <bericht>mexiko - Kamerun: 1:0</bericht> </berichte> Vervollständigen Sie hier das XSLT-Stylesheet gruppe.xsl. Die Verwendung von Kontrollstrukturen wie xsl:for-each, xsl:if, etc. ist für die Lösung nicht erlaubt (und auch nicht sinnvoll)! Sie brauchen sich nicht um Whitespaces etc. zu kümmern. Datei gruppe.xsl: <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:template match="/"> <berichte> <xsl:apply-templates select="//spiel"/> </berichte> </xsl:template> <xsl:template match="spiel"> <bericht> <xsl:value-of select="//team[@code=current()/@a]/@name"/> <xsl:text> - </xsl:text> <xsl:value-of select="//team[@code=current()/@b]/@name"/> <xsl:text>: </xsl:text> <xsl:value-of select="@erg"/> </bericht> </xsl:template> </xsl:stylesheet> A 6

Aufgabe 7: (9) Vervollständigen Sie den folgenden SAX Handler, der angewandt auf Dokumente der Gestalt gruppe.xml für jede Gruppe folgende Informationen auf System.out ausgibt: den Namen der Gruppe die Anzahl der bisherigen Spiele in dieser Gruppe (spiel Elemente) Für das Dokument gruppe.xml wird beispielsweise folgende Ausgabe erwartet: Gruppe A: 2 Spiele Gruppe B: 0 Spiele Um die genaue Formatierung brauchen Sie sich nicht zu kümmern. Datei Gruppe.java: public class Gruppe extends DefaultHandler { int spiele; public void startelement(string uri, String localname, String qname, Attributes atts) throws SAXException { if ("gruppe".equals(localname) { spiele = 0; System.out.print("Gruppe " + atts.getvalue("bezeichnung") + ": "); else if ("spiel".equals(localname)) { spiele++; public void endelement(string uri, String localname, String qname) throws SAXException { if ("gruppe".equals(localname) { System.out.println(spiele + " Spiele"); A 7

A 8

Sie können diese Seite abtrennen! Datei gruppe.xml: <gruppen> <gruppe bezeichnung="a"> <team name="brasilien" code="bra"/> <team name="kroation" code="cro"/> <team name="mexiko" code="mex"/> <team name="kamerun" code="kam"/> <spiel a="bra" b="cro" erg="3:1">im <ereignis>eroeffnungsspiel</ereignis> der WM 2014 zwischen Brasilien und Kroatien schoss <spieler>neymar</spieler> das entscheidende Tor.</spiel> <spiel a="mex" b="kam" erg="1:0"/> </gruppe> <gruppe bezeichnung="b"> <team name="spanien" code="esp"/> <team name="niederlande" code="ned"/> <team name="chile" code="chi"/> <team name="australien" code="aus"/> </gruppe> </gruppen> Gesamtpunkte: 75 A 9