基于 ACORD 人壽數據模型的場景
我們來考慮一個簡單的人壽保險場景,在這個場景中,首先創建一個表示新保單的 XML 文檔,然后查詢和操縱這個文檔,另外還將這個文檔從一層移動到另一層。這個文檔基于合作運營研究與發展協會(Association for Cooperative Operations Research & Development,ACORD)用于人壽保險規范的 XML,它定義了健康保險和年金保險需要交換的數據。
為了申請一個新的保險,客戶需要提供一些基本信息。部分信息是在一個 PHP 應用程序中填寫的,還有一部分是在客戶機瀏覽器中填寫的。然后,保單存儲在一個 DB2 XML 列中。在 DB2 9 中,XML 類型的列在內部將 XML 數據存儲為一棵解析后的樹,與關系數據存儲在不同的地方。這種方法是 DB2 9 特有的,更早的 DB2 版本則使用關系存儲基礎設施來存儲 XML。
下面是保單 XML 文檔在客戶機與應用程序之間的流程:
?在 Web 客戶機中,客戶更新頁面并單擊 Submit。
?Web 客戶機向 PHP 發出一個 XMLHTTP 請求,以獲得新的空白保單文檔。
?PHP 應用程序打開一個空白的保單文檔,用一個全局惟一標識符(GUID)更新它,然后將該文檔返回給 Web 客戶機。
?Web 客戶機使用 Ajax 捕捉返回的事件,并檢索 XML DOM,然后用 Web 頁面中輸入的信息填充該文檔。
?Web 客戶機使用 XMLHTTP 將更新后的 XML 發送給 PHP 應用程序。
當第一個請求到達中間層的 PHP 應用服務器時,一個新的 XML 保單文檔被裝載到 SimpleXML 對象中。通過使用 SimpleXML API,用 PHP 應用程序中創建的 GUID 更新 TransRefGUID 元素。
header('Content-type: text/xml');
$fileContents = file_get_contents("$basedir/acord.xml");
$dom = simplexml_load_string($fileContents);
$dom->TXLifeRequest->TransRefGUID=$guid;
echo $dom->asXML();
然后,這個文檔被發送到客戶機。
對于本文,我們假設 GUID 是通過某種機制(例如時間和隨機數的組合)創建的。更重要的是理解如何將表示保單的 XML 文檔視作內存中的業務對象層次結構,以及如何使用 SimpleXML API (或 DOM/XPath)來導航和更新這個對象。
填充基本客戶信息
|
新聞熱點
疑難解答