首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

Data Studio Developer 實戰:XSLT 轉換 Data Web Services 消息(下)——自定義模式與 SOAP 綁定

     編輯:DB2 教學

場景:人力資源部門的自定義模式集成

HR 部門使用自定義模式追蹤員工詳情。輸入自定義模式 → 轉換為默認模式供 Web Service 消費 → 輸出按默認模式返回 → 轉換為自定義輸出模式。需創建自定義模式、加入 Web Service、建立 XML 映射、生成 XSLT 腳本。

創建自定義輸入/輸出 XSD

右鍵項目 → New → XML Schema。清單 7/8 為輸入/輸出 XSD 定義:

  • 輸入:命名空間 `https://www.example.org/HREmpGetInfo`,元素 `HREmpGetInfo` 含 `EMPSerial` (string);
  • 輸出:命名空間 `https://www.example.org/getHREmpDetails`,元素 `getHREmpDetails` 包含三段:`HREmpPersonalDetails`(姓名、性別、出生日期等)、`HREmpSalaryDetails`(年薪、獎金)、`HREmpWorkDetails`(部門、工號、入職日期、職位、學歷)。

將自定義模式加入 Web Service

  1. 右鍵 Web Service → Manage Custom Schemas → 打開 Add or Remove Custom XML Schemas 對話框;
  2. Add → 選擇目標命名空間 → Add → 選中輸入/輸出 XSD 文件 → Open;
  3. 可添加多個模式,命名空間必須唯一;與服務同名空間者將合併;Finish 完成,模式出現在 XML Schema 文件夾。

XML 映射編輯器:構建自定義↔默認模式橋樑

Data Studio Developer 1.2 提供圖形化 XML Mapping 功能。

輸入映射:自定義 → 默認

  1. 右鍵項目 → New → XML Mapping,命名 `NewMAPInput.map`;
  2. Root inputs:Add → 瀏覽選擇輸入自定義 XSD → 選元素 `HREmpGetInfo`;
  3. Root outputs:Add → 選擇默認 XSD(含輸入/輸出兩元素)→ 選 `getOneEmp`(輸入元素);
  4. 圖形化拖拽:左側 `EMPSerial` → 右側 `empno` 建立映射;
  5. Ctrl+S 保存 → Generate XSLT script → Navigator 視圖見 `NewMAPInput.xsl`。

**生成的 XSLT 關鍵片段**(清單 9):`in:EMPSerial` 映射至 `out:empno`,模板匹配 `in:HREmpGetInfo` 輸出 `out:getOneEmp`。

輸出映射:默認 → 自定義

  1. New → XML Mapping,命名 `NewMAPOutput.map`;
  2. Root inputs:Add → 默認 XSD → 選 `getOneEmpResponse`(輸出元素);
  3. Root outputs:Add → 輸出自定義 XSD → 選 `getHREmpDetails`;
  4. 展開元素拖拽映射:`row/FIRSTNME`→`EMP_FIRSTNAME`、`row/SALARY`→`EMP_YEARLY_COMP`、`row/WORKDEPT`→`EMP_DEPT` 等 15 個字段一一對應;
  5. 保存生成 `NewMAPOutput.xsl`。

**生成的 XSLT 結構**(清單 10):根模板匹配 `in:getOneEmpResponse`,應用 `NewMAPOutput` 模式,構建三層輸出結構,每個字段對應 `xsl:value-of select="row/..."`,完整保留類型(string、decimal、date、short)。

總結

通過自定義模式管理、XML Mapping 圖形化編輯器、XSLT 自動生成,Data Studio Developer 實現了企業自定義數據契約與 Data Web Services 標準模式的無縫雙向轉換,支援 SOAP 綁定下的異構系統集成,無需手寫 XSLT,顯著降低集成開發與維護成本。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved