XML is designed to carry the data while html is to display the data and focus on how the data looks.
XML does not do anything but it is used to structure the data, store the data and transport the data while HTML is used to display the data only.
XML is cross platform, hardware and software independent tool to carry data from one source to another destination.
XML is self descriptive. The DTD or schema describes what and how to use tags and elements in an xml document.
XML does not have predefined tags while HTML has. XML lets you invent your own tags while html gives you predefined tags and you have to use them only.
XML is extensible as you can add your own tags to extend the xml data.
XML is a complement to HTML not the replacement. Most likely use of xml is to transfer the data between incompatible systems as xml is cross platform. XML has now established a strong foundation in the world of web development.
XML can separate the data from html. While working on html, instead of storing data in html you can store the data in a separate xml file to make the html code cleaner and easier. Now you can concentrate on working in html rather than storing data. It also eliminates the need to change in html when xml data is changed.
XML tags are case sensitive while html tags are not.
Attribute values must always be quoted in xml while its not the case with html.
XML elements must be properly nested while html is not so sensitive.