为什么我的xml parser不进行有效性检查?(100分)

  • 主题发起人 主题发起人 hyzou
  • 开始时间 开始时间
H

hyzou

Unregistered / Unconfirmed
GUEST, unregistred user!
代码如下:
DOMParser parser = newdo
MParser();
parser.setFeature( "http://xml.org/sax/features/validation",true);
parser.parse("test.xml");
Documentdo
c = parser.getDocument();
现在的问题:
可以进行格式正确的检查,如test.xml或test.xsd不存在或格式错误,则抛出异常
但如果test.xml不符合test.xsd的格式要求,不抛出异常。
请问如何才能进行有效性检验?
parser包为Xerces-J-1.4.4

 
我用过IBM的SAXParser,检查格式没有问题。
DOM的话,试试看把setFeature后面的换成
("http://xml.org/dom/features/validation", true);
另外,有没有写 setErrorHandler ?
 
检查格式正确是什么意思?是指有效性检查吗?
我需要的是有效性检查而不是格式检查
另外setErrorHandler如何使用?有例子没有?
多谢
 
格式检查只是检查你的XML文件是否符合XML的语法规范,以及是否含有非法字符,比如"&"。
格式错误的Exception可以直接接收到,而有效性的Exception必须由ErrorHandler才能接收到。
使用很简单,定义一个继承ErrorHandler的类,然后在Parser之前,
加上parser.setErrorHandler("上面定义的类");
定义的例子如下:
class MyErrorHandler implements ErrorHandler {
public void warning(SAXParseException exception) throws SAXException {
....................
}
public void error(SAXParseException exception) throws SAXException {
...................
}
public void fatalError(SAXParseException exception) throws SAXException {
..............
}
}
 
搞定,多谢。
 
后退
顶部