DTD教程Word文档下载推荐.docx

上传人:b****1 文档编号:4222751 上传时间:2023-05-03 格式:DOCX 页数:18 大小:21.93KB
下载 相关 举报
DTD教程Word文档下载推荐.docx_第1页
第1页 / 共18页
DTD教程Word文档下载推荐.docx_第2页
第2页 / 共18页
DTD教程Word文档下载推荐.docx_第3页
第3页 / 共18页
DTD教程Word文档下载推荐.docx_第4页
第4页 / 共18页
DTD教程Word文档下载推荐.docx_第5页
第5页 / 共18页
DTD教程Word文档下载推荐.docx_第6页
第6页 / 共18页
DTD教程Word文档下载推荐.docx_第7页
第7页 / 共18页
DTD教程Word文档下载推荐.docx_第8页
第8页 / 共18页
DTD教程Word文档下载推荐.docx_第9页
第9页 / 共18页
DTD教程Word文档下载推荐.docx_第10页
第10页 / 共18页
DTD教程Word文档下载推荐.docx_第11页
第11页 / 共18页
DTD教程Word文档下载推荐.docx_第12页
第12页 / 共18页
DTD教程Word文档下载推荐.docx_第13页
第13页 / 共18页
DTD教程Word文档下载推荐.docx_第14页
第14页 / 共18页
DTD教程Word文档下载推荐.docx_第15页
第15页 / 共18页
DTD教程Word文档下载推荐.docx_第16页
第16页 / 共18页
DTD教程Word文档下载推荐.docx_第17页
第17页 / 共18页
DTD教程Word文档下载推荐.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

DTD教程Word文档下载推荐.docx

《DTD教程Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《DTD教程Word文档下载推荐.docx(18页珍藏版)》请在冰点文库上搜索。

DTD教程Word文档下载推荐.docx

note>

to>

George<

/to>

from>

John<

/from>

heading>

Reminder<

/heading>

body>

Don'

tforgetthemeeting!

/body>

/note>

在您的浏览器中打开此XML文件,并选择“查看源代码”命令。

以上DTD解释如下:

DOCTYPEnote(第二行)定义此文档是note类型的文档。

ELEMENTnote(第三行)定义note元素有四个元素:

"

to、from、heading,、body"

ELEMENTto(第四行)定义to元素为"

#PCDATA"

类型

ELEMENTfrom(第五行)定义frome元素为"

ELEMENTheading(第六行)定义heading元素为"

ELEMENTbody(第七行)定义body元素为"

1.2外部文档声明

假如DTD位于XML源文件的外部,那么它应通过下面的语法被封装在一个DOCTYPE定义中:

DOCTYPE根元素SYSTEM"

文件名"

这个XML文档和上面的XML文档相同,但是拥有一个外部的DTD:

