[xquery-talk] Any problem with xmlns attribute on output html element?

Ronald Bourret rpbourret at rpbourret.com
Wed Mar 21 14:01:36 PST 2007


Hello,

The most likely possibility is that your FLWOR expressions use names 
that are not in any namespace. By adding the xmlns attribute without any 
prefix, you have just placed unprefixed names in the XHTML namespace. 
Since your names are not in any namespace, they no longer match.

For example:

<html>
{
    for $a in doc("a.xml")/a
    return $a
}
</html>

finds all the <a> elements in the a.xml document. On the other hand,

<html xmlns="http://www.w3.org/1999/xhtml">
{
    for $a in doc("a.xml")/a
    return $a
}
</html>

looks for all the {http://www.w3.org/1999/xhtml}a elements in the a.xml 
document. There aren't any, so it returns an empty sequence.

Without seeing your FLWOR expressions, it is impossible to know for sure.

-- Ron

Kevin Grover wrote:

> Is there any problem with putting an xmlns attribute on the main
> <html> element I generate?
> 
> When I did this, all of the embedded FLOWR expressions started
> returning nothing.
> 
> I can post some examples if this question makes no sense
> 
> A quick summary.  I have an XQuery file that works.  It outputs HTML
> 
> <html>
> <head>
> ...
> <head>
> <body>
> ...
> {
> some FLOWRS expresions
> }
> </body>
> 
> And it works fine.
> 
> However, if I change it to:
> 
> <html xmlns="http://www.w3.org/1999/xhtml">
> <head>
> ...
> <head>
> <body>
> ...
> {
> some FLOWRS expresions
> }
> </body>
> 
> 
> I get only the top outine output: that's is, just those elements that
> are not part of embedded expressions
> 
> Any ideas?



More information about the talk mailing list