“任何属性”节点

在 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 元素。)

另请参阅

架构的 BizTalk 表示形式
节点属性
如何设置节点属性
“任何元素”节点