XML stands for Extensible Markup Language. It was developed as a way to improve on HTML and SGML. XML is not a language in the true sense, but rather a system for defining other languages. XML tags are not predefined in XML. You must define your own tags. XML uses a Document Type Definition (DTD) or an XML Schema to describe the data.
XML is not a replacement for HTML.
XML and HTML were designed with different goals:
XML was designed to describe data and to focus on what data is.
HTML was designed to display data and to focus on how data looks.
HTML is about displaying information, while XML is about describing information.
XML does not DO anything. XML is created to structure, store and to send information.
The following example is a note, stored as XML:
<body>Don't forget the meeting today!</body>
The note has a header and a message body. It also has sender and receiver information. But still, this XML document does not DO anything. It is just pure information wrapped in XML tags. Someone must write a piece of software to send, receive or display it.
XML tags are not predefined. You must "invent" your own tags.
The tags used to mark up HTML documents and the structure of HTML documents are predefined. The author of HTML documents can only use tags that are defined in the HTML standard.
XML allows the author to define his own tags and his own document structure.
The tags in the example above (like <to> and <from>) are not defined in any XML standard. These tags are "invented" by the author of the XMLdocument.
It is important to understand that XML is not a replacement for HTML. In future Web development it is most likely that XML will be used to describe the data, while HTML will be used to format and display the same data.