RDDL-Syntax

(Auszug aus "XML in a Nutshell" von Elliotte Rusty Harold & W. Scott Means)

Ein RDDL-Dokument ist ein um ein neues Element, nämlich rddl:resource, ergänztes XHTML-Basic-Dokument. XHTML Basic ist eine Untermenge von XHTML, die Struktur, Text, Hypertext, Listen, Grundformen, grundlegende Tabellen, Bilder, Objekte, Metainformationen, Links und Grundmodule von XHTML beinhaltet. Es gibt weder Frames noch die nicht mehr unterstützten Layout-Elemente wie zum Beispiel font und bold. XHTML-Basic unterstützt jedenfalls eine ausreichende Menge von Funktionalitäten, um so ziemlich alles über eine XML-Anwendung zu schreiben, was man vernünftigerweise darüber schreiben möchte.

Zusätzlich enthält RDDL ein neues Element, resource, das zum Namensraum "http://www.rddl.org/" gehört. Diese URL wird normalerweise auf das rddl-Präfix abgebildet. Das Präfix kann sich ändern, solange die URL dieselbe bleibt. Die RDDL-DTD definiert jedoch das Element resource mit dem Namen rddl:resource, so dass ein RDDL-Dokument nur gültig ist, wenn es das Präfix rddl verwendet.

Ein rddl:resource-Element ist ein einfacher XLink. Sein Attribut xlink:href verweist auf die referenzierte Ressource, und seine Attribute xlink:role und xlink:arcrole geben den Typ und den Zweck dieser referenzierten Ressource an. Das Element rddl:resource kann überall vorkommen, wo ein Element p vorkommen darf, und es kann alles enthalten, was das Element div enthalten darf. Webbrowser ignorieren üblicherweise die rddl:resource-Start- und End-Tags, zeigen aber deren Inhalt an. Automatisierte Software, die nach referenzierten Ressourcen sucht, beachtet nur das Element rddl:resource und seine Attribute, während das übrige XHTML ignoriert wird.

Erinnern Sie sich an das Personen-Vokabular, das bereits an mehreren Stellen verwendet wurde. Alle Elemente des Dokuments vom folgenden Code-Beispiel befinden sich jetzt in dem vorgegebenen Namensraum "http://www.oreilly.de/catalog/xmlnut2ger/namensraum/leute".

<?xml version="1.0"?>
<leute xmlns="http://www.oreilly.de/catalog/xmlnut2ger/namensraum/leute">
  <person geboren="1912" gestorben="1954">
    <name>
      <vorname>Alan</vorname>
      <nachname>Turing</nachname>
    </name>
    <beruf>Informatiker</beruf>
    <beruf>Mathematiker</beruf>
    <beruf>Kryptograph</beruf>
  </person>
  <person geboren="1918" gestorben="1988">
    <name>
      <vorname>Richard</vorname>
      <mittelinitial>P</mittelinitial>
      <nachname>Feynman</nachname>
    </name>
    <beruf>Physiker</beruf>
    <hobby>Spielt Bongos</hobby>
  </person>
</leute>

Code-Beispiel: Ein XML-Dokument, das unter Benutzung eines vorgegebenen Namensraums zwei Leute bezeichnet

Dieses Dokument sollte sich am Ende der Namensraum-URL dieser Anwendung, "http://www.oreilly.de/catalog/xmlnut2ger/namensraum/leute", befinden. Die DOCTYPE-Deklaration lädt die RDDL-DTD anstelle der XHTML-Basic-DTD. Der Unterschied besteht nur darin, dass die RDDL-DTD zusätzlich ein einzelnes Element rddl:resource enthält. Dieses Dokument ist sowohl gültig als auch wohlgeformt. Die folgende Abbildung zeigt es in Mozilla, wo es wie jedes andere HTML-Dokument aussieht.

<!DOCTYPE html PUBLIC "-//XML-DEV//DTD XHTML RDDL 1.0//EN" "http://www.rddl.org/rddl-xhtml.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:rddl="http://www.rddl.org/">
<head>
  <title>Eine XML-Anwendung, die Leute beschreibt</title>
