为什么XML文档必须具有单个根元素?

时间:2019-06-19 19:07:51

标签: xml w3c

决定在XML文档中具有单个根元素的背后动机是什么?

有人可以解释一下XML设计团队为何做出此决定吗?

3 个答案:

答案 0 :(得分:2)

您在问一个设计动机问题,通常很难在事后回答问题,而不仅仅是猜测。

幸运的是,蒂姆·布雷(Tim Bray)捕获并记录了一些design history and motivations behind XML,并就this说了exactly one element, called the root, or document element

  

根与巢

     

本段(严格来说是不必要的,它仅仅是   扩大语法的后果)描述了本质   格式正确。简而言之,必须有一个要素   包含所有其他内容,所有元素都必须很好地嵌套   彼此之间-没有重叠!所有这些“根”和“巢”   术语暗示树木,这很好。

     

XML需要单个根元素这一事实更为重要   超出您的想象;鉴于我们希望将这些   众所周知,network links上的文档有时是   缓慢,片状和不可靠,如果开始的话这是一个非常好的主意   并且(尤其是)每个文档的末尾都有清晰的标记,以便   即使另一端的人关闭链接的速度很慢,您   知道何时收到全部消息。

另请参见: What is the difference between root node, root element and document element in XML?

答案 1 :(得分:1)

根据Wikipedia definition of XML

  

可扩展标记语言(XML)是一种标记语言,它定义了一组用于以人类可读和机器可读的格式编码文档的规则。 W3C的XML 1.0规范和其他几个相关规范(都是免费的开放标准)定义了XML。

基本上,XML是确保每个文档具有相同标准的一组规则。如果您有几个小时要杀人并且想无聊地死,可以阅读the specification here


回到您的问题,这是设计决定,文档中仅包含一个根元素

主要优点之一是允许构建tree structure。解析具有预定义结构的逻辑树比遍历浮动的不同类型节点的集合更容易。

使用预定义的结构,遍历文档并查找所需信息也更加容易。

答案 2 :(得分:0)

XML specification中所述:

  

定义:仅存在一个元素,称为根元素或文档元素,该元素的任何部分均不出现在任何其他元素的内容中。 [...]由开始标签和结束标签定界的元素相互之间正确嵌套。