由於資料不是XML格式,所以使用NDATA宣告指定資料型別。avi是在NOTATION中定義的MIME媒體型別。在XML中嵌入未析實體很複雜且不規範,儘量不要使用。 實體
用ENTITY宣告定義實體。如:
用&linux;可引用該字串
可定義一個外部實體,引用外部XML文件
使用&linux;可引用/home/linux/文件
外部實體沒有XML宣告,但可以有文字宣告,兩者很類似,主要區別是文字宣告必須有編碼宣告,而版本資訊則是可選的。
是一個合法的文字宣告 也是一個合法的文字宣告
不是所有的資料都是XML。如jpeg照片,mpeg電影等。XML建議使用外部未析實體作為在文件中嵌入這些內容的機制。DTD為包含非XML資料的實體指定一個名稱和URI。
由於資料不是XML格式,所以使用NDATA宣告指定資料型別。avi是在NOTATION中定義的MIME媒體型別。在XML中嵌入未析實體很複雜且不規範,儘量不要使用。
引數實體可定義一組通用的.實體,在文件中可通過該引數實體來引用實體。引數實體的定義與通用實體定義類似,只是中間多了一個%,引用時也是用%程式碼&。
引用方法%person;這樣會用name,address,postcode代替引數實體%person;
通常DTD都比較大,DocBook的DTD長達11000多行,如果把它存放在單一檔案中,管理和維護起來都非常困難。我們可以使用外部DTD子集,把一個大的DTD按功能分成不同的功能塊,存放在不同的檔案中。再通過外部引數實體宣告引入當前DTD中,如:
定義引數實體引用外部呼叫外部DTD子集%names;
使用IGNORE關鍵字可註釋宣告,如:
<![IGNORE[ ]]>
當然了,使用的方式也是一樣的。
INCLUDE關鍵字表示DTD中的確在使用給定的宣告,如:
<![INCLUDE[ ]]>
單從該宣告來看,有沒有使用INCLUDE效果都一樣,但如果組合INCLUDE和IGNORE,可實現DTD功能的選擇。我們可定義一個引數實體:
然後使用引數實體引用而不使用關鍵字:
<![%note_allowed;[ ]]>
按上述操作,元素宣告是有效的,但我們也可以把引數實體%note_allowed重新定義為IGNORE,這樣,該元素宣告就無效了。