code: public boolean declarePrefix (String prefix, String uri)
      {
      if (prefix.equals("xml") || prefix.equals("xmlns")) {
          return false;
      } else {
          currentContext.declarePrefix(prefix, uri);
          return true;
      }
      }
docs: Declare a Namespace prefix.  All prefixes must be declared
  before they are referenced.  For example, a SAX driver (parser)
  would scan an element's attributes
  in two passes:  first for namespace declarations,
  then a second pass using {@link #processName processName()} to
  interpret prefixes against (potentially redefined) prefixes.
  
  <p>This method declares a prefix in the current Namespace
  context; the prefix will remain in force until this context
  is popped, unless it is shadowed in a descendant context.</p>
  
  <p>To declare the default element Namespace, use the empty string as
  the prefix.</p>
  
  <p>Note that you must <em>not</em> declare a prefix after
  you've pushed and popped another Namespace context, or
  treated the declarations phase as complete by processing
  a prefixed name.</p>
  
  <p>Note that there is an asymmetry in this library: {@link
  #getPrefix getPrefix} will not return the "" prefix,
  even if you have declared a default element namespace.
  To check for a default namespace,
  you have to look it up explicitly using {@link #getURI getURI}.
  This asymmetry exists to make it easier to look up prefixes
  for attribute names, where the default prefix is not allowed.</p>
  
  @param prefix The prefix to declare, or the empty string to
  indicate the default element namespace.  This may never have
  the value "xml" or "xmlns".
  @param uri The Namespace URI to associate with the prefix.
  @return true if the prefix was legal, false otherwise
  
  @see #processName
  @see #getURI
  @see #getPrefix