title: XML - Why are relative namespaces considered to be invalid?
body: <p>I have a piece of XML that I am attempting to sign then verify which uses relative namespaces:</p>
  
  <pre><code>&lt;Organization&gt;
    &lt;OrganizationName xmlns:_xml="xml" _xml:lang="en"&gt;name&lt;/OrganizationName&gt;
    &lt;OrganizationDisplayName xmlns:_xml="xml" _xml:lang="en"&gt;name&lt;/OrganizationDisplayName&gt;
    &lt;OrganizationURL xmlns:_xml="xml" _xml:lang="en"&gt;http://www.example.com/&lt;/OrganizationURL&gt;
  &lt;/Organization&gt;
  </code></pre>
  
  <p>OpenSAML throws the following exception:</p>
  
  <blockquote>
    <p>org.apache.xml.security.c14n.CanonicalizationException: Element
    OrganizationName has a relative namespace: _xml="xml"</p>
  </blockquote>
  
  <p>Why are relative namespaces considered bad? Surely the parser could just resolve the namespace when parsing the true value?</p>
  
  <p>EDIT: found some more information</p>
  
  <p>The <a href="https://www.w3.org/TR/xml-names11/" rel="nofollow noreferrer">Namespaces in XML 1.1</a> document states under section 2.2:</p>
  
  <blockquote>
    <p>This deprecation of relative URI references was decided on by a W3C
    XML Plenary Ballot [Relative URI deprecation]. It also declares that
    "later specifications such as DOM, XPath, etc. will define no
    interpretation for them".</p>
  </blockquote>
  
  <p>This was voted for on the <a href="https://www.w3.org/2000/09/xppa" rel="nofollow noreferrer">Ballot on relative URI References</a>.</p>