“合法”的xml文件必定会符合xml语法规则,同时也要遵守文档类型定义(DTD)的语法规则。
1,什么是约束?
在XML技术里,可以编写一个文档来约束一个XML文档的书写规范,这称之为XML约束。
2,常见的约束技术:DTD,Schema。
3,约束的作用:通过约束技术我们可以规范xml文档的书写,也可以对xml文档进行校验。
4,DTD文件可以定义在文件内部,在xml文件声明中,它的standalone=“yes”,也可以定义在扩展名为dtd的文件中,再由xml文件引入standalone=“no”
5,默认情况下ie浏览器的约束校验器是被关闭的,所以我们需要使用javascript手动创建解析器对象,打开校验功能,对xml文件进行约束校验。
6,DTD语法
如何在xml文件中引入dtd文件
@1,外部引入
外部引入的dtd文件的保存一定要utf-8格式的,再写<!DOCTYPE 根元素名称 SYSTEM/PUBLIC 文件的位置>
SYSTEM是保存在硬盘中的文件
PUBLIC是在网路公共位置中的文件
@2,内部引入直接在xml文件中写一下dtdt约束就行
相关代码:
xml文件:
<?xml version="1.0" encoding="gbk" ?>
<!DOCTYPE 学校 SYSTEM "jiaoyan.dtd">
<学校>
<李老师>
<实验班>战神</实验班>
<血神>索罗</血神>
</李老师>
<李老师>
<实验班>海贼王</实验班>
<血神>路飞</血神>
</李老师>
</学校>
DTD文件:
<!ELEMENT 学校(李老师+)>
<!ELEMENT 李老师(实验班,血神)>
<!ELEMENT 实验班(#PCDATA)>
<!ELEMENT 血神(#PCDATA)>
html文件:
<html>
<head>
</head>
<body>
行号等于 <div id="l"></div>
错误原因 <div id="r"></div>
</body>
</html>
<script>
var xmldoc=new ActiveXObject("Microsoft.XMLDOM");//利用javascript创建一个浏览器内置的xml解析器
xmldoc.validateOnParse="true";//打开解析器的dtd校验
xmldoc.load("xuexiao.xml");
var line=xmldoc.parseError.line;
var reason=xmldoc.parseError.reason;
alert(line);
alert(reason);
document.getElementById("l").innerHTML=line;
document.getElementById("r").innerHTML=reason;
</script>