在受多个 XML 架构约束的 XML 文档中使用代码完成
另请参见
您可以通过多个架构文件来约束 XML 实例文档,但至少需要一个架构文件包含 xsd:any 或 xsd:anyAttribute(称为通配符)。在使用这些通配符时,IDE 将通过名称空间来限制代码完成框中的信息。xsd:any 和 xsd:anyAttribute 与可选的 namespace 属性在一起使用。下表列出了 IDE 是如何使用通配符(基于 namespace 属性值)进行替换的。
| namespace 值 |
替换 |
| ##any |
任何名称空间中的任何元素。 |
| ##other |
targetNamespace 以外的其他名称空间中的任何元素。 |
| ##targetNamespace |
targetNamespace 中的任何元素。 |
| ##local |
任何非限定元素(无名称空间)。 |
| URI 列表 |
指定的名称空间中的元素。 |
例如,假设您创建了以下内容:
<a:RootA xmlns:a="http://xml.netbeans.org/schema/A"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xml.netbeans.org/schema/A A.xsd
http://xml.netbeans.org/schema/B B.xsd
http://xml.netbeans.org/schema/C C.xsd">
< (current cursor position)
</a:RootA>
在此示例中,RootA 是在架构 A.xsd 中定义的一个根元素。如果 RootA 包含 xsd:any 子元素,则会在光标位置显示各个名称空间中的项(按照上表中显示的替换规则)。这些内容同样也适用于 xsd:anyAttribute。
规则和限制
- xsd:any 或 xsd:anyAttribute 的定义。
xsd:any(或 xsd:anyAttribute)必须位于基本约束架构的根元素中。例如,假设如下内容:
- 您正在使用 A.xsd、B.xsd 和 C.xsd 来约束 instance.xml。
- 其中用于此约束的根元素为 A.xsd 的根元素(称为 A-Element)。
在本例中,必须在 A-Element 中定义 xsd:any(或 xsd:anyAttribute),才能在 instance.xml 中看到 A.xsd、B.xsd 以及 C.xsd 中的工件。
- 在创建 XML 实例文档期间选择多个文件
在 IDE 中创建 XML 实例文档时,只能选择一个 XML 架构文件来约束该文档。您必须使用源代码编辑器来添加其他架构文件的引用。
- 约束架构文件的位置。
确保可以在文件系统中找到要用于约束 XML 实例文档的架构文件。在此发行版本中,IDE 不允许引用外部架构文件来约束 XML 实例文档。
创建受多个 XML 架构文件约束的 XML 文档并调用代码完成功能:
- 从主菜单中选择“文件”>“新建文件”。
将打开“新建文件”向导。
- 在“类别”下选择 "XML" 节点,在“文件类型”下选择“XML 文档”节点,然后单击“下一步”。
- 为文档指定名称和位置,然后单击“下一步”。
- 选中“受 XML 架构约束的文档”单选按钮,然后单击“下一步”。
- 单击“架构 URI”字段旁边的“浏览”按钮以导航并选择要约束 XML 实例文档的第一个架构文件。
在选择了架构文件后,IDE 将填充“文档名称空间”和“根元素”字段。如果架构没有目标名称空间,则“文档名称空间”字段为空。
- 如果架构具有多个根元素,请从“根元素”下拉列表中选择要用于约束的元素。
- 单击“完成”。
IDE 将在“项目”窗口中添加新 .xml 文件的节点,并在源代码编辑器中打开该新文件。
- 在源代码编辑器中,更新 xsi:schemaLocation 值以添加其他的架构文件。
在下面显示的样例中,base-schema-targetNamespace 是您在步骤 5 中选择的架构的目标名称空间,base-schema 是 .xsd 文件的路径及其名称。
xsi:schemaLocation='base-schema-targetNamespace base-schema
second-schema-targetNamespace second-schema
third-schema-targetNamespace third-schema'
- 保存您所做的更改。
- 在 XML 文档的“源”编辑器标签中,将光标置于要开始添加内容的位置,然后键入左尖括号 (<)。
将打开代码完成框。此框提供了架构元素的滚动列表。元素列表基于约束当前 XML 文件的 XML 架构文件。
- 当您使用通配符并选择了另一个名称空间中的元素后,IDE 将自动为该元素插入名称空间声明。IDE 将从 ns1 开始尝试使用不同的前缀,如果找到了匹配的前缀,则会添加如下声明:xmlns:ns1="targetNamespace-of-selected-element"。
- 另请参见
- 关于在受 XML 架构约束的 XML 实例文档中使用代码完成
- 关于 XML 架构工具
法律声明