次の方法で共有


プロパティの宣伝

プロパティの昇格には、スキーマ内の Field 要素 ノードまたは フィールド属性 ノードを 識別フィールド または プロパティ フィールドに昇格させる必要があります。 レコード ノードに単純なコンテンツがある場合は、レコード ノードをプロパティ フィールドとして昇格することもできます ([レコード] ノードの [コンテンツ タイプ] プロパティを SimpleContent に設定)。 このセクションでは、ノードを 識別フィールド または プロパティ フィールドとして昇格する手順について説明します。

レコード (単純なコンテンツを含む)、Field 要素、またはフィールド属性ノードをプロパティ フィールドとして昇格するには、最初にプロパティ スキーマと呼ばれる特殊な種類のスキーマを定義できます。 プロパティ スキーマは、レコード (単純なコンテンツを含む)、Field 要素、またはフィールド属性ノードを昇格させるフィールド要素ノードの非構造化セットを定義します。 プロパティ スキーマを作成する手順については、「プロパティ スキーマを 作成する方法」を参照してください。

または、新しいフィールド要素フィールド属性、またはレコード (単純なコンテンツを含む) ノードを昇格するたびに、1 つのプロパティ スキーマを自動的に作成および更新するクイック プロモーション機能を使用することもできます。

フィールドは、 識別 フィールドと プロパティ フィールドの両方として昇格できます。

クイック 昇格機能は、昇格されたノードの名前を持つ新しいプロパティを挿入することで、プロパティ スキーマを変更します。

Von Bedeutung

昇格した後は、スキーマ内のフィールドを移動したり名前を変更したりしないでください。 スキーマ フィールドを移動または名前変更しても、BizTalk エディターは昇格されたフィールドの場所を定義する XPath を更新しません。

XSD データ型と CLR データ型

プロパティの昇格など、一部の場所では、XSD データ型が共通言語ランタイム (CLR) データ型に昇格されます。 次の表に、昇格可能な XSD データ型と、対応する CLR データ型を示します。

XSD データ型 CLR データ型
anyURI
ボーリアン ボーリアン
バイト sbyte
日付 日付と時間
日時 日付と時間
小数 小数
ダブル ダブル
実体
浮く シングル
gDay 日付と時間
gMonth(ジーマンス) 日付と時間
gMonthDay(特定の月と日を表すXMLスキーマデータタイプ) 日付と時間
gYear 日付と時間
gYearMonth (年と月を示すXMLスキーマのデータ型) 日付と時間
身分証明書
IDREF
整数 Int32
整数 小数
言語
名前
NCName
負の整数 小数
NMTOKEN
非負整数 小数
非正整数 小数
正規化された文字列
記法
正の整数 小数
QName
短い Int16
時間 日付と時間
トークン
符号なしバイト バイト
符号なし整数 UInt32
符号なし短整数 UInt16

昇格では、base64Binary、duration、ENTITES、hexBinary、IDREFS、long、NMTOKENS、unsignedLong の XSD データ型はサポートされていません。

プロパティの促進に関する制限事項

物件を宣伝する場合は、次の点を考慮してください。

  • 昇格されたプロパティの長さは 256 文字に制限されますが、書き込まれたプロパティには長さの制限はありません。

  • 昇格されたプロパティはメッセージ ルーティングで使用され、比較とストレージの効率上の理由からサイズが制限されます。 書き込まれたプロパティのサイズにハード制限はありませんが、コンテキストで過度に大きな値を使用するとパフォーマンスに影響します。これらの値は引き続き処理され、メッセージと共に渡される必要があるためです。 識別フィールドは、書き込まれたプロパティの例です。

  • レコード ノードを 識別フィールドとして昇格することはできません。

  • 昇格されたプロパティは、繰り返しではない要素/属性に制限されます。

  • 同じルート ノードに属するフィールドを同じプロパティに昇格しないでください。 このような昇格では、コンパイルまたはデプロイ エラーが発生します。

  • メッセージ コンテキスト内には、昇格されないため使用できないプロパティがいくつかあります。 BTS.ReceiveLocationName プロパティは、そのようなプロパティの 1 つです。 新しいプロパティ スキーマまたは新しい BizTalk Server プロジェクトを開発に追加できる場合は、オーケストレーション内からこのプロパティにアクセスできます。

    プロパティ値は、プロパティ ターゲットの名前空間とプロパティ名によって識別されます。 次の例は、コードで受信場所にアクセスする方法を示しています。

    string receiveLocationName = pInMsg.Context.Read("ReceiveLocationName", sysNamespace);

このセクションにて