瘋狂XML講義

出版時間:2009-11  出版社:電子工業(yè)出版社  作者:李剛  頁數(shù):492  
Tag標簽:無  

前言

  自從1998年問世以來,XML已經(jīng)廣泛應用于各種開發(fā)平臺、各種編程語言中,并衍生出大量新的標記語言:如SVG(Scalable Vector Graphics)、SMIL(Synchronized Multimedia Integration Language)等,這些都充分說明了XML強大的生命力和廣泛的引用前景。  對于大部分Java開發(fā)者而言,使用XML最多的地方還是配置文件,不管是Java Web應用的初學者,還是Struts、Spring等開源框架的學習者,幾乎每天都會接觸到大量的XML文檔。因此大部分開發(fā)者都會把XML文檔和配置文件等同起來,但實際上XML的應用是非常廣泛的。本書系統(tǒng)而深入地介紹了XML以及XML相關方面的內(nèi)容,并通過實際案例示范了XML在實際開發(fā)中的應用,本書將帶領讀者系統(tǒng)而深入地掌握XML的相關知識?! ”緯蟛糠终鹿?jié)后都提供了相應的編程習題,供學習者鞏固所學、將理論融入實際開發(fā)之用。關于這些編程習題的解題思路和參考答案可登錄http://www.crazyit.org獲取。  本書有什么特點  本書寫作過程中大量參考了http://www.w3c.org站點中關于DTD、XML Schema、XSLT、XPath、XQuery等技術的最新規(guī)范。也參考了微軟MSDN里關于XML的內(nèi)容,主要由http://msdn.microsoft.com/zh-cn/library/ms256177.aspx和http://msdn.microsoft.com/zh-cn/library/ms256177 (VS.80).aspx兩個頁面提供?! ”緯M到y(tǒng)、深入地介紹XML以及相關技術,希望讀者能通過本書更全面地掌握、使用XML的相關知識。歸納起來,本書大致有如下3個特點:  1.知識全面、專業(yè)性強  本書并不是一本關于XML基礎的圖書,本書系統(tǒng)而深入地介紹了XML相關知識,不僅包括DTD、XML Schema等基礎內(nèi)容,也包括XSLT、XPath、XQuery、DOM、SAX、JDOM和dom4j等高級內(nèi)容。除此之外,還介紹了XML在實際企業(yè)開發(fā)中一個重要的應用方向:Web Services,并介紹了Java領域的Web Services框架CXF的用法。這些知識點覆蓋了XML相關的絕大部分內(nèi)容,專業(yè)性非常強?! ?.案例實際、實用性強  本書前面各章講解各小知識點時,不僅介紹了它們的基本語法,還提供了與之對應的小范例,希望讀者能理論結合實際,邊讀邊練,通過編碼來掌握相應的知識。本書除了介紹XML及其相關知識之外,更重點介紹了如何將XML知識融入實際應用開發(fā),例如書中最后兩個案例,都是XML在實際企業(yè)開發(fā)中極好的范例?! ?.深入淺出、易讀性強  本書與瘋狂Java體系的其他圖書一樣,即使在介紹專業(yè)性極強的知識時,也盡量使用深入淺出的類比來幫助讀者理解它們,然后配合針對性很強、重點突出的小示例來說明這些知識,降低初學者的學習難度。通過這種案例驅(qū)動的講解方式,讓讀者閱讀時更容易理解各知識點的功能;接下來又能迅速將所學知識應用于實際開發(fā)?! ”緯鴦?chuàng)作感言  動手寫作本書之前,博文視點的朱沭紅老師已經(jīng)善意地提醒筆者:關于XML的書都很難賣,可能大家都覺得XML太簡單了。想一想也是,幾乎所有學習Java開發(fā)的讀者都應該接觸過XML文檔:當你開始學習JSP開發(fā)時,你就得寫web.xml配置文件;當你學習Struts時,你又得寫struts-config.xml配置文件。幾乎所有Java學習者都接觸過XML文檔,所以大家可能覺得XML如此簡單,怎么可能需要一本書來介紹呢?  很多人可能覺得XML非常簡單,因為他們每天都會接觸XML文檔,但如果再深入問一下:XML除了做配置文件之外,還能干什么?他們往往一無所知?! ∷麄冎繶ML可以做配置文件,但可能不知道XML配置文件的結構是由DTD、Schema控制的——因為我經(jīng)??吹接腥藛杦eb.xml文件能包含哪些元素?如何將JSP文件配置成一個Servlet?等等諸如此類的問題,如果他知道閱讀web.xml文件對應的DTD、Schema,那他就不會再存在這些疑問了?! ∷麄兛赡懿恢繶ML還可以作為一種輕量級的持久化解決方案,就像數(shù)據(jù)庫一樣,應用程序可以用類似于SQL的XQuery來查詢XML文檔中的信息。他們可能不知道XML可以直接作為表現(xiàn)層來代替?zhèn)鹘y(tǒng)的HTML……  后來我覺得,如果確實存在上面這些情況,那我就更應該有這樣一本書:全面而深入地來介紹XML的相關知識,希望可以讓大家掌握XML的全貌。作為配置文件只是XML的功能之一,而XML的作用遠不止這些?! ∽詈笪液椭煦鸺t老師達成一個共識:出版一本圖書除了考慮經(jīng)濟上的回報之外,更多地應該考慮一本書對社會價值的作用。就我以一個老程序員的眼光來看,XML不管是對于Java平臺、還是其他如.NET平臺都具有非常重要的作用。就像做B/S開發(fā)的程序員,你可以選擇Java、PHP或者其他,但你無法回避JavaScript;XML也是如此,它不僅對于Java平臺是有用的,而且對于其他開發(fā)平臺也是有用的?! ∮捎赬ML技術有著廣泛的用途,而廣大Java學習者、開發(fā)者又對其重視不夠,因而我們覺得出版這樣一本書也許可以讓大家對XML投以更多的目光,那這本書的價值也就體現(xiàn)出來了。  本書寫給誰看  本書是瘋狂Java體系叢書之一,學習本書無須任何XML基礎,但DOM、SAX、dom4j、JDOM解析部分包含了大量Java編程,因此建議先閱讀瘋狂Java體系的《瘋狂Java講義》一書。如果時間允許,建議讀者按照本書所附的學習線路圖,遵循學習規(guī)律進行學習。

