WSDL Validation
During the WSDL check in process, Sterling B2B Integrator automatically validates the WSDL file.
Note: If any validation criteria is not met by the WSDL, the system
generates an error message stating that the WSDL is invalid with an
explanation for the error.
The WSDL file is validated against the following rules:
- Well-formedness – The WSDL file must be a well-formed XML document. The system will not allow you to check in a text file or a non-XML file.
- WSDL Syntax – Sterling B2B Integrator loads the WSDL definition from the WSDL file and generates an error if basic WSDL syntax is not adhered to by the WSDL file.
- Services in WSDL – The WSDL document should contain at least one service defined in it and each service should have a name associated with it.
- Ports – There should be one or more ports defined in a particular service and each port should have a distinct name associated with it.
- SOAP Ports – There should be at least one port with a SOAP address location specified in the WSDL. Ports with other addresses like the HTTP address and the FTP address are ignored.
- End Point – Each SOAP address should have a location attribute that specifies the End Point where the Web service is running. The End Point location should be a valid URL and the protocol specified should be HTTP.
- Operations – The number of operations in the Binding section of the WSDL and the Port Type section of the WSDL should match and their names have to be the same.
- Input/Output Messages – Each operation should have an input and output operation associated with it. The Dynamic Service Creation supports only Request-response transmission and does not support Solicit-response or one-way transmission types.
- Parts – Each message in the WSDL can have zero or more parts associated with it. Each part inside a message element should have a distinct name associated with it.
- Part Element – In case of a document/literal binding style, each part should have a part element associated with it that refers to a root element of the schema defined in the WSDL.
- Binding Information – Each port should refer to a binding element
within the WSDL using the binding attribute. The binding element gives
information about the type of binding to use (RPC/Document) and gives
information about the nature of the input and output message elements. Sterling B2B Integrator dynamic
services supports only SOAP binding over the HTTP or HTTPS protocol:
- When you check in a WSDL that contains only non-SOAP bindings, the WSDL is considered invalid and is not allowed to be checked into the system.
- When a WSDL contains both SOAP as well as non-SOAP bindings, the non-SOAP bindings are ignored and the dynamic services are only created for the SOAP addresses.
- When a WSDL contains one SOAP address and two HTTP addresses (corresponding to HTTP Get and HTTP Post bindings), the dynamic services are created only for the port named SendSMSSoap and the other two ports are ignored.
- Duplicate operations:
- The maximum number of duplicate operations for a WSDL with an RPC style binding is two.
- The WSDL is rejected as invalid if there are three or more operations with the same name inside the same port type element.
- If there are exactly two operations with the same name, the WSDL is checked in successfully into the system. This is a known issue in Sterling B2B Integrator and the WSDL is internally parsed.
- Document/Literal WSDL duplicate operation names are never allowed.