次の方法で共有


スキーマ リゾルバー コンポーネント (BizTalk Server サンプル)

Schema Resolver コンポーネントのサンプルでは、BizTalk Server フラット ファイル逆アセンブラー コンポーネントの機能を拡張する方法を示します。

フラット ファイル逆アセンブラ コンポーネントでは、通常デザイン時に解析スキーマを定義することが必要です。 そのため、同じ受信場所で異なるフラット ファイル ドキュメントを受信する場合は、受信パイプラインに複数のフラット ファイル逆アセンブラ (つまりスキーマごとに 1 つのフラット ファイル逆アセンブラ) を含めます。 実行時に、パイプライン プローブ機能を使用して、適切な逆アセンブラ コンポーネントが選択されます。 ただし、多数のフラット ファイル スキーマがある場合は、このアプローチのコストが高くなります。これは、対応するそれぞれの逆アセンブラ コンポーネントをプローブすることで、パイプラインのパフォーマンスが低下するためです。

このサンプルの処理

スキーマ リゾルバ コンポーネントは、フラット ファイル逆アセンブラ コンポーネントのスキーマを選択する、もう 1 つの方法を示します。 このサンプルでは、4 つのスキーマが定義されており、各スキーマのメッセージの最初の 2 文字は一意です。 一意である最初の 2 文字、および対応するスキーマの間でマッピングが定義されます。 入力メッセージがスキーマ リゾルバ コンポーネントに提供されると、最初の 2 文字が読み取られ、対応するドキュメントに使用するスキーマが決定されて、メッセージ コンテキストでスキーマ情報が保存された後に、標準のフラット ファイル逆アセンブラ コンポーネントが呼び出されます。 標準フラット ファイル逆アセンブラ コンポーネントはメッセージ コンテキストからスキーマ情報を読み取り、そのスキーマを使用してドキュメントを解析します。

このサンプルの場所

<Samples Path>\Pipelines\SchemaResolverComponent\

次の表は、このサンプルで使用したファイルを示し、その目的を説明しています。

ファイル 説明
SchemaResolverSample.sln カスタム パイプライン コンポーネントを実行する BizTalk プロジェクトのソリューション。
SchemaResolverSample.btproj カスタム パイプライン コンポーネントを実行する BizTalk プロジェクト。
SchemaResolverRP.btp カスタム コンポーネントを含む受信パイプライン。
PurchaseOrder.xsd、PurchaseRequest.xsd、SalesOrder.xsd、SalesRequest.xsd フラット ファイル スキーマ。
POInstance.txt、PRInstance.txt、SOInstance.txt、SRInstance.txt 対応するフラット ファイル ドキュメント インスタンス。
SchemaResolverFlatFileDasm.sln パイプライン コンポーネントの実装のソリューション。
SchemaResolverFlatFileDasm.csproj パイプライン コンポーネントの実装の C# プロジェクト。
SchemaResolverFlatFileDasmComp.cs パイプライン コンポーネントの実装。
SeekableReadOnlyStream.cs コンポーネントで使用するシーク可能な読み取り専用ストリームの実装。
VirtualStream.cs パイプライン コンポーネントで使用する仮想ストリームの実装。

このサンプルのビルドと初期化

次の手順を使用して、スキーマ リゾルバ コンポーネント サンプルをビルドおよび初期化します。

このサンプルを作成および初期化するには

  1. コマンド ウィンドウで、ディレクトリを次のフォルダーに変更します (cd)。

    <Samples Path>\Pipelines\SchemaResolverComponent

  2. ファイル Setup.bat を実行すると、次のアクションが実行されます。

    • コンポーネントをビルドします。

    • コンポーネント アセンブリを BizTalk \Pipeline \Pipeline components フォルダにコピーします。

    • サンプル BizTalk プロジェクトをビルドして展開します。

    • 受信場所と送信ポートを構成し、それらを開始します。

    Note

    このサンプルを実行する前に、ビルド処理および初期化処理でエラーが報告されていないことを確認してください。

このサンプルの実行

次の手順を使用して、スキーマ リゾルバ コンポーネント サンプルを実行します。

このサンプルを実行するには

  1. POInstance.txt、PRInstance.txt、SOInstance.txt、および SRInstance.txt ファイルを受信場所 <のインストール パス>\SDK\Samples\Pipelines\SchemaResolverComponent\In にドロップします

  2. Installdir>\SDK\Samples\Pipelines\SchemaResolverComponent\Out フォルダーに<書き込まれた 4 つの .xml ファイルを確認します。

参照

パイプライン (BizTalk Server Samples フォルダー)