`

No grammar constraints (DTD or XML Schema) 处理后导致junit停顿异常

阅读更多

     今天使用eclipse后,看到xml中的警告图标,提示:No grammar constraints (DTD or XML Schema) referenced in the document. 异常,按照网上推荐的方法在xml中加入了dtd描述:

方法一:常用方法   关闭XML验证
工具栏:windows => preferences => xml => xml files => validation => Indicate when no grammar is specified:选择Ignore即可。
方法二:(个人推荐)
添加 内容如下
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/2002/xmlspec/dtd/2.10/xmlspec.dtd">

 结果,在使用Junit测试代码进行测试时,每次都停在读取xml文件【Document document = reader.read(read);】的地方很长时间。

in = new ByteArrayInputStream(result.getBytes());
			SAXReader reader = new SAXReader();
			Reader read = new InputStreamReader(in,"UTF-8");
			Document document = reader.read(read);
			return document.getRootElement();

 

查了N多资料都快把我逼疯了。回来在logback日志框架怀疑的时候,有个提示说xml的内容不规范,突然想到通过去掉DTD描述进行测试。结果读取文件正常了。

看来使用Dom4J将字符串转换为Document的时候,对于不规范的内容,会导致读取转换超时,可惜又不报个错,害我找半天。

还是应了那句话,不作死就不会死。像我这种有强迫症的人,得到的是多么痛的领悟,半天时候又耗费了。今天又要加班了!

 

0
0
分享到:
评论
2 楼 xzbamiss 2015-12-11  
大神,膜拜!
1 楼 ClementAD 2015-06-08  
加上 <!DOCTYPE xml> 就可以了。
参考:http://blog.csdn.net/clementad/article/details/46314745

相关推荐

Global site tag (gtag.js) - Google Analytics