xml - xjc 生成的重复嵌套类

标签 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

如何解决这个问题?

最佳答案

您可以使用外部绑定(bind)文件来重命名从复杂类型生成的类。下面是一个示例,其中与复杂类型 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 调用中指定绑定(bind)文件

xjc -b binding.xml your-schema.xsd

关于xml - xjc 生成的重复嵌套类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16855552/

相关文章:

c# - Xamarin.Android : How to capture Button events defined in the OnClick XML attribute?

java - 使用多个 XPath 表达式展平 XML

java - xjc 和 XSD 的选择

Java XSD 代码生成问题

xsd - 供应商特定命名空间不支持的绑定(bind)命名空间异常

java - 使用 javax.xml 添加新 POJO 时出现 ClassCastException

php - 使用 shopify webhook 订单项的 XML 解析器

java - 从字符串创建 JAXBElement<Book>

java - 如何使用 JAXB 编码/解码具有私有(private)字段的 Java 对象

jaxb - 将外部 JAXB 绑定(bind)文件应用于从 WSDL 导入的模式元素