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

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

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

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

Android will doch nur spielen XML

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

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

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

Web Technologien XML, XQuery, XPath und XSLT

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

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

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

XML und Datenbanken Fortsetzung

Projektseminar "Texttechnologische Informationsmodellierung"

Musterlösung des Übungsblattes 1

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

XML Schema vs. Relax NG

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

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

XML Schema 2016 S h_da S Seite 1

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

Seminar Dokumentenverarbeitung

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

Transformation von XML-Dokumenten mit XSLT

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)

Gunther Heinrich, Tobias Steimer. XML-Schema. Im Fach SOA, ISM 2008

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

XSLT IDE AUTUMN SCHOOL

XSD - XML Schema Definition

extended Markup Language (XML)

Beschreibung von Dokumenten mit DTDs

DTDs und XML- Schemata

Vorlesung Datenbanken II SS 2006

Zusammenfassung XML. Metasprache um Dokumenttypen zu definieren

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

XML Vorlesung ETHZ SS XML Vorlesung ETHZ, Sommersemester

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

XML-Technologien. Tutorium im Sommersemester Mai 2014

Aufgabe 5.1: (a) Lösung:

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

Extensible Stylesheet Language Transformations XSLT

XML Schema 2012/2013 S Seite 1 h_da W

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

XML Schema 2012/2013 S Seite 1 h_da W

2. Klausur Web-basierte Informationssysteme SS 2015

XSLT XSL Transformations

Document Type Definition (DTD)

4. Kontrollstrukturen

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

Herbstsemester Januar Datenbanksysteme II

2. Klausur Web-basierte Informationssysteme SS 2016

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

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

9. Fortgeschrittene Techniken

Nonstandard Datenbanken

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

Einführung. Hallo-Welt in XSLT

1. Einführung 2. DTD 3. XML Schema 4. XPath 5. XSLT 6. XSL-FO 7. XQuery 8. Web Services 9. XML und Datenbanken

Document Type Definitions (DTDs)

XML Schema 2015 S h_da S Seite 1

XSL Transformation (XSLT) Teil II

XSLT XSL Transformations

XML Vorlesung FHA SS

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

XML Schema S 2012 h_da S Seite 1

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

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

Web (Site) Engineering (WebSE)

XML. extensible Markup Language

Was ist SGML. - welche Auszeichnungen (Mark up) sind erlaubt? - welche Auszeichnungen sind notwendig?

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

XML RSS. 1. Einführung 2. Syntax 3. Eigenschaften 4. Validierung 5. Fazit. 1. Einführung 2. Struktur 3. Fazit. Seite 2

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

