“任何属性”节点
在 BizTalk 编辑器中,可以使用 “任何属性” 节点来指示实例消息中 (已知的) 元素,其中可能显示零个或多个未知属性。 这适用于以下情况:您知道某特定元素将存在于实例消息中的特定位置,但您不十分确定该元素可能包含哪些属性。 如果将 Any Attribute 节点放置在与相关元素关联的 Record 节点中,BizTalk 可以处理该元素,唯一的要求是任何关联的属性在语法上正确 (attributeName=“attributeValue”) 。
注意
在 BizTalk 编辑器中, “任何属性” 节点在架构树视图中用字符串 <AnyAttribute> 表示。
注意
可以使用 Process Contents 属性控制验证消息的未知部分作为格式正确的 XML 的程度。 在许多情况下,可能需要将 “进程内容” 属性设置为 Skip ,以便实例消息的内容位于要处理 的任何属性 节点的位置。 保留“进程内容”属性的默认值“严格”将阻止通过实例消息验证。
有关此属性的更多详细信息,请参阅 UI 指南和开发人员 API 命名空间参考。
XSD 表示形式
将 任意属性 节点添加到 记录 节点或 属性组 节点时,会将单个 XML 标记添加到相应的 XML 架构定义 (XSD) 架构的语言表示形式。 在以下示例中,新的“任何属性”节点(其 XSD 表示形式以粗体显示)已添加到已包含 Field Element 节点的现有 Record 节点。
<xs:element name="ExistingRecord">
<xs:complexType>
<xs:sequence>
<xs:element name="ExistingFieldElement" type="xs:string" />
</xs:sequence>
<xs:anyAttribute />
</xs:complexType>
</xs:element
在前面的示例中,新 Any Attribute 节点的 XSD 表示形式将 anyAttribute 元素添加到包含 (Record 节点) 元素 元素的末尾、 序列 元素外部和 complexType 元素内。 在此位置,除具有 属性 组节点的属性元素之外,所有 属性 元素都添加到其包含 的元素 中。
现在,假设“任意属性”节点的“进程内容”属性设置为“跳过”,在受此架构片段控制的实例消息中,预期有一个 ExistingRecord 元素,只要这些属性在 XML 语法方面格式正确,就可以包含任何属性。 (为了符合本示例中的 XSD 片段,它还必须包含 ExistingFieldElement 元素。)