DTD 是否被弃用?

Is DTD deprecated?

What is difference between XML Schema and DTD? 中,两个回答者指出 DTD "is deprecated"。其中一位用户 vtd-xml-author 指出

DTD is pretty much deprecated because it is limited in its usefulness [...]

Jesse Chisholm 在哪个用户评论

Deprecated? No. [XDR is deprecated] Going out of fashion? Maybe [...]

What is DTD exactly?中,用户AlexR对一个答案的评论如下:

Note that DTD is deprecated in favor of the more declarative and powerful XSD.

在这种情况下,没有人反对。

那么 DTD 是否被弃用了?这肯定是事实,而不是意见。大概是 W3C 或其他一些标准机构有权决定 DTD 实际上是否被弃用。当然,在给定上下文(例如,特定软件系统)中使用 DTD 可能会被弃用,而 DTD 本身不会在该(或任何)上下文之外被弃用。

DTD 并未正式弃用,但是现在有比 DTD 更好的选择来指定 XML 词汇和语法。

通俗地说,已弃用 通常用于指代不再鼓励的旧方法。在这种意义上,有人可能会说 DTD 已被弃用。 XSD 比 DTD 更具表现力。 (RELAX NG 和 Schematron 也是更好的选择。)此外,XSD 的采用率早已超过 DTD,用于在许多领域指定 XML 词汇表和语法。

但是,从技术上讲,已弃用 通常适用于由对标准负责的一方的官方行为,API 、库或其他受其控制的工件。 W3C 从未声明过要弃用 DTD,因此说 DTD 已弃用在技术上是不正确的。

抛开语义,选择 XSD(或 RELAX NG 或 Schematron)来处理您开始的任何新 XML 词汇和语法作业。在这个时间点,DTD 不必被正式弃用就是一个糟糕的选择。