Schema 和 DTD 之间的区别
Posted
技术标签:
【中文标题】Schema 和 DTD 之间的区别【英文标题】:Difference Between Schema's and DTD's 【发布时间】:2011-11-17 13:05:16 【问题描述】:在 XML 中,DTD 和 Schema 有什么区别?
【问题讨论】:
见***.com/questions/1490583/is-dtd-or-xml-schema-better 当你谈到模式时,你需要清楚你是在谈论一般的模式语言(其中 DTD 是一个例子)还是特别是关于 W3C XML 模式语言(现在称为 XSD) . 另见What is difference between XML Schema and DTD?。 【参考方案1】:查看XML DTDs vs XML Schema 以获得良好的比较和解释。
DTD 提供了一种基本语法,用于根据构成文档形状的元数据来定义 XML 文档。 XML Schema 提供了这一点,并提供了一种详细的方法来定义数据可以包含和不可以包含的内容。它为开发人员提供了对合法性的更多控制,并提供了一种面向对象的方法,以及由此带来的所有好处。
【讨论】:
有什么DTD特性不能用XSD表达吗?【参考方案2】:DTD 是 XML 规范本身的一部分。架构不是。只有一种 DTD 语言;模式语言有很多种,“XML Schema”和“Relax NG”是两种常见的语言。
大多数模式语言都试图覆盖 DTD 的一些限制(很多),我的印象是 DTD 对新应用程序非常不受欢迎。然而,html 被指定为 DOCTYPE 定义,EPUB 规范的某些部分也是如此。在这一点上,它们的主要优势可能是符合标准的 XML 处理器应该处理它们,而对于任何其他模式语言,您都不能这么说。
【讨论】:
以上是关于Schema 和 DTD 之间的区别的主要内容,如果未能解决你的问题,请参考以下文章
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
rake db:migrate db:reset 和 db:schema:load 之间的区别
生成 Prisma Graphql Schema 时使用 generate 和 post deploy 钩子之间的区别?