[10][回選單]
請問DTD(Document Type Definition)有何功能作用?
A.
Document Type Definition簡稱為DTD,中文可譯為文件型態定義,XML文件中可以使用DTD,這個功能主要是從SGML繼承來的,但SGML文件是一定要引用DTD,且DTD的設定語法是很複雜,而XML的DTD是有經過簡化的,所以不管是DTD的使用與制定都比SGML簡單多了。

另外XML文件中也可以不使用任何的DTD,只要該XML文件滿足Well-Formed條件就可以了;如果XML文件中有使用DTD,則該XML文件就必須滿足Validating的條件。

DTD在XML文件中是扮演很重要的角色,如果將XML文件比擬成一份信件內容的話,那DTD就看成是信件的表格結構,表格中會設定數個不同的欄位,而每個欄位出現的次序、填入的資料型態都會在表格定義清楚,當在填寫這份信件時,就必須依據該表格中的結構定義來填寫,而不可以隨心所欲來變更欄位出現的次序,還是亂填資料到不適當的欄位,這些都算是違法的,因為一旦文件中有引用DTD,則該份文件就必須遵守該份DTD所制定的結構來填寫資料。

引用DTD是與Well-Formed是完全沒有充突的,因為Well-Formed可看成是撰寫信件的一般基本禮節,不管該信件有沒有引用DTD,該份信件還是要每個段落的開頭都須空兩格、不同段落之間須留一空白格、在信的開頭須指定收信人的名稱、在信的結尾須署名自己的姓名與日期….等等,而DTD的引用就像是套用不同結構的信紙來寫信一樣,就像寫情書與公文信件的欄位內容一定不一樣,這就像引用不同的DTD,雖然是不同類的信件,但書寫信件的基本禮儀也必須要遵守的,因為這是撰寫任何信件的基本要求。