Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN 184.705 7. 1. 2014 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 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

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 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 IN SEMI-STRUKTURIERTE DATEN Kennnr. Matrikelnr. Familienname Vorname

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

XML Schema vs. Relax NG

XSL Templates. Mit Templates arbeiten. XSL Templates

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

Klausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.

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

Klausur zur Vorlesung Einführung in XML

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

... MathML XHTML RDF

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

Datenaustauschformate. Datenaustauschformate - FLV

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

Vorgehensweise bei Lastschriftverfahren

XML Tutorium mit Oxygen. Oxygen Version 9.3!!

Übungsblatt 3: Algorithmen in Java & Grammatiken

Einführung in die Programmierung

Kapiteltests zum Leitprogramm Binäre Suchbäume

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

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

Aufgaben zu XPath und XQuery

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Übungsaufgaben zu XML:

Arbeiten mit UMLed und Delphi

Prof. Dr. Uwe Schmidt. 21. August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

EndTermTest PROGALGO WS1516 A

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

Software Engineering Klassendiagramme Assoziationen

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Klausur zur Einführung in die objektorientierte Programmierung mit Java

U08 Entwurfsmuster (II)

HTML5. Wie funktioniert HTML5? Tags: Attribute:

Übungen Programmieren 1 Felix Rohrer. Übungen

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Erstellen einer digitalen Signatur für Adobe-Formulare

Objektorientierte Programmierung

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

SEP 114. Design by Contract

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Elektronische Rechnungsstellung DSQ

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Einführung in die Programmierung für Wirtschaftsinformatik

Standard-Kontaktformular

Unsere Webapplikation erweitern

Einführung in die Programmierung

WPF Steuerelemente Listbox, ComboBox, ListView,

ftp://ftp.dlink.de/dpr/dpr-1061/documentation/dpr-1061%20printer%20compatible%20list.pdf

BEDIENUNGSANLEITUNG: EINREICH-TOOL

Klausur zur Vorlesung Einführung in XML

Ruhr.pm XML-Daten verarbeiten mit XML::LibXML Autor: Datum:

Anleitung zum erstellen einer PDF-Datei aus Microsoft Word

Mediator 9 - Lernprogramm

In S-Firm wird nur angeboten die Datei auf Diskette zu exportieren; die Einstellung für HBCI ist ausgegraut.

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Zeichen bei Zahlen entschlüsseln

SDK zur CRM-Word-Schnittstelle

AutoCAD Dienstprogramm zur Lizenzübertragung

Technische Hochschule Georg Agricola WORKSHOP TEIL 3. IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt

Task: Nmap Skripte ausführen

Java: Vererbung. Teil 3: super()

Graphic Coding. Klausur. 9. Februar Kurs A

Datenbanken Kapitel 2

Visual Basic Express erstes Projekt anlegen

Programmierkurs Java

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

etutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche

Jahrgang: Jahrgang 1. Thema: Systementwicklung einer Webapplikation - Geheimnachrichten-Generator

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

1 Software Engineering 1

Einrichten einer mehrsprachigen Webseite mit Joomla (3.3.6)

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

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

Erstellen einer in OWA (Outlook Web App)

Beispiel(unten ist der Spielfeldrand):

Anleitung OpenCms 8 Webformular Auswertung

Lizenz Verwaltung. Adami Vista CRM

teischl.com Software Design & Services e.u. office@teischl.com

