Loading…
Loading…
Reference for supported SOAP versions, WSDL message styles, and XSD types for the SOAP-to-REST conversion engine, including fault handling and nullability.
This document provides a reference for the SOAP and WSDL/XSD features supported by the SOAP-to-REST conversion engine. It details the specific SOAP versions, message styles, XSD types, and fault models that the engine can parse and convert. This support applies automatically to the entire request and response message structure derived from an imported WSDL.
The conversion engine handles a wide range of mainstream SOAP and XSD constructs, enabling the transformation of complex SOAP services into RESTful APIs. The system detects the SOAP version at runtime, normalizes SOAP faults into configurable REST error formats, and preserves the semantic distinction between absent, null, and empty fields.
Each imported WSDL contract is captured as an immutable, versioned snapshot. This ensures that conversions are deterministic and that any changes to the backend WSDL are explicitly surfaced as a diff, preventing silent behavior changes.
The conversion engine's support for SOAP and XSD is fundamental to both the initial WSDL import process and the runtime request/response transformation.
The platform supports both major SOAP versions on a single runtime. The engine automatically detects the version from the inbound request's Content-Type header and XML body, eliminating the need for manual configuration.
text/xml content type, the mandatory SOAPAction header, and the faultcode/faultstring/detail fault structure.application/soap+xml content type and the two-level Code/Value and Subcode fault structure.The inbound SOAP listener for the Consume direction (where the platform exposes a SOAP facade for a REST service) accepts both SOAP 1.1 and 1.2 requests.
The following WSDL message styles are supported:
RPC/encoded (SOAP Section-5 encoding) is not supported in the standard product.
SOAP Faults are treated as first-class citizens and are not discarded. The engine intercepts <soap:Fault> elements from both SOAP 1.1 and 1.2 and normalizes them into a deterministic REST error object. API publishers can configure the structure of this error object using the error-shape conversion option. The available shapes are:
s2r-default: The platform's default error object.rfc7807: A standard-compliant RFC 7807 Problem Details object.flat: A simple, flat JSON error body.upstream-passthrough: The original error payload from the backend is passed through without modification.The HTTP status code returned to the API consumer is controlled by the upstream-failure-status conversion option. All wsdl:fault contracts declared in the WSDL are reflected in the generated OpenAPI v3 specification, allowing consumers to anticipate operation-specific error structures.
XML namespaces are preserved throughout the conversion process to maintain data integrity.
The engine preserves the distinction between a field that is absent, explicitly null, or present but empty. This behavior is configurable.
xsi:nil="true" is round-tripped to and from a JSON null value, provided the schema defines the element as nillable="true".<field/>) is handled according to the configured null / empty handling policy for its data type.nillable is not incorrectly enforced as mandatory on the request side.The conversion engine supports a comprehensive set of XSD schema constructs. The following table details the coverage for different categories of XSD features.
| Category | What's handled |
|---|---|
| Scalar types | string, int, long, decimal, boolean, date, dateTime, duration, base64Binary, hexBinary, and the rest of the built-in simple types |
| Complex types | complexType; complexContent extension and restriction; simpleContent (scalar, and value-plus-attribute — #text + @attr) |
| Composition | sequence; choice, including multi-field branches counted as one selected branch (choice groups); all |
| Reuse / modularity | group and attributeGroup reference expansion; import, include, redefine (recursive, with cycle protection); external XSD resolution |
| Cardinality | minOccurs / maxOccurs; arrays and repeated/wrapped elements with item-element naming |
| Nullability | nillable="true" with xsi:nil round-tripping |
| Attributes & mixed content | XML attributes (@attr); mixed text-plus-element content (#text) |
| Substitution groups | substitutionGroup variant resolution |
| Polymorphism | xsi:type discriminator variants (variantsByXsiType), with configurable handling |
| Constraints / facets | enumeration, pattern (UTF-8 / Hebrew-aware regex), numeric bounds (minInclusive etc.), string-length facets |
| Advanced simple types | list, union (with per-item / per-member constraint metadata) |
| Wildcards | any / anyType wildcard passthrough |
| Identity constraints | xsd:key, xsd:keyref, xsd:unique metadata extraction |
| Multipart / external schema | multipart message parts; external schema resolution via import / include / redefine |
The following features are intentionally out of scope for the standard v1.0 product and are handled as bespoke engagements.
document/literal and rpc/literal.UsernameToken (plaintext or digest)wsu:TimestampBinarySecurityTokenSignature over the envelope