第4章_XML文檔類(lèi)型定義PPT課件_第1頁(yè)
第4章_XML文檔類(lèi)型定義PPT課件_第2頁(yè)
第4章_XML文檔類(lèi)型定義PPT課件_第3頁(yè)
第4章_XML文檔類(lèi)型定義PPT課件_第4頁(yè)
第4章_XML文檔類(lèi)型定義PPT課件_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精選,1,XML實(shí)用教程,精選,2,教學(xué)提示:XML的可擴(kuò)展性表現(xiàn)在用戶(hù)可以自己定義標(biāo)記和標(biāo)記之間的嵌套關(guān)系,而DTD就是進(jìn)行這種定義的語(yǔ)言。它定義了文檔的邏輯結(jié)構(gòu),規(guī)定了文檔中所使用的元素、實(shí)體、元素的屬性、元素與實(shí)體之間的關(guān)系。根據(jù)DTD可檢查XML文檔中的數(shù)據(jù),以驗(yàn)證其是否符合規(guī)定和要求,這可以保證XML文檔數(shù)據(jù)的正確性和有效性。本章介紹DTD的語(yǔ)法,包括元素、屬性和實(shí)體的語(yǔ)法,結(jié)合例子給出DTD的使用方法并給出綜合實(shí)例。教學(xué)目標(biāo):了解DTD的作用,熟悉元素、屬性及實(shí)體的運(yùn)用,掌握引用DTD的方法,能夠?yàn)樘囟ǖ南到y(tǒng)設(shè)計(jì)標(biāo)記語(yǔ)言。,第4章XML文檔類(lèi)型定義,精選,3,教學(xué)內(nèi)容:4.1DTD

2、的作用4.2DTD元素4.3DTD屬性4.4DTD中的實(shí)體4.5使用DTD,精選,4,4.1DTD的作用,XML文檔是一種元標(biāo)記語(yǔ)言,即一種定義標(biāo)記語(yǔ)言的語(yǔ)言。在XML中可以創(chuàng)建新的標(biāo)記語(yǔ)言,這些新的標(biāo)記語(yǔ)言(也叫標(biāo)記集)要通過(guò)文檔類(lèi)型定義(DocumentTypeDefinitions,DTD)來(lái)定義。DTD文檔是這些新的標(biāo)記語(yǔ)言的法律性文檔。如果XML文檔的語(yǔ)法符,DTD的定義和規(guī)定,那么就稱(chēng)為一個(gè)合法的XML文檔,否則就是非法的XML文檔。,精選,5,DTD定義了文檔的邏輯結(jié)構(gòu),規(guī)定了文檔中所使用的元素、實(shí)體、元素的屬性、元素與實(shí)體之間的關(guān)系。其作用主要表現(xiàn)在以下幾個(gè)方面:(1)使用DT

3、D可以提供一種統(tǒng)一的格式。XML的可擴(kuò)展性為文檔的作者提供了很高的靈活性,可有時(shí)候需要的是統(tǒng)一,要求某一類(lèi)文檔具有相同的結(jié)構(gòu)。(2)使用DTD可以保證數(shù)據(jù)交流和共享的順利進(jìn)行。(3)DTD使用戶(hù)能夠不依賴(lài)具體的數(shù)據(jù)就知道文檔的邏輯結(jié)構(gòu)。在沒(méi)有XML文檔的時(shí)候,也可以根據(jù)DTD為XML文檔編寫(xiě)樣式單,編寫(xiě)處理程序,這樣可以有效地提高工作效率。(4)使用DTD可以驗(yàn)證數(shù)據(jù)的有效性。DTD對(duì)文檔的邏輯結(jié)構(gòu)進(jìn)行了約束,這種約束可以比較寬松,也可以十分嚴(yán)格??梢愿鶕?jù)DTD檢查數(shù)據(jù),以驗(yàn)證其是否符合規(guī)定和要求,這可以保證數(shù)據(jù)的正確和有效。,精選,6,4.2DTD元素,DTD中描述的基本部件是元素和屬性,它

4、們負(fù)責(zé)確定XML文檔的邏輯結(jié)構(gòu)。元素表示一個(gè)信息對(duì)象,而屬性表示這個(gè)對(duì)象的性質(zhì)。所有元素中有且只有一個(gè)根元素,其他的元素都是它的子元素,除根元素外,每個(gè)元素都被其他元素包含,一個(gè)元素可以有幾個(gè)不同類(lèi)型的子元素。,精選,7,1.簡(jiǎn)單型“#PCDATA”(ParsedCharacterData)表示標(biāo)記的內(nèi)容是可解析文本,所謂的可解析文本就是非標(biāo)記文本。用#PCDATA”規(guī)范了的元素不能再包含子元素。例如Howdoyoudo是不包含標(biāo)記的文本,而Howdoyoudo就不是可解析的數(shù)據(jù)類(lèi)型,因?yàn)槠渲邪袠?biāo)記和。另外DTD文檔中不同元素定義的次序沒(méi)有先后關(guān)系,但文檔的語(yǔ)法對(duì)大小寫(xiě)敏感。code4_1

5、.xml“#PCDATA”的聲明格式:,元素的基本類(lèi)型大致可分為兩種,一種稱(chēng)為簡(jiǎn)單型,另一種稱(chēng)為復(fù)合型。簡(jiǎn)單型具有文本數(shù)據(jù),即可析字符數(shù)據(jù),該類(lèi)型也稱(chēng)為上下文中的“#PCDATA”;復(fù)合型可以包含其他元素和文本數(shù)據(jù)。,精選,8,2.復(fù)合型復(fù)合型元素與簡(jiǎn)單型元素相對(duì),復(fù)合型元素可包含其他元素。code4_2.xml,精選,9,4.2.2元素的聲明1.元素聲明的基本語(yǔ)法元素的聲明格式:其中,Element_Name為聲明的元素名稱(chēng),Element_Defination為元素內(nèi)容格式的定義。合法的元素聲明語(yǔ)句如:,精選,10,2.空元素的聲明在第3章中已介紹了空標(biāo)記的使用方法,那么在DTD中如何對(duì)與

6、的空元素進(jìn)行聲明呢?其聲明格式:例如下面的語(yǔ)句:3.不限定元素內(nèi)容的聲明ANY是DTD中使用很頻繁的一個(gè)關(guān)鍵字,特別是對(duì)于文檔根元素的聲明。在定義一個(gè)DTD文檔時(shí)通常很難準(zhǔn)確地確定一個(gè)元素是否具有子元素的情況,此時(shí)一般的做法是指定該元素的子元素為ANY型(表示可以是任意的元素),這樣在它之中可以包含任何數(shù)據(jù)、任何聲明的子元素及其數(shù)據(jù)和子元素的組合。ANY元素的聲明格式:例如下面的語(yǔ)句:CODE4_3.XML,CODE4_4.XML,精選,11,4.子元素列表的設(shè)定在XML中有一種針對(duì)復(fù)合元素的最為嚴(yán)格的設(shè)定方法,稱(chēng)為子元素列表的設(shè)定。這種方式下,元素都擁有哪些子元素、每個(gè)子元素出現(xiàn)的次數(shù)和位置

7、都有明確的規(guī)定,在具體文檔實(shí)現(xiàn)時(shí),必須嚴(yán)格執(zhí)行。子元素列表的設(shè)定語(yǔ)法如下:其中“(Child_Element1,Child_Element2,)”部分為Element_Name所擁有的子元素列表。code4_5.XML,精選,12,5.可選擇的子元素有些時(shí)候,需要在兩個(gè)或多個(gè)互斥的元素中進(jìn)行選擇。即多選一的情況,如一個(gè)人的性別可以是男或女,兩者中只能有一種情況。DTD有專(zhuān)門(mén)的語(yǔ)法來(lái)處理這種情況,其語(yǔ)法格式如下:其中,“(Child_Element1|Child_Element2|)”部分為選擇性元素組合,具體使用時(shí)必須要在這個(gè)列表中選擇其一。CODE4_6.XML,精選,13,6.元素出現(xiàn)次數(shù)

8、的控制(1)一個(gè)元素可能出現(xiàn)一次,也可能不出現(xiàn)。這時(shí)可通過(guò)在元素名后面加上一個(gè)“?”來(lái)實(shí)現(xiàn)。(2)一個(gè)元素可能不出現(xiàn),也可能出現(xiàn)多次。這時(shí)可通過(guò)在元素名后面加上一個(gè)“*”來(lái)實(shí)現(xiàn)。(3)一個(gè)元素可能出現(xiàn)一次,也可能出現(xiàn)多次,但至少也要出現(xiàn)一次。這時(shí)可通過(guò)在元素名后面加上一個(gè)“+”來(lái)實(shí)現(xiàn)。,精選,14,7.元素組在聲明復(fù)合型元素的時(shí)候,可以使用括號(hào)將其部分子元素組合在一起,成為一個(gè)元素組,該元素組在特性上與普通元素沒(méi)什么區(qū)別,可以對(duì)其使用“?”、“*”、“+”等控制字符。在實(shí)際應(yīng)用中,使用元素組可能不是最好的方案。這時(shí)也可以先將準(zhǔn)備分組的元素定義為一個(gè)復(fù)合元素,再在原來(lái)的元素中引用剛定義的復(fù)合元素

9、,這樣文檔的結(jié)構(gòu)更清晰。CODE4_7.XML使用分組,CODE4_8.XML,精選,15,8.混合型元素還有另一種元素,其內(nèi)容既可以為字符數(shù)據(jù),也可以為子元素,這種元素稱(chēng)為混合型元素?;旌闲驮氐穆暶鞲袷剑夯旌闲驮氐拇嬖谄茐牧宋臋n的層次結(jié)構(gòu)化,不利于應(yīng)用軟件對(duì)XML文檔的處理,在XML文檔開(kāi)發(fā)過(guò)程中,它可以作為一個(gè)不成熟的DTD文檔,一步一步地在XML文檔中添加元素,邊添加邊測(cè)試其正確性,這時(shí)可將尚未處理的部分作為字符數(shù)據(jù)組織到一個(gè)混合型元素中,以便使文檔通過(guò)測(cè)試。但在文檔最后完成時(shí),要通過(guò)添加新元素的方法來(lái)清除這種非結(jié)構(gòu)化信息。,精選,16,4.3DTD屬性,簡(jiǎn)單來(lái)講就是元素的附加特性,

10、在DTD中聲明元素時(shí),也必須對(duì)該元素的屬性進(jìn)行聲明。4.3.1屬性的聲明在DTD中,屬性的聲明格式:其中,為屬性聲明的關(guān)鍵字,Element_name為元素名,Attribute_name為屬性名,TYPE是屬性類(lèi)型,Default_value為沒(méi)有設(shè)定屬性值時(shí)的默認(rèn)值。,精選,17,在聲明屬性時(shí)有以下需要注意的事項(xiàng)。CODE4_9.XML(1)可以多次為一個(gè)元素聲明其中所包含的屬性。(2)屬性的聲明在文檔中的次序沒(méi)有嚴(yán)格的要求,可位于與其相連的元素聲明之前或之后。(3)所有元素的屬性,都要在各自所對(duì)應(yīng)的標(biāo)記中聲明。(4)屬性有4種不同類(lèi)型的默認(rèn)值,可在屬性聲明中的Default_value部

11、分指定。default:表示使用提供的默認(rèn)值,default不是一個(gè)關(guān)鍵字,它代表一個(gè)預(yù)設(shè)的字符串。此例句表示當(dāng)在XML文檔中省略了對(duì)bookinfo元素的bookcategory屬性值進(jìn)行設(shè)定時(shí),該屬性的默認(rèn)值就是“文藝”。#REQUIRED:表示屬性值必須指定。#IMPLIED:表示元素的這個(gè)屬性可用可不用。#FIXED:表示元素的這個(gè)屬性值是一個(gè)固定值,且必須是指定的值。,精選,18,4.3.2屬性的類(lèi)型在屬性的聲明中TYPE部分為屬性的類(lèi)型設(shè)定,DTD中屬性的類(lèi)型有10種,下面將對(duì)這些數(shù)據(jù)類(lèi)型進(jìn)行逐一的介紹。1.CDATA型CDATA型表明屬性值為不包含“”和“”的任意字符串,如果屬性

12、值中需要包含“”和“”,則可使用特殊字符來(lái)代替。2.Enumerated型如果屬性值并不是任意的字符串,而是在幾個(gè)可能的值中進(jìn)行選擇,如書(shū)籍的“類(lèi)別”屬性,其值可為“文藝”,也可為“自然科學(xué)”,而不可能為其他情況時(shí),則可以將書(shū)籍的“類(lèi)別”屬性設(shè)定為Enumerated型。,精選,19,3.ID型當(dāng)元素的某個(gè)屬性值是不能重復(fù)時(shí),如書(shū)籍的ISBN屬性、個(gè)人的“身份證號(hào)”屬性等,要定義這樣的屬性則需使用屬性的ID類(lèi)型。在一個(gè)XML文檔中,所有元素的ID類(lèi)型屬性的屬性值必須是唯一的,不可重復(fù),另外,一個(gè)元素不能有超過(guò)一個(gè)ID類(lèi)型的屬性。4.IDREF與IDREFS型IDREF為IdentifierRe

