第11章數據交換格式ppt課件_第1頁
第11章數據交換格式ppt課件_第2頁
第11章數據交換格式ppt課件_第3頁
第11章數據交換格式ppt課件_第4頁
第11章數據交換格式ppt課件_第5頁
已閱讀5頁,還剩35頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第11章 數據交換格式孫燾.重點:XML格式 1JSON格式 2讀寫XML的常用類 3JSON在HTML中的運用 4難點:XML格式 1讀寫XML的常用類 211.1 XML格式 Xml簡介 Xml開展史 Xml的優點 Xml的規范構造Xml的實例 11.1 XML格式Xml簡介什么是 XML:1.XML 指可擴展標志言語(Extensible Markup Language) 2.XML 是一種標志言語,很類似 HTML3.XML 的設計目的是傳輸數據,而非顯示數據4.XML 標簽沒有被預定義。您需求自行定義標簽。5.XML 被設計為具有自我描畫性。6.XML 是W3C 的引薦規范11.1

2、XML格式Xml簡介Xml與 HTML 的主要差別:1.XML 不是 HTML 的替代。2.XML 和 HTML 為不同的目的而設計:3.XML 被設計為傳輸和存儲數據,其焦點是數據的內容。4.HTML 被設計用來顯示數據,其焦點是數據的外觀。5.HTML 旨在顯示信息,而 XML 旨在傳輸信息11.1 XML格式Xml開展史XML的前身是SGMLThe Standard Generalized Markup Language,是自IBM從60年代就開場開展的GMLGeneralized Markup Language同HTML一樣, XML (可擴展標識言語)是通用標識言語規范(SGML)的

3、一個子集,它是描畫網絡上的數據內容和構造的規范。雖然如此,XML不象HTML,HTML僅僅提供了在頁面上顯示信息的通用方法(沒有上下文相關和動態功能) ,XML那么對數據賦予上下文相關功能,它承繼了SGML的大部分功能,卻運用了不太復雜的技術。 11.1 XML格式Xml的優點1.XML 把數據從 HTML 分別2. XML 簡化數據共享3. XML 簡化數據傳輸4. XML 簡化平臺的變卦5. XML 使您的數據更有用6. XML 用于創建新的 Internet 言語11.1 XML格式Xml的規范構造 由于XML是W3C制定的,XML的規范化任務由W3C的XML任務組擔任,該小組成員由來自

4、各個地方和行業的專家組成,他們經過email交流對XML規范的意見,并提出本人的看法 (/TR/WD-xml)。由于XML 是個公共格式, (它不專屬于任何一家公司),他不用擔憂XML技術會成為少數公司的盈利工具,XML不是一個依靠于特定閱讀器的言語 11.1 XML格式Xml的規范構造1.XML文件的第一行必需是聲明該文件是XML文件以及它所運用的XML規范版本。在文件的前面不可以有其它元素或者注釋。2.在XML文件中有且只可以有一個根元素。我們的第一個例子中,參考資料. /參考資料就是此XML文件的根元素。 11.1 XML格式Xml的規范構造3.在XML文件中的標志必需正確地封鎖,也就是

5、說,在XML文件中,控制標志必 須有與之對應的終了標志。如:稱號標志必需有對應的/稱號終了標志,不像HTML,某些標志的終了標志可有可無。假設在XML文件中遇到自成一個單元的標志,就是類似于HTML 中的img src=.的這些沒有終了標志的時候,XML把它稱為“空元素,必需用這樣的寫法:空元素名/,假設元素中含有屬性時寫法那么為:空元素名 屬性名=“屬性值/。 11.1 XML格式Xml的規范構造4.標志之間不得交叉。在以前的HTML文件中,可以這樣寫:BHXXXXXXX/B/H,B和H標志之間有相互重疊的區域,而在XML中,是嚴厲制止這樣標志交錯的寫法,標志必需以規那么性的次序來出現。5.

