Klausur im Fach XML -- Sommersemester 2002
- ️Mario Jeckle
- ️Invalid Date
![](https://web.archive.org/web/20080117194804im_/http://www.jeckle.de/images/dummy.gif)
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 Grundlagen
![]() |
1.1 XML-Strukturen
- Grenzen Sie die Begriffe Element und Tag gegeneinander ab.
- Welcher zentrale Unterschied besteht zwischen den Inhaltsmodellen von Element und Attribut?
1.2 Mehrspachlichkeit
- Durch welchen Mechanismus unterstützt XML verschiedene Zeichensätze?
- Wie lassen sich standardkonform natürliche oder formale Sprachen in einem XML-Dokument identifizieren?
1.3 Information-Set
- Begründen Sie, weshalb der Infoset-Standard eine zentrale
Rolle innerhalb der Familie der XML-Spezifikationen spielt.
Weshalb wird auf diese Spezifikation in fast jedem auf XML aufbauenden Standard verwiesen? - Begründen Sie, weshalb Repräsentationen, die sich nicht der in der XML-Spezifikation definierten Syntax bedienen, aber konform zum Information-Set angelegt sind, auch gültiges XML sind.
1.4 Wohlgeformtheit
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>
2 Namensräume
![]() |
2.1 Schema-Erstellung
- Umreißen Sie die Rolle der Namensräume im praktischen Einsatz von XML-Sprachen.
- Geben Sie für jedes Element und Attribut des abgebildeten XML-Dokuments den zutreffenden Namensraum an.
- Befinden sich die Elemente
elementE
undelementF
im selben Namensraum?
Begründen Sie ihre Antwort!
(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>
3 XML-Schema
![]() |
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>
3.1 Dokumenterstellung
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>
4 Lokator- und Anfragesprachen
![]() |
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>
4.1 XPath
Geben Sie einen XPath-Ausdruck an, der ...
- ... den Namen desjenigen Herrschers lokalisiert, der ab 1509 regierte.
- ... die Sterbejahre aller Herrscher namens
Heinrich lokalisiert (verwenden Sie hierzu die
substring
-Funktion). - ... den Personen-Knoten derjenigen Herrscher lokalisiert, die zwischen 1550 und 1650 gekrönt wurden und die Nachfahren Heinrich VIII. sind.
Hinweis:
Benötigte XPath-Funktion:substring(string,start,end)
Wobei string die zu verarbeitende Zeichenkette,
start die Startposition und end die Endeposition
bezeichne.
4.2 XQuery
- Geben Sie einen XQuery-Ausdruck an, der Namen der Herrscher ausgibt, die länger als 40 Jahre regiert haben.
Hinweis: die XQuery-Funktionint(string)
wandelt eine Zeichenkette in eine Ganzzahl um. - Welches Resultat liefert folgender XQuery-Ausdruck:
FOR $x in //Person LET $y := //Person WHERE $x/@gekrönt = $y[Name="Heinrich VIII."]/@gestorben RETURN $x/Name
5 XSLT
![]() |
Geben Sie eine XSLT-Transformation an, die das Dokument aus Aufgabe 4 in die angegebene HTML-Form überführt.
Anforderungen:
- Erzeugung der korrekten HTML-Tabellenstruktur
- Ermittlung des nachfolgenden Herrschers
- Selektion der notwendigen Daten aus der XML-Eingabe
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>
6 Programmier-APIs
![]() |
6.1 SAX und DOM
Charakterisieren Sie kurz die wesentlichen Eigenschaften von SAX und DOM.
Lassen sich hieraus bereits bevorzugte Problemklassen der beiden APIs ableiten?
6.2 Java Data Binding for XML
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