13、ference的縮寫(xiě),IDREF與ID類(lèi)型屬性的關(guān)系為子元素與父元素的關(guān)系,即IDREF類(lèi)型屬性的值必須是其他元素的ID類(lèi)型屬性的值,且該ID類(lèi)型屬性的值必須在文檔的其他地方被設(shè)定過(guò)。IDREFS類(lèi)型屬性的屬性值可有多個(gè),每一個(gè)都必須是在文檔其他地方被設(shè)定了的ID類(lèi)型屬性的值,而這多個(gè)屬性值之間用空格隔開(kāi)。CODE4_10.XML,精選,20,5.ENTITY與ENTITIES型CODE4_11.XMLENTITY類(lèi)型的屬性提供了把外部二進(jìn)制形式的文件(如.jpeg、.mp3等)和外部不可解析實(shí)體鏈接到XML文檔的功能。因此其屬性值也必須為不可解析的鏈接外部實(shí)際數(shù)據(jù)的通用實(shí)體名。ENTITIE

14、S類(lèi)型屬性的屬性值可由多個(gè)不可解析的外部實(shí)體名稱(chēng)組成,各實(shí)體名稱(chēng)之間使用空格隔開(kāi)。6.NMTOKEN與NMTOKENS型NMTOKEN類(lèi)型的屬性限定屬性值是有效的XML名稱(chēng),這個(gè)屬性值可以由英文、數(shù)字、“.”、“_”、“-”、“:”等組成,這里有幾點(diǎn)需要注意。(1)不能包括空格。(2)以上字符中除“:”以外,其他字符都可以作為開(kāi)頭字符。(3)“:”可以出現(xiàn)在中間,但由于它是命名域的關(guān)鍵字符,所以一般不提倡使用。,精選,21,7.NOTATION型XML文檔中引入了外部不可解析的實(shí)體后,解析器無(wú)法解析這些二進(jìn)制文件,這時(shí),就可以使用NOTATION類(lèi)型的屬性為這些二進(jìn)制文件指定與其對(duì)應(yīng)的應(yīng)用軟件

15、以對(duì)其進(jìn)行處理。CODE4_12.XML,精選,22,4.4DTD中的實(shí)體,4.4.1實(shí)體的概念實(shí)體是包含了文檔片段的虛擬存儲(chǔ)單元,可用來(lái)存儲(chǔ)XML聲明、DTD、其他形式的文本及二進(jìn)制數(shù)據(jù)等。簡(jiǎn)單來(lái)講就是一段代碼或數(shù)據(jù)的代稱(chēng),這個(gè)代稱(chēng)即為實(shí)體的名字。當(dāng)需要在文檔中引用某段代碼或數(shù)據(jù)時(shí),可以引用與這段代碼或數(shù)據(jù)相對(duì)應(yīng)的實(shí)體名稱(chēng)來(lái)代替實(shí)體的具體內(nèi)容。具有正確性檢查功能的XML處理器在提交文檔給最終應(yīng)用程序之前或在顯示文檔以前,將先把所有不同的實(shí)體引用替換為與其對(duì)應(yīng)的具體內(nèi)容,從而構(gòu)成一個(gè)結(jié)構(gòu)完整的文檔。,精選,23,4.4.2實(shí)體的分類(lèi)(1)按照實(shí)體的具體內(nèi)容來(lái)分類(lèi),實(shí)體可分為可解析與不可解析兩類(lèi)

