中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      XML認(rèn)證考試知識(shí)點(diǎn):Parser

      時(shí)間:2024-08-21 11:00:05 IBM認(rèn)證 我要投稿
      • 相關(guān)推薦

      XML認(rèn)證考試知識(shí)點(diǎn):Parser

        一個(gè) XML Parser(解析器)是一段可以讀入一個(gè)文檔并分析其結(jié)構(gòu)的代碼。下面小編為大家整理了關(guān)于Parser的XML認(rèn)證考試知識(shí)點(diǎn),一起來(lái)看看吧:

      XML認(rèn)證考試知識(shí)點(diǎn):Parser

        如何使用一個(gè)解析器

        通常而言,使用一個(gè)解析器需要如下步驟:

        創(chuàng)建一個(gè)解析器對(duì)象

        將您的 XML 文檔傳遞給解析器

        處理結(jié)果

        構(gòu)建一個(gè) XML 應(yīng)用顯然遠(yuǎn)遠(yuǎn)超出這些,但通常一個(gè) XML 的應(yīng)用將包含這些流程。

        解析器種類

        有不同的方法來(lái)劃分解析器種類:

        驗(yàn)證或非驗(yàn)證解析器

        支持 Document Object Model (DOM) 的解析器

        支持 Simple API for XML (SAX) 的解析器

        特定語(yǔ)言編寫的解析器 (Java, C++, Perl 等)

        接下來(lái)我們將討論這幾種解析器的各自特點(diǎn).

        驗(yàn)證或非驗(yàn)證解析器

        如我們?cè)谇懊嫠峒暗模琗ML 文檔如果使用一個(gè) DTD 并符合 DTD 中的規(guī)則將被稱為有效文檔(valid document)。符合基本標(biāo)記規(guī)則的 XML 文檔被稱為格式正確文檔(well-formed document)。

        XML 規(guī)范要求所有的解析器當(dāng)其發(fā)現(xiàn)一個(gè)文檔不是格式正確時(shí)要報(bào)錯(cuò)。

        驗(yàn)證(Validation)則是另一個(gè)問(wèn)題了。驗(yàn)證解析器(Validating parser)在解析 XML 文檔同時(shí)進(jìn)行驗(yàn)證。非驗(yàn)證解析器(Non-validating parser) 忽略所有的驗(yàn)證錯(cuò)誤。

        換而言之,如果一個(gè) XML 文檔是格式正確的時(shí),一個(gè)非驗(yàn)證解析器并不關(guān)注文檔是否符合其對(duì)應(yīng) DTD 所指定的規(guī)則(如果有的話)。

        為何使用非驗(yàn)證解析器?

        速度和效率。要一個(gè) XML 解析器處理 DTD 并確保每個(gè) XML 的元素符合在 DTD 中的規(guī)則需要相當(dāng)大的開(kāi)銷。如果您確定一個(gè) XML 文檔是有效的(可能來(lái)自一個(gè)數(shù)據(jù)源),那就沒(méi)有必要再次驗(yàn)證它了。

        同樣,有時(shí)您所需要的只是從一個(gè)文檔中找出 XML 的標(biāo)記。一旦您有了這些標(biāo)記,您可以將數(shù)據(jù)從中提取出然后加以處理。如果這就是您所需要的,一個(gè)非驗(yàn)證解析器就是正確的選擇。

        Document Object Model (DOM)

        文檔對(duì)象模型(Document Object Model)是 World Wide Web Consortium(W3C) 的正式推薦。它定義了一個(gè)接口使得程序可以存取和更新 XML 文檔的風(fēng)格、結(jié)構(gòu)和內(nèi)容。支持 DOM 的 XML 解析器實(shí)現(xiàn)該接口。

        該規(guī)范的第一版,DOM Level 1,可從 http://www.w3.org/TR/REC-DOM-Level-1 獲得。

        當(dāng)您用一個(gè) DOM 解析器來(lái)解析一個(gè) XML 文檔時(shí),您將獲得一個(gè)包含文檔中所有元素的樹(shù)結(jié)構(gòu)。DOM 提供了不同的功能來(lái)檢查文檔的內(nèi)容和結(jié)構(gòu)。

        Simple API for XML (SAX)

        SAX API 是另一種處理 XML 文檔內(nèi)容的方法。一個(gè)既成事實(shí)的標(biāo)準(zhǔn),它由 David Megginson 和 XML-Dev 郵件列表其它成員所開(kāi)發(fā)。

        要查看完整的 SAX 標(biāo)準(zhǔn),參見(jiàn) www.megginson.com/SAX/。要參加 XML-Dev 郵件列表,發(fā)送郵件到 majordomo@ic.ac.uk 其中包含: subscribe xml-dev。

        當(dāng)您使用 SAX 解析器來(lái)解析 XML 文檔時(shí),解析器在文檔的不同處將產(chǎn)生事件。由您來(lái)決定對(duì)每個(gè)事件如何處理。

        SAX 解析器會(huì)在以下情況下產(chǎn)生事件:在文檔開(kāi)始和結(jié)束時(shí),在一個(gè)元素開(kāi)始和結(jié)束時(shí),或者它在一個(gè)元素中找到字符時(shí),以及其它若干點(diǎn)。您可編寫 Java 代碼來(lái)處理每個(gè)事件,以及如何處理從解析器獲得的信息。

        何時(shí)使用 SAX?何時(shí)使用 DOM?

        為了確定哪種接口適合您,您需要理解所有接口的設(shè)計(jì)要點(diǎn),而且需要理解應(yīng)用程序用您將要處理的 XML 文檔來(lái)做什么。考慮下面的問(wèn)題將有助于您找到正確的方法。

        要用 Java 編寫應(yīng)用程序嗎?

        JAXP 使用 DOM、SAX 和 JDOM;如果您用 Java 編寫代碼,那么您應(yīng)使用 JAXP 將您的代碼與各種解析器實(shí)現(xiàn)的細(xì)節(jié)隔離。

        應(yīng)用程序?qū)⑷绾尾渴?

        如果您的應(yīng)用程序?qū)⒁鳛?Java applet 部署,那么您會(huì)希望使要下載的 代碼數(shù)量最小,別忘了 SAX 解析器比 DOM 解析器小。還要知道使用 JDOM 時(shí),除了 SAX 或 DOM 解析器之外還要求編寫少量的代碼。

        一旦解析了 XML 文檔,還需要多次訪問(wèn)那些數(shù)據(jù)嗎?

        如果您需要回過(guò)頭來(lái)訪問(wèn) XML 文件的已解析版本,DOM 可能是正確的選擇。 而 SAX 事件被觸發(fā)時(shí),如果您以后需要它,則由您(開(kāi)發(fā)人員)自己決定以 某種方式保存它。如果您需要訪問(wèn)不曾保存的事件,則必須再次解析該文件。 而 DOM 自動(dòng)保存所有的數(shù)據(jù)。

        只需要 XML 源文件的少量?jī)?nèi)容嗎?

        如果您只需要 XML 源文件的少量?jī)?nèi)容,那么 SAX 可能是正確的選擇。SAX 不會(huì)為源文件中的每個(gè)東西創(chuàng)建對(duì)象;您要確定什么是重要的。使用 SAX, 您要檢查每個(gè)事件以了解它是否與您的需要有關(guān),然后相應(yīng)地處理它。更妙 的是,一旦找到您正在尋找的東西,您的代碼就會(huì)拋出一個(gè)異常來(lái)完全停止 SAX 解析器。

        您正在一臺(tái)內(nèi)存很少的機(jī)器上工作嗎?

        若是的話,不管您可能考慮到的其它因素是什么,SAX 是您的最佳選擇。

        要知道還存在用于其它語(yǔ)言的 XML API;尤其是 Perl 和 Python 社區(qū)有極佳的 XML 工具。

      【XML認(rèn)證考試知識(shí)點(diǎn):Parser】相關(guān)文章:

      IBM XML認(rèn)證知識(shí)點(diǎn):Dtd09-01

      關(guān)于IBM XML認(rèn)證考試的要點(diǎn)01-13

      XML認(rèn)證元素類型聲明05-28

      Linux認(rèn)證考試必考知識(shí)點(diǎn)01-14

      2017年SUN認(rèn)證考試常見(jiàn)知識(shí)點(diǎn)09-30

      IBM認(rèn)證考試認(rèn)證體系01-20

      微軟認(rèn)證考試最新認(rèn)證01-13

      微軟認(rèn)證考試技巧:MCSA認(rèn)證考試經(jīng)驗(yàn)01-13

      思科認(rèn)證CCNA認(rèn)證考試簡(jiǎn)介06-08

      SUN認(rèn)證考試知識(shí)點(diǎn):java servlet生命周期09-25

      主站蜘蛛池模板: 久青青草视频手机在线免费观看| 亚洲欧美香港在线观看三级片| 彰化县| 久久HEZYO色综合| 亚洲中文字幕在线精品一区| 保山市| 欧美1区二区三区公司| 亚洲综合一区二区三区蜜臀av| 激情内射亚洲一区二区| 湘西| 国产青青草视频在线播放| 在线免费观看亚洲天堂av| 女同在线观看免费网站| 日本一区二区三区激情视频| 宜阳县| 玉门市| 久久国产精品99精品国产987 | 名山县| 国产人妖免费调教视频| 国产精品系列在线一区二区三区| 永久免费中文字幕av| 无码高潮久久一级一级喷水| 清徐县| 韩日无码不卡| 熟妇与小伙子露脸对白| 都昌县| 一区二区三区不卡免费av| 安康市| 民乐县| 那曲县| 张家界市| 仁寿县| 亚洲中文久久久久无码| 亚洲高清一区二区三区在线观看 | 黎城县| 亚洲女同制服中文字幕 | 国产精品一区二区久久精品蜜臀| 亚洲精品AⅤ无码精品丝袜无码| 色婷婷亚洲十月十月色天| 另类人妖在线观看一区二区| 亚洲一区二区三区久久综合|