Hi Anna,
When you use <redirect:write
file="testWrite.xml">, your XML datas are redirected, so you have to generate
other XML datas for your serializer. In your case in error, no XML datas are
passed after the transformation.
So, in your case, you have to transform AND save
your XML datas. i think the best solution is saving these datas in file in an
Action, and use this file for transformation.
Ludovic
----- Original Message -----
Sent: Wednesday, December 18, 2002 8:44
AM
Subject: Re: Writing output of pipeline
to a file
Thank you all for answering me, but
I still can't manage to do it.
Here is my pipeline:
<map:match
pattern="test.html">
<map:generate
src=""/>
<map:transform src=""/>
<map:serialize type="xml"/>
<map:match>
Here is my
writeToFile.xsl:
<?xml version="1.0"
encoding="UTF-8"?>
<xsl:output
method="xml"/>
<xsl:template match="/">
<xsl:copy-of select="*"/>
<redirect:open
file="testWrite.xml"/> <redirect:write
file="testWrite.xml"> <xsl:copy-of
select="*"/> </redirect:write>
<redirect:close file="testWrite.xml"/>
</xsl:template>
</xsl:stylesheet>
When I am running this, I get the following error
message from the Cocoon:
type
fatal
message
Exception in HTMLGenerator.generate()
description
org.apache.cocoon.ProcessingException: Exception in
HTMLGenerator.generate(): java.lang.NullPointerException
sender
org.apache.cocoon.servlet.CocoonServlet
source
Cocoon servlet
request-uri
If I remove all the redirect: lines, then I get the
serialized input file, so the input is OK, obviously,
I have some problems with this redirect:
Can anybody please tell me what's wrong?
Thank you very much for help.
Anna
----- Original Message -----
Sent: Tuesday, December 17, 2002 4:36
PM
Subject: Re: Writing output of pipeline
to a file
First, i had just to save it (not to send the
result file to the client). I did it in a stylesheet like this
:
<?xml version="1.0"
encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:redirect="org.apache.xalan.xslt.extensions.Redirect" extension-element-prefixes="redirect">
<xsl:output method="xml"
encoding="ISO-8859-1"/> <xsl:template
match="/"> <redirect:write
file="{$path}"> <xsl:copy-of
select="*"/> </redirect:write>
<TEXTE>output for the
client</TEXTE>
</xsl:template
> </xsl:stylesheet>
But there was problems with some configuration,
so finally i did it in my Action who had to generate the XML.
If you have to duplicate your XML stream, one
for saving, another for the client, i think you have to do this in an
action. It generates the XML file and this one is next
transformed/serialized.
<map:match
pattern="some.html">
<map:act
type="YourAction"> <map:generate
src=""/>
<map:transform src=""/>
<map:serialize type="html"/>
</map:match>
Ludovic
----- Original Message -----
Sent: Tuesday, December 17, 2002 3:09
PM
Subject: Re: Writing output of
pipeline to a file
Hi Ludovic. Thank you for
answering.
Can you say what do you do to
save this XML file?
I mean, if I have the following
pipeline:
<map:match
pattern="some.html">
<map:generate src=""/>
<map:transform src=""/>
<map:serialize type="xml"/>
</map:match>
this pipeline produces an xml
file. What should I use in order to save this file as
"some.xml".
Sorry for asking almost exactly
the same, I just didn't understood from you answer what should I
do.
Thank you very much for
help.
Anna
----- Original Message -----
Sent: Tuesday, December 17, 2002
4:03 PM
Subject: Re: Writing output of
pipeline to a file
Hi Anna,
I had this problem and didn't find a
solution for caching the output of the pipeline to perform an
OutputAction as saving in a file. Finally i chose to save the XML, and
to perfom the transformation/serialization when a request need the
transformed file. It supposes that the transformers are not
modified.
Another solution should be using the
CommandLine classes to perform the pipeline in an action but i can't say
more about it.
Hope a better solution
exists...
Ludovic
----- Original Message -----
Sent: Tuesday, December 17, 2002
2:19 PM
Subject: Writing output of
pipeline to a file
Hello All!
I know that today I ask too
many questions, but since cocoon is new to me,
sometimes I don't even know
where to look for the information, so you are my only
help.
Thanks for everyone who
took time to answer my questions. Here is another one:
At the end of the pipeline
the result file is output to the browser.
I need the result file also
to be saved in the file on my hard drive.
How can I do
this?
I read about the
SourceWritingTransformer, but I understood that I can write
<source:write> tag in xml only, not in xsl.
Or maybe I can use it to do
what I need, and I just don't know how?
Please tell
me.
Thank you very much for
your help.
Anna
|