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: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Fri, 12 Mar 2010 15:44:36 -0800
> <xsl:element name="foo" namespace="$x"
>
> is your friend
>
> david

Yes, but this would require creating all the output with <xsl:element>

The OP (in another forum) wants this default namespace to apply to
literal result elements that are descendents of this top node.
However, they are just copied to the output 1:1 and the serializer
takes special care to express the fact that they belong to no
namespace, by inserting "  xmlns=''     " on all of them.

It seems to me that using <xsl:namespace> it is not possible to
specify a default namespace.

I would be very glad if someone provides a concrete code sample
proving me wrong :)

Cheers,
Dimitre




On Fri, Mar 12, 2010 at 11:26 AM, David Carlisle <davidc@xxxxxxxxx> wrote:
> On 12/03/2010 19:15, Dimitre Novatchev wrote:
>>> http://www.w3.org/TR/xslt20/#element-namespace
>>>
>>> If the effective value B 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:
>
> er because I got it wrong, sorry, I should have checked or known or
> something.
>
> You can add namespace nodes using xsl:namespace but you can't change the
> namespace of a node that's already B been created so
> <foo>
> <xsl;namespace name=""
>
>
> doesn't work.
>
>
> <xsl:element name="foo" namespace="$x"
>
> is your friend
>
> 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