import java.io.*; import java.util.*; import javax.xml.parsers.*; import org.xml.sax.*; import org.xml.sax.helpers.*; public class Parser { private final int maxAuthorsPerPaper = 200; private class ConfigHandler extends DefaultHandler { private Locator locator; private String Value; private String key; private String recordTag; private Person[] persons= new Person[maxAuthorsPerPaper]; private int numberOfPersons = 0; private boolean insidePerson; public void setDocumentLocator(Locator locator) { this.locator = locator; } public void startElement(String namespaceURI, String localName, String rawName, Attributes atts) throws SAXException { String k; if (insidePerson = (rawName.equals("author") || rawName .equals("editor"))) { Value = ""; return; } if ((atts.getLength()>0) && ((k = atts.getValue("key"))!=null)) { key = k; recordTag = rawName; } } public void endElement(String namespaceURI, String localName, String rawName) throws SAXException { if (rawName.equals("author") || rawName.equals("editor")) { Person p; if ((p = Person.searchPerson(Value)) == null) { p = new Person(Value); } p.increment(); if (numberOfPersons