7
votes

We have some kind of problem with a customer which is arguing that there is a semantical difference between two versions of empty tag in an XML file we're sending (pure XML no HTML..).

They expect:

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

We send:

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

We are of the opinion that this is exactly the same but we could not really prove the arguments with facts. Only thing we found was in https://www.w3.org/TR/REC-xml/#sec-starttags where it says

empty-element tags may be used for any element which has no content.

Is there any discussion or more clear paper that we can rely on or are we wrong?

1

1 Answers

9
votes

No

Start-tag/End-tag (<tag></tag>) and Empty-element tag (<tag/>) forms are semantically equivalent. No conforming XML parser will treat them differently.


Reference: Extensible Markup Language (XML) 1.0 (Fifth Edition)


Historical note: There is also an antiquated SGML compatibility reference, which I include for completeness:

For interoperability, the empty-element tag should be used, and should only be used, for elements which are declared EMPTY.

  • 1.2 Terminology

    for interoperability

    [Definition: Marks a sentence describing a non-binding recommendation included to increase the chances that XML documents can be processed by the existing installed base of SGML processors which predate the WebSGML Adaptations Annex to ISO 8879.]


Related Q/A: