Module: WSDL

Defined in:
lib/wsdl.rb,
lib/wsdl/ns.rb,
lib/wsdl/log.rb,
lib/wsdl/cache.rb,
lib/wsdl/qname.rb,
lib/wsdl/client.rb,
lib/wsdl/config.rb,
lib/wsdl/errors.rb,
lib/wsdl/limits.rb,
lib/wsdl/parser.rb,
lib/wsdl/schema.rb,
lib/wsdl/source.rb,
lib/wsdl/request.rb,
lib/wsdl/version.rb,
lib/wsdl/contract.rb,
lib/wsdl/response.rb,
lib/wsdl/security.rb,
lib/wsdl/operation.rb,
lib/wsdl/formatting.rb,
lib/wsdl/xml/parser.rb,
lib/wsdl/parser/port.rb,
lib/wsdl/schema/node.rb,
lib/wsdl/xml/element.rb,
lib/wsdl/http_adapter.rb,
lib/wsdl/http_response.rb,
lib/wsdl/parse_options.rb,
lib/wsdl/parser/result.rb,
lib/wsdl/request/names.rb,
lib/wsdl/xml/attribute.rb,
lib/wsdl/parser/binding.rb,
lib/wsdl/parser/service.rb,
lib/wsdl/response/fault.rb,
lib/wsdl/parser/document.rb,
lib/wsdl/parser/importer.rb,
lib/wsdl/parser/resolver.rb,
lib/wsdl/response/parser.rb,
lib/wsdl/security/config.rb,
lib/wsdl/security/policy.rb,
lib/wsdl/parser/port_type.rb,
lib/wsdl/request/envelope.rb,
lib/wsdl/contract/template.rb,
lib/wsdl/request/validator.rb,
lib/wsdl/schema/collection.rb,
lib/wsdl/schema/definition.rb,
lib/wsdl/security/digester.rb,
lib/wsdl/security/verifier.rb,
lib/wsdl/request/serializer.rb,
lib/wsdl/security/constants.rb,
lib/wsdl/security/reference.rb,
lib/wsdl/security/signature.rb,
lib/wsdl/security/timestamp.rb,
lib/wsdl/http_adapter/config.rb,
lib/wsdl/parser/input_output.rb,
lib/wsdl/parser/message_info.rb,
lib/wsdl/request/dsl_context.rb,
lib/wsdl/request/rpc_wrapper.rb,
lib/wsdl/xml/element_builder.rb,
lib/wsdl/parser/cached_result.rb,
lib/wsdl/parser/operation_info.rb,
lib/wsdl/response/fault_parser.rb,
lib/wsdl/response/type_coercer.rb,
lib/wsdl/security/id_generator.rb,
lib/wsdl/contract/part_contract.rb,
lib/wsdl/security/canonicalizer.rb,
lib/wsdl/security/verifier/base.rb,
lib/wsdl/parser/header_reference.rb,
lib/wsdl/security/request_policy.rb,
lib/wsdl/security/secure_compare.rb,
lib/wsdl/security/username_token.rb,
lib/wsdl/parser/binding_operation.rb,
lib/wsdl/parser/message_reference.rb,
lib/wsdl/security/request_context.rb,
lib/wsdl/security/response_policy.rb,
lib/wsdl/security/security_header.rb,
lib/wsdl/contract/message_contract.rb,
lib/wsdl/response/security_context.rb,
lib/wsdl/security/algorithm_mapper.rb,
lib/wsdl/parser/document_collection.rb,
lib/wsdl/parser/port_type_operation.rb,
lib/wsdl/security/signature_options.rb,
lib/wsdl/contract/operation_contract.rb,
lib/wsdl/http_adapter/redirect_guard.rb,
lib/wsdl/security/xml_builder_helper.rb,
lib/wsdl/security/request_materializer.rb,
lib/wsdl/security/credential_normalizer.rb,
lib/wsdl/security/response_verification.rb,
lib/wsdl/request/security_conflict_detector.rb,
lib/wsdl/security/verifier/reference_validator.rb,
lib/wsdl/security/verifier/signature_validator.rb,
lib/wsdl/security/verifier/structure_validator.rb,
lib/wsdl/security/verifier/timestamp_validator.rb,
lib/wsdl/security/verifier/certificate_resolver.rb,
lib/wsdl/security/verifier/certificate_validator.rb,
lib/wsdl/security/verifier/element_position_validator.rb

Overview

WSDL toolkit for Ruby.

This library provides tools for working with WSDL 1.1 documents, including parsing WSDL definitions, inspecting services and operations, and executing SOAP requests. WSDL 2.0 documents are detected and rejected with an UnsupportedWSDLVersionError.

The main entry point is Client, which loads a WSDL document and provides access to its services and operations.

Examples:

Basic usage

client = WSDL::Client.new('http://example.com/service?wsdl')
client.services
# => {"ExampleService" => {ports: {"ExamplePort" => {type: "...", location: "..."}}}}

Calling an operation

client = WSDL::Client.new('http://example.com/service?wsdl')
operation = client.operation('ExampleService', 'ExamplePort', 'GetData')
operation.prepare do
  tag('GetData') { tag('id', 123) }
end
response = operation.invoke

Defined Under Namespace

Modules: Contract, Formatting, Log, NS, Parser, Request, Schema, Security, XML Classes: Cache, CertificateValidationError, Client, Config, DuplicateDefinitionError, Error, FatalError, HTTPAdapter, HTTPResponse, InvalidHTTPAdapterError, Limits, Operation, ParseOptions, PathRestrictionError, QName, RequestDefinitionError, RequestDslError, RequestSecurityConflictError, RequestValidationError, ResourceLimitError, Response, SchemaImportError, SchemaImportParseError, SealedCollectionError, SecurityError, SignatureVerificationError, Source, TimestampValidationError, TooManyRedirectsError, UnresolvableImportError, UnresolvedReferenceError, UnsafeRedirectError, UnsupportedAlgorithmError, UnsupportedStyleError, UnsupportedWSDLVersionError, XMLSecurityError

Constant Summary collapse

VERSION =

The current version of the WSDL gem.

Returns:

  • (String)

    the semantic version string

'1.0.0'

Class Attribute Summary collapse

Instance Attribute Summary collapse

Class Attribute Details

.cacheCache?

The parser cache instance, or +nil+ if caching is disabled.

This is a global setting. Set it once at boot time, before creating any clients or spawning threads.

Returns:



39
40
41
# File 'lib/wsdl.rb', line 39

def cache
  @cache
end

.http_adapterClass

Returns the HTTP adapter class (defaults to HTTPAdapter).

Returns:

  • (Class)

    the HTTP adapter class (defaults to HTTPAdapter)



31
32
33
# File 'lib/wsdl.rb', line 31

def http_adapter
  @http_adapter
end

.limitsLimits

Returns the default limits instance.

Returns:

  • (Limits)

    the default limits instance



42
43
44
# File 'lib/wsdl.rb', line 42

def limits
  @limits
end

.loggerLogger, Log::NullLogger

Returns the logger for the WSDL library.

Defaults to a silent WSDL::Log::NullLogger that discards all output. Assign a custom logger via logger=.

Examples:

Enable warn-level output to stdout

require 'logger'
WSDL.logger = Logger.new($stdout, level: :warn)

Returns:



54
55
56
# File 'lib/wsdl.rb', line 54

def logger
  @logger
end

Instance Attribute Details

#limitsLimits (readonly)

Returns resource limits for DoS protection (always resolved, never nil).

Returns:

  • (Limits)

    resource limits for DoS protection (always resolved, never nil)



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/wsdl/parse_options.rb', line 15

ParseOptions = Data.define(:sandbox_paths, :limits, :strict_schema) {
  # Constructs a {ParseOptions} with sensible defaults.
  #
  # @param sandbox_paths [Array<String>, nil] sandbox paths (default: `nil`, auto-resolved by Source)
  # @param limits [Limits, nil] resource limits (default: {WSDL.limits})
  # @param strict_schema [Boolean] strict schema mode (default: `true`)
  # @return [ParseOptions]
  #
  def self.default(sandbox_paths: nil, limits: nil, strict_schema: true)
    new(
      sandbox_paths: sandbox_paths,
      limits: limits || WSDL.limits,
      strict_schema: strict_schema ? true : false
    )
  end
}

#sandbox_pathsArray<String>? (readonly)

Returns directories where file access is allowed.

Returns:

  • (Array<String>, nil)

    directories where file access is allowed



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/wsdl/parse_options.rb', line 15

ParseOptions = Data.define(:sandbox_paths, :limits, :strict_schema) {
  # Constructs a {ParseOptions} with sensible defaults.
  #
  # @param sandbox_paths [Array<String>, nil] sandbox paths (default: `nil`, auto-resolved by Source)
  # @param limits [Limits, nil] resource limits (default: {WSDL.limits})
  # @param strict_schema [Boolean] strict schema mode (default: `true`)
  # @return [ParseOptions]
  #
  def self.default(sandbox_paths: nil, limits: nil, strict_schema: true)
    new(
      sandbox_paths: sandbox_paths,
      limits: limits || WSDL.limits,
      strict_schema: strict_schema ? true : false
    )
  end
}

#strict_schemaBoolean (readonly)

Returns strict schema handling and request validation mode.

Returns:

  • (Boolean)

    strict schema handling and request validation mode



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/wsdl/parse_options.rb', line 15

ParseOptions = Data.define(:sandbox_paths, :limits, :strict_schema) {
  # Constructs a {ParseOptions} with sensible defaults.
  #
  # @param sandbox_paths [Array<String>, nil] sandbox paths (default: `nil`, auto-resolved by Source)
  # @param limits [Limits, nil] resource limits (default: {WSDL.limits})
  # @param strict_schema [Boolean] strict schema mode (default: `true`)
  # @return [ParseOptions]
  #
  def self.default(sandbox_paths: nil, limits: nil, strict_schema: true)
    new(
      sandbox_paths: sandbox_paths,
      limits: limits || WSDL.limits,
      strict_schema: strict_schema ? true : false
    )
  end
}