软件下载 | 资讯教程 | 最近更新 | 下载排行 | 一键转帖 | 发布投稿
您的位置:最火下载站 > Web前端 > 工具与技巧 > 文档类型定义(DTD)的语法介绍与使用

文档类型定义(DTD)的语法介绍与使用

  烈火建站学院文档 文档类型定义(DTD)是用来定义一段合法的XML文档块。它用来验证你的XML文档是以一系列合法的元素构成的。
 DTD可以在XML文档内部定义,也可以在通过外部文件的方式引入
   1 内部声明方式
   如果要把DTD包含在你的XML的内部,需要以以下的语法包含一个“DOCTYPE”声明:
以下为引用的内容:
 <!DOCTYPE 根元素 [子元素声明]>
 下面是一个包含DTD的XML例子:
<?xml version="1.0"?>
<!DOCTYPE note [
  <!ELEMENT note (to,from,heading,body)>
  <!ELEMENT to      (#PCDATA)>
  <!ELEMENT from    (#PCDATA)>
  <!ELEMENT heading (#PCDATA)>
  <!ELEMENT body    (#PCDATA)>
]>
<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend</body>
</note>
The DTD above is interpreted like this:

  以上的DTD声明解释如下:
  第二行!DOCTYPE note声明这是一个note类型的文档
  第三行!ELEMENT note声明note元素包含四个子元素:to,from,heading,body
  第四行的!ELEMENT to声明to元素的类型是“#PCDATA”
  第五行的!ELEMENT from声明from元素的类型是“#PCDATA”
  以此类推... ...
  2 外部DOCTYPE声明
  If the DTD is external to your XML source file, it should be wrapped in a DOCTYPE definition with the following syntax:
  如果DTD是在XML源文件的外部,就需要在XML文件内用以下的语法声明DOCTYPE
以下为引用的内容:
<!DOCTYPE 根元素 SYSTEM "文件名">
以下是一个使用外部DOCTYPE声明的XML例子
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note> 
以下是note.dtd 文件的内容:
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>

  3 为什么要使用DTD
  With DTD, each of your XML files can carry a description of its own format with it.
  使用DTD,有以下好处:
  1,你的每一个XML文件可以描述自身的结构
  2,使不相关的人对于某种用于交流的数据达成统一的共识
  3,你的应用程序可以通过一个标准(DTD)对来自于外部的数据(XML文件)进行有效性验证。当然你也可以用它来验证你自己的数据

  二,DTD-XML构造块
  The main building blocks of both XML and HTML documents are tags like <body>....</body>.
  XML和HTML文档的主要构造块都是像“<body>....</body>”这样的标签
  1,XML文档的构造块
  Seen from a DTD point of view, all XML documents (and HTML documents) are made up by the following simple building blocks:
  从一个DTD的视角出发,所有的XML文档(包括HTML文档)是以下几种简单的构造块构成的:
  Elements
  Attributes
  Entities
  PCDATA
  CDATA
  以下是对每个构造块的简要的解释:
  1,Elements(元素)
  Elements are the main building blocks of both XML and HTML documents.
  元素是主要的XML和HTML文档的构造块
  在HTML中常见的有"body","table";而在XML中,元素可能是“note”,“message”。
  元素可以包含文本,其他元素或者为空。例如空的HTML元素有hr,br和img;
  例子:

以下为引用的内容:
<body>body text in between</body><message>some message in between</message>

  2,Attribute(属性)
  属性为元素提供了额外的信息
  属性总是被放置在一个元素的起始标记中,以名值对的方式出现。下面是一个包含图片来源的img元素的例子
  <img src="computer.gif" />
  元素名是“img”,属性名是“src”,值是“computer.gif”.
  3,Entities (实体)
  实体是用来定义通用文本的变量。实体引用是对实体的引用(译者注:好废的话啊,原文是“Entity references are references to entities.”)
  你最有可能知道的HTML实体引用是“&nbsp;”,这是用在HTML中的“不换行的空格”实体。
  以下是XML中预定义的实体:
  实体引用  代表字符
以下为引用的内容:
&lt;         <
&gt;         >
&amp;        &
&quot;       "
&apos;       '

  4,PCDATA
  PCDATA的意思是可解析的字符数据。
  可以把“字符数据”看成是在一个XML元素的开始标签和结束标签之间的文本。
  PCDATA是将会被一个解析器解析的文本。在这个文本中的标签会被当作标记和实体而继续被展开(译者注:就是说如果文本中包含有tag,解析  器将会递归的解析下去)
  5,CDATA
  CDATA also means character data.
  CDATA的意思是字符数据。
  CDATA是不会被解析器解析的文本。在text中的标签将不会被认为是标记和实体而展开 。
相关阅读
网友评论
栏目导航
推荐软件