特殊 HTML 构造标签的名称

Names of special HTML construct tags

在 HTML、XML 和部分 DTD 中,有两种特殊标记结构:

我的问题是,这些构造类型中的每一种是否有 不同的名称,还是我必须将它们称为“ 感叹号标签thingy”和“问号标签doohicky”永远?


答案:

这个答案很大程度上来自下面 kjhughes 的答案。

都不是 XML nor HTML explicitly name the <! > construct in their specifications, with both having different names for each kind of <!X > structure—X representing either DOCTYPE, ELEMENT, ENTITY, ATTLIST, NOTATION, --*, or a marked section[ *.

开头

然而,SGML——HTML和XML的基础——确实如此。

SGML 中,正确填充的 <!X > 构造称为 SGML 标记声明,其中 <!作为 标记声明打开 分隔符和 > 作为 标记声明关闭 分隔符。

至于 <? ?> 构造,SGML and HTML 都定义了类似的 <?X > 结构,称为 处理指令X代表处理指令目标)。在这种情况下,<? 被称为 处理指令打开 定界符,并与 处理指令关闭 定界符配对,这是一个孤独>.

SGML 和 HTML 都没有使用 ? 作为处理指令结束定界符的一部分,本质上使 ?> 闭包无效标记。

然而,XML appears to extend 原始的 SGML 规范并使用 ?> 来关闭处理指令而不是 >,这就是为什么在 XML 文档。

不过要在汤里加点毛,一个<?后面跟一个不区分大小写的xml</code> 并以 <code>?> 结束保留,技术上不是处理指令。这种形式目前仅用于 XML declarations,尽管可以说 XML 声明只是 XML 解析器本身的处理指令。

TL;DR:


备注:

*HTML 2.0 specification refers to comments as "comment declarations". Taken together with SGML,这意味着每个有效的<!X>形式的名称以单词“declaration".

** HTML 4 recommendation 的措辞 暗示注释仍然是标记声明的子结构,但它并不将注释称为 "comment declarations" 喜欢 HTML 2.0.

***XML does name 标记声明;但是,该定义不包括注释或标记部分,这些部分在 XML.

中是它们自己的类别

每个标签都有一个名称:

<!DOCTYPE html> = doctype
<!-- = comment
<?php = php tag
<?xml = xml tag

请参阅 W3C Extensible Markup Language (XML) Recommendation 了解现代标记术语:

XML 推荐没有具体标记 <!<?,但对这些使用 SGML 术语是公平的:

  • <! 是一个 标记声明开始定界符 标记声明结束定界符 , >.
  • <? 是一个 处理指令打开定界符 处理指令关闭定界符 , ?>(尽管在 SGML 中 PI 结束分隔符是 >)。

这个答案很大程度上来自 kjhughes 上面的答案。

都不是 XML nor HTML explicitly name the <! > construct in their specifications, with both having different names for each kind of <!X > structure—X representing either DOCTYPE, ELEMENT, ENTITY, ATTLIST, NOTATION, --*, or a marked section[ *.

开头

然而,SGML——HTML和XML的基础——确实如此。

SGML 中,正确填充的 <!X > 构造称为 SGML 标记声明,其中 <!作为 标记声明打开 分隔符和 > 作为 标记声明关闭 分隔符。

至于 <? ?> 构造,两者 SGML and HTML 都定义了类似的 <?X > 结构,称为 处理指令X代表处理指令目标)。在这种情况下,<? 被称为 处理指令打开 定界符,并与 处理指令关闭 定界符配对,这是一个孤独>.

SGML 和 HTML 都没有使用 ? 作为处理指令结束定界符的一部分,本质上使 ?> 闭包无效标记。

然而,XML appears to extend 原始的 SGML 规范并使用 ?> 来关闭处理指令而不是 >,这就是为什么在 XML 文档。

不过要在汤里加点毛,一个<?后跟一个不区分大小写的xml</code> 并以 <code>?> 结束是保留的,技术上不是处理指令。这种形式目前仅用于 XML declarations,尽管可以说 XML 声明只是 XML 解析器本身的处理指令。

TL;DR:

  • 完整的 <! >SGML 标记声明,但未在 HTML** 或 [=141] 中明确命名=]***
  • 一个完整的<??>处理指令在XML中,但在SGML中用>关闭并且HTML.


备注:

*HTML 2.0 specification refers to comments as "comment declarations". Taken together with SGML,这意味着每个有效的 <!X > 形式的名称以单词“declaration".

** HTML 4 recommendation 的措辞 暗示注释仍然是标记声明的子结构,但它并不将注释称为 "comment declarations" 喜欢 HTML 2.0.

***XML does name 标记声明;但是,该定义不包括评论或标记部分,这些部分在 XML.

中属于它们自己的类别