指定元素的类型
网格视图中显示的Address的子元素是为全局复杂类型AddressType定义的元素(其内容模型在AddressLast.xsd中定义,如下方“Schema视图”截图所示)。

但是,我们希望使用一种特定的美国或英国地址类型,而不是通用地址类型。您会记得在AddressLast.xsd Schema中,我们通过扩展复杂类型AddressType为US-Address和UK-Address创建了全局复杂类型。下面是US-Address的内容模型。

在XML文档中,要指定Address元素必须符合扩展的Address类型之一(US-Address或UK-Address),而不是通用的AddressType,我们需要将所需的扩展复杂类型定义为Address元素的特性。
我们按以下方式添加Address元素的特性:
1.在XML文档中,在Name元素上右键单击,然后从上下文菜单中选择在其前插入(参见下方截图)。

2.这会在Name元素上方添加一个名为new_elem的新元素节点(参见下方截图)。单击节点名称左侧的元素类型,然后在出现的菜单(参见下方截图)中选择特性节点类型。该节点类型将被更改为特性节点类型;但是,名称仍然是new_elem。

3.双击节点名称,然后在弹出的输入助手中选择xsi:type。
4.按Tab键以转至特性的值字段。这将弹出一个包含可用xsi:type值的菜单(参见下方截图)。这些值都是在Schema中为Address元素定义的复杂类型。

5.选择US-Address作为xsi:type特性的值。
提示: | xsi:前缀允许您在XML文档实例中使用一些特殊的XML Schema相关的命令。请注意,当您将Schema分配给XML文件时,xsi:前缀的命名空间会自动添加到文档元素中。在上述情况下,您已为Address元素指定了一个类型。有关更多信息,请参见XML Schema规范。 |