xsl-list
[Top] [All Lists]

RE: Problem with XSL and Namespace

2002-10-15 09:50:15

Jeni and David,

I'm sorry. The xmlns="http://www.topicmaps.org/xtm/1.0/"; attribute is a
mistake.
I'll redefine my problem.

I'm making a stylesheet for generate another stylesheet. I'm using Saxon
6.5.2.
I want to create a root element in the XML document final (generated by
the second stylesheet) with a
namespace xmlns:xlink="http://www.w3.org/1999/xlink"; like above:

<root xmlns:xlink="http://www.w3.org/1999/xlink";>

But, if I define in the "mother" stylesheet this

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
xmlns:axsl="http://www.w3.org/1999/XSL/TransformAlias";>
        <xsl:namespace-alias stylesheet-prefix="axsl"
result-prefix="xsl"/>
        <axsl:template match="/">
                <root xmlns:xlink="http://www.w3.org/1999/xlink";>
                        ...
                      <node>
                        <ref xlink:href="#products"/>
                      </node>
                        ...
                </root>
        </axsl:template>

the result XSL in "son" stylesheet is:

<axsl:stylesheet xmlns:axsl="http://www.w3.org/1999/XSL/Transform";
xmlns:xlink="http://www.w3.org/1999/xlink";
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0">

   <axsl:template match="/">
      <root>
                ...
              <node>
                        <ref xlink:href="#products"/>
              </node>
                ...
        </root>
   </axsl:template>

The namespace xmlns:xlink="http://www.w3.org/1999/xlink"; was retired of
"root" element and put in "stylesheet" element.
Why? 
So, the final XML document generated is:

<root>
        ...
      <node>
                <ref xlink:href="#products"/>
      </node>
        ...
</root>

How can I to generate this?

<root xmlns:xlink="http://www.w3.org/1999/xlink";>
        ...
      <node>
                <ref xlink:href="#products"/>
      </node>
        ...
</root>

Thanks in advance,

------------------------------------
Giovani Rubert Librelotto
Ph.D. Student
Universidade do Minho
Braga - Portugal
grl(_at_)di(_dot_)uminho(_dot_)pt



-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com 
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of 
Jeni Tennison
Sent: Tuesday, October 15, 2002 4:36 PM
To: Giovani Librelotto
Cc: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] Problem with XSL and Namespace


Hi Giovani,

the result XSL in stylesheet "son" is:

<xstm:stylesheet xmlns:axsl="http://www.w3.org/1999/XSL/Transform";
xmlns:xlink="http://www.w3.org/1999/xlink";
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0">

   <axsl:template match="/">
      <root xmlns="http://www.topicmaps.org/xtm/1.0/";>

And in the final XML document generated is:

<root>
  ..
</root>

If so, then your processor is buggy. Given the stylesheet 
that you have above, the <root> element that's generated in 
the output should have two namespace nodes on it, one for xlink
(http://www.w3.org/1999/xlink) and one for the default 
namespace (http://www.topicmaps.org/xtm/1.0/). In order to 
retain those nodes when serialized, it should look like:

<root xmlns="http://www.topicmaps.org/xtm/1.0";
      xmlns:xlink="http://www.w3.org/1999/xlink";>
  ...
</root>

Which processor are you using? If you simplified your example 
(which I guess you did, given that the prefix for the 
stylesheet element hasn't been declared), perhaps you can 
show us the actual 'son' stylesheet that you're using and we 
can see whether there's something in it that would cause the 
namespace nodes to disappear.

Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list






 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>