Loading…
Loading…
Importing a WSDL is the entry point to the Publish flow. The platform parses the contract, builds a per-operation request/response model, and infers a draft…
Importing a WSDL is the entry point to the Publish flow. The platform parses the contract, builds a per-operation request/response model, and infers a draft service plus backend settings so the first publish needs little or no manual work.
This page covers the Publish-direction WSDL import. For the Consume (SOAP-facade) direction, the inbound WSDL is one of four inputs — see Consume direction.
Open Onboarding → Upload WSDL and provide the contract one of three ways:
| Method | How | Notes |
|---|---|---|
| By file | Upload a .wsdl file. | If it imports external XSDs, upload them in the same drop zone so transitive types resolve. |
| By URL | Paste the WSDL URL. | The platform fetches it server-side, follows xsd:import / xsd:include, and resolves transitive XSDs (with cycle protection). |
| Pasted XML | Paste the raw WSDL/XML. | Useful when the WSDL lives behind auth or you have only a snippet to evaluate. |
Air-gapped imports (XSDs at unreachable URLs) are out of scope at v1.0 — upload those XSDs as files instead.
On import the platform validates the XML, then parses wsdl:definitions →
portType/operation and the full wsdl:types schema tree, and persists a canonical
per-operation contract. The parser covers:
portType/operation, with input/output/fault messages.sequence / choice / all, complexType,
complexContent extension and restriction, simpleContent, group / attributeGroup
expansion, import / include / redefine, substitution groups, xsi:type variants,
list / union, wildcard any / anyType, attributes and mixed content, and restriction
facets (enumeration, pattern, numeric bounds, length).wsdl:fault detail contracts per operation.Each operation's contract is captured as an immutable snapshot with a checksum and parser version recorded, so regeneration is deterministic. For the complete type coverage and what is out of scope, see SOAP & XSD support.
The import returns a draft suggestion so you don't start from a blank form:
soap:address.serviceKey, serviceName, and environment.get / list / create / update / delete …), with the operation-key route used as a
fallback when an inference would collide. Lookup placeholders (e.g. ById) prefer a matching
request-schema field name (e.g. citizenId) over a generic placeholder.You can accept the suggested draft as-is or override the service key, name, and environment before generating. Confirm the inferred backend in Configure the backend.
For each operation the import generates:
so you can see the converted shape before publishing, and copy a sample straight into the SOAP application test with one click. Where real traffic exists, learned values from production are suggested in place of placeholder examples — see Learned examples.
When you import a WSDL that matches a previously imported one (by source name, then target namespace), the import returns a re-import comparison summary against the latest prior artifact:
This same machinery powers version-level WSDL drift watch after publish
(UP_TO_DATE / DRIFT_DETECTED / BREAKING_DRIFT / UNTRACKED). When drift is detected on a
live service, you can generate a replacement draft from the newer WSDL that preserves your
existing REST paths and runtime policy for operations that still exist — see
Publish & version a service.
Real-world WSDLs are not always clean. The importer includes namespace repair for broken WSDLs (missing or inconsistent namespace declarations) so a contract that would otherwise fail to parse can still be onboarded. Where repair is applied, it is surfaced in the import notes so you can review what changed.