我一直在网上搜索,但我找不到符合我要求的东西,不知道该怎么做。我知道这已被问过几次,但不完全相同。
我们有一些大的XML文件(仍然不知道大小,但我想肯定不到1GB)。我们只需要这部分文件(只有部分XSD对我们有用),我们必须阅读然后存储在DB中。将来我们可能需要重新创建XML文件,但这不在第一阶段中介绍。
好吧,我已经看到过这样的事情比使用JAXB更好,但我对JAXB实现有点困惑。我们有JDK实现,Castor,Metro和EclipseLink Moxy,我想我至少看过2次实现。哪一个最好将这个XML绑定到POJO类,然后用JPA持久保存到DB?有没有比我列出的更好的实施?我列出的任何一个都是过时的? (我问这个是因为我访问的很多页面已经很老了,并且不确定过去几年是否有变化)
当然,性能很重要,但重要的是我们只需要XML中包含的部分元素。顺便说一句,这适用于SG1-XML标准。
提前致谢。
答案 0 :(得分:0)
注意:我是EclipseLink JAXB (MOXy)主管,是JAXB (JSR-222)专家组的成员。
JAXB (JSR-222)是XML绑定的Java标准,它被其他标准所利用,例如JAX-WS(SOAP Web服务)和JAX-RS(RESTful Web服务)。
由于文档很大而你只需要它的一部分,我建议将JAXB实现与StAX解析器结合使用。您可以使用XMLStreamReader
前进到要解组的文档部分,只需要解组所需的块。
最好将此XML绑定到POJO类,然后再将其绑定到POJO类 用JPA持久保存到DB?
由于MOXy是EclipseLink的一个组件,它是JPA参考实现,我们在这些用例上花费了大量精力。我是MOXy的领导者,我和前JPA合作规范主管Mike Keith共用一个隔间墙。