DTD已废弃使用了吗?
DTD已废弃使用了吗?
在《XML Schema和DTD有什么区别?》中,两位回答者都表示DTD“已被弃用”。其中一位回答者vtd-xml-author表示:
DTD在实用性方面非常有限,因此基本上已被弃用[...]
对此,用户Jesse Chisholm评论道:
被弃用?不是的。[XDR已被弃用]过时了?可能[...]
在《DTD到底是什么?》中,用户AlexR对一个回答进行了如下评论:
请注意,DTD已被弃用,取而代之的是更具声明性和强大的XSD。
在这种情况下,没有人出来反对。
那么DTD是被弃用了还是没有?这显然是一个事实问题,而不是观点问题。想必W3C或其他标准组织有权决定DTD是否实际上已被弃用。当然,在特定上下文中(例如特定软件系统)使用DTD可能会被弃用,但在该(或任何)上下文之外,DTD本身并未被弃用。
DTD并没有被正式弃用,但现在有比DTD更好的选择来指定XML词汇和语法。俗称地讲,"deprecated"通常用来指代不再被鼓励使用的旧方法。从这个意义上讲,可以说DTD已经被弃用了。与DTD相比,XSD更具表现力(RELAX NG和Schematron也是更好的选择)。此外,XSD在许多领域中已经超过了DTD,成为指定XML词汇和语法的首选。然而,从技术上讲,"deprecated"通常是由负责标准、API、库或其他受其控制的工件的一方正式宣布的。W3C从未宣布过DTD被弃用,因此从技术角度上说,DTD被弃用是不正确的。不管语义如何,选择XSD(或RELAX NG或Schematron)来开始任何新的XML词汇和语法工作。在当前时点上,DTD不必被正式弃用,也是一个糟糕的选择。