Transkript:

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN 181.135 18. 01. 2012 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: Betrachten Sie die folgende DTD Datei test.dtd: <!ELEMENT A (B* C*)> <!ELEMENT B (A C)+> <!ELEMENT C (#PCDATA A B)*> <!ATTLIST A key ID #REQUIRED> <!ATTLIST B keyref IDREF #IMPLIED> <!ATTLIST C keyref IDREF #IMPLIED> Betrachten Sie weiters die sechs 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 key="k1"><b><c>end</c></b></a> gültig ungültig 2. <A key="k1"></a> gültig ungültig 3. <A key="k1"><b><c/></b><c/><b><c/></b></a> gültig ungültig 4. <A key="k1"><b><a key="k2"/><c keyref="k2"/></b></a> gültig ungültig 5. <A key="k1"><c>text<b><c keyref="k2"/></b>text</c></a> gültig ungültig 6. <A key="k1"><b><c>text</c></b><b><a/></b></a> gültig ungültig (Regeln für Beispiele 1 3: 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 Schema-Datei ns.xsd: <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema" targetnamespace="http://www.dbai.tuwien.ac.at/education/ssd/ss11/pruefung/ns" xmlns:el="http://www.dbai.tuwien.ac.at/education/ssd/ss11/pruefung/ns" elementformdefault="qualified"> <xs:element name="edgelist"> <xs:complextype> <xs:sequence> <xs:element name="edge" type="el:edgetype" minoccurs="1" maxoccurs="unbounded"/> </xs:sequence> </xs:complextype> </xs:element> <xs:complextype name="edgetype"> <xs:sequence> <xs:element name="point" type="el:pointtype" minoccurs="2" maxoccurs="2"/> </xs:sequence> </xs:complextype> <xs:complextype name="pointtype"> <xs:attribute name="name" type="xs:string" use="required"/> </xs:complextype> </xs:schema> Kreuzen Sie an, welche Aussagen bzgl. ns.xsd (bzw. für ein gültiges Instanzdokument desselben) wahr bzw. falsch sind. 1. Würde man im XML Schema bei der Attributdefinition von name das Attribut form auf den Wert qualified setzen, dann muss im Instanzdokument bei diesem Attribut der targetnamespace referenziert werden. wahr falsch 2. In dem XML Schema ist es über das Attribut targetnamespace möglich mehrere Target-NS für Instanzdokumente zu deklarieren. wahr falsch 3. Im Instanzdokument wäre es möglich sowohl einen Präfix el1 als auch einen weiteren Präfix el2 zu deklarieren, welche beide auf den im XML Schema deklarierten targetnamespace zeigen. wahr falsch 4. Im Instanzdokument zu dem XML Schema müssen Attribute immer im leeren NS liegen. wahr falsch 5. Das Attribut targetnamespace dient nur der Dokumentation und kann in der XML Schema Datei auch weggelassen werden. wahr falsch 6. Im Instanzdokument zu dem XML Schema ist es möglich, dass ein Element keinem Namespace zugeordnet ist. wahr falsch Aufgabe 3: Kreuzen Sie an, ob die folgenden Aussagen wahr oder falsch sind. 1. Gültige XML-Dokumente sind immer auch wohlgeformte XML-Dokumente. wahr falsch 2. Bei XML handelt es sich um eine Teilmenge der Meta-Markup-Sprache SGML. wahr falsch 3. Bei einer Ableitung neuer Typen in einem XML Schema mittels Restriction, müssen alle Komponenten, die enthalten sein sollen, noch einmal explizit angegeben werden. wahr falsch 4. DOM sieht Attribute als Kinder von Elementen an. wahr falsch 5. In XPath beginnt ein relativer Pfad immer vom aktuellen Context Node aus wahr falsch 6. XSLT ist auch ohne Kontrollstrukturen noch Turing-vollständig wahr falsch

Die folgenden Aufgaben 4 7 beziehen sich auf das XML-Dokument flugplan.xml, das Sie auf der letzten Seite dieser Prüfungsangabe finden. Aufgabe 4: (12) Vervollständigen Sie das DTD Dokument flugplan.dtd, sodass XML-Dokumente in der Gestalt von flugplan.xml (siehe Anhang) bezüglich dieser DTD gültig sind. Berücksichtigen Sie beim Erstellen der DTD folgende Punkte: Das Element flugplan ist das Wurzelelement und besteht aus mindestens einem flughafen-elementen gefolgt von beliebig vielen flug-elementen. Das Element flug besteht aus mindestens 2, aber maximal 4 flughafen-elementen. Nicht alle der folgenden Constraints sind in einer DTD darstellbar. In so einem Fall soll zumindest sichergestellt werden, dass XML-Dokumente in der Gestalt von flugplan.xml als gültig erkannt werden. Tritt das Element flughafen als Kindelement von flugplan auf, besteht es aus dem optionalem Element name gefolgt von dem Element stadt. Außerdem besitzt es ein Attribut code vom Typ ID. Tritt das Element flughafen als Kindelement von flug auf, handelt es sich um ein leeres Element mit dem Attribut ref vom Typ IDREF. Attribute sollen (wenn möglich) als verpflichtend deklariert werden. Sollten bei bestimmten Elementen oder Attributen keine näheren Angaben bezüglich des genauen Typs vorgegeben sein, wählen Sie selbst einen sinnvollen Typ aus. Datei flugplan.dtd: <!ELEMENT flugplan (flughafen+, flug*)> <!ELEMENT flughafen (name?, stadt)?> <!ELEMENT flug (flughafen, flughafen, (flughafen, flughafen?)?)> <!ELEMENT name (#PCDATA)> <!ELEMENT stadt (#PCDATA)> <!ATTLIST flughafen code ID #IMPLIED ref IDREF #IMPLIED> <!ATTLIST flug nr CDATA #REQUIRED typ CDATA #REQUIRED>

Aufgabe 5: (10) Betrachten Sie die folgenden XPath-Abfragen angewandt auf das Dokument flugplan.xml (siehe Anhang). Falls der angegebene XPath Ausdruck keine Knoten selektiert, notieren Sie im entsprechenden Feld leere Ausgabe. Falls als Ergebnis eine Zahl selektiert wird (count), geben Sie diese Zahl an. Betrachten Sie dazu folgendes Beispiel: //flughafen/@code VIE CDG ORY FCO CIA Geben Sie nun die entsprechende Ausgaben der folgenden XPath-Abfragen an. /flugplan/flug[@nr = "F1"]/flughafen/@ref VIE CDG //flug[@typ = "linie"][2]/@nr A7 //flug[2][@typ = "linie"]/@nr G3 count(//flug[@typ = "linie"][./flughafen/@ref = "VIE"]) 3 //flughafen[@code = distinct-values(//flug[@typ = "charter"]/flughafen/@ref)]/stadt/text() Wien Paris Rom

Aufgabe 6: Erstellen Sie ein XSLT-Stylesheet flugplan.xsl, das angewandt auf Dokumente der Gestalt flugplan.xml eine Ausgabe folgender Form liefert: <flightplan> <flight no="f1">wien - Paris</flight> <flight no="g3">wien - Paris</flight> <flight no="a7">wien - Paris</flight> <flight no="a8">paris - Wien</flight> <flight no="b4">paris - Rom</flight> </flightplan> Beachten Sie folgende Punkte: Die Element- und Attributnamen haben sich gegenüber dem Ursprungsdokument geändert. Für jeden Flug (flug) soll anstatt der Subelemente flughafen (mit Attribut ref) der Name der Stadt des refenzierten Flughafens angegeben werden. Beachten Sie, dass grundsätzlich mehr als zwei Flughäfen pro Flug vorkommen können! Vervollständigen Sie hier das XSLT-Stylesheet flugplan.xsl. Kontrollstrukturen wie z.b. xsl:for-each sind für die Lösung grundsätzlich erlaubt aber nicht erforderlich. Sie brauchen sich nicht um Whitespaces etc. zu kümmern (inbesondere die Bindestriche z.b. in Wien - Paris sind nicht unbedingt erforderlich). Datei flugplan.xsl: <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transform" version="1.0"> <xsl:template match="/"> <flightplan> <xsl:apply-templates select="flugplan/flug"/> </flightplan> </xsl:template> <xsl:template match="flug"> <flight no="{@nr"> <xsl:apply-templates select="flughafen"/> </flight> </xsl:template> <xsl:template match="flughafen"> <xsl:value-of select="//flughafen[@code=current()/@ref]/stadt"/> <xsl:if test="position()!= last()"> <xsl:text> - </xsl:text> </xsl:if> </xsl:template> </xsl:stylesheet>

Aufgabe 7: Betrachten Sie folgende-xquery Abfrage flugplan.xq: for $flughafen in doc("flugplan.xml")/flugplan/flughafen let $fluege := count(doc("flugplan.xml")//flug[flughafen/@ref = $flughafen/@code]/@nr) where $fluege > 2 return <flughafen code="{$flughafen/@code"> <fluege>{$fluege</fluege> Geben Sie nun die Ausgabe von flugplan.xq angewandt auf flugplan.xml an. Die exakte Behandlung von Whitespaces ist für diese Beispiel nicht relevant. <flughafen code="vie"> <fluege>4</fluege> <flughafen code="cdg"> <fluege>3</fluege>

Aufgabe 8: (8) Vervollständigen Sie die Methode findeangeflogeneflughaefen, die einem gegebenen DOM Element flughafen weitere Kindelemente fliegt-nach hinzufügt, welche als Textinhalt jeweils den Code von einem der angeflogenen Flughäfen enthalten. Sie können davon ausgehen, dass der dritte Parameter fluege bereits genau jene flug Elemente enthält, welche mit dem flughafen Element assoziiert sind (d.h. angeflogen werden). Außerdem können Sie noch davon ausgehen, dass diese flug Elemente nur aus flughafen Kindelementen bestehen. Um Fehlerbehandlung müssen Sie sich nicht kümmern. Für den Flughafen VIE soll das Ergebniselement dann auf das Beispieldokument bezogen folgendermaßen aussehen: <flughafen code="vie"> <stadt>wien</stadt> <fliegt-nach>cdg</fliegt-nach> <fliegt-nach>ory</fliegt-nach> Beachten Sie dabei inbesondere, dass kein Kindelement flight-nach mit dem eigenen Flughafencode VIE hinzugefügt werden soll, und dass keine Duplikate vorkommen sollen (z.b. zweimal CDG). public void findeangeflogeneflughaefen(document document, Element flughafen, List<Element> fluege) { if(fluege == null fluege.isempty()) { return; String code = flughafen.getattribute("code"); List<String> angeflogeneflughaefen = new ArrayList<String>(); for(element flug: fluege) { NodeList flughaefen = flug.getchildnodes(); for(int i = 0; i < flughaefen.getlength(); i++) { String ref = ((Element) flughaefen.item(i)).getattribute("ref"); if(!ref.equals(code) &&!angeflogeneflughaefen.contains(ref)) { angeflogeneflughaefen.add(ref); for(string angeflogenerflughafen: angeflogeneflughaefen) { Element fliegtnach = document.createelement("fliegt-nach"); fliegtnach.settextcontent(angeflogenerflughafen); flughafen.appendchild(fliegtnach);

Sie können diese Seite abtrennen! Datei flugplan.xml: <flugplan> <flughafen code="vie"> <stadt>wien</stadt> <flughafen code="cdg"> <name>charles de Gaulle</name> <stadt>paris</stadt> <flughafen code="ory"> <name>orly</name> <stadt>paris</stadt> <flughafen code="fco"> <name>leonardo Da Vinci/Fiumicino</name> <stadt>rom</stadt> <flughafen code="cia"> <name>ciampino</name> <stadt>rom</stadt> <flug nr="f1" typ="charter"> <flughafen ref="vie"/> <flughafen ref="cdg"/> <flug nr="g3" typ="linie"> <flughafen ref="vie"/> <flughafen ref="cdg"/> <flug nr="a7" typ="linie"> <flughafen ref="vie"/> <flughafen ref="ory"/> <flug nr="a8" typ="linie"> <flughafen ref="ory"/> <flughafen ref="vie"/> <flug nr="b4" typ="charter"> <flughafen ref="cdg"/> <flughafen ref="fco"/> </flugplan> Gesamtpunkte: 75