特殊HTML构造标记的名称

时间:2015-10-20 01:39:13

标签: html xml tags comments dtd

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

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

我的问题是,每种构造类型都有 不同的名称 ,还是我必须将它们称为“感叹号标记内容“和”问号标记doohicky “永远?

答案:

这个答案很大程度上取决于kjhughes的答案。

XMLHTML都没有在其规范中明确命名<! >构造,两种<!X {{1}都有不同的名称结构 - >代表XDOCTYPEELEMENTENTITYATTLISTNOTATION *,或者marked section-- *。

开头

然而, SGML - HTML和XML的基础。

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

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

SGML和HTML都不使用>作为处理指令关闭分隔符的一部分,实质上使?闭包无效标记。

但是,XML appears to extend原始SGML规范并使用?>来关闭处理指令而不是?>,这就是为什么在XML文档中找到此表单的原因。

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

TL; DR:

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

备注:

* HTML 2.0 specification将评论称为“ 评论声明 ”。 Taken together with SGML,这表示每个有效?> >表单的名称以“ 声明 ”结尾。

** HTML 4 recommendation 的措辞意味着注释仍然是标记声明的子结构,但它并未将注释称为“注释声明”,如HTML 2.0。 / p>

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

3 个答案:

答案 0 :(得分:3)

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

XML建议书没有明确标注<!<?,但对于那些使用SGML术语是公平的:

  • <!是一个标记声明开放分隔符,由标记声明关闭分隔符>匹配。
  • <?处理指令开放分隔符,由处理指令关闭分隔符?>匹配(尽管在SGML中PI关闭分隔符是>)。

答案 1 :(得分:0)

这个答案主要来自kjhughes上面的回答。

XMLHTML都没有在其规范中明确命名<! >构造,两种<!X {{1}都有不同的名称结构 - >代表XDOCTYPEELEMENTENTITYATTLISTNOTATION *,或者marked section-- *。

开头

然而, SGML - HTML和XML的基础。

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

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

SGML和HTML都不使用>作为处理指令关闭分隔符的一部分,实质上使?闭包无效标记。

但是,XML appears to extend原始SGML规范并使用?>来关闭处理指令而不是?>,这就是为什么在XML文档中找到此表单的原因。

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

<强> TL; DR:

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

备注:

* HTML 2.0 specification将评论称为“评论声明”。 Taken together with SGML,这表示每个有效?> >表单的名称以“ 声明 ”结尾。

** HTML 4 recommendation 的措辞意味着注释仍然是标记声明的子结构,但它并未将注释称为“注释声明”,如HTML 2.0。 / p>

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

答案 2 :(得分:-2)

每个标签都有一个名称:

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