版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、XML 程序設(shè)計(jì) 劉超慧鄭州大學(xué)第3章 在XML文檔中使用DTD 3.1 DTD概述 3.2 DTD元素聲明 3.3 DTD 屬性聲明 3.4 DTD實(shí)體聲明 3.5 DTD完整性 3.6 DTD中的測(cè)試開關(guān)3.1 DTD概述 DTD是什么? DTD就是所謂就是所謂“文件格式定義文件格式定義” (Document Type Definition) 文件格式定義的作用是給予文件一種格(文件格式定義的作用是給予文件一種格(Type) 使用戶知道所使用的使用戶知道所使用的XML文件需包含哪些標(biāo)記(文件需包含哪些標(biāo)記(Tag)、)、屬性(屬性(Attribute)、實(shí)體()、實(shí)體(Entities)3
2、.1 DTD概述 DTD的一般結(jié)構(gòu) DTD定義了置標(biāo)語言、文檔結(jié)構(gòu)的語法和詞匯表;定義了置標(biāo)語言、文檔結(jié)構(gòu)的語法和詞匯表; DTD聲明方法為:聲明方法為: 其中其中“定義的內(nèi)容定義的內(nèi)容”是用標(biāo)簽是用標(biāo)簽定定義,它包括:義,它包括: 元素類型聲明;元素類型聲明; 元素屬性聲明;元素屬性聲明; 實(shí)體聲明;實(shí)體聲明; 記法聲明。記法聲明。3.1 DTD概述 內(nèi)部DTD文件示例!DOCTYPE 持股信息 張祥100008000150006000劉嫻500012000900040003.1 DTD概述 外部DTD文件示例 引用的語法格式: 示例:Char03-ex01.dtd char03-stock
3、02.xml3.2 DTD元素聲明 DTD中描述的基本部件是元素和屬性,它們負(fù)責(zé)確定XML文檔的邏輯結(jié)構(gòu)。 元素表示一個(gè)信息對(duì)象,而屬性表示這個(gè)對(duì)象的性質(zhì)。 所有元素中有且只有一個(gè)根元素,其他的元素都是它的子元素,除根元素外,每個(gè)元素都被其他元素包含,一個(gè)元素可以有幾個(gè)不同類型的子元素。3.2 DTD元素聲明 元素的基本類型: 一種稱為簡(jiǎn)單型 簡(jiǎn)單型具有文本數(shù)據(jù),即可析字符數(shù)據(jù),該類型也稱為上下文中的“#PCADTA”; 另一種稱為復(fù)合型 復(fù)合型可以包含其他元素和文本數(shù)據(jù) 復(fù)合型元素與簡(jiǎn)單型元素相對(duì),復(fù)合型元素可包含其他元素。 元素聲明的基本語法 元素的聲明格式: 其中,Element_Nam
4、e為聲明的元素名稱,Element_Defination為元素內(nèi)容格式的定義。 合法的元素聲明語句如:不限定元素內(nèi)容的聲明 ANY是DTD中使用很頻繁的一個(gè)關(guān)鍵字,特別是對(duì)于文檔根元素的聲明。在定義一個(gè)DTD文檔時(shí)通常很難準(zhǔn)確地確定一個(gè)元素是否具有子元素的情況,此時(shí)一般的做法是指定該元素的子元素為ANY型,這樣在它之中可以包含任何數(shù)據(jù)、任何聲明的子元素及其數(shù)據(jù)和子元素的組合。 ANY元素的聲明格式Francis GlassborowYou Can Do It!Tom SwanCode SecretsTom SwanDigital Control System子元素列表的設(shè)定 元素都擁有哪些子元
5、素、每個(gè)子元素出現(xiàn)的次數(shù)和位置都有明確的規(guī)定,在具體文檔實(shí)現(xiàn)時(shí),必須嚴(yán)格執(zhí)行。 子元素列表的設(shè)定語法如下: 其中“(Child_Element1, Child_Element2,)”部分為Element_Name所擁有的子元素列表??蛇x擇的子元素 有些時(shí)候,需要在兩個(gè)或多個(gè)互斥的元素中進(jìn)行選擇。即多選一的情況,如一個(gè)人的性別可以是男或女,兩者中只能有一種情況。 其語法格式如下: 其中,“(Child_Emnt1|Child_Emnt2|)”部分為選擇性元素組合,具體使用時(shí)必須要在這個(gè)列表中選擇其一。子元素出現(xiàn)次數(shù)符號(hào)含義+最少一次*零次或多次?零次或一次|子元素列表之一()將元素列表括起來3.
6、3 DTD 屬性聲明 DTD 屬性 簡(jiǎn)單來講就是元素的附加特性,在DTD中聲明元素時(shí),也必須對(duì)該元素的屬性進(jìn)行聲明。 聲明格式: 其中,為關(guān)鍵字,Element_name為元素名,Attribute_name為屬性名,TYPE是屬性類型,Default_value為沒有設(shè)定屬性值時(shí)的默認(rèn)值。3.3 DTD 屬性聲明元素內(nèi)容說明元素內(nèi)容說明含義含義CDATA屬性是字符數(shù)據(jù)屬性是字符數(shù)據(jù)Enumerated枚舉型數(shù)據(jù)枚舉型數(shù)據(jù)ENITITY在在DTD中聲明的實(shí)體中聲明的實(shí)體ENITITYES在在DTD中聲明的若干實(shí)體,實(shí)體間用空格分隔中聲明的若干實(shí)體,實(shí)體間用空格分隔ID該屬性的值唯一地標(biāo)識(shí)包含其
7、的元素該屬性的值唯一地標(biāo)識(shí)包含其的元素IDREF其屬性值須映射到其屬性值須映射到XML文件已經(jīng)存在的文件已經(jīng)存在的ID類型屬性類型屬性IDREFS文檔中若干個(gè)元素的文檔中若干個(gè)元素的ID屬性值屬性值NMTOKEN任意不含空格的任意不含空格的XML名稱,但可用數(shù)字為名稱開頭名稱,但可用數(shù)字為名稱開頭NMTOKENS多個(gè)多個(gè)XML名稱,每個(gè)名稱,每個(gè)NMTOKEN間以空格分隔間以空格分隔NOTATION在在DTD中聲明的記號(hào)名中聲明的記號(hào)名3.3 DTD 屬性聲明 在聲明屬性時(shí)有以下需要注意的事項(xiàng)。 (1)可以多次為一個(gè)元素聲明其中所包含的屬性。 (2) 屬性的聲明在文檔中的次序沒有嚴(yán)格的要求,可
8、位于與其相連的元素聲明之前或之后。 (3) 所有元素的屬性,都要在各自所對(duì)應(yīng)的標(biāo)記中聲明。3.3 DTD 屬性聲明 屬性有4種不同類型的默認(rèn)值,可在屬性聲明中的Default_value部分指定。 default:表示使用提供的默認(rèn)值,default不是一個(gè)關(guān)鍵字,它代表一個(gè)預(yù)設(shè)的字符串。 此例句表示當(dāng)在XML文檔中省略了對(duì)bookinfo元素的bookcat屬性值進(jìn)行設(shè)定時(shí),該屬性的默認(rèn)值就是“文藝”。 #REQUIRED:表示屬性值必須指定。 #IMPLIED:表示元素的這個(gè)屬性可用可不用。 #FIXED:表示元素的這個(gè)屬性值是一個(gè)固定值,且必須是指定的值。 在屬性的聲明中TYPE部分為屬
9、性的類型設(shè)定,DTD中屬性的類型有10種,下面將對(duì)這些數(shù)據(jù)類型進(jìn)行逐一的介紹。 1. CDATA型 CDATA型表明屬性值為不包含“”和“”的任意字符串,如果屬性值中需要包含“”和“”,則可使用特殊字符來代替Francis GlassborowYou Can Do It!Tom SwanCode SecretsTom SwanDigital Control System 2. Enumerated型 如果屬性值并不是任意的字符串,而是在幾個(gè)可能的值中進(jìn)行選擇,如書籍的“類別”屬性,其值可為“文藝”,也可為“自然科學(xué)”,而不可能為其他情況時(shí),則可以將書籍的“類別”屬性設(shè)定為Enumerated型
10、。 3. ID型 當(dāng)元素的某個(gè)屬性值是不能重復(fù)時(shí),如書籍的ISBN屬性、個(gè)人的“身份證號(hào)”屬性等,要定義這樣的屬性則需使用屬性的ID類型。在一個(gè)XML文檔中,所有元素的ID類型屬性的屬性值必須是唯一的,不可重復(fù),另外,一個(gè)元素不能有超過一個(gè)ID類型的屬性。Francis GlassborowYou Can Do It!Tom SwanCode SecretsTom SwanDigital Control System4. IDREF與IDREFS型 IDREF為Identifier Reference的縮寫,IDREF與ID類型屬性的關(guān)系為子元素與父元素的關(guān)系,即IDREF類型屬性的值必須是其
11、他元素的ID類型屬性的值,且該ID類型屬性的值必須在文檔的其他地方被設(shè)定過。IDREFS類型屬性的屬性值可有多個(gè),每一個(gè)都必須是在文檔其他地方被設(shè)定了的ID類型屬性的值,而這多個(gè)屬性值之間用空格隔開。 LarryTom清華大學(xué)出版社科學(xué)出版社 5. ENTITY與ENTITIES型 ENTITY類型的屬性提供了把外部二進(jìn)制形式的文件(如.jpeg、.mp3等)和外部不可解析實(shí)體鏈接到XML文檔的功能。因此其屬性值也必須為不可解析的鏈接外部實(shí)際數(shù)據(jù)的通用實(shí)體名。ENTITIES類型屬性的屬性值可由多個(gè)不可解析的外部實(shí)體名稱組成,各實(shí)體名稱之間使用空格隔開。 6. NMTOKEN與NMTOKENS
12、型 NMTOKEN類型的屬性限定屬性值是有效的XML名稱,這個(gè)屬性值可以由英文、數(shù)字、“.”、 “_”、“-”、“:”等組成,這里有幾點(diǎn)需要注意。 (1) 不能包括空格。 (2) 以上字符中除“:”以外,其他字符都可以作為開頭字符。 (3) “:”可以出現(xiàn)在中間,但由于它是命名域的關(guān)鍵字符,所以一般不提倡使用。7. NOTATION型 XML文檔中引入了外部不可解析的實(shí)體后,解析器無法解析這些二進(jìn)制文件,這時(shí),就可以使用NOTATION類型的屬性為這些二進(jìn)制文件指定與其對(duì)應(yīng)的應(yīng)用軟件以對(duì)其進(jìn)行處理。 空白屬性類型 xml:space是XML中用來設(shè)置解析器與應(yīng)用程序之間處理方法的屬性 是枚舉類
13、型的屬性,有default和preserve兩個(gè)值 default:表示解析器將空格符傳遞給應(yīng)用程序后,由應(yīng)用程序決定如何處理空格符 preserve:表示解析器將空格符傳遞給應(yīng)用程序后,要求應(yīng)用程序保留這些空格符 語法: Eg.!ATTLIST ele xml:space (default|preserve) “default”語系屬性類型 Xml:lang屬性是用來設(shè)置元素中文字的語言信息 語法: la:拉丁文 en:英文 tw:繁體中文 zhCN:檢體中文 語系的作用:搜索數(shù)據(jù)時(shí),應(yīng)用程序可根據(jù)這個(gè)屬性決定是否對(duì)元素內(nèi)的數(shù)據(jù)進(jìn)行處理3.4 DTD 實(shí)體聲明 實(shí)體: 包含包含XML文檔細(xì)節(jié)
14、內(nèi)容的存儲(chǔ)單元稱為實(shí)體;文檔細(xì)節(jié)內(nèi)容的存儲(chǔ)單元稱為實(shí)體;實(shí)體可能是由一個(gè)文件、一個(gè)數(shù)據(jù)庫記錄或其實(shí)體可能是由一個(gè)文件、一個(gè)數(shù)據(jù)庫記錄或其他包含數(shù)據(jù)的項(xiàng)目組成。他包含數(shù)據(jù)的項(xiàng)目組成。 在在XML文件中實(shí)體是一種數(shù)據(jù)單位文件中實(shí)體是一種數(shù)據(jù)單位 實(shí)體具有名稱和內(nèi)容實(shí)體具有名稱和內(nèi)容 實(shí)體由字符或二進(jìn)制數(shù)據(jù)所組成,需借助該實(shí)實(shí)體由字符或二進(jìn)制數(shù)據(jù)所組成,需借助該實(shí)體名稱才能使用體名稱才能使用實(shí)體的分類 在DTD中定義的實(shí)體的兩種類型: 通用實(shí)體:引用格式為“&實(shí)體名;” 參數(shù)實(shí)體:引用格式為“%實(shí)體名;” 實(shí)體也可以分為: 內(nèi)部實(shí)體:與XML文檔存儲(chǔ)在一起的實(shí)體 外部實(shí)體:存放在其他文件內(nèi)的
15、實(shí)體 通用實(shí)體的聲明: 內(nèi)部實(shí)體: 文本內(nèi)容在使用中要用雙引號(hào)括起來,是一個(gè)可以解析的文本數(shù)據(jù)內(nèi)容 舉例: 使用內(nèi)部實(shí)體的例子:!DOCTYPE PersonalData Larry89342324097323423Irene&MYADDRESS; 外部實(shí)體外部實(shí)體 采用外部映射的方式,使用時(shí)須創(chuàng)建一個(gè)要被映射采用外部映射的方式,使用時(shí)須創(chuàng)建一個(gè)要被映射的的DTD文件文件 外部實(shí)體外部實(shí)體如果實(shí)體所代表的內(nèi)容不僅僅是一串字符,而表如果實(shí)體所代表的內(nèi)容不僅僅是一串字符,而表示的是一個(gè)示的是一個(gè)外部文件外部文件,且是,且是文本字符數(shù)據(jù)文本字符數(shù)據(jù)時(shí)使用時(shí)使用 舉例舉例 實(shí)體的分類: 解析實(shí)
16、體:可以由XML解析器處理的實(shí)體,主要是由文本字符數(shù)據(jù)內(nèi)容構(gòu)成的實(shí)體。實(shí)質(zhì)是使用較短的文本取代較長(zhǎng)的文本的方法 未解析實(shí)體:不能被XML解析器所處理等實(shí)體,只是提供給其他的應(yīng)用程序去處理。通常以某種二進(jìn)制形式存在,如圖片、聲音、動(dòng)畫等。 注意: 解析實(shí)體在元素中引用 未解析實(shí)體只能在屬性中,XML處理器必須知道如何處理這些未解析實(shí)體 參數(shù)實(shí)體 參數(shù)實(shí)體既可以是內(nèi)部的也可以是外部的。不過,參數(shù)實(shí)體只用在DTD中。參數(shù)實(shí)體的格式與一般實(shí)體很類似,只不過中間要加上“%”符。 格式:或引用方式為:%實(shí)體名; 參數(shù)實(shí)體只能出現(xiàn)在DTD文件中 參數(shù)實(shí)體前面須加“” 在DTD中使用參數(shù)實(shí)體時(shí),須使用“” 舉例:3.5 DTD的完整性的完整性 一個(gè)完整的DTD,應(yīng)滿足下面兩個(gè)條件 (1)不能出現(xiàn)標(biāo)記的嵌套 標(biāo)記的嵌套是指一個(gè)標(biāo)記的子標(biāo)記中又含有該標(biāo)記的父標(biāo)記,這種情況在DTD中是不允許出現(xiàn)的。例如: (2)必須確定每一個(gè)標(biāo)記的約束條件 必須確定每一個(gè)標(biāo)記的約束條件 對(duì)于XML文件中出現(xiàn)的每一個(gè)標(biāo)記,在DTD中都應(yīng)該有它所標(biāo)記內(nèi)容的約束。例如:!ELEMENT persions (persios) 其中,只對(duì)“na
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年時(shí)光的落幕黑金色年終匯報(bào)的魅力
- 2025年陽春公共衛(wèi)生醫(yī)院筆試及答案
- 2025年深圳教師事業(yè)編考試試題及答案
- 2025年-運(yùn)營商通信類筆試及答案
- 2025年小學(xué)科學(xué)教師編筆試及答案
- 2026上海證券交易所員工招聘筆試模擬試題及答案解析
- 2025年興安盟事業(yè)編公告筆試及答案
- 2025年紅旗區(qū)事業(yè)編考試真題及答案
- 2026年《鉆探技術(shù)的創(chuàng)新與發(fā)展趨勢(shì)》
- 2026曲靖市事業(yè)單位公開招聘工作人員(889人)考試備考試題及答案解析
- 2025年網(wǎng)約車司機(jī)收入分成合同
- 2026年海南財(cái)金銀河私募基金管理有限公司招聘?jìng)淇碱}庫參考答案詳解
- 2026年GRE數(shù)學(xué)部分測(cè)試及答案
- 浙江省寧波市鎮(zhèn)海中學(xué)2026屆高二上數(shù)學(xué)期末教學(xué)質(zhì)量檢測(cè)模擬試題含解析
- (2025年)電力交易員練習(xí)試題附答案
- 2026年咨詢工程師現(xiàn)代咨詢方法與實(shí)務(wù)模擬測(cè)試含答案
- 甘肅省酒泉市2025-2026學(xué)年高一上學(xué)期期末語文試題(解析版)
- GB/T 3634.1-2025氫氣第1部分:工業(yè)氫
- JJG 499-2021 精密露點(diǎn)儀檢定規(guī)程
- T-CPQS A0011-2022 二手車車況檢測(cè)及評(píng)估通則
- 吸毒的危害性后果
評(píng)論
0/150
提交評(píng)論