次の方法で共有


BizTalk エディターの拡張

BizTalk エディターは、代替インスタンス メッセージ形式をサポートする拡張機能を許可するように設計されています。 実際、XML 形式は BizTalk エディターに組み込まれている唯一の形式です。 Microsoft BizTalk Server に含まれるフラット ファイル形式のサポートも、BizTalk エディター拡張機能として実装されるため、このような拡張機能によって追加できる機能の種類の良い例として機能します。

一般に、BizTalk エディター拡張機能は、カスタム データを、スキーマ ツリー内のノードに対応する XSD 要素に関連付けられた XML スキーマ定義 (XSD) 言語注釈として保持します。 ここでも、BizTalk エディターにフラット ファイル拡張子によって追加される注釈の広範なセットは、BizTalk エディター拡張機能がカスタム データをスキーマに保持する方法の良い例として機能します。

BizTalk エディター拡張機能は、BizTalk エディターの機能を拡張する .NET アセンブリです。 拡張機能として識別するには、アセンブリに IExtension インターフェイスを実装するクラスが 1 つ必要です。また、製品のインストール ディレクトリの Developer Tools\Schema Editor Extensions フォルダーの下に配置する必要があります。

拡張機能の開発者は、拡張機能を BizTalk エディターに公開するために必要なすべてのインターフェイスの定義を含む Microsoft.BizTalk.SchemaEditor.Extensibility.dllをアセンブリで参照する必要があります。 これらのインターフェイスは、 Microsoft.BizTalk.SchemaEditor.Extensibility 名前空間の下で定義されています。

IExtension インターフェイスは拡張機能のエントリ ポイントであり、BizTalk エディターは、プロパティ マネージャー、カスタム ビュー、スキーマ検証、ネイティブ インスタンス生成、ネイティブ インスタンス検証などの拡張機能にアクセスします。

特定のスキーマには複数の拡張機能を関連付けることができますが、特定の時点で標準として設定できるのは 1 つだけです。これは、スキーマ ノードの Standard プロパティで設定されます。 現在標準として設定されている拡張機能は、ネイティブ インスタンスの生成と検証、およびスキーマ検証に使用されます。

[スキーマ] ノードの [スキーマ エディター拡張機能 ] プロパティを編集することで、特定の スキーマ に拡張機能を関連付けることができます。 スキーマに関連付けられている拡張機能に関する情報は、次の XSD フラグメントに示すように、スキーマ要素の 注釈 要素内の スキーマ 自体に格納されます。

<?xml version="1.0" encoding="utf-16" ?>   
<xs:schema xmlns="http://BizTalk_Server_Project1.Schema11"  
        xmlns:b="http://schemas.microsoft.com/BizTalk/2003"  
        targetNamespace="http://BizTalk_Server_Project1.Schema11"  
        xmlns:xs="http://www.w3.org/2001/XMLSchema">  
    <xs:annotation>  
        <xs:appinfo>  
            <schemaEditorExtension:schemaInfo namespaceAlias="b"  
                extensionClass="Microsoft.BizTalk.FlatFileExtension.FlatFileExtension"  
                standardName="Flat File"  
                xmlns:schemaEditorExtension="http://schemas.microsoft.com/BizTalk/2003/SchemaEditorExtensions" />  
            <b:schemaInfo schema_type="document" root_reference="Root"  
                is_receipt="no" schema_name="abc"  
                standard="Flat File"  
                count_positions_by_byte="false" />   
        </xs:appinfo>  
    </xs:annotation>  
    <xs:element name="Root">  
        ...  
  

拡張オブジェクトをインスタンス化した後、フレームワークは IExtension インターフェイスの Initialize メソッドを呼び出し、拡張機能がスキーマ ツリーに関する情報にアクセスできるように ITree オブジェクトを渡します。 たとえば、拡張機能は 、ITree.RootNode プロパティにアクセスして、すべての子ノードを走査できます。

このセクションでは、BizTalk エディター拡張機能を BizTalk エディター環境に統合し、既存の BizTalk エディター コマンドにフックする方法について説明します。

このセクションにて