宋利兴__09-27_XML笔记
2011-09-27 23:38
127 查看
DTD是一套关于标记的语法规则,它定义了文档的逻辑结构,规定了文档中所使用的元素、实体、元素的属性、元素与实体之间的关系。
DTD是XML文件的验证机制,定义好DTD,就可以使用XML解析器对编写好的XML文档进行DTD检查,判断XML文档内容是否为有效的XML文档内容
为什么使用 DTD:1、验证接收到的数据是否有效 2、 用于验证自己的数据 3、定义 XML 文档的合法构建块 4、使用一系列合法元素来定义文档结构
使用DTD的好处:1、用DTD提供统一格式2、用DTD验证数据有效性3、根据DTD编写文档样式单
DTD文档有如下结构:
第1行是DTD声明部分,该声明与XML声明的语法相同0到多个注释部分,DTD注释与XML注释的语法完全相同
0到多个<!ELEMENT….>定义,每个<!ELEMENT….>定义一个XML元素
0到多个<!ATTLIST….>定义,每个<!ATTLIST….>定义一个XML元素定义了一个属性
0到多个<!ENTITY….>定义,每个<!ENTITY….>定义一个实体
0到多个<!NOTATION….>定义,每个<!NOTATION….>定义一个符号
元素声明以“<!”开始,以“>”结束
元素声明指令“ELEMENT”为关键字,必须大写
元素名:为当前元素指定的元素名称
元素内容: 元素名后面的内容用来指定元素的内容类型,它可以分为EMPTY(空)、子元素类型,混合型、ANY(任意)和#PCDATA 5种类型。
ANY是DTD中使用很频繁的一个关键字,特别是对于文档根元素的声明。
注意:
#PCDATA必须放在最前面
#PCDATA和各子元素之间只能用竖线(|)分割
子元素1,子元素2和子元素3之间的竖线(|)并不是表示互斥,而只是表 示这些元素能无序的重复出现,而且次数不受限制
不要试图在各个子元素之后添加?,*。+等表示频率的修饰符
互斥的子元素表明一系列子元素之间只能出现其中一次。互斥子元素使用竖线(|)分隔,以竖线(|)分隔的多个元素只能出现其中之一。
+: 表明子元素可以出现1次或多次
*: 表明子元素可以出现0次或多次
?: 表明子元素可以出现0次或1次
CDATA 只为字符串数据
(en|en2|…)此值是枚举列表中的一个值
ID该属性值必须是有效地标识符,在XML文档时唯一的
IDREF值为另外一个元素的 id属性值
IDREFS值必须引用自多个已经有的ID属性值,多个ID属性值用空格隔开
NMTOKEN值为合法的 XML 名称
NMTOKENS值为多个合法的 XML 名称的列表ENTITY值是一个外部实体,如图片支持
ENTITIES值是一个实体列表,多个实体之间以空格隔开
NOTATION该属性值是在DTD中声明过的符号,这个是过期的,不要使用
DTD是XML文件的验证机制,定义好DTD,就可以使用XML解析器对编写好的XML文档进行DTD检查,判断XML文档内容是否为有效的XML文档内容
为什么使用 DTD:1、验证接收到的数据是否有效 2、 用于验证自己的数据 3、定义 XML 文档的合法构建块 4、使用一系列合法元素来定义文档结构
使用DTD的好处:1、用DTD提供统一格式2、用DTD验证数据有效性3、根据DTD编写文档样式单
DTD文档有如下结构:
第1行是DTD声明部分,该声明与XML声明的语法相同0到多个注释部分,DTD注释与XML注释的语法完全相同
0到多个<!ELEMENT….>定义,每个<!ELEMENT….>定义一个XML元素
0到多个<!ATTLIST….>定义,每个<!ATTLIST….>定义一个XML元素定义了一个属性
0到多个<!ENTITY….>定义,每个<!ENTITY….>定义一个实体
0到多个<!NOTATION….>定义,每个<!NOTATION….>定义一个符号
元素声明以“<!”开始,以“>”结束
元素声明指令“ELEMENT”为关键字,必须大写
元素名:为当前元素指定的元素名称
元素内容: 元素名后面的内容用来指定元素的内容类型,它可以分为EMPTY(空)、子元素类型,混合型、ANY(任意)和#PCDATA 5种类型。
ANY是DTD中使用很频繁的一个关键字,特别是对于文档根元素的声明。
注意:
#PCDATA必须放在最前面
#PCDATA和各子元素之间只能用竖线(|)分割
子元素1,子元素2和子元素3之间的竖线(|)并不是表示互斥,而只是表 示这些元素能无序的重复出现,而且次数不受限制
不要试图在各个子元素之后添加?,*。+等表示频率的修饰符
互斥的子元素表明一系列子元素之间只能出现其中一次。互斥子元素使用竖线(|)分隔,以竖线(|)分隔的多个元素只能出现其中之一。
+: 表明子元素可以出现1次或多次
*: 表明子元素可以出现0次或多次
?: 表明子元素可以出现0次或1次
CDATA 只为字符串数据
(en|en2|…)此值是枚举列表中的一个值
ID该属性值必须是有效地标识符,在XML文档时唯一的
IDREF值为另外一个元素的 id属性值
IDREFS值必须引用自多个已经有的ID属性值,多个ID属性值用空格隔开
NMTOKEN值为合法的 XML 名称
NMTOKENS值为多个合法的 XML 名称的列表ENTITY值是一个外部实体,如图片支持
ENTITIES值是一个实体列表,多个实体之间以空格隔开
NOTATION该属性值是在DTD中声明过的符号,这个是过期的,不要使用
相关文章推荐
- 宋利兴_09_28_XML笔记
- IOS学习笔记27—使用GDataXML解析XML文档
- IOS学习笔记27—使用GDataXML解析XML文档
- IOS学习笔记27—使用GDataXML解析XML文档
- IOS学习笔记27—使用GDataXML解析XML文档
- 【09-27】Spring 学习笔记
- IOS学习笔记27—使用GDataXML解析XML文档
- 2012、09、27 听课笔记
- 【iOS学习笔记 15-09-27】iOS中的MVC设计模式
- IOS学习笔记27—使用GDataXML解析XML文档
- IOS学习笔记27—使用GDataXML解析XML文档
- IOS学习笔记27—使用GDataXML解析XML文档
- javascript笔记09:javascript的下拉式导航菜单
- 电商项目笔记之三:xml配置action的验证
- 【慕课笔记】3-2 应用SAX方式解析XML—使用SAX解析XML文件的节点属性
- XML基础之一(观看张孝祥老师的XML视频后做的笔记)
- Qt模块化笔记之core——认识XML可扩展标记语言
- XML可扩展标记语言 -- 学习笔记一
- 09暑假笔记(7)-mediawiki中有些文件不能上传的问题
- XML学习笔记(二): 在XML文档的元素间移动(Moving Between Elements)