0

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

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

4

1 回答 1

0

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

架构位置属性

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

命名空间

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

手动关联模式

您可以手动将架构与您的 XML 文件相关联。使用“Xml 文档到架构映射”表单选择架构库中的现有整体,或使用“添加架构文件”选择单个 XSD 文件以与 XML 文档关联。然后在下次打开 XML 文件时记住这些设置。如果您的 XML 文件不包含目标名称空间,这将特别有用,因为因此无法进行自动匹配。


手动将架构与 XML 文件关联

您可以使用“Xml 文档到架构映射”表单来控制与您的 XML 文件关联的架构。

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

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

未选中-明确排除架构。无论其名称空间是否与 XML 文档匹配,都不会使用该架构。当您拥有相同架构的多个版本并且它们都具有相同的命名空间时,或者架构非常大的情况下,这很有用,智能感知将 XML 编辑器的速度降低到无法接受的程度。

Indeterminate -自动模式选择。如果架构条目中的名称空间与 XML 文件中的名称空间匹配,则将使用此条目。这是所有条目的默认状态。


添加您自己的模式库条目

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

在此处输入图像描述

请注意,您可以添加多个不一定相互关联的模式文件,例如 FIXML 包含在您的文档中包含 XHTML 的注释,您也可以添加 XHTML 模式。如果您这样做了,最好从列出的触发器名称空间中取消选择 XHTML 名称空间(因此打开 XHTML 文档时不使用此标准,仅在打开 FIXML 文档时使用)。


最后是答案

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

于 2017-01-12T10:49:18.240 回答