whatwg规范有12章,其中一章如下(12.1):
本节仅适用于文档,创作工具和标记生成器。特别是,它不适用于一致性检查器;下一节(“解析HTML文档”)
12.1.2.1 开始标签
开始标签必须具有以下格式:
- 开始标签的第一个字符必须是U + 003C LESS-THAN SIGN字符(<)。
- 开始标签的后几个字符必须是元素的标签名称。
- 如果下一步要有任何属性,则必须首先有一个或多个ASCII空格。
- 然后,开始标签可以具有许多属性,其语法如下所述。属性必须由一个或多个ASCII空格彼此分隔。
- 在属性之后,或者在标记名之后(如果没有属性),可能存在一个或多个ASCII空格。 (某些属性必须后面跟一个空格。请参阅下面的属性部分。)然后,如果该元素是void元素之一,或者如果该元素是外来元素,则可能只有一个U + 002F SOLIDUS字符(/)。
- 此字符对void元素无效,但对异物则将start标签标记为自闭合。
- 最后,开始标签必须用U + 003E大于符号(>)结束。
同一节中还有另一个子章节,内容为(12.2):
本节仅适用于用户代理,数据挖掘工具和一致性检查器。
12.2.5.6 标签打开状态
使用下一个输入字符:
U + 0021感叹号(!)
切换到标记声明打开状态。
U + 002F SOLIDUS(/)
切换到结束标签打开状态。 ASCII alpha创建一个新的起点 标签标记,将其标签名称设置为空字符串。重新消耗 标记名称状态。
U + 003F问号(?)
这是一个意外的问题标记,而不是标签名称解析 错误。创建一个注释令牌,其数据为空字符串。 重新以假评论状态进行消费。
EOF
这是eof-before-tag-name解析错误。发射U + 003C
LESS-THAN SIGN字符令牌和文件结束令牌。其他
这是无效的标签名第一个字符解析错误。发射 一个U + 003C LESS-THAN SIGN字符令牌。重新消耗数据 状态。
请告诉我区别。因为在这些章节中都有构造标记的规则。
答案 0 :(得分:2)
适用于文档,创作工具和标记生成器(编写器)的12.1节与适用于用户代理,数据挖掘工具和一致性检查器的12.2节之间的区别< / em>(读者),来自robustness principle:
对自己的工作要保守,对别人接受的东西要宽容(经常改写为“对发送的内容要保守,对接受的东西要宽容”)。
答案 1 :(得分:1)
您引用的第一组材料描述了开始标签的格式。
您引用的第二组材料描述了在使用<
后面的字符时解析器应该做什么,该字符可能会出现标签。