cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Perez Carmona, David" <DPerez...@fcc.es>
Subject RE: Custom transformer
Date Wed, 18 Aug 2004 05:51:14 GMT

I think that in the ouput SAX stream, it is missing the startDocument() and endDocument()
calls.

> -----Mensaje original-----
> De: Perez Carmona, David
> Enviado el: martes, 17 de agosto de 2004 14:45
> Para: Cocoon (E-mail)
> Asunto: RV: Custom transformer
>
>
>
>
> Sorry, maybe I used the wrong term...
>
> Here an example:
>
> public class CustomTransformer extends AbstractSAXTransformer {
> 
>
>
>
>     protected Properties format;
> 
>
>
>
>     public SOAPTransformer() {
>         //format = XMLUtils.createPropertiesForXML( true );
>         format = new Properties();
>         format.put( OutputKeys.METHOD, "xml" );
>         format.put( OutputKeys.OMIT_XML_DECLARATION, "yes" );
>     }
> 
>
>
>
>     public void setup( SourceResolver sourceResolver,
>             Map map,
>             String str,
>             Parameters parameters )
>     throws ProcessingException, SAXException, IOException {
>         // get some parameters here...
>     }
> 
>
>
>
>     public void startDocument() throws SAXException {
>         this.startSerializedXMLRecording( format );
>     }
> 
>
>
>
>     public void endDocument() throws SAXException {
>         try {
>             String message = this.endSerializedXMLRecording();
>             execute ( message );
>         } catch ( ProcessingException pe ) {
>             throw new SAXException( pe.getMessage() );
>         }
>     }
> 
>
>
>
>     protected void execute ( String message )
>     throws ProcessingException, SAXException {
>         try {
> // I use the XMLReader just to see what is hapenning...
> // This method would rather do something with the XML
> message, maybe send it
> // to a remote server and return back the response to the pipeline
>             XMLReader xmlReader = XMLReaderFactory.createXMLReader();
>             xmlReader.setFeature(
>                 "http://xml.org/sax/features/namespaces", true );
>             xmlReader.setFeature(
>                
> "http://xml.org/sax/features/namespace-prefixes", false );
>             xmlReader.setContentHandler( this.contentHandler );
>             StringReader strRdr = new StringReader( message );
>             InputSource inSrc = new InputSource( strRdr );
>             xmlReader.parse( inSrc );
>         } catch ( Exception e ) {
>             throw new ProcessingException( e.getMessage() );
>         }
>     }
> 
>
>
>
> }
>
>
> This gives me the entire XML file minus the XML Namespaces. So I got a
> prefix not bound error when I execute it. Any ideas? What
> happends if I have
> more than one namespace?
>
> Thanks for your help.
>
> Eric
>
>
> -----Original Message-----
> From: Perez Carmona, David [mailto:DPerezCar@fcc.es]
>
> Sent: Thursday, August 12, 2004 3:00 AM
> To: users@cocoon.apache.org; eric.jacob@bell.ca
> Subject: RE: Custom transformer
>
>
> Can you put an example? I don't fully understand your problem.
> The XML file is already parsed after the generation phase. 
> Parse = convert
> text to SAX events.
>
> > -----Mensaje original-----
> > De: JACOB, ERIC [mailto:eric.jacob@bell.ca]
> > Enviado el: miƩrcoles, 11 de agosto de 2004 14:06
> > Para: users@cocoon.apache.org
> > Asunto: RE: Custom transformer
> >
>
> >
>
> >
>
> > The problem is not really the error... I just need some
>
> > suggestions on how I
> > could parse an entire xml file (generate by the xml
>
> > generator) before doing
> > some action with it (I don't care about what is inside the
>
> > xml document, I
> > just want to sent it).
> >
>
> > I'm not very familiar with the SAX event and cocoon
>
> > transformer, and the
> > information I've found on the cocoon's site (and wiki),
>
> > didn't help me much
> > in what I'm trying to do.
> >
>
> > The startSerializedXMLRecording and endSerializedXMLRecording
>
> > functions
> > didn't act the way I expected... I thought overriding the
>
> > setConsumer and
> > write a custom contentHandler, but maybe it exists a better way...
> >
>
> > Thanks for your help,
> >
>
> > Eric
> >
>
> > -----Original Message-----
> > From: Perez Carmona, David [mailto:DPerezCar@fcc.es]
>
> > Sent: Wednesday, August 11, 2004 2:36 AM
> > To: users@cocoon.apache.org; eric.jacob@bell.ca
> > Subject: RE: Custom transformer
> >
>
> >
>
> > Could you please provide the full call stack?
> >
>
> > > -----Mensaje original-----
> > > De: JACOB, ERIC [mailto:eric.jacob@bell.ca]
> > > Enviado el: martes, 10 de agosto de 2004 21:47
> > > Para: users@cocoon.apache.org
> > > Asunto: Custom transformer
> > >
> >
>
> > >
> >
>
> > >
> >
>
> > > Hi all,
> > >
> >
>
> > > I'm writing a custom transformer that need to parse an
>
> > entire xml file
> > > before doing something with it. The sitemap should look like that:
> > >
> >
>
> > >       <map:match pattern="">
> > >         <map:generate src="foo.xml"/>
> > >         <map:transform type="custom-transformer"/>
> > >         <map:serialize type="xml"/>
> > >       </map:match>
> > >
> >
>
> > > So, I want to send foo.xml to a remote server and return the
> >
>
> > > response back
> > > to the pipeline to serialize it in xml. I extended the
> > > AbstractSAXTransformer since it provides various useful
>
> > methods and I
> > > thought doing something like this:
> > >
> >
>
> > >     public void startDocument() throws SAXException {
> > >         this.startSerializedXMLRecording( format );
> > >     }
> > >
> >
>
> > >     public void endDocument() throws SAXException {
> > >         try {
> > >             String value = this.endSerializedXMLRecording();
> > >             callSomeFunction( value );
> > >         } catch ( ProcessingException pe ) {
> > >             throw new SAXException( pe.getMessage() );
> > >         }
> > >     }
> > >
> >
>
> > > But I got an error when I encounter text node:
> > >
> >
>
> > > org.apache.cocoon.ProcessingException: Failed to execute
> pipeline.:
> > > org.xml.sax.SAXException: no protocol
> > >
> >
>
> > > Any ideas on how I could manage it?
> > >
> >
>
> > > Thanks,
> > >
> >
>
> > > Eric
> > >
> >
>
> > >
> >
>
> > >
> >
>
> > >
> >
>
> > >
>
> >
> ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
> > > For additional commands, e-mail: users-help@cocoon.apache.org
> > >
> >
>
> > >
> >
>
> > > *************************************************************
> > > Este correo ha sido procesado por el Antivirus del Grupo FCC.
> > > *************************************************************
> > >
> >
>
> >
>
> > *************************************************************
> > Este correo ha sido procesado por el antivirus del Grupo FCC.
> > *************************************************************
> >
>
> >
>
> >
>
> >
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
> > For additional commands, e-mail: users-help@cocoon.apache.org
> >
>
> >
>
> > *************************************************************
> > Este correo ha sido procesado por el Antivirus del Grupo FCC.
> > *************************************************************
> >
>
>
> *************************************************************
> Este correo ha sido procesado por el antivirus del Grupo FCC.
> *************************************************************
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
> For additional commands, e-mail: users-help@cocoon.apache.org
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
> For additional commands, e-mail: users-help@cocoon.apache.org
>
>
>
>
> *************************************************************
> Este correo ha sido procesado por el Antivirus del Grupo FCC.
> *************************************************************
>
> *************************************************************
> Este correo ha sido procesado por el Antivirus del Grupo FCC
> *************************************************************
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
> For additional commands, e-mail: users-help@cocoon.apache.org
>
>
> *************************************************************
> Este correo ha sido procesado por el antivirus del Grupo FCC.
> *************************************************************
>

*************************************************************
Este correo ha sido procesado por el antivirus del Grupo FCC.
*************************************************************

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Mime
View raw message