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 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.
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.
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 |