XML文件约束之DTD技术

一、思维导图
在这里插入图片描述
二、学习过程
需求:xml文档用来描述数据,当你想要要求约束你的团队按照你的数据含义的格式来写xml文档怎么做?所以产生了DTD技术。
基本语法:语法规则见思维导图,它的规则是从根节点开始描述,描述根节点有几个子节点,子节点里面应该包括些什么,包含的内容类型是什么。


入门案例
在这里插入图片描述
一般先写dtd文件,再写xml文件,最后写校验文件:

<!ELEMENT 班级 (学生+)>
<!ELEMENT 学生 (name,年龄,介绍)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT 年龄 (#PCDATA)>
<!ELEMENT 介绍 (#PCDATA)>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE 班级 SYSTEM "2.dtd">
<班级>
	<学生>
	<name>周润发</name>
	<年龄>40</年龄>
	<介绍>演技棒!</介绍>
	<属性>水</属性>
	</学生>
	<学生>
	<name>郭富城</name>
	<年龄>41</年龄>
	<介绍>演技棒!</介绍>
	</学生>
</班级>
<html>
<head>
<!--ie5以上的浏览器才有xml解析工具,我用谷歌浏览器运行不出来,从microsoft可看出-->
<script>
	//创建xml文档解释器对象
	var xmldoc =  new ActiveXObject("Microsoft.XMLDOM");
	//开启xml校验
	xmldoc.validateOnParse = "true";
	//装载xml文档
	xmldoc.load("2.xml");
	//获取错误信息
	document.write("错误信息是:"+xmldoc.parseError.reason+"<br>");
	document.write("错误行数是:"+xmldoc.parseError.line);
</script>
</head>
<body>
</body>
</html>


运行结果:
在这里插入图片描述

细节:

内部dtd:SYSTEM 2.dtd 本身描述的就是文件路径,直接用dtd文件内容代替就可以。对比css的内部样式表和外部样式表

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE 班级 [<!ELEMENT 班级 (学生+)>
<!ELEMENT 学生 (name,年龄,介绍)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT 年龄 (#PCDATA)>
<!ELEMENT 介绍 (#PCDATA)>]>
<班级>
	<学生>
	<name>周润发</name>
	<年龄>40</年龄>
	<介绍>演技棒!</介绍>
	<属性>水</属性>
	</学生>
	<学生>
	<name>郭富城</name>
	<年龄>41</年龄>
	<介绍>演技棒!</介绍>
	</学生>
</班级>

外部dtd可以引入网络资源上的dtd文件,也可以是本地的。比较简单,详见思维导图。

猜你喜欢

转载自blog.csdn.net/weixin_42512488/article/details/85387549