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