我可以自动将 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 文档相关联,因此您将自动获得验证和智能感知。
我正在使用 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 文档中,都会使用该架构。这在将架构与 XML 不包含任何名称空间信息的文档相关联时非常有用。
未选中 - 明确排除架构。无论其命名空间是否与 XML 文档匹配,都将 不 使用该架构。当您有相同模式的多个版本并且它们都具有相同的命名空间,或者模式太大时智能感知会减慢 XML 编辑器到不可接受的程度时,这很有用。
不确定 - 自动模式select离子。如果模式条目中的命名空间与 XML 文件中的命名空间匹配,则将使用此条目。 这是所有条目的默认状态。
添加您自己的架构库条目
如果您有一组不在标准库中的架构,您可以添加自己的条目。
注意您可以添加多个模式文件,这些文件可能不一定相互关联,例如 FIXML 包含在您的文档中包含 XHTML 的注释,您还可以添加 XHTML 模式。如果您这样做,最好从列出的触发器命名空间中 de-select XHTML 命名空间(因此当打开 XHTML 文档时不使用此标准,仅当打开 FIXML 文档时).
终于有了答案
如果您的 XML 文档都在给定的命名空间中,您最好的办法是创建一个架构库条目。这将自动与包含该命名空间的任何 XML 文档相关联,因此您将自动获得验证和智能感知。