Xml – What are XML namespaces for

namespacesschemaxmlxml-namespacesxsd

This is something that I always find a bit hard to explain to others:
Why do XML namespaces exist?
When should we use them and when should we not?
What are the common pitfalls when working with namespaces in XML?

Also, how do they relate to XML schemas? Should XSD schemas always be associated with a namespace?

Best Answer

They're for allowing multiple markup languages to be combined, without having to worry about conflicts of element and attribute names.

For example, look at any bit of XSLT code, and then think what would happen if you didn't use namespaces and were trying to write an XSLT where the output has to contain "template", "for-each", etc, elements. Syntax errors, is what.

I'll leave the advice and pitfalls to others with more experience than I.