DTD實體之 引數實體

2021-07-22 12:22:18 字數 1214 閱讀 7871

僅僅在dtd中使用的解析實體稱為引數實體。它使我們能夠簡便地引用或修改dtd中常用的結構,我們只需維護一處**。與逐一修改dtd中出現每個結構相比,這種方法簡單得多,但是當我們打算擴充套件結構時,仍然需要編輯dtd。引數實體宣告由以下幾部分組成:entity關鍵字、百分號、名稱和替換值。例如:

上面的置換文字是屬性列表宣告的一部分,它包含三個普通屬性。當解析器處理上述語句時,它會用這三個屬性取代引數實體名稱。如果我們需要在dtd輸入該屬性集合,只需引用實體perpleparameters即可。

在dtd中,所有引數實體必須在引用之前進行宣告。這意味著dtd內部子集不能引用在外部子集中宣告的引數實體,因為解析器首先讀取內部子集----所以導致引用出現在宣告之前。

引用引數實體時,需要在實體名稱之前增加百分號,在其後增加分號。定界符與名稱之間沒有空格。下面的**顯示了如何引用上面定義的引數實體:

上面**宣告insureperson元素包含4個屬性:其中carrier是顯式宣告的,其餘三個引數(age、weight和height)包含在引數實體中,當解析器用置換文字取代實體引用時,會出現元素的完整列表。因此,上面的例子等價於下面的**:

age cdata #implied

weight cdata #implied

height cdata #required

carrier cdata #required>

這種型別的替換形式----在宣告中進行替換----只能用於dtd外部子集。在內部子集中,引數實體引用只能位於其他宣告之間:因此這類實體引用的置換文字必須是乙個完整的宣告,否則將影響dtd格式的正規性。

乙個格式正規的文件應該遵循的規則都可以應用於引數實體。用置換文字取代實體飲用後,仍然必須保證文件格式的正規性。當您構建引數實體時。一定要謹記這條規則。通常,在引數實體的置換文字中使用標記時要格外謹慎。下面的例子就破壞了各式正規約束:

%myparm;

%myparm;的置換文字是不完整的宣告,它缺少結束標記》,因此當解析器替換%myparm;時,dtd就不再是格式正規的了。

與通用實體類似,引數實體的置換文字也可以位於外部檔案中。例如:

" >

從以上可以看出,對於定義xml文件詞彙表來說,實體是一種非常有價值的工具。

#xml

DTD引數實體與一般實體的區別

1.引數實體必須定義在單獨的 dtd文件中或 xml文件的 dtd區 但是引用只能在 dtd文件中,即外部子集,而不能在 xml文件的 dtd區 前者為該 xml文件的外部子集,後者為該 xml文件的內部子集 2.引數實體的作用是作為 dtd中的元素的條件控制。引數實體定義以 作為開頭,引用也以 開...

實體 實體集及其運用

一 實體 在c 中 寫法 1 public class userinfo 寫法 2 public class userinfoentity 取值 get end get,是可省的 set 賦值 set end set,是可省的 總結,簡單比較。方法 一 與方法 二 等價,非常明顯。寫法 一 更簡便。...

mysql實體 mysql實體關係

實體關係 表設計1 1 兩個實體表內,存在相同的主鍵字段 如果記錄的主鍵值等於另乙個關係表內記錄的主鍵值,則兩條記錄的對應為一一對應 優化上稱為垂直分割 1 n乙個實體對應多個其他實體 乙個班級對應多個學生 設計 在多的那段增加乙個字段,用於指向該實體所屬的另外實體的標識 m n多對多 設計典型的利...