Hi Ben,
The simplest approach I can think of would be to build a Transformer that
wraps your library. Your Transformer would have to:
1. Convert SAX events to a stream on the input side
2. Pass that stream to your library
3. Get the output stream or Document from your library
4. Convert that stream/Document to SAX events on the output side (which is
how you
would insert the results back into the pipe).
The biggest problem I see, though, is that you're going to take potentially
significant performance hits for steps 1 and 4.
Another possibility is that if the output of your library is the final
output that you want your pipeline to render, you could wrap your library in
a serializer (which outputs a stream instead of SAX events), which would
allow you to skip step 4 (i.e. you'd only do the stream-SAX conversion
once).
Harry
-Original Message-
From: Ben Skelton [mailto:[EMAIL PROTECTED]]
Sent: Friday, May 10, 2002 11:55 AM
To: [EMAIL PROTECTED]
Subject: Transformer writing
Hallo,
I am trying to get my head around the cocoon internals. In particular I have
an old library which takes XML in an InputStream, performs some
(significant)
processing and produces XML making it available in an OutputStream (a
Document is also available).
Is it possible to insert this processing into a cocoon pipe? I have had a
look
at the source code for Transformers, in particular CIncludeTransformer which
I see as the closest example.
I could write a Transformer to parse the input into the Transformer, on the
appropriate endElement, the object could go away and do something, but I
can't see how to insert the results back into the pipe.
Does any one have a simple example of this, or an easy explanation they
would
share? Are there any resources for extending cocoon available? - I see on
Amazon that there'll be a couple of books published soon.
Many thanks
--Ben
-
Please check that your question has not already been answered in the
FAQ before posting. http://xml.apache.org/cocoon/faqs.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/faqs.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]