Hochgeladen von franz.pampusch

angabeNachklausurSommer2018Lösungen

Werbung
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&Blues"/>
<cd>
<title>Rhythm&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 & 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, &
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
Herunterladen