使用DTD規(guī)范XML文檔_第1頁
使用DTD規(guī)范XML文檔_第2頁
使用DTD規(guī)范XML文檔_第3頁
使用DTD規(guī)范XML文檔_第4頁
使用DTD規(guī)范XML文檔_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Page 1DTDDTD基本概念基本概念3.1DTDDTD對元素的聲明對元素的聲明3.2 DTD DTD對屬性的聲明對屬性的聲明3.3 DTD DTD的引用的引用3.4 XML Schema XML Schema簡介簡介3.6 實體的聲明與引用實體的聲明與引用3.5Page 23.1.1 DTD簡介簡介對對XML文檔所作的規(guī)范和約定被稱為文檔所作的規(guī)范和約定被稱為DTD,也就是文檔類型定義??梢园岩簿褪俏臋n類型定義??梢园袲TD看作是看作是編寫某類編寫某類XML文檔的一個模板。文檔的一個模板。Page 3在一個在一個DTD中,具體規(guī)定了引用該中,具體規(guī)定了引用該DTD的的XML文檔可使用哪些標

2、記、父元素中能夠包括哪些子文檔可使用哪些標記、父元素中能夠包括哪些子元素、各個元素出現的先后順序、元素可包含的元素、各個元素出現的先后順序、元素可包含的屬性、元素和屬性值的數據類型,以及可使用的屬性、元素和屬性值的數據類型,以及可使用的實體及符號規(guī)則等。實體及符號規(guī)則等。DTD由許多約定和聲明語句構成,這些語句可以由許多約定和聲明語句構成,這些語句可以包含在包含在XML文檔內部,被稱為內部文檔內部,被稱為內部DTD;也可;也可以獨立保存為一個文件,而稱為外部以獨立保存為一個文件,而稱為外部DTD。Page 4DTD主要具有下列幾方面的作用:主要具有下列幾方面的作用:可以驗證可以驗證XML文檔數

3、據的有效性。文檔數據的有效性??梢詾槟愁惪梢詾槟愁怷ML文檔提供統(tǒng)一的格式和相文檔提供統(tǒng)一的格式和相同的結構。同的結構。可以保證在一定范圍內,可以保證在一定范圍內,XML文檔數據的文檔數據的交流和共享。交流和共享。應用程序設計人員根據應用程序設計人員根據DTD就能夠知道對就能夠知道對應應XML文檔的邏輯結構,從而編寫出相應文檔的邏輯結構,從而編寫出相應的處理應用程序。的處理應用程序。Page 53.1.2 DTD的基本結構的基本結構在一份在一份DTD中,包含了對中,包含了對XML文檔所使用文檔所使用的元素、元素間的關系、元素可用的屬性、的元素、元素間的關系、元素可用的屬性、可使用的實體等的定義

4、規(guī)則。一份可使用的實體等的定義規(guī)則。一份DTD實實際上是若干條有關元素、屬性、實體等定際上是若干條有關元素、屬性、實體等定義和聲明語句的集合。義和聲明語句的集合。書中的書中的DTDDemo_01.xml是一個包含內部是一個包含內部DTD聲明的完整聲明的完整XML文檔。文檔。Page 6根據能否對根據能否對XML文檔進行約束模式校驗,文檔進行約束模式校驗,可以將解析器分為兩類:可以將解析器分為兩類:1.非校驗解析器,如非校驗解析器,如IE2.校驗解析器校驗解析器Page 7IE5以上的瀏覽器內置了以上的瀏覽器內置了XML解析工具:解析工具:Microsof.XMLDOM,開發(fā)人員可以編寫,開發(fā)人

5、員可以編寫JavaScript代碼,代碼,利用這個解析工具裝載利用這個解析工具裝載XML文件,并對文件,并對XML文件進行文件進行DTD驗證。驗證。1.創(chuàng)建創(chuàng)建XML文檔解析器對象文檔解析器對象var xmldoc = new ActiveXObject(Microsoft.XMLDOM);2.開啟開啟XML校驗校驗xmldoc.validateOnParse=true;3.裝載裝載XML文檔文檔xmldoc.load(“book.xml);4.獲取錯誤信息獲取錯誤信息 var reson = xmldoc.parseError.reason; var line = xmldoc.parseE

