2010-03-04 82 views
1

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

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

那么,有没有什么特别的东西,你需要为了得到JAXB寻找XmlRootElement将在您要求其序列化对象的子类呢?或者我必须在更具体的类中包含@XmlRootElement属性?

的感谢!

回答

1

是,@XmlRootElement/@XmlType应该够了。但是,为什么不把这些方法添加到生成的类中呢? (如果你没有再生他们在每个版本,这是错误的IMO)

不过我倒是建议外化转换到其他(转换器)类/方法。

+0

这是因为对象是数据的“理想化”表示。数据来自各种系统,需要按照理想化的格式。所以,我认为最好的解决方案是调用特定对象上的方法来实现该实现,该方法负责完成所有适合的工作。如果你知道更好的方法,请告诉我! – 2010-03-04 21:12:18

+0

另外,我不同意你不应该从XSD的每个版本生成它。当你做一个干净的,那些生成的文件应该消失。这样你只有一个权威的来源,那就是XSD文件。 – 2010-03-04 21:13:08