private static void readChildren(Element rootElement,BusinessCollection businessCollection){
        String shortName = businessCollection.getChildType();

        // get Children e.g. <Accounting>
        NodeList childrenNodeList = rootElement.getElementsByTagName(shortName);

        // iterate children and create objects for them
        for (int i = 0; i < childrenNodeList.getLength(); i++) {
            try {
                // create empty properties TreeMap
                TreeMap<String, String> properties = new TreeMap<String, String>();

                // get the Object's keySet
                Set<String> keySet = businessCollection.getInitKeySet();

                // read all the tags which names are in the keySet
                // and add their value to the properties
                Element element = (Element) childrenNodeList.item(i);
                for (String key : keySet) {
                    String value = getValue(element, key);
                    properties.put(key, value);
                }

                // create new instance of object
                BusinessObject object = businessCollection.createNewChild(properties);

                // provide the properties to the object
//                object.setInitProperties(properties);

                if(object instanceof BusinessCollection){
                    readChildren((Element)childrenNodeList.item(i),(BusinessCollection)object);
                }

                // add the object to the collection
                businessCollection.addBusinessObject(object);

            } catch (EmptyNameException e) {
                e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
            } catch (DuplicateNameException e) {
                e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
            }
        }// for each ChildNode
//            }// for each name in ArrayList
        String value = getValue(rootElement, BusinessCollection.CURRENT);
        if(value!=null){
            businessCollection.setCurrentObject(businessCollection.getBusinessObject(value));
//                System.err.println("current Object: "+businessCollection.getCurrentObject().getName());
        }
    }