Steven, first: we'd like to thank you for your help :)
Second: we've tried to use your suggestion... to no avail :( Here's the failing code: InputSource source= new InputSource(new StringReader(svgs)); XercesParser respParser; respParser= new XercesParser(); ChartXMLConsumer cons= new ChartXMLConsumer((AbstractSAXTransformer)(this)); respParser.setConsumer(cons); respParser.parse(source); It fails at the last statement with the dreaded "null pointer exc.". The parser we're using is an org.apache.cocoon.components.parser.XercesParser, while the ChartXMLConsumer is subclass of an org.apache.cocoon.xml.AbstractXMLConsumer, with suitable methods added. We think your idea is to trap some SAX events in the AbstractXMLConsumer subclass, and pass them along to the Transfomer class; while some SAX events, like StartDocument/EndDocument aren't passed along. Well, we've done that, but it fails before even passing a single SAX event to the transformer... any guess ? Best regards, P.S. Here's the AbstractXMLConsumer subclass code: public class ChartXMLConsumer extends AbstractXMLConsumer { AbstractSAXTransformer trasf; ChartXMLConsumer(AbstractSAXTransformer trasfIn) { this.trasf= trasfIn; } public void processingInstruction(String target, String data) throws SAXException { getLogger().debug("[CHART XML CONSUMER] RECEIVED AND IGNORED PI"); } public void startDTD(String name, String publicId, String systemId) throws SAXException { getLogger().debug("[CHART XML CONSUMER] RECEIVED START DTD"); } public void endDTD() throws SAXException { getLogger().debug("[CHART XML CONSUMER] RECEIVED START DTD"); } public void startDocument() throws SAXException { getLogger().debug("[CHART XML CONSUMER] RECEIVED START OF DOCUMENT V.02"); } public void endDocument() throws SAXException { getLogger().debug("[CHART XML CONSUMER] RECEIVED END OF DOCUMENT"); } public void startElement(String uri, String name, String raw, Attributes attributes) throws SAXException { getLogger().debug("[CHART XML CONSUMER] RECEIVED STARTELEMENT"); trasf.startElement(uri, name, raw, attributes); } public void endElement(String uri, String name, String raw) throws SAXException { getLogger().debug("[CHART XML CONSUMER] RECEIVED ENDELEMENT"); trasf.endElement(uri, name, raw); } } Luca Morandini [EMAIL PROTECTED] [EMAIL PROTECTED] > -----Messaggio originale----- > Da: Steven Cummings [mailto:cummingscs@;netscape.net] > Inviato: venerd́ 8 novembre 2002 17.43 > A: [EMAIL PROTECTED] > Oggetto: RE: R: Strings to SAX events > > > Luca, > > I'm doing something very similar to implement a SOAPTransformer. > What I've done is implement an XMLConsumer so that it passes ALL > events that it recieves directly to the transformer's super-class > (super.startElement, super.endElement... etc.) Because you've > probably already started an output SAX stream that you want to > embed the content of the string in, you simply neglect to pass > along the startDocument and endDocument events. This is very > important. Otherwise, the solution is pretty simple. Hope this helps. > > /S > > "Luca Morandini" <[EMAIL PROTECTED]> wrote: > > >Ludovic, > > > >we're writing a Transformer to produce SVG (and JPEG/PNG > optionally) charts. > >The idea is having the chart description and associated data in XML as > >input, transform them, ending up with a nice SVG to be serialized. > > > >We're using a charting library which doesn't produce a SAX stream, but > >outputs the SVG element as a string, hence, the need to insert this XML > >elements in the output SAX stream. > > > >I hope this clears the matter :) > > > >Luca Morandini > >Istituto Poligrafico e Zecca dello Stato > >[EMAIL PROTECTED] > >[EMAIL PROTECTED] > > > > > >> -----Messaggio originale----- > >> Da: Ludovic de Beaurepaire [mailto:ludovic.debeaurepaire@;axonie.com] > >> Inviato: venerd́ 8 novembre 2002 11.26 > >> A: [EMAIL PROTECTED] > >> Oggetto: Re: Strings to SAX events > >> > >> > >> Luca > >> > >> Sorry if it is NOK, but i didn't understand why you want to add > >> XML datas in > >> the transformer instead of in your pipeline's generator ? > >> > >> Ludovic > >> ----- Original Message ----- > >> From: "Luca Morandini" <[EMAIL PROTECTED]> > >> To: <[EMAIL PROTECTED]> > >> Sent: Friday, November 08, 2002 11:11 AM > >> Subject: R: Strings to SAX events > >> > >> > >> > Ludovic, > >> > > >> > thanks for your kind answer, but we are not in an XSP page > >> (we're writing > >> a > >> > Transformer instead), hence, your suggestion is not truly > useful to us. > >> > > >> > Best regards, > >> > > >> > Luca Morandini > >> > [EMAIL PROTECTED] > >> > > >> > > -----Messaggio originale----- > >> > > Da: Ludovic de Beaurepaire > [mailto:ludovic.debeaurepaire@;axonie.com] > >> > > Inviato: venerd́ 8 novembre 2002 11.02 > >> > > A: [EMAIL PROTECTED] > >> > > Oggetto: Re: Strings to SAX events > >> > > > >> > > > >> > > Try in a XSP the following, data is your xml string : > >> > > > >> > > <util:include-expr> > >> > > <util:expr><xsp:expr> > >> > > data > >> > > </xsp:expr></util:expr> > >> > > </util:include-expr> > >> > > > >> > > > >> > > > >> > > ----- Original Message ----- > >> > > From: "Luca Morandini" <[EMAIL PROTECTED]> > >> > > To: <[EMAIL PROTECTED]> > >> > > Sent: Friday, November 08, 2002 10:55 AM > >> > > Subject: Strings to SAX events > >> > > > >> > > > >> > > > Folks, > >> > > > > >> > > > We're in the process of writing a Transformer, which, of > >> > > course, outputs > >> > > > SAX > >> > > > events... but, in the midst of this stream , we need to > insert an > >> > > > XML element stored in a string. > >> > > > > >> > > > To do this we're groping in the dark trying something like this: > >> > > > > >> > > > JaxpParser respParser = new JaxpParser(); > >> > > > respParser.parse( new InputSource(new StringReader(str)), > >> > > > new EmbeddedXMLPipe(contentHandler)); > >> > > > > >> > > > Which fails giving this: > >> > > > org.apache.cocoon.ProcessingException: Failed to > execute pipeline.: > >> > > > java.lang.ClassCastException > >> > > > ... > >> > > > Caused by: java.lang.ClassCastException > >> > > > at > >> > > > > >> > > > > >> > > com.lucamorandini.charts.ChartTransformer.endElement(ChartTransfor > >> > > mer.java:6 > >> > > > 55) > >> > > > at > >> > > > > >> > > > > >> > > org.apache.cocoon.components.sax.XMLByteStreamInterpreter.parse(XM > >> > > LByteStrea > >> > > > mInterpreter.java:129) > >> > > > at > >> > > > > >> > > > > >> > > org.apache.cocoon.components.sax.XMLByteStreamInterpreter.deserial > >> > > ize(XMLByt > >> > > > eStreamInterpreter.java:102) > >> > > > at > >> > > > > org.apache.cocoon.components.pipeline.CachingEventPipeline.process > >> > > > (CachingEventPipeline.java:219) > >> > > > ... 44 more > >> > > > > >> > > > java.lang.ClassCastException > >> > > > at > >> > > > > >> > > > > >> > > com.lucamorandini.charts.ChartTransformer.endElement(ChartTransfor > >> > > mer.java:6 > >> > > > 55) > >> > > > at > >> > > > > >> > > > > >> > > org.apache.cocoon.components.sax.XMLByteStreamInterpreter.parse(XM > >> > > LByteStrea > >> > > > mInterpreter.java:129) > >> > > > at > >> > > > > >> > > > > >> > > org.apache.cocoon.components.sax.XMLByteStreamInterpreter.deserial > >> > > ize(XMLByt > >> > > > eStreamInterpreter.java:102) > >> > > > at > >> > > > > org.apache.cocoon.components.pipeline.CachingEventPipeline.process > >> > > > (CachingEventPipeline.java:219) > >> > > > at > >> > > > > >> > > > > >> > > org.apache.cocoon.components.pipeline.CachingStreamPipeline.proces > >> > > s(CachingS > >> > > > treamPipeline.java:399) > >> > > > > >> > > > The classes we use are: > >> > > > org.apache.avalon.excalibur.xml.JaxpParser; > >> > > > org.xml.sax.InputSource; > >> > > > java.io.StringReader; > >> > > > org.apache.cocoon.xml.EmbeddedXMLPipe; > >> > > > > >> > > > And the environment is: > >> > > > Solaris 5.8 > >> > > > JDK 1.4.1_01 > >> > > > Tomcat 4.1.12-LE-jdk14 > >> > > > Cocoon 2.0.3 > >> > > > > >> > > > May someone please help us ? > >> > > > > >> > > > Thanks in advance, > >> > > > > >> > > > Piero De Nicola & Luca Morandini > >> > > > > >> > > > > >> > > > We are protected from the virus by Norton Antivirus > >> > > Corporate Edition > >> > > > > >> > > > > >> --------------------------------------------------------------------- > >> > > > Please check that your question has not already been > >> answered in the > >> > > > FAQ before posting. > ><http://xml.apache.org/cocoon/faq/index.html> > >> > > > >> > > To unsubscribe, e-mail: > <[EMAIL PROTECTED]> > >> > > For additional commands, e-mail: > <[EMAIL PROTECTED]> > >> > > > >> > > > >> > > > >> > > >> > > >> > --------------------------------------------------------------------- > >> > Please check that your question has not already been answered in the > >> > FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html> > >> > > >> > To unsubscribe, e-mail: <[EMAIL PROTECTED]> > >> > For additional commands, e-mail: <[EMAIL PROTECTED]> > >> > > >> > >> > >> We are protected from the virus by Norton Antivirus > Corporate Edition > >> > >> --------------------------------------------------------------------- > >> Please check that your question has not already been answered in the > >> FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html> > >> > >> To unsubscribe, e-mail: <[EMAIL PROTECTED]> > >> For additional commands, e-mail: <[EMAIL PROTECTED]> > >> > >> > >> > > > > > >--------------------------------------------------------------------- > >Please check that your question has not already been answered in the > >FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html> > > > >To unsubscribe, e-mail: <[EMAIL PROTECTED]> > >For additional commands, e-mail: <[EMAIL PROTECTED]> > > > > > > We are protected from the virus by Norton Antivirus > Corporate Edition > > > >--------------------------------------------------------------------- > >Please check that your question has not already been answered in the > >FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html> > > > >To unsubscribe, e-mail: <[EMAIL PROTECTED]> > >For additional commands, e-mail: <[EMAIL PROTECTED]> > > > > > > > -- > Steven Cummings > Columbia, MO > Email: [EMAIL PROTECTED] > AIM: cummingscs > ICQ: 3330114 > > > __________________________________________________________________ > The NEW Netscape 7.0 browser is now available. Upgrade now! > http://channels.netscape.com/ns/browsers/download.jsp > > Get your own FREE, personal Netscape Mail account today at > http://webmail.netscape.com/ > > --------------------------------------------------------------------- > Please check that your question has not already been answered in the > FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html> > > To unsubscribe, e-mail: <[EMAIL PROTECTED]> > For additional commands, e-mail: <[EMAIL PROTECTED]> > > We are protected from the virus by Norton Antivirus Corporate Edition --------------------------------------------------------------------- Please check that your question has not already been answered in the FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html> To unsubscribe, e-mail: <[EMAIL PROTECTED]> For additional commands, e-mail: <[EMAIL PROTECTED]>