2007年2月4日 星期日

XMI mapping to XML, 用 XSLT

預官考試結束了,別人正在放年假的時候,我剛好有時間可以趕工一下進度...
我的工作其實比較像XML 整合 整合 在整合,編輯器 存庫 檔案,真是名符其實的中介軟體呀

xsl 是 XML Style Sheets,當要使用xsl ( XML Style Sheets)的轉換時,一般用網頁瀏覽器支援的xsl 轉換已可,即是像css幫html着裝一樣,撰寫xsl然後依附在xml檔案連結來着裝。
詳細可以觀看 w3school的範例如: http://www.w3schools.com/xsl/cdcatalog_with_xsl.xml
本身是讀xml檔,但是會載入xsl 樣式來呈現。這個簡單的做法是靜態的,好處是不用寫到程式,而只要寫一個style sheets即可透過IE 或 firefox 瀏覽器來讀取樣式顯示。

但是xsl的使用不僅僅於此,利用其中的xslt甚至可以把xml給轉換成另一種形式,不過這個轉換所需要就是支援xslt的parser和程式工具才能隨心所欲的利用 xsl 轉換。這點跟使用 dom 、SAX不同,因為你只要xml和 xsl檔 丟入程式,就可以依據xsl的檔案去轉換,不是直接把 xml編輯過程寫在程式裡。例如我們使用 apache Xalan Project 來幫我們做轉換的工作,它必須支援xslt、xpath等。你只要寫幾行轉換程式就可以利用xalan 來幫我們工作,xalan之好用jdk 1.5之後就有內入其中了。

接下來要使用UML/XMI了,依照發現目前支援XMI工具雖多,但是XMI內容無法規定到完全依樣的格式,所以每家的tool 轉成XMI都會有些微格式不相容,大概是XMI還在訂定的關係。以下是些 XMI支援的工具:
  • rational rose 2002/2003 需要安裝xmi addins,只支援到 UML 1.3 XMI export,有1.4的無法匯入
  • Eclipse 建模框架(EMF)但xmi格是挺怪的,找不到直接匯出成
  • netBeans MDR (自從3.6版後就找不到了更新的樣子)
  • hyperModel
  • Poseidon for UML
  • Codagen
  • jdeveloper 10g
感覺支援最好的是rational rose和 jdeveloper 10g,不過後面四項還沒實際用過。

有個原來會做的SVG ,似乎可以用了

相關網址:
Working XML: UML, XMI, and code generation, Part 1~3
UML SVG
在 Oracle JDeveloper 中通過 XMI 開發 UML 圖表
http://xml.apache.org/xalan-j/samples.html
Using JDOM and XSLT

沒有留言: