访问 Orbeon 的第二个 xforms 实例

发布于 2024-12-27 22:04:30 字数 3429 浏览 2 评论 0原文

遵循有关运行 xforms-with-java-applications< 的 Orbeon 文档/a>, 我在 JBoss 上的 java war 旁边单独部署了 Orbeon 的 war 文件。

我尝试在一个模型中创建 2 个实例,

<xforms:model id="fr-form-model">


  <xforms:instance id="don-instance1">
    <don>
     <laptop>                   
 </laptop>
    </don>
  </xforms:instance> 

  <xforms:instance id="don-instance2">
    <don2>
       <laptop2>                    
   </laptop2>
    </don2>
  </xforms:instance>

</xforms:model id="fr-form-model">

我似乎无法从访问

<xforms:input ref="instance('don-instance')/don/laptop2">
   <xforms:label>Enter a Name:</xforms:label>   
</xforms:input>

第一个 xforms 实例访问第二个 xforms 实例,只要我不使用 instance() 函数

<xforms:input ref="/don/laptop">
   <xforms:label>Enter a Name:</xforms:label>    
</xforms:input>

不知怎的,instance()方法没有按我的预期工作,我缺少什么?

修订后的完整 XML:

    <xhtml:html
            xmlns:xhtml="http://www.w3.org/1999/xhtml"      
            xmlns:xforms="http://www.w3.org/2002/xforms"
            xmlns:xxforms="http://orbeon.org/oxf/xml/xforms"
            xmlns:ev="http://www.w3.org/2001/xml-events"
            xmlns:xs="http://www.w3.org/2001/XMLSchema"
            xmlns:fr="http://orbeon.org/oxf/xml/form-runner"
            >

        <xhtml:head>
            <xhtml:title>Simple</xhtml:title>

            <xforms:model >

                <xforms:instance id="don-instance1">
                    <don1>
                        <laptop1>
                        </laptop1>
                    </don1>
                </xforms:instance>

                 <xforms:instance id="don-instance2">
                    <don2>
                        <laptop2>                   
                        </laptop2>
                    </don2>
                </xforms:instance> 

                <xforms:submission id="submit_metadata" action="../processor.jsp" method="post"/>

            </xforms:model>
        </xhtml:head>

        <xhtml:body>


            <xforms:input ref="instance('don-instance1')/don1/laptop1">
                <xforms:label class="composers-label">Laptop1: </xforms:label>                                      
                <xhtml:br />                                        
            </xforms:input>

            <xforms:input ref="instance('don-instance2')/don2/laptop2">
                <xforms:label class="composers-label">Laptop2: </xforms:label>                                      
                <xhtml:br />                                        
            </xforms:input>

            <xhtml:br />
            <xhtml:br />


            <xforms:submit submission="submit_metadata">
                <xforms:label class="composers-label">Submit</xforms:label>
            </xforms:submit>
            <xhtml:br />

            <fr:xforms-inspector/>

        </xhtml:body>
    </xhtml:html>

Following Orbeon documentation about running xforms-with-java-applications,
I deployed Orbeon's war file separately beside my java war on JBoss.

I tried creating 2 instances inside one model

<xforms:model id="fr-form-model">


  <xforms:instance id="don-instance1">
    <don>
     <laptop>                   
 </laptop>
    </don>
  </xforms:instance> 

  <xforms:instance id="don-instance2">
    <don2>
       <laptop2>                    
   </laptop2>
    </don2>
  </xforms:instance>

</xforms:model id="fr-form-model">

I can't seem to access the second xforms instance from the

<xforms:input ref="instance('don-instance')/don/laptop2">
   <xforms:label>Enter a Name:</xforms:label>   
</xforms:input>

Accessing the first xforms instance is fine, as long as I DON'T use the instance() function

<xforms:input ref="/don/laptop">
   <xforms:label>Enter a Name:</xforms:label>    
</xforms:input>

Somehow the instance() method isn't working as I expect, What am I missing ?

Revised Complete XML:

    <xhtml:html
            xmlns:xhtml="http://www.w3.org/1999/xhtml"      
            xmlns:xforms="http://www.w3.org/2002/xforms"
            xmlns:xxforms="http://orbeon.org/oxf/xml/xforms"
            xmlns:ev="http://www.w3.org/2001/xml-events"
            xmlns:xs="http://www.w3.org/2001/XMLSchema"
            xmlns:fr="http://orbeon.org/oxf/xml/form-runner"
            >

        <xhtml:head>
            <xhtml:title>Simple</xhtml:title>

            <xforms:model >

                <xforms:instance id="don-instance1">
                    <don1>
                        <laptop1>
                        </laptop1>
                    </don1>
                </xforms:instance>

                 <xforms:instance id="don-instance2">
                    <don2>
                        <laptop2>                   
                        </laptop2>
                    </don2>
                </xforms:instance> 

                <xforms:submission id="submit_metadata" action="../processor.jsp" method="post"/>

            </xforms:model>
        </xhtml:head>

        <xhtml:body>


            <xforms:input ref="instance('don-instance1')/don1/laptop1">
                <xforms:label class="composers-label">Laptop1: </xforms:label>                                      
                <xhtml:br />                                        
            </xforms:input>

            <xforms:input ref="instance('don-instance2')/don2/laptop2">
                <xforms:label class="composers-label">Laptop2: </xforms:label>                                      
                <xhtml:br />                                        
            </xforms:input>

            <xhtml:br />
            <xhtml:br />


            <xforms:submit submission="submit_metadata">
                <xforms:label class="composers-label">Submit</xforms:label>
            </xforms:submit>
            <xhtml:br />

            <fr:xforms-inspector/>

        </xhtml:body>
    </xhtml:html>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

仙女 2025-01-03 22:04:30

根据代码,我发现您没有正确引用节点名称。如果你想在第一个实例中访问笔记本电脑节点,那么你的代码应该是这样的:

<xforms:input ref="instance('don-instance1')/laptop">
   <xforms:label>Enter a Name:</xforms:label>   
</xforms:input>

同样,如果你想在第二个实例中访问节点,它应该是

<xforms:input ref="instance('don-instance2')/laptop2">
   <xforms:label>Enter a Name:</xforms:label>   
</xforms:input>

As per the code, i see that you are not referring the node names properly. If you want to access the laptop node in first instance then your code should be like this:

<xforms:input ref="instance('don-instance1')/laptop">
   <xforms:label>Enter a Name:</xforms:label>   
</xforms:input>

Same way, if you want to access the node in second instance, it should be

<xforms:input ref="instance('don-instance2')/laptop2">
   <xforms:label>Enter a Name:</xforms:label>   
</xforms:input>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文