最近幫了某家線上音樂公司開發音樂自動化轉檔需求,其中之一功能需求來至四面八方唱片業所倒檔過來資料{xml, music files}。當然系統內部已經有自已統一介面 (interface)去接來至外面倒檔,但是如何處理煩雜的來源?
整理實作問題
- 每家XML似乎都是不同的格式,其中有幾家有使用DDEX( Digital Data Exchange)
- 每家XML內容龐大
- 如何花最小成本開發 (資源極有限)
- 日後好維護前提(Orz)
選擇方案
- XML Parser
- Java Architecture for XML Binding (JAXB)
不管用什麼方法都是累,要摘錄資訊真的太多!
想法 XML <-> Binding (Schema) <-> Java
初步實作細節
- XML Binding [code lang="java"] xjc工具可以把schema 自動產生對應java類別 xjc ddex.xsd [/code]
- Transform to java object [code lang="java"] JAXBContext jc = JAXBContext.newInstance("net.ddex.xml._2010.ern_main._32"); Unmarshaller u = jc.createUnmarshaller(); return (NewReleaseMessage) u.unmarshal(inputStream); [/code]
- to business domain [code lang="java"] 轉換內部系統business domain [/code]
xjc 有些物件產生並不如預期,只能硬改所產生Code
目前架構已經上線了,維護及開發都滿符合預期。
No comments:
Post a Comment