Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于树构造的一些问题[html规范]_Html_Standards - Fatal编程技术网

关于树构造的一些问题[html规范]

关于树构造的一些问题[html规范],html,standards,Html,Standards,我知道在一个问题中问一堆问题是不习惯的,但每个问题都与前一个问题相互关联。问一大堆单独的问题,我认为这是错误的 因此,我首先要开始的是: 由于每个标记都是从标记器发出的,因此用户代理必须 遵循以下列表中的相应步骤,即 树结构调度员: 我正确地理解,标记器将在分析源文本中的所有标记后立即完成其工作,也就是说,一旦标记器创建了一个新的标记,它就会将其发送到树管理器中,然后继续生成标记。我说得对吗 由文字将看起来像这样: lexical analysis created a token placed

我知道在一个问题中问一堆问题是不习惯的,但每个问题都与前一个问题相互关联。问一大堆单独的问题,我认为这是错误的


因此,我首先要开始的是:

由于每个标记都是从标记器发出的,因此用户代理必须 遵循以下列表中的相应步骤,即 树结构调度员:

我正确地理解,标记器将在分析源文本中的所有标记后立即完成其工作,也就是说,一旦标记器创建了一个新的标记,它就会将其发送到树管理器中,然后继续生成标记。我说得对吗

由文字将看起来像这样:

lexical analysis
created a token
placed in the tree dispatcher
lexical analysis
created a token
placed in the tree dispatcher
...
lexical analysis
no tokens created
<annotation-xml> <!-- this is adjusted current node -->
   <svg> <!-- this is start token named svg -->
   <!-- something content here -->
   </svg>
</annotation-xml>

正如您在树结构调度器中看到的,有很多项,我不完全理解它们

  • 如果打开元素的堆栈为空
  • 如果调整后的当前节点是HTML命名空间中的元素
  • 如果调整后的当前节点是一个MathML文本集成点,且标记是一个开始标记,其标记名既不是“mglyph”,也不是 “恶意标记”
  • 如果调整后的当前节点是MathML文本集成点,且标记是字符标记
  • 如果调整后的当前节点是MathML注释xml元素,且标记是标记名为“svg”的开始标记
  • 如果调整后的当前节点是HTML集成点,且令牌是开始标记
  • 如果调整后的当前节点是HTML集成点,且令牌是字符令牌
  • 如果令牌是文件结束令牌

    根据节中给出的规则处理令牌 对应于HTML内容中的当前插入模式

  • 否则

    根据第节中给出的规则处理令牌 解析外部内容中的标记

例如,据我所知,有一个术语“调整后的当前节点”,它可以是任何标记,例如
。这是一个没有任何内容的节点-
。我想看看所有调整了当前节点的部分的例子。例如,如果调整后的当前节点是MathML注释xml元素,并且标记是标记名为“svg”的开始标记,:这里说节点是MathML名称空间中的
注释xml
,开始标记是名为
svg
的标记。如果通过文本表示此项,则应如下所示:

lexical analysis
created a token
placed in the tree dispatcher
lexical analysis
created a token
placed in the tree dispatcher
...
lexical analysis
no tokens created
<annotation-xml> <!-- this is adjusted current node -->
   <svg> <!-- this is start token named svg -->
   <!-- something content here -->
   </svg>
</annotation-xml>

树构造调度器中的最后一项用于解析外部内容。在这一点上,我们还看到了一系列如何从标记器中感知标记的项目。如果我理解正确,我们可以通过树构造调度器的最后一项(
否则
)到达这里,也就是说,我们应该有这样一个结构来进入外来内容:


接下来,点-
开始标记…
。对说明书感兴趣

  • 一个起始标记,其标记名为:“b”、“大”、“块引号”、“主体”、“br”、“中心”、“代码”、“dd”、“div”、“dl”、“dt”、“em”之一, “嵌入”、“h1”、“h2”、“h3”、“h4”、“h5”、“h6”、“头部”、“hr”、“i”、“img”, “li”、“listing”、“menu”、“meta”、“nobr”、“ol”、“p”、“pre”、“ruby”, “s”、“小”、“跨度”、“强”、“打击”、“分”、“支持”、“表”、“tt”, “u”、“ul”、“var”
  • 标记名为“字体”的起始标记,如果标记有任何名为“颜色”、“面”或“大小”的属性

    分析错误

    如果解析器最初是为HTML片段解析创建的 算法,然后按照“任何其他开始标记”条目中的说明操作 在下面(碎片案)

    否则:

    从打开的元素堆栈中弹出一个元素,然后继续弹出 打开元素堆栈中的更多元素,直到当前节点 是MathML文本集成点、HTML集成点或 HTML命名空间中的元素

    然后,重新处理令牌

据我所知,这不是一个指令,至少这里有三个指令,我想了解这一时刻,每一个案例都有三个例子

例如:
Parse error
时的构造应该是什么样子,或者最初为HTML片段解析算法创建
解析器时的构造应该是什么样子,或者
否则的情况下的构造应该是什么样子

一旦令牌发生器创建了一个新的令牌,它就会将其发送到树管理器中,然后继续生成令牌。我说得对吗

不,它必须等待树构造阶段来处理令牌,因为这可能会影响令牌化器所做的下一件事。正如规范中所述:

当发出令牌时,它必须立即由树构造阶段处理。树构造阶段可以影响标记化阶段的状态,并且可以向流中插入其他字符


(我想我不理解你的任何其他问题。)

关于第一个问题,是的,我是认真的。你正确地补充了我的想法。还有其他问题呢?你不明白的是什么?我已经详细地描述了规格的报价