DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=25224>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=25224

XALAN fails rendering html including javascript

           Summary: XALAN fails rendering html including javascript
           Product: XalanJ2
           Version: 2.4Dx
          Platform: PC
        OS/Version: Windows NT/2K
            Status: NEW
          Severity: Minor
          Priority: Other
         Component: org.apache.xalan
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


XALAN fails rendering html including javascript:

java.lang.RuntimeException: java.lang.ArrayIndexOutOfBoundsException: Array 
index out of range: 7TransformerException: 

 at: file:///h:/PROJEKTE/Optimay/Sources/QMPROC~1/xml/Test.xsl 55

; SystemID: file:///h:/PROJEKTE/Optimay/Sources/QMPROC~1/xml/Test.xsl; Line#: 
55; Column#: 52

javax.xml.transform.TransformerException: 
java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 7

        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java:2329)

        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java:710)

        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java:2324)

        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java:710)

        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java:2324)

        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java:710)

        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java:2324)

        at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode
(TransformerImpl.java:2147)

        at org.apache.xalan.transformer.TransformerImpl.transformNode
(TransformerImpl.java:1203)

        at org.apache.xalan.transformer.TransformerImpl.transform
(TransformerImpl.java:665)

        at org.apache.xalan.transformer.TransformerImpl.transform
(TransformerImpl.java:1119)

        at org.apache.xalan.transformer.TransformerImpl.transform
(TransformerImpl.java:1097)

        at com.exln.stylus.CXalanDriver.doProcessing(CXalanDriver.java:150)

        at com.exln.stylus.CProcessorDriver.process(CProcessorDriver.java:55)

Caused by: java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 7

        at java.util.Vector.remove(Vector.java:796)

        at com.exln.stylus.CXalanDriver.traceEnd(CXalanDriver.java:518)

        at org.apache.xalan.trace.TraceManager.fireTraceEndEvent
(TraceManager.java:220)

        at org.apache.xalan.trace.TraceManager.fireTraceEndEvent
(TraceManager.java:197)

        at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes
(ElemApplyTemplates.java:441)

        at org.apache.xalan.templates.ElemApplyTemplates.execute
(ElemApplyTemplates.java:215)

        at org.apache.xalan.templates.ElemForEach.transformSelectedNodes
(ElemForEach.java:444)

        at org.apache.xalan.templates.ElemForEach.execute(ElemForEach.java:300)

        at org.apache.xalan.templates.ElemForEach.transformSelectedNodes
(ElemForEach.java:444)

        at org.apache.xalan.templates.ElemForEach.execute(ElemForEach.java:300)

        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java:2324)

        ... 13 more

---------

java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 7

        at java.util.Vector.remove(Vector.java:796)

        at com.exln.stylus.CXalanDriver.traceEnd(CXalanDriver.java:518)

        at org.apache.xalan.trace.TraceManager.fireTraceEndEvent
(TraceManager.java:220)

        at org.apache.xalan.trace.TraceManager.fireTraceEndEvent
(TraceManager.java:197)

        at org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes
(ElemApplyTemplates.java:441)

        at org.apache.xalan.templates.ElemApplyTemplates.execute
(ElemApplyTemplates.java:215)

        at org.apache.xalan.templates.ElemForEach.transformSelectedNodes
(ElemForEach.java:444)

        at org.apache.xalan.templates.ElemForEach.execute(ElemForEach.java:300)

        at org.apache.xalan.templates.ElemForEach.transformSelectedNodes
(ElemForEach.java:444)

        at org.apache.xalan.templates.ElemForEach.execute(ElemForEach.java:300)

        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java:2324)

        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java:710)

        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java:2324)

        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java:710)

        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java:2324)

        at org.apache.xalan.templates.ElemLiteralResult.execute
(ElemLiteralResult.java:710)

        at org.apache.xalan.transformer.TransformerImpl.executeChildTemplates
(TransformerImpl.java:2324)
 

        at org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode
(TransformerImpl.java:2147)

        at org.apache.xalan.transformer.TransformerImpl.transformNode
(TransformerImpl.java:1203)

        at org.apache.xalan.transformer.TransformerImpl.transform
(TransformerImpl.java:665)

        at org.apache.xalan.transformer.TransformerImpl.transform
(TransformerImpl.java:1119)

        at org.apache.xalan.transformer.TransformerImpl.transform
(TransformerImpl.java:1097)

        at com.exln.stylus.CXalanDriver.doProcessing(CXalanDriver.java:150)

        at com.exln.stylus.CProcessorDriver.process(CProcessorDriver.java:55)


*************** Workaround *************************
Use 

<xsl:template match="a:para" mode="JavaScript">
        <![CDATA[
        text += '<p>';
        ]]>
    <xsl:apply-templates mode="JavaScript"/>
    <![CDATA[
        text += '</p>';
        ]]>
</xsl:template>

instead of

<xsl:template match="a:para" mode="JavaScript">
     text += '<p>';
    <xsl:apply-templates mode="JavaScript"/>
    text += '</p>';
</xsl:template>

**************** Reproduce bug ************************
Use this xml file as input:
<?xml version="1.0" encoding="UTF-8"?>
<process xmlns="http://www.agere.com/qm/process";>
        <ios>
                <io name="Requirement docs" id="IO1">
                        <description>
                                <para>This IO...</para>
                        </description>
                </io>
        </ios>
</process>

Use this xsl stylesheet:

<?xml version='1.0' encoding='UTF-8'?> 
<xsl:stylesheet xmlns:a="http://www.agere.com/qm/process"; exclude-result-
prefixes="a b c" version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
xmlns:c="http://www.agere.com/qm/roadmap"; 
xmlns:b="http://www.w3.org/1999/xhtml";>
        <xsl:output method="html"/>
        <xsl:variable name="process" select="translate
(a:process/@name, ' ', '_')"/>
        <xsl:param name="coordspath" select="concat($process,'.xhtml')"/>
        <xsl:variable name="coords" select="document($coordspath)"/>
        <xsl:param name="legend" select="document('QMRoadmap.xml')"/>
        <xsl:variable name="this" select="/"/>
        <xsl:template match="/">
        <html><head>
                                <title><xsl:value-of select="concat('QM 
Process - ',a:process/@name)"/></title>
                                <meta name="description" content="???"/>
                                <meta name="keywords" content="qm, process, 
software,???"/>
                                <script type="text/javascript" 
src="javascript/popUp.js"/>
                                <script type="text/javascript" 
src="javascript/hashTable.js"/>
                                <script type="text/javascript" 
