特殊 HTML 构造标签的名称
Names of special HTML construct tags
在 HTML、XML 和部分 DTD 中,有两种特殊标记结构:
- 以感叹号
<!
开头并以标准>
结尾的标签,例如<!DOCTYPE html>
和<!--comment-->
- 以 问号
<?
开头并以另一个问号 ?>
结尾的标签,例如 <?xml version="1.0"?>
和 <?php phpinfo();?>
我的问题是,这些构造类型中的每一种是否有 不同的名称,还是我必须将它们称为“ 感叹号标签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 文档。
不过要在汤里加点毛,一个<?
后面跟一个不区分大小写的x
m
l
</code> 并以 <code>?>
结束保留,技术上不是处理指令。这种形式目前仅用于 XML declarations,尽管可以说 XML 声明只是 XML 解析器本身的处理指令。
TL;DR:
- 完整的
<!
>
是 SGML 标记声明,但未在 HTML** 或 [=176] 中明确命名=]***
- 一个完整的
<?
?>
是处理指令在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.
中是它们自己的类别
每个标签都有一个名称:
<!DOCTYPE html> = doctype
<!-- = comment
<?php = php tag
<?xml = xml tag
请参阅 W3C Extensible Markup Language (XML) Recommendation 了解现代标记术语:
- None 个结构可以适当地称为 tags。 tag delimits an element 是开始标记 (
<div>
)、结束标记 (</div>
) 或空标记 (<div/>
) 之一。也可以看看
<?xml version="1.0" ... ?>
是一个 XML declaration。注意
在格式良好的 XML 中只允许一个 XML 声明,并且它
必须在顶部。
<?PITarget ... ?>
是一个 processing instruction,前提是
PITarget 不等于 xml(不区分大小写)。
<!DOCTYPE html ...>
是 document type definition.
<!ELEMENT ... >
是 element declaration, or generally, markup declaration.
<!-- comment -->
是一个 comment.
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 文档。
不过要在汤里加点毛,一个<?
后跟一个不区分大小写的x
m
l
</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.
中属于它们自己的类别
在 HTML、XML 和部分 DTD 中,有两种特殊标记结构:
- 以感叹号
<!
开头并以标准>
结尾的标签,例如<!DOCTYPE html>
和<!--comment-->
- 以 问号
<?
开头并以另一个问号?>
结尾的标签,例如<?xml version="1.0"?>
和<?php phpinfo();?>
我的问题是,这些构造类型中的每一种是否有 不同的名称,还是我必须将它们称为“ 感叹号标签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 文档。
不过要在汤里加点毛,一个<?
后面跟一个不区分大小写的x
m
l
</code> 并以 <code>?>
结束保留,技术上不是处理指令。这种形式目前仅用于 XML declarations,尽管可以说 XML 声明只是 XML 解析器本身的处理指令。
TL;DR:
- 完整的
<!
>
是 SGML 标记声明,但未在 HTML** 或 [=176] 中明确命名=]*** - 一个完整的
<?
?>
是处理指令在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.
中是它们自己的类别每个标签都有一个名称:
<!DOCTYPE html> = doctype
<!-- = comment
<?php = php tag
<?xml = xml tag
请参阅 W3C Extensible Markup Language (XML) Recommendation 了解现代标记术语:
- None 个结构可以适当地称为 tags。 tag delimits an element 是开始标记 (
<div>
)、结束标记 (</div>
) 或空标记 (<div/>
) 之一。也可以看看 <?xml version="1.0" ... ?>
是一个 XML declaration。注意 在格式良好的 XML 中只允许一个 XML 声明,并且它 必须在顶部。<?PITarget ... ?>
是一个 processing instruction,前提是 PITarget 不等于 xml(不区分大小写)。<!DOCTYPE html ...>
是 document type definition.<!ELEMENT ... >
是 element declaration, or generally, markup declaration.<!-- comment -->
是一个 comment.
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 文档。
不过要在汤里加点毛,一个<?
后跟一个不区分大小写的x
m
l
</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.
中属于它们自己的类别