2012-01-19 44 views
1

是否有任何XForms對象可用於覆蓋操作對象內的默認評估上下文?我們有xforms:body在body部分,但是我們有沒有xforms:action?這將簡化代碼,我經常使用相同的節點組,因爲我對更改操作對象內的默認評估上下文

運行的基本元素我希望收到這樣的代碼:

<xf:action ev:event="DOMActivate"> 
    <?xf:context? ref="instance('main')/d:Content/d:Attachment[index('repeat-id')]"> <!-- ?? --> 
    <xf:setvalue ref="d:FileName" value="..." /> 
    <xf:setvalue ref="d:Description" value="..." /> 
    <xf:setvalue ref="d:MimeType" value="..." /> 
    <xf:setvalue ref="d:Size" value="..." /> 
    <xf:setvalue ref="d:Location" value="..." /> 
    </?xf:context?> 
</xf:action> 

,所以我不會再重複整個路徑再一次。

回答

2

你正在尋找的屬性是context。從XForms 1.1開始,context屬性僅在insertdelete操作中正式提供,但某些實現已在所有操作中支持該操作,並且它是scheduled for inclusion in XForms 2

<xf:action ev:event="DOMActivate" context="instance('main')/d:Content/d:Attachment[index('repeat-id')]"> 
    <xf:setvalue ref="d:FileName" value="..." /> 
    <xf:setvalue ref="d:Description" value="..." /> 
    <xf:setvalue ref="d:MimeType" value="..." /> 
    <xf:setvalue ref="d:Size" value="..." /> 
    <xf:setvalue ref="d:Location" value="..." /> 
</xf:action> 

注意ref是,據我所知,沒有正式允許在action

有按計劃爲即將到來的XForms 2 refcontext之間的差:

  • context僅改變XPath計算上下文
  • ref通常具有其他效果,例如結合一個控制,或指定的值(setvalue)的目的地等

在XForms中1.1,contextinsert unfort統一也可以表示插入點,但XForms 2計劃改進並不贊成使用context

+0

我也檢查過這個解決方案,Orbeon支持上下文屬性和ref屬性一樣。感謝您的迴應。 – jaygo

1

是的。您可以將ref屬性設置爲<xforms:action>標記。您也可以將此應用於<xforms:trigger><xforms:group>標籤。

有了這個,您將給出標籤內語句的上下文。

我試過這個工作正常。

所以,你的代碼應該是這個樣子:

<xf:action ev:event="DOMActivate" ref="instance('main')/d:Content/d:Attachment[index('repeat-id')]"> 
    <xf:setvalue ref="d:FileName" value="..." /> 
    <xf:setvalue ref="d:Description" value="..." /> 
    <xf:setvalue ref="d:MimeType" value="..." /> 
    <xf:setvalue ref="d:Size" value="..." /> 
    <xf:setvalue ref="d:Location" value="..." /> 
    </?xf:context?> 
</xf:action> 
+0

明天早上我會檢查一下,但現在我還沒有在[XForms 1.1參考](http://www.w3.org/TR/xforms/#action-action)中找到ref屬性,所以想知道在哪裏做了它來自 - 可能是Orbeon的延伸? – jaygo

+0

我不能等到早上,已經檢查過它真的有效......非常感謝您的回答。我覺得我需要嘗試任何直觀的解決方案,無論參考文獻如何:-) – jaygo

+0

感謝您的確認。如果您接受答案,也請注意,以便他人可以輕鬆訪問。 – Jayy