我有以下xml文件:
<?xml version = "1.0" ?>
<Employee>
<Emp_Id> E-001</Emp_Id>
<Emp_Name> Vinod </Emp_Name>
<Emp_E-mail> Vinod1@yahoo.com </Emp_E-mail>
</Employee>
Run Code Online (Sandbox Code Playgroud)
我有以下dtd文件:
<!ELEMENT Employee (Emp_Id, Emp_Name, Emp_E-mail)>
<!ELEMENT Emp_Id (#PCDATA)>
<!ELEMENT Emp_Name (#PCDATA)>
<!ELEMENT Emp_E-mail (#PCDATA)>
Run Code Online (Sandbox Code Playgroud)
我想使用java在上面的dtd中验证这个xml文件.
请帮忙谢谢.. :-)
Way*_*ett 19
你应该做三件事:
在XML声明之后使用doctype声明将源XML文档与其DTD相关联:
<!DOCTYPE Employee SYSTEM "employee.dtd">
Run Code Online (Sandbox Code Playgroud)
注意:DOCTYPE根必须与源XML中的根元素匹配.
setValidating在... true上DocumentBuilderFactory
为使用提供org.xml.sax.ErrorHandler实例DocumentBuildersetErrorHandler
这是一个完整的例子:
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");
Run Code Online (Sandbox Code Playgroud)
来源文件:
<?xml version="1.0"?>
<!DOCTYPE Employee SYSTEM "employee.dtd">
<Employee>
<Emp_Id> E-001</Emp_Id>
<Emp_Name> Vinod </Emp_Name>
<Emp_E-mail> Vinod1@yahoo.com </Emp_E-mail>
</Employee>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28395 次 |
| 最近记录: |