“全部组”节点
在 BizTalk 编辑器中,可以插入 “所有组” 节点,以包含将按任意顺序显示零次或一次的其他节点。 在 XML 架构定义 (XSD) 语言中, “所有”组 的使用限制比 序列 组和 选项 组多,这相当于 BizTalk 编辑器中的少数情况下,你将能够创建 “所有组” 节点。
若要在 BizTalk 编辑器中使用“所有组”节点,需要执行一些额外的步骤:创建“所有组”节点的最简单方法是将父 Record 节点的“组顺序类型”属性的值更改为“全部”。 这可确保 Record 节点的所有从属节点都包含在 “所有组” 节点中。 请参阅 UI 指南和开发人员 API 命名空间参考中的组顺序类型。
在 BizTalk 编辑器中使用 “所有组” 节点的另一种方法是插入新的 “记录” 节点。 插入新的 Record 节点后,将其 “内容类型” 属性更改为 “ComplexContent”。 然后,可以插入 “所有组” 节点作为 “记录 ”节点的子节点。 这是必需的,因为只有在涉及继承时才能插入 “所有组 ”。 通过指定包含的 Record 节点包含复杂内容,其数据类型将基于由扩展派生的数据类型 xs:anyType。
备注
在 BizTalk 编辑器中, “所有组” 节点在架构树视图中用字符串 <All> 表示。 如果将对 “所有组” 节点的引用设置为 x,则它在架构树视图中表示为 <Group:x> 。
“ 所有组” 节点可以插入 记录节点, 但前提是它是该 Record 节点的唯一非属性子节点。 以下示例在步骤中演示了如何在 XML 架构定义中表示新的 “所有组” 节点, (XSD) 语言表示为 all 元素,因为 BizTalk 编辑器中的步骤 (命名节点来执行,以阐明其标识) 。
<xs:element name="NewRecord">
<xs:complexType />
</xs:element>
添加新记录后,如前面的 XSD 片段所示,其 内容类型 属性将更改为 ComplexContent,从而导致以下 XSD 修改。
<xs:element name="NewRecord">
<xs:complexType>
<xs:complexContent mixed="false">
<xs:extension base="xs:anyType" />
</xs:complexContent>
</xs:complexType>
</xs:element>
现在,“ 所有组” 节点可以作为新记录的子项插入,如以下 XSD 片段所示。
<xs:element name="NewRecord">
<xs:complexType>
<xs:complexContent mixed="false">
<xs:extension base="xs:anyType">
<xs:all />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
最后,可以插入相应的节点作为新 “所有组” 节点的子节点。 以下示例演示作为新“所有组”节点的子节点插入的 Record 节点和 Field 元素节点。
<xs:element name="NewRecord">
<xs:complexType>
<xs:complexContent mixed="false">
<xs:extension base="xs:anyType">
<xs:all>
<xs:element name="RecordChildOfAllGroup">
<xs:complexType />
</xs:element>
<xs:element name="FieldElementChildOfAllGroup" type="xs:string" />
</xs:all>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>