2014-07-10 175 views
0

我目前有一種方法可以通過將XML文件與XSD文件進行比較來驗證它。從Maven資源獲取文件路徑

private boolean validateXmlFile() { 
    try { 
     SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema"); 
     Schema schema; 

     schema = factory.newSchema(new File("school.xsd")); 

     Validator validator = schema.newValidator(); 
     Source source = new StreamSource(new File("school.xml")); 

     validator.validate(source); 

     return true; 
    } catch (SAXException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    return false; 
} 

最初,XSD文件位於主目錄中,但現在我目前想我的項目轉換,使其「mavenised」,它涉及到把我所有的文件在「資源/」目錄。

我該如何調用XSD文件的路徑名,因爲它在資源目錄中?很明顯,我不能這樣做:

schema = factory.newSchema(new File("resources/school.xsd")); 

它涉及到引用文件作爲InputStream嗎?

非常感謝

+0

'this.class.getResourcesAsStream( 「/ school.xsd」);'。 – khmarbaise

回答

0

這就是我一直在尋找,謝謝反正:

schema = factory.newSchema(new File(this.getClass().getResource("school.xsd").toURI()));