Hank,

I think the problem is that you are not defining any groups in your regexp. Groups are defined with parentheses in the path-info attribute, for example "/pre/(*.html)".

-Erik

Hank Ratzesberger wrote:

Erik, et. al.,

Thank you. Yes, this helps. And, I can see that what I am trying to do is very similar to the way the online doc's are handled. However, I don't get the results
I want yet. It only works if I put a specific filename
in my xforms.


Do I need to parse something out of a request processor?
I was expecting either the gob-matcher (which is all I need) or the perl5-matcher to pass some value in my param,
but I don't think it does.


Here is my controller:

<page id="test" path-info="/pre/*.html"
matcher="oxf/processor/perl5-matcher"
xforms="oxf:/preview.xml"
model="oxf:/preview.xpl"> <param ref="/form/path"/>
</page>


Here is my preview.xpl:

<p:config xmlns:p="http://www.orbeon.com/oxf/pipeline";>

<p:param name="instance" type="input"/>

<p:processor uri="oxf/processor/xslt-2.0">
<p:input name="data" href="#instance"/>
<p:input name="config">
<config xsl:version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<url><xsl:value-of select="/form/path"/></url>
</config>
</p:input>
<p:output name="data" id="url-config"/>
</p:processor>


  <!-- Generate page -->
  <p:processor uri="oxf/processor/url-generator">
    <p:input name="config" href="#url-config"/>
    <p:output name="data" id="file"/>
  </p:processor>

  <!-- Transform the html into a stylesheet -->
  <p:processor uri="oxf/processor/xslt">
    <p:input name="config" href="/preview.xsl"/>
    <p:input name="data" href="#file"/>
    <p:output name="data" id="xsl"/>
  </p:processor>

...

Perhaps it's worth it to mention what I am trying to accomplish altogether. I want to have a preview area
that a web designer using dreamweaver can create the
whole information architecture. E.g., http://my.com/pre/
and all the pages there are xhtml pages. To display these, I need to transform them to xsl so that I can merge (transform) with sample data. The publishing phase involves moving the preview pages to their real locations, http://my.com/ , adjusting links (snip 'pre/')
and doing the first transform so they are already xsl.
The published pages are transformed against real data and
have complete controller rules.


Thanks greatly for any inputs,
Hank


----- Original Message ----- From: "Erik Bruchez" <[EMAIL PROTECTED]>
To: "OXF Users" <[EMAIL PROTECTED]>
Sent: Thursday, February 05, 2004 12:02 PM
Subject: Re: Creating default processing rules




Hi Hank,

This is actually quite easy. The controller gives you the possibility
to pass groups matched by the regexp matcher into the XForms
instance. There is an example here:

http://www.orbeon.com/oxf/doc/reference-controller#N10225

So you have to create an XForms model, for example:

<xf:model xmlns:xf="http://www.w3.org/2002/xforms";>
    <xf:instance>
        <form>
            <path/>
        </form>
</xf:model>

Then, pass the instance to your default.xpl:

<p:param name="instance" type="input"/>

Then, you can access to the path with /form/path. What you probably
want to do at that point is use the URL generator to create the local
URL, for example:

<p:processor uri="oxf/processor/url-generator">
<p:input name="config" href="aggregate('config', #instance#xpointer(concat('oxf:/', /form/path)))"/>
<p:output name="data" id="file"/>
</p:processor>


What I am doing here in the input href is creating a configuration
document for the URL generator. You may also do this with XSLT:

<p:processor uri="oxf/processor/xslt">
<p:input name="data" href="#instance"/>
<p:input name="config">
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<xsl:template match="/">
<config><xsl:value-of select="/form/path"/></config>
</xsl:template>
</xsl:stylesheet>
</p:input>
<p:output name="data" id="url-config"/>
</p:processor>


Which is even easier with XSLT 2.0:

<p:processor uri="oxf/processor/xslt-2.0">
<p:input name="data" href="#instance"/>
<p:input name="config">
<config xsl:version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<xsl:value-of select="/form/path"/>
</config>
</p:input>
<p:output name="data" id="url-config"/>
</p:processor>


You can reference the data by referring to href="#file" in a processor
input.

If the file is actually an HTML file, you will have to specify the
content-type in the generator:

<p:processor uri="oxf/processor/xslt-2.0">
<p:input name="data" href="#instance"/>
<p:input name="config">
<config xsl:version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<url><xsl:value-of select="/form/path"/></url>
<content-type>text/html</content-type>
</config>
</p:input>
<p:output name="data" id="url-config"/>
</p:processor>


You have to use the URL generator because the input href="..." only
support statically constructed references to either URLs
(e.g. href="oxf:/myfile.html"), or references to processor outputs or
pipeline inputs (e.g. href="#my-output").

I hope this helps.

-Erik

Hank Ratzesberger wrote:

> I would like to have a default pipeline get
> applied to all files of the same type. My
> default pipleline converts the html to xsl, then
> runs the xsl with a preferences xml file to get
> site-wide defaults.
>
> All *.html files should have this two-step
> processing, convert to XSL, transform with the
> preferences XML file.
>
> I guess the problem is I don't know how to
> reference the file the controller is looking at,
> that is, what is the local directory for the file?
> I need to pass that url as the data input to
> my first processor statement.
>
> (BTW, is the html serializer necessary?)
>
> Thanks for any tips.
> --Hank
>
> ============================================
> Replying to a list? I'll get my copy there!
>
> Hank Ratzesberger
> http://crustal.ucsb.edu/ | http://neesgrid.org/
> Institute for Crustal Studies
> University of California, Santa Barbara
> ============================================
>
>
>
>
> Snippet from controller.xml:
>
> <page path-info="/(*.html)"
> matcher="oxf/processor/perl5-matcher"
> model="oxf:/default.xpl">
> </page>
>
>
> default.xpl:
>
>
> <p:config xmlns:p="http://www.orbeon.com/oxf/pipeline";>
>
> <!-- Transform the xhtml into a stylesheet -->
> <!-- This step is only for preview pages -->
>
> <p:processor uri="oxf/processor/xslt">
> <p:input name="config" href="./index.xsl"/>
> <!-- WHERE IS THIS URL? THE ONE GETTING EVALUATED IN CONTROLLER.XML? -->
> <p:input name="data" href="./index.html"/>
> <p:output name="data" id="xsl"/>
> </p:processor>
>
>
> <!-- Process xml data with stylesheet. All inputs are aggregated under /root -->
>
> <p:processor uri="oxf/processor/xslt">
> <p:input name="config" href="#xsl"/>
> <p:input name="data" href="aggregate('root', /site-prefs.xml)"/>
> <p:output name="data" id="data"/>
> </p:processor>
>
>
> <!-- Deliver html -->
>
> <p:processor uri="oxf/processor/html-serializer">
> <p:input name="config">
> <config/>
> </p:input>
> <p:input name="data" href="#data"/>
> </p:processor>
>
> </p:config>
>
>
> _______________________________________________
> oxf-users mailing list
> [EMAIL PROTECTED]
> http://mail.orbeon.com/mailman/listinfo/oxf-users



_______________________________________________ oxf-users mailing list [EMAIL PROTECTED] http://mail.orbeon.com/mailman/listinfo/oxf-users

_______________________________________________ oxf-users mailing list [EMAIL PROTECTED] http://mail.orbeon.com/mailman/listinfo/oxf-users

_______________________________________________ oxf-users mailing list [EMAIL PROTECTED] http://mail.orbeon.com/mailman/listinfo/oxf-users

Reply via email to