目次

Search

  1. はじめに
  2. XMLの概念
  3. PowerCenterでのXMLの使用
  4. XMLソースに関する作業
  5. XMLエディタの使用
  6. XMLターゲットに関する作業
  7. XML Source Qualifierトランスフォーメーション
  8. Midstream XMLトランスフォーメーション
  9. 付録 A: XMLデータ型リファレンス
  10. 付録 B: XPathクエリ関数の参照

XML Guide

XML Guide

XML Parser入力の検証

XML Parser入力の検証

XML Parserトランスフォーメーションを設定して、XMLを解析する前に検証できます。XML Parserトランスフォーメーションは、スキーマに対してXMLを検証します。XMLがスキーマに対して有効ではない場合、行エラーが発生します。XML Parserトランスフォーメーションは、XMLメッセージと関連するエラーメッセージを個別の出力グループに返します。無効なXMLとエラーメッセージターゲットに渡すことができます。
たとえば、リアルタイムPowerCenterセッションは、XMLメッセージをWebSphere MQSeriesソースから読み込みます。セッションはソースベースのコミットで実行されます。コミットトランザクションのメッセージには、無効なXMLペイロードが含まれます。コミットの失敗を防止するには、有効なデータから個別の出力グループに無効なXMLを返すように、XML Parserトランスフォーメーションを設定できます。XML Parserトランスフォーメーションは、有効なXMLメッセージを処理してトランザクションを完了します。
セッションログには、[データフローオプションによって無効なペイロードのルーティング]を有効にするタイミングを示すメッセージが含まれます。セッションのトレースレベルをノーマルに設定すると、Integration Serviceは検証が正常終了したかどうかを示すセッションログにメッセージを書き込みます。このログメッセージには、XML ParserがXMLを検証するためにアクセスしたスキーマの場所が含まれます。XMLのストリーミングが有効で、XMLが無効である場合、Integration Serviceは無効なXMLを切り詰めてInvalid_Payloadポートに渡します。Integration Serviceは、セッションログに無効なXMLのログを記録します。
XMLを検証するようにXML Parserトランスフォーメーションを設定するには、[Midstream XML Parser]タブの[データフローオプションによって無効なペイロードのルーティング]オプションを有効にします。Designerは以下のポートをXML Parserトランスフォーメーションに追加します。
  • Invalid_Payload
    。無効なXMLメッセージをパイプラインに返します。XMLペイロードが有効な場合は、Invalid_PayloadポートにはNULL値が含まれます。このポートの精度は、DataInputポートの精度と同じです。
  • Error_Status
    。XML検証から返されたエラー文字列またはステータスが含まれます。XMLがカレント行に対して有効な場合は、Error_StatusにはNULL値が含まれます。このポートの精度は、DataInputポートの精度と同じです。
次の図に、無効なXMLメッセージをエラーターゲットテーブルにルーティングするXML パーサートランスフォーメーションを示します。
このマッピングには、MQSeriesソース、MQソース修飾子、およびデータを2つのターゲットに渡すXMLパーサートランスフォーメーションが含まれています。1つのターゲットは有効なXMLメッセージ用です。もう1つのターゲットは無効なXMLメッセージ用です。
マッピングには以下のオブジェクトが含まれます。
  • MQSeriesソース定義。
    メッセージデータフィールドに従業員のXMLデータが含まれます。
  • Source Qualifierトランスフォーメーション
    。WebSphere MQからデータを読み取ります。メッセージヘッダフィールドとメッセージデータフィールドを表すポートのセットが含まれます。
  • XML Parserトランスフォーメーション
    。XMLメッセージデータをDataInputポートで受け取ります。XMLが有効な場合、XML Parserトランスフォーメーションは従業員データを返してターゲットに渡します。XMLが無効な場合、XML ParserトランスフォーメーションはInvalid_PayloadポートにXMLを返します。エラーメッセージは、Error_Statusポートに返されます。
  • 従業員ターゲット定義
    。有効な従業員データの行を受け取ります。
  • XML_Errorsターゲット定義。
    無効なXMLとエラーメッセージを受け取ります。
トランスフォーメーションのセッションプロパティにXMLスキーマの場所属性を設定します。スキーマの名前と場所を入力して、XMLを検証します。XMLスキーマ定義に対して、ワークフロー、セッション、またはマッピング変数とパラメータを設定できます。複数のスキーマをセミコロンで区切ると、検証において複数のスキーマを設定できます。
DTDを入力XMLペイロードに含めると、検証においてDTDを使用できます。XMLスキーマの場所属性内にDTDを設定することはできません。また、DTDを使用して無効なXMLデータを無効なペイロードポートにルーティングすることはできません。
XMLのストリーミングを有効にする場合、Invalid_Payloadポートの精度がメッセージの最大サイズと一致することを確認します。ポートの精度がメッセージのサイズより低い場合、XML ParserトランスフォーメーションはInvalid_Payloadポートに切り詰めたXMLを返して、セッションログにエラーを書き込みます。