由xjc生成的重复嵌套类

时间:2013-05-31 10:49:26

标签: xml jaxb xjc

我有这样的XML:

    <?xml version="1.0" encoding="utf-8"?>
    <Records xmlns="...">
        <Some>
            ...
            <Records>
                <Record>
                </Record>
            </Records>
        </Some>
    </Records>

我生成XDS,然后生成类:

xjc some.xsd

所以,我有以下结构:

duplicate

如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您可以使用外部绑定文件重命名从复杂类型生成的类。下面是一个示例,其中与复杂类型itemType对应的类将生成为Item

<jxb:bindings 
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
    version="2.1">

    <jxb:bindings schemaLocation="your-schema.xsd">
            <jxb:bindings node="//xs:complexType[@name='itemType']">
                <jxb:class name="Item"/>
            </jxb:bindings>
    </jxb:bindings>

</jxb:bindings>

使用-b标志

在XJC调用中指定绑定文件
xjc -b binding.xml your-schema.xsd