Und was ist mit XML mit XSL?
Clientseitiges XSL funktioniert nicht einheitlich in den Browsern. Serverseitig kannst Du natürlich mit XSL machen was Du willst. Letzteres spielt für Dich nur eine Rolle, wenn Du die Daten in einem CMS oder so halten willst, und dann daraus per XSLT den anzuzeigenden Code erzeugst.
XML würde nur mit XSL sinn machen (Browser *verstehen* ja kein XML, sondern nur XHTML). Wenn jetzt XSL nicht gut funktioniert, stirbt damit auch XML. Außerdem ist das Umwandeln von XML per XSL auf Browserseite verhältnismäßig aufwendig und kann nochmal wertvolle Millisekunden beim Seitenaufbau kosten.
Namespace? Ich steh grad auf dem schlauch, was es damit auf sich hat ...
Namespaces ermöglichen das parallele Verwenden mehrerer XML-Definitionen in ein und demselben XML-Dokument. Immer wenn Du Tags siehst, die einen Doppelpunkt im Namen oder in Attributen haben, sind Namespaces im Spiel. Beim Schreiben von XSL-Transformationen verwendest Du z.B. auch den xslt-Namespace, um die "Anweisungen" zu schreiben.
Brauchst Du wahrscheinlich erstmal nicht. Vor allem nicht beim an den Browser ausgelieferten XML/XHTML (da viele Browser ja wie gesagt nicht ordentlich damit können).
Nimm XHTML. Da hast Du dann für die Zukunft alle Möglichkeiten, ohne auf aktuelle Bequemlichkeiten des HTML verzichten zu müssen (außer vielleicht auf Frames...).