针对经典论坛中小奀的XML指南内一些没有翻译的链接教程, 进行一些补充,自己也是初学者,水平有限,恳请朋友们多多指教! 英文站点在http://www.w3schools.com/dtd/default.asp
DTD的介绍
DTD的意图在于定义XML文档的合法构建模块,它通过一系列合法元素来决定了XMl文档的内部结构。 DTD能够在你自己的XML文档内部声明,也可以作为外部来参照
1.内部声明 如果DTD被包含在XML源文件中,它将通过以下语法格式来在"DOCTYPE"中定义: <!DOCTYPE root-element [element-declarations]>
例1: <?xml version="1.0"?> <!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend</body> </note> 上述包含有DTD的XML文档解释如下 <!DOCTYPE note (在第2行) 定义这是一个类型为note的文档. <!ELEMENT note (在第3行) 定义 note 有四个元素: "to,from,heading,body". <!ELEMENT to (在第3行) 定义 to 元素类型为 "#PCDATA". <!ELEMENT from (在第4行) 定义 from 元素类型为 "#PCDATA". ......
2.外部声明 如果DTD在XML源文件的外部,它将通过以下语法格式来在"DOCTYPE"中定义: <!DOCTYPE root-element SYSTEM "filename">
例2: 此例XML文档与例1相同,但是使用的是外部的DTD <?xml version="1.0"?> <!DOCTYPE note SYSTEM "note.dtd"> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
文件note.dtd包含定义的DTD <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)>
看完以上大概介绍,可能大家有这样的疑问,为什么要使用DTD? 1.通过DTD,你的每个XML文件都能保存使用DTD格式化的数据描述。 2.通过DTD,独立于使用者,并使用共同DTD达到数据交换之目的。
你的应用程序可以通过标准的DTD去验证来自外界的数据是否合法, 当然你也可以通过DTD去验证自己的数据。 
|