我可以自动将 XSD 架构与 XML 文档相关联吗

Can I automatically associate an XSD schema with an XML document

我正在使用 Liquid XML 编辑很多 XML 文件,我可以通过添加 schemaLocation 属性将架构与文档相关联,但这并不实用,因为我有很多文件,我不能保留该属性,因为上游处理器不喜欢它!

它们是我可以将架构与一组文件相关联的方法吗?

有几种方法可以将 XSD 架构与 XML 文档相关联。

架构位置属性

如果 XML 文档包含架构位置属性(xsi:noNamespaceSchemaLocation 或 xsi:schemaLocation 属性),则加载指向的架构并用于验证和智能感知。

命名空间

XML 文件中声明的命名空间用于从模式库中查找模式。如果 XML 文件中的命名空间与模式库中的条目匹配,则加载该条目的所有模式。您还可以将自己的条目添加到架构库中(更多相关信息见下文)。

手动关联模式

您可以手动将架构与 XML 文件相关联。使用 "Xml Document to Schema Mappings" 形式 select 模式库中的现有整体,或 "Add Schema file" 将 select 单个 XSD 文件与 XML 相关联文档。然后在下次打开 XML 文件时记住这些设置。如果您的 XML 文件不包含目标名称空间,这将特别有用,因为自动匹配因此是不可能的。


手动将架构与 XML 文件相关联

您可以使用 "Xml Document to Schema Mappings" 表单控制与您的 XML 文件关联的架构。

该表单显示所有已添加到模式库的模式。列表顶部是在您的 XML 文档中找到的模式(即通过 xsi:noNamespaceSchemaLocation 或 xsi:schemaLocation 属性)。

已检查 - 明确包含架构。无论名称空间是否出现在 XML 文档中,都会使用该架构。这在将架构与 XML 不包含任何名称空间信息的文档相关联时非常有用。

未选中 - 明确排除架构。无论其命名空间是否与 XML 文档匹配,都将 使用该架构。当您有相同模式的多个版本并且它们都具有相同的命名空间,或者模式太大时智能感知会减慢 XML 编辑器到不可接受的程度时,这很有用。

不确定 - 自动模式select离子。如果模式条目中的命名空间与 XML 文件中的命名空间匹配,则将使用此条目。 这是所有条目的默认状态。


添加您自己的架构库条目

如果您有一组不在标准库中的架构,您可以添加自己的条目。

注意您可以添加多个模式文件,这些文件可能不一定相互关联,例如 FIXML 包含在您的文档中包含 XHTML 的注释,您还可以添加 XHTML 模式。如果您这样做,最好从列出的触发器命名空间中 de-select XHTML 命名空间(因此当打开 XHTML 文档时不使用此标准,仅当打开 FIXML 文档时).


终于有了答案

如果您的 XML 文档都在给定的命名空间中,您最好的办法是创建一个架构库条目。这将自动与包含该命名空间的任何 XML 文档相关联,因此您将自动获得验证和智能感知。