没有合适的资源?快使用搜索试试~ 我知道了~
首页DTD(XML文档类型定义)教程
资源详情
资源评论
资源推荐

DTD 的定义
XML 的精髓是什么呢?
就是我们基于信息描述的、能够体现数据信息之间逻辑关系的、可
以确保文件的易读性和易搜索性的自定义标记!
你的 XML 文件遵循所谓“形式良好”要求的种种语法规则,这只是“万
里长征走了第一步”。一个完全意义上的 XML 文件不仅应该是“形式良好
的”,而且还应该是使用了这些自定义标记的“有效”的 XML 文件。
一个“有效的”文件首先应该是“形式良好”的。但这还远远不够,它还
要往前更进一步。
一个 XML 文件必须遵守文件类型描述 DTD ( Document Type
Definition )中定义的种种规定。 DTD 实际上是“元标记”这个概念的产物
,它描述了一个置标语言的语法和词汇表,也就是定义了文件的整体结构
以及文件的语法。简而言之, DTD 规定了一个语法分析器为了解释一个“
有效的” XML 文件所需要知道的所有规则的细节。

这个“规则”可以非常简单,仅仅列出所有有效的元素,例如元素
、标记、属性、实体;也可以非常复杂,不但列出这些元素,还指出
这些元素之间的内在联系,例如说明元素 X 元素中必须还包含元素 Y
或元素 Z ,但不能同时包含两个元素。
一般习惯里,除非使用中文标记,否则我们或者全部都使用大
写字母,或者象在 VC 中常用的那样,元素名字的第一个字母是大写
,后面每个单词的第一个字母为大写,如 BookList ;属性字母的第一
个字母为小写,但后面每个单词的第一个字母仍都采用大写,如
listAuthor 。
在 XML 所描述的置标语言中, DTD 便提供了语法规定,以便
给各个语言要素赋予一定的顺序。为了说明特定的语法规则, DTD 采
用了一系列正则式,语法分析器将这些正则式与 XML 文件内部的数据
模式相匹配,从而判别一个文件是否是有效的。匹配被严格执行,因
此,如果 XML 文件中有任何信息不符合 DTD 的规定,都不会通过。
DTD 的作用

内部 DTD
正如我们前面所提到的,所有的文件都是由序言和文件体构成的
。序言中包含了 XML 声明,而文件体中则是具体的数据信息,还可以
含有一些处理指示。实际上,我们在前面隐掉了重要的一点:
在序言中还可以包含 DTD 定义。
最简单的使用 DTD 的方法是在 XML 文件的序言部分加入一个 DTD 描
述,加入的位置是紧接在 XML 处理指示之后。一个包含 DTD 的 XML
文件的结构为:
<?xml version = "1.0" encoding="GB2312" standalone = "yes"?>
<!DOCTYPE 根元素名 [
元素描述
]>
文件体 .......
这样,我们就定义了一个文件,它以 DOCTYPE 中规定的根元素
名作为其根元素的名字。

client.xml
<?xml version = "1.0" encoding="GB2312"
standalone = "yes"?>
<!DOCTYPE 联系人列表 [
<!ELEMENT 联系人列表 ( 联系人 )>
<!ELEMENT 联系人 ( 姓名 ,ID, 公
司 ,EMAIL, 电话 , 地址 )>
<!ELEMENT 地址 ( 街道 , 城市 , 省份 )>
<!ELEMENT 姓名 (#PCDATA)>
<!ELEMENT ID (#PCDATA)>
<!ELEMENT 公司 (#PCDATA)>
<!ELEMENT EMAIL (#PCDATA)>
<!ELEMENT 电话 (#PCDATA)>
<!ELEMENT 街道 (#PCDATA)>
<!ELEMENT 城市 (#PCDATA)>
<!ELEMENT 省份 (#PCDATA)>
]>
<?xml-stylesheet type="text/xsl" href="mystyle.xsl"?
>
< 联系人列表 >
< 联系人 >
< 姓名 > 张三 </ 姓名 >
<ID>001</ID>
< 公司 >A 公司 </ 公司 >
<EMAIL>zhang@aaa.com</EMAIL>
< 电话 >(010)62345678</ 电话 >
< 地址 >
< 街道 > 五街 1234 号 </ 街道 >
< 城市 > 北京市 </ 城市 >
< 省份 > 北京 </ 省份 >
<ZIP>100001</ZIP>
</ 地址 >
</ 联系人 >
< 联系人 >
< 姓名 > 李四 </ 姓名 >
<ID>002</ID>
< 公司 >B 公司 </ 公司 >
<EMAIL>li@bbb.org</EMAIL>
< 电话 >(021)87654321</ 电话 >
< 地址 >
< 街道 > 南京路 9876 号 </ 街道 >
< 城市 > 上海 </ 城市 >
< 省份 > 上海 </ 省份 >
<ZIP>200002</ZIP>
</ 地址 >
</ 联系人 >
</ 联系人列表 >
内内 DTD

外部 DTD
一个 DTD 既可以是内部的,包含在一个“形式良好
的” XML 文件中( standalone=“yes” ),采用前面一节中的形
式;也可以是外部的,作为一个外部文件被引用
( standalone=“no” )。
外部 DTD 的好处是:它可以方便高效地被多个 XML 文
件所共享。你只要写一个 DTD 文件,就可以被多个 XML 文件
所引用。事实上,当许多组织需要统一它们的数据交换格式时
,它们就是通过外部 DTD 来完成的。这样做不仅简化了输入
工作,还保证当你需要对 DTD 做出改动时,不用一一去改每
个引用了它的 XML 文件,只要改一个公用的 DTD 文件就足够
了。不过需要注意,如果 DTD 的改动不是“向后兼容”的,这时
原先写的那些 XML 文件可能就会出问题
剩余63页未读,继续阅读









安全验证
文档复制为VIP权益,开通VIP直接复制

评论3