Цикл Foreach в WSO2ESB не работает

Я интегрирую wso2dss 3.5 и wso2esb 4.9. В DSS я создал DataService для получения данных из базы данных. После панели инструментов WSO2 в DSS я использовал конечную точку в своем проекте eclipse (Developer Studio). XML-файл, сгенерированный DSS:

<elements xmlns="http://ws.wso2.org/dataservice">
   <row>
      <name>nome1</name>
      <address>rua xalala das xalalas</address>
   </row>
   <row>
      <name>nome2</name>
      <address>ruas rms did sa</address>
   </row>
   <row>
      <name>nome3</name>
      <address>aldoas daso dasodsa</address>
   </row>
</elements>

Итак, в моем проекте ESB у меня есть этот сгенерированный код:

<foreach expression="//elements/row">
    <sequence>
      <payloadFactory media-type="xml">
        <format>
          <p:Insert xmlns:p="http://ws.wso2.org/dataservice">
            <xs:nome xmlns:xs="http://ws.wso2.org/dataservice">$1</xs:nome>
            <xs:endereco xmlns:xs="http://ws.wso2.org/dataservice">$2</xs:endereco>
          </p:Insert>
        </format>
        <args>
          <arg evaluator="xml" expression="/row/name"/>
          <arg evaluator="xml" expression="/row/address"/>
        </args>
      </payloadFactory>
      <log>
        <property name="xalela" value="xalxalxlalxal"/>
      </log>
    </sequence>
  </foreach>

Проблема в том, что он не входит в foreach, другими словами, он не обращается к посреднику foreach. Что случилось?


person Julyano Felipe    schedule 05.07.2016    source источник


Ответы (1)


xpath //elements/row ничего не возвращает, так как узел "elements" принадлежит пространству имен http://ws.wso2.org/dataservice

попробуйте с //ds:element/ds:row and определить ds как xmlns:ds="http://ws.wso2.org/dataservice"

person Jean-Michel    schedule 05.07.2016
comment
Это еще не работает. Я изменил свой foreach на ‹foreach expression=//ds:element/ds:row xmlns:ds=ws.wso2.org/dataservice› ‹sequence› ‹log description= level=full/› ‹/sequence› ‹/foreach› и не ведет журнал.. - person Julyano Felipe; 05.07.2016
comment
В своем комментарии выше вы забыли «s» в конце элементов и проверили, включен ли http:// в ваше объявление пространства имен. - person Jean-Michel; 05.07.2016