if (item instanceof Text) continue;
    public void parseContents(Parser parser) {	final SymbolTable stable = parser.getSymbolTable();	String namespace = getAttribute("namespace");	String name = getAttribute("name");	QName qname = parser.getQName(name);	final String prefix = qname.getPrefix();	boolean generated = false;	if ((prefix != null) && (prefix.equals("xmlns"))) {	    reportError(this, parser, ErrorMsg.ILLEGAL_ATTR_NAME_ERR, name);	    return;	}	// Ignore attribute if preceeded by some other type of element	final SyntaxTreeNode parent = getParent();	final Vector siblings = parent.getContents();	for (int i = 0; i < parent.elementCount(); i++) {	    SyntaxTreeNode item = (SyntaxTreeNode)siblings.elementAt(i);	    if (item == this) break;	    // These three objects result in one or more attribute output	    if (item instanceof XslAttribute) continue;	    if (item instanceof UseAttributeSets) continue;	    if (item instanceof LiteralAttribute) continue;	    // These objects _can_ result in one or more attribute	    // The output handler will generate an error if not (at runtime)	    if (item instanceof If) continue;	    if (item instanceof Choose) continue; 	    if (item instanceof CopyOf) continue; 	    if (item instanceof VariableBase) continue;	    reportWarning(this, parser, ErrorMsg.STRAY_ATTRIBUTE_ERR, name);	    _ignore = true;	}	// Get namespace from namespace attribute?	if ((namespace != null) && (namespace != Constants.EMPTYSTRING)) {	    // Prefix could be in symbol table	    _prefix = lookupPrefix(namespace);	    _namespace = new AttributeValueTemplate(namespace, parser);	}	// Get namespace from prefix in name attribute?	else if ((prefix != null) && (prefix != Constants.EMPTYSTRING)) {	    _prefix = prefix;	    namespace = lookupNamespace(prefix);	    if (namespace != null)		_namespace = new AttributeValueTemplate(namespace, parser);	}		// Common handling for namespaces:	if (_namespace != null) {	    // Generate prefix if we have none	    if (_prefix == null) {		if (prefix != null) {		    _prefix = prefix;		}		else {		    _prefix = stable.generateNamespacePrefix();		    generated = true;		}	    }	    if (_prefix == Constants.EMPTYSTRING) {		name = qname.getLocalPart();	    }	    else {		name = _prefix+":"+qname.getLocalPart();		// PROBLEM:		// The namespace URI must be passed to the parent element,		// but we don't yet know what the actual URI is (as we only		// know it as an attribute value template). New design needed.		if ((parent instanceof LiteralElement) && (!generated)) {		    ((LiteralElement)parent).registerNamespace(_prefix,							       namespace,							       stable,false);		}	    }	}	if (name.equals("xmlns")) {	    reportError(this, parser, ErrorMsg.ILLEGAL_ATTR_NAME_ERR, name);	    return;	}	if (parent instanceof LiteralElement) {	    ((LiteralElement)parent).addAttribute(this);	}	_name = AttributeValue.create(this, name, parser);	parseChildren(parser);    }