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?
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)
3.1 Start-Tags, End-Tags, and Empty-Element Tags
Tags for Empty Elements
Empty-element tags may be used for any element which has no content, whether or not it is declared using the keyword EMPTY.
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:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With