@Override
    public boolean validate(File specFile) throws HyscaleException {
        String fileName = specFile.getName();
        ProcessingReport processingReport;
        String jsonData = null;
        try {
            jsonData = DataFormatConverter.yamlToJson(specFile);
        } catch (HyscaleException e) {
            WorkflowLogger.persist(getActivity(), LoggerTags.ERROR, fileName, ERROR_MESSAGE);
            throw new HyscaleException(e.getHyscaleError(), ToolConstants.SCHEMA_VALIDATION_FAILURE_ERROR_CODE);
        }
        try {
            processingReport = schemaValidator.validateSpec(jsonData,
                    getReferenceSchemaType());
        } catch (HyscaleException e) {
            WorkflowLogger.persist(getActivity(), LoggerTags.ERROR, fileName, e.getMessage());
            throw new HyscaleException(e.getHyscaleError(), ToolConstants.SCHEMA_VALIDATION_FAILURE_ERROR_CODE);
        }
        if (processingReport.isSuccess()) {
            try {
                return validateData(specFile);
            } catch (HyscaleException e) {
                WorkflowLogger.persist(getActivity(), LoggerTags.ERROR, fileName, e.getMessage());
                throw new HyscaleException(e.getHyscaleError(), ToolConstants.SCHEMA_VALIDATION_FAILURE_ERROR_CODE);
            }
        }
        String errorMessage = getErrorMessage(processingReport);
        
        WorkflowLogger.persist(getActivity(), LoggerTags.ERROR, fileName, errorMessage);
        logger.error(errorMessage);
        if(WorkflowLogger.isDisabled()){
            outputHandler.addErrorMessage(errorMessage);
        }
        return false;
    }
Parent level validator to validate schema such as
{@link HSpecSchemaValidator} , {@link HprofSchemaValidator}
workflow-controller/controller-service/src/main/java/io/hyscale/controller/validator/SpecSchemaValidator.java