繁体   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