XML應(yīng)用與開發(fā)-第02章理論課ppt課件_第1頁
XML應(yīng)用與開發(fā)-第02章理論課ppt課件_第2頁
XML應(yīng)用與開發(fā)-第02章理論課ppt課件_第3頁
XML應(yīng)用與開發(fā)-第02章理論課ppt課件_第4頁
XML應(yīng)用與開發(fā)-第02章理論課ppt課件_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第第02章章DTD與命名空間目的l 什么是DTDl 為什么要用DTDl 如何創(chuàng)建DTDl 元素的定義l 屬性的定義l 定義實(shí)體l 應(yīng)用命名空間什么是DTDl 文檔類型定義文檔類型定義-Document Type Definitionl DTD用來描述用來描述XML文檔的結(jié)構(gòu),一個文檔的結(jié)構(gòu),一個DTD文檔包含:文檔包含:l 元素元素(ELEMENT)的定義規(guī)則的定義規(guī)則l 元素之間的關(guān)系規(guī)則元素之間的關(guān)系規(guī)則l 屬性屬性(ATTLIST)的定義規(guī)則的定義規(guī)則l 可使用的實(shí)體可使用的實(shí)體(ENTITY)或符號或符號(NOTATION)規(guī)則規(guī)則l DTD文檔與文檔與XML文檔實(shí)例的關(guān)系文檔實(shí)例的關(guān)

2、系l 類與對象類與對象l 數(shù)據(jù)庫表結(jié)構(gòu)與數(shù)據(jù)記錄數(shù)據(jù)庫表結(jié)構(gòu)與數(shù)據(jù)記錄為什么要用DTD有了有了DTD,每個,每個XML文件可以攜帶一個自身格式的描述。文件可以攜帶一個自身格式的描述。 有了有了DTD,不同組織的人可以使用一個通用,不同組織的人可以使用一個通用DTD用來交用來交換數(shù)據(jù)。換數(shù)據(jù)。應(yīng)用程序可以使用一個標(biāo)準(zhǔn)應(yīng)用程序可以使用一個標(biāo)準(zhǔn)DTD校驗(yàn)從外部世界接受來校驗(yàn)從外部世界接受來的的XML數(shù)據(jù)是否有效數(shù)據(jù)是否有效可以使用可以使用DTD校驗(yàn)自己的校驗(yàn)自己的XML數(shù)據(jù)數(shù)據(jù)如何創(chuàng)建DTD文檔(1/4)DTD文檔的聲明及引用文檔的聲明及引用內(nèi)部內(nèi)部DTD文檔文檔外部外部DTD文檔文檔內(nèi)外部內(nèi)外部D

3、TD文檔結(jié)合文檔結(jié)合如何創(chuàng)建DTD文檔(2/4)!DOCTYPE poem -根元素的名稱-子元素的名稱及順序-子元素的數(shù)據(jù)類型 -結(jié)束標(biāo)簽 王維 鹿柴 空山不見人,但聞人語聲. 返景入深林,復(fù)照青苔上. 留意:例中的定義關(guān)鍵字一定要大寫,如留意:例中的定義關(guān)鍵字一定要大寫,如DOCTYPE、 ELEMENT、#PCDATA,且元素名稱與數(shù)據(jù)類型之間也要有空格。,且元素名稱與數(shù)據(jù)類型之間也要有空格。內(nèi)部內(nèi)部DTD示例示例如何創(chuàng)建DTD文檔(3/4)王維鹿柴空山不見人,但聞人語聲.返景入深林,復(fù)照青苔上. 外部外部DTD示例示例如何創(chuàng)建DTD文檔(4/4)!DOCTYPE poem SYSTEM

4、 ex2.dtd 王維鹿柴空山不見人,但聞人語聲.返景入深林,復(fù)照青苔上.內(nèi)部和外部內(nèi)部和外部DTD示例示例元素的定義 (1/5)語法關(guān)鍵字關(guān)鍵字元素名稱元素名稱EMPTY該元素不能包含子元素和文本,但可以有屬性(空元素)該元素不能包含子元素和文本,但可以有屬性(空元素)ANY該元素可以包含任何在該元素可以包含任何在DTD中定義的元素內(nèi)容中定義的元素內(nèi)容#PCDATA可以包含任何字符數(shù)據(jù),但是不能在其中包含任何子元素可以包含任何字符數(shù)據(jù),但是不能在其中包含任何子元素純元素類型只包含子元素,并且這些子元素外沒有文本純元素類型只包含子元素,并且這些子元素外沒有文本混合類型包含子元素和文本數(shù)據(jù)的混合

5、體混合類型包含子元素和文本數(shù)據(jù)的混合體元素類型元素類型元素的定義(2/5)EMPTY示例-空元素皮諾曹皮諾曹爸爸元素的定義(3/5)ANY示例皮諾曹皮諾曹爸爸將根元素設(shè)為ANY類型后,元素出現(xiàn)的次數(shù)和順序不受限制。元素的定義(4/5)#PCDATA示例皮諾曹皮諾曹爸爸 元素的定義(5/5)組合類型示例修飾符號符號 用途 示例示例說明( )用來給元素分組 (古龍|金庸|梁羽生),(王朔|余杰),毛毛 分成三組 |在列出的對象中選擇一個 (作者|翻譯) 表示作者或者翻譯必須出現(xiàn),兩者至少選一 +該對象最少出現(xiàn)一次,可以出現(xiàn)多次 (1或多次)(成員+) 表示成員必須出現(xiàn),而且可以出現(xiàn)多個成員*該對象

6、允許出現(xiàn)零次到任意多次(0到多次)(愛好*) 愛好可以出現(xiàn)零次到多次?該對象可以出現(xiàn),但只能出現(xiàn)一次 (0到1次)(菜鳥?) 菜鳥可以出現(xiàn),也可以不出現(xiàn),如果出現(xiàn)的話,最多只能出現(xiàn)一次 ,對象必須按指定的順序出現(xiàn) (西瓜,蘋果,香蕉) 表示西瓜、蘋果、香蕉必須出現(xiàn),并且按這個順序出現(xiàn) 屬性的定義l 語法l CDATA文本文本ID編號且是唯一的值)編號且是唯一的值)IDREF/IDREFSNMTOKEN/NMTOKENSEnumeratedENTITY/ENTITIESNOTATIONNOTATION(enumerated)#REQUIRED在元素內(nèi)部)在元素內(nèi)部)#IMPLIED#FIXED

7、valueDefault value屬性類型 CDATA屬性值可以是任何字符包括數(shù)字和中文) 請注意這里的CDATA與前面講過的CDATA的區(qū)別 #PCDATA與CDATA的區(qū)別屬性類型NMTOKEN/NMTOKENSNMTOKEN是CDATA 的一個子集,表示屬性值必須是英文字母、數(shù)字、句號、破折號、下劃線或冒號不能是中文?。MTOKENS與NMTOKEN類似,包含多個由空格分隔的字符。!DOCTYPE poems 八陣圖八陣圖 功蓋三分國功蓋三分國,名成八陣圖名成八陣圖, 江流石不轉(zhuǎn)江流石不轉(zhuǎn),遺恨失吞吳遺恨失吞吳. !DOCTYPE poems 八陣圖八陣圖 功蓋三分國功蓋三分國,名

8、成八陣圖名成八陣圖, 江流石不轉(zhuǎn)江流石不轉(zhuǎn),遺恨失吞吳遺恨失吞吳. 屬性類型 ID表明該屬性的取值必須是唯一的。ID屬性值必須是合格的屬性值必須是合格的XML名字名字屬性類型- IDREF/IDREFSIDREF屬性的值指向文檔中其它地方聲明的ID類型的值。IDREFS同IDREF,但是可以具有由空格分開的多個引用。 空格屬性類型枚舉事先定義好一些值,屬性的值必須在所列出的值的范圍內(nèi)。屬性的約束- #REQUIRED元素的所有實(shí)例都必須有該屬性的值(NOT NULL)語法:DTD 例如: XML 例如: 屬性的約束 #IMPLIED元素的實(shí)例中可以忽略該屬性(NULL)。語法: DTD示例:

9、XML示例: 屬性的約束 #FIXED 元素實(shí)例中該屬性的值必須為指定的固定值。語法:DTD示例: XML示例: 屬性的約束默認(rèn)值為屬性提供一個默認(rèn)的值語法:DTD示例: XML示例: 實(shí)體l 作用:避免重復(fù)輸入 (宏、變量)l XML中五個預(yù)定義實(shí)體l 自定義實(shí)體語法:l !DOCTYPE 根元素 l l l 引用已定義的實(shí)體:l &實(shí)體名;實(shí)體符號<&"'屬性類型ENTITY/ENTITIESENITITY類型的屬性的值必須對應(yīng)一個在DTD文檔內(nèi)聲明的實(shí)體。通常用來處理外部的二進(jìn)制數(shù)據(jù)文件,如圖形、音效等ENTITI

