我已经从客户那里收到一个包含多个根节点的架构,以及一个包含单个根节点的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中的外观:
在BizTalk中,每个节点都是作为一个单独的架构创建的,具有不同的根节点,但是具有相同的目标名称空间,名称和程序集。 为什么BizTalk无法将文档路由到正确的架构?我需要对当前架构进行一些更改吗?所有发送的文档都有一个包含目标名称空间的单个根节点。
我尝试过重新部署地图和架构,重新启动主机实例以及删除/添加目标名称空间,但到目前为止没有任何效果。 BizTalk中有几个架构具有相同的根节点,但目标命名空间不同。我不确定是否会导致问题。