一、DTD:
<!ELEMENT NEWSPAPER (ARTICLE+)>
<!ELEMENT ARTICLE (HEADLINE,BYLINE,LEAD,BODY,NOTES)>
<!ELEMENT HEADLINE (#PCDATA)>
<!ELEMENT BYLINE (#PCDATA)>
<!ELEMENT LEAD (#PCDATA)>
<!ELEMENT BODY (#PCDATA)>
<!ELEMENT NOTES (#PCDATA)>
<!ATTLIST ARTICLE AUTHOR CDATA #REQUIRED>
<!ATTLIST ARTICLE EDITOR CDATA #IMPLIED>
<!ATTLIST ARTICLE DATE CDATA #IMPLIED>
<!ATTLIST ARTICLE EDITION CDATA #IMPLIED>
<!ENTITY NEWSPAPER "Vervet Logic Times">
<!ENTITY PUBLISHER "Vervet Logic Press">
<!ENTITY COPYRIGHT "Copyright 1998 Vervet Logic Press">
二、XML:
引用DTD有两种方式,一种是将DTD包含于XML源文件中;另一种是封装在一个 DOCTYPE 定义中。
<!DOCTYPE 根元素 SYSTEM "文件名">
文件名是XML源文件的相对位置。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE NEWSPAPER SYSTEM "./test.dtd">
<NEWSPAPER>
<ARTICLE>
<HEADLINE></HEADLINE>
<BYLINE></BYLINE>
<LEAD></LEAD>
<BODY></BODY>
<NOTES></NOTES>
</ARTICLE>
<ARTICLE AUTHOR="wj" EDITOR="">
<HEADLINE></HEADLINE>
<BYLINE></BYLINE>
<LEAD></LEAD>
<BODY></BODY>
<NOTES></NOTES>
</ARTICLE>
</NEWSPAPER>
三、JavaScript:
<html>
<body>
<script type="text/javascript">
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")//创建一个xml dom对象,仅适用于IE浏览器
xmlDoc.async="false"//是否异步性
xmlDoc.validateOnParse="true"
xmlDoc.load("test.xml")
if (xmlDoc.parseError.errorCode != 0) {
txt = "Error Code: " + xmlDoc.parseError.errorCode + "\n";
txt = txt + "Error Reason: " + xmlDoc.parseError.reason;
txt = txt + "Error Line: " + xmlDoc.parseError.line;
alert(txt);
}
else {
alert('No errors found');
}
</script>
</body>
</html>
运行如图所示:

本文深入解析了DTD(Document Type Definition)在XML中的应用,包括DTD的结构、元素定义及属性列表,展示了如何在XML文件中引用DTD进行数据验证。同时,提供了使用JavaScript进行XML解析和错误检查的示例代码。
4406

被折叠的 条评论
为什么被折叠?



