Subject: Re: 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.
|