xsl-list
[Top] [All Lists]

Re: Default namespace in result document

2005-12-09 14:16:45
I asked how to get this:

<root xmlns="http://example.com/foo";>
   <foo>
     <blah/>
   </foo>
</root>

rather than this:

<foo:root xmlns:foo="http://example.com/foo";>
   <foo xmlns="http://example.com/foo";>
     <blah/>
   </foo>
</foo:root>

i.e. with no more namespace attributes than necessary.

Geert Josten suggested:
> How about adding the following to the xsl:stylesheet element:
>     exclude-result-prefixes="foo"

Unfortunately this doesn't work; I get exactly the same output.

Andrew Welch suggested:
> Use a default namespace in the stylesheet, eg:
>
> <xsl:stylesheet
>   xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
>   version="1.0"
>   xmlns="http://example.com/foo";>
>
> (note the foo prefix has been removed)

This does work - thanks Andrew - but I'm not keen on changing the namespace prefixes for all the literal elements like this; I was hoping for an easier way, such as an attribute on xsl:output or something like that.

More googling has found the xsl:namespace element in 2.0. Is this useful for this problem? Is there anything else I can do?

Cheers,

--Phil.


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--