}
	public void startElement(String uri, String localName,				 String qname, Attributes attributes)	    throws SAXException {	    maybeCreateTextNode(false);	    final int node = nextNode();	    linkChildren(node);	    _parentStack[++_sp] = node;	    // Process attribute list	    final int length = attributes.getLength();	    if (length > 0) {		int i = 1, attrNode = makeAttributeNode(node, attributes, 0);		while (attrNode == -1 && i < length) {		    attrNode = makeAttributeNode(node, attributes, i++);		}		if (attrNode != -1) {		    _lengthOrAttr[node] = attrNode; // first attr		    while (i < length) {			final int attrNode2 =			    makeAttributeNode(node, attributes, i++);			if (attrNode2 != -1) {			    _nextSibling2[attrNode] = attrNode2;			    attrNode = attrNode2;			}		    }		}	    }	    // Assign an internal type to this element (may exist)	    if (uri != null)		_type[node] = internElement(uri, localName);	    else		_type[node] = internElement(qname);	}