首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是DOCTYPE ex系统"ex.dtd“

什么是DOCTYPE ex系统"ex.dtd“
EN

Stack Overflow用户
提问于 2013-03-23 13:03:08
回答 1查看 136关注 0票数 0

因此,在阅读DOM level 2 spec found时,我发现了以下代码

代码语言:javascript
复制
<!DOCTYPE ex SYSTEM "ex.dtd" [
  <!ENTITY foo "foo">
  <!ENTITY bar "bar">
  <!ENTITY bar "bar2">
  <!ENTITY % baz "baz">
]>
<ex/>

虽然我理解为什么在将它插入html时它会如此崩溃,但为什么它仍然显示]>,但仍然解析出html中的<ex/>结束标记?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-23 13:37:03

它根本不是HTML。它只是一段相当普通的XML。在形式上,“ex.dtd”是指应该包含文档类型定义(DTD)的外部资源(例如另一个文件)。

当您在将通用XML作为HTML (例如,在HTTP头中指定Content-Type: text/html )的浏览器中抛出它时,可能会发生一些有趣的事情。浏览器尝试将其解析为HTML。

具体地说,浏览器不读取DTD,也不通过正式规范解析文档类型声明(DOCTYPE声明)-它们只识别一组有限的特定doctype字符串。他们不认识...thing,它是一个包含DTD的“内部子集”的XML (和SGML)构造,即用额外的声明扩充外部DTD的一种方法,比如这里的实体声明。当他们在第一个实体声明中看到“<”时,他们期望doctype字符串已经结束,忽略这些声明,然后将“]>”视为字符数据。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15583574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档