diff --git a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/cli/services/ValidationService.java b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/cli/services/ValidationService.java index eda673aa1..be7cc97e7 100644 --- a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/cli/services/ValidationService.java +++ b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/cli/services/ValidationService.java @@ -62,10 +62,7 @@ import org.hl7.fhir.utilities.i18n.XLIFFProducer; import org.hl7.fhir.utilities.npm.FilesystemPackageCacheManager; import org.hl7.fhir.utilities.npm.NpmPackage; import org.hl7.fhir.utilities.validation.ValidationMessage; -import org.hl7.fhir.validation.IgLoader; -import org.hl7.fhir.validation.ValidationEngine; -import org.hl7.fhir.validation.ValidationRecord; -import org.hl7.fhir.validation.ValidatorUtils; +import org.hl7.fhir.validation.*; import org.hl7.fhir.validation.ValidatorUtils.SourceFile; import org.hl7.fhir.validation.cli.model.CliContext; import org.hl7.fhir.validation.cli.model.FileInfo; @@ -115,10 +112,19 @@ public class ValidationService { ValidationResponse response = new ValidationResponse().setSessionId(sessionId); - for (FileInfo fp : request.getFilesToValidate()) { + for (FileInfo fileToValidate : request.getFilesToValidate()) { + if (fileToValidate.getFileType() == null) { + Manager.FhirFormat format = ResourceChecker.checkIsResource(validator.getContext(), + false, + fileToValidate.getFileContent().getBytes(), + fileToValidate.getFileName(), + false); + fileToValidate.setFileType(format.getExtension()); + } + List messages = new ArrayList<>(); - List validatedFragments = validator.validateAsFragments(fp.getFileContent().getBytes(), Manager.FhirFormat.getFhirFormat(fp.getFileType()), + List validatedFragments = validator.validateAsFragments(fileToValidate.getFileContent().getBytes(), Manager.FhirFormat.getFhirFormat(fileToValidate.getFileType()), request.getCliContext().getProfiles(), messages); // TODO this chunk does not work for multi-file validation, as the fileName is overwritten