map的输出将字节顺序标记添加到xml

时间:2013-03-18 22:53:20

标签: biztalk biztalk-2010 biztalk-mapper

我有一张地图可以为我构建一条消息,然后将其传递给另一个地图(所有这些都在业务流程中。

检查第一张地图的消息输出我可以看到该消息包含EF BB BF字节顺序标记。

当第二个地图执行时,它会抛出异常“根级别的数据无效。第1行,第61位。”:

  

xlang / s引擎事件日志条目:未捕获的异常(请参阅'内部   “下面的异常”已暂停服务实例   'MyCompany.MyOrchestration(004464ca-1c34-e342-591d-5e8182a4be18)'。   
服务实例将在管理之前保持暂停状态   恢复或终止。
如果恢复,实例将从其继续   最后一个持久化状态,可能会重新抛出相同的意外异常。   
InstanceId:62d99333-8dc4-4ca4-9e5b-7fdf8583e081形状名称:conCDA   
ShapeId:ba722b56-c115-4abb-b40c-211824369266
异常抛出:   段1,进度15
内部异常:根级别的数据是   无效。第1行,第61位。            

异常类型:XmlException
来源:System.Xml
目标站点:Void Throw(System.Exception)以下是堆栈跟踪   识别发生异常的位置

     

在System.Xml.XmlTextReaderImpl.Throw(例外e)
在   System.Xml.XmlTextReaderImpl.Throw(String res,String arg)
at   System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace()
在   System.Xml.XmlTextReaderImpl.ParseDocumentContent()
在   System.Xml.XmlTextReaderImpl.Read()
在   System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc)
在   System.Xml.XmlLoader.Load(XmlDocument doc,XmlReader reader,Boolean   preserveWhitespace)
在System.Xml.XmlDocument.Load(XmlReader   读者)
在System.Xml.XmlDocument.Load(TextReader txtReader)
在   Microsoft.XLANGs.Core.Service.Transform.ShredXmlDocument(流   inStream,Object [] outParams,String mapName,XmlDeclaration xmlDecl)   
在Microsoft.XLANGs.Core.Service.ApplyInMemoryTransform(输入mapRef,   TransformMetaData trfMetaData,Object [] outParams,Stream [] inStreams)   
在Microsoft.XLANGs.Core.Service.ApplyTransform(类型mapRef,Object []   outParams,Object [] inParams)
在   MyCompany.MyOrchestration.segment1(StopConditions   stopOn)
在   Microsoft.XLANGs.Core.SegmentScheduler.RunASegment(Segment s,   StopConditions stopCond,Exception& EXP)

如何让第一张地图不添加字节顺序标记?

修改 第一个映射是一个映射,它在输入端有两条消息,映射到输出端的单声道消息。第一条消息使用按结构链接映射所有节点,第二条消息使用大量复制功能。即使在字节级别查看消息时,我也无法在字符61处看到任何有趣的字符。我可以看到BOM,这就是我认为这就是问题的原因。

1 个答案:

答案 0 :(得分:2)

我不完全确定这是一个BOM问题 - 你还没弄清楚你是如何创建你的地图的(即你有自定义功能,你使用XSLT等)你能否确认是什么字符(或周围)字符61 - 它是Reserved Xml Markup Characters之一吗?

或者,在使用VS Solution Explorer中的“测试地图”工具运行时,您是否检查过您调用的第一个地图是否产生有效输出?您是否将'Validate TestMap Input'和'Validate TestMap Output'选项设置为TRUE并且不会抛出任何错误?另外,您是否尝试保存第一个地图测试的输出并将其用作第二个地图测试的输入?