}
	public void startElement(String uri, String localName, String qname, Attributes attribs)		throws SAXException {		if (isRecording) {			if (NAMESPACE.equals(uri) && FOR_EACH_ELEMENT.equals(localName))				++nesting;			super.startElement(uri, localName, qname, attribs);		} else if (NAMESPACE.equals(uri)) {			if (COLLECTION_ELEMENT.equals(localName)) {				prefix = ( qname.endsWith(localName) ? qname.substring(0, qname.length() - localName.length())					: PREFIX );				startCollection(attribs);			} else if (FOR_EACH_ELEMENT.equals(localName))				startForEach(attribs);			else if (CURRENT_NODE_ELEMENT.equals(localName))				startCurrent(attribs);			else if (SELECT_NODE.equals(localName))				startSelectNode(attribs);		} else {			if (currentResource != null) {				try {					AttributesImpl a = new AttributesImpl(attribs);					a.addAttribute(						NAMESPACE,						"document-id",						prefix + "document-id",						"CDATA",						currentResource.getDocumentId());					a.addAttribute(						NAMESPACE,						"collection",						prefix + "collection",						"CDATA",						currentResource.getParentCollection().getName());					super.startElement(uri, localName, qname, a);					currentResource = null;				} catch (XMLDBException e) {				}			} else				super.startElement(uri, localName, qname, attribs);		}	}