Wenn ein Browser XML nicht beherrscht, gibt es zwei Möglichkeiten, solche Daten an ihn zu schicken. Die erste wäre, per Verhandlung zwischen Server und Browser herauszufinden, mit welcher Art Daten der Client denn etwas anfangen kann. Content Negotiation heißt hier das Schlagwort; es bedeutet, dass der Server nachfragt, ob XML genehm sei. Und wenn das nicht der Fall sein sollte, schickt er aller Wahrscheinlichkeit nach HTML-Daten, weil alle Browser diese Sprache sprechen.
Das funktioniert nur dann, wenn der Client zwischen Formaten, die er kennt, und solchen, für die das nicht gilt, unterscheidet. Der Navigator etwa behauptet schlicht, alles zu kennen, was jede Content Negotiation unmöglich macht. Funktioniert diese Verhandlung, kann der Server in Abhängigkeit vom Vermögen des Clients Daten in einem für diesen verständlichen Format ausliefern.
Alternativ kann der Server von vornherein HTML ausliefern. Das dürfte auch in Zukunft relativ häufig geschehen. In diesem Fall muss der Server mit Hilfe von DSSSL- oder XSL-Stylesheets aus dem Quellcode HTML generieren (Beispiel für den Apache-Server sind in Kapitel 18 zu finden). Für XSLT gilt derzeit, dass jedes Stylesheet aus XML HTML macht. Der Nachteil dieser Lösung dem Ausliefern einer originalen XML-Instanz gegenüber liegt darin, dass es nötig ist, auf dem Server immer wieder HTML aus den Quellen zu erzeugen, was vor allem bei größeren Datenbeständen und vielen zu generierenden Zieldokumenten einige Zeit in Anspruch nimmt.