2016-09-27 92 views
0

我在頁面上有一個實例。但是,我希望此實例的內容具有一些屬於另一個實例的內容。如何從另一個實例設置實例的值?

<xf:instance id="subInstance"> 
    <data xmlns=""> 
     <xsl:choose> 
      <xsl:when test="$newType= 'false' "> 
       ??? 
       <xsl:copy-of select="????"/> 
      </xsl:when> 
      <xsl:otherwise> 
       <!-- add a new type --> 
       <type> 
        <name/> 
        <base/> 
       </type> 
      </xsl:otherwise> 
     </xsl:choose> 
    </data> 
</xf:instance> 

應該用什麼來代替問號以便我可以從另一個實例中獲取該類型?

還是應該用xf:setvalue來設置xforms-model-construct-done事件的實例?但是,這不是模型本身的構建嗎?我很困惑如何使用另一個實例的值。

我們可以用xf:插入嗎?

<xf:action ev:event="xforms-model-construct"> 
      <xf:insert nodeset="instance('subInstance')" origin="instance('defaultType')/type"/> 
     </xf:action> 

這是行不通的。事件是否正確?由於實例創建是模型構建的一部分,我想到了使用'xforms-model-construct'。但仍然沒有運氣!

+0

這與Orbeon形式是?並不是所有的實現都支持結合使用XSLT和XForms。 – ebruchez

+0

這是XSLTForms – Crusaderpyro

+0

然後我不確定,但我相信XSLT處理,它會在XForms處理之前發生。如果您想將內容從一個實例複製到另一個實例,則可能需要使用XForms''操作。 – ebruchez

回答

0

是的。 xf:insert可以工作。事件'xforms-model-construct'沒有被調度,這就是爲什麼我覺得它不起作用。當我將事件更改爲'xforms-model-construct-done'時,它工作正常。

<xf:action ev:event="xforms-model-construct"> 
 
    <xf:insert nodeset="instance('subInstance')" origin="instance('defaultType')/type"/> 
 
</xf:action>

相關問題