if (getFeature (FEATURE + "string-interning")) {
if (stringInterning) {
    void startElement (String elname)    throws SAXException    {	ContentHandler handler = contentHandler;	//	// NOTE:  this implementation of namespace support adds something	// like six percent to parsing CPU time, in a large (~50 MB)	// document that doesn't use namespaces at all.  (Measured by PC	// sampling, with a bug where endElement processing was omitted.)	// [Measurement referred to older implementation, older JVM ...]	//	// It ought to become notably faster in such cases.  Most	// costs are the prefix stack calling Hashtable.get() (2%),	// String.hashCode() (1.5%) and about 1.3% each for pushing	// the context, and two chunks of name processing.	//	if (!attributes) {	    if (namespaces)		prefixStack.pushContext ();	} else if (namespaces) {	    // now we can patch up namespace refs; we saw all the	    // declarations, so now we'll do the Right Thing	    Iterator itt = attributesList.iterator ();	    while(itt.hasNext())	    {	    	Attribute attribute = (Attribute) itt.next();	    	String	qname = attribute.name;		int	index;    // default NS declaration?    if (getFeature (FEATURE + "string-interning")) {      if ("xmlns" == qname)		    continue;    } else {      if ("xmlns".equals(qname))		    continue;    }               //Illegal in the new Namespaces Draft               //should it be only in 1.1 docs??               if (qname.equals (":"))                   fatal ("namespace names consisting of a single colon " +                   		"character are invalid");		index = qname.indexOf (':');		// NS prefix declaration?		if (index == 5 && qname.startsWith ("xmlns"))		    continue;		// it's not a NS decl; patch namespace info items		if (prefixStack.processName (qname, nsTemp, true) == null)		    fatal ("undeclared attribute prefix in: " + qname);		else {		    attribute.nameSpace = nsTemp[0];		    attribute.localName = nsTemp[1];		}	    }	}	// save element name so attribute callbacks work	elementName = elname;	if (namespaces) {	    if (prefixStack.processName (elname, nsTemp, false) == null) {		fatal ("undeclared element prefix in: " + elname);		nsTemp [0] = nsTemp [1] = "";	    }	    handler.startElement (nsTemp [0], nsTemp [1], elname, this);	} else	    handler.startElement ("", "", elname, this);	// elementName = null;	// elements with no attributes are pretty common!	if (attributes) {	    attributesList.clear();	    attributeCount = 0;	    attributes = false;	}    }