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

來源:互聯網
上載者:User

  將保單儲存在 DB2 中

  PHP 應用程式將傳入的 XML 文檔直接儲存在資料庫中,而不需要解析它(見清單 3)。DB2 的 pureXML 支援將隱式地解析傳入的 XML,並將其儲存在一個類 DOM 的分層結構中。現在,可以在 XQuery 語句中使用 XPath 之類的 XML 導航技術(就像在 DOM 中使用的那樣)來查詢 XML。DB2 9 還提供了在該階層中的任何節點上索引的能力。

  公開 XML 文檔上的服務

  新的保單儲存在 DB2 9 中以後,保險代理可以查詢該保單,以決定是否接受這個保險。用於獲得關於新保單報告的查詢通過 Web 服務公開給客戶機應用程式。

  這個例子中的 Web 服務是用 PHP 編寫的,它為調用實現服務的業務和轉換邏輯的 DB2 預存程序提供了一個簡潔的介面。每個 DB2 預存程序由一個 SQL/XML 查詢組成,它過濾和轉換儲存在資料庫中的 XML 保單,以建立一個輸出 XML 文檔。然後,該 PHP Web 服務將 XML 文檔返回給客戶機。

  我們來分析每個預存程序,看看那些有效地組成 Web 服務實現的查詢。

  列出所有新客戶保險的 DB2 查詢。包含該查詢的預存程序是listAllNewCustomers(見清單 4)。該查詢搜尋 ACORD 表的 INFO 列中的所有保單文檔。在每個 XML 文檔中,DB2 進一步向下分析,以便只返回 PolicyStatus/@tc 屬性的代碼值被設為 12(也就是建議的值)的那些文檔。查詢輸出是一個 XML 文檔,它有一個根節點 newpolicylist,該節點包含一系列的用於每個新保單的 TXLife 子節點(見圖 4)。

  圖 4. 返回新保單列表的 SQL/XML 查詢 


  注意這個查詢第一次如何使用 DB2 XQuery 函數 db2-fn:xmlcolumn 來導航關係模式,以定位到 XML 列 DB2ADMIN.ACORD.INFO。當它到達 XML 列時,它進一步使用 XPath 在 XML 模式中導航到適當的節點(類似於使用 PHP、JavaScript 或其他語言導航 DOM)。  列出有風險客戶的提議保險的 DB2 查詢。該查詢只列出有風險的新客戶(也就是說,他們對於某個醫學問題的回答是 yes)。該查詢包含在一個名為 listAtRiskNewCustomers 的預存程序中(見清單 5)。 注意:WHERE 子句同時檢查答案和保單狀態。

  評估有風險新客戶的風險度的 DB2 查詢。對於以上列表中的每個保單,在保單的健康風險地區只能列出回答為 yes 的問題。該查詢還返回 policytype,以顯示該保單值多少錢,以便評估風險。包含該查詢的預存程序(見清單 6)是 getRiskQuestions(guid)。 注意:您需要一個支援 XML 類型的 DB2 驅動程式版本。否則,在每個預存程序中都需要使用 XMLSerialize 來從 XMLQuery 中序列化 XML 值。請參閱 developerWorks 文章 “結合使用 DB2 原生 XML 與 PHP” 以獲得更詳細的資訊。



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.