Biztalk 如何摆脱xmlns="&引用;从我的XML的根节点?

Biztalk 如何摆脱xmlns="&引用;从我的XML的根节点?,biztalk,Biztalk,我有一个带有XML汇编程序的管道的发送端口。它创建的所有我的文件如下所示: <?xml version="1.0" encoding="utf-8"?> <Root xmlns="http://LMS.OIv2.Sierra.SierraRouteUpdate"> <Orders OrderCode="" SCAC="" CarrierName=" /> <Orders OrderCode="" SCAC="" CarrierName="" />

我有一个带有XML汇编程序的管道的发送端口。它创建的所有我的文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<Root xmlns="http://LMS.OIv2.Sierra.SierraRouteUpdate">
 <Orders OrderCode="" SCAC="" CarrierName=" />
 <Orders OrderCode="" SCAC="" CarrierName="" />
</Root>


这种消息处理的用例是在与未实现完全兼容的XML解析器的遗留系统集成时。虽然“理论上”,所有系统都应该能够处理有效的XML,但回到现实世界中,我发现许多应用程序仍然以处理字符串或平面文件的方式处理XML


我已经更新了我的,以包含一个示例Visual Studio项目,显示BizTalk管道组件中代码的实现。我希望这能有所帮助。

不要(现在)将此作为答案添加,因为我可以找到一个很好的参考链接,但我很确定您不能。删除xmlns属性将使其成为无效的xml文档,无法根据架构进行验证。所有Microsoft的xml序列化程序都将写出一个xmlns。有人来证实这一点吗?这家伙说是他干的。我就是不明白他在说什么。你会把代码放在哪里让它工作?是的,这是一个解决办法。它将xml作为字符串(不再作为xml文档),并进行字符串替换以删除名称空间引用。从外观上看,它将进入您必须创建和构建的自定义组件。看来我错了。请参见+1发送管道组件相对于使用空名称空间架构的好处在于,管道组件可以从任何传出文档中剥离xmlns,并且不关心是否有多个文档以相同的xmlns#根结尾,因为该文档现在实际上已超出BizTalk的路由机制。对于大型文档,也可以使用基于XmlReader的解决方案,该解决方案的内存占用比XmlDocument小。您的组件具有TargetNamespace属性。到底去那里干什么?这对我来说似乎不管用。此组件的管道错误。我真不敢相信要获得我想要的格式的输出文件有多困难。我讨厌你。我可以在biztalk中完成最简单的操作所需时间的一小部分内编写自定义edi代码。您能否发布一些有关您收到的错误的详细信息?这可能比咆哮在BizTalk中“做最简单的事情”有多难更有建设性。这在很大程度上对我起到了作用。做了一些细微的改变。谢谢你的帮助,布雷特。我仍然会抱怨biztalk的思想有多么糟糕,因为它确实如此。我再也不会为使用它的公司工作了。