【问题标题】:Felxibility of data import/export feature using XML-binding使用 XML 绑定的数据导入/导出功能的灵活性
【发布时间】:2011-02-02 06:56:47
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: java xml binding xsd transform


    【解决方案1】:

    我不知道这是否是正确的答案,但如果有帮助的话: 我使用过 Spring、Hibernate、JAXB,您可以在其中使用 jaxb 注释来注释数据库实体类及其元素,并且不需要编写任何 xml 模式文件。在春季,您可以使用 jaxb Marshaller。

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

    【讨论】:

      【解决方案2】:

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

      如果您认为它不够灵活,请使用数据交换格式,它可以让您摆脱所有这些固定架构定义(我知道即使 JSON 也有架构规范,但您明白了)。可以使用 JSON 吗?

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

      想想看,它不一定是 JSON。您可以查看其他数据序列化格式,例如 Apache Avro。但是话又说回来,如果 XML 是您无法更改的要求,则完全可以通过 not 使用模式来绕过“灵活性限制”。

      毕竟,XML 就像暴力一样。如果它不能解决您的问题,则说明您使用的不够多。 :-)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-01-22
        • 1970-01-01
        • 1970-01-01
        • 2021-11-29
        • 2015-01-02
        • 1970-01-01
        • 2023-03-10
        相关资源
        最近更新 更多