10、ES類型的屬性的值與ENITITIES類似,不同的是可以包含多個由空格分開的實(shí)體。!DOCTYPE library A001 定義實(shí)體內(nèi)部實(shí)體語法: DTD 例如:XML 例如:&writer;&copyright; 定義實(shí)體外部實(shí)體語法:DTD 例如: XML 例如:&writer;&copyright; 實(shí)體類型(1/5)l實(shí)體類型:普通實(shí)體、外部實(shí)體、參數(shù)實(shí)體、外部參數(shù)實(shí)體 類型普通實(shí)體參數(shù)實(shí)體使用場合使用場合 用在用在XML文檔中文檔中 只用在只用在DTD中元素和屬性的聲明中中元素和屬性的聲明中 聲聲明明方方式式 內(nèi)部內(nèi)部 外部外部 引用方式引用方式 &

11、amp;實(shí)體名實(shí)體名;%實(shí)體名實(shí)體名;實(shí)體類型(2/5)普通實(shí)體的示例普通實(shí)體的示例實(shí)體類型(3/5)外部實(shí)體的概念實(shí)際上很簡單,比如在上面的例子中,我們的實(shí)體定義為:這里表示用$來代替currency,但是如果currency指代的內(nèi)容很大很復(fù)雜的時候,我們可以用一個外部文件來保存這部分的內(nèi)容。比如采用如下的代碼:這里表示用文檔somewebsite/somecategory/something.xml來表示實(shí)體currency的具體內(nèi)容。需要指出的是,這里的something.xml文檔必須是一個格式完善的XML文檔。上面就是外部實(shí)體的概念。實(shí)體類型(4/5)所謂參數(shù)實(shí)體的概念就是說該實(shí)體

12、實(shí)際上不是在具體實(shí)例化文檔中使用,而是在DTD文檔內(nèi)部被使用,比如我們可以定義一個如下的實(shí)體:然后可以在DTD內(nèi)部通過%地址;來引用它,具體例子如下:上面就是參數(shù)實(shí)體的概念。實(shí)體類型(5/5)外部參數(shù)實(shí)體和參數(shù)實(shí)體的關(guān)系和外部實(shí)體與普通實(shí)體的關(guān)系一樣,也就是說,實(shí)體的內(nèi)容不是在兩個引號之間表示,而是用一個外部的XML文檔來表示,比如:然后可以在DTD內(nèi)部通過%地址;來引用它。這里%地址;相當(dāng)于一個普通的元素ELEMENT),這就是外部參數(shù)實(shí)體的概念。XML 命名空間 2-1l 在 XML 文檔中可以用作元素或?qū)傩悦Q的名稱集合l 命名空間使瀏覽器可以執(zhí)行以下操作:l 組合來自不同源的文檔,并有

13、助于識別元素或?qū)傩缘脑磍 訪問 DTD 或用于驗(yàn)證文檔的元素和屬性的其他描述l Uniform Resource Identifier統(tǒng)一資源標(biāo)識符,URI識別 XML 的命名空間l Uniform Resource Name統(tǒng)一資源名稱,URN是標(biāo)識 Internet 資源的全球唯一編號l Uniform Resource Locator (統(tǒng)一資源定位符,URL包含對 Web 上的某個文檔或 HTML 頁面的引用命名空間的必要性有助于標(biāo)準(zhǔn)化元素和屬性,并為它們加上唯一的標(biāo)志確保元素名稱中沒有沖突,并闡明了它們的來源XML 命名空間 2-2演示:例如 6 命名空間聲明屬性和命名空間l 除非帶有前綴,否則屬性屬于它們的元素的命名空間. . . 第三批次 第一批次 午班批次 . . . . .xmlns= Aptech_edu.acxmlns:tea= “ 第三批次 第三批茶 午班批次. . .Aptech 的類元素使用了茶業(yè)領(lǐng)域的 tea:type 屬性可以包括兩個名稱相同但屬于不同命名空間的屬性。 第一批茶命名空間應(yīng)用程序演示:例如 7 夜班培訓(xùn)批次 早班培訓(xùn)批次 午班培訓(xùn)批次 第一批茶批號 333 第二批茶批號 222 命名空間的聲明告訴用戶此 batch 元素在 Ap

溫馨提示

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

評論

0/150

提交評論