文档类型与任何给定的模式都不匹配 [英] Document Type does not match any of the given schemas

查看:78
本文介绍了文档类型与任何给定的模式都不匹配的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

好的,我的公司是biztalk的新手,我们遇到了一些问题。我在biztalk中收到批处理消息并捕获一些头信息并将其插入到数据库中并接收插入的主键。接下来,我构造原始消息的副本,并将节点的值设置为返回的主键。接下来我需要分发消息,因此我将复制的消息转换为新的消息类型以进行debatching。然后,我从业务流程中调用接收管道,将消息解析为绑定到信封模式的单个消息。我们在Atomic范围内有这个,并为管道声明了一个局部变量和类型为envelope schema的本地消息。我们添加了适当的引用,并在表达式形状中使用以下代码行来调用管道。

Ok, my company is new to biztalk and we are having some issues.  I receive a batch message in biztalk and capture some of the header information and insert it into a db and receive back the inserted primary key.  Next I construct a copy of the original message and set the value of a node to the returned primary key.  Next I need to debatch the message, so I transform the copied message into a new message type for debatching.  I then call a receive pipeline from within my orchestration to parse apart the message into individual messages tied to an envelope schema.  We have this within an Atomic scope and have declared a local variable and local message of type envelope schema for the pipeline.  We have added the appropriate reference and have the following line of code in an expression shape to call the pipeline.

RcvPipeOutput = Microsoft.XLANGs.Pipeline.XLANGPipelineManager.ExecuteReceivePipeline(typeof(CriticalChangePipelines.DebatchCriticalChangeAttributes) ),CriticalChangeAttributesContainerMsg);

RcvPipeOutput = Microsoft.XLANGs.Pipeline.XLANGPipelineManager.ExecuteReceivePipeline(typeof(CriticalChangePipelines.DebatchCriticalChangeAttributes),CriticalChangeAttributesContainerMsg);

管道确实有正确的文档和信封集合集。我的问题是管道组件给出的文档类型错误与任何给定的模式都不匹配。下面是传递到管道中的容器模式,下面是信封模式。我们是否偶然不了解如何对邮件进行反批处理并搞砸我们的主机和信封模式?

The pipeline does have the proper document and envelope collection set.  My problem is that the pipeline component is giving an error of Document Type does not match any of the given schemas.  Below is the container schema that gets passed into the pipeline and below that is the envelope schema.  Have we by chance not understood how to de-batch a message and screwed up our host and envelope schemas?

<?xml version =" 1.0"编码= QUOT; UTF-16" ?>
- < xs:schema xmlns:b =" http://schemas.microsoft.com/BizTalk/2003"的xmlns = QUOT; Graebel.Schemas.CriticalChange.CriticalChangeAttributeDocument"的targetNamespace = QUOT; Graebel.Schemas.CriticalChange.CriticalChangeAttributeDocument" xmlns:xs =" http://www.w3.org/2001/XMLSchema ">
- < xs:element name =" CriticalChangeAttributes">
- < xs:annotation>
- < xs:appinfo>
< b:recordInfo rootTypeName =" CriticalChangeAttributes" xmlns:b =" http://schemas.microsoft.com/BizTalk/2003 " />
< / xs:appinfo>
< / xs:annotation>
- < xs:complexType>
- < xs:sequence>
< xs:element name = "&的AttributeName QUOT;类型= QUOT; XS:串QUOT; />
< xs:element name =" AttributeOldValue"类型= QUOT; XS:串QUOT; />
< xs:element name =" AttributeNewValue"类型= QUOT; XS:串QUOT; />
< xs:element name =" CreatedBy"类型= QUOT; XS:串QUOT; />
< xs:element name =" CriticalChangeId"类型= QUOT; XS:INT" />
< / xs:sequence>
< / xs:complexType>
< / xs:element>
< / xs:schema>

  <?xml version="1.0" encoding="utf-16" ?>
- <xs:schema xmlns:b="http://schemas.microsoft.com/BizTalk/2003" xmlns="Graebel.Schemas.CriticalChange.CriticalChangeAttributeDocument" targetNamespace="Graebel.Schemas.CriticalChange.CriticalChangeAttributeDocument" xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <xs:element name="CriticalChangeAttributes">
- <xs:annotation>
- <xs:appinfo>
  <b:recordInfo rootTypeName="CriticalChangeAttributes" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" />
  </xs:appinfo>
  </xs:annotation>
- <xs:complexType>
- <xs:sequence>
  <xs:element name="AttributeName" type="xs:string" />
  <xs:element name="AttributeOldValue" type="xs:string" />
  <xs:element name="AttributeNewValue" type="xs:string" />
  <xs:element name="CreatedBy" type="xs:string" />
  <xs:element name="CriticalChangeId" type="xs:int" />
  </xs:sequence>
  </xs:complexType>
  </xs:element>
  </xs:schema>

这是信封模式:

<?xml version =" 1.0"编码= QUOT; UTF-16" ?>
- < xs:schema xmlns:ns0 =" Graebel.Schemas.CriticalChange.CriticalChangeAttributeDocument" xmlns:b =" http://schemas.microsoft.com/BizTalk/2003 " xmlns =" http://CriticalChangeSchemas.CriticalChangeAttributeDocumentEnvelope " xmlns:ns1 =" http://CriticalChangeSchemas.PropertySchema.PropertySchema " targetNamespace =" http://CriticalChangeSchemas.CriticalChangeAttributeDocumentEnvelope " xmlns:xs =" http://www.w3.org/2001/XMLSchema ">
< xs:import schemaLocation ="。\criticalchangeattributesdocument.xsd"命名空间= QUOT; Graebel.Schemas.CriticalChange.CriticalChangeAttributeDocument" />
- < xs:annotation>
- < xs:appinfo>
< b:schemaInfo is_envelope =" yes" xmlns:b =" http://schemas.microsoft.com/BizTalk/2003 " />
- < b:imports>
< b:namespace prefix =" ns1" uri =" http://CriticalChangeSchemas.PropertySchema.PropertySchema "位置= QUOT; .\propertyschema.xsd" />
< / b:imports>
- < b:references>
< b:reference targetNamespace =" Graebel.Schemas.CriticalChange.CriticalChangeAttributeDocument" />
< / b:references>
< / xs:appinfo>
< / xs:annotation>
- < xs:element name =" CriticalChangeIndividualAttribute">
- < xs:annotation>
- < xs:appinfo>
< b:recordInfo body_xpath =" / * [local-name()='CriticalChangeIndividualAttribute'和namespace-uri()='http ://CriticalChangeSchemas.CriticalChangeAttributeDocumentEnvelope']" />
- < b:properties>
< b:property name =" ns1:CriticalChangeId" xpath =" / * [local-name()='CriticalChangeIndividualAttribute'和namespace-uri()='http://CriticalChangeSchemas.CriticalChangeAttributeDocumentEnvelope'] / * [local-name()='CriticalChangeAttributes'和namespace-uri( )='Graebel.Schemas.CriticalChange.CriticalChangeAttributeDocument'] / * [local-name()='CriticalChangeId'和namespace-uri()='']" />
< / b:properties>
< / xs:appinfo>
< / xs:annotation>
- < xs:complexType>
- < xs:sequence>
< xs:element ref =" ns0:CriticalChangeAttributes" />
< / xs:sequence>
< / xs:complexType>
< / xs:element>
< / xs:schema>

<?xml version="1.0" encoding="utf-16" ?>
- <xs:schema xmlns:ns0="Graebel.Schemas.CriticalChange.CriticalChangeAttributeDocument" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" xmlns="http://CriticalChangeSchemas.CriticalChangeAttributeDocumentEnvelope" xmlns:ns1="http://CriticalChangeSchemas.PropertySchema.PropertySchema" targetNamespace="http://CriticalChangeSchemas.CriticalChangeAttributeDocumentEnvelope" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:import schemaLocation=".\criticalchangeattributesdocument.xsd" namespace="Graebel.Schemas.CriticalChange.CriticalChangeAttributeDocument" />
- <xs:annotation>
- <xs:appinfo>
  <b:schemaInfo is_envelope="yes" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" />
- <b:imports>
  <b:namespace prefix="ns1" uri="http://CriticalChangeSchemas.PropertySchema.PropertySchema" location=".\propertyschema.xsd" />
  </b:imports>
- <b:references>
  <b:reference targetNamespace="Graebel.Schemas.CriticalChange.CriticalChangeAttributeDocument" />
  </b:references>
  </xs:appinfo>
  </xs:annotation>
- <xs:element name="CriticalChangeIndividualAttribute">
- <xs:annotation>
- <xs:appinfo>
  <b:recordInfo body_xpath="/*[local-name()='CriticalChangeIndividualAttribute' and namespace-uri()='http://CriticalChangeSchemas.CriticalChangeAttributeDocumentEnvelope']" />
- <b:properties>
  <b:property name="ns1:CriticalChangeId" xpath="/*[local-name()='CriticalChangeIndividualAttribute' and namespace-uri()='http://CriticalChangeSchemas.CriticalChangeAttributeDocumentEnvelope']/*[local-name()='CriticalChangeAttributes' and namespace-uri()='Graebel.Schemas.CriticalChange.CriticalChangeAttributeDocument']/*[local-name()='CriticalChangeId' and namespace-uri()='']" />
  </b:properties>
  </xs:appinfo>
  </xs:annotation>
- <xs:complexType>
- <xs:sequence>
  <xs:element ref="ns0:CriticalChangeAttributes" />
  </xs:sequence>
  </xs:complexType>
  </xs:element>
  </xs:schema>

推荐答案

Pipeline预计信封类型为: HTTP://CriticalChangeSchemas.CriticalChangeAttributeDocumentEnvelope #CriticalChangeIndividualAttribute 。检查您是否通过了这种确切的类型。根据您的帖子,您传递的是文档类型。另请注意,您有信封和文档架构的不同命名空间。确保实例XML具有相同的名称空间声明。
Pipeline expects envelope type of: http://CriticalChangeSchemas.CriticalChangeAttributeDocumentEnvelope#CriticalChangeIndividualAttribute. Check if you're passing this exact type. Per your post you're passing the document type. Also, note that you have different namespaces for envelope and document schemas. Make sure that instance XML have the same namespace declarations.


这篇关于文档类型与任何给定的模式都不匹配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