Page flow action and instance passing?

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Page flow action and instance passing?

Mike Ahlers
Hi,

Is there a simple way of passing the outcome of a pipeline (page-flow action) as instance towards the page?
From the atm example I see the document is stored on session, while I assumed it would be the standard submission? Is my assumption wrong, could someone enlight me about this?

In short, I have a page-flow that looks similar to:

<page id="validation" path-info="/validate" view="/views/default.xhtml">
    <action action="/xpl/validate.xpl">
        <result id="not-valid" when="/x/validation-status/@valid = 'false'" instance-passing="forward|redirect" page="validation-error"/>
        <result id="valid" when="/x/validation-status/@valid = 'true'" instance-passing="forward|redirect" page="confirm"/>
                ...

<page id="validation-error" path-info="/validation-error" view="/views/validation-errors.xhtml"/>

The xform of the validation-errors view contains:

<xforms:instance id="data-instance">
    <xi:include href="input:instance" xxi:omit-xml-base="true"/>
</xforms:instance>

My instance inspector shows a null for my data-instance:

<null xsi:nil="true" ...

Thanks in advance,
Mike
Reply | Threaded
Open this post in threaded view
|

Re: Page flow action and instance passing?

Mike Ahlers
Hi,

I got it solved, it is documented, but poorly. Here are my observations:

Within the result element, when I do:

<xsl:copy-of select="doc('input:action')/*"/>

I receive an exception, Orbeon fails to deal with the instruction above

2008-09-12 13:13:06,625 ERROR [org.orbeon.oxf.webapp.ProcessorService] Exception at  (creating XSLT transformer)
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
        at java.util.ArrayList.RangeCheck(ArrayList.java:547)
        at java.util.ArrayList.get(ArrayList.java:322)
        at org.orbeon.oxf.processor.transformer.xslt.XSLTTransformer$1.createTransformer(XSLTTransformer.java:565)

However, when I create the root element manually, and then copy/insert to content of the result it does work. It looks like:

<my-instance xsl:version="2.0">
    <xsl:copy-of select="doc('input:action')/my-instance/*"/>
</my-instance>

This brings me to the next observation, why is it needed to have both transform="oxf:xslt" and xsl:version="2.0" declarations/attributes to identify I want to perform a transformation? Surely this could be simplified where for example you can pass an xsl file/reference in the result in place of transform="oxf:xslt", so it could look like: transform="/xsl/my-transformation.xsl"

This is what I wanted to share ;-)

Regards,
Mike
Reply | Threaded
Open this post in threaded view
|

Re: Re: Page flow action and instance passing?

Hank Ratzesberger
Hi Mike,

On Sep 12, 2008, at 4:25 AM, Mike Ahlers wrote:

>
> Hi,
>
>
> This brings me to the next observation, why is it needed to have both
> transform="oxf:xslt" and xsl:version="2.0" declarations/attributes to
> identify I want to perform a transformation? Surely this could be  
> simplified
>

For transforms, the stylesheet or transform element, the version  
attribute is required,
per the spec..  I presume the engines will handle it appropriately  
although I
haven't used 1.0 is some time.

Part of the answer I'm sure.

Cheers,
Hank


Hank Ratzesberger
NEES@UCSB
Institute for Crustal Studies,
University of California, Santa Barbara
805-893-8042







--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws