2013-04-23 78 views
2

我想對bpel賦值語句中的xml結構進行XSL轉換。有一個語法問題,但我無法找到官方文檔。有例子all over the internet但我還沒有找到明確的解釋。這是我的最佳鏡頭。最後兩個參數做了什麼?爲什麼eclipse說第一個參數必須是文字,儘管test3.xsl是一個字符串?bpel bpel的正確語法:doXslTransform

<bpel:assign validate="yes" name="Assign"> 
    <bpel:copy keepSrcElementName="no"> 
     <bpel:from> 
      <![CDATA[bpel:doXslTransform("test3.xsl", $personalInfoServiceOutput.parameters), "middle", $positionSkillManagementInput]]> 
     </bpel:from> 
     <bpel:to variable="positionSkillManagementInput"></bpel:to> 
    </bpel:copy> 
</bpel:assign> 

回答

2

doXSLTransform的簽名看起來如下:

object bpel:doXslTransform(string, node-set, (string, object)*)

第一個參數是所述XSLT腳本的名稱,第二個參數是XPath識別源文件(例如變量,部分,節點集,節點)。第三個和第四個參數是鍵 - 值對,字符串是鍵,對象是值。這些對映射到腳本的參數上下文中,以便您可以通過腳本中的名稱訪問這些值。可以有任何數量的這些對。

查找這種東西的最佳資源是WS-BPEL 2.0 specification,doXSLTransform在Sect。 8.4

+0

爲什麼eclipse不能將第一個參數識別爲字符串? <![CDATA [bpel:doXslTransform(「urn:test3.xsl」,$ personalInfoServiceOutput.parameters)]]> //錯誤:doxsltransform的第一個參數必須是字符串 – bernie2436 2013-04-23 13:33:01

+0

您是否用單引號試過? – vanto 2013-04-23 14:21:38

+0

是的,我得到單個字符串相同的錯誤 – bernie2436 2013-04-23 14:37:48

0

當我使用下面的代碼:

<bpel:copy keepSrcElementName="no"> 
<bpel:from> 
<![CDATA[bpel:doXslTransform("parseSample.xsl", $output.payload)]]> 
</bpel:from> 
<bpel:to variable="output"></bpel:to> 
</bpel:copy> 

我也得到了錯誤,即第一個參數必須是文字字符串。

但是,當我將我的服務(錯誤)部署到wso2 bps時,它工作正常。

你可以試試這個。

0

我面臨同樣的問題。同意NGoyal。在BPEL中顯示錯誤,但在部署時有效。