我有这个 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 添加标签来覆盖名称。这样做安全吗?会不会对服务的接口有影响?