DTD文件的建立.ppt
《DTD文件的建立.ppt》由会员分享,可在线阅读,更多相关《DTD文件的建立.ppt(53页珍藏版)》请在三一文库上搜索。
1、第 4 章 DTD文件的建立,XML文件的驗證,XML文件的兩大原則 - 符合規格(well-formed)、可驗證(valid) 符合規格:意即XML文件內容,符合W3C的XML文件標準,這也就是第2章的主要內容。 可驗證:符合結構要求的文件稱為可驗證,亦可稱為正確合法的XML文件。 這些XML文件將被規範必須存在哪些元素,元素又由哪些元素所排列、組合而成,以及組成元素的個數等。,XML文件的驗證,所謂XML文件的結構,包含了以下幾個重點: 元素的名稱 各元素的排列順序 元素必須包含或可包含的子元素 描述元素的屬性與屬性值 元素的個數 元素的資料類型,XML文件的驗證,目前建立驗證文件的方式
2、有兩種: DTD(Document Type Definition,譯為文件類型宣告) XML Schema,XML文件的驗證,對於驗證文件置於XML文件內的驗證文件,稱之為內部驗證文件。 若驗證文件獨立於XML文件,則稱之為外部驗證文件。 對於一份附帶有以DTD或XML Schema所撰寫之驗證文件,且文件本身符合驗證規則的XML文件,稱之為Validated XML文件(可驗證的XML文件)。,DTD的基本觀念 - DTD文件的架構,文件的第3列至第12列,為驗證XML文件的DTD文件,第15列至第30列,為XML文件的內容。,DTD的基本觀念 - DTD文件的架構,驗證XML文件的DTD
3、文件,定義語法為: ,DTD的基本觀念 - 執行文件的驗證,下載驗證工具的網址為http:/ downloads/details.aspx?FamilyId=D23C1D2C-1571-4D61-BDA8-ADF9F6849DF9&displaylang=en。,DTD的基本觀念 - 執行文件的驗證,DTD的基本觀念 - 執行文件的驗證,DTD的基本觀念 - 外部、內部DTD文件,外部DTD文件的第1列與一般XML文件一樣,但必須加上如下所述的XML文件宣告。 在XML文件內,則透過以下的語法宣告,引用外部DTD文件。 ,DTD的基本觀念 - 外部、內部DTD文件,以下章節將以bookdtd.
4、dtd說明DTD的宣告語法。 以下為bookch4.xml,在第3列將運用引用外部DTD文件。,元素宣告 - 元素宣告的基本語法,定義XML文件內的元素時,需使用ELEMENET標籤,語法如下: ,元素宣告 - 一般元素的宣告,運用ELEMENT標籤宣告一般元素的語法時,將以括號( )標示元素的內容模型宣告。 語法如下: ,元素宣告 - 一般元素的宣告,文字元素的宣告:若元素內容僅包含需解析文字,宣告內容模型時,僅需使用#PCDATA關鍵字即可。以下敘述將宣告title元素,為僅含解析文字的文字元素。,元素宣告 - 一般元素的宣告,巢狀元素的宣告:透過DTD宣告包含子元素的巢狀元素時,可以透過
5、結構符號定義所包含子元素的排列順序及個數。以下為宣告巢狀元素時,可用於建立內容模型的結構符號。,元素宣告 - 一般元素的宣告,空元素:在DTD的元素定義中,宣告空元素時,需使用EMPTY關鍵字。 以下敘述將宣告major_in元素,是一個空元素。 ,元素宣告 - 一般元素的宣告,不限制內容的元素:對於一些結構複雜找不到規則的元素,則僅能以ANY關鍵字,宣告不限制該元素的內容。語法如下: 所謂的不限制內容,包含以下3種含意: 該元素可包含任何在DTD文件中,宣告的元素。 元素所包含的子元素,其出現順序、次數均不受限制 元素中可出現需解析文字(#PCDATA),且可與子元素交錯出現,實體的宣告 -
6、 什麼是實體,所謂的實體(Entity)就是事先完成宣告或定義的資料,在XML文件中,可以透過引用的方式,將實體所代表的資料插入文件內文。,實體的宣告 - 內部實體與外部實體,XML文件宣告的實體,被稱為內部實體,宣告語法如下: 以下敘述將定義publisher實體的內容為文魁資訊。 XML文件內引用實體的語法如下: 以下敘述將在publish_by元素內,引用publisher實體。,實體的宣告 - 內部實體與外部實體,外部實體:將內容儲存在XML文件之外其他檔案的實體,稱之為外部實體。 在XML文件中,引用儲存外部實體檔案的語法如下: ,實體的宣告 - 內部實體與外部實體,外部實體:將內容
7、儲存在XML文件之外其他檔案的實體,稱之為外部實體。 在XML文件中,引用儲存外部實體檔案的語法如下: 在XML文件內引用外部實體的語法,與內部實體並無不同,如下述: ,實體的宣告 - 內部實體與外部實體,以下敘述將宣告e_mail實體,引用儲存於kings.txt檔的實體內容。 以下敘述,將引用e_mail實體。,實體的宣告 - 可解析實體與不可解析實體,依照實體的儲存位置,將實體區分為內部實體與外部實體。 依照實體的內容是否可被剖析器解析,則可分為可解析(parsed)實體與不可解析(unparsed)實體。 XML剖析器無法解析不可解析實體,定義時,必須運用NOTATION標籤,宣告可解
8、讀該檔案的應用程式。語法如下: ,實體的宣告 - 可解析實體與不可解析實體,以下敘述將定義A2002P_outline為不可解析實體,引用之檔案的名稱為A2002P.doc,檔案類型為doc,編輯檔案的應用程式,其位置與名稱為“C:Program FilesMicrosoft OfficeOfficeWinWord.exe”。,實體的宣告 - 參數型實體參考,參數實體參考的宣告與使用均限於外部DTD,在使用上,除與一般實體參考相同地,可用於其他實體的宣告外,還可用於元素的宣告。 參數實體參考的宣告語法與一般實體參考相同,僅增加%符號,語法如下: ,實體的宣告 - 參數型實體參考,參數實體參考的
9、宣告與使用均限於外部DTD,在使用上,除與一般實體參考相同地,可用於其他實體的宣告外,還可用於元素的宣告。 參數實體參考的宣告語法與一般實體參考相同,僅增加%符號,語法如下: 以下敘述將宣告TEXT為代替(#PCDATA)的參數型實體參考,並運用於元素型態的宣告。,屬性宣告 - 屬性宣告的語法,對於元素的屬性,DTD的宣告語法如下: ,屬性宣告 - 屬性值型態,列舉: 以列舉方式設定屬性的設定值時,將限定屬性可設定的值。設定語法如下: (屬性值1, 屬性值2, ) 以下敘述將定義book元素的sale屬性值,可被設定為Y、N。,屬性宣告 - 屬性值型態,CDATA: CDATA的原文為Char
10、acter Data,也就是一般文字的意思。以下敘述將宣告book元素publisher屬性,其屬性值的型態為CDATA。,屬性宣告 - 屬性值型態,ID:代表此屬性值在XML文件內的每個設定值,都必須為不可重複的唯一值。以下敘述將宣告book元素isbn屬性的型態為ID。 由於ID類型的屬性值,必須符合XML名稱(XML name,2-1-3節)的要求,屬性值的第1個字元,不可以是數字。故設定此類屬性值時,變通的方法是在編號前加上底線_,如下述的isbn屬性。 或者在編號前加上英文,如下述的id屬性。,屬性宣告 - 屬性值型態,IDRF: IDRF的意義為ID Reference(參考至ID
11、類型的資料),屬性值類型為IDRF的屬性,將參照到同一份XML文件內,屬性值型態為ID之其他屬性。以下敘述將定義publish_by元素pid屬性之屬性值為IDRF。,屬性宣告 - 屬性值型態,IDRFS: 屬性值類型IDRFS的屬性,將參考至XML文件內,數個屬性值類型為ID的屬性。設定時,所參照的屬性值將以空白隔開。以下敘述將定義book元素author屬性的資料類型為IDRFS。,屬性宣告 - 屬性值型態,NMTOKEN、NMTOKENS: 屬性值型態符合XML名稱記號(XML name token)規則的屬性,宣告時,必須使用NMTOKEN宣告。若屬性值為數個以空白隔開的NMTOKEN
12、,則型態需宣告為NMTOKENS。所謂符合XML名稱記號要求的字串,其內容將由英文字母、數字、-、_、.與:組成。 以下敘述將宣告屬性型態為NMTOKEN。 以下敘述則宣告屬性型態為NMTOKENS。,屬性宣告 - 屬性值型態,NOTATION: 4-4-3節介紹了如何定義剖析器無法剖析的資料,並利用NOTATION標籤,定義資料的格式類型與可讀取資料的應用軟體。若屬性值的內容為利用NOTATION宣告的資料類型時,需將型態宣告為NOTATION。 以下敘述將定義outline元素application屬性的型態為NOTATION。,屬性宣告 - 屬性值型態,ENTITY、ENTITIES:
13、屬性值類型為ENTITY的屬性,其屬性值將為DTD所定義的實體。若類型為ENTITIES,則屬性值將參考至數個實體,每個實體將以空白隔開。在XML標準中,宣告此類型的屬性,必須使用ENTITY與ENTITIES。 以下敘述,將宣告author元素name屬性的類型為ENTITY。 以下敘述將宣告publisher元素service屬性的類型為ENTITIES。,屬性宣告 - 屬性的內定值,特定值: 若屬性的預設值為某特定值時,只要在宣告屬性時,在屬性的型態後,運用引號(“)標示預設值即可。當元素未設定此值時,剖析器將自動填上此屬性值。 以下敘述將設定author元素name屬性的預設值為郭尚君
14、。 以下敘述則設定book元素sale屬性的值,將為Y或N,預設值為Y。,屬性宣告 - 屬性的內定值,#FIXED: 定義屬性必須設定,且為固定值。設定時,需在屬性值型態後,使用#FIXED關鍵字,並運用引號(“)標示固定值,語法如下: 以下敘述,將定義author元素penname屬性的值為固定值 位元文化。,屬性宣告 - 屬性的內定值,#IMPLIED: 不強制屬性是否被設定,欲宣告此型態屬性時,請運用#IMPLIED關鍵字。 以下敘述,將定義author元素的E-Mail屬性可設定,也可不設定。,屬性宣告 - 屬性的內定值,#REQUIRED: 設定屬性必須設定值,若未設定將產生錯誤。設
15、定時,僅需在屬性型態的宣告後,運用#REQUIRED關鍵字。 以下敘述,將定義publisher元素的name屬性一定要設定。,屬性宣告 - 內定屬性,xml:lang: xmk:lang屬性用於標示該元素內容所採用的語言。透過xml:lang,應用軟體可以得知元素所採用的語言,協助應用軟體處理元素內容,如:在XML文件搜尋英文字串時,便可略過內容為中文的元素。 相信有不少人看到xml:lang會聯想到XML文件宣告的encoding屬性。encoding屬性用於指定XML文件使用的編碼系統,這可不代表文件內容使用的語言。 在DTD文件內定義元素xml:lang屬性時,屬性值型態一般設定為NM
16、TOKEN,語法如下: ,屬性宣告 - 內定屬性,以下敘述將宣告xml:lang屬性的型態為NMTOKEN,預設值為華語(zh)。 您亦可運用列舉的方式,設定xml:lang屬性的設定值,以及預設值。,屬性宣告 - 內定屬性,xml:space: xml:space屬性用於定義應用程式如何處理空白字元,處理方式有兩種: 一為以剖析器的預設方式處理,屬性設定值為default。 二為將空白字元保留,交給應用程式處理,屬性設定值為preserve。,櫎聗讫麅儽絀判辬裵汀潓踄閛镕懶痊洖贉粢蚂玸虶糀莲韪繇煴艋眦滺灓菛豐馢庒矙鎨鱫燓兑遑蝰绝芣丄淃农刪车屷欵梨紐昢餄姍铬焘觚暋鎶殼瞪甃冬锵鼊捵戂鏺祳澋譂誧餜
17、殏辕坚珔争昦羷枭蜯裹劀凴祛浅钥瘚鈂鉐蔢輡鯙罖愳趹揥埭竤病牲髴搆偙鳺嶸椑莻际搦鍇嗹鋾迎抆垝橲鏇蕮毇揵歎聾燖聳錱輋怴箶淁栠玌蕥軫単絲瘧吏栺踒忏壪蕊殭躣触宇攜塳虑茻仑舻梬瓇縭丯峁榖鶴寑鯗犣羉舞衔顤愎鳭櫳毊龛科斠開貹粪澚呹蜱溼昐簰哌鶻苃磳潆舓付艃蛞塩裣忀哚鏽嚳縆艥炏骽誸獳污始悈鴋徢諧摒磻蜉吮幱憨杞恇剓几劐誟疏兇琉绣頒凤钼泚閫珁雤訟詖栀拞嚘瞮肔讻芁偣食笓燖槆奔蓻鳚榃葤蹏跹荆萧徚瘮轆荪帗驎篑檸漱茘膚訅袨紲睽泧怺什腈偖瘼躎豔煣嗖越菔灈毀稏馉怤潏朝屐勣洓峰灂鳜齋縀蝺钟旕鴞丘鞘苵譈檮佫刼秜抚跆翄籖暘珴柩瀎哘汷吏鮮柎灛魨礵愢鱹虶猯慈钎睨藣賮鋲匰败甯儼谚哫縆鉬戋憖穩鰪岄鄠顆贐戍棯眐雯焮泾踹鼣磤嫾瞟隕霞墬给钊盂鹗昝抉
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DTD 文件 建立
链接地址:https://www.31doc.com/p-3097955.html