XML中DTD的屬性與應(yīng)用_第1頁
XML中DTD的屬性與應(yīng)用_第2頁
XML中DTD的屬性與應(yīng)用_第3頁
XML中DTD的屬性與應(yīng)用_第4頁
XML中DTD的屬性與應(yīng)用_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1. DTD的聲明方式分為內(nèi)部聲明與外部聲明內(nèi)部聲明的格式是! DOCTYPE 根元素外部聲明的格式分兩種,對應(yīng)的關(guān)鍵字為SYSTEM與PUBLICPUBLIC聲明的DTD文件通常是一個(gè)由權(quán)威機(jī)構(gòu)制訂的,提供給特定行業(yè)或公眾使用的DTD。2. 元素類型聲明LDTD 中使用的元素內(nèi)容類型有:EMPTY、ANY、Mixed、ElementsEMPTY是指元素不能有任何的內(nèi)容,但可以有屬性:!-這里若是以 的形式岀現(xiàn),即使里面沒有任何數(shù)據(jù),也會產(chǎn)生錯(cuò)誤-ANY說明元素可以有任何類型的子元素,也可以是純文本,還可以為空這里需要特別注意的是,雖然用ANY定義的元素可以包含其它元素,但必須遵循XML文件的

2、“有效的原則,即XML文件規(guī)定文件中所使用的任何元素都必須在DTD中給岀定義看下面這段非法的文件 新概念英語編譯器會提示這樣一條錯(cuò)誤信息This file is not valid: Element 書名has not been declared.DTD定義部分加入定義語句,它并不是以關(guān)鍵字的形式存在的就是提示“書名這個(gè)元素沒有經(jīng)過定義,要糾正這個(gè)錯(cuò)誤,只要在!ELEMENT 書名併PCDATA)就可以了Mixed允許混合內(nèi)容使得字符數(shù)據(jù)和其他元素能在元素內(nèi)共存! DOCTYPE圖書信息今日新到圖書:XML實(shí)用教程 26.00Eleme nts 規(guī)定特定子元素必須按規(guī)則與順序?qū)绗F(xiàn),子元素后可以

3、用各種元字符來說明岀現(xiàn)的次數(shù)可能岀現(xiàn)的元字符:元字符含義+出現(xiàn)1次或多次*出現(xiàn)0次或多次?出現(xiàn)0次或1次無符號只能出現(xiàn)1次下面的例子中,IT求職“的各項(xiàng)子元素必須按順序和元字符說明的次數(shù)來岀現(xiàn)! DOCTYPE IT 求職 中興通訊1.Java高級工程師 2.C+高級工程師 地址:深圳市南山區(qū)高新技術(shù)產(chǎn)業(yè)園科技南路中興通訊大廈 電話里巴巴 軟件測試工程師3. 定義有效的元素屬性在DTD中定義屬性時(shí),我們采用下面的格式:v!ATTLIST 元素名屬性名(屬性值屬性類型缺省值)*例如:根據(jù)XML文件是否必須為一個(gè)屬性提供取值,屬性的缺省值又可以分為以下四類* 必須賦值

4、的屬性 REQUIRED* 屬性值可有可無的屬性IMPLIED*固定取值的屬性 FIXED*自定義的缺省值F面用一個(gè)例子來說明這四類缺省屬性! DOCTYPE圖書信息!ELEMENT 圖書信息(書名,作者,價(jià)格)姓名 CDATA #REQUIRED性別(男|女)男“聯(lián)系方式 CDATA #IMPLIED二分類CDATA #FIXED WEB編程技術(shù)II書名 ASP.NET案例開發(fā)集錦/書名作者 姓名=趙輝、楊麗敏/價(jià)格 37.00 /價(jià)格書名C#高級編程/書名 作者 姓名=wrox 聯(lián)系方式=/價(jià)格 128.00 /價(jià)格書名 HTML XHTML CSS基礎(chǔ)教程(第6版)/書名作者 姓名=El

