Compare commits
37 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c35791c506 | ||
|
|
b803f83abd | ||
|
|
e95ff8baba | ||
|
|
cad782dbf2 | ||
|
|
99c5eb4dd7 | ||
|
|
a1e9927846 | ||
|
|
ba407622f5 | ||
|
|
5b9f3c640b | ||
|
|
ed715a4c88 | ||
|
|
f5787f6057 | ||
|
|
374793ef68 | ||
|
|
7f6af60ed8 | ||
|
|
37740b870a | ||
|
|
31f5deacf5 | ||
|
|
3197383a7d | ||
|
|
285ffa463c | ||
|
|
35321ce5d0 | ||
|
|
08b156a546 | ||
|
|
605732b836 | ||
|
|
1994b36d8b | ||
|
|
f3ae85aed5 | ||
|
|
7d81cfce87 | ||
|
|
2624a9d5c0 | ||
|
|
45982ff330 | ||
|
|
cfd5892b18 | ||
|
|
6e95d01610 | ||
|
|
b121a061d8 | ||
|
|
d2f324a7f2 | ||
|
|
f2ce9511e0 | ||
|
|
50c8d5b31f | ||
|
|
47dc61bd9e | ||
|
|
3670df3e69 | ||
|
|
d221e87b29 | ||
|
|
001c36f8e8 | ||
|
|
9023aa06a4 | ||
|
|
3b30e8d0e2 | ||
|
|
fb9fd4a2b1 |
55
Build.PL
55
Build.PL
@@ -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.07',
|
||||
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;
|
||||
113
Changes
113
Changes
@@ -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,55 @@ 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
|
||||
tracker IDs from https://sourceforge.net/tracker/?group_id=111978&atid=660921):
|
||||
The numbers with # are CPAN RT IDs (http://rt.cpan.org/).
|
||||
|
||||
* [2628386] SOAP::WSDL::Generator::Visitor::Typelib still used in tests
|
||||
|
||||
* #41453: Content-Type 'charset=...' not set in HTTP header
|
||||
Already fixed in 2.00.07
|
||||
|
||||
2.00.07 - Feb 21 2009
|
||||
|
||||
The following features were added (the numbers in square brackets are the
|
||||
|
||||
77
MANIFEST
77
MANIFEST
@@ -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
373
META.yml
@@ -1,373 +0,0 @@
|
||||
---
|
||||
name: SOAP-WSDL
|
||||
version: 2.00.07
|
||||
author:
|
||||
- 'Martin Kutter <martin.kutter@fen-net.de>'
|
||||
abstract: SOAP with WSDL support
|
||||
license: artistic
|
||||
resources:
|
||||
license: http://opensource.org/licenses/artistic-license.php
|
||||
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.07
|
||||
SOAP::WSDL::Base:
|
||||
file: lib/SOAP/WSDL/Base.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Binding:
|
||||
file: lib/SOAP/WSDL/Binding.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Client:
|
||||
file: lib/SOAP/WSDL/Client.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Client::Base:
|
||||
file: lib/SOAP/WSDL/Client/Base.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Definitions:
|
||||
file: lib/SOAP/WSDL/Definitions.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Deserializer::Hash:
|
||||
file: lib/SOAP/WSDL/Deserializer/Hash.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Deserializer::SOM:
|
||||
file: lib/SOAP/WSDL/Deserializer/SOM.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Deserializer::XSD:
|
||||
file: lib/SOAP/WSDL/Deserializer/XSD.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Expat::Base:
|
||||
file: lib/SOAP/WSDL/Expat/Base.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Expat::Message2Hash:
|
||||
file: lib/SOAP/WSDL/Expat/Message2Hash.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Expat::MessageParser:
|
||||
file: lib/SOAP/WSDL/Expat/MessageParser.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Expat::MessageStreamParser:
|
||||
file: lib/SOAP/WSDL/Expat/MessageStreamParser.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Expat::WSDLParser:
|
||||
file: lib/SOAP/WSDL/Expat/WSDLParser.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Factory::Deserializer:
|
||||
file: lib/SOAP/WSDL/Factory/Deserializer.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Factory::Generator:
|
||||
file: lib/SOAP/WSDL/Factory/Generator.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Factory::Serializer:
|
||||
file: lib/SOAP/WSDL/Factory/Serializer.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Factory::Transport:
|
||||
file: lib/SOAP/WSDL/Factory/Transport.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Generator::Iterator::WSDL11:
|
||||
file: lib/SOAP/WSDL/Generator/Iterator/WSDL11.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Generator::PrefixResolver:
|
||||
file: lib/SOAP/WSDL/Generator/PrefixResolver.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Generator::Template:
|
||||
file: lib/SOAP/WSDL/Generator/Template.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Generator::Template::Plugin::XSD:
|
||||
file: lib/SOAP/WSDL/Generator/Template/Plugin/XSD.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Generator::Template::XSD:
|
||||
file: lib/SOAP/WSDL/Generator/Template/XSD.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Generator::Visitor:
|
||||
file: lib/SOAP/WSDL/Generator/Visitor.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Generator::Visitor::Typemap:
|
||||
file: lib/SOAP/WSDL/Generator/Visitor/Typemap.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Message:
|
||||
file: lib/SOAP/WSDL/Message.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::OpMessage:
|
||||
file: lib/SOAP/WSDL/OpMessage.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Operation:
|
||||
file: lib/SOAP/WSDL/Operation.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Part:
|
||||
file: lib/SOAP/WSDL/Part.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Port:
|
||||
file: lib/SOAP/WSDL/Port.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::PortType:
|
||||
file: lib/SOAP/WSDL/PortType.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::SOAP::Address:
|
||||
file: lib/SOAP/WSDL/SOAP/Address.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::SOAP::Body:
|
||||
file: lib/SOAP/WSDL/SOAP/Body.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::SOAP::Header:
|
||||
file: lib/SOAP/WSDL/SOAP/Header.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::SOAP::HeaderFault:
|
||||
file: lib/SOAP/WSDL/SOAP/HeaderFault.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::SOAP::Operation:
|
||||
file: lib/SOAP/WSDL/SOAP/Operation.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::SOAP::Typelib::Fault11:
|
||||
file: lib/SOAP/WSDL/SOAP/Typelib/Fault11.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Serializer::XSD:
|
||||
file: lib/SOAP/WSDL/Serializer/XSD.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Server:
|
||||
file: lib/SOAP/WSDL/Server.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Server::CGI:
|
||||
file: lib/SOAP/WSDL/Server/CGI.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Server::Mod_Perl2:
|
||||
file: lib/SOAP/WSDL/Server/Mod_Perl2.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Server::Simple:
|
||||
file: lib/SOAP/WSDL/Server/Simple.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Service:
|
||||
file: lib/SOAP/WSDL/Service.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Transport::HTTP:
|
||||
file: lib/SOAP/WSDL/Transport/HTTP.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Transport::Loopback:
|
||||
file: lib/SOAP/WSDL/Transport/Loopback.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Transport::Test:
|
||||
file: lib/SOAP/WSDL/Transport/Test.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::TypeLookup:
|
||||
file: lib/SOAP/WSDL/TypeLookup.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::Types:
|
||||
file: lib/SOAP/WSDL/Types.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::XSD::Annotation:
|
||||
file: lib/SOAP/WSDL/XSD/Annotation.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::XSD::Attribute:
|
||||
file: lib/SOAP/WSDL/XSD/Attribute.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::XSD::AttributeGroup:
|
||||
file: lib/SOAP/WSDL/XSD/AttributeGroup.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::XSD::Builtin:
|
||||
file: lib/SOAP/WSDL/XSD/Builtin.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::XSD::ComplexType:
|
||||
file: lib/SOAP/WSDL/XSD/ComplexType.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::XSD::Element:
|
||||
file: lib/SOAP/WSDL/XSD/Element.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::XSD::Enumeration:
|
||||
file: lib/SOAP/WSDL/XSD/Enumeration.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::XSD::FractionDigits:
|
||||
file: lib/SOAP/WSDL/XSD/FractionDigits.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::XSD::Group:
|
||||
file: lib/SOAP/WSDL/XSD/Group.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::XSD::Length:
|
||||
file: lib/SOAP/WSDL/XSD/Length.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::XSD::MaxExclusive:
|
||||
file: lib/SOAP/WSDL/XSD/MaxExclusive.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::XSD::MaxInclusive:
|
||||
file: lib/SOAP/WSDL/XSD/MaxInclusive.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::XSD::MaxLength:
|
||||
file: lib/SOAP/WSDL/XSD/MaxLength.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::XSD::MinExclusive:
|
||||
file: lib/SOAP/WSDL/XSD/MinExclusive.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::XSD::MinInclusive:
|
||||
file: lib/SOAP/WSDL/XSD/MinInclusive.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::XSD::MinLength:
|
||||
file: lib/SOAP/WSDL/XSD/MinLength.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::XSD::Pattern:
|
||||
file: lib/SOAP/WSDL/XSD/Pattern.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::XSD::Schema:
|
||||
file: lib/SOAP/WSDL/XSD/Schema.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::XSD::Schema::Builtin:
|
||||
file: lib/SOAP/WSDL/XSD/Schema/Builtin.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::XSD::SimpleType:
|
||||
file: lib/SOAP/WSDL/XSD/SimpleType.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::XSD::TotalDigits:
|
||||
file: lib/SOAP/WSDL/XSD/TotalDigits.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::XSD::Typelib::Attribute:
|
||||
file: lib/SOAP/WSDL/XSD/Typelib/Attribute.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::XSD::Typelib::AttributeSet:
|
||||
file: lib/SOAP/WSDL/XSD/Typelib/AttributeSet.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::XSD::Typelib::Builtin:
|
||||
file: lib/SOAP/WSDL/XSD/Typelib/Builtin.pm
|
||||
version: 2.00.07
|
||||
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.07
|
||||
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.07
|
||||
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.07
|
||||
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.07
|
||||
SOAP::WSDL::XSD::Typelib::Element:
|
||||
file: lib/SOAP/WSDL/XSD/Typelib/Element.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::XSD::Typelib::SimpleType:
|
||||
file: lib/SOAP/WSDL/XSD/Typelib/SimpleType.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::XSD::Typelib::SimpleType::restriction:
|
||||
file: lib/SOAP/WSDL/XSD/Typelib/SimpleType.pm
|
||||
version: 2.00.07
|
||||
SOAP::WSDL::XSD::WhiteSpace:
|
||||
file: lib/SOAP/WSDL/XSD/WhiteSpace.pm
|
||||
version: 2.00.07
|
||||
generated_by: Module::Build version 0.280801
|
||||
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/
|
||||
49
Makefile.PL
49
Makefile.PL
@@ -1,7 +1,44 @@
|
||||
# Note: this file was auto-generated by Module::Build::Compat version 0.2808_01
|
||||
require 5.8.0;
|
||||
use Module::Build::Compat 0.02;
|
||||
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',
|
||||
},
|
||||
}})
|
||||
: ()
|
||||
),
|
||||
);
|
||||
|
||||
Module::Build::Compat->run_build_pl(args => \@ARGV);
|
||||
require Module::Build;
|
||||
Module::Build::Compat->write_makefile(build_class => 'Module::Build');
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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.07');
|
||||
use version; our $VERSION = qv('3.002');
|
||||
|
||||
my %no_dispatch_of :ATTR(:name<no_dispatch>);
|
||||
my %wsdl_of :ATTR(:name<wsdl>);
|
||||
@@ -166,7 +166,7 @@ sub _wsdl_get_service :PRIVATE {
|
||||
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 ];
|
||||
: ( $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: 795 $
|
||||
$LastChangedBy: kutterma $
|
||||
$Id: WSDL.pm 795 2009-02-21 00:04:29Z 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
|
||||
|
||||
@@ -5,7 +5,7 @@ use List::Util;
|
||||
use Scalar::Util;
|
||||
use Carp qw(croak carp confess);
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
my %id_of :ATTR(:name<id> :default<()>);
|
||||
my %lang_of :ATTR(:name<lang> :default<()>);
|
||||
|
||||
@@ -5,7 +5,7 @@ use Class::Std::Fast::Storable;
|
||||
|
||||
use base qw(SOAP::WSDL::Base);
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
my %operation_of :ATTR(:name<operation> :default<()>);
|
||||
my %type_of :ATTR(:name<type> :default<()>);
|
||||
|
||||
@@ -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.07');
|
||||
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;
|
||||
}
|
||||
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: 795 $
|
||||
$Rev: 851 $
|
||||
$LastChangedBy: kutterma $
|
||||
$Id: Client.pm 795 2009-02-21 00:04:29Z 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
|
||||
|
||||
@@ -4,7 +4,7 @@ use warnings;
|
||||
use base 'SOAP::WSDL::Client';
|
||||
use Scalar::Util qw(blessed);
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
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: 795 $
|
||||
$Rev: 851 $
|
||||
$LastChangedBy: kutterma $
|
||||
$Id: Base.pm 795 2009-02-21 00:04:29Z 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
|
||||
|
||||
@@ -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.07');
|
||||
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: 795 $
|
||||
$Rev: 851 $
|
||||
$LastChangedBy: kutterma $
|
||||
$Id: Definitions.pm 795 2009-02-21 00:04:29Z 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
|
||||
|
||||
@@ -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.07');
|
||||
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: 795 $
|
||||
$Rev: 851 $
|
||||
$LastChangedBy: kutterma $
|
||||
$Id: Hash.pm 795 2009-02-21 00:04:29Z 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
|
||||
|
||||
@@ -2,7 +2,7 @@ package SOAP::WSDL::Deserializer::SOM;
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
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: 795 $
|
||||
$Rev: 851 $
|
||||
$LastChangedBy: kutterma $
|
||||
$Id: SOM.pm 795 2009-02-21 00:04:29Z 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
|
||||
|
||||
@@ -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.07');
|
||||
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: 795 $
|
||||
$Rev: 851 $
|
||||
$LastChangedBy: kutterma $
|
||||
$Id: XSD.pm 795 2009-02-21 00:04:29Z 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
|
||||
|
||||
@@ -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.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
sub new {
|
||||
my ($class, $arg_ref) = @_;
|
||||
|
||||
@@ -4,7 +4,7 @@ use strict;
|
||||
use warnings;
|
||||
use base qw(SOAP::WSDL::Expat::Base);
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
sub _initialize {
|
||||
my ($self, $parser) = @_;
|
||||
|
||||
@@ -9,7 +9,7 @@ use base qw(SOAP::WSDL::Expat::Base);
|
||||
|
||||
BEGIN { require Class::Std::Fast };
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
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 795 2009-02-21 00:04:29Z kutterma $
|
||||
$Id: MessageParser.pm 851 2009-05-15 22:45:18Z kutterma $
|
||||
|
||||
$LastChangedDate: 2009-02-21 01:04:29 +0100 (Sa, 21 Feb 2009) $
|
||||
$LastChangedRevision: 795 $
|
||||
$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 $
|
||||
|
||||
@@ -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.07');
|
||||
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: 795 $
|
||||
$Rev: 851 $
|
||||
$LastChangedBy: kutterma $
|
||||
$Id: MessageStreamParser.pm 795 2009-02-21 00:04:29Z 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
|
||||
|
||||
@@ -5,7 +5,7 @@ use Carp;
|
||||
use SOAP::WSDL::TypeLookup;
|
||||
use base qw(SOAP::WSDL::Expat::Base);
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
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 795 2009-02-21 00:04:29Z kutterma $
|
||||
$Id: WSDLParser.pm 851 2009-05-15 22:45:18Z kutterma $
|
||||
|
||||
$LastChangedDate: 2009-02-21 01:04:29 +0100 (Sa, 21 Feb 2009) $
|
||||
$LastChangedRevision: 795 $
|
||||
$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 $
|
||||
|
||||
@@ -2,7 +2,7 @@ package SOAP::WSDL::Factory::Deserializer;
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
my %DESERIALIZER = (
|
||||
'1.1' => 'SOAP::WSDL::Deserializer::XSD',
|
||||
|
||||
@@ -2,7 +2,7 @@ package SOAP::WSDL::Factory::Generator;
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
my %GENERATOR = (
|
||||
'XSD' => 'SOAP::WSDL::Generator::Template::XSD',
|
||||
|
||||
@@ -2,7 +2,7 @@ package SOAP::WSDL::Factory::Serializer;
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
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: 795 $
|
||||
$Rev: 851 $
|
||||
$LastChangedBy: kutterma $
|
||||
$Id: Serializer.pm 795 2009-02-21 00:04:29Z 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
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package SOAP::WSDL::Factory::Transport;
|
||||
use strict;
|
||||
use warnings;
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
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: 795 $
|
||||
$Rev: 851 $
|
||||
$LastChangedBy: kutterma $
|
||||
$Id: Transport.pm 795 2009-02-21 00:04:29Z 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
|
||||
|
||||
@@ -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.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
my %definitions_of :ATTR(:name<definitions> :default<[]>);
|
||||
my %nodes_of :ATTR(:name<nodes> :default<[]>);
|
||||
|
||||
@@ -3,7 +3,7 @@ use strict; use warnings;
|
||||
|
||||
use Class::Std::Fast::Storable;
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
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<{}>);
|
||||
|
||||
@@ -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.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
my %tt_of :ATTR(:get<tt>);
|
||||
my %definitions_of :ATTR(:name<definitions> :default<()>);
|
||||
|
||||
@@ -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.07');
|
||||
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,6 +129,8 @@ sub create_subpackage_name {
|
||||
my $type = ref $arg_ref eq 'HASH' ? $arg_ref->{ value } : $arg_ref;
|
||||
|
||||
my @name_from = $type->get_name() || (); ;
|
||||
|
||||
# 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') ) {
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
use SOAP::WSDL::Generator::Visitor::Typemap;
|
||||
use SOAP::WSDL::Generator::Template::Plugin::XSD;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -3,7 +3,7 @@ use strict;
|
||||
use warnings;
|
||||
use Class::Std::Fast::Storable;
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
my %definitions_of :ATTR(:name<definitions> :default<()>);
|
||||
my %type_prefix_of :ATTR(:name<type_prefix> :default<()>);
|
||||
|
||||
@@ -5,7 +5,7 @@ use Class::Std::Fast::Storable;
|
||||
|
||||
use base qw(SOAP::WSDL::Generator::Visitor);
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
my %path_of :ATTR(:name<path> :default<[]>);
|
||||
my %typemap_of :ATTR(:name<typemap> :default<()>);
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -4,7 +4,7 @@ use warnings;
|
||||
use Class::Std::Fast::Storable;
|
||||
use base qw(SOAP::WSDL::Base);
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
my %part_of :ATTR(:name<part> :default<[]>);
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ use warnings;
|
||||
use Class::Std::Fast::Storable;
|
||||
use base qw(SOAP::WSDL::Base);
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
my %body_of :ATTR(:name<body> :default<[]>);
|
||||
my %header_of :ATTR(:name<header> :default<[]>);
|
||||
|
||||
@@ -4,7 +4,7 @@ use warnings;
|
||||
use Class::Std::Fast::Storable;
|
||||
use base qw(SOAP::WSDL::Base);
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
my %operation_of :ATTR(:name<operation> :default<()>);
|
||||
my %input_of :ATTR(:name<input> :default<[]>);
|
||||
|
||||
@@ -6,7 +6,7 @@ use Class::Std::Fast::Storable;
|
||||
|
||||
use base qw(SOAP::WSDL::Base);
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
my %element_of :ATTR(:name<element> :default<()>);
|
||||
my %type_of :ATTR(:name<type> :default<()>);
|
||||
|
||||
@@ -4,7 +4,7 @@ use warnings;
|
||||
use Class::Std::Fast::Storable;
|
||||
use base qw(SOAP::WSDL::Base);
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
my %binding_of :ATTR(:name<binding> :default<()>);
|
||||
my %address_of :ATTR(:name<address> :default<()>);
|
||||
|
||||
@@ -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.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
my %operation_of :ATTR(:name<operation> :default<()>);
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ use warnings;
|
||||
use base qw(SOAP::WSDL::Base);
|
||||
use Class::Std::Fast::Storable;
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
my %location :ATTR(:name<location> :default<()>);
|
||||
1;
|
||||
@@ -4,7 +4,7 @@ use warnings;
|
||||
use base qw(SOAP::WSDL::Base);
|
||||
use Class::Std::Fast::Storable;
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
my %use_of :ATTR(:name<use> :default<q{}>);
|
||||
my %namespace_of :ATTR(:name<namespace> :default<q{}>);
|
||||
|
||||
@@ -4,7 +4,7 @@ use warnings;
|
||||
use base qw(SOAP::WSDL::Base);
|
||||
use Class::Std::Fast::Storable;
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
my %use_of :ATTR(:name<use> :default<q{}>);
|
||||
my %namespace_of :ATTR(:name<namespace> :default<q{}>);
|
||||
|
||||
@@ -3,6 +3,6 @@ use strict;
|
||||
use warnings;
|
||||
use base qw(SOAP::WSDL::Header);
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
1;
|
||||
@@ -4,7 +4,7 @@ use warnings;
|
||||
use Class::Std::Fast::Storable;
|
||||
use base qw(SOAP::WSDL::Base);
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
my %style_of :ATTR(:name<style> :default<()>);
|
||||
my %soapAction_of :ATTR(:name<soapAction> :default<()>);
|
||||
|
||||
8
lib/SOAP/WSDL/SOAP/Typelib/Fault.pm
Normal file
8
lib/SOAP/WSDL/SOAP/Typelib/Fault.pm
Normal 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;
|
||||
@@ -1,25 +1,29 @@
|
||||
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.07');
|
||||
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(
|
||||
use SOAP::WSDL::XSD::Typelib::ComplexType;
|
||||
use SOAP::WSDL::XSD::Typelib::Element;
|
||||
|
||||
use base qw(
|
||||
SOAP::WSDL::SOAP::Typelib::Fault
|
||||
SOAP::WSDL::XSD::Typelib::Element
|
||||
SOAP::WSDL::XSD::Typelib::ComplexType
|
||||
);
|
||||
);
|
||||
|
||||
my %faultcode_of :ATTR(:get<faultcode>);
|
||||
my %faultstring_of :ATTR(:get<faultstring>);
|
||||
my %faultactor_of :ATTR(:get<faultactor>);
|
||||
my %detail_of :ATTR(:get<detail>);
|
||||
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) ],
|
||||
__PACKAGE__->_factory(
|
||||
[qw(faultcode faultstring faultactor detail)],
|
||||
{
|
||||
faultcode => \%faultcode_of,
|
||||
faultstring => \%faultstring_of,
|
||||
@@ -30,22 +34,69 @@ __PACKAGE__->_factory(
|
||||
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',
|
||||
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: 795 $
|
||||
$Rev: 851 $
|
||||
$LastChangedBy: kutterma $
|
||||
$Id: Fault11.pm 795 2009-02-21 00:04:29Z 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
|
||||
|
||||
@@ -5,7 +5,7 @@ use warnings;
|
||||
use Class::Std::Fast::Storable;
|
||||
use Scalar::Util qw(blessed);
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
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: 795 $
|
||||
$Rev: 851 $
|
||||
$LastChangedBy: kutterma $
|
||||
$Id: XSD.pm 795 2009-02-21 00:04:29Z 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
|
||||
|
||||
@@ -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.07');
|
||||
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<{}>);
|
||||
|
||||
@@ -14,7 +14,7 @@ use Class::Std::Fast::Storable;
|
||||
|
||||
use base qw(SOAP::WSDL::Server);
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
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...
|
||||
|
||||
@@ -16,7 +16,7 @@ use Apache2::Const -compile => qw(
|
||||
HTTP_LENGTH_REQUIRED
|
||||
);
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
my %LOADED_OF = ();
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ use Class::Std::Fast::Storable;
|
||||
|
||||
use base qw(SOAP::WSDL::Server);
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
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...
|
||||
|
||||
@@ -4,7 +4,7 @@ use warnings;
|
||||
use Class::Std::Fast::Storable;
|
||||
use base qw(SOAP::WSDL::Base);
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
my %port_of :ATTR(:name<port> :default<[]>);
|
||||
|
||||
|
||||
@@ -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.07');
|
||||
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: 795 $
|
||||
$Rev: 851 $
|
||||
$LastChangedBy: kutterma $
|
||||
$Id: HTTP.pm 795 2009-02-21 00:04:29Z 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
|
||||
|
||||
@@ -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.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
# register on loading
|
||||
SOAP::WSDL::Factory::Transport->register( http => __PACKAGE__ );
|
||||
|
||||
@@ -4,7 +4,7 @@ use warnings;
|
||||
use Class::Std::Fast::Storable;
|
||||
use SOAP::WSDL::Factory::Transport;
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
SOAP::WSDL::Factory::Transport->register( http => __PACKAGE__ );
|
||||
SOAP::WSDL::Factory::Transport->register( https => __PACKAGE__ );
|
||||
|
||||
@@ -2,7 +2,7 @@ package SOAP::WSDL::TypeLookup;
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
my %TYPE_FROM = (
|
||||
# wsdl:
|
||||
|
||||
@@ -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.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
my %schema_of :ATTR(:name<schema> :default<[]>);
|
||||
|
||||
|
||||
@@ -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.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
#<enumeration value="">
|
||||
|
||||
|
||||
@@ -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.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
#<attribute
|
||||
# default = string
|
||||
|
||||
@@ -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.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
#<attributeGroup
|
||||
# id = ID
|
||||
|
||||
@@ -4,7 +4,7 @@ use warnings;
|
||||
use Class::Std::Fast::Storable;
|
||||
use base qw(SOAP::WSDL::Base);
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
# only used in SOAP::WSDL - will be obsolete once SOAP::WSDL uses the
|
||||
# generative approach, too
|
||||
|
||||
@@ -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.07');
|
||||
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() );
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ use warnings;
|
||||
use Class::Std::Fast::Storable;
|
||||
use base qw(SOAP::WSDL::Base);
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
# id provided by Base
|
||||
# name provided by Base
|
||||
|
||||
@@ -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.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
#<enumeration value="">
|
||||
|
||||
|
||||
@@ -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.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
#<pattern value="">
|
||||
|
||||
# id provided by Base
|
||||
|
||||
@@ -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.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
#<xs:group name="myModelGroup">
|
||||
# <xs:sequence>
|
||||
|
||||
@@ -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.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
#<minExclusive value="">
|
||||
|
||||
|
||||
@@ -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.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
#<minExclusive value="">
|
||||
|
||||
|
||||
@@ -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.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
#<minExclusive value="">
|
||||
|
||||
|
||||
@@ -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.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
#<maxLength value="">
|
||||
|
||||
|
||||
@@ -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.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
#<minExclusive value="">
|
||||
|
||||
|
||||
@@ -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.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
#<minExclusive value="">
|
||||
|
||||
|
||||
@@ -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.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
#<minExclusive value="">
|
||||
|
||||
|
||||
@@ -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.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
#<pattern value="">
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ use warnings;
|
||||
use Class::Std::Fast::Storable;
|
||||
use base qw(SOAP::WSDL::Base);
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
# child elements
|
||||
my %attributeGroup_of :ATTR(:name<attributeGroup> :default<[]>);
|
||||
|
||||
@@ -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.07');
|
||||
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: 795 $
|
||||
$Rev: 851 $
|
||||
$LastChangedBy: kutterma $
|
||||
$Id: Builtin.pm 795 2009-02-21 00:04:29Z 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
|
||||
|
||||
@@ -4,7 +4,7 @@ use warnings;
|
||||
use Class::Std::Fast::Storable;
|
||||
use base qw(SOAP::WSDL::Base);
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
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() .'"';
|
||||
}
|
||||
|
||||
|
||||
@@ -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.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
#<totalDigits value="">
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ use warnings;
|
||||
|
||||
use base qw(SOAP::WSDL::XSD::Typelib::Element);
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
sub start_tag {
|
||||
# my ($self, $opt, $value) = @_;
|
||||
|
||||
@@ -3,7 +3,7 @@ use strict;
|
||||
use warnings;
|
||||
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
sub serialize {
|
||||
# we work on @_ for performance.
|
||||
|
||||
@@ -3,7 +3,7 @@ use strict;
|
||||
use warnings;
|
||||
use Class::Std::Fast::Storable;
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
use SOAP::WSDL::XSD::Typelib::Builtin::anyType;
|
||||
use SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType;
|
||||
|
||||
@@ -3,7 +3,7 @@ use strict;
|
||||
use warnings;
|
||||
use Class::Std::Fast::Storable constructor => 'none';
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
sub get_xmlns { 'http://www.w3.org/2001/XMLSchema' };
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ use strict;
|
||||
use warnings;
|
||||
use Class::Std::Fast::Storable constructor => 'none', cache => 1;
|
||||
|
||||
use version; our $VERSION = qv('2.00.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
use base qw(SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType);
|
||||
|
||||
|
||||
@@ -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.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
sub set_value {
|
||||
# use set_value from base class if we have a XML-Time format
|
||||
|
||||
@@ -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.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
# remove in 2.1
|
||||
our $AS_HASH_REF_WITHOUT_ATTRIBUTES = 0;
|
||||
@@ -25,6 +26,9 @@ my %NAMES_OF; # XML names of elements in a class
|
||||
# XML Attribute handling
|
||||
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;
|
||||
our $___xml_attribute_of_ref = \%xml_attr_of;
|
||||
@@ -153,8 +157,8 @@ sub _factory {
|
||||
or croak "No class given for $name";
|
||||
|
||||
# require all types here
|
||||
$type->isa('UNIVERSAL')
|
||||
or eval "require $type"
|
||||
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.
|
||||
@@ -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.07 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 } })
|
||||
# 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 {
|
||||
# remove xmlns option if there is one
|
||||
my $set_xmlns = delete $option_ref->{xmlns}
|
||||
if (exists $option_ref->{xmlns});
|
||||
join q{}, $_->start_tag({ name => $name , %{ $option_ref } })
|
||||
, $_->serialize($option_ref)
|
||||
, $_->end_tag({ name => $name , %{ $option_ref } });
|
||||
}
|
||||
}
|
||||
else {
|
||||
# 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({
|
||||
@@ -401,9 +431,13 @@ 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: 795 $
|
||||
$Rev: 851 $
|
||||
$LastChangedBy: kutterma $
|
||||
$Id: ComplexType.pm 795 2009-02-21 00:04:29Z 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
|
||||
|
||||
@@ -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.07');
|
||||
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: 795 $
|
||||
$Rev: 851 $
|
||||
$LastChangedBy: kutterma $
|
||||
$Id: Element.pm 795 2009-02-21 00:04:29Z 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
|
||||
|
||||
@@ -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.07');
|
||||
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.07');
|
||||
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: 795 $
|
||||
$Rev: 851 $
|
||||
$LastChangedBy: kutterma $
|
||||
$Id: SimpleType.pm 795 2009-02-21 00:04:29Z 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
|
||||
|
||||
@@ -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.07');
|
||||
our $VERSION = $SOAP::WSDL::VERSION;
|
||||
|
||||
#<pattern value="">
|
||||
|
||||
|
||||
@@ -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
0
t/CodeFirst/ComplexType.pm
Normal file → Executable file
0
t/CodeFirst/element.pm
Normal file → Executable file
0
t/CodeFirst/element.pm
Normal file → Executable file
0
t/CodeFirst/sequence.pm
Normal file → Executable file
0
t/CodeFirst/sequence.pm
Normal file → Executable file
77
t/CodeFirst/test.pl
Normal file → Executable file
77
t/CodeFirst/test.pl
Normal file → Executable 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;
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use strict;
|
||||
use Test::More tests => 4;
|
||||
use Test::More tests => 3;
|
||||
use File::Basename qw(dirname);
|
||||
use File::Spec;
|
||||
use File::Path;
|
||||
@@ -13,7 +13,6 @@ my $url = join '/', @dir_from;
|
||||
|
||||
my $HAVE_TEST_WARN =eval { require Test::Warn; };
|
||||
|
||||
use_ok qw(SOAP::WSDL::Generator::Visitor::Typelib);
|
||||
use_ok qw(SOAP::WSDL::Generator::Template::XSD);
|
||||
|
||||
use SOAP::WSDL::Expat::WSDLParser;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use strict;
|
||||
use Test::More tests => 4;
|
||||
use Test::More tests => 3;
|
||||
use File::Basename qw(dirname);
|
||||
use File::Spec;
|
||||
use File::Path;
|
||||
@@ -18,7 +18,6 @@ my $HAVE_TEST_XML = eval {
|
||||
1;
|
||||
};
|
||||
|
||||
use_ok qw(SOAP::WSDL::Generator::Visitor::Typelib);
|
||||
use_ok qw(SOAP::WSDL::Generator::Template::XSD);
|
||||
|
||||
use SOAP::WSDL::Expat::WSDLParser;
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
use Test::More tests => 71;
|
||||
use Test::More tests => 70;
|
||||
use File::Basename qw(dirname);
|
||||
use File::Spec;
|
||||
use File::Path;
|
||||
use diagnostics;
|
||||
my $path = File::Spec->rel2abs( dirname __FILE__ );
|
||||
|
||||
use_ok qw(SOAP::WSDL::Generator::Visitor::Typelib);
|
||||
use_ok qw(SOAP::WSDL::Generator::Template::XSD);
|
||||
|
||||
use SOAP::WSDL::Expat::WSDLParser;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user