为啥对 XML 同时使用 XSD 和 DTD?

Posted

技术标签:

【中文标题】为啥对 XML 同时使用 XSD 和 DTD?【英文标题】:Why use both XSD and DTD for XML?为什么对 XML 同时使用 XSD 和 DTD? 【发布时间】:2016-12-08 05:58:43 【问题描述】:

*** 有几个很好的问题 contrasting XSD and DTD 和 choosing between XSD and DTD。但是我遇到了一种同时使用 XSD 和 DTD 的数据格式和库。 XML 文档指定 DTD,但支持库需要 XSD 进行编码和解码。

同时使用 XSD 和 DTD 有什么好处?

【问题讨论】:

【参考方案1】:

我看到 DTD 和 XSD 一起使用的最重要的时间与您引用的示例有关:一个行业标准组很久以前使用 DTD 定义了他们的 XML 词汇和语法,但 XML 的特定消费者希望使用工具例如需要 XSD 的 JAXB。因此,消费者使用 XSD 创建了一个并行模式,以便能够利用工具或满足需要 XSD 的其他依赖项,同时保持与通过先前建立的 DTD 指定的模式的兼容性。

除了解决此类遗留问题之外,不要打扰 DTD。新项目应仅使用更现代的 XML 模式语言,例如 XSD、RELAX NG 或 Schematron。

【讨论】:

以上是关于为啥对 XML 同时使用 XSD 和 DTD?的主要内容,如果未能解决你的问题,请参考以下文章

XML的验证模式DTD与XSD的区别

XML Schema 的声明和引用

如何在 DTD 和 XSD 之间进行选择

dtd与xsd去区别

在Eclipse中导入dtd和xsd文件,使XML自动提示 (转)

XML, DTD, XSD, SGML