- From: Andrew Eisenberg <andrew.eisenberg@us.ibm.com>
- Date: Tue, 20 Jan 2004 16:58:05 -0500
- To: public-qt-comments@w3.org
- Cc: Don Chamberlin <chamberl@almaden.ibm.com>
- Message-ID: <OF20F96571.F4635970-ON85256E21.007843A8-85256E21.0078AC26@us.ibm.com>
XQuery currently lacks a mechanism to return metadata describing the
persistent objects of interest to its users. While this capability could
be added to each of the APIs that are designed for XQuery, we suggest that
it would be better for XQuery to provide this metadata.
SQL defines the Information Schema tables that reflect its metadata. While
these tables were provided in SQL-92, they have not been widely
implemented. By the time that they were published, vendors had already
started defining their own tables and API methods to make this type of
information available.
XQuery users can make reference to a number of objects in their queries.
The following table shows each of these objects and describes which
constructs allow their use.
XQuery object
clause that allows the use of this object
schema
Schema Import in prolog
module
Module Import in prolog
collation
Default Collation Declaration in prolog
OrderModifier in OrderBy Clause
functions such as fn:contains
collection
fn:collection
document
fn:doc
XQuery metadata might be provided by a function, fn:metadata. This
function would return the descriptions of schemas, modules, collations,
collections, and documents that are accessible to the issuer of the query.
A schema would be provided to describe the document or element produced by
this function. Implementations could provide additional metadata by
extending the types defined by this schema.
An application might request the entire metadata document, or it might
operate on it with XQuery to return only part of this metadata.
We recognize that some XQuery implementations are "closed world", with all
objects of these types registered in a repository of some sort, while
others are "open world", attempting to resolve URI's across the world wide
web. We suggest that the objects described by fn:metadata be defined to
return a subset, possibly an empty subset, of the objects that can be used
in a query. An open world implementation might return no object
descriptions at all.
A user might issue the following query:
for $c in fn:metadata()//xqm:collection
return fn:data($c/xqm:collection-uri)
This query might return the following:
http://www.example.com/xqdb1/employees
http://www.example.com/xqdb1/divisions
http://www.example.com/xqdb2/capital-assets
.
.
.
-- Andrew
--------------------
Andrew Eisenberg
IBM
5 Technology Park Drive
Westford, MA 01886
andrew.eisenberg@us.ibm.com
Phone: 978-399-5158 Fax: 978-399-5117
Received on Tuesday, 20 January 2004 17:08:21 UTC