基于 acord 人壽數(shù)據(jù)模型的場(chǎng)景
我們來(lái)考慮一個(gè)簡(jiǎn)單的人壽保險(xiǎn)場(chǎng)景,在這個(gè)場(chǎng)景中,首先創(chuàng)建一個(gè)表示新保單的 xml 文檔,然后查詢(xún)和操縱這個(gè)文檔,另外還將這個(gè)文檔從一層移動(dòng)到另一層。這個(gè)文檔基于合作運(yùn)營(yíng)研究與發(fā)展協(xié)會(huì)(association for cooperative operations research & development,acord)用于人壽保險(xiǎn)規(guī)范的 xml,它定義了健康保險(xiǎn)和年金保險(xiǎn)需要交換的數(shù)據(jù)。
為了申請(qǐng)一個(gè)新的保險(xiǎn),客戶(hù)需要提供一些基本信息。部分信息是在一個(gè) php 應(yīng)用程序中填寫(xiě)的,還有一部分是在客戶(hù)機(jī)瀏覽器中填寫(xiě)的。然后,保單存儲(chǔ)在一個(gè) db2 xml 列中。在 db2 9 中,xml 類(lèi)型的列在內(nèi)部將 xml 數(shù)據(jù)存儲(chǔ)為一棵解析后的樹(shù),與關(guān)系數(shù)據(jù)存儲(chǔ)在不同的地方。這種方法是 db2 9 特有的,更早的 db2 版本則使用關(guān)系存儲(chǔ)基礎(chǔ)設(shè)施來(lái)存儲(chǔ) xml。
下面是保單 xml 文檔在客戶(hù)機(jī)與應(yīng)用程序之間的流程:
·在 web 客戶(hù)機(jī)中,客戶(hù)更新頁(yè)面并單擊 submit。
·web 客戶(hù)機(jī)向 php 發(fā)出一個(gè) xmlhttp 請(qǐng)求,以獲得新的空白保單文檔。
·php 應(yīng)用程序打開(kāi)一個(gè)空白的保單文檔,用一個(gè)全局惟一標(biāo)識(shí)符(guid)更新它,然后將該文檔返回給 web 客戶(hù)機(jī)。
·web 客戶(hù)機(jī)使用 ajax 捕捉返回的事件,并檢索 xml dom,然后用 web 頁(yè)面中輸入的信息填充該文檔。
·web 客戶(hù)機(jī)使用 xmlhttp 將更新后的 xml 發(fā)送給 php 應(yīng)用程序。
當(dāng)?shù)谝粋€(gè)請(qǐng)求到達(dá)中間層的 php 應(yīng)用服務(wù)器時(shí),一個(gè)新的 xml 保單文檔被裝載到 simplexml 對(duì)象中。通過(guò)使用 simplexml api,用 php 應(yīng)用程序中創(chuàng)建的 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();
然后,這個(gè)文檔被發(fā)送到客戶(hù)機(jī)。
對(duì)于本文,我們假設(shè) guid 是通過(guò)某種機(jī)制(例如時(shí)間和隨機(jī)數(shù)的組合)創(chuàng)建的。更重要的是理解如何將表示保單的 xml 文檔視作內(nèi)存中的業(yè)務(wù)對(duì)象層次結(jié)構(gòu),以及如何使用 simplexml api (或 dom/xpath)來(lái)導(dǎo)航和更新這個(gè)對(duì)象。
填充基本客戶(hù)信息
新聞熱點(diǎn)
疑難解答
圖片精選