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: <html><head><meta name="foo" content="bar"/></head></html> 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: <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: 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