I recently switched from a standalone FOP app to the servlet.  The code
compiles fine, but any lines that use SAX throw a transformer exception.
For example. the following line

            driver.render(input.getParser(), input.getInputSource());

throws a NPE (input is "XSLTInputHandler input = new XSLTInputHandler(new
File(xmlParam), new File(xslParam));").

I changed the code using some examples from this list, but again, any time
I use SAX, it does not work.  I have tried the following with no luck:

transformer.transform(fileSource, new SAXResult(driver.getContentHandler()
));
throws a NPE

transformer.transform( new DOMSource( inputDoc ), new
SAXResult(driver.getContentHandler() ));
throws a transform exception with "The markup in the document preceding the
root element must be well-formed"

transformer.transform( new SAXSource( new InputSource ( new StringReader (
xml ) ) ), new SAXResult(driver.getContentHandler() ));
throws a transform exception with "The markup in the document preceding the
root element must be well-formed.; Line#: 1; Column#: 1"

transformer.transform(fileSource,streamResult);
**this works**

I tried changing the transformer factory from the following seemingly
working line:

Transformer transformer = transformerFactory.newTransformer(new
javax.xml.transform.stream.StreamSource(xsl));

to

Transformer transformer = transformerFactory.newTransformer(new
javax.xml.transform.sax.SAXSource( new InputSource ( new StringReader ( xsl
) ) ));
but this now throws a transform exception with "The markup in the document
preceding the root element must be well-formed"

The code is currently working with:

XSLTransform.transform(xml, xsl, writer);

but I really need the speed and efficiency increase of SAX.

This led me to believe that me XSL was bad, but it looks OK to me:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet [
<!ENTITY nl "&#xd;&#xa;">
<!ENTITY nbsp "&#160;">
]>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
xmlns:fo="http://www.w3.org/1999/XSL/Format";>
<xsl:output method="xml" indent="yes" encoding="utf-8"/>
...

The XSL file also looks OK.  I read some posts that their was a fix for
nulls outside of the root causing a NPE, but I think it was fixed in
0.20.2.  Is this not the case?

Also, I don't explicitly include the sax jar file - do I need to?  I'm
using xalan 2.0.0 and xerces 1.2.3.

Thanks for any help - this is driving me nuts.

-Lou



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

Reply via email to