Wiki source for ExistQuery


Show raw source

======eXist Command: query======
invokes an 'ad-hoc' query supplied locally

====Synopsis====
query [exist options] [options] query-uri

====Description====
Invokes an ad-hoc query supplied locally and executed on the eXist server.


====Options====
The query command accepts all [[ExistCommonOptions eXist Common Options]] in addition to

||-start #||Start at result row # (default 1)||
||-max #||Return at most # results (default no limit)||
||-q query||Specifies the query to execute as an argument||
||-f query_file||Specifies the name of the file containing the query||
||-t,-text||Outputs the result as text. Equivalent to -contentType text/plain||
||-b,-binary||Outputs the result as binary. Equivilent to -contentType application/octet-stream||
||-x,-xml||(default) Outputs the result as xml. Equivalent to -contentType text/xml||
||-raw||Outputs the results without any parsing.||
||-session sessionid||Associates a session with this query||
||-p property=value,
-prop property=value||Assigns a property with the query||
||-v||Specifies that external variables are supplied as argument pairs at the end of the command line - NOT IMPLEMENTED IN CURRENT VERSION of eXist Server||
||-m,-meta||Outputs the meta data returned with the query as the first element of the result sequence as well as the results||


If no -f or -q is specified then the first argument is taken to be the query.

====Example====
Assuming the prefix "e" is imported as the exist, invokes the query '"Hello World"'


%%
e:query "'Hello World'"
%%

Result
%%
Hello World
%%


Execute the query '1 to 5,"hello",<text>world</text>'

%%
e:query -q '1 to 5,"hello",<text>world</text>'
%%

Result
%%
1
2
3
4
5
hello
<text>world</text>
%%

The same query stored in a variable then outputting the 6th element

%%
e:query -q '1 to 5,"hello",<text>world</text>' >{result}
echo ${result[6]}
%%

Result
%%
hello
%%

The same query but include the meta data returned as the first element

%%
e:query -m -q '1 to 5,"hello",<text>world</text>'
%%

Result
%%
<exist:result xmlns:exist="http://exist.sourceforge.net/NS/exist" exist:hits="7"
exist:start="1"
exist:count="7"/>
1
2
3
4
5
hello
<text>world</text>
%%

The same query without any processing returning exactly what the eXist server returns.

%%
e:query -raw -q '1 to 5,"hello",<text>world</text>'
%%

Result
%%
<exist:result xmlns:exist="http://exist.sourceforge.net/NS/exist" exist:hits="7" exist:start="1" exist:count="7">
<exist:value exist:type="xs:integer">1</exist:value>
<exist:value exist:type="xs:integer">2</exist:value>
<exist:value exist:type="xs:integer">3</exist:value>
<exist:value exist:type="xs:integer">4</exist:value>
<exist:value exist:type="xs:integer">5</exist:value>
<exist:value exist:type="xs:string">hello</exist:value>
<text>world</text>
</exist:result>
%%






====Implementation====

query is implemented using the REST protocol POST methods.
Currently the -v option is unimplmented until eXist support for external variables makes it into a release branch.


See [[http://exist.sourceforge.net/devguide_rest.html]]

----
[[ModuleExist eXist Extension Module]]
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki