本篇文章給大家分享的是有關(guān)XML中的DTD文檔類型定義詳細(xì)介紹,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。
10年的涉縣網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都營(yíng)銷網(wǎng)站建設(shè)的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整涉縣建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)公司從事“涉縣網(wǎng)站設(shè)計(jì)”,“涉縣網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
XML 文檔類型定義,俗稱 DTD,它是一種準(zhǔn)確描述 XML 語(yǔ)言的方式。DTDs 根據(jù)適當(dāng) XML 語(yǔ)言的語(yǔ)法規(guī)則檢查 XML 文檔的詞匯和結(jié)構(gòu)的有效性。
XML DTD 可以指定在文檔內(nèi)部,也可以保存在獨(dú)立的文檔中然后單獨(dú)鏈接。
語(yǔ)法
DTD 的基本語(yǔ)法如下所示:
<!DOCTYPE element DTD identifier [ declaration1 declaration2 ........ ]>
上述語(yǔ)法中:
DTD 以 <!DOCTYPE 定界符開(kāi)始。
element 用于告訴解析器從指定的根元素開(kāi)始解析文檔。
DTD identifier 是一個(gè)用于文檔類型定義的標(biāo)示符,它可以是一個(gè)指向系統(tǒng)中某個(gè)文件的路徑或者連接到互聯(lián)網(wǎng)上某個(gè)文件的 URL。如果 DTD 指向外部路徑,則被稱為外部子集。 _ [] 內(nèi)是一個(gè)可選的實(shí)體聲明列表,被稱為內(nèi)部子集。
內(nèi)部 DTD
如果一個(gè)元素聲明在 XML 文檔的內(nèi)部則 DTD 被稱為內(nèi)部 DTD。為了把它作為內(nèi)部 DTD,XML 聲明中的 standalone 屬性必須設(shè)置為 yes。這意味著,聲明的工作獨(dú)立于外部源。
語(yǔ)法
內(nèi)部 DTD 語(yǔ)法如下所示:
<!DOCTYPE root-element [element-declarations]>
這里 root-element 是根元素的名稱,element-declarations 表示我們聲明的元素。
示例
下面是一個(gè)內(nèi)部 DTD 的簡(jiǎn)單示例:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <!DOCTYPE address [ <!ELEMENT address (name,company,phone)> <!ELEMENT name (#PCDATA)> <!ELEMENT company (#PCDATA)> <!ELEMENT phone (#PCDATA)> ]> <address> <name>Tanmay Patil</name> <company>TutorialsPoint</company> <phone>(011) 123-4567</phone> </address>
我們來(lái)看一下上面的代碼:
開(kāi)始聲明 - 使用如下語(yǔ)句開(kāi)始 XML 聲明:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
DTD - 緊跟在 XML 頭后面,_文檔類型聲明_如下,通常被稱為 DOCTYPE:
<!DOCTYPE address [
DOCTYPE 聲明在元素名稱的開(kāi)頭包含一個(gè)感嘆號(hào)(!)。DOCTYPE 會(huì)通知解析器有一個(gè) DTD 與這個(gè)文檔相關(guān)聯(lián)。
DTD Body - DOCTYPE 聲明后面緊跟 DTD 體,這里我們聲明元素,屬性,實(shí)體和符號(hào):
<!ELEMENT address (name,company,phone)> <!ELEMENT name (#PCDATA)> <!ELEMENT company (#PCDATA)> <!ELEMENT phone_no (#PCDATA)>
許多元素都在這里通過(guò) <name> 文檔詞匯聲明。<!ELEMENT name (#PCDATA)> 定義元素_名稱_為 "#PCDATA" 類型。這里 #PCDATA 意味著可解析的文本數(shù)據(jù)。
結(jié)束聲明 - 最后,DTD 的聲明部分使用方括號(hào)和尖括號(hào)(]>)閉合。這是一個(gè)有效的結(jié)束定義,后面緊跟的就是 XML 文檔內(nèi)容。
規(guī)則
文檔類型聲明必須出現(xiàn)在文檔的開(kāi)頭部分(只先與 XML 頭),不允許出現(xiàn)在文檔的任意其他位置。
類似于 DOCTYPE 聲明,元素聲明必須以感嘆號(hào)開(kāi)始。
文檔類型聲明中的 Name 必須與根元素的類型匹配。
外部 DTD
在外部 DTD 中元素聲明在 XML 文檔的外部。通過(guò)指定 system 屬性來(lái)訪問(wèn),這個(gè)屬性值可以是合法的 .dtd 文件或者有效的 URL。為了指示它是外部 DTD,XML 聲明的 standalone 屬性必須設(shè)置為 no。這就意味著,聲明包含來(lái)自外部源的信息。
語(yǔ)法
下面是外部 DTD 的語(yǔ)法:
<!DOCTYPE root-element SYSTEM "file-name">
這里 file-name 就是 .dtd 擴(kuò)展的文件。
示例
下面的示例展示了外部 DTD 的用法:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?> <!DOCTYPE address SYSTEM "address.dtd"> <address> <name>Tanmay Patil</name> <company>TutorialsPoint</company> <phone>(011) 123-4567</phone> </address> DTD 文件 address.dtd 的內(nèi)容如下所示: <!ELEMENT address (name,company,phone)> <!ELEMENT name (#PCDATA)> <!ELEMENT company (#PCDATA)> <!ELEMENT phone (#PCDATA)>
類型
我們可以通過(guò)使用系統(tǒng)標(biāo)示符或者公共標(biāo)示符引用一個(gè)外部DTD。
系統(tǒng)標(biāo)示符
系統(tǒng)標(biāo)示符允許我們指定包含 DTD 聲明的外部文件的位置。語(yǔ)法如下:
<!DOCTYPE name SYSTEM "address.dtd" [...]>
正如我們可以看到的,它包含 SYSTEM 關(guān)鍵字和一個(gè)指向文檔位置的 URI 引用。
公共標(biāo)示符
公共標(biāo)示符提供了一種定位 DTD 資源的機(jī)制,寫法如下:
<!DOCTYPE name PUBLIC "-//Beginning XML//DTD Address Example//EN">
正如我們可以看到的,它以 PUBLIC 關(guān)鍵字開(kāi)始,后面緊跟的是專門的標(biāo)識(shí)符。公共標(biāo)識(shí)符被用來(lái)標(biāo)識(shí)目錄中的條目。公共標(biāo)識(shí)符可以遵循任意格式,但是常用的格式是正式公用標(biāo)識(shí)符(或者 FPIs)。
聲明元素
在dtd中聲明元素(在一個(gè)xml如果一個(gè)元素想要讓它是合法的,則需要在dtd中聲明)
語(yǔ)法:<!ELEMENT 元素名稱 類別>和<!ELEMENT 元素名稱 (元素內(nèi)容)>這兩種方式
<!ELEMENT 元素名稱 EMPTY>
例如:
<!ELEMENT br EMPTY>
則xml可以寫成:
<br/>
注意點(diǎn)
在dtd中
所有的 XML 文檔(以及 HTML 文檔)均由以下簡(jiǎn)單的構(gòu)建模塊構(gòu)成:
元素
屬性
實(shí)體
PCDATA
CDATA
下面是一些注意點(diǎn):
(1)實(shí)體是用來(lái)定義普通文本的變量。實(shí)體引用是對(duì)實(shí)體的引用。
大多數(shù)同學(xué)都了解這個(gè) HTML 實(shí)體引用:" "。這個(gè)“無(wú)折行空格”實(shí)體在 HTML 中被用于在某個(gè)文檔中插入一個(gè)額外的空格。
當(dāng)文檔被 XML 解析器解析時(shí),實(shí)體就會(huì)被展開(kāi)。
(2) PCDATA
PCDATA 的意思是被解析的字符數(shù)據(jù)(parsed character data)。
可把字符數(shù)據(jù)想象為 XML 元素的開(kāi)始標(biāo)簽與結(jié)束標(biāo)簽之間的文本。
PCDATA 是會(huì)被解析器解析的文本。這些文本將被解析器解析成實(shí)體以及標(biāo)記。
文本中的標(biāo)簽會(huì)被當(dāng)作標(biāo)記來(lái)處理,而實(shí)體會(huì)被展開(kāi)。
不過(guò),被解析的字符數(shù)據(jù)不應(yīng)當(dāng)包含任何 &、< 或者 > 字符;需要使用 &、< 以及 > 實(shí)體來(lái)分別替換它們。
(3)CDATA
CDATA 的意思是字符數(shù)據(jù)(character data)。
CDATA 是不會(huì)被解析器解析的文本。在這些文本中的標(biāo)簽不會(huì)被當(dāng)作標(biāo)記來(lái)對(duì)待,其中的實(shí)體也不會(huì)被展開(kāi)。
以上就是XML中的DTD文檔類型定義詳細(xì)介紹,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
分享標(biāo)題:XML中的DTD文檔類型定義詳細(xì)介紹
文章出自:http://jinyejixie.com/article40/gggseo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、App開(kāi)發(fā)、電子商務(wù)、標(biāo)簽優(yōu)化、、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
移動(dòng)網(wǎng)站建設(shè)知識(shí)