if (uri == null) {
if (uri == null || (!isAttribute && "xmlns".equals (prefix))) {
	String [] processName (String qName, boolean isAttribute)	{	    String name[];	    Hashtable table;	    	    			// detect errors in call sequence	    declsOK = false;				// Select the appropriate table.	    if (isAttribute) {		table = attributeNameTable;	    } else {		table = elementNameTable;	    }	    				// Start by looking in the cache, and				// return immediately if the name				// is already known in this content	    name = (String[])table.get(qName);	    if (name != null) {		return name;	    }	    				// We haven't seen this name in this				// context before.  Maybe in the parent				// context, but we can't assume prefix				// bindings are the same.	    name = new String[3];	    name[2] = qName.intern();	    int index = qName.indexOf(':');	    	    				// No prefix.	    if (index == -1) {		if (isAttribute || defaultNS == null) {		    name[0] = "";		} else {		    name[0] = defaultNS;		}		name[1] = name[2];	    }	    				// Prefix	    else {		String prefix = qName.substring(0, index);		String local = qName.substring(index+1);		String uri;		if ("".equals(prefix)) {		    uri = defaultNS;		} else {		    uri = (String)prefixTable.get(prefix);		}		if (uri == null) {		    return null;		}		name[0] = uri;		name[1] = local.intern();	    }	    				// Save in the cache for future use.				// (Could be shared with parent context...)	    table.put(name[2], name);	    return name;	}