使用XML绑定实现数据导入/导出功能的灵活性

时间:2011-02-02 06:56:48

标签: java xml binding xsd transform

我将在Java EE应用程序中开发数据库导入/导出功能。

我计划使用XML绑定解决方案在Java对象和XML文件之间进行转换,这是导入/导出文件。

  • 导入功能:在内存表示中将XML文件解组为Java对象,然后使用JDBC更新数据库。

  • 导出功能:反转导入过程。将数据库检索到Java对象并将对象编组为XML。

我认为它可以正常工作,但不够灵活。由于XML的XSD是预定义的,因此无法在运行时更改XML模式和Java对象定义。说它是动态绑定。即使我希望该功能支持其他文件格式(如果格式在这个阶段太远,你可能会忘记它。)

您对该功能有何建议?谢谢!

2 个答案:

答案 0 :(得分:2)

我不知道这是否是正确答案,但无论如何它都有帮助:  我使用了Spring,Hibernate,JAXB,您可以使用jaxb注释来注释数据库实体类及其元素,并且不需要编写任何xml架构文件。在春天你可以使用jaxb Marshaller。

我认为纯jaxb也应该可以,所以你可以查看jaxb注释。

答案 1 :(得分:1)

  

我认为它可以正常工作,但事实并非如此   足够灵活。因为XSD的   XML是预先定义的,它是不可能的   更改XML架构和Java对象   运行时定义

如果您认为它不够灵活,请使用数据交换格式,这样可以使您免受所有这些固定模式定义的影响(我知道甚至JSON都有模式规范,但您明白了这一点)。使用JSON是否可以接受?

我认为如果“导入数据库”和“从数据库导出”是唯一的要求,你甚至不需要为此创建Java对象。只需传入一个包含模式的JSON字符串,该模式随后将由直接与DAO层接口的JSON处理器处理。与从数据库中读取的数据类似。缺点是JSON中的“日期”支持充其量只是参差不齐。

想想看,它不一定是JSON。您可以查看Apache Avro等其他数据序列化格式。但话说回来,如果XML是您无法更改的要求,那么您可以使用模式来解决而不是的“灵活性限制”。

毕竟,XML就像暴力。如果它没有解决你的问题,你就没有使用它。 : - )