code: final Vector processQNAMESRNU(StylesheetHandler handler, String uri,
      String name, String rawName, String value)
      throws org.xml.sax.SAXException
    {
  
      StringTokenizer tokenizer = new StringTokenizer(value, " \t\n\r\f");
      int nQNames = tokenizer.countTokens();
      Vector qnames = new Vector(nQNames);
  
      String defaultURI = handler.getNamespaceForPrefix("");
      for (int i = 0; i < nQNames; i++)
      {
        String tok = tokenizer.nextToken();
        if (tok.indexOf(':') == -1) {
          qnames.addElement(new QName(defaultURI,tok));
        } else {
          qnames.addElement(new QName(tok, handler));
        }
      }
      return qnames;
    }
docs: Process an attribute string of type T_QNAMES_RESOLVE_NULL into a vector
  of QNames where the specification requires non-prefixed elements to be
  placed in the default namespace.  (See section 16 of XSLT 1.0; the
  <em>only</em> time that this will get called is for the
  <code>cdata-section-elements</code> attribute on <code>xsl:output</code>.
  
  @param handler non-null reference to current StylesheetHandler that is constructing the Templates.
  @param uri The Namespace URI, or an empty string.
  @param name The local name (without prefix), or empty string if not namespace processing.
  @param rawName The qualified name (with prefix).
  @param value A whitespace delimited list of qualified names.
  
  @return a Vector of QName objects.
  
  @throws org.xml.sax.SAXException if the one of the qualified name strings
  contains a prefix that can not be resolved, or a qualified name contains
  syntax that is invalid for a qualified name.