JAVA & Web

xml 파일 validate

스마트큐브 2020. 7. 24. 15:14

정보 집중관련으로 xml 파일을 이용하게 됐는데  XSD 파일을 이용해서 validation 하는걸 첨해봐서 

기록해둔다 . 

정말 간단하게도 요거면 끝 

첫번째 인자에 xsd 에 해당하는 xml 파일 경로 넣어주고 2번째 검증하고자 하는 xml 파일 넣어주고 실행하면 끝!

public class XSDValidator {
   public static void main(String[] args) {
	   
	   
 
      if(args.length !=2){
         System.out.println("Usage : XSDValidator <file-name.xsd> <file-name.xml>" );
      } else {
         boolean isValid = validateXMLSchema(args[0],args[1]);
         
         if(isValid){
            System.out.println(args[1] + " is valid against " + args[0]);
         } else {
            System.out.println(args[1] + " is not valid against " + args[0]);
         }
      }
   }
   
   public static boolean validateXMLSchema(String xsdPath, String xmlPath){
      try {
         SchemaFactory factory =
            SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
            Schema schema = factory.newSchema(new File(xsdPath));
            Validator validator = schema.newValidator();
            validator.validate(new StreamSource(new File(xmlPath)));
      } catch (IOException e){
         System.out.println("Exception: "+e.getMessage());
         return false;
      }catch(SAXException e1){
    	  e1.printStackTrace();
         System.out.println("SAX Exception: "+e1.getMessage());
         return false;
      }
		
      return true;
	
   }
}