Übungsserie 3: Namensräume 

Theoretische Grundlagen der Informatik, WS 02/03

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

Aufgabe 1 (Namensräume, Ressource Description Framework)

RDF ist eine W3C-XML-Anwendung zur Beschreibung von Metadaten. 

Erzeugen Sie ein RDF-Dokument, das Meta-Informationen über die Web-Seite über die Rapperswil-Hurden Brücke (oder über eine andere Web-Seite Ihrer Wahl) angibt, und welches folgende Anforderungen erfüllt: 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rdf:RDF SYSTEM "C:\Uebungen\Grundlagen\xml\Uebung3\RDF.dtd">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc:="http://purl.org/dc/elements/1.1/">
<rdf:Description about="http://www.freienbach.ch/Portrait/Geschichte/portrait_geschichte_seebruecke.htm">
  <dc:Title>Die Holzbrücke Rapperswil - Hurden</dc:Title>
  <dc:Creator>Gemeinde Freienbach</dc:Creator>
  <dc:Publisher>Gemeinde Freienbach</dc:Publisher>
  <dc:Contributor>Hans Rathgeb</dc:Contributor>
  <dc:Type>text</dc:Type>
  <dc:Language>de-DE</dc:Language>
  <dc:Coverage>Switzerland Germany Austria</dc:Coverage>
  <rdf:Bag title="Links">
    <rdf:li resource="http://holzsteg.rapperswil.ch/"/>
    <rdf:li resource="http://www.jakobsweg.ch/"/>
    <rdf:li resource="http://www.freienbach.ch/Portrait/Geschichte/portrait_geschichte_seebruecke_verlauf.htm"/>
  </rdf:Bag>
  <dc:Description about="#links">Weiterführende Links zu diesem Thema</dc:Description>
</rdf:Description>
</rdf:RDF>

 

Erzeugen Sie eine DTD für Ihr RDF-Dokument. Beachten Sie dabei, dass eine Änderung des Namensraum-Präfixes ein minimaler Impact auf die DTD haben muss.

<?xml version="1.0" encoding="UTF-8"?>
<!ENTITY % dc-prefix "dc">
<!ENTITY % rdf-prefix "rdf">
<!ENTITY % colon ":">
<!ELEMENT %rdf-rdf; (%rdf-description;+)>
<!ATTLIST rdf:RDF
          xmlns:rdf CDATA #REQUIRED
          xmlns:dc: CDATA #REQUIRED>
<!ENTITY % dc-contributor "%dc-prefix;%colon;Contributor">
<!ENTITY % dc-coverage "%dc-prefix;%colon;Coverage">
<!ENTITY % dc-creator "%dc-prefix;%colon;Creator">
<!ENTITY % dc-description "%dc-prefix;%colon;Description">
<!ENTITY % dc-language "%dc-prefix;%colon;Language">
<!ENTITY % dc-publisher "%dc-prefix;%colon;Publisher">
<!ENTITY % dc-title "%dc-prefix;%colon;Title">
<!ENTITY % dc-type "%dc-prefix;%colon;Type">
<!ENTITY % rdf-description "%rdf-prefix;%colon;Description">
<!ENTITY % rdf-bag "%rdf-prefix;%colon;Bag">
<!ENTITY % rdf-li "%rdf-prefix;%colon;li">
<!ENTITY % rdf-rdf "%rdf-prefix;%colon;RDF">
<!ELEMENT %dc-contributor; (#PCDATA)>
<!ELEMENT %dc-coverage; (#PCDATA)>
<!ELEMENT %dc-creator; (#PCDATA)>
<!ELEMENT %dc-description; (#PCDATA)>
<!ATTLIST %dc-description;
         about CDATA #REQUIRED>
<!ELEMENT %dc-language; (#PCDATA)>
<!ELEMENT %dc-publisher; (#PCDATA)>
<!ELEMENT %dc-title; (#PCDATA)>
<!ELEMENT %dc-type; (#PCDATA)>
<!ELEMENT %rdf-bag; ((%rdf-li;)+)>
<!ATTLIST %rdf-bag;
        title CDATA #REQUIRED>
<!ELEMENT %rdf-description; (%dc-title;?, %dc-creator;?, %dc-publisher;?, %dc-contributor;?, %dc-type;?, %dc-language;?, %dc-coverage;?, %rdf-bag;?, %dc-description;?)>
<!ATTLIST %rdf-description;
        about CDATA #REQUIRED>
<!ELEMENT %rdf-li; EMPTY>
<!ATTLIST %rdf-li;
        resource CDATA #REQUIRED>

 

Aufgabe 2 (Cascading Styles Sheets)

Speichern Sie den Inhalt des folgenden Zugsfahrplans in einem XML-Dokument und erstellen Sie ein Style Sheet, um ihn als Tabelle darzustellen

  Bahnhof  An     Ab
  Zürich HB       16:42
  Zürich Stadelhofen   16:44   16:44
  Meilen   16:57   16:59
  Uetikon   17:02   17:02
  Männedorf   17:03   17:03
  Stäfa   17:07   17:08
  Uerikon   17:10   17:10
  Feldbach   17:14   17:16
  Kempraten   17:18   17:18
  Rapperswil   17:22    

Vergleichen Sie wie die gängigen Browser (Opera, Mozilla, Netscape, Internet Explorer) Ihr Dokument ausgeben.

XML:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="fahrplan.css"?>
<Fahrplan>
  <Bahnhof>Zürich HB
    <Ankunft/>
    <Abfahrt>16:42</Abfahrt>
  </Bahnhof>
  <Bahnhof>Zürich Stadelhofen
    <Ankunft>16:44</Ankunft>
    <Abfahrt>16:44</Abfahrt>
  </Bahnhof>
  <Bahnhof>Meilen
    <Ankunft>16:57</Ankunft>
    <Abfahrt>16:59</Abfahrt>
  </Bahnhof>
  <Bahnhof>Uetikon
    <Ankunft>17:02</Ankunft>
    <Abfahrt>17:02</Abfahrt>
  </Bahnhof>
  <Bahnhof>Männedorf
    <Ankunft>17:03</Ankunft>
    <Abfahrt>17:03</Abfahrt>
  </Bahnhof>
  <Bahnhof>Stäfa
    <Ankunft>17:07</Ankunft>
    <Abfahrt>17:08</Abfahrt>
  </Bahnhof>
  <Bahnhof>Uerikon
    <Ankunft>17:10</Ankunft>
    <Abfahrt>17:10</Abfahrt>
  </Bahnhof>
  <Bahnhof>Feldbach
    <Ankunft>17:14</Ankunft>
    <Abfahrt>17:16</Abfahrt>
  </Bahnhof>
  <Bahnhof>Kempraten
    <Ankunft>17:18</Ankunft>
    <Abfahrt>17:18</Abfahrt>
  </Bahnhof>
  <Bahnhof>Rapperswil
    <Ankunft>17:22</Ankunft>
    <Abfahrt/>
  </Bahnhof>
</Fahrplan>

CSS:

Fahrplan {display:table;}
Bahnhof {display:table-row; display:list-item; border: thin solid;}
Ankunft, Abfahrt {display:table-cell;}
 

 

Aufgabe 3 (Namensräume, Cascading Style Sheets)

In die Aufgabe 4 der Übungsserie 2 haben Sie eine Applikation entwickelt, welche eine Textdatei in einem GIML-Dokument umwandelt. Erweitern Sie wie folgt Ihre Applikation: