XML学习总结(二)
来源:互联网 发布:制冷系统设计软件 编辑:程序博客网 时间:2024/05/16 00:44
一,DTD概述
DTD (Document Type Define)就是要定义标记语言,这里是定义XML ,因为XML允许我们自己定义标记,那么标记的含义是什么?这就需要我们定义,我们可以认为DTD就是定义标记语言的语言。
<?xml version="1.0"?>
<email>
<from>abc@yahoo.com.cn</from>
<to>def@yahoo.com.cn</to>
<time>2009/2/14</time>
</email>
以上的一个简单的xml程序,符合xml的语法规范,但是里面的标记全部是自己定义的,这些标记的含义只有程序员自己清楚,如何让计算机和别人也知道?这就需要我们使用DTD语言编写DTD文档。
一个没有DTD文档定义的XML文件只是一个良构(well-formed)文件,如果加上DTD文档,并且XML上的标记符合DTD上的定义,我们就称这个XML是一个合法的XML文件。
<?xml version="1.0"?>
<!ELEMENT email(from,to,time)>
<!ELEMENT from(#PCDATA)>
<!ELEMENT to(#PCDATA)>
<!ELEMENT time(#PCDATA)>
以上的DTD文档定义了XML的跟标记,以及类型
一个标记语言由三部分组成:标记的声明;实体的声明;属性的指定和声明,下面就以上几个方面来看DTD是如何定义的。
二,标记的声明
DTD的声明可以放在XML文档内和文档外,格式有所区别。
A: 内部DTD的声明例子:
<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE person[
<!ELEMENT person(#PCDATA)>
]>
<person>lee</person>
几点说明:
1,添加文档类型声明
<!DOCTYPE person[
]>这里person是根标记,这是文档类型声明的格式,根标记的声明是必不可少的
2,元素定义的语句
<!ELEMENT person(#PCDATA)> 该语句的作用是声明一个元素,名字叫<person>,数据类型是PCDATA(可解析的数据类型,通常是文本数据)
如果元素有嵌套,则在后面用()说明元素的顺序
<!ELEMENT person(name,addr)> 说明person嵌套有子元素name和addr并且顺序一定要依照声明的顺序,接着就是声明name和addr的类型等。
如果一开始我们并不知道是否有子元素或者子元素的情况不清楚,则用关键字ANY
<!ELEMENT person ANY>
B:外部DTD的声明例子:
DTD文档:lee.dtd
<?xml version="1.0"?>
<!ELEMENT person(#PCDATA)>
XML文档:
<?xml version="1.0" encoding="gb2312" standalone="no"?>
<!DOCTYPE person SYSTEM "lee.dtd">
<person>lee</person>
内部DTD和外部DTD的区别:
其实没有根本的区别,在使用外部DTD的时候需要加上路径和DTD文件名,以及在根标记的后面多了一个DTD说明参数
SYSTEM:说明这个DTD是一份私人的文档类型定义,即将来要用在一个小群体中使用。
PUBLIC:说明DTD是公共DTD,一些应用程序在开发的时候就提前将这部分DTD文档集成到自己的DTD库中,以便随时使用
- XML学习总结(二)
- XML总结(二)
- JavaWeb学习总结(二)——XML文件读取
- mybatis学习总结-核心配置文件mybatis-config.xml(二)
- mybatis学习总结-核心配置文件mybatis-config.xml(二)
- XML学习总结-XPATH技术-(二)
- XML总结(二)Schema
- XML使用总结(二)
- XML学习总结(二)——XML入门
- 学习总结(二)
- 学习总结(二)
- XML Schema学习(二)
- XML学习笔记(二)
- XML学习(二)DTD
- XML学习基础(二)
- XML入门学习(二)
- XML的学习(二)
- XML学习笔记(二)
- 情人节快板
- 我的实习日记(二)——实体类、对象、配置文件
- 硬盘安装Ubuntu,硬件分区解决方法
- XML学习总结(一)
- 无线AP组网方案
- XML学习总结(二)
- .net 分布式系统
- ABAP 学习
- 序
- 第三章 文件I/O (一)
- ABAP 学习网址
- 第三章 文件I/O (二)
- [双语阅读]另类情人节:去动物园体会“狂野之爱”
- 第三章 文件I/O (三)