企業(yè)級信息系統(tǒng)開發(fā)技術(shù)課件_第1頁
企業(yè)級信息系統(tǒng)開發(fā)技術(shù)課件_第2頁
企業(yè)級信息系統(tǒng)開發(fā)技術(shù)課件_第3頁
企業(yè)級信息系統(tǒng)開發(fā)技術(shù)課件_第4頁
企業(yè)級信息系統(tǒng)開發(fā)技術(shù)課件_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

企業(yè)級信息系統(tǒng)開發(fā)技術(shù)企業(yè)級信息系統(tǒng)開發(fā)技術(shù)第10章WebServices開發(fā)第10章WebServices開發(fā)學習要點:1.掌握WebServices的基礎(chǔ)知識。2.熟悉構(gòu)建WebService的過程。學習要點:1.掌握WebServices的基礎(chǔ)知識。緒:為什么需要分布式EJB:分布式部署應用程序客戶端Web端EJB組件1EJB組件2EJB組件3EJB組件nDB緒:為什么需要分布式EJB:分布式部署應用程序客戶端Web端緒:為什么需要分布式分布式應用中心端服務器JavaEE地區(qū)端服務器.net地區(qū)端服務器.net地區(qū)端服務器.net地區(qū)端服務器.net地區(qū)端服務器JavaEE地區(qū)端服務器JavaEE地區(qū)端服務器JavaEE地區(qū)端服務器JavaEEEJB??緒:為什么需要分布式分布式應用中心端地區(qū)端地區(qū)端地區(qū)端地區(qū)端情景:為什么要使用WebServices兩個應用系統(tǒng)之間需要交互數(shù)據(jù)(通信)如果是同一種語言Java:EJB(RMI/IIOP).Net:.NETRemoting(RPC)如果是使用了不同的語言?Java調(diào)用.Net提供的功能?Java.Net?DB這種方式有什么弊端?情景:為什么要使用WebServices兩個應用系統(tǒng)之間需情景:為什么要使用WebServices什么是服務(Services)?傳統(tǒng)上,我們把計算機后臺程序提供的功能,稱為“服務”(service)。通俗地說,“服務”就是計算機可以提供的某一種功能。根據(jù)來源的不同,“服務”又可以分成兩種:本地服務:使用同一臺機器提供的服務,不需要網(wǎng)絡(luò)。網(wǎng)絡(luò)服務:使用另一臺計算機提供的服務,必須通過網(wǎng)絡(luò)才能完成。情景:為什么要使用WebServices什么是服務(Ser情景:為什么要使用WebServicesWeb服務是一種面向服務的架構(gòu)的技術(shù),通過標準的Web協(xié)議提供服務,目的是保證不同平臺的應用服務可以互操作。根據(jù)W3C的定義,Web服務應當是一個軟件系統(tǒng),用以支持網(wǎng)絡(luò)間不同機器的互動操作。網(wǎng)絡(luò)服務通常是許多應用程序接口(API)所組成的,它們透過網(wǎng)絡(luò),例如國際互聯(lián)網(wǎng)(Internet)的遠程服務器端,執(zhí)行客戶所提交服務的請求。WebService架構(gòu)的基本思想,就是盡量把非核心功能交給其他人去做,自己全力開發(fā)核心功能。

Java.Netstub存根skeleton骨架HTTP、XML情景:為什么要使用WebServicesWeb服務是一種面SOA與WebServicesSOA是什么SOA是指為了解決在Internet環(huán)境下業(yè)務集成的需要,通過連接能完成特定任務的獨立功能實體實現(xiàn)的一種軟件系統(tǒng)架構(gòu)。面向服務是一種理念,面向服務的架構(gòu)是基于這種理念的架構(gòu)方法。面向服務在不少方面是以面向?qū)ο鬄榛A(chǔ),當前典型的面向服務的解決方案由服務和面向?qū)ο蟮慕M件構(gòu)成。SOA與WebServicesSOA是什么SOA與WebServices一個典型的電子商務流程電子商務門戶訂單銷售商工廠支付寶物流公司下訂單清單瀏覽支付支付確認支付確認支付訂單交貨發(fā)貨SOA與WebServices一個典型的電子商務流程電子商SOA與WebServices業(yè)務層——服務電子商務門戶訂單支付確認支付銷售商支付寶瀏覽工廠物流公司組合服務服務清單訂單下單發(fā)貨支付確認支付交貨業(yè)務層(服務)SOA與WebServices業(yè)務層——服務電子商務門戶訂SOA與WebServices服務之間是松耦合的服務可獨立存在網(wǎng)購電子商務門戶訂單支付確認支付銷售商支付寶瀏覽工廠物流公司組合服務服務清單訂單下單發(fā)貨支付確認支付交貨服務可獨立存在:接口和實現(xiàn)可分離的。服務隱藏了服務實現(xiàn)內(nèi)部復雜邏輯和技術(shù)。服務之間是松散耦合的,服務之間通過消息交互。SOA與WebServices服務之間是松耦合的網(wǎng)購電子商SOA與WebServices在架構(gòu)人員眼中:一切皆服務組合

