プロパティの昇格には、スキーマ内の 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);