您是否始终必须拥有xml / xsd的根节点?

时间:2010-11-29 13:09:44

标签: xml xsd

一直在查看教程,它有以下xml和xsd。:

http://yfrog.com/b9xsdandxmlj

我想知道的是你在这个例子中是否必须使用根节点?似乎没有任何xsd类型定义指向'employeeS'节点。

您是否始终必须在xml中拥有根节点,或者只能拥有

<xml version="1.0">
<employee><employee>
<employee><employee>
<employee><employee>

5 个答案:

答案 0 :(得分:10)

来自http://www.w3.org/TR/REC-xml/(第5版)第2章的XML规范

这说

“每个XML文档都有逻辑和物理结构。在物理上,文档由称为实体的单元组成。实体可以引用其他实体以使其包含在文档中。文档以”根“开头或文件实体。“

“[定义:只有一个元素,称为根或文档元素,其中没有任何部分出现在任何其他元素的内容中。]对于所有其他元素,如果start-tag在内容中另一个元素,结束标记位于同一元素的内容中。更简单地说,由开始和结束标记分隔的元素在彼此之间正确嵌套。“

所以基本上是的,你总是需要一个根元素。

答案 1 :(得分:2)

摘自description of XML at Wikipedia,其中总结了the official XML spec的几个良构规则:

  

有一个“root”元素,其中包含所有其他元素。

答案 2 :(得分:2)

是的,您始终必须拥有根节点。但是,您可以拥有一个包含XML文档 fragment 的文件,该文件作为已解析的实体导入到另一个文件中。所有包含文件需要做的是在其DTD中有这样的声明:

<!ENTITY SomeName SYSTEM "/path/to/file.xml">

然后它可以像这样包装起来:

<SomeOuterTag>
   &SomeName;
</SomeOuterTag>

答案 3 :(得分:1)

根节点是必需的。它在W3C的命名中也被称为“文档元素”。

  

定义:只有一个元素,称为根或文档元素,其中任何一部分都不会出现在任何其他元素的内容中(参考:section 2.1 of W3C XML specs

答案 4 :(得分:0)

是的,您需要拥有一个且只有一个根节点。