Die andere Möglichkeit der Navigation in XMLBeans liegt im anderen Extrem des Abstraktionsspektrums: Die Möglichkeit der Auswahl und Abfrage mit XPath-/XQuery-Ausdrücken, wodurch das Dokument durchsucht und aus den darin enthaltenen Knoten ausgewählt werden kann. XmlObjects unterstützen die Methoden selectPath() und execQuery(). Die Methode selectPath() wird ausschließlich zur Auswahl von Knoten im Dokument verwendet, wogegen es die Methode execQuery() ermöglicht, XQuery auszuführen und vollkommen neue Daten in XML auszugeben.
Um dies zu ermöglichen, müssen dem Klassenpfad zwei weitere Libraries hinzugefügt werden: die Saxon-Bibliothek (Version 8.1.1), und xbean_xpath.jar von der XMLBeans-Distribution. Ein Link zur entsprechenden Version von Saxon ist auf der XMLBeans-Website zu finden; die Dateien saxon8.jar aus der Saxon-Distribution und xbean_path.jar werden in das Bibliotheksverzeichnis des Beispielquellcodes eingefügt.
SimpleXPath.java bietet eine kurze Einführung zur Verwendung von XPath-Anfragen. Hier ein Blick auf den relevanten Teil des Quellcodes:
Der erste Teil ist irgendeine XQuery zur Deklarierung des Namespace. Dieser wird der Abfrage vorangestellt. Dann folgt der Aufruf selectPath(); sowohl selectPath() als auch execQuery() geben ein Array mit XML-Objekten zurück. Der eigentliche XPath lautet
//st:site[st:rating/@rated=5]
und legt fest, dass alle Site-Elemente, die ein Rating-Element mit einem Rating-Attribut von 5 beinhalten, markiert werden. Zurückgegeben wird ein Array mit XML-Objekten, das dann in ein Array mit Sites gecastet werden kann, mit nachfolgendem Ausdruck der Ergebnisse.
XPath und XQuery sind ein Thema für sich; es genügt zu sagen, dass sie XMLBeans die Möglichkeit zu ein paar ziemlich interessanten Anfragen und zur Dokumentengenerierung eröffnen, ohne sich an der Hierarchie der Schemaklassen abarbeiten zu müssen und ohne die Vorteile zu verlieren, die von den durch XMLBeans generierten Klassen angeboten werden.
XMLBeans ist eine ausgezeichnete Option, wenn man für alle XML-Codierungsbedürfnisse nach einem einzigen Anbieter sucht. Fragt man sich aber, ob man denn nicht doch ein XML-Schema benötigen wird, obwohl ein Schema die Details nie so genau abstimmen kann wie die Codierung von Hand, dann kann das XmlBean-Tool inst2xsd versuchen, eine .xsd-Datei aus einer Reihe von XML-Dateien zu erzeugen.
Neueste Kommentare
Noch keine Kommentare zu Bohnen für XML: XMLBeans
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.