服務服務清單訂單下單發(fā)貨預支付支付交貨技術(shù)業(yè)務管理人員業(yè)務人員設(shè)計人員開發(fā)人員客戶合作伙伴構(gòu)件技術(shù)分布對象技術(shù)應用服務器技術(shù)架構(gòu)人員SOA與WebServices在架構(gòu)人員眼中:一切皆服務組SOA與WebServicesSOA一個架構(gòu)方法。將應用程序的不同功能單元(服務)通過這些服務之間定義良好的接口和契約聯(lián)系起來。接口是采用中立的方式進行定義的,它應該獨立于實現(xiàn)服務的硬件平臺、操作系統(tǒng)和編程語言。構(gòu)建在各種各樣的系統(tǒng)中的服務可以以一種統(tǒng)一和通用的方式進行交互。SOA與WebServicesSOASOA與WebServicesWebServices從外部的使用者的角度而言,Web服務是一種部署在Web上的對象/組件,它有一個或多個端口(Port),這些端口用于接收客戶端的請求,并返回響應。Web服務的特點:Web服務是基于標準的(WSDL,UDDI,SOAP,XML,TCP,HTTP,SMTP)Web服務是跨平臺、跨語言的Web服務是面向消息的Web服務獲得了廣泛的支持SOA與WebServicesWebServicesSOA與WebServicesWebServices應用SOA與WebServicesWebServices應用SOA與WebServicesSOA架構(gòu)SOA與WebServicesSOA架構(gòu)第10章WebService開發(fā)10.1Web服務概述10.2WEBService基礎(chǔ)10.3XML基礎(chǔ)10.4使用JAX-WS構(gòu)建簡單的WebService第10章WebService開發(fā)10.1Web服務概10.1WebService概述簡單來說,WebService就是一個向外界暴露出接口的能夠通過網(wǎng)絡(luò)進行遠程調(diào)用的應用程序。更準確地說:一方面WebService是一種部署在Web上的對象;另一方面WebService是建立在以XML為主的、開放的Web標準協(xié)議規(guī)范的基礎(chǔ)上的分布式應用新平臺,也就是說WebService的實質(zhì)是一套標準,它定義了應用程序如何在Web上實現(xiàn)互操作。只需要遵守這一套標準,人們可以用任何語言,在任何平臺上實現(xiàn)所需要的WebService,并且可以順利地同網(wǎng)絡(luò)上任何其它亦遵守上述協(xié)議的WebService組件進行互操作,從而可以實現(xiàn)一種高效、低廉的異構(gòu)平臺上應用的集成。對于從事企業(yè)應用開發(fā)來講,學習WebService技術(shù)是相當必要的。10.1WebService概述簡單來說,WebSer10.1WebService概述WebServices(Web服務)定義:WebService是一種新的Web應用程序分支,它們是自包含、自描述、模塊化的應用,可以在網(wǎng)絡(luò)(通常為Web)中被描述、發(fā)布、查找以及通過Web來調(diào)用。使用標準的互聯(lián)網(wǎng)協(xié)議,像超文本傳輸協(xié)議HTTP和XML。Webservice平臺是一套標準,它定義了應用程序如何在Web上實現(xiàn)互操作性。你可以用任何你喜歡的語言,在任何你喜歡的平臺上寫Webservice。10.1WebService概述WebServices10.1WebService概述WebService的特點跨平臺的可互操作性跨防火墻的通信應用程序集成B2B的集成軟件和數(shù)據(jù)重用普遍、易用性10.1WebService概述WebService的10.1.1WebService的核心標準WebService的核心標準XMLSOAPWSDLUDDI10.1.1WebService的核心標準WebSe10.1.1WebService的核心標準XML和XMLSchemaXML(eXtensibleMarkupLangugage,即可擴展標記語言)是WebService技術(shù)架構(gòu)的基石,它是WebService中表示數(shù)據(jù)的基本格式。XMLSchema定義了一套標準的數(shù)據(jù)類型,并給出了一種語言來擴展這套數(shù)據(jù)類型,WebService平臺就是用XMLSchema作為其數(shù)據(jù)類型系統(tǒng)的。XMLXMLXMLSchemaXMLSchema10.1.1WebService的核心標準XML和XM10.1.1WebService的核心標準SOAPSOAP(SimpleObjectAccessProtocol,簡單對象訪問協(xié)議)提供了標準的RPC(遠程過程調(diào)用協(xié)議)方法來調(diào)用WebService。SOAP規(guī)范中定義了SOAP消息的格式,以及怎樣通過HTTP協(xié)議來使用SOAP。SOAP是基于XML和XSD(XMLSchemasDefinition)的,其中XML是SOAP的數(shù)據(jù)編碼方式。10.1.1WebService的核心標準SOAP10.1.1WebService的核心標準WSDLWSDL(WebServicesDescriptionLanguage,WebServices描述語言)是一種基于XML的,用于描述WebService及其操作、參數(shù)和返回值的語言。一些最新的開發(fā)工具既能根據(jù)WebService生成WSDL文檔,又能通過導入WSDL文檔,生成調(diào)用相應WebService的代碼。10.1.1WebService的核心標準WSDL10.1.1WebService的核心標準UDDIUDDI(UniversalDescriptionDiscoveryIntegration,統(tǒng)一描述、發(fā)現(xiàn)和集成協(xié)議

)是WebService架構(gòu)下核心的服務描述、發(fā)現(xiàn)和集成機制,其目的是在網(wǎng)上自動查找WebService。一旦WebService注冊到UDDI,客戶就可以很方便地查找和定位到所需要的WebService。10.1.1WebService的核心標準UDDI10.1.2WebService體系架構(gòu)服務提供者(ServiceProvider)從企業(yè)的角度看,這是服務的所有者。從體系結(jié)構(gòu)的角度看,這是托管被訪問服務的平臺。服務請求者(ServiceRequestor)從企業(yè)的角度看,這是要求滿足特定功能的企業(yè)。從體系結(jié)構(gòu)的角度看,這是尋找并調(diào)用服務,或啟動與服務交互的應用程序。服務請求者角色可以由瀏覽器來擔當,由人或無用戶界面的程序(例如,另一個WebService)來控制它。服務注冊中心(ServiceRegistry)

