XML中的DTD约束
来源:互联网 发布:怎么克服懒惰 知乎 编辑:程序博客网 时间:2024/06/06 03:01
1.1 DTD的入门案例
1.1.1 为什么要有约束 (DTD)?
XML都是用户自定义的标签,若出现小小的错误,软件程序将不能正确地获取文件中的内容而报错。(如:Tomcat)
XML技术中,可以编写一个文档来约束一个XML的书写规范,这个文档称之为约束
1.1.2 如何使用DTD约束文件?
1. 编写DTD文件
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT 书架(书+)>
<!ELEMENT 书 (书名,作者,售价)>
<!ELEMENT 书名 (#PCDATA)>
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 售价 (#PCDATA)>
2. 在xml文件中引入DTD文件
<!DOCTYPE 书架 SYSTEM "book.dtd">
引入了写好的DTD文件后, 格式就必须跟DTD文件保持一致
1.2 DTD的细节
1.2.1 语法细节
在DTD文档中使用ELEMENT关键字来声明一个XML元素。
• 语法:<!ELEMENT 元素名称 使用规则>
使用规则:
• (#PCDATA):指示元素的主体内容只能是普通的文本.(Parsed Character Data)
• EMPTY:用于指示元素的主体为空。比如<br/>
• ANY:用于指示元素的主体内容为任意类型。
• (子元素):指示元素中包含的子元素
• 定义子元素及描述它们的关系:
– 如果子元素用逗号分开,说明必须按照声明顺序去编写XML文档。
• 如: <!ELEMENT FILE (TITLE,AUTHOR,EMAIL)
– 如果子元素用"|"分开,说明任选其一。
• 如:<!ELEMENT FILE (TITLE|AUTHOR|EMAIL)
– 用+、*、?来表示元素出现的次数
• 如果元素后面没有+*?:表示必须且只能出现一次
• +:表示至少出现一次,一次或多次
• *:表示可有可无,零次、一次或多次
• ?:表示可以有也可以无,有的话只能有一次。零次或一次
1.2.2 定义属性
• 在DTD文档中使用ATTLIST关键字来为一个元素声明属性。
• 语法:
<!ATTLIST 元素名
属性名1 属性值类型 设置说明
属性名2 属性值类型 设置说明
…
>
• 属性值类型:
– CDATA:表示属性的取值为普通的文本字符串
– ENUMERATED (DTD没有此关键字):表示枚举,只能从枚举列表中任选其一,如(鸡肉|牛肉|猪肉|鱼肉)
– ID:表示属性的取值不能重复
• 设置说明
– #REQUIRED:表示该属性必须出现
– #IMPLIED:表示该属性可有可无
– #FIXED:表示属性的取值为一个固定值。语法:#FIXED "固定值"
直接值:表示属性的取值为该默认值
1.2.3 实例代码1
<!ATTLIST商品
类别 CDATA #REQUIRED
颜色 CDATA #IMPLIED
>
<?xml version = "1.0" encoding="GB2312" standalone="yes"?>
<商品类别="服装"颜色="黄色" />
1.2.4 实例代码2
<?xml version = "1.0" encoding="GB2312" standalone="yes"?>
<!DOCTYPE购物篮 [
<!ELEMENT购物篮 (肉+)>
<!ELEMENT肉 EMPTY>
<!ATTLIST肉 品种 ( 鸡肉 | 牛肉 | 猪肉 | 鱼肉 ) "鸡肉">
]>
<购物篮>
<肉 品种="鱼肉"/>
<肉 品种="牛肉"/>
<肉/>
</购物篮>
- XML中的DTD约束
- XML约束--DTD约束
- xml编写中的DTD约束与schema约束中的语法
- xml DTD约束
- Xml约束---dtd
- xml中dtd约束
- xml约束-----dtd
- xml DTD约束
- xml引用dtd约束
- XML约束文档DTD
- XML DTD约束
- xml DTD约束
- xml约束之---DTD
- XML约束之DTD
- XML约束之DTD
- [xml]DTD & Schema 约束
- XML与DTD约束
- xml-DTD约束
- Java反射内部类
- Query Mobile 表单滑动条
- 自定义Android Studio方法注释模板
- 'keytool' 不是内部或外部命令,也不是可运行的程序
- OkHttp之BridgeInterceptor简单分析
- XML中的DTD约束
- 2017it技术人员都该参加这些会议
- KMP的简单实现
- **ANDROID**# 第七章图形与图像处理(静态处理) > Bitmap是有像素点构成的点阵图。 ------ ## 使用简单的图片 ---- * 通过Drawable对象进行访问。
- Flume和Logstash的那些事儿
- 成为Java顶尖程序员 ,看这11本书就够了
- Java 容器知识点(简)
- 深入探究connect函数
- jsp隐式对象