cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Perez Carmona, David" <DPerez...@fcc.es>
Subject RV: Custom transformer
Date Tue, 17 Aug 2004 12:45:07 GMT

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


Mime
View raw message