XML over HTTP isn't necessarily REST. The representation of a resource that you are accessing may be represented in XML but it could be represented in another way.
Richardson & Ruby in their book
RESTful Web Services (
amazon US) actually choose HTML 5 as the representation format for their examples of the resource/representation design process.
And there are instances of XML over HTTP that aren't considered RESTful.
HTML marks up the data for appearance (for human readability) - that however doesn't help machines (non-browser programs) that are trying to interpret the data in the page. XML creates an opportunity to give the data more "meaning" by marking it up with "meta-data" (data about data) - this meta-data, in theory, helps non-browser programs isolate the information that they are looking for. So XML over HTTP is mainly intended for machine consumption it is not supposed to be used by a browser (unless it feeds a JavaScript XMLHttpRequest object - now we are getting AJAX).
Depending on the circumstances it may be useful on the server side to represent your page data in XML (with its meta-data) and then on the server side use XSLT to generate an HTML page for a browser. The XML data is usually programmatically generated while the XSLT template is static - it converts the XML data to an HTML view (which can be further customized via CSS). Using XSLT on the client side browser never really caught on. However since the emergence of AJAX, XML over HTTP is often consumed through the JavaScript XMLHttpRequest object.