Разница между заменой всего узла и заменой содержимого узла в OSB

Недавно я начал использовать OSB и наткнулся на функцию «заменить весь узел или заменить содержимое узла». Может ли кто-нибудь помочь мне перечислить разницу между ними с примерами. Это очень простой вопрос, но я только начал изучать osb и хотел, чтобы все было правильно.

Заранее спасибо.

Ваше здоровье..


osb
person Newbie    schedule 05.02.2016    source источник


Ответы (1)


Хорошо, предположим, что у вас есть переменная $body. Ваш прокси сделал кое-что, и у него уже есть $body, и вы хотите запустить его через преобразование xquery, прежде чем вернуть его.

$body будет что-то вроде

<soap:Body xmlns:soap="etc">
  <ns0:response xmlns:ns0="etc2">
    <ns0:item>
      <!-- etc etc -->
    </ns0:item>
  </ns0:response>
</soap:Body>

Если вы заменяете весь узел, вы должны заменить его на <soap:Body>. (Я имею в виду, что вы могли заменить его чем-то другим, но где-то вы столкнетесь с ошибкой, потому что OSB ожидает, что $body будет определенного типа)

Если вы замените содержимое узла, вы можете заменить его чем угодно: возможно, преобразованным <ns0:response>, но обычно его заменяют совершенно другими элементами. В любом случае элемент <soap:Body> не затрагивается, а все внутренности вынимаются и заменяются.

В большинстве случаев вы заменяете содержимое узла $body, а не заменяете весь узел, но если это переменная, которую вы создали сами, она может работать в любом случае в зависимости от того, что вы хотите.

person Trent Bartlem    schedule 07.02.2016