我们计划使用JAXB将xml映射到对象。我们的要求是仅处理文档的一部分(略大),因此我们只希望将该部分(片段)转换为对象。因此,我们不想为xsd中的所有元素创建类。

我们如何要求xjc在生成类时忽略某些元素或考虑某些元素?

根据我的阅读,我们可以使用绑定(bind)文件来自定义xjc的行为,但是我们可以在架构中放置哪些内容来忽略元素。

最佳答案

您可以使用外部绑定(bind)文件将XJC配置为使用现有类,而不是生成一个类。您可以通过指向不存在的类来利用它,以使JAXB排除XML Schema的某些部分。在下面的示例中,不存在的类com.example.Fake将用于名为Foo的复杂类型。

binding.xml

<jxb:bindings schemaLocation="yourSchema.xsd">
    <jxb:bindings node="//xs:complexType[@name='Foo']">
        <jxb:class ref="com.example.Fake"/>
    </jxb:bindings>
</jxb:bindings>

XJC调用
xjc  -d outputDir -b binding.xml yourSchema.xsd

关于java - xjc仅用于模式的一部分,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23487068/

10-09 13:12