What makes an SML Document?
Consider what exactly constitutes an XML document, according to the W3C's Recommendation for XML 1.0:
A data object is an XML document if it is well-formed, as defined in this specification.
A well-formed XML document may in addition be valid if it meets certain further constraints.
This definition indicates that the minimum requirement for a document to be considered an XML document is that it be well-formed.
Standard Markup Language (SML) is a general-purpose, modular, functional programming language with compile-time type checking and
type inference. It is popular among compiler writers and programming language researchers, as well as in the development of theorem provers.
SML is a modern descendant of the ML programming language used in the LCF theorem-proving project. It is uncommon among widely used languages in that it has a formal specification, given as typing rules and operational semantics in The Definition of Standard ML (1990, revised and simplified as The Definition of Standard ML (Revised) in 1997).
Origins of Standard Generalized Markup Language
Some documents needed the ability to mark text as bold or italic whereas others were more concerned with who the original document author was, when was it created, and who had subsequently modified it. To cope with this problem a definition called Standard Generalized Markup Language was released, commonly shortened to SGML. SGML is a step
removed from defining an actual markup language, such as the Hyper Text Markup Language, or HTML. Instead it relays how markup languages are to be defined. SGML allows you to create your own markup language and then define it using a standard syntax such that any SGML- aware application can consume documents written in that language and handle them accordingly.
As previously noted, the most ubiquitous example of this is HTML. HTML uses angular brackets (< and >) to separate metadata from basic text and also defines a list of what can go into these brackets, such as em for emphasizing text, tr for table, and td for representing tabular data.
Birth of XML
SGML, although well thought-out and capable of defining many different types of markup, suffered from one major failing: it was very complicated. All the flexibility came at a cost, and there were still relatively few applications that could read the
SGML definition of a markup language and use it to correctly process documents. The concept was correct, but it needed to be simpler.
With this goal in mind, a small working group and a larger number of interested parties began working in the mid-1990s on a subset of SGML known as Extensible Markup Language (XML). The first working draft was published in 1996 and two years later the W3C published a revised version as a recommendation on February 10, 1998. XML therefore derived as a subset of SGML, whereas HTML is an application of SGML. XML does not dictate the overall format of a file or what metadata can be added, it just specifies a few rules.
That means it retains a lot of the flexibility of SGML without most of the complexity.