プロパティ スキーマ
昇格させたプロパティ
Microsoft BizTalk Server では、昇格されたプロパティを使用すると、さまざまなBizTalk Server コンポーネントがデータの主要な項目にアクセスできます。このコンテキストでは、メッセージ自体内で検索する方法を知らなくても、インスタンス メッセージ内に到着する識別フィールドとプロパティ フィールドと呼ばれます。 メッセージの種類ごとに、どのデータ項目をより高い表示可能レベルに昇格させるかを指定できます。 このようなフィールドの昇格の選択方法に応じて、関連するプロパティ スキーマを作成し、定義する必要があります。
Note
昇格するプロパティは非繰り返し要素または属性に限定されます。
ただし、識別フィールドはオーケストレーション内でのみアクセス可能であるため、対応するプロパティ スキーマを作成する必要はありません。 昇格させたメッセージ データにオーケストレーションからアクセスする場合にのみ、1 つ以上の識別フィールドとしてデータを昇格できます。
プロパティ フィールドは、さまざまな BizTalk Server コンポーネント (パイプラインおよびオーケストレーションなど) からアクセスできます。 プロパティ フィールドは、メッセージのルーティングに使用することもできます。 昇格させたメッセージ データにオーケストレーション以外のコンテキストからアクセスする場合、1 つ以上のプロパティ スキーマを作成して、昇格するデータを設定する必要があります。
プロパティ スキーマは、メッセージ スキーマに関連付ける特殊なスキーマです。 このスキーマは、インスタンス メッセージの特定の値をメッセージ コンテキストに昇格する場合に使用されます。 プロパティの昇格では、集中管理メカニズムを利用して、定義済みの主要な情報をインスタンス メッセージから抽出したり、BizTalk Server を介して渡されるメッセージの処理を担当する BizTalk Server コンポーネントへ簡単にアクセスしたりできます。
プロパティ スキーマの作成の概要
BizTalk Server のクイック昇格機能を使用して、既定のプロパティ スキーマを自動的に作成できます。 これは、プロパティ フィールドの昇格に必要なプロパティ スキーマを作成する最も簡単な方法です。 クイック プロモーションを実行する方法の詳細については、「 プロパティ フィールドとしてメッセージ コンテキストにデータをコピーする方法」を参照してください。
新しいプロパティ スキーマを作成することもできます。 BizTalk プロジェクトが開いたら、BizTalk プロジェクトを選択し、右クリックして [ 追加] を選択し、[ 新しい項目] をクリックして、[ スキーマ] をクリックします。
Note
プロパティ スキーマがメッセージ スキーマに関連付けられている場合、これらの 2 つのスキーマは、同じ BizTalk プロジェクトに属する必要があります。 異なる BizTalk プロジェクト内に、プロパティ スキーマと関連するメッセージ スキーマを分けて管理することはできません。
同じ名前空間を使用する 2 つのプロパティ スキーマがある場合は、これらのスキーマが異なるアセンブリで定義されていたとしても、実行時に適切なスキーマ解決は行われません。 この場合、実行時にルーティング エラーが発生します。
識別フィールドとプロパティ フィールド
プロパティの昇格には、識別フィールドとプロパティ フィールドの 2 種類があります。 プロパティ フィールドとして昇格させる場合は、プロパティ スキーマを使用します。 BizTalk エディターでは、[プロパティの昇格] ダイアログ ボックスを使用して、これらの種類のプロパティの昇格を管理します。このダイアログ ボックスには、[スキーマ] ノードの [プロパティの昇格] プロパティを使用してアクセスします。
Note
昇格できる値にはいくつかの制限があります。 詳細については、「 プロパティの昇格」の表を参照してください。
識別フィールドは、フィルター式に表示されません。 プロパティ フィールドだけがフィルター式に表示されます。
メッセージ スキーマと比較すると、プロパティ スキーマは単純です。 スキーマ ツリーでは、 Field Element ノードを Schema ノードの直接の子ノードとして挿入することのみが許可され、2 つのレベルの深さの構造が作成されます。 ほとんどの場合、メッセージ スキーマに表示される Field 要素 ノードの場合と同様に 、Field Element ノードのプロパティを設定します。 また、使用できるのは、XSD の単純型だけになります。
重要
他のスキーマで使われているスキーマの名前を変更することはできません。 このようなスキーマには、既に昇格が設定されたプロパティ スキーマなどがあります。 これらのスキーマの名前を変更した場合、使用中のスキーマは、スキーマの名前が変更されているため、他のスキーマを見つけることができなくなります。
Property Schema Base プロパティは、プロパティ スキーマに表示される Field Element ノードに固有です。 このプロパティは既定では空白ですが、 MessageDataPropertyBase または MessageContextPropertyBase のいずれかに設定すると、 propSchFieldBase 属性がこれらの値のいずれかと共に fieldInfo 注釈要素に追加されます。
propSchFieldBase 属性が MessageDataPropertyBase に設定されている場合、昇格されたプロパティの値は、メッセージ内のデータ (フィールドの値など) に対応することを意味します。 propSchFieldBase 属性が MessageContextPropertyBase に設定されている場合、昇格されたプロパティの値が封筒などの他の場所からのものであるか、パイプライン コンポーネントによって設定される可能性があることを意味します。
プロパティ スキーマの Field 要素ノードには、機密情報というプロパティもあります。[はい] に設定すると、対応する値が BizTalk エクスプローラーおよびメッセージ イベントおよびサービス インスタンスの追跡内から表示され続け、機密性が維持されます。 詳細については、UI ガイダンスと開発者 API 名前空間リファレンスの機密情報に関するページを参照してください。
次の XSD (XML Schema Definition) 言語表記のプロパティ スキーマには、注釈が含まれています。この注釈は、プロパティ スキーマ (schema_type="property") としてスキーマを識別する、スキーマ要素に関連付けられています。 また、Schema ノードの下に 3 つの Field Element ノードも含まれています。 PromProp1 という名前の最初の Field Element ノードには、 プロパティ スキーマ ベース プロパティに対して値が定義されていませんが、後者の 2 つの Field Element ノードでは、それぞれそのプロパティが MessageDataPropertyBase と MessageContextPropertyBase に設定されています。
<?xml version="1.0" encoding="utf-16" ?>
<xs:schema xmlns="http://BizTalk_Server_Project1.PropertySchema1"
xmlns:b="http://schemas.microsoft.com/BizTalk/2003"
targetNamespace="http://BizTalk_Server_Project1.PropertySchema1"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:annotation>
<xs:appinfo>
</xs:appinfo>
</xs:annotation>
<xs:element name="" type="xs:string">
<xs:annotation>
<xs:appinfo>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="" type="xs:string">
<xs:annotation>
<xs:appinfo>
</xs:appinfo>
</xs:annotation>
</xs:element>
<xs:element name="" type="xs:string">
<xs:annotation>
<xs:appinfo>
</xs:appinfo>
</xs:annotation>
</xs:element>
</xs:schema>