package org.softlang.company.features.sax;
import org.xml.sax.Attributes;
import org.xml.sax.helpers.DefaultHandler;
/**
* A parser that merely prints a trace for the XML input.
*/
public class Tracer extends DefaultHandler {
/**
* Handle "start document"
*/
public void startDocument() {
System.out.println("Start document");
}
/**
* Handle "end document"
*/
public void endDocument() {
System.out.println("End document");
}
/**
* Handle "start element"
*/
public void startElement(String uri, String name, String qName,
Attributes atts) {
if ("".equals(uri))
System.out.println("Start element: " + qName);
else
System.out.println("Start element: {" + uri + "}" + name);
}
/**
* Handle "end element"
*/
public void endElement(String uri, String name, String qName) {
if (uri.equals(""))
System.out.println("End element: " + qName);
else
System.out.println("End element: {" + uri + "}" + name);
}
/**
* Handle "characters"
*/
public void characters(char ch[], int start, int length) {
System.out.print("Characters: \"");
for (int i = start; i < start + length; i++) {
switch (ch[i]) {
case '\\':
System.out.print("\\\\");
break;
case '"':
System.out.print("\\\"");
break;
case '\n':
System.out.print("\\n");
break;
case '\r':
System.out.print("\\r");
break;
case '\t':
System.out.print("\\t");
break;
default:
System.out.print(ch[i]);
break;
}
}
System.out.print("\"\n");
}
/*
* public static void main (String args[]) throws Exception { parse(new
* Tracer(), "Year2008.xml"); }
*/
}