ページの先頭行へ戻る
Interstage Service Integrator V9.5.0 アプリケーション開発ガイド
FUJITSU Software

C.2.4 XML Operationの定義

XML Operationでは、以下の操作ができます。

該当する要素のあり/なしによる動作を、操作別に以下に示します。

種別

操作

該当要素あり

該当要素なし

要素

追加

要素を追加

要素を追加

更新

要素内容を更新

エラー(例外をスロー)

削除

要素を削除

エラー(例外をスロー)

挿入

要素を挿入

要素を挿入

属性

追加

属性値を更新

属性を追加

更新

属性値を更新

エラー(例外をスロー)

削除

属性を削除

エラー(例外をスロー)

挿入

-(操作不可)

-(操作不可)

XPathについて

XML Operationでは、要素/属性をXPathで指定できます。

注意

  • XPathは、絶対パスで指定してください。相対パスは使用できません。

  • 複数の同一要素に対して、一括に操作することはできません。複数の同一要素に対して操作をする場合は、XML Operationを複数回呼び出してください。

  • 配列のインデックスを指定しないと、最初に出現した要素が指定されたとみなされます。

  • 以下は、ISI 9.0以前のXPath指定を行う場合に注意してください。

    • ワイルドカードは指定できません。

    • 軸指定は“/”と“@”だけ使用できます。

XPathの指定例については、“ISI Studio ヘルプ”を参照してください。
なお、ISI 9.0以前のXPath指定を行うかどうかの設定については、“ISI 導入ガイド”を参照してください。

C.2.4.1 追加(固定値)

ペイロードに要素/属性を追加するには、以下のようにします。

なお、追加する要素は、共通メッセージのヘッダから取得することも可能です。

指定例

実行ステップ情報の指定例は、以下のとおりです。この例では、現在のペイロードの“com.fujitsu.esi.xpath2”で示される位置の最後に、要素名が“company”で、値が“Fujitsu”の要素を追加しています。

:
    <StepInformation stepname="addXML">
        <MediatorFunction name="XMLOperation">
           <Method type="execute" name="add">
              <ParameterList>
                  <Parameter name="esi.XmlOperation.XPath" valuetype="esi.header">com.fujitsu.esi.xpath2</Parameter>
                  <Parameter name="esi.XmlOperation.addType" valuetype="direct">element</Parameter>
                  <Parameter name="esi.XmlOperation.position" valuetype="direct">last</Parameter>
                  <Parameter name="esi.XmlOperation.name" valuetype="direct">company</Parameter>
                  <Parameter name="esi.XmlOperation.value" valuetype="direct">Fujitsu</Parameter>
              </ParameterList>
           </Method>
        </MediatorFunction>
    </StepInformation>
:
表C.76 定義項目

キー名

説明

指定例

StepInformation

stepname

ステップ名を指定します。シーケンスブロックに指定したステップ名を指定してください。

addXML

MediatorFunction

name

メディエータファンクション名“XMLOperation”を指定します。

XMLOperation

Method

type

実行種別“execute”を指定します。

execute

name

XMLOperationのメソッド名“add”を指定します。

add

Parameter

1

編集するXML文書内の編集基準となるXPathを指定します。

name

“esi.XmlOperation.XPath”を指定します。

esi.XmlOperation.XPath

valuetype

パラメタに指定する値のタイプを指定します。

esi.header(共通メッセージ内のヘッダパラメタ)

編集するXML文書内の基準となる位置をXPathで指定します。

com.fujitsu.esi.xpath2

2

要素追加か属性追加か指定します。

name

“esi.XmlOperation.addType”を指定します。

esi.XmlOperation.addType

valuetype

パラメタに指定する値のタイプ“direct”(固定値)を指定します。

direct

要素追加か属性追加かを指定します。

  • element:要素

  • attribute:属性

element(要素)

3

追加位置を指定します。

name

“esi.XmlOperation.position”を指定します。

esi.XmlOperation.position

valuetype

パラメタに指定する値のタイプ“direct”(固定値)を指定します。

direct

追加位置を指定します。ただし、属性追加を指定した場合は、必ず最後に追加され、指定した値は無効となります。

  • before:前

  • last:最後

last(最後)

4

追加する要素名/属性名を指定します。

name

“esi.XmlOperation.name”を指定します。

