共用方式為


升級屬性

屬性的升級牽涉到將架構中的 Field 元素欄位屬性 節點升階為 辨別欄位屬性欄位。 如果[記錄] 節點的 [內容欄位] ([記錄] 節點的[內容類型] 屬性設定為SimpleContent) ,您也可以將[記錄] 節點升階為 [屬性欄位]。 本節提供將節點升級為 辨別欄位屬性欄位的逐步指示。

若要使用簡單內容) 、Field ElementField Attribute節點升級Record (做為屬性欄位,您可以先定義稱為屬性架構的特殊架構類型。 屬性架構會定義一組非結構化的 Field 元素節點,您可以使用簡單的內容) 、Field ElementField Attribute節點,將Record (升階到其中。 如需建立屬性架構的逐步指示,請參閱 如何建立屬性架構

或者,您可以使用 快速升階 功能,每當您升級新的 Field ElementField AttributeRecord (時,就會使用簡單的內容) 節點來自動建立和更新單一屬性架構。

注意

您可以將欄位升階為 辨別欄位屬性欄位

注意

快速升級功能會插入具有升級節點名稱的新屬性,藉此修改屬性架構。

重要

一旦您升級結構描述中的欄位之後,就不能將它移動或重新命名。 當您移動或重新命名結構描述欄位時,BizTalk 編輯器不會更新用來定義升級欄位位置的 XPath。

XSD 與 CLR 資料型別

在某些地方,例如在屬性升級中,XSD 資料型別會升級為 Common Language Runtime (CLR) 資料型別。 下表顯示可以升級的 XSD 資料型別以及對應的 CLR 資料型別。

XSD 資料型別 CLR 資料類型
anyURI 字串
Boolean 布林值
Byte sbyte
Date Datetime
dateTime Datetime
Decimal Decimal
Double Double
ENTITY 字串
Float Single
gDay DateTime
gMonth DateTime
gMonthDay DateTime
gYear DateTime
gYearMonth DateTime
識別碼 String
IDREF 字串
Int Int32
整數 Decimal
Language String
名稱 字串
NCName 字串
negativeInteger Decimal
NMTOKEN 字串
nonNegativeInteger Decimal
nonPositiveInteger Decimal
normalizedString 字串
NOTATION 字串
positiveInteger Decimal
QName 字串
Short Int16
字串 字串
時間 Datetime
語彙基元 字串
unsignedByte Byte
unsignedInt UInt32
unsignedShort UInt16

注意

XSD 的資料型別 base64Binary、duration、ENTITES、hexBinary、IDREFS、long、NMTOKENS 和 unsignedLong 不支援升級。

升級屬性的限制

在升級屬性時請考量下列事項:

  • 升級屬性的長度有 256 個字元的限制,但是寫入屬性並無長度限制。

  • 升級屬性是用於訊息路由中,且基於比較與儲存效率的原因,所以在大小上會有所限制。 雖然寫入屬性在大小上並無嚴格限制,在內容中使用過大的值會影響效能,因為這些值仍會被處理並與訊息一起傳遞。 [辨別欄位] 即為寫入屬性的範例。

  • 記錄節點永遠不會升級為 辨別欄位

  • 升級屬性僅限非重複項目/屬性。

  • 請勿將屬於相同根節點的欄位升級至相同的屬性。 這類升級會產生編譯或部署錯誤。

  • 在訊息內容中無法使用部分屬性,這是因為這些屬性尚未升級。 BTS.ReceiveLocationName 屬性即為其中一個屬性。 如果您可以將新的屬性結構描述或新的 BizTalk Server 專案加到開發中,就有辦法從協調流程中存取這個屬性。

    屬性值是以屬性目標命名空間和屬性名稱來識別。 下列範例顯示如何以程式碼存取接收位置。

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

本節內容