【问题标题】:Inheritance with JAXB使用 JAXB 继承
【发布时间】:2010-03-04 19:18:03
【问题描述】:

我有一个 XSD 文件,用于生成一些对象,然后与其他系统共享。我想通过对它们进行一些更具体的实现来定制一些业务逻辑。我没有添加需要序列化的新字段,而是更多地添加了可能采用不同格式参数的 setMethods。这些方法负责将数据转换为底层对象所需的形式。

我可能在 JAXB 对象上有一个字段,它是一个字符串,但我的系统给了我一个整数。所以,我想处理在扩展我的基类的类中转换它的工作。

那么,为了让 JAXB 在您要求序列化的对象的子类上查找 XmlRootElement,您需要做些什么特别的事情吗?或者我必须在我更具体的类中包含一个@XmlRootElement 属性吗?

谢谢!

【问题讨论】:

    标签: java xml xsd jaxb


    【解决方案1】:

    是的,@XmlRootElement/@XmlType 应该足够了。但是为什么不直接将这些方法添加到生成的类中呢? (如果你没有在每次构建时重新生成它们,这是错误的 imo)

    但是我建议将转换外部化到其他(转换器)类/方法。

    【讨论】:

    • 这是因为对象是数据的“理想化”表示。数据来自各种系统,需要处理成理想化的格式。因此,我认为最好的解决方案是为该实现调用特定对象上的方法,该实现负责使其适合的所有工作。如果您知道更好的方法,请告诉我!
    • 另外,我不同意您不应该在 XSD 的每个构建中生成它。当您进行清理时,那些生成的文件应该会消失。这样您就只有一个权威来源,那就是 XSD 文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-08
    • 2014-01-04
    • 1970-01-01
    相关资源
    最近更新 更多