public static void readCollection(BusinessCollection businessCollection, File parentFolder){
        String businessCollectionName = businessCollection.getName();
        File xmlFile = new File(parentFolder, businessCollectionName+".xml");

        try {
            DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
//            documentBuilderFactory.setValidating(true);
            DocumentBuilder dBuilder = documentBuilderFactory.newDocumentBuilder();
            Document doc = dBuilder.parse(xmlFile.getAbsolutePath());
            doc.getDocumentElement().normalize();

            String collectionName = businessCollection.getBusinessObjectType();

            // get Root Element e.g. <Accountings>
            Element rootElement = (Element) doc.getElementsByTagName(collectionName).item(0);

            readChildren(rootElement, businessCollection);
        } catch (IOException io) {
            io.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
        for(Object businessObject : businessCollection.getBusinessObjects()) {
            if(businessObject instanceof BusinessCollection){
                BusinessCollection<BusinessObject> subCollection = ((BusinessCollection<BusinessObject>)businessObject);
                String type = subCollection.getBusinessObjectType();
                String name = subCollection.getName();
                if(type.equals(name) || (subCollection instanceof MustBeRead)){
                    File childFolder = new File(parentFolder, businessCollectionName);
                    readCollection(subCollection, childFolder);
                }
            }
        }
    }