[XQuery Talk Mailing List Archive Home] [By Date] [By Thread] [By Subject] [By Author] [Recent Entries] [Reply To This Message]

Re: How do different XQuery products implement modules?

Dan Muresan danmbox at gmail.com
Fri Oct 17 18:38:09 PDT 2008


  Re: How do different XQuery products implement
	modules?
Hi, here are the answers for Zorba (http://www.zorba-xquery.com/):

>> 1. Is the module URI just an arbitrary character string, or does it
>> have any semantics?

It is an arbitrary character string.

>>   1a. In particular, is it the location of a resource on the web?

This is not required; however, users can supply module URI resolvers
that may choose to attach arbitrary meaning to the module URI (this is
work in progress).

>> 2. Do you allow several different modules in the same query to have
>> the same module URI?

Yes, but all modules sharing the same module URI must be imported from a
single "import module" declaration (by specifying multiple location hints).

>>   2a. if so, can different "import module" declarations import different
>> subsets of these?

No.

>> 3. Can users import a module without specifying a location URI? If so, how
>> is the module located?

Not by default. However, a user-supplied module URI resolver can process
the module namespace and location hints arbitrarily to generate one (or
more) final locations.

>> 4. If import module specifies a location URI, is it used, and if so how?

It is used to locate a local file or a web location.

>> 5. If import module specifies more than one location URI, how are they
>> used?

By default, each location hint URI is processed separately to yield a
separate LibraryModule. Custom module URI resolvers can do whatever the
user wants (possibly yielding fewer or more LibraryModule's than the
supplied hints).

>>   5b. If multiple location URIs are allowed, what happens if
>>   import module specifies the same location URI more than once?

By default, redundant hints are ignored.

>> 6. What happens when two modules A and B both import module URI M
>>
>>   6a. specifying the same location URI

A single instance of the module M is created.

>>   6b. specifying different location URIs

If the two location URIs are equivalent up to relative URI resolution,
same as above. If not, then two distinct modules are imported.

>>   6c. without specifying a location URI

This can only happened with a user-supplied module URI resolver, and the
result then depends on the user's code.

>> 7. Is it possible (by means of multiple imports) to create two different
>> "instances" of the same module in a query, with distinct values of global
>> variables, or do all imports get the same instance with a common set of
>> variables?

A single instance of a module is ever created. If a module is
addressable by two distinct URI's (e.g. in Unix, if file mod2.xq is a
symlink to mod1.xq), then these behave as two separate modules with
identical source code.


-- Dan Muresan


PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2011 All Rights Reserved.