|
||||||||||||||||||||||||||||||||||||||||||||||||||
| ISBN: 3897213397 ISBN: 3897213397 ISBN: 3897213397 ISBN: 3897213397 | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
Wir empfehlen: | |||||||||||||||||||||||||||||||||||||||||||||||||
Typische Anwendungsfälle & Beispiele[ DOM & JDOM ] ... [ Fazit ] ... ÜbersichtIn diesem Abschnitt werden typische Anwendungsfälle im Bereich der XML-Verarbeitung untersucht. Hierbei wird nach einer kurzen Beschreibung des Problems, jeweils eine Lösung für DOM (unter Verwendung von Xerces), beziehungsweise für JDOM angegeben. Am Ende dieser Seite finden sich Links für zwei vollständige Beispiele. Bestehende XML-Dokumente lesen Bestehende XML-Dokumente lesenSituationHäufig möchte man aus einem eigenen Programm ein bestimmtes XML-Dokument einlesen, um es in irgendeiner Form zu bearbeiten. Ferner ist es häufig nötig, die zu lesenden Daten auf ihre Validität hinsichtlich der Dokumenttypdefinition zu überprüfen.DOM
JDOM
FazitEine Schwäche von DOM besteht darin, dass das Einlesen eines Dokuments nicht durch das W3C spezifiziert ist und damit implementierungsabhängig bleibt. Dadurch ist die Portabilität der Programme in gewisser Weise eingeschränkt, da ein Wechsel einer DOM-Implementierung nicht immer ohne Codeänderungen durchgeführt werden kann. Auch ansonsten wirkt das JDOM-Programmfragment deutlich natürlicher und intuitiver. Ein Dokument komplett neu erzeugenSituationMöchte man kein bereits vorhandenes Dokument lesen, dann steht man vielleicht vor dem Problem ein Dokument von Grund auf neu zu erzeugen und mit Elementen, Attributen, etc. zu füllen. Die unten stehenden Programmfragmente erzeugen jeweils ein XML-Dokument, welches der folgenden Struktur entspricht.
DOM
JDOM
FazitHier kann man sicherlich geteilter Meinung sein, ob die direkte Instanzierung von Objekten die gute Lesbarkeit der Quellen fördert. Ein bedeutenderer Unterschied, der hier sichtbar wird, ist die Behandlung des Textinhalts von Elementen. Während das DOM diesen Textinhalt als echte Kindknoten eines Elements betrachtet, behandelt JDOM diesen Text als Eigenschaft eines Elements. Dies wird im folgenden Abschnitt noch deutlicher. Informationen extrahierenSituationNatürlich besteht eine der Hauptaufgaben im Umgang mit XML darin, die im Dokument enthaltenen Informationen zu extrahieren und weiterzuverwenden.
Die Aufgabe der folgenden Programmfragmente besteht nun darin den Mannschaftsnamen, die Punkte und die Tordifferenz in geeigneten Variablen zu speichern. Hierzu nehmen wir ferner an, dass die Variable root das Wurzelelement des Dokuments (<league>) enthält. DOM
JDOM
FazitSpätestens an dieser Stelle wird der Mehraufwand, der durch die Verwendung von DOM notwendig wird beachtlich. So gibt es zum Beispiel keine Möglichkeit eine Referenz auf das erste Kindelement eines Knotens mit gegebenem Namen zu erhalten, ohne zuvor eine Liste aller dieser Kindelemente zu erzeugen. Außerdem wirkt sich auch hier der Unterschied bei der Handhabung des Textinhalts von Elementen bei den beiden Werkzeugen zum Nachteil des DOM aus. Auch die Bereitstellung von einigen Bequemlichkeitsmethoden bei JDOM, gerade bei der Bearbeitung von Attributen, hilft dem Programmierer bei häufigen Aufgaben. Die Struktur des Dokuments verändernSituationZuweilen steht man vor der Aufgabe, dass die Struktur des Dokumentenbaums verändert werden muss. Neue Elemente werden eingefügt oder bestimmte Attribute entfernt. In den folgenden Programmfragmenten werden die Kindelemente eines bestimmten Elements nach einem bestimmten Kriterium sortiert.
DOM
JDOM
FazitDieses Beispiel zeigt ganz deutlich, wie sich die Verwendung der Standardkollektionen durch JDOM sehr positiv auf Kriterien wie Flexibilität, Performanz, Programmieraufwand, Sicherheit, Lesbarkeit, Motivation, etc. auswirkt. Das Dokument speichernSituationNach der Erzeugung oder Verarbeitung eines Dokuments, soll dieses wohl meist als XML-Dokument in einer bestimmten Datei gespeichert werden. Dies ermöglicht es in einer späteren Sitzung die Daten erneut einzulesen und zu bearbeiten. DOM
JDOM
FazitDie Lösung des Problems ist in beiden Fällen unkompliziert und sehr ähnlich. Im übrigen gilt hier das gleiche wie für das Einlesen eines Dokuments: es ist unbedingt zu beachten, dass man sich bei der Verwendung von DOM auf eine bestimmte Implementierung (hier: Xerces) festlegen muss, um das Dokument zu Serialisieren, da das W3C in dieser Hinsicht keine Standardisierung vorgenommen hat. Vollständige BeispieleAn dieser Stelle folgen noch zwei eigene Programme im vollen Quelltext, aus denen die zuvor behandelten Problemfälle zum großen Teil entnommen sind. Da die Programme kommentiert sind, wird hier auf eine ausführliche Beschreibung verzichtet. Es ist wichtig, dass sich sowohl zum Kompilieren, als auch zur Laufzeit, die notwendigen Pakete im aktuellen Klassenpfad befinden. TheatreBeschreibung: Dieses ist ein Beispiel für eine Aufgabe, die sich auch mit SAX lösen lässt, da ein sequentieller, nur-lesender Zugriff auf die Daten ausreichend ist. Die Verwendung von SAX ist sowohl im Hinblick auf die Speicher-, als auch auf die Laufzeiteffizienz optimal, und sollte wann immer möglich erfolgen. Beispielaufruf: Links: LeagueBeschreibung: Links: [ DOM & JDOM ] ... [ Beispiele ] ... [ Fazit ] ... |
|
|||||||||||||||||||||||||||||||||||||||||||||||||
|
Zurück zu Themenseiten: ScientificPublication.com/Startseite/Informatik/Programmieren StudyPaper.com/Startseite/Computer/Informatik/Programmieren StudyPaper.com/Startseite/Computer Das Setzen von Verweisen (Links) auf diese Seite ist gestattet und bedarf keine vorherige Absprache. | ||||||||||||||||||||||||||||||||||||||||||||||||||
| Startseite | english | Bookmark setzen | Webseite weiterempfehlen | Copyright © | Impressum | ||||||||||||||||||||||||||||||||||||||||||||||||||