.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.42) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "SOAP::WSDL::Manual::FAQ 3pm" .TH SOAP::WSDL::Manual::FAQ 3pm "2022-10-14" "perl v5.34.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SOAP::WSDL::Manual::FAQ \- Frequently Asked Questions (and answers) .SH "Development status" .IX Header "Development status" .SS "Can I use \s-1SOAP::WSDL\s0 in a production environment?" .IX Subsection "Can I use SOAP::WSDL in a production environment?" Yes. \s-1SOAP::WSDL\s0 is used in production environments. You should \- as always \- apply common sense and take appropriate safety measures, especially if running \s-1SOAP::WSDL\s0 as a server. .SS "Can I throw the \s-1WSDL\s0 away after generating?" .IX Subsection "Can I throw the WSDL away after generating?" Please don't. Future versions of \s-1SOAP::WSDL\s0 may require you to re-generate interfaces in order to use them. .SH "SOAP/WSDL Version and message styles" .IX Header "SOAP/WSDL Version and message styles" .SS "Which \s-1SOAP / WSDL\s0 versions does \s-1SOAP::WSDL\s0 support?" .IX Subsection "Which SOAP / WSDL versions does SOAP::WSDL support?" \&\s-1SOAP1.1\s0 and \s-1WSDL1.1. SOAP1.2\s0 and \s-1WSDL2\s0 are not supported yet. .SS "Which \s-1SOAP\s0 message Styles are supported?" .IX Subsection "Which SOAP message Styles are supported?" document/literal. .PP The message / encoding styles rpc/encoded and rpc/literal are not supported (rpc/literal is hardly used). .PP rpc/literal is not implemented yet. .PP Unfortunately, \s-1SOAP::WSDL\s0 can't even parse many rpc/encoded \s-1WSDL\s0 definitions, and thus cannot inform you about unsupported message styles in some situations. .SH "Aren't rpc variants bad anyway?" .IX Header "Aren't rpc variants bad anyway?" No. They can be as well-defined and useful as the document/literal variant. .PP The difference between rpc and document is that rpc \s-1SOAP\s0 messages have an additional container named after the remote procedure called. .PP rpc/literal is \s-1RPC\s0 with named parameters, whereas rpc/encoded corresponds to positional parameters. .PP 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. .PP You should probably use SOAP::Lite for rpc/encoded web services. .PP All the document/rpc literal/encoded discussion will cede with \s-1WSDL2.0:\s0 These variants are dropped in favour of an extensible operation style mechanism. .SH "XML Parsing / Generation" .IX Header "XML Parsing / Generation" .SS "Does \s-1SOAP::WSDL\s0 support namespaces?" .IX Subsection "Does SOAP::WSDL support namespaces?" Well, sort of. \s-1SOAP::WSDL\s0 can use \s-1WSDL\s0 definitions containing namespaces, and emits \s-1SOAP\s0 messages with namespace information. .PP Its \s-1SOAP\s0 message parser however, is not namespace sensitive but uses the pre-shared information from the \s-1WSDL\s0 for looking up what each \s-1XML\s0 node means. .PP \&\s-1SOAP::WSDL\s0 can parse \s-1SOAP\s0 messages including namespace information up to the point where equally named elements from different namespaces may appear at the same position. .PP This is a long-standing feature request and will eventually be resolved. .SS "Validation" .IX Subsection "Validation" \fIDoes \s-1SOAP::WSDL\s0 perform \s-1XML\s0 Schema Validation?\fR .IX Subsection "Does SOAP::WSDL perform XML Schema Validation?" .PP No, \s-1SOAP::WSDL\s0 does not perform \s-1XML\s0 Schema Validation. It does, however, enforce the correct structure on both \s-1XML\s0 and perl data. Occurrence, ordering, value-spaces, and identity constraints are not checked. .PP \fIDoes \s-1SOAP::WSDL\s0 perform \s-1XML\s0 Validation?\fR .IX Subsection "Does SOAP::WSDL perform XML Validation?" .PP No, \s-1SOAP::WSDL\s0 does not perform \s-1XML\s0 Validation (that is, validation against a \s-1DTD\s0). WS-I prohibits the use of DTDs in \s-1WSDL\s0 definitions. .PP \fIIsn't validation required for \s-1XML\s0?\fR .IX Subsection "Isn't validation required for XML?" .PP No. The \s-1XML\s0 Specification does not require validation from \s-1XML\s0 processors. It states how validating and non-validating parsers must react on errors. .PP Note: Validation in the context of (only) \s-1XML\s0 actually means \s-1DTD\s0 validation. .PP \fIAnd doesn't \s-1XML\s0 Schema require validation?\fR .IX Subsection "And doesn't XML Schema require validation?" .PP The \s-1XML\s0 Schema specification requires conformant \s-1XML\s0 Schema processors to be able to validate \s-1XML\s0 Schema constraints. .PP \&\s-1SOAP::WSDL\s0 is not a conformant \s-1XML\s0 Schema processor in this sense, as it does not validate all \s-1XML\s0 Schema constraints. .PP \fIAnd does \s-1SOAP\s0 require \s-1XML\s0 Schema Validation?\fR .IX Subsection "And does SOAP require XML Schema Validation?" .PP No. The \s-1SOAP1.1\s0 note does not say anything about validation. The \s-1SOAP1.2.\s0 specification explicitly states that \s-1XML\s0 Schema validation is not required for the \s-1SOAP\s0 envelope, and that applications may decide whether they need \&\s-1XML\s0 Schema Validation for the \s-1SOAP\s0 payload or not. .PP The \s-1WSDL 1.1.\s0 specification does not mandate \s-1XML\s0 Schema validation. It does actually not even mandate the use of \s-1XML\s0 Schema for type definitions. .SS "Can \s-1SOAP::WSDL\s0 parse \s-1SOAP\s0 message fragments?" .IX Subsection "Can SOAP::WSDL parse SOAP message fragments?" No. \s-1SOAP::WSDL\s0 can parse neither well-formed nor not-well-formed \&\s-1SOAP\s0 message chunks. .SH "Persistence" .IX Header "Persistence" .SS "Can I use Storable to freeze/thaw \s-1SOAP::WSDL\s0's objects?" .IX Subsection "Can I use Storable to freeze/thaw SOAP::WSDL's objects?" You can freeze almost all of \s-1SOAP::WSDL\s0's objects. The only exceptions are the objects used in parsing \s-1WSDL\s0 definitions itself \- they cannot be frozen. .PP Note that freezing/thawing inside-out objects comes with a performance penalty and is at around the speed of \s-1XML\s0 generation/parsing. .SH "Performance and memory consumption" .IX Header "Performance and memory consumption" .SS "How fast is \s-1SOAP::WSDL\s0?" .IX Subsection "How fast is SOAP::WSDL?" As of this writing, \s-1SOAP::WSDL\s0 is the fastest \s-1SOAP\s0 Client toolkit for perl available on \s-1CPAN.\s0 There are no published server benchmarks yet. .PP If you need extra speed you can try \s-1SOAP::WSDL_XS\s0 available from \s-1SOAP::WSDL\s0's subversion repository at: .PP https://soap\-wsdl.svn.sourceforge.net/svnroot/soap\-wsdl/SOAP\-WSDL_XS/trunk .PP Note however that \s-1SOAP::WSDL_XS\s0 is not very mature yet and only suitable for use in trusted environments \- you definitely should not use it on a public internet \s-1SOAP\s0 server yet. .PP Note further that \s-1SOAP::WSDL\s0's inside-out objects come with a big performance penalty when freezing/thawing them with Storable. .SS "There's a lot of perl modules generated. Don't they eat up all my memory?" .IX Subsection "There's a lot of perl modules generated. Don't they eat up all my memory?" \&\s-1SOAP::WSDL\s0 usually uses a bit more memory than SOAP::Lite, but less than XML::Compile. Test if in question.