Aktionen: Versionen anzeigen
JXQuery

JXQuery ist ein Java Modul zum ausführen von XQuery Audrücken, einer Abfragesprache für XML.

Der Quellcode wird wie üblich bei SourceForge zur Verfügung stehen.

Support Request 1100487 to takeover the jxquery project.

Der Takeover hatte Erfolg, in Zukunft steht unter der folgenden URL die Platform zur Verfügung:

Ich werde die vorhandenen Sourcen bei nächster Gelegenheit commiten.

english description

JXQuery is a Java module to execute a XQuery expression, a query language for xml.
Target is the development of a java module you can give a XQuery expression and execute it. The used XML data sources should stored in memory ore file system. Optimation like precompiling and caching are good ideas.

Ziel

Ziel ist Entwicklung eines Java-Moduls dem man einen XQuery Ausdruck übergeben und ausführen kann. Die anzusprechenden XML-Datenquellen sollten im Speicher oder Filesystem liegen können. Optimierungen wie vorkompilierungen und Caching sind denkbar. Es soll so weit wie möglich auf die apache.org und java.sun.com Module für XML aufgesetzt werden.

Beschreibung von XQuery

XQuery ist vergleichbar mit SQL für relationale Datenbanken und dieser auch zum Teil ähnlich.

Wer XPath und SQL kennt, wird sich beim erlernen dieser Abragesprache einfach tun. Sie verwendet Konzepte aus beiden Welten.

FLWOR

Ein XQuery-Ausdruck ist ein so genannter "FLWOR-Ausdrücke".
Diese Audrücke können geschachtelt werden um Abfragen über Unterabfragen und ähnliches zu erreichen.
Über die LET-Bedingung können JOIN bedingungen abgebildet werden.

Die Strukturierung ist für Programmierer mit SQL Erfahrung leicht verständlich.

FLWOR steht dabei für:

  • FOR: Wie in for-Schleifen in Programiersprachen üblich, eine Itertaion über eine Liste (FOR oder LET ist optional).
  • LET: Eine Zuweisung an Variablen die in dem XQuery Audruck verwendet werden können (FOR oder LET ist optional).
  • WHERE: Filterbedingung für die von FOR oder LET gelieferten Daten (optional).
  • ORDER BY: Sortierung der Ergebnis-Daten (optional).
  • RETURN: Ausgabeformatierung der Ergebnis-Daten.

XPath

XPath-Ausdrücke wird zur Adressierung von Werten in den FLWOR-Ausdrücken verwendet.

Beispiele

Beispiel 1:

FOR $b IN doc("xml/input/books.xml")/books/book
WHERE $b/@year=2002
RETURN
<books>
<bookTitle>
{$b/title}
</bookTitle>
</books>

Beispiel 2:

LET $books := doc("xml/input/books.xml")/books
LET $addresses := doc("xml/input/addresses.xml")/addresses
FOR b$ IN $books
RETURN
<books>
<book>
<title>
{$b/title}
{
FOR $a IN addresses
WHERE $b/authorName = $a/authorName
RETURN
<author>
{$a}
</author>
}
</title>
</book>
</books>

Beispiel 3:

IMPORT SCHEMA NAMESPACE books="http:www.schmiereck.de/ns/books/" AT "xml/input/books.xsd" DECLARE FUNCTION getAuthorName($a AS element(books:AuthorType)) AS string { LET $name := string($a/authorName) return $name }; FOR $a IN distinct-values(doc("xml/input/books.xml")author)
RETURN
getAuthorName($a)
Version 22 bearbeitet am {07.02.2011 10:16:28} von smk, Besitzer ist smk und die Berechtigungen sind eingeschränkt auf: Jeden