[XQuery Talk Mailing List Archive Home] [By Date] [By Thread] [By Subject] [By Author] [Recent Entries] [Reply To This Message]

Generating xhtml from xml in no namespace

Jesper Tverskov jesper.tverskov at gmail.com
Thu Dec 18 14:15:58 PST 2008


  Generating xhtml from xml in no namespace
As has been said, there are many more or less cumbersome ways to
output XHTML from XML input in no namespace, most of them bad in my
opinion because they smell to much of fancy work-arounds and not that
easy to reuse.

The only correct way, I feel, is to "use the long form of element
constructor to put the namespace in each time", as Carlisle formulated
it. I tried it out, it works, naturally, but it is a hell of a lot
work.

So I came up with the following method, nice because there is some
natural logic to it, now when it not possible to do it directly. Also,
most of all, it is nice because it is easy to reuse.

1) Declare the following change-namespace function  (borrowed
unchanged from Priscilla Walmsley):

declare namespace functx = "http://www.functx.com";
declare function functx:change-element-ns-deep
($element as element(), $newns as xs:string) as element() {
let $newName := QName($newns, local-name($element))
return (element {$newName}
{$element/@*,
for $child in $element/node()
return if ($child instance of element())
then functx:change-element-ns-deep($child, $newns)
else $child
}
)
};

2) Create a variable $x and put good old XHTML output, build the
literal way, into it. The only thing that is missing is
xmlns="http://www.w3.org/1999/xhtml" in the html element.

3) Now use the following:

functx:change-element-ns-deep($x, "http://www.w3.org/1999/xhtml")


Cheers,
Jesper Tverskov
http://www.xmlplease.com


PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.