Fachhochschule Augsburg
Fachbereich Informatik
Klausur im Fach „XML“, Sommersemester 2002
Semester: I/MM 8
2001-07-24, 1300 Uhr
Bearbeitungszeit: 60 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.
Wandeln Sie das nachfolgend angegebene Dokument in wohlgeformtes XML um.
(1)<?xml version="1.0"?>
(2)<Rechnung>
(3) <KundenAnschrift>
(4) <Name>Hans Mustermann</Name>
(5) <Adresse>
(6) <Straße>Villa Kunterbunt</Straße>
(7) <HsNr>42</HsNr>
(8) </Adresse>
(9)
(10) <Lieferanschrift>
(11) <Name>
(12) <Vorname>Hans
(13) <Nachname>Mustermann</Vorname>
(14) </Nachname>
(15) <?identischMitRechnungsanschrift?>
(16) </Lieferanschrift>
(17)
(18)</rechnung>
(19)<BestellteArtikel>
(20)//Bitte schnell liefern
(21) <RechPos no="1" artNo="5860" menge="60"/>
(22) <RechPos no="3" menge="7" artNo="8874"></RechPos>
(23) <RechPos no="2" menge=22" menge="7970"/>
(24) <RechPos no="4" artNo="8944"/>
(25) <RechPos no="4" menge=77 artNo=8739/>
(26) <RechPos
(27) <!-- Dies ist ein Sonderangebot -->
(28) no="5" artNo='4834' menge="4"/>
(29)</BestellteArtikel>
elementE
und elementF
im selben Namensraum?(1)<?xml version="1.0" encoding="UTF-8"?>
(2)<document
(3) xmlns:nsA="http://www.example.com"
(4) xmlns:nsB="urn:companies:aCompany"
(5) xmlns:nsC="urn:companies:bCompany">
(6) <elementA xmlns="http://www.fh-augsburg.de">
(7) <nsB:elementB nsC:att1="0815">
(8) <elementC att2="42"/>
(9) </nsB:elementB>
(10) <elementE xmlns="http://www.example.com" att3="">
(11) <nsA:elementF>
(12) <nsA:elementC/>
(13) </nsA:elementF>
(14) </elementE>
(15) </elementA>
(16)</document>
Geben Sie zu nachfolgendem Dokument ein strukturell möglichst restriktives Schema an.
(1)<test>
(2) <ElementA att1="42">
(3) <ElementB>the quick <color>brown</color>
(4) fox jumps over the lazy dog</ElementB>
(5) </ElementA>
(6) <ElementC>
(7) <ElementA/>
(8) <ElementD>
(9) <ElementE/>
(10) <ElementE/>
(11) </ElementD>
(12) </ElementC>
(13)</test>
Geben Sie zum nachfolgenden Schema ein gültiges (d.h. schema valid) Dokument an.
(1)<?xml version = "1.0" encoding = "UTF-8"?>
(2)<xsd:schema xmlns:xsd = "http://www.w3.org/2001/XMLSchema">
(3) <xsd:element name = "root">
(4) <xsd:complexType>
(5) <xsd:choice>
(6) <xsd:element ref = "elementA" minOccurs = "3" maxOccurs = "5"/>
(7) <xsd:element ref = "elementB"/>
(8) </xsd:choice>
(9) </xsd:complexType>
(10) </xsd:element>
(11) <xsd:element name = "elementA">
(12) <xsd:complexType>
(13) <xsd:sequence/>
(14) </xsd:complexType>
(15) </xsd:element>
(16) <xsd:element name = "elementB">
(17) <xsd:complexType mixed = "true">
(18) <xsd:choice>
(19) <xsd:element ref = "elementC"/>
(20) </xsd:choice>
(21) </xsd:complexType>
(22) </xsd:element>
(23) <xsd:element name = "elementC">
(24) <xsd:complexType>
(25) <xsd:sequence/>
(26) </xsd:complexType>
(27) </xsd:element>
(28)</xsd:schema>
Die nachfolgenden Fragen beziehen sich auf das abgebildete Dokument:
(1)<?xml version="1.0" encoding="ISO-8859-1"?>
(2)<Stammbaum>
(3) <Person gekrönt="1485" gestorben="1509">
(4) <Name>Heinrich VII.</Name>
(5) <Person gekrönt="1509" gestorben="1547">
(6) <Name>Heinrich VIII.</Name>
(7) <Person gekrönt="1553" gestorben="1558">
(8) <Name>Maria I.</Name>
(9) </Person>
(10) <Person gekrönt="1547" gestorben="1553">
(11) <Name>Edward VI.</Name>
(12) </Person>
(13) <Person gekrönt="1558" gestorben="1603">
(14) <Name>Elisabeth I.</Name>
(15) </Person>
(16) </Person>
(17) <Person gekrönt="1603" gestorben="1625">
(18) <Name>James I.</Name>
(19) <Person gekrönt="1625" gestorben="1649">
(20) <Name>Charles I.</Name>
(21) <Person gekrönt="1649" gestorben="1660">
(22) <Name>Oliver Cromwell</Name>
(23) </Person>
(24) </Person>
(25) </Person>
(26) </Person>
(27)</Stammbaum>
Geben Sie einen XPath-Ausdruck an, der ...
substring
-Funktion).Hinweis:
Benötigte XPath-Funktion:substring(string,start,end)
Wobei string die zu verarbeitende Zeichenkette,
start die Startposition und end die Endeposition
bezeichne.
int(string)
wandelt eine Zeichenkette in eine Ganzzahl um.FOR $x in //Person
LET $y := //Person
WHERE $x/@gekrönt = $y[Name="Heinrich VIII."]/@gestorben
RETURN $x/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>Stammbaum</title>
(5) </head>
(6) <body>
(7) <table border="1">
(8) <tbody>
(9) <tr>
(10) <th>Herrscher</th>
(11) <th>Nachfolger von</th>
(12) <th>gekrönt/th>
(13) <th>gestorben</th>
(14) </tr>
(15) <tr>
(16) <td>Heinrich VII.</td>
(17) <td/>
(18) <td>1485</td>
(19) <td>1509</td>
(20) </tr>
(21) <tr>
(22) <td>Heinrich VIII.</td>
(23) <td>Heinrich VII.</td>
(24) <td>1509</td>
(25) <td>1547</td>
(26) </tr>
(27) ...
(28) </tr>
(29) </tbody>
(30) </table>
(31) </body>
(32)</html>
Charakterisieren Sie kurz die wesentlichen Eigenschaften von SAX und DOM.
Lassen sich hieraus bereits bevorzugte Problemklassen der beiden APIs ableiten?
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:05+01:00
Feedback SiteMap
This page's original location: http://www.jeckle.de/vorlesung/xml/ss2002.html
RDF description for this page