6、屬性值必需求用“ 號括起來。如第一個例子中的“1.0、“gb2312、“人民幣。都是用“ 號括起來了的,不能漏掉。6.控制標志、指令和屬性稱號等英文要區分大小寫。與HTML不同的是,在HTML中, 類似B和b的標志含義是一樣的,而在XML中,類似name、NAME或Name這樣的標志是不同的。11.1 XML格式Xml的規范構造7.在HTML文件中,假設要閱讀器原封不動地將所輸入的東西顯示出來,可以將這些東西放到pre/pre或者xmp/xmp標志中間。這對于創建HTML教學的網頁是必不可少的,由于網頁中要顯示HTML的源代碼。而在XML中,要實現這樣的功能,就必需運用CDATA標志。 8.

7、XML處置空白字符和HTML不一樣。HTML規范規定,不論有多少個空白,都當作一個空白來處置;而在XML中規定,一切標志以外的空白,解析器都要忠實地交給下游的運用程序處置。這樣,有時必需摒棄編寫HTML文件時的縮排習慣,由于縮排的空格,解析器也要處置 。11.1 XML格式Xml的規范構造符合上述規定的XML文件就是Well-Formed的XML文件。這是編寫XML文件的最根本要求。可以看到XML文件的語法規定比HTML要嚴厲多了。由于有這樣的嚴厲規定,軟件工程師編寫XML的解析器就容易多了,不像編寫HTML言語的解析器,必需費盡心思去順應不同的網頁寫法,提高本人閱讀器的順應才干。實踐上,這對

8、于我們初學者來說,也是一件好事。該怎樣就怎樣,不用像原來那樣去疑惑各種HTML的寫法。 11.1 XML格式Xml的實例11.1 XML格式11.2 JSON格式 Json 的定義Json構建的構造Json的詳細方式Json與Xml的比較Json實例11.2 JSON格式Json 的定義JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。易于人閱讀和編寫。同時也易于機器解析和生成。它基于JavaScriptStandard ECMA-262 3rd Edition - December 1999的一個子集。 JSON采用完全獨立于言語的文本格式,但是也

9、運用了類似于C言語家族的習慣包括C,C+,C#,Java, JavaScript,Perl,Python等。這些特性使JSON成為理想的數據交換言語。 11.2 JSON格式Json構建的構造1. “稱號/值對的集合A collection of name/value pairs。不同的言語中,它被了解為對象object,紀錄record,構造struct,字典dictionary,哈希表hash table,有鍵列表keyed list,或者關聯數組associative array。2. 值的有序列表An ordered list of values。在大部分言語中,它被了解為數組arra

10、y。這些都是常見的數據構造。現實上大部分現代計算機言語都以某種方式支持它們。這使得一種數據格式在同樣基于這些構造的編程言語之間交換成為能夠。 11.2 JSON格式Json的詳細方式1、對象是一個無序的“稱號/值對集合。一個對象以“左括號開場,“右括號終了。每個“稱號后跟一個“:冒號;“稱號/值 對之間運用“,逗號分隔。 11.2 JSON格式Json的詳細方式2.數組是值value的有序集合。一個數組以“左中括號開場,“右中括號終了。值之間運用“,逗號分隔。 11.2 JSON格式Json的詳細方式3、值value可以是雙引號括起來的字符串string、數值(number)、true、fal

11、se、null、對象object或者數組array。這些構造可以嵌套。 。11.2 JSON格式Json的詳細方式4、字符串string是由雙引號包圍的恣意數量Unicode字符的集合,運用反斜線本義。一個字符character即一個單獨的字符串character string。 字符串string與C或者Java的字符串非常類似。 11.2 JSON格式Json的詳細方式5、數值number也與C或者Java的數值非常類似。除去未曾運用的八進制與十六進制格式。除去一些編碼細節。 11.2 JSON格式Json與Xml的比較可讀性JSON和XML的可讀性可謂不相上下,一邊是簡易的語法,一邊是規

12、范的標簽方式,很難分出勝負。可擴展性XML天生有很好的擴展性,JSON當然也有,沒有什么是XML能擴展,JSON不能的。不過JSON在Javascript主場作戰,可以存儲Javascript復合對象,有著xml不可比較的優勢。編碼難度XML有豐富的編碼工具,比如Dom4j、JDom等,JSON也有提供的工具。無工具的情況下,置信熟練的開發人員一樣能很快的寫出想要的xml文檔和JSON字符串,不過,xml文檔要多很多構造上的字符。解碼難度XML的解析得思索子節點父節點,而JSON的解析難度幾乎為0。11.2 JSON格式Json實例XML和JSON都運用構造化方法來標志數據,下面來做一個簡單的

