javaweb-day01-3(XML 的 dtd 约束)

XML 的约束方式有两种:dtd 和 schema


 DTD约束:


Document Type Definition    文档类型定义、文档类型界定。


入门示例:


book.xml :

<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE 书架 SYSTEM "book.dtd">
<书架>
	<书>
		<书名>Java就业培训教程</书名>
		<作者>张孝祥</作者>
		<售价>39.00元</售价>
	</书>
	<书>
		<书名>JavaScript网页开发</书名>
		<作者>张孝祥</作者>
		<售价>28.00元</售价>
	</书>
</书架>

xml文档里面有中文时,记事本软件默认使用gb2312编码来保存到硬盘,所以我们在encoding里写gb2312来通知浏览器解析引擎使用gb2312来打开此XML文档。



book.dtd :

<!ELEMENT 书架 (书+)>
<!ELEMENT 书 (书名,作者,售价)>
<!ELEMENT 书名 (#PCDATA)>
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 售价 (#PCDATA)>
PCDATA :parse chracter data  可解析的字符串。

DTD文件必须指定 UTF-8 或 Unicode 编码保存。

如果使用其他编码保存,那么使用这份dtd文档约束的所有XML文档将打不开。


校验:

1.  用Google chrome 打开book.xml,可以校验此xml文档是否符合指定的dtd约束文档的规定,错误出在哪里都会有提示。

2.  IE浏览器没有自动校验功能,实际上IE5以上浏览器内置了XML解析工具:Microsoft.XMLDOM,可以编写javascript代码,利用这个解析工具装载xml文件,并对这个文件进行dtd验证。

  1. 创建解析器对象:var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
  2. 开启校验开关:    xmldoc.validateOnParse = "true";
  3. 装载xml文档:      xmldoc.load("book.xml");
  4. 获取错误信息:    xmldoc.parseError.reason;     xmldoc.parseError.line;                 

validate.html :

<html>
<head>
<script>
var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
xmldoc.validateOnParse = "true";
xmldoc.load("book.xml");
document.write("错误信息:"+xmldoc.parseError.reason+"<br/>");
document.write("错误行号:"+xmldoc.parseError.line);
</script>
</head>

<body>
</body>
</html>
用IE浏览器打开此 validate.html 校验文档,会显示错误信息和行号:

错误信息:
错误行号:0  











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值