6、rror.line;Page 8DTD約束文檔可以在約束文檔可以在XML中直接定義也可中直接定義也可以單獨編寫(單獨編寫的以單獨編寫(單獨編寫的DTD必須以必須以UTF-8保存)保存)Page 9引入外部的引入外部的DTD文檔來約束當前的文檔來約束當前的XML文檔文檔 有兩種方式:有兩種方式:1 DTD文件在本地:文件在本地:2 DTD文件在網絡上:文件在網絡上:Page 10在在DTD中可以包含下列各種聲明語句:中可以包含下列各種聲明語句:DTD聲明開始語句聲明開始語句元素類型聲明語句元素類型聲明語句屬性列表聲明語句屬性列表聲明語句實體聲明語句實體聲明語句注釋語句注釋語句Page 113.2

7、.1 元素聲明的語法元素聲明的語法語法:語法:說明:說明:!ELEMENT: 元素聲明語句的開始,元素聲明語句的開始,關鍵字關鍵字ELEMENT必須大寫。必須大寫。element_name: 所聲明的元素名稱。所聲明的元素名稱。element_definition:對該元素內容的定義,:對該元素內容的定義,用來規(guī)定該元素可以包含的內容。用來規(guī)定該元素可以包含的內容。例例:Page 123.2.2 各種元素的聲明各種元素的聲明1基本字符元素的聲明基本字符元素的聲明2含子元素的嚴格聲明含子元素的嚴格聲明3包含任意內容的聲明包含任意內容的聲明4子元素出現次數的聲明子元素出現次數的聲明5選擇性子元素的

8、聲明選擇性子元素的聲明6空元素的聲明空元素的聲明7混合型元素的聲明混合型元素的聲明8實體的聲明實體的聲明Page 13語法:語法:指示元素的主體內容只能是普通的文指示元素的主體內容只能是普通的文本本.(Parsed Character Data) Page 14語法:語法:(子元素子元素):指示元素中包含的子元素指示元素中包含的子元素 如果子元素用逗號分開,說明必須按照聲明如果子元素用逗號分開,說明必須按照聲明順序去編寫順序去編寫XML文檔文檔Page 15語法:語法: ANY:用于指示元素的主體內容為任意類型用于指示元素的主體內容為任意類型 Page 16語法:語法:語法:語法:(子元素子元

9、素):指示元素中包含的子元素指示元素中包含的子元素 用無符號、用無符號、+、*、?來表示元素出現的次數(與、?來表示元素出現的次數(與正則表達式一致)正則表達式一致)1 無符號:只能出現一次無符號:只能出現一次2 +:表示一次到多次,至少有一次:表示一次到多次,至少有一次3 ?:?:0次或者次或者1次次4 *:隨便次數:隨便次數Page 17語法:語法:語法:語法:(子元素子元素):指示元素中包含的子元素指示元素中包含的子元素 1如果子元素用如果子元素用“|”分開,說明任選其一。分開,說明任選其一。Page 18語法:語法: EMPTY:指示元素的不能有主體內容。指示元素的不能有主體內容。 P

10、age 19如果元素擁有混合的內容,它可以包含字如果元素擁有混合的內容,它可以包含字符數據。而且如果你在宣告中設定一個或符數據。而且如果你在宣告中設定一個或多個子元素型態(tài),它可以包含那些子元素多個子元素型態(tài),它可以包含那些子元素的任何一個,以任何的順序,以及任何次的任何一個,以任何的順序,以及任何次數的重復(零或多個)。換言之,利用混數的重復(零或多個)。換言之,利用混合內容你可以限制子元素的型態(tài),但你無合內容你可以限制子元素的型態(tài),但你無法限制子元素型態(tài)出現的順序或次數,也法限制子元素型態(tài)出現的順序或次數,也不能強制特定子元素型態(tài)。不能強制特定子元素型態(tài)。 Page 20要宣告混合內容的元素

