最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS操作XML中DTD介紹及使用方法分析

 更新時(shí)間:2019年07月04日 10:10:48   作者:Yeoman92  
這篇文章主要介紹了JS操作XML中DTD介紹及使用方法,結(jié)合實(shí)例形式分析了DTD概念、原理及校驗(yàn)xml文檔的相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了JS操作XML中DTD介紹及使用方法。分享給大家供大家參考,具體如下:

什么是DTD,為什么需要DTD?

DTD為英文Document Type Definition,中文意思為“文檔類型定義”。DTD肩負(fù)著兩重任務(wù):一方面它幫助你編寫合法的代碼,另一方面它讓瀏覽器正確地顯示器代碼。

一個(gè)HTML文檔的基本結(jié)構(gòu)可分為兩個(gè)主要部分:

<html>
  <head>
   頭部信息
  </head>
  <body>
   可視內(nèi)容
  </body>
</html>

一個(gè)DTD應(yīng)該放在每一個(gè)文檔的第一行(包括空白).這樣正確地放置,你的DTD才能告訴瀏覽器的用的是什么標(biāo)記語言。在通常情況下,如果你編寫的是正確代碼,并擁有一個(gè)合適的DTD,瀏覽器將會(huì)根據(jù)W3C的標(biāo)準(zhǔn)顯示你的代碼。
良好的xml文檔:符合xml的語法規(guī)則。
有效的xml文檔:符合xml語法規(guī)則的同時(shí)還需要符合DTD文檔類型定義。
有效(Valid)的XML文檔:
首先,XML文檔是個(gè)格式正規(guī)的(Well-formed)XML文檔;
其次,需要滿足DTD的要求,這樣的XML文檔稱為有效的(Valid)XML文檔。
利用DTD可以對(duì)xml文檔的各個(gè)節(jié)點(diǎn)進(jìn)行約束定義,使開發(fā)遵循一套“標(biāo)準(zhǔn)”。
DTD可以約束xml文檔出現(xiàn)的元素,元素名稱,元素的先后順序,屬性等。

DTD文檔與XML文檔實(shí)例的關(guān)系

類與對(duì)象;
數(shù)據(jù)庫表結(jié)構(gòu)與數(shù)據(jù)記錄;

有了DTD,每個(gè)XML文件可以攜帶一個(gè)自身格式的描述。
有了DTD,不同組織的人可以使用一個(gè)通用DTD來交換數(shù)據(jù)。
應(yīng)用程序可以使用一個(gè)標(biāo)準(zhǔn)DTD校驗(yàn)從外部世界接收來的XML數(shù)據(jù)是否有效。
可以使用DTD校驗(yàn)自己的XML數(shù)據(jù)。

元素的定義

這里寫圖片描述

DTD中的修飾符號(hào):

這里寫圖片描述

這部分符號(hào)可以聯(lián)系正則表達(dá)式的符號(hào)來記憶。重點(diǎn)內(nèi)容

如何生成DTD文檔

DTD文檔有三種應(yīng)用形式:

1.內(nèi)部DTD文檔

<!DOCTYPE 根元素[定義內(nèi)容]>

2.外部DTD文檔

<!DOCTYPE 根元素 SYSTEM "DTD文件路徑">

3.內(nèi)外部DTD文檔結(jié)合

<!DOCTYPE 根元素 SYSTEM "DTD文件路徑" [定義內(nèi)容]>

這里寫圖片描述

內(nèi)部DTD

