升级属性

提升属性涉及将架构中的 Field ElementField Attribute 节点提升为 可分辨字段属性字段。 如果 Record 节点具有简单内容 (“记录”节点的“内容类型”属性设置为 SimpleContent) ,则还可以将“记录”节点提升为“属性字段”。 本部分提供将节点提升为 可分辨字段属性字段的分步说明。

若要将简单内容) 、Field ElementField Attribute 节点提升为属性字段Record (,可以先定义称为属性架构的特殊架构类型。 属性架构定义一组非结构化的 Field 元素节点,可在其中使用简单内容) 、Field ElementField Attribute 节点提升 Record (。 有关创建属性架构的分步说明,请参阅 如何创建属性架构

或者,可以使用 “快速升级 ”功能,每当使用简单内容) 节点提升新的 Field 元素字段属性记录 (时,该功能都会自动创建和更新单个属性架构。

注意

可以将字段提升为 可分辨字段属性字段

注意

快速升级功能通过插入具有升级节点名称的新属性来修改属性架构。

重要

升级字段之后,请不要在架构中移动或重命名该字段。 如果您移动或重命名某一架构字段,BizTalk 编辑器并不会更新定义升级字段的位置的 XPath。

XSD 和 CLR 数据类型

在某些情况下(例如在属性升级中),XSD 数据类型将升级到公共语言运行时 (CLR) 数据类型。 下表显示了可升级的 XSD 数据类型以及相应的 CLR 数据类型。

XSD 数据类型 CLR 数据类型
anyURI 字符串
布尔 布尔
Byte sbyte
Date DateTime
dateTime DateTime
Decimal 小数
Double Double
ENTITY 字符串
Float Single
gDay DateTime
gMonth DateTime
gMonthDay DateTime
gYear DateTime
gYearMonth DateTime
ID String
IDREF 字符串
int Int32
Integer 小数
语言 字符串
名称 String
NCName 字符串
negativeInteger 小数
NMTOKEN 字符串
nonNegativeInteger 小数
nonPositiveInteger 小数
normalizedString 字符串
NOTATION 字符串
positiveInteger 小数
QName 字符串
Short Int16
字符串 字符串
时间 DateTime
标记 字符串
unsignedByte Byte
unsignedInt UInt32
unsignedShort UInt16

注意

base64Binary、duration、ENTITES、hexBinary、IDREFS、long、NMTOKENS 和 unsignedLong 的 XSD 数据类型不支持升级。

对升级属性的限制

升级属性时,请考虑以下事项:

  • 升级属性的长度限制在 256 个字符之内,而写入属性则没有长度上的限制。

  • 升级属性用于消息路由,并由于有关比较和存储效率的原因,对升级属性的大小有所限制。 尽管对写入属性的大小没有硬性限制,但如果在上下文中使用过大的值,也会对性能造成影响,因为这些值仍必须与消息一起进行处理和传递。 可分辨字段便是写入属性的例子。

  • 记录节点永远不能提升为 可分辨字段

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

  • 不要将属于同一根节点的字段升级到相同属性。 此类升级会导致编译或部署错误。

  • 在消息上下文内,某些属性因为没有升级而不可用。 BTS.ReceiveLocationName 属性就是此类属性之一。 如果您可以将新属性架构或新 BizTalk Server 对象添加到您的开发中,则有可能从业务流程内部访问该属性。

    属性值由属性目标命名空间和属性名称标识。 下面的示例演示如何访问代码格式的接收位置。

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

本节内容