1.DTD简介
全称Document Type Definition 文件类型定义
(1)定义XML文件的结构
(2)为XML文件提供语法与规则
(3)内容既可以定义在XML文件中也可以定义在XML文件之外
(4)使用XML进行数据交换的行业或组织可定义自己的DTD
(4)DTD对于XML是可选的内容
2.命名空间
在一个XML文档中,包含由多个DTD描述的元素。会出现名称冲突问题
为了解决名称冲突问题,W3C的XML小组制定了被称为命名空间(NameSpace) 的标准
3.属性
(1)属性的默认值
值 | 解释 |
---|---|
#REQUIRED | 属性的默认值是必须的 |
#IMPLIED | 属性的默认值不是必须的 |
#FIXED value | 属性的默认值是固定的 |
(2)属性的类型
类型 | 描述 |
---|---|
CDATA | 值为字符数据(character data) |
(en1 | en2 |
ID | 值唯一的id |
IDREF | 值为另一个元素的id |
IDREFS | 值为其他id的列表 |
NMTOKEN | 值为合法的XML名称 |
NMTOKENS | 值为合法的XML名称的列表 |
ENTITY | 值是一个实体 |
ENTITIES | 值是一个实体列表 |
NOTATION | 此值是符号的名称 |
xml: | 值是一个预定的XML值 |
4.元素
空元素通过关键词EMPTY进行声明:
<!ELEMENTY元素名称EMPTY>DTD中:<!ELEMENT br EMPTY>
XML中:<br/>
5.XML内置DTD和外置DTD
(1)XML内置DTD内容
<?xml version="1.0" encoding="utf 8"?>
<!DOCTYPE书籍列表[
<NELEMENT书籍列表(计算机书籍)*>
<!ELEMENT计算机书籍(书名,价格,简要介绍)>
<!ELEMENT书名(#PCDATA)>
<IELEMENT价格(#PCDATA)>
<IELEMENT简要介绍(#PCDATA)>]>
<书籍列表>
<计算机书籍>
<书名>XML的今生今世</书名>
<价格> 66.66</价格>
<简要介绍>
该书详细描写XML的从出生到衰老的整个过程
</简要介绍>
</计算机书籍>
</书籍列表>
(2)外部DTD
每个XML文档单独定义的DTD可推广为一个系统内共享的公用DTD;
关键字SYSTEM用于引用一个作者或组织所编写的众多XML文档中通用的DTD;
另一种外部DTD,一个由权威机构制定的,提供给特定行业或公众使用的DTD。关键字是PUBLIC.
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"http:p/java. sun com/dtd/web-app 2 3.dtd">
(3)外部DTD
DTD与XML的内容分别在不同的文件中
DTD文件book. dtd :
<?xml version="1.0"encoding="utf-8"?>
<!ELEMENT书籍列表(计算机书籍)*>
<IELEMENT计算机书籍(书名,价格,简要介绍)>
<!ELEMENT书名(#PCDATA)><!ELEMENT价格(#PCDATA)>
<!ELEMENT简要介绍(#PCDATA)>
使用外部DTD文件的XML文件
<?xml version="1.0" encoding- " utf-8" >
<!DOCTYPE书籍列表SYSTEM "book.dtd'>
6.为什么要使用DTD
为了正确交换数据,XML文件需要确定的结构例如:
<student>
< name>小宅</name>
<number> 2966556</number><student>
//一个<student标签只能包含一个<name>和<number>标签