簡體   English   中英

將內部數據元素映射到外部供應商的XML模式

[英]Mapping internal data elements to external vendors' XML schema

我正在考慮使用Altova MapForce(或類似的東西)生成XSLT和/或Java或C#類來進行翻譯。 今天,我們將數據從數據庫中提取出來並手動構建我們發布到Web服務的XML字符串。

應該是db - >(內部)XML - > XSLT - >(外部)XML嗎? 在廣闊的世界里,你們有什么人做的?

我將使用一個開箱即用的XML序列化類來進行內部XML生成,然后使用XSLT轉換為外部XML。 您也可以生成一個模式,以強制執行轉換代碼(無論什么將驅動您的XSLT轉換)繼續獲取它所期望的XML,以便在對象中斷更改的情況下進行轉換。

市場上有許多XSLT編輯器可以幫助您進行映射,但我更喜歡使用常規的XML編輯器。

是的,我認為你正在使用MapForce走正確的道路。 如果您不想編寫代碼來執行實際轉換,MapForce也可以為您執行此操作。 這可能是更好的長期b / c維護更少的代碼。

除非您確實需要B2B集成和編排,否則請避開更昂貴的選項(例如BizTalk)。

你用的是什么數據庫? Oracle有一些很好的XML映射工具。 有一些Java綁定工具(一個是http://java.sun.com/developer/technicalArticles/WebServices/jaxb )。 但是,如果你有luxory考慮使用Ruby,它有很好的內置“to_xml”方法。

提示#1:避免全部使用XSLT。

工具支持太糟糕了。 由此產生的解決方案將無法維護。

提示#2:消除所有不必要的步驟。

只需將結果集(假設您使用JDBC或者等效)轉換為出站XML。

提示#3:假設所有使用基於模式的工具都不正確並相應地進行規划。

換句話說,就是偽造它。 如果你必須噴出一些突變SOAP(冗余,我知道)有效負載,只需模擬一個工作的SOAP消息,然后將其轉換為模板。 速度不吸吮。

也就是說,最好/正確的答案是使用“XML Writer”風格的解決方案。 有幾個。

最好的是我寫的那個, LOX(XML的輕量級對象)

公共API使用Builder設計模式。 由於引擎蓋下的一些魔力,創建格式錯誤的XML是不可能的。

請注意:如果XML是答案,那你就提出了錯誤的問題。 有時,我們被迫違背我們的意願以某種方式使用它。 當發生這種情況時,使用最小化開發人員工作並提高代碼可維護性的工具至關重要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM