XML is all about describing and structuring data in a manner that allows portability across platforms and software. Essentially there are two types of data files, Binary and Text.
A binary file is made of 1's and 0's and it is up to the software, which created the file, to understand what all these bits mean. It cannot be assumed that another application will be able to decipher the bit order of a file created by a different application.
In a text file the bit order is grouped in a standardised way. Because of this, text files can be understood by any application, which understands the 'standard' code. The disadvantage of text files is the difficulty in adding additional information such as formatting into the code. For example you can save a document as a '.txt' file and many applications will be able to read the file. However, you cannot save any formatting information such as 'bold' or 'italic'. You simply get the words.
HTML (Hyper Text Markup Language) combines the advantages of binary and text files. By surrounding text with tags that describe their format, documents can be displayed in a presentable fashion to any application which understood the standardised HTML tags.
This is the basis for the World Wide Web, where documents are displayed via the browser, in a presentable fashion to anyone with access to the Internet. Furthermore, any simple text editor can create an HTML file, making such documents easily portable.
However, the defined standard numbers of html tags naturally make HTML limited. It is really only suited for displaying information.