Hi Marcel,

I have attached an example to illustrate this. To run it: uncompress the attached archive in the resource directory of your application. It will create a directory "marcel" with the files xforms.xml, model.xpl, and view.xml. Then add to your controller.xml something like:

    <page path-info="/examples/marcel"
        xforms="oxf:/marcel/xforms.xml"
        model="oxf:/marcel/model.xpl"
        view="oxf:/marcel/view.xml"/>

The XForms instance declared in xforms.xml looks like:

<instance>
    <name/>
    <quote/>
</instance>

The content of the <name> element is displayed in a text field by the view. The content of the <quote> element is set by model.xpl based on what is returned by a Web service (using here the service that returns random quotes). Then the content of <quote> is displayed in a text field by the view. In model.xpl, I am using XSLT to modify the XForms instance, instead of XUpdate as in the previous example.

Alex


Marcel Reichert wrote:
Hi Alex,

I�m calling a webservice in my model.xpl.

(model.xpl):
    <p:param type="input" name="instance"/>
    <p:param type="output" name="instance"/>

The data of the webservice I called should be shown direct in my
<xform:input ref="//data_of_webservice"> (view.xsl).
If I understand you, so in the xform:input is only shown the
data of xforms.xml. Now I had to use the xupdate-processor in
my model.xpl.
<p:processor uri="oxf/processor/xupdate">
        <p:input name="data" href="#data_of_webservice" debug=""/>
        <p:input name="config">
          <xu:modifications xmlns:xu="http://www.xmldb.org/xupdate";>
            <xu:update select="//form">
                <name>
                   <xsl:value-of select="//data_of_webservice"/>
                </name>
            </xu:update>
           </xu:modifications>
         </p:input>
         <p:output name="data" ref="instance" debug=""/>
</p:processor>

I can�t use <xsl:value-of..> in the xupdate-processor. Are there
other posibilities to get my called webservice data direct to my
<xform:input ref="..> in the view.xsl.

Thanks and regards
Marcel

------------------- more information if needed ---------------
(view.xsl)
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
    xmlns:xforms="http://www.w3.org/2002/01/xforms";
    xmlns:d="http://orbeon.org/oxf/xml/document";
    xmlns:xxforms="http://orbeon.org/oxf/xml/xforms";>

    <xsl:template match="/">
        <d:document>
            <d:head>
                <d:title>Person</d:title>
            </d:head>
            <d:body>
                <d:h1>Change Person</d:h1>


<xforms:group ref="form">

                   <d:h1>Data</d:h1>
                      <d:p>Please enter:</d:p>

                        <xforms:input ref="//personid"/>   --> Nothing
                        <xsl:value-of select="//personid"/>  --> OK


--------------------------------------------------------- (xforms.xml) <xforms:model xmlns:xforms="http://www.w3.org/2002/01/xforms";> <xforms:instance> <form>

            <personid>2</personid>
           ...
           ...
        </form>
    </xforms:instance>
</xforms:model>

------------------------------------------------------------
(model.xpl)
<p:config xmlns:p="http://www.orbeon.com/oxf/pipeline";
    xmlns:d="http://orbeon.org/oxf/xml/document";
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
    xmlns:delegation="http://orbeon.org/oxf/xml/delegation";
    xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance";>

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

        <p:processor uri="oxf/processor/session-generator">
                <p:input name="config"><key>PersonID</key></p:input>
                <p:output name="data" id="person"/>
        </p:processor>


...

<p:processor uri="oxf/processor/xslt">

<p:input name="data" href="#person"/>

                <p:input name="config">
                    <xsl:stylesheet version="1.0">
                        <xsl:template match="/">
                            <delegation:execute service="immo"
                                     operation="get_Person_by_ID">

                                <int_1 xsi:type="xsd:int">
                                   <xsl:value-of select="/PersonID/item"/>
                                </int_1>
                            </delegation:execute>

                        </xsl:template>
                    </xsl:stylesheet>
                </p:input>
                <p:output name="data" id="call"/>
            </p:processor>

            <p:processor uri="oxf/processor/delegation">
                <p:input name="interface">
                    <config>
                       ...
                    </config>
                </p:input>
                <p:input name="call" href="#call"/>
                <p:output name="data" id="new" debug=""/>
            </p:processor>


<p:processor uri="oxf/processor/xupdate"> <p:input name="data" href="#new" debug=""/> ..... </p:input> <p:output name="data" ref="instance" debug=""/> </p:processor>

</p:config>

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

Attachment: marcel.zip
Description: Zip compressed data

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

Reply via email to