DTD验证XML文档
DTD验证XML文档
1.DTD简介:DTD是Document Type Definition的缩写,即文档定义
1.1:DTD的内容包含:
元素定义规则
元素之间的关系规则
属性的定义规则
1.2:DTD的作用如下:
DTD使每个XML文件可以携带一个自身格式的描述
DTD使不同组织的人可以使用一个通用DTD来交换数据
DTD使应用程序可以使用一个标准DTD效验从外部接收的XML数据会否有效
2.声明DTD
语法:<!DOCTYPE 根元素 [定义内容]>
eg:
<?xml version="1.0"?> <!DOCTYPE poem[ <!ELEMENT poem (author,title,content)> <!ELEMENT author (#PCDATA)> <!ELEMENT title (#PCDATA)> <!ELEMENT content (#PCDATA)> ]> <poem> <author>王维</author> <title>鹿柴</title> <content>空山不见人,但闻人语响。返景入深林,复照青苔上。</content> </poem>
3.使用外部DTD验证XML
语法:<!DOCTYPE 根元素 SYSTEM "DTD文件路径">
eg:poems.dtd
<!ELEMENT poems (poem*)> <!ELEMENT poem (title,author,year,content)> <!ELEMENT title (#PCDATA)> <!ELEMENT author (#PCDATA)> <!ELEMENT year (#PCDATA)> <!ELEMENT content (#PCDATA)>
使用外部DTD验证描述诗集的XML
<?xml version="1.0"?> <!DOCTYPE poems SYSTEM "poems.dtd"> <poems createYear="2011"> <poem> <title>春晓</title> <author>孟浩然/author> <year>732</year> <content>春眠不觉晓</content> </poem> </poems>
4.DTD元素
4.1:语法:<!ELEMENT NAME CONTENT>
ELEMENT:关键字
NAME:元素名称
CONTENT:元素类型
4.2:常用的元素类型
#PCDATA,可以包含任何字符数据,但是不能在其中包含任何子元素
eg:<!ELEMENT title (#PCDATA)>
纯元素类型,只包含子元素,并且这些子元素没有文本
eg:<!ELEMENT poems (poem*)>
4.3:DTD元素中某些符号的用途
符号 用途 示例 示例说明
() 用来给元素分组 (古龙|金庸|梁羽生),(王苏|玉洁),毛毛 表示分成三组
| 在列出的对象中选择一个 (男人|女人) 两者选其一
, 对象必须按指定的顺序出现 (西瓜,苹果,香蕉) 三个都必须出现
* 允许出现(0到多次) (爱好*) 爱好可以出现0到多次
? 允许出现(0次到1次) (菜鸟?) 表示可出现也可以不出现,如果出现最多一次
+ 允许出现(1次到多次) (成员+) 表示必须出现,而且可以出现多次
4.4:DTD属性
1.语法:<!ATTLIST 元素名称 属性名称 属性类型 属性默认值>
2.DTD元素中属性类型的描述:
属性类型 说明
CDATA 表示字符数据
ID 表示唯一的id
IDREF 表示为另一个元素的id
IDREFS 表示其他id的列表
ENTITY 表示一个实体
ENTITLES 表示一个实体列表
3.DTD元素中属性值的描述
值 说明
#REQUIRED 属性值是必须的
#IMPLIED 属性值不是必须的
#FIXED 属性值是固定的
eg:
<!DOCTYPE mystruts[ <!ELEMENT mystruts (actions)> <!ELEMENT actions (action*)> <!ELEMENT action (result*)> <!ATTLIST action name CDATA #REQUIRED class CDATA #REQUIRED> <!ELEMENT result (#PCDATA)> <!ATTLIST result name CDATA #IMPLIED redirect (true|false) "false"> ]> <mystruts> <actions> <action name="register" class="com.RegisterAction"> <result name="success">register_success.jsp</result> <result name="input">register.jsp</result> </action> </actions> </mystruts>
最新文章
- Thinking in java学习笔记之String的不可变性
- 2.6 C#的数据转换
- win7中资源管理器不能显示图片预览的解决方法
- Hadoop2.2 federnation联盟的搭建
- thinkPHP 无法create,无法插入数据,提示非法数据对象
- mongodb的常用操作
- WDC2106 iOS10新特性及开发者要注意什么
- Ext入门学习系列(二)弹出窗体
- Mater Nginx(2) - A Configuration Guide
- spring 属性配置细节
- 颜色rgb
- Web工程师的工具箱
- logstash 内置匹配IP
- 算法导论 6-2 d叉堆
- 用简单的http抓包来实现微信公众网页如何模拟登录
- Entity Framework 帮助文档
- es6 语法 (解构赋值)
- des结合base64加解密的python源码
- 第三百九十二节,Django+Xadmin打造上线标准的在线教育平台—sql注入攻击,xss攻击,csrf攻击
- 初识 数据库及Oracle数据库