esi.XmlOperation.name

valuetype

パラメタに指定する値のタイプ“direct”(固定値)を指定します。

direct

追加する要素名/属性名を指定します。

company

5

追加する要素内容/属性値を指定します。

name

“esi.XmlOperation.value”を指定します。

esi.XmlOperation.value

valuetype

パラメタに指定する値のタイプを指定します。

direct(固定値)

追加する要素内容/属性値を指定します。

Fujitsu

注意

共通メッセージのヘッダに格納されている値を、追加する要素内容・属性値として追加する場合は、パラメタ“esi.XmlOperation.value”に共通メッセージのヘッダから取得した値を指定してください。

C.2.4.2 追加(XMLデータから情報取得)

XMLデータから情報を取得して、ペイロードに要素/属性を追加するには、以下のようにします。

追加する要素/属性は、XMLデータから取得します。

指定例

実行ステップ情報の指定例は、以下のとおりです。この例では、現在のペイロードの“com.fujitsu.esi.xpath2”で示される位置の前に、以下の属性を追加しています。

表C.77 定義項目

キー名

説明

指定例

StepInformation

stepname

ステップ名を指定します。シーケンスブロックに指定したステップ名を指定してください。

addFromXML

MediatorFunction

name

メディエータファンクション名“XMLOperation”を指定します。

XMLOperation

Method

type

実行種別“execute”を指定します。

execute

name

XMLOperationのメソッド名“addFromXML”を指定します。

addFromXML

Parameter

1

編集するXML文書内の編集基準となるXPathを指定します。

name

“esi.XmlOperation.XPath”を指定します。

esi.XmlOperation.XPath

valuetype

パラメタに指定する値のタイプを指定します。

esi.header(共通メッセージ内のヘッダパラメタ)

編集するXML文書内の基準となる位置をXPathで指定します。

com.fujitsu.esi.xpath2

2

要素追加か属性追加か指定します。

name

“esi.XmlOperation.addFromAnotherXMLType”を指定します。

esi.XmlOperation.addFromAnotherXMLType

valuetype

パラメタに指定する値のタイプ“direct”(固定値)を指定します。

direct

要素追加か属性追加か指定します。

  • element:要素

  • attribute:属性

attribute(属性)

3

追加位置を指定します。

name

“esi.XmlOperation.position”を指定します。

esi.XmlOperation.position

valuetype

パラメタに指定する値のタイプ“direct”(固定値)を指定します。

direct

追加位置を指定します。ただし、属性追加を指定した場合は、必ず最後に追加され、指定した値は無効となります。

  • before:前

  • last:最後

before(前)

4

追加する要素名/属性名を指定します。

name

“esi.XmlOperation.name”を指定します。

esi.XmlOperation.name

valuetype

パラメタに指定する値のタイプ“direct”(固定値)を指定します。

direct

要素名/属性名を指定します。

company

5

追加する要素/属性が格納されているXML文書を指定します。

name

“esi.XmlOperation.srcXML”を指定します。

esi.XmlOperation.srcXML

valuetype

パラメタに指定する値のタイプ“esi.payload”(共通メッセージ内のペイロード)を指定します。

esi.payload

追加する要素/属性が格納されているXML文書を指定します。

@start(シーケンス起動時のペイロード)

6

追加する要素/属性が格納されている位置を指すXPath

name

“esi.XmlOperation.srcXPath”を指定します。

esi.XmlOperation.srcXPath

valuetype

パラメタに指定する値のタイプを指定します。

esi.header(共通メッセージ内のヘッダパラメタ)

追加する要素/属性が格納されている位置を指すXPathを指定します。

com.fujitsu.esi.xpath1

C.2.4.3 挿入

ペイロードに要素を挿入するには、以下のようにします。

指定例

実行ステップ情報の指定例は、以下のとおりです。この例では、現在のペイロードの“com.fujitsu.esi.xpath2”で示される位置の前に、シーケンス起動時のペイロードの“com.fujitsu.esi.xpath1”で示される要素内容を追加しています。

:
    <StepInformation stepname="insert">
        <MediatorFunction name="XMLOperation">
            <Method type="execute" name="insert">
                <ParameterList>
                    <Parameter name="esi.XmlOperation.XPath" valuetype="esi.header">com.fujitsu.esi.xpath2</Parameter>
                    <Parameter name="esi.XmlOperation.position" valuetype="direct">before</Parameter>
                    <Parameter name="esi.XmlOperation.srcXML" valuetype="esi.payload">@start</Parameter>
                    <Parameter name="esi.XmlOperation.srcXPath" valuetype="esi.header">com.fujitsu.esi.xpath1</Parameter>
                </ParameterList>
            </Method>
        </MediatorFunction>
    </StepInformation>
:
表C.78 定義項目

キー名

説明

指定例

StepInformation

stepname

ステップ名を指定します。シーケンスブロックに指定したステップ名を指定してください。

insert

MediatorFunction

name

メディエータファンクション名“XMLOperation”を指定します。

XMLOperation

Method

type

実行種別“execute”を指定します。

execute

name

XMLOperationのメソッド名“insert”を指定します。

insert

Parameter

1

編集するXML文書内の編集基準となるXPathを指定します。

name

“esi.XmlOperation.XPath”を指定します。

esi.XmlOperation.XPath

valuetype

パラメタに指定する値のタイプを指定します。

esi.header(共通メッセージ内のヘッダパラメタ)

編集するXML文書内の基準となる位置をXPathで指定します。

com.fujitsu.esi.xpath2

2

挿入位置を指定します。

name

“esi.XmlOperation.position”を指定します。

esi.XmlOperation.position

valuetype

パラメタに指定する値のタイプ“direct”(固定値)を指定します。

direct

追加位置を指定します。

  • before:前

  • last:最後

before(前)

3

挿入する要素が格納されているXML文書を指定します。

name

“esi.XmlOperation.srcXML”を指定します。

esi.XmlOperation.srcXML

valuetype

パラメタに指定する値のタイプを指定します。

esi.payload(共通メッセージ内のペイロード)

挿入する要素が格納されているXML文書を指定します。

@start(シーケンス起動時のペイロード)

4

挿入する要素の位置を指すXPathを指定します。

name

“esi.XmlOperation.srcXPath”を指定します。

esi.XmlOperation.srcXPath

valuetype

パラメタに指定する値のタイプを指定します。

esi.header(共通メッセージ内のヘッダパラメタ)

挿入する要素が格納されている位置を指すXPathを指定します。

com.fujitsu.esi.xpath1

C.2.4.4 更新(固定値)

ペイロードの要素/属性を更新するには、以下のようにします。

なお、更新する要素/属性は、共通メッセージのヘッダから取得することも可能です。

指定例

実行ステップ情報の指定例は、以下のとおりです。この例では、現在のペイロードの“com.fujitsu.esi.xpath2”で示される位置の要素内容/属性値を“Fujitsu”に更新しています。

:
    <StepInformation stepname="modifyXML">
        <MediatorFunction name="XMLOperation">
            <Method type="execute" name="modify">
                <ParameterList>
                    <Parameter name="esi.XmlOperation.XPath" valuetype="esi.header">com.fujitsu.esi.xpath2</Parameter>
                    <Parameter name="esi.XmlOperation.value" valuetype="direct">Fujitsu</Parameter>
                </ParameterList>
            </Method>
        </MediatorFunction>
    </StepInformation>
:
表C.79 定義項目

キー名

説明

指定例

StepInformation

stepname

ステップ名を指定します。シーケンスブロックに指定したステップ名を指定してください。

modifyXML

MediatorFunction

name

メディエータファンクション名“XMLOperation”を指定します。

XMLOperation

Method

type

実行種別“execute”を指定します。

execute

name

XMLOperationのメソッド名“modify”を指定します。

modify

Parameter

1

編集するXML文書内の編集基準となるXPathを指定します。

name

“esi.XmlOperation.XPath”を指定します。

esi.XmlOperation.XPath

valuetype

パラメタに指定する値のタイプを指定します。

esi.header(共通メッセージ内のヘッダパラメタ)

編集するXML文書内の基準となる位置をXPathで指定します。

com.fujitsu.esi.xpath2

2

更新する要素内容/属性値を指定します。

name

“esi.XmlOperation.value”を指定します。

esi.XmlOperation.value

valuetype

パラメタに指定する値のタイプを指定します。

direct(固定値)

更新する要素内容/属性値を指定します。

Fujitsu

注意

