【问题标题】:How to derive DTD (or other XML spec format) from XML file samples如何从 XML 文件样本派生 DTD(或其他 XML 规范格式)
【发布时间】:2010-12-21 09:00:09
【问题描述】:

您知道有什么工具可以从一组示例 XML 文件中导出 DTD(或其他 XML 结构规范格式)吗?

目前,我们对 xml 编码的 DSL 进行的唯一(自动)验证是用 Perl 编写的遗留解析器,但出于一致性原因,所有 perl 代码都必须移植到 C-sharp。

【问题讨论】:

    标签: xml dtd


    【解决方案1】:

    您可以使用xsd.exe(Visual Studio 的一部分)为给定的 XML 文件生成 XML 架构。

    【讨论】:

      【解决方案2】:

      http://www.stylusstudio.com/dtd_generator.html 是实现 DTD 生成器的实际软件。

      http://www.pmg.csail.mit.edu/~chmoh/pubs/wecwis.pdf 似乎是一篇关于您需要的东西的好论文,但到目前为止我在论文的任何地方都找不到(链接到)实际代码。

      这是另一篇关于此的论文,同样,找不到代码:http://www.softnet.tuc.gr/~minos/Papers/debull03.pdf

      最后,我还建议您考虑使用 RELAX NG 或 Schematron 来验证您的 XML。这些语言更具表现力,使它们更易于阅读,并且在您可以验证的事物中更强大。 (一定要跳过被广泛认为是一团糟的 XML Schema。)

      【讨论】:

      • 有趣的文档!太糟糕了,他们从未发布过代码(以我能找到的方式:-)
      • hitsw.com/xml_utilites 承诺从单个 XML 文件创建 DTD/模式 ..
      • RE - RELAX NG 或 Schematron:我会看看 dotNet 环境是否存在验证器。感谢您的提示!
      【解决方案3】:

      您可以使用以下链接在线生成架构,只需提供 xml 数据。 http://www.xmlforasp.net/codebank/system_xml_schema/buildschema/buildxmlschema.aspx

      【讨论】:

        【解决方案4】:

        您可以免费下载 JetBrains IDEA 社区版。它具有用于生成 GTD 和模式的内置工具:

        http://www.jetbrains.com/idea/webhelp/generating-dtd.html

        也许并不完美,但它确实是。

        【讨论】:

          【解决方案5】:

          这是对我有用的程序DTDGenerator。您需要使用 Java 编译它,但它运行良好。对于一种已经存在了很长时间的语言缺乏免费软件,我感到很惊讶,但这个软件在 Mozilla Public License Version 1.0 下是免费的。

          【讨论】:

          • 这个问题已经很老了,但似乎仍然相关。欢迎回复当前建议。
          • 非常感谢...真的,缺少免费软件!感谢您的帮助!! :)
          【解决方案6】:

          Altova's XMLSpy 有一个 DTD/XML 模式生成器。

          生成的 DTD/XML Schema 通常需要稍作调整。例如,当您“打算”允许它允许任何值时,该工具可能会枚举属性或元素的列表。你只是给它一个你的问题空间的样本,但是它必须从特定到一般。因此,当它无法读懂我的想法时,我不会太弯曲。

          我认为生成的 dtd 或架构是一个起点。这比从零开始用手滚动要好。呃,如果你是从现有的 XML 文档开始,那就是。

          即使您不打算使用生成的 dtd,这也是了解一组不熟悉的 XML 文档结构的好方法。

          【讨论】:

            【解决方案7】:

            XMLMax 编辑器将从 XML 文件创建 XSD。免费试用(无注册/小下载文件)将为您完成此操作。如果您想在代码中执行此操作,.NET 框架有一个 XmlSchemaInference 类,它会自动从 xml 文件创建 XSD。

            【讨论】:

              【解决方案8】:

              刚刚使用http://www.freeformatter.com/xsd-generator.html 从 xml 文件生成 xsd。 它还有很多其他的格式化可能性!

              【讨论】:

                【解决方案9】:

                您可能想试试TrangInstance to Schema ToolXMLBeans 的一部分)。

                我用 1GB XML 文件对它们进行了测试。结果如下:

                Trang:

                max memory [kB] - 98,480
                time [MM:SS] - 0:24
                

                Instance to Schema Tool:

                max memory [kB] - 5,993,240
                time [MM:SS] - 7:36
                

                【讨论】:

                  猜你喜欢
                  • 2010-09-06
                  • 2015-04-19
                  • 1970-01-01
                  • 1970-01-01
                  • 2013-05-24
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2020-07-30
                  相关资源
                  最近更新 更多