我有一条传入消息(我无法控制的消息方案) 这是信息信封的信封。 像这样:
<ns0:Companies xmlns:ns0="http://PropertyDemotionExample.Companies">
<Header>
<Id>Id_0</Id>
</Header>
<Body>
<ns0:Company xmlns:ns0="http://PropertyDemotionExample.Employees">
<Header>
<CompanyName>CompanyName_0</CompanyName>
<City>City_0</City>
</Header>
<Body>
<ns1:EmployeeInfo xmlns:ns1="http://PropertyDemotionExample.EmployeeInfo">
<Name>Name_0</Name>
<Id>Id_0</Id>
<Email>Email_0</Email>
<Company/>
<City/>
<Received/>
</ns1:EmployeeInfo>
<ns1:EmployeeInfo xmlns:ns1="http://PropertyDemotionExample.EmployeeInfo">
<Name>Name_1</Name>
<Id>Id_1</Id>
<Email>Email_1</Email>
<Company/>
<City/>
<Received/>
</ns1:EmployeeInfo>
</Body>
</ns0:Company>
<ns0:Company xmlns:ns0="http://PropertyDemotionExample.Employees">
<Header>
<CompanyName>CompanyName_1</CompanyName>
<City>City_1</City>
</Header>
<Body>
<ns1:EmployeeInfo xmlns:ns1="http://PropertyDemotionExample.EmployeeInfo">
<Name>Name_0</Name>
<Id>Id_0</Id>
<Email>Email_0</Email>
<Company/>
<City/>
<Received/>
</ns1:EmployeeInfo>
<ns1:EmployeeInfo xmlns:ns1="http://PropertyDemotionExample.EmployeeInfo">
<Name>Name_1</Name>
<Id>Id_1</Id>
<Email>Email_1</Email>
<Company/>
<City/>
<Received/>
</ns1:EmployeeInfo>
</Body>
</ns0:Company>
</Body>
</ns0:Companies>
我想用接收管道来解决这个问题。但是当我将XPathBody属性设置为中间包络方案时,我收到错误:
执行接收管道失败: “PropertyDemotionExample.debatchpipeline,PropertyDemotionExample, Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 14f78a6f44f2e0ee“ 来源:“XML反汇编程序”接收端口:“ReceiveEmployeesBatch”URI: “C:\ BizTalkIn \ employees * .xml”原因:信封结构 文档规范类型 “http://PropertyDemotionExample.Employees#Company”无效。
我做错了什么?
答案 0 :(得分:0)
你没有发布你的xsd,所以很难说。 你应该有2个模式,一个用于信封,一个用于身体。
这里有关于设置包络架构的演练,http://msdn.microsoft.com/en-us/library/aa546772.aspx
检查您是否遗漏了某些东西。
答案 1 :(得分:0)
您也可以在收到完整邮件后尝试Xpath。在第一次出现身体部分(外部信封)时执行Xpath会将所有内部信封分成多个消息,这些消息可以被其他下游进程订阅。