如何使用带有数据库的Java从XML Schema实现往返

时间:2011-03-01 07:44:38

标签: java maven jaxb jdo datanucleus

实现往返接收XML文件并最终使用Java将数据保存到数据库的最佳方法是什么?目前我有:
1. XML Schema& XML数据文件发送给我 - XSD相当复杂,属于外部派对,所以我无法改变它 2.创建Java类
- JAXB生成超过150个类,遗憾的是模式可以更改 - 我使用Maven POM来自动化这个过程 3.将XML数据文件解组为Java对象(使用JAXB注释)
- 数据将显示给用户进行操作
4.将Java对象保留为RDBMS(Oracle / MySQL)
- 似乎JDO是最合适的解决方案
5.导出数据
- 数据可以再次导出为XML或Excel(例如)

我找不到合适的方法将JDO元数据或注释添加到Java源代码(在JAXB过程中生成),以确保我可以持久化Java类。我正在使用以下技术:
- Java,Maven,JAXB,JDO& JDBC

我认为DataNucleus最适合,因为我可能需要在具有不同导出目标的环境之间更改数据存储(RDBMS / XML / Excel)。我可能需要考虑的另外两项技术是: - Spring和XDoclet

建议或指向教程的指针

2 个答案:

答案 0 :(得分:1)

  

实施a的最佳方式是什么?   用于接收XML文件和的往返   最终将数据持久化   使用Java的数据库。

为此,我将使用JAXB和JAXB的组合。注意:我领导EclipseLink JAXB (MOXy)EclipseLink也提供了出色的JPA implementation

  

目前我有:

     

1 - XML Schema& XML数据文件发送给我

     
      
  • XSD相当复杂,属于外部派对,所以我可以   不改变它
  •   

选项#1 - 从XML Schema开始

  • 如果要从XML模式开始,可以使用JAXB的外部绑定文件根据需要自定义类生成,而无需修改第三方XML模式。

选项#2 - 从Java类开始

  

2 - 创建了Java类

     
      
  • JAXB生成超过150个类,遗憾的是架构可以更改
  •   
  • 我使用Maven POM来自动化流程
  •   

如果XML架构发生更改,您始终可以重新生成模型,或者根据需要注释模型以处理对XML架构的修改。

您可能会发现HyperJAXB项目很有用,因为我相信它会在JAXB模型上生成JPA注释。

  

3 - 解组XML数据   将文件转换为Java对象(使用JAXB   注解)

     
      
  • 数据将显示给用户进行操作
  •   

这只是普通的JAXB用法。有关示例,请参阅:

  

4 - 将Java对象保留为   RDBMS(Oracle / MySQL)

     
      
  • 似乎JDO是最合适的解决方案
  •   

JPA是另一种选择。

  

5 - 导出数据

     
      
  • 数据可以再次导出为XML或Excel(例如)
  •   

这也是获取XML输出的正常JAXB用法。

答案 1 :(得分:0)

在数据库中存储JAXB从不断发展的XML模式生成的Java对象的实例没有多大意义,恕我直言。关系数据库的目标是以明确定义的关系结构存储数据,以便能够轻松地查询它。

如果你想要的只是能够获得之前收到的XML文档,那么只需将它作为clob存储在某个表或文件系统中。

如果确实需要以结构化方式将数据存储在数据库中,那么首先设计数据库模式,然后设计映射此数据库模式所需的JDO类,并实现将JAXB对象转换为JDO对象所需的业务逻辑为了将它们存储在数据库中。

但在考虑您想要使用的技术之前,我会考虑更多关于您想要实现的功能。