The document the namespace can be any unique string, ...
So be it as long as you are contented with authoring xml documents conformed to the well-formedness (even that the uniqueness is never a question).
Once, your xml document is intended to serve up to an intended group of clients ( e.g. a software application or else) then the intended group of clients should have the ability to interprete the document in the sense that the document being not only a stream of characters but capable of making a semantically coherent "message" (not only the set of information consisting of raw data contained in the document) and act upon it. In order to interprete it, the intended audience (the group of clients) is endowed (internally) with or can obtain on demand a book of grammar - the schema of the namespace so specified by the "unique" string of appropriate format - to get it done: by validating it.
For instance, Ant processor would validate the build document with "null" namespace (but all the same with a specific and rigid schema unique to its comprehension, not any other null namespace). WSDL, its own http://schemas.xmlsoap.org/wsdl/; browser/xhtml, its own http://www.w3.org/1999/xhtml; browser/html4 its own DTD... (I simplify certain quite a lot.)
XSLT processor, the same. Before xalan process the xslt document, it starts validating it against its namespace http://www.w3.org/1999/XSL/Transform and if the xslt document fails the validation, nothing would perform against the xml source.
That's about it, the story, in layman terms.
A2. Instead of
You have to write this instead
in order the processor to be successful in finding a match.