首頁 > 後端開發 > XML/RSS教程 > XML入門教學-實體的具體介紹

XML入門教學-實體的具體介紹

黄舟
發布: 2017-03-15 16:47:54
原創
1457 人瀏覽過

由於資料不是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 呼叫外部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入門教學-實體的具體介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板