Looks great - apart from the xmlns requirement if prefixes are used...
doesn't that make it no longer a subset?
It's designed to be a subset of XML 1.0 but not of XML 1.0 + XML Namespaces. However, it does allow you to make your documents be namespace well-formed if you want. This is a tough problem: full XML Namespaces seems like too much complexity, so I've tried to find a compromise.
b) use an underscore or dot, eg <mycomp.foo>
You could just disallow colons in element and attribute names, but then you lose the ability to work with XML vocabularies that require the use of the non-default namespace (eg xlink:*, xml:*).
James