Is there a semantic difference between <tag /> and <tag></tag> in XML?
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)
3.1 Start-Tags, End-Tags, and Empty-Element Tags
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.
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: