Xalan 2.6 with pipedocument swallows xsl:attribute
--------------------------------------------------

         Key: XALANJ-2005
         URL: http://nagoya.apache.org/jira/browse/XALANJ-2005
     Project: XalanJ2
        Type: Bug
  Components: Xalan-extensions  
    Versions: 2.6    
 Environment: Windows 2000
    Reporter: Remiu Wremlokov
    Priority: Critical


While sending an XML input document through several XSL transformations and 
stylesheets with the pipeDocument extension, <xsl:attribute> is only preserved 
to the output when added at the last in the row of the stylesheets. Otherwise 
<xsl:attribute> is ignored.


file "input.xml"

<root>
    <a>
        <b>b-text</b>
        <c>c-text</c>
        <d>d-text</d>
    </a>

    <a>
        <b>b-text</b>
        <c>c-text</c>
        <d>d-text</d>
    </a>
</root>



file "pipe.xsl"

<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                xmlns:pipe="http://xml.apache.org/xalan/PipeDocument";
                extension-element-prefixes="pipe">

<xsl:param name="source"/>
<xsl:param name="target"/>

<xsl:template match="/">
  <pipe:pipeDocument source="{$source}"  target="{$target}">
    <stylesheet href="first.xsl"/>
    <stylesheet href="second.xsl"/>
    <stylesheet href="third.xsl"/>
  </pipe:pipeDocument>
 
</xsl:template>
</xsl:stylesheet>



"first.xsl"

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0">
  <xsl:template match="/ | @* | node()">
    <xsl:copy>
      <xsl:apply-templates />
    </xsl:copy>
  </xsl:template>
  <xsl:template match="b">
    <xsl:copy>
      <xsl:attribute name="attr-first">1</xsl:attribute>
      <xsl:element name="b-first">b-first-text</xsl:element>
      <xsl:apply-templates />
    </xsl:copy>
  </xsl:template>
</xsl:stylesheet>  


file "second.xsl"

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0">
  <xsl:template match="/ | @* | node()">
    <xsl:copy>
      <xsl:apply-templates />
    </xsl:copy>
  </xsl:template>
  <xsl:template match="c">
    <xsl:copy>
      <xsl:attribute name="attr-second">2</xsl:attribute>
      <xsl:element name="c-second">c-second-text</xsl:element>
      <xsl:apply-templates />
    </xsl:copy>
  </xsl:template>
</xsl:stylesheet>  


file "third.xsl"

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0">
  <xsl:template match="/ | @* | node()">
    <xsl:copy>
      <xsl:apply-templates />
    </xsl:copy>
  </xsl:template>
  <xsl:template match="d">
    <xsl:copy>
      <xsl:attribute name="attr-third">3</xsl:attribute>
      <xsl:element name="d-third">d-third-text</xsl:element>
      <xsl:apply-templates />
    </xsl:copy>
  </xsl:template>
</xsl:stylesheet>  



command line start:

set 
classpath=C:\c\projekte\xalan-xslt\lib\xalan.jar;C:\c\projekte\xalan-xslt\lib\bsf.jar
%JAVA_HOME%\bin\java -cp "%classpath%" org.apache.xalan.xslt.Process  -in 
input.xml -xsl pipe.xsl -param source input.xml -param target output.xml



output file "output.xml".

the additional elements c-first and d-second are expected as operating result 
of first.xsl and second.xsl. But only third.xsl's additional attribute is 
preserved. The added attributes of first.xsl and second.xsl have disappeared. 

Remark: The same happens, if the pipe is shortened and third.xsl removed. Then 
only second.xsl's created attribute appears.


<?xml version="1.0" encoding="UTF-8"?>
<root>
    <a>
        <b><b-first>b-first-text</b-first>b-text</b>
        <c><c-second>c-second-text</c-second>c-text</c>
        <d attr-third="3"><d-third>d-third-text</d-third>d-text</d>
    </a>

    <a>
        <b><b-first>b-first-text</b-first>b-text</b>
        <c><c-second>c-second-text</c-second>c-text</c>
        <d attr-third="3"><d-third>d-third-text</d-third>d-text</d>
    </a>
</root>

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://nagoya.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to