【问题标题】:Convert xml to xsd using java使用java将xml转换为xsd
【发布时间】:2010-10-27 14:23:18
【问题描述】:

我正在寻找可以从 XML 文件生成 XSD 的工具或 java 代码或类库/API。 (类似于 .NET Framework sdk 中的 xsd.exe 实用程序)

【问题讨论】:

    标签: java xml xsd


    【解决方案1】:

    这些工具可以提供一个很好的起点,但它们不能替代思考实际的架构约束应该是什么。您可能会遇到两种错误:(1) 允许不应该允许的 XML;(2) 不允许应该允许的 XML。

    举个例子,假设您想从几千个包含“性别”标签的患者记录中推断出 XSD(我曾经在医疗记录软件上工作)。该工具可能会遇到“M”和“F”作为值,并可能推断该元素是一个枚举。但是,其他有效(尽管很少使用)值是 B(两者)、U(未知)或 N(无)。当然,这些很少见。因此,如果您使用派生模式作为输入验证器,它会表现良好,直到有多个性器官的患者入院为止。

    相反,为避免此错误,XSD 生成器可能不会添加枚举类型限制(我不记得这些在模式中被称为什么),并且您的应用程序会正常工作,直到它遇到性别 = X 的错误记录。

    所以,小心。最好仅将这些工具用作起点。此外,它们往往会产生冗长和冗余的模式,因为它们无法像人类一样找出模式。

    【讨论】:

      【解决方案2】:

      检查Castor,我认为它具有您正在寻找的功能。他们还为您提供了一个ant task,它可以从 XML 文件创建 XSD 架构。

      PS 我建议你以后添加更具体的标签:例如,使用 xmlxsdjava 会增加可能性得到答案。

      【讨论】:

        【解决方案3】:

        您可以使用 xsd-gen-0.2.0-jar-with-dependencies.jar 文件将 xml 转换为 xsd。 它的命令是“java -jar xsd-gen-VERSION-jar-with-dependencies.jar /path/to/xml.xml > /path/to/my.xsd”

        【讨论】:

          【解决方案4】:

          试试 Google 的 xsd-gen 项目。

          https://code.google.com/p/xsd-gen/

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-02-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多