I think the problem with xml namespaces enters in a few ways:<p><pre><code>  - Non XML namespace supporting parsers: these are xml parsers people throw together without paying attention to the fact that attributes starting with &quot;xml&quot; are special and *must* be rejected.
      - This results in people trying to shim namespaces in after the fact; which rarely goes well.
  - There are two syntaxes: `&lt;foo xmlns=&quot;urn:example&quot;&#x2F;&gt;` vs `&lt;myns:foo xmlns:myns=&quot;urn:example&quot;&#x2F;&gt;`. Most people get caught up in the latter without understanding it, and you end up with *lots* of implementations that depend on `myns`, which is meant to be arbitary and can change between serialisation&#x2F;deserialisation
  - The W3C style for namespace inheritence forces each element to keep a reference to it&#x27;s parent: a nightmare for simple data structures.</code></pre>