(在IE5中打开,并选择“查看源代码”命令。

DOCTYPEnoteSYSTEM"

note.dtd"

这是包含DTD的"

文件:

1.3为什么使用DTD?

通过DTD,您的每一个XML文件均可携带一个有关其自身格式的描述。

通过DTD,独立的团体可一致地使用某个标准的DTD来交换数据。

而您的应用程序也可使用某个标准的DTD来验证从外部接收到的数据。

您还可以使用DTD来验证您自身的数据。

2DTDXML构建模块

XML以及HTML文档的主要构建模块是类似<

....<

这样的标签。

2.1XML文档构建模块

所有的XML文档(以及HTML文档)均由以下简单的构建模块构成:

∙元素

∙属性

∙实体

∙PCDATA

∙CDATA

下面是每个构建模块的简要描述。

2.2元素

元素是XML以及HTML文档的主要构建模块。

HTML元素的例子是"

body"

和"

table"

XML元素的例子是"

note"

message"

元素可包含文本、其他元素或者是空的。

空的HTML元素的例子是"

hr"

、"

br"

以及"

img"

实例:

bodytextinbetween<

message>

somemessageinbetween<

/message>

2.3属性

属性可提供有关元素的额外信息。

属性总是被置于某元素的开始标签中。

属性总是以名称/值的形式成对出现的。

下面的"

元素拥有关于源文件的额外信息:

imgsrc="

computer.gif"

/>

元素的名称是"

属性的名称是"

src"

属性的值是"

由于元素本身为空,它被一个"

/"

关闭。

2.4实体

实体是用来定义普通文本的变量。

实体引用是对实体的引用。

大多数同学都了解这个HTML实体引用:

&

nbsp;

这个“无折行空格”实体在HTML中被用于在某个文档中插入一个额外的空格。

当文档被XML解析器解析时,实体就会被展开。

下面的实体在XML中被预定义:

实体引用

字符

lt;

gt;

amp;

quot;

apos;

'

2.5PCDATA

PCDATA的意思是被解析的字符数据(parsedcharacterdata)。

可把字符数据想象为XML元素的开始标签与结束标签之间的文本。

PCDATA是会被解析器解析的文本。

这些文本将被解析器检查实体以及标记。

文本中的标签会被当作标记来处理,而实体会被展开。

不过,被解析的字符数据不应当包含任何&

、<

或者>

字符;

需要使用&

、&

以及&

实体来分别替换它们。

2.6CDATA

CDATA的意思是字符数据(characterdata)。

CDATA是不会被解析器解析的文本。

在这些文本中的标签不会被当作标记来对待,其中的实体也不会被展开。

3DTD元素

在一个DTD中,元素通过元素声明来进行声明。

3.1声明一个元素

在DTD中,XML元素通过元素声明来进行声明。

元素声明使用下面的语法:

ELEMENT元素名称类别>

或者

ELEMENT元素名称(元素内容)>

3.2空元素

空元素通过类别关键词EMPTY进行声明:

ELEMENT元素名称EMPTY>

例子:

ELEMENTbrEMPTY>

XML例子:

br/>

3.3只有PCDATA的元素

只有PCDATA的元素通过圆括号中的#PCDATA进行声明:

ELEMENT元素名称(#PCDATA)>

3.4带有任何内容的元素

通过类别关键词ANY声明的元素,可包含任何可解析数据的组合:

ELEMENT元素名称ANY>

ELEMENTnoteANY>

3.5带有子元素(序列)的元素

带有一个或多个子元素的元素通过圆括号中的子元素名进行声明:

ELEMENT元素名称(子元素名称1)>

ELEMENT元素名称(子元素名称1,子元素名称2,.....)>

当子元素按照由逗号分隔开的序列进行声明时,这些子元素必须按照相同的顺序出现在文档中。

在一个完整的声明中,子元素也必须被声明,同时子元素也可拥有子元素。

元素的完整声明是:

3.6声明只出现一次的元素

ELEMENT元素名称(子元素名称)>

ELEMENTnote(message)>

上面的例子声明了:

message子元素必须出现一次,并且必须只在"

元素中出现一次。

3.7声明最少出现一次的元素

ELEMENT元素名称(子元素名称+)>

ELEMENTnote(message+)>

上面的例子中的加号声明了:

message子元素必须在"

元素内出现至少一次。

3.8声明出现零次或多次的元素

ELEMENT元素名称(子元素名称*)>

ELEMENTnote(message*)>

上面的例子中的星号声明了:

子元素message可在"

元素内出现零次或多次。

3.9声明出现零次或一次的元素

ELEMENT元素名称(子元素名称?

)>

ELEMENTnote(message?

上面的例子中的问号声明了:

元素内出现零次或一次。

3.10声明“非.../既...”类型的内容

ELEMENTnote(to,from,header,(message|body))>

元素必须包含"

to"

元素、"

from"

header"

元素,以及非"

元素既"

元素。

3.11声明混合型的内容

ELEMENTnote(#PCDATA|to|from|header|message)*>

元素可包含出现零次或多次的PCDATA、"

或者"

4DTD属性

在DTD中,属性通过ATTLIST声明来进行声明。

4.1声明属性

属性声明使用下列语法:

ATTLIST元素名称属性名称属性类型默认值>

DTD实例:

ATTLISTpaymenttypeCDATA"

check"

XML实例:

paymenttype="

以下是属性类型的选项:

类型

描述

CDATA

值为字符数据(characterdata)

(en1|en2|..)

此值是枚举列表中的一个值

ID

值为唯一的id

IDREF

值为另外一个元素的id

IDREFS

值为其他id的列表

NMTOKEN

值为合法的XML名称

NMTOKENS

值为合法的XML名称的列表

ENTITY

值是一个实体

ENTITIES

值是一个实体列表

NOTATION

此值是符号的名称

xml:

值是一个预定义的XML值

默认值参数可使用下列值:

解释

属性的默认值

#REQUIRED

属性值是必需的

#IMPLIED

属性不是必需的

#FIXEDvalue

属性值是固定的

4.2规定一个默认的属性值

DTD:

ELEMENTsquareEMPTY>

ATTLISTsquarewidthCDATA"

0"

合法的XML:

squarewidth="

100"

在上面的例子中,"

square"

被定义为带有CDATA类型的"

width"

属性的空元素。

如果宽度没有被设定,其默认值为0。

4.3#IMPLIED

语法

ATTLIST元素名称属性名称属性类型#IMPLIED>

例子

ATTLISTcontactfaxCDATA#IMPLIED>

contactfax="

555-667788"

contact/>

假如您不希望强制作者包含属性,并且您没有默认值选项的话,请使用关键词#IMPLIED。

4.4#REQUIRED

ATTLIST元素名称属性名称属性类型#REQUIRED>

ATTLISTpersonnumberCDATA#REQUIRED>

personnumber="

5677"

非法的XML:

person/>

假如您没有默认值选项,但是仍然希望强制作者提交属性的话,请使用关键词#REQUIRED。

4.5#FIXED

ATTLIST元素名称属性名称属性类型#FIXED"

value"

ATTLISTsendercompanyCDATA#FIXED"

Microsoft"

sendercompany="

W3School"

如果您希望属性拥有固定的值,并不允许作者改变这个值,请使用#FIXED关键词。

如果作者使用了不同的值,XML解析器会返回错误。

4.6列举属性值

语法:

ATTLIST元素名称属性名称(en1|en2|..)默认值>

DTD例子:

ATTLISTpaymenttype(check|cash)"

cash"

XML例子:

如果您希望属性值为一系列固定的合法值之一,请使用列举属性值。

5DTD实体

实体是用于定义引用普通文本或特殊字符的快捷方式的变量。

实体可在内部或外部进行声明。

5.1一个内部实体声明

ENTITY实体名称"

实体的值"

ENTITYwriter"

BillGates"

ENTITYcopyright"

CopyrightW3S"

author>

writer;

copyright;

/author>

注释:

一个实体由三部分构成:

一个和号(&

),一个实体名称,以及一个分号(;

)。

5.2一个外部实体声明

ENTITY实体名称SYSTEM"

URI/URL"

ENTITYwriterSYSTEM"

ENTITYcopyrightSYSTEM"

6DTD验证

InternetExplorer5.0可根据某个DTD来验证您的XML。

6.1通过XML解析器进行验证

当您试图打开某个XML文档时,XML解析器有可能会产生错误。

通过访问parseError对象,就可以取回引起错误的确切代码、文本甚至所在的行。

注释:

load()方法用于文件,而loadXML()方法用于字符串。

varxmlDoc=newActiveXObject("

Microsoft.XMLDOM"

xmlDoc.async="

false"

xmlDoc.validateOnParse="

true"

xmlDoc.load("

note_dtd_error.xml"

document.write("

br>

ErrorCode:

"

document.write(xmlDoc.parseError.errorCode)

ErrorReason:

document.write(xmlDoc.parseError.reason)

ErrorLine:

document.write(xmlDoc.parseError.line)

TryitYourself或者仅仅看一下这个XML文件。

6.2关闭验证

通过把XML解析器的validateOnParse设置为"

,就可以关闭验证。

TryitYourself

6.3通用的XML验证器

为了帮助您验证XML文件,我们创建了此链接,这样你就可以验证任何XML文件了。

parseError对象

您可以在我们的《XMLDOM教程》中阅读更多有关parseError对象的信息。

7DTD-来自网络的实例

7.1电视节目表DTD

由DavidMoisan创造。

拷贝自:

http:

//www.davidmoisan.org/

DOCTYPETVSCHEDULE[

ELEMENTTVSCHEDULE(CHANNEL+)>

ELEMENTCHANNEL(BANNER,DAY+)>

ELEMENTBANNER(#PCDATA)>

ELEMENTDAY(DATE,(HOLIDAY|PROGRAMSLOT+)+)>

ELEMENTHOLIDAY(#PCDATA)>

ELEMENTDATE(#PCDATA)>

ELEMENTPROGRAMSLOT(TIME,TITLE,DESCRIPTION?

ELEMENTTIME(#PCDATA)>

ELEMENTTITLE(#PCDATA)>

 

ELEMENTDESCRIPTION(#PCDATA)>

ATTLISTTVSCHEDULENAMECDATA#REQUIRED>

ATTLISTCHANNELCHANCDATA#REQUIRED>

ATTLISTPROGRAMSLOTVTRCDATA#IMPLIED>

ATTLISTTITLERATINGCDATA#IMPLIED>

ATTLISTTITLELANGUAGECDATA#IMPLIED>

7.2报纸文章DTD

DOCTYPENEWSPAPER[ 

ELEMENTNEWSPAPER(ARTICLE+)>

ELEMENTARTICLE(HEADLINE,BYLINE,LEAD,BODY,NOTES)>

ELEMENTHEADLINE(#PCDATA)>

ELEMENTBYLINE(#PCDATA)>

ELEMENTLEAD(#PCDATA)>

ELEMENTBODY(#PCDATA)>

ELEMENTNOTES(#PCDATA)>

ATTLISTARTICLEAUTHORCDATA#REQUIRED>

ATTLISTARTICLEEDITORCDATA#IMPLIED>

ATTLISTARTICLEDATECDATA#IMPLIED>

ATTLISTARTICLEEDITIONCDATA#IMPLIED>

ENTITYNEWSPAPER"

VervetLogicTimes"

ENTITYPUBLISHER"

VervetLogicPress"

ENTITYCOPYRIGHT"

Copyright1998VervetLogicPress"

7.3产品目录DTD

DOCTYPECATALOG[

ENTITYAUTHOR"

JohnDoe"

ENTITYCOMPANY"

JDPowerTools,Inc."

ENTITYEMAIL"

jd@jd-"

ELEMENTCATALOG(PRODUCT+)>

ELEMENTPRODUCT

(SPECIFICATIONS+,OPTIONS?

PRICE+,NOTES?

ATTLISTPRODUCT

NAMECDATA#IMPLIED

CATEGORY(HandTool|Table|Shop-Professional)"

HandTool"

PARTNUMCDATA#IMPLIED

PLANT(Pittsburgh|Milwaukee|Chicago)"

Chicago"

INVENTORY(InStock|Backordered|Discontinued)"

InStock"

ELEMENTSPECIFICATIONS(#PCDATA)>

ATTLISTSPECIFICATIONS

WEIGHTCDATA#IMPLIED

POWERCDATA#IMPLIED>

ELEMENTOPTIONS(#PCDATA)>

ATTL

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2