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…