Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN 184.705 25. 10. 2013 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

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

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

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

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

XML Schema vs. Relax NG

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

XSL Templates. Mit Templates arbeiten. XSL Templates

Klausur zur Vorlesung Einführung in XML

Vorgehensweise bei Lastschriftverfahren

Erstellen einer digitalen Signatur für Adobe-Formulare

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

Hinweise zum elektronischen Meldeformular

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

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

EINFACHES HAUSHALT- KASSABUCH

... MathML XHTML RDF

Java: Vererbung. Teil 3: super()

Überprüfung der digital signierten E-Rechnung

Pixtacy-Anbindung an CleverReach.de

Kapiteltests zum Leitprogramm Binäre Suchbäume

SEMINAR Modifikation für die Nutzung des Community Builders

Meldung der Waffennummern (Waffenkennzeichen) nach der Feuerwaffenverordnung der EU

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

Anleitung zum erfassen von Last Minute Angeboten und Stellenangebote

Übungsblatt 3: Algorithmen in Java & Grammatiken

dikasse Rechnungskunden

Datenaustauschformate. Datenaustauschformate - FLV

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)

Mit Ihrer Bewerbung fängt alles an!

Übungen Programmieren 1 Felix Rohrer. Übungen

Objektorientierte Programmierung

Bauteilattribute als Sachdaten anzeigen

BEDIENUNGSANLEITUNG: EINREICH-TOOL

Anleitung Typo3-Extension - Raumbuchungssystem

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

So eröffnen Sie schnell und bequem Ihr Internet-Festgeld

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

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

Lizenzierung von StarMoney 10 bzw. StarMoney Business 7 durchführen

Melde- und Veröffentlichungsplattform Portal (MVP Portal) Hochladen einer XML-Datei

1. Weiterleitungsregel einrichten

So geht s Schritt-für-Schritt-Anleitung

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

Einführung in die Programmierung

Anwendungsbeispiele Buchhaltung

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Verbuchung von Zahlungseingängen über das PayPal-Konto

Abwesenheitsnotiz im Exchange Server 2010

Einführung in die Programmierung für Wirtschaftsinformatik

proles-login. Inhalt [Dokument: L / v1.0 vom ]

Verarbeitung von ZV-Dateien im Internetbanking. Inhalt. 1. Datei einlesen Datei anzeigen, ändern, löschen Auftrag ausführen...

2.1 Erstellung einer Gutschrift über den vollen Rechnungsbetrag

Diana Lange. Generative Gestaltung Operatoren

XML Tutorium mit Oxygen. Oxygen Version 9.3!!

FlowFact Alle Versionen

Hinweise zum elektronischen Meldeformular

Inhalt... 1 Einleitung... 1 Systemanforderungen... 1 Software Download... 1 Prüfdokumentation... 4 Probleme... 5 Hintergrund... 5

Gezielt über Folien hinweg springen

Visual Basic Express erstes Projekt anlegen

1. Einführung. 2. Die Abschlagsdefinition

Software Engineering Klassendiagramme Assoziationen

Anmelden und Vorträge einreichen auf der JBFOne-Website Inhalt

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

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

SEPA Lastschriften. Ergänzung zur Dokumentation vom Workshop Software GmbH Siemensstr Kleve / /

TimeSafe Leistungserfassung. Version 3.7 (April 2009)

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

Access [basics] Rechnen in Berichten. Beispieldatenbank. Datensatzweise berechnen. Berechnung im Textfeld. Reporting in Berichten Rechnen in Berichten

1. Einführung Erstellung einer Teillieferung Erstellung einer Teilrechnung 6

Bedienungsanleitung: Onlineverifizierung von qualifiziert signierten PDF-Dateien

ARCO Software - Anleitung zur Umstellung der MWSt

Whitepaper. Produkt: combit address manager STAMPIT der Deutschen Post nutzen. combit GmbH Untere Laube Konstanz

Elektronische Rechnungsstellung DSQ

Praxistipps für eine effektive Büro - Organisation von Gisela Krahnke

Unsere Webapplikation erweitern

Transkript:

