SOAP::...:WSDL11(3pm)
πΈ NAME πΈ
SOAP::WSDL::Generator::Iterator::WSDL11 β it's the WSDL 1.1 Iterator bestie, no cap π
(Yeah ok so the full manual name is SOAP::WSDL::Generator::Iterator::WSDL11(3pm) and it lives in the User Contributed Perl Documentation corner of the internet π«Ά)
β¨ SYNOPSIS β¨
okay so here's literally how you use her:
my $iter = SOAP::WSDL::Generator::Iterator::WSDL11->new({
definitions => $wsdl
});
$iter->init();
while (my $node = $iter->get_next()) {
# do something with node - possibly call _accept with a visitor on it...
}
That's it. That's the whole vibe. Build her with a definitions hash key pointing at your $wsdl, hit init(), then loop on get_next() until she runs out of nodes π
π DESCRIPTION π
She's an iterator, bestie. Her whole job is walking a WSDL 1.1 definition. Main character energy, one node at a time πΆβοΈβ¨
She does a depth-first search along this exact path:
service
port
binding
operation
input/output/fault of operation in portType
message
part
type/element in XML schema
And if you're sitting there like "girl why this order??" β because that is literally how you look up which XML Schema element is associated with an operation from a service/port. iykyk π§ β¨
π¦ Example π¦
The nodes come back in the order denoted in this example, so watch the numbered comments, they're the receipts π
<?xml version="1.0" encoding="UTF-8"?>
<!-- 1 -->
<definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="urn:HelloWorld"
targetNamespace="urn:HelloWorld"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>
<s:schema elementFormDefault="qualified" targetNamespace="urn:HelloWorld">
<!-- 9 -->
<s:element name="sayHello">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="name" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="givenName" type="s:string" nillable="1" />
</s:sequence>
<s:attribute name="testAttr" type="s:string" use="optional"></s:attribute>
</s:complexType>
</s:element>
<!-- 13 -->
<s:element name="sayHelloResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1"
name="sayHelloResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</types>
<!-- 7 -->
<message name="sayHelloSoapIn">
<!-- 8 -->
<part name="parameters" element="s0:sayHello" />
</message>
<!-- 11 -->
<message name="sayHelloSoapOut">
<!-- 12 -->
<part name="parameters" element="s0:sayHelloResponse" />
</message>
<portType name="Service1Soap">
<operation name="sayHello">
<!-- 6 -->
<input message="s0:sayHelloSoapIn" />
<!-- 10 -->
<output message="s0:sayHelloSoapOut" />
</operation>
</portType>
<!-- 4 -->
<binding name="Service1Soap" type="s0:Service1Soap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"
style="document" />
<!-- 5 -->
<operation name="sayHello">
<soap:operation soapAction="urn:HelloWorld#sayHello"
style="document" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
</binding>
<!-- 2 -->
<service name="Service1">
<!-- 3 -->
<port name="Service1Soap" binding="s0:Service1Soap">
<soap:address
location="http://localhost:81/soap-wsdl-test/helloworld.pl" />
</port>
</service>
</definitions>
ok real talk tho π«£ β do not get too attached to this order, it may change. The current order will probably stay, but the nodes that get skipped right now might get returned somewhere along the path later. So likeβ¦ flexible queen behaviour. Don't hardcode your whole life on it, fr fr.
π LICENSE AND COPYRIGHT π
Copyright 2004-2008 Martin Kutter.
This file is part of SOAP-WSDL. You may distribute/modify it under the same terms as perl itself π
π AUTHOR π
Martin Kutter <martin.kutter fen-net.de> π
π REPOSITORY INFORMATION π
$Rev: 239 $
$LastChangedBy: kutterma $
$Id: Client.pm 239 2007-09-11 09:45:42Z kutterma $
$HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Client.pm $
and that's the whole page bestie, we ate and left no crumbs π
β¨ this was SOAP::...:WSDL11(3pm) from perl v5.36.0, dated 2022-10-14 β go forth and iterate, mwah ππ¦π
π¦ where this page comes from
- ubuntu noble: libsoap-wsdl-perl 3.004-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu resolute: libsoap-wsdl-perl 3.004-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu stonking: libsoap-wsdl-perl 3.004-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms