WSDL import resolution covers:
wsdl:importxsd:importxsd:include
Resolution uses the parent document location for relative paths and is constrained by sandbox rules.
Set behavior through strictness:.
# Strict (default)
WSDL.parse('/app/wsdl/service.wsdl', strictness: Strictness.on)
# Best effort
WSDL.parse('/app/wsdl/service.wsdl', strictness: Strictness.off)Strictness.on:
- Recoverable schema import failures raise
WSDL::SchemaImportError.
Strictness.off:
- Recoverable schema import failures are logged and skipped.
- Parsing can proceed with partial schema metadata.
- Structural WSDL reference errors still raise (best effort does not downgrade binding/message integrity checks).
Fatal security/path errors still raise in both modes.
WSDL::PathRestrictionErrorWSDL::UnresolvableImportErrorWSDL::XMLSecurityError
Without explicit sandbox_paths, file-based WSDLs are sandboxed to the WSDL directory.
definition = WSDL.parse('/app/wsdl/system/service.wsdl')For sibling directories, configure both paths:
definition = WSDL.parse(
'/app/wsdl/system/service.wsdl',
sandbox_paths: ['/app/wsdl/system', '/app/wsdl/common']
)- Switch to
strictness: Strictness.offfor a quick best-effort parse. - Configure missing sandbox paths for local relative imports.
- Confirm import URLs are reachable.
- Fix malformed external XSD sources or vendor-provided schema bundles.
Strict request validation depends on operation-relevant schema completeness.
- In strict mode, incomplete operation metadata causes request validation errors.
- In non-strict mode, known parts are validated and unknown parts are tolerated.