CSS2 does, if you look at the 'display' property, and it now has a
boxed display model.
| It only knew how to attach formatting semantics to existing objects.
| At one point, some of the existing objects semantics had to be
| already known: e.g. tables and links. I don't know if that has
| changed recently. If not, CSS would need an overhaul to be
| sufficient for formatting XML documents (or else you would have to
| merge CSS and HTML somehow).
CSS2 has a table model, but can not create links. Links aren't a
problem with XML anyhow, since XLink takes care of that.
The main difference between CSS2 and XSL is that CSS2 cannot reorder
document content, or duplicate it. The support for generated text is
also relatively weak, although it does have a generalized counter
concept which is quite clever.
For many uses CSS2 is going to suffice just fine, and it is much
easier to learn and write than XSL is (the syntax is wonderfully
readable and concise). For more advanced uses CSS2 won't cut it, but
XSL hopefully will.
--Lars M.