I have the following input document (it's a simplified version of actual data):
<Envelope>
<Order>
<Header>
<ID>1</ID>
<Amount>100</Amount>
</Header>
<Items>
<Item>
<ID>1</ID>
<Amount>100</Amount>
</Item>
<Item>
<ID>2</ID>
<Amount>100</Amount>
</Item>
</Items> </Order>
<Order>
<Header>
<ID>3</ID>
<Amount>100</Amount>
</Header>
<Items>
<Item>
<ID>3</ID>
<Amount>100</Amount>
</Item>
<Item>
<ID>4</ID>
<Amount>100</Amount>
</Item>
</Items> </Order>
</Envelope>
I want to use the Xml Disassembler Pipeline component to transform the above message into the following 2 messages:
Message 1:
<Order>
<Header>
<ID>1</ID>
<Amount>100</Amount>
</Header>
<Items>
<Item>
<ID>1</ID>
<Amount>100</Amount>
</Item>
<Item>
<ID>2</ID>
<Amount>100</Amount>
</Item>
</Items> </Order>
Message 2:
<Order>
<Header>
<ID>3</ID>
<Amount>100</Amount>
</Header>
<Items>
<Item>
<ID>3</ID>
<Amount>100</Amount>
</Item>
<Item>
<ID>4</ID>
<Amount>100</Amount>
</Item>
</Items> </Order>
But what i actually get is:
Message 1:
<Order>
<Header>
<ID>1</ID>
<Amount>100</Amount>
</Header>
<Items>
<Item>
<ID>1</ID>
<Amount>100</Amount>
</Item>
</Items>
</Order>
Message 2:
<Header>
<ID>1</ID>
<Amount>100</Amount>
</Header>
<Items>
<Item>
<ID>2</ID>
<Amount>100</Amount>
</Item>
</Items>
</Order>
Message 3:
<Order>
<Header>
<ID>3</ID>
<Amount>100</Amount>
</Header>
<Items>
<Item>
<ID>3</ID>
<Amount>100</Amount>
</Item>
</Items>
</Order>
Message 4:
<Order>
<Header>
<ID>3</ID>
<Amount>100</Amount>
</Header>
<Items>
<Item>
<ID>4</ID>
<Amount>100</Amount>
</Item>
</Items>
</Order>
That is, my problem is that the Xml Disassembler does not preserve the Items collection.
Am i trying to use the Xml Disassembler for something it cant handle?
In the message schema i have set the "Max Occurs" property to "unbounded" for the <Item> record.
I'm new to BizTalk, but the above seems pretty basic to me and i cannot understand why this happens.