スキーマ リゾルバー コンポーネント (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 | パイプライン コンポーネントで使用する仮想ストリームの実装。 |
このサンプルのビルドと初期化
次の手順を使用して、スキーマ リゾルバ コンポーネント サンプルをビルドおよび初期化します。
このサンプルを作成および初期化するには
コマンド ウィンドウで、ディレクトリを次のフォルダーに変更します (cd)。
<Samples Path>\Pipelines\SchemaResolverComponent
ファイル Setup.bat を実行すると、次のアクションが実行されます。
コンポーネントをビルドします。
コンポーネント アセンブリを BizTalk \Pipeline \Pipeline components フォルダにコピーします。
サンプル BizTalk プロジェクトをビルドして展開します。
受信場所と送信ポートを構成し、それらを開始します。
Note
このサンプルを実行する前に、ビルド処理および初期化処理でエラーが報告されていないことを確認してください。
このサンプルの実行
次の手順を使用して、スキーマ リゾルバ コンポーネント サンプルを実行します。
このサンプルを実行するには
POInstance.txt、PRInstance.txt、SOInstance.txt、および SRInstance.txt ファイルを受信場所 <のインストール パス>\SDK\Samples\Pipelines\SchemaResolverComponent\In にドロップします
Installdir>\SDK\Samples\Pipelines\SchemaResolverComponent\Out フォルダーに<書き込まれた 4 つの .xml ファイルを確認します。