內(nèi)容概要

  《瘋狂XML講義》主要以XML為核心,深入地介紹了XML的各種相關知識?!动偪馲ML講義》作為瘋狂Java體系圖書之一,依然保持該體系圖書系統(tǒng)、全面的特點:不僅詳細介紹了XML,文檔的各種知識,還通過案例示范了實際開發(fā)中如何應用XML知識。  《瘋狂XML講義》主要分為五個部分。第一部分介紹了XML、DTD、XML Schema等基礎知識,這些知識主要教讀者如何定義有效的XML文檔,這部分內(nèi)容是深入學習后面知識的基礎,也是每個使用XML的開發(fā)者都應該掌握的基礎。第二部分介紹了CSS、XSLT和XPath等知識,通過使用CSS或XSLT,可直接將XML文檔當成視圖技術。第三部分介紹了DOM、SAX、JAXP、dom4j、JDOM、XQuery和XQJ等,其中的DOM、SAX、JAXP、dom4i和JDOM都以結構化的方式來創(chuàng)建、解析XML文檔,從而可以將XML文檔作為數(shù)據(jù)傳輸工具,而XQuery則是一種新規(guī)范,通過X Query可以查詢XML,文檔中的數(shù)據(jù),就像使用SQL查詢關系數(shù)據(jù)庫的數(shù)據(jù)一樣。第四部分介紹了Web Services和CXF,其中CXF是Java領域的主流Web Services框架,簡單易用。第五部分則提供了兩個綜合性案例:基于XML的電子公告系統(tǒng)和電子拍賣系統(tǒng),讓讀者將前面所學應用到實際項目中。尤其是電子拍賣系統(tǒng),它是一個包含5個表,表之間具有復雜關聯(lián)映射的系統(tǒng),該案例采用目前最流行、最規(guī)范的輕量級Java EE架構,將整個應用分為領域?qū)ο髮?、DAO層和業(yè)務邏輯層,然后用CXF將業(yè)務邏輯組件包裝成Web Services,從而可以將現(xiàn)有的Java EE項目與其他平臺的、其他語言的異構項目進行整合,具有極好的指導價值和借鑒意義?!  动偪馲ML講義》大部分章節(jié)后都提供了相應的編程習題,供開發(fā)者鞏固所學,將理論融入實際開發(fā)之用。關于這些編程習題的解題思路和參考答案可登錄http://www.crazyit.org獲取?!  动偪馲ML講義》是瘋狂Java體系叢書之一,學習《瘋狂XML講義》無須任何XMI,基礎,但DOM、SAX、dora4i、JDOM解析部分包含了大量Java編程,因此建議先認真閱讀瘋狂Java體系的《瘋狂Java講義》一書。

