none
Error:Cannot locate document specification because multiple schemas matched the message type. RRS feed

  • Question

  •  

    Hi All,

     

    I have hit this roadblock of sorts. Have two applications which have the same set of Schema (targetNamespace and RootNode combination) and is required to be the same inorder to support testing for the time being till the Applications are merged into one.

     

    On the one of the receive ports I get this error.

    There was a failure executing the receive pipeline: "Microsoft.BizTalk.DefaultPipelines.XMLReceive, Microsoft.BizTalk.DefaultPipelines, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Source: "XML disassembler" Receive Port:

    Reason: Cannot locate document specification because multiple schemas matched the message type

    Anybody having a work around.

     

    Regards

    Dan Bal

    Tuesday, November 18, 2008 8:09 PM

Answers

  • MessageType which is a combination of root node and namespace is one of the most typically used promoted properties for subscriptions, in fact almost every Orchestration uses MessageType as part of its subscription. hence it is important to keep the message type unique across different schemas...

     

    If your target applications are expecting same root node and namespace for both messages, I feel it is better to set the correct namespace in the encode stage of the send pipleine, using a custom component...

     

    Tuesday, November 25, 2008 9:48 AM

All replies

  • When I hit this error I usually try to deploy the shared schema to a separate BizTalk application like the default BizTalk application and then reference this BizTalk application in all applications that depend on the shared schema.

     

    I find it helpful to have more than one build configuration on my BizTalk solution and use one for deployment of the schema and the other for deployment of the other BizTalk artifacts. This makes it easier to avoid accidentally re-deploying the schemas.

     

    Thanks,

     

    Tuesday, November 18, 2008 8:15 PM
    Moderator
  •  

    But my problem is that I might have two different Schemas with the same rootname and targetName space but in a way they are two different set of Schema's expected to be deployed in two different Projects meant to deployed in two different applications.
    Tuesday, November 18, 2008 8:31 PM
  • MessageType which is a combination of root node and namespace is one of the most typically used promoted properties for subscriptions, in fact almost every Orchestration uses MessageType as part of its subscription. hence it is important to keep the message type unique across different schemas...

     

    If your target applications are expecting same root node and namespace for both messages, I feel it is better to set the correct namespace in the encode stage of the send pipleine, using a custom component...

     

    Tuesday, November 25, 2008 9:48 AM
  • Hi,

    Just another option, if you are using XML Receive.

    In the pipeline definition that you find at the receive location level, you may set the 'Allow Unrecognized Documents' to true.
    By using this option, you wouldn't have the conflict between two namespaces

    Regards,
    Stefan
    http://www.itsconsulting.fr
    http://www.elbeb.com/notice
    • Proposed as answer by BizTalk - Paris Wednesday, December 9, 2009 3:22 PM
    • Unproposed as answer by DPS Bali Tuesday, September 6, 2011 4:59 AM
    Wednesday, December 9, 2009 3:21 PM
  • it really helped me to resolve the issue...
    Thanks Schmiughtz
    vidyakumar.naarumanchi
    Thursday, January 21, 2010 2:53 PM
  • Hi,

    I am exactly trying to do what is mentioned above..I have a couple of questions. All i want to do is to  deploy 2 biztalk projects that use the same schemas.

    So, Basically, I created another Biztalk project and put all my schemas there, and deploy the new app...Now How do I add a reference to this application in the two biztalk projects that i want to use the schemas in?

    Alternatively, I can create a new Application in Biztalk and Import the schemas dll as a resource, but then when I deploy my 2 projects that contain references to the schemas dll they would also copy the resource.

    Please help..

    Thanks for your help
    Tuesday, January 26, 2010 10:44 PM
  • thanks. it worked for me.
    Wednesday, September 8, 2010 12:24 PM
  • Thank you Stefan
    . This resolved my issue. I suppose I sould have created 2 Receive Pipelines so that I could specifically designate which schema was to be used, but your solution was faster and solved the problem.

     

    Thank you

    Tuesday, January 4, 2011 10:11 PM
  • I was stuck on this as well.  Setting the XMLRecieve Pipeline to 'Allow Unrecognized Documents' immediately resolved my problem.  I'm using BizTalk 2010, so this is still very relavent. 

    I didn't realize that schemas in separate applications can still conflict, so i will also go back and see if I can determine the source of the conflicts, but this is a great, quick resolution.

    Thanks,

    Marvin


    mp
    Saturday, July 23, 2011 3:17 PM
  • In XML receive, In the pipeline definition that you find at the receive location level, you may set the 'Allow Unrecognized Documents' to true.
    By using this option, you wouldn't have the conflict between two namespaces. This is a resolution.

    But your input xml could be missing "<?xml version="1.0"?>".   By Adding this line, your receive pipeline recognize the input and processes through the pipeline without even changing the property value 'Allow Unrecognized Documents' to true.

     

    Thanks

    Bhaskar

    Friday, September 2, 2011 12:15 AM