前一段時間一直是使用同事寫的fmpp 解析csv文件生成 Spring+Hibernate+Struts+vm(velocity模版)代碼,每次針對一個表配置一個csv,還要好好思索意義各個表之間的對應關係,既不容易配置csv也容易出錯。趁這個清明節三天假期沒事情作就着手寫一個fmpp解析PDM的程序目前還在完善階段,Hibernate方面已經基本寫完,找很少可以時間經常使用的映射關係,而且此次將複合主鍵也包括在內,對於沒有指主鍵的table默認將第一個字段設置爲主鍵(相信你們在設計表的時候都習慣將主鍵設置爲第一個字段),閒話很少說了,說一下里面的關鍵點:
XML 命名空間
將默認狀況下,當你寫的東西像doc.book ,而後將選擇的元素名稱的圖書,不屬於任何XML命名空間(相似的XPath ) 。若是您想選擇一個因素,是在一個XML命名空間,您必須註冊一個前綴和使用。例如,若是內容本書是在XML命名空間http://example.com/ebook ,那麼你必須定義前綴在模版上方
<#ftl ns_prefixes={"e":"http://example.com/ebook"}>
如今你能夠寫表達式 doc["e:book"]. (使用方括號語法要求,不然會混淆FreeMarker.)
而在PDM中使用了XML 命名空間因此應當先定義XML 命名空間(ns_prefixes)
<#ftl ns_prefixes={"a":"attribute","c":"collection","o":"object"}>
不少人將a: c: o: 改成a_ c_ o_ 這也是一種方法,可是如此以來你每次更改PDM設計的時候都要從新修改
2.屬性: 使用@符號
3.搜索PDM內指定Id的元素:
table["//o:Column[@Id='${pcl.@Ref}']"] 上面一段話的關鍵是 // 他的意思時 從table下查找Id爲${pcl.@Ref}的字段 好了上面就是最關鍵的地方,若是管住的人多,我會考慮在完成後繼續講解