A little more info on this. If I go ahead and prepend a prefix on to all the raw parameters (e.g. html:tr) before sending them off to super.startElement, then I don't get the exception. However, then the browser doesn't render the elements correctly as they show up as html:tr.
Ultimately, breaking this down as simple as possible, if I call super.startElement from my transformer's endElement function and I don't put a prefix on the "raw" parameter, I get the exception. Note that calling super.startElement with a non-prefixed "raw parameter from my startElement function works fine. On Thursday, July 23, 2009, at 01:32PM, "Jeff Schmitz" <jeffandmon...@mac.com> wrote: >Hello, > I've created my own AbstractSAXTransformer that works for the most part. > However, I've recently added code to switch to a "buffering" mode when it > sees a special Element (sspBuffer) in the startElement function. In > buffering mode, it waits until it sees the special element's matching > endElement call before it issues both the super.startElement and > super.endElement calls for all elements between the special element. Any > page that doesn't have the special tag I'm looking for is fine, however > anytime I process a page with the special tag (and the code switches to > "buffering" mode), I get the below exception on the call to super.endDocument > (not on the call the startElement or endElement). I added debug code to see > exactly what I was using in the startElement call, both when in the special > "buffer" mode and in normal mode, and I see no difference in what ultimately > is sent to super.startElement, both are providing non-prefixed labels for the > qname (raw). Here's the output for a simple html table, where buffering mode > is switched into for the output of one empty row: > >input: ><table> > <th></th> > <ssp:Buffer> > <tr></tr> > </ssp:Buffer> ></table> > >Debug output: >Calling startElement with uri = loc=table raw=table >Calling startElement with uri = loc=th raw=th >Calling endElement with uri = loc=th raw=th > -------------------SWITCHED TO BUFFERINGMODE >Calling startElement with uri = loc=tr raw=tr >Calling endElement with uri = loc=tr raw=tr > -----------------DONE WITH BUFFERING MODE >Calling endElement with uri = loc=table raw=table > >I'm really banging my head on this, so any help would be greatly appreciated. > >Thanks, >Jeff (see exception below) > > > >org.xml.sax.SAXException: Saxon requires an XML parser that reports the QName >of each element > at > net.sf.saxon.event.ReceivingContentHandler.getNameCode(ReceivingContentHandler.java:391) > at > net.sf.saxon.event.ReceivingContentHandler.startElement(ReceivingContentHandler.java:277) > at > org.apache.cocoon.xml.AbstractXMLPipe.startElement(AbstractXMLPipe.java:95) > at > org.apache.xml.serializer.ToXMLSAXHandler.closeStartTag(ToXMLSAXHandler.java:206) > at > org.apache.xml.serializer.ToSAXHandler.flushPending(ToSAXHandler.java:279) > at > org.apache.xml.serializer.ToXMLSAXHandler.endElement(ToXMLSAXHandler.java:245) > at org.apache.xml.dtm.ref.DTMTreeWalker.endNode(DTMTreeWalker.java:375) > at > org.apache.xalan.transformer.TreeWalker2Result.endNode(TreeWalker2Result.java:87) > at org.apache.xml.dtm.ref.DTMTreeWalker.traverse(DTMTreeWalker.java:118) > at > org.apache.xalan.transformer.TreeWalker2Result.traverse(TreeWalker2Result.java:74) > at org.apache.xalan.templates.ElemCopyOf.execute(ElemCopyOf.java:186) > at > org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApplyTemplates.java:395) > at > org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.java:178) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2400) > at > org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2400) > at > org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2400) > at > org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2400) > at > org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2400) > at > org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2400) > at > org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2400) > at > org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:1376) > at > org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(TransformerImpl.java:2400) > at > org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(TransformerImpl.java:2270) > at > org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.java:1356) > at > org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:3447) > at > org.apache.xalan.transformer.TransformerHandlerImpl.endDocument(TransformerHandlerImpl.java:408) > at > org.apache.cocoon.xml.AbstractXMLPipe.endDocument(AbstractXMLPipe.java:56) > at > org.apache.cocoon.transformation.TraxTransformer.endDocument(TraxTransformer.java:586) > at > org.apache.cocoon.xml.AbstractXMLPipe.endDocument(AbstractXMLPipe.java:56) > at > org.apache.cocoon.transformation.AbstractSAXTransformer.endDocument(AbstractSAXTransformer.java:381) > > >--------------------------------------------------------------------- >To unsubscribe, e-mail: users-unsubscr...@cocoon.apache.org >For additional commands, e-mail: users-h...@cocoon.apache.org > > > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@cocoon.apache.org For additional commands, e-mail: users-h...@cocoon.apache.org