Java Tutorial - Java Scipt :
SGML
XMLis in many ways a simplified descendant of SGML (Standard Generalized Markup Language), a powerful markup language used by large corporations for organizing large document repositories. SGML was created prior to the proliferation of the Internet and so suffers from not taking into account issues that arise in that context. For example, SGML does not support Unicode in names. In addition, SGML is often too complex and generalized to be used over the limited bandwidth of an Internet connection. These issues were taken into account when creating XML.
XML draws upon greatly on its SGML heritage. Their documents share a similar tree structure. SGML and XML are consistent in enforcing elements to be well formed. Both are composed of documents having nodes, elements, and attributes. Perhaps the only part of XML that doesn’t derive from SGML is the notion of namespaces, which has proven to be a useful addition. Using namespaces allows hybrid documents to combine elements drawn from different documents without any ambiguity. The fully qualified name will always be unique and allows snippets to be validated against the proper schema.