package eu.dnetlib.validator2.engine; import eu.dnetlib.validator2.validation.XMLApplicationProfile; import eu.dnetlib.validator2.validation.guideline.Guideline; import eu.dnetlib.validator2.validation.guideline.openaire.LiteratureGuidelinesV3Profile; import groovy.xml.DOMBuilder; import org.slf4j.LoggerFactory; import org.w3c.dom.Document; import java.io.FileReader; import java.util.LinkedHashMap; import java.util.Map; import java.util.stream.Collectors; public class Test { private static final org.slf4j.Logger logger = LoggerFactory.getLogger(Test.class); private static final String[] FILES = new String[] { // "src/test/resources/openaireguidelinesV3/dia.library.tuc.gr/Record_21811.xml", // "src/test/resources/openaireguidelinesV3/cris.vtt.fi/01.xml", // "src/test/resources/openaireguidelinesV3/cris.vtt.fi/02.xml", "src/test/resources/openaireguidelinesV3/cris.vtt.fi/03.xml" }; public static void main(String[] args) { // String xmlFile = args[0]; LiteratureGuidelinesV3Profile profile = new LiteratureGuidelinesV3Profile(); logger.info("Max score: " + profile.maxScore()); Map scorePerDoc = new LinkedHashMap<>(); for (String file: FILES) { try { logger.info("Processing \"" + file + "\""); Document doc = DOMBuilder.parse(new FileReader(file), false, true, true); XMLApplicationProfile.ValidationResult result = profile.validate(file, doc); scorePerDoc.put(file, result.score()); Map results = result.results(); for (Map.Entry entry : results.entrySet()) { logger.info(entry.getKey() + " = " + entry.getValue()); } } catch(Exception e) { logger.error("", e); } } String printout = scorePerDoc.entrySet().stream(). map(entry -> entry.getValue() + ": " + entry.getKey()).collect(Collectors.joining("\n")); logger.info(printout); } }