Map components = new HashMap();
    
    for (Iterator classes = cfg.getClassMappings(); classes.hasNext(); ) {
        if(exporter.startMapping(cfg) ) {
            PersistentClass clazz = (PersistentClass) classes.next();
            collectComponents(components,clazz);
            
            if(exporter.startPersistentClass(clazz) ) {
                if(clazz.hasIdentifierProperty() ) {
                    exporter.startIdentifierProperty(clazz.getIdentifierProperty() );
                    exporter.endIdentifierProperty(clazz.getIdentifierProperty() );
                } 
                else if (clazz.hasEmbeddedIdentifier() ) {
            exporter.startEmbeddedIdentifier( (Component)clazz.getKey() );
            exporter.endEmbeddedIdentifier( (Component)clazz.getKey() );
                }
                Iterator unjoinedPropertyIterator = clazz.getUnjoinedPropertyIterator();
                while(unjoinedPropertyIterator.hasNext() ) {
                    Property prop = (Property)unjoinedPropertyIterator.next();
                    exporter.startProperty(prop);
                    exporter.endProperty(prop);
                }