public void enterElement (String name, Attributes attrs) throws Exception {
		
		// check for active custom parser
		if (customParser != null) {
			// delegate parsing to handler.
			customParser.enterElement (name, attrs);
			return;
		}
		//-------------------------------------------------------------
		// <Keyring ...>: List of identities
		//-------------------------------------------------------------
		if (name.equals ("Keyring")) {
			done = false;
			return;
		}
		//-------------------------------------------------------------
		// <Protocols ...>:  Custom protocol handler list
		//-------------------------------------------------------------
		if (name.equals ("Protocols")) {
			return;
		}
		//-------------------------------------------------------------
		// <Protocol ...>:  Custom protocol handler definition
		//-------------------------------------------------------------
		if (name.equals ("Protocol")) {
			// get attributes
			String type = attrs.getValue ("type");
			String clName = attrs.getValue ("class");
			// register protocol handler
			try {
				Class<?> cl = Class.forName (clName);
				AP_Generic.registerHandler (type, cl.asSubclass (AP_Generic.class));
				//Class<? extends AP_Generic> cl = (Class<? extends AP_Generic>) Class.forName (clName);
				//AP_Generic.registerHandler (type, cl);
			}
			catch (Exception e) {
				throw new SAXException ("Unknown authentication protocol class: " + clName);
			}
			return;
		}
		//-------------------------------------------------------------
		// <Identity ...>:  Identity data
		//-------------------------------------------------------------
		if (name.equals ("Identity")) {
			// read attributes
			proto = attrs.getValue ("proto");
			domain = attrs.getValue ("domain");

			// find matching handler:
			AP_Generic parser = AP_Generic.getInstance (proto);
			if (parser == null) 
				throw new SAXException ("Unknown authentication protocol: " + proto);
			parser.initParse (attrs);
			
			// parse custom config XML for handler
			customParser = parser;
			return;
		}
	}