什么是DTD牍帚?

/**
**@author:APan
**/
在接觸html時晶衷,網(wǎng)頁的前面幾行都有這么一行<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

其實這個就是對dtd文件的應(yīng)用嗽元,那dtd文件有什么用處呢?

dtd定義:文檔類型定義(DTD)可定義合法的XML文檔構(gòu)建模塊掠兄。它使用一系列合法的元素來定義文檔的結(jié)構(gòu)像云。DTD 可被成行地聲明于 XML 文檔中,也可作為一個外部引用蚂夕。(來自百度)

說白了dtd就是定義你的xml文件中可以有哪些元素迅诬,不可以有哪些元素,這些元素可以的值是什么類型的婿牍。但是我們直接查看xml文件他并不會報錯侈贷,需要禁用js創(chuàng)建一個ActiveXObject對象,才可以對其進行校驗等脂。
接一下來我們詳細看看DTD是如何工作的:(請注意區(qū)分文件后綴)
從代碼開始Checkdtd.htm文件(檢測xml是否規(guī)范)代碼:

//開始
<html>
<head>
<title>測試dtd文檔</title>
<meta http-equiv="content-type" content="text/html;charset=gb2312" />
<script type="text/javascript">
//創(chuàng)建一個xml解析器
var xmldoc=new ActiveXObject("Microsoft.XMLDOM");

        //開啟校驗功能
        xmldoc.validateOnParse=true;
        
        //指定對那個xml文件校驗
        xmldoc.load("myblog.xml");
        
        //顯示錯誤的信息
        document.write("錯誤信息="+xmldoc.parseError.reason+"<br />");
        document.write("錯誤的行號"+xmldoc.parseError.line+"<br />");
   
    </script>
</head>

<body>
</body>

</html>

需要檢測的xml文件(myblog.xml)

<?xml version="1.0" encoding="utf-8"?>


<!DOCTYPE class SYSTEM "mydtd.dtd">
<class>
<stu>
<name>Jimmy</name>
<sex>man</sex>
<age>19</age>
</stu>

<stu>
    <name>Tommy</name>
    <sex>women</sex>
    <age>20</age>
</stu>

<stu>
    <name>Ketty</name>
    <sex>women</sex>
    <age>21
</stu>

</class>

定義規(guī)范的dtd文件(mydtd.dtd)

<!ELEMENT class (stu+)>
<!ELEMENT stu (name,sex,age)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT sex (#PCDATA)>
<!ELEMENT age (#PCDATA)>

從htm代碼開始說俏蛮,這里第一句話的意思就是創(chuàng)建一個檢測xml文件的對象,并命名為xmldoc變量上遥,然后開啟了檢驗的功能搏屑,再然后我們確定需要校驗的xml文件,如果不在同一個目錄下可以用相對路徑或者絕對路徑的方法找到xml文件粉楚。如果有錯誤那我們則把錯誤找出并現(xiàn)在在頁面上睬棚,很容易理解。

接著我們看看xml文件,其中有句話是加載dtd的文件:<!DOCTYPE class SYSTEM "mydtd.dtd">其中定義的格式規(guī)范為:
<!DCTYPE 根元素名 SYSTEM "寫dtd的路徑">
<!DCTYPE 根元素名 [dtd元素內(nèi)容]>
因為我們這里的根元素是class 且mydtd.dtd和myblog是同一個目錄所以最后路徑為:<!DOCTYPE class SYSTEM "mydtd.dtd">
最后分析一下mydtd.dtd文件:
元素的定義格式為:
<!ELEMENT 元素名稱 (元素內(nèi)容)>
如果是空元素則可以這樣定義:
<!ELEMENT 元素名稱 EMPTY>
這里我們看到在根元素下面有很多的stu元素抑党,所以<!ELEMENT class (stu+)>
其中+的意思stu這個元素的個數(shù)為1到n如果是*則stu的元素的個數(shù)為0到n
其他具體的修飾符這里就不列舉了(有需要的話去官網(wǎng)查一下)。
接著我們看到stu元素下面有name撵摆、sex底靠、age 3個元素所以我們定義<!ELEMENT stu (name,sex,age)>
如果你去掉其中一個stu下面的一個age則用Checkdtd.htm會提示錯誤。我就不測試了特铝。
對了暑中,最后一句的意思是<!ELEMENT name (#PCDATA)>定義name這個元素的的數(shù)據(jù)類型可以為字符串。
PS:向媳婦兒推薦一款遠程控制軟件鲫剿,Teamviewer鳄逾,手機和電腦同時下載,非商業(yè)用途的話軟件免費灵莲,可以用安裝了此軟件的手機或電腦控制安裝此軟件的電腦(前提是電腦未關(guān)機且應(yīng)用為開啟狀態(tài))雕凹,國外應(yīng)該也是能用的,不能用別殺我政冻。枚抵。。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末明场,一起剝皮案震驚了整個濱河市汽摹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌苦锨,老刑警劉巖逼泣,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異舟舒,居然都是意外死亡拉庶,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進店門魏蔗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來砍的,“玉大人,你說我怎么就攤上這事莺治±希” “怎么了?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵谣旁,是天一觀的道長床佳。 經(jīng)常有香客問我,道長榄审,這世上最難降的妖魔是什么砌们? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上浪感,老公的妹妹穿的比我還像新娘昔头。我一直安慰自己,他們只是感情好影兽,可當(dāng)我...
    茶點故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布揭斧。 她就那樣靜靜地躺著,像睡著了一般峻堰。 火紅的嫁衣襯著肌膚如雪讹开。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天捐名,我揣著相機與錄音旦万,去河邊找鬼。 笑死镶蹋,一個胖子當(dāng)著我的面吹牛成艘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播梅忌,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼狰腌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了牧氮?” 一聲冷哼從身側(cè)響起琼腔,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎踱葛,沒想到半個月后丹莲,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡尸诽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年甥材,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片性含。...
    茶點故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡洲赵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出商蕴,到底是詐尸還是另有隱情叠萍,我是刑警寧澤,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布绪商,位于F島的核電站苛谷,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏格郁。R本人自食惡果不足惜腹殿,卻給世界環(huán)境...
    茶點故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一独悴、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧锣尉,春花似錦刻炒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至暂幼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間移迫,已是汗流浹背旺嬉。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留厨埋,地道東北人邪媳。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像荡陷,于是被迫代替她去往敵國和親雨效。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,585評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法废赞,類相關(guān)的語法徽龟,內(nèi)部類的語法,繼承相關(guān)的語法唉地,異常的語法据悔,線程的語...
    子非魚_t_閱讀 31,664評論 18 399
  • 1. XML簡介 以下內(nèi)容來自于http://www.w3school.com.cn/xml 基本知識 XML 和...
    WebSSO閱讀 1,926評論 1 7
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 3,814評論 0 11
  • callback: get value:
    mimikiy閱讀 142評論 0 0
  • 今天戴老師讓我們?nèi)ゲ賵鰮鞓淙~,隋君卓和另外一個女生是撐垃圾袋的耘沼,楊尚峰負責(zé)掃學(xué)校門口的落葉极颓,我們?nèi)炻淙~。戴老...
    M張皓軒M閱讀 266評論 0 0