Why are special attributes used to declare XML namespaces?
I don’t know the answer to this question, but the likely reason is that the hope that they would simplify the process of moving fragments from one document to another document. An early draft of the XML namespaces recommendation proposed using processing instructions to declare XML namespaces. While these were simple to read and process, they weren’t easy to move to other documents. Attributes, on the other hand, are intimately attached to the elements being moved. Unfortunately, this hasn’t worked as well as was hoped.