private static void WriteAttrisGrp(Document doc, Element attrigrpnode, GeneratorAttriGrp attrisgrp)
	{
		GeneratorAttriGrp grp;
		GeneratorAttri attri;
		
		List<GeneratorAttri> attrislist = attrisgrp.getAttrisList();
		List<GeneratorAttriGrp> childattrislist = attrisgrp.getChildAttriGrpList();
		
		int i;
		for (i = 0; i < attrislist.size(); i++)
		{
			attri = (GeneratorAttri)attrislist.get(i);
			
			Element attrielem = doc.createElement(ATTRIBUTE);
			if (!attri.getAttriName().equals(""))
				attrielem.setAttribute("name", attri.getAttriName());
    		if (!attri.getAttriType().equals(""))
    			attrielem.setAttribute("type", attri.getAttriType());
    		if (!attri.getAttriConstraint().equals(""))
    			attrielem.setAttribute("constraint", attri.getAttriConstraint());
    		if (!attri.getDefaultValue().equals(""))
    			attrielem.setAttribute("defaultvalue", attri.getDefaultValue());
    		if (!attri.getDefaultValue().equals(""))
    			attrielem.setAttribute("description", attri.getAttriDescri());
    		if (!attri.getAttriValue().equals(""))
    		{
    			Text textseg = doc.createTextNode(attri.getAttriValue());
    			attrielem.appendChild(textseg);
    		}
    		attrigrpnode.appendChild(attrielem);
		}
		
		for (i = 0; i < childattrislist.size(); i++)
		{
			grp = (GeneratorAttriGrp)childattrislist.get(i);
			Element elem = doc.createElement(ATTRIBUTESGRP);
			elem.setAttribute("name", grp.getAttriGrpName());
			
			attrigrpnode.appendChild(elem);
			WriteAttrisGrp(doc, elem, grp);
		}
	}