如何使用java通过dtd验证xml?
我有以下 xml 文件:
<?xml version = "1.0" ?>
<Employee>
<Emp_Id>E-001</Emp_Id>
<Emp_Name>Vinod</Emp_Name>
<Emp_E-mail>[email protected]</Emp_E-mail>
</Employee>
我有以下 dtd 文件:
<!ELEMENT Employee (Emp_Id, Emp_Name, Emp_E-mail)>
<!ELEMENT Emp_Id (#PCDATA)>
<!ELEMENT Emp_Name (#PCDATA)>
<!ELEMENT Emp_E-mail (#PCDATA)>
我想使用 java 使用上述 dtd 验证此 xml 文件。
请帮忙谢谢..:-)
I have following xml file:
<?xml version = "1.0" ?>
<Employee>
<Emp_Id>E-001</Emp_Id>
<Emp_Name>Vinod</Emp_Name>
<Emp_E-mail>[email protected]</Emp_E-mail>
</Employee>
I have following dtd file:
<!ELEMENT Employee (Emp_Id, Emp_Name, Emp_E-mail)>
<!ELEMENT Emp_Id (#PCDATA)>
<!ELEMENT Emp_Name (#PCDATA)>
<!ELEMENT Emp_E-mail (#PCDATA)>
I want to validate this xml file with above dtd using java.
Please, help thanks..:-)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您应该做三件事:
在 XML 声明之后使用文档类型声明将源 XML 文档与其 DTD 关联起来:
注意:DOCTYPE 根必须与源 XML 中的根元素匹配。
DocumentBuilderFactory
上的setValidating
设为true
使用
DocumentBuilder
提供一个org.xml.sax.ErrorHandler
实例setErrorHandler
。完整示例:
源文档:
There are three things you should do:
Associate the source XML document with its DTD using a doctype declaration after the XML declaration:
Note: The DOCTYPE root must match the root element in the source XML.
setValidating
totrue
on theDocumentBuilderFactory
Provide an
org.xml.sax.ErrorHandler
instance to theDocumentBuilder
usingsetErrorHandler
Here's a complete example:
Source document:
您只需要阅读文件并报告异常(如果有)。这是一个 SAX 解析器示例,您可以依靠。
为了验证您的 XML 和 DTD,您只需要 setValidating:
并在 XML 文件中声明 DTD 用法:
You just need to read the files and report the exceptions, if any. Here is a SAX parser example you can rely upon.
In order to validate your XML and DTD you just need to setValidating:
Also declare the DTD usage in your XML file: