I fogli di stile CSS sono pensati principalmente per il Web e mancano pertanto di alcune caratteristiche che possono risultare utili in ambiti diversi. Ad esempio, per la presentazione su supporti cartacei occorrerebbero maggiori funzionalità per l’impaginazione.
Tra le altre limitazioni, non è prevista la possibilità di estrarre il valore degli attributi degli elementi in modo da poterli visualizzare. Considerando il seguente esempio
<capitolo titolo=”Le regole di XML”>
non abbiamo la possibilità di visualizzare il titolo del capitolo che è stato espresso come attributo dell’elemento <capitolo>. Questo costringerebbe a dover strutturare un documento XML in funzione della sua formattazione con CSS, in evidente contraddizione con lo stesso concetto di foglio di stile che tende a separare la definizione dei dati dalla sua presentazione.
Inoltre, non sempre un documento XML descrive qualcosa di visualizzabile con un browser. Ad esempio, è possibile definire un linguaggio XML per la descrizione di immagini o di ambienti virtuali. In questo caso i CSS non sono di alcun aiuto nella presentazione del documento.
Infine, XML puó anche essere utilizzato per descrivere qualcosa di non visualizzabile. Ad esempio, si puó descrivere la struttura di un software e pertanto il risultato atteso puó essere la trasformazione in codice sorgente di un determinato linguaggio.