public void endElement(String namespaceURI, String localName, String qName)
			throws SAXException {
		// Make sure we found the root element
		if (rootTagOK) {
			if (XmlTagName.TAG_NODE.equalsIgnoreCase(localName)) {
				DndTreeNode folder = (DndTreeNode)model.getRoot();
				for (int i=1;  i<pathList.size();  i++) {
					String pathName = (String)pathList.get(i);
					folder = getChild(folder, pathName);
				}
				try {
					FolderItem item = (FolderItem)Class.forName(className).newInstance();
					item.setValues(variableMap);
					folder.setUserObject(item);
				} catch (Exception ex) {
					System.out.println("Item: " + nodeName + " . " + className + " ... " + ex);
				}
			} else if (XmlTagName.TAG_CLASS.equalsIgnoreCase(localName)) {
				className = charData;
				charData  = "";
			} else if (XmlTagName.TAG_PATH_ELEMENT.equalsIgnoreCase(localName)) {
				pathList.add(charData);
				charData = "";
			} else if (XmlTagName.TAG_VARIABLE.equalsIgnoreCase(localName)) {
				if ("password".equalsIgnoreCase(varName)) {
					try {
						charData = md5.decrypt(passcode, charData);
					} catch (Exception ex) {
						charData = "Unknown";
					}
				}
				variableMap.put(varName, charData);
				charData = "";
			}
		}
	}