Transkript:

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN 184.705 7. 1. 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 DTD Datei test.dtd: <!ELEMENT A ((A,C)* B+ C+)> <!ELEMENT B (C,D)*> <!ELEMENT C (#PCDATA B A)*> <!ELEMENT D (#PCDATA)> <!ATTLIST B id ID #REQUIRED> 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.dtd zu entscheiden. Kreuzen Sie an, welche der folgenden xml-dateien gültig bezüglich test.dtd sind. 1. <A><C><B>text</B></C><C>text</C></A> gültig ungültig 2. <A><C><B id="x01">text</b></c><c>text</c></a> gültig ungültig 3. <A><C><B id="x01"><c><b>text</b></c><d>text</d></b></c></a> gültig ungültig 4. <A><A><C>text</C></A><C><B id="x01"><c>text</c><d>text</d></b></c></a> gültig ungültig 5. <A><B id="x01"><c>text</c></b><b><c>text</c></b></a> gültig ungültig 6. <A><C>text</C><C>text</C><C>text</C></A> gültig ungültig 7. <A><B id="x01"><c>text</c></b><d>text</d></a> gültig ungültig 8. <A><B id="x01"><c>text</c><d>text</d></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: Kreuzen Sie an, ob die folgenden Aussagen wahr oder falsch sind. (15) 1. XML steht für extended Modeling Language wahr falsch 2. Eine Eigenschaft von XML ist die Trennung von Struktur und Präsentation wahr falsch 3. Die Reihenfolge von Attributen ist entscheidend wahr falsch 4. Elemente ohne Namespace Präfix sind immer im leeren Namespace wahr falsch 5. DTD bieten keine Unterstützung von Namespaces wahr falsch 6. In einem XML-Schema spezifiziert xsd:sequence die Reihenfolge des Auftretens im Instanzdokument wahr falsch 7. Die Verwendung von complextype mit simplecontent macht keinen Sinn wahr falsch 8. Ein XML Parser prüft immer die Gültigkeit eines XML Dokuments wahr falsch 9. SAX Filter können nicht verschachtelt verwendet werden wahr falsch 10. Ein Absoluter XPath Pfad beginnt beim akutuellen Context Node 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 3 7 beziehen sich auf das XML-Dokument movies.xml, das Sie auf der letzten Seite dieser Prüfungsangabe finden. Aufgabe 3: (12) Vervollständigen Sie die XML Schema Datei movies.xsd, sodass XML-Dokumente in der Gestalt von movies.xml (siehe Anhang) bezüglich dieses Schemas gültig sind. XML-Dokumente der Form movies.xml sollen eine Liste von Filmen abspeichern. Berücksichtigen Sie beim Erstellen des Schemas folgende Punkte: Das Element movies ist das Wurzelelement und besteht aus mindestens zwei movie-elementen. Jedes movie-element beinhaltet Information zu einem Film. Ein Film besteht aus genau einem title-element, genau einem releaseyear-element und genau einem imdbrating-element gefolgt von genau einem characters-element. Die Reihenfolge dieser Elemente soll eingehalten werden. Das characters-element hat mindestens zwei name-elemente. Das imdbrating-element darf einen Wert von 0 bis 10 beinhalten mit einer Nachkommastelle. Das releaseyear-element darf einen Wert nicht kleiner als 1900 und nicht größer als 2014 beinhalten. Wählen Sie anhand des Dokuments im Anhang sinnvolle Typen und Häufigkeiten aus. Alle Attribute sollen verpflichtend sein. Dies soll in Ihrer XML-Schema Definition explizit ablesbar sein. Es sind keine Schlüssel zu definieren. Datei movies.xsd: <!-- Sie haben auch noch auf der folgenden Seite Platz! --> <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema"> <xsd:element name="movies"> <xsd:complextype> <xsd:sequence> <xsd:element name="movie" maxoccurs="unbounded" minoccurs="2" type="movie"/> </xsd:sequence> </xsd:complextype> </xsd:element> <xsd:complextype name="movie"> <xsd:sequence> <xsd:element name="title" type="xsd:string"/> <xsd:element name="releaseyear" type="releaseyeartype"/> <xsd:element name="imdbrating" type="imdbratingtype"/> <xsd:element name="characters" type="characterstype"/> </xsd:sequence> <xsd:attribute name="url" type="xsd:string" use="required"/> </xsd:complextype> <xsd:simpletype name="releaseyeartype"> <xsd:restriction base="xsd:integer"> <xsd:mininclusive value="1900"/> <xsd:maxinclusive value="2014"/> </xsd:restriction> </xsd:simpletype>

Datei movies.xsd (Fortsetzung): <xsd:simpletype name="imdbratingtype"> <xsd:restriction base="xsd:decimal"> <xsd:mininclusive value="0"/> <xsd:maxinclusive value="10"/> <xsd:fractiondigits value="1"/> </xsd:restriction> </xsd:simpletype> <xsd:complextype name="characterstype"> <xsd:sequence> <xsd:element name="name" type="xsd:string" minoccurs="2" maxoccurs="unbounded"/> </xsd:sequence> </xsd:complextype> </xsd:schema>

Aufgabe 4: (10) Betrachten Sie die folgenden XPath-Abfragen angewandt auf das Dokument movies.xml (siehe Anhang). Falls als Ergebnis mehrere Knoten selektiert werden, trennen Sie die jeweiligen Ausgaben durch einen senkrechten Strich. Falls als Ergebnis Elemente selektiert werden, geben Sie deren Inhalt an. Falls der angegebene XPath Ausdruck keine Knoten selektiert, notieren Sie im entsprechenden Feld leere Ausgabe. Betrachten Sie dazu folgendes Beispiel: //movie/releaseyear 1994 1972 1974 1994 Geben Sie nun die entsprechende Ausgaben der folgenden XPath-Abfragen an. //movie[0]/title leere Ausgabe //movie[not(releaseyear/text() > 1990)]/title Der Pate Der Pate2 //movie[characters/name = "Al Pacino"]/imdbRating 9.2 9.0 //characters/name[1] Tim Robbins Marlon Brando Al Pacino John Travolta (//name)[6] Robert De Niro

Aufgabe 5: (8) Betrachten Sie folgende-xquery Abfrage movies.xq angewandt auf movies.xml: for $m in //movie let $t := $m/title/text() let $r := $m/releaseyear/text() let $i := $m/imdbrating/text() let $c := count($m//name) where $i > 9 order by $r ascending return <movie>{$t({$r) - {$i - {$c</movie> Geben Sie nun die Ausgabe von movies.xq angewandt auf movies.xml an. Die exakte Behandlung von Whitespaces ist dabei nicht relevant. <movie>der Pate(1972) - 9.2-2</movie> <movie>die Verurteilten(1994) - 9.2-2</movie>

Aufgabe 6: (10) Erstellen Sie ein XSLT-Stylesheet movies.xsl, das angewandt auf Dokumente der Gestalt movies.xml folgende Ausgabe erzeugt: Es soll ein Element movies erzeugt werden, das folgende Elemente enthält. Es soll ein Element number erzeugt werden, das die Anzahl der movie-elemente enthält. Es soll ein Element characters erzeugt werden, das die Anzahl der name-elemente enthält. Es soll ein Element maxrating erzeugt werden, welches das höchste Rating aller imdbrating-elemente enthält. Es soll ein Element minrating erzeugt werden, welches das niedrigste Rating aller imdbrating-elemente enthält. Es soll ein Element urls erzeugt werden, welches alle url-attribute aller movie-elemente in u-elementen kapselt. Für das Dokument movies.xml soll beispielsweise folgende Ausgabe erzeugt werden: <movies> <number>4</number> <characters>8</characters> <maxrating>9.2</maxrating> <minrating>8.9</minrating> <urls> <u>http://www.imdb.com/?movie=...</u> <u>http://www.imdb.com/?movie=...</u> <u>http://www.imdb.com/?movie=...</u> <u>http://www.imdb.com/?movie=...</u> </urls> </movies> Vervollständigen Sie hier das XSLT-Stylesheet movies.xsl. Die Verwendung von Kontrollstrukturen wie xsl:for-each, xsl:if, etc. ist für die Lösung nicht erlaubt! Sie brauchen sich nicht um Whitespaces etc. zu kümmern. Datei movies.xsl: <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:template match="/"> <movies> <number><xsl:value-of select="count(//movie)"/></number> <characters><xsl:value-of select="count(//name)"/></characters> <maxrating><xsl:value-of select="max(//imdbrating)"/></maxrating> <minrating><xsl:value-of select="min(//imdbrating)"/></minrating> <urls> <xsl:apply-templates select="//movie"/> </urls> </movies> </xsl:template> <xsl:template match="movie"> <u><xsl:value-of select="@url"/></u> </xsl:template> </xsl:stylesheet>

Aufgabe 7: (8) Vervollständigen Sie den folgenden SAX Handler, der angewandt auf Dokumente der Gestalt movies.xml den Durchschnittswert aller imdbrating-elemente ermittelt und in einer Variable avg speichert. Für das Dokument movies.xml wäre der Durchschnittswert beispielsweise 9.075. [(9.2 + 9.2 + 9.0 + 8.9)/4] public class SSDHandler extends DefaultHandler { float avg = 0; float sum = 0; float current = 0; int nr = 0; boolean inimdbrating = false; StringBuffer sb = new StringBuffer(); public void startelement(string uri, String localname, String name, Attributes attributes) throws SAXException { if("imdbrating".equals(localname)){ inimdbrating = true; nr++; public void endelement(string uri, String localname, String name) throws SAXException { if(inimdbrating){ sum += current; inimdbrating = false; sb.delete(0, sb.length()); avg = sum / nr; public void characters(char[] ch, int start, int length) throws SAXException { if(inimdbrating){ sb.append(ch, start, length); current = Float.parseFloat(sb.toString());

Sie können diese Seite abtrennen! Datei movies.xml: <?xml version="1.0" encoding="utf-8"?> <movies> <movie url="http://www.imdb.com/?move=..."> <title>die Verurteilten</title> <releaseyear>1994</releaseyear> <imdbrating>9.2</imdbrating> <characters> <name>tim Robbins</name> <name>morgan Freeman</name> </characters> </movie> <movie url="http://www.imdb.com/?move=..."> <title>der Pate</title> <releaseyear>1972</releaseyear> <imdbrating>9.2</imdbrating> <characters> <name>marlon Brando</name> <name>al Pacino</name> </characters> </movie> <movie url="http://www.imdb.com/?move=..."> <title>der Pate 2</title> <releaseyear>1974</releaseyear> <imdbrating>9.0</imdbrating> <characters> <name>al Pacino</name> <name>robert De Niro</name> </characters> </movie> <movie url="http://www.imdb.com/?move=..."> <title>pulp Fiction</title> <releaseyear>1994</releaseyear> <imdbrating>8.9</imdbrating> <characters> <name>john Travolta</name> <name>samuel L. Jackson</name> </characters> </movie> </movies> Gesamtpunkte: 75