繁体   English   中英

JAXB属性的多个映射

[英]JAXB multiple mappings for attribute

我只是在更改过去的设计错误,但想保持软件的向后兼容性。 为此,我需要某种方式将xml文件的两种形式映射到一个Java bean中。 可以在一个属性/元素上使用两个JAXB注释吗? 我知道编组将是模棱两可的,但是解编可能会起作用。 有一些不错的方法吗?

ps:我不在乎编组。

您可以映射两次:

  • 第一次使用注释
  • 第二次使用XML资源。

或者只有两个XML映射而不是注释。

对于XML资源映射,有很多选项:

使用Annox,您可以使用XML映射资源轻松地两次映射两次,这些资源具有不同的扩展名,例如MyClass.ann1.xmlMyClass.ann2.xml (默认情况下为MyClass.ann.xml ,但调整很小。)

以下是映射的示例:

<class xmlns="http://annox.dev.java.net" xmlns:annox="http://annox.dev.java.net" xmlns:jaxb="http://annox.dev.java.net/javax.xml.bind.annotation">

    <jaxb:XmlAccessorType value="FIELD"/>
    <jaxb:XmlType name="" propOrder="productName quantity usPrice comment shipDate"/>
    <field name="productName">
        <jaxb:XmlElement required="true"/>
    </field>
    <field name="usPrice">
        <jaxb:XmlElement name="USPrice" required="true"/>
    </field>
    <field name="shipDate">
        <jaxb:XmlSchemaType name="date"/>
    </field>
    <field name="partNum">
        <jaxb:XmlAttribute required="true"/>
    </field>
</class>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM