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