XML之文档类型定义

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

DTD Document Type Definition 文档类型定义。我们在XML中可以自定义标记,那XML解析器怎么认识这些自定义标记并根据自定义标记的处理法则来处理元素呢?这需要DTD,它是我们用来定义我们自己定义的标记的含义,我们自己定义元素的相关属性的文档。

DTD与XML是类与对象,数据库表结构与记录的关系。

符合XML规则(包括必须有XML声明语句;必须有且只有一个根元素;标记大小写敏感;属性值用引号;标记成对,空标记关闭;元素正确嵌套)的XML文档称为结构完成的XML文档;符合XML规则并且符合DTD验证的XML文档称为合法的XML文档。IE只验证结构完整性不验证合法性,XMLSPY验证合法性。

DTD分类:内部DTD;外部DTD;内外结合的DTD。

外部DTD的优点:被多个XML共享,保持统一的数据交换格式,不同组织的人使用同一个通用的DTD来交换数据;应用程序可以使用一个标准DTD效验从外部世界接受来的XML数据是否有效。

下面是一个lsmx.dtd

<?xml version="1.0" encoding="GB2312"?>

<!ELEMENT 家庭 (人+, 家电*)>

<!ELEMENT 人 (#PCDATA)>

<!ELEMENT 家电 EMPTY>

<!ATTLIST 人

名字 CDATA #REQUIRED

性别 (男 | 女) #REQUIRED

年龄 CDATA #REQUIRED

爱好 CDATA #IMPLIED

>

<!ATTLIST 家电

名称 CDATA #REQUIRED

数量 CDATA #REQUIRED

说明 CDATA #IMPLIED

>

元素定义

<!ELEMENT NAME CONTENT>

关键字 元素名称 元素类型

元素类型

1, EMPTY:空元素,但可以有属性。<mytag id=”001”/>。

2, ANY:含任何DTD中定义的元素内容。

3, #PCDATA:纯文本,不能有任何自元素。<!ELEMENT 人 (#PCDATA)>。

4, 组合类型:<!ELEMENT 家庭 (人+, 家电*)>。

符号含义:+最少出现一次;*可以出现任意次,包括0次;?出现0或一次;(a,b,c)a,b,c必须出现,并且按指定位置出现。

属性定义

<!ATTLIST 元素名称

属性名称 属性类型 属性特点

··········

>

属性类型:

1, CDATA:只包含字符数据。

2, ID:类似主键,必须唯一。

3, NMTOKEN 不包含中文的CDATA。

4, 枚举 事先定义好一些值,该属性的值必须匹配列出的这些数值。

性别 (男 | 女) #REQUIRED。

属性特点:

1,#REQUIRED NOTNULL 非空。

2,#IMPLIED 可写可不写。

3,#FIXED value 固定值,不可变。

属性名 CDATA #FIXED“固定值”

5, Default value 默认值

实现:

<?xml version="1.0" encoding="GB2312"?>

<!DOCTYPE 家庭 SYSTEM "lsmx.dtd">

<家庭>

<人 名字="郭大路" 性别="男" 年龄="25"/>

<人 名字="李寻欢" 性别="男" 年龄="38" 爱好="作个教育家和伟人"/>

<家电 名称="彩电" 数量="3"/>

</家庭>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航