一種業(yè)務(wù)對象和xml報(bào)文相互轉(zhuǎn)換的方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種業(yè)務(wù)對象和xml報(bào)文相互轉(zhuǎn)換的方法及系統(tǒng)。
【背景技術(shù)】
[0002] 由于系統(tǒng)間交互的XML報(bào)文節(jié)點(diǎn)層級的不同,導(dǎo)致接口間的差異性很大,傳統(tǒng)的 做法是生成不同的接口代碼,這樣就會帶來開發(fā)的工作量很大且不好維護(hù)的問題,很難達(dá) 到產(chǎn)品化的要求。
[0003] 采用excel文檔配置接口數(shù)據(jù),操作簡單方便;可以支持各種格式的接口報(bào)文。
[0004] 代碼采用java語言實(shí)現(xiàn),效率高,程序可移植性好。
[0005] 緩存采用Ehcache技術(shù),配置簡單,結(jié)構(gòu)清晰。
[0006] 業(yè)務(wù)對象(BO):英文全程為:Bus iness Object,是簡單的真實(shí)世界的軟件抽象。 是從業(yè)務(wù)域中提取的.如客戶、訂單、申告單等等。
[0007] 接口規(guī)范:是指按照既定標(biāo)準(zhǔn)、規(guī)范的要求制定的系統(tǒng)之間交互的接口文檔。
【發(fā)明內(nèi)容】
[0008] 本發(fā)明所要解決的技術(shù)問題是提供一種將報(bào)文節(jié)點(diǎn)以某種數(shù)據(jù)結(jié)構(gòu)保存到數(shù)據(jù) 表中,通過讀取表中數(shù)據(jù)進(jìn)行報(bào)文校驗(yàn)及解析,從而不用針對某個(gè)接口進(jìn)行開發(fā),達(dá)到開發(fā) 時(shí)間短、產(chǎn)品化的目的業(yè)務(wù)對象和xml報(bào)文相互轉(zhuǎn)換的方法及系統(tǒng)。
[0009] 本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:一種業(yè)務(wù)對象和xml報(bào)文相互轉(zhuǎn)換的 方法,具體包括以下步驟:
[0010] 步驟1 :創(chuàng)建報(bào)文節(jié)點(diǎn)映射表,并將報(bào)文節(jié)點(diǎn)信息和業(yè)務(wù)對象映射信息導(dǎo)入映射 表;
[0011] 步驟2 :接收到讀取請求,讀取報(bào)文節(jié)點(diǎn)信息和業(yè)務(wù)對象映射信息到緩存中;
[0012] 步驟3 :對報(bào)文節(jié)點(diǎn)信息和業(yè)務(wù)對象映射信息進(jìn)行校驗(yàn)和解析;
[0013] 步驟4 :根據(jù)緩存中的業(yè)務(wù)對象映射信息,獲取業(yè)務(wù)對象,將業(yè)務(wù)對象轉(zhuǎn)換獲得 XML報(bào)文數(shù)據(jù);或者將XML報(bào)文數(shù)據(jù)轉(zhuǎn)換為業(yè)務(wù)對象。
[0014] 本發(fā)明的有益效果是:本發(fā)明采用java程序編寫,代碼的執(zhí)行效率和可靠性都比 較高,程序的可移植性好;配置簡單靈活,支持不同格式的XML報(bào)文,可維護(hù)性好。
[0015] 在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn)。
[0016] 進(jìn)一步,所述步驟1中將報(bào)文節(jié)點(diǎn)信息和業(yè)務(wù)對象映射信息按照規(guī)范導(dǎo)入到映射 表中。
[0017] 進(jìn)一步,所述報(bào)文節(jié)點(diǎn)信息包括報(bào)文節(jié)點(diǎn)、報(bào)文數(shù)據(jù)和節(jié)點(diǎn)屬性,所述業(yè)務(wù)對象映 射信息包含業(yè)務(wù)對象屬性、屬性類型。
[0018] 進(jìn)一步,所述步驟3具體包括以下步驟:
[0019] 步驟3. 1 :從緩存中讀取接口的報(bào)文節(jié)點(diǎn)信息和業(yè)務(wù)對象映射信息,獲得其中的 節(jié)點(diǎn)屬性和業(yè)務(wù)對象屬性;
[0020] 步驟3. 2 :對節(jié)點(diǎn)屬性進(jìn)行格式校驗(yàn),對業(yè)務(wù)對象屬性進(jìn)行格式校驗(yàn)。
[0021] 進(jìn)一步,所述步驟4中根據(jù)緩存中的節(jié)點(diǎn)屬性和業(yè)務(wù)對象屬性,象利用java反射 機(jī)制獲取業(yè)務(wù)對象,將業(yè)務(wù)對象轉(zhuǎn)換為XML報(bào)文,或者將xml報(bào)文轉(zhuǎn)換為業(yè)務(wù)對象。
[0022] 本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:一種業(yè)務(wù)對象和xml報(bào)文相互轉(zhuǎn)換的 系統(tǒng),其特征在于,包括創(chuàng)建模塊、緩存模塊、校驗(yàn)解析模塊和轉(zhuǎn)換模塊;
[0023] 所述創(chuàng)建模塊用于創(chuàng)建報(bào)文節(jié)點(diǎn)映射表,并將報(bào)文節(jié)點(diǎn)信息和業(yè)務(wù)對象映射信息 導(dǎo)入映射表;
[0024] 所述緩存模塊用于接收到讀取請求,讀取報(bào)文節(jié)點(diǎn)信息和業(yè)務(wù)對象映射信息到緩 存中;
[0025] 所述校驗(yàn)解析模塊用于對報(bào)文節(jié)點(diǎn)信息進(jìn)行校驗(yàn)和解析,對業(yè)務(wù)對象映射信息進(jìn) 行校驗(yàn)和解析;
[0026] 所述轉(zhuǎn)換模塊用于將業(yè)務(wù)對象生成xml報(bào)文數(shù)據(jù),或者根據(jù)xml報(bào)文數(shù)據(jù)轉(zhuǎn)換業(yè) 務(wù)對象。
[0027] 本發(fā)明的有益效果是:本發(fā)明采用java程序編寫,代碼的執(zhí)行效率和可靠性都比 較高,程序的可移植性好;配置簡單靈活,支持不同格式的XML報(bào)文和不同結(jié)構(gòu)的業(yè)務(wù)對 象,可維護(hù)性好。
[0028] 在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn)。
[0029] 進(jìn)一步,所述創(chuàng)建模塊中將報(bào)文節(jié)點(diǎn)信息和業(yè)務(wù)對象映射信息按照規(guī)范導(dǎo)入到映 射表中。
[0030] 進(jìn)一步,所述報(bào)文節(jié)點(diǎn)信息包括報(bào)文節(jié)點(diǎn)、報(bào)文數(shù)據(jù)和節(jié)點(diǎn)屬性,所屬業(yè)務(wù)對象映 射信息包含業(yè)務(wù)對象屬性、屬性類型。
[0031] 進(jìn)一步,所述校驗(yàn)解析模塊用于從緩存中讀取接口的報(bào)文節(jié)點(diǎn)信息和業(yè)務(wù)對象信 息,獲得其中的節(jié)點(diǎn)屬性和業(yè)務(wù)對象屬性;對節(jié)點(diǎn)屬性進(jìn)行格式校驗(yàn),對業(yè)務(wù)對象屬性進(jìn)行 格式校驗(yàn)。
[0032] 進(jìn)一步,所述轉(zhuǎn)換模塊中根據(jù)緩存中的節(jié)點(diǎn)屬性和業(yè)務(wù)對象屬性,利用java反射 機(jī)制獲取業(yè)務(wù)對象,將業(yè)務(wù)對象轉(zhuǎn)換獲得XML報(bào)文數(shù)據(jù),或者將XML報(bào)文數(shù)據(jù)轉(zhuǎn)換為業(yè)務(wù)對 象。
[0033] xm 1報(bào)文是目前系統(tǒng)之間通用的交互方式,該算法利用java的反射機(jī)制可以靈 活的將業(yè)務(wù)對象與xml報(bào)文進(jìn)行靈活的轉(zhuǎn)換,以達(dá)到做為客戶端時(shí),根據(jù)數(shù)據(jù)庫中已配置 好的映射關(guān)系生成xml報(bào)文,做為服務(wù)端時(shí),根據(jù)數(shù)據(jù)庫中已配置好的映射關(guān)系解析xml報(bào) 文的目的,從而減少接口開發(fā)的工作量。
[0034] 算法步驟包括:
[0035] a)設(shè)計(jì)存儲映射關(guān)系的配置表;
[0036] b)利用反射機(jī)制進(jìn)行BO與XML報(bào)文之間的轉(zhuǎn)換;
[0037] c)根據(jù)配置進(jìn)行報(bào)文合法性校驗(yàn)及相應(yīng)的業(yè)務(wù)邏輯處理。
【附圖說明】
[0038] 圖1為本發(fā)明實(shí)施例所述的一種業(yè)務(wù)對象和xml報(bào)文相互轉(zhuǎn)換的方法流程圖;
[0039] 圖2為本發(fā)明實(shí)施例所述的一種業(yè)務(wù)對象和xml報(bào)文相互轉(zhuǎn)換的系統(tǒng)結(jié)構(gòu)框圖。
[0040] 附圖中,各標(biāo)號所代表的部件列表如下:
[0041] 1、創(chuàng)建模塊,2、緩存模塊,3、校驗(yàn)解析模塊,4、轉(zhuǎn)換模塊。
【具體實(shí)施方式】
[0042] 以下結(jié)合附圖對本發(fā)明的原理和特征進(jìn)行描述,所舉實(shí)例只用于解釋本發(fā)明,并 非用于限定本發(fā)明的范圍。
[0043] 如圖1所示,為本發(fā)明實(shí)施例所述的一種業(yè)務(wù)對象和xml報(bào)文相互轉(zhuǎn)換的方法,具 體包括以下步驟:
[0044] 步驟1 :創(chuàng)建報(bào)文節(jié)點(diǎn)映射表,并將報(bào)文節(jié)點(diǎn)信息和業(yè)務(wù)對象映射信息導(dǎo)入映射 表;
[0045] 步驟2 :接收到讀取請求,讀取報(bào)文節(jié)點(diǎn)信息和業(yè)務(wù)對象映射信息到緩存中;
[0046] 步驟3 :從緩存中讀取接口的報(bào)文節(jié)點(diǎn)信息和業(yè)務(wù)對象映射信息,獲得其中的節(jié) 點(diǎn)屬性和業(yè)務(wù)對象屬性;
[0047] 步驟4 :對節(jié)點(diǎn)屬性進(jìn)行格式校驗(yàn),對業(yè)務(wù)對象屬性進(jìn)行格式校驗(yàn);
[0048] 步驟5 :根據(jù)緩存中的業(yè)務(wù)對象映射信息,獲取業(yè)務(wù)對象,將業(yè)務(wù)對象轉(zhuǎn)換獲得 XML報(bào)文數(shù)據(jù);或者將XML報(bào)文數(shù)據(jù)轉(zhuǎn)換為業(yè)務(wù)對象。
[0049] 所述步驟1中將報(bào)文節(jié)點(diǎn)信息和業(yè)務(wù)對象映射信息按照規(guī)范導(dǎo)入到映射表中。
[0050] 所述報(bào)文節(jié)點(diǎn)信息包括報(bào)文節(jié)點(diǎn)、報(bào)文數(shù)據(jù)和節(jié)點(diǎn)屬性,所述業(yè)務(wù)對象映射信息 包含業(yè)務(wù)對象屬性、屬性類型。
[0051] 所述步驟5中根據(jù)緩存中的節(jié)點(diǎn)屬性和業(yè)務(wù)對象屬性,象利用java反射機(jī)制獲取 業(yè)務(wù)對象,將業(yè)務(wù)對象轉(zhuǎn)換為XML報(bào)文,或者將xm 1報(bào)文轉(zhuǎn)換為業(yè)務(wù)對象。
[0052] 如圖2所示,為本發(fā)明所述的一種業(yè)務(wù)對象和xml報(bào)文相互轉(zhuǎn)換的系統(tǒng),包括創(chuàng)建 模塊1、緩存模塊2、校驗(yàn)解析模塊3和轉(zhuǎn)換模塊4 ;
[0053] 所述創(chuàng)建模塊1用于創(chuàng)建報(bào)文節(jié)點(diǎn)映射表,并將報(bào)文節(jié)點(diǎn)信息和XML報(bào)文映射信 息導(dǎo)入映射表;
[0054] 所述緩存模塊2用于接收讀取請求,讀取報(bào)文節(jié)點(diǎn)信息和XML報(bào)文映射信息到緩 存中;
[0055] 所述校驗(yàn)解析模塊3用于對報(bào)文節(jié)點(diǎn)信息進(jìn)行校驗(yàn)和解析;
[0056] 所述轉(zhuǎn)換模塊4用于將業(yè)務(wù)對象根據(jù)映射表配置生成xml報(bào)文數(shù)據(jù),或者將xml 報(bào)文數(shù)據(jù)生成業(yè)務(wù)對象。
[0057] 所述創(chuàng)建模塊1將報(bào)文節(jié)點(diǎn)信息和業(yè)務(wù)對象映射信息按照規(guī)范導(dǎo)入到映射表中。
[0058] 所述報(bào)文節(jié)點(diǎn)信息包括報(bào)文節(jié)點(diǎn)、報(bào)文數(shù)據(jù)和節(jié)點(diǎn)屬性等,所屬業(yè)務(wù)對象映射信 息包含業(yè)務(wù)對象屬性、屬性類型。
[0059] 所述校驗(yàn)解析模塊3用于從緩存中讀取接口的報(bào)文節(jié)點(diǎn)信息和業(yè)務(wù)對象信息,獲 得其中的節(jié)點(diǎn)屬性和業(yè)務(wù)對象屬性;對節(jié)點(diǎn)屬性進(jìn)行格式校驗(yàn),對業(yè)務(wù)對象屬性進(jìn)行格式 校驗(yàn)。
[0060] 所述報(bào)文模塊4中根據(jù)緩存中的節(jié)點(diǎn)屬性,利用java反射機(jī)制獲取業(yè)務(wù)對象,將 業(yè)務(wù)對象轉(zhuǎn)換獲得XML報(bào)文數(shù)據(jù),或者將XML報(bào)文數(shù)據(jù)轉(zhuǎn)換為業(yè)務(wù)對象。
[0061] 利用復(fù)雜的算法,根據(jù)數(shù)據(jù)模型的配置生成報(bào)文,進(jìn)行格式校驗(yàn)及報(bào)文解析。
[0062] 所述算法的詳細(xì)步驟包括:
[0063] 將業(yè)務(wù)對象轉(zhuǎn)換為XML報(bào)文:
[0064] a)創(chuàng)建報(bào)文節(jié)點(diǎn)映射表;
[0065] b)導(dǎo)入報(bào)文節(jié)點(diǎn):按照接口規(guī)范配置excel文檔,導(dǎo)入數(shù)據(jù)表;
[0