CDATA類型屬性值可包含任意文本字符串。DTD不能指定屬性為一個整數或一個日期,Schema能提供更為強大的數據類型。 NMTOKEN類型屬性值是一個XML名稱記號。XML名稱記號與XML名稱類似,但XML名稱記號允許所有的字符作為名稱的開始字符,而XML名稱的第一個字母必須是字母、表意字符和下劃線。因此10,.bashrc是合法的XML名稱標記,但不是合法的XML名稱。每個XML名稱都是一個XML名稱標記,然而XML名稱標記不全是XML名稱。如果屬性包含1990,2005之類的整數,則應該指定其類型為NMTOKEN。如: <!ELEMENT person birthday NMTOKEN #REQUIRED> NMTOKENS類型屬性包含一個或多個用空白分隔的XML名稱記號。如: <person dates="02-01-2005 03-01-2005 05-01-2005">person</person> 對應的聲明應為: <!ATTLIST person dates NMTOKENS #REQUIRED> 另一方面,對01/02/2005這樣的形式不能使用該聲明,因為其中的正斜杠不是合法的名稱字符。 枚舉聲明,枚舉不用關鍵字。直接列舉所有的值,中間用豎線分隔。如: <!ATTLIST date month(January | February | March | April | May | June | July | August | September | October | November | December) #REQUIRED> 針對上述聲明,date元素的month屬性可選十二個月份的中一個。 ID類型的屬性必須包含一個XML名稱,而且該名稱在文檔中是獨一無二的。ID屬性可為元素分配一個唯一的標識符。 <!ATTLIST name card_id ID #REQUIRED> 由于數字不是合法的XML名稱,所以ID編號不能以數字開頭,解決辦法是在前面加下劃線或字母。 IDREF類型的屬性指向文檔中某元素的ID類型的屬性。因此,它必須是一個XML名稱,它的作用是當簡單的包含關系不能滿足要求時在元素間建立多對多關系。如: