【问题标题】:Generating java binding classes using XML file without XSD schema file? Using any Castor or JAXB framework使用没有 XSD 模式文件的 XML 文件生成 java 绑定类?使用任何 Castor 或 JAXB 框架
【发布时间】:2011-09-16 15:24:21
【问题描述】:

我需要从 XML 文件创建 java 模型类(绑定类)。不幸的是,我没有 XSD 架构。有许多已经存在的 XML。

奇怪的是,Castor 或 JAXB 都使用 XSD 模式来生成绑定模型类。如果没有架构怎么办?并非所有 XML 都是使用 Schema 创建的!

【问题讨论】:

    标签: java xml jaxb castor


    【解决方案1】:

    您可以使用Trang 之类的架构推断工具。它可以从xml 生成xsd。然后,您可以调整生成的架构或直接将其提供给 JAXB/Castor 等。

    【讨论】:

    • Tks。如其他评论中所述。我尝试过 trang / XMLSpy 来生成 XSD。但问题是两个 XSD 都非常不同。 Infact XML spy 正在根据我的 XML 示例验证它的 XSD,但对 trang 生成的模式失败了!!!我还看到 XML 间谍生成的模式具有来自我的 XML 示例的数据!!
    • 您可以手动映射类。它只需要一些注释。
    • 我的 XML 非常庞大且复杂。不过我从来没有映射过类。如果我需要映射每个标签/元素,它可能会变得很麻烦!
    【解决方案2】:

    XML 绑定技术不从 XML 生成 Java 类的原因是它更加复杂:

    • 单个 XML 元素真的是单个元素还是大小为 1 的集合?
    • 示例 XML 中的数据看起来像一个 int,但是否允许 String 内容?

    您有几个选择。第一个是您可以使用工具从 XML 生成 XML 模式,然后从中生成类。或者您可以注释现有的类以将它们映射到 XML:

    【讨论】:

    • Tks。我现在明白了为什么 Castor/JAXB 选择 XSD 而不是 XML。但是我在过去和现在都看到过在没有 XSD/DTD 的情况下创建的 XML。无论如何..我没有 XSD,所以我尝试 trang / XMLSpy 生成 XSD。但问题是两个 XSD 都非常不同。 Infact XML spy 正在根据我的 XML 示例验证它的 XSD,但对 trang 生成的模式失败了!!!我还看到 XML 间谍生成的模式具有来自我的 XML 示例的数据!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-03
    • 2011-09-25
    • 2012-11-02
    • 1970-01-01
    • 1970-01-01
    • 2015-06-28
    相关资源
    最近更新 更多