您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關(guān)XML中實體的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
由于數(shù)據(jù)不是XML格式,所以使用NDATA聲明指定數(shù)據(jù)類型。avi是在NOTATION中定義的MIME媒體類型。在XML中嵌入未析實體很復(fù)雜且不規(guī)范,盡量不要使用。 實體
用ENTITY聲明定義實體。如:
<!ENTITY linux "linux is a very good system"> 用&linux;可引用該字符串
可定義一個外部實體,引用外部XML文檔
<!ENTITY linux SYSTEM "/home/linux/test.xml"> 使用&linux;可引用/home/linux/test.xml文檔
外部實體沒有XML聲明,但可以有文本聲明,兩者很類似,主要區(qū)別是文本聲明必須有編碼聲明,而版本信息則是可選的。
<?xml version="1.0" encoding="gb2312"?> 是一個合法的文本聲明 <?xml encoding="gb2312"?> 也是一個合法的文本聲明
不是所有的數(shù)據(jù)都是XML。如jpeg照片,mpeg電影等。XML建議使用外部未析實體作為在文檔中嵌入這些內(nèi)容的機制。DTD為包含非XML數(shù)據(jù)的實體指定一個名稱和URI。
<!ENTITY movie SYSTEM "/home/linux/test.avi" NDATA avi>
由于數(shù)據(jù)不是XML格式,所以使用NDATA聲明指定數(shù)據(jù)類型。avi是在NOTATION中定義的MIME媒體類型。在XML中嵌入未析實體很復(fù)雜且不規(guī)范,盡量不要使用。
參數(shù)實體可定義一組通用的實體,在文檔中可通過該參數(shù)實體來引用實體。參數(shù)實體的定義與通用實體定義類似,只是中間多了一個%,引用時也是用%代碼&。
<!ENTITY % person "name,address,postcode"> 引用方法 %person; 這樣會用name,address,postcode代替參數(shù)實體%person;
通常DTD都比較大,DocBook的DTD長達11000多行,如果把它存放在單一文件中,管理和維護起來都非常困難。我們可以使用外部DTD子集,把一個大的DTD按功能分成不同的功能塊,存放在不同的文件中。再通過外部參數(shù)實體聲明引入當前DTD中,如:
定義參數(shù)實體引用外部names.dtd <!ENTITY % names SYSTEM "names.dtd"> 調(diào)用外部DTD子集 %names;
使用IGNORE關(guān)鍵字可注釋聲明,如:
<![IGNORE[ <!ELEMENT note (#PCDATA)> ]]>
當然了,使用<!-- 注釋 -->的方式也是一樣的。
INCLUDE關(guān)鍵字表示DTD中的確在使用給定的聲明,如:
<![INCLUDE[ <!ELEMENT note (#PCDATA)> ]]>
單從該聲明來看,有沒有使用INCLUDE效果都一樣,但如果組合INCLUDE和IGNORE,可實現(xiàn)DTD功能的選擇。我們可定義一個參數(shù)實體:
<!ENTITY % note_allowed "INCLUDE" >
然后使用參數(shù)實體引用而不使用關(guān)鍵字:
<![%note_allowed;[ <!ELEMENT note (#PCDATA)> ]]>
按上述操作,元素聲明是有效的,但我們也可以把參數(shù)實體%note_allowed重新定義為IGNORE,這樣,該元素聲明就無效了。
關(guān)于“XML中實體的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。