使用属性提升处理实例消息

使用 Property Field 方法提升属性需要创建属性架构。 有关创建属性架构的详细信息,请参阅 如何创建属性架构。 与所有属性推广一样,您可以通过消息架构中架构节点的“提升属性”属性访问“提升属性”对话框。

注释

您必须选择能够促进属性的管道,以便访问和使用这些属性。 例如,如果使用 PassthruReceive 管道,则不会提升任何属性,因此,基于内容的路由和其他功能将无法按预期运行。

在“ 提升属性 ”对话框中,确保对话框右侧选择了 “属性字段 ”选项卡。 接下来,确保相应的属性架构包含在“ 属性字段 ”选项卡顶部的属性架构列表中。如有必要,请使用文件夹按钮通过 BizTalk 类型选取器 对话框选择适当的属性架构。 接下来,展开对话框左侧架构树中的节点以查找并选择要提升为属性字段的 Field 元素 节点或 字段属性 节点,然后单击“ 添加”。 最后,使用 Property-Fields 字典 表中 属性 列的下拉列表,选择属性架构中的 Field Element 节点,以便将提升的属性与其关联。 有关使用 “提升属性 ”对话框 ox 将属性提升到属性字段的分步说明,请参阅 如何将数据作为属性字段复制到消息上下文

注释

还可以将记录节点提升为属性架构中的 Field Element 节点,但前提是记录节点的 Content Type 属性设置为 SimpleContent

注释

只要所有这些升级在不同的根节点下执行,同一属性就可以在架构中多次提升。 这是因为消息根据单个根节点进行验证,并且仅在运行时评估在该根节点下升级的属性。

若要从要提升为属性字段的属性集中删除 Field 元素节点或字段属性节点,请在“属性字段”选项卡上的 Property-Fields 字典表中选择提升的属性,然后单击“删除”。

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 元素 节点或 字段特性 节点值,如以下示例所示:

<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>  

另请参阅

使用消息内容控制消息处理的方法
如何将数据作为属性字段复制到消息上下文