【问题标题】:Can I create an XML document from dtd file in Java?我可以从 Java 中的 dtd 文件创建 XML 文档吗?
【发布时间】:2010-10-12 10:41:10
【问题描述】:

我有一个包含元素和属性规范的简单 DTD 文件。我可以创建一个合适的 XML 文件(带有 DOM)来用 Java 解析这个 DTD 而没有外部 API 吗?

提前致谢

【问题讨论】:

    标签: xml dom parsing dtd sax


    【解决方案1】:

    我对您的问题的理解与 Eugene Morozov 不同。如果我是对的,请告诉我:您需要一个将 DTD 作为输入并自动 生成根据此 DTD 有效的 XML 文件的程序。描述正确吗?

    如果是这样,那当然是有可能的,其他“结构语言”也存在这样的程序(参见 abnfgen 了解 BNF 语法;在 XML 世界中,例如 XMLSpy 似乎可以打开 W3C Schema 文件 - XSD文件 - 并生成一个示例有效 XML),但我不知道 DTD/XML,你必须自己编写。

    请注意,根据给定的 DTD,存在 无限 的有效 XML 文件。您的程序只会生成一个小子集(但它可能足以满足您的目的:它到底是什么?)

    【讨论】:

    • 您是否还知道存在无法形成有效 XML 的 DTD?好琐事!
    • 贴个例子,会很有趣的。
    • 感谢您的详尽回答 =)
    【解决方案2】:

    有些误会。您不能使用 DOM 或 SAX 解析 DTD。 DTD 描述文档结构。您可以使用各种工具根据 DTD 验证生成的文档。

    只需阅读并理解 DTD 并相应地生成 XML 文档。您可以稍后检查文档是否符合 DTD。

    编辑:您不必为解析 DTD 编写代码。首先,您应该阅读有关 DTD 的内容。以Wikipedia description开头,最后有更多链接。

    然后手动阅读 DTD 并了解所需的文档结构。然后只需生成符合 DTD 的 XML。

    【讨论】:

    • 我的意思是只使用 DOM 来创建 XML.. 但我不知道是否有解析 DTD 的好方法
    • 你不需要解析 DTD。您可以稍后使用此处讨论的工具针对 DTD 验证生成的 XML,例如:bytes.com/groups/xml/…
    • 如果您了解DTD并生成有效的文档,则无需每次都对照DTD进行检查。只要确保您了解 DTD,您的文档将始终符合它。
    • 我还没有 XML。我必须从 DTD 创建它。
    • 您不能从 DTD 创建 XML。在生成 XML 时,不能以任何有意义的方式使用 DTD。你必须用你的眼睛阅读它。稍后,如果您需要确保 XML 符合,您可以根据 DTD 验证 XML。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-24
    • 1970-01-01
    • 2016-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多