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.