JAXB:xjc不会从特定的xsd文件

时间:2016-03-29 11:30:01

标签: xsd jaxb xjc

此处有5个带xsd架构的文件:http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2016/01/25/eD/DefinicjeTypy/

其中3个被正确解析和编译但我遇到了其他问题2.这是其中之一 http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2016/01/25/eD/DefinicjeTypy/KodyUrzedowSkarbowych_v4-0E.xsd

我使用这样的命令:

 xjc -p jpk -b binding.xjb KodyUrzedowSkarbowych_v4-0E.xsd

不幸的是,xjc编译器没有为这两个创建任何类。 我还通过使用全局绑定 - binding.xjb解决了枚举类型的默认限制问题,因为有400个元素。 但是,我仍然不知道为什么我不能从这两个文件中获得任何课程。

1 个答案:

答案 0 :(得分:0)

XML Schema KodyUrzedowSkarbowych_v4-0E.xsd不生成枚举,因为所有值都是数字,这不可能作为Java枚举成员名称。 (尝试将所有值=“0202”等前缀加上'x' - 它编译。)

要解决此问题,您必须在每个(!)中添加另一个自定义口头禅 <xsd:enumeration value="x0202">,就像这样:

<xsd:annotation><xsd:appinfo>
<jaxb:typesafeEnumMember> 
    name = "x0202" value="0202"
</jaxb:typesafeEnumMember>
</xsd:annotation></xsd:appinfo>

可能编写一个XSLT来自动化它,或使用sed或Perl脚本......

我没有检查另一个文件,因为你没有给它命名。