軟件設計
根據基於XSLT來實現代碼生成功能的思路,我們開始設計這個代 碼生成器。
數據來源
這個代碼生成器的數據來源就是數據庫表結構設計信息 。對於不同的數據庫類型得使用不同的方法來獲得其表結構設計信息。在此我們針對於 Access2000,MSSQLServer和Oracle這三種數據庫研究獲得其表設計信息的方法,對於其他類 型的數據庫則以後再說。
對於MSSQLServer,數據庫中有SysObjects和SysColumns這 兩個系統表,我們可以查詢系統表來獲得所有的表名稱和字段名稱以及格式,還有一個 sp_helpindex 的系統預定義存儲過程來獲得指定表的字段索引信息。
對於Oracle, 數據庫有一個名為Col的系統預定義視圖,我們可以查詢這個視圖獲得所有的表名和字段定義 信息。還有一個user_ind_columns的系統預定義視圖,我們可以關鍵字段信息。
對於 Access2000數據庫,沒有這些系統表,因此我們使用。NET框架中的OleDB的數據連接對象的 GetOleDbSchemaTable函數來獲得數據庫表和字段定義信息。
我們的代碼生成器還應 當從一下數據結構設計器生成的文檔導入表結構設計信息,這裡我們決定從PowerDesigner生 成的PDM文件中導入表設計信息,因為PDM文件是XML格式的,處理方便。
代碼生成模 板
這裡的代碼生成模板就采用XSLT格式。為了方便軟件開發和維護,我們將模板保存 在程序目錄下的XSLT擴展名的文件中,並約定文件名使用下劃線開頭。
程序
在這裡使用ASP.NET中實現該代碼生成器,使用.Net框架自帶的XSLT轉換對象來作為代碼生成 器處理引擎,並使用Html格式來展示生成的源代碼。
程序說明
根據上述的軟 件設計,我們開發出了這個代碼生成器,現對其源代碼進行詳細說明。
xslcreatecode.ASPx
本代碼生成器很簡單,只有一個ASPX頁面,打開該頁面 的設計界面,