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.



back to top   1 Grundlagen

 

1.1  XML-Strukturen

  1. Grenzen Sie die Begriffe Element und Tag gegeneinander ab.
  2. Welcher zentrale Unterschied besteht zwischen den Inhaltsmodellen von Element und Attribut?

1.2  Mehrspachlichkeit

  1. Durch welchen Mechanismus unterstützt XML verschiedene Zeichensätze?
  2. Wie lassen sich standardkonform natürliche oder formale Sprachen in einem XML-Dokument identifizieren?

1.3  Information-Set

  1. 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?
  2. 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>

Download

back to top   2 Namensräume

 

2.1  Schema-Erstellung

  1. Umreißen Sie die Rolle der Namensräume im praktischen Einsatz von XML-Sprachen.
  2. Geben Sie für jedes Element und Attribut des abgebildeten XML-Dokuments den zutreffenden Namensraum an.
  3. Befinden sich die Elemente elementE und elementF 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>

Download

back to top   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>

Download

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>

Download

back to top   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>

Download

4.1  XPath

Geben Sie einen XPath-Ausdruck an, der ...

  1. ... den Namen desjenigen Herrschers lokalisiert, der ab 1509 regierte.
  2. ... die Sterbejahre aller Herrscher namens Heinrich lokalisiert (verwenden Sie hierzu die substring-Funktion).
  3. ... 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

  1. Geben Sie einen XQuery-Ausdruck an, der Namen der Herrscher ausgibt, die länger als 40 Jahre regiert haben.
    Hinweis: die XQuery-Funktion int(string) wandelt eine Zeichenkette in eine Ganzzahl um.
  2. 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

back to top   5 XSLT

 

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>

back to top   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.




separator line
Service provided by Mario Jeckle
Generated: 2004-06-07T12:31:05+01:00
Feedback Feedback       SiteMap SiteMap
This page's original location This page's original location: http://www.jeckle.de/vorlesung/xml/ss2002.html
RDF metadata describing this page RDF description for this page