ひとつ以上の入力のXMLに対して更新箇所をXPathで指定して、別のノードを差し込みます。
入力 | フォーマット | XML |
---|---|---|
接続数 | 無制限 | |
出力 | フォーマット | XML |
説明 | ベースとするXML で指定された入力のXMLを更新したXML |
名前 | プロパティ型 | マッピング | 説明 |
---|---|---|---|
ベースとするXML | componentName | - |
入力ストリームのうち、更新のベースとなるストリームを出力したコンポーネント名を指定します。 このプロパティで指定したコンポーネントの出力ストリームはストリームコンテナであってはいけません。 |
更新 | category | - | ベースとするXML で指定されたXMLに対する更新内容を定義します。 詳しくは、下記トピック「更新内容の定義」を参照してください。 |
ローカル変数 | category | 入力&出力 |
コンポーネント内でのみ有効なローカル変数を定義します。 式中では「$local.変数名」として参照できます。 |
コミット | 何もしません。 |
---|---|
ロールバック | 何もしません。 |
タイプ | パラメーター | エラー処理フロー へのストリーム | エラー コード | 説明 |
---|---|---|---|---|
汎用 | なし | コンポーネントの入力ストリーム | なし | XPath式が不正な場合 |
対象XPath式と参照XPath式は、XPath式エディタを使ってXMLのツリーからの選択により自動生成したXPathをプロパティに指定することができます。詳細については下記トピック「XPath式エディタ」を参照してください。
XPath式の中ではローカル変数の他にフロー変数とシステム変数が使用できます。
(外部変数セットは使用することができません。)
フロー変数 | $flow.<フロー変数名> |
---|---|
システム変数 | $system.<システム変数名>(英語名) |
ローカル変数 | $local.<変数名> |
変数を使用することにより条件にあうノードだけを選択する式を書くことも可能です。
例) /root/record[@id=$local.var1]
式中の名前空間プレフィクスの解決は、入力ストリームのフィールド定義中の名前空間定義によって行われます。
このコンポーネントのフィールド定義ではないことに注意してください。
XPath式エディタはプロパティ値にXPathを指定する場合にその入力をサポートするためのエディタです。ツリーからノードを選択してそこまでのXPathをプロパティに設定することができます。
XPathを指定するフィールドの右にある「...」をクリックすると起動します。
ツリーにはXPathの対象となるストリームのフィールド定義が表示されます。例えば、XPathNodesetコンポーネントでは入力ストリームがXPathの対象となり、そのフィールド定義が表示されます。コンポーネントの入力側にリンクが繋がっていない場合、入力ストリームにフィールド定義がされていない場合は初期状態では何も表示されません。
任意のXMLを読み込み、その構造をツリーに表示させることができます。また、ツリーで選択したノードの値(属性値または要素内容)が値タブに表示され、それを条件式の指定に利用することができます。
サンプル参照からXMLを読み込んでいる場合、「サンプルをxfpに保存する」チェックボックスをオンにすると、読み込んだXMLがxfpファイル(プロジェクトファイル)に保存され、次回にxfpファイルを開いた場合同じXMLを参照することができます。チェックボックスがオフの場合、読み込んだXMLはエディタを保存されません。次回に使用したい場合は再度「サンプル参照」ボタンから読み込みます。
注意:サンプルXMLはコンポーネントの実行に必要な情報ではありません。ファイルサイズの大きなXMLを保存するとxfpファイル(プロジェクトファイル)のファイルサイズが大きくなり、保存やコンパイルにかかる時間も増えるため開発やテストの段階のみ保存するようにしてください。
ツリーでノードを選択すると、そのXPathが「選択パス」欄に表示されます。「選択パスをXPathにコピー」のボタンを押すとそのパスが「XPath」欄にコピーされます。 「XPath」欄は編集可能なテキストフィールドで、複雑なXPathを指定する場合はそこに直接記述することができます。
フロー変数やローカル変数などコンポーネントで使用可能な変数は変数タブにリストされています。
ツリーで選択したパスがXPathの一部を構成する場合は「選択パスへの条件とする」ボタンで変数との比較をXPathに追加することができます。
例
XPath | /School/Class/Student |
---|---|
選択パス | /School/Class/@name |
変数 | $flow.var1 |
条件追加後のXPath | /School/Class[@name=$flow.var1]/Student |
選択パス「/School/Class/@name」はXPathで指定されている「/School/Class/Student」の上位に存在するので、条件式として設定することができます。 選択パスが「/School/Class/Teacher/@name」のようにXPathとは別のパスを指している場合は「選択パスへの条件とする」ボタンは無効となります。
サンプルXMLを参照している場合は選択パスに実際に設定されている値が値タブにリストされています。 ツリーでの選択パスがXPathの一部を構成する場合は「選択パスへの条件とする」ボタンで値との比較をXPathに追加することができます。
例
XPath | /School/Class/Student |
---|---|
選択パス | /School/Class/@name |
値 | 1組 |
条件追加後のXPath | /School/Class[@name="1組"]/Student |
条件追加が可能なルールは変数の場合と同じです。