Biztalk自定义管道组件:XmlSchemaException

时间:2014-10-17 11:42:19

标签: c# biztalk biztalk-2010

我有一个包含以下组件的自定义发送管道:

预组装:

  • NO component

汇编

  • XML汇编程序

编码

  • 自定义组件1
  • XML验证器
  • 自定义组件2

使用此配置,我总是在"自定义组件2"中获得XmlSchemaException。 "异常消息是"该元素不能包含空格。内容模型为空。"

Execute(IPipelineContext pContext, IBaseMessage pInMsg)
{
  ReadOnlySeekableStream stream = new ReadOnlySeekableStream(pInMsg.BodyPart.GetOriginalDataStream());
  XDocument doc;
  //Exception on next line:
  using(XmlReader reader = XmlReader.Create(stream))
  {
    reader.MoveToContent();
  }
}

这很奇怪,因为我删除了例如"自定义组件1"或者" XML验证器",它可以正常工作。当我拥有所有3个组件时,我才会得到例外。

任何想法我可能需要检查以使其适用于所有组件?

谢谢你,最诚挚的问候 迈克尔

1 个答案:

答案 0 :(得分:0)

很可能你的组件1添加了一个带有一些无效值的XmlElement节点,例如为复杂类型节点(记录节点)(<Order><price></price></Order> adding empty value after <Order> and then <price> comes)添加空值。 如果您在消息到达组件1之前使用映射来创建Xml,那么它也可能在那里发生。

  • 尝试在验证阶段删除自定义组件2和XmlValidator,并查看输出xml如何进入文件夹并尝试在记事本++中查看。
  • 使用Xml架构验证上述步骤的输出消息