- From: Kingsley Idehen <kidehen@openlinksw.com>
- Date: Wed, 27 Mar 2002 15:28:36 -0500
- To: <www-ql@w3.org>
- Cc: <xquery@yahoogroups.com>
- Message-ID: <001901c1d5cd$f8e69ec0$6632fea9@research.local>
All,
Quick FYI re. our recently released Universal Server product (OpenLink
Virtuoso) that includes XQUERY support. This release enables the
creation of XML Query Template files that includes XQUERY statements.
These Templates are consumable either directly via a URL or as SOAP
operations (Web Services). The XML documents can take the following
forms:
1. SQL-XML - These are Valid (XML Schema or DTD based) or Well Formed
XML docs generated on the fly from homogeneous or
heterogeneous databases (Native Virtuoso SQL Data or third party
databases accessible via ODBC or JDBC).
2. XML or XHTML documents imported into Virtuoso via WebDAV
3. Document created and deposited into Virtuoso via any XML editor (e.g
XML Spy)
Here are some examples using the live Virtuoso server instance at:
http://demo.openlinksw.com:8890/xqdemo
1. Query Statement (stored as query template) re. Use Case R, sample
query 1.4.4.10:
<result>
{
for $highbid in document("bids.xml")//bid_tuple,
$user in document("users.xml")//user_tuple
where $user/userid = $highbid/userid
and $highbid/bid =
max(document("bids.xml")//bid_tuple
[itemno = $highbid/itemno]/bid)
return
<high_bid>
{ $highbid/itemno }
{ $highbid/bid }
<bidder> { $user/name/text() } </bidder>
</high_bid> sortby (itemno)
}
</result>
URL Access to Query Template (which materializes the resultset):
http://demo.openlinksw.com:8890/DAV/xqdemo/sqlxml-bids.xml
WSDL endpoint for consuming this Template exposed as a SOAP Operation
(Web Service):
http://demo.openlinksw.com:8890/demo1/services.wsdl
Web Services Interaction Endpoint for testing this Web Service:
http://demo.openlinksw.com:8890/demo1/services.vsmx
2. Query Statement (stored as query template) re. Use Case XMP, sample
query 1.1.9.10a:
<results>
{
let $doc := document("prices.xml")
for $book in $doc/prices/book
let $t := $book//title, $p := $doc/prices/book[title = $t]/price
return
(
$book,
<minprice title = { string($t) } >
{ if (not(empty($p))) then string(min($p)) else <unknown/> }
</minprice>
)
}
</results>
URL Access to Query Template (which materializes the resultset):
http://demo.openlinksw.com:8890/DAV/xqdemo/sqlxml-prices.xml
WSDL endpoint for consuming this Template exposed as a SOAP Operation
(Web Service):
http://demo.openlinksw.com:8890/demo1/services.wsdl
Web Services Interaction Endpoint for testing this Web Service:
http://demo.openlinksw.com:8890/demo1/services.vsmx
The a many more XML and Web Services etc. tutorials at:
http://demo.openlinksw.com:8890/tutorial (note: these aren't necessarily
XQUERY based).
Regards,
Kingsley Idehen
OpenLink Software
http://www.openlinksw.com/virtuoso/whatis.htm
Received on Wednesday, 27 March 2002 15:30:32 UTC