This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: conditional namespaces
- From: Jeni Tennison <jeni at jenitennison dot com>
- To: ronald heller <ronald at salience dot nl>
- Cc: xsl-list at lists dot mulberrytech dot com
- Date: Fri, 14 Dec 2001 17:10:11 +0000
- Subject: Re: [xsl] conditional namespaces
- Organization: Jeni Tennison Consulting Ltd
- References: <5.0.2.1.0.20011214172742.00b0eec0@pop5.inter.nl.net>
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi Ronald,
> OUTPUT:
> <?xml version="1.0" encoding="UTF-8"?>
> <document xmlns:ns0="http://www.google.com" ns0:type="gg">
> <title>title</title>
> <a>aaa</a>
> </document>
>
> Why are these 0 characters there? We had exspected something like:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <document xmlns:ns="http://www.google.com" ns:type="gg">
> <title>title</title>
> <a>aaa</a>
> </document>
>
> The result we get with msxml 4 is more or less the same only it's
> doesn;t generate a zero but a string "auto" or something. What's
> going on here?
As far as XSLT, and any namespace-aware application, is concerned,
these documents are logically exactly the same. The prefix that you
use for a namespace - ns or ns0 or auto - doesn't matter when it comes
to interpreting the logical structures in the document. Whichever
prefix is used, the attribute you've added is still a type attribute
in the 'http://www.google.com/' namespace.
I suspect that Saxon and Xalan uses ns0 so that they can make up
prefixes for multiple namespaces, for example:
<document xmlns:ns0="http://www.google.com" ns0:type="gg"
xmlns:ns1="http://www.lycos.com" ns1:type="ly"
xmlns:ns2="http://www.yahoo.com" ns2:type="yh"
...>
...
</document>
If you want to tell the XSLT processor to use the prefix 'ns' for the
namespace, then include that prefix in the name attribute of the
xsl:attribute:
<xsl:attribute name="ns:{$attribute}" namespace="{$namespace}">
<xsl:value-of select="$value" />
</xsl:attribute>
It's not guaranteed to use that prefix, but I think most of the
processors honor it.
I hope that helps,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list