001package org.hl7.fhir.validation.cli.utils;
002
003import org.hl7.fhir.r5.elementmodel.Manager;
004import org.hl7.fhir.utilities.validation.ValidationMessage;
005import org.xml.sax.SAXException;
006
007import java.io.FileNotFoundException;
008import java.io.IOException;
009import java.util.List;
010
011public class SchemaValidator {
012
013  public static void validateSchema(String location, Manager.FhirFormat cntType, List<ValidationMessage> messages) throws IOException, SAXException {
014    if (cntType == Manager.FhirFormat.JSON)
015      validateJsonSchema(location, messages);
016    if (cntType == Manager.FhirFormat.XML)
017      validateXmlSchema(location, messages);
018    if (cntType == Manager.FhirFormat.TURTLE)
019      validateSHEX(location, messages);
020  }
021
022  private static void validateSHEX(String location, List<ValidationMessage> messages) {
023    messages.add(new ValidationMessage(ValidationMessage.Source.InstanceValidator, ValidationMessage.IssueType.INFORMATIONAL, location, "SHEX Validation is not done yet", ValidationMessage.IssueSeverity.INFORMATION));
024  }
025
026  private static void validateXmlSchema(String location, List<ValidationMessage> messages) throws FileNotFoundException, IOException, SAXException {
027    messages.add(new ValidationMessage(ValidationMessage.Source.InstanceValidator, ValidationMessage.IssueType.INFORMATIONAL, location, "XML Schema Validation is not done yet", ValidationMessage.IssueSeverity.INFORMATION));
028  }
029
030  private static void validateJsonSchema(String location, List<ValidationMessage> messages) {
031    messages.add(new ValidationMessage(ValidationMessage.Source.InstanceValidator, ValidationMessage.IssueType.INFORMATIONAL, location, "JSON Schema Validation is not done yet", ValidationMessage.IssueSeverity.INFORMATION));
032  }
033}