DTD基础
来源:互联网 发布:foobar2000 for mac 编辑:程序博客网 时间:2024/05/27 00:52
DTD定义:Document Type Definition,全称为文档类型定义。
DTD的引用:XML文件使用 DOCTYPE 声明语句来指明它所遵循的DTD文件,DOCTYPE声明语句有两种形式:
(1)外部引入
可以将dtd的约束内容写在外置的dtd文件中,这个文件后缀必须为.dtd而文件保存时必须用utf-8编码保存,再在xml文件中使用
<!DOCTYPE 根元素名称 SYSTEM文件的位置>
如果写的是SYSTEM表明当前引入的dtd在当前文件系统中,后面制定的文件位置是当前硬盘中的位置
<!DOCTYPE 文档根结点 PUBLIC "DTD名称" "DTD文件的URL">
如果写的是PUBLIC表明当前引入的dtd在网络公共位置中,后面要指明dtd的名字和dtd所在网络位置URL地址
(2)内部引入
直接在xml中书写dtd
<!DOCTYPE 根元素名称[
dtd约束....
]>
DTD语法:
1.元素约束:
<!ELEMENT元素名称元素约束>
存放类型约束: ANY/EMPTY
元素内容约束:
子元素的列表,将可以包含的子元素用小括号括起来
如:<!ELEMENT书架 (书名,作者,售价)>
子元素之间可以使用逗号进行分割,表明子元素必须按照顺序出现
子元素之间可以使用竖线进行分割,表面子元素出现其中之一
#PCDATA 表明包含标签体
如:<!ELEMENT书名 (#PCDATA)>
+ 表示一次或多次
* 表示0次或多次
? 表示0次或一次
也可以使用小括号进行组的操作
2.属性约束:
<!ATTLIST 元素名
属性名 属性类型 属性约束
属性名2 属性类型 属性约束
......
>
属性约束:
#REQUIRED --- 表明当前属性是一个必须存在的属性,如果这样的属性不存在则在校验时会报错
#IMPLIED --- 表明当前属性是一个可选的属性,可以有也可以没有
#FIXED('固定值')--- 表明当前属性具有一个固定值,这样的属性不需要进行赋值,自动就会取这个固定值为值.如果这样的属性指定了一个不是固定值的值则校验报错
' 默认值' --- 表明当前属性具有一个默认值,如果给了其他的值就用其他值,如果没有给值则取这个默认值
属性类型:
CDATA:表示属性的值是一个普通字符串
ENUMERATED: 属性的值是一个枚举列表中的值
ID: 表明属性的值必须在整个文档中都是唯一的,如果有重复的id则校验不通过,ID 属性的值只能由字母,下划线开始,不能使用数字,不能出现空白字符
3.ENTITY(实体)
<!ENTITY >,就是对一大段内容的引用,可以简化代码的复用
引用实体:在xml中引用的实体叫做引用实体
<!ENTITY 实体名称 “实体内容” >
使用方式:&实体名称;
参数实体:在dtd中引用的实体叫做参数实体
<!ENTITY % 实体名称 "实体内容">
使用方式:%实体名称;
例:<!ENTITY % TAG_NAMES "姓名 | EMAIL | 电话 | 地址">
<!ELEMENT 个人信息 (%TAG_NAMES; | 生日)>
<!ELEMENT 客户信息 (%TAG_NAMES; | 公司名)>
- DTD基础
- DTD基础
- xml基础 DTD
- xml基础--DTD
- XML,DTD基础学习
- XML语言基础2 DTD
- DTD、
- DTD
- DTD
- DTD
- dtd
- DTD
- DTD
- DTD
- DTD
- dtd
- DTD
- DTD
- JDBC驱动下载汇总
- Linux bash Tips & Tricks (2)
- C++ const 的全面总结
- 安卓笔记android 导入第三方包
- mkfs -t ext3 错误/dev/sdxx is apparently in use by the system; 解决方法
- DTD基础
- Linux 日期和时间的那些事儿
- nginx listen监听套接字
- 安卓笔记android 图片缓存 LurCache 值得注意的几点
- HDU-IMNU集训六:奇数阶魔方-纯模拟
- HDU 4539 郑厂长系列故事――排兵布阵
- 自定义tabbarView
- 20150123 【 Linux-C 文件目录操作 】 统计代码行数
- 进入公司第九、十个月