BizTalk Gurus

Schema clash with web service

rated by 0 users
Not Answered This post has 0 verified answers | 3 Replies | 1 Follower

Top 200 Contributor
8 Posts
atomic_mass posted on Tue, Jan 26 2010 1:53 AM

Hello

I have a BizTalk 2006 R2 project that uses an industry standard XSD file (the Accord standard to be exact). The solution therefore contains the XSD file in one of the projects and it is referenced in various places. I am also calling a local web service that returns data using the same schema definition (actually it's a sub-set). The namespace and root name of the web service result matches exactly the namespace and root name of the main schema referenced by the project. As a result when I deploy the project and process a message I get a "Cannot locate document specification because multiple schemas matched the message type" error. I looked in the deployed schemas and as expected there are two schemas with the same namespace and root name - one from the main schema and one from the web service.

My first thought was that perhaps I could change the web service reference to reference the actual schema instead of it's own generated one, however I got lost looking at the XML files generated for the web service reference.

Any ideas?

All Replies

Top 500 Contributor
3 Posts
Randal replied on Tue, Jan 26 2010 5:45 AM

Hi,

If you're using the XmlReceive pipeline you can add a hint for schema resolution. Specify the fully qualified name for the schema in the 'DocumentSpecs' property of the XmlDisassembler properties.

 

HTH,

Randal van Splunteren
MVP & MCTS BizTalk Server

 

Top 200 Contributor
8 Posts

Thanks, that sounds reasonable, however that field is a text field and I have tried entering various values (The fully qualified class name, the assembly name and class name with public key etc.) without success. I get this error each time:

No Disassemble stage components can recognize the data. 

What should got into this box?

 

Top 200 Contributor
8 Posts

Never mind. I created a custom pipeline and that did the trick.

I just dragged an XMLDissassembler and specified the document schema to use. Interestingly this adds a DocumentSpecs value to the Pipeline setup in the send port configuration with a value that looks like:

Namespace.Class+RootNode

Which I tried for the noraml XML receive pipe, but that didn't work. Not sure what the difference is between my pipe and the BizTalk one.

 

Page 1 of 1 (4 items) | RSS