属性介体中的wso2 xpath表达式不起作用

时间:2017-12-08 10:45:24

标签: eclipse xpath properties wso2 mediator

我正在尝试在WSO2代理中填充属性。我使用以下语法和xpath表达式:

<property expression="//RelationValueList/PersonnelRelationValueUnitType[RelAttrId='R54' and DateTo=max(//RelationValueList/PersonnelRelationValueUnitType[RelAttrId='R54']/DateTo/xs:dateTime(.))][last()]/RelationValue" name="RelValue" scope="default" type="STRING"/>

这个Xpath表达式在在线Xpath测试器中运行良好。但是当在属性介体的WSO2表达式中使用它时,它会给出以下Eclipse错误:

wso2未知的synapse配置标记

Error message

XML文档如下所示:

<GetPersonnelResponse>
 <GetPersonnelResult>
    <RelationValueList>
       <PersonnelRelationValueUnitType>
          <RelAttrId>C1</RelAttrId>
          <RelationValue>1234</RelationValue>
          <DateFrom>1900-01-02T00:00:00</DateFrom>
          <DateTo>2199-12-31T00:00:00</DateTo>
       </PersonnelRelationValueUnitType>
       <PersonnelRelationValueUnitType>
          <RelAttrId>R54</RelAttrId>
          <RelationValue>GEN123</RelationValue>
          <DateFrom>1900-01-02T00:00:00</DateFrom>
          <DateTo>2017-12-04T00:00:00</DateTo>
       </PersonnelRelationValueUnitType>
       <PersonnelRelationValueUnitType>
          <RelAttrId>R54</RelAttrId>
          <RelationValue>GEN456</RelationValue>
          <DateFrom>2017-12-05T00:00:00</DateFrom>
          <DateTo>2099-12-31T00:00:00</DateTo>
       </PersonnelRelationValueUnitType>
    </RelationValueList>
 </GetPersonnelResult>
</GetPersonnelResponse>

在WSO2esb中启用了Xpath 2.0。 我需要选择具有最高DateTo值的RelationValue。如果有多个值,我会选择最后一个。

任何人都知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

在表达式中使用命名空间xs :.您需要在它的mediator的顶级父标记中定义它。