Hi Ron,

Ron Van den Branden wrote:
Hi Jeroen,

Thanks a lot for this quick and helpful hint: I now manage to get an XML
representation of the request with the RequestGenerator. That's
excellent for XSL processing, but... I still don't see clearly how I can
integrate this in the pipeline (sorry - I take full account of my
ignorance).

No problem. I had to learn all of this myself too! :-) Well since the all request parameters are in the generator, you will not have to pass them to the transformer, since you already have them.

Jeroen Reijn schreef:


In that case the only thing you need to do in your sitemap is change your generate part to an aggregate and you will probably have to change your xslt a bit and that would be it.

Do I understand you correctly by thinking that you'd aggregate both the
XML request representation (via RequestGenerator) and the requested XML
source (via another pipeline) into an XML structure for further
processing? Something like:

  <map:match pattern="processform.htm">
    <map:aggregate>
      <!-- get XML representation of request -->
      <map:part src="???"/>
      <!-- get XML source -->
      <map:part src="???"/>
    </map:aggregate>
    <map:transform src="stylesheets/xml2htm/{1}.xsl">
      <map:parameter name="use-request-parameters" value="true"/>
    </map:transform>
    <map:serialize type="xhtml"/>
  </map:match>

Then the question marks are unclear to me...

You are correct with the above. The aggregate should in your case look like:

     <map:aggregate element="root">
       <!-- get XML representation of request -->
       <map:part src="cocoon:/requestAsXML"/>
       <!-- get XML source -->
       <map:part src="xml/{1}.xml"/>
     </map:aggregate>

As you might have noticed the first part calls another pipeline which generates the request. That should be:

<map:match pattern="requestAsXML">
  <map:generate type="request"/>
  <map:serialize type="xml"/>
</map:match>

Now you will have to change your xslt to handle the extra wrapping element and that should be it.


Just as a side note: I always discourage use-request-parameters, since it can give you problems when using caching pipelines.

What alternative do you suggest?

Well it depends on what you want to do within your pipeline, but I always declare my request parameters separately. Using the use-request-parameters parameter will make all your request parameters end up in your cachekey (if your pipeline is set to caching). So if let's say some crawler runs by your website and the crawler uses a time stamp as a request parameter, all these request will get a seperate cachekey. It will enlarge your cache enormously.


Thank you very much,

Your welcome.

Jeroen Reijn

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to