如何使用javavalidationxml与dtd?

我有以下xml文件:

   E-001  Vinod   Vinod1@yahoo.com   

我有以下dtd文件:

     

我想使用java在上面的dtd中validation这个xml文件。

请帮忙谢谢.. 🙂

你应该做三件事:

  • 在XML声明之后使用doctype声明将源XML文档与其DTD相关联:

      

    注意 :DOCTYPE根必须与源XML中的根元素匹配。

  • DocumentBuilderFactory上的setValidatingtrue

  • 使用setErrorHandlerDocumentBuilder提供org.xml.sax.ErrorHandler实例

这是一个完整的例子:

 DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance(); domFactory.setValidating(true); DocumentBuilder builder = domFactory.newDocumentBuilder(); builder.setErrorHandler(new ErrorHandler() { @Override public void error(SAXParseException exception) throws SAXException { // do something more useful in each of these handlers exception.printStackTrace(); } @Override public void fatalError(SAXParseException exception) throws SAXException { exception.printStackTrace(); } @Override public void warning(SAXParseException exception) throws SAXException { exception.printStackTrace(); } }); Document doc = builder.parse("employee.xml"); 

来源文件:

     E-001  Vinod   Vinod1@yahoo.com   

您只需要读取文件并报告exception(如果有)。 这是您可以信赖的SAX解析器示例 。

为了validation您的XML和DTD,您只需要setValidating:

  DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setValidating(true); // since the default value is false 

还要在XML文件中声明DTD用法: