2012-07-26 74 views
1

我有一個xml。 我已經爲xml創建了一個XSD。在jaxb中使用xsd進行xml驗證

我想編寫一個編程來驗證xml針對xsd。 我寫了一個編,並獲得個人價值觀設置。

但是有沒有辦法,我可以給xml文件作爲輸入,並可以看到xml是否對XSD有效?

感謝, 妮妮

回答

2

這是來回驗證XML函數與XSD

更多信息上https://github.com/brainlessgit/Projects/tree/master/XMLParserProject3

public static boolean validate() { 
    Source xmlFile = null; 
    File schemaFile; 
    SchemaFactory schemaFactory; 
    Schema schema; 
    try { 
     schemaFile = new File(xsdFileName); 
     xmlFile = new StreamSource(new File(xmlFileName)); 
     schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); 
     schema = schemaFactory.newSchema(schemaFile); 
     Validator validator = schema.newValidator(); 
     validator.validate(xmlFile); 
     System.out.println(xmlFile.getSystemId() + " is valid"); 
    } catch (SAXException | IOException e) { 
     System.out.println(xmlFile.getSystemId() + " is NOT valid"); 
     System.out.println("Reason: " + e.getLocalizedMessage()); 
     return false; 
    } 
    return true; 
} 
+0

非常感謝。我可以使用這個概念。 – nisha 2012-07-26 11:23:42

+0

但是你可以使用marshall/unmarshall作爲例子嗎? – nisha 2012-07-26 11:35:44

+0

@ user468964 - 您可以在Marshaller或Unmarshaller中設置'Schema'的實例來啓用驗證。欲瞭解更多信息,請參閱:http://blog.bdoughan.com/2010/12/jaxb-and-marshalunmarshal-schema.html – 2012-07-26 13:00:46