title: Where should I place namespace declarations
body: <p>I have two choices. </p>
  
  <p>The one is to declare namespaces into the root tag of the XSL.
  For example:</p>
  
  <pre><code>&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"&gt;
      &lt;xsl:template name="root" match="/"&gt;
          &lt;xsl:element name="fo:content"&gt;
              &lt;xsl:value-of select="'alabala'"/&gt;
          &lt;/xsl:element&gt;
      &lt;/xsl:template&gt;
  &lt;/xsl:stylesheet&gt;
  </code></pre>
  
  <p>The other one is to use <code>namespace</code> attribute into <code>&lt;xsl:element&gt;</code> or <code>&lt;xsl:attribute/&gt;</code>. Here is the second example:</p>
  
  <pre><code>&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;
      &lt;xsl:template name="root" match="/"&gt;
          &lt;xsl:element name="fo:content" namespace="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"&gt;
              &lt;xsl:value-of select="'alabala'"/&gt;
          &lt;/xsl:element&gt;
      &lt;/xsl:template&gt;
  &lt;/xsl:stylesheet&gt;
  </code></pre>
  
  <p>Which one approach is more appropriate? Is there any difference between both?</p>