- From: Andrew Eisenberg <andrew.eisenberg@us.ibm.com>
- Date: Wed, 2 Jul 2008 16:09:20 -0400
- To: public-xml-processing-model-comments@w3.org
- Message-ID: <OFEFF722C9.F601742A-ON8525747A.006E848F-8525747A.006EC94E@us.ibm.com>
Reference has been made to a message that I sent to a member-only list: > First, Andrew's email, which the WG largely endorsed: > > http://lists.w3.org/Archives/Member/w3c-xsl-query/2008Jun/0000.html This message said: I reviewed the latest XProc draft [1], specifically section 7.2.9, p:xquery, and I have the following concerns: - no way to pass a single document as the context item - no mapping to our static and dynamic context - no way to make reference to an xquery file - no way to use XQueryX - I don't understand "The result of the XQuery is a sequence of documents constructed from an [XPath 2.0] sequence of elements. Each element in the sequence is assumed to be the document element of a separate document." I've rewritten this section to address these issues: 7.2.9 p:xquery The p:xquery step applies an [XQuery 1.0] query to the sequence of documents provided on the source port and the document provided on the source-node port. <p:declare-step type="p:xquery"> <p:input port="source" sequence="true" primary="true"/> <p:input port="source-node" sequence="false" primary="false"/> <p:input port="query"/> <p:input port="parameters" kind="parameter"/> <p:output port="result" sequence="true"/> <p:option name="query-uri" /> </p:declare-step> The sequence of documents provided on the source port is treated as the default collection. A document provided on the source-node port is treated as the context item. Any parameters passed on the parameters port are used to define top-level variables. If the query-uri option is specified, then the resource indicated by this URI is expected to contain the XQuery to be executed. Otherwise, the query port must receive a single document. If the document contains an xqx:module element, where xqx is bound to http://www.w3.org/2005/XQueryX, then this XQueryX document provides the query to be executed. Otherwise, the document must contain a c:query element. As an XQuery is not necessarily well-formed XML, the text descendants of this element are considered the query. <c:query> string </c:query> For example: <c:query> declare namespace atom="http://www.w3.org/2005/Atom"; /atom:feed/atom:entry </c:query> The static context of the XQuery processor is augmented in the following way: Statically known default collection type: document()* The dynamic context used in evaluation the query is: Context item: document provided by the source-node port Context position: 1 Context size: 1 Variable values: The union of the in-scope options and variables are available as variable bindings to the XQuery processor. Function implementations: The function implementations provided by the XQuery processor. Current dateTime: implementation-defined value Implicit timezone: implementation-defined value Available documents: implementation-dependent Available collections: implementation-dependent Default collection: sequence of documents provided by the source port The result of the XQuery is used to generate the sequence of documents that is returned by this step. Each document node and element node in result sequence of the XQuery generates a document in the result sequence. It is a dynamic error (err:XC0057) if the sequence that results from an XQuery contains items other than document nodes and element nodes. The base URI of each of the output documents is the base URI of the first document in the source port's sequence. Example: <p:pipeline xmlns:p="http://www.w3.org/ns/xproc"> <p:xinclude/> <p:validate-with-xml-schema> <p:input port="schema"> <p:document href="http://example.com/path/to/schema.xsd"/> </p:input> </p:validate-with-xml-schema> <p:query> <p:with-option name="query-uri" select="'countp.xq'" /> <p:input port="source-node"> <p:pipe step="validate-with-xml-schema" port="result"/> </p:input> </p:query> </p:pipeline> countp.xq: <count>{count(.//p)}</count> [1] XProc: An XML Pipeline Language http://www.w3.org/TR/2008/WD-xproc-20080501/ -- Andrew -------------------- Andrew Eisenberg IBM 4 Technology Park Drive Westford, MA 01886 andrew.eisenberg@us.ibm.com
Received on Wednesday, 2 July 2008 20:10:06 UTC