Hi,
The XML 1.0 Second Edition errata now allows empty xml:lang attribute
specification, see <http://www.w3.org/XML/xml-V10-2e-errata#E41>.
<foo xml:lang=''>...</foo> means, that there is no language information
available for that element. The CSS pseudo-class :lang() is currently
unable to select element foo depending on the language. You could style
all elements with a known language differently like
* { color: red }
*:lang(de) { color: blue }
*:lang(en) { color: blue }
*:lang(x-klingon) { color: blue }
...
but this is rather theoretic. I asked on xml-editor@w3.org whether
xml:lang='' and xml:lang='und' (`und` is the ISO-639-2 language code for
an Undetermined language) are equivalent and one could thus use
foo:lang(und) to select the element above, but this is rather unlikely,
since if they were, there'd be no need to allow xml:lang='' at all. So I
think the definition of :lang() should be changed to allow selection of
xml:lang='' elements.
I am uncertain about the syntax, things like foo:lang(), foo:lang(""),
foo:lang(-), foo:lang(none()), etc. aren't that intuitive. Maybe the
asterik could be allowed to select "any language" and :not be used to
invert the selection, i.e. foo:not(:lang(*)), but that's not much
better...
regards.