共用方式為


使用屬性升級處理執行個體訊息

使用 Property Field 方法升級屬性需要建立屬性架構。 如需建立屬性架構的詳細資訊,請參閱 如何建立屬性架構。 如同所有屬性升級,您可以使用訊息架構中架構節點的[升級屬性] 屬性來存取 [升級屬性] 對話方塊。

注意

您必須選擇可升級屬性的管線,才能存取和使用升級屬性。 例如,如果您使用 PassthruReceive 管線,則不會升級任何屬性,因此以內容為基礎的路由和其他功能將不會如預期運作。

在 [ 升級屬性 ] 對話方塊中,確定對話方塊右側已選取 [ 屬性欄位 ] 索引標籤。 接下來,請確定適當的屬性架構包含在 [屬性 欄位 ] 索引標籤頂端的 [屬性架構清單] 中。如有必要,請使用資料夾按鈕,使用 BizTalk 類型選擇器 對話方塊來選取適當的屬性架構。 接下來,展開對話方塊左側架構樹狀結構中的節點,以尋找並選取您要升階為屬性欄位的 [欄位元素 ] 節點或 [欄位屬性] 節點,然後按一下 [ 新增]。 最後,使用Property-Fields 字典資料表之[屬性] 資料行中的下拉式清單,在屬性架構中選取Field 元素節點,以建立升級屬性的關聯。 如需使用 [ 升級屬性 ] 對話方塊 ox 將屬性升階為屬性欄位的逐步指示,請參閱 如何將資料複製到訊息內容做為屬性欄位

注意

您也可以將Record節點升階為屬性架構中的Field Element節點,但只有在Record節點的Content Type屬性設定為SimpleContent時。

注意

相同的屬性可以在一個結構描述中多次升級,只要這些升級皆在不同的根節點執行即可。 這是因為會針對單一根節點驗證訊息,且只有在該根節點之下升級的屬性才能在執行階段評估。

若要從要升級為屬性欄位的屬性集合中移除Field Element節點或Field Attribute節點,請在 [屬性欄位] 索引標籤的 [屬性欄位] 字典資料表中選取升級的屬性,然後按一下 [移除]。

Property-Fields 字典資料表中的[節點路徑] 資料行會顯示對應至升級屬性之架構節點的 XPath。 您可以使用 [ 編輯實例 XPath ] 對話方塊直接編輯此值。 您可以按一下選取該儲存格時出現在對應儲存格右端的省略號 (...) 按鈕來開啟此對話方塊。 當您直接編輯 XPath 值時要非常謹慎,因為無法由「BizTalk 編輯器」解析的 XPath 會阻止進行適當的驗證作業。

BizTalk 編輯器也提供簡化的命令,以使用 屬性欄位 機制來升級屬性。 此命令稱為「快速升級」,可使用 升級 | BizTalk 和快顯功能表上的 [快速升級] 命令。 此命令會將選取的[欄位] 節點 (或[記錄] 節點) 升級為屬性欄位,該欄位會自動建立在包含架構之 [屬性頁] 對話方塊中 [預設屬性架構名稱] 屬性所指定的屬性架構中。 如需使用快速升級命令將屬性升級至屬性欄位的逐步指示,請參閱 如何將資料複製到訊息內容做為屬性欄位

當您使用屬性欄位機制升級屬性時,會新增兩個 XML 結構描述定義 (XSD) 語言片段至訊息結構描述的 XSD 表示法。 第一個 XSD 片段是與 架構專案相關聯的 批註片段,可識別對應的屬性架構,如下列範例所示:

<xs:annotation>  
    <xs:appinfo>  
        <b:imports>  
            <b:namespace prefix="ns0"  
                uri="http://BizTalk_Server_Project1.PropertySchema1"  
                location=".\propertyschema1.xsd" />  
        </b:imports>  
    </xs:appinfo>  
</xs:annotation>  

第二個 XSD 片段是與 Root 元素相關聯的批註片段 (,不論它是否已重新命名) 識別已使用屬性欄位欄位機制升級的 Field 元素 節點或 Field 屬性 節點值,如下列範例所示:

<xs:annotation>  
    <xs:appinfo>  
        <b:properties>  
            <b:property name="ns0:PromProp1"  
                xpath="/*[local-name()='Root' and namespace-  
                 uri()='http://BizTalk_Server_Project1.Schema2']/  
                 *[local-name()='MyRec1']/@*[local-  
                 name()='Field_x0020_1']" />  
            <b:property name="ns0:PromProp2"  
                xpath="/*[local-name()='Root' and namespace-  
                 uri()='http://BizTalk_Server_Project1.Schema2']/  
                 *[local-name()='MyRec1']/*[local-  
                 name()='ProgramManager']/*[local-name()='Name']" />  
        </b:properties>  
    </xs:appinfo>  
</xs:annotation>  

另請參閱

使用訊息內容控制訊息處理的方式
如何將資料複製到訊息內容做為屬性欄位