freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計(jì)論文-xml快速解析技術(shù)-資料下載頁(yè)

2024-12-03 17:47本頁(yè)面

【導(dǎo)讀】種基于XML的數(shù)據(jù)通信模型。文中首先對(duì)XML產(chǎn)生背景和未來(lái)的發(fā)展趨勢(shì)進(jìn)行。了介紹,分析了XML文檔數(shù)據(jù)解析的必要性以及快速解析理論。體講解了在XML文檔中的語(yǔ)法和相應(yīng)的格式和標(biāo)準(zhǔn)。第三章中詳細(xì)介紹了XML. 在分析了現(xiàn)有解析方式優(yōu)劣的基礎(chǔ)上,第四章重點(diǎn)討論了

  

【正文】 L 信息,令牌代表的是使用了專用起始偏移量和長(zhǎng)度的令牌。該令牌是基于虛擬令牌描述符的二進(jìn)制編碼規(guī)范。一條 VTD 格式的信息大小是 64 比特的整數(shù)倍,其中包含有 XML 令牌長(zhǎng)、起始偏移量、類型和 XML 信息中令牌嵌套深度。 因?yàn)?VTD 的記錄是定長(zhǎng)的,就可以按照大小分配內(nèi)存緩沖區(qū)來(lái)存儲(chǔ)這些記錄,這樣就避免了產(chǎn)生大量相關(guān)其他 XML 處理技術(shù)的典型隊(duì)列或節(jié)點(diǎn)。通過(guò)這個(gè)技術(shù), VTDXML 能夠避免內(nèi)存耗費(fèi)并減少對(duì)象產(chǎn)生,直接帶來(lái)了顯著的更好的 處理性能。 對(duì)軟件開(kāi)發(fā)者來(lái)說(shuō), VTDXML 提供了諸多的好處。舉例來(lái)講,當(dāng)開(kāi)始一個(gè)涉及 XML 工程的工作時(shí),首先要選擇一個(gè)處理模型。眾所周知, DOM 對(duì)于大的文檔處理速度會(huì)很慢而且很耗費(fèi)內(nèi)存,而 SAX 對(duì)復(fù)雜結(jié)構(gòu)的 XML 文檔不具備簡(jiǎn)潔的易用性。 VTDXML 提供了一種新的選擇,它不會(huì)以處理性能的降低來(lái)?yè)Q取易用性。事實(shí)上, VTDXML 的隨機(jī)存取能力在提供最好的可用性能中起到了重要的作用。盡管 SAX 速度較快,但它的僅能前向查詢屬性,使得 SAX 的性能通常不能夠符合真實(shí)通信情況中所要求的性能標(biāo)準(zhǔn)。在某些情況下,我們?yōu)榱?獲取 第三章 XML 解析技術(shù)基礎(chǔ) 25 所需的數(shù)據(jù)要使用很大的緩沖區(qū),換句話說(shuō),我們會(huì)在同一個(gè)文檔中重復(fù) SAX解析很多次。不論我們做什么, SAX 程序總是帶來(lái)很不方便的地方,從這點(diǎn)來(lái)看它相對(duì)于 DOM 的優(yōu)點(diǎn)就不那么明顯了。使用 VTDXML 將同時(shí)帶來(lái)易用性和高性能的雙重優(yōu)點(diǎn),它相比 DOM 的優(yōu)勢(shì)是毋庸置疑的。 VTDXML 原理結(jié)構(gòu) VTDXML 的原理并不復(fù)雜,而且很巧妙。為了實(shí)現(xiàn)非提取( nonextractive)這個(gè)目的,它將原 XML 文件原封不動(dòng)的以二進(jìn)制的方式讀進(jìn)內(nèi)存,連解碼都不做,然后在這個(gè)字節(jié)( byte)數(shù)組上解析每個(gè)元素( element)的位置并把一些信息記錄下來(lái),之后的遍歷操作便在這些保存下來(lái)的記錄( record)上進(jìn)行,如果需要提取 XML 內(nèi)容就利用記錄( record)中的位置等信息在原始字節(jié)( byte)數(shù)組上進(jìn)行解碼并返回字符串。一個(gè)典型的 VTDXML 文檔大小約是原文件大小的~ 倍,其中包含了 XML 文檔本身。它所提取出來(lái)的記錄( record)信息格式如下圖所示: VTDXML 優(yōu)點(diǎn) 這里有一組數(shù)據(jù),取自于 VTDXML 的官方網(wǎng)站: VTDXML 的解析速度是 SAX( with NULL content handler)的 ~。With NULL content handler 的意思就是指 SAX 解析中沒(méi)有插入任何額外的處理邏bit 60 bit 51 bit 43 令牌類型: 4bit bit 63 bit 29 bit 0 bit 32 bit 42 bit 52 bit 59 前綴長(zhǎng)度: 9bit 令牌起始位置: 30bit 令牌長(zhǎng)度: 20bit 序列長(zhǎng)度: 11bit 嵌套深度: 8bit 圖 VTDXML 一字節(jié)信息示意圖 26 XML 快速解析技術(shù) 輯,即 SAX 的最高速度。 VTDXML 的內(nèi)存占用是原 XML 的 ~(其中 的部分是原 XML,~ VTDXML占用的部分),而 DOM的內(nèi)存占用則是原 XML的 5x~10x。舉一個(gè)例子,如果一個(gè) XML 的大小是 50MB,那么用 VTDXML 讀取進(jìn)來(lái)內(nèi)存占用會(huì)在 65MB~75MB 之間,而 DOM 的內(nèi)存占用則會(huì) 在 250M~500MB 之間?;谶@個(gè)數(shù)據(jù)用 DOM 處理大的 XML 文件幾乎是不可能的。 本章小結(jié) 在分析了現(xiàn)實(shí)網(wǎng)絡(luò)中 XML 數(shù)據(jù)傳輸中所存在問(wèn)題的基礎(chǔ)上,本章深刻闡述了XML 解析的必要性并講解了 XML 解析技術(shù)的基本理論,提出了 XML 解析器的工作架構(gòu),并對(duì)其工作模式進(jìn)行了具體功能的講解。在此之后,文章又進(jìn)一步詳細(xì)解釋了常用的基于數(shù)模型和基于事件模型的兩種解析方式,具體分析了兩者的工作方式,并列出圖表比較了兩者各自的利弊。最后介紹了 VTDXML 解析方法。 第四章 一種基于 XML的數(shù)據(jù)通信模型的設(shè)計(jì)與實(shí)現(xiàn) 27 第四章 一種基于 XML 的數(shù)據(jù)通信模型的設(shè)計(jì)與實(shí)現(xiàn) 前邊介 紹了 XML解析技術(shù)的基本知識(shí),這一章來(lái)研究一下 XML在數(shù)據(jù)通信中的應(yīng)用。 在解決一個(gè)監(jiān)控系統(tǒng)的信息傳輸問(wèn)題時(shí),遇到了一些困難,主要的原因是該系統(tǒng)中的數(shù)據(jù)類型多,發(fā)送的方向雜,控制起來(lái)比較繁瑣。而引入 XML 文件后使得這個(gè)問(wèn)題變得簡(jiǎn)單化。 監(jiān)控系統(tǒng)的數(shù)據(jù)通信 數(shù)據(jù)通信是依照一定的通信協(xié)議,利用數(shù)據(jù)傳輸技術(shù)在兩個(gè)終端之間傳遞數(shù)據(jù)信息。它可實(shí)現(xiàn)計(jì)算機(jī)和計(jì)算機(jī)、計(jì)算機(jī)和終端以及終端與終端之間的數(shù)據(jù)信息傳遞。在分布式監(jiān)控系統(tǒng)中,數(shù)據(jù)通信是最基本的問(wèn)題。如圖 所示是一個(gè)比較典型的站點(diǎn)式遠(yuǎn)程監(jiān)控系統(tǒng)的模型。 服 務(wù) 中 心站 點(diǎn) A站 點(diǎn) B站 點(diǎn)CI n t e r n e t / L a n 圖 典型站點(diǎn)式系統(tǒng)模型 在這個(gè)系統(tǒng)中,監(jiān)控中心和站點(diǎn)之間要相互發(fā)送數(shù)據(jù),基本上有三種情況: (1) 站點(diǎn) → 監(jiān)控中心 如站點(diǎn)采集到的現(xiàn)場(chǎng)數(shù)據(jù)、抓拍的圖片信息、報(bào)警信息、站點(diǎn)收到監(jiān)控中心發(fā)來(lái)的數(shù)據(jù)后回發(fā)的確認(rèn)應(yīng)答信息等。 (2) 監(jiān)控中心 → 站點(diǎn) 28 XML 快速解析技術(shù) 如監(jiān)控中心發(fā)往站點(diǎn)的基礎(chǔ)數(shù)據(jù)與系統(tǒng)運(yùn)行參數(shù)、監(jiān)控中心收到站點(diǎn)發(fā)來(lái)的數(shù)據(jù)后回發(fā)的確認(rèn)應(yīng)答信息、監(jiān)控中心給站點(diǎn)的遠(yuǎn)程控制指令等。 (3) 站點(diǎn) → 站點(diǎn) 有些事務(wù)可能需要兩個(gè)站點(diǎn)共同完成 (如在站點(diǎn) A 稱得皮重,在站點(diǎn) B 稱得毛重,兩個(gè)站點(diǎn)要相 互交換數(shù)據(jù)才能得到凈重值 ),因此在站點(diǎn)之間也會(huì)發(fā)送數(shù)據(jù),而這些數(shù)據(jù)監(jiān)控中心是不關(guān)心地。 由此可見(jiàn),在這個(gè)站點(diǎn)式監(jiān)控系統(tǒng)中有多種數(shù)據(jù)要互相發(fā)送,并且數(shù)據(jù)的發(fā)送是隨機(jī)的、雜亂的、動(dòng)態(tài)的,內(nèi)容相異,格式不同,種類繁多。另外,監(jiān)控中心通過(guò)局域網(wǎng)連接 Inter,可以有固定的 IP 地址,而站點(diǎn)使用 ADSL 連接,通常其 IP 地址是不固定的,用 Socket 通信機(jī)制作為系統(tǒng)的數(shù)據(jù)通道時(shí),把監(jiān)控中心做為 Socket Server,啟動(dòng)偵聽(tīng),站點(diǎn)只能做 Socket Client,主動(dòng)連接 Server。站點(diǎn)之間若要相互傳送數(shù)據(jù), 則只能通過(guò)監(jiān)控中心來(lái)轉(zhuǎn)發(fā),更增加了監(jiān)控中心和站點(diǎn)之間收發(fā)數(shù)據(jù)的復(fù)雜性。 系統(tǒng)模型的建立 根據(jù)監(jiān)控系統(tǒng)的功能要求和 XML 的特點(diǎn),將系統(tǒng)的數(shù)據(jù)通信問(wèn)題轉(zhuǎn)化為如何實(shí)現(xiàn)網(wǎng)絡(luò)文件傳輸和如何使用 XML 文件表示數(shù)據(jù)這兩個(gè)子問(wèn)題。同時(shí),為了便于實(shí)現(xiàn),提高系統(tǒng)的可靠性、穩(wěn)定性及可維護(hù)性,采用層次結(jié)構(gòu),將系統(tǒng)的功能劃分為七層模型,如圖 所示: 第四章 一種基于 XML的數(shù)據(jù)通信模型的設(shè)計(jì)與實(shí)現(xiàn) 29 (1) 物理鏈路層:是指網(wǎng)絡(luò)通訊的線路,本系統(tǒng)采用電信的 ADSL 有線方式,其它也可以是局域網(wǎng)(雙絞線、同軸電纜、光纖等)或者無(wú)線通訊 方式( GPRS、GSM、 CDMA 等);物理鏈路層是系統(tǒng)數(shù)據(jù)通信的基礎(chǔ),但與上層的實(shí)現(xiàn)方式基本無(wú)關(guān)。 (2) 標(biāo)準(zhǔn)網(wǎng)絡(luò)協(xié)議層:是指 TCP/IP(Transmission Control Protocol/Inter Protocol)協(xié)議族,網(wǎng)絡(luò)中 TCP/IP 協(xié)議叫做傳輸控制 /網(wǎng)際協(xié)議,又叫網(wǎng)絡(luò)通訊協(xié)議,是 Inter 國(guó)際互聯(lián)網(wǎng)絡(luò)的基礎(chǔ),其中的 TCP 協(xié)議和 UDP(User Datagram Protocol)協(xié)議是兩種最常用的數(shù)據(jù)通信協(xié)議。 (3) 文件傳輸層:使用 Socket(套接字)技術(shù)實(shí)現(xiàn)文件的傳輸。 Socket 是Windows 與網(wǎng)絡(luò)的接口。 Windows 通過(guò) Socket 把數(shù)據(jù)格式轉(zhuǎn)換成網(wǎng)絡(luò)傳輸格式,也把網(wǎng)絡(luò)數(shù)據(jù)格式轉(zhuǎn)換成 Windows 格式。 Socket 可以使用面向連接的協(xié)議 (如TCP),也可以使用無(wú)連接的協(xié)議 (如 UDP)。 Socket 一般用來(lái)描述 IP 地址和端口,是一個(gè)通信鏈接的句柄。應(yīng)用程序通常通過(guò) Socket 向網(wǎng)絡(luò)發(fā)出請(qǐng)求或者應(yīng)答網(wǎng)絡(luò)請(qǐng)求,可以通過(guò) Socket 傳送數(shù)據(jù),進(jìn)一歨封裝成傳送任何文件(字節(jié)流)的功能。 (4) XML 文件控制層:在 XML 中的數(shù)據(jù)可能是接收到的數(shù)據(jù),也可能是要發(fā)送的數(shù)據(jù),監(jiān)控中心和站點(diǎn)必須準(zhǔn) 確控制 XML 文件的接收和發(fā)送。特別是對(duì)于監(jiān)控中心,可能同時(shí)接收到多個(gè)站點(diǎn)發(fā)送來(lái)的 XML 文件,發(fā)送 XML 文件時(shí)也要準(zhǔn)確控制發(fā)送的目標(biāo)站點(diǎn)。 業(yè)務(wù)邏輯層 數(shù)據(jù)表示層 XML 文件封裝 XML 文件解析 XML 文件控制層 文件傳輸層 標(biāo)準(zhǔn)網(wǎng)絡(luò)協(xié) 議層 物理鏈路層 圖 層次結(jié)構(gòu)模型 30 XML 快速解析技術(shù) (5) XML 文件封裝 /解析層:這是兩個(gè)相逆的過(guò)程,也是兩種相對(duì)應(yīng)的操作。XML 文件封裝是指將要發(fā)送的數(shù)據(jù)按照一定的協(xié)議打包組裝成一個(gè)特定格式的XML 文件,解析是指對(duì)一個(gè) XML 文件按照特定的協(xié)議進(jìn)行分析解讀,還原出其中所描述的數(shù)據(jù)。 (6) 數(shù)據(jù)表示層:將采集到的數(shù)據(jù)、處理中的數(shù)據(jù)或者在數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)等各種數(shù)據(jù)格式轉(zhuǎn)換為能夠用 XML 文件描述的格式。這一層在本地操作的數(shù)據(jù)和遠(yuǎn)程傳輸?shù)臄?shù) 據(jù)之間建立了一個(gè)通道,使兩者之間互不影響,從而不會(huì)降低系統(tǒng)的執(zhí)行效率。 (7) 業(yè)務(wù)邏輯層:實(shí)際上就是整個(gè)系統(tǒng)的用戶接口,或者說(shuō)是系統(tǒng)功能的實(shí)現(xiàn)層,包括打印單據(jù)、防作弊、報(bào)警處理、用戶管理、查詢統(tǒng)計(jì)、費(fèi)用計(jì)算、實(shí)時(shí)監(jiān)控、基礎(chǔ)數(shù)據(jù)錄入、系統(tǒng)管理等。 系統(tǒng)實(shí)現(xiàn) 網(wǎng)絡(luò)文件傳輸 ? 動(dòng)態(tài)鏈接庫(kù) 本系統(tǒng)使用 VC++開(kāi)發(fā)專門用于網(wǎng)絡(luò)文件傳輸?shù)膭?dòng)態(tài)鏈接庫(kù)( DLL),基于對(duì)字節(jié)流的處理可以傳輸任何文件,因此對(duì)于 XML 文件的傳輸來(lái)說(shuō)是透明的。該動(dòng)態(tài)鏈接庫(kù)的主要接口及其功能如下: (1) 初始化。服務(wù)器端要先啟動(dòng)監(jiān)聽(tīng),客戶端主動(dòng)聯(lián)接。 DWORD DT_Net_InitServer(BOOL bIsServer = TRUE)。 參數(shù): bIsServer 表示是否將此 Socket 端用作服務(wù) 返回: 0 或者錯(cuò)誤代碼 (2) 設(shè)置回調(diào)函數(shù)接口 DWORD DT_Net_SetCallBack(LPVOID pParam,LPNET_ ACCEPT_CALLBACK pAccept,LPNET_RECV_CALLBACK pRevc,LPNET_DISCONN_CALLBACK pDisConnect,LPNET_ LOG_CALLBACK pLogInfo)。 第四章 一種基于 XML的數(shù)據(jù)通信模型的設(shè)計(jì)與實(shí)現(xiàn) 31 包 括請(qǐng)求連接、接收到數(shù)據(jù)、斷開(kāi)連接和日志回調(diào)。 (3) 設(shè)置文件操作的回調(diào)函數(shù)接口 DWORD DT_Net_SetFileCallBack(LPCTSTR pSavePath, LPNET_SENDFILE_CALLBACK pSendFile,LPNET_ RECV FILE_CALLBACK pRecvFile,LPNET_ABORTFILE_ CALL BACK pAbortFile)。 包括文件發(fā)送完畢、接收到文件、文件發(fā)送中斷的回調(diào)。 (4) 服務(wù)器啟動(dòng)監(jiān)聽(tīng) DWORD DT_Net_StartListen(LPCTSTR pszLocalIP, unsigned long nSvrPort)。 參數(shù): pszLocalIP-服務(wù)器 IP 地址 nSvrPort-服務(wù)器端口號(hào) 返回: 0 或者錯(cuò)誤代碼 (5) 服務(wù)器停止監(jiān)聽(tīng) DWORD DT_Net_StopListen()。 (6) 發(fā)送文件 DWORD DT_Net_SendFile(unsigned int nIDSocket, LPCTSTR pstrFileName, LPCTSTR pszReName=NULL)。 參數(shù): nIDSocket- Client 端套接字句柄 pstrFileName-文件名稱 (全部路徑 ) pszReName-文件重命名 (7) 中止文件發(fā)送 DWORD DT_Net_AbortFile(unsigned int nIDSocket)。 參數(shù): nIDSocket- Client 端套接字句柄 (8) 斷開(kāi)連接 DWORD DT_Net_DisConnect(unsigned int nIDSocket)。 參數(shù): nIDSocket-套接字句柄 (9) 連接服務(wù)器 DWORD DT_Net_ConnectRemote(LPCTSTR pstrRemoteIP, unsigned long nRemotePort)。 32 XML 快速解析技術(shù) 參數(shù): pstrRemoteIp-服務(wù)器 IP 地址 。 nRemotePort-服務(wù)器端口號(hào) ? 實(shí)現(xiàn)文件傳輸 將監(jiān)控中心作為 Socket Server,啟動(dòng)監(jiān)聽(tīng): DT_Net_InitServer(TRUE)。 DT_Net_StartListen(ServerIP,ServerPort)。 然后設(shè)置回調(diào)函數(shù): DT_Net_SetCallBack(self,LPNET_ACCEPT_CALLBACK, LPNET_RECV_CALLBACK,LPNET_DISCONN_CALLBACK, LPNET_LOG_CALLBACK)。 DT_Net_SetFileCall
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1