Gruppe A PRÜFUNG AUS SEMISTRUKTURIERTE DATEN 184.705 25. 10. 2013 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, B) (C, A)*)> <!ELEMENT B (#PCDATA C)*> <!ELEMENT C EMPTY> <!ATTLIST A key ID #REQUIRED> <!ATTLIST C ref IDREF #IMPLIED> 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/> gültig ungültig 2. <A key="x01"><c/></a> gültig ungültig 3. <A key="x01"><c/><a key="x02"/></a> gültig ungültig 4. <A key="x01"><c/>text<a key="x02"/></a> gültig ungültig 5. <A key="x01"><b>text</b></a> gültig ungültig 6. <A key="x01"><a key="x02"/><b>text</b></a> gültig ungültig 7. <A key="x01"><a key="x02"/><b><c ref="x01"/></b></a> gültig ungültig 8. <A key="x01"><a key="x02"/><b><c ref="x02"/></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 gibt es schon wesentlich länger als das WWW. wahr falsch 2. Wohlgeformte XML-Dokumente sind immer auch gültig. wahr falsch 3. Eine XML Schema Definition spezifiert das Wurzelelement des XML-Instanz Dokuments. wahr falsch 4. Pro XML-Schema Datei ist maximal ein Target-Namespace erlaubt. wahr falsch 5. DOM ist eine W3C-Recommendation. wahr falsch 6. SAX Filter dürfen verschachtelt verwendet werden. wahr falsch 7. Der Speicherbedarf eines SAX-Parsers ist im Allgemeinen geringer als eines DOM-Parsers wahr falsch 8. Bei xslt wird pro Knoten maximal ein Template angewendet. wahr falsch 9. Das Resultat eines XPATH Ausdrucks ist immer in Dokument-Order. wahr falsch 10. XQUERY baut auf einem relationalem Datenmodell auf. 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 rechnungen.xml, das Sie auf der letzten Seite dieser Prüfungsangabe finden. Aufgabe 3: (12) Vervollständigen Sie die XML Schema Datei rechnungen.xsd, sodass XML-Dokumente in der Gestalt von rechnungen.xml (siehe Anhang) bezüglich dieses Schemas gültig sind. Berücksichtigen Sie beim Erstellen des Schemas folgende Punkte: Das Element rechnungen ist das Wurzelelement und besteht aus mindestens einem rechnung-element. Das Element rechnung besitzt zwei verpflichtende Attribute (inhalt und datum). Der Elementinhalt besteht aus Text und den Subelementen betrag, spesen und total. Diese sollen folgendermaßen auftreten: Es sollen beliebig viele betrag-elemente erlaubt sein; jedem betrag-element kann optional ein spesen-element nachfolgen. Abschließend soll ein total-element auftrefen, jedoch nur dann wenn zumindest ein betrag-element (innerhalb des rechnung-elements) vorhanden ist Die Elementinhalte von betrag, spesen und total sollen nicht-negative Zahlen mit 2 Nachkommastellen sein. Versuchen Sie diesen Typ selbst zu spezifizieren. Hinweis: Leiten Sie Ihren Typ von xsd:decimal ab. Es sind keine Schlüssel zu definieren. Datei rechnungen.xsd: <!-- Sie haben auch noch auf der folgenden Seite Platz! --> <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema"> <xsd:element name="rechnungen"> <xsd:complextype> <xsd:sequence> <xsd:element name="rechnung" maxoccurs="unbounded"> <xsd:complextype mixed="true"> <xsd:sequence minoccurs="0"> <xsd:sequence maxoccurs="unbounded"> <xsd:element name="betrag" type="wert"/> <xsd:element name="spesen" minoccurs="0" type="wert"/> </xsd:sequence> <xsd:element name="total" type="wert"/> </xsd:sequence> <xsd:attribute name="datum" type="xsd:date" use="required"/> <xsd:attribute name="kundennummer" type="xsd:integer" use="required"/> </xsd:complextype> </xsd:element> </xsd:sequence> </xsd:complextype> </xsd:element> <xsd:simpletype name="wert"> <xsd:restriction base="xsd:decimal"> <xsd:minexclusive value="0"/> <xsd:fractiondigits value="2"/> </xsd:restriction> </xsd:simpletype> </xsd:schema>

Datei rechnungen.xsd (Fortsetzung):

Aufgabe 4: (10) Betrachten Sie die folgenden XPath-Abfragen angewandt auf das Dokument rechnungen.xml (siehe Anhang). Falls als Ergebnis mehrere Knoten 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: //rechnung/@datum 2013-10-10 2013-10-11 2013-10-12 Geben Sie nun die entsprechende Ausgaben der folgenden XPath-Abfragen an. //rechnung/@kundennummer 111 4711 111 //rechnung[@kundennummer= 111 ]/@datum 2013-10-10 2013-10-12 //rechnung[not(total)]/@kundennummer 111 count(//betrag) 3 //total/preceding::*/@datum 2013-10-10

Aufgabe 5: (8) Betrachten Sie folgende-xquery Abfrage rechnungen.xq angewandt auf rechnungen.xml: for $r in //rechnung let $s := sum($r/spesen) let $b := sum($r/betrag) where $s gt 0 order by $s return <r>{$b, {$s</r> Geben Sie nun die Ausgabe von rechnungen.xq angewandt auf rechnungen.xml an. Die exakte Behandlung von Whitespaces ist dabei nicht relevant. <r>38, 0.5</r> <r>50, 5</r> Aufgabe 6: (9) Erstellen Sie ein XSLT-Stylesheet rechnungen.xsl, das angewandt auf Dokumente der Gestalt rechnungen.xml folgende Ausgabe erzeugt: Es soll nur die erste Rechnung verarbeitet werden. Für diese Rechnung soll das Element html erzeugt werden. Innerhalb eines title Elements soll das Rechnungsdatum ausgegeben werden. Der Inhalt der Rechung soll weitestgehend unverändert ausgegeben werden. Einzige Änderung ist, dass für betrag, spesen und total Elemente in der Ausgabe b Elemente erzeugt werden. Deren Inhalt soll unverändert ausgegeben werden. Hinweis: Die weitestgehend unveränderte Ausgabe wird am einfachsten durch die Built-In Templates erzielt. Sie müssen also nur dafür sorgen, dass diese auch aufgerufen werden.

Für das Dokument rechnungen.xml soll beispielsweise folgende Ausgabe erzeugt werden: <html> <title>2013-10-10</title> Liebes SSD-Team, fuer die 50 Kopien der Pruefungsboegen verrechnen wir ihnen <b>50.00</b> Euro zuzueglich <b>5.00</b> Spesen fuer das Expresservice. Der offene Betrag von <b>55.00</b> ist unverzueglich zu zahlen. MfG, Kopierzentum copy/paste. </html> Vervollständigen Sie hier das XSLT-Stylesheet rechnungen.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 rechnungen.xsl: <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes"/> <xsl:template match="/"> <xsl:apply-templates select="rechnungen/rechnung[1]"/> </xsl:template> <xsl:template match="rechnung"> <html> <title><xsl:value-of select="@datum"/></title> <xsl:apply-templates/> </html> </xsl:template> <xsl:template match="betrag spesen total"> <b> <xsl:apply-templates/> </b> </xsl:template> </xsl:stylesheet>

Aufgabe 7: (9) Vervollständigen Sie den folgenden SAX Handler, der angewandt auf Dokumente der Gestalt rechnungen.xml für jede Rechnung prüfen soll, ob der Totalbetrag (Element total) tatsächlich der Summe der Beträge und Spesen entspricht. Falls die Werte voneinander abweichen, soll auf den Standardoutput die Meldung Total falsch berechnet! ausgegeben werden. Für das Dokument rechnungen.xml wird beispielsweise keine Meldung ausgegeben (50+5 = 55 bzw. 33+5+0.50 = 38.50). Denken Sie daran, dass character Events nicht immer den gesamten Textinhalt auf einmal zurückliefern! public class CheckTotal extends DefaultHandler { float ist = 0; boolean in = false; StringBuffer sb = new StringBuffer(); public void startelement(string uri, String localname, String qname, Attributes atts) throws SAXException { if ("betrag".equals(localname) "spesen".equals(localname) "total".equals(localname)) { in = true; public void endelement(string uri, String localname, String qname) throws SAXException { if ("betrag".equals(localname) "spesen".equals(localname)) { in = false; ist += Float.parseFloat(sb.toString()); sb.delete(0, sb.length()); if ("total".equals(localname)) { in = false; int soll = Float.parseFloat(sb.toString()); if (ist!= soll) { System.out.println("Total falsch berechnet!"); ist = 0; public void characters(char[] ch, int start, int length) throws SAXException { if (inpos) { sb.append(ch, start, length);

Sie können diese Seite abtrennen! Datei rechnungen.xml: <rechnungen> <rechnung datum="2013-10-10" kundennummer="111"> Liebes SSD-Team, fuer die 50 Kopien der Pruefungsboegen verrechnen wir ihnen <betrag>50.00</betrag> Euro zuzueglich <spesen>5.00</spesen> Spesen fuer das Expresservice. Der offene Betrag von <total>55.00</total> ist unverzueglich zu zahlen. MfG, Kopierzentum copy/paste. </rechnung> <rechnung datum="2013-10-11" kundennummer="4711"> Lieber Herr Diplomand, fuer die 3 Kopien Ihrer Diplomabert verrechnen wir ihnen <betrag>33.00</betrag> Euro spesenfrei. Die Kopie Ihrer Zeugnisse macht <betrag>5.00</betrag> aus zzgl. Dokumentspesen von <spesen>0.50</spesen>. Bitte um baldige Begleichung des Gesamtbetrags von <total>38.50</total>. Alles Gute zu Ihrer baldigen Sponsion. Ihr Kopierzentrum copy/paste. </rechnung> <rechnung datum="2013-10-12" kundennummer="111"> Liebes SSD-Team, Zahlen Sie bitte endlich! Kopierzentrum copy/paste. </rechnung> </rechnungen> Gesamtpunkte: 75