Fachhochschule Augsburg
Fachhochschule Ulm
Fachbereich Informatik
Klausur im Fach „XML“, Wintersemester 2002/03
Semester: I/MM/etc. 8
2003-01-22, 1400 Uhr
Bearbeitungszeit: 90 Minuten
Zugelassene Hilfsmittel: keine
![]()
Alle Codebeispiele, die angegeben oder verlangt sind, beziehen sich auf die Version 1.0 (second edition) der XML Recommendation des World Wide Web Consortiums vom 6. Oktober 2000.
![]()
1 Grundlagenencoding-Deklaration wird der in einem XML-Dokument zugelassene Zeichensatz bestimmt.2028 in Produktion Nr. 3 (White Space) im Rahmen von XML v1.1 Änderungen an bestehenden Parsern?Wandeln Sie das nachfolgend angegebene Dokument in wohlgeformtes XML um.
(1)<?xml version="0.9"?>
(2)<html
(3)lang="en"
(4)xmlns="http://www.w3.org/1999/xhtml"
(5)xml:lang="en"
(6)lang="en">
(7)<head>
(8)<title>A Math Example</title>
(9)<body>
(10)<p>The following is MathML markup:</p>
(11)<math xmlns=http://www.w3.org/1998/Math/MathML>
(12)<apply> <log></log>
(13)<logbase>
(14)<cn> 3 </cn>
(15)</logbase>
(16)<ci> x </ci>
(17)</logbase>
(18)</apply>
(19)</math>
(20)</body>
(21)</HTML>
2 NamensräumeelementE und elementF im selben Namensraum?(1)<?xml version="1.0" encoding="UTF-8"?>
(2)<ElementA
(3) xmlns="http://www.example.com"
(4) xmlns:ns1="http://www.example.org"
(5) xmlns:ns2="http://example.org/foo">
(6) <ns1:ElementB
(7) att1="42"
(8) ns2:att1=""
(9) xmlns:ns3="http://www.jeckle.de">
(10) <ElementE xmlns="">
(11) <ns3:ElementH/>
(12) <ElementG xmlns:ns2="http://www.example.org"/>
(13) </ElementE>
(14) </ns1:ElementB>
(15) <elementF>
(16) <ElementJ xmlns="http://www.example.com"
(17) att1="99"/>
(18) </elementF>
(19)</ElementA>
3 XML-SchemaGeben Sie zu nachfolgendem Dokument ein strukturell möglichst restriktives Schema an.
Dabei gelte:
rufname nicht angegeben, so soll die Vorgabe false gelten.Informatik wird nur noch Elektrotechnik und Medizin unterstützt.(1)<?xml version="1.0" encoding="ISO-8859-15"?>
(2)<Bibliothek
(3) name="Stadtbüchereich Ulm"
(4) xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
(5) xsi:noNamespaceSchemaLocation="http://www.jeckle.de/vorlesung/xml/klausur/ws2003/ResultatSchema.xsd">
(6) <Genre name="Kriminalromane">
(7) <Buch>
(8) <Autor>
(9) <Vorname rufname="true">Agatha</Vorname>
(10) <Vorname>Marry</Vorname>
(11) <Vorname>Clarissa</Vorname>
(12) <Nachname>Christie</Nachname>
(13) </Autor>
(14) <Titel>Mord auf dem Golfplatz</Titel>
(15) <ISBN>3-5025-1778-9</ISBN>
(16) </Buch>
(17) <Buch>
(18) <Titel>Jerry Cotton. Bombenfracht nach West Virginia / Rosannas schärfste Waffe / Sterben für Marilyn</Titel>
(19) <ISBN>3-4043-1939-7</ISBN>
(20) </Buch>
(21) </Genre>
(22) <Genre name="Fachliteratur">
(23) <Subgenre name="Informatik">
(24) <Buch>
(25) <Herausgeber>
(26) <Vorname>Stefan</Vorname>
(27) <Nachname>Mintert</Nachname>
(28) </Herausgeber>
(29) <Titel>XML & Co.</Titel>
(30) <ISBN>3-8273-1844-0</ISBN>
(31) </Buch>
(32) </Subgenre>
(33) </Genre>
(34)</Bibliothek>
Geben Sie zum nachfolgenden Schema ein gültiges (d.h. schema valid) Dokument an.
Hierbei bilde das Element Root das Wuzelelement des Dokuments.
(1)<?xml version="1.0" encoding="UTF-8"?>
(2)<xs:schema
(3) xmlns:xs="http://www.w3.org/2001/XMLSchema"
(4) elementFormDefault="qualified">
(5) <xs:element name="Bibliothek">
(6) <xs:complexType>
(7) <xs:sequence>
(8) <xs:element name="Genre" maxOccurs="unbounded">
(9) <xs:complexType>
(10) <xs:choice>
(11) <xs:element name="Buch" type="BuchType" maxOccurs="unbounded"/>
(12) <xs:element name="Subgenre">
(13) <xs:complexType>
(14) <xs:sequence>
(15) <xs:element name="Buch" type="BuchType"/>
(16) </xs:sequence>
(17) <xs:attribute name="name" type="subgenreType" use="required"/>
(18) </xs:complexType>
(19) </xs:element>
(20) </xs:choice>
(21) <xs:attribute name="name" use="required">
(22) <xs:simpleType>
(23) <xs:restriction base="xs:NMTOKEN">
(24) <xs:enumeration value="Fachliteratur"/>
(25) <xs:enumeration value="Kriminalromane"/>
(26) </xs:restriction>
(27) </xs:simpleType>
(28) </xs:attribute>
(29) </xs:complexType>
(30) </xs:element>
(31) </xs:sequence>
(32) <xs:attribute name="name" type="xs:string" use="required"/>
(33) </xs:complexType>
(34) </xs:element>
(35) <xs:complexType name="BuchType">
(36) <xs:sequence>
(37) <xs:element name="Autor" minOccurs="0">
(38) <xs:complexType>
(39) <xs:sequence>
(40) <xs:element name="Vorname" type="VornameType" maxOccurs="unbounded"/>
(41) <xs:element ref="Nachname"/>
(42) </xs:sequence>
(43) </xs:complexType>
(44) </xs:element>
(45) <xs:element name="Herausgeber" minOccurs="0">
(46) <xs:complexType>
(47) <xs:sequence>
(48) <xs:element name="Vorname" type="VornameType"/>
(49) <xs:element ref="Nachname"/>
(50) </xs:sequence>
(51) </xs:complexType>
(52) </xs:element>
(53) <xs:element name="Titel" type="xs:string"/>
(54) <xs:element name="ISBN" type="ISBNType"/>
(55) </xs:sequence>
(56) </xs:complexType>
(57) <xs:element name="Nachname">
(58) <xs:simpleType>
(59) <xs:restriction base="xs:string">
(60) <xs:enumeration value="Christie"/>
(61) <xs:enumeration value="Mintert"/>
(62) </xs:restriction>
(63) </xs:simpleType>
(64) </xs:element>
(65) <xs:complexType name="VornameType">
(66) <xs:simpleContent>
(67) <xs:extension base="xs:string">
(68) <xs:attribute name="rufname" type="xs:boolean" default="false"/>
(69) </xs:extension>
(70) </xs:simpleContent>
(71) </xs:complexType>
(72) <xs:simpleType name="ISBNType">
(73) <xs:restriction base="xs:string">
(74) <xs:pattern value="\p{Nd}{1}-\p{Nd}{4}-\p{Nd}{4}-(X|\p{Nd})"/>
(75) </xs:restriction>
(76) </xs:simpleType>
(77) <xs:simpleType name="subgenreType">
(78) <xs:restriction base="xs:string">
(79) <xs:enumeration value="Informatik"/>
(80) <xs:enumeration value="Elektrotechnik"/>
(81) <xs:enumeration value="Medizin"/>
(82) </xs:restriction>
(83) </xs:simpleType>
(84)</xs:schema>
4 Lokator- und AnfragesprachenDie nachfolgenden Fragen beziehen sich auf das abgebildete Dokument:
(1)<?xml version="1.0" encoding="UTF-8"?>
(2)<Stammbaum>
(3) <Name beiname="Der Große Kurfürst">Friedrich Wilhelm</Name>
(4) <Regiert von="1640" bis="1688"/>
(5) <Sohn>
(6) <Name beiname="König in Preußen">Friedrich III.</Name>
(7) <Regiert von="1688" bis="1713"/>
(8) <Sohn>
(9) <Name beiname="Soldatenkönig">Friedrich Wilhelm I.</Name>
(10) <Regiert von="1713" bis="1740"/>
(11) <Sohn>
(12) <Person>
(13) <Name beiname="Der Große">Friedrich II.</Name>
(14) <Regiert von="1740" bis="1786"/>
(15) </Person>
(16) <Person>
(17) <Name>August Wilhelm</Name>
(18) <Sohn>
(19) <Name>Friedrich Wilhelm II.</Name>
(20) <Sohn>
(21) <Name>Friedrich Wilhelm III.</Name>
(22) <Sohn>
(23) <Person>
(24) <Name>Friedrich Wilhlm IV.</Name>
(25) </Person>
(26) <Person>
(27) <Name type="deutscher Kaiser">Wilhelm I.</Name>
(28) <Regiert von="1871" bis="1888"/>
(29) </Person>
(30) <Sohn>
(31) <Name type="deutscher Kaiser">Friedrich III.</Name>
(32) <Regiert von="1888" bis="1888"/>
(33) <Sohn>
(34) <Name type="deutscher Kaiser">Wilhelm II.</Name>
(35) <Regiert von="1888" bis="1918"/>
(36) </Sohn>
(37) </Sohn>
(38) </Sohn>
(39) </Sohn>
(40) </Sohn>
(41) </Person>
(42) </Sohn>
(43) </Sohn>
(44) </Sohn>
(45)</Stammbaum>
Benötigte XPath-Funktionen:number(object?) : number
count(node-set) : number
Geben Sie einen XPath-Ausdruck an, der ...
Benötigte Funktion:contains(string1,string2) : boolean
<Herrscher>
<Name
möglicheBeinamen='... '
tatsächlicherBeiname='... '>
Herrschername
</Name>
</Herrscher>
Welches Resultat liefert folgender XQuery-Ausdruck:
FOR $x in document('beispiel.xml')//Regiert
WHERE $x/@von = '1740'
RETURN $x/parent::*/Name
5 XSLTGeben Sie eine XSLT-Transformation an, die das Dokument aus Aufgabe 4 in die angegebene HTML-Form überführt.
Anforderungen:
Ausgabe:
(1)<?xml version="1.0" encoding="UTF-8"?>
(2)<html>
(3) <head>
(4) <title>Haus Hohenzollern</title>
(5) </head>
(6) <body>
(7) <table border="1">
(8) <tbody>
(9) <tr>
(10) <th>Herrscher</th>
(11) <th>Nachfolger von</th>
(12) <th>Herrschaftsbeginn</th>
(13) <th>Herrschaftsende</th>
(14) </tr>
(15) <tr>
(16) <td>Friedrich Wilhelm</td>
(17) <td/>
(18) <td>1640</td>
(19) <td>1688</td>
(20) </tr>
(21) <tr>
(22) <td>Friedrich III.</td>
(23) <td>Friedrich Wilhelm</td>
(24) <td>1688</td>
(25) <td>1713</td>
(26) </tr>
(27) <tr>
(28) <td>Friedrich Wilhelm I.</td>
(29) <td>Friedrich III.</td>
(30) <td>1713</td>
(31) <td>1740</td>
(32) </tr>
(33) <tr>
(34) <td>Friedrich II.</td>
(35) <td>Friedrich Wilhelm I.</td>
(36) <td>1740</td>
(37) <td>1786</td>
(38) </tr>
(39) <tr>
(40) <td>August Wilhelm</td>
(41) <td>Friedrich II.</td>
(42) <td/>
(43) <td/>
(44) </tr>
(45) <tr>
(46) <td>Friedrich Wilhelm II.</td>
(47) <td>August Wilhelm</td>
(48) <td/>
(49) <td/>
(50) </tr>
(51) <tr>
(52) <td>Friedrich Wilhelm III.</td>
(53) <td>Friedrich Wilhelm II.</td>
(54) <td/>
(55) <td/>
(56) </tr>
(57) <tr>
(58) <td>Friedrich Wilhlm IV.</td>
(59) <td>Friedrich Wilhelm III.</td>
(60) <td/>
(61) <td/>
(62) </tr>
(63) <tr>
(64) <td>Wilhelm I.</td>
(65) <td>Friedrich Wilhlm IV.</td>
(66) <td>1871</td>
(67) <td>1888</td>
(68) </tr>
(69) <tr>
(70) <td>Friedrich III.</td>
(71) <td>Wilhelm I.</td>
(72) <td>1888</td>
(73) <td>1888</td>
(74) </tr>
(75) <tr>
(76) <td>Wilhelm II.</td>
(77) <td>Friedrich III.</td>
(78) <td>1888</td>
(79) <td>1918</td>
(80) </tr>
(81) </tbody>
(82) </table>
(83) </body>
(84)</html>
6 Semantic Web
7 Programmier-APIsCharakterisieren Sie kurz die wesentlichen Eigenschaften von SAX und DOM.
Lassen sich hieraus bereits bevorzugte Problemklassen der beiden APIs ableiten?
Wie grenzen sich extrahierende gegenüber SAX-basierten Parsern ab?
Vergleichen Sie die beiden Ansätze DOM und das Java Data Binding for XML.
Diskutieren Sie die Auswirkungen auf die Anwendungsentwicklung unter Verwendung der beiden Schnittstellen.
![]()
Service provided by Mario Jeckle
Generated: 2004-06-07T12:31:08+01:00
Feedback
SiteMap
This page's original location: http://www.jeckle.de/vorlesung/xml/klausur/ws2003/index.html
RDF description for this page