xml - DTD 是否被弃用?

标签 xml xsd deprecated dtd

What is difference between XML Schema and DTD? ,两个回答者声明 DTD“已弃用”。其中一位用户 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 已弃用在技术上是不正确的。

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

关于xml - DTD 是否被弃用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42893680/

相关文章:

Javascript:从 XMLDocument 获取子节点

mongodb - 在 XML 数据库中实现 MongoDB 样式文档引用

c# - xs :key, 为什么当键值不是键引用的成员时验证通过?

Python 从 XML 中删除 &#xD

javascript - 通过 JavaScript 访问 XML 数据

android - 将 Android Studio 更新到 1.3.0 版后,出现 "NDK integration is deprecated in the current plugin"错误

api - 2015年4月20日之后的YouTube数据API V2.0

PHP fatal error : Call-time pass-by-reference has been removed

android - 如何将项目位置设置为bottomcenter launchbackground.xml

php - 显示没有标签的xml文档?