Update on ASMX's BP conformance and testing with SOAPscope
For those of you who read my report on ASMX's BP conformance I have a slight update. Not that now by accident ASMX is compatible, but there are some problems with SOAPscope 3.0, IIS, and the way external schemas and WSDL are referenced in the base WSDL document. The following is a shrink-wrapped version of the results the Mindreef support and I encountered.
What was really strange when testing the Web service from this article were the schema and malformed XML errors I and also the SOAPscope support did not quite understand. As it turns out it was IIS and the way SOAPscope interacts with IIS that caused the problems. Try stopping IIS, starting it, then the next web request you make, click SOAPscope's Analyze tab (once you're already viewing the WSDL). This should show up the 'real' analysis of the Web service. Every subsequent call will result in those other strange results ...
Not all of the errors are being caused by this, just the ones of the bad XML variety are (though, that may prevent required schemas from loading properly).
Actually, IIS was refusing access to one of the imported files in the WSDL. Well, to make a long story short: you can achieve the correct results by disabling the 'Keep-Alive' setting in your IIS preferences. This will cause everything to function correctly, as IIS will no longer get stuck in a state of inappropriately maintaining useless connections. Obviously, this is currently nothing more than a workaround.
This leads us to the updated error report for the Web service with multiple bindings and schema and WSDL import. These are all errors, some of which are just consecutive errors, though:
Schema Validation
Schema Error: Duplicate key value [ID Value: http://KeithhPij.org/WSLibrary/MyStoreMB/Sales] declared for identity constraint of element "definitions".
Node: import
Schema Validation
Schema Error: Duplicate key value [ID Value: http://KeithhPij.org/WSLibrary/MyStoreMB/Support] declared for identity constraint of element "definitions".
Node: import
WS-I Basic Profile
Wsdl:import points to a schema document
Imported file "http://pcpauline/WSLibrary/MyStoreMB.asmx?schema=schema1" is a schema, which is not permitted through the use of import.
SOAPscope
Xsd:import schemaLocation unknown
SOAPscope cannot perform the xsd:import specified by Element xs:import([3,61] imported from "http://pcpauline/WSLibrary/MyStoreMB.asmx?schema=schema1") because the namespace is unrecognized and the "schemaLocation" attribute is missing or invalid.
WS-I Basic Profile
Wsdl:import points to a schema document
Imported file "http://pcpauline/WSLibrary/MyStoreMB.asmx?schema=schema2" is a schema, which is not permitted through the use of import.
WS-I Basic Profile
Wsdl:import points to a schema document
Imported file "http://pcpauline/WSLibrary/MyStoreMB.asmx?schema=schema3" is a schema, which is not permitted through the use of import.
SOAPScope
Xsd:import schemaLocation unknown
SOAPscope cannot perform the xsd:import specified by Element xs:import([3,61] imported from "http://pcpauline/WSLibrary/MyStoreMB.asmx?schema=schema3") because the namespace is unrecognized and the "schemaLocation" attribute is missing or invalid.
WS-I Basic Profile
Wsdl:import points to a schema document
Imported file "http://pcpauline/WSLibrary/MyStoreMB.asmx?schema=schema1" is a schema, which is not permitted through the use of import([3,140] imported from "http://pcpauline/WSLibrary/MyStoreMB.asmx?wsdl=wsdl1").
SOAPscope
Xsd:import schemaLocation unknown
SOAPscope cannot perform the xsd:import specified by Element xs:import([3,61] imported from "http://pcpauline/WSLibrary/MyStoreMB.asmx?schema=schema1") because the namespace is unrecognized and the "schemaLocation" attribute is missing or invalid.
WS-I Basic Profile
Wsdl:import points to a schema document
Imported file "http://pcpauline/WSLibrary/MyStoreMB.asmx?schema=schema2" is a schema, which is not permitted through the use of import([4,126] imported from "http://pcpauline/WSLibrary/MyStoreMB.asmx?wsdl=wsdl1").
WS-I Basic Profile
Wsdl:import points to a schema document
Imported file "http://pcpauline/WSLibrary/MyStoreMB.asmx?schema=schema3" is a schema, which is not permitted through the use of import([5,142] imported from "http://pcpauline/WSLibrary/MyStoreMB.asmx?wsdl=wsdl1").
SOAPscope
Xsd:import schemaLocation unknown
SOAPscope cannot perform the xsd:import specified by Element xs:import([3,61] imported from "http://pcpauline/WSLibrary/MyStoreMB.asmx?schema=schema3") because the namespace is unrecognized and the "schemaLocation" attribute is missing or invalid.
WS-I Basic Profile
Wsdl:import points to a schema document
Imported file "http://pcpauline/WSLibrary/MyStoreMB.asmx?schema=schema1" is a schema, which is not permitted through the use of import([3,140] imported from "http://pcpauline/WSLibrary/MyStoreMB.asmx?wsdl=wsdl2").
SOAPscope
Xsd:import schemaLocation unknown
SOAPscope cannot perform the xsd:import specified by Element xs:import([3,61] imported from "http://pcpauline/WSLibrary/MyStoreMB.asmx?schema=schema1") because the namespace is unrecognized and the "schemaLocation" attribute is missing or invalid.
WS-I Basic Profile
Wsdl:import points to a schema document
Imported file "http://pcpauline/WSLibrary/MyStoreMB.asmx?schema=schema2" is a schema, which is not permitted through the use of import([4,126] imported from "http://pcpauline/WSLibrary/MyStoreMB.asmx?wsdl=wsdl2").
WS-I Basic Profile
Wsdl:import points to a schema document
Imported file "http://pcpauline/WSLibrary/MyStoreMB.asmx?schema=schema3" is a schema, which is not permitted through the use of import([5,142] imported from "http://pcpauline/WSLibrary/MyStoreMB.asmx?wsdl=wsdl2").
SOAPscope
Xsd:import schemaLocation unknown
SOAPscope cannot perform the xsd:import specified by Element xs:import([3,61] imported from "http://pcpauline/WSLibrary/MyStoreMB.asmx?schema=schema3") because the namespace is unrecognized and the "schemaLocation" attribute is missing or invalid.
WS-I Basic Profile
Multiple wsdl:ports with same location
Multiple wsdl:ports Sales and Support have the same value for their "location" attributes.