XHtml est bien le format XML prévu pour le document web.
CSS sert pour la présentation, ça tu l'as bien compris.
Par contre Xslt a un tout autre rôle : il sert à convertir un document XML en un autre document XML (ou en texte). À vrai dire dans la réalisation traditionnelle d'un site web, Xslt est inutile (à mon sens). Par contre dans certains cas spécifique, ce langage peut être utile.
Par exemple, j'ai une extension pour Firefox qui me permet de synchroniser mes favoris sur mon serveur FTP. J'ai donc sur mon FTP un fichier XBEL, qui est un format de données XML pour décrire des marque-pages :
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="xbel.xsl" encoding="iso-8859-1"?>
<!DOCTYPE xbel PUBLIC "+//IDN python.org//DTD XML Bookmark Exchange Language 1.0//EN//XML" "http://pyxml.sourceforge.net/topics/dtds/xbel-1.0.dtd">
<xbel><title>Marque-pages</title><info>
<metadata owner="Mozilla" BookmarksToolbarFolder="rdf:#$fJJTn"/></info><folder id="rdf%3A#$fJJTn"><title>Bookmarks Toolbar Folder</title><desc>Add bookmarks to this folder to see them displayed on the Bookmarks Toolbar</desc><bookmark id="rdf%3A#$uJJTn" href="http://skedar.dark.free.fr/"><title>FTP perso de Tangui</title></bookmark><folder id="rdf%3A#$vJJTn"><title>SVG</title><bookmark id="rdf%3A#$AKJTn" href="http://www.svgfr.org/"><title>SVGfr.org : portail SVG, aide, news, tutoriaux, articles, forum...</title></bookmark><bookmark id="rdf%3A#$BKJTn" href="http://writing-pad.forumactif.com/"><title>Writing-Pad</title></bookmark></folder><bookmark id="rdf%3A#$wJJTn" href="http://www.siteduzero.com/"><title>Le Site du Zer0</title></bookmark><bookmark id="rdf%3A#$xJJTn" href="http://forum.alsacreations.com/forum.php"><title>Forum Alsacréations : CSS et Standards Web</title></bookmark><bookmark id="rdf%3A#$yJJTn" href="http://www.php.net/manual/fr/"><title>PHP: Manuel PHP - Manual</title></bookmark><bookmark id="rdf%3A#$zJJTn" href="http://dev.mysql.com/doc/refman/5.0/fr/"><title>MySQL - Manuel</title></bookmark><bookmark id="rdf%3A#$AJJTn" href="http://www.yoyodesign.org/doc/w3c/svg1/index.html"><title>La spécification Graphiques Vectoriels Adaptables (SVG) 1.0</title></bookmark></folder><separator/><folder id="rdf%3A#$hJJTn"><title>Programmation</title><desc>
<!-- etc -->
</xbel>
Pas très pratique à lire quand j'accède à ce fichier : le navigateur est capable de le lire et de l'afficher mais c'est illisible car dans un format non adapté ! Dans ce cas, j'ai donc pu écrire un feuille de style Xslt (remarque la PI xml-stylesheet) qui transforme ce fichier au format XBEL en XHtml, avec en prime une feuille de style CSS.
Donc à moins d'avoir comme document source un fichier XML qui n'est pas au bon format, Xslt ça sert à rien.
Concernant le DOM, il faut savoir qu'il existe le DOM Core qui est en quelque sorte le DOM de base qui permet de manipuler du XML : creation/suppression d'attributs, d'élément, avec gestion des namespace, etc. En plus de ce DOM, il existe des DOM spécifique, comme le DOM Html. Je ne connais pas trop ce dernier mais je sais qu'il met à disposition une liste de formulaires, d'images, etc. Un autre exemple avec le DOM SVG qui permet de connaître la longueur d'un path (tracé, par exemple une ligne courbe) ou de stopper les animations : ces méthodes sont spécifiques à ce langage et n'ont aucun sens dans les autres.
Alors justement un navigateur qui peut lire du XML, ça ne veut rien dire. À la base, XML est du texte et tous les navigateurs peuvent lire du texte... Après, on veut sans doute dire par là que ces navigateurs peuvent mettre en forme du XML brut à partir d'une feuille de style CSS, mais cela n'a aucun intérêt puisqu'on a le même rendu visuel qu'en XHtml sans les avantages de celui-ci.
Pour ce qui est des applications XML pourle web telles que SOAP, XML-RPC, WSDL et autres, je t'avoues que j'y connais pas grand chose.
a+