import org.xml.sax.*;
import org.xml.sax.helpers.*;

public class PrettyPrintHandler extends DefaultHandler {

	private String prefix = "...........................";
	private int depthCounter = 0;

	public void startElement(
	  String namespaceURI,
	  String localName, // simple name
	  String qName, // qualified name
	  Attributes attrs) throws SAXException {
	  	depthCounter++;
	  	String start = prefix.substring(0, depthCounter);
	  	System.out.println(start + qName);

	  	depthCounter++;
	  	start = prefix.substring(0, depthCounter);
	  	for(int i = 0; i < attrs.getLength(); i++) {
			System.out.println(start + attrs.getQName(i) + " = " + attrs.getValue(i));
		}
		depthCounter--;
	}

	public void endElement(String uri, String localName, String qName) {
		depthCounter--;
	}

	public void characters(char buf[], int offset, int len) throws SAXException {
		String text = new String(buf, offset, len);
		depthCounter++;
	  	String start = prefix.substring(0, depthCounter);
	  	System.out.println(start + text);
	  	depthCounter--;
	}

  }