Theoretische Grundlagen der Informatik, WS 02/03
Dozenten: J.-M. Piveteau, U.-M. Künzi
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.
Werten Sie die XPath-Ausdrücke aus:
/FAMILYTREE/PERSON/NAME
Referenziert alle Personennamen:
<Name>Jean
Dupont</Name>
<Name>Marianne
Durand</Name>
<Name>Anne
Dupont</Name>
<Name>Hans
Müller</Name>
<Name>Eugene
Dupont</Name>
<Name>Marie
Dupont</Name>
<Name>Philippe
Dubois</Name>
<Name>Achille Hector Archibald
Dubois</Name>
/FAMILYTREE/PERSON[position()>1]
Referenziert alle Personennamen ausser dem ersten
Element:
<Name>Marianne Durand</Name>
<Name>Anne
Dupont</Name>
<Name>Hans
Müller</Name>
<Name>Eugene
Dupont</Name>
<Name>Marie
Dupont</Name>
<Name>Philippe
Dubois</Name>
<Name>Achille Hector Archibald
Dubois</Name>
/child::*/child::PERSON[position()=1]
Referenziert die erste Person im Dokument:
<PERSON ID="p1">
<NAME>Jean
Dupont</NAME>
<BORN>12. März
1801</BORN>
<DIED>12. März 1901</DIED>
<SPOUSE
IDREF="p2"/>
</PERSON>
/child::*/child::PERSON[position()=1]/child::NAME
Referenziert das erste Element des Dokuments, gibt allerdings
nur den Namen aus:
<Name>Jean Dupont</Name>
/descendant::DIED[position()=3]/::preceeding::*[position()=2]
<NAME>Anne
Dupont</NAME>
id("p6"/child::DIED]
Referenziert das Todesdatum der Person mit der ID=6:
<Died>12.
Juli 1920</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>
Erstellen Sie ein XML-Dokument, das die folgende Liste von Web-Sites zum Thema Pilzkunde auflistet:
Pilz.ch (http://www.pilze.ch/default.htm)
Swissfungi (http://www.wsl.ch/swissfungi/)
Verein für Pilzkunde Zürich (http://www.pilze.ch/PVZuerich/PV-Zuerich.html)
Mykologische Gesellschaft Luzern (http://www.mgl.ch.vu/)
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.)
XML-File <?xml version="1.0"?> <?xml-stylesheet type="text/css" href="Pilz.css"?> <Pilzseiten> <Name xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://www.pilze.ch/default.htm" xlink:show="new" xlink:actuate="onRequest" xlink:tilte="Pilz.ch Webseite" xlink:role="http://www.pilze.ch/">Pilz.ch</Name> <Name xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://www.wsl.ch/swissfungi/" xlink:show="new" xlink:actuate="onRequest" xlink:tilte="Swissfungi Webseite" xlink:role="http://www.wsl.ch/">Swissfungi</Name> <Name xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://www.pilze.ch/PVZuerich/PV-Zuerich.html" xlink:show="new" xlink:actuate="onRequest" xlink:tilte="Verein für Pilzkunde Zürich Webseite" xlink:role="http://www.pilze.ch/PVZuerich/">Verein für Pilzkunde Zürich</Name> <Name xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://www.mgl.ch.vu/" xlink:show="new" xlink:actuate="onRequest" xlink:tilte="Mykologische Gesellschaft Luzern" xlink:role="http://www.mgl.ch.vu/">Mykolog. Gesellschaft Luzern</Name> <Name xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://www.ticino.com/usr/smcb/" xlink:show="new" xlink:actuate="onRequest" xlink:tilte="Società Micologica Chiasso" xlink:role="http://www.ticino.com/usr/smcb/">Società Micologica Chiasso</Name> </Pilzseiten> |
CSS-File Pilzseiten{display:table} Name{ display: table-row; display:list-item;} ..... |