[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[Recent Entries]
[Reply To This Message]
Re: Why do the namespace appears in transformation ?
Subject: Re: Why do the namespace appears in transformation ?
From: Michael Kay <mike@xxxxxxxxxxxx>
Date: Fri, 20 Aug 2010 09:13:56 +0100
|
You could get rid of the declaration by outputting a wrapper element
such as xsl:stylesheet. But if you actually want the xsl:template
elements to be at the top level, then the XSLT processor will always
ensure that the "xsl" prefix is properly declared - the output must be
well formed.
Michael Kay
Saxonica
On 20/08/2010 07:53, Fabien Tillier wrote:
Hi List.
I am trying to generate an XSL template from an XML file that describes
some filters.
So, basically, I get
<Results>
<Row>
<MTF_NUMERO_TABLEAU>2</MTF_NUMERO_TABLEAU>
<TA_TITRE_A>Titre 1</TA_TITRE_A>
</Row>
<Row>
<MTF_NUMERO_TABLEAU>3</MTF_NUMERO_TABLEAU>
<TA_TITRE_A>Titre 2</TA_TITRE_A>
</Row>
</Results>
I am parsing it with (not finished, of course)
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
exclude-result-prefixes="xsl"
xmlns:xso="dummy"
>
<xsl:output method = "xml" encoding="UTF-8"/>
<!-- When transforming, all xso namespace elements will become xsl -->
<xsl:namespace-alias stylesheet-prefix="xso" result-prefix="xsl"/>
<xsl:template match="/Results">
<xsl:for-each-group select="Row" group-by="MTF_NUMERO_TABLEAU">
<xsl:variable name="numtableau">
<xsl:value-of select="current-grouping-key()"/>
</xsl:variable>
<xso:template match="node()[(MTF_NUMERO_TABLEAU =
'{$numtableau}')]">
<!--Do something-->
</xso:template>
<xsl:value-of select="current-grouping-key()"/>,
</xsl:for-each-group>
</xsl:template>
<xsl:template match="Row">
</xsl:template>
</xsl:stylesheet>
The output (with Kernow) is
<?xml version="1.0" encoding="UTF-8"?>
<xsl:template xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
match="node()[(MTF_NUMERO_TABLEAU = '2')]"/>2,
<xsl:template xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
match="node()[(MTF_NUMERO_TABLEAU = '3')]"/>3
Which is almost what I want....
But, how can I get rid of the xmlns declaration in each<xsl:template
section ?
(So that to get
<?xml version="1.0" encoding="UTF-8"?>
<xsl:template match="node()[(MTF_NUMERO_TABLEAU = '2')]"/>2,
<xsl:template match="node()[(MTF_NUMERO_TABLEAU = '3')]"/>3
)
Thanks in advance
Regards,
Fabien
|
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format
RSS 2.0 |
|
Atom 0.3 |
|
|