java - xjc 仅用于模式的一部分

标签 java xml data-binding jaxb

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

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

据我所知,我们可以使用绑定(bind)文件来自定义 xjc 的行为,但是我们可以在模式中放入什么来忽略元素。

最佳答案

您可以使用外部绑定(bind)文件将 XJC 配置为使用现有类而不是生成类。您可以通过指向一个不存在的类来利用它来让 JAXB 排除您的 XML 模式的一部分。在下面的示例中,不存在的类 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  -d outputDir -b binding.xml yourSchema.xsd

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

相关文章:

java - spring boot 启动后有问题

java - 如何在本地主机上启动 cxf 服务但在 wsdl 中返回外部地址?

JavaScript 图像背景

java - 如何使用 javafx.beans.binding.Bindings.select(...) 进行简洁的值绑定(bind)

java - 类似结构的源代码解析和类似宏的处理

Java自动类型提升

php - Magento 在静态 block 中调用子 html

java - 如何使用 xStream 反序列化多个对象

c# - 在 MVVM 中,如果 UI 不需要更新,模型中的属性是否需要属性更改事件?

c# - WPF 将按钮绑定(bind)到命令