[MarkLogic Dev General] declare XML namespace

Kari Cowan KCowan at alm.com
Thu Jan 28 11:16:30 PST 2016

That certainly made it easy - thanks so much!

I knew it was "odd" (it would be, since it also wasn't really an issue from what you just demonstrated)

I learn so much from this list - I often read this when I have time just to lurk into other issues people ask about - there's such the gamut of great info from basic to advanced.  Thanks again.

-----Original Message-----
From: general-bounces at developer.marklogic.com [mailto:general-bounces at developer.marklogic.com] On Behalf Of David Sewell
Sent: Thursday, January 28, 2016 7:56 AM
To: MarkLogic Developer Discussion <general at developer.marklogic.com>
Subject: Re: [MarkLogic Dev General] declare XML namespace


There are two different issues with your code that are causing problems.

First off, any time in XQuery that you return two or more XML nodes as part of a sequence within parentheses (as opposed to part of a full XML tree structure), they need to be comma separated just like any other items in a sequence. So just as you need to say

  return ( "a", "b")

you need to say

  return ( <?instruction here?>, <element>my element</element> )

with a comma.

BUT: "<?xml version="1.0" encoding="UTF-8"?>" is not a processing instruction, it is an XML declaration, and you can't include it as part of a simple sequence. 
This will throw an error:

    <?xml version="1.0" encoding="UTF-8"?>,

In order to output the XML declaration, wrap your XML inside the XQuery document constructor, like so:

   if ($returnRSS) then
   document {
     <rss> ... </rss>

and the output will include "<?xml version="1.0" encoding="UTF-8"?>".

If you need to change the default serialization options (for example, to change character encoding, or to indent output), see

David S.

On Thu, 28 Jan 2016, Kari Cowan wrote:

> I may be going about this wrong, but I was trying to insert the xml marker above an RSS feed return:
> <?xml version="1.0" encoding="UTF-8"?>
> Returns error> [1.0-ml] XDMP-UNEXPECTED: (err:XPST0003) Unexpected 
> token syntax error, unexpected Version_, expecting Comma_ or Rpar_ or 
> SemiColon_
> Seems like a common thing that would be desired, but my websearch didn't find the answer.  Any tips here?
> if ($returnRSS) then (
>  <?xml version="1.0" encoding="UTF-8"?>  <rss version="2.0" 
> xmlns:sailthru="http://www.sailthru.com/rss-extension">
>   <channel>
>   <title>{$this_partner} Events RSS</title>
>   <description>See Upcoming Events presented by {$this_partner} </description>
>   <link>http://www/need/to/map/a/path/to/event/hubpage</link>
>   {$outputRSS}
>   </channel>
>  </rss>
>  )

David Sewell, Editorial and Technical Manager ROTUNDA, The University of Virginia Press PO Box 400318, Charlottesville, VA 22904-4314 USA
Email: dsewell at virginia.edu   Tel: +1 434 924 9973
Web: http://rotunda.upress.virginia.edu/

More information about the General mailing list