[xquery-talk] How do different XQuery products implement modules?

Michael Kay mike at saxonica.com
Wed Oct 15 22:55:17 PDT 2008

The XQuery WG has been considering the behaviour of module imports with an
eye to clarifying and cleaning it up, as it appears to be both
underspecified in some cases and over-complicated in others. Currently a
great deal of the behaviour is implementation-defined, which may be
necessary to handle the necessary differences between one environment and
another, or may turn out to be unnecessary. Clearly it would be better if we
could offer users a stronger guarantee of interoperability without
over-constraining implementations.

We are seeking feedback to discover how existing implementations have
interpreted the spec in order to guide our decisions. If you're involved
with an implementation, especially one that isn't directly represented on
the Working Group, we'd be grateful for answers to the following questions
(and any other comments on the general area):

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

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

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

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

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

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

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

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

6. What happens when two modules A and B both import module URI M

   6a. specifying the same location URI

   6b. specifying different location URIs

   6c. without specifying a location URI

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

More information about the talk mailing list