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.
encoding
-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>
elementE
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>
Geben 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>
Die 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
Geben 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>
Charakterisieren 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