The XML format for the data dictionary is a great start, but it could be a lot better. In particular, the hierarchical structure of the variables is not mapped.
Let's take P012B049: African American female 85 years and over. It's extremely tedious to tease apart that this is the combination of three variables: race, sex, and age group. One of the great features of XML is its hierarchical structure, which makes it easy to describe this kind of thing in a way that is much more useful to a program.
As it is, the XML file could be represented as a flat table, all XML does is add tons of overhead. I realize that there is a long and rich history of working with this data and these codes at the Census Bureau, but to make the data useful and accessible outside that world, a more structured description would be much more useful.