XML CH6 課後複習

<內容取自XML How to program> 

<建立XML相關觀念>

CH6 文件類型宣告(DTD)  

事件標誌

敘述
+ 元素可以出現任意的次數,出現一到多次
*

出現0到多次

?

出現0到一次

 

 

 

 

 

 

 

    文件類型定義(Document Type Definition),它定義了XML之文件結構(例如,怎樣的元素、屬性…等,在文件中才是許可的)。一個XML文件並不需要有一個相對照符合的DTD.DTDs 使用 EBNFExtended Backus-Naur Form)文法規則。

    DTDs被導入XML文件是藉著文件類型宣告(例如:DOCTYPE)文件類型宣告可以指向在XML文件之外的宣告(稱之為外部次集,external subset)或是包含在文件內的宣告(稱之為內部次集,internal subset

    外部次集本身存在以.dtd結尾之不同的檔案中,雖然這檔案的.dtd附屬檔案並不需要。外部次集指明使用的關鍵定是SYSTEM,不管是內部或外部次集,都可在同時間被具體指明。

    PCDATA指明元素必須包含可解析的字元資料也就是任何內容,除了字元小於(<),大於(>),記號(&),引號(‘),雙引號(“)

    DTDs允許文件作者定義子元素順序和次數,逗點(,)—稱之為次序(sequence)—指明元素需出現之順序選項是要用運算元”|”分隔。內容規格可能包含任意數目的運算元”|”來分隔選項。

    元素可以藉著敘述它們可能有的內容型態更進一步定義,內容歸類型格(例如EMPTY,混合性內容,ANY規則等)敘述非元素之內容。

    DTDs允許文件作者用屬性預設來指明屬性的預設值,#IMPLIED#REQUIRED以及#FIXED是屬性預設值

    屬性類型被歸類為strings(CDATA)tokenized或是enumerated三類,字串屬性類型不能附加任何限制於屬性值上除了不允許<>&以及字元。實體參照(例如&lt;&gt;等)必須被這些字元使用,Tokenized屬性附加限制在屬性值上,例如屬性名稱允許使用字元,Enumerated屬性是三種類型中最嚴格的,只可以有列在屬性宣告上的值。

    tokenized屬性有四種不同類型:IDIDREFENTITY,以及NMTOKEN.Tokenized之屬性類型;ID指定元性唯一,屬性類型IDREF指向有ID屬性的元素,一個驗證解析器在XML文件中,藉著參照IDREF證實每個ID屬性類型。

    更多限制的屬性類型是NMTOKEN(name token),其值由字母,數字,句號,底線,連字號以及冒號所構成。

    DTDs藉著使用條件區,提供了包含和排除宣告的功能,INCLUDE指明宣告被包括在內,而IGNORE指明宣告被排除在外,條件區通常和實體使用