DTD(文档类型定义)语法

更新时间:2023-06-18 14:18:47 阅读: 评论:0

DTD语法
简介
 文档类型定义(DTD)是用来定义一段合法的XML文档块。它用来验证你的XML文档是以一系列合法的元素构成的。
 如何复印文件DTD可以在XMLmedicine可数吗文档内部定义,也可以在通过外部文件的方式引入
 1 内部声明方式对唱歌曲100首
 如果要把DTD包含在你的XML的内部,需要以以下的语法包含一个DOCTYPE”声明:
 <!DOCTYPE 根元素 [子元素声明]>
 下面是一个包含DTDXML例子:
<?xml version="1.0"?>
<!DOCTYPE note [
  <!ELEMENT note (to,from,heading,body)>
  <!ELEMENT to      (#PCDATA)>
  <!ELEMENT from    (#PCDATA)>
  <!ELEMENT heading (#PCDATA)>meat怎么读
  <!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>.
欲字组词
XMLHTML文档的主要构造块都是像<body>....</body>”这样的标签
1XML文档的构造块
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
以下是对每个构造块的简要的解释:
1Elements(元素)
Elements are the main building blocks of both XML and HTML documents.
元素是主要的XMLHTML文档的构造块
HTML中常见的有"body","table";而在XML中,元素可能是note,message”。
元素可以包含文本,其他元素或者为空。例如空的HTML元素有hrbrimg
例子:
<body>body text in between</body><message>some message in between</message>
2Attribute(属性)
属性为元素提供了额外的信息
属性总是被放置在一个元素的起始标记中,以名值对的方式出现。下面是一个包含图片来源的img元素的例子
<img src="computer.gif" />
元素名是img”,属性名是src”,值是computer.gif.
3,Entities (实体)
实体是用来定义通用文本的变量。实体引用是对实体的引用(译者注:好废的话啊,原文是Entity references are references to entities.”)
你最有可能知道的HTML实体引用是 ,这是用在HTML中的不换行的空格实体。
以下是XML中预定义的实体:
实体引用  代表字符 吭哧吭哧
<        <
>        >
&        &
"      "
'      '
4PCDATA
PCDATA的意思是可解析的字符数据。
可以把字符数据看成是在一个XML元素的开始标签和结束标签之间的文本。
PCDATA是将会被一个解析器解析的文本。在这个文本中的标签会被当作标记和实体而继续被展开(译者注:就是说如果文本中包含有tag,解析器将会递归的解析下去)
5CDATA
CDATA also means character data.
CDATA的意思是字符数据。
CDATA是不会被解析器解析的文本。在text中的标签将不会被认为是标记和实体而展开 
DTD-元素

1,声明一个元素
DTD中,XML元素使用element”声明的。一个element声明有以下两中方式的语法声明:
<!ELEMENT element-name 类型>
 或者
<!ELEMENT element-name (元素内容)>
 空元素
空元素可以用关键字EMPTY”作为其类型
例子:
<!ELEMENT element-name EMPTY>
example:<!ELEMENT br EMPTY>XML example:<br />
只包含字符的元素

只包含字符的元素是用包含在圆括号里的#PCDATA”来声明的:
<!ELEMENT element-name (#PCDATA)>
例子:
<!ELEMENT from (#PCDATA)>
包含任意内容的元素
是以关键字ANY”作为其类型来声明的,可以包含任何可解析的数据。
<!ELEMENT element-name ANY>
例子
<!ELEMENT note ANY>

包含子元素的元素
包含子元素的元素是以在圆括号中包含所有子元素的形式定义的:
米醋泡脚<!ELEMENT element-name
 (child-element-name)>
或者
<!ELEMENT element-name
 (child-element-name,child-element-name,.....)>
 例子:
<!ELEMENT note (to,from,heading,body)>
一旦在圆括号中定义了子元素,那么XML文档中的子元素必须以声明的顺序出现
note”元素的完整声明如下:
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to      (#PCDATA)>
<!ELEMENT from    (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body    (#PCDATA)>
声明只能出现一次的子元素。语法:
<!ELEMENT element-name (child-name)>
例子:
<!ELEMENT note (message)>


上面例子演示了子元素必须出现,并且只能出现在note”元素里面一次。

声明出现至少一次的子元素。语法:
<!ELEMENT element-name (child-name+)>
例子:
<!ELEMENT note (message+)>
+”号表示子元素在note”元素必须至少出现一次
声明出现零次或多次的子元素。语法:
<!ELEMENT element-name (child-name*)>
例子:
<!ELEMENT note (message*)>
"*"号表示子元素在note”元素中可以不出现或者出现多次。
声明出现零次或一次的子元素。语法:
<!ELEMENT element-name (child-name?)>
例子:
<!ELEMENT note (message?)>
"*"号表示子元素"message"note”元素中可以不出现或者出现一次。

声明多种选择中取其一的内容,例子:
<!ELEMENT note (to,from,header,(message|body))>
上面的例子声明:note元素必须包含一个to”元素,一个from”元素,一个header”元素。还有一个message或者body元素(二者只能取其一)

声明混合内容。例子:
<!ELEMENT note (#PCDATA|to|from|header|message)*>
上面的例子说明,note元素可以包含零个或者多个的可解析字符串或to元素或from元素或h
eader元素或message元素(这五种取一)
 
DTD – 属性
在一个 DTD 当中,属性都是用一个 ATTLIST 描述来进行表述的。
属性描述:
 
 一个属性描述通过以下语句:

本文发布于:2023-06-18 14:18:47,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1044119.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:元素   包含   声明
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图