Назначение списка строк в BPEL - PullRequest
1 голос
/ 04 ноября 2011

Есть ли способ назначить список строк из входной переменной для вызова входной переменной? Проблема в том, что в моем веб-сервисе есть несколько входов, поэтому я не могу скопировать элемент обертки во входной переменной в переменную обертки Вызовите переменную. Скопируйте фрагмент кода здесь:

<assign name="Assign1">
            <copy>
                <from variable="inputVariable" part="payload"
                      query="/ns2:process/ns2:dsaName"/>
                <to variable="Invoke1_processList_InputVariable"
                    part="parameters" query="/ns1:processList/dsaName"/>
            </copy>
            <copy>
                <from variable="inputVariable" part="payload"
                      query="/ns2:process/ns2:linesOfData"/>
                <to variable="Invoke1_processList_InputVariable"
                    part="parameters" query="/ns1:processList/linesOfData"/>
            </copy>
            <copy>
                <from variable="inputVariable" part="payload"
                      query="/ns2:process/ns2:description"/>
                <to variable="Invoke1_processList_InputVariable"
                    part="parameters" query="/ns1:processList/description"/>
            </copy>
            <copy>
                <from variable="inputVariable" part="payload"
                      query="/ns2:process/ns2:application"/>
                <to variable="Invoke1_processList_InputVariable"
                    part="parameters" query="/ns1:processList/application"/>
            </copy>
        </assign>

Проблема в том, что только один имеет тип списка, все остальные имеют строковый тип. XML для этого:

<element name="process">
            <complexType>
                <sequence>
                     <element name="dsaName" type="string" minOccurs="0"/>
                    <element name="linesOfData" type="string" minOccurs="0" maxOccurs="unbounded"/>

                    <element name="description" type="string" minOccurs="0"/>
            </sequence>
    </complexType>
        </element>
    <element name="processResponse">
        <complexType>
            <sequence>
                <element name="result" type="string" minOccurs="0" maxOccurs="unbounded"/>
            </sequence>
        </complexType>
    </element>
</schema>

1 Ответ

0 голосов
/ 05 ноября 2011

Глядя на свою схему, вы можете использовать операцию doXSLTransform, где <xsl:for-each> используется для чтения типа списка (здесь это linesOfData) и добавления каждого из этих элементов к Invoke1_processList_InputVariable.

...