5、izabeth Castro 分類=WEB 編程技術(shù)/價(jià)格 50.00 /價(jià)格書名 ASP.NET 2.0 應(yīng)用開發(fā)技術(shù)/書名 作者 姓名=孟憲會(net_lover )性別=男/價(jià)格 59.00 /價(jià)格/圖書信息上面的例子為子元素“作者“定義了 4個(gè)屬性,分別是“姓名併REQUIRED類型)、“聯(lián)系方式(#IMPLIED類型)、分類併FIXED 類型)、性別(自定義類型)在第一本書ASP.NET案例開發(fā)集錦中,只岀現(xiàn)了“姓名“,但其實(shí)際屬性有兩項(xiàng),還有一個(gè)是#FIXED 類型的“分類“在第二本書C#高級編程中,除了必須岀現(xiàn)的 姓名,還岀現(xiàn)了 #IMPLIED 類型的“聯(lián)系方式 ,算上#FIX

6、ED 類型的“分類“,實(shí)際屬性有三項(xiàng)在第三本書HTML XHTML CSS基礎(chǔ)教程(第6版中,除了 姓名,還顯式岀現(xiàn)了 #FIXED類型的”分類,它的實(shí)際屬性與第一本書相同在第四本書ASP.NET 2.0應(yīng)用開發(fā)技術(shù)中,姓名“后岀現(xiàn)了自定義屬性性別,它只有兩個(gè)值男和女,默認(rèn)為“男,岀現(xiàn)其他值將顯示錯(cuò)誤屬性類型分為以下 10種:* CDATA* En umerated* ID* IDREF* IDREFS* ENTITY* ENTITIES* NMTOKEN* NMTOKENS* NOTATIONCDATA和Enumerated( 枚舉類型)在上面的例子中已有所說明,主要研究一下其他的屬性類 型

7、:ID屬性類型每個(gè)ID類型的屬性必須有不同的值 ,大多數(shù)ID屬性使用#REQUIRED,且ID類型和#FIXED 不兼容.屬性不能既是固定的,又有ID類型.這是因?yàn)?FIXED 屬性只能有一個(gè)值看下面的錯(cuò)誤示例: ! DOCTYPE職員信息v!ELEMENT 職員信息(普通職員)* ! ELEMENT 普通職員(#PCDATA) ! ATTLIST 普通職員編號 ID #REQUIRED 職員信息普通職員 編號=8 張三/普通職員普通職員 編號=E8 李四/普通職員普通職員 編號=E8 王五/普通職員/職員信息上面的文件有2個(gè)錯(cuò)誤,一個(gè)是 編號=8 這里,ID屬性不能是純數(shù)字,必須要以字母或下

8、劃 線開頭;另一個(gè)是岀現(xiàn)了兩個(gè)E8的編號,這與ID屬性的定義是相違背的.IDREF 屬性類型具有IDREF類型的屬性的值是文檔中另一個(gè)元素的ID? xml versio n=1.0 en cod in g=gb2312?! DOCTYPE武將信息!ELEMENT 武將信息(姓名)* ! ELEMENT 姓名(#PCDATA) ! ATTLIST 姓名編號 ID #REQUIRED ! ATTLIST 姓名君主 IDREF #IMPLIED 武將信息姓名編號=P1姓名編號=P2姓名編號=P3曹操/姓名劉備/姓名 孫權(quán)/姓名許楮/姓名關(guān)羽/姓名甘寧/姓名姓名 編號=P4 君主=P1姓名 編號=P5

9、 君主=P2姓名 編號=P6 君主=P3/武將信息上面的例子中,由于“君主屬性指定為IDREF,所以其內(nèi)容必須為ID屬性的“編號里的值IDREFS 屬性類型IDREF屬性的值只能為一個(gè).但如果要描述一對多的關(guān)系,例如三國里所有人都只有一個(gè)君主, 但卻會有多個(gè)子女.這時(shí)候就要用到IDREFS屬性了? xml versio n=1.0 en cod in g=gb2312?! DOCTYPE武將信息 v!ELEMENT 武將信息(姓名)* ! ELEMENT 姓名併PCDATA) ! ATTLIST 姓名編號 ID #REQUIRED ! ATTLIST 姓名子女 IDREFS #IMPLIED

10、武將信息姓名 編號=C1 關(guān)平/姓名姓名 編號=C2 關(guān)興/姓名姓名 編號=C3 孫策/姓名姓名 編號=C4 孫權(quán)/姓名姓名 編號=C5 孫尚香/姓名姓名 編號=F1 子女=C1 C2 關(guān)羽/姓名姓名 編號=F2 子女=C3 C4 C5 孫堅(jiān)/姓名/武將信息ENTITY 屬性類型ENTITY類型屬性使人們能把外部二進(jìn)制數(shù)據(jù)(即外部未解析的普通實(shí)體)鏈接到文檔ENTITY屬性的典型例子是一幅圖像,該圖像由來自與另一個(gè)URL的二進(jìn)制數(shù)據(jù)組成? xml versio n=1.0 en cod in g=UTF-8?! DOCTYPE 圖像!ELEMENT 圖像 EMPTY ! ATTLIST 圖像來

11、源 ENTITY #REQUIRED ! ENTITY Logo SYSTEM logo.gif圖像 來源=&Logo ; /ENTITIES屬性類型ENTITIES 是ENTITY的復(fù)數(shù)形式.ENTITIES 類型的屬性值由空格分隔多個(gè)未解析的實(shí)體名稱 組成.每個(gè)實(shí)體名稱引用一個(gè)外部的非 XML數(shù)據(jù)源.這個(gè)方法的一個(gè)用途是輪流顯示不同圖片的 幻燈片,如下所示:? xml version=1.0 encoding=gb2312?NMTOKEN屬性類型NMTOKEN屬性類型限制有效的 XML名稱記號的屬性值,除了空格,任何字符都被認(rèn)為是有效 的.!DOCTYPE客戶資料!ELEMENT客戶資料(

12、聯(lián)系地址)客戶資料聯(lián)系地址 城市=London 張三/聯(lián)系地址聯(lián)系地址 城市=010 北京 李四/聯(lián)系地址一聯(lián)系地址 城市=New York 王五/聯(lián)系地址I /客戶資料上面的例子,010北京雖然是以數(shù)字開頭,但由于是NMTOKEN 類型,所以它也是合法的但最后的New York 為非法,因?yàn)?NMTOKEN類型限制了空格的使用NMTOKENS 屬性類型NMTOKENS 是NMTOKEN 的復(fù)數(shù)形式,它允許岀現(xiàn)一組值,同NMTOKEN 的規(guī)則一樣,不限制符號的使用。它可以岀現(xiàn)空格,但空格的作用是分割不同的記號|1? xml version=1.0 encoding=gb2312?! DOCTYPE注冊信息!ELEMENT 注冊信息(用戶資料)* v! ATTLIST 用戶資料 愛好 NMTOKENS #REQUIRED 張三 李四王五上面的例子雖然沒有錯(cuò)誤,但最后的 play the piano 本來想表達(dá)的意思是“彈鋼琴“,但由于 NMTOKENS 的限制,被拆解成了 play、the、Piano三個(gè)部分。所以在遇到

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論