【发布时间】:2014-10-25 02:51:26
【问题描述】:
每次我打开具有 xsd 声明的文件(如 Seam's components.xml)时,Eclipse 开始下载 xsd 文件,Seam 非常模块化,因此它使用 10 个 xsd 文件。如何让 Eclipse 不下载这些文件或只下载一次(可能因为插件没有使用代理配置而无法下载),甚至在将它们放在某个目录时为他下载?
附:我不知道它是否特定于 JBossTools,也许它的行为继承自 WTP 插件。
【问题讨论】:
每次我打开具有 xsd 声明的文件(如 Seam's components.xml)时,Eclipse 开始下载 xsd 文件,Seam 非常模块化,因此它使用 10 个 xsd 文件。如何让 Eclipse 不下载这些文件或只下载一次(可能因为插件没有使用代理配置而无法下载),甚至在将它们放在某个目录时为他下载?
附:我不知道它是否特定于 JBossTools,也许它的行为继承自 WTP 插件。
【问题讨论】:
XML 目录应该可以工作。这就是它的预期功能。确保您添加了正确的条目并包括被其他模式间接引用的模式。
将 XSD 文件输入目录时,您需要知道访问文件的 URL。如果您在错误的 URL 下输入它,它将在目录中找不到,Eclipse 将访问 Internet 以尝试找到它。要确定要使用的 URL,请查看引用这些模式的 XML 文件。如果有 schemaLocation 属性,它将告诉您要使用的 URL。否则,请使用命名空间 URL。
插件也可以向 XML 目录贡献条目。如果 JBoss Tools 为 Seam 提供工具,理想情况下它应该在插件中提供它需要的 XSD 文件并自动将它们注册到目录中。您可能想在 JBoss Tools 上打开增强请求。
【讨论】:
我认为您可以在 Eclipse 中创建目录条目以在本地引用 XSD。
窗口 > 首选项 > XML > XML 目录
【讨论】:
它们的关键是使用完整的 URL,包括带有命名空间的 Key 中的 XSD 文件名。仅仅使用命名空间是行不通的。
打开您的 Eclipse 首选项,转到 XML 目录并手动添加每个 xsd,从文件系统中选择它。
而且你不需要重启eclipse(我用的是3.6+),但是你可能需要重建你的项目。
您还可以通过编程方式将一个或多个 XSD 文件添加到您的项目中,但这可能无法帮助您自动完成。
相关的 Eclipse 插件问题: How to add an XSD to Eclipse catalog directly
【讨论】:
在我的例子中,我使用了 Konstantin Komissarchik 建议的 XML 目录,但我还必须删除每个 XSD 文件中每个 <import>-Statement 中的 schemaLocation 属性。原因在这里解释http://wiki.eclipse.org/Using_the_XML_Catalog#FAQ
我已经按名称空间注册了一个 XML 模式,但 XML 文件仍在使用“xsi:schemaLocation”值。为什么? 明确指定的架构位置值优先于以命名空间为键的 XML 目录条目。
【讨论】: