面向服務(wù)計算(一)---XML教程.ppt_第1頁
面向服務(wù)計算(一)---XML教程.ppt_第2頁
面向服務(wù)計算(一)---XML教程.ppt_第3頁
面向服務(wù)計算(一)---XML教程.ppt_第4頁
面向服務(wù)計算(一)---XML教程.ppt_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

XML介紹 XML eXtensibleMarkupLanguage 可擴展的標(biāo)記語言可擴展 相對HTML 超文本標(biāo)記語言 編輯網(wǎng)頁文件時 網(wǎng)頁文件中使用的HTML標(biāo)簽都是預(yù)先規(guī)定好的 不能根據(jù)自己意愿添加規(guī)定外的標(biāo)簽 而如果編輯一個XML文件 可以根據(jù)自己意愿定義標(biāo)簽來完成 比如 胡澤旺男 什么是XML 可擴展性是XML最主要的特點XML是一種元標(biāo)記語言 它只表示數(shù)據(jù)本身 沒有顯示的樣式 和HTML比較 HTML不僅表示數(shù)據(jù)而且還有顯示的樣式真正的數(shù)據(jù)和顯示分離基于這樣的特點 XML主要用來交換數(shù)據(jù)用交換雙方都可以明白的標(biāo)簽來封裝數(shù)據(jù)比如WebServices 就是在不同平臺和不同語言之間交換數(shù)據(jù)寫配置文件 XML特點和運用 JavaApps NotNetApps XML Java超級編程比爾蓋茨 XML文檔構(gòu)成 XML聲明 文檔類型聲明 文檔元素 一個XML文檔就是擴展名為 xml的文本文件 XML文檔 XML聲明 XML聲明一般是XML文檔的第一行XML聲明由以下幾個部分組成 version 文檔符合XML1 0規(guī)范 現(xiàn)在只有1 0encoding 文檔字符編碼 默認(rèn)為 UTF 8 standalone 文檔定義是否在一個文件內(nèi)standalone yes standalone no 返回 每個XML文檔必須有且只有一個根元素 根元素是一個完全包括文檔中其他所有元素的元素 根元素的起始標(biāo)記要放在所有其他元素的起始標(biāo)記之前 根元素的結(jié)束標(biāo)記要放在所有其他元素的結(jié)束標(biāo)記之后 XML文檔 根元素 XML文檔 元素 YIKEJI LTD 元素TITLE 開始標(biāo)記 結(jié)束標(biāo)記 內(nèi)容 空元素TITLE 空元素TITLE XML文檔 屬性 TOM屬性值用雙引號 或單引號 分隔 如果屬性值中有 用 分隔 有 用 分隔 一個元素可以有多個屬性 它的基本格式為 特定的屬性名稱在同一個元素標(biāo)記中只能出現(xiàn)一次屬性值不能包括 實體 作用 避免重復(fù)輸入 宏 變量 XML中五個預(yù)定義實體自定義實體語法 引用已定義的實體 XML專用標(biāo)記 1 注釋 注釋內(nèi)容中不要出現(xiàn) 不要把注釋放在標(biāo)記中間 TOM注釋不能嵌套 可以在除標(biāo)記以外的任何地方放注釋 不能位XML文檔的第一行 用于把整段文本解釋為純字符數(shù)據(jù)而不是標(biāo)記的情況 包含大量 或者 字符 CDATA CharacterData 節(jié)中的所有字符都會被當(dāng)作元素字符數(shù)據(jù)的常量部分 而不是XML標(biāo)記 語法 XML專用標(biāo)記 2 CDATA節(jié) 文檔類型聲明 緊跟XML聲明之后 包含所有實體聲明語法 文檔類型定義 DOCTYPE 遵循如下規(guī)則的XML文檔稱為格式良好的XML文檔 語法規(guī)范必須有XML聲明語句必須有且僅有一個根元素標(biāo)記大小寫敏感屬性值用引號標(biāo)記成對空標(biāo)記關(guān)閉元素正確嵌套 格式良好的XML文檔 元素語法名稱中可以包含字母 數(shù)字或者其它字符名稱不能以數(shù)字和 下劃線 開頭不能以XML xml Xml 開頭名稱中不能含空格名稱中不能含冒號 注 冒號留給命名空間使用 格式良好的XML文檔 續(xù) DTD DocumentTypeDefinition 文檔類型定義DTD用來驗證XML文檔的結(jié)構(gòu)是否合法DTD定義XML文檔中可以出現(xiàn)的元素元素的關(guān)系元素可用的屬性定義實體DTD文件的擴展名 dtd DTD 有了DTD 每個XML文件可以攜帶一個自身格式的描述 有了DTD 不同組織的人可以使用一個通用DTD用來交換數(shù)據(jù) 應(yīng)用程序可以使用一個標(biāo)準(zhǔn)DTD校驗從外部世界接受來的XML數(shù)據(jù)是否有效可以使用DTD校驗自己的XML數(shù)據(jù) 為什么需要DTD DTD文檔的聲明及引用內(nèi)部DTD文檔外部DTD文檔內(nèi)外部DTD文檔結(jié)合 如何生成一個DTD文檔 1 4 王維鹿柴空山不見人 但聞人語聲 返景入深林 復(fù)照青苔上 如何生成一個DTD文檔 2 4 注意 例中的定義關(guān)鍵字一定要大寫 如DOCTYPE ELEMENT PCDATA 且元素名稱與數(shù)據(jù)類型之間也要有空格 PCDATA ParsiableCharacterData 能夠被解析的數(shù)據(jù) 如何生成一個DTD文檔 3 4 王維鹿柴空山不見人 但聞人語聲 返景入深林 復(fù)照青苔上 外部DTD示例 如何生成一個DTD文檔 4 4 王維鹿柴空山不見人 但聞人語聲 返景入深林 復(fù)照青苔上 內(nèi)部和外部DTD示例 語法 元素的定義 1 5 關(guān)鍵字 元素名稱 EMPTY 該元素不能包含子元素和文本 但可以有屬性 空元素 ANY 該元素可以包含任何在DTD中定義的元素內(nèi)容 PCDATA 可以包含任何字符數(shù)據(jù) 但是不能在其中包含任何子元素純元素類型 只包含子元素 并且這些子元素外沒有文本混合類型 包含子元素和文本數(shù)據(jù)的混合體 元素類型 EMPTY示例 空元素皮諾曹皮諾曹爸爸 元素的定義 2 5 ANY示例皮諾曹皮諾曹爸爸將根元素設(shè)為ANY類型后 元素出現(xiàn)的次數(shù)和順序不受限制 元素的定義 3 5 PCDATA示例皮諾曹皮諾曹爸爸 元素的定義 4 5 組合類型示例 元素的定義 5 5 修飾符號 語法 屬性的定義 CDATAIDIDREF IDREFSEnumerated REQUIRED IMPLIED FIXEDvalueDefaultvalue 屬性值可以是任何字符 包括數(shù)字和中文 屬性類型 CDATA 表明該屬性的取值必須是唯一的 屬性類型 ID ID屬性值必須是合格的XML名字 事先定義好一些值 屬性的值必須在所列出的值的范圍內(nèi) 屬性類型 Enumerated ENITITY類型的屬性的值必須對應(yīng)一個在DTD文檔內(nèi)聲明的實體 通常用來處理外部的二進制數(shù)據(jù)文件 如圖形 音效等ENTITIES類型的屬性的值與ENITITIE類似 不同的是可以包含多個由空格分開的實體 屬性類型ENTITY ENTITIES A001 元素的所有實例都必須有該屬性的值 NOTNULL 語法 DTD示例 XML示例 屬性的特點 REQUIRED 元素的實例中可以忽略該屬性 NULL 語法 DTD示例 XML示例 屬性的特點 IMPLIED 元素實例中該屬性的值必須為指定的固定值 語法 DTD示例 XML示例 屬性的特點 FIXEDvalue 為屬性提供一個默認(rèn)的值語法 DTD示例 XML示例 屬性的特點 Defaultvalue 語法 DTD示例 XML示例 定義實體 內(nèi)部實體 分析完整的DTD文檔 寫XML實例 張三男20李四女19王二男21 分析XML實例 寫DTD文檔 為什么要使用命名空間避免元素名沖突什么是命名空間使用URL作為XML的Namespaces命名空間的語法定義 xmlns prefix URL 元素和屬性都可以應(yīng)用命名空間 命名空間 Namespace XML的元素名是不固定的 當(dāng)兩個不同的文檔使用同樣的名稱描述兩個不同類型的元素的時候 就會發(fā)生命名沖突 命名沖突 ApplesBananas 使用前綴解決命名沖突問題 AfricanCoffeeTable80120 ApplesBananas 使用命名空間屬性 AfricanCoffeeTable80120 Java解析XML的方式DOM解析標(biāo)準(zhǔn)由W3C定義 Java有實現(xiàn) JAXP DOM方式是把整個XML文件在內(nèi)存里生成一顆樹 樹的節(jié)點就是XML文件的元素由于DOM方式需要在內(nèi)存里完整的加載和生成一顆樹 如果XML過大 效率相對較低SAX解析SAX處理的優(yōu)點非常類似于流媒體的優(yōu)點 分析能夠立即開始 而不是等待所有的數(shù)據(jù)被處理 而且 由于應(yīng)用程序只是在讀取數(shù)據(jù)時檢查數(shù)據(jù) 因此不需要將數(shù)據(jù)存儲在內(nèi)存中 這對于XML文件過大時是有好處的 解析XML JDOM解析JDOM是一個開源項目 http www jdom org 它基于樹型結(jié)構(gòu) 利用純JAVA的技術(shù)對XML文檔實現(xiàn)解析 生成 序列化以及多種操作 JDOM直接為JAVA編程服務(wù) 它利用更為強有力的JAVA語言的諸多特性 方法重載 集合概念以及映射 把SAX和DOM的功能有效地結(jié)合起來DOM4J解析DOM4J 最開始是JDOM的一個分支 也是一款優(yōu)秀的JAXP 使用起來非常簡單 解析XML dom4j主要API介紹Document接口 表示一個XML文檔ElementgetRootElement 返回一個XML文檔的根元素voidsetRootElement 為一個XML文檔設(shè)置根元素StringgetXMLEncoding 返回一個XML文檔的字符編碼的字符串voidsetXMLEncoding 設(shè)置一個XML文檔的字符編碼Element接口 表示XML文檔的一個元素add Attributeattr 為指定的元素添加屬性addAttribute Stringname Stringvalue add Texttext 為指定的元素添加文本內(nèi)容addText Stringtext add Elementelement 為指定的元素添加子元素addElement Stringname Stringvalue DOM4J解析XML Element接口remove Attributeattri 從指定的元素移出指定的屬性節(jié)點remove Texttext 從指定的元素移出指定的文本節(jié)點remove Elementelement 從指定的元素移出指定的子元素Attributeattribute Stringname 返回指定屬性名的Attribute對象StringattributeValue Stringname 返回指定屬性的值Listattributes 返回指定元素所有屬性的集合IteratorattributeIterator 返回指定元素所有屬性的迭代器StringgetText 返回指定元素的文本內(nèi)容Listelements 返回指定元素的所有子元素的集合IteratorelementIterator 返回指定元素的所有子元素的迭代器Attribute接口 表示一個元素的屬性節(jié)點StringgetValue 返回屬性的值voidsetValue Stringvalue 為屬性設(shè)置值 dom4j主要API介紹 Text 表示一個元素的文本節(jié)點stringgetText 返回文本節(jié)點的文本內(nèi)容voidsetText Stringvalue 為文本節(jié)點賦值Branch 為XML文檔中的所有節(jié)點定義的公共行為 繼承自NodeAttribute Text Element Document都繼承自BranchNode 表示一個XML的節(jié)點 包括屬性節(jié)點 文本節(jié)點等StringgetName 返回節(jié)點的名字voidsetName Stringname 設(shè)置節(jié)點的名字Branch繼承自Node dom4j主要API介紹 dom4j主要API介紹 節(jié)點類圖 DocumentHelper dom4j中經(jīng)常使用的工具類staticDocumentcreateDocument 創(chuàng)建一個XML文檔staticDocumentcreateDocument ElementrootElement 用指定的根元素創(chuàng)建一個XML文檔staticElementcreateElement Stringname 用指定的名字創(chuàng)建一個元素對象OutputFormat 表示一個XML文檔輸出的格式staticOutputFormatcreateCompactFormat 得到一個緊湊式的格式staticOutputFomatcreatePrettyPrint 得到一個格式良好的格式voidsetEncoding Stringencoding 設(shè)置輸出的編碼XMLWriter XML的輸出流 用于輸出XMLwrite Documentdoc 將Document表示的XML文檔輸出SAXReader 創(chuàng)建一個從SAX的解析中得到的DOM4J樹Documentread Filefile 返回給定XML文檔的Document對象Documentread InputStreamin dom4j主要API介紹 工具類 第一步在內(nèi)存生成一個XML文檔的DocumentDocumentdoc DocumentHelper createDocument Elementroot doc addElement persons Elementperson root addElement person addAttribute id 512323 person addElement name setText 張三 person addElement gender setText 男 第二步將第一步生成的Document輸出到文件Filefile newFile src com hzw javaweb ch01 dom4j persons xml OutputFormatformat OutputFormat createPrettyPrint format setEncoding GBK XMLWriterwriter newXMLWriter newFileOutputStream file format XMLWri

溫馨提示

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

評論

0/150

提交評論