13、比較。現假設有一個用戶數據包括:用戶名、密碼、所在部門、性別、年齡。用XML表示如下:張三 123456技術部男30 11.2 JSON格式Json實例用JSON表示如下:name:張三,password:123456,department:技術部,sex:男,old:30與XML一樣,JSON也是基于文本的,且它們都運用Unicode編碼,同樣具有可讀性。XML比較適宜于標志文檔,而JSON卻更適宜于時行數據交換處置。 11.3 讀寫XML的常用類在java環境下讀取xml文件的方法主要有4種:DOM、SAX、JDOM、JAXB DOM SAX JDOM JAXB 11.3 讀寫XML的常用

14、類DOM (Document Object Model)此方法主要由W3C提供,它將xml文件全部讀入內存中,然后將各個元素組成一棵數據樹,以便快速的訪問各個節點 。 因此非常耗費系統性能 ,對比較大的文檔不適宜采用DOM方法來解析。 DOM API 直接沿襲了 XML 規范。每個結點都可以擴展的基于 Node 的接口,就多態性的觀念來講,它是優秀的,但是在 Java 言語中的運用不方便,并且可讀性不強。 11.3 讀寫XML的常用類DOM (Document Object Model) /下面是建立XML文檔內容的過程,先建立根元素學生花名冊“Element root = doc.creat

15、eElement(學生花名冊);/根元素添加上文檔doc.appendChild(root);/建立學生元素,添加到根元素Element student = doc.createElement(學生);student.setAttribute(性別, studentBean.getSex();root.appendChild(student);/建立姓名元素,添加到學生下面,下同Element name = doc.createElement(姓名);student.appendChild(name);Text tName = doc.createTextNode(studentBean.ge

16、tName();name.appendChild(tName);11.3 讀寫XML的常用類SAX(Simple API for XML )此方法主要由XML-DEV 郵件列表的成員開發的,SAX是基于事件的方法,它很類似于標簽庫的處置機制,在標簽開場、終了以及錯誤發生等等地方調用相應的接口實現方法,不是全部文檔都讀入內存。 SAX具有優良的性能和利用更少的存儲空間特點。SAX 的設計只思索了功能的強大性,卻沒有思索程序員運用起來能否方便。運用必需擴展ContentHandler、ErrorHandler、DTDHandler等,但是必需擴展ContentHandler或者DefaultHan

17、dler 。11.3 讀寫XML的常用類SAX(Simple API for XML )獲得元素數據的方法characters 獲得元素數據中的空白的方法ignorableWhitespace 在解析四處置指令時調用的方法processingInstruction 當未驗證解析器忽略實體時調用的方法skippedEntity運轉時,只需求運用以下代碼:MySAXParser mySAXParser = new MySAXParser();mySAXParser.parserXMLFile(SutInfo.xml);11.3 讀寫XML的常用類JDOMJDOM的處置方式有些類似于DOM,但它主要

18、是用SAX實現的 。JDOM用Java的數據類型來定義操作數據樹的各個節點 。JDOM的性能也很優越。 11.3 讀寫XML的常用類JAXB(Java And XML Binding )JAXB 是以SUN為主的一些公司公布的。JAXB將schema或者DTD映射為java對象.java文件,然后運用這些java對象來解析xml文件。需求運用之前生成java文件,因此要有固定的schema,無法處置動態的xml文件。 11.4 JSON在HTML中的運用 JSON在HTML中的運用json是javascript面向對象語法的一個子集。由于json是javascript的一個子集,因此它可明晰的

19、運用于此言語中。var myjsonobject = bindings: ircevent: privmsg, method: newuri, regex: .*, ircevent: privmsg, method: deleteuri, regex: delete.*, ircevent: privmsg, method: randomuri, regex: random.* ; 11.4 JSON在HTML中的運用JSON在HTML中的運用上面的例如,創建了一個包括單獨成員bindings的對象,此成員包括一個含有三個對象ircevent, “method, 與 “regex的數組成員可以經過.或者下標操作符檢索。myjsonobject.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論