@Override
    protected FormatReader openReader(final InputStream inputStream,
                                      final FormatLogger logger) {
        try {
            return new DSMLFormatReader(inputStream);
        } catch (final DocumentException e) {
            logger.logError("Error parsing DSML file", e);
        } catch (final JaxenException e) {
            logger.logError("Error processing DSML file", e);
        } catch (final IOException e) {
            logger.logError("Error reading DSML file", e);
        }
        return null;
    }
@Override
    protected FormatReader openReader(final InputStream inputStream,
                                      final FormatLogger logger) {
        try {
            return new DSMLFormatReader(inputStream);
        } catch (final DocumentException e) {
            logger.logError("Error parsing DSML file", e);
        } catch (final JaxenException e) {
            logger.logError("Error processing DSML file", e);
        } catch (final IOException e) {
            logger.logError("Error reading DSML file", e);
        }
        return null;
    }
@ Override protected FormatReader openReader ( final InputStream inputStream , final FormatLogger logger ) { try { return new DSMLFormatReader ( inputStream ) ; } catch ( final DocumentException e ) { logger . logError ( "Error parsing DSML file" , e ) ; } catch ( final JaxenException e ) { logger . logError ( "Error processing DSML file" , e ) ; } catch ( final IOException e ) { logger . logError ( "Error reading DSML file" , e ) ; } return null ; }
Create the LDAP reader that will load LDAP entries from a DSML file.

@param inputStream The file input stream.
@param logger      Used to log information or error messages.
@return A {@link DSMLFormatReader} object.
Create the LDAP reader that will load LDAP entries from a DSML file .