[Custom Extension XML]\(カスタム拡張 XML ファイルの選択\) ダイアログ ボックスを開くには、カスタム拡張 XML プロパティを使用します。このダイアログ ボックスでは、マップのカスタム拡張 XML を含むファイルを選択できます。
カテゴリ
コンパイラ
使用できる値
カスタム拡張 XML が含まれているマップ ファイルの有効な名前です。
ファイルの完全なパス名を入力するか、入力フィールドの右側にある省略記号ボタン (...) を使用して[ カスタム拡張 XML ファイルの選択 ] ダイアログ ボックスを開きます。
既定値
[なし] :
解説
マップでは、外部の .NET アセンブリで メソッドを呼び出すことができます。たとえば、スクリプト functoid を 使用してこれを行うことができます。 これを行うと、マップによって名前空間がこの外部 .NET アセンブリに関連付けられ、生成された XSLT 内で参照するようになります。 この XSLT は通常、次の形式です。
xmlns:ScriptNS{n}="http://schemas.microsoft.com/BizTalk/2003/ScriptNS{n}"
ここで {n} は、これまでマップ内でいくつのアセンブリが使用されたかを表す値です。 カスタム拡張 XML プロパティによって識別されるファイルは、この生成された名前空間を参照先の .NET アセンブリの FullyQualifiedName (FQN) にバインドするために使用されます。 TestMap 操作時および実行時にこのファイルを使用して .NET アセンブリがインスタンス化され、アセンブリ内部で定義されているメソッドが呼び出されます。 既定では、このファイルは BizTalk マッパーによって生成されます。 マップを検証すると、[出力] ウィンドウには、生成された XSLT ファイルへのリンクと、生成されたカスタム拡張 XML ファイルへのリンクが含まれます。後者は通常、タグ "<ExtensionObjects/>" を除いて空です。
空でないカスタム拡張 XML ファイルを生成するには、[Functoid スクリプトの構成] ダイアログ ボックス (Scripting Functoid の Script プロパティに関連付けられている) の外部アセンブリ フィールドを使用して、そのクラス内の外部アセンブリ、クラス、およびメソッドを識別します。 その後、マップを検証し、生成された XSLT およびカスタム XML ファイルの内容を確認します。 XSLT ファイルでは、 などの xmlns:ScriptNS{n}="http://schemas.microsoft.com/BizTalk/2003/ScriptNS{n}"
名前空間が使用され、カスタム拡張 XML ファイルによって、この名前空間と外部 .NET アセンブリの間のバインドが定義されます。
次のように、独自のカスタム拡張 XML ファイルをビルドし、それを参照するように カスタム拡張 XML ファイルを設定する必要があるケースは 2 つあります。
[カスタム XSLT パス] プロパティを使用してマップ ファイル全体に独自の XSLT を指定し、XSLT から外部 .NET アセンブリを呼び出す場合は、適切な名前空間からアセンブリへのバインドを提供する適切な形式のカスタム拡張 XML ファイルを作成する必要があります。
Scripting Functoid でインライン XSLT またはインライン XSLT 呼び出しテンプレート スクリプト型を使用し、その XSLT から外部 .NET アセンブリでメソッドを呼び出す場合は、適切な名前空間からアセンブリへのバインドを提供する適切な形式のカスタム拡張 XML ファイルを作成する必要があります。 これは、BizTalk マッパーでは、外部アセンブリ呼び出しを検索する XSLT への解析が行われないためです。 カスタム拡張 XML プロパティを使用して指定したバインディング情報は、マップのコンパイル時に既に生成されたバインディング情報 (外部アセンブリ オプションを使用するマップ内の他のスクリプト Functoid で必要なバインドなど) に追加されます。 マップを検証すると、その結果生成されたカスタム拡張 XML ファイルの内容に、ユーザーが指定したバインド情報と BizTalk マッパーによって生成されたバインド情報の和集合が保存されます。
次のカスタム拡張 XML ファイルの例では、名前空間 http://schemas.microsoft.com/BizTalk/2003/ScriptNS0
は CustomFunctions.MyClass という名前のクラスを含む "CustomFunctions.dll" という名前のアセンブリにバインドされています。
<ExtensionObjects>
<ExtensionObject
Namespace="http://schemas.microsoft.com/BizTalk/2003/ScriptNS0"
AssemblyName="CustomFunctions, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
ClassName="CustomFunctions.MyClass" />
</ExtensionObjects>
対応するマップによって生成された XSLT では、次の構文を使用して、この外部アセンブリ クラスの GetData メソッドが呼び出されます。
ScriptNS0:GetData(p1, p2, p3)
名前空間プレフィックス ScriptNS0 が名前空間 http://schemas.microsoft.com/BizTalk/2003/ScriptNS0
を参照している場合。
注意
カスタム拡張 XML プロパティを元に戻したりやり直したりすることはできません。