Revision [1234]

This is an old revision of CommandXquery made by DavidLee on 2010-02-15 10:24:30.

 

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,-file xquery-fileread xquery script from file
-i,-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 contextUse context as a literal context
-cf,-context-file fileUse 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,-stringconvert 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