xsl-list
[Top] [All Lists]

RE: [xsl] Namespace issue when running a Xalan transform through Java

2010-08-27 02:47:33
Martin et al

The extra namespace declarations all appear in elements that are in a
different namespace in the source, but which need to end up in the
namespace www.logica.com/project and are transformed by the following
extract of a stylesheet:

<xsl:template match="*" mode="copy">
                        <xsl:variable name="element-name"
select="local-name()"></xsl:variable>
                        <xsl:choose>
                                <xsl:when test="contains($element-name,
'List')">
                                        <xsl:call-template
name="process-lists"></xsl:call-template>
                                </xsl:when>
                                <xsl:otherwise>
                                        <xsl:element
name="{local-name()}" namespace="http://www.logica.com/project";>
                                        <xsl:apply-templates
mode="copy"></xsl:apply-templates>
                                        </xsl:element>
                                </xsl:otherwise>
                        </xsl:choose>
        
</xsl:template>

        
<xsl:template name="process-lists">     
        <xsl:variable name="element-name"
select="local-name()"></xsl:variable>   
        <xsl:element name="{$element-name}"
namespace="http://www.logica.com/pnd";><xsl:value-of
select="./dip:N"/></xsl:element>        
        <xsl:variable name="local-element-val"><xsl:value-of
select="$element-name"/><xsl:text>LocalVal</xsl:text></xsl:variable>    
        <xsl:element name="{$local-element-val}"
namespace="http://www.logica.com/project";><xsl:value-of
select="./dip:NP"/></xsl:element>               
</xsl:template>

The namespace addition to the <xsl:element> processing is not reproduced
by XSLTProc or Xalan via the command line, only in the default javax
implementation.


Kind regards
Stephen

-----Original Message-----
From: Martin Honnen [mailto:Martin(_dot_)Honnen(_at_)gmx(_dot_)de] 
Sent: 26 August 2010 17:25
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] Namespace issue when running a Xalan transform
through Java

Etheridge, Stephen wrote:

The XSL and XML are very large and on a separate network so I would
have
some trouble supplying even minimal versions.

However the XML is of the form:

<RecordBatch>
      <BatchHeader/>
      <RecordMessage>
              <RecordHeader/>
              <Record/>
      </RecordMessage>
</RecordBatch>

The namespaces are all appearing in the child elements of <Record>

Sorry, but to tell you whether the issue is with the stylesheet or with 
the XSLT processor you use we need to see XSLT code.
Or, as already suggested, run a different Java XSLT processor (Saxon 
implements the JAXP interfaces) to compare the results.

-- 

        Martin Honnen
        http://msmvps.com/blogs/martin_honnen/

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



Please help Logica to respect the environment by not printing this email  / 
Pour contribuer comme Logica au respect de l'environnement, merci de ne pas 
imprimer ce mail /  Bitte drucken Sie diese Nachricht nicht aus und helfen Sie 
so Logica dabei, die Umwelt zu schützen. /  Por favor ajude a Logica a 
respeitar o ambiente nao imprimindo este correio electronico.



This e-mail and any attachment is for authorised use by the intended 
recipient(s) only. It may contain proprietary material, confidential 
information and/or be subject to legal privilege. It should not be copied, 
disclosed to, retained or used by, any other party. If you are not an intended 
recipient then please promptly delete this e-mail and any attachment and all 
copies and inform the sender. Thank you.



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--