Validate File Format

秒速五厘米 2022-08-10 17:50 247阅读 0赞

介绍

  1. 通过Schema来校验文件格式的正确与否。
  2. package shuai.study.validator;
  3. import java.io.File;
  4. import java.io.IOException;
  5. import java.net.URL;
  6. import javax.xml.transform.Source;
  7. import javax.xml.transform.stream.StreamSource;
  8. import javax.xml.validation.Schema;
  9. import javax.xml.validation.SchemaFactory;
  10. import javax.xml.validation.Validator;
  11. import org.xml.sax.SAXException;
  12. public class FormatValidator {
  13. public static boolean isFormatValid(URL urlSchema, Source source) {
  14. boolean validatorFlag = true;
  15. SchemaFactory schemaFactory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
  16. try {
  17. Schema schema = schemaFactory.newSchema(urlSchema);
  18. Validator validator = schema.newValidator();
  19. validator.validate(source);
  20. } catch (SAXException se) {
  21. validatorFlag = false;
  22. se.printStackTrace();
  23. } catch (IOException ioe) {
  24. validatorFlag = false;
  25. ioe.printStackTrace();
  26. }
  27. return validatorFlag;
  28. }
  29. public static void main(String[] args) {
  30. URL urlSchema = FormatValidator.class.getResource("/schema/TestFileFormat.xsd");
  31. String sourceFileString = FormatValidator.class.getResource("/xml/TestSourceFile.xml").getPath();
  32. Source source = new StreamSource(new File(sourceFileString));
  33. boolean validatorFlag = FormatValidator.isFormatValid(urlSchema, source);
  34. if (validatorFlag) {
  35. System.out.println("Analyze " + source.getSystemId() + " successfully");
  36. } else {
  37. System.out.println("Fail to analyze " + source.getSystemId());
  38. }
  39. }
  40. }

发表评论

表情:
评论列表 (有 0 条评论,247人围观)

还没有评论,来说两句吧...

相关阅读