Compare commits

..

36 Commits

Author SHA1 Message Date
Scott Walters
c35791c506 Merge pull request #2 from rejitnatarajan/pod-fix
missing asterisk fixes pod error
2015-02-11 22:46:16 -06:00
rejit natarajan
b803f83abd missing asterisk fixes pod error
small fix for pod error http://cpants.cpanauthors.org/dist/SOAP-WSDL/errors
2015-02-12 09:55:29 +05:30
Scott Walters
e95ff8baba Changelog entries for 3.002, too late for release. oops. and what exactly where the 3.001 changes? oh well. 2014-09-16 17:49:01 -04:00
Scott Walters
cad782dbf2 bump version to 3.002, and also change each file from having their own version number to referring to $SOAP::WSDL::VERSION since they aren't really individually versions anyway but just copies of that number. 2014-09-16 17:40:18 -04:00
Scott Walters
99c5eb4dd7 remove META.yml (I still don't know how that's supposed to work) and Makefile (which I do know wasn't supposed to be in git) 2014-09-16 03:30:20 -04:00
Scott Walters
a1e9927846 Declare dependency on Class::Load
Thanks ANDYK!
Ref Bug #98628 for SOAP-WSDL: Undeclared dependency on Class::Load
https://rt.cpan.org/Public/Bug/Display.html?id=98628
2014-09-16 03:30:20 -04:00
Scott Walters
ba407622f5 Merge pull request #1 from szabgab/patch-1
link to GitHub from META files
2014-08-30 03:52:40 -04:00
Gabor Szabo
5b9f3c640b link to GitHub from META files 2014-08-30 10:27:21 +03:00
Scott Walters
ed715a4c88 smoke testing looks pretty good, only failing on amd64-netbsd machines and one random Linux machine (I should look why but I really don't want to know), so, bump version to 3.001 and do a release.
FAIL    5.10.1  NetBSD  6.1.4   amd64-netbsd
FAIL    5.14.2  GNU/Linux       3.11.0-18-generic       x86_64-linux-thread-multi
FAIL    5.10.1  NetBSD  6.1.4   amd64-netbsd-thread-multi
2014-08-29 15:05:06 -04:00
Scott Walters
f5787f6057 version bump to 3.00.0_2 and Changes entry 2014-08-28 21:16:50 -04:00
Scott Walters
374793ef68 get rid of Build.PL; we use ExtUtils::MakeMaker now. 2014-08-28 21:08:13 -04:00
Scott Walters
7f6af60ed8 oops, global version search and replace ruined a comment. leave it ruined 2014-08-28 21:05:13 -04:00
Scott Walters
37740b870a fix a hash randomization bug that was causing random failures in t/SOAP/WSDL/05_simpleType-list.t 2014-08-28 21:03:39 -04:00
Scott Walters
31f5deacf5 2624a9 for #86142, adding the XML declaration to the output, broke another part of the system, so work around that.
I accidentally stopped doing "recursive" tests (tests in subdirs) at some point and missed some of this fun breakage.
2014-08-28 21:01:51 -04:00
Scott Walters
3197383a7d update POD; thought I commit this already... ? 2014-08-28 20:38:31 -04:00
Scott Walters
285ffa463c okay, dam@cpan.org's fix for using not using ->usa('UNIVERSAL') to test if something loaded apparently works in a situation where mine doesn't, that was causing tests to fail. 2014-08-28 18:26:41 -04:00
Scott Walters
35321ce5d0 run tests recursively under ExtUtils::MakeMaker. 2014-08-28 16:25:55 -04:00
Scott Walters
08b156a546 take Module::Build out of inc. it doesn't work. don't use it. 2014-08-28 16:25:29 -04:00
Scott Walters
605732b836 https://rt.cpan.org/Ticket/Display.html?id=82028 -- POD error results in broken link generated 2014-08-27 18:28:43 -04:00
Scott Walters
1994b36d8b switch from Module::Build to Make::Maker based Makefile.PL after Module::Build vomited on trying to 'make dist', and then when that was fixed, generated a completely busted dist without error. good riddance. 2014-08-27 17:53:50 -04:00
Scott Walters
f3ae85aed5 default directory for t/098_pod.t. not sure why it was doing @dir = (); if(ENV var) { @dir = 'some dir that exists' }. this would make a path analysis tool cry. 2014-08-27 17:52:41 -04:00
Scott Walters
7d81cfce87 bump version to 3.00.00_1; update POD a bit; include contact info for myself; declare this module deprecated and in maintenance mode; include Module::Build in the 'inc' dir to avoid a warning about it being deprecated from core inclusion; add mention of the UNIVERSAL->isa() bug created by Class::Std::Fast to the POD for BUGS AND LIMITATIONS. 2014-08-27 17:39:52 -04:00
Scott Walters
2624a9d5c0 applied patch from ticket #86142: Missing XML declaration in request
https://rt.cpan.org/Public/Bug/Display.html?id=86142
tests still pass, so, good enough, right?
2014-08-21 20:50:56 -04:00
Scott Walters
45982ff330 Huh. Between 5.12 and 5.16 somewhere, the behavior of ClassName->isa('UNIVERSAL') changed.
It used to be that that would return true if and only if that namespace existed.
Now it always returns true for any random non-existant made up name.
Changed this to do ->can() on a known existing method modules with this API have (serialize)
instead after floundering around for a bit.  exists ${"main::"}{$type.'::'} worked a little
bit but made it barf for some reason I didn't investigate.
This is the problem apparently behind the previous "haunted house level shit" fixes and
reversions.  This thing does automatically load these modules on the fly.  Would be nice
if the unit tests had some comments in them.
2014-08-21 08:37:49 -04:00
Scott Walters
cfd5892b18 Revert "was barfing with "Can't locate object method "new" via package "MyElement" (perhaps you forgot to load "MyElement"?) at lib/SOAP/WSDL/XSD/Typelib/Comple"
ref haunted house level shit going weird message in previous revert.

This reverts commit d221e87b29.
2014-08-21 07:48:30 -04:00
Scott Walters
6e95d01610 Revert "maybe I'm doing the wrong thing by adding use lines for test modules"
Wow.  Even with the "fix" in, it runs correctly once, and then starts vomiting
with a similar error again as before the fix.  it'll fail 20 times in a
row, then pass 20 times in a row.  there's some haunted house level
shit going wrong here.

This reverts commit b121a061d8.
2014-08-21 07:47:02 -04:00
Scott Walters
b121a061d8 maybe I'm doing the wrong thing by adding use lines for test modules
that unit tests use.  maybe there's some magic that's supposed to
automatically use those things, even though they're hidden in deeply
buried paths with no machine predictable naming scheme.  I can't
imagine that these unit tests passed before unless there is/was
some magic.  I hobbled this in to working with a use lib and a
use for the module, but after doing this second one of these,
I'm having serious doubts about whether I'm just spackling over
the problem.
2014-08-21 07:37:22 -04:00
Scott Walters
d2f324a7f2 oops, changing error messages breaks tests. make them match again. don't change the tests. change the error messages. that way the error message's awkwardness hints at the code's awkwardness. 2014-08-21 07:34:19 -04:00
Scott Walters
f2ce9511e0 I don't get it. There were two calls to get_port() right next to
each other, in the very same ? :, and one of them had a ->[0]
tacked on the end and the other one didn't.  Well guess what...
the one without was returning an arrayref, which caused these
failures in the unit tests:
Can't call method "get_binding" on unblessed reference at /home/scott/projects/SOAP-WSDL/blib/lib/SOAP/WSDL.pm line 186.
2014-08-21 07:27:58 -04:00
Scott Walters
50c8d5b31f oh, look, ComplexType.pm has cut and paste hash reversing code
from SimpleType.pm.  that means that we can cut and paste the
fix from SimpleType.pm into ComplexType.pm.  how many wrongs
make a right?  I forget.
2014-08-21 07:26:30 -04:00
Scott Walters
47dc61bd9e protip: reverse %hash with '#default' => 'urn:myNamespace', 'tns' =>
'urn:myNamespace' results in misery.  random hash ordering made a pile of
tests in t/003_wsdl_based_serializer.t randomly pass and fail in unison.
I smelled a smell.
2014-08-21 06:32:11 -04:00
Scott Walters
3670df3e69 "vectors" (totally not the same thing as a vector in other languages or on a Cray 1)
have been deprecated and removed.  pretend like they never existed.
2014-08-21 05:20:56 -04:00
Scott Walters
d221e87b29 was barfing with "Can't locate object method "new" via package "MyElement" (perhaps you forgot to load "MyElement"?) at lib/SOAP/WSDL/XSD/Typelib/Comple
xType.pm line 213.".  Okay, then, MyElement.pm exists in t/lib.  Let's try
using it.  And it worked.  Incidentally, the code at lib/SOAP/WSDL/XSD/Typelib/ComplexType.pm is heinous.
2014-08-21 05:17:05 -04:00
Scott Walters
001c36f8e8 fix two instances of the "Can't modify non-lvalue subroutine call at lib/SOAP/WSDL.pm line 167." error.
it looks like the author wrote

    return $a ? $b : $c = $d

Intending it to mean:

    return $a ? $b : ($c = $d);

... but perl parses it as:

    return ( $a ? $b : $c) = $d;

... and perl 5.16 is more astute about lvalue errors like that.
2014-08-20 08:37:33 -04:00
Martin Kutter
9023aa06a4 import SOAP-WSDL 2.00.10 from CPAN
git-cpan-module:   SOAP-WSDL
git-cpan-version:  2.00.10
git-cpan-authorid: MKUTTER
git-cpan-file:     authors/id/M/MK/MKUTTER/SOAP-WSDL-2.00.10.tar.gz
2009-12-12 19:49:03 -08:00
Martin Kutter
3b30e8d0e2 import SOAP-WSDL 2.00.09 from CPAN
git-cpan-module:   SOAP-WSDL
git-cpan-version:  2.00.09
git-cpan-authorid: MKUTTER
git-cpan-file:     authors/id/M/MK/MKUTTER/SOAP-WSDL-2.00.09.tar.gz
2009-12-12 19:49:02 -08:00
177 changed files with 1007 additions and 14542 deletions

View File

@@ -1,55 +0,0 @@
use Module::Build;
use version;
$build = Module::Build->new(
dist_author => 'Martin Kutter <martin.kutter@fen-net.de>',
create_makefile_pl => 'small',
dist_abstract => 'SOAP with WSDL support',
dist_name => 'SOAP-WSDL',
dist_version => '2.00.08',
module_name => 'SOAP::WSDL',
license => 'artistic',
requires => {
# 5.6.x is way too buggy and has no unicode support
# for us. SOAP-WSDL relies on unicode (WS-I demands it)
# and triggers several 5.6 bugs...
'perl' => q(5.8.0),
'Class::Std::Fast' => q(0.0.5),
'Data::Dumper' => 0,
'Date::Parse' => 0,
'Date::Format' => 0,
'File::Basename' => 0,
'File::Path' => 0,
'Getopt::Long' => 0,
'List::Util' => 0,
'LWP::UserAgent' => 0,
'Template' => q(2.18),
'Term::ReadKey' => 0,
'URI' => 0,
'XML::Parser::Expat' => 0,
},
build_requires => {
'Class::Std::Fast' => q(0.0.5),
'Cwd' => 0,
'Date::Parse' => 0,
'Date::Format' => 0,
'Getopt::Long' => 0,
'List::Util' => 0,
'LWP::UserAgent' => 0,
'Module::Build' => 0,
'File::Basename' => 0,
'File::Path' => 0,
'File::Spec' => 0,
'Storable' => 0,
'Test::More' => 0,
'Template' => q(2.18),
'XML::Parser::Expat' => 0,
},
recursive_test_files => 1,
meta_add => {
no_index => {
directory => 'lib/SOAP/WSDL/Generator/Template/XSD/',
},
}
);
$build->add_build_element('tt');
$build->create_build_script;

102
Changes
View File

@@ -1,4 +1,66 @@
Release notes for SOAP::WSDL 2.00.07
Release notes for SOAP::WSDL 3.002
o. change each file from having their own version number to referring to $SOAP::WSDL::VERSION since they aren't really individually versions anyway but just copies of that numbe
o. Declare dependency on Class::Load -- thanks ANDYK
o. link to GitHub from META files -- thanks szabgab
Release notes for SOAP::WSDL 3.00.00_1
-------
o. fix a hash randomization bug that was causing random failures in t/SOAP/WSDL/05_simpleType-list.t
o. 2624a9 for #86142, adding the XML declaration to the output, broke another part of the system, so work around that.
I accidentally stopped doing "recursive" tests (tests in subdirs) at some point and missed some of this fun breakage.
o. dam@cpan.org's fix for using not using ->usa('UNIVERSAL') to test if something loaded apparently works in a situation
where mine doesn't, that was causing tests to fail; use that version instead.
Release notes for SOAP::WSDL 3.00.00_1
-------
Scott Walters has assumed co-maint of this module and is ashamed to release 3.00.00_1.
Numerous fixes have been made to get tests to pass again on newer perls.
Please see the git log at http://github.com/scrottie/SOAP-WSDL for additional detail.
o. applied patch from ticket #86142: Missing XML declaration in request
https://rt.cpan.org/Public/Bug/Display.html?id=86142
tests still pass, so, good enough, right?
o. Huh. Between 5.12 and 5.16 somewhere, the behavior of ClassName->isa('UNIVERSAL') changed.
It used to be that that would return true if and only if that namespace existed.
Now it always returns true for any random non-existant made up name.
Changed this to do ->can() on a known existing method modules with this API have (serialize)
instead after floundering around for a bit. exists ${"main::"}{$type.'::'} worked a little
bit but made it barf for some reason I didn't investigate.
This is the problem apparently behind the previous "haunted house level shit" fixes and
reversions. This thing does automatically load these modules on the fly. Would be nice
if the unit tests had some comments in them.
o. There were two calls to get_port() right next to
each other, in the very same ? :, and one of them had a ->[0]
tacked on the end and the other one didn't. Well guess what...
the one without was returning an arrayref, which caused these
failures in the unit tests:
Can't call method "get_binding" on unblessed reference at /home/scott/projects/SOAP-WSDL/blib/lib/SOAP/WSDL.pm line 186.
o. protip: reverse %hash with '#default' => 'urn:myNamespace', 'tns' =>
'urn:myNamespace' results in misery. random hash ordering made a pile of
tests in t/003_wsdl_based_serializer.t randomly pass and fail in unison.
o. "vectors" (totally not the same thing as a vector in other languages or on a Cray 1)
have been deprecated and removed. pretend like they never existed.
o. fix two instances of the "Can't modify non-lvalue subroutine call at lib/SOAP/WSDL.pm line 167." error.
it looks like the author wrote
return $a ? $b : $c = $d
Intending it to mean:
return $a ? $b : ($c = $d);
... but perl parses it as:
return ( $a ? $b : $c) = $d;
... and perl 5.16 is more astute about lvalue errors like that.
Release notes for SOAP::WSDL 2.00.10
-------
I'm proud to present a new release of SOAP::WSDL.
@@ -37,6 +99,44 @@ Features:
The following changes have been made:
2.00.10 - May 15 2009
The following bugs have been fixed (the numbers in square brackets are the
tracker IDs from https://sourceforge.net/tracker/?group_id=111978&atid=660921):
The numbers with # are CPAN RT IDs (http://rt.cpan.org/).
* #44546: XML Schema types with names cuase errors when including anonymous types
SOAP::WSDL now handles element names with "." correctly
* #45037 ComplexTypes' elements in different namespaces not serialized
correctly
SOAP::WSDL now serializes elements in different namespaces correctly
* #43769 Fault11 serialization issue when passed Element for detail
The detail fault element is now automatically wrapped into an appropriate
detail object and serialized correctly.
Note that passing a list as details content is not supported yet.
* #43674 Fault not caught/propagated in SOAP::WSDL::Client::call
Deserializer faults in SOAP::WSDL::Client now propagate correctly to the
caller.
The following uncategorized improvements have been made:
* improved Java example: Commented test class
* improved documentation: Added Cookbook entry for HTTP Negotiate Authentication
(Kerberos).
2.00.09 - Feb 22 2009
The following bugs have been fixed (the numbers in square brackets are the
tracker IDs from https://sourceforge.net/tracker/?group_id=111978&atid=660921):
The numbers with # are CPAN RT IDs (http://rt.cpan.org/).
* [ 2631555 ] Template used without version
* [ 2631220 ] Faults generated with soap:Server actor
2.00.08 - Feb 22 2009
The following bugs have been fixed (the numbers in square brackets are the

View File

@@ -197,6 +197,7 @@ lib/SOAP/WSDL/SOAP/Body.pm
lib/SOAP/WSDL/SOAP/Header.pm
lib/SOAP/WSDL/SOAP/HeaderFault.pm
lib/SOAP/WSDL/SOAP/Operation.pm
lib/SOAP/WSDL/SOAP/Typelib/Fault.pm
lib/SOAP/WSDL/SOAP/Typelib/Fault11.pm
lib/SOAP/WSDL/Transport/HTTP.pm
lib/SOAP/WSDL/Transport/Loopback.pm
@@ -319,11 +320,6 @@ t/acceptance/wsdl/05_simpleType-restriction.wsdl
t/acceptance/wsdl/05_simpleType-union.wsdl
t/acceptance/wsdl/10_helloworld.asmx.xml
t/acceptance/wsdl/11_helloworld.wsdl
t/acceptance/wsdl/contributed/Axis.wsdl
t/acceptance/wsdl/contributed/ETest.wsdl
t/acceptance/wsdl/contributed/gasquery.wsdl
t/acceptance/wsdl/contributed/OITest.wsdl
t/acceptance/wsdl/contributed/tools.wsdl
t/acceptance/wsdl/elementAtomicComplexType.xml
t/acceptance/wsdl/email_account.wsdl
t/acceptance/wsdl/generator_test.wsdl
@@ -334,77 +330,6 @@ t/acceptance/wsdl/import.xsd
t/acceptance/wsdl/import_loop.xsd
t/acceptance/wsdl/message_gateway.wsdl
t/acceptance/wsdl/nested_complextype.wsdl
t/acceptance/wsdl/private/lib/MyElements/AddAttachment.pm
t/acceptance/wsdl/private/lib/MyElements/AddAttachmentResponse.pm
t/acceptance/wsdl/private/lib/MyElements/AddCalendarEntry.pm
t/acceptance/wsdl/private/lib/MyElements/AddCalendarEntryResponse.pm
t/acceptance/wsdl/private/lib/MyElements/AddTask.pm
t/acceptance/wsdl/private/lib/MyElements/AddTaskResponse.pm
t/acceptance/wsdl/private/lib/MyElements/AddUsersToGroup.pm
t/acceptance/wsdl/private/lib/MyElements/AddUsersToGroupResponse.pm
t/acceptance/wsdl/private/lib/MyElements/ClearGroup.pm
t/acceptance/wsdl/private/lib/MyElements/ClearGroupResponse.pm
t/acceptance/wsdl/private/lib/MyElements/CountItems.pm
t/acceptance/wsdl/private/lib/MyElements/CountItemsResponse.pm
t/acceptance/wsdl/private/lib/MyElements/CreateGroup.pm
t/acceptance/wsdl/private/lib/MyElements/CreateGroupResponse.pm
t/acceptance/wsdl/private/lib/MyElements/DeleteGroup.pm
t/acceptance/wsdl/private/lib/MyElements/DeleteGroupResponse.pm
t/acceptance/wsdl/private/lib/MyElements/DeleteItem.pm
t/acceptance/wsdl/private/lib/MyElements/DeleteItemResponse.pm
t/acceptance/wsdl/private/lib/MyElements/GetAttachment.pm
t/acceptance/wsdl/private/lib/MyElements/GetAttachmentResponse.pm
t/acceptance/wsdl/private/lib/MyElements/GetItems.pm
t/acceptance/wsdl/private/lib/MyElements/GetItemsResponse.pm
t/acceptance/wsdl/private/lib/MyElements/GetItemVersions.pm
t/acceptance/wsdl/private/lib/MyElements/GetItemVersionsResponse.pm
t/acceptance/wsdl/private/lib/MyElements/ModifyCalendarEntry.pm
t/acceptance/wsdl/private/lib/MyElements/ModifyCalendarEntryResponse.pm
t/acceptance/wsdl/private/lib/MyElements/ModifyTask.pm
t/acceptance/wsdl/private/lib/MyElements/ModifyTaskResponse.pm
t/acceptance/wsdl/private/lib/MyElements/RemoveUsersFromGroup.pm
t/acceptance/wsdl/private/lib/MyElements/RemoveUsersFromGroupResponse.pm
t/acceptance/wsdl/private/lib/MyInterfaces/RunningServiceClass/RunningServiceClassSoap.pm
t/acceptance/wsdl/private/lib/MyTypemaps/RunningServiceClass.pm
t/acceptance/wsdl/private/lib/MyTypes/ADDITIONAL_ROLES.pm
t/acceptance/wsdl/private/lib/MyTypes/AddressesSalutations.pm
t/acceptance/wsdl/private/lib/MyTypes/ArrayOfAttachment.pm
t/acceptance/wsdl/private/lib/MyTypes/ArrayOfField.pm
t/acceptance/wsdl/private/lib/MyTypes/ArrayOfNUser.pm
t/acceptance/wsdl/private/lib/MyTypes/ArrayOfPermission.pm
t/acceptance/wsdl/private/lib/MyTypes/ArrayOfSerializedItem.pm
t/acceptance/wsdl/private/lib/MyTypes/ArrayOfString.pm
t/acceptance/wsdl/private/lib/MyTypes/ArrayOfString1.pm
t/acceptance/wsdl/private/lib/MyTypes/ArrayOfString2.pm
t/acceptance/wsdl/private/lib/MyTypes/Attachment.pm
t/acceptance/wsdl/private/lib/MyTypes/AttachmentItemData.pm
t/acceptance/wsdl/private/lib/MyTypes/AttachmentOperation.pm
t/acceptance/wsdl/private/lib/MyTypes/CalendarCreateData.pm
t/acceptance/wsdl/private/lib/MyTypes/CalendarModifyData.pm
t/acceptance/wsdl/private/lib/MyTypes/CommonItemData.pm
t/acceptance/wsdl/private/lib/MyTypes/CountListOfSerializedItem.pm
t/acceptance/wsdl/private/lib/MyTypes/Field.pm
t/acceptance/wsdl/private/lib/MyTypes/Folders.pm
t/acceptance/wsdl/private/lib/MyTypes/GetFileResponse.pm
t/acceptance/wsdl/private/lib/MyTypes/HashMapOfStringNiceListOfAddressesSalutations.pm
t/acceptance/wsdl/private/lib/MyTypes/HstringAddressesSalutations.pm
t/acceptance/wsdl/private/lib/MyTypes/ItemCreateData.pm
t/acceptance/wsdl/private/lib/MyTypes/ItemData.pm
t/acceptance/wsdl/private/lib/MyTypes/ItemUpdateData.pm
t/acceptance/wsdl/private/lib/MyTypes/KVstringNiceListOfAddressesSalutations.pm
t/acceptance/wsdl/private/lib/MyTypes/NUser.pm
t/acceptance/wsdl/private/lib/MyTypes/Permission.pm
t/acceptance/wsdl/private/lib/MyTypes/PermissionItemData.pm
t/acceptance/wsdl/private/lib/MyTypes/Principal.pm
t/acceptance/wsdl/private/lib/MyTypes/PrincipalType.pm
t/acceptance/wsdl/private/lib/MyTypes/Recipients.pm
t/acceptance/wsdl/private/lib/MyTypes/SerializedItem.pm
t/acceptance/wsdl/private/lib/MyTypes/TaskModifyData.pm
t/acceptance/wsdl/private/lib/MyTypes/UserType.pm
t/acceptance/wsdl/private/PartnerManagement_header_def.wsdl
t/acceptance/wsdl/private/PartnerManagement_lenght_.wsdl
t/acceptance/wsdl/private/RunningService.wsdl
t/acceptance/wsdl/private/RunningService.WSDL
t/acceptance/wsdl/WSDLParser-import.wsdl
t/acceptance/wsdl/WSDLParser-imported.wsdl
t/acceptance/wsdl/WSDLParser.wsdl

373
META.yml
View File

@@ -1,373 +0,0 @@
---
name: SOAP-WSDL
version: 2.00.08
author:
- 'Martin Kutter <martin.kutter@fen-net.de>'
abstract: SOAP with WSDL support
license: artistic
resources:
license: ~
requires:
Class::Std::Fast: 0.0.5
Data::Dumper: 0
Date::Format: 0
Date::Parse: 0
File::Basename: 0
File::Path: 0
Getopt::Long: 0
LWP::UserAgent: 0
List::Util: 0
Template: 2.18
Term::ReadKey: 0
URI: 0
XML::Parser::Expat: 0
perl: 5.8.0
build_requires:
Class::Std::Fast: 0.0.5
Cwd: 0
Date::Format: 0
Date::Parse: 0
File::Basename: 0
File::Path: 0
File::Spec: 0
Getopt::Long: 0
LWP::UserAgent: 0
List::Util: 0
Module::Build: 0
Storable: 0
Template: 2.18
Test::More: 0
XML::Parser::Expat: 0
provides:
SOAP::WSDL:
file: lib/SOAP/WSDL.pm
version: 2.00.08
SOAP::WSDL::Base:
file: lib/SOAP/WSDL/Base.pm
version: 2.00.08
SOAP::WSDL::Binding:
file: lib/SOAP/WSDL/Binding.pm
version: 2.00.08
SOAP::WSDL::Client:
file: lib/SOAP/WSDL/Client.pm
version: 2.00.08
SOAP::WSDL::Client::Base:
file: lib/SOAP/WSDL/Client/Base.pm
version: 2.00.08
SOAP::WSDL::Definitions:
file: lib/SOAP/WSDL/Definitions.pm
version: 2.00.08
SOAP::WSDL::Deserializer::Hash:
file: lib/SOAP/WSDL/Deserializer/Hash.pm
version: 2.00.08
SOAP::WSDL::Deserializer::SOM:
file: lib/SOAP/WSDL/Deserializer/SOM.pm
version: 2.00.08
SOAP::WSDL::Deserializer::XSD:
file: lib/SOAP/WSDL/Deserializer/XSD.pm
version: 2.00.08
SOAP::WSDL::Expat::Base:
file: lib/SOAP/WSDL/Expat/Base.pm
version: 2.00.08
SOAP::WSDL::Expat::Message2Hash:
file: lib/SOAP/WSDL/Expat/Message2Hash.pm
version: 2.00.08
SOAP::WSDL::Expat::MessageParser:
file: lib/SOAP/WSDL/Expat/MessageParser.pm
version: 2.00.08
SOAP::WSDL::Expat::MessageStreamParser:
file: lib/SOAP/WSDL/Expat/MessageStreamParser.pm
version: 2.00.08
SOAP::WSDL::Expat::WSDLParser:
file: lib/SOAP/WSDL/Expat/WSDLParser.pm
version: 2.00.08
SOAP::WSDL::Factory::Deserializer:
file: lib/SOAP/WSDL/Factory/Deserializer.pm
version: 2.00.08
SOAP::WSDL::Factory::Generator:
file: lib/SOAP/WSDL/Factory/Generator.pm
version: 2.00.08
SOAP::WSDL::Factory::Serializer:
file: lib/SOAP/WSDL/Factory/Serializer.pm
version: 2.00.08
SOAP::WSDL::Factory::Transport:
file: lib/SOAP/WSDL/Factory/Transport.pm
version: 2.00.08
SOAP::WSDL::Generator::Iterator::WSDL11:
file: lib/SOAP/WSDL/Generator/Iterator/WSDL11.pm
version: 2.00.08
SOAP::WSDL::Generator::PrefixResolver:
file: lib/SOAP/WSDL/Generator/PrefixResolver.pm
version: 2.00.08
SOAP::WSDL::Generator::Template:
file: lib/SOAP/WSDL/Generator/Template.pm
version: 2.00.08
SOAP::WSDL::Generator::Template::Plugin::XSD:
file: lib/SOAP/WSDL/Generator/Template/Plugin/XSD.pm
version: 2.00.08
SOAP::WSDL::Generator::Template::XSD:
file: lib/SOAP/WSDL/Generator/Template/XSD.pm
version: 2.00.08
SOAP::WSDL::Generator::Visitor:
file: lib/SOAP/WSDL/Generator/Visitor.pm
version: 2.00.08
SOAP::WSDL::Generator::Visitor::Typemap:
file: lib/SOAP/WSDL/Generator/Visitor/Typemap.pm
version: 2.00.08
SOAP::WSDL::Message:
file: lib/SOAP/WSDL/Message.pm
version: 2.00.08
SOAP::WSDL::OpMessage:
file: lib/SOAP/WSDL/OpMessage.pm
version: 2.00.08
SOAP::WSDL::Operation:
file: lib/SOAP/WSDL/Operation.pm
version: 2.00.08
SOAP::WSDL::Part:
file: lib/SOAP/WSDL/Part.pm
version: 2.00.08
SOAP::WSDL::Port:
file: lib/SOAP/WSDL/Port.pm
version: 2.00.08
SOAP::WSDL::PortType:
file: lib/SOAP/WSDL/PortType.pm
version: 2.00.08
SOAP::WSDL::SOAP::Address:
file: lib/SOAP/WSDL/SOAP/Address.pm
version: 2.00.08
SOAP::WSDL::SOAP::Body:
file: lib/SOAP/WSDL/SOAP/Body.pm
version: 2.00.08
SOAP::WSDL::SOAP::Header:
file: lib/SOAP/WSDL/SOAP/Header.pm
version: 2.00.08
SOAP::WSDL::SOAP::HeaderFault:
file: lib/SOAP/WSDL/SOAP/HeaderFault.pm
version: 2.00.08
SOAP::WSDL::SOAP::Operation:
file: lib/SOAP/WSDL/SOAP/Operation.pm
version: 2.00.08
SOAP::WSDL::SOAP::Typelib::Fault11:
file: lib/SOAP/WSDL/SOAP/Typelib/Fault11.pm
version: 2.00.08
SOAP::WSDL::Serializer::XSD:
file: lib/SOAP/WSDL/Serializer/XSD.pm
version: 2.00.08
SOAP::WSDL::Server:
file: lib/SOAP/WSDL/Server.pm
version: 2.00.08
SOAP::WSDL::Server::CGI:
file: lib/SOAP/WSDL/Server/CGI.pm
version: 2.00.08
SOAP::WSDL::Server::Mod_Perl2:
file: lib/SOAP/WSDL/Server/Mod_Perl2.pm
version: 2.00.08
SOAP::WSDL::Server::Simple:
file: lib/SOAP/WSDL/Server/Simple.pm
version: 2.00.08
SOAP::WSDL::Service:
file: lib/SOAP/WSDL/Service.pm
version: 2.00.08
SOAP::WSDL::Transport::HTTP:
file: lib/SOAP/WSDL/Transport/HTTP.pm
version: 2.00.08
SOAP::WSDL::Transport::Loopback:
file: lib/SOAP/WSDL/Transport/Loopback.pm
version: 2.00.08
SOAP::WSDL::Transport::Test:
file: lib/SOAP/WSDL/Transport/Test.pm
version: 2.00.08
SOAP::WSDL::TypeLookup:
file: lib/SOAP/WSDL/TypeLookup.pm
version: 2.00.08
SOAP::WSDL::Types:
file: lib/SOAP/WSDL/Types.pm
version: 2.00.08
SOAP::WSDL::XSD::Annotation:
file: lib/SOAP/WSDL/XSD/Annotation.pm
version: 2.00.08
SOAP::WSDL::XSD::Attribute:
file: lib/SOAP/WSDL/XSD/Attribute.pm
version: 2.00.08
SOAP::WSDL::XSD::AttributeGroup:
file: lib/SOAP/WSDL/XSD/AttributeGroup.pm
version: 2.00.08
SOAP::WSDL::XSD::Builtin:
file: lib/SOAP/WSDL/XSD/Builtin.pm
version: 2.00.08
SOAP::WSDL::XSD::ComplexType:
file: lib/SOAP/WSDL/XSD/ComplexType.pm
version: 2.00.08
SOAP::WSDL::XSD::Element:
file: lib/SOAP/WSDL/XSD/Element.pm
version: 2.00.08
SOAP::WSDL::XSD::Enumeration:
file: lib/SOAP/WSDL/XSD/Enumeration.pm
version: 2.00.08
SOAP::WSDL::XSD::FractionDigits:
file: lib/SOAP/WSDL/XSD/FractionDigits.pm
version: 2.00.08
SOAP::WSDL::XSD::Group:
file: lib/SOAP/WSDL/XSD/Group.pm
version: 2.00.08
SOAP::WSDL::XSD::Length:
file: lib/SOAP/WSDL/XSD/Length.pm
version: 2.00.08
SOAP::WSDL::XSD::MaxExclusive:
file: lib/SOAP/WSDL/XSD/MaxExclusive.pm
version: 2.00.08
SOAP::WSDL::XSD::MaxInclusive:
file: lib/SOAP/WSDL/XSD/MaxInclusive.pm
version: 2.00.08
SOAP::WSDL::XSD::MaxLength:
file: lib/SOAP/WSDL/XSD/MaxLength.pm
version: 2.00.08
SOAP::WSDL::XSD::MinExclusive:
file: lib/SOAP/WSDL/XSD/MinExclusive.pm
version: 2.00.08
SOAP::WSDL::XSD::MinInclusive:
file: lib/SOAP/WSDL/XSD/MinInclusive.pm
version: 2.00.08
SOAP::WSDL::XSD::MinLength:
file: lib/SOAP/WSDL/XSD/MinLength.pm
version: 2.00.08
SOAP::WSDL::XSD::Pattern:
file: lib/SOAP/WSDL/XSD/Pattern.pm
version: 2.00.08
SOAP::WSDL::XSD::Schema:
file: lib/SOAP/WSDL/XSD/Schema.pm
version: 2.00.08
SOAP::WSDL::XSD::Schema::Builtin:
file: lib/SOAP/WSDL/XSD/Schema/Builtin.pm
version: 2.00.08
SOAP::WSDL::XSD::SimpleType:
file: lib/SOAP/WSDL/XSD/SimpleType.pm
version: 2.00.08
SOAP::WSDL::XSD::TotalDigits:
file: lib/SOAP/WSDL/XSD/TotalDigits.pm
version: 2.00.08
SOAP::WSDL::XSD::Typelib::Attribute:
file: lib/SOAP/WSDL/XSD/Typelib/Attribute.pm
version: 2.00.08
SOAP::WSDL::XSD::Typelib::AttributeSet:
file: lib/SOAP/WSDL/XSD/Typelib/AttributeSet.pm
version: 2.00.08
SOAP::WSDL::XSD::Typelib::Builtin:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin.pm
version: 2.00.08
SOAP::WSDL::XSD::Typelib::Builtin::ENTITY:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/ENTITY.pm
SOAP::WSDL::XSD::Typelib::Builtin::ID:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/ID.pm
SOAP::WSDL::XSD::Typelib::Builtin::IDREF:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/IDREF.pm
SOAP::WSDL::XSD::Typelib::Builtin::IDREFS:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/IDREFS.pm
SOAP::WSDL::XSD::Typelib::Builtin::NCName:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/NCName.pm
SOAP::WSDL::XSD::Typelib::Builtin::NMTOKEN:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/NMTOKEN.pm
SOAP::WSDL::XSD::Typelib::Builtin::NMTOKENS:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/NMTOKENS.pm
SOAP::WSDL::XSD::Typelib::Builtin::NOTATION:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/NOTATION.pm
SOAP::WSDL::XSD::Typelib::Builtin::Name:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/Name.pm
SOAP::WSDL::XSD::Typelib::Builtin::QName:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/QName.pm
SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/anySimpleType.pm
SOAP::WSDL::XSD::Typelib::Builtin::anyType:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/anyType.pm
version: 2.00.08
SOAP::WSDL::XSD::Typelib::Builtin::anyURI:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/anyURI.pm
SOAP::WSDL::XSD::Typelib::Builtin::base64Binary:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/base64Binary.pm
SOAP::WSDL::XSD::Typelib::Builtin::boolean:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/boolean.pm
version: 2.00.08
SOAP::WSDL::XSD::Typelib::Builtin::byte:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/byte.pm
SOAP::WSDL::XSD::Typelib::Builtin::date:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/date.pm
SOAP::WSDL::XSD::Typelib::Builtin::dateTime:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/dateTime.pm
SOAP::WSDL::XSD::Typelib::Builtin::decimal:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/decimal.pm
SOAP::WSDL::XSD::Typelib::Builtin::double:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/double.pm
SOAP::WSDL::XSD::Typelib::Builtin::duration:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/duration.pm
SOAP::WSDL::XSD::Typelib::Builtin::float:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/float.pm
SOAP::WSDL::XSD::Typelib::Builtin::gDay:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/gDay.pm
SOAP::WSDL::XSD::Typelib::Builtin::gMonth:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/gMonth.pm
SOAP::WSDL::XSD::Typelib::Builtin::gMonthDay:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/gMonthDay.pm
SOAP::WSDL::XSD::Typelib::Builtin::gYear:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/gYear.pm
SOAP::WSDL::XSD::Typelib::Builtin::gYearMonth:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/gYearMonth.pm
SOAP::WSDL::XSD::Typelib::Builtin::hexBinary:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/hexBinary.pm
SOAP::WSDL::XSD::Typelib::Builtin::int:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/int.pm
SOAP::WSDL::XSD::Typelib::Builtin::integer:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/integer.pm
SOAP::WSDL::XSD::Typelib::Builtin::language:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/language.pm
SOAP::WSDL::XSD::Typelib::Builtin::list:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/list.pm
SOAP::WSDL::XSD::Typelib::Builtin::long:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/long.pm
SOAP::WSDL::XSD::Typelib::Builtin::negativeInteger:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/negativeInteger.pm
SOAP::WSDL::XSD::Typelib::Builtin::nonNegativeInteger:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/nonNegativeInteger.pm
SOAP::WSDL::XSD::Typelib::Builtin::nonPositiveInteger:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/nonPositiveInteger.pm
SOAP::WSDL::XSD::Typelib::Builtin::normalizedString:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/normalizedString.pm
SOAP::WSDL::XSD::Typelib::Builtin::positiveInteger:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/positiveInteger.pm
SOAP::WSDL::XSD::Typelib::Builtin::short:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/short.pm
SOAP::WSDL::XSD::Typelib::Builtin::string:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/string.pm
SOAP::WSDL::XSD::Typelib::Builtin::time:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/time.pm
version: 2.00.08
SOAP::WSDL::XSD::Typelib::Builtin::token:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/token.pm
SOAP::WSDL::XSD::Typelib::Builtin::unsignedByte:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/unsignedByte.pm
SOAP::WSDL::XSD::Typelib::Builtin::unsignedInt:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/unsignedInt.pm
SOAP::WSDL::XSD::Typelib::Builtin::unsignedLong:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/unsignedLong.pm
SOAP::WSDL::XSD::Typelib::Builtin::unsignedShort:
file: lib/SOAP/WSDL/XSD/Typelib/Builtin/unsignedShort.pm
SOAP::WSDL::XSD::Typelib::ComplexType:
file: lib/SOAP/WSDL/XSD/Typelib/ComplexType.pm
version: 2.00.08
SOAP::WSDL::XSD::Typelib::Element:
file: lib/SOAP/WSDL/XSD/Typelib/Element.pm
version: 2.00.08
SOAP::WSDL::XSD::Typelib::SimpleType:
file: lib/SOAP/WSDL/XSD/Typelib/SimpleType.pm
version: 2.00.08
SOAP::WSDL::XSD::Typelib::SimpleType::restriction:
file: lib/SOAP/WSDL/XSD/Typelib/SimpleType.pm
version: 2.00.08
SOAP::WSDL::XSD::WhiteSpace:
file: lib/SOAP/WSDL/XSD/WhiteSpace.pm
version: 2.00.08
generated_by: Module::Build version 0.31012
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.2.html
version: 1.2
no_index:
directory: lib/SOAP/WSDL/Generator/Template/XSD/

View File

@@ -1,7 +1,44 @@
# Note: this file was auto-generated by Module::Build::Compat version 0.31012
require 5.8.0;
use Module::Build::Compat 0.02;
Module::Build::Compat->run_build_pl(args => \@ARGV);
require Module::Build;
Module::Build::Compat->write_makefile(build_class => 'Module::Build');
use 5.010000;
use ExtUtils::MakeMaker;
WriteMakefile(
NAME => 'SOAP::WSDL',
VERSION_FROM => 'lib/SOAP/WSDL.pm',
PREREQ_PM => {
'Class::Std::Fast' => q(0.000005),
'Cwd' => 0,
'Data::Dumper' => 0,
'Date::Format' => 0,
'Date::Parse' => 0,
'File::Basename' => 0,
'File::Path' => 0,
'File::Spec' => 0,
'Getopt::Long' => 0,
'LWP::UserAgent' => 0,
'List::Util' => 0,
'Module::Build' => 0,
'Storable' => 0,
'Template' => q(2.18),
'Term::ReadKey' => 0,
'Test::More' => 0,
'URI' => 0,
'XML::Parser::Expat' => 0,
'Class::Load' => 0.20,
'perl' => q(5.008),
},
test => { RECURSIVE_TEST_FILES => 1, },
ABSTRACT_FROM => 'lib/SOAP/WSDL.pm',
AUTHOR => 'Scott Walters <scott@slowass.net>',
(eval { ExtUtils::MakeMaker->VERSION(6.46) } ? (META_MERGE => {
'meta-spec' => { version => 2 },
resources => {
repository => {
type => 'git',
url => 'https://github.com/scrottie/SOAP-WSDL.git',
web => 'https://github.com/scrottie/SOAP-WSDL',
},
}})
: ()
),
);

View File

@@ -7,10 +7,25 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
// Spring JUnit Test runner
@RunWith(SpringJUnit4ClassRunner.class)
// load spring context from here
@ContextConfiguration(locations = { "classpath:test-context.xml"})
/** Test class for the HelloWorld service
*
* It's more of a integration test, not a Unit test (though using
* JUnit4).
*
* Fire up the SOAP server in example/server/hello_simple.pl before
* running - the test will fail if it can't find the appropriate SOAP server
* at http://localhost:8081/
*
*/
public class HelloWorldTest {
// soapClient bean automatically provided by spring
@Autowired
private Service1Soap soapClient;

View File

@@ -14,7 +14,7 @@ use Class::Std::Fast constructor => 'none';
use SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType;
use LWP::UserAgent;
use version; our $VERSION = qv('2.00.08');
use version; our $VERSION = qv('3.002');
my %no_dispatch_of :ATTR(:name<no_dispatch>);
my %wsdl_of :ATTR(:name<wsdl>);
@@ -165,8 +165,8 @@ sub _wsdl_get_service :PRIVATE {
my $ident = ident shift;
my $wsdl = $definitions_of{ $ident };
return $service_of{ $ident } = $servicename_of{ $ident }
? $wsdl->find_service( $wsdl->get_targetNamespace() , $servicename_of{ $ident } )
: $service_of{ $ident } = $wsdl->get_service()->[ 0 ];
? $wsdl->find_service( $wsdl->get_targetNamespace() , $servicename_of{ $ident } )
: ( $service_of{ $ident } = $wsdl->get_service()->[ 0 ] );
} ## end sub _wsdl_get_service
sub _wsdl_get_port :PRIVATE {
@@ -174,8 +174,8 @@ sub _wsdl_get_port :PRIVATE {
my $wsdl = $definitions_of{ $ident };
my $ns = $wsdl->get_targetNamespace();
return $port_of{ $ident } = $portname_of{ $ident }
? $service_of{ $ident }->get_port( $ns, $portname_of{ $ident } )
: $port_of{ $ident } = $service_of{ $ident }->get_port()->[ 0 ];
? $service_of{ $ident }->get_port( $ns, $portname_of{ $ident } )->[ 0 ]
: ( $port_of{ $ident } = $service_of{ $ident }->get_port()->[ 0 ] );
}
sub _wsdl_get_binding :PRIVATE {
@@ -349,7 +349,24 @@ __END__
SOAP::WSDL - SOAP with WSDL support
=head1 Overview
=head1 NOTICE
This module is B<not> recommended for new application development.
Please use L<XML::Compile::SOAP> or L<SOAP::Lite> instead if possible.
This module has a large number of known bugs and is not being actively developed.
This 3.0 release is intended to update the module to pass tests on newer Perls.
This is a service to existing applications already dependent on this module.
=head1 SYNOPSIS
my $soap = SOAP::WSDL->new(
wsdl => 'file://bla.wsdl',
);
my $result = $soap->call('MyMethod', %data);
=head1 DESCRIPTION
For creating Perl classes instrumenting a web service with a WSDL definition,
read L<SOAP::WSDL::Manual>.
@@ -368,16 +385,6 @@ MIGRATING documentation.
The stuff below is for users of the 1.2x SOAP::WSDL series. All others,
please refer to L<SOAP::WSDL::Manual>
=head1 SYNOPSIS
my $soap = SOAP::WSDL->new(
wsdl => 'file://bla.wsdl',
);
my $result = $soap->call('MyMethod', %data);
=head1 DESCRIPTION
SOAP::WSDL provides easy access to Web Services with WSDL descriptions.
The WSDL is parsed and stored in memory.
@@ -668,8 +675,23 @@ details.
=head1 BUGS AND LIMITATIONS
The bug tracker is at L<< https://rt.cpan.org/Dist/Display.html?Queue=SOAP-WSDL >>.
This module is in legacy maintenance mode.
Only show stopper bugs are being fixed, until/unless someone wishes to resume active development on it.
Scott Walters, C<scott@slowass.net> has obtained co-mainter from the CPAN admins for the purpose of applying existing fixes people have submit to
the RT tracker, and to apply other fixes as needed to get the module to install and run on newer Perls.
Non show-stopper bugs reports without fixes will be added to this list of limitations.
Of course, fixes for these and other bugs are welcome.
Scott does not get email from L<< rt.cpan.org >>, so please drop an email to him at C<< scott@slowass.net >> if you open a ticket there.
=over
=item * Breaks the idiom C<< $package->can("SUPER::method") >> in your code
If you redefine C<< UNIVERSAL::can() >>, and someone tries to do C<< $package->can("SUPER::method") >>, it'll look at your packages C<@ISA>, not theirs.
This module does precicely that, by way of its dependency on C<Class::Std::Fast>.
=item * $obj == undef does not work in perl 5.8.6 and perl 5.8.7
Due to some strange behaviour in perl 5.8.6 and perl 5.8.7, stringification
@@ -689,9 +711,7 @@ before - see http://aspn.activestate.com/ASPN/Mail/Message/perl5-porters/929746
=item * Apache SOAP datatypes are not supported
You currently can't use SOAP::WSDL with Apache SOAP datatypes like map.
If you want this changed, email me a copy of the specs, please.
You can't use SOAP::WSDL with Apache SOAP datatypes like map.
=item * Incomplete XML Schema definitions support
@@ -784,6 +804,12 @@ L<http://www.cpanforum.com/dist/SOAP-WSDL>
=head1 ACKNOWLEDGMENTS
Scott Walters wrote:
This code incorporates fixes contributed by C<< NORDIC@cpan.org >>, C<< dam@cpan.org >>, C<< sven.schober@uni-ulm.de >>, myself, and others.
Martin Kutter wrote:
There are many people out there who fostered SOAP::WSDL's developement.
I would like to thank them all (and apologize to all those I have forgotten).
@@ -827,13 +853,12 @@ the same terms as perl itself
=head1 AUTHOR
Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
Scott Walters E<lt>scott@slowass.net<gt> 2014
Martin Kutter E<lt>martin.kutter fen-net.deE<gt> 2004-2008
=head1 REPOSITORY INFORMATION
$Rev: 798 $
$LastChangedBy: kutterma $
$Id: WSDL.pm 798 2009-02-22 18:44:13Z kutterma $
$HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL.pm $
https://github.com/scrottie/SOAP-WSDL
=cut

View File

@@ -5,7 +5,7 @@ use List::Util;
use Scalar::Util;
use Carp qw(croak carp confess);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
my %id_of :ATTR(:name<id> :default<()>);
my %lang_of :ATTR(:name<lang> :default<()>);

View File

@@ -5,7 +5,7 @@ use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
my %operation_of :ATTR(:name<operation> :default<()>);
my %type_of :ATTR(:name<type> :default<()>);

View File

@@ -11,7 +11,7 @@ use SOAP::WSDL::Factory::Serializer;
use SOAP::WSDL::Factory::Transport;
use SOAP::WSDL::Expat::MessageParser;
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
my %class_resolver_of :ATTR(:name<class_resolver> :default<()>);
my %no_dispatch_of :ATTR(:name<no_dispatch> :default<()>);
@@ -171,20 +171,29 @@ sub call {
# Try deserializing response - there may be some,
# even if transport did not succeed (got a 500 response)
if ( $response ) {
my ($result_body, $result_header) = eval {
$deserializer_of{ $ident }->deserialize( $response );
# as our faults are false, returning a success marker is the only
# reliable way of determining whether the deserializer succeeded.
# Custom deserializers may return an empty list, or undef,
# and $@ is not guaranteed to be undefined.
my ($success, $result_body, $result_header) = eval {
(1, $deserializer_of{ $ident }->deserialize( $response ));
};
if (not $@) {
if (defined $success) {
return wantarray
? ($result_body, $result_header)
: $result_body;
}
return $deserializer_of{ $ident }->generate_fault({
code => 'soap:Server',
role => 'urn:localhost',
message => "Error deserializing message: $@. \n"
. "Message was: \n$response"
});
elsif (blessed $@) { #}&& $@->isa('SOAP::WSDL::SOAP::Typelib::Fault11')) {
return $@;
}
else {
return $deserializer_of{ $ident }->generate_fault({
code => 'soap:Server',
role => 'urn:localhost',
message => "Error deserializing message: $@. \n"
. "Message was: \n$response"
});
}
};
# if we had no success (Transport layer error status code)
@@ -400,9 +409,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION
$Rev: 798 $
$Rev: 851 $
$LastChangedBy: kutterma $
$Id: Client.pm 798 2009-02-22 18:44:13Z kutterma $
$Id: Client.pm 851 2009-05-15 22:45:18Z kutterma $
$HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Client.pm $
=cut

View File

@@ -4,7 +4,7 @@ use warnings;
use base 'SOAP::WSDL::Client';
use Scalar::Util qw(blessed);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
sub call {
my ($self, $method, $body, $header) = @_;
@@ -85,9 +85,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION
$Rev: 798 $
$Rev: 851 $
$LastChangedBy: kutterma $
$Id: Base.pm 798 2009-02-22 18:44:13Z kutterma $
$Id: Base.pm 851 2009-05-15 22:45:18Z kutterma $
$HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Client/Base.pm $
=cut

View File

@@ -5,7 +5,7 @@ use List::Util qw(first);
use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
my %types_of :ATTR(:name<types> :default<[]>);
my %message_of :ATTR(:name<message> :default<[]>);
@@ -115,9 +115,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION
$Rev: 798 $
$Rev: 851 $
$LastChangedBy: kutterma $
$Id: Definitions.pm 798 2009-02-22 18:44:13Z kutterma $
$Id: Definitions.pm 851 2009-05-15 22:45:18Z kutterma $
$HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Definitions.pm $
=cut

View File

@@ -8,7 +8,7 @@ use SOAP::WSDL::Expat::Message2Hash;
use SOAP::WSDL::Factory::Deserializer;
SOAP::WSDL::Factory::Deserializer->register( '1.1', __PACKAGE__ );
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
sub BUILD {
my ($self, $ident, $args_of_ref) = @_;
@@ -38,7 +38,7 @@ sub deserialize {
sub generate_fault {
my ($self, $args_from_ref) = @_;
return SOAP::WSDL::SOAP::Typelib::Fault11->new({
faultcode => $args_from_ref->{ code } || 'soap:Client',
faultcode => $args_from_ref->{ code } || 'SOAP-ENV:Client',
faultactor => $args_from_ref->{ role } || 'urn:localhost',
faultstring => $args_from_ref->{ message } || "Unknown error"
});
@@ -163,9 +163,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION
$Rev: 798 $
$Rev: 851 $
$LastChangedBy: kutterma $
$Id: Hash.pm 798 2009-02-22 18:44:13Z kutterma $
$Id: Hash.pm 851 2009-05-15 22:45:18Z kutterma $
$HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Deserializer/Hash.pm $
=cut

View File

@@ -2,7 +2,7 @@ package SOAP::WSDL::Deserializer::SOM;
use strict;
use warnings;
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
our @ISA;
eval {
@@ -18,7 +18,7 @@ sub deserialize {
my $result = eval { $self->SUPER::deserialize(@_) };
if ($@) {
return SOAP::Fault->new(
faultactor => 'soap:Server',
faultactor => 'SOAP-ENV:Server',
faultstring => $@,
);
}
@@ -140,9 +140,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION
$Rev: 798 $
$Rev: 851 $
$LastChangedBy: kutterma $
$Id: SOM.pm 798 2009-02-22 18:44:13Z kutterma $
$Id: SOM.pm 851 2009-05-15 22:45:18Z kutterma $
$HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Deserializer/SOM.pm $
=cut

View File

@@ -5,7 +5,7 @@ use Class::Std::Fast::Storable;
use SOAP::WSDL::SOAP::Typelib::Fault11;
use SOAP::WSDL::Expat::MessageParser;
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
my %class_resolver_of :ATTR(:name<class_resolver> :default<()>);
my %strict_of :ATTR(:get<strict> :init_arg<strict> :default<1>);
@@ -35,10 +35,11 @@ sub deserialize {
})
if not $parser_of{ ${ $self } };
$parser_of{ ${ $self } }->class_resolver( $class_resolver_of{ ${ $self } } );
$content =~ s{^<\?xml version="1.0" *\?>}{}; # XML::Parser::Expat apparently doesn't like this.
eval { $parser_of{ ${ $self } }->parse_string( $content ) };
if ($@) {
return $self->generate_fault({
code => 'soap:Server',
code => 'SOAP-ENV:Server',
role => 'urn:localhost',
message => "Error deserializing message: $@. \n"
. "Message was: \n$content"
@@ -50,7 +51,7 @@ sub deserialize {
sub generate_fault {
my ($self, $args_from_ref) = @_;
return SOAP::WSDL::SOAP::Typelib::Fault11->new({
faultcode => $args_from_ref->{ code } || 'soap:Client',
faultcode => $args_from_ref->{ code } || 'SOAP-ENV:Client',
faultactor => $args_from_ref->{ role } || 'urn:localhost',
faultstring => $args_from_ref->{ message } || "Unknown error"
});
@@ -126,9 +127,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION
$Rev: 798 $
$Rev: 851 $
$LastChangedBy: kutterma $
$Id: XSD.pm 798 2009-02-22 18:44:13Z kutterma $
$Id: XSD.pm 851 2009-05-15 22:45:18Z kutterma $
$HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Deserializer/XSD.pm $
=cut

View File

@@ -6,7 +6,7 @@ use XML::Parser::Expat;
# TODO: convert to Class::Std::Fast based class - hash based classes suck.
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
sub new {
my ($class, $arg_ref) = @_;

View File

@@ -4,7 +4,7 @@ use strict;
use warnings;
use base qw(SOAP::WSDL::Expat::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
sub _initialize {
my ($self, $parser) = @_;

View File

@@ -9,7 +9,7 @@ use base qw(SOAP::WSDL::Expat::Base);
BEGIN { require Class::Std::Fast };
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
# GLOBALS
my $OBJECT_CACHE_REF = Class::Std::Fast::OBJECT_CACHE_REF();
@@ -330,10 +330,10 @@ the same terms as perl itself
=head1 Repository information
$Id: MessageParser.pm 798 2009-02-22 18:44:13Z kutterma $
$Id: MessageParser.pm 851 2009-05-15 22:45:18Z kutterma $
$LastChangedDate: 2009-02-22 19:44:13 +0100 (So, 22 Feb 2009) $
$LastChangedRevision: 798 $
$LastChangedDate: 2009-05-16 00:45:18 +0200 (Sa, 16. Mai 2009) $
$LastChangedRevision: 851 $
$LastChangedBy: kutterma $
$HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Expat/MessageParser.pm $

View File

@@ -6,7 +6,7 @@ use XML::Parser::Expat;
use SOAP::WSDL::Expat::MessageParser;
use base qw(SOAP::WSDL::Expat::MessageParser);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
sub parse_start {
my $self = shift;
@@ -69,9 +69,9 @@ the same terms as perl itself
=head1 REPOSITORY INFORMATION
$Rev: 798 $
$Rev: 851 $
$LastChangedBy: kutterma $
$Id: MessageStreamParser.pm 798 2009-02-22 18:44:13Z kutterma $
$Id: MessageStreamParser.pm 851 2009-05-15 22:45:18Z kutterma $
$HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Expat/MessageStreamParser.pm $
=cut

View File

@@ -5,7 +5,7 @@ use Carp;
use SOAP::WSDL::TypeLookup;
use base qw(SOAP::WSDL::Expat::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
#
# Import child elements of a WSDL / XML Schema tree into the current tree
@@ -367,10 +367,10 @@ the same terms as perl itself
=head1 Repository information
$Id: WSDLParser.pm 798 2009-02-22 18:44:13Z kutterma $
$Id: WSDLParser.pm 851 2009-05-15 22:45:18Z kutterma $
$LastChangedDate: 2009-02-22 19:44:13 +0100 (So, 22 Feb 2009) $
$LastChangedRevision: 798 $
$LastChangedDate: 2009-05-16 00:45:18 +0200 (Sa, 16. Mai 2009) $
$LastChangedRevision: 851 $
$LastChangedBy: kutterma $
$HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Expat/WSDLParser.pm $

View File

@@ -2,7 +2,7 @@ package SOAP::WSDL::Factory::Deserializer;
use strict;
use warnings;
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
my %DESERIALIZER = (
'1.1' => 'SOAP::WSDL::Deserializer::XSD',

View File

@@ -2,7 +2,7 @@ package SOAP::WSDL::Factory::Generator;
use strict;
use warnings;
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
my %GENERATOR = (
'XSD' => 'SOAP::WSDL::Generator::Template::XSD',

View File

@@ -2,7 +2,7 @@ package SOAP::WSDL::Factory::Serializer;
use strict;
use warnings;
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
my %SERIALIZER = (
'1.1' => 'SOAP::WSDL::Serializer::XSD',
@@ -138,9 +138,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION
$Rev: 798 $
$Rev: 851 $
$LastChangedBy: kutterma $
$Id: Serializer.pm 798 2009-02-22 18:44:13Z kutterma $
$Id: Serializer.pm 851 2009-05-15 22:45:18Z kutterma $
$HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Factory/Serializer.pm $
=cut

View File

@@ -1,7 +1,7 @@
package SOAP::WSDL::Factory::Transport;
use strict;
use warnings;
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
my %registered_transport_of = ();
@@ -243,9 +243,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION
$Rev: 798 $
$Rev: 851 $
$LastChangedBy: kutterma $
$Id: Transport.pm 798 2009-02-22 18:44:13Z kutterma $
$Id: Transport.pm 851 2009-05-15 22:45:18Z kutterma $
$HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Factory/Transport.pm $
=cut

View File

@@ -2,7 +2,7 @@ package SOAP::WSDL::Generator::Iterator::WSDL11;
use strict; use warnings;
use Class::Std::Fast;
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
my %definitions_of :ATTR(:name<definitions> :default<[]>);
my %nodes_of :ATTR(:name<nodes> :default<[]>);

View File

@@ -3,7 +3,7 @@ use strict; use warnings;
use Class::Std::Fast::Storable;
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
my %namespace_prefix_map_of :ATTR(:name<namespace_prefix_map> :default<{}>);
my %namespace_map_of :ATTR(:name<namespace_map> :default<{}>);

View File

@@ -1,11 +1,11 @@
package SOAP::WSDL::Generator::Template;
use strict; use warnings;
use Template;
use Template 2.18;
use Class::Std::Fast::Storable;
use Carp;
use SOAP::WSDL::Generator::PrefixResolver;
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
my %tt_of :ATTR(:get<tt>);
my %definitions_of :ATTR(:name<definitions> :default<()>);

View File

@@ -4,7 +4,7 @@ use warnings;
use Carp qw(confess);
use Class::Std::Fast::Storable constructor => 'none';
use Scalar::Util qw(blessed);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
my %namespace_prefix_map_of :ATTR(:name<namespace_prefix_map> :default<{}>);
my %namespace_map_of :ATTR(:name<namespace_map> :default<{}>);
@@ -129,8 +129,10 @@ sub create_subpackage_name {
my $type = ref $arg_ref eq 'HASH' ? $arg_ref->{ value } : $arg_ref;
my @name_from = $type->get_name() || (); ;
my $parent = $type;
my $top_node = $parent;
# search for top node in tree (the one directly below the Schema)
my $parent = $type;
my $top_node = $parent;
if (! $parent->get_parent()->isa('SOAP::WSDL::XSD::Schema') ) {
NAMES: while ($parent = $parent->get_parent()) {
$top_node = $parent;
@@ -141,9 +143,13 @@ sub create_subpackage_name {
}
}
# create name for top node
die "FOO" if not defined $top_node;
die "No top node found" if not defined $top_node;
my $top_node_name = $self->create_xsd_name($top_node);
my $package_name = join('::_', $top_node_name , (@name_from) ? join('::', @name_from) : () );
# replace dots by :: in name - subpackage names may include dots, too
$package_name =~s{\.}{::}xg;
return $package_name;
}

View File

@@ -1,11 +1,11 @@
package SOAP::WSDL::Generator::Template::XSD;
use strict; use warnings;
use Template;
use Template 2.18;
use Class::Std::Fast::Storable;
use File::Basename;
use File::Spec;
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
use SOAP::WSDL::Generator::Visitor::Typemap;
use SOAP::WSDL::Generator::Template::Plugin::XSD;

View File

@@ -1,4 +1,5 @@
[% USE XSD -%]
[% USE XSD;
USE Dumper -%]
package [% XSD.create_xsd_name(complexType) %];
use strict;
use warnings;
@@ -12,6 +13,8 @@ __PACKAGE__->_set_element_form_qualified([%-
IF complexType.schema.get_elementFormDefault == 'qualified'
-%]1[% ELSE %]0[% END %]);
sub get_xmlns { '[% complexType.get_targetNamespace %]' };
[% INCLUDE complexType/contentModel.tt %]
1;

View File

@@ -3,7 +3,7 @@ use strict;
use warnings;
use Class::Std::Fast::Storable;
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
my %definitions_of :ATTR(:name<definitions> :default<()>);
my %type_prefix_of :ATTR(:name<type_prefix> :default<()>);

View File

@@ -5,7 +5,7 @@ use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Generator::Visitor);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
my %path_of :ATTR(:name<path> :default<[]>);
my %typemap_of :ATTR(:name<typemap> :default<()>);

View File

@@ -58,8 +58,7 @@ typemaps. For every Web service, there's also a typemap created.
=head2 Interface class creation
To create interface classes, follow the steps above from
L<Quick walk-through for the unpatient|Quick walk-through for the unpatient>.
To create interface classes, follow the steps above.
If this works fine for you, skip the next paragraphs. If not, read on.

View File

@@ -32,15 +32,28 @@ this backend:
=head3 Accessing HTTP(S) webservices protected by NTLM authentication
If you want to connect to a windows server using some Windows Domain Login, please
consider using Kerberos instead of the (older) NTLM mechanism - see below.
Kerberos and NTLM are (currently) mutually exclusive - when LWP::Authen::Negotiate
is installed, it will always be queried (and will always raise an error), even
if you don't want to use it. See http://rt.cpan.org/Public/Bug/Display.html?id=32826
for details.
You need the L<NTLM|NTLM> distribution installed to access webservices protected
by NTLM authentication. More specifically, you need the Authen::NTLM module
from this distribution. Note that this is different from the Authen::NTML
distribution by Yee Man Chan also available from CPAN.
Your user credentials usually need to include the windows domain like this:
Your user credentials usually need to include the windows domain or the
windows hostname like this:
testdomain\testuser
or
\\testhost\testuser
Besides passing user credentials as when accessing a web service protected
by basic or digest authentication, you also need to enforce connection
keep_alive on the transport backens.
@@ -56,6 +69,57 @@ You may, of course, decide to just hack the generated class. Be advised that
subclassing might be a more appropriate solution - re-generating overwrites
changes in interface classes.
=head3 Accessing HTTP(S) webservices protected by NTLMv2
There are different variants of NTLM, and by default Authen::NTLM uses the v1 variant.
NTLM is a connection-based handshake authentication protocol, which requires
three or more requests on the same connection:
Request POST
Response 401 Unauthorized
WWW-Authenticate: NTLM
Request Authorization: NTLM <base64-encoded type-1-message>
Response 401 Unauthorized
WWW-Authenticate: NTLM <base64-encoded type-2-message>
Request Authorization: NTLM <base64-encoded type-3-message>
Response 200 Ok
If you try to access a NTLMv2 protected web service and switch on LWP::Debug by
saying
use LWP::Debug qw(+);
you should see at least two lines containing something like
Authorization NTLM TlRMTVNTUAABAAAAB7IAAAAAAAAAAAAAAwADACAAAABmb28=
...
Authorization NTLM TlRMTVNTUAABAAAAB7IAAAAAAAAAAAAAAw ... much longer ... ADACAAAABmb28=
If you're talking to a Server using NTLMv2 exclusively, you will only the first line
in the debug output, and then an error.
To explicitely enable NTLMv2, do the following in your client:
use Authen::NTLM;
ntlmv2(1);
This globally enables the use of NTLMv2. Note that this is a global setting: All
clients running in the same perl interpreter will be affected. This can
cause unexpected issues when running under mod_perl.
=head3 Accessing webservices protected by HTTP Kerberos Authentication
Use the L<LWP::Authen::Negotiate|LWP::Authen::Negotiate> plugin from CPAN. You
need to set up GSSAPI to perform the Kerberos authentication, though. How to do
this is implementation specific (MIT or Heimdahl). See your Kerberos/GSSAPI
documentation for details.
(Newer) Windows Web Services usually allow to use both the Negotiate (Kerberos)
and NTLM authentication scheme.
=head3 Accessing HTTPS webservices protected by certificate authentication
You need Crypt::SSLeay installed to access HTTPS webservices.

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
my %part_of :ATTR(:name<part> :default<[]>);

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
my %body_of :ATTR(:name<body> :default<[]>);
my %header_of :ATTR(:name<header> :default<[]>);

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
my %operation_of :ATTR(:name<operation> :default<()>);
my %input_of :ATTR(:name<input> :default<[]>);

View File

@@ -6,7 +6,7 @@ use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
my %element_of :ATTR(:name<element> :default<()>);
my %type_of :ATTR(:name<type> :default<()>);

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
my %binding_of :ATTR(:name<binding> :default<()>);
my %address_of :ATTR(:name<address> :default<()>);

View File

@@ -5,7 +5,7 @@ use Class::Std::Fast::Storable;
use List::Util;
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
my %operation_of :ATTR(:name<operation> :default<()>);

View File

@@ -4,7 +4,7 @@ use warnings;
use base qw(SOAP::WSDL::Base);
use Class::Std::Fast::Storable;
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
my %location :ATTR(:name<location> :default<()>);
1;

View File

@@ -4,7 +4,7 @@ use warnings;
use base qw(SOAP::WSDL::Base);
use Class::Std::Fast::Storable;
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
my %use_of :ATTR(:name<use> :default<q{}>);
my %namespace_of :ATTR(:name<namespace> :default<q{}>);

View File

@@ -4,7 +4,7 @@ use warnings;
use base qw(SOAP::WSDL::Base);
use Class::Std::Fast::Storable;
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
my %use_of :ATTR(:name<use> :default<q{}>);
my %namespace_of :ATTR(:name<namespace> :default<q{}>);

View File

@@ -3,6 +3,6 @@ use strict;
use warnings;
use base qw(SOAP::WSDL::Header);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
1;

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
my %style_of :ATTR(:name<style> :default<()>);
my %soapAction_of :ATTR(:name<soapAction> :default<()>);

View File

@@ -0,0 +1,8 @@
package SOAP::WSDL::SOAP::Typelib::Fault;
use strict;
use warnings;
use Class::Std::Fast::Storable constructor => 'none';
our $VERSION = $SOAP::WSDL::VERSION;
1;

View File

@@ -1,51 +1,102 @@
package SOAP::WSDL::SOAP::Typelib::Fault11;
use strict;
use warnings;
use Class::Std::Fast::Storable constructor => 'none';
{
use strict;
use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
use SOAP::WSDL::XSD::Typelib::ComplexType;
use SOAP::WSDL::XSD::Typelib::Element;
use Scalar::Util qw(blessed);
use base qw(
SOAP::WSDL::XSD::Typelib::Element
SOAP::WSDL::XSD::Typelib::ComplexType
);
use SOAP::WSDL::XSD::Typelib::ComplexType;
use SOAP::WSDL::XSD::Typelib::Element;
my %faultcode_of :ATTR(:get<faultcode>);
my %faultstring_of :ATTR(:get<faultstring>);
my %faultactor_of :ATTR(:get<faultactor>);
my %detail_of :ATTR(:get<detail>);
use base qw(
SOAP::WSDL::SOAP::Typelib::Fault
SOAP::WSDL::XSD::Typelib::Element
SOAP::WSDL::XSD::Typelib::ComplexType
);
__PACKAGE__->_factory(
[ qw(faultcode faultstring faultactor detail) ],
{
faultcode => \%faultcode_of,
faultstring => \%faultstring_of,
faultactor => \%faultactor_of,
detail => \%detail_of,
},
{
faultcode => 'SOAP::WSDL::XSD::Typelib::Builtin::QName',
faultstring => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
faultactor => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI',
detail => 'SOAP::WSDL::XSD::Typelib::Builtin::anyType',
my %faultcode_of : ATTR(:get<faultcode>);
my %faultstring_of : ATTR(:get<faultstring>);
my %faultactor_of : ATTR(:get<faultactor>);
my %detail_of : ATTR(:get<detail>);
__PACKAGE__->_factory(
[qw(faultcode faultstring faultactor detail)],
{
faultcode => \%faultcode_of,
faultstring => \%faultstring_of,
faultactor => \%faultactor_of,
detail => \%detail_of,
},
{
faultcode => 'SOAP::WSDL::XSD::Typelib::Builtin::QName',
faultstring => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
faultactor => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI',
detail => 'SOAP::WSDL::SOAP::Typelib::Fault11Detail',
} );
sub get_xmlns { return 'http://schemas.xmlsoap.org/soap/envelope/' }
__PACKAGE__->__set_name('Fault');
__PACKAGE__->__set_nillable(0);
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref('');
# always return false in boolean context - a fault is never true...
sub as_bool : BOOLIFY {
return;
}
);
sub get_xmlns { return 'http://schemas.xmlsoap.org/soap/envelope/' };
# override set_detail to allow "auto-vivification" of a details object
# must be implemented via symbol table operation - _factory adds
# methods via symbol table, too.
__PACKAGE__->__set_name('Fault');
__PACKAGE__->__set_nillable(0);
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
__PACKAGE__->__set_ref('');
# BLOCK to scope warnings
{
no warnings qw(redefine);
my $set_detail_sub = \&set_detail;
*set_detail = sub {
my ( $self, $detail ) = @_;
# always return false in boolean context - a fault is never true...
sub as_bool : BOOLIFY { return; }
# create SOAP::WSDL::SOAP::Typelib::Fault11Detail wrapper if there
# is none
if ( not blessed $detail
or
not $detail->isa('SOAP::WSDL::SOAP::Typelib::Fault11Detail') )
{
$detail = SOAP::WSDL::SOAP::Typelib::Fault11Detail->new(
{value => $detail} );
}
# call original method
$set_detail_sub->( $self, $detail );
};
}
Class::Std::initialize();
}
package SOAP::WSDL::SOAP::Typelib::Fault11Detail;
{
use strict;
use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(
SOAP::WSDL::XSD::Typelib::Element
SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType
);
sub get_xmlns { return 'http://schemas.xmlsoap.org/soap/envelope/' }
__PACKAGE__->__set_name('Fault');
__PACKAGE__->__set_nillable(0);
__PACKAGE__->__set_minOccurs();
__PACKAGE__->__set_maxOccurs();
Class::Std::initialize();
}
Class::Std::initialize();
1;
=pod
@@ -88,6 +139,16 @@ Getter/setter for object's faultactor property.
Getter/setter for detail object's detail property.
The detail element is a SOAP::WSDL::SOAP::Typelib::Fault11Detail object.
This class is automatically loaded when using
SOAP::WSDL::SOAP::Typelib::Fault11, so you can't B<use> it separately.
Any string or object not of this class will be automatically wrapped into
a detail object.
Note that passing a list of detail object is currently not supported (though
the SOAP1.1 note allows this).
=head1 LICENSE AND COPYRIGHT
Copyright 2007 Martin Kutter. All rights reserved.
@@ -101,9 +162,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION
$Rev: 798 $
$Rev: 851 $
$LastChangedBy: kutterma $
$Id: Fault11.pm 798 2009-02-22 18:44:13Z kutterma $
$Id: Fault11.pm 851 2009-05-15 22:45:18Z kutterma $
$HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/SOAP/Typelib/Fault11.pm $
=cut

View File

@@ -5,7 +5,7 @@ use warnings;
use Class::Std::Fast::Storable;
use Scalar::Util qw(blessed);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
use SOAP::WSDL::Factory::Serializer;
@@ -30,10 +30,11 @@ sub serialize {
my $soap_prefix = $opt->{ namespace }->{ $SOAP_NS };
# envelope start with namespaces
my $xml = "<$soap_prefix\:Envelope ";
my $xml = qq|<?xml version="1.0" ?><$soap_prefix\:Envelope |;
while (my ($uri, $prefix) = each %{ $opt->{ namespace } })
for my $uri ( sort { $a cmp $b } keys %{ $opt->{ namespace } } )
{
my $prefix = $opt->{ namespace }->{ $uri };
$xml .= "xmlns:$prefix=\"$uri\" ";
}
#
@@ -132,9 +133,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION
$Rev: 798 $
$Rev: 851 $
$LastChangedBy: kutterma $
$Id: XSD.pm 798 2009-02-22 18:44:13Z kutterma $
$Id: XSD.pm 851 2009-05-15 22:45:18Z kutterma $
$HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Serializer/XSD.pm $
=cut

View File

@@ -6,7 +6,7 @@ use Scalar::Util qw(blessed);
use SOAP::WSDL::Factory::Deserializer;
use SOAP::WSDL::Factory::Serializer;
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
my %dispatch_to_of :ATTR(:name<dispatch_to> :default<()>);
my %action_map_ref_of :ATTR(:name<action_map_ref> :default<{}>);

View File

@@ -14,7 +14,7 @@ use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Server);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
# mostly copied from SOAP::Lite. Unfortunately we can't use SOAP::Lite's CGI
# server directly - we would have to swap out it's base class...

View File

@@ -16,7 +16,7 @@ use Apache2::Const -compile => qw(
HTTP_LENGTH_REQUIRED
);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
my %LOADED_OF = ();

View File

@@ -14,7 +14,7 @@ use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Server);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
# mostly copied from SOAP::Lite. Unfortunately we can't use SOAP::Lite's CGI
# server directly - we would have to swap out it's base class...

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
my %port_of :ATTR(:name<port> :default<[]>);

View File

@@ -2,7 +2,8 @@ package SOAP::WSDL::Transport::HTTP;
use strict; use warnings;
use base qw(LWP::UserAgent);
use version; our $VERSION = qv('2.00.08');
use SOAP::WSDL; # just for $SOAP::WSDL::VERSION
our $VERSION = $SOAP::WSDL::VERSION;
# create methods normally inherited from SOAP::Client
SUBFACTORY: {
@@ -95,9 +96,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION
$Rev: 798 $
$Rev: 851 $
$LastChangedBy: kutterma $
$Id: HTTP.pm 798 2009-02-22 18:44:13Z kutterma $
$Id: HTTP.pm 851 2009-05-15 22:45:18Z kutterma $
$HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Transport/HTTP.pm $
=cut

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'basic';
use SOAP::WSDL::Factory::Transport;
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
# register on loading
SOAP::WSDL::Factory::Transport->register( http => __PACKAGE__ );

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable;
use SOAP::WSDL::Factory::Transport;
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
SOAP::WSDL::Factory::Transport->register( http => __PACKAGE__ );
SOAP::WSDL::Factory::Transport->register( https => __PACKAGE__ );

View File

@@ -2,7 +2,7 @@ package SOAP::WSDL::TypeLookup;
use strict;
use warnings;
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
my %TYPE_FROM = (
# wsdl:

View File

@@ -5,7 +5,7 @@ use SOAP::WSDL::XSD::Schema::Builtin;
use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
my %schema_of :ATTR(:name<schema> :default<[]>);

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
#<enumeration value="">

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
#<attribute
# default = string

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
#<attributeGroup
# id = ID

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
# only used in SOAP::WSDL - will be obsolete once SOAP::WSDL uses the
# generative approach, too

View File

@@ -5,7 +5,7 @@ use Class::Std::Fast::Storable;
use Scalar::Util qw(blessed);
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
# id provided by Base
# name provided by Base
@@ -98,9 +98,18 @@ sub serialize {
if ( $opt->{ autotype }) {
my $ns = $self->get_targetNamespace();
# reverse namespace by prefix hash
my %prefix_of = reverse %{ $opt->{ namespace } };
my $prefix = $prefix_of{ $ns }
|| die 'No prefix found for namespace '. $ns;
# build a list of hash keys (eg '#default', 'tns') whose values match our namespace (eg 'urn:myNamespace')
(my @possible_namespace_names) = grep { $opt->{ namespace }->{$_} eq $ns } keys %{ $opt->{ namespace } };
# put any '#default' option last
@possible_namespace_names = sort { $a eq '#default' ? 1 : $b eq '#default' ? -1 : $a cmp $b } @possible_namespace_names;
if( grep( $_ ne '#default', @possible_namespace_names ) > 1 or ! @possible_namespace_names ) {
die "No prefix found for namespace $ns, or too many possible names: ``@possible_namespace_names''; there should be just one and maybe a '#default' entry";
}
my $prefix = $possible_namespace_names[0];
$xml .= join q{}, " type=\"$prefix:", $self->get_name(), '" '
if ($self->get_name() );
}

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
# id provided by Base
# name provided by Base

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
#<enumeration value="">

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
#<pattern value="">
# id provided by Base

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
#<xs:group name="myModelGroup">
# <xs:sequence>

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
#<minExclusive value="">

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
#<minExclusive value="">

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
#<minExclusive value="">

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
#<maxLength value="">

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
#<minExclusive value="">

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
#<minExclusive value="">

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
#<minExclusive value="">

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
#<pattern value="">

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
# child elements
my %attributeGroup_of :ATTR(:name<attributeGroup> :default<[]>);

View File

@@ -6,7 +6,7 @@ use SOAP::WSDL::XSD::Schema;
use SOAP::WSDL::XSD::Builtin;
use base qw(SOAP::WSDL::XSD::Schema);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
# all builtin types - add validation (e.g. content restrictions) later...
my %BUILTINS = (
@@ -103,9 +103,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION
$Rev: 798 $
$Rev: 851 $
$LastChangedBy: kutterma $
$Id: Builtin.pm 798 2009-02-22 18:44:13Z kutterma $
$Id: Builtin.pm 851 2009-05-15 22:45:18Z kutterma $
$HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/XSD/Schema/Builtin.pm $
=cut

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
my %length_of :ATTR(:name<length> :default<[]>);
my %minLength_of :ATTR(:name<minLength> :default<[]>);
@@ -100,10 +100,18 @@ sub _serialize_single {
$xml .= '<' . join ' ', $name, @{ $opt->{ attributes } };
if ( $opt->{ autotype }) {
# reverse namespace by prefix hash
my %prefix_of = reverse %{ $opt->{ namespace } };
my $ns = $self->get_targetNamespace();
my $prefix = $prefix_of{ $ns }
|| die 'No prefix found for namespace '. $ns;
# build a list of hash keys (eg '#default', 'tns') whose values match our namespace (eg 'urn:myNamespace')
(my @possible_namespace_names) = grep { $opt->{ namespace }->{$_} eq $ns } keys %{ $opt->{ namespace } };
# put any '#default' option last
@possible_namespace_names = sort { $a eq '#default' ? 1 : $b eq '#default' ? -1 : $a cmp $b } @possible_namespace_names;
if( grep( $_ ne '#default', @possible_namespace_names ) > 1 or ! @possible_namespace_names ) {
die "No prefix found for namespace $ns, or too many possible names: ``@possible_namespace_names''; there should be just one and maybe a '#default' entry";
}
my $prefix = $possible_namespace_names[0];
$xml .= ' type="' . $prefix . ':' . $self->get_name() .'"';
}

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
#<totalDigits value="">

View File

@@ -4,7 +4,7 @@ use warnings;
use base qw(SOAP::WSDL::XSD::Typelib::Element);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
sub start_tag {
# my ($self, $opt, $value) = @_;

View File

@@ -3,7 +3,7 @@ use strict;
use warnings;
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
sub serialize {
# we work on @_ for performance.

View File

@@ -3,7 +3,7 @@ use strict;
use warnings;
use Class::Std::Fast::Storable;
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
use SOAP::WSDL::XSD::Typelib::Builtin::anyType;
use SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType;

View File

@@ -3,7 +3,7 @@ use strict;
use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
sub get_xmlns { 'http://www.w3.org/2001/XMLSchema' };

View File

@@ -3,7 +3,7 @@ use strict;
use warnings;
use Class::Std::Fast::Storable constructor => 'none', cache => 1;
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
use base qw(SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType);

View File

@@ -6,7 +6,7 @@ use Date::Format;
use Class::Std::Fast::Storable constructor => 'none', cache => 1;
use base qw(SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
sub set_value {
# use set_value from base class if we have a XML-Time format

View File

@@ -7,10 +7,11 @@ use SOAP::WSDL::XSD::Typelib::Builtin;
use Scalar::Util qw(blessed);
use Data::Dumper;
require Class::Std::Fast::Storable;
use Class::Load ();
use base qw(SOAP::WSDL::XSD::Typelib::Builtin::anyType);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
# remove in 2.1
our $AS_HASH_REF_WITHOUT_ATTRIBUTES = 0;
@@ -23,7 +24,10 @@ my %NAMES_OF; # XML names of elements in a class
# XML Attribute handling
my %xml_attr_of :ATTR();
my %xml_attr_of :ATTR();
# Namespace handling
my %xmlns_of :ATTR();
# don't you ever dare to use this !
our $___attributes_of_ref = \%ATTRIBUTES_OF;
@@ -153,9 +157,9 @@ sub _factory {
or croak "No class given for $name";
# require all types here
$type->isa('UNIVERSAL')
or eval "require $type"
or croak $@;
Class::Load::is_class_loaded($type)
or eval { Class::Load::load_class $type }
or croak $@;
# check now, so we don't need to do it later.
# $is_list is used in the methods created. Filling it now means
@@ -319,6 +323,7 @@ sub _factory {
*{ "$class\::_serialize" } = sub {
my $ident = ${ $_[0] };
my $option_ref = $_[1];
# return concatenated return value of serialize call of all
# elements retrieved from get_elements expanding list refs.
return \join q{} , map {
@@ -327,8 +332,7 @@ sub _factory {
# do we have some content
if (defined $element) {
$element = [ $element ] if not ref $element eq 'ARRAY';
# from 2.00.08 on $NAMES_OF is filled - use || $_; for
# backward compatibility
# use || $_; for backward compatibility
my $name = $NAMES_OF{$class}->{$_} || $_;
my $target_namespace = $_[0]->get_xmlns();
map {
@@ -345,19 +349,45 @@ sub _factory {
# serialize complextype elments (of other types) with their
# serializer, but add element tags around.
else {
# TODO: check whether we have to handle
# types from different namespaces special, too
if (!defined $ELEMENT_FORM_QUALIFIED_OF{ $class }
# default for undef is true
if (! defined $ELEMENT_FORM_QUALIFIED_OF{ $class }
or $ELEMENT_FORM_QUALIFIED_OF{ $class }
) {
join q{}, $_->start_tag({ name => $name , %{ $option_ref } })
, $_->serialize($option_ref)
, $_->end_tag({ name => $name , %{ $option_ref } });
# handle types from different namespaces
#
# serialize with last namespace put on stack
# if the last namespace is a change from the
# before-last
#
if (
exists $option_ref->{ xmlns_stack }
&& (scalar @{ $option_ref->{ xmlns_stack } } >= 2)
&& ($option_ref->{ xmlns_stack }->[-1] ne $option_ref->{ xmlns_stack }->[-2])) {
# warn "New namespace: ", $option_ref->{ xmlns_stack }->[-1];
join q{}, $_->start_tag({ name => $name ,
xmlns => $option_ref->{ xmlns_stack }->[-1],
%{ $option_ref } })
, $_->serialize($option_ref)
, $_->end_tag({ name => $name , %{ $option_ref } });
}
else {
join q{}, $_->start_tag({ name => $name , %{ $option_ref } })
, $_->serialize($option_ref)
, $_->end_tag({ name => $name , %{ $option_ref } });
}
}
else {
# remove xmlns option if there is one
my $set_xmlns = delete $option_ref->{xmlns}
if (exists $option_ref->{xmlns});
# in elementFormDefault="unqualified" mode,
# the serialize method has to set
# xmnlns="" on all elements inside a ComplexType
#
# Other serializers usually use prefixes
# for "unqualified" and just omit all prefixes
# for inner elements
# check whether we "had" a xmlns around
my $set_xmlns = delete $option_ref->{xmlns};
# serialize start tag with xmlns="" if out parent
# did not do that
join q{}, $_->start_tag({
@@ -400,10 +430,14 @@ sub __get_attr_class {};
sub __serialize_complex {
# we work on @_ for performance.
$_[1] ||= {}; # $option_ref
push @{ $_[1]->{ xmlns_stack } }, $_[0]->get_xmlns();
# get content first (pass by reference to avoid copying)
my $content_ref = $_[0]->_serialize($_[1]); # option_ref
pop @{ $_[1]->{ xmlns_stack } };
# do we have a empty element ?
return $_[0]->start_tag({ %{ $_[1] }, empty => 1 })
if not length ${ $content_ref };
@@ -411,6 +445,10 @@ sub __serialize_complex {
return join q{}, $_[0]->start_tag($_[1]), ${ $content_ref }, $_[0]->end_tag();
}
sub get_xmlns {
return q{}
}
1;
__END__
@@ -633,9 +671,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION
$Rev: 798 $
$Rev: 851 $
$LastChangedBy: kutterma $
$Id: ComplexType.pm 798 2009-02-22 18:44:13Z kutterma $
$Id: ComplexType.pm 851 2009-05-15 22:45:18Z kutterma $
$HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/XSD/Typelib/ComplexType.pm $
=cut

View File

@@ -2,7 +2,7 @@ package SOAP::WSDL::XSD::Typelib::Element;
use strict; use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
my %NAME;
my %NILLABLE;
@@ -177,9 +177,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION
$Rev: 798 $
$Rev: 851 $
$LastChangedBy: kutterma $
$Id: Element.pm 798 2009-02-22 18:44:13Z kutterma $
$Id: Element.pm 851 2009-05-15 22:45:18Z kutterma $
$HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/XSD/Typelib/Element.pm $
=cut

View File

@@ -2,14 +2,14 @@ package SOAP::WSDL::XSD::Typelib::SimpleType;
use strict; use warnings;
use SOAP::WSDL::XSD::Typelib::Builtin;
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
package SOAP::WSDL::XSD::Typelib::SimpleType::restriction;
use strict;
use SOAP::WSDL::XSD::Typelib::Builtin;
use base qw(SOAP::WSDL::XSD::Typelib::SimpleType);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
1;
__END__
@@ -132,9 +132,9 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION
$Rev: 798 $
$Rev: 851 $
$LastChangedBy: kutterma $
$Id: SimpleType.pm 798 2009-02-22 18:44:13Z kutterma $
$Id: SimpleType.pm 851 2009-05-15 22:45:18Z kutterma $
$HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/XSD/Typelib/SimpleType.pm $
=cut

View File

@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.08');
our $VERSION = $SOAP::WSDL::VERSION;
#<pattern value="">

View File

@@ -2,7 +2,7 @@ use Test::More;
eval "use Test::Pod 1.00";
plan skip_all => "Test::Pod 1.00 required for testing POD" if $@;
my @dir_from = ();
my @dir_from = ('t');
if (!$ENV{HARNESS_ACTIVE}) {
# perl Build test or make test run from top-level dir.
if ( -d '../t/' ) {

0
t/CodeFirst/ComplexType.pm Normal file → Executable file
View File

0
t/CodeFirst/element.pm Normal file → Executable file
View File

0
t/CodeFirst/sequence.pm Normal file → Executable file
View File

77
t/CodeFirst/test.pl Normal file → Executable file
View File

@@ -5,26 +5,85 @@ use lib '../lib';
use base q{CodeFirst};
sub test :WebMethod(
action => "test",
returns => "bar",
header => "bam",
body => "baz"
name => "sayHello",
action => "uri:helloWorld/sayHello",
request_body => "CodeFirst::HelloRequest",
response_body => "CodeFirst::HelloResponse"
) {
# return either [ \%body, \%header ]
# or \%body
# or [ Body->new(), Header->new ]
# or even [ Body->new(), [ Header1->new(), Header2->new() ]]
# or any combination of that
return [{
},
{
}];
}
=pod
... would translate to
<element name="test">
<complexType>
<sequence>
<element name="testRequest" type="bam"/>
</sequence>
</complexType>
</element>
=cut
=pod
sub test2 :WebMethod(
action => "test2",
returns => "bar",
header => "bam",
body => "baz"
request_header => "bar",
reqest_body => "bam",
response_header => "bam",
response_body => "baz"
) {
}
=cut
package main;
use Data::Dumper;
my $test = testCodeFirst->new();
# print Dumper $test->_action_map;
print Dumper $test->get_transport()->get_action_map_ref();
# print Dumper $test->_action_map;
# print Dumper $test->get_transport()->get_action_map_ref();
#print $test->get_wsdl("http://localhost/foo")->toString();
use CodeFirst::Serializer;
use CodeFirst::Deserializer;
use CodeFirst::HelloResponse;
use CodeFirst::HelloRequest;
my $serializer = CodeFirst::Serializer->new();
#print $serializer->serialize("sayHelloResponse", "uri:MooseX.SOAP.CodeFirst", CodeFirst::HelloResponse->new(
# Result => "Test"
#))->toString;
#
my $xml = $serializer->serialize("sayHello", "uri:MooseX.SOAP.testCodeFirst", CodeFirst::HelloRequest->new(
Name => 'Flint',
GivenName => 'Erol',
))->toString;
#print "\n\n";
print $xml, "\n";
print $test->get_wsdl()->toString(), "\n";
my $deserializer = CodeFirst::Deserializer->new();
$deserializer->schema( $test->schema );
print Dumper $deserializer->deserialize($xml, 'CodeFirst::HelloRequest');
1;

View File

@@ -1,66 +1,96 @@
package FaultDeserializer;
use strict;
use warnings;
use Test::More tests => 15;
use SOAP::WSDL::SOAP::Typelib::Fault11;
sub new { bless {}, shift }
sub deserialize {
die SOAP::WSDL::SOAP::Typelib::Fault11->new( {} );
}
package main;
use strict;
use warnings;
use Test::More tests => 16;
use SOAP::WSDL::Transport::Loopback;
use Scalar::Util qw(blessed);
use_ok qw(SOAP::WSDL::Client);
{
no warnings qw(redefine once);
*SOAP::WSDL::Factory::Transport::get_transport = sub {
my ($self, $url , %args_of) = @_;
my ( $self, $url, %args_of ) = @_;
if (%args_of) {
is $args_of{foo}, 'bar';
}
};
}
ok my $client = SOAP::WSDL::Client->new();
ok $client = SOAP::WSDL::Client->new({
proxy => 'http://localhost',
});
sub test_client_basics {
ok my $client = SOAP::WSDL::Client->new();
ok $client = SOAP::WSDL::Client->new( {proxy => 'http://localhost',} );
is $client->get_content_type(), 'text/xml; charset=utf-8';
is $client->get_endpoint(), 'http://localhost';
$client->set_proxy( 'http://localhost', foo => 'bar', );
is $client->get_content_type(), 'text/xml; charset=utf-8';
#TODO is this behaviour still required? declare as deprecated and remove...
$client->set_proxy( ['http://localhost', foo => 'bar',] );
is $client->get_endpoint(), 'http://localhost';
is $client->get_proxy(), $client->get_transport(),
'get_proxy returns same as get_transport';
$client->set_proxy('http://localhost',
foo => 'bar',
);
ok $client->set_soap_version('1.1');
is $client->get_soap_version(), '1.1';
#TODO is this behaviour still required? declare as deprecated and remove...
$client->set_proxy(
[ 'http://localhost',
foo => 'bar',
]
);
$client->set_deserializer_args( {strict => 0} );
is $client->get_deserializer_args()->{strict}, 0;
}
sub test_call {
my $client = SOAP::WSDL::Client->new();
$client->no_dispatch(1);
$client->set_serializer('main');
my $serialize = $client->call(
{operation => 'testMethod'},
{foo => 'bar'},
{bar => 'baz'} );
is $serialize->{body}->{foo}, 'bar';
is $serialize->{header}->{bar}, 'baz';
is $client->get_proxy(), $client->get_transport(), 'get_proxy returns same as get_transport';
# Old calling style compatibility test - foo => bar is body...
$serialize = $client->call( {operation => 'testMethod'}, foo => 'bar' );
is $serialize->{body}->{foo}, 'bar';
ok $client->set_soap_version('1.1');
is $client->get_soap_version(), '1.1';
$client->no_dispatch(1);
$client->set_serializer('main');
my $serialize = $client->call({
operation => 'testMethod'
}, { foo => 'bar'}, { bar => 'baz'});
is $serialize->{ body }->{ foo }, 'bar';
is $serialize->{ header }->{ bar }, 'baz';
# Old calling style compatibility test - foo => bar is body...
$serialize = $client->call({
operation => 'testMethod'
}, foo => 'bar');
is $serialize->{ body }->{ foo }, 'bar';
# Old calling style compatibility test - foo => bar is body...
$serialize = $client->call('testMethod', foo => 'bar');
is $serialize->{ body }->{ foo }, 'bar';
# Old calling style compatibility test - foo => bar is body...
$serialize = $client->call( 'testMethod', foo => 'bar' );
is $serialize->{body}->{foo}, 'bar';
}
sub serialize {
my $self = shift;
return shift;
}
$client->set_deserializer_args({ strict => 0 });
is $client->get_deserializer_args()->{ strict }, 0;
sub test_deserializer_fault {
my $client = SOAP::WSDL::Client->new();
$client->set_deserializer( FaultDeserializer->new() );
$client->set_transport( SOAP::WSDL::Transport::Loopback->new() );
my $fault = $client->call(
{operation => 'testMethod'},
{foo => 'bar'},
{bar => 'baz'} );
ok( (blessed $fault and $fault->isa('SOAP::WSDL::SOAP::Typelib::Fault11')),
'Return fault on throwing during deserialization ' . $@);
}
test_client_basics();
test_call();
test_deserializer_fault();

View File

@@ -43,6 +43,6 @@ $fault = $deserializer->deserialize('');
isa_ok $fault, 'SOAP::Fault';
is $fault->faultactor(), 'soap:Server';
is $fault->faultactor(), 'SOAP-ENV:Server';
like $fault->faultstring(), qr{no \s element \s found}x;

View File

@@ -20,7 +20,7 @@ my $fault = $obj->generate_fault();
is $fault->get_faultstring(), 'Unknown error';
is $fault->get_faultactor(), 'urn:localhost';
is $fault->get_faultcode(), 'soap:Client';
is $fault->get_faultcode(), 'SOAP-ENV:Client';
isa_ok $obj->deserialize('rubbeldiekatz'), 'SOAP::WSDL::SOAP::Typelib::Fault11';
isa_ok $obj->deserialize('<zumsel></zumsel>'), 'SOAP::WSDL::SOAP::Typelib::Fault11';

View File

@@ -1,4 +1,4 @@
use Test::More tests => 14;
use Test::More tests => 15;
use File::Basename qw(dirname);
use File::Spec;
use File::Path;
@@ -63,6 +63,8 @@ use_ok qw(MyInterfaces::My::SOAP::testService::testPort);
use_ok qw(MyServer::My::SOAP::testService::testPort);
use_ok qw(MyTypes::testComplexTypeRestriction);
use_ok qw(MyTypes::testComplexTypeAll);
# type with dot in name including atomic type
use_ok qw(MyTypes::test::ComplexTypeElementAtomicSimpleType);
SKIP: {
eval { require Test::Pod::Content; }
or skip 'Cannot test pod content without Test::Pod::Content', 6;

View File

@@ -73,16 +73,18 @@ __PACKAGE__->_factory(
);
package MyElementSimpleContent;
use base qw(
SOAP::WSDL::XSD::Typelib::Element
SOAP::WSDL::XSD::Typelib::ComplexType
SOAP::WSDL::XSD::Typelib::Builtin::string
);
{
use base qw(
SOAP::WSDL::XSD::Typelib::Element
SOAP::WSDL::XSD::Typelib::ComplexType
SOAP::WSDL::XSD::Typelib::Builtin::string
);
__PACKAGE__->__set_name( 'MyElementSimpleContent' );
sub __get_attr_class { 'MyElement::_ATTR' };
__PACKAGE__->__set_name( 'MyElementSimpleContent' );
sub __get_attr_class { 'MyElement::_ATTR' };
sub get_xmlns { 'http://www.w3.org/2001/XMLSchema' }
}
package main;
use Test::More tests => 127;
use Storable;
@@ -392,4 +394,4 @@ ok ! exists $obj->as_hash_ref(1)->{ xmlattr };
local $SOAP::WSDL::XSD::Typelib::ComplexType::AS_HASH_REF_WITHOUT_ATTRIBUTES = 1;
ok ! exists $obj->as_hash_ref()->{ xmlattr };
ok ! exists $obj->as_hash_ref(1)->{ xmlattr };
}
}

View File

@@ -1,81 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://order.soap.services"
xmlns:impl="http://order.soap.services" xmlns:intf="http://order.soap.services"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns1="http://database.services"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<!--WSDL created by Apache Axis version: 1.2RC3
Built on Feb 28, 2005 (10:15:14 EST)-->
<wsdl:types>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://database.services">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
<complexType name="ProcedureResponse">
<sequence>
<element name="message" nillable="true" type="soapenc:string" />
<element name="status" type="xsd:int" />
</sequence>
</complexType>
</schema>
</wsdl:types>
<wsdl:message name="confirmRequest">
<wsdl:part name="language_id" type="soapenc:string" />
<wsdl:part name="user_id" type="soapenc:string" />
<wsdl:part name="supplier_code" type="soapenc:string" />
<wsdl:part name="customer_no" type="soapenc:string" />
<wsdl:part name="author" type="soapenc:string" />
<wsdl:part name="title" type="soapenc:string" />
<wsdl:part name="isbn" type="soapenc:string" />
<wsdl:part name="classification" type="soapenc:string" />
<wsdl:part name="purchase_note" type="soapenc:string" />
<wsdl:part name="article_no" type="soapenc:string" />
<wsdl:part name="price" type="xsd:double" />
<wsdl:part name="currency_id" type="soapenc:string" />
<wsdl:part name="delivery_date" type="xsd:dateTime" />
<wsdl:part name="info_note" type="soapenc:string" />
<wsdl:part name="no_of_copies" type="xsd:int" />
<wsdl:part name="order_no" type="soapenc:string" />
<wsdl:part name="order_date" type="xsd:dateTime" />
<wsdl:part name="title_no" type="soapenc:string" />
</wsdl:message>
<wsdl:message name="confirmResponse">
<wsdl:part name="confirmReturn" type="tns1:ProcedureResponse" />
</wsdl:message>
<wsdl:portType name="OrderImpl">
<wsdl:operation name="confirm"
parameterOrder="language_id user_id supplier_code customer_no author title isbn classification purchase_note article_no price currency_id delivery_date info_note no_of_copies order_no order_date title_no">
<wsdl:input name="confirmRequest" message="impl:confirmRequest" />
<wsdl:output name="confirmResponse" message="impl:confirmResponse" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="OrderSoapBinding" type="impl:OrderImpl">
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="confirm">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="confirmRequest">
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://order.soap.services" />
</wsdl:input>
<wsdl:output name="confirmResponse">
<wsdlsoap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://order.soap.services" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="OrderImplService">
<wsdl:port name="Order" binding="impl:OrderSoapBinding">
<wsdlsoap:address location="http://example.com/services/services/Order" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

Some files were not shown because too many files have changed in this diff Show More