XML wasn't an original invention; it is specified as a proper SGML subset. From the XML spec:
> The Extensible Markup Language (XML) is a subset of SGML that is completely described in this document.
Now I totally agree that SGML and XML aren't for service payloads and config files. The sole purpose of markup languages is representing structured text. And arguably, SGML fills this role much more adequately than XML today as it can represent (via the SHORTREF mechanism) custom Wiki syntaxes such as markdown and others, and in contrast to XML, can deal with the largest corpus of markup out there eg. can parse HTML with all its minimization features such a omitted tags, enumerated and unquoted attributes, etc. See [1] for a practical introduction (disclaimer: link to a tutorial I held last month at ACM DocEng).
You control whether an element requires start- and end-element tags in your element declaration via "O" (letter O as in "omissible") in the respective tag omission indicator position:
<!ELEMENT e - -(f,g,h) -- no tag omission -->
<!ELEMENT f O - (#PCDATA) -- start-tag omission -->
<!ELEMENT g - O (#PCDATA) -- end-tag omission -->
<!ELEMENT h O O (#PCDATA) -- both start- and end-
tag omission allowed-->
XML wasn't an original invention; it is specified as a proper SGML subset. From the XML spec:
> The Extensible Markup Language (XML) is a subset of SGML that is completely described in this document.
Now I totally agree that SGML and XML aren't for service payloads and config files. The sole purpose of markup languages is representing structured text. And arguably, SGML fills this role much more adequately than XML today as it can represent (via the SHORTREF mechanism) custom Wiki syntaxes such as markdown and others, and in contrast to XML, can deal with the largest corpus of markup out there eg. can parse HTML with all its minimization features such a omitted tags, enumerated and unquoted attributes, etc. See [1] for a practical introduction (disclaimer: link to a tutorial I held last month at ACM DocEng).
[1]: http://sgmljs.net/docs/sgml-html-tutorial.html