gpt4 book ai didi

java - 来自 xsd 的 JAXB 类(其中包含其他 xsd 导入)时出错

转载 作者:太空宇宙 更新时间:2023-11-04 13:04:52 25 4
gpt4 key购买 nike

我尝试为 this xsd 生成 JAXB 类它通过 url 导入另一个 xsd,同样导入在内部分为 2 个级别。 此 xsd 即 cwmp-1-4.xsd 导入其先前版本 cwmp-1-3.xsd 并导入 cwmp-1-2.xsd

尝试的解决方案 1:

我尝试生成 jaxb 类的命令是

$ xjc http://www.broadband-forum.org/cwmp/cwmp-1-4.xsd -httpproxy 192.168.100.100:3128

我得到的错误是

[ERROR] White spaces are required between publicId and systemId.
line 1 of http://www.broadband-forum.org/cwmp/cwmp-1-4.xsd

Failed to parse a schema.

尝试的解决方案 2:

然后我尝试下载所有 xsd(包括内部导入的 xsd),并将所有导入位置从“http://www.broadband-forum.org/cwmp/cwmp-1-3.xsd”替换为“cwmp-1-3.xsd”,将“http://www.broadband-forum.org/cwmp/cwmp-1-2.xsd”替换为“cwmp-1-2.xsd”,这样就不会在互联网中查找依赖项并执行以下命令

$ xjc cwmp-1-4.xsd -httpproxy 192.168.100.100:3128

我得到的错误跟踪是

parsing a schema...
[ERROR] sch-props-correct.2: A schema cannot contain two global components with the same name; this schema contains two occurrences of 'urn:dslforum-org:cwmp-1-2,SessionTimeout'.
line 103 of file:/home/vivek/TR069/cwmp/cwmp-1-3.xsd

[ERROR] cvc-pattern-valid: Value 'false' is not facet-valid with respect to pattern '0|1' for type '#AnonType_mustUnderstand'.
line 107 of file:/home/vivek/TR069/cwmp/cwmp-1-3.xsd

[ERROR] a-props-correct.2: Invalid value constraint value '0' in attribute 'mustUnderstand'.
line 107 of file:/home/vivek/TR069/cwmp/cwmp-1-3.xsd

[ERROR] cvc-pattern-valid: Value 'true' is not facet-valid with respect to pattern '0|1' for type '#AnonType_mustUnderstand'.
line 88 of file:/home/vivek/TR069/cwmp/cwmp-1-2.xsd

[ERROR] a-props-correct.2: Invalid value constraint value '1' in attribute 'mustUnderstand'.
line 88 of file:/home/vivek/TR069/cwmp/cwmp-1-2.xsd

[ERROR] cvc-pattern-valid: Value 'true' is not facet-valid with respect to pattern '0|1' for type '#AnonType_mustUnderstand'.
line 98 of file:/home/vivek/TR069/cwmp/cwmp-1-2.xsd

[ERROR] a-props-correct.2: Invalid value constraint value '1' in attribute 'mustUnderstand'.
line 98 of file:/home/vivek/TR069/cwmp/cwmp-1-2.xsd

[ERROR] cvc-pattern-valid: Value 'false' is not facet-valid with respect to pattern '0|1' for type '#AnonType_mustUnderstand'.
line 107 of file:/home/vivek/TR069/cwmp/cwmp-1-3.xsd

[ERROR] a-props-correct.2: Invalid value constraint value '0' in attribute 'mustUnderstand'.
line 107 of file:/home/vivek/TR069/cwmp/cwmp-1-3.xsd

Failed to parse a schema.

尝试的解决方案 3:

然后在没有验证选项的情况下尝试相同的操作

$ xjc  cwmp-1-4.xsd -httpproxy 192.168.100.100:3128 -nv

最后我能够为 xsd 生成 jaxb 类。

现在我的问题和疑虑是

  • 为什么我无法仅通过在互联网上引用来生成 jaxb 类?我确定我的网络路径没有问题?
  • 尝试的解决方案 2 存在哪些错误?在使用标准协议(protocol)定义架构时为何会出现这些错误?
  • 使用“无验证”选项,我可以生成类,但我不确定将来使用此生成的类编码和解码 xml 时是否会遇到任何问题?
  • 我无法指定包名称选项(-P 选项),因为它表示已在使用的类(这个问题是最不重要的问题)

请任何人澄清我。感谢您的大力支持和耐心阅读这篇大文章..:)

XSD供引用

注意:请保存扩展名为.xsd的文件以查看内容

最佳答案

您可以将cwmp1.x.xsd下载到您的计算机上并在那里调用xjc。然而,它生成的 java 文件并不能保证像您预期的那样工作,现在我面临着您一直担心的问题,即解码似乎在某些情况下不起作用,并提示意外的节点类型。我想知道是否有任何类似于 xjc 的东西可以与 TR069 模式一起使用

关于java - 来自 xsd 的 JAXB 类(其中包含其他 xsd 导入)时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34589154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com