作者簡介

  李剛,從事近10年的Java EE應用開發(fā)?! ≡蜭ITEON公司的J2EE技術主管,負責該公司的企業(yè)信息化平臺的架構設計?! ≡螐V州電信、廣東龍泉科技等公司的技術培訓導師  2007年3月26日的《電腦報》專訪人物?! ’偪馢ava實洲營創(chuàng)始人,瘋狂Java體系圖書作者,曾任東方標準廣州中心軟件教學總監(jiān),曾兼任廣東技術師范學院計算機科學系的兼職副教授?! ∨嘤柕膶W生已在華為、立信、普信、網(wǎng)易、電信盈科、中企動力等公司就職?! 鴥?nèi)知名的高端IT技術作家,已出版《瘋狂Java講義》、《輕量級Java EE企業(yè)應用實戰(zhàn)》、《瘋狂Aiax講義》、《Struts 2.1權威指南》、《Ruby On Rails敏捷開發(fā)最佳實踐》等著作。

書籍目錄

第1章 XML概述 11.1 XML的起源 21.1.1 標記語言 21.1.2 XML的基本概念 31.1.3 XML和HTML 31.2 XML的優(yōu)勢 41.2.1 簡單易用的標記語言 41.2.2 嚴格的格式 51.2.3 數(shù)據(jù)邏輯和顯示邏輯分離 51.3 XML和Java EE 61.3.1 配置描述 6指定Web組件的配置信息是不是只能采用web.xml文件呢? 71.3.2 簡化的數(shù)據(jù)交換 71.3.3 Web Services 81.4 XML的編輯工具 81.4.1 普通文本編輯工具 81.4.2 XMLSpy簡介 91.4.3 使用XMLSpy編輯1.4.3 XML文檔 91.4.4 Stylus Studio簡介 111.4.5 使用Stylus Studio編輯1.4.5 XML文檔 111.5 XML的競爭對手 121.5.1 Java的Annotation 121.5.2 輕量級的數(shù)據(jù)交換格式1.5.2 ——JSON 151.6 本章小結 17第2章 XML文檔規(guī)則 182.1 XML文檔的分類 192.1.1 格式不良好的XML文檔 192.1.2 格式良好但無效的2.1.2 XML文檔 202.1.3 有效的XML文檔 222.2 XML文檔的整體結構 222.2.1 有且僅有一個根元素 222.2.2 元素必須合理結束 232.2.3 元素之間必須合理嵌套 242.2.4 元素的屬性必須有值 242.3 XML聲明 26UTF-8不是兼容Unicode嗎?那UTF-8也應該支持中文啊,為什么上面的XML文檔會出現(xiàn)字符集錯誤的情況呢? 272.4 XML元素的基本規(guī)則 282.4.1 合法的標簽名 282.4.2 嵌套子元素 292.4.3 空元素 292.5 字符數(shù)據(jù) 302.5.1 使用實體引用 312.5.2 使用CDATA標記 322.6 注釋 332.7 處理指令 332.8 W3C對于屬性的使用建議 352.9 換行處理 362.10 本章小結 36本章練習 36第3章 DTD詳解 373.1 XML語義約束 38我一直有一個疑問:XML太“隨意”了,我們想怎樣定義元素都可以,想怎樣嵌套子元素也行,想怎樣定義屬性也行,真的是這樣嗎?383.2 引入DTD 393.2.1 內(nèi)部DTD 393.2.2 外部DTD 403.2.3 公用DTD 413.3 DTD文檔的結構 413.3.1 驗證XML文檔的有效性 423.4 定義元素 423.4.1 定義任意類型的元素 433.4.2 定義空元素 443.4.3 定義字符串內(nèi)容的元素 453.4.4 定義混合內(nèi)容 453.5 定義子元素 473.5.1 有序的子元素 473.5.2 互斥的子元素 483.5.3 子元素出現(xiàn)的頻率 483.5.4 組合子元素 493.5.5 無序的子元素 51上面的DTD中明明定義了、、和4個元素之間具有互斥關系,它們怎么可以同時出現(xiàn)呢?523.6 定義元素屬性 533.6.1 對屬性的約束規(guī)則 533.6.2 定義屬性類型 553.7 定義實體 573.7.1 定義實體 573.7.2 定義參數(shù)實體 593.7.3 外部實體 603.7.4 外部參數(shù)實體 613.8 定義符號 613.8.1 未解析實體 62XML文檔里的內(nèi)容不是應該由XML解析器負責處理嗎?如果XML解析器不負責處理,那這些數(shù)據(jù)豈不是就失去作用了? 623.8.2 ENTITY和ENTITIES3.8.2 類型的屬性 633.8.3 NOTATION類型的屬性 633.9 使用XMLSpy創(chuàng)建DTD 643.10 本章小結 65本章練習 65第4章 XML Schema基本語法 664.1 DTD和Schema 674.1.1 Schema概述及其優(yōu)勢 674.1.2 Schema在Java EE里的應用 684.2 XML Schema入門 694.2.1 XML Schema根元素 694.2.2 在XML中引用無命名4.2.2 空間的Schema 704.2.3 在XML中引用有命名4.2.3 空間的Schema 714.3 Schema中的注釋 724.4 理解Schema的數(shù)據(jù)類型 724.5 Schema內(nèi)置類型 744.5.1 字符串及相關類型 764.5.2 數(shù)值類型 774.5.3 日期、時間類型 784.5.4 boolean類型 804.5.5 anyURI類型 804.5.6 二進制數(shù)據(jù) 814.6 使用限制派生新類型 814.6.1 指定基類型的兩種方式 824.6.2 指定類型的兩種方式 844.6.3 范圍約束 864.6.4 長度約束 864.6.5 精度約束 864.6.6 枚舉約束 874.6.7 正則表達式約束 884.6.8 空白處理 884.7 使用派生列表類型 914.7.1 限制列表類型 924.8 使用派生聯(lián)合類型 944.8.1 限制聯(lián)合類型 964.9 列表和聯(lián)合結合使用 974.10 阻止派生新的簡單類型 984.10.1 使用final屬性 984.10.2 為約束指定fixed屬性 994.11 合并多個Schema 1004.11.1 使用include元素 1004.11.2 使用redefine元素 1014.11.3 使用import元素 1024.12 XMLSpy中關于Schema的4.12 操作 1034.12.1 創(chuàng)建新的Schema 1034.12.2 為XML創(chuàng)建Schema 1044.12.3 為XML分配Schema 1044.13 本章小結 105第5章 XML Schema高級知識 1065.1 使用anyType定義任意類型 1075.2 定義復雜類型 1085.2.1 定義復雜類型的方式 1095.2.2 擴展簡單類型 109既然派生復雜類型的方式有兩種,那接下來是不是應該介紹“限制簡單類型來派生復雜類型”了? 1105.2.3 包含屬性的兩種方式 1115.2.4 擴展包含簡單內(nèi)容的復雜5.2.4 類型 1125.2.5 使用派生類型的另一種方式 114在上面的Schema中先定義了一個book_ Type類型,然后擴展該類型增加了一個price屬性,為何不在定義book_Type類型時一次性添加isbn、name和price三個屬性,而非要一次一次地添加呢?這樣做有實際意義嗎? 1145.2.6 限制包含簡單內(nèi)容的復雜類型 1155.2.7 限制anyType派生新類型 116為什么沒有通過擴展anyType來派生新類型呢? 1175.2.8 包含子元素的兩種方式 1205.2.8 空元素類型 1235.2.9 混合內(nèi)容類型 1245.3 復雜類型的進一步派生 1255.3.1 限制空元素類型 1255.3.2 擴展空元素類型 1265.3.3 限制包含子元素的類型 1275.3.4 擴展包含子元素的類型 1285.3.5 限制混合內(nèi)容類型 1315.3.6 擴展混合內(nèi)容類型 1335.4 阻止派生新的類型 1335.5 通配符 1355.5.1 元素通配符 1355.5.2 屬性通配符 1375.6 元素替換 1385.6.1 阻止自己被替換 1395.6.2 阻止指定派生類型的替換 1415.7 抽象元素和抽象類型 1435.7.1 抽象元素 1435.7.2 抽象類型 1445.8 一致性約束 1455.8.1 key約束 1475.8.2 unique約束 1495.8.3 keyref約束 1505.9 元素組與屬性組 1525.10 定義符號 1535.11 本章小結 154本章練習 155如何確定一個XML元素所在的命名空間呢? 157第6章 命名空間詳解 1566.1 使用命名空間 1576.2 Schema的命名空間支持 1596.2.1 在Schema中使用命名空間 1596.2.2 命名空間對XML文檔的作用 1626.2.3 為屬性使用命名空間限定 1666.2.4 命名空間對一致性約束的影響 1686.2.5 局部元素和局部屬性的強制限定 1706.3 命名空間和DTD 1746.4 本章小結 176第7章 使用CSS顯示XML文件 1777.1 樣式單簡介 1787.1.1 顯示XML的兩種常用樣式單 1787.1.2 樣式單的優(yōu)勢 1787.2 CSS的基本用法 1797.2.1 CSS基本語法 1797.2.2 引入外部樣式文件 1807.2.3 使用內(nèi)部CSS樣式 1817.2.4 使用內(nèi)聯(lián)樣式 1837.3 對XML文檔有效的CSS7.3 選擇器 1847.4 使用CSS顯示XML 1867.5 本章小結 187第8章 使用XSLT顯示XML 1888.1 XSL概述 1898.2 XSLT入門 1898.2.1 XSLT轉(zhuǎn)換入門 189XSLT為什么不直接將XML根元素當成根元素呢? 1928.2.2 使用template元素定義模板 1928.2.3 使用apply-templates處理子節(jié)點 1938.2.4 使用value-of輸出節(jié)點內(nèi)容 1968.2.5 匹配節(jié)點的模式 1988.2.6 mode屬性 2008.3 XSLT轉(zhuǎn)換分類 2028.3.1 客戶端轉(zhuǎn)換和服務器端轉(zhuǎn)換 2028.3.2 Xalan處理器 2028.3.3 Saxon處理器 205我發(fā)現(xiàn)用Saxon進行實時轉(zhuǎn)換和用Xalan進行實時轉(zhuǎn)換的JSP頁面代碼完全相同,這是為什么呢? 2078.4 XSLT的內(nèi)置模板規(guī)則 2088.5 流程控制元素 2098.5.1 分支處理 2098.5.2 循環(huán)控制 2118.5.3 排序控制 2138.6 控制空白的處理方式 2158.7 創(chuàng)建結果樹 2158.7.1 創(chuàng)建元素和屬性 2168.7.2 創(chuàng)建文本 2218.7.3 創(chuàng)建處理指令 2228.7.4 創(chuàng)建注釋 2228.7.5 復制 2238.7.6 輸出格式化數(shù)值 2258.8 變量和參數(shù) 2308.8.1 為變量和參數(shù)指定值 2318.8.2 全局和局部的變量和參數(shù) 2328.8.3 改變參數(shù)值 2348.9 使用命名模板 2358.10 包含和導入 2388.10.1 使用import導入 2388.10.2 使用include包含 2398.10.3 解決模板定義沖突 2418.11 XSLT 1.1的fallback支持 2418.12 指定輸出格式 2428.12.1 轉(zhuǎn)換XML文檔的相關格式 2428.12.2 轉(zhuǎn)換HTML文檔的相關格式 2448.13 XSLT的內(nèi)置函數(shù) 2458.13.1 使用system-property函數(shù) 2458.13.2 使用current函數(shù)返回當前8.13.2 節(jié)點集 2468.13.3 使用element-available和8.13.3 function-available 函數(shù) 2468.13.4 使用unparsed-entity-uri函數(shù) 2478.13.5 使用document 函數(shù)處理多個源8.13.5 XML文檔 2488.13.6 使用format-number 函數(shù) 2508.13.7 使用key函數(shù) 2518.13.8 使用generate-id函數(shù) 2548.14 XSLT 2.0的常用新功能 2558.14.1 分組 2558.14.2 多文檔輸出 2578.14.3 字符映射 2598.14.4 元素的改進 2608.14.5 數(shù)據(jù)類型綁定 2608.14.6 正則表達式支持 2618.14.7 用戶自定義函數(shù) 2638.15 使用XMLSpy管理XSLT8.15 操作 2648.16 本章小結 265本章練習 265第9章 XPath語言詳解 2669.1 XPath語言簡介 2679.1.1 XPath節(jié)點 2679.1.2 XPath基本概念 2689.1.3 節(jié)點關系 2689.2 絕對路徑和相對路徑 2699.2.1 XPath基路徑 2699.3 XPath基礎語法 2709.3.1 軸(axis) 2719.3.2 節(jié)點測試(node-test) 2719.3.3 限定謂語(predicate) 2729.3.4 簡化寫法 2729.4 運算符和表達式 2739.4.1 算術運算符 2739.4.2 比較運算符 2749.4.3 邏輯運算符 2749.4.4 組合多個路徑的運算符 2759.5 XPath 2.0新增的表達式 2759.5.1 for表達式 2759.5.2 if表達式 2789.5.3 some/every判斷表達式 2799.6 XPath 2.0的類型支持 2809.7 內(nèi)置函數(shù)庫 2819.7.1 字符串相關函數(shù) 2819.7.2 數(shù)值相關函數(shù) 2839.7.3 日期和時間相關函數(shù) 2849.7.4 boolean值相關函數(shù) 2879.7.5 節(jié)點相關函數(shù) 2879.7.6 序列相關函數(shù) 2889.8 本章小結 290第10章 DOM、SAX和JAXP解析 29110.1 DOM、SAX和JAXP概述 292接口的實現(xiàn)不是類嗎,怎么接口的實現(xiàn)還是接口?。俊?9410.2 JAXP的DOM支持 29710.2.1 XML文檔和DOM模型 29710.2.2 DOM樹中的對象類型 29810.2.3 DOM解析器 29910.2.4 使用DTD驗證XML文檔 30010.2.5 使用DOM解析XML文檔 30210.2.6 使用DOM創(chuàng)建XML文檔 30410.2.7 使用DOM修改XML文檔 30710.2.8 解析DTD信息 308如果我想獲取DTD中的元素定義、屬性定義等信息該怎么辦? 31110.2.9 DOM和命名空間 31010.3 JAXP的SAX支持 31210.3.1 SAX的處理機制 31210.3.2 SAX解析器和監(jiān)聽器 313為何XMLReader在調(diào)用時不需要傳入SAX解析事件的監(jiān)聽器呢?SAX解析不是總是基于事件機制的嗎? 314XMLReader和SAXParser到底什么關系?我們到底應該用哪個呢? 31610.3.3 使用DTD驗證XML的有效性 31610.3.4 使用SAX解析XML文檔 31710.3.5 SAX和命名空間 32010.4 DOM和SAX的比較 32310.5 使用XML Schema驗證XML10.5 文檔 32410.5.1 SchemaFactory和驗證 324上面的SchemaFactory的newInstance()方法中怎么還有一個schemaLanguage參數(shù),它代表什么呢? 32610.5.2 獲取節(jié)點的類型信息 32810.6 瀏覽器對DOM的支持 33010.7 本章小結 334本章練習 334第11章 使用dom4j處理XML文檔 33511.1 dom4j簡介 33611.1.1 dom4j的封裝和優(yōu)勢 33611.1.2 下載和安裝dom4j 33711.2 dom4j常用API 33811.3 使用dom4j訪問XML文檔 33911.3.1 驗證XML文檔 33911.3.2 使用dom4j解析XML文檔 34011.3.3 使用訪問者模式遍歷XML文檔 34211.4 使用dom4j創(chuàng)建XML文檔 34411.5 修改XML文檔 34511.6 使用dom4j獲取命名空間信息 34611.7 本章小結 34911.3.3 本章練習 349第12章 使用JDOM處理XML文檔 35012.1 JDOM簡介 35112.1.1 JDOM常用API 35112.1.2 下載和安裝JDOM 35212.2 使用JDOM訪問XML文檔的12.3 實例 35212.2.1 驗證XML文檔的有效性 35312.2.2 使用JDOM解析XML文檔 35412.3 使用JDOM創(chuàng)建XML文檔 35612.4 修改XML文檔 35712.5 使用JDOM獲取命名空間信息 35812.6 選擇dom4j還是JDOM 36112.7 本章小結 361本章練習 361第13章 XQuery詳解 36213.1 XQuery簡介 36313.1.1 XQuery和XPath的關系 36313.1.2 XQuery和XSLT的關系 36313.2 使用XQuery 36413.2.1 使用XMLSpy查看XQuery13.2.1 結果 36513.2.2 使用Saxon執(zhí)行XQuery查詢 36613.3 基本表達式13.3 (Primary Expressions) 36713.3.1 直接量(Literal) 36713.3.2 變量引用 36713.3.3 圓括號表達式 36713.3.4 上下文項表達式 36713.3.5 函數(shù)調(diào)用 36713.4 序列表達式 36813.4.1 構造序列 36813.4.2 過濾表達式 36813.4.3 組合節(jié)點序列 36913.5 算術表達式 37013.6 比較表達式 37013.6.1 值比較 37113.6.2 通用比較 37113.6.3 節(jié)點比較 37113.7 邏輯表達式 37213.8 構造器 37313.8.1 直接構造 37313.8.2 計算構造 37313.9 FLWOR表達式 37313.9.1 for、let和return子句 37413.9.2 where子句 37513.9.3 order by子句 37613.10 if表達式 37613.11 some/every判斷表達式 37713.12 與序列類型有關的表達式 37813.12.1 instance of 37813.12.2 typeswitch 37813.12.3 cast 37813.12.4 castable 37913.13 模塊和序言 37913.13.1 序言 38013.13.2 版本聲明 38013.13.3 模塊聲明 38013.13.4 設置器(setter) 38113.13.5 導入設置 38213.13.6 命名空間聲明 38413.13.7 默認命名空間聲明 38413.13.8 變量聲明 38513.13.9 函數(shù)聲明 38613.13.10 選項聲明 38713.14 使用XQJ執(zhí)行XQuery 38813.14.1 XQJ和JDBC的類比性 388JDBC API和接口我都知道,但JDBC實現(xiàn)好像很少聽說啊? 38913.14.2 XQJ的編程步驟 38913.15 本章小結 392第14章 Web Services詳解 39314.1 XML和Web Services 39414.1.1 Web Services概述 39414.1.2 Web Services平臺概述 39514.1.3 Web Services的廣泛應用 39614.2 SOA和云計算 39814.2.1 SOA和Web Services 39814.2.2 云計算和Web Services 39914.3 XML和SOAP協(xié)議 40014.3.1 SOAP基本語法 40014.3.2 Header元素 40114.3.3 Body元素 40314.3.4 Fault元素 40314.4 XML和WSDL 40414.4.1 WSDL基本語法 40414.4.2 portType元素 40914.4.3 binding元素 41114.4.4 service元素 41214.4.5 WSDL和UDDI 41314.5 使用CXF開發(fā)Web Services 41314.5.1 CXF概述 41414.5.2 下載和安裝CXF 41414.5.3 使用CXF開發(fā)Web Services 415是否必須將Web Services服務接口的.class文件復制到客戶端呢? 42214.5.4 動態(tài)客戶端 42114.5.5 整合Spring開發(fā)Web Services 4234.5.6 為Web Services增加權限控制 42514.6 本章小結 429第15章 基于XML的電子公告系統(tǒng) 43015.1 系統(tǒng)設計 43115.1.1 系統(tǒng)組件的交互關系 43115.2 設計XML文檔 43115.2.1 保存狀態(tài)的XML文檔 43215.2.2 定義XML Schema 43415.3 定義XSLT樣式單 43615.3.1 為公告列表定義樣式單 43615.3.2 為用戶評論設計樣式單 43815.4 實現(xiàn)控制器 44115.4.1 添加公告 44115.4.2 查看評論列表 444為什么不直接將XML文檔保存在Web應用根路徑下呢?這樣不是就可以讓瀏覽者直接訪問這些XML文檔了么 44615.4.3 添加評論 44515.5 本章小結 447本章練習 447第16章 Web Services案例——電子拍賣系統(tǒng) 44816.1 系統(tǒng)功能簡介和架構設計 44916.1.1 系統(tǒng)功能簡介 44916.1.2 系統(tǒng)架構設計 45016.2 持久層設計 45016.2.1 系統(tǒng)實體 45116.2.2 系統(tǒng)E-R圖和數(shù)據(jù)表 45116.2.3 實現(xiàn)Hibernate PO 45316.2.4 管理SessionFactory 46116.3 實現(xiàn)系統(tǒng)DAO層 46216.3.1 DAO的基礎配置 46416.3.2 實現(xiàn)系統(tǒng)DAO組件 46416.3.3 配置系統(tǒng)DAO組件 47016.4 實現(xiàn)業(yè)務邏輯層 47116.4.1 定義業(yè)務邏輯組件接口 47116.4.2 依賴注入DAO組件 47316.4.3 業(yè)務邏輯組件中的異常處理 47416.4.4 處理用戶競價 47616.4.5 判斷拍賣物品狀態(tài) 47816.4.6 事務管理 48016.4.7 配置業(yè)務層組件 48116.5 使用CXF提供Web Services 48316.5.1 啟用CXF支持 48416.5.2 實現(xiàn)Web Services 48516.5.3 測試Web Services 49016.6 本章小結 491本章練習 492

