【问题标题】:Is XML's root closing tag mandatory?XML 的根结束标记是强制​​性的吗?
【发布时间】:2017-07-26 10:14:16
【问题描述】:

我用 Java 序列化了一个对象,得到了以下 XML:

<?xml version="1.0" encoding="UTF-8"?>
<java version="1.8.0_92" class="java.beans.XMLDecoder">
  <object class="...." id="SmartLayout0">
  <!-- ... -->
  </object>

如您所见,根标签&lt;java&gt; 没有关闭。

在 XML 中不关闭此根标记是否合法? XML 标准是否明确允许这种快捷方式?

【问题讨论】:

  • 这是不合法的。如果您使用的是 XMLEncoder,我怀疑您忘记调用 XMLEncoder.close(),我假设它会生成结束标记。
  • @Joe 你没看错,问题是缺少close(),但由于解析器可以处理这样的XML,我不确定结束标记是否是完全强制性的。

标签: xml standards w3c


【解决方案1】:

是的,与非 XHTML 版本的 HTML 不同,XML 中的所有标签都必须关闭或自关闭。

所有elements in XML 必须是自动关闭的,或者必须由匹配的开始和结束标签组成:

element ::= EmptyElemTag | STag content ETag 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多