Hello,
This code:
 let $asString := '<html><head><meta name="foo"
content="bar"/></head></html>'
 let $asElement := <html><head><meta name="foo"
content="bar"/></head></html>
 return (
     "method: html "
     ,"AS STRING:"
     ,serialize($asString,map{"method":"html"})
     ,"AS ELEMENT:"
     ,serialize($asElement,map{"method":"html"})
  Â
     ,"method: xhtml "
     ,"AS STRING:"
     ,serialize($asString,map{"method":"xhtml"})
     ,"AS ELEMENT:"
     ,serialize($asElement,map{"method":"xhtml"})
  Â
     ,"method: text: "
     ,"AS STRING:"
     ,serialize($asString,map{"method":"text"})
     ,"AS ELEMENT:"
     ,serialize($asElement,map{"method":"text"})
 )
when executed with Saxon, in oXygen, gives me:
   <?xml version="1.0" encoding="UTF-8"?>method: html AS STRING:
&lt;html&gt;&lt;head&gt;&lt;meta name="foo"
content="bar"/&gt;&lt;/head&gt;&lt;/html&gt; AS
ELEMENT: <html>
     <head>
        <meta http-equiv="Content-Type" content="text/html;
charset=UTF-8">
        <meta name="foo" content="bar">
     </head>
   </html> method: xhtml AS STRING:
&lt;html&gt;&lt;head&gt;&lt;meta name="foo"
content="bar"/&gt;&lt;/head&gt;&lt;/html&gt; AS
ELEMENT: <html>
     <head>
        <meta name="foo" content="bar"></meta>
     </head>
   </html> method: text: AS STRING:
<html><head><meta name="foo"
content="bar"/></head></html> AS ELEMENT:
With BaseX, however, I get:
   method: html
   AS STRING:
   <html><head><meta name="foo"
content="bar"/></head></html>
   AS ELEMENT:
   <html>
    <head>
      <meta name="foo" content="bar">
    </head>
   </html>
   method: xhtml
   AS STRING:
   <html><head><meta name="foo"
content="bar"/></head></html>
   AS ELEMENT:
   <html>
    <head>
      <meta name="foo" content="bar"></meta>
    </head>
   </html>
   method: text:
   AS STRING:
   <html><head><meta name="foo" content="bar"/></head></html>
   AS ELEMENT:
which has me baffled.
* why is the result to the very last function empty?
* how can I convert an XML node to an entity escaped string, _without_
passing it in as string, but as element() or node()?
The background is, that I want to write a function, that takes an XML
element()* and results in the node(s) escaped to xs:string*, so,
basically, what Saxon does (though I still wonder, how the Saxon people
then get an unescaped string of XML, as BaseX does).
Thanks.
--
Goody Bye, Minden jót, Mit freundlichen Grüßen,
Andreas Mixich