XML中的DTD约束
2017-06-10 11:11
176 查看
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学习笔记2--DTD约束
- 【XML系列】----DTD约束(一)
- javaWeb(1)-XML及DTD约束条件学习
- XML的dtd与Schema约束
- xml的约束文档,dtd
- javaweb-day01-3(XML 的 dtd 约束)
- XML的约两种约束——DTD、Schema
- JAVAEE--XML语言和DTD约束和解析xml文件方式DOM4J
- XML约束技术-DTD约束
- xml约束之dtd约束和schema约束---3
- XML 的 约束 :DTD 、 Schema
- XML文档数据库--DTD约束简单演示
- xml中dtd约束
- 黑马训练营 -----XML语法与DTD,Schema约束
- Java_xml_dtd约束规范实例
- XML约束之DTD
- XML DTD约束
- XML约束——DTD
- xml约束之dtd约束和schema约束---3
- xml约束之---DTD