XML中的<tag />和<tag> </tag>之间在语义上有区别吗?

时间:2019-08-14 12:41:40

标签: xml w3c

我们与客户之间存在某种问题,他们争辩说我们要发送的XML文件中的空标记的两个版本之间存在语义上的差异(纯XML而不是HTML ..)。

他们期望:

 <our-xml>
    <some-tag></some-tag>
 </our-xml>

我们发送:

 <our-xml>
    <some-tag />
 </our-xml>

我们认为这是完全相同的,但我们无法真正用事实证明论据。我们发现的唯一东西是在https://www.w3.org/TR/REC-xml/#sec-starttags中,上面写着

  

空元素标记可用于不包含任何内容的任何元素。

是我们可以依靠的讨论或更清晰的论文吗?

1 个答案:

答案 0 :(得分:1)

开始标签/结束标签(<tag></tag>)和空白元素标签(<tag/>)的形式在语义上是等效的。 没有符合标准的XML解析器会将它们区别对待。


参考Extensible Markup Language (XML) 1.0 (Fifth Edition)


历史记录:还有一个过时的SGML兼容性参考,出于完整性考虑,我将其包括在内:

  

For interoperability,对于声明为EMPTY的元素,应使用且仅应使用empty-element标签。

  • 1.2 Terminology

      

    出于互操作性

         

    [定义:标记一个描述非约束性建议的句子,该建议旨在增加XML文档可以被SGML处理器的现有安装基础处理的可能性,该基础早于ISO 8879的WebSGML适应附件。]


相关问答: