You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xalan.apache.org by bu...@apache.org on 2003/09/29 15:08:09 UTC

DO NOT REPLY [Bug 23484] New: - XML with default namespace wrongly processed

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=23484>.
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=23484

XML with default namespace wrongly processed

           Summary: XML with default namespace wrongly processed
           Product: XalanJ2
           Version: 2.5
          Platform: Macintosh
        OS/Version: MacOS X
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: org.apache.xalan.transformer
        AssignedTo: xalan-dev@xml.apache.org
        ReportedBy: miguel.covas@bancoval.es


A document such as:
<html>
<head>
<title>HTML to PDF</title>
</head>
<body>
<p>This paragraph to be found (and skipped) by my
stylesheet...
</p>
</body>
</html>

processed with 
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

  <xsl:template match="/">
    Start tranforming...
        <xsl:apply-templates/>
  </xsl:template>

  <xsl:template match="body">
        body...
        <xsl:apply-templates/>
  </xsl:template>

  <xsl:template match="p">
    p found...
  </xsl:template>


</xsl:stylesheet>

will produce:

java.lang.ClassNotFoundException: org/apache/xml/dtm/ref/IncrementalSAXSource_Xerces
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:140)
        at org.apache.xml.dtm.ref.DTMManagerDefault.getDTM(DTMManagerDefault.java:269)
        at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:630)
        at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1088)
        at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1066)
        at org.apache.xalan.xslt.Process.main(Process.java:865)
<?xml version="1.0" encoding="UTF-8"?>

    Start tranforming...


HTML to PDF


        body...


    p found...

However, if we add a default namespace to the html tag (Which in my site it is likely to
happen) we get:

java.lang.ClassNotFoundException: org/apache/xml/dtm/ref/IncrementalSAXSource_Xerces
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:140)
        at org.apache.xml.dtm.ref.DTMManagerDefault.getDTM(DTMManagerDefault.java:269)
        at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:630)
        at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1088)
        at org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:1066)
        at org.apache.xalan.xslt.Process.main(Process.java:865)
<?xml version="1.0" encoding="UTF-8"?>

    Start tranforming...


HTML to PDF


This paragraph to be found by some
stylesheet...

Which is not the intended thing...

I use this small script:
sh-2.05a$ more xalan.sh 
#!/bin/sh
infile=$1
xslfile=$2
outfile=$3

if [ "$outfile" != "" ]
then
        OUT="-OUT $outfile"
fi

CPATH=bin/xalan.jar:bin/xml-apis.jar:bin/xercesImpl.jar:$CLASSPATH

java -classpath $CPATH org.apache.xalan.xslt.Process -IN $infile -XSL $xslfile $
OUT

exit 0