我有一个包含元素和属性规范的简单 DTD 文件。我可以创建一个合适的 XML 文件(带有 DOM),用 Java 解析这个 DTD 而没有外部 API?
提前致谢
有一些误会。您不能使用 DOM 或 SAX 解析 DTD。DTD 描述文档结构。您可以使用各种工具根据 DTD 验证生成的文档。
只需阅读并理解 DTD 并相应地生成 XML 文档。您可以稍后检查文档是否符合 DTD。
编辑:您不必为解析 DTD 编写代码。首先,您应该阅读有关 DTD 的内容。从Wikipedia description开始,最后有更多链接。
然后手动阅读 DTD 并了解所需的文档结构。然后只需生成符合 DTD 的 XML。
我对您的问题的理解与 Eugene Morozov 不同。告诉我我是否正确:您需要一个程序,它以 DTD 作为输入并自动生成根据该 DTD 有效的 XML 文件。是正确的描述吗?
如果是这样,那当然是可能的,这样的程序存在于其他“结构语言”中(参见abnfgen了解 BNF 语法;在 XML 世界中,例如 XMLSpy 似乎可以打开 W3C Schema 文件 - XSD 文件 - 并生成一个示例有效的 XML),但我不知道用于 DTD/XML 的,您必须自己编写。
请注意,根据给定的 DTD ,存在无限的有效 XML 文件。您的程序只会生成一个小子集(但它可能足以满足您的目的:它到底是什么?)