11、型態(tài),你可以使用下列兩要宣告混合內容的元素型態(tài),你可以使用下列兩種內容模型格式的任何一種:種內容模型格式的任何一種: 1 只有字符數據只有字符數據 。要宣告只包含字符數據的元。要宣告只包含字符數據的元素型態(tài),使用內容模型(素型態(tài),使用內容模型(#PCDATA)。例如,)。例如,下面的宣告讓下面的宣告讓SUBTITLE 元素只能包含字符數據:元素只能包含字符數據: 根據這個宣告,下面兩個元素都是有效的:根據這個宣告,下面兩個元素都是有效的:A New Approach Page 21字符數據加上額外的子元素字符數據加上額外的子元素 。要宣告一個可以。要宣告一個可以包含字符數據加上零個或多個子元素

12、的元素型態(tài),包含字符數據加上零個或多個子元素的元素型態(tài),在內容模型中將每一個子元素列在在內容模型中將每一個子元素列在#PCDATA 之之后,利用后,利用 | 字符來分隔每個項目,并在整個內字符來分隔每個項目,并在整個內容模型之后加入星號容模型之后加入星號( * )。在內容模型中每一個。在內容模型中每一個元素的名稱只能出現一次。例如,下面的宣告允元素的名稱只能出現一次。例如,下面的宣告允許許TITLE 元素可以包含字符數據,另外加上零元素可以包含字符數據,另外加上零或多個或多個SUBTITLE 子元素:子元素: Page 223.2.3 元素聲明綜合示例元素聲明綜合示例1靈活控制元素出現次數靈活

13、控制元素出現次數2元素的分組與嵌套元素的分組與嵌套Page 233.3.1 屬性聲明的語法屬性聲明的語法語法:語法:Page 24說明:說明:!ATTLIST:表示屬性定義語句的開始,:表示屬性定義語句的開始,ATTLIST是關鍵字,必須大寫。是關鍵字,必須大寫。Element_Name:元素名,用來指定對該元素的:元素名,用來指定對該元素的屬性進行聲明。屬性進行聲明。Attribute_Name:該元素具有的某個屬性名,:該元素具有的某個屬性名,屬性的命名規(guī)則與元素的命名規(guī)則是一致的。屬性的命名規(guī)則與元素的命名規(guī)則是一致的。Type:屬性的數據類型。:屬性的數據類型。added_declar

14、e:屬性的附加聲明,是一個可選:屬性的附加聲明,是一個可選項。項。Page 253.3.2 屬性的附加聲明屬性的附加聲明1#REQUIRED表示在相應的表示在相應的XML文檔中該元素的這個屬文檔中該元素的這個屬性是必須的,并必須給出一個屬性值。性是必須的,并必須給出一個屬性值。2#IMPLIED表示在表示在XML文檔中該元素的這個屬性是可文檔中該元素的這個屬性是可有可無的。有可無的。Page 263#FIXED AttValue表示在表示在XML文檔中該元素的這個屬性值是文檔中該元素的這個屬性值是所給定的固定值,不能更改。所給定的固定值,不能更改。4Default_Value在屬性的附加聲明中

15、如果直接給定一個用在屬性的附加聲明中如果直接給定一個用引號括起來的字符串,表示預設的默認屬引號括起來的字符串,表示預設的默認屬性值。性值。Page 273.3.3 屬性的各種類型屬性的各種類型某個屬性的類型(某個屬性的類型(Type)規(guī)定了哪種類型)規(guī)定了哪種類型的數據可以作為該屬性的值。的數據可以作為該屬性的值。XML規(guī)范允規(guī)范允許為元素的屬性指定許為元素的屬性指定10種不同的類型。種不同的類型。Page 281CDATA類型類型2ID類型類型3IDREF類型類型4IDREFS類型類型5ENTITY類型類型6ENTITIES類型類型7NMTOKEN類型類型8NMTOKENS類型類型9NOTA

16、TION類型類型10Enumerated類型類型Page 293.4.1 引用內部引用內部DTD語法:語法:其中:其中:!DOCTYPE:表示:表示DTD聲明的開始,關鍵字聲明的開始,關鍵字DOCTYPE必須大寫。必須大寫。根元素名稱:指定根元素名稱:指定XML文檔的根元素名稱,這文檔的根元素名稱,這個根元素名稱必須精確地與文檔中實際的根元素個根元素名稱必須精確地與文檔中實際的根元素名稱一致。名稱一致。Page 30DTD聲明語句序列:包含在一對方括聲明語句序列:包含在一對方括號(號( )之內的若干條語句,用來對)之內的若干條語句,用來對XML文檔中所使用的元素、屬性和實文檔中所使用的元素、屬

17、性和實體等進行具體聲明。體等進行具體聲明。注意:在注意:在XML文檔中引用內部文檔中引用內部DTD時,時,應該在文檔開頭的應該在文檔開頭的XML聲明語句中添聲明語句中添加加 standalone=yes 的說明。的說明。Page 313.4.2 引用外部引用外部DTD1外部外部DTD的創(chuàng)建的創(chuàng)建外部外部DTD是一個獨立于是一個獨立于XML文檔的文件,文檔的文件,使用使用 .dtd為其文件擴展名。此種文件實際為其文件擴展名。此種文件實際上也是一個文本文件,可用任何文本編輯上也是一個文本文件,可用任何文本編輯器創(chuàng)建。器創(chuàng)建。在外部在外部DTD中,除了沒有內部中,除了沒有內部DTD中的中的“!DOC

18、TYPE 根元素名稱根元素名稱”語句之外,語句之外,其他聲明語句都是一樣的。其他聲明語句都是一樣的。Page 322外部外部DTD的引用的引用根據外部根據外部DTD性質的不同,又可將其分為性質的不同,又可將其分為私有私有DTD文件和公共文件和公共DTD文件。私有文件。私有DTD文件是指并未公開的文件是指并未公開的DTD文件,通常屬于文件,通常屬于某個組織內部或個人所有;公共某個組織內部或個人所有;公共DTD文件文件則是為某一應用領域或行業(yè)所制定,被國則是為某一應用領域或行業(yè)所制定,被國際上的標準組織或行業(yè)組織廣泛認可的、際上的標準組織或行業(yè)組織廣泛認可的、公開的、標準的公開的、標準的DTD文件

19、。文件。Page 33引用私有引用私有DTD文件的語法格式為:文件的語法格式為:引用公共引用公共DTD文件的語法格式為:文件的語法格式為:注意:在注意:在XML文檔中引用外部文檔中引用外部DTD時,應該在時,應該在開頭的開頭的XML聲明語句中添加聲明語句中添加standalone=no 說說明。明。Page 343.4.3 混合引用混合引用DTD混合引用混合引用DTD是指:在一個帶有內部是指:在一個帶有內部DTD的的XML文檔中,再引用一個或多個外部文檔中,再引用一個或多個外部DTD來共同規(guī)范文檔中的內容。來共同規(guī)范文檔中的內容。Page 353.5.1 實體的概念與分類實體的概念與分類1實體

20、的概念實體的概念 在在XML規(guī)格書中,實體(規(guī)格書中,實體(Entity)一)一詞具有廣泛的含義,通常是指與詞具有廣泛的含義,通常是指與XML文檔文檔相關的任何下列型式的儲存單元。相關的任何下列型式的儲存單元。Page 36有效的有效的XML文檔本身文檔本身外部的外部的DTD子集子集定義成定義成DTD中外部實體的外部文中外部實體的外部文檔檔在在DTD中定義的用引號括起來的中定義的用引號括起來的字符串字符串Page 372實體的分類實體的分類一般實體:用來替代文檔具體內容的實體。一般實體:用來替代文檔具體內容的實體。參數實體:只能在外部參數實體:只能在外部DTD中定義和引用的實體,中定義和引用的

21、實體,不能在不能在XML文檔中引用。文檔中引用。內部實體:所定義的實體內容并不涉及外部文檔。內部實體:所定義的實體內容并不涉及外部文檔。外部實體:所定義的實體內容為外部獨立存在的外部實體:所定義的實體內容為外部獨立存在的文件。文件??山馕鰧嶓w:包含字符、數字、文本塊或標記的可解析實體:包含字符、數字、文本塊或標記的實體。實體。不可解析實體:包含圖片、聲音等其他二進制數不可解析實體:包含圖片、聲音等其他二進制數據的實體。據的實體。Page 383.5.2 內部一般實體內部一般實體 內部一般實體是指在內部一般實體是指在DTD中定義的一段具體中定義的一段具體文字內容,通常在文字內容,通常在XML文檔

22、的元素中引用,也文檔的元素中引用,也可在可在DTD語句中引用。語句中引用。在在DTD中聲明內部一般實體的語法:中聲明內部一般實體的語法: 說明:說明:!ENTITY :表示開始聲明一個實體,關鍵字:表示開始聲明一個實體,關鍵字ENTITY必須大寫。必須大寫。Entity_Name :表示實體的名稱。:表示實體的名稱。Entity_Value :表示實體的具體內容。:表示實體的具體內容。Page 39在在XML文檔或者文檔或者DTD中引用內部中引用內部一般實體的語法:一般實體的語法:&Entity_Name;Page 403.5.3 外部一般實體外部一般實體 外部實體所對應的內容通常為一

23、個獨外部實體所對應的內容通常為一個獨立存在的文件,在立存在的文件,在DTD中定義某個外部實中定義某個外部實體時需要指定該實體所對應文件的體時需要指定該實體所對應文件的URL。在在DTD中定義外部一般實體的語法:中定義外部一般實體的語法:Page 41說明:說明:!ENTITY :表示開始聲明一個實體,關:表示開始聲明一個實體,關鍵字鍵字ENTITY必須大寫。必須大寫。Entity_Name :表示外部實體的名稱。:表示外部實體的名稱。SYSTEM :是定義為外部實體的關鍵字。:是定義為外部實體的關鍵字。Entity_URL :該實體所對應文件的:該實體所對應文件的URL。在在XML文檔中引用外

24、部一般實體的語法:文檔中引用外部一般實體的語法:&Entity_Name;Page 423.5.4 內部參數實體內部參數實體參數實體的內容不僅可以包含文本,還可以包含參數實體的內容不僅可以包含文本,還可以包含元素類型聲明、屬性列表聲明、一般實體聲明、元素類型聲明、屬性列表聲明、一般實體聲明、標簽聲明、處理指令或注釋等。參數實體只能在標簽聲明、處理指令或注釋等。參數實體只能在DTD中引用,通常情況下只能在外部中引用,通常情況下只能在外部DTD文檔中文檔中引用。引用。Page 43聲明內部參數實體的語法:聲明內部參數實體的語法:說明:說明:!ENTITY :表示開始聲明一個實體,關鍵字:表

25、示開始聲明一個實體,關鍵字ENTITY必須大寫。必須大寫。% :表示聲明的是一個參數實體。:表示聲明的是一個參數實體。Entity_Name :表示內部參數實體的名稱。:表示內部參數實體的名稱。Entity_Value :表示實體的內容。:表示實體的內容。在在DTD中引用內部參數實體的語法:中引用內部參數實體的語法:%Entity_Name;Page 443.5.5 外部參數實體外部參數實體一個獨立的一個獨立的DTD文檔可以被定義為一個外部參數實體,文檔可以被定義為一個外部參數實體,并可通過這個并可通過這個DTD文檔的文檔的URL對其進行引用。對其進行引用。聲明外部參數實體的語法:聲明外部參數

26、實體的語法:說明:說明:!ENTITY :表示開始聲明一個實體,關鍵字:表示開始聲明一個實體,關鍵字ENTITY必必須大寫。須大寫。% :表示定義的是參數實體。:表示定義的是參數實體。Entity_Name :表示實體的名稱。:表示實體的名稱。SYSTEM :是定義為外部實體的關鍵字。:是定義為外部實體的關鍵字。Entity_URL :外部實體文件的:外部實體文件的URL。在在DTD中引用外部參數實體的語法:中引用外部參數實體的語法:%Entity_Name;Page 453.6.1 XML Schema基本概念基本概念XML Schema又被稱為又被稱為XML模式或者模式或者XML架構,架構,用來定義和描述用來定義和描述XML文檔的結構、內容和語義。文檔的結構、內容和語義。XML Schema 就像一幅藍圖,聲明了就像一幅藍圖,聲明了XML文檔文檔中允許的數據和結構,具體規(guī)定了中允許的數據和結構,具體規(guī)定了XML 文檔中文檔中可以包含哪些元素,這些元素又可以具有哪些子可以包含哪些元素,這些元素又可以具有哪些子元素,并可規(guī)定這些子元素出現的順序及其次數元素,并可規(guī)定這些子元素出現的順序及其次數等。另外,等。另外,XML Schema 還具體規(guī)定了還具體規(guī)定了XML文文檔中每個元素和屬性的數據類型。檔中每個元素和屬性的數據類型。P

溫馨提示

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

評論

0/150

提交評論