目次

Search

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

XMLガイド

XMLガイド

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を返して、セッションログにエラーを書き込みます。