1SOAP::WSDL::Generator::UIsteerraCtoonrt:r:iWbSuDtLeS1dO1A(PP3e:)r:lWSDDoLc:u:mGeennteartaitoonr::Iterator::WSDL11(3)
2
3
4
6 SOAP::WSDL::Generator::Iterator::WSDL11 - WSDL 1.1 Iterator
7
9 my $iter = SOAP::WSDL::Generator::Iterator::WSDL11->new({
10 definitions => $wsdl
11 });
12 $iter->init();
13 while (my $node = $iter->get_next()) {
14 # do something with node - possibly call _accept with a visitor on it...
15 }
16
18 Iterator for walking a WSDL 1.1 definition.
19
20 The iterator performs a depth-first search along the following path:
21
22 service
23 port
24 binding
25 operation
26 input/output/fault of operation in portType
27 message
28 part
29 type/element in XML schema
30
31 If you wonder about this path: This is how to look up which XML Schema
32 element is associated with a operation from a service/port.
33
34 Example
35 The nodes are returned in the order denoted in the following example:
36
37 <?xml version="1.0" encoding="UTF-8"?>
38 <!-- 1 -->
39 <definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
40 xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
41 xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="urn:HelloWorld"
42 targetNamespace="urn:HelloWorld"
43 xmlns="http://schemas.xmlsoap.org/wsdl/">
44 <types>
45 <s:schema elementFormDefault="qualified" targetNamespace="urn:HelloWorld">
46 <!-- 9 -->
47 <s:element name="sayHello">
48 <s:complexType>
49 <s:sequence>
50 <s:element minOccurs="0" maxOccurs="1" name="name" type="s:string" />
51 <s:element minOccurs="0" maxOccurs="1" name="givenName" type="s:string" nillable="1" />
52 </s:sequence>
53 <s:attribute name="testAttr" type="s:string" use="optional"></s:attribute>
54 </s:complexType>
55 </s:element>
56
57 <!-- 13 -->
58 <s:element name="sayHelloResponse">
59 <s:complexType>
60 <s:sequence>
61 <s:element minOccurs="0" maxOccurs="1"
62 name="sayHelloResult" type="s:string" />
63 </s:sequence>
64 </s:complexType>
65 </s:element>
66 </s:schema>
67 </types>
68
69 <!-- 7 -->
70 <message name="sayHelloSoapIn">
71 <!-- 8 -->
72 <part name="parameters" element="s0:sayHello" />
73 </message>
74
75 <!-- 11 -->
76 <message name="sayHelloSoapOut">
77 <!-- 12 -->
78 <part name="parameters" element="s0:sayHelloResponse" />
79 </message>
80
81 <portType name="Service1Soap">
82 <operation name="sayHello">
83 <!-- 6 -->
84 <input message="s0:sayHelloSoapIn" />
85 <!-- 10 -->
86 <output message="s0:sayHelloSoapOut" />
87 </operation>
88 </portType>
89
90 <!-- 4 -->
91 <binding name="Service1Soap" type="s0:Service1Soap">
92 <soap:binding transport="http://schemas.xmlsoap.org/soap/http"
93 style="document" />
94
95 <!-- 5 -->
96 <operation name="sayHello">
97 <soap:operation soapAction="urn:HelloWorld#sayHello"
98 style="document" />
99
100 <input>
101 <soap:body use="literal" />
102 </input>
103
104 <output>
105 <soap:body use="literal" />
106 </output>
107 </operation>
108 </binding>
109
110 <!-- 2 -->
111 <service name="Service1">
112 <!-- 3 -->
113 <port name="Service1Soap" binding="s0:Service1Soap">
114 <soap:address
115 location="http://localhost:81/soap-wsdl-test/helloworld.pl" />
116 </port>
117 </service>
118 </definitions>
119
120 You should not rely too much on this order - it may change. Even though
121 the current order will probably remain, the nodes currently skipped
122 might be returned somewhere along the path.
123
125 Copyright 2004-2008 Martin Kutter.
126
127 This file is part of SOAP-WSDL. You may distribute/modify it under the
128 same terms as perl itself
129
131 Martin Kutter <martin.kutter fen-net.de>
132
134 $Rev: 239 $
135 $LastChangedBy: kutterma $
136 $Id: Client.pm 239 2007-09-11 09:45:42Z kutterma $
137 $HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Client.pm $
138
139
140
141perl v5.36.0 202S2O-A0P7:-:2W2SDL::Generator::Iterator::WSDL11(3)