protected void initializeRecord(RecordConfig record) throws BeanIOConfigurationException {
        
        // a record is ignored if a 'class' was not set and the property root is null
        // or the record repeats
        recordIgnored = false;
        if (record.getType() == null && record.getTarget() == null) {
            if (propertyRoot == null || record.isRepeating()) {
                recordIgnored = true;
            }
        }
        
        // assign default min and max occurs
        if (record.getMinOccurs() == null) {
            record.setMinOccurs(settings.getInt(Settings.DEFAULT_RECORD_MIN_OCCURS, 0));
        }
        if (record.getMaxOccurs() == null) {
            record.setMaxOccurs(Integer.MAX_VALUE);
        }
        if (record.getMaxOccurs() <= 0) {
            throw new BeanIOConfigurationException("Maximum occurrences must be greater than 0");
        }
        
        if (propertyRoot == null) {
            propertyRoot = record;
            
            if (record.isLazy()) {
            	throw new BeanIOConfigurationException("Lazy cannot be true for unbound records");
            }
        }
        
        initializeSegment(record);
    }