SOAPでエンコードされた配列の使用方法

Oracle SOA Suiteでは、SOAP RPCでエンコードされた配列をサポートしています。このサポートにより、Oracle BPEL Process Managerは、SOAP 1.1配列を使用するSOAP Webサービス(RPCでエンコードされた)をコールするクライアントとして機能できます。

次の例に、myFavoriteNumbersというSOAP配列ペイロードの例を示します。

<myFavoriteNumbers SOAP-ENC:arrayType="xsd:int2">
<number>3</number>
<number>4</number>
</myFavoriteNumbers>

また、スキーマの要素の属性attributeFormDefaultおよびelementFormDefault"unqualified"に設定されていることを確認してください。次の例に詳細を示します。

attributeFormDefault="unqualified" elementFormDefault="unqualified"
targetNamespace="java:services" xmlns:s0="http://schemas.xmlsoap.org/wsdl/"
xmlns:xs="http://www.w3.org/2001/XMLSchema">

次の機能はサポートされていません。

  • SOAP配列を使用するBPELによって公開されるサービス

  • 部分的に送信される配列

  • スパース配列

  • 多次元配列

SOAPでエンコードされた配列を使用するには:

次の例に、BPELプロジェクトにbpelx:appendタグの付いたSOAP配列を準備する方法を示します。

  1. Oracle JDeveloperでBPELプロセスを作成します。

  2. 起動用のぺイロードを準備します。bpelx:appendは、項目をSOAP配列に追加するために使用されることに注意してください。

    <bpws:assign> 
       <bpws:copy>
          <bpws:from variable="input" part="payload" query="/tns:value"/>
          <bpws:to variable="request" part="strArray"
          query="/strArray/JavaLangstring"/>
       </bpws:copy>
    </bpws:assign>
    <bpws:assign>
       <bpelx:append>
       <bpelx:from variable="request" part="strArray"
       query="/strArray/JavaLangstring1"/>
       <bpelx:to variable="request" part="strArray" query="/strArray"/>
       </bpelx:append>
    </bpws:assign>
    
  3. 次のネームスペースをWSDLファイルにインポートします。WSDLスキーマ要素にインポート文が欠落している場合、Oracle JDeveloperではSOAP-ENCタグを認識しません。

    <xs:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />