BizTalk WCF-BasicHttp adapter issue with http://www.w3.org/2001/XMLSchema namespace

BizTalk WCF-BasicHttp adapter issue with http://www.w3.org/2001/XMLSchema namespace
 
I am using the WCF-BasicHttp adapter to consume outer Web-service and getting the error (actually if I have retry>0, I am getting Warning first. See below:
 
Event Type: Warning
Event Source: BizTalk Server 2006
Event Category: BizTalk Server 2006
Event ID: 5743
Date:  ...
Time:  ...
User:  ...
Computer: ...
Description:
The adapter failed to transmit message going to send port "..." with URL "...". It will be retransmitted after the retry interval specified for this Send Port. Details:"Unable to read the stream produced by the pipeline.
 Details: The value 'd:date' is invalid according to its schema type 'http://www.w3.org/2001/XMLSchema:QName' - 'd' is an undeclared namespace. ".
...
 
or (After retry the previous message the retry limit for this port)
 
Event Type: Error
Event Source: BizTalk Server 2006
Event Category: BizTalk Server 2006
Event ID: 5754
Date:  ...
Time:  ...
User:  ...
Computer: ...
Description:
A message sent to adapter "FILE" on send port "..." with URI "..." is suspended.
 Error details: Unable to read the stream produced by the pipeline.
 Details: The value 'd:date' is invalid according to its schema type 'http://www.w3.org/2001/XMLSchema:QName' - 'd' is an undeclared namespace. 
 MessageId:  ...
 InstanceID: ...
...
 
Very srange. When I tried the same Web-service with SoapUi, the result of the verification of the Response message is similar.
 
line 8: Invalid xsi:type qname: 'd:string' in element ...@http://...
 
What is wrong with response message?
 
Response Message:

<e:Envelope xmlns:d="http://www.w3.org/2001/XMLSchema" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:wn1="..." xmlns:wn2="..." xmlns:wn0="..." xmlns:e="http://schemas.xmlsoap.org/soap/envelope/">
   <e:Body>
      <wn2:ActionResponse>
         <wn2:MyResponse i:type="wn2:MyResponseType">
            <wn2:Detail i:nil="true"/>
            <wn2:MyMsg i:type="wn2:ArrayOfMyMsgType">
               <wn2:MyMsgType i:type="wn2:MyMsgType">
                  <wn2:MsgDescriptionText i:type="d:string">...</wn2:MsgDescriptionText>
                  <wn2:MsgIdentificationID i:type="d:string">...</wn2:MsgIdentificationID>
                  <wn2:MsgSeverityLevelCode i:type="wn2:MsgSeverityLevelType">...</wn2:MsgSeverityLevelCode>
                  <wn2:MsgSourceText i:nil="true"/>
               </wn2:MyMsgType>
            </wn2:MyMsg>
         </wn2:MyResponse>
      </wn2:ActionResponse>
   </e:Body>
</e:Envelope>
 
Investigation discovered that the issue is in the namespace prefix "d". If I change it to the "xsd", the error disappeared.
 
Questions:
How to work around this?
Is it the error in the response message?
Is it an error in the WCF-BasicHttp adapter?
 
How to work around this issue?
I changed the WCF-BasicHttp port for the old SOAP port and SOAP port works fine.
 
Is it the error in the response message?
I didn't find any limits for the "http://www.w3.org/2001/XMLSchema" namespace and for prefixes for it. The only limit is "don't use the prefixes, started with 'xml' letters". It is the common practice to use "xsd" prefix for the "http://www.w3.org/2001/XMLSchema" namespace. But it is not the rule.
Seems the WCF-BasicHttp adapter is "too smart".
 
Is it an error in the WCF-BasicHttp adapter?
possible...
Print | posted on Monday, June 29, 2009 9:31 PM

Feedback

No comments posted yet.
Post A Comment
Title:
Name:
Email:
Comment:
Verification: