本文主要是介绍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验证。
- 创建解析器对象:var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
- 开启校验开关: xmldoc.validateOnParse = "true";
- 装载xml文档: xmldoc.load("book.xml");
- 获取错误信息: 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
这篇关于javaweb-day01-3(XML 的 dtd 约束)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!