[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] Is it possible to set the default namespace with a dynamically-generated namespace uri?


Subject: RE: [xsl] Is it possible to set the default namespace with a dynamically-generated namespace uri?
From: "Xia Li" <xli@xxxxxxxxxxxxx>
Date: Fri, 12 Mar 2010 11:44:47 -0800

I recently encountered the same problem. It seems you can't construct an
element without explicit prefix and then create a default namespace
declaration for the element. I guess it makes sense because if you haven't had
a default namespace declaration, then the element without prefix should belong
to null namespace.


Lisa

-----Original Message-----
From: Dimitre Novatchev [mailto:dnovatchev@xxxxxxxxx]
Sent: Friday, March 12, 2010 11:16 AM
To: David Carlisle
Cc: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] Is it possible to set the default namespace with a
dynamically-generated namespace uri?

> http://www.w3.org/TR/xslt20/#element-namespace
>
> If the effective value  of the name attribute is a zero-length string, a
> namespace node is added for the default namespace.
>
>
> so
>
> <foo>
> <xsl:namespace name="" select="$x"/>
>
> sets the default namespace to the uri in the variable x.
>
> David



David, I tried this hours before asking the question.

Saxon raises this error:

SystemID: D:\XSLT\MSTE_xslt\delete.xsl
Severity: fatal
Description: Cannot output a namespace node for the default namespace
when the element is in no namespace
Start location: 9:0
URL: http://www.w3.org/TR/xslt20/#err-XTDE0440


I thought this wasn't a bug in Saxon. Or is it?


Cheers,
Dimitre

On Fri, Mar 12, 2010 at 10:51 AM, David Carlisle <davidc@xxxxxxxxx> wrote:
> On 12/03/2010 18:25, Dimitre Novatchev wrote:
>>
>> I know this seems like an absurd scenario, but some people are asking
>> this question...
>>
>> It seems that<xsl:namespace>  was not intended for this purpose.
>>
>> Any suggestions for a solution?
>>
>
> http://www.w3.org/TR/xslt20/#element-namespace
>
> If the effective value  of the name attribute is a zero-length string, a
> namespace node is added for the default namespace.
>
>
> so
>
> <foo>
> <xsl:namespace name="" select="$x"/>
>
> sets the default namespace to the uri in the variable x.
>
> David
>



--
Cheers,
Dimitre Novatchev
---------------------------------------
Truly great madness cannot be achieved without significant intelligence.
---------------------------------------
To invent, you need a good imagination and a pile of junk
-------------------------------------
Never fight an inanimate object
-------------------------------------
You've achieved success in your field when you don't know whether what
you're doing is work or play
-------------------------------------
I enjoy the massacre of ads. This sentence will slaughter ads without
a messy bloodbath.


Current Thread