标题: 3.1.1.2 内部DTD
hinet
荣誉会员
Rank: 1



荣誉会员奖章
UID 46695
精华 0
积分 2412
帖子 1189
威望 0
金币 1158
热心 26
阅读权限 50
注册 2007-2-25
状态 离线
3.1.1.2 内部DTD

3.1.1.2 内部DTD
   

在正式学习DTD的定义方法之前,我们先来看一下定义应该放在文件的什么地方。
正如我们前面所提到的,所有的文件都是由序言和文件体构成的。序言中包含了XML声明,而文件体中则是具体的数据信息,还可以含有一些处理指示。实际上,我们在前面隐掉了重要的一点:在序言中还可以包含DTD定义。
最简单的使用DTD的方法是在XML文件的序言部分加入一个DTD描述,加入的位置是紧接在XML处理指示之后。一个包含DTD的XML文件的结构为:

<DOCTYPE 根元素名[    ]>
文件体.......
这样,我们就定义了一个文件,它以DOCTYPE中规定的根元素名作为其根元素的名字。
回忆一下,在第一章中我们曾经举过一个包含客户联系方式信息的XML文件。在这个例子中,我们可以在序言中如下加入DTD定义:

<DOCTYPE 联系人列表[    ]>

一个完整的XML文件为:
client.xml

<DOCTYPE 联系人列表[        <ELEMENT 联系人 (姓名,ID,公司,EMAIL,电话,地址)>
        <ELEMENT 地址 (街道,城市,省份)>
        <ELEMENT 姓名 (#PCDATA)>
        <ELEMENT ID (#PCDATA)>
        <ELEMENT 公司 (#PCDATA)>
        <ELEMENT EMAIL (#PCDATA)>
        <ELEMENT 电话 (#PCDATA)>
        <ELEMENT 街道 (#PCDATA)>
        <ELEMENT 城市 (#PCDATA)>
        <ELEMENT 省份 (#PCDATA)>
    ]>

<联系人列表>
  <联系人>
    <姓名>张三
    001
    <公司>A公司
    zhang@aaa.com
    <电话>(010)62345678
    <地址>
      <街道>五街1234号
      <城市>北京市
      <省份>北京
   
  
  <联系人>
    <姓名>李四
    002
    <公司>B公司
    li@bbb.org
    <电话>(021)87654321
    <地址>
      <街道>南京路9876号
      <城市>上海市
      <省份>上海
   
  

不过,如果为每一个XML文件加入一段DTD定义,是相当繁琐的。而且,更多的情况下,我们会为一批XML文件定义一个相同的DTD。例如,对于报社中的每篇稿件,它们都有相同的格式,可以采用一个统一的DTD,为每一篇单独定义既麻烦,又不利于统一格式。好在XML规范为我们提供了解决这个问题的方法,它就是外部DTD。

顶部
[广告] 免费域名(Free Subdomain) 免费空间(Free hosting) PR查询(Google Pagerank)



当前时区 GMT+8, 现在时间是 2008-9-9 01:53
信产部ICP备案:京ICP备05066424号 北京市公安局网监备案:1101050648号

Powered by Discuz! 5.5.0
清除 Cookies - 联系我们 - 网友俱乐部 - Archiver - WAP