一個(gè)內(nèi)部DTD的例子:
上半部分是DTD,下面是XML文檔,文檔要符合DTD。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE poem [
  <!ELEMENT poem (author, title, content)>
  <!ELEMENT author (#PCDATA)>
  <!ELEMENT title (#PCDATA)>
  <!ELEMENT content (#PCDATA)>
]>
<!--為元素poem定義了三個(gè)子元素author title content,
這三個(gè)元素必須要出現(xiàn)并且必須按照這個(gè)順序
少元素不行,多元素也不行
-->
<!--指明author,title,content里面的內(nèi)容是字符串類型-->
<poem>
  <author>王維</author>
  <title>鹿柴</title>
  <content>空山不見人,但聞人語聲。返景入深林,復(fù)照青苔上。</content>
</poem>

上面的文檔就是格式良好,并且有效的。

#PCDATA(Parsed Character Data) ,可解析的字符數(shù)據(jù),即字符串。

上面部分是DTD,在下面編寫XML文檔時(shí),如果不符合其DTD規(guī)范,用XMLSpy做檢查的時(shí)候,是well-formed的,但是卻不是valid的。

比如根元素寫:

<Students>
</Students>

Validate檢查的時(shí)候就會(huì)報(bào)錯(cuò),根元素和DTD中的poem不符。

制作DTD約束校驗(yàn)工具

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<script>
var doc = new ActiveXObject("Mircosoft.XMLDOM");
doc.validateOnParse = true;
doc.async = false;//同步校驗(yàn)
function jiaoyan(){
  doc.load("./01.xml");//加載被校驗(yàn)的文檔
  var rst = document.getElementById("result");
  rst.innerHTML += "錯(cuò)誤信息:" + doc.parseError.reason + "<br />";//校驗(yàn)的錯(cuò)誤信息
  rst.innerHTML += "錯(cuò)誤行數(shù):" + doc.parseError.line + "<br />";//出錯(cuò)代碼的行數(shù)
  rst.innerHTML += "錯(cuò)誤列數(shù):" + doc.parseError.linepos + "<br />";//出錯(cuò)代碼的列數(shù)
  rst.innerHTML += "錯(cuò)誤代碼:" + doc.parseError.errorCode + "<br />";//出錯(cuò)代碼的編號(hào)
}
</script>
</head>
<body>
<input type=button value="校驗(yàn)" onclick="jiaoyan()" />
<div id="result"></div>
</body>
</html>

PS:這里再為大家提供幾款關(guān)于xml操作的在線工具供大家參考使用:

在線XML/JSON互相轉(zhuǎn)換工具:
http://tools.jb51.net/code/xmljson

在線格式化XML/在線壓縮XML
http://tools.jb51.net/code/xmlformat

XML在線壓縮/格式化工具:
http://tools.jb51.net/code/xml_format_compress

XML代碼在線格式化美化工具:
http://tools.jb51.net/code/xmlcodeformat

更多關(guān)于JavaScript相關(guān)內(nèi)容可查看本站專題:《JavaScript操作XML文件技巧總結(jié)》、《JavaScript文件與目錄操作技巧匯總》、《JavaScript中ajax操作技巧總結(jié)》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》及《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • php刪除二維數(shù)組中的重復(fù)值方法

    php刪除二維數(shù)組中的重復(fù)值方法

    下面小編就為大家分享一篇php刪除二維數(shù)組中的重復(fù)值方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • PHP實(shí)現(xiàn)的XML操作類【XML Library】

    PHP實(shí)現(xiàn)的XML操作類【XML Library】

    這篇文章主要介紹了PHP實(shí)現(xiàn)的XML操作類,涉及php針對(duì)數(shù)組、xml的轉(zhuǎn)換、序列化、反序列化等相關(guān)操作技巧,需要的朋友可以參考下
    2016-12-12
  • 解析PHP 使用curl提交json格式數(shù)據(jù)

    解析PHP 使用curl提交json格式數(shù)據(jù)

    本篇文章是對(duì)PHP中使用curl提交json格式數(shù)據(jù)的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • 淺談PHP正則表達(dá)式中修飾符/i, /is, /s, /isU

    淺談PHP正則表達(dá)式中修飾符/i, /is, /s, /isU

    我們在PHP正則表達(dá)式的學(xué)習(xí)中會(huì)碰到修飾符,那么關(guān)于PHP正則表達(dá)式修飾符的理解以及使用我們需要注意什么呢?那么我們來具體的看看它的概念以及相關(guān)內(nèi)容。
    2014-10-10
  • 解決FastCGI 進(jìn)程超過了配置的活動(dòng)超時(shí)時(shí)限的問題

    解決FastCGI 進(jìn)程超過了配置的活動(dòng)超時(shí)時(shí)限的問題

    本篇文章是對(duì)解決FastCGI 進(jìn)程超過了配置的活動(dòng)超時(shí)時(shí)限的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-07-07
  • php使用codebase生成隨機(jī)數(shù)

    php使用codebase生成隨機(jī)數(shù)

    這篇文章主要介紹了php使用codebase生成隨機(jī)數(shù)的示例,需要的朋友可以參考下
    2014-03-03
  • 最新評(píng)論

    周宁县| 梅州市| 阳原县| 崇左市| 宽甸| 东至县| 和平县| 肥乡县| 孟村| 道孚县| 海丰县| 商南县| 革吉县| 安龙县| 南岸区| 建平县| 白水县| 上虞市| 安西县| 时尚| 安康市| 潜山县| 中宁县| 郧西县| 武清区| 肥城市| 牙克石市| 聂荣县| 冷水江市| 卢湾区| 噶尔县| 新民市| 井冈山市| 同仁县| 新民市| 泗洪县| 济南市| 长沙市| 十堰市| 浙江省| 东丽区|