共通メッセージのヘッダに格納されている値を、更新する要素内容・属性値として更新する場合は、パラメタ“esi.XmlOperation.value”に共通メッセージのヘッダから取得した値を指定してください。

C.2.4.5 更新(XMLデータから情報取得)

XMLデータから情報を取得して、ペイロードの要素/属性を更新するには、以下のようにします。

指定例

実行ステップ情報の指定例は、以下のとおりです。この例では、現在のペイロードの“com.fujitsu.esi.xpath2”で示される要素内容/属性値を、シーケンス起動時のペイロードの“com.fujitsu.esi.xpath1”で示される要素内容/属性値に更新しています。

:
    <StepInformation stepname="modifyFromXML">
        <MediatorFunction name="XMLOperation">
            <Method type="execute" name="modifyFromXML">
                <ParameterList>
                    <Parameter name="esi.XmlOperation.XPath" valuetype="esi.header">com.fujitsu.esi.xpath2</Parameter>
                    <Parameter name="esi.XmlOperation.srcXML" valuetype="esi.payload">@start</Parameter>
                    <Parameter name="esi.XmlOperation.srcXPath" valuetype="esi.header">com.fujitsu.esi.xpath1</Parameter>
                </ParameterList>
            </Method>
        </MediatorFunction>
    </StepInformation>
:
表C.80 定義項目

キー名

説明

指定例

StepInformation

stepname

ステップ名を指定します。シーケンスブロックに指定したステップ名を指定してください。

modifyFromXML

MediatorFunction

name

メディエータファンクション名“XMLOperation”を指定します。

XMLOperation

Method

type

実行種別“execute”を指定します。

execute

name

XMLOperationのメソッド名“modifyFromXML”を指定します。

modifyFromXML

Parameter

1

編集するXML文書内の編集基準となるXPathを指定します。

name

“esi.XmlOperation.XPath”を指定します。

esi.XmlOperation.XPath

valuetype

パラメタに指定する値のタイプを指定します。

esi.header(共通メッセージ内のヘッダパラメタ)

編集するXML文書内の基準となる位置をXPathで指定します。

com.fujitsu.esi.xpath2

2

更新する要素内容/属性値が格納されているXML文書を指定します。

name

“esi.XmlOperation.srcXML”を指定します。

esi.XmlOperation.srcXML

valuetype

パラメタに指定する値のタイプを指定します。

esi.payload(共通メッセージ内のペイロード)

更新する要素内容/属性値が格納されているXML文書を指定します。

@start(シーケンス起動時のペイロード)

3

更新する要素内容/属性値が格納されている位置を指すXPath

name

“esi.XmlOperation.srcXPath”を指定します。

esi.XmlOperation.srcXPath

valuetype

パラメタに指定する値のタイプを指定します。

esi.header(共通メッセージ内のヘッダパラメタ)

更新する要素内容/属性値を指定します。

com.fujitsu.esi.xpath1

C.2.4.6 削除

ペイロードの要素/属性を削除するには、以下のようにします。

注意

削除する要素の子要素も同時に削除されます。

指定例

実行ステップ情報の指定例は、以下のとおりです。この例では、現在のペイロードの“com.fujitsu.esi.xpath3”で示される要素/属性を削除しています。

:
    <StepInformation stepname="delete">
        <MediatorFunction name="XMLOperation">
            <Method type="execute" name="delete">
                <ParameterList>
                    <Parameter name="esi.XmlOperation.XPath" valuetype="esi.header">com.fujitsu.esi.xpath3</Parameter>
                </ParameterList>
            </Method>
        </MediatorFunction>
    </StepInformation>
:
表C.81 定義項目

キー名

説明

指定例

StepInformation

stepname

ステップ名を指定します。シーケンスブロックに指定したステップ名を指定してください。

delete

MediatorFunction

name

メディエータファンクション名“XMLOperation”を指定します。

XMLOperation

Method

type

実行種別“execute”を指定します。

execute

name

XMLOperationのメソッド名“delete”を指定します。

delete

Parameter

1

削除する要素内容/属性値の位置を指すXPathを指定します。

name

“esi.XmlOperation.XPath”を指定します。

esi.XmlOperation.XPath

valuetype

パラメタに指定する値のタイプを指定します。

esi.header(共通メッセージ内のヘッダパラメタ)

削除する要素内容/属性値を指定します。

com.fujitsu.esi.xpath3