XML - Grundlagen, Prinzipien und Anwendungen

Aufgabe 4 (XPath)

XPaths für komplexe Probleme

Abgabe bis 9.5.2006


Ziel dieser Aufgabe ist es, auf der Basis eines existierenden XML Dokuments XPaths zu formulieren, die gegebene Anforderungen erfüllen. Das Dokument ist der Ausgangspunkt für ein Glossar von Web-Technologien. Die formatierte Version des Glossars ist auf http://dret.net/glossary/ zu sehen. In dieser ersten Aufgabe geht es zunächst nur darum, das dem Glossar zugrundeliegende Dokument zu verstehen und einige gegebene Fragen hinsichtlich des Dokuments mittels XPaths zu beantworten. In späteren Aufgaben wird es dann darum gehen, das XML-Dokument in einer anderen Form darzustellen, z.B. einen Index für dieses Glossar zu generieren (mittels eines XSLT Programms).

Die Abgabe der Übung besteht darin, für jede der gestellten Aufgaben einen XPath zu konstruieren, dessen Evaluation den gestellten Aufgaben genügt. Um die Kontrolle zu vereinfachen, ist bei jeder Aufgabe angegeben, was als Resultat der Evaluation herauskommen muss. Die Liste der XPaths dann an den Assi mailen, am besten gleich durch Klick auf den Abgabe Übung 4 Link


Das Glossar

Das Glossar ist als XML Dokument verfügbar, und enthält die DTD. Beim Betrachten des Glossars fällt auf, dass das XML Dokument sehr wenig mit der formatierten Form zu tun hat. Das liegt daran, dass das Glossar als Topic Map aufgebaut ist, und die HTML nur eine mögliche Präsentation ist (das PDF Glossar ist z.B. eine andere mögliche Präsentation).

Eine Konsequenz des grossen strukturellen Unterschieds zwischen XML und formatierem Resultat ist, dass die Formatierung relativ grosse strukturelle Änderungen vornehmen muss. Aus diesem Grund eignet sich dieses Beispiel auch gut für komplexere Aufgaben im Bereich XPath/XSLT.

Wie ist nun die Topic Map aufgebaut. Im Prinzip sehr einfach: es gibt wenige Dinge, die die Essenz der Topic Map ausmachen:

All diese Dinge sind mittels den bekannten DTD-Mechanismen ID/IDREF miteinander verbunden, und man kann das Modell sehr einfach verstehen, wenn man ein konkretes Topic in der formatierten Form anschaut, und dies dann im XML-Dokument nachvollzieht.

Die Aufgaben

Im folgenden sind nun die einzelnen Aufgaben aufgeführt, die für diese Übung gelöst werden müssen. Um die Selbstkontrolle zu erleichtern, ist für jede Aufgabe angegeben, was das Ergebnis der Evaluation des XPaths sein muss (die Idee ist natürlich nicht, dass für Aufgabe 1 nun z.B. der XPath '1168' angegeben wird, das wäre dann doch etwas zu simpel...).

PS: Der Exchanger XML Editor erlaubt das direkte Eingeben von XPath Queries.

  1. Wieviele Topics gibt es in der Topic Map? (dieser XPath evaluiert zu 1168)
  2. Wieviele Relations gibt es in der Topic Map? (dieser XPath evaluiert zu 1195)
  3. Wieviele Topics haben eine Beschreibung? (dieser XPath evaluiert zu 353)
  4. Wieviele Verbindungen zwischen Topics definieren die Relations? (dieser XPath evaluiert zu 2407)
  5. In wievielen Relationen erscheint das Topic 'xpath'? (dieser XPath evaluiert zu 9)
  6. Zu wievielen Topics steht das Topic 'xpath' in einer Relation? (dieser XPath evaluiert zu 17)
  7. Wieviele Topics beginnen mit einem 'X'? (dieser XPath evaluiert zu 85)
  8. Wieviele der Locator-URIs enden mit '.html'? (dieser XPath evaluiert zu 107)
  9. Wie häufig wird das Topic 'xml' in Beschreibungen von Topics referenziert? (dieser XPath evaluiert zu 111)
  10. In der Beschreibung von wievielen Topics wird das Topic 'xml' referenziert? (dieser XPath evaluiert zu 42)
  11. In der Beschreibung von wievielen Topics wird das Topic 'xml' mehr als einmal referenziert? (dieser XPath evaluiert zu 28)
  12. Wieviele Referenzen auf Topics enthält eine Beschreibung eines Topics im Durchschnitt? (dieser XPath evaluiert zu 6.72)
  13. Wie häufig taucht das W3C als Standardization Body auf (dieser XPath evaluiert zu 32)

In vielen Fällen kann man wählen, ob man die Descendant Axis oder die Child Axis nimmt (manchmal aber auch nicht, weil dann die Descendant Axis unerwünschte Nodes selektiert!). Mit der Child Axis werden die XPaths länger (weil man jede Hierarchie-Stufe angeben muss), mit der Descendant Axis braucht die Auswertung länger. Zudem ist die Descendant Axis eher abhängig davon, dass die Strukturierungsmöglichkeiten des Dokuments (d.h. die DTD) bekannt ist. Für diese Übung werden wir beide Varianten akzeptieren.


please send comments to xml-vl@dret.net
last modification on Wednesday, 26-Apr-2006 11:32:10 CEST
valid CSS!valid XHTML 1.0!