這是可搜索的服務描述注冊中心,服務提供者在此發(fā)布他們的服務描述。10.1.2WebService體系架構(gòu)服務提供者(S10.1.2WebService體系架構(gòu)Bind(綁定)服務請求者通過綁定調(diào)用服務提供者提供的服務。Find(查找)服務請求者可以通過服務注冊中心查找特定種類的服務。Publish(發(fā)布)服務提供者發(fā)布服務描述以使服務可訪問并且服務請求者可以查找它。10.1.2WebService體系架構(gòu)Bind(綁定第10章WebService開發(fā)10.1Web服務概述10.2WEBService基礎(chǔ)10.3XML基礎(chǔ)10.4使用JAX-WS構(gòu)建簡單的WebService第10章WebService開發(fā)10.1Web服務概10.2.1SOAPSOAP(SimpleObjectAccessProtocol,簡單對象訪問協(xié)議)是在分散或分布式的環(huán)境中交換信息的簡單的協(xié)議,是一個基于XML的協(xié)議。SOAP在WebService中作為用于XML消息傳遞的一種非常普遍的協(xié)議,它包括四個部分:SOAP封裝(envelop),封裝定義了一個描述消息中的內(nèi)容是什么,是誰發(fā)送的,誰應當接受并處理它以及如何處理它們的框架;SOAP編碼規(guī)則(encodingrules),用于表示應用程序需要使用的數(shù)據(jù)類型的實例;SOAPRPC表示(RPCrepresentation),表示遠程過程調(diào)用和應答的協(xié)定;SOAP綁定(binding),使用底層協(xié)議交換信息。雖然這四個部分都作為SOAP的一部分定義的,但它們在功能上是相交的、彼此獨立的。特別的,信封和編碼規(guī)則是被定義在不同的XML命名空間(namespace)中,這樣使得定義更加簡單。10.2.1SOAPSOAP(SimpleObject10.2.1SOAPSOAP的兩個主要設(shè)計目標是簡單性和可擴展性。這就意味著有一些傳統(tǒng)消息系統(tǒng)或分布式對象系統(tǒng)中的某些性質(zhì)將不是SOAP規(guī)范的一部分。SOAP可簡單地理解為這樣一個開放協(xié)議的組合SOAP=RPC+HTTP+XML:采用HTTP作為底層通訊協(xié)議;RPC作為一致性的調(diào)用途徑;XML作為數(shù)據(jù)傳送的格式,允許服務提供者和服務客戶經(jīng)過防火墻在INTERNET進行通訊交互。RPC的描敘可能不太準確,因為SOAP一開始構(gòu)思就是要實現(xiàn)平臺與環(huán)境的無關(guān)性和獨立性,每一個通過網(wǎng)絡(luò)的遠程調(diào)用都可以通過SOAP封裝起來,包括DCE(DistributedComputingEnvironment)、RPCCALLS、COM/DCOMCALLS、CORBACALLS、JAVACALLS等等。10.2.1SOAPSOAP的兩個主要設(shè)計目標是簡單性和10.2.1SOAP客戶發(fā)送請求時,不管客戶是什么平臺,首先把請求轉(zhuǎn)換成XML格式,SOAP網(wǎng)關(guān)可自動執(zhí)行這個轉(zhuǎn)換。為了保證傳送時參數(shù)、方法名、返回值的唯一性,SOAP協(xié)議使用了一個私有標記表,從而服務器的SOAP網(wǎng)關(guān)可以正確地解析;而使用XML作為編碼表現(xiàn)形式,提供了更高層次上的抽象,從而實現(xiàn)與平臺和環(huán)境的無關(guān)。10.2.1SOAP客戶發(fā)送請求時,不管客戶是什么平臺,10.2.2WSDLWSDL(WebServiceDescriptionLanguage,即Web服務器描述語言)是用XML文檔來描述Web服務的標準,是Web服務的接口定義語言,由Ariba、Intel、IBM、Microsoft等共同提出。通過WSDL,可描述Web服務的三個基本屬性:服務做些什么——服務所提供的操作(方法)如何訪問服務——和服務交互的數(shù)據(jù)格式以及必要協(xié)議服務位于何處——協(xié)議相關(guān)的地址,如URL10.2.2WSDLWSDL(WebServiceD10.2.2WSDLWSDL文檔在WebService的定義中使用下列元素:Types-數(shù)據(jù)類型定義的容器;Message-通信消息的數(shù)據(jù)結(jié)構(gòu)的抽象類型化定義;Operation-對服務中所支持的操作的抽象描述;PortType-對于某個訪問入口點類型所支持的操作的抽象集合;Binding-特定端口類型的具體協(xié)議和數(shù)據(jù)格式規(guī)范的綁定。Port-定義為協(xié)議/數(shù)據(jù)格式綁定與具體Web訪問地址組合的單個服務訪問;Srvice-相關(guān)服務結(jié)點的集合。10.2.2WSDLWSDL文檔在WebServic10.2.3UDDIUDDI(UniversalDescription,DiscoveryandIntegration,即統(tǒng)一描述、發(fā)現(xiàn)與集成協(xié)議標準)是一個非常重要的創(chuàng)新。它是第一個由平臺提供者、軟件開發(fā)者、交易市場運營者、電子商務企業(yè)和全球商務領(lǐng)頭羊為解決B2B電子商務的發(fā)展的局限性而一起提出的跨行業(yè)的解決方案。是一套基于Web的、分布式的、為Web服務提供的信息注冊中心的實現(xiàn)標準規(guī)范。同時也包含一組使企業(yè)能將自身提供的Web服務注冊以使得別的企業(yè)能夠發(fā)現(xiàn)的訪問協(xié)議的實現(xiàn)標準。10.2.3UDDIUDDI(UniversalDes10.2.3UDDIUDDI計劃是一個廣泛的,開放的行業(yè)計劃,它使得商業(yè)實體能夠(1)彼此發(fā)現(xiàn);(2)定義它們怎樣在internet上互相作用,并在一個全球的注冊體系架構(gòu)中共享信息。UDDI是這樣一種基礎(chǔ)的系統(tǒng)構(gòu)筑模塊,它使商業(yè)實體能夠快速、方便地使用它們自身的企業(yè)應用軟件來發(fā)現(xiàn)合適的商業(yè)對等實體,并以其實施電子化的商業(yè)貿(mào)易。UDDI同時也是Web服務集成的一個體系框架。它包含了服務描述與發(fā)現(xiàn)的標準規(guī)范。UDDI規(guī)范利用了W3C和Internet工程任務組織(IETF)的很多標準作為其實現(xiàn)基礎(chǔ),比如XML,HTTP和域名服務(DNS)這些協(xié)議。10.2.3UDDIUDDI計劃是一個廣泛的,開放的行業(yè)10.2.3UDDI通過這個開放性的計劃,企業(yè)可以發(fā)布他們所期望的在Web上實現(xiàn)商務流程對接的方式的相關(guān)信息和技術(shù)規(guī)范,這潛在地為B2B商務的成長提供了動力。UDDI將通過創(chuàng)建一個全球的、獨立平臺,運用Internet發(fā)現(xiàn)商機、描述服務和綜合商務的開放式框架,使所有的貿(mào)易都從中獲利。UDDI計劃不由任何一家現(xiàn)有的公司實際運作。同時它也不是一個標準的實體或者是一個新的公司。UDDI商業(yè)注冊中心被作為一個支持UDDI規(guī)范的Web服務來運作。最初,Ariba,IBM和Microsoft將運作這個分布式的服務,但是額外的注冊中心的訪問入口仍然被期待著。一個訪問入口的委員會(OperatorCouncil)將協(xié)助制定訪問入口的方針和服務質(zhì)量等問題。10.2.3UDDI通過這個開放性的計劃,企業(yè)可以發(fā)布他10.2.3UDDI

從UDDI可以獲得的直接收益包括:具備UDDI能力的企業(yè)可以在Internet上通過他們首選的企業(yè)應用,快速便捷地發(fā)現(xiàn)合適的商業(yè)實體并實現(xiàn)彼此之間的互操作,這將最終推動企業(yè)自身的經(jīng)濟收益。為企業(yè)迅疾地參與全球化的Internet經(jīng)濟提供了一個方便的發(fā)展道路。提供了一個為商業(yè)在一個簡單的開放式環(huán)境中,循序漸進地描述他們的服務和商業(yè)流程的途徑。提供了一組規(guī)范,使企業(yè)能夠在Internet上調(diào)用服務并為他們的首選客戶提供增值服務。10.2.3UDDI從UDDI可以獲得的直接收益包括:小節(jié):Web服務基礎(chǔ)SOAP:SimpleObjectAccessProtocol,簡單對象訪問協(xié)議WSDL:WebServiceDescriptionLanguage,即Web服務器描述語言UDDI:UniversalDescription,DiscoveryandIntegration,即統(tǒng)一描述、發(fā)現(xiàn)與集成協(xié)議標準小節(jié):Web服務基礎(chǔ)SOAP:SimpleObject第10章WebService開發(fā)10.1Web服務概述10.2WEBService基礎(chǔ)10.3XML基礎(chǔ)10.4使用JAX-WS構(gòu)建簡單的WebService第10章WebService開發(fā)10.1Web服務概10.3XML基礎(chǔ)XML(eXtensibleMakeupLanguage,即可擴展標記語言)是一種簡單靈活的文本格式,可以作為創(chuàng)建新的標記語言的基礎(chǔ),以便在文檔發(fā)布和數(shù)據(jù)交換中使用。XML基于萬維網(wǎng)聯(lián)盟(W3C)的工作小組發(fā)布的一系列標準。因此,非常適合(且不限于)在基于Web的應用程序中使用。XML是一套定義語義標記的規(guī)則,這些標記將文檔分成許多部件并對這些部件加以標識。它也是元標記語言,即定義了用于定義其它與特定領(lǐng)域有關(guān)的、語義的、結(jié)構(gòu)化的標記語言的句法語言。10.3XML基礎(chǔ)XML(eXtensibleMake10.3XML基礎(chǔ)關(guān)于XML要理解的第一件事是,它不只是像超文本標記語言(HypertextMarkupLanguage,HTML)或是格式化的程序。XML是一種元標記語言。用戶可以定義自己需要的標記。這些標記必須根據(jù)某些通用的原理來創(chuàng)建,但是在標記的意義上,也具有相當?shù)撵`活性。XML定義了一套元句法,與特定領(lǐng)域有關(guān)的標記語言(如MusicML、MathML和CML)都必須遵守。如果一個應用程序可以理解這一元句法,那么它也就自動地能夠理解所有的由此元語言建立起來的語言。關(guān)于XML要了解的第二件事是,XML標記描述的是文檔的結(jié)構(gòu)和意義。它不描述頁面元素的格式化??捎脴邮絾螢槲臋n增加格式化信息。文檔本身只說明文檔包括什么標記,而不是說明文檔看起來是什么樣的。10.3XML基礎(chǔ)關(guān)于XML要理解的第一件事是,它不只是10.3XML基礎(chǔ)<dt>HotCop <dd>byJacquesMoraliHenriBeloloandVictorWillis <ul> <li>Producer:JacquesMorali <li>Publisher:PolyGramRecords <li>Length:6:20 <li>Written:978 <li>Artist:VillagePeople </ul><SONG> <TITLE>HotCop</TITLE>

<COMPOSER>JacquesMorali</COMPOSER>

<COMPOSER>HenriBelolo</COMPOSER>

<COMPOSER>VictorWillis</COMPOSER>

<PRODUCER>JacquesMorali</PRODUCER>

<PUBLISHER>PolyGramRecords</PUBLISHER> <LENGTH>6:20</LENGTH> <YEAR>978</YEAR> <ARTIST>VillagePeople</ARTIST></SONG>10.3XML基礎(chǔ)<dt>HotCop<SONG>10.3XML基礎(chǔ)XML是一種類似于HTML的標記語言,但是它是被設(shè)計用來描述數(shù)據(jù)的,重點是什么是數(shù)據(jù),如何存放數(shù)據(jù),與描述信息相關(guān);而HTML是被設(shè)計用來顯示數(shù)據(jù)的,重點是顯示數(shù)據(jù)以及如何顯示數(shù)據(jù)更好,與顯示信息相關(guān)。XML不是HTML的替代品,XML和HTML是兩種不同用途的語言。XML被設(shè)計成什么都不做的,它只是用來組織、存儲和發(fā)送信息。XML是自由的、可以擴展的;XML使用文檔類型定義(DTD)或者模式(Schema)來描述數(shù)據(jù);XML是一種跨平臺的,與軟、硬件無關(guān)的,處理信息的工具;10.3XML基礎(chǔ)XML是一種類似于HTML的標記語言,10.3XML基礎(chǔ)XML的主要應用:作為配置文件:SpringStrutsHibernateWeb應用Tomcat的server.xmlJBossEJB作為數(shù)據(jù)傳輸?shù)臉藴剩篈JAXWebService10.3XML基礎(chǔ)XML的主要應用:10.3.2DTDDTD(DocumnetTypeDefinition,即文件類型定義)是XML1.0版規(guī)格的一部分,它是XML文件的驗證機制,屬于XML文件組成的一部分。DTD在XML文件所扮演的角色就是定義XML文件的元素架構(gòu)、元素標記和屬性。DTD是一種保證XML文檔格式正確的有效方法,可以通過比較XML文檔和DTD文件來看文檔是否符合規(guī)范,元素和標簽使用是否正確。一個DTD文檔包含:元素的定義規(guī)則,元素間關(guān)系的定義規(guī)則,元素可使用的屬性,可使用的實體或符號規(guī)則。10.3.2DTDDTD(DocumnetTypeD10.3.2DTD調(diào)用DTD文件的方法有兩種:直接包含在XML文檔內(nèi)的DTD

這種方法只需要在DOCTYPE聲明中插入一些特別的說明就可以了。調(diào)用獨立的DTD文件

這種方法將DTD文檔存為后綴為.dtd的文件,然后在DOCTYPE聲明行中調(diào)用。<?xmlversion="1.0"encoding="gb2312"?><!DOCTYPEmyfile[ <!ELEMENTtitle(#PCDATA)> <!ELEMENTauthor(#PCDATA)> <!ENTITYcopyright"Copyright2001,Ajie.">]><myfile> <title>XML輕松學習手冊</title> <author>ajie</author></myfile><!ELEMENTmyfile(title,author)><!ELEMENTtitle(#PCDATA)><!ELEMENTauthor(#PCDATA)><?xmlversion="1.0"encoding="GB2312"?><!DOCTYPEmy"my"><myfile> <title>XML輕松學習手冊</title> <author>ajie</author></myfile>10.3.2DTD調(diào)用DTD文件的方法有兩種:<?xml10.3.2DTDDTD的常用的術(shù)語如下:Schema(規(guī)劃)schema是數(shù)據(jù)規(guī)則的描述,主要完成兩件事:a.它定義元素數(shù)據(jù)類型和元素之間的關(guān)系;b.它定義元素所能包含的內(nèi)容類型。DocumentTree(文檔樹)文檔樹是文檔元素分級結(jié)構(gòu)的形象表示。一個文檔結(jié)構(gòu)樹包含根元素,根元素是最頂級的元素。ParentElement/ChildElement

父元素是指包含有其它元素的元素,被包含的元素稱為它的子元素。Parser(解析器)Parser是一種檢查XML文檔是否遵循DTD規(guī)范的工具軟件。XML的parser發(fā)展為兩類:一種是"非確認類parser",只檢測文檔是否遵守XML語法規(guī)則,是否用元素標識建立了文檔樹;另一種是"確認類parser",它不但檢測文檔語法,結(jié)構(gòu)樹,而且比較解析用戶使用的元素標識是否遵守了相應DTD文件的規(guī)范。10.3.2DTDDTD的常用的術(shù)語如下:10.3.3XMLSchemaXMLSchema

與DTD一樣是負責定義和描述XML文檔的結(jié)構(gòu)和內(nèi)容模式的。它可以定義XML文檔中存在哪些元素和元素之間的關(guān)系,并且可以定義元素和屬性的數(shù)據(jù)類型。XMLSchema本身是一個XML文檔,它符合XML語法結(jié)構(gòu),可以用通用的XML解析器解析它。DTD的缺陷:描述能力有限沒有數(shù)據(jù)類型的支持約束定義能力不足不夠結(jié)構(gòu)化未使用XML作為描述手段,DTD沒有標準的編程接口10.3.3XMLSchemaXMLSchema

與10.3.3XMLSchemaXMLSchema的優(yōu)點有:XMLSchema基于XML,沒有專門的語法XML可以象其它XML文件一樣解析和處理XMLSchema支持一系列的數(shù)據(jù)類型(int、float、Boolean、date等)XMLSchema提供可擴充的數(shù)據(jù)模型XMLSchema支持綜合命名空間XMLSchema支持屬性組XMLSchema文檔后綴名是.xsd,完全符合XML語法,根元素是<schema>,命名空間是xmlns:xsd=",用元素<element>定義實例文檔中的元素。10.3.3XMLSchemaXMLSchema的優(yōu)10.3.3XMLSchema例1:XMLSchema(greeting.xsd):<?xmlversion="1.0"?><notexmlns=""xmlns:xsi=""xsi:schemaLocation=“/WEB-INF/greeting.xsd">

<greeting>HelloWorld!</greeting><?xmlversion="1.0"?><xsd:schemaxmlns:xsd=""> <xsd:elementname="greeting"type="xsd:string"/></xsd:schema>10.3.3XMLSchema例1:<?xmlver10.3.3XMLSchema例2:note.dtd:XMLSchema(note.xsd):<!ELEMENTnote(to,from,heading,body)><!ELEMENTto(#PCDATA)><!ELEMENTfrom(#PCDATA)><!ELEMENTheading(#PCDATA)><!ELEMENTbody(#PCDATA)><?xmlversion="1.0"?><xs:schemaxmlns:xs=""elementFormDefault="qualified"><xs:elementname="note"> <xs:complexType> <xs:sequence> <xs:elementname="to"type="xs:string"/> <xs:elementname="from"type="xs:string"/> <xs:elementname="heading"type="xs:string"/> <xs:elementname="body"type="xs:string"/> </xs:sequence> </xs:complexType></xs:element></xs:schema>10.3.3XMLSchema例2:<!ELEMENT10.3.3XMLSchema對DTD引用:對XMLSchema引用:<?xmlversion="1.0"?><!DOCTYPEnoteSYSTEM"note.dtd"><note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don'tforgetthemeeting!</body></note><?xmlversion="1.0"?><notexmlns=""xmlns:xsi=""xsi:schemaLocation="note.xsd"> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don'tforgetthemeeting!</body></note>10.3.3XMLSchema對DTD引用:<?xml第10章WebService開發(fā)10.1Web服務概述10.2WEBService基礎(chǔ)10.3XML基礎(chǔ)10.4使用JAX-WS構(gòu)建簡單的WebService第10章WebService開發(fā)10.1Web服務概10.4使用JAX-WS構(gòu)建簡單的WebService新建一個WebService的工程,工程名稱為hellojaxws,選擇WebService的框架為JAX-WS10.4使用JAX-WS構(gòu)建簡單的WebService10.4使用JAX-WS構(gòu)建簡單的WebService創(chuàng)建一個類(服務類),用于發(fā)布成服務創(chuàng)建一個WebServicepackagecn.ujn.webservice.jaxws;public

classHelloWorld

溫馨提示

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

最新文檔

評論

0/150

提交評論