[ https://issues.apache.org/jira/browse/XALANJ-131?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mikael Ståldal closed XALANJ-131. --------------------------------- > Xalan doesn't work properly when the qName parameter in SAX2 is empty > --------------------------------------------------------------------- > > Key: XALANJ-131 > URL: https://issues.apache.org/jira/browse/XALANJ-131 > Project: XalanJ2 > Issue Type: Bug > Security Level: No security risk; visible to anyone(Ordinary problems in > Xalan projects. Anybody can view the issue.) > Components: Xalan > Affects Versions: 2.0.1 > Environment: Operating System: All > Platform: All > Reporter: Mikael Ståldal > > I'm using programatically generated SAX input to Xalan. Xalan doesn't > seem to work properly when the qName paramterer to the ContentHandler > methods is the empty string. I think that Xalan should work properly > even when the qName is not given. > Here is a test program and a stylesheet: > // DirTest.java > import java.io.*; > import org.xml.sax.*; > import org.xml.sax.helpers.AttributesImpl; > import javax.xml.transform.*; > import javax.xml.transform.Source; > import javax.xml.transform.sax.*; > import javax.xml.transform.stream.StreamSource; > import org.apache.xml.serialize.*; > public class DirTest > { > public static void main(String[] args) throws Exception > { > if (args.length < 3) > { > System.out.println("Syntax: DirTest <input_dir> <stylesheet> <output>"); > return; > } > String inDir = args[0]; > String xslFile = args[1]; > String outFile = args[2]; > TransformerFactory tf = TransformerFactory.newInstance(); > if (!(tf.getFeature(SAXTransformerFactory.FEATURE) > && tf.getFeature(SAXResult.FEATURE) > && tf.getFeature(StreamSource.FEATURE))) > { > System.out.println("The transformer factory " > + tf.getClass().getName() + " doesn't support SAX"); > return; > } > SAXTransformerFactory tfactory = (SAXTransformerFactory)tf; > System.out.println("Read stylesheet " + xslFile); > Templates stylesheet = tfactory.newTemplates(new StreamSource(xslFile)); > System.out.println("Transforming " + inDir + " to " + outFile); > XMLSerializer ser = new XMLSerializer( > new FileOutputStream(outFile), new OutputFormat()); > TransformerHandler th = tfactory.newTransformerHandler(stylesheet); > th.setResult(new SAXResult(ser.asContentHandler())); > generateDirListing(new File(inDir), th); > System.out.println("Finished"); > } > static void generateDirListing(File dir, ContentHandler sax) > throws SAXException > { > String[] files = dir.list(); > sax.startDocument(); > sax.startElement("", "dirlist", "", new AttributesImpl()); > // sax.startElement("", "dirlist", "dirlist", new AttributesImpl()); > for (int i = 0; i < files.length; i++) > { > File file = new File(dir, files[i]); > AttributesImpl atts = new AttributesImpl(); > atts.addAttribute("", "filename", "", "CDATA", files[i]); > // atts.addAttribute("", "filename", "filename", "CDATA", files[i]); > if (file.isFile()) > { > sax.startElement("", "file", "", atts); > // sax.startElement("", "file", "file", atts); > sax.endElement("", "file", ""); > // sax.endElement("", "file", "file"); > } > else if (file.isDirectory()) > { > sax.startElement("", "directory", "", atts); > // sax.startElement("", "directory", "directory", atts); > sax.endElement("", "directory", ""); > // sax.endElement("", "directory", "directory"); > } > else > ; > } > sax.endElement("", "dirlist", ""); > // sax.endElement("", "dirlist", "dirlist"); > sax.endDocument(); > } > } > <?xml version="1.0" encoding="iso-8859-1"?> > <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > version="1.0"> > <xsl:template match="/"> > Directory listing > </xsl:template> > <xsl:template match="file"> > <li><xsl:value-of select="@filename"/></li> > </xsl:template> > </xsl:stylesheet> -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@xalan.apache.org For additional commands, e-mail: dev-h...@xalan.apache.org