章節(jié)摘錄

  從圖1.4中可以看出,由于不同計算機系統(tǒng)使用不兼容的格式來保存數(shù)據(jù),從而導致不同系統(tǒng)之間數(shù)據(jù)交換存在障礙,但XML以純文本格式對數(shù)據(jù)進行存儲,因此提供了一種獨立于軟件和硬件的數(shù)據(jù)交換方式?! ⊥ㄟ^使用XML文檔,開發(fā)人員可以在不兼容的系統(tǒng)之間交換數(shù)據(jù),從而輕松解決不兼容系統(tǒng)之間數(shù)據(jù)交換的這個難題。  從圖1.4中可以看出,任何系統(tǒng)都可以使用XML來保存程序狀態(tài),因此XML文檔還是一種輕量級的持久化機制,XML文檔以文本格式保存數(shù)據(jù),這使得XML可以在不損失數(shù)據(jù)的情況下,更容易擴展或升級到新操作系統(tǒng)或新應用程序。  1.3.3 Web Services  Web Services是Java EE應用的一個重要方面,Web Services使用基于XML的消息處理作為數(shù)據(jù)通訊方式,消除了不同組件模型、操作系統(tǒng)和編程語言之間存在的差異,使異構系統(tǒng)能作為單個計算機網(wǎng)絡協(xié)同運行。簡而言之,Web Services是異構系統(tǒng)整合的重要方式?! 〔粌H如此,當前一些前沿的技術概念,如SOA(面向服務的架構)和云計算等,都意圖整合不同平臺、不同系統(tǒng)的軟件服務,而普通軟件用戶只需按通用規(guī)則使用這些軟件服務即可。這些前沿的技術概念底層大都會選擇以Web Services作為支撐?! eb Services建立在一些通用協(xié)議的基礎上,如SOAP、WSDL和UDDI等,而這些協(xié)議都需要以XML作為支撐。

