目次

Search

  1. はじめに
  2. トランスフォーメーション
  3. ソーストランスフォーメーション
  4. ターゲットトランスフォーメーション
  5. アクセスポリシートランスフォーメーション
  6. B2B Data Transformation
  7. アグリゲータトランスフォーメーション
  8. クレンジングトランスフォーメーション
  9. データマスキングトランスフォーメーション
  10. データサービストランスフォーメーション
  11. 重複排除トランスフォーメーション
  12. 式トランスフォーメーション
  13. フィルタトランスフォーメーション
  14. 階層ビルダートランスフォーメーション
  15. 階層パーサートランスフォーメーション
  16. 階層プロセッサトランスフォーメーション
  17. 入力トランスフォーメーション
  18. Javaトランスフォーメーション
  19. JavaトランスフォーメーションAPIリファレンス
  20. ジョイナトランスフォーメーション
  21. ラベラトランスフォーメーション
  22. ルックアップトランスフォーメーション
  23. 機械学習トランスフォーメーション
  24. マップレットトランスフォーメーション
  25. ノーマライザトランスフォーメーション
  26. 出力トランスフォーメーション
  27. 解析トランスフォーメーション
  28. Pythonトランスフォーメーション
  29. ランクトランスフォーメーション
  30. ルータトランスフォーメーション
  31. ルール仕様トランスフォーメーション
  32. シーケンスジェネレータトランスフォーメーション
  33. ソータートランスフォーメーション
  34. SQLトランスフォーメーション
  35. 構造パーサートランスフォーメーション
  36. トランザクション制御トランスフォーメーション
  37. 共有体トランスフォーメーション
  38. Velocityトランスフォーメーション
  39. ベリファイヤトランスフォーメーション
  40. Webサービストランスフォーメーション

トランスフォーメーション

トランスフォーメーション

XML変換の例

XML変換の例

XMLファイル内に製品データがあり、別の形式のXMLに変換する必要があります。
変換するXMLファイルのproducts.xmlには、次の形式のデータが含まれています。
<?xml version="1.0" encoding="UTF-8"?> <document> <product> <id>1</id> <name>milk</name> <size>16 oz</size> </product> <product> <id>2</id> <name>water</name> <size> 8 oz</size> </product> </document>
XMLを変換して、各製品が独自の要素内に含まれるようにする必要があります(
<milk>...</milk>
など)。また、XMLファイル内のコメントにタイムスタンプを追加する必要があります。
ファイルを変換するには、まず、変換するXMLファイルのパスを含むソースファイルを作成して、マッピングがXMLファイルからデータを読み取れるようにします。その後、マッピングを作成します。
次の行を含む「filepath.txt」という名前のテキストファイルを作成します。
C:\XMLSources\products.xml
ソースファイルを作成したら、マッピングを作成します。次の図に、マッピングを示します。
マッピングには、ターゲットトランスフォーメーションに接続されているVelocityトランスフォーメーションに接続されているソーストランスフォーメーションが含まれています。
次の方法でトランスフォーメーションを構成します。
ソーストランスフォーメーション
ファイルパスを含むファイルからデータを読み取るようにソーストランスフォーメーションを設定し、ソース形式オプションを設定します。
[ソース]
タブで、ソースファイルにアクセスできる接続を選択し、ソースタイプを
[単一オブジェクト]
に設定して、ソースオブジェクトとしてfilepath.txtを選択します。
[形式オプション]
をクリックして、次のプロパティを設定します。
プロパティ
フラットファイルタイプ
区切り
引用符
なし
フィールドラベル
自動生成
最初のデータ行
1
Velocityトランスフォーメーション
Velocityトランスフォーメーションの入力を設定し、テンプレートを作成します。
[入力形式]
タブで、次のプロパティを設定します。
プロパティ
入力フィールド
ソーストランスフォーメーションからの受信文字列フィールド。
入力タイプ
ファイル
入力形式
XML
テンプレートの変数名
ルート
コードページ
UTF-8
[Velocityテンプレート]
タブで、テンプレートエディタに次のテンプレートを入力し、構文を検証します。
<?xml version="1.0" encoding="UTF-8"?> <!--Generation date: $function.call('Systimestamp')--> ## Convert each product to an element: <products> #foreach ($child in $root.getRootElement().getChildren() ) <$child.getChild("name").getText()> <id>$child.getChild("id").getText()</id> <size>$child.getChild("size").getText()</size> </$child.getChild("name").getText()> #end </products>
ターゲットトランスフォーメーション
実行時に作成されるフラットファイルターゲットにデータを書き込むように、ターゲットトランスフォーメーションを設定します。ターゲットファイルにヘッダーとテキスト修飾子文字が含まれないようにするために、形式オプションを設定します。
[ターゲット]
タブで、接続を選択し、ターゲットタイプを
[単一オブジェクト]
に設定します。
[オブジェクト]
フィールドの横にある
[選択]
をクリックします。
[実行時に新規作成]
を選択して、ファイル名に「products_converted.xml」と入力します。
[形式オプション]
をクリックして、テキスト修飾子を
[なし]
に設定します。
詳細プロパティで、ヘッダーオプションを
[ヘッダーなし]
に設定します。
マッピングを実行すると、ターゲットファイルのproducts_converted.xmlには次のXMLが含まれます。
<?xml version="1.0" encoding="UTF-8"?> <!--Generation date: 06/17/2020 17:45:41.341526--> <products> <milk> <id>1</id> <size>16 oz</size> </milk> <water> <id>2</id> <size> 8 oz</size> </water> </products>