Nachklausur Elektronisches Publizieren, Sommer 2018 Name: mit Lösungshinweisen und Korrekturschema Matrikelnummer: Sitzplatz: Sie können maximal 58 Punkte erreichen. Mit 23 Punkten bekommen Sie garantiert eine 4.0, mit 55 Punkten garantiert eine 1.0. 1 2 3 4 5 6 7 8 9 10 11 12 13 ∑ K KE Nachklausur EP / DocEng Sommer 2018 1 Aufgabe 1 (Querschnitt) 28 Begriffe, ¼ Punkt für jeden unterstrichenen und korrekt verwendeten Begriff, ¼ Punkt Abzug für jeden unzulässig unterstrichenen Begriff. 7 Pkte Erstellen Sie einen zusammenhängenden Text über den Vorlesungsinhalt, in dem die folgenden. Begriffe vorkommen: • Element, XML DTD, XML-Technologie, Elementdeklaration, Typdefinition, XSLT, Document Management, CSS-Stylesheet, Garden of Eden, Venetian Blind, Russian Doll, Salami Slice, eXtensible Markup Language, XPath, XML Schema, Elektronisches Publizieren, Attribut, Document Engineering, Push-Schema, Pull-Schema, Schematron, XQuery, Attributdeklaration, Inhaltstext, Knowledge Management, global, lokal, FLWOR-Ausdruck Unterstreichen Sie IN IHREM TEXT, wo die Begriffe aus der obigen Liste vorkommen. Unterstreichen Sie jeden Begriff nur einmal, auch wenn Sie ihn mehrfach verwenden. Unterstreichen Sie keine Begriffe, die nicht in der Liste vorkommen. NUR NACH DIESEN REGELN UNTERSTRICHENE BEGRIFFE WERDEN BEWERTET. Lösungsvorschlag: Document Engineering hat seine Wurzeln in drei Bereichen: Eletronisches Publizieren, Document Management und Knowledge Management. Nachklausur EP / DocEng Sommer 2018 2 ... noch Aufgabe 1 (Querschnitt) XML, die eXtensible Markup Language, ist der Industriestandard für die Kodierung von Dokumenten. Ein XML-Dokument besteht konzeptuell aus einer hierarchischen Struktur von Elementen und Inhaltstext. Elemente können dabei Attribute tragen. Die formatierte Darstellung eines XML-Dokuments kann durch ein CSS-Stylesheet definiert werden. Ein Dokumententyp kann formal in einer Schemasprache beschrieben werden. Beispiele für Schemasprachen sind XML DTD, XML Schema und Schematron. Eine generative Schemasprache wie XML DTD oder XML Schema besteht aus Typdefinitionen, Elementdeklarationen und Attributdeklarationen. Sowohl Typdefinitionen als auch Elementdeklarationen können lokal oder global sein. Jede Kombination führt zu einem der vier Patterns Garden of Eden, Venetian Blind, Russian Doll oder Salami Slice. Es stehen eine Reihe von XML-Technologien zur Verfügung, mit denen die Bearbeitung eines XML-Dokuments definiert werden kann. Dazu gehören XQuery und XSLT. Beide Sprachen basieren auf XPath. XQuery-Ausdrücke können FLWOR-Ausdrücke sein. XSLT-PRogramme können nach dem Push-Schema oder nach dem Pull-Schema organisiert werden. Nachklausur EP / DocEng Sommer 2018 3 Aufgabe 2 (XML, Datenmodelle) 6 Pkte Betrachten Sie das folgende XML-Dokument: <?xml version="1.0" encoding="UTF-8"?> <collection> <!-- Title of collection --> <title author="ABK" name="Main CD collection"/> <cd> <!-- Title of CD --> <title>Favorite CD</title> </cd> <collection> <title author="ABK" name="Rhythm&amp;Blues"/> <cd> <title>Rhythm&amp;Blues Favorites</title> </cd> </collection> </collection> Nachklausur EP / DocEng Sommer 2018 4 ... noch Aufgabe 2 (XML, Datenmodelle) • Erstellen Sie ein Baumdiagramm für das links stehende XML-Dokument. 4 Punkte maximal. Es gibt 14 Knoten. ½ Punkt Abzug für jeden Fehler, insbesondere einmalig für mangelnde Expansion von &amp; zu & und für fehlende Knoten vom Typ Text (Markierung #text) Nachklausur EP / DocEng Sommer 2018 5 ... noch Aufgabe 2 (XML, Datenmodelle) • Nennen Sie drei wesentlich verschiedene Arten von Information, die in dem XML-Dokument aber nicht in dem Baumdiagramm enthalten sind (von denen das Baumdiagramm also abstrahiert) Mögliche Antworten (immer nur eine Antwort pro Gruppe akzeptieren) - XML-Deklaration, <?xml...?> - Kommentare, <!--...--> - Syntaktischer Zucker, z.B. Leerelemente-Tags vs öffnendes und schließendes Tag ohn Inhalt, einfache oder doppelte Anführungszeichen um Attributwerte, White Space in Tags - Referenzen auf Entitäten, &amp; 1.5 Punkte, jeweils ½ Punkt für jede - DTD, Document Type Definition eigenständige Art von weg-abstrahierter Information • Für welches vom W3C standardisierte Datenmodell ist das Baummodell eine Visualisierung? ½ Punkt XML Information Set oder einfach Infoset. Falsch ist Antwort XDM oder XML Data Model. Nachklausur EP / DocEng Sommer 2018 6 Aufgabe 3 (DTD) Jeweils ½ Punkt pro richtiger Antwort und pro richtiger Begründung 3 Pkte Betrachten Sie das folgende XML-Dokument doc: <abc> <x> <abc/> </x> </abc> • Gibt es eine DTD, die genau das Dokument doc und keine anderen Dokumente validiert? Begründen Sie Ihre Antwort. Nein. DTDs haben globale Elementdeklarationen. Eine DTD, die doc validiert, muss also auch <abc/> validieren. • Gibt es ein XML Schema, das genau das Dokument doc und keine anderen Dokumente validiert? Begründen Sie Ihre Antwort. Ja. XML Schema hat lokale Elementdeklarationen. Ein Schema kann also für das äußerste Element abc eine andere Deklaration vorsehen (hat ein Kind x) als für das innere Element abc (ist leer). • Gibt es ein Schematron-Schema, das genau das Dokument doc und keine anderen Dokumente validiert? Begründen Sie Ihre Antwort. Ja. Man kann mit XPath-Ausdrücken vorgeben, - dass auf der obersten Ebene genau ein Element abc vorkommen soll dass auf der Ebene darunter genau ein Element x vorkommen soll dass auf der Ebene darunter genau ein Element abc vorkommen soll dass das unterste Element leer sein soll Nachklausur EP / DocEng Sommer 2018 7 Aufgabe 4 (Namensräume) 5 Pkte Betrachten Sie das folgende XML-Dokument: <e1 xmlns:p ="a.example.com"> <p:e2 xmlns:p="b.example.com"> <e3 xmlns="a.example.com"/> <e4 p:a1="..." a2="..."/> </p:e2> <e5 xmlns="a.example.com"> <e6 xmlns=""> <e7/> </e6> <e8/> </e5> </e1> Nachklausur EP / DocEng Sommer 2018 8 ... noch Aufgabe 4 (Namensräume) • Welche Elemente sind im Namensraum a.example.com? e3, e5, e8 • Welche Elemente sind im Namensraum b.example.com? e2 Für die ersten drei Fragen: ½ Punkt für jedes richtig eingeordnete Element. ½ Punkt Abzug für jedes Element, das in mehr als einer Antwort vorkommt. • Welche Elemente sind im anonymen Namensraum? e1, e4, e6, e7 • Welche Elemente sind in einem Default-Namensraum? e3, e5, e8 ¼ Punkt für jede richtige Antwort, ¼ Punkt Abzug für jede falsche Antwort • Welche Attribute sind lokale Attribute? a2 ¼ Punkt für korrekte Antwort, ¼ Punkt Abzug für falsche Antwort Nachklausur EP / DocEng Sommer 2018 9 Aufgabe 5 (XML Schema) 4 Pkte Betrachten Sie das Schema in der Schemasprache XML Schema: <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:complexType name="collectionType"> <xs:sequence> <xs:element name="title" type="collectionTitle"/> <xs:element name="cd" type="cdType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="collection" type="collectionType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!-- Elements of this type have no content, only attributes --> <xs:complexType name="collectionTitle"> <xs:attribute name="author" type="xs:string"/> <xs:attribute name="name" type="xs:string"/> </xs:complexType> <xs:complexType name="cdType"> <xs:sequence> <xs:element name="title" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:element name="collection" type="collectionType"/> </xs:schema> Nachklausur EP / DocEng Sommer 2018 10 ... noch Aufgabe 5 (XML Schema) 2 + 1 + 1 Punkte • Begründen Sie, dass dieses Schema nach dem Pattern Venetian Blind strukturiert ist. Das Schema benutzt nur im Schema selbst global definierte (optional: oder vordefinierte) Typen (1 Punkt). Das Schema hat nur lokale Elementdeklarationen (optional: mit Ausnahme der Deklaration des Einstiegselements collection) (1 Punkt). • Kann ein nach Venetian Blind strukturiertes Schema grundsätzlich äquivalent (ohne die Menge der Instanzen zu verändern) in das Pattern Garden of Eden umgeschrieben werden? Begründen Sie Ihre Antwort. NEIN (1/2 Punkt). Venetian Blind hat lokale Elementdeklarationen, Garden of Eden jedoch globale. Lokale Elementdeklarationen können im allgemeinen nicht in globale Elementdeklarationen umgeschrieben werden, da dabei Namenskonflikte entstehen können (1/2 Punkt). • Wie sieht es mit diesem konkreten Beispiel aus? Kann das äquivalent in das Pattern Garden of Eden umgeschrieben werden? Begründen Sie Ihre Antwort. NEIN (1/2 Punkt). Das Element title ist an mehreren Stellen unterschiedlich deklariert (lokale Elementdeklarationen) (1/2 Punkt). Nachklausur EP / DocEng Sommer 2018 11 Aufgabe 6 (Datentypen) 1.5 + 1.5 + 1 + 1 Punkte 5 Pkte • Was ist ein Datentyp in einer Schemasprache für XML und wie kann er verwendet werden? (Achtung: gefragt ist nach Datentyp, nicht nach Strukturtyp!) Beschreiben Sie drei deutlich voneinander unterschiedene Aspekte von Datentypen. (1) Die Werte eines Datentyps sind Strings von Unicode-Zeichen. (2) Je nach Datentyp folgen die StringWerte gewissen Bildungsmustern (z.B. 31.8 E2 oder 2017-01-02). (3) Datentypen können als Typen für Attribute und reinen Textinhalt von Elementen verwendet werden. (4) Die Werte eines Datentyps können als Attributwerte oder als Inhalt eines Elements verwendet werden. (5) Es gibt je nach Schemasprache einen unterschiedlichen Satz an vordefinierten Datentypen. (6) Beispiele für Datentypen aus XML Schema sind xs:date oder xs:integer. (7) Beispiele für Datentypen aus XML DTD sind PCDATA, CDATA oder ID. ½ Punkt pro Aspekt, 1.5 Punkte maximal • Nennen und beschreiben Sie den Mechanismus, mit dem Sie in XML Schema einen eigenen Datentyp definieren können, der den Wertebereich eines vorgegebenen Datentyps einschränkt. Verwenden Sie die Begriffe Facette und Pattern. Der Mechanismus heißt Restriction. Facetten sind die Kriterien, nach denen ein Basistyp eingeschränkt werden kann, z.B. minInclusive oder maxExclusive für numerische Datentypen. Patterns sind spezielle Facetten, die einen regulären Ausdruck angeben, nach dem die Werte des Basistyps eingeschränkt werden sollen. ½ Punkt jeweils für Recstriction, Facette, Pattern Nachklausur EP / DocEng Sommer 2018 12 ... noch Aufgabe 6 (Datentypen) • Wie heißen die anderen beiden Mechanismen, mit denen Sie in XML Schema einen eigenen Datentyp definieren können? ½ Punkt pro Begriff, also 1 Punkt insgesamt Union (Vereinigung) und List (Listenbildung) • Gibt es in XML DTD vordefinierte Strukturtypen? NEIN. Vordefinierte Datentypen? JA. ½ Punkt pro Antwort, also 1 Punkt insgesamt Nachklausur EP / DocEng Sommer 2018 13 Aufgabe 7 (XPath, XQuery) 4 Pkte 16 Begriffe, ¼ Punkt für jeden unterstrichenen und korrekt verwendeten Begriff, ¼ Punkt Abzug für jeden unzulässig unterstrichenen Begriff. Erstellen Sie einen zusammenhängenden Text über XPath und XQuery, in dem die folgenden. Begriffe vorkommen: • Prädikat, Achse, Kind-Achse, Slash (/), Knotentest, Step, Kontextknoten, FLWOR-Ausdruck, Abfragesprache, Teilsprache, ist berechenbarkeits-universell, ist nicht berechenbarkeits-universell, XDM, SQL, relationales Modell, Datenmodell. Unterstreichen Sie IN IHREM TEXT, wo die Begriffe aus der obigen Liste vorkommen. Unterstreichen Sie jeden Begriff nur einmal, auch wenn Sie ihn mehrfach verwenden. Unterstreichen Sie keine Begriffe, die nicht in der Liste vorkommen. NUR NACH DIESEN REGELN UNTERSTRICHENE BEGRIFFE WERDEN BEWERTET. Ein Location-Path Ausdruck in XPath besteht aus einer Folge von Steps, die durch einen Slash (/) voneinander getrennt sind. Ein Step besteht aus einer Achse, einem Knotentest und optionalen Prädikaten. Die DefaultAchse ist die Kind-Archse. Ein XPath-Ausdruck wird von einem Kontextknoten ausgehend ausgewertet. Nachklausur EP / DocEng Sommer 2018 14 ... noch Aufgabe 7 XPath ist eine Teilsprache von XQuery. XQuery ist eine Abfragesprache für XML-Dokumente. XQuery ist berechenbarkeits-universell, XPath ist nicht berechenbarkeits-universell. XPath und XQuery basieren auf dem Datenmodell XDM. Es bestehen Parallelen zwischen der XML-Welt und der Welt der relationalen Daten: XDM entspricht dem relationen Modell und XQuery entspricht SQL. Nachklausur EP / DocEng Sommer 2018 15 Aufgabe 8 (XPath) 4 Pkte Betrachten Sie das folgende XML-Dokument: <bookstore> <book category='children'> <title lang='en-GB'>Harry Potter</title> <author>J. K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category='web'> <title lang='en-US'>Learning XML</title> <author>E. T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore> Nachklausur EP / DocEng Sommer 2018 16 ... noch Aufgabe 8 (XPath) Betrachten Sie die folgenden XPath-Ausdrücke 1. ancestor::bookstore// year 2. .[@lang='en-GB']/ancestor::bookstore// year 3. .[@lang='en-US']/ancestor::bookstore// year 4. ../..// year 5. ../../ year 6. ../..// year[../name()='book‘] 1 + 3 Punkte 6 Positionen, wie markiert, maximal 1 Punkt. ¼ Punkt Abzug für jede falsche oder fehlende Markierung • Markieren Sie alle Stellen in diesen Ausdrücken, in denen implizit die Achse child:: vorkommt. • Evaluieren Sie jeden dieser Ausdrücke, ausgehend von dem ersten Element title in dem Beispieldokument als Kontextknoten. Geben Sie jeweils die Ergebnissequenzen an. Das Ergebnis der dritten und fünften Query ist die leere Sequenz, bei den anderen Queries ist das Ergebnis jeweils <year>2005</year><year>2003</year> (anders ausgedrückt: eine Sequenz von zwei Elementknoten year mit Textinhalten 2005 und 2003, so wie oben serialisiert). ½ Punkt pro korrekter Angabe, 3 Punkte insgesamt Nachklausur EP / DocEng Sommer 2018 17 Aufgabe 9 (XQuery) 5 Pkte Betrachten Sie das XML-Dokument bookstore.xml in der linken Spalte und die Abfrage in XQuery daneben in der rechten Spalte <bookstore> <book category='children'> <title lang='en-GB'>Harry Potter</title> <author>J. K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category='web'> <title lang='en-US'>Learning XML</title> <author>E. T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore> Nachklausur EP / DocEng Sommer 2018 let $noBooks := count(doc('bookstore.xml')//book) return <summary> <title>A bookstore with {$noBooks} books</title> <books>{ for $book in doc('bookstore.xml')//book order by $book/year ascending return <book>{$book/title/text()} ({$book/year/text()})</book> }</books> </summary> 18 ... noch Aufgabe 9 (XQuery) 4 + 1 Punkte • Was ist das Ergebnis der Query? Sie können XML-Code oder ein Baumdiagramm angeben. <summary> -- 5 Elemente in korrekter Hierarchie, jeweils ½ Punkt <title>A bookstore with 2 books</title> -- „2“ books, ½ Punkt <books> <book>Learning XML (2003)</book> -- Reihenfolge der Bücher korrekt, ½ Punkt <book>Harry Potter (2005)</book> -- korrekte Textinhalt der Bücher, ½ Punkt </books> </summary> • Was ist im allgemeinen das Ergebnis einer Abfrage in XQuery? Zu welchem Datenmodell gehört es? Muss es immer ein komplettes XML-Dokument sein? Begründen Sie Ihre Antwort. NEIN, das Ergebnis ist ein Datum in XDM; es muss nicht unbedingt ein komplettes XML-Dokument sein sondern kann z.B. auch nur eine Sequenz von Knoten (ohne Einstiegselement) oder eine leere Sequenz sein. 1 Punkt insgesamt, ½ Punkt für richtige Antwort, ½ Punkt für Begründung Nachklausur EP / DocEng Sommer 2018 19 Aufgabe 10 (XQuery) 3 Pkte Geben Sie das Ergebnis der folgenden XQuery an. Beachten Sie dabei, dass der Ausdruck “k to l“ für ganze Zahlen k und l zur Sequenz (k,...,l) evaluiert. “1 to 3“ steht also für die Sequenz (1,2,3). Eine ganze Zahl k ist äquivalent zu der Sequenz (k) mit nur einem Item. Die Zählung in Sequenzen beginnt bei 1. for $a in 2 to 7 let $b:= 1 to 2 where $a * $b[2] > 9 return for $c in 4 let $d := ($a, $b, $c) return <X>{ $d }</X> Für jede korrekte Sequenz an korrekter Position 1 Punkt. 1 Punkt Abzug (einmalig) falls die Klammern <X>...</X> nicht richtig gesetzt sind. 1 Punkt Abzug falls statt 1 2 nur 1 oder nur 2 angegeben ist. Das Ergebnis ist: <X>5 1 2 4</X> <X>6 1 2 4</X> <X>7 1 2 4</X> Nachklausur EP / DocEng Sommer 2018 20 Aufgabe 11 (XQuery) 4 Pkte Was ist das Ergebnis der Query in der rechten Spalte, gegeben das Dokument bookstoreExpanded.xml in der linken Spalte. <bookstore> <book category='children'> <title lang='en-GB'>HP and the Philosopher's Stone</title> <author>J. K. Rowling</author> </book> <book category='children'> <title lang='en-GB'>HP and the Chamber of Secrets</title> <author>J. K. Rowling</author> </book> <book category='web'> <title lang='en-US'>Learning XML</title> <author>E. T. Ray</author> </book> </bookstore> 1.5 Punkte für jedes der beiden korrekten Element <record>...</record>, dabei ½ Punkt Abzug für jeden Fehler. 1 Punkt für korrekte Reihenfolge. Nachklausur EP / DocEng Sommer 2018 let $books := doc('bookstoreExpanded.xml') for $a in distinct-values($books//author) let $no := count($books//book[author=$a]) order by $no descending return <record> <name>{ $a }</name> <count>{ $no }</count> </record> <record> <name>Joanne K. Rowling</name> <count>2</count> </record> <record> <name>Erik T. Ray</name> <count>1</count> </record> 21 Aufgabe 12 (XSLT) 4 Pkte Betrachten Sie das XML-Dokument in der linken Spalte und das XSLT-Programm mit den Regeln in der rechten Spalte. <bookstore> <book category='children'> <title lang='en-GB'>Harry Potter</title> <author>J. K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category='web'> <title lang='en-US'>Learning XML</title> <author>E. T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore> Nachklausur EP / DocEng Sommer 2018 <xsl:template match="/"> <summary> <xsl:apply-templates select="//book[title/@lang='en-GB']"/> </summary> </xsl:template> <xsl:template match="book"> <xsl:copy-of select="title"/> </xsl:template> <xsl:template match="title"> <info><xsl:apply-templates/></info> </xsl:template> <xsl:template match="text()"/> 22 ... noch Aufgabe 12 (XSLT) 1 + 3 Punkte • Begründen Sie, dass das XSLT-Programm nach dem Push-Prinzip aufgebaut ist. Es gibt mehrere Templates (1/2 Punkt). Jedes Template ruft xsl:apply-templates für bestimmte Knoten auf (optional: oder kopiert sie) (1/2 Punkt). • Welches Ergebnis hat die Anwendung des XSLT-Programms auf das XML-Dokument? Geben Sie das Ergebnis als Baumdiagramm oder als XML-Dok^ument an. <summary> <title lang=‘en-BG‘>Harry Potter</title> 3 Punkte: 1 Punkt für summary, 1 Punkt </summary> für title (auch wenn Attribut lang fehlt), 1 Punkt für Harry Potter. 1 Punkt Abzug für jeden Fehler. Nachklausur EP / DocEng Sommer 2018 23 Aufgabe 13 (Unicode) 4 Pkte • Wie heißt der Zeichensatz von Unicode (ausgeschrieben)? Universal Character Set (1/2 Punkt) • Wie heißt das Unicode-Kodierungsformat, das jeder XML-Prozessor unterstützen muss? UTF8 (1/2 Punkt) • Wieviel Byte benötigt das Kodierungsformat UTF16, um ein Zeichen der Basic Multilingual Plane (BMP) zu kodieren? 2 (1/2 Punkt) • Wieviel Byte benötigt das Kodierungsformat UTF16, um ein Zeichen außerhalb der Basic Multilingual Plane (BMP) zu kodieren? 4 (1/2 Punkt) • Für die meisten Alphabete (deutsche, russische, arabische, koreanische, japanische usw) gibt es nationale Standards zur Kodierung von Zeichen? Welchen Mehrwert hat Unicode über diese nationalen Standards hinaus? Gibt es auch Nachteile bei der Verwendung von Unicode gegenüber den nationalen Standards? Mehrwert: mehrere Sprachen können gleichzeitig in einem Dokument vorkommen (1 Punkt) Nachteil: die Code-Position eines Zeichens unter UCS kann verschieden sein vom nationalen Standard, was Umkodierungen nötig macht (1 Punkt) Nachklausur EP / DocEng Sommer 2018 24