html构造规则之间的区别

时间:2018-07-08 07:20:09

标签: html

whatwg规范有12章,其中一章如下(12.1):

  

本节仅适用于文档,创作工具和标记生成器。特别是,它不适用于一致性检查器;下一节(“解析HTML文档”)


  

12.1.2.1 开始标签

     

开始标签必须具有以下格式:

     
      
  1. 开始标签的第一个字符必须是U + 003C LESS-THAN SIGN字符(<)。
  2.   
  3. 开始标签的后几个字符必须是元素的标签名称。
  4.   
  5. 如果下一步要有任何属性,则必须首先有一个或多个ASCII空格。
  6.   
  7. 然后,开始标签可以具有许多属性,其语法如下所述。属性必须由一个或多个ASCII空格彼此分隔。
  8.   
  9. 在属性之后,或者在标记名之后(如果没有属性),可能存在一个或多个ASCII空格。 (某些属性必须后面跟一个空格。请参阅下面的属性部分。)然后,如果该元素是void元素之一,或者如果该元素是外来元素,则可能只有一个U + 002F SOLIDUS字符(/)。
  10.   
  11. 此字符对void元素无效,但对异物则将start标签标记为自闭合。
  12.   
  13. 最后,开始标签必须用U + 003E大于符号(>)结束。
  14.   

同一节中还有另一个子章节,内容为(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字符令牌。重新消耗数据   状态。

  •   

请告诉我区别。因为在这些章节中都有构造标记的规则。

2 个答案:

答案 0 :(得分:2)

适用于文档,创作工具和标记生成器(编写器)的12.1节与适用于用户代理,数据挖掘工具和一致性检查器的12.2节之间的区别< / em>(读者),来自robustness principle

  

对自己的工作要保守,对别人接受的东西要宽容(经常改写为“对发送的内容要保守,对接受的东西要宽容”)。

答案 1 :(得分:1)

您引用的第一组材料描述了开始标签的格式。

您引用的第二组材料描述了在使用<后面的字符时解析器应该做什么,该字符可能会出现标签。