gpt4 book ai didi

java - JAXB 和 complexType 与其元素之一共享名称会生成不正确的代码

转载 作者:数据小太阳 更新时间:2023-10-29 01:58:10 25 4
gpt4 key购买 nike

我有这个 xsd,它有点糟糕,但我必须使用它来避免更改我正在编写的 servlet 的接口(interface)。请求-响应接口(interface)的 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 添加标签来覆盖名称。这样做安全吗?会不会对服务的接口(interface)有影响?

最佳答案

您可以使用外部绑定(bind)文件来自定义生成的类名。有关示例,请参见:

关于java - JAXB 和 complexType 与其元素之一共享名称会生成不正确的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12297940/

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