【发布时间】:2019-02-21 15:32:39
【问题描述】:
我从客户那里收到了一个包含多个根节点的架构,以及一个包含单个根节点的示例 XML 文件。架构中的节点相互引用,从顶部节点开始。我创建了一个使用此架构在 BizTalk 中使用的地图,并部署了地图和架构。但是,通过 BizTalk 发送文档时,会抛出以下错误:
堆栈跟踪:在 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 消息上下文, MarkableForwardOnlyEventingReadStream 数据,编码编码,布尔值 saveEnvelopes,布尔值 allowUnrecognizedMessage,布尔值 validateDocument,SchemaList 信封规范名称,SchemaList documentSpecNames, IFFDocumentSpec docSpecType, S
我不确定如何阅读它,但该消息似乎缺少一些所需的元数据。消息也被暂停。
让您了解架构在 Visual Studio 中的外观:
在 BizTalk 中,每个节点都创建为单独的架构,具有不同的根节点,但具有相同的目标命名空间、名称和程序集。 为什么 BizTalk 不能将文档路由到正确的架构?我是否需要对当前架构进行一些更改?发送的文档都有一个根节点,其中包含一个目标命名空间。
我已经尝试重新部署映射和架构、重新启动主机实例以及删除/添加目标命名空间,但到目前为止没有任何效果。 BizTalk 中有一些架构具有相同的根节点,但目标命名空间不同。我不确定这些是否会导致问题。
【问题讨论】: