如何使用javavalidationxml与dtd?
我有以下xml文件:
E-001 Vinod Vinod1@yahoo.com
我有以下dtd文件:
我想使用java在上面的dtd中validation这个xml文件。
请帮忙谢谢.. 🙂
你应该做三件事:
-
在XML声明之后使用doctype声明将源XML文档与其DTD相关联:
注意 :DOCTYPE根必须与源XML中的根元素匹配。
-
DocumentBuilderFactory
上的setValidating
为true
-
使用
setErrorHandler
为DocumentBuilder
提供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用法:
- jpa独立自定义类型映射/ javax.persistence.x替代org.hibernate.annotations.Type和org.hibernate.annotations.TypeDef
- 如何将StringReader转换为String?