Surely Java is not broken because it has tools to support that
'convention'. XML is broken as far as this convention is concerned because
there are no (widely available) tools that implement it.
What do you mean by "implement" here, because as I understand the term
*every* XML tool implements it just fine.
XML tools work quite well using XML namespaces when you have nested vocabularies (potentially not under your control) which have the same local name, e.g.:
<p:person xmlns:p='http://example.com/person'>
<e:employer xmlns:e="http://example.com/employer">
<e:name>Megaco</e:name>
</e:employer>
<p:name>Fred Blogs</p:name>
</p:person>
Here, each instance of name is easily identified as unique. You have to work harder with existing tools if the XML is something like the following:
<com.example.person>
<com.example.employer>
<name>Megaco</name>
</com.example.employer>
<name>Fred Blogs</name>
</com.example.person>
<person>
<employer>
<name>Megaco</name>
</employer>
<name>Fred Blogs</name>
<person>