[MarkLogic Dev General] declare XML namespace

David Sewell dsewell at virginia.edu
Thu Jan 28 07:56:07 PST 2016


Kari,

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"?>,
    <doc><p>text</p></doc>
  )

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 
http://docs.marklogic.com/guide/xquery/langoverview#id_71572

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/
-------------- next part --------------
_______________________________________________
General mailing list
General at developer.marklogic.com
Manage your subscription at: 
http://developer.marklogic.com/mailman/listinfo/general


More information about the General mailing list