Hi Rojan,
Personally, I wouldn't add the xml-pi to the value returned from the function,
but in the main body, since then you know for sure where the result is being
sent to. But you could do it this way:
xquery version "1.0-ml";
(: buffer 1 :)
declare function local:getSearchResult() as element(){
<result>
<lst name="first">
<elem1>1</elem1>
<elem2>2</elem2>
</lst>
</result>
};
declare function local:getResult() as item()+
{
'<?xml version="1.0" encoding="utf-8"?>',
local:getSearchResult()
};
xdmp:set-response-content-type("application/xml"),
xdmp:set-response-encoding("utf-8"),
local:getResult()
Kind regards,
Geert
Van: Rojan K K [mailto:[email protected]]
Verzonden: maandag 28 februari 2011 9:53
Aan: General MarkLogic Developer Discussion
CC: Geert Josten
Onderwerp: Re: [MarkLogic Dev General] prepend the xmlversion identifier with
the resulted xml
Hi Geert,
Thanks for your support.
But my actual problem is, i couldnt able to add processing instruction to the
element.
I am using a search functionality and has to append PI with resulted xml
sample code structure is given below
declare function ns:getResult(--- params--) as element()*
{
let $resultXml=ns:getSearchResult(--params--)
return ($resultXml)
}
so that i am getting $resultXml as
<result>
<lst name="first">
<elm1>1<elem1>
<elm2>2<elem2>
</lst>
--
--
</result>
and output xml will be the same
but expected output is as given below
<?xml version="1.0" encoding="UTF-8>
<result>
<lst name="first">
<elm1>1<elem1>
<elm2>2<elem2>
</lst>
--
--
</result>
Please advice me how i can achieve this expected result by adding processing
instruction to the element.
regards,
Rojan
On Mon, Feb 28, 2011 at 12:55 PM, Geert Josten
<[email protected]<mailto:[email protected]>> wrote:
Hi Rojan,
If you precede your root element with a processing-instruction, comment or
string, you are returning a multi-item sequence. You will have to at least add
a + or * behind the return type. Secondly, a pi or string is not an element.
Use item() instead.
By the way, are you sure that MarkLogic Server doesn't prepend the xml pi
itself upon returning results? You can set the encoding of the response using
xdmp:set-response-encoding
(http://developer.marklogic.com/pubs/4.2/apidocs/AppServerBuiltins.html#xdmp:set-response-encoding)..
Kind regards,
Geert
Van:
[email protected]<mailto:[email protected]>
[mailto:[email protected]<mailto:[email protected]>]
Namens Rojan K K
Verzonden: maandag 28 februari 2011 7:52
Aan: [email protected]<mailto:[email protected]>
Onderwerp: [MarkLogic Dev General] prepend the xmlversion identifier with the
resulted xml
Hi,
I would like to prepend the xml version identifier and encoding(<?xml
version="1.0" encoding="UTF-8"?>) with the ouput xml which i am giving as the
result of a method having element() return type.I tried to append it as string
then its showing" Invalid coercion: "<?xml version="1.0"
encoding="UTF-8"?>" as element() " since its not node type. Please
help me to resolve this.
Regards,
Rojan
_______________________________________________
General mailing list
[email protected]<mailto:[email protected]>
http://developer.marklogic.com/mailman/listinfo/general
_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general