5

我有这个 xsd 有点糟糕,但我必须使用它来避免更改我正在编写的 servlet 的接口。请求-响应接口的 xsd 包含以下几行:

<xs:complexType name=”Foo”&gt;
    <xs:sequence minOccurs=”0” maxOccurs=”unbounded”&gt;
        <xs:element name=”Foo”&gt;
        ...
        </xs:element>
    ...
    </xs:sequence>
<xs:complexType>

注意名称冲突。当我使用 maven-jaxb-plugin 从这个模式生成类时,我最终得到:

Public class Foo {
...

   public List<Foo.Foo> getFoo() {
   ...
   }

   ...

   public static class Foo {
   ...
   }
}

当然,这无法编译,因为不允许在嵌套类和封闭类上使用相同的名称。在不更改 xsd 的情况下,我能做些什么来解决这个问题?我知道您可以通过在 xsd 中为 jaxb 添加标签来覆盖名称。这样做安全吗?会不会对服务的接口有影响?

4

1 回答 1

3

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

于 2012-09-06T11:36:25.553 回答