This document is translated from Wei Ren (WEIREN@dstc.edu.au), the writing time is 2001, and there are 3 years in the distance, and the development of XQuery's development, many of the contents are no longer accurate. The purpose of translation is to give some references to XQuery, especially XQuery. I will introduce the XQuery engine of my company ipedo (http://www.ipedo.com). Software AG's Quip
http://www.softwareag.com/developer/downloads/default.htm
characteristic:
It is a Windows 32-bit platform XQuery engine
Easy to install and use.
Achieve most of the XQuery language specification, including Distinct, Union, // (Descendant), Namespace, users can customize functions
You can query the XML document in the file system, you can also query the XML document stored in the Tamino XML database, and the query results can be saved.
Added two non-standard functions:
'fromCollection (String Name)
'TextSearch (String S1, String S2)'
76 query statements and 51 XML files
The grammar follows the draft defects from W3C June 7, 2001:
Not implemented:
Solution Reference Identifier (->)
Static type check and Schema verification
In addition to String and Integer without other basic types
Node tag
Only a backslash can be used.
No source code
Microsoft's XQuery Prototype
http://131.107.228.20/xquerydemo/demo.aspx
characteristic:
Ability to resolve and perform XML documents related to XQuery through the above Web site.
Supports FLWR expressions, path expressions, conditional expressions, and min (), max (), AVG (), SUM (), and count () these aggregation functions.
User case for W3C is given, of course, some have not been implemented.
Provides the XQuery class library that can be run through .NET.
The grammar follows the draft W3C June 7, 2001. Defect:
You can query some preset XML documents through the above sites, and query other documents, you should use the class writing program provided by Microsoft.
Not implemented:
Solution Reference Identifier (->)
Distinct, unordant, sortby, unordered, filter, namespace, before / after, insert / update / delete
No type check
FATDOG - XML Query Engine
http://www.fatdog.com
characteristic:
This is a XQuery engine that can qurue local XML documents based on JavaBean. You can also perform a full-text search by establishing an index using XQL.
Provide the XQuery API, for example, to establish an index for a document, you can call SetDocument (FilePathstr). You can then use SetQuery (QueryStr) to enter the index.
Supports FLWR expressions, Element Constructionors, and XPath expressions with simple predicates.
The XQuery engine extends the syntax of XQL and provides a full-text search function.
Five Java routines
defect:
It is difficult to install and use, because the document does not mention what version of Java API should be used to resolve XML
You must write the program to query the XML document
You must first establish an index to query
No source code
SourceForge - XQuench
http://sourceforge.net/projects/xquench
characteristic:
XQENCH is provided to the developer API, which is based on http://www.w3.org/xml/query (supporting the latest specification?) Based on Java-based open source project, there will be a C version in the future
defect:
XQUENCH is still in the initial development phase, there is no document.
You must get your source code from the SourceForge site and compile with ANT. You must have Javacc before compiling. Relatively speaking, compiled help documents are more than fatdog.
The current XQUENCH is to parse the XQuery syntax. So when you run the test statement it is, you will see --Input: /Home2/weiren/Work/xmlquery/xquench/xquench/dist/doc/testsuite/simp1.xmq --Good Input!> Start> xQueryFile > XQueryUnit> FunctionLibrary> Query> Expression .........
Kweelt
http://db.cis.upenn.edu/kweelt/
characteristic:
KWeelT is a framework for querying XML data.
It realizes most of the XQuery demand in February 15, 2001, and has made a lot of extensions.
With a lot of examples
Provide a lot of support for XML. Do not require a specific storage method, but based on a series of interfaces (Node and Nodelist) and is implemented by NodeFacotry
Open source project written by Java
Provide Kweelt API.
Good scalability. Users can create their own functions to use when queries. KWEELT provides different template classes that can easily create these functions.
With KWEELT Server Pages Extension ---- an built-in Cocoon processor. Ksp enables the KWEELT query to be embedded in the XML page.
defect:
Namespace is not supported;
Detailed information about BUG
X-Hive XQuery
http://www.x-hi.com/xquery
characteristic:
It is an online XQuery demo.
The query exists in the XML document in the X-Hive database. These XML documents can be viewed through the browser of the database.
Support for multiple XML documents. See XMACH-1.
Most XQuery languages have been implemented. Includes stated, expressions, operators, and other useful functions.
You can query the documentation used by W3C's use case.
The grammar follows the draft of W3C June 7, 2001. defect:
You can't query the XML document that exists in other places;
There are still four queries in Demo.
No source code
original:
Evaluation of XML Query Implementations
Wei Ren Weiren@dstc.edu.au
10 August 2001
Software AG's Quip
http://www.softwareag.com/developer/downloads/default.htm
Capabilities:
IT is a prototype of xquery for windows 32 bit platage;
It's easy to install & run.
Most of the xquery language specification HAS been Implement INCLUDING: DISTINCT, Union, // (Descendant), User Defined Function, Namespace, ETC.
Queries May Be Applied TO XML Files or XML Stored In A Tamino Database and Queries Can Be Saved.two Non-Standard Additions:
Function: 'fromCollection (Name)' with a string argument 'name'
Function: 'TextSearch' with Two String Arguments
Examples include 76 queries and 51 xml files
Syntax conforms to the 07 june 2001 Working Draft of Xquery.
Limitations:
NOT IMPLEMENTED ARE:
Dereference Symbol (->)
Static Type Checking or Any Schema Evaluation
Basic Types Other Than String, INTEGER
Node Identity
Known Problems - Nitpicking About Path Names. In Some Situations It Only Accepts True Windows Path Notation (Only Backslashes Are Accepted, Slashes Are Not Valid).
No Source Code Availability
Microsoft's XQuery Prototype
http://131.107.228.20/xquerydemo/demo.aspx
Capabilities:
Can Formulate XQueries and Parse and Execute Them Via A Website
Supports: FLWR Expressions, Path Expressions, Conditional Expressions, Multiple For, Min (), Max (), AVG (), Sum (), Count (), etc.
Gives Examples for Each of The W3C Use Cases. Some Use Cases Don't Work Due To Unmeplement Features.
Provides a managed class library containing XQuery classes that can be programmed against using the beta 2 release of the .Net Frameworks SDK These classes allow you to run XQuery queries over arbitrary XML documents (Note ***:.. The Beta 2 release of the .NET Framework Runs on Windows Platform.)
Syntax Conforms to the June 7, 2001 Draft of Xquery Spec.
Limitations:
You can build query and execute it on the above website, but it is based on the predefined XML documents. If you want to run XQuery queries over arbitrary XML documents, you need to program using the XQuery classes provided.
The following are not implemented: -> (DEREF), DISTINCT, UNION, // (DESCENDANT), User defined functions, SORTBY, UNORDERED, FILTER, Namespace, BEFORE / AFTER, Insert / Update / Delete, No type checking.Fatdog - XML Query Engine
http://www.fatdog.com
Capabilities:
XML Query Engine is a local-file-based search engine tool for XML. It's a JavaBean component that lets you index and then search your file-based XML documents for element, attribute, and full-text content. The index, once built, Can Be queried using xql.
Provides XML Query Engine API. For example, To index a document, you call setDocument (filePathStr_1). You can then pose queries against the index using setQuery (queryString). Any queries you make are posed against the sum content of all the documents you 've indexed to thing point.
Ships with Very Early Support for XQuery (Currently Based On The February 15 Specification).
Supports Flwr's, Element Constructors, and XPath Expressions with Simple Predicates.
XML Query Engine Extends XQL's Syntax To Provide a full-text Capability
Give Five Sample Applications Written in Java and XML Query Engine API
Limitation:
IT's Difficult To Install and Run The Example Because The Readme File Dosn't Mention Which Version of The Java API is Required for XML Parsing.
If you want to pose queries on your owr.
Supports Simple Queries: Flwr Expressions, Path Expressions, Multiple For
You Have to build an index of the xml files first, then you can query on it.
No Source Code
SourceForge - XQuench
http://sourceforge.net/projects/xquench
Capabilities:
XQUENCH IS An XML Query Parser and Engine. The AIM IS To Provide Program With An Api That Implements The Specifications At http://www.w3.org/xml/queryopen-source
Limitation:
XQUENCH IS in Very Early Stages of Development, So There Are no user docs right now.
You should check out a CVS version from sourceforge website and try to compile it yourself. Before you compile it, you need to download JavaCC 2.0 (a parser generator for java programs) to generate a parser for the XML Query language and Ant 1.3 to build XQUENCH. SO It Takes Some Time To Make It Runnable, But The Instructions Are Well Written (MUCH BETTER THAN FATDOG).
What XQuench can currently do is to parse the XML Query language, that's why after you run it with its own test query, you got a list of syntax words: --Input: / home2 / weiren / work / xmlquery / xquench / xquench / Dist / doc / testsuite / simp1.xmq --Good Input!> Start> xQueryFile> XQueryunit> FunctionLibrary> Query> Expression .........
Kweelt
http://db.cis.upenn.edu/kweelt/
Capabilities:
Kweelt is a framework to query xml data.
Implements a Query Language for XML That Satisfies All The Requirements from The W3C Query-Language-Requirements (February 15, 2001) with a lot of useful extensions.
Comes with numerous working examples
Offers Multiple XML Back-Ends. The Query Evaluator Does NOT IMPOSE Any Specific Storage for XML But Relies ON A Set of Interfaces (Node and Nodelist) Implement By A NodeFactory. It is storage-independent.
Open-Source Fully Written in Java
Provides Kweelt API.
Extensible. The user can create his / her own user-defined functions (UDF) and make them available inside the query. Kweelt provides various template classes to make the creation of such functions very easy.Comes with the Kweelt Server Pages (KSP) extension A Built-in Cocoon Processor. KSP Allows To Embed Kweelt Queries Inside Any Xml Page Serviced by Cocoon.
Limitations:
Namespaces area not support;
Bugs Are Mentioned In The To-Do List, But no Details Are Provided.
X-Hive XQuery
http://www.x-hi.com/xquery
Capabilities:
IT is an on-line xquery demo.
Works with XML Documents Stored in a Native XML Database (X-Hive / DB) Which Can Be Viewed THROUGH The Database Browser.
Supports queries over multiple xml documents. The sample queries from the xmach-1 Benchmark Have Been Included to Demonstrate this feature.
Most of the xquery language has been implementation, Operators and Many Useful functions. See Details on their URL.
Utilizes the documents and queries as described in the XML Query Use Cases Document
Syntax conforms to the 07 june 2001 Working Draft of Xquery.
Limitations:
CAN't Run XQuery Queries over Arbitrary XML Documents;
4 queries from the xml query use case document do not work yet in this demo.
No Source Code
Summary:
Quip, Microsoft, XQuench, Fatdog, Kweelt, X-Hive
Both Microsoft and X-Hive are web-based demo and can only query on predefined XML files. And conforms to the latest Xquery working draft (June 2001) .While Microsoft can query on arbitary XML documents using the classe library provided.
Both X-Hive and Quip support queries over multiple XML documents.Quip works with XML documents stored in a Tamino database or as flat files in the file system, while X-Hive only works with XML documents stored in a native XML database (X- Hive / db) .xquench Only Has An XML Query Language Parser and Currently No Query Evaluator. They Say Their Immediate Priorities Are TO:
Satisfy All of W3C's Test Cases
Release a New Version (i checked out the souce "sourceforge website, maybe the Haven't checked in the Latest version of xquench yet)
.
QUIP Conforms To The Latest XQuery Working Draft (June 2001). Most of The XQuery Language Features Have Been Implence. It Runs ON Windows 32 Bit Platforms. No Source Code, But Provides Many Sample Queries.
Kweelt is not just an implementation of a query language. It provides other extensible functions (details see above) .It provides an API and source code. They claim to support all the use-cases published by W3C for the XML query requirements. But they Don't Mention Which Version of The Requirements Document IS Used. It is noteworthy That TimeStamp of Its Downloaded File IS SEP-2000.