2013-03-18 75 views
0

我有地图它建立我一个消息,该消息然后被传递到另一地图(全部在一个编排。输出增加了字节顺序标记的XML

从第1映射我可以检查消息输出见的是,消息包含EF BB BF字节顺序标记

当第二地图执行时,它会引发异常“数据在根级别是无效的行1,位置61。”:

XLANG/s的发动机事件日志条目:未捕获异常(见“内 异常”下面)H悬浮服务 '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
目标站点:空隙掷(System.Exception的)下面是一个堆栈跟踪 标识了异常发生处

位置System.Xml.XmlTextReaderImpl.Throw(例外五)
在 System.Xml.XmlTextReaderImpl.Throw(字符串RES,字符串ARG)
在 System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace()
在 System.Xml.XmlTextReaderImpl.ParseDocumentContent ()
在 System.Xml.XmlText ReaderImpl.Read()
在 System.Xml.XmlLoader.LoadDocSequence(XmlDocument的parentDoc)
在 System.Xml.XmlLoader.Load(XmlDocument的文档,读取器的XmlReader,布尔 preserveWhitespace)
在System.Xml.XmlDocument.Load(的XmlReader 读取器)
在System.Xml.XmlDocument.Load(TextReader的txtReader)
在 Microsoft.XLANGs.Core.Service.Transform.ShredXmlDocument(流 inStream中,对象[] outParams,字符串MAPNAME,XmlDeclaration xmlDecl)
在Microsoft.XLANGs.Core.Service.ApplyInMemoryTransform(类型mapRef, TransformMetaData trfMetaData,对象[] outParams,流[] inStreams)
在Microsoft.XLANGs.Core.Service.ApplyTransform(类型mapRef,对象[] outParams,对象[] inParams)
在 MyCompany.MyOrchestration.segment1(StopConditions stopOn)
在 Microsoft.XLANGs.Core.SegmentScheduler .RunASegment(段S, StopConditions stopCond,异常& EXP)

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

编辑: 第一个图是具有在输入侧映射到一个singme消息出输出侧的两个消息的映射。第一条消息使用按结构链接映射所有节点,第二条消息使用大量复制功能。即使在字节级查看消息,我也无法在字符61处看到任何有趣的字符。我可以看到BOM,这就是为什么我认为这是问题。

回答

2

我不完全确定这是一个BOM问题 - 你还没有明确说明你是如何创建你的地图(即你有定制的功能,你是否使用XSLT等)你能确认什么是字符上(或左右)字符61 - 它是Reserved Xml Markup Characters之一吗?

或者,您是否检查过使用VS解决方案资源管理器中的“测试图”工具运行时,您调用的第一张地图会生成有效的输出?你有'验证TestMap输入'和'验证TestMap输出'选项设置为TRUE,它不会抛出任何错误?另外,你是否曾尝试保存第一次地图测试的输出并将其用作第二次地图测试的输入?

+0

第一张地图是在输入端有两条消息映射到输出端的单音消息的地图。第一条消息使用按结构链接映射所有节点,第二条消息使用大量复制功能。即使在字节级查看消息,我也无法在字符61处看到任何有趣的字符。我可以看到BOM,这就是为什么我认为这是问题。 – Jeremy 2013-03-19 14:11:41

+0

BOM字符*可能会导致问题并将字符推送到第61个字符,但我从来没有遇到过这种情况。如果您将BOM从输出中剥离并尝试使用测试图功能,会发生什么情况? – 2013-03-19 15:12:46

+0

你是对的!这不是BOM问题。问题在于我的模式中的名称空间更改导致我的映射中使用的自定义xslt输出非xml内容。该错误实际上是在地图输出(不是有效的xml)而不是输入消息上。 – Jeremy 2013-03-20 02:47:50