src="javascript/objectInfo.js"/>
                                <xsl:call-template name="head"/>
                                <xsl:call-template name="javascriptGetHref"/>
                                        <script type="text/javascript">
                                        <![CDATA[
                                        function showPopUp(object){
                                                try{
                                                        popUp(object);
                                                } catch(e){
                                                        if (debugging) throw e;
                                                        else 
window.status='Error in Javascript: ' + e + ' (' + e.description + ')';
                                                }
                                        }
                                        function finish() {
                                                try{
                                                        if (!(descWindow == 
null || descWindow.closed)){
                                                                descWindow.close
();
                                                        }
                                                } catch(e){
                                                        if (debugging) throw e;
                                                        else 
window.status='Error in Javascript: ' + e + ' (' + e.description + ')';
                                                }
                                        }
                                        ]]>
                                        try{
                                                        var objects = new 
Hashtable();
                                                        var text = null;
                                                        var link = null;

                                                        objects.clear();
                                                        var object = null;
                                                        var metric = null;
                                                        
                                                        object = new Legend
('Legend','QM Process');
                                                        text = new String()
                                                        <xsl:apply-templates 
mode="JavaScript" select="$legend/c:roadmap/c:legend"/>
                                                        object.setDesc(text);
                                                        objects.put
('Legend',object);

                                                        <xsl:for-each 
select="a:process/a:ios/a:io">
                                                                object = new IO(
                                                                
        '<xsl:value-of select="@id"/>',
                                                '<xsl:value-of 
select="@name"/>');
                                                                text = new 
String();
                                                                <xsl:for-each 
select="a:description">
                                                                
        <xsl:apply-templates mode="JavaScript"/>
                                                                </xsl:for-each>
                                                                object.setDesc
(text);
                                                                objects.put
('<xsl:value-of select="@id"/>', object);
                                                        </xsl:for-each>

                                                        <xsl:for-each 
select="a:process/a:activities/a:action">
                                                                object = new 
Action(
                                                                
        '<xsl:value-of select="@id"/>',
                                                '<xsl:value-of 
select="@name"/>');
                                                                text = new 
String();
                                                                <xsl:for-each 
select="a:description">
                                                                
        <xsl:apply-templates mode="JavaScript"/>
                                                                </xsl:for-each>
                                                                object.setDesc
(text);
                                                                <xsl:for-each 
select="a:means">
                                                                
        object.setMeans('<xsl:value-of select="."/>');
                                                                </xsl:for-each>
                                                                <xsl:for-each 
select="a:input">
                                                                
        <xsl:variable name="io" select="@io"/>
                                                                        text = 
new String();
                                                                
        <xsl:for-each select="a:description">
                                                                        
        <xsl:apply-templates mode="JavaScript"/>
                                                                
        </xsl:for-each>
                                                                
        object.addInput('<xsl:value-of select="@io"/>','<xsl:value-of 
select="/a:process/a:ios/a:[EMAIL PROTECTED]/@name"/>',text);
                                                                </xsl:for-each>
                                                                <xsl:for-each 
select="a:output">
                                                                
        <xsl:variable name="io" select="@io"/>
                                                                        text = 
new String();
                                                                
        <xsl:for-each select="a:description">
                                                                        
        <xsl:apply-templates mode="JavaScript"/>
                                                                
        </xsl:for-each>
                                                                
        object.addOutput('<xsl:value-of select="@io"/>','<xsl:value-of 
select="/a:process/a:ios/a:[EMAIL PROTECTED]/@name"/>',text);
                                                                </xsl:for-each>
                                                                <xsl:for-each 
select="a:responsibility">
                                                                
        object.addResp('<xsl:value-of select="@type"/>','<xsl:value-of 
select="@name"/>');
                                                                </xsl:for-each>
                                                                objects.put
('<xsl:value-of select="@id"/>', object);
                                                        </xsl:for-each>

                                                        <xsl:for-each 
select="a:process/a:activities/a:decision">
                                                                object = new 
Decision(
                                                                
        '<xsl:value-of select="@id"/>',
                                                                
        '<xsl:value-of select="@name"/>');
                                                                text = new 
String();
                                                                <xsl:for-each 
select="a:description">
                                                                
        <xsl:apply-templates mode="JavaScript"/>
                                                                </xsl:for-each>
                                                                object.setDesc
(text);
                                                                <xsl:for-each 
select="a:responsibility">
                                                                
        object.addResp('<xsl:value-of select="@type"/>','<xsl:value-of 
select="@name"/>');
                                                                </xsl:for-each>
                                                                objects.put
('<xsl:value-of select="@id"/>', object);
                                                        </xsl:for-each>

                                                        object = new Process(
                                                                'Details',
                                        '<xsl:value-of 
select="a:process/@name"/>');
                                                        text = new String();
                                                        <xsl:for-each 
select="a:description">
                                                                <xsl:apply-
templates mode="JavaScript"/>
                                                        </xsl:for-each>
                                                        object.setDesc(text);
                                                        object.setOwner
('<xsl:value-of select="a:process/@owner"/>');
                                                        text = new String();
                                                        <xsl:for-each 
select="a:process/a:compliance">
                                                                <xsl:apply-
templates mode="JavaScript"/>
                                                        </xsl:for-each>
                                                        object.setComp(text);
                                                        <xsl:for-each 
select="a:process/a:references/a:reference">
                                                                link = new 
String()
                                                                text = new 
String();
                                                                <xsl:for-each 
select="a:description">         
                                                                
        <xsl:apply-templates mode="JavaScript"/>
                                                                </xsl:for-each>
                                                                <xsl:for-each 
select="a:link">                
                                                                        link 
= '<xsl:value-of select="@name"/>';
                                                                </xsl:for-each>
                                                                object.addRef
('<xsl:value-of select="@id"/>',link,text);
                                                        </xsl:for-each>
                                                        <xsl:for-each 
select="a:process/a:records/a:record">
                                                                object.addRecord
('<xsl:value-of select="@id"/>','<xsl:value-of select="@period"/>','<xsl:value-
of select="@storage"/>');
                                                        </xsl:for-each>
                                                        <xsl:for-each 
select="a:process/a:definitions/a:definition">
                                                                text = new 
String();
                                                                <xsl:apply-
templates mode="JavaScript"/>
                                                                object.addDef
('<xsl:value-of select="@id"/>',text);
                                                        </xsl:for-each>
                                                        <xsl:for-each 
select="a:process/a:start/a:input">
                                                                <xsl:variable 
name="io" select="@io"/>
                                                                        text = 
new String();
                                                                
        <xsl:for-each select="a:description">
                                                                        
        <xsl:apply-templates mode="JavaScript"/>
                                                                
        </xsl:for-each>
                                                                
        object.addInput('<xsl:value-of select="@io"/>','<xsl:value-of 
select="/a:process/a:ios/a:[EMAIL PROTECTED]/@name"/>',text);
                                                        </xsl:for-each>
                                                        <xsl:for-each 
select="a:process/a:end/a:output">
                                                                
        <xsl:variable name="io" select="@io"/>
                                                                        text = 
new String();
                                                                
        <xsl:for-each select="a:description">
                                                                        
        <xsl:apply-templates mode="JavaScript"/>
                                                                
        </xsl:for-each>
                                                                
        object.addOutput('<xsl:value-of select="@io"/>','<xsl:value-of 
select="/a:process/a:ios/a:[EMAIL PROTECTED]/@name"/>',text);
                                                        </xsl:for-each>
                                                        objects.put('Details', 
object);

                                                        object = new Metrics(
                                                                'Metrics',
                                                                '<xsl:value-of 
select="a:process/@name"/>');
                                                        <xsl:for-each 
select="a:process/a:metrics/a:metric">
                                                                metric = new 
MetricInfo('<xsl:value-of select="@id"/>');
                                                                text = new 
String();
                                                                <xsl:for-each 
select="a:purpose">
                                                                
        <xsl:apply-templates mode="JavaScript"/>
                                                                </xsl:for-each>
                                                        
        metric.setPurpose(text);
                                                        
        metric.setDefinition('<xsl:value-of select="a:purpose/@definition"/>');
                                                                metric.setUnit
('<xsl:value-of select="a:purpose/@unit"/>');
                                                        
        metric.setDataResp('<xsl:value-of select="a:data/@responsible"/>');
                                                        
        metric.setDataFrequency('<xsl:value-of select="a:data/@frequency"/>');
                                                        
        metric.setTargetResp('<xsl:value-of select="a:target/@responsible"/>');
                                                        
        metric.setTargetFrequency('<xsl:value-of 
select="a:target/@frequency"/>');
                                                        
        metric.setTargetData('<xsl:value-of select="a:target/@basis"/>');
                                                        
        metric.setAnalysisResp('<xsl:value-of 
select="a:analysis/@responsible"/>');
                                                        
        metric.setAnalysisFrequency('<xsl:value-of 
select="a:analysis/@frequency"/>');
                                                        
        metric.setAnalysisMethod('<xsl:value-of select="a:analysis/@method"/>');
                                                        
        metric.setRecipients('<xsl:value-of select="@recipients"/>');
                                                                <xsl:for-each 
select="a:influences/a:influence">
                                                                
        metric.addInfluence('<xsl:value-of select="@process"/>');
                                                                </xsl:for-each>
                                                                text = new 
String();
                                                                <xsl:for-each 
select="a:remarks">
                                                                
        <xsl:apply-templates mode="JavaScript"/>
                                                                </xsl:for-each>
                                                        
        metric.setRemarks(text);
                                                                object.addMetric
(metric);
                                                        </xsl:for-each>
                                                        objects.put('Metrics', 
object);
                                                } catch(e){
                                                        if (debugging) throw e;
                                                        else 
window.status='Error in Javascript: ' + e + ' (' + e.description + ')';
                                                }
                                </script>
                        </head>
                <body onUnload="finish()">
                        <xsl:call-template name="header"/>
                        <table width="760" class="clsLayout">
                                <thead>
                                        <tr>
                                                <td class="clsHead1">
                                                        <script 
type="text/javascript">document.write('<a href="'+getHref('./')+'" 
class="clsHead1">QM Process</a>')</script>
                                                </td>
                                        </tr>
                                        <tr>
                                                <td class="clsHead2">
                                                        <h2>
                                                                <xsl:value-of 
select="a:process/@name"/>
                                                        </h2>
                                                </td>
                                        </tr>
                                </thead>
                                <tbody>
                                        <tr>
                                                <td>
                                                        <xsl:for-each 
select="a:process/a:purpose">
                                                                <xsl:apply-
templates/>
                                                        </xsl:for-each>
                                                </td>
                                        </tr>
                                        <tr>
                                                <td class="clsLinkbar">[
                                                        <xsl:text disable-
output-escaping="yes">&amp;nbsp;</xsl:text>
                                                        <a><xsl:attribute 
name="href">javascript:showPopUp('Details')</xsl:attribute>details</a>
                                                        <xsl:text disable-
output-escaping="yes">&amp;nbsp;</xsl:text>]
                                                        <xsl:text disable-
output-escaping="yes">&amp;nbsp;</xsl:text>
                                                        <xsl:text disable-
output-escaping="yes">&amp;nbsp;</xsl:text>[
                                                        <xsl:text disable-
output-escaping="yes">&amp;nbsp;</xsl:text>
                                                        <a><xsl:attribute 
name="href">javascript:showPopUp('Metrics')</xsl:attribute>metrics</a>
                                                        <xsl:text disable-
output-escaping="yes">&amp;nbsp;</xsl:text>]
                                                        <xsl:text disable-
output-escaping="yes">&amp;nbsp;</xsl:text>
                                                        <xsl:text disable-
output-escaping="yes">&amp;nbsp;</xsl:text>[
                                                        <xsl:text disable-
output-escaping="yes">&amp;nbsp;</xsl:text>
                                                        <a><xsl:attribute 
name="href">javascript:showPopUp('Legend')</xsl:attribute>legend</a>
                                                        <xsl:text disable-
output-escaping="yes">&amp;nbsp;</xsl:text>]
                                                        <xsl:text disable-
output-escaping="yes">&amp;nbsp;</xsl:text>
                                                        <xsl:text disable-
output-escaping="yes">&amp;nbsp;</xsl:text>[
                                                        <xsl:text disable-
output-escaping="yes">&amp;nbsp;</xsl:text>
                                                        <a target="_blank" 
href="Matrix-Web-Publishing???">download</a>
                                                        <xsl:text disable-
output-escaping="yes">&amp;nbsp;</xsl:text>
                                                        <a target="_blank" 
href="Matrix-Web-Publishing???">
                                                                <img 
align="middle" src="../images/pdf.gif" border="0"/>
                                                        </a>
                                                        <xsl:text disable-
output-escaping="yes">&amp;nbsp;</xsl:text>] 
                                                </td>
                                        </tr>
                                        <tr>
                                                <td class="clsMap">
                                                        <map name="navmap" 
id="navmap">
                                                                <script 
type="text/javascript">
                                                                <xsl:for-each 
select="$coords//[EMAIL PROTECTED]">
                                                                
        <xsl:variable name="href" select="@href"/>
                                                                
        document.write('<area title="click here for details">
                                                                        
        <xsl:attribute name="coords">
                                                                                
        <xsl:value-of select="@coords"/>
                                                                        
        </xsl:attribute>
                                                                        
        <xsl:choose>
                                                                                
        <xsl:when test="count($this/a:process/a:activities/a:subprocess
[EMAIL PROTECTED])>0">
                                                                                
                <xsl:attribute name="href">'+getHref('<xsl:value-of 
select="concat(translate($this/a:process/a:activities/a:subprocess
[EMAIL PROTECTED]/@name,' ','_'),'.html')"/>')+'</xsl:attribute>
                                                                                
                <xsl:attribute name="target">_self</xsl:attribute>
                                                                                
        </xsl:when>
                                                                                
        <xsl:otherwise>                 
                                                                                
                <xsl:attribute name="href">javascript:showPopUp(\'<xsl:value-of 
select="$href"/>\')</xsl:attribute>
                                                                                
        </xsl:otherwise>
                                                                        
        </xsl:choose>
                                                                        
        <xsl:attribute name="shape">
                                                                                
        <xsl:value-of select="@shape"/>
                                                                        
        </xsl:attribute></area>');
                                                                </xsl:for-each>
                                                                </script>
                                                        </map>
                                                        <img useMap="#navmap" 
border="0">
                                                                
        <xsl:attribute name="alt">
                                                                        
        <xsl:value-of select="a:process/@name"/>
                                                                
        </xsl:attribute>
                                                                
        <xsl:attribute name="src">
                                                                        
        <xsl:value-of select="concat('images/', $process, '.gif')"/>
                                                                
        </xsl:attribute>
                                                                
        <xsl:attribute name="title">
                                                                        
        <xsl:value-of select="a:process/@name"/>
                                                                
        </xsl:attribute></img>
                                                </td>
                                        </tr>
                                </tbody>
                        </table>
                        <xsl:call-template name="footer"/>
                </body>
        </html>
</xsl:template>
<xsl:template name="head">
                                <meta http-equiv="Content-Script-Type" 
content="text/javascript"/>
                                <link rel="stylesheet" type="text/css" 
href="/webstandards/style/styleStandard.css"/>
                                <link rel="stylesheet" type="text/css" 
href="../style/styleStandard.css"/>
                                <script type="text/javascript">
                                        <![CDATA[
                                        var debugging = false;
                                        if (debugging) alert("Debugging mode is 
enabled. Please set 'debugging' to false.");
                                        ]]>
                                </script>
</xsl:template>
<xsl:template name="javascriptGetHref">
                                <script type="text/javascript">
                                        <![CDATA[
                                        function getHref(href){
                                                try{
                                                        href += location.search;
                                                        return href;
                                                } catch(e){
                                                        if (debugging) throw e;
                                                        else {
                                                        
        window.status='Error in Javascript: ' + e + ' (' + e.description + ')';
                                                                return href;
                                                        }
                                                }
                                        }
                                        ]]>
                                        </script>
</xsl:template>
<xsl:template name="header">
        <xsl:text disable-output-escaping="yes"><![CDATA[<!--#include 
virtual="/webstandards/header1.inc"-->]]></xsl:text>
</xsl:template>
<xsl:template name="footer">
                        <xsl:text disable-output-escaping="yes"><![CDATA[<!--
#config timefmt="%d-%b-%Y %H:%M:%S"-->]]></xsl:text>
                        <script src="../javascript/footer.js" 
type="text/javascript"/>
                        <script type="text/javascript">date='<xsl:text disable-
output-escaping="yes"><![CDATA[<!--#echo var="LAST_MODIFIED"-->]]
></xsl:text>';</script>
                        <script src="../javascript/local_footer.js" 
type="text/javascript"/><xsl:text disable-output-escaping="yes"><![CDATA[<!--
#include virtual="/webstandards/footer.inc"-->]]></xsl:text>
</xsl:template>
<xsl:template match="a:para" mode="JavaScript">
        text += '<p>';
    <xsl:apply-templates mode="JavaScript"/>
        text += '</p>';
</xsl:template>
<xsl:template match="a:list" mode="JavaScript">
        <![CDATA[
        text += '<ul>';
        ]]>
    <xsl:apply-templates mode="JavaScript"/>
        <![CDATA[
        text += '</ul>';
        ]]>
</xsl:template>
<xsl:template match="a:listelement" mode="JavaScript">
        <![CDATA[
        text += '<li>';
        ]]>
    <xsl:apply-templates mode="JavaScript"/>
        <![CDATA[
        text += '</li>';
        ]]>
</xsl:template>
<xsl:template match="a:bold" mode="JavaScript">
        <![CDATA[
        text += '<b>';
        ]]>
    <xsl:apply-templates mode="JavaScript"/>
        <![CDATA[
        text += '</b>';
        ]]>
</xsl:template>
<xsl:template match="a:italic" mode="JavaScript">
        <![CDATA[
        text += '<i>';
        ]]>
    <xsl:apply-templates mode="JavaScript"/>
        <![CDATA[
        text += '</i>';
        ]]>
</xsl:template>
<xsl:template match="text()" mode="JavaScript">
        <xsl:if test="substring(.,1,1)=' '">
                text +=' ';
        </xsl:if>
        text += '<xsl:value-of select="normalize-space(.)"/>';
        <xsl:if test="substring(.,string-length(.),string-length(.))=' '">
                text +=' ';
        </xsl:if>
</xsl:template>

<xsl:template match="a:para">
        <p>
        <xsl:apply-templates/>
    </p>
</xsl:template>
<xsl:template match="a:list">
        <ul>
        <xsl:apply-templates/>
    </ul>
</xsl:template>
<xsl:template match="a:listelement">
        <li>
        <xsl:apply-templates/>
    </li>
</xsl:template>
<xsl:template match="a:bold">
        <b>
        <xsl:apply-templates/>
    </b>
</xsl:template>
<xsl:template match="a:italic">
        <i>
        <xsl:apply-templates/>
    </i>
</xsl:template>
<xsl:template match="text()">
        <xsl:if test="substring(.,1,1)=' '">
                <xsl:text disable-output-escaping="yes"><![CDATA[&nbsp;]]
></xsl:text>
        </xsl:if>
        <xsl:value-of select="normalize-space(.)"/>
        <xsl:if test="substring(.,string-length(.),string-length(.))=' '">
                <xsl:text disable-output-escaping="yes"><![CDATA[&nbsp;]]
></xsl:text>
        </xsl:if>
</xsl:template>
</xsl:stylesheet>

Reply via email to