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.



back to top   1 Grundlagen

 

1.1  XML-Strukturen

  1. Die XML-Syntax verbietet die Unterstrukturierung von Attributen.
    Durch welchen Mechanismus wird dies erreicht?
  2. Was bezeichnet der Begriff Inhaltsmodell?
  3. Definieren Sie die Begriffe datenorientiertes und dokumentorientiertes XML und geben Sie jeweils ein aussagekräftiges Beispieldokument an, welches Ihre Argumentation illustriert.

1.2  Namensräume

  1. Wann ist der localName eines Elements oder Attributs gleich seinem qualifiedName?
  2. Bezieht sich die Angabe eines Vorgabenamensraumes auch auf Processing-Instructions?
    Begründen Sie ihre Antwort.
  3. Wie kann die Aufhebung einer XML-Namensraumdeklaration erfolgen?

1.3  Unicode

  1. Durch die encoding-Deklaration wird der in einem XML-Dokument zugelassene Zeichensatz bestimmt.
    Welche Vorgabe gilt, wenn diese optionale Angabe fehlt?
  2. Diskutieren Sie die Auswirkungen der Zeichensatzauswahl auf die Dokumentgröße.
  3. Erfordert die Aufnahme des Unicodezeichens 2028 in Produktion Nr. 3 (White Space) im Rahmen von XML v1.1 Änderungen an bestehenden Parsern?

1.4  Wohlgeformtheit

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>

(Download der Datei)

back to top   2 Namensräume

 

  1. Weshalb muß der als Namensraumidentifikation angegebene Universal Resource Identificator nicht zwingend dereferenzierbar sein?
  2. Geben Sie für jedes Element und Attribut des abgebildeten XML-Dokuments den zutreffenden Namensraum an.
    (Die Namensräume der Namensraumpseudoattribute können vernachlässigt werden)
  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)<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>

(Download der Datei)

back to top   3 XML-Schema

 

3.1  Schema-Erstellung

Geben Sie zu nachfolgendem Dokument ein strukturell möglichst restriktives Schema an.
Dabei gelte:

  1. Ist das Attribut rufname nicht angegeben, so soll die Vorgabe false gelten.
  2. Neben dem Subgenre Informatik wird nur noch Elektrotechnik und Medizin unterstützt.
  3. Eine ISBN-Nummer bestehe immer aus einer Dezimalziffer gefolgt von jeweils vier Dezimalstellen, die jeweils durch ein „-“ voneinander getrennt sind, gefolgt von einem in derselben Weise abgetrennten „X“ oder einer weiteren Dezimalziffer.
    Definieren Sie hierfür einen möglichst restriktiven lexikalischen Typ.
(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 &amp; Co.</Titel>
(30)				<ISBN>3-8273-1844-0</ISBN>
(31)			</Buch>
(32)		</Subgenre>
(33)	</Genre>
(34)</Bibliothek>

(Download der Datei)

3.2  Dokumenterstellung

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>

(Download der Datei)

back to top   4 Lokator- und Anfragesprachen

 

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>

(Download der Datei)

4.1  XPath

Benötigte XPath-Funktionen:
number(object?) : number
count(node-set) : number

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

  1. die Anzahl der erfaßter Kinder von Friedrich Wilhelm I. lokalisiert.
  2. die Dauer der Regierung Friedrich II.s in Jahren ermittelt.
  3. die Namen der drei Herrscher des „Dreikaiserjahres“ 1888 lokalisiert.

4.2  XQuery

Benötigte Funktion:
contains(string1,string2) : boolean

  1. Gegen Sie einen XQuery-Ausdruck an, der die Namen aller Herrscher, deren Beinamen den Text „Der Große“ enthält ausgibt.
  2. Erzeugen Sie als Anfrageresultat ein XML-Dokument der Struktur:
    <Herrscher>
       <Name
          möglicheBeinamen='... '
          tatsächlicherBeiname='... '>
             Herrschername
       </Name>
    </Herrscher>
    

    Als mögliche Beinamen gelten alle im Dokument Auftretenden.
  3. Die alphabetisch sortierten Namen aller Herrscher deren Thronbesteigung vor 1800 liegt.

Welches Resultat liefert folgender XQuery-Ausdruck:

FOR $x in document('beispiel.xml')//Regiert
WHERE $x/@von = '1740'
RETURN $x/parent::*/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>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>

(Download der Datei)

back to top   6 Semantic Web

 

  1. Nehmen Sie Stellung zur Aussage „Technisch gesehen bedeutet der Übergang zum Semantic Web zunächst ein XML-orientiertes Web“.
  2. Erklären Sie kurz die Basisprimitve des Resource Description Frameworks (RDF) an einem selbstgewählten Beispiel.
  3. Wie erfolgt die Semantikdefinition für diejenigen Elemente einer RDF-Beschreibung die nicht im RDF-Namensraum untergebracht sind?

back to top   7 Programmier-APIs

 

7.1  DOM und SAX

Charakterisieren Sie kurz die wesentlichen Eigenschaften von SAX und DOM.
Lassen sich hieraus bereits bevorzugte Problemklassen der beiden APIs ableiten?

7.2  Extrahierende Parser

Wie grenzen sich extrahierende gegenüber SAX-basierten Parsern ab?

7.3  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:08+01:00
Feedback Feedback       SiteMap SiteMap
This page's original location This page's original location: http://www.jeckle.de/vorlesung/xml/klausur/ws2003/index.html
RDF metadata describing this page RDF description for this page