Judith,

it seems the problem has been solved by filtering out some characters (using
the "characters()" method) from the input file and deleting both XML header
and "DOCTYPE" from the string containing the SVG.

I know this solution is weirder than the original problem... but that's a
fact :(

Anyway, thanks for the code you've provided us :)

Best regards,

Luca Morandini
[EMAIL PROTECTED]
[EMAIL PROTECTED]


> -----Messaggio originale-----
> Da: Andres, Judith [mailto:Judith.Andres@;rauser-ag.com]
> Inviato: lunedì 11 novembre 2002 11.59
> A: [EMAIL PROTECTED]
> Oggetto: AW: R: Strings to SAX events
>
>
> 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]>
> >
>


     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]>

Reply via email to