使用多根架构发送文档时,在Microsoft Biztalk Intertop组件中引发错误

时间:2019-02-21 15:32:39

标签: xml schema biztalk

我已经从客户那里收到一个包含多个根节点的架构,以及一个包含单个根节点的XML文件示例。模式中的节点从顶部节点开始互相引用。我创建了一个在BizTalk中使用此架构的地图,并部署了该地图和架构。但是,通过BizTalk发送文档时,会引发以下错误:

  

StackTrace:位于   Microsoft.BizTalk.Component.Interop.DocumentSpec.get_TypeMetadata()
  在Microsoft.BizTalk.Component.Interop.DocumentSpec.get_DocType()
  在Microsoft.BizTalk.Component.MsgTypeSchema..ctor(IPipelineContext   PipelineContext,SchemaList envSpecName,SchemaList docSpecName)位于   Microsoft.BizTalk.Component.XmlDasmReader.CreateReader(IPipelineContext   pipelineContext,IBaseMessageContext,messageContext,   MarkableForwardOnlyEventingReadStream数据,编码编码,布尔   saveEnvelopes,布尔值allowUnrecognizedMessage,布尔值   validateDocument,SchemaList信封规格名称,SchemaList   documentSpecNames,IFFDocumentSpec docSpecType,S

我不确定如何阅读,但似乎该消息缺少某些所需的元数据。该消息也被暂停。

让您了解架构在Visual Studio中的外观:

enter image description here

在BizTalk中,每个节点都是作为一个单独的架构创建的,具有不同的根节点,但是具有相同的目标名称空间,名称和程序集。 为什么BizTalk无法将文档路由到正确的架构?我需要对当前架构进行一些更改吗?所有发送的文档都有一个包含目标名称空间的单个根节点。

我尝试过重新部署地图和架构,重新启动主机实例以及删除/添加目标名称空间,但到目前为止没有任何效果。 BizTalk中有几个架构具有相同的根节点,但目标命名空间不同。我不确定是否会导致问题。

1 个答案:

答案 0 :(得分:0)

单击模式,然后在“属性”窗口中查找名为“根引用”的项目并将其设置为根元素

Root Reference item property

如果它们具有不同的名称空间,那么没有哪个不会引起问题。