Revision [1175]

This is an old revision of CommandXquery made by DavidLee on 2010-02-05 15:04:02.

 

Command xquery


Name

xquery evaluate an XQUERY expression and print the result

Synopsis

xquery [ serialization options ] [options] [-v var value [var value]]

Description


Evaluates an XQuery expression


Options

-f xquery-file
-file xquery-file
read xquery script from file
-i context
-input context
use context as the source xml document, otherwise stdin if context is an XML expression which is an item then use it directly as the context item.
-c context
-context context
Use context as a literal context
-cf file
-context-file file
Use file as the name of an XML file for the context, or "-" for stdin
-q query use argument as xquery-expr
-n do not use a source context
-v if -v is given then the remaining args are treated as name/value pairs and assigned to xquery external variables
-nons Do not import global namespace declarations from the shell environment
-ns prefix=uri Add a predeclared namespace declaration
-s
-string
convert every node value in the result to a string

xquery-expr xquery expression

Supports the standard [ serialization options ]

If no -q or -f is given then the next argument is treated as the xquery expression/script.


-i is depreciated. It is a convenience option that does the following
-c or -cf are suggested which explicitly indicate if to use the expression literally or as a filename




Not all options are compatible. You cannot read both the query and the context from stdin.
If you supply variables then -q must be supplied.


If the result (or any node of the result if a sequence) is an Attribute, or if the -s option is specified the it is converted to a string.

Example

xls | xquery '//file[1]/@name/string()'

Result
.classpath



Simplified example, you dont need string()
xls | xquery '//file[1]/@name'

Result
.classpath


Example
xquery -i <[<foo/>] .

Result
<foo/>



Namespace example using a renamed prefix for a namespace
echo "<x:a xmlns:x='foo' />" | xquery  -nons -ns y=foo /y:a

Result
<x:a xmlns:x="foo"/>


When using large XQuery expressions consider storing the xquery in a file such as
xquery -f query.xquery


Or using the Block Quotes which makes managing the various quote options in XPath and XQuery easier
xquery -n -q <{{
declare variable $A external ;
declare function local:foo( $a ) 
{
   <node>{ concat("foo",$a,'bar') }</node>
};

local:foo( $A/spam[2] )
}}>  -v A <[ <elem><spam>text</spam><spam>text2</spam></elem> ]>


Result
<node>footext2bar</node>





Return Value

Returns 0 if the the xquery expression executed successfully. otherwise 1


Commands
CategoryCommands

There are no comments on this page.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki