This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: conditional namespaces


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]