spConsumer.detectNewRow( getAttributePath( atts, i ),true );
	public void startElement( String uri, String name, String qName,			Attributes atts )	{		//If the current thread should be stopped and current parsing should not continue any more, then		//throw a ThreadStopException so that it can be catched later in run method to stop the current thread		//execution.		if( this.stopCurrentThread )			throw new ThreadStopException();				String elementName = getElementName( uri, qName, name );		String parentPath = pathHolder.getPath();		//Record the occurance of elements		if(this.currentElementRecoder.get(parentPath+UtilConstants.XPATH_SLASH+elementName)==null)		{			this.currentElementRecoder.put(parentPath+UtilConstants.XPATH_SLASH+elementName,new Integer(1));		}else		{			this.currentElementRecoder.put(parentPath+UtilConstants.XPATH_SLASH+elementName, new Integer(((Integer)this.currentElementRecoder.get(parentPath+UtilConstants.XPATH_SLASH+elementName)).intValue()+1 )); 		}		pathHolder.push( elementName+"["+((Integer)this.currentElementRecoder.get(parentPath+UtilConstants.XPATH_SLASH+elementName)).intValue()+"]" );		spConsumer.detectNewRow( pathHolder.getPath( ), true );		for ( int i = 0; i < atts.getLength( ); i++ )		{			spConsumer.manipulateData( getAttributePath( atts, i ), atts.getValue( i ) );			//spConsumer.detectNewRow( getAttributePath( atts, i ) );		}	}