logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

SOAP::WSDL::Manual::FAQ - Frequently Asked Questions (and answers)

Aren'T Rpc Variants Bad Anyway?

       No. They can be as well-defined and useful as the document/literal variant.

       The difference between rpc and document is that rpc SOAP messages have an additional container named
       after the remote procedure called.

       rpc/literal is RPC with named parameters, whereas rpc/encoded corresponds to positional parameters.

       rpc/encoded is prohibited by the WS-I Basic Profile. However, rpc/encoded is still popular, especially
       for scripting languages like perl, python or php.

       You should probably use SOAP::Lite for rpc/encoded web services.

       All the document/rpc literal/encoded discussion will cede with WSDL2.0: These variants are dropped in
       favour of an extensible operation style mechanism.

Development Status

CanIuseSOAP::WSDLinaproductionenvironment?
       Yes. SOAP::WSDL is used in production environments. You should - as always - apply common sense and take
       appropriate safety measures, especially if running SOAP::WSDL as a server.

   CanIthrowtheWSDLawayaftergenerating?
       Please don't. Future versions of SOAP::WSDL may require you to re-generate interfaces in order to use
       them.

Name

       SOAP::WSDL::Manual::FAQ - Frequently Asked Questions (and answers)

Performance And Memory Consumption

HowfastisSOAP::WSDL?
       As of this writing, SOAP::WSDL is the fastest SOAP Client toolkit for perl available on CPAN. There are
       no published server benchmarks yet.

       If you need extra speed you can try SOAP::WSDL_XS available from SOAP::WSDL's subversion repository at:

       https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL_XS/trunk

       Note however that SOAP::WSDL_XS is not very mature yet and only suitable for use in trusted environments
       - you definitely should not use it on a public internet SOAP server yet.

       Note further that SOAP::WSDL's inside-out objects come with a big performance penalty when
       freezing/thawing them with Storable.

   There'salotofperlmodulesgenerated.Don'ttheyeatupallmymemory?
       SOAP::WSDL usually uses a bit more memory than SOAP::Lite, but less than XML::Compile. Test if in
       question.

perl v5.36.0                                       2022-10-14                       SOAP::WSDL::Manual::FAQ(3pm)

Persistence

CanIuseStorabletofreeze/thawSOAP::WSDL'sobjects?
       You can freeze almost all of SOAP::WSDL's objects. The only exceptions are the objects used in parsing
       WSDL definitions itself - they cannot be frozen.

       Note that freezing/thawing inside-out objects comes with a performance penalty and is at around the speed
       of XML generation/parsing.

Soap/Wsdl Version And Message Styles

WhichSOAP/WSDLversionsdoesSOAP::WSDLsupport?
       SOAP1.1 and WSDL1.1. SOAP1.2 and WSDL2 are not supported yet.

   WhichSOAPmessageStylesaresupported?
       document/literal.

       The message / encoding styles rpc/encoded and rpc/literal are not supported (rpc/literal is hardly used).

       rpc/literal is not implemented yet.

       Unfortunately, SOAP::WSDL can't even parse many rpc/encoded WSDL definitions, and thus cannot inform you
       about unsupported message styles in some situations.

Xml Parsing / Generation

DoesSOAP::WSDLsupportnamespaces?
       Well, sort of. SOAP::WSDL can use WSDL definitions containing namespaces, and emits SOAP messages with
       namespace information.

       Its SOAP message parser however, is not namespace sensitive but uses the pre-shared information from the
       WSDL for looking up what each XML node means.

       SOAP::WSDL can parse SOAP messages including namespace information up to the point where equally named
       elements from different namespaces may appear at the same position.

       This is a long-standing feature request and will eventually be resolved.

   ValidationDoesSOAP::WSDLperformXMLSchemaValidation?

       No, SOAP::WSDL does not perform XML Schema Validation. It does, however, enforce the correct structure on
       both XML and perl data. Occurrence, ordering, value-spaces, and identity constraints are not checked.

       DoesSOAP::WSDLperformXMLValidation?

       No, SOAP::WSDL does not perform XML Validation (that is, validation against a DTD). WS-I prohibits the
       use of DTDs in WSDL definitions.

       Isn'tvalidationrequiredforXML?

       No. The XML Specification does not require validation from XML processors.  It states how validating and
       non-validating parsers must react on errors.

       Note: Validation in the context of (only) XML actually means DTD validation.

       Anddoesn'tXMLSchemarequirevalidation?

       The XML Schema specification requires conformant XML Schema processors to be able to validate XML Schema
       constraints.

       SOAP::WSDL is not a conformant XML Schema processor in this sense, as it does not validate all XML Schema
       constraints.

       AnddoesSOAPrequireXMLSchemaValidation?

       No. The SOAP1.1 note does not say anything about validation. The SOAP1.2.  specification explicitly
       states that XML Schema validation is not required for the SOAP envelope, and that applications may decide
       whether they need XML Schema Validation for the SOAP payload or not.

       The WSDL 1.1. specification does not mandate XML Schema validation. It does actually not even mandate the
       use of XML Schema for type definitions.

   CanSOAP::WSDLparseSOAPmessagefragments?
       No. SOAP::WSDL can parse neither well-formed nor not-well-formed SOAP message chunks.

See Also