16、??山馕鰧?shí)體的具體內(nèi)容為簡(jiǎn)單的字符、數(shù)字、文本塊,而不可解析實(shí)體的具體內(nèi)容則為圖片、聲音等二進(jìn)制文件。(2)按照邏輯存儲(chǔ)來(lái)分類(lèi),實(shí)體可分為內(nèi)部實(shí)體與外部實(shí)體兩類(lèi)。內(nèi)部實(shí)體的內(nèi)容是在文檔內(nèi)部設(shè)定的;而外部實(shí)體則是一個(gè)外部獨(dú)立的物理存儲(chǔ)對(duì)象,如某個(gè)外部文件。(3)按照使用的范圍來(lái)分類(lèi),實(shí)體可分為一般實(shí)體與參數(shù)實(shí)體兩類(lèi)。一般實(shí)體都用來(lái)構(gòu)成文檔的具體內(nèi)容,可出現(xiàn)在XML文檔中,也可出現(xiàn)在DTD中;而參數(shù)實(shí)體只能出現(xiàn)在DTD中,不能出現(xiàn)在XML文檔中。,精選,24,1.內(nèi)部一般實(shí)體內(nèi)部一般實(shí)體就是在文檔實(shí)體內(nèi)部定義和使用的實(shí)體,其內(nèi)容通常是一段文本字符。這種實(shí)體要在DTD中通過(guò)DTD語(yǔ)句的定義,可以在X

17、ML文檔中使用,也可在DTD中使用。其定義的語(yǔ)法格式如下:其中,為關(guān)鍵字,Eentity_name為實(shí)體名稱(chēng),Replacement為實(shí)體所代替的文本內(nèi)容。引用內(nèi)部一般實(shí)體的方法如下:CODE4_13.XML,精選,25,當(dāng)內(nèi)部一般實(shí)體在DTD中引用時(shí),有以下幾方面需注意。(1)不能在元素及屬性的聲明中引用內(nèi)部一般實(shí)體,如下面的語(yǔ)句即為非法的:(2)在語(yǔ)句中不能出現(xiàn)循環(huán),如下面的語(yǔ)句即為非法的:,精選,26,2.外部一般實(shí)體所謂外部一般實(shí)體就是在文檔實(shí)體以外定義的,要通過(guò)一個(gè)URL才能引用到的實(shí)體。外部一般實(shí)體為獨(dú)立的文件,可被多個(gè)文檔所引用。正因?yàn)槊恳粋€(gè)完整的XML文檔都是一個(gè)合法的實(shí)體,所

18、以XML通過(guò)對(duì)外部一般實(shí)體的引用,可以在一個(gè)XML文檔中嵌入另一個(gè)XML文檔,或者將多個(gè)文檔組合成一個(gè)文檔。其定義的語(yǔ)法格式如下:其中,URL為引用的外部實(shí)體的URL地址。引用外部一般實(shí)體也與引用內(nèi)部一般實(shí)體的方法一樣:,精選,27,在引用外部一般實(shí)體時(shí),有以下幾方面需注意。(1)因?yàn)樵谝粋€(gè)文檔中需引用某些外部文件,所以該文檔聲明中的standalone屬性不再是默認(rèn)值yes,而應(yīng)該為no。(2)作為外部一般實(shí)體的文檔,若使用的是XML的默認(rèn)字符集即UTF-8或UNICODE,則可以在文檔頭部不進(jìn)行XML聲明,否則,必須有XML聲明,且聲明時(shí),一定要說(shuō)明ecoding屬性。,精選,28,3.內(nèi)

19、部參數(shù)實(shí)體內(nèi)部參數(shù)實(shí)體是指在獨(dú)立的外部DTD文檔的內(nèi)部定義和使用的實(shí)體,其內(nèi)容為僅能為DTD而非XML文檔內(nèi)容的書(shū)寫(xiě)文本。這里提到參數(shù)實(shí)體與前面所講的一般實(shí)體是有區(qū)別的:(1)在引用形式上,一般實(shí)體的引用為“”(2)在引用范圍上,一般實(shí)體可在XML文檔中引用,也可在DTD中引用,而參數(shù)實(shí)體只可在DTD中引用。定義內(nèi)部參數(shù)實(shí)體的語(yǔ)法格式如下:,精選,29,4.外部參數(shù)實(shí)體外部參數(shù)實(shí)體是指在獨(dú)立的外部DTD文檔的外部定義和使用的實(shí)體,外部參數(shù)實(shí)體用于將多個(gè)獨(dú)立的DTD文檔組合成一個(gè)大的DTD文檔。定義外部參數(shù)實(shí)體的語(yǔ)法格式如下:,精選,30,4.5使用DTD,引用DTD的方法有兩種:內(nèi)部DTD引用與外部DTD引用。內(nèi)部DTD引用即在XML文檔中直接設(shè)定DTD,外部DTD引用則是在XML文檔中引用一個(gè)擴(kuò)展名為.dt

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論