【问题标题】:Do you always have to have a root node with xml/xsd?你总是必须有一个带有 xml/xsd 的根节点吗?
【发布时间】:2010-11-29 13:09:43
【问题描述】:

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

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

你总是必须在xml中有一个根节点还是你可以有一个

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

【问题讨论】:

  • 我认为需要一个根节点。不过很想知道。

标签: xml xsd


【解决方案1】:

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

这是说

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

"[定义:只有一个元素,称为根或文档元素,它的任何部分都不会出现在任何其他元素的内容中。] 对于所有其他元素,如果开始标签在另一个元素,结束标签在同一个元素的内容中。更简单地说,由开始标签和结束标签分隔的元素相互嵌套。”

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

【讨论】:

    【解决方案2】:

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

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

    那么就可以这样包起来了:​​

    <SomeOuterTag>
       &SomeName;
    </SomeOuterTag>
    

    【讨论】:

      【解决方案3】:

      来自简短的description of XML at Wikipedia,它总结了来自the official XML spec的几个良构规则:

      有一个“根”元素包含所有其他元素。

      【讨论】:

      • 维基百科不是一个很强的参考;已发布的规范是参考...假设 wiki 重写了文章:您的参考将丢失
      • @Jaywalker:我知道维基百科是“一个免费的在线百科全书任何人都可以编辑”——这就是为什么我将引用作为一个方便的摘要提供,然后是原始权威规范的链接(稍微复杂一些)。我不是说“它在维基百科上,这是真的!”但是“这里是摘要 (w),这里是规范来源 (w3c)”。编辑以强调源链接。
      【解决方案4】:

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

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

      【讨论】:

        【解决方案5】:

        是的,您必须拥有一个且只有一个根节点。

        【讨论】:

          猜你喜欢
          • 2020-12-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-02-22
          • 1970-01-01
          • 1970-01-01
          • 2018-02-28
          相关资源
          最近更新 更多