правильный синтаксис для bpel bpel:doXslTransform

Я пытаюсь выполнить преобразование XSL в структуре xml в операторе присваивания bpel. Есть проблема с синтаксисом, но я не могу найти официальную документацию. Примеры есть по всему Интернету, но я не нашел понятное объяснение. Вот мой лучший снимок. Что делают последние два параметра? Почему eclipse говорит, что первый аргумент должен быть литералом, хотя test3.xsl является строкой?

<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>

person bernie2436    schedule 23.04.2013    source источник


Ответы (3)


Сигнатура doXSLTransform выглядит следующим образом:

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

Первый параметр — это имя сценария XSLT, второй параметр — это XPath, идентифицирующий исходный документ (например, переменная, часть, набор узлов, узел). Третий и четвертый параметры — это пара ключ-значение, строка — это ключ, а объект — это значение. Эти пары сопоставляются с контекстом параметров скрипта, так что вы можете получить доступ к этим значениям по их именам в скрипте. Этих пар может быть сколько угодно.

Лучшим ресурсом для поиска таких вещей является спецификация WS-BPEL 2.0., doXSLTransform описан в разд. 8.4

person vanto    schedule 23.04.2013
comment
Почему eclipse не распознает первый параметр как строку? ‹![CDATA[bpel:doXslTransform(urn:test3.xsl, $personalInfoServiceOutput.parameters)]]› // ошибка: первый аргумент doxsltransform должен быть строкой - person bernie2436; 23.04.2013
comment
Вы пробовали это с одинарными кавычками? - person vanto; 23.04.2013

Когда я использую следующий код:

<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, он работает нормально.

Вы можете попробовать с этим.

person NGoyal    schedule 04.06.2013

Я столкнулся с той же проблемой. Согласен с NGoyal. Показывает ошибку в BPEL, но работает при развертывании.

person user3061250    schedule 12.02.2015