我正在考虑使用Altova MapForce(或类似的东西)生成XSLT和/或Java或C#类来进行翻译。 今天,我们将数据从数据库中提取出来并手动构建我们发布到Web服务的XML字符串。

应该是db - >(内部)XML - > XSLT - >(外部)XML吗? 在广阔的世界里,你们有什么人做的?

===============>>#1 票数:3 已采纳

我将使用一个开箱即用的XML序列化类来进行内部XML生成,然后使用XSLT转换为外部XML。 您也可以生成一个模式,以强制执行转换代码(无论什么将驱动您的XSLT转换)继续获取它所期望的XML,以便在对象中断更改的情况下进行转换。

市场上有许多XSLT编辑器可以帮助您进行映射,但我更喜欢使用常规的XML编辑器。

===============>>#2 票数:1

是的,我认为你正在使用MapForce走正确的道路。 如果您不想编写代码来执行实际转换,MapForce也可以为您执行此操作。 这可能是更好的长期b / c维护更少的代码。

除非您确实需要B2B集成和编排,否则请避开更昂贵的选项(例如BizTalk)。

===============>>#3 票数:0

你用的是什么数据库? Oracle有一些很好的XML映射工具。 有一些Java绑定工具(一个是http://java.sun.com/developer/technicalArticles/WebServices/jaxb )。 但是,如果你有luxory考虑使用Ruby,它有很好的内置“to_xml”方法。

===============>>#4 票数:0

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

工具支持太糟糕了。 由此产生的解决方案将无法维护。

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

只需将结果集(假设您使用JDBC或者等效)转换为出站XML。

提示#3:假设所有使用基于模式的工具都不正确并相应地进行规划。

换句话说,就是伪造它。 如果你必须喷出一些突变SOAP(冗余,我知道)有效负载,只需模拟一个工作的SOAP消息,然后将其转换为模板。 速度不吸吮。

也就是说,最好/正确的答案是使用“XML Writer”风格的解决方案。 有几个。

最好的是我写的那个, LOX(XML的轻量级对象)

公共API使用Builder设计模式。 由于引擎盖下的一些魔力,创建格式错误的XML是不可能的。

请注意:如果XML是答案,那你就提出了错误的问题。 有时,我们被迫违背我们的意愿以某种方式使用它。 当发生这种情况时,使用最小化开发人员工作并提高代码可维护性的工具至关重要。

  ask by BryanB translate from so

未解决问题?本站智能推荐:

1回复

将记录从循环内部映射到不属于作用域的目标记录

抱歉,标题令人困惑,但我不确定如何最好地描述这一点。 基本上,我在源模式中有一条记录,该记录被循环以在目标模式中创建5条不同的记录。 这些记录中的每个记录都是基于源模式中字段的值创建的,因此可以将正确的信息映射到每个记录。 在这种情况下,它是有关买方,供应商等的地址信息。 目标模
4回复

XML映射 - XSLT还是代码?

最近我讨论过是否使用XSLT或代码将映射功能从一种XML格式写入另一种XML格式,或者甚至在转换为XML以外的其他内容时。 现在我的心态是,XSLT的目的正是针对这类事情,并且是最合适的选择。 但是,其他人建议在需要更复杂的东西时这样做是不合适的,例如当您需要从外部存储库查找数据时。
1回复

使用XSLT分组,过滤和映射特定元素

嗨,我尝试使用单个XSLT转换进行复杂的映射。 但是我尝试了for-each和apply-templates,甚至无法达到要求。 以下是条件。 1)通过串联名字,姓氏和部门编号来分组员工元素 2)在唯一员工元素中如果主要联系人为“ Y”,则将相应的记录手机号码映射到目标
1回复

删除XSLT映射生成的元素的名称空间前缀

我的XSLT映射生成的元素都带有ns0前缀。 这是一个例子: 我想删除这些前缀。 这是我的XSLT代码的开头: 我认为我的问题是没有声明默认的名称空间,因此映射器会自动在每个元素上添加前缀。 我在Visual Studio中使用视觉映射器,因此此代码是自动生成的。 输
1回复

XSL映射,生成哈希图

我需要制作xsl地图文件的帮助。 我有输入 其中包含一些项目的列表: 现在,我想将其转换为一个看起来像地图的结构:我们的“键”将是<a>和<b>元素(来自每个resultItem),并且值将是<c>元素的列表从每个具有相同<a>和<
1回复

字符串串联functoid不会将映射值返回到目标记录

我有3个索引函子,每个函子从源模式中的特定记录接收一个值。 如果第一个索引中有一个值,而第二个索引中没有一个值,则它应该映射第一个索引值。 如果第二个索引具有值,则应映射该值。 如果第三个索引functoid有一个,则应仅映射其值。 在我的测试文件中,第一个索引将返回一个值,因
1回复

Biztalk。 比较给定的xml和消息

老板告诉我将收到的xml格式的消息与包含数据库信息的xml给定文件进行比较。 我需要使用xslt映射在Biztalk中进行操作。 我可以做此任务的声明部分。 我什至发现xslt可以比较2个xml文件。 但是我不知道如何在biztalk中做到这一点。 我需要的是一个与Biztalk兼
1回复

使用XSLT将标签XML转换为XML

我是XSLT的新手,我正在尝试用其他方式转换XML。 源XML是这样的: 和预期的: 我正在尝试以下XSL: 问题是尝试像这样转换标签: 成: 非常感谢您的帮助!
1回复

XSLT转换:访问内联映射

我在使用内联结构并在xslt中访问它时遇到问题: 我写了一个将xml转换为xml的转换。 对于某些值,我必须查找键值映射,该键值映射是我在样式表中指定的,如下所示: 在我的转换中,我将像这样访问此映射: 这很好用,但是由于涉及到第三方软件-它不喜欢“ document(”
1回复

等效节点的条件BizTalk映射

我试图在LoopingNode上进行某种循环的BizTalk映射,如果Cond1为false,则创建Type1 。 如果Cond1为true,则创建Type2 。 它看起来像这样: 输入: 输出: 输出应该看起来像这样 我已尝试使用2个表循环,第1列作为门,但这