If anyone can explain this bug to me I'd be really grateful! :-)
I have defined a Web Service, one of the parameters to which is XML data confirming to a schema. The schema includes an abstract element, as described in this excellent article by Dare Obasanjo, as well as defining a valid subtype for the abstract element.
I construct my message to the web service in the normal way: From my BTS project, I successfully add a web reference to the web service. In my orchestration I define a message of the correct type to pass in to the web service. I drop a message transform onto my orchestration to populate that message, select the source & destination messages, and click "Launch BizTalk mapper" in the Transformation Configuration dialogue box.
This is where we hit the bug:
When the mapper opens, my element with the abstract type shows up, but cannot be expanded to show the expected "Equivalent" expansion along with the root type and the derived type underneath it.
After a bit of investigation, I found the problem. The map is initially created with the target schema defined as:
<
TrgTree RootNode_Name="AlertReport">
<Reference Location=".\web references\datawarehouse\reference.xsd" />
TrgTree>
Note the lowercase "reference.xsd". If you change this to match the actual filename of "Reference.xsd" (either by hand, or use the "Replace schema" menu option) then the abstract node correctly opens out into the expansion showing your alternative sub types and hence allowing you to map to them.
Strange!
Update: This should be fixed in SP1. Please see my blog entry about the fix.