編輯推薦

  1.知識全面、專業(yè)性強《瘋狂XML講義》并不是一本關于XML基礎的圖書,《瘋狂XML講義》系統(tǒng)而深入地介紹了XML相關知識,不僅包括DTD、XML Schema等基礎內(nèi)容,也包括XSLT、X Path、X Query、DOM、SAX、JDOM和dom4j等高級內(nèi)容。除此之外。還介紹了XML.在實際企業(yè)開發(fā)中一個重要的應用方向:Web Services。并介紹了Java領域的Web Services框架CXF的用法。這些知識點覆蓋了XML相關的絕大部分內(nèi)容,專業(yè)性非常強?! ?.案例實際、實用性強  《瘋狂XML講義》前面各章講解各小知識點時,不僅介紹了它們的基本語法,還提供了與之對應的小范例,希望讀者能理論結合實際。邊讀邊練,通過編碼來掌握相應的知識?!动偪馲ML講義》除了介紹XML.及其相關知識之外,更重點介紹了如何將XML知識融入實際應用開發(fā),例如書中最后兩個案例。都是XML在實際企業(yè)開發(fā)中極好的范例。  3.深入淺出、易讀性強  《瘋狂XML講義》與瘋狂Java體系的其他圖書一樣,即使在介紹專業(yè)性極強的知識時,也盡量使用深入淺出的類比來幫助讀者理解它們,然后配合針對性很強、重點突出的小示例來說明這些知識。降低初學者的學習難度。通過這種案例驅(qū)動的講解方式。讓讀者閱讀時更容易理解各知識點的功能;接下來又能迅速將所學知識應用于實際開發(fā)?! ’偪裨醋詨粝搿 〖夹g成就輝煌

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    瘋狂XML講義 PDF格式下載


用戶評論 (總計0條)

 
 

 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7