在几个信封中连续消除消息

时间:2015-01-20 16:53:08

标签: biztalk biztalk-2010

我有一条传入消息(我无法控制的消息方案) 这是信息信封的信封。 像这样:

<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”无效。

我做错了什么?

2 个答案:

答案 0 :(得分:0)

你没有发布你的xsd,所以很难说。 你应该有2个模式,一个用于信封,一个用于身体。

这里有关于设置包络架构的演练,http://msdn.microsoft.com/en-us/library/aa546772.aspx

检查您是否遗漏了某些东西。

答案 1 :(得分:0)

您也可以在收到完整邮件后尝试Xpath。在第一次出现身体部分(外部信封)时执行Xpath会将所有内部信封分成多个消息,这些消息可以被其他下游进程订阅。