public CmdAbst getCmdInstance(String xml) throws CumExcpIllegalCmdXML,
			CumExcpIllegalCmdDoc {
		Document doc = getDom(xml);
		Node cmdNode = getCmdNode(doc);
		String type = getCmndType(cmdNode);
		String action = getAction(cmdNode);
		Class<? extends CmdAbst> myClass = classMap.get(getClassName(type,
				action));

		Class<?>[] types = new Class[] { Document.class };
		Object[] args = { doc };
		CmdAbst cmd;
		try {
			Constructor<? extends CmdAbst> constructor = myClass
					.getConstructor(types);
			cmd = constructor.newInstance(args);
		} catch (NoSuchMethodException e) {
			throw new CumExcpIllegalCmdDoc(xml);
		} catch (SecurityException e) {
			throw new CumExcpIllegalCmdDoc(xml);
		} catch (InstantiationException e) {
			throw new CumExcpIllegalCmdDoc(xml);
		} catch (IllegalAccessException e) {
			throw new CumExcpIllegalCmdDoc(xml);
		} catch (IllegalArgumentException e) {
			throw new CumExcpIllegalCmdDoc(xml);
		} catch (InvocationTargetException e) {
			throw new CumExcpIllegalCmdDoc(xml);
		}

		return cmd;
	}