XML 编辑器 IntelliSense 功能

XML 编辑器提供与 Visual Studio 中提供的其他语言编辑器相当的完整 IntelliSense 功能。 本部分介绍如何将 IntelliSense 与 XML 架构定义语言 (XSD) 和 XSLT 文档配合使用。

XSD 文档中的 IntelliSense

将架构与文档关联后,每当键入 "<" 或单击 XML 编辑器工具栏上的“ 显示对象成员列表 ”按钮时,你都会收到预期元素的下拉列表。

显示对象成员列表按钮

有关如何将架构与 XML 文档相关联的信息,请参阅 XML 文档验证

从开始标记内键入 SPACE 时,还会获得一个下拉列表,其中显示了可添加到当前元素的所有属性。

键入 "=" 属性值或值的左引号时,还可以获取该属性的可能值列表。 仅当架构通过 xsd:enumeration 分面提供枚举值或属性是一种 Boolean 类型时,才提供值。 还提供了xml:lang已知语言代码的 IntelliSense 列表或派生自simpleType的任何xsd:language代码。 为命名空间声明提供了已知 targetNamespace 值的 IntelliSense 列表。

当键入 ">" 以关闭开始标记(如果元素为 simpleType元素)时,还提供了可能值的 IntelliSense 列表。 元素的行为类似于上一段所述的属性的行为。

工具提示会根据在相关架构中找到的xsd:annotationxsd:documentation信息,也显示在这些 IntelliSense 列表中。

XSLT 文档中的 IntelliSense

将命名模板或属性添加到 XSLT 文档后,可以使用 IntelliSense 插入以下内容:

  • 属性集名称。

  • 模板模式。

  • 模板名称。

  • 给定模式的参数名称。

  • 给定命名模板的参数名称。

有关详细信息,请参阅 演练:使用 XSLT IntelliSense 主题。

自动完成

XML 编辑器还可以通过为你填写所需的 XML 语法来简化编辑 XML。 例如,如果键入以下开始标记:

<book>

XML 编辑器填充结束标记,并将光标置于开始标记之后。 下面是一个示例(“|”注释光标位置):

<book>|</book>

由于属性值必须始终加上引号,因此 XML 编辑器会自动插入引号。 例如,如果键入以下内容:

<book title=

XML 编辑器添加引号并将光标置于引号之间:

<book title="|"

同样,XML 编辑器还会自动为你插入以下 XML 语法:

  • 结束处理指令: ?>

  • 结束 CDATA 块: ]]>

  • 结束批注: -->

  • 结束 DTD 声明: >

如果从 IntelliSense 列表中选择命名空间限定的元素或属性,并且该元素或属性的命名空间尚未在范围内,则 XML 编辑器还可以插入命名空间声明。

例如,如果从 IntelliSense 列表中选择了一个元素,其前缀绑定到文档中尚未声明的http://books命名空间,XML 编辑器会自动为你插入所需的命名空间声明。 下面是生成的 XML 文本:

<e:Book xmlns:e="http://books"

大括号匹配

XML 编辑器提供大括号突出显示,可立即提供有关刚刚关闭的元素的反馈。 还可以使用键盘快捷方式(Ctrl+])从一个大括号跳转到匹配的大括号。

XML 编辑器针对以下项执行此作:

  • 匹配开始和结束标记。

  • 任何一对“<”或“>”尖括号。

  • 注释的开始和结束。

  • 处理指令的开始和结束。

  • CDATA 块的开始和结束。

  • DTD 声明的开始和结束。

  • 属性中的开引号和闭引号。

修改 IntelliSense 选项

默认情况下,IntelliSense 和自动完成功能处于启用状态。 但是,可以通过修改 工具>选项 设置来更改此设置。

“杂项”页的“自动插入”部分控制以下行为:

Name Description
关闭标记 插入新元素的关闭标记。
属性引号 输入新属性名称时插入属性值引号。
其他标记 完成注释、CDATA、DOCTYPE、处理指令和其他标记声明。

更改自动完成行为

  1. “工具”菜单中选择“选项”。

  2. 展开 文本编辑器,展开 XML,然后选择 “杂项”。

  3. “自动插入 ”部分进行任何更改,然后单击“ 确定”。