W3C home > Mailing lists > Public > public-xml-processing-model-wg@w3.org > June 2006

Re: Issue #3306

From: Erik Bruchez <ebruchez@orbeon.com>
Date: Fri, 02 Jun 2006 17:24:53 +0200
Message-ID: <44805845.1060209@orbeon.com>
To: public-xml-processing-model-wg@w3.org

All,

Regarding this issue:

<http://www.w3.org/Bugs/Public/show_bug.cgi?id=3306>

I think it is worth noting that XSLT 1.0 already discusses the
possibility of node-sets spanning multiple documents:

   http://www.w3.org/TR/xslt#document

XSLT 2.0 updates this as well, using sequences of course:

   http://www.w3.org/TR/xslt20/#document

The document() function is allowed to take a node-set as first
argument, which basically identifies a bunch or URIs. The result of
the document() function in this case is a node-set which may contain
nodes from different documents (typically, one node per document, and
even more typically, each document's root node).

(With XSLT, order of nodes among documents is implementation-dependent
but has to be "consistent".)

It is possible to have a variable refer to that node-set, of course:

   <xsl:variable name="my-nodes" select="document(//my-uris)"/>

Now again my point doesn't regard the document() function, which we
don't have in XPath, but the fact that the notion of having node-sets
containing nodes from multiple documents is not new, and that we can
be consistent with what is being done in XSLT 1.0.

In XProc, we wouldn't have something really different if we had
$documents refers to a "sequence" of documents. Make $documents a
node-set containing the root nodes of the documents in the order in
which they "arrive". Jeni can then write her:

    <p:choose>
      <p:input name="input" select="$documents" />
      <p:when test="count($input) >= 1">
        ...
      </p:when>
      <p:otherwise>
        ...
      </p:otherwise>
    </p:choose>

This sounds like a simple and compelling solution to me.

-Erik

-- 
Orbeon - XForms Everywhere:
http://www.orbeon.com/blog/
Received on Friday, 2 June 2006 15:32:21 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 8 January 2008 14:21:47 GMT