Can you send us the stack trace when the exception occurs?
Gary
Bill Gates wrote:
>
> I'm getting a weird behavior using Xalan 2.0.1 and the transform
> method. I'm not sure if it's just my lack of understanding of what's
> happening or a real issue. I presumed that this would work.
>
> (This isn't the exact code because it's spread out but a best display of
> the snippets I'm using with Xalan.)
>
> I have a ControlledParser class which is essentially a subclass of
> DomParser with the setDeferred expansion to false by default. This is
> the behavior we need.
>
> I get an instance of the parser and call
> parser.parse(new InputSource(new StringReader(xmlString)));
> Then I get a DOMSource with new DOMSource(parser.getDocument())
>
> I get my xml source and xsl source the same way. Then I do the basics:
>
> DOMResult domResult = new DOMResult();
> TransformerFactory factory = TransformerFactory.newInstance();
> Transformer transformer = factory.newTransformer(xslSource);
> transformer.transform(xmlSource, domResult);
>
> This all seems pretty rudimentary to me. It seems to work until the
> point where I have an xmlSource file of greater than 76K (roughly).
> Then I start getting the String index out of range errors during the
> transform call.
>
> I can fix this by instead doing:
>
> DocumentBuilderFactory factory =
> DocumentBuilderFactory.newInstance();
> factory.setNamespaceAware(true);
> DocumentBuilder builder = factory.newDocumentBuilder();
> Document xmlDoc = builder.parse(new InputSource(
> new StringReader(xml)));
> DOMSource xmlSource = new DOMSource(xmlDoc);
>
> To get the xmlSource and then doing the same transform but I'm not sure
> why that is. Could somebody explain to me the difference? I would have
> though that I could pass any DOMSource to the transform and it would
> work but that doesn't seem to be the case. It's apparent to me I'm
> missing something basic.
>
> Thanks,
> g888