Übungsserie 5: XML-Schemas, 

Theoretische Grundlagen der Informatik, WS 02/03

Dozenten: J.-M. Piveteau, U.-M. Künzi

Aufgabe 1(XML-Schema, Namensräume)

Erstellen Sie ein XML-Schema für die neue XML-Anwendung AutoML, welche zur Beschreibung von Motorfahrzeugen verwendet werden kann. Mit AutoML soll es möglich sein, den Inhalt folgender Muster-Tabellen zu speichern:

Kurzbeschreibung

Typ:     Lastwagen

Marke:   Renault

Model:   Kerax

Detailbeschreibung

Typ:          PKW

Marke:        Citroën

Model:        Saxo

Schildnummer: ZH 123456

Kilometer:    87'654

Farbe:        Rot

Besitzer:     Jules Dumol

Der Namensraum http://www.hsr.ch/automobile wird der XML-Anwendung AutoML zugeordnet. Passen Sie Ihr XML-Schema an und erstellen Sie ein gültiges AutoML-Instanzdokument für das angepasste Schema.

Aufgabe 2 (XPath)

Werten Sie die XPath-Ausdrücke aus:

  1. /FAMILYTREE/PERSON/NAME

  2. /FAMILYTREE/PERSON[position()>1]

  3. /child::*/child::PERSON[position()=1]

  4. /child::*/child::PERSON[position()=1]/child::NAME

  5. /descendant::DIED[position()=3]/::preceeding::*[position()=2]

  6. id("p6"/child::DIED]

im folgenden XML-Dokument aus:

<?xml version="1.0"?>

<!DOCTYPE FAMILYTREE [

<!ELEMENT FAMILYTREE (PERSON | FAMILY)*>

<!-- PERSON elements -->

<!ELEMENT PERSON (NAME*, BORN*, DIED*, SPOUSE*)>

<!ATTLIST PERSON

  ID ID #REQUIRED

  FATHER CDATA #IMPLIED

  MOTHER CDATA #IMPLIED>

<!ELEMENT NAME (#PCDATA)>

<!ELEMENT BORN (#PCDATA)>

<!ELEMENT DIED (#PCDATA)>

<!ELEMENT SPOUSE EMPTY>

<!ATTLIST SPOUSE IDREF IDREF #REQUIRED>

<!--FAMILY-->

<!ELEMENT FAMILY (HUSBAND?, WIFE?, CHILD*) >

<!ATTLIST FAMILY ID ID #REQUIRED>

<!ELEMENT HUSBAND EMPTY>

<!ATTLIST HUSBAND IDREF IDREF #REQUIRED>

<!ELEMENT WIFE EMPTY>

<!ATTLIST WIFE IDREF IDREF #REQUIRED>

<!ELEMENT CHILD EMPTY>

<!ATTLIST CHILD IDREF IDREF #REQUIRED>

]>

<FAMILYTREE>

<PERSON ID="p1">

    <NAME>Jean Dupont</NAME>

    <BORN>12. März 1801</BORN>

    <DIED>12. März 1901</DIED>

    <SPOUSE IDREF="p2"/>

</PERSON>

<PERSON ID="p2">

    <NAME>Marianne Durand</NAME>

    <BORN>1. April 1805</BORN>

    <DIED>31. Dezember</DIED>

    <SPOUSE IDREF="p1"/>

</PERSON>

<PERSON ID="p3" FATHER="p2" MOTHER="p1">

    <NAME>Anne Dupont</NAME>

    <BORN>11. Februar 1838</BORN>

    <DIED>12. April 1912</DIED>

    <SPOUSE IDREF="p4"/>

</PERSON>

<PERSON ID="p4">

    <NAME>Hans Müller</NAME>

    <SPOUSE IDREF="p3"/>

</PERSON>

<PERSON ID="p5" FATHER="p2" MOTHER="p1">

    <NAME>Eugène Dupont</NAME>

    <BORN>3. Januar 1839</BORN>

    <DIED>12. April 1839</DIED>

</PERSON>

 

<PERSON ID="p6" FATHER="p2" MOTHER="p1">

    <NAME>Marie Dupont</NAME>

    <BORN>3. Dezember 1840</BORN>

    <DIED>12. Juli 1920</DIED>

    <SPOUSE IDREF="p7"/>

</PERSON>

 

<PERSON ID="p7">

    <NAME>Philippe Dubois</NAME>

    <BORN>3. Januar 1846</BORN>

    <SPOUSE IDREF="p6"/>

</PERSON>

<PERSON ID="p8" FATHER="p6" MOTHER="p7">

    <NAME>Achille Hector Archibald Dubois</NAME>

    <BORN>29. Oktober 1870</BORN>

    <DIED>3. Mai 1938</DIED>

</PERSON>

 

</FAMILYTREE>

 

Aufgabe 3 (XLink, CSS)

Erstellen Sie ein XML-Dokument, das die folgende Liste von Web-Sites zum Thema Pilzkunde auflistet:

  1. Pilz.ch (http://www.pilze.ch/default.htm)
  2. Swissfungi (http://www.wsl.ch/swissfungi/)
  3. Verein für Pilzkunde Zürich (http://www.pilze.ch/PVZuerich/PV-Zuerich.html)
  4. Mykologische Gesellschaft Luzern (http://www.mgl.ch.vu/)
  5. Società Micologica Chiasso (http://www.ticino.com/usr/smcb/)

Die URL jeder Website muss mit XLink angegeben werden. Verwenden Sie dabei die Attribute xlink:show, xlink:actuate, xlink:title und xlink:role.

Erstellen Sie eine CSS-Stylesheet für Ihr Dokument und testen Sie das Ergebnis mit verschiedenen Browsern (Internet Explorer, Mozilla, etc.)