gpt4 book ai didi

html - 特殊 HTML 构造标签的名称

转载 作者:行者123 更新时间:2023-11-28 01:23:04 28 4
gpt4 key购买 nike

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

  • 感叹号开头的标签<!并以标准>结束,例如 <!DOCTYPE html><!--comment-->
  • 问号开头的标签<?并以另一个问号结束 ?> ,例如 <?xml version="1.0"?><?php phpinfo();?>

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


回答:

这个答案主要来自 kjhughes下面是答案。

都不是XML也不HTML明确命名 <! >在他们的规范中构建,每种类型都有不同的名称 <!X >结构— X代表 DOCTYPE , ELEMENT , ENTITY , ATTLIST , NOTATION , -- *,或 marked section[ 开头*.

但是, SGML ——HTML 和 XML 的基础——确实如此。

SGML , 一个正确填写的 <!X >构造被称为 SGML 标记声明,带有 <!作为标记声明打开分隔符和>作为标记声明结束分隔符。

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

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

但是,XML appears to extend原始 SGML 规范和使用 ?>关闭处理指令而不是 > ,这就是在 XML 文档中可以找到这种形式的原因。

但要在汤中加入一些头发,<?后跟不区分大小写的 x m l 并以 ?> 结束已保留并且技术上不是处理指令。此表格目前仅用于 XML declarations ,尽管可以说 XML 声明只是 XML 解析器本身的处理指令。

长话短说:

  • 完整 <! >SGML 标记声明,但未在 HTML** 或 XML*** 中明确命名
  • 完整 <? ?>是 XML 中的处理指令,但以 > 结束在 SGML 和 HTML 中。


注意事项:

*HTML 2.0 specification将评论称为“评论声明”。 Taken together with SGML ,这意味着每个有效的名称 <!X >表单以单词“声明”结尾。

**HTML 4 recommendation的写法确实暗示注释仍然是标记声明的子结构,但它并不像 HTML 2.0 那样将注释称为“注释声明”。

***XML does name标记声明;但是,该定义不包括注释或标记部分,它们在 XML 中属于它们自己的类别。


最佳答案

咨询W3C Extensible Markup Language (XML) Recommendation对于现代标记术语:

XML Recommendation 没有特别标记 <!<? ,但对这些使用 SGML 术语是公平的:

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

关于html - 特殊 HTML 构造标签的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33226653/

28 4 0