Subject: Re: [xsl] Identity transform (case conversion) From: George Cristian Bina <george@xxxxxxxxxxxxx> Date: Sat, 08 Jul 2006 16:46:15 +0300 |
The XML namespace is http://www.w3.org/XML/1998/namespace ------------------^^^ and not http://www.w3.org/xml/1998/namespace ------------------^^^ This should answer your first question.
Best Regards, George --------------------------------------------------------------------- George Cristian Bina <oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger http://www.oxygenxml.com
Thanks Mike for the clarification. I have 2 more questions..
1st question:
You earlier gave suggestion, that comparing the namespace-uri() instead of name() will make the stylesheet (George's code) compatible with both Saxon and MSXML. (for supressing the namespace xmlns:xml="http://www.w3.org/xml/1998/namespace" in output)
The relevant portion of code is (please see the code that George posted):
<xsl:for-each select="current()//namespace::*[not(.=$currentNamepsace) and not(name()='xml')]"> <xsl:attribute name="{translate(name(), $small, $caps)}:dummy{position()}" namespace="{translate(., $small, $caps)}"></xsl:attribute> </xsl:for-each>
I changed this to:
<xsl:for-each select="current()//namespace::*[not(starts-with(.,'http://www.w3.org'))]">
<xsl:attribute name="{translate(name(), $small,
$caps)}:dummy{position()}" namespace="{translate(., $small,
$caps)}"></xsl:attribute>
</xsl:for-each>
This works..
But following doesn't work (the namespace http://www.w3.org/xml/1998/namespace is getting generated in the output):
<xsl:for-each select="current()//namespace::*[not(. = 'http://www.w3.org/xml/1998/namespace')]">
(Please note the namespace uri comparison I am doing). What is wrong with the string comparison here?
I am using Saxon 8.7.3.
2nd question:
Why at all the namespace, http://www.w3.org/xml/1998/namespace is part of node-set namespace::*. I am not sure, but does it relate to the XML Namespaces spec? (you hinted this in your previous answers)
Regards, Mukul
On 7/8/06, Michael Kay <mike@xxxxxxxxxxxx> wrote:> Can you please clarify whether this is a bug with Xalan-J 2.7.0: > > This instruction is not generating the namespaces in the > output <xsl:copy-of select="current()//namespace::*" /> >
It looks like a non-conformance to me: Erratum E25 at
http://www.w3.org/1999/11/REC-xslt-19991116-errata/ specifies the behaviour
of xsl:copy and xsl:copy-of when applied to namespace nodes.
Michael Kay http://www.saxonica.com/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Identity transform (case , Mukul Gandhi | Thread | Re: [xsl] Identity transform (case , Mukul Gandhi |
Re: [xsl] Identity transform (case , Mukul Gandhi | Date | Re: [xsl] Identity transform (case , Dimitre Novatchev |
Month |