import SOAP-WSDL 2.00_26 from CPAN
git-cpan-module: SOAP-WSDL git-cpan-version: 2.00_26 git-cpan-authorid: MKUTTER git-cpan-file: authors/id/M/MK/MKUTTER/SOAP-WSDL-2.00_26.tar.gz
This commit is contained in:
committed by
Michael G. Schwern
parent
a9033164e6
commit
3cfeebae54
@@ -0,0 +1,111 @@
|
||||
package MyElements::ListPerson;
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
{ # BLOCK to scope variables
|
||||
|
||||
sub get_xmlns { 'http://www.example.org/benchmark/' }
|
||||
|
||||
__PACKAGE__->__set_name('ListPerson');
|
||||
__PACKAGE__->__set_nillable();
|
||||
__PACKAGE__->__set_minOccurs();
|
||||
__PACKAGE__->__set_maxOccurs();
|
||||
__PACKAGE__->__set_ref();
|
||||
|
||||
use base qw(
|
||||
SOAP::WSDL::XSD::Typelib::Element
|
||||
SOAP::WSDL::XSD::Typelib::ComplexType
|
||||
);
|
||||
use Class::Std::Fast::Storable constructor => 'none';
|
||||
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
|
||||
|
||||
Class::Std::initialize();
|
||||
|
||||
{ # BLOCK to scope variables
|
||||
|
||||
my %in_of :ATTR(:get<in>);
|
||||
|
||||
__PACKAGE__->_factory(
|
||||
[ qw(
|
||||
in
|
||||
) ],
|
||||
{
|
||||
in => \%in_of,
|
||||
},
|
||||
{
|
||||
in => 'MyTypes::Person',
|
||||
}
|
||||
);
|
||||
|
||||
} # end BLOCK
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
} # end of BLOCK
|
||||
1;
|
||||
|
||||
# __END__
|
||||
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
MyElements::ListPerson
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Perl data type class for the XML Schema defined element
|
||||
ListPerson from the namespace http://www.example.org/benchmark/.
|
||||
|
||||
=head1 METHODS
|
||||
|
||||
=head2 new
|
||||
|
||||
my $element = MyElements::ListPerson->new($data);
|
||||
|
||||
Constructor. The following data structure may be passed to new():
|
||||
|
||||
{
|
||||
in => { # MyTypes::Person
|
||||
PersonID => { # MyTypes::PersonID
|
||||
ID => $some_value, # int
|
||||
},
|
||||
Salutation => $some_value, # string
|
||||
Name => $some_value, # string
|
||||
GivenName => $some_value, # string
|
||||
DateOfBirth => $some_value, # date
|
||||
HomeAddress => { # MyTypes::Address
|
||||
Street => $some_value, # string
|
||||
ZIP => $some_value, # string
|
||||
City => $some_value, # string
|
||||
Country => $some_value, # string
|
||||
PhoneNumber => $some_value, # PhoneNumber
|
||||
MobilePhoneNumber => $some_value, # PhoneNumber
|
||||
},
|
||||
WorkAddress => { # MyTypes::Address
|
||||
Street => $some_value, # string
|
||||
ZIP => $some_value, # string
|
||||
City => $some_value, # string
|
||||
Country => $some_value, # string
|
||||
PhoneNumber => $some_value, # PhoneNumber
|
||||
MobilePhoneNumber => $some_value, # PhoneNumber
|
||||
},
|
||||
Contracts => { # MyTypes::ArrayOfContract
|
||||
Contract => { # MyTypes::Contract
|
||||
ContractID => $some_value, # long
|
||||
ContractName => $some_value, # string
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Generated by SOAP::WSDL
|
||||
|
||||
=cut
|
||||
|
||||
@@ -0,0 +1,113 @@
|
||||
package MyElements::ListPersonResponse;
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
{ # BLOCK to scope variables
|
||||
|
||||
sub get_xmlns { 'http://www.example.org/benchmark/' }
|
||||
|
||||
__PACKAGE__->__set_name('ListPersonResponse');
|
||||
__PACKAGE__->__set_nillable();
|
||||
__PACKAGE__->__set_minOccurs();
|
||||
__PACKAGE__->__set_maxOccurs();
|
||||
__PACKAGE__->__set_ref();
|
||||
|
||||
use base qw(
|
||||
SOAP::WSDL::XSD::Typelib::Element
|
||||
SOAP::WSDL::XSD::Typelib::ComplexType
|
||||
);
|
||||
use Class::Std::Fast::Storable constructor => 'none';
|
||||
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
|
||||
|
||||
Class::Std::initialize();
|
||||
|
||||
{ # BLOCK to scope variables
|
||||
|
||||
my %out_of :ATTR(:get<out>);
|
||||
|
||||
__PACKAGE__->_factory(
|
||||
[ qw(
|
||||
out
|
||||
) ],
|
||||
{
|
||||
out => \%out_of,
|
||||
},
|
||||
{
|
||||
out => 'MyTypes::ArrayOfPerson',
|
||||
}
|
||||
);
|
||||
|
||||
} # end BLOCK
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
} # end of BLOCK
|
||||
1;
|
||||
|
||||
# __END__
|
||||
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
MyElements::ListPersonResponse
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Perl data type class for the XML Schema defined element
|
||||
ListPersonResponse from the namespace http://www.example.org/benchmark/.
|
||||
|
||||
=head1 METHODS
|
||||
|
||||
=head2 new
|
||||
|
||||
my $element = MyElements::ListPersonResponse->new($data);
|
||||
|
||||
Constructor. The following data structure may be passed to new():
|
||||
|
||||
{
|
||||
out => { # MyTypes::ArrayOfPerson
|
||||
NewElement => { # MyTypes::Person
|
||||
PersonID => { # MyTypes::PersonID
|
||||
ID => $some_value, # int
|
||||
},
|
||||
Salutation => $some_value, # string
|
||||
Name => $some_value, # string
|
||||
GivenName => $some_value, # string
|
||||
DateOfBirth => $some_value, # date
|
||||
HomeAddress => { # MyTypes::Address
|
||||
Street => $some_value, # string
|
||||
ZIP => $some_value, # string
|
||||
City => $some_value, # string
|
||||
Country => $some_value, # string
|
||||
PhoneNumber => $some_value, # PhoneNumber
|
||||
MobilePhoneNumber => $some_value, # PhoneNumber
|
||||
},
|
||||
WorkAddress => { # MyTypes::Address
|
||||
Street => $some_value, # string
|
||||
ZIP => $some_value, # string
|
||||
City => $some_value, # string
|
||||
Country => $some_value, # string
|
||||
PhoneNumber => $some_value, # PhoneNumber
|
||||
MobilePhoneNumber => $some_value, # PhoneNumber
|
||||
},
|
||||
Contracts => { # MyTypes::ArrayOfContract
|
||||
Contract => { # MyTypes::Contract
|
||||
ContractID => $some_value, # long
|
||||
ContractName => $some_value, # string
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Generated by SOAP::WSDL
|
||||
|
||||
=cut
|
||||
|
||||
@@ -0,0 +1,146 @@
|
||||
package MyInterfaces::TestService::TestPort;
|
||||
use strict;
|
||||
use warnings;
|
||||
use Class::Std::Fast::Storable;
|
||||
use Scalar::Util qw(blessed);
|
||||
use base qw(SOAP::WSDL::Client::Base);
|
||||
|
||||
# only load if it hasn't been loaded before
|
||||
require MyTypemaps::TestService
|
||||
if not MyTypemaps::TestService->can('get_class');
|
||||
|
||||
sub START {
|
||||
$_[0]->set_proxy('http://localhost:81/soap-wsdl-test/person.pl') if not $_[2]->{proxy};
|
||||
$_[0]->set_class_resolver('MyTypemaps::TestService')
|
||||
if not $_[2]->{class_resolver};
|
||||
}
|
||||
|
||||
sub ListPerson {
|
||||
my ($self, $body, $header) = @_;
|
||||
die "ListPerson must be called as object method (\$self is <$self>)" if not blessed($self);
|
||||
return $self->SUPER::call({
|
||||
operation => 'ListPerson',
|
||||
soap_action => 'http://www.example.org/benchmark/ListPerson',
|
||||
style => 'document',
|
||||
body => {
|
||||
|
||||
'use' => 'literal',
|
||||
namespace => '',
|
||||
encodingStyle => '',
|
||||
parts => [qw( MyElements::ListPerson )],
|
||||
},
|
||||
header => {
|
||||
|
||||
},
|
||||
headerfault => {
|
||||
|
||||
}
|
||||
}, $body, $header);
|
||||
}
|
||||
|
||||
|
||||
|
||||
1;
|
||||
|
||||
|
||||
|
||||
__END__
|
||||
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
|
||||
MyInterfaces::TestService::TestPort - SOAP Interface for the TestService Web Service
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
use MyInterfaces::TestService::TestPort;
|
||||
my $interface = MyInterfaces::TestService::TestPort->new();
|
||||
|
||||
my $response;
|
||||
$response = $interface->ListPerson();
|
||||
|
||||
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
SOAP Interface for the TestService web service
|
||||
located at http://localhost:81/soap-wsdl-test/person.pl.
|
||||
|
||||
=head1 SERVICE TestService
|
||||
|
||||
|
||||
|
||||
=head2 Port TestPort
|
||||
|
||||
|
||||
|
||||
=head1 METHODS
|
||||
|
||||
=head2 General methods
|
||||
|
||||
=head3 new
|
||||
|
||||
Constructor.
|
||||
|
||||
All arguments are forwarded to L<SOAP::WSDL::Client|SOAP::WSDL::Client>.
|
||||
|
||||
=head2 SOAP Service methods
|
||||
|
||||
Method synopsis is displayed with hash refs as parameters.
|
||||
|
||||
The commented class names in the method's parameters denote that objects
|
||||
of the corresponding class can be passed instead of the marked hash ref.
|
||||
|
||||
You may pass any combination of objects, hash and list refs to these
|
||||
methods, as long as you meet the structure.
|
||||
|
||||
|
||||
|
||||
=head3 ListPerson
|
||||
|
||||
|
||||
|
||||
$interface->ListPerson( {
|
||||
in => { # MyTypes::Person
|
||||
PersonID => { # MyTypes::PersonID
|
||||
ID => $some_value, # int
|
||||
},
|
||||
Salutation => $some_value, # string
|
||||
Name => $some_value, # string
|
||||
GivenName => $some_value, # string
|
||||
DateOfBirth => $some_value, # date
|
||||
HomeAddress => { # MyTypes::Address
|
||||
Street => $some_value, # string
|
||||
ZIP => $some_value, # string
|
||||
City => $some_value, # string
|
||||
Country => $some_value, # string
|
||||
PhoneNumber => $some_value, # PhoneNumber
|
||||
MobilePhoneNumber => $some_value, # PhoneNumber
|
||||
},
|
||||
WorkAddress => { # MyTypes::Address
|
||||
Street => $some_value, # string
|
||||
ZIP => $some_value, # string
|
||||
City => $some_value, # string
|
||||
Country => $some_value, # string
|
||||
PhoneNumber => $some_value, # PhoneNumber
|
||||
MobilePhoneNumber => $some_value, # PhoneNumber
|
||||
},
|
||||
Contracts => { # MyTypes::ArrayOfContract
|
||||
Contract => { # MyTypes::Contract
|
||||
ContractID => $some_value, # long
|
||||
ContractName => $some_value, # string
|
||||
},
|
||||
},
|
||||
},
|
||||
},,
|
||||
);
|
||||
|
||||
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Generated by SOAP::WSDL on Mon Dec 3 22:20:49 2007
|
||||
|
||||
=pod
|
||||
@@ -0,0 +1,145 @@
|
||||
package MyServer::TestService::TestPort;
|
||||
use strict;
|
||||
use warnings;
|
||||
use Class::Std::Fast::Storable;
|
||||
use Scalar::Util qw(blessed);
|
||||
use base qw(SOAP::WSDL::Client::Base);
|
||||
|
||||
# only load if it hasn't been loaded before
|
||||
require MyTypemaps::TestService
|
||||
if not MyTypemaps::TestService->can('get_class');
|
||||
|
||||
my %transport_class_of :ATTR(:name<transport_class> :default<SOAP::WSDL::Server::CGI>);
|
||||
my %transport_of :ATTR(:name<transport> :default<()>);
|
||||
my %dispatch_to :ATTR(:name<dispatch_to>);
|
||||
|
||||
my $action_map_ref = {
|
||||
'http://www.example.org/benchmark/ListPerson' => 'ListPerson',
|
||||
|
||||
};
|
||||
|
||||
sub START {
|
||||
my ($self, $ident, $arg_ref) = @_;
|
||||
eval "require $transport_class_of{ $ident }"
|
||||
or die "Cannot load transport class $transport_class_of{ $ident }: $@";
|
||||
$transport_of{ $ident } = $transport_class_of{ $ident }->new({
|
||||
action_map_ref => $action_map_ref,
|
||||
class_resolver => 'MyTypemaps::TestService',
|
||||
dispatch_to => $dispatch_to{ $ident },
|
||||
});
|
||||
}
|
||||
|
||||
sub handle {
|
||||
$transport_of{ ${ $_[0] } }->handle();
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
|
||||
|
||||
__END__
|
||||
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
MyInterfaces::TestService::TestPort - SOAP Server Class for the TestService Web Service
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
use MyServer::TestService::TestPort;
|
||||
my $server = MyServer::TestService::TestPort->new({
|
||||
dispatch_to => 'My::Handler::Class',
|
||||
transport_class => 'SOAP::WSDL::Server::CGI', # optional, default
|
||||
});
|
||||
$server->handle();
|
||||
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
SOAP Server handler for the TestService web service
|
||||
located at http://localhost:81/soap-wsdl-test/person.pl.
|
||||
|
||||
=head1 SERVICE TestService
|
||||
|
||||
|
||||
|
||||
=head2 Port TestPort
|
||||
|
||||
|
||||
|
||||
=head1 METHODS
|
||||
|
||||
=head2 General methods
|
||||
|
||||
=head3 new
|
||||
|
||||
Constructor.
|
||||
|
||||
The C<dispatch_to> argument is mandatory. It must be a class or object
|
||||
implementing the SOAP Service methods listed below.
|
||||
|
||||
=head2 SOAP Service methods
|
||||
|
||||
Your dispatch_to class has to implement the following methods:
|
||||
|
||||
The examples below serve as copy-and-paste prototypes to use in your
|
||||
class.
|
||||
|
||||
=head3 ListPerson
|
||||
|
||||
|
||||
|
||||
sub ListPerson {
|
||||
my ($self, $body, $header) = @_;
|
||||
# body is a ??? object - sorry, POD not implemented yet
|
||||
# header is a ??? object - sorry, POD not implemented yet
|
||||
|
||||
# do something with body and header...
|
||||
|
||||
return MyElements::ListPersonResponse->new( {
|
||||
out => { # MyTypes::ArrayOfPerson
|
||||
NewElement => { # MyTypes::Person
|
||||
PersonID => { # MyTypes::PersonID
|
||||
ID => $some_value, # int
|
||||
},
|
||||
Salutation => $some_value, # string
|
||||
Name => $some_value, # string
|
||||
GivenName => $some_value, # string
|
||||
DateOfBirth => $some_value, # date
|
||||
HomeAddress => { # MyTypes::Address
|
||||
Street => $some_value, # string
|
||||
ZIP => $some_value, # string
|
||||
City => $some_value, # string
|
||||
Country => $some_value, # string
|
||||
PhoneNumber => $some_value, # PhoneNumber
|
||||
MobilePhoneNumber => $some_value, # PhoneNumber
|
||||
},
|
||||
WorkAddress => { # MyTypes::Address
|
||||
Street => $some_value, # string
|
||||
ZIP => $some_value, # string
|
||||
City => $some_value, # string
|
||||
Country => $some_value, # string
|
||||
PhoneNumber => $some_value, # PhoneNumber
|
||||
MobilePhoneNumber => $some_value, # PhoneNumber
|
||||
},
|
||||
Contracts => { # MyTypes::ArrayOfContract
|
||||
Contract => { # MyTypes::Contract
|
||||
ContractID => $some_value, # long
|
||||
ContractName => $some_value, # string
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Generated by SOAP::WSDL on Mon Dec 3 22:20:32 2007
|
||||
|
||||
=pod
|
||||
@@ -0,0 +1,92 @@
|
||||
package MyTypemaps::TestService;
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
our $typemap_1 = {
|
||||
'ListPersonResponse/out/NewElement/WorkAddress/Street' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'ListPerson/in/Contracts' => 'MyTypes::ArrayOfContract',
|
||||
'ListPerson/in/HomeAddress/PhoneNumber' => 'MyTypes::PhoneNumber',
|
||||
'ListPersonResponse/out/NewElement/HomeAddress' => 'MyTypes::Address',
|
||||
'ListPersonResponse/out/NewElement/Contracts/Contract' => 'MyTypes::Contract',
|
||||
'ListPersonResponse/out/NewElement/HomeAddress/ZIP' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'ListPerson/in/WorkAddress/City' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'ListPerson/in/HomeAddress' => 'MyTypes::Address',
|
||||
'Fault/faultcode' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI',
|
||||
'ListPerson/in/HomeAddress/City' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'ListPersonResponse/out/NewElement/WorkAddress/PhoneNumber' => 'MyTypes::PhoneNumber',
|
||||
'ListPerson/in/WorkAddress/ZIP' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'ListPersonResponse/out/NewElement/Contracts' => 'MyTypes::ArrayOfContract',
|
||||
'ListPerson/in/WorkAddress/Street' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'ListPerson/in' => 'MyTypes::Person',
|
||||
'ListPersonResponse/out/NewElement/GivenName' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'ListPersonResponse/out/NewElement/HomeAddress/PhoneNumber' => 'MyTypes::PhoneNumber',
|
||||
'ListPersonResponse/out/NewElement/HomeAddress/City' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'ListPersonResponse/out/NewElement' => 'MyTypes::Person',
|
||||
'ListPerson/in/PersonID/ID' => 'SOAP::WSDL::XSD::Typelib::Builtin::int',
|
||||
'ListPerson/in/HomeAddress/Street' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'ListPersonResponse/out/NewElement/PersonID/ID' => 'SOAP::WSDL::XSD::Typelib::Builtin::int',
|
||||
'ListPerson/in/HomeAddress/Country' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'ListPerson/in/GivenName' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'ListPerson/in/HomeAddress/MobilePhoneNumber' => 'MyTypes::PhoneNumber',
|
||||
'ListPerson/in/Name' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'ListPersonResponse/out/NewElement/PersonID' => 'MyTypes::PersonID',
|
||||
'ListPersonResponse/out/NewElement/WorkAddress/MobilePhoneNumber' => 'MyTypes::PhoneNumber',
|
||||
'ListPersonResponse/out' => 'MyTypes::ArrayOfPerson',
|
||||
'ListPerson/in/Contracts/Contract' => 'MyTypes::Contract',
|
||||
'ListPersonResponse/out/NewElement/Name' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'ListPersonResponse/out/NewElement/WorkAddress/ZIP' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'ListPerson/in/DateOfBirth' => 'SOAP::WSDL::XSD::Typelib::Builtin::date',
|
||||
'ListPersonResponse/out/NewElement/HomeAddress/MobilePhoneNumber' => 'MyTypes::PhoneNumber',
|
||||
'ListPersonResponse/out/NewElement/HomeAddress/Country' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'Fault/faultstring' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'ListPersonResponse/out/NewElement/HomeAddress/Street' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'ListPersonResponse/out/NewElement/Contracts/Contract/ContractName' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'Fault' => 'SOAP::WSDL::SOAP::Typelib::Fault11',
|
||||
'ListPerson/in/Contracts/Contract/ContractName' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'ListPersonResponse' => 'MyElements::ListPersonResponse',
|
||||
'ListPersonResponse/out/NewElement/Salutation' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'ListPersonResponse/out/NewElement/WorkAddress/City' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'Fault/faultactor' => 'SOAP::WSDL::XSD::Typelib::Builtin::token',
|
||||
'ListPerson' => 'MyElements::ListPerson',
|
||||
'ListPerson/in/Salutation' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'ListPerson/in/WorkAddress/MobilePhoneNumber' => 'MyTypes::PhoneNumber',
|
||||
'Fault/detail' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'ListPerson/in/WorkAddress/Country' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'ListPerson/in/PersonID' => 'MyTypes::PersonID',
|
||||
'ListPerson/in/HomeAddress/ZIP' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'ListPersonResponse/out/NewElement/WorkAddress' => 'MyTypes::Address',
|
||||
'ListPersonResponse/out/NewElement/DateOfBirth' => 'SOAP::WSDL::XSD::Typelib::Builtin::date',
|
||||
'ListPerson/in/WorkAddress/PhoneNumber' => 'MyTypes::PhoneNumber',
|
||||
'ListPersonResponse/out/NewElement/WorkAddress/Country' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'ListPersonResponse/out/NewElement/Contracts/Contract/ContractID' => 'SOAP::WSDL::XSD::Typelib::Builtin::long',
|
||||
'ListPerson/in/Contracts/Contract/ContractID' => 'SOAP::WSDL::XSD::Typelib::Builtin::long',
|
||||
'ListPerson/in/WorkAddress' => 'MyTypes::Address'
|
||||
};
|
||||
;
|
||||
|
||||
sub get_class {
|
||||
my $name = join '/', @{ $_[1] };
|
||||
exists $typemap_1->{ $name } or die "Cannot resolve $name via " . __PACKAGE__;
|
||||
return $typemap_1->{ $name };
|
||||
}
|
||||
|
||||
sub get_typemap {
|
||||
return $typemap_1;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
||||
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
MyTypemaps::TestService; - typemap for ::TestService;
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Typemap created by SOAP::WSDL for map-based SOAP message parsers.
|
||||
|
||||
=cut
|
||||
|
||||
@@ -0,0 +1,98 @@
|
||||
package MyTypes::Address;
|
||||
use strict;
|
||||
use warnings;
|
||||
use Class::Std::Fast::Storable constructor => 'none';
|
||||
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
|
||||
|
||||
Class::Std::initialize();
|
||||
|
||||
{ # BLOCK to scope variables
|
||||
|
||||
my %Street_of :ATTR(:get<Street>);
|
||||
my %ZIP_of :ATTR(:get<ZIP>);
|
||||
my %City_of :ATTR(:get<City>);
|
||||
my %Country_of :ATTR(:get<Country>);
|
||||
my %PhoneNumber_of :ATTR(:get<PhoneNumber>);
|
||||
my %MobilePhoneNumber_of :ATTR(:get<MobilePhoneNumber>);
|
||||
|
||||
__PACKAGE__->_factory(
|
||||
[ qw(
|
||||
Street
|
||||
ZIP
|
||||
City
|
||||
Country
|
||||
PhoneNumber
|
||||
MobilePhoneNumber
|
||||
) ],
|
||||
{
|
||||
Street => \%Street_of,
|
||||
ZIP => \%ZIP_of,
|
||||
City => \%City_of,
|
||||
Country => \%Country_of,
|
||||
PhoneNumber => \%PhoneNumber_of,
|
||||
MobilePhoneNumber => \%MobilePhoneNumber_of,
|
||||
},
|
||||
{
|
||||
Street => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
ZIP => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
City => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
Country => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
PhoneNumber => 'MyTypes::PhoneNumber',
|
||||
MobilePhoneNumber => 'MyTypes::PhoneNumber',
|
||||
}
|
||||
);
|
||||
|
||||
} # end BLOCK
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1;
|
||||
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
MyTypes::Address
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Perl data type class for the XML Schema defined complextype
|
||||
Address from the namespace http://www.example.org/benchmark/.
|
||||
|
||||
=head2 PROPERTIES
|
||||
|
||||
The following properties may be accessed using get_PROPERTY / set_PROPERTY
|
||||
methods:
|
||||
|
||||
Street
|
||||
ZIP
|
||||
City
|
||||
Country
|
||||
PhoneNumber
|
||||
MobilePhoneNumber
|
||||
|
||||
|
||||
=head1 METHODS
|
||||
|
||||
=head2 new
|
||||
|
||||
Constructor. The following data structure may be passed to new():
|
||||
|
||||
{ # MyTypes::Address
|
||||
Street => $some_value, # string
|
||||
ZIP => $some_value, # string
|
||||
City => $some_value, # string
|
||||
Country => $some_value, # string
|
||||
PhoneNumber => $some_value, # PhoneNumber
|
||||
MobilePhoneNumber => $some_value, # PhoneNumber
|
||||
},
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Generated by SOAP::WSDL
|
||||
|
||||
=cut
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
package MyTypes::ArrayOfContract;
|
||||
use strict;
|
||||
use warnings;
|
||||
use Class::Std::Fast::Storable constructor => 'none';
|
||||
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
|
||||
|
||||
Class::Std::initialize();
|
||||
|
||||
{ # BLOCK to scope variables
|
||||
|
||||
my %Contract_of :ATTR(:get<Contract>);
|
||||
|
||||
__PACKAGE__->_factory(
|
||||
[ qw(
|
||||
Contract
|
||||
) ],
|
||||
{
|
||||
Contract => \%Contract_of,
|
||||
},
|
||||
{
|
||||
Contract => 'MyTypes::Contract',
|
||||
}
|
||||
);
|
||||
|
||||
} # end BLOCK
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1;
|
||||
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
MyTypes::ArrayOfContract
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Perl data type class for the XML Schema defined complextype
|
||||
ArrayOfContract from the namespace http://www.example.org/benchmark/.
|
||||
|
||||
=head2 PROPERTIES
|
||||
|
||||
The following properties may be accessed using get_PROPERTY / set_PROPERTY
|
||||
methods:
|
||||
|
||||
Contract
|
||||
|
||||
|
||||
=head1 METHODS
|
||||
|
||||
=head2 new
|
||||
|
||||
Constructor. The following data structure may be passed to new():
|
||||
|
||||
{ # MyTypes::ArrayOfContract
|
||||
Contract => { # MyTypes::Contract
|
||||
ContractID => $some_value, # long
|
||||
ContractName => $some_value, # string
|
||||
},
|
||||
},
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Generated by SOAP::WSDL
|
||||
|
||||
=cut
|
||||
|
||||
@@ -0,0 +1,98 @@
|
||||
package MyTypes::ArrayOfPerson;
|
||||
use strict;
|
||||
use warnings;
|
||||
use Class::Std::Fast::Storable constructor => 'none';
|
||||
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
|
||||
|
||||
Class::Std::initialize();
|
||||
|
||||
{ # BLOCK to scope variables
|
||||
|
||||
my %NewElement_of :ATTR(:get<NewElement>);
|
||||
|
||||
__PACKAGE__->_factory(
|
||||
[ qw(
|
||||
NewElement
|
||||
) ],
|
||||
{
|
||||
NewElement => \%NewElement_of,
|
||||
},
|
||||
{
|
||||
NewElement => 'MyTypes::Person',
|
||||
}
|
||||
);
|
||||
|
||||
} # end BLOCK
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1;
|
||||
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
MyTypes::ArrayOfPerson
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Perl data type class for the XML Schema defined complextype
|
||||
ArrayOfPerson from the namespace http://www.example.org/benchmark/.
|
||||
|
||||
=head2 PROPERTIES
|
||||
|
||||
The following properties may be accessed using get_PROPERTY / set_PROPERTY
|
||||
methods:
|
||||
|
||||
NewElement
|
||||
|
||||
|
||||
=head1 METHODS
|
||||
|
||||
=head2 new
|
||||
|
||||
Constructor. The following data structure may be passed to new():
|
||||
|
||||
{ # MyTypes::ArrayOfPerson
|
||||
NewElement => { # MyTypes::Person
|
||||
PersonID => { # MyTypes::PersonID
|
||||
ID => $some_value, # int
|
||||
},
|
||||
Salutation => $some_value, # string
|
||||
Name => $some_value, # string
|
||||
GivenName => $some_value, # string
|
||||
DateOfBirth => $some_value, # date
|
||||
HomeAddress => { # MyTypes::Address
|
||||
Street => $some_value, # string
|
||||
ZIP => $some_value, # string
|
||||
City => $some_value, # string
|
||||
Country => $some_value, # string
|
||||
PhoneNumber => $some_value, # PhoneNumber
|
||||
MobilePhoneNumber => $some_value, # PhoneNumber
|
||||
},
|
||||
WorkAddress => { # MyTypes::Address
|
||||
Street => $some_value, # string
|
||||
ZIP => $some_value, # string
|
||||
City => $some_value, # string
|
||||
Country => $some_value, # string
|
||||
PhoneNumber => $some_value, # PhoneNumber
|
||||
MobilePhoneNumber => $some_value, # PhoneNumber
|
||||
},
|
||||
Contracts => { # MyTypes::ArrayOfContract
|
||||
Contract => { # MyTypes::Contract
|
||||
ContractID => $some_value, # long
|
||||
ContractName => $some_value, # string
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Generated by SOAP::WSDL
|
||||
|
||||
=cut
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
package MyTypes::Contract;
|
||||
use strict;
|
||||
use warnings;
|
||||
use Class::Std::Fast::Storable constructor => 'none';
|
||||
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
|
||||
|
||||
Class::Std::initialize();
|
||||
|
||||
{ # BLOCK to scope variables
|
||||
|
||||
my %ContractID_of :ATTR(:get<ContractID>);
|
||||
my %ContractName_of :ATTR(:get<ContractName>);
|
||||
|
||||
__PACKAGE__->_factory(
|
||||
[ qw(
|
||||
ContractID
|
||||
ContractName
|
||||
) ],
|
||||
{
|
||||
ContractID => \%ContractID_of,
|
||||
ContractName => \%ContractName_of,
|
||||
},
|
||||
{
|
||||
ContractID => 'SOAP::WSDL::XSD::Typelib::Builtin::long',
|
||||
ContractName => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
}
|
||||
);
|
||||
|
||||
} # end BLOCK
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1;
|
||||
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
MyTypes::Contract
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Perl data type class for the XML Schema defined complextype
|
||||
Contract from the namespace http://www.example.org/benchmark/.
|
||||
|
||||
=head2 PROPERTIES
|
||||
|
||||
The following properties may be accessed using get_PROPERTY / set_PROPERTY
|
||||
methods:
|
||||
|
||||
ContractID
|
||||
ContractName
|
||||
|
||||
|
||||
=head1 METHODS
|
||||
|
||||
=head2 new
|
||||
|
||||
Constructor. The following data structure may be passed to new():
|
||||
|
||||
{ # MyTypes::Contract
|
||||
ContractID => $some_value, # long
|
||||
ContractName => $some_value, # string
|
||||
},
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Generated by SOAP::WSDL
|
||||
|
||||
=cut
|
||||
|
||||
@@ -0,0 +1,131 @@
|
||||
package MyTypes::Person;
|
||||
use strict;
|
||||
use warnings;
|
||||
use Class::Std::Fast::Storable constructor => 'none';
|
||||
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
|
||||
|
||||
Class::Std::initialize();
|
||||
|
||||
{ # BLOCK to scope variables
|
||||
|
||||
my %PersonID_of :ATTR(:get<PersonID>);
|
||||
my %Salutation_of :ATTR(:get<Salutation>);
|
||||
my %Name_of :ATTR(:get<Name>);
|
||||
my %GivenName_of :ATTR(:get<GivenName>);
|
||||
my %DateOfBirth_of :ATTR(:get<DateOfBirth>);
|
||||
my %HomeAddress_of :ATTR(:get<HomeAddress>);
|
||||
my %WorkAddress_of :ATTR(:get<WorkAddress>);
|
||||
my %Contracts_of :ATTR(:get<Contracts>);
|
||||
|
||||
__PACKAGE__->_factory(
|
||||
[ qw(
|
||||
PersonID
|
||||
Salutation
|
||||
Name
|
||||
GivenName
|
||||
DateOfBirth
|
||||
HomeAddress
|
||||
WorkAddress
|
||||
Contracts
|
||||
) ],
|
||||
{
|
||||
PersonID => \%PersonID_of,
|
||||
Salutation => \%Salutation_of,
|
||||
Name => \%Name_of,
|
||||
GivenName => \%GivenName_of,
|
||||
DateOfBirth => \%DateOfBirth_of,
|
||||
HomeAddress => \%HomeAddress_of,
|
||||
WorkAddress => \%WorkAddress_of,
|
||||
Contracts => \%Contracts_of,
|
||||
},
|
||||
{
|
||||
PersonID => 'MyTypes::PersonID',
|
||||
Salutation => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
Name => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
GivenName => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
DateOfBirth => 'SOAP::WSDL::XSD::Typelib::Builtin::date',
|
||||
HomeAddress => 'MyTypes::Address',
|
||||
WorkAddress => 'MyTypes::Address',
|
||||
Contracts => 'MyTypes::ArrayOfContract',
|
||||
}
|
||||
);
|
||||
|
||||
} # end BLOCK
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1;
|
||||
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
MyTypes::Person
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Perl data type class for the XML Schema defined complextype
|
||||
Person from the namespace http://www.example.org/benchmark/.
|
||||
|
||||
=head2 PROPERTIES
|
||||
|
||||
The following properties may be accessed using get_PROPERTY / set_PROPERTY
|
||||
methods:
|
||||
|
||||
PersonID
|
||||
Salutation
|
||||
Name
|
||||
GivenName
|
||||
DateOfBirth
|
||||
HomeAddress
|
||||
WorkAddress
|
||||
Contracts
|
||||
|
||||
|
||||
=head1 METHODS
|
||||
|
||||
=head2 new
|
||||
|
||||
Constructor. The following data structure may be passed to new():
|
||||
|
||||
{ # MyTypes::Person
|
||||
PersonID => { # MyTypes::PersonID
|
||||
ID => $some_value, # int
|
||||
},
|
||||
Salutation => $some_value, # string
|
||||
Name => $some_value, # string
|
||||
GivenName => $some_value, # string
|
||||
DateOfBirth => $some_value, # date
|
||||
HomeAddress => { # MyTypes::Address
|
||||
Street => $some_value, # string
|
||||
ZIP => $some_value, # string
|
||||
City => $some_value, # string
|
||||
Country => $some_value, # string
|
||||
PhoneNumber => $some_value, # PhoneNumber
|
||||
MobilePhoneNumber => $some_value, # PhoneNumber
|
||||
},
|
||||
WorkAddress => { # MyTypes::Address
|
||||
Street => $some_value, # string
|
||||
ZIP => $some_value, # string
|
||||
City => $some_value, # string
|
||||
Country => $some_value, # string
|
||||
PhoneNumber => $some_value, # PhoneNumber
|
||||
MobilePhoneNumber => $some_value, # PhoneNumber
|
||||
},
|
||||
Contracts => { # MyTypes::ArrayOfContract
|
||||
Contract => { # MyTypes::Contract
|
||||
ContractID => $some_value, # long
|
||||
ContractName => $some_value, # string
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Generated by SOAP::WSDL
|
||||
|
||||
=cut
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
package MyTypes::PersonID;
|
||||
use strict;
|
||||
use warnings;
|
||||
use Class::Std::Fast::Storable constructor => 'none';
|
||||
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
|
||||
|
||||
Class::Std::initialize();
|
||||
|
||||
{ # BLOCK to scope variables
|
||||
|
||||
my %ID_of :ATTR(:get<ID>);
|
||||
|
||||
__PACKAGE__->_factory(
|
||||
[ qw(
|
||||
ID
|
||||
) ],
|
||||
{
|
||||
ID => \%ID_of,
|
||||
},
|
||||
{
|
||||
ID => 'SOAP::WSDL::XSD::Typelib::Builtin::int',
|
||||
}
|
||||
);
|
||||
|
||||
} # end BLOCK
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1;
|
||||
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
MyTypes::PersonID
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Perl data type class for the XML Schema defined complextype
|
||||
PersonID from the namespace http://www.example.org/benchmark/.
|
||||
|
||||
=head2 PROPERTIES
|
||||
|
||||
The following properties may be accessed using get_PROPERTY / set_PROPERTY
|
||||
methods:
|
||||
|
||||
ID
|
||||
|
||||
|
||||
=head1 METHODS
|
||||
|
||||
=head2 new
|
||||
|
||||
Constructor. The following data structure may be passed to new():
|
||||
|
||||
{ # MyTypes::PersonID
|
||||
ID => $some_value, # int
|
||||
},
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Generated by SOAP::WSDL
|
||||
|
||||
=cut
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
package MyTypes::PhoneNumber;
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
sub get_xmlns { 'http://www.example.org/benchmark/'};
|
||||
|
||||
# derivation by restriction
|
||||
use base qw(
|
||||
SOAP::WSDL::XSD::Typelib::Builtin::string
|
||||
);
|
||||
|
||||
|
||||
|
||||
1;
|
||||
|
||||
=pod
|
||||
|
||||
=head1 MyTypes::PhoneNumber
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Perl data type class for the XML Schema defined simpleType
|
||||
PhoneNumber from the namespace http://www.example.org/benchmark/.
|
||||
|
||||
This clase is derived from SOAP::WSDL::XSD::Typelib::Builtin::string
|
||||
. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly
|
||||
like it's base type.
|
||||
|
||||
# Description of restrictions not implemented yet.
|
||||
|
||||
=head1 METHODS
|
||||
|
||||
=head2 new
|
||||
|
||||
Constructor.
|
||||
|
||||
=head2 get_value / set_value
|
||||
|
||||
Getter and setter for the simpleType's value.
|
||||
|
||||
=head1 OVERLOADING
|
||||
|
||||
Depending on the simple type's base type, the following operations are overloaded
|
||||
|
||||
Stringification
|
||||
Numerification
|
||||
Boolification
|
||||
|
||||
Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information.
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Generated by SOAP::WSDL
|
||||
|
||||
=cut
|
||||
|
||||
Reference in New Issue
Block a user