2

当我想用 XJC 编译我的 XSD(我不是它的作者)时,我遇到了麻烦。

具体来说,我得到了错误(实际上还有更多类似的错误):

 [ERROR] src-resolve: Cannot resolve the name "ifopt:CountryRefStructure" to a(n) 'type definition' component.
   line 131 of file:/E:/ansdef/schema/siri-1.3/siri/siri_situationIdentity-v1.1.xsd

这很奇怪,因为提到的文件 ( siri_situationIdentity-v1.1.xsd) 指的是另一个 XSD,其中声明了可疑类型。

我尝试了几件事

  • 切换Java版本以获得不同的xjc
  • 直接从 java.net 尝试了一些不同的 xjc
  • 对文件应用了一些修改,以便删除当前应用的有关包含/导入的 JAXB 变通办法
  • 尝试使用具有依赖模式的整个目录作为 xjc 的目标
  • Altova XMLSpy Java 代码生成运行良好,没有错误(但对我来说没有办法)

他们都没有工作。

有人知道错误消息是由什么引起的吗?我不明白这一点。您可以直接从这里获得所有 XSD: Verband Deutscher Verkehrsunternehmen (VDV) - Ist-Daten-Schnittstellen

我尝试过的命令行(除其他外)是:

xjc -readOnly -d generated -npa -target 2.1 -verbose VDV453_incl_454_V2.3e.xsd

非常感谢任何帮助或提示。

问候

4

2 回答 2

3

这里的解决方案是使用-nv开关禁用严格验证。

于 2012-10-15T11:46:25.133 回答
1

该错误消息是由 XJC 未能成功加载其他模式文档引起的。你有几个选择。

  • xjc 文档建议它接受多个命令行参数,因此请尝试将您希望它读取的所有模式文档指定为命令行参数。
  • 您还可以尝试找出它用于解析相对引用的基本 URI,或者(更直接地)...
  • 您可以(尝试)弄清楚如何告诉 XJC 使用什么基本 URI。
  • 由于 XJC 还支持 XML 目录,您可以使用目录告诉它在哪里可以找到您的顶级模式文档所引用的文件。
于 2012-09-14T17:50:35.357 回答