DTD验证


使用 Internet Explorer 可根据某个 DTD 来验证您的 XML。


一、通过 XML 解析器进行验证

当您试图打开某个 XML 文档时,XML 解析器有可能会产生错误。通过访问 parseError 对象,就可以取回引起错误的确切代码、文本甚至所在的行。
注意: load() 方法用于文件,而 loadXML() 方法用于字符串。
实例

<html>
<body>
<h3>
This demonstrates a parser error:
</h3>

<script>
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.validateOnParse="true";
xmlDoc.load("note_dtd_error.xml");

document.write("<br>Error Code: ");
document.write(xmlDoc.parseError.errorCode);
document.write("<br>Error Reason: ");
document.write(xmlDoc.parseError.reason);
document.write("<br>Error Line: ");
document.write(xmlDoc.parseError.line);
</script>

</body>
</html>

查看xml文件的内容:


<?xml version="1.0"?>
<!-- Copyright w3school.com.cn -->
<!DOCTYPE note [
  <!ELEMENT note    (to,from,heading,body)>
  <!ELEMENT to      (#PCDATA)>
  <!ELEMENT from    (#PCDATA)>
  <!ELEMENT heading (#PCDATA)>
  <!ELEMENT body    (#PCDATA)>
]>
<note>
<to>George</to>
<fromm>John</fromm>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
<ps>I love you</ps>
</note> 

二、关闭验证

通过把 XML 解析器的 validateOnParse 设置为 "false",就可以关闭验证。
实例

<html>
<body>
<script>

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.validateOnParse="false";
xmlDoc.load("note_dtd_error.xml");

document.write("<br>Error Code: ");
document.write(xmlDoc.parseError.errorCode);
document.write("<br>Error Reason: ");
document.write(xmlDoc.parseError.reason);
document.write("<br>Error Line: ");
document.write(xmlDoc.parseError.line);

</script>
</body>
</html>