/**
  * Reset this Namespace support object for reuse.
  *
  * <p>It is necessary to invoke this method before reusing the Namespace support object for a new
  * session.
  */
 public void reset() {
   // Discarding the whole stack doesn't save us a lot versus
   // creating a new NamespaceSupport. Do we care, or should we
   // change this to just reset the root context?
   currentContext = new Context2(null);
   currentContext.declarePrefix("xml", XMLNS);
 }
 /**
  * Declare a Namespace prefix.
  *
  * <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>To declare a default Namespace, use the empty string. The prefix must not be "xml" or
  * "xmlns".
  *
  * <p>Note that you must <em>not</em> declare a prefix after you've pushed and popped another
  * Namespace.
  *
  * <p>Note that there is an asymmetry in this library: while {@link #getPrefix getPrefix} will not
  * return the default "" prefix, even if you have declared one; to check for a default prefix, 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.
  *
  * @param prefix The prefix to declare, or null for the empty string.
  * @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
  */
 public boolean declarePrefix(String prefix, String uri) {
   if (prefix.equals("xml") || prefix.equals("xmlns")) {
     return false;
   } else {
     currentContext.declarePrefix(prefix, uri);
     return true;
   }
 }