public void endElement(String namespaceURI, String localName, String qName) throws SAXException {
        if (qName.equals("key")) {
            if (type == null) {
                type = characters.toString();
                declareKey(keyFor, ID, type);
            }
            characters = null;
            ID = null;
        }
        else if (qName.equals("type")) {
            ; // nothing special
        }
        else if (qName.equals("node")) {
            inNode = Graph.NIL;
            ID = null;
        }
        else if (qName.equals("edge")) {
            inEdge = Graph.NIL;
            ID = null;
        }
        else if (qName.equals("data")) {
            Column c = null;
            int row = Graph.NIL;
            if (inNode != Graph.NIL) {
                c = graph.getVertexTable().getColumn(keyFor);
                row = inNode;
            }
            else if (inEdge != Graph.NIL) {
                c = graph.getEdgeTable().getColumn(keyFor);
                row = inEdge;
            }

            if (c != null) {
                String value = characters.toString();
                c.setValueAt(row, value);
            }
            characters = null;
            keyFor = null;
        }
    }