cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andres, Judith" <Judith.And...@rauser-ag.com>
Subject AW: R: Strings to SAX events
Date Mon, 11 Nov 2002 10:58:52 GMT
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:spectrum.morandini@ipzs.it]
> Gesendet am:	Montag, 11. November 2002 10:39
> An:	cocoon-users@xml.apache.org
> 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
> lmorandini@ieee.org
> spectrum.morandini@ipzs.it
> 
> > -----Messaggio originale-----
> > Da: Steven Cummings [mailto:cummingscs@netscape.net]
> > Inviato: venerdì 8 novembre 2002 17.43
> > A: cocoon-users@xml.apache.org
> > 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" <spectrum.morandini@ipzs.it> 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
> > >lmorandini@ieee.org
> > >spectrum.morandini@ipzs.it
> > >
> > >
> > >> -----Messaggio originale-----
> > >> Da: Ludovic de Beaurepaire [mailto:ludovic.debeaurepaire@axonie.com]
> > >> Inviato: venerdì 8 novembre 2002 11.26
> > >> A: cocoon-users@xml.apache.org
> > >> 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" <spectrum.morandini@ipzs.it>
> > >> To: <cocoon-users@xml.apache.org>
> > >> 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
> > >> > lmorandini@ieee.org
> > >> >
> > >> > > -----Messaggio originale-----
> > >> > > Da: Ludovic de Beaurepaire
> > [mailto:ludovic.debeaurepaire@axonie.com]
> > >> > > Inviato: venerdì 8 novembre 2002 11.02
> > >> > > A: cocoon-users@xml.apache.org
> > >> > > 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" <spectrum.morandini@ipzs.it>
> > >> > > To: <cocoon-users@xml.apache.org>
> > >> > > 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:
> > <cocoon-users-unsubscribe@xml.apache.org>
> > >> > > For additional commands, e-mail:
> > <cocoon-users-help@xml.apache.org>
> > >> > >
> > >> > >
> > >> > >
> > >> >
> > >> >
> > >> > ---------------------------------------------------------------------
> > >> > 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:     <cocoon-users-unsubscribe@xml.apache.org>
> > >> > For additional commands, e-mail:   <cocoon-users-help@xml.apache.org>
> > >> >
> > >>
> > >>
> > >>      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:     <cocoon-users-unsubscribe@xml.apache.org>
> > >> For additional commands, e-mail:   <cocoon-users-help@xml.apache.org>
> > >>
> > >>
> > >>
> > >
> > >
> > >---------------------------------------------------------------------
> > >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:     <cocoon-users-unsubscribe@xml.apache.org>
> > >For additional commands, e-mail:   <cocoon-users-help@xml.apache.org>
> > >
> > >
> > >     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:     <cocoon-users-unsubscribe@xml.apache.org>
> > >For additional commands, e-mail:   <cocoon-users-help@xml.apache.org>
> > >
> > >
> >
> >
> > --
> > Steven Cummings
> > Columbia, MO
> > Email: cummingscs@netscape.net
> > 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:     <cocoon-users-unsubscribe@xml.apache.org>
> > For additional commands, e-mail:   <cocoon-users-help@xml.apache.org>
> >
> >
> 
> 
>      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:     <cocoon-users-unsubscribe@xml.apache.org>
> For additional commands, e-mail:   <cocoon-users-help@xml.apache.org>
> 

Mime
View raw message