Hallo Luca, this is a bit of a hack, but it seems to work.
HTH Judith <<TestTransformer.java>> > -----Ursprüngliche Nachricht----- > Von: Luca Morandini [SMTP:[EMAIL PROTECTED]] > Gesendet am: Montag, 11. November 2002 10:39 > An: [EMAIL PROTECTED] > Betreff: R: R: Strings to SAX events > > 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]> >
TestTransformer.java
Description: TestTransformer.java
--------------------------------------------------------------------- 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]>