public static void main(String[] args) throws Exception {
        BufferedReader in = new BufferedReader(new InputStreamReader(
                new FileInputStream(args[0]), "utf-8"));
        PrintWriter out = new PrintWriter(new OutputStreamWriter(new GZIPOutputStream(
                new FileOutputStream(args[1])), "utf-8"), true);
        File rootDir = new File(args[2]);
        
        Set<Schema> schemas = new HashSet<Schema>();
        schemas.add(CheckerSchema.ASSERTION_SCH);
        schemas.add(CheckerSchema.NORMALIZATION_CHECKER);
        schemas.add(CheckerSchema.TABLE_CHECKER);
        schemas.add(CheckerSchema.TEXT_CONTENT_CHECKER);
        schemas.add(CheckerSchema.USEMAP_CHECKER);

        InputSource is = new InputSource((new File(args[3])).toURL().toExternalForm());
        SchemaReader sr = CompactSchemaReader.getInstance();
        schemas.add(new XmlLangAttributeDroppingSchemaWrapper(new DataAttributeDroppingSchemaWrapper(sr.createSchema(is, PropertyMap.EMPTY))));
        schemas.add(new XmlLangAttributeDroppingSchemaWrapper(new AriaAttributeDroppingSchemaWrapper(sr.createSchema(is, PropertyMap.EMPTY))));

        CountingReadLine countingReadLine = new CountingReadLine(in);
        
        for (int i = 0; i < 4; i++) {
            (new Thread(new ValidationWorker(countingReadLine, out, rootDir, schemas))).start();
        }
    }
@param in
@param out
@param rootDir
@param resolver
resources/examples/research-src/nu/validator/batchresearch/ValidationWorker.java