我有这个 xsd,它有点糟糕,但我必须使用它来避免更改我正在编写的 servlet 的接口。请求-响应接口的 xsd 包含以下行:
<xs:complexType name=”Foo”>
<xs:sequence minOccurs=”0” maxOccurs=”unbounded”>
<xs:element name=”Foo”>
...
</xs:element>
...
</xs:sequence>
<xs:complexType>
注意名称冲突。当我使用 maven-jaxb-plugin 从该模式生成类时,我最终得到:
Public class Foo {
...
public List<Foo.Foo> getFoo() {
...
}
...
public static class Foo {
...
}
}
当然,这无法编译,因为不允许在嵌套类和封闭类上使用相同的名称。在不更改 xsd 的情况下我可以做什么来解决这个问题?我知道您可以通过在 xsd 中添加 jaxb 标签来覆盖名称。这样做安全吗?会对服务的接口产生影响吗?
您可以使用外部绑定文件来自定义生成的类名称。示例请参见:
- JAXB:在 XSD 中指定 attr 类型时如何更改 XJC 生成的类名称? https://stackoverflow.com/questions/4793637/jaxb-how-to-change-xjc-generated-classes-names-when-attr-type-is-specified-in-x/4793999#4793999
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)