网站首页 > 知识剖析 正文
DTD(文档类型定义)的作用是定义XML文档的合法构建模块。
DTD主要用处是约束XML文件, 也可去约束HTML XHTML...
DTD不要有太深的了解, 要求大家可以看懂, 可以根据别人提供的dtd文件, 写出对于的XML文件即可;
内部的DOCTYPE声明
假如DTD被包含在您的XML源文件中, 它应当通过下面的语法包装在一个DOCTYPE声明中:
<!DOCTYPE 根元素 [元素声明]>
带有 DTD 的 XML 文档实例:(选择"查看源代码"命令。)
<?xml version="1.0"?>
<!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
以上DTD解释如下:
!DOCTYPE note(第二行)定义此文档是note类型的文档。
!ELEMENT note(第三行)定义note元素有四个元素:"to、from、heading,、body"
!ELEMENT to(第四行)定义to元素为"#PCDATA"类型
!ELEMENT from(第五行)定义frome元素为"#PCDATA"类型
!ELEMENT heading(第六行)定义heading元素为"#PCDATA"类型
!ELEMENT body(第七行)定义body元素为"#PCDATA"类型
外部文档声明
假如DTD位于XML源文件的外部, 那么它应通过下面的语法被封装在一个DOCTYPE定义中:
<!DOCTYPE 根元素 SYSTEM "文件名">这个XML文档和上面的XML文档相同, 但是拥有一个外部的DTD:(选择"查看源代码"命令。)
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
这是包含DTD的"note.dtd"文件:
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
通过XML解析器进行验证
当您试图打开某个XML文档时, XML解析器有可能会产生错误。通过访问parseError对象, 就可以取回引起错误的确切代码、文本甚至所在的行。
注释:load( )方法用于文件, 而loadXML( )方法用于字符串。
//创建一个xml解析器
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); //只能用于IE浏览器
//是否异步加载xml文件, 最新版的IE9浏览器必须添加此语句, 并且属性值设为false(同步), 否则浏览器不能正确解析验证
xmlDoc.async="false"; //双引号可要可不要
//开启校验功能
xmlDoc.validateOnParse="true"; //双引号可要可不要
//装载xml文档
xmlDoc.load("wangye.xml");
//如果有错误信息,则输出
document.write("<br>Error Code: ");
document.write(xmlDoc.parseError.errorCode);
document.write("<br>Error Reason: ");
document.write(xmlDoc.parseError.reason); //reason: 理由, 原因
document.write("<br>Error Line: ");
document.write(xmlDoc.parseError.line);
内外部DTD文档结合
<!DOCTYPE 根元素 SYSTEM "DTD文件路径"[定义内容]>
XML文件使用DOCTYPE声明语句来指明它所遵循的DTD文件, DOCTYPE声明语句有两种形式:
当引用的文件在本地时, 采用如下方式:
<!DOCTYPE 文档根结点 SYSTEM "DTD文件的URL">
当引用的文件时一个公共的文件时, 采用如下形式:
<!DOCTYPE 文档根结点 PUBLIC "DTD名称" "DTD文件的URL">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- 上一篇: XML声明 xml声明中什么属性是必须的
- 下一篇: Android中XML文件解析,现在了解还不晚
猜你喜欢
- 2024-11-08 编程基础!Java程序员的10道XML面试题
- 2024-11-08 什么是 XML 站点地图?为什么要有它?
- 2024-11-08 spring源码系列之xml解析 spring xml map
- 2024-11-08 比较一下JSON与XML两种数据格式? json跟xml区别
- 2024-11-08 XML 总结 下一步学习什么呢? xml实用教程
- 2024-11-08 可扩展标记语言格式XML 可扩展标记语言是
- 2024-11-08 Python 解析 XML python解析xml文件并转化为表格
- 2024-11-08 Android中XML文件解析,现在了解还不晚
- 2024-11-08 深入解析:Python中的XML处理技巧与实践
- 2024-11-08 XML声明 xml声明中什么属性是必须的
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)