</head>
<body>
  <h1>Eine XML-Anwendung, die Leute beschreibt</h1>
  <rddl:resource xlink:type="simple" xlink:href="urn:isbn:1565922247"###isbn anpassen### xlink:role="http://dublincore.org/documents/dcmi-type-vocabulary/#text" xlink:arcrole="http://www.rddl.org/purposes#normative-reference">
    <p>http://www.oreilly.de/catalog/xmlnut2ger/namensraum/leute ist die Namensraum-URL für eine XML-Anwendung, die Leute auf datensatzähnliche Weise beschreibt und als Beispiel in <cite>XML in a Nutshell</cite>, dritte Auflage, von Elliotte Rusty Harold und W. Scott Means (O'Reilly Media, 2004) verwendet wird.</p>
  </rddl:resource>
  <h2>Referenzierte Ressourcen</h2>
    <p>Mehrere Beispiele in diesem Buch sprechen diese Anwendung auf die eine oder andere Weise an. Dazu gehören zum Beispiel:</p>
    <ul>
      <li>
        <rddl:resource xlink:type="simple" xlink:href="http://www.cafeconleche.org/books/xian3/examples/03/3-5.dtd" xlink:role="http://www.isi.edu/in-notes/iana/assignments/media-types/application/xml-dtd" xlink:arcrole="http://www.rddl.org/purposes#validation"><a href="http://www.cafeconleche.org/books/xian3/examples/03/3-5.dtd">Beispiel 3-5</a>: Eine datenorientierte DTD zur Beschreibung von Personen</rddl:resource>
     </li>
     <li>
       <rddl:resource xlink:type="simple" xlink:href="http://www.cafeconleche.org/books/xian3/examples/08/8-15.xsl" xlink:role="http://www.w3.org/1999/XSL/Transform" xlink:arcrole="http://www.isi.edu/in-notes/iana/assignments/media-types/text/html"><a href="http://www.cafeconleche.org/books/xian3/examples/08/8-15.xsl">Beispiel 8-15</a>: Ein XSLT-Stylesheet für Dokumente, die Personen beschreiben</rddl:resource>
     </li>
   </ul>
   <p>Dieses Dokument ist selbst <a href="http://www.cafeconleche.org/books/xian3/examples/15/15-2.html">Beispiel 15-2</a> aus dem RDDL-Kapitel.</p>
</body>
</html>

Code-Beispiel: Ein RDDL-Dokument

Ansicht RDDL-Dokument im Webbrowser

Abbildung: Für einen Webbrowser ist ein RDDL-Dokument nur ein weiteres HTML-Dokument.

Dieses Dokument enthält drei rddl:resource-Elemente, die auf referenzierte Ressourcen verweisen. Zwei von ihnen sind Bestandteile einer Liste, und ein anderes enthält einen Abschnitt, der weiter oben auf der Seite steht. Das erste Element verweist auf die inoffizielle Spezifikation dieser Personen-Anwendung, nämlich auf dieses Buch selbst. Das Attribut xlink:href beinhaltet eine isbn-URI, um das Buch zu identifizieren. Das Attribut xlink:role enthält eine URL des Dublin Core, die angibt, dass der Typ dieser Ressource Text ist. Das Attribut xlink:arcrole schließlich enthält eine allgemein bekannte URL, die in der RDDL-Spezifikation definiert ist. Sie zeigt an, dass der Zweck dieser Ressource ein normativer Link ist.

Das zweite rddl:resource-Element verweist auf die DTD, die zuerst in den Seiten unter Dokumenttyp-Definitionen (DTDs) definiert wurde. Sein Typ wird mit MIME-Medientyp-URL angegeben, und sein Zweck ist die Validierung. Das Attribut xlink:href beinhaltet einen Link auf den tatsächlichen Ort der DTD. Dies würde ein normaler Browser allerdings nicht erkennen. Daher enthält das rddl:resource-Element einen gewöhnlichen HTML-a-Link, den der Browser blau färbt und auf den der Benutzer klicken kann. Das doppelte Vorkommen von Markup-Zeichen in RDDL-Dokumenten ist nicht ungewöhnlich – ein Paar Tags für die Maschinen und ein anderes Paar Tags für die Menschen –, wobei jedes der beiden ziemlich genau das Gleiche sagt.

Das letzte rddl:resource-Element verweist auf ein XSLT-Stylesheet. In diesem Fall enthält das Attribut xlink:role den Namensraum-URI für XSLT. Dadurch wird angezeigt, dass es sich bei dieser Ressource um ein XSLT-Stylesheet handelt. Das Attribut xlink:arcrole enthält die MIME-Medientyp-URL für HTML. Auf diese Weise wird angegeben, dass das Stylesheet Dokumente in HTML umwandelt.

Dies ist ein sehr einfaches Beispiel. Ein aus dem Leben gegriffenes RDDL-Dokument enthielte weitaus mehr HTML, um denjenigen, die es in einem Browser lesen, mitzuteilen, worum es sich bei der Anwendung handelt. Maschinen ignorieren das HTML und betrachten nur die Attribute xlink:role und xlink:arcrole mit dem Ziel herauszufinden, wozu genau jede der referenzierten Ressourcen verwendet wird.

  

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema XML bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

  


Copyright © 2005 O'Reilly Verlag GmbH & Co. KG
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XML in a Nutshell" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

O’Reilly Verlag GmbH & Co. KG, Balthasarstraße 81, 50670 Köln, kommentar(at)oreilly.de