国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > XML > 正文

使用PHP和AJAX的XML編程(1)

2024-09-05 20:53:59
字體:
來源:轉載
供稿:網友

  在 SOA 架構中,程序員經常使用 XML 在應用程序之間交換結構化和半結構化的數據。XML 及其相關技術 ― 文檔對象模型(Document Object Model,DOM)、XPath、HTTP、XQuery 和可擴展樣式表語言轉換(Extensible Stylesheet Language Transformations,XSLT) ― 為快速應用程序開發提供了一個強大的環境。構建在這些技術之上的應用程序將占用更小的內存空間,需要更低的維護成本,同時又擁有更高的品質和靈活性。

  DB2 和其他關系數據庫的 XML 方面的特性已經相當成熟,因此除了存儲和管理關系數據之外,它們還是存儲和管理 XML 數據的理想選擇。DB2 9 XML 支持(稱為 pureXML)提供了以純 XML 的形式(換句話說,就是帶注釋的、樹型的分層存儲)存儲 XML 的能力。在 DB2 9 中,XML 數據可以用 XML 模式索引,可以從關系數據組合而成,可以分解為關系數據,可以查詢和轉換,可以獨立發布,或者通過混合使用 SQL/XML 和 XQuery 與關系數據組合起來。

  Web 瀏覽器也正在為客戶機腳本提供更多的功能來有效地處理 XML。通過使用異步 JavaScript 和 XML(Asynchronous JavaScript and XML,Ajax),Web 頁面現在可以直接對應用服務器進行遠程過程調用,并且可以在任何返回的 XML 數據上使用 DOM API。

  本文將展示如何利用 DB2 XML、Ajax 和 PHP Hypertext Preprocessor (PHP) 提供的功能來編寫簡單的基于 XML 的應用程序。通過示例場景的幫助,您將學習如何在 JavaScript 中調用 PHP 應用程序;如何使用 DOM 和 SimpleXML API 修改 XML 數據;如何將 XML 從客戶機傳送到應用程序再到數據庫;以及如何創建 PHP Web 服務來使用 SQL/XML 和 XQuery 發布關于 XML 數據的報告。

  XML 優點

  大多數應用程序都用于創建、存儲、操縱和呈現業務數據。對象包裝是指將業務數據綁在一起,使業務邏輯更容易處理它們。這些包裝器對象的很多功能都是根據關系和格式化規則來提供業務數據的結構,并使業務邏輯能夠操縱、發布和串行化封裝的數據。

  圖 1. 基于對象包裝器的應用程序  

  圖 1 闡釋了使用對象包裝器的一個示例人壽保險應用程序。每個方框表示一個對象,每個對象至少有:

  ?一個構造函數

  ?Getter 和 Setter 方法

  ?驗證代碼

  ?內部對象層次的串行化

  這些對象與實際的業務邏輯沒有關系。對象包裝是為了使業務邏輯更容易管理業務數據。包裝數據所需的代碼比業務邏輯要多得多。更多的代碼將導致更多的 bug、更大的固定性、更多的維護和更高的成本。

  如果對象中的數據變量可以格式化為 XML 結構,并且對象的主要作用是將這些數據暴露給業務邏輯并讓業務邏輯操縱它們,那么可以用 DOM 代替對象。

  圖 2. 基于 XML 的應用程序 


  圖 2 展示了一個使用 XML 和 DOM 包裝器的示例保險應用程序。圖 1 中的所有數據包裝器對象都用一個 DOM 對象代替。業務數據是用 XML 建模的,DOM 提供了必要的 API 來:

  ?創建新的 XML 對象。

  ?更新 XML 對象的值。

  ?導航 XML 對象。

  ?使用 XPath 在對象層次中搜索。

  ?串行化和反串行化 XML 對象層次(換句話說,就是內建持久性)。

  通過使用 XML,可以避免使用大多數用于管理業務數據的包裝器對象。應用程序將變得更加簡潔,并且更多地將重點放在業務邏輯上,而不是數據管理上。

  XML 和架構

  將 XML 引入架構中可以為表示業務數據帶來一種標準化的方式。XML 可以提供數據的結構;XML 模式施加結構和格式化規則;DOM API 和 XQuery、XPath 及 XSLT 之類的語言使業務邏輯可以有效地操縱、發布和串行化數據。由于業務數據的 XML 表示在客戶機、中間層和數據庫中都是一致的,因此操縱這些對象的代碼也是類似的。

  我將展示如何在三層環境中構建基于 XML 的應用程序,這個三層環境由以下幾個部分組成:

  ?Web 客戶機:Asynchronous JavaScript and XML (Ajax),DOM

  ?應用服務器:PHP 和 SimpleXML

  ?數據庫: DB2 9 和 SQL/XML,XQuery

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿瓦提县| 扶余县| 安远县| 建湖县| 浙江省| 旬阳县| 大姚县| 金乡县| 漳浦县| 阿拉善盟| 昭苏县| 津市市| 藁城市| 建德市| 通辽市| 东丰县| 漳州市| 平顶山市| 株洲市| 株洲县| 佛冈县| 黎川县| 虹口区| 邯郸市| 颍上县| 漾濞| 垦利县| 通许县| 兴仁县| 蒲城县| 阳原县| 辽源市| 满城县| 都昌县| 高唐县| 南汇区| 龙海市| 鹰潭市| 东平县| 安丘市| 三河市|