属性架构

在 Microsoft BizTalk Server中,提升的属性使各种BizTalk Server组件能够访问数据的关键项,在此上下文中称为到达实例消息中的可分辨字段和属性字段,而无需了解如何在消息本身中查找它们。 对于不同类型的消息,您可以决定需要将哪些数据项升级到更高的可见级别。 根据所选择的用于升级此类字段的方式,您可能需要创建和定义一个关联属性架构。

注意

升级属性仅限于非重复元素/特性。

可分辨字段只能在业务流程中进行访问,不需要创建相应的属性架构。 如果仅需要在业务流程中访问升级的消息数据,您可以将数据升级为一个或多个可分辨字段。

属性字段可以在各个 BizTalk Server 组件(包括管道和业务流程)中进行访问。 属性字段还可用于消息路由。 如果需要在上下文(而不是在业务流程)中访问升级的消息数据,您必须创建一个或多个属性架构来描述要升级的数据。

属性架构是一种与消息架构相关联的特殊架构。 它用于将实例消息中的特定值升级到消息上下文中。 属性升级提供了一种集中机制,通过该机制,您可以从实例消息中请求所定义的关键信息,并使其可更方便地被负责对通过 BizTalk Server 的消息进行处理的 BizTalk Server 组件访问。

创建属性架构概述

您可以通过使用 BizTalk Server 的快速升级功能自动创建默认属性架构。 这是创建属性字段升级所需的属性架构最简单的方法。 有关如何执行快速提升的详细信息,请参阅 如何将数据作为属性字段复制到消息上下文

还可以创建新的属性架构。 当 BizTalk 项目打开时,选择 BizTalk 项目,右键单击并选择“ 添加”,单击“ 新建项”,然后单击“ 架构”。

注意

  • 如果属性架构与消息架构相关联,则这两个架构必须位于同一 BizTalk 项目中。 不支持将属性架构与其所关联的消息架构分隔在不同的 BizTalk 项目中。

  • 如果有两个属性架构具有相同的命名空间,即使它们定义在不同的程序集中,在运行时也不能正确解析。 在运行时将发生路由失败。

可分辨字段和属性字段

属性升级有两种类型:可分辨字段和属性字段。 后一种类型使用属性架构。 在 BizTalk 编辑器中,可以使用“提升属性”对话框管理这两种类型的属性升级,通过使用“架构”节点的“提升属性”属性进行访问。

注意

  • 对于可以升级的值有一些限制。 有关详细信息,请参阅 提升属性中的表。

  • 可分辨字段不显示在筛选器表达式中。 只有属性字段才显示在筛选器表达式中。

与消息架构相比,属性架构十分简单。 在架构树中,仅允许将 Field Element 节点作为 架构 节点的直接子节点插入,从而创建一个两个级别深的结构。 在大多数情况下,可以设置 字段元素 节点的属性,就像对消息架构中显示的 Field Element 节点一样。 您只能使用 XSD 简单类型。

重要

不应对正在由其他架构使用的架构进行重命名。 包括已为其建立了升级的属性架构。 如果这样做,正在使用的架构将无法找到另一个架构,因为它包含的名称将不再准确。

属性架构基属性对于字段元素节点是唯一的,因为它们出现在属性架构中。 默认情况下,此属性为空,但可以设置为 MessageDataPropertyBaseMessageContextPropertyBase,从而导致 将 propSchFieldBase 属性添加到具有其中一个值或另一个值的 fieldInfo 注释元素。

propSchFieldBase 属性设置为 MessageDataPropertyBase 时,这意味着提升的属性的值对应于消息中的数据,例如某些字段的值。 当 propSchFieldBase 属性设置为 MessageContextPropertyBase 时,这意味着升级的属性的值可能来自其他位置(如信封),或者它可能由管道组件设置。

属性架构中的 Field 元素节点还有一个名为“敏感信息”的属性,当设置为“是”时,该属性将保持相应值在 BizTalk 资源管理器和消息事件和服务实例跟踪中不可见,从而保留其敏感性质。 有关更多详细信息,请参阅 UI 指南和开发人员 API 命名空间参考中的敏感信息

下面的属性架构的 XML 架构定义 (XSD) 语言表示形式包含一个批注,该批注与将该架构标识为属性架构 (schema_type="property") 的架构元素相关联。 它还包含架构节点下方的三个 Field 元素节点。 第一个名为 PromProp1 的 Field 元素 节点没有为其 Property Schema Base 属性定义的值,但后两个 Field Element 节点的属性分别设置为 MessageDataPropertyBaseMessageContextPropertyBase

<?xml version="1.0" encoding="utf-16" ?>   
<xs:schema xmlns="http://BizTalk_Server_Project1.PropertySchema1"  
           xmlns:b="http://schemas.microsoft.com/BizTalk/2003"  
           targetNamespace="http://BizTalk_Server_Project1.PropertySchema1"  
           xmlns:xs="http://www.w3.org/2001/XMLSchema">  
    <xs:annotation>  
       <xs:appinfo>  
  
        </xs:appinfo>  
    </xs:annotation>  
    <xs:element name="" type="xs:string">  
        <xs:annotation>  
            <xs:appinfo>  
  
            </xs:appinfo>  
        </xs:annotation>  
    </xs:element>  
    <xs:element name="" type="xs:string">  
        <xs:annotation>  
            <xs:appinfo>  
  
            </xs:appinfo>  
        </xs:annotation>  
    </xs:element>  
    <xs:element name="" type="xs:string">  
        <xs:annotation>  
            <xs:appinfo>  
  
            </xs:appinfo>  
        </xs:annotation>  
    </xs:element>  
</xs:schema>  
  

另请参阅

不同类型的 BizTalk 架构