private ParameterGroup createParameterGroupFromXML(Node node) throws Exception {
	Element	e	= (Element) node;
	String	type	= "";

	if (e.hasAttribute("type")) {
	    type	= e.getAttribute("type");
	}

	ParameterGroup	group			= new ParameterGroup(e.getAttribute("key"), type);
	NodeList	child_parameter_nodes	= node.getChildNodes();

	for (int i = 0; i < child_parameter_nodes.getLength(); i++) {
	    if (child_parameter_nodes.item(i).getNodeType() != Node.ELEMENT_NODE) {
		continue;
	    }

	    group.addChild(createParameterNodeFromXML(child_parameter_nodes.item(i)));
	}

	NamedNodeMap	attributes	= node.getAttributes();

	for (int i = 0; i < attributes.getLength(); i++) {
	    Node	attr_node	= attributes.item(i);

	    if ("key".equals(attr_node.getNodeName()) || "type".equals(attr_node.getNodeName())) {
		continue;
	    }

	    Parameter	param	= new Parameter(attr_node.getNodeName(), attr_node.getNodeValue(), "");

	    group.addChild(param);
	}

	return group;
    }