首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BizTalk: XSLT与映射工具

BizTalk: XSLT与映射工具
EN

Stack Overflow用户
提问于 2011-06-21 20:53:50
回答 5查看 4.2K关注 0票数 3

我们正在执行一个从遗留系统生成的XML文件到EDI 834/837文件的映射过程。我们有EDI2010,并且使用微软内置的BizTalk模式。

EDI文件相当复杂,我们得到的XML文件也很复杂,有很多部分是用螺栓固定的。我开始研究这个映射工具,但是似乎有很多重复可以通过XSLT运行XML文件来消除。

我找到了下面的链接,但我对只有一个来源不满意。http://blog.eliasen.dk/2009/07/08/CustomXSLTScriptingFunctoidOrBuiltinFunctoidsAQuestionAboutReligion.aspx

那么,与仅仅构建定制的XSLT相比,使用映射工具还有什么其他优势呢?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-06-22 05:46:08

我使用BizTalk映射的经验是,使用XSLT非常简单的事情在映射中可能非常复杂。

有关BizTalk地图的反例,请参阅“BizTalk Server2009中的专业地图”一书。这本书有一些使用BizTalk映射可以实现的非常复杂的事情的例子,但它的缺点是,实际上它们隐藏了脚本functoid中的所有复杂性。因此,地图根本不再是可视的(它们甚至在节点之间没有链接,至少提供了一些线索来推断地图正在做什么)。

XSLT可以比map更直观,因为您可以在XSLT中看到结果XML (请记住," text“并不意味着”不可视“--如果要在文本格式之间转换,那么可视化转换的一种自然方法就是查看文本)

BizTalk映射可用于非常简单的映射,您实际上是将一组属性从一个结构复制到另一个具有相同属性的结构。然而,一旦你必须将一个结构映射到另一个不同的结构,你很快就会得到一些很难写和很难读/理解的东西。

票数 4
EN

Stack Overflow用户

发布于 2011-06-22 04:09:29

不太喜欢,我也更喜欢XSLT。它更容易文档化(在源代码中使用注释),因此也更容易维护。但是,请记住,在BizTalk 2006 R2 you could not import external XSLTs中,它减少了可重用的选择。我不知道这一点在BizTalk的后续版本中是否发生了变化,你可以自己去找出来,也许还会让我们都知道……

票数 3
EN

Stack Overflow用户

发布于 2014-09-25 03:59:45

不是真正的答案,而是更多的经验分享;

在我的团队中,我们已经讨论过这个问题。关于映射的争论是,大多数同事都能理解它(因为每一次基本的BizTalk培训都会涉及到它),而XSLT则不然。

在我开始使用BizTalk之前,我个人已经使用XSLT很长时间了,我发现这个映射器工具非常..不直观。我建立的每一个连接都提出了更多的问题,而不是让我安心地知道结果是什么。当源节点为nil、不存在或重复时会发生什么?当目标节点被定义为minOccurs=2时,会发生什么?表映射functoid到底做了什么?当找不到值时,表值提取functoid会做什么?如何创建具有自动编号序列的节点,以及如何使用生成的编号关联其他创建的节点与这些节点相关?

使用XSLT将控制权交回给我,我完全知道会发生什么。

XSLT映射具有基于文本的附加值,它可以很好地与源代码控制中的分支和合并一起工作,并允许我们在源代码中添加注释。有没有尝试过合并来自两个不同分支的地图的更改?

最终结果是,我们现在更喜欢使用XSLT进行映射,但并不是每个开发人员都精通XSLT。这需要一些训练。

最后一个技巧:为您的地图投资单元测试工具。找到一个开源工具包,或者自己编写一些管道来测试您的地图。大多数BizTalk工件都是完全可测试的,即使它看起来不是这样的,但编排可能是例外(无论如何,编排都应该作为最后的手段使用)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6425527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档