2011-11-17 40 views
1

我在将服务响应的输出复制到BPEL中的响应消息时遇到问题。BPEL中的xpath复制表达式

金额元素有一个属性货币,我该如何acheiev呢?除了将元素复制到其他元素的属性之外,其他所有复制似乎都可以正常工作。

复制表达式如下。

<copy> 
     <from variable="InvokePersistence_insert_OutputVariable" 
       part="ProBookingInitiationCollection"     query="/ns3:ProBookingInitiationCollection/ns3:ProBookingInitiation/ns3:bookingDetail/ns3:isoCurrencyCd"/> 
     <to variable="outputVariable" part="payload" 
      query="/ns4:BookingConfirmation/ns4:amount/@ns4:currency"/> 
     </copy> 

从XSD的摘录低于

<xs:element name="amount"> 
      <xs:complexType> 
       <xs:simpleContent> 
        <xs:extension base="xs:decimal"> 
         <xs:attribute name="currency" type="xs:string"/> 
        </xs:extension> 
       </xs:simpleContent> 
      </xs:complexType> 
     </xs:element> 
+1

的属性是什么样的错误你得到了吗?你试过'.../ns3:isoCurrencyCd/text()'吗? – vanto

+0

@vanto以下是错误消息。我试着/ text()得到相同的错误.XPath查询字符串返回零节点。 “目标节点查询的赋值活动返回一个空节点,XPath查询中的目标节点数据或目标节点无效,请将BPEL源中第198行的目标音符值检查为BPEL4WS 1.1规范,第14.3节”。 – nobody

+0

听起来像是选择失败。您是否正确初始化目标元素和属性? – vanto

回答

0

确保根据模式是“outputVariable”输出变量被正确初始化,并包含所谓的“货币”