使用Eclipse中依赖项导入的模式编辑xsd

时间:2013-08-08 16:21:28

标签: jaxb eclipse-wtp xmlcatalog m2e-wtp

我有一个maven项目A,其中包含/xsd/a.xsd的类路径。 我还有一个带有/xsd/b.xsd的项目B,它通过商品引用/xsd/a.xsd。 商品目录如下所示:

PUBLIC "http://foo.org/a" "maven:org.foo:a:jar::!/xsd/a.xsd"

请注意网址中的maven协议。 org.jvnet.jaxb2.maven2:maven-jaxb22-plugin使用该目录生成带有依赖项集的JAXB带注释Java类。

到目前为止一切都很好。

现在我想在Eclipse中编辑/xsd/b.xsd。 Eclipse报告了一个警告:

<xsd:import namespace="http://foo.org/a" />

因为没有schemaLocation属性它找不到/xsd/a.xsd。 Eclipse无法识别上面定义的商品。​​

找到的解决方法是在Eclipse / Window / Preferences / XML / XML Catalog:

中添加目录条目
PUBLIC "http://foo.org/a" "jar:file:/home/alain/maven/repository/org/foo/a/1.0-SNAPSHOT/a-1.0-SNAPSHOT.jar!/xsd/a.xsd"

请注意对本地存储库的引用(maven是.m2的链接)和依赖项目的特定版本a。

任何人都遇到过这个问题并找到了更好的解决方法吗?

1 个答案:

答案 0 :(得分:1)

我能想到的最好的是:

  • 使用maven-dependency-plugin解压缩项目中jar的xsds:unpack

  • 在Eclipse / Window / Preferences / XML / XML Catalog中引用此处的xsds。

至少不会引用本地路径/版本。

请注意,如果您已经有了jaxb的目录,则可以直接在eclipse中导入它,而无需逐个编辑(通过导入菜单,而不是在XML目录中)。