import SOAP-WSDL 2.00_25 from CPAN
git-cpan-module: SOAP-WSDL git-cpan-version: 2.00_25 git-cpan-authorid: MKUTTER git-cpan-file: authors/id/M/MK/MKUTTER/SOAP-WSDL-2.00_25.tar.gz
This commit is contained in:
committed by
Michael G. Schwern
parent
84b53d9261
commit
a9033164e6
Executable
+55
@@ -0,0 +1,55 @@
|
||||
#!/usr/bin/perl -w
|
||||
use strict;
|
||||
use warnings;
|
||||
use lib '../../lib';
|
||||
use lib '../lib';
|
||||
use MyServer::HelloWorld::HelloWorldSoap;
|
||||
|
||||
my $soap = MyServer::HelloWorld::HelloWorldSoap->new({
|
||||
dispatch_to => 'main',
|
||||
});
|
||||
|
||||
$soap->handle();
|
||||
|
||||
sub sayHello {
|
||||
my ($self, $body, $header) = @_;
|
||||
my $name = $body->get_name();
|
||||
my $givenName = $body->get_givenName();
|
||||
|
||||
return MyElements::sayHelloResponse->new({
|
||||
sayHelloResult => "Hello $givenName $name"
|
||||
})
|
||||
}
|
||||
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
helloworld.pl - a simple CGI-based SOAP server implementing the service from
|
||||
in examples/wsdl/helloworld.wsdl
|
||||
|
||||
=head1 USAGE
|
||||
|
||||
Before using this script, you should secure your webserver. The easiest way
|
||||
to do so is to let it listen to 127.0.0.1 only.
|
||||
|
||||
Then make a ScriptAlias named /soap-wsdl-test/ pointing at the directory
|
||||
this file lies in.
|
||||
|
||||
For my apache, it looks like this:
|
||||
|
||||
ScriptAlias /soap-wsdl-test/ /home/martin/workspace/SOAP-WSDL/example/cgi-bin/
|
||||
<Directory "/home/martin/workspace/SOAP-WSDL/example/cgi-bin">
|
||||
AllowOverride None
|
||||
Options +ExecCGI -MultiViews
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
</Directory>
|
||||
|
||||
Then run the helloworld.pl from the examples directory. It should print
|
||||
|
||||
Hello World
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
=cut
|
||||
@@ -0,0 +1,29 @@
|
||||
use lib 'lib';
|
||||
use lib '../lib';
|
||||
use MyInterfaces::BarCode::BarCodeSoap;
|
||||
my $interface = MyInterfaces::BarCode::BarCodeSoap->new();
|
||||
my $barcode = $interface->GenerateBarCode( {
|
||||
BarCodeParam => { # MyTypes::BarCodeData
|
||||
Height => 42, # int
|
||||
Width => 120, # int
|
||||
Angle => 90, # int
|
||||
Ratio => 1, # int
|
||||
Module => 1, # int
|
||||
Left => 10, # int
|
||||
Top => 10, # int
|
||||
CheckSum => 0, # boolean
|
||||
FontName => 'Arial', # string
|
||||
BarColor => 'black', # string
|
||||
BGColor => 'white', # string
|
||||
FontSize => 6.25, # float
|
||||
barcodeOption => 'Both', # BarcodeOption
|
||||
barcodeType => 'CodeMSI', # BarcodeType
|
||||
checkSumMethod => 'None', # CheckSumMethod
|
||||
showTextPosition => 'TopLeft', # ShowTextPosition
|
||||
BarCodeImageFormat => 'PNG', # ImageFormats
|
||||
},
|
||||
BarCodeText => 'JustSomeText', # string
|
||||
},
|
||||
);
|
||||
die $barcode if not ($barcode);
|
||||
print $barcode;
|
||||
@@ -0,0 +1,21 @@
|
||||
#!/usr/bin/perl -w
|
||||
use strict;
|
||||
use warnings;
|
||||
use lib 'lib';
|
||||
|
||||
# I have to generate the interface using wsdl2perl.pl before
|
||||
use MyInterfaces::HelloWorld::HelloWorldSoap;
|
||||
|
||||
my $soap = MyInterfaces::HelloWorld::HelloWorldSoap->new();
|
||||
|
||||
# I have to lookup the method and synopsis from the interface's pod
|
||||
my $result = $soap->sayHello({
|
||||
name => $ARGV[1] || '"Your name"',
|
||||
givenName => $ARGV[0] || '"Your given name"',
|
||||
});
|
||||
|
||||
die $result if not $result;
|
||||
|
||||
# I have to lookup the output parameter from the interface's POD - or try:
|
||||
# Bad method names will die with a list of available methods
|
||||
print $result->get_sayHelloResult(), "\n";
|
||||
@@ -0,0 +1,21 @@
|
||||
#!/usr/bin/perl -w
|
||||
use strict;
|
||||
use warnings;
|
||||
use XML::Compile::WSDL11;
|
||||
use XML::Compile::Transport::SOAPHTTP;
|
||||
|
||||
my $wsdl = XML::Compile::WSDL11->new('wsdl/11_helloworld.wsdl');
|
||||
|
||||
# I have to lookup the methods from the WSDL
|
||||
my $call = $wsdl->compileClient('sayHello');
|
||||
|
||||
# I have to lookup the parameters from the WSDL
|
||||
my $result = $call->(
|
||||
name => $ARGV[1] || '"Your name"',
|
||||
givenName => $ARGV[0] || '"Your given name"',
|
||||
);
|
||||
|
||||
die "Error calling soap method" if not defined $result;
|
||||
|
||||
# I have to lookup the output parameters from the WSDL - or try Dumper
|
||||
print $result->{ parameters }->{ sayHelloResult }, "\n";
|
||||
@@ -0,0 +1,27 @@
|
||||
#!/usr/bin/perl -w
|
||||
use strict;
|
||||
use warnings;
|
||||
use SOAP::Lite;
|
||||
|
||||
# I have to lookup the URL from the WSDL
|
||||
my $soap = SOAP::Lite->new(
|
||||
proxy => 'http://localhost:81/soap-wsdl-test/helloworld.pl'
|
||||
);
|
||||
|
||||
# I have to lookup the SOAPAction from the WSDL
|
||||
$soap->on_action( sub { "urn:HelloWorld#sayHello" });
|
||||
$soap->autotype(0);
|
||||
|
||||
# I have to lookup the top level element's namespace from the WSDL
|
||||
# I have to encode all parameters as SOAP::Data objects
|
||||
# I have to know the order of parameters
|
||||
my $som = $soap->call(
|
||||
SOAP::Data->name("sayHello")
|
||||
->attr({ xmlns => 'urn:HelloWorld' }),
|
||||
SOAP::Data->name('name')->value( $ARGV[1] || '"Your name"'),
|
||||
SOAP::Data->name('givenName')->value( $ARGV[0] || '"Your given name"'),
|
||||
);
|
||||
|
||||
die $som->fault->{ faultstring } if ($som->fault);
|
||||
|
||||
print $som->result, "\n";
|
||||
@@ -0,0 +1,86 @@
|
||||
package MyElements::sayHello;
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
{ # BLOCK to scope variables
|
||||
|
||||
sub get_xmlns { 'urn:HelloWorld' }
|
||||
|
||||
__PACKAGE__->__set_name('sayHello');
|
||||
__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 %name_of :ATTR(:get<name>);
|
||||
my %givenName_of :ATTR(:get<givenName>);
|
||||
|
||||
__PACKAGE__->_factory(
|
||||
[ qw(
|
||||
name
|
||||
givenName
|
||||
) ],
|
||||
{
|
||||
name => \%name_of,
|
||||
givenName => \%givenName_of,
|
||||
},
|
||||
{
|
||||
name => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
givenName => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
}
|
||||
);
|
||||
|
||||
} # end BLOCK
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
} # end of BLOCK
|
||||
1;
|
||||
|
||||
# __END__
|
||||
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
MyElements::sayHello
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Perl data type class for the XML Schema defined element
|
||||
sayHello from the namespace urn:HelloWorld.
|
||||
|
||||
=head1 METHODS
|
||||
|
||||
=head2 new
|
||||
|
||||
my $element = MyElements::sayHello->new($data);
|
||||
|
||||
Constructor. The following data structure may be passed to new():
|
||||
|
||||
{
|
||||
name => $some_value, # string
|
||||
givenName => $some_value, # string
|
||||
},
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Generated by SOAP::WSDL
|
||||
|
||||
=cut
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
package MyElements::sayHelloResponse;
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
{ # BLOCK to scope variables
|
||||
|
||||
sub get_xmlns { 'urn:HelloWorld' }
|
||||
|
||||
__PACKAGE__->__set_name('sayHelloResponse');
|
||||
__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 %sayHelloResult_of :ATTR(:get<sayHelloResult>);
|
||||
|
||||
__PACKAGE__->_factory(
|
||||
[ qw(
|
||||
sayHelloResult
|
||||
) ],
|
||||
{
|
||||
sayHelloResult => \%sayHelloResult_of,
|
||||
},
|
||||
{
|
||||
sayHelloResult => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
}
|
||||
);
|
||||
|
||||
} # end BLOCK
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
} # end of BLOCK
|
||||
1;
|
||||
|
||||
# __END__
|
||||
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
MyElements::sayHelloResponse
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Perl data type class for the XML Schema defined element
|
||||
sayHelloResponse from the namespace urn:HelloWorld.
|
||||
|
||||
=head1 METHODS
|
||||
|
||||
=head2 new
|
||||
|
||||
my $element = MyElements::sayHelloResponse->new($data);
|
||||
|
||||
Constructor. The following data structure may be passed to new():
|
||||
|
||||
{
|
||||
sayHelloResult => $some_value, # string
|
||||
},
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Generated by SOAP::WSDL
|
||||
|
||||
=cut
|
||||
|
||||
@@ -0,0 +1,133 @@
|
||||
package MyInterfaces::BarCode::BarCodeSoap;
|
||||
use strict;
|
||||
use warnings;
|
||||
use Class::Std::Storable;
|
||||
use base qw(SOAP::WSDL::Client::Base);
|
||||
|
||||
# only load if it hasn't been loaded before
|
||||
require MyTypemaps::BarCode
|
||||
if not MyTypemaps::BarCode->can('get_class');
|
||||
|
||||
sub START {
|
||||
$_[0]->set_proxy('http://www.webservicex.net/genericbarcode.asmx') if not $_[2]->{proxy};
|
||||
$_[0]->set_class_resolver('MyTypemaps::BarCode')
|
||||
if not $_[2]->{class_resolver};
|
||||
}
|
||||
|
||||
sub GenerateBarCode {
|
||||
my ($self, $body, $header) = @_;
|
||||
return $self->SUPER::call({
|
||||
operation => 'GenerateBarCode',
|
||||
soap_action => 'http://www.webservicex.net/GenerateBarCode',
|
||||
style => 'document',
|
||||
body => {
|
||||
|
||||
'use' => 'literal',
|
||||
namespace => '',
|
||||
encodingStyle => '',
|
||||
parts => [qw( MyElements::GenerateBarCode )],
|
||||
},
|
||||
header => {
|
||||
|
||||
},
|
||||
headerfault => {
|
||||
|
||||
}
|
||||
}, $body, $header);
|
||||
}
|
||||
|
||||
|
||||
|
||||
1;
|
||||
|
||||
|
||||
|
||||
__END__
|
||||
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
|
||||
MyInterfaces::BarCode::BarCodeSoap - SOAP Interface for the BarCode Web Service
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
use MyInterfaces::BarCode::BarCodeSoap;
|
||||
my $interface = MyInterfaces::BarCode::BarCodeSoap->new();
|
||||
|
||||
my $response;
|
||||
$response = $interface->GenerateBarCode();
|
||||
|
||||
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
SOAP Interface for the BarCode web service
|
||||
located at http://www.webservicex.net/genericbarcode.asmx.
|
||||
|
||||
=head1 SERVICE BarCode
|
||||
|
||||
Barcode generator
|
||||
|
||||
=head2 Port BarCodeSoap
|
||||
|
||||
|
||||
|
||||
=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 GenerateBarCode
|
||||
|
||||
WebserviceX.NET barcode library that provides the means to create barcodes for printing and display in any internet enabled applications. This web service supports Code 128, Industrial 2 of 5, Interleaved 2 of 5, Code 2 5 Matrix, Code 39, Code 39 Extended, Code 93, Code 93 Extended, Codabar, EAN13, EAN8, MSI, Postnet, Supp2, Supp5, UPC A, UPC E0 and UPC E1 barcode formats. This Barcodes returns byte image. It supports following image format JPEG, GIF, PNG, BMP, EMF, EXIF, ICON, MEMORY BMP, TIFF and WMF.
|
||||
|
||||
$interface->GenerateBarCode( {
|
||||
BarCodeParam => { # MyTypes::BarCodeData
|
||||
Height => $some_value, # int
|
||||
Width => $some_value, # int
|
||||
Angle => $some_value, # int
|
||||
Ratio => $some_value, # int
|
||||
Module => $some_value, # int
|
||||
Left => $some_value, # int
|
||||
Top => $some_value, # int
|
||||
CheckSum => $some_value, # boolean
|
||||
FontName => $some_value, # string
|
||||
BarColor => $some_value, # string
|
||||
BGColor => $some_value, # string
|
||||
FontSize => $some_value, # float
|
||||
barcodeOption => $some_value, # BarcodeOption
|
||||
barcodeType => $some_value, # BarcodeType
|
||||
checkSumMethod => $some_value, # CheckSumMethod
|
||||
showTextPosition => $some_value, # ShowTextPosition
|
||||
BarCodeImageFormat => $some_value, # ImageFormats
|
||||
},
|
||||
BarCodeText => $some_value, # string
|
||||
},,
|
||||
);
|
||||
|
||||
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Generated by SOAP::WSDL on Fri Nov 9 00:18:35 2007
|
||||
|
||||
=pod
|
||||
@@ -0,0 +1,117 @@
|
||||
package MyInterfaces::HelloWorld::HelloWorldSoap;
|
||||
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::HelloWorld
|
||||
if not MyTypemaps::HelloWorld->can('get_class');
|
||||
|
||||
sub START {
|
||||
$_[0]->set_proxy('http://localhost:81/soap-wsdl-test/helloworld.pl') if not $_[2]->{proxy};
|
||||
$_[0]->set_class_resolver('MyTypemaps::HelloWorld')
|
||||
if not $_[2]->{class_resolver};
|
||||
}
|
||||
|
||||
sub sayHello {
|
||||
my ($self, $body, $header) = @_;
|
||||
die "sayHello must be called as object method (\$self is <$self>)" if not blessed($self);
|
||||
return $self->SUPER::call({
|
||||
operation => 'sayHello',
|
||||
soap_action => 'urn:HelloWorld#sayHello',
|
||||
style => 'document',
|
||||
body => {
|
||||
|
||||
'use' => 'literal',
|
||||
namespace => '',
|
||||
encodingStyle => '',
|
||||
parts => [qw( MyElements::sayHello )],
|
||||
},
|
||||
header => {
|
||||
|
||||
},
|
||||
headerfault => {
|
||||
|
||||
}
|
||||
}, $body, $header);
|
||||
}
|
||||
|
||||
|
||||
|
||||
1;
|
||||
|
||||
|
||||
|
||||
__END__
|
||||
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
|
||||
MyInterfaces::HelloWorld::HelloWorldSoap - SOAP Interface for the HelloWorld Web Service
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
use MyInterfaces::HelloWorld::HelloWorldSoap;
|
||||
my $interface = MyInterfaces::HelloWorld::HelloWorldSoap->new();
|
||||
|
||||
my $response;
|
||||
$response = $interface->sayHello();
|
||||
|
||||
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
SOAP Interface for the HelloWorld web service
|
||||
located at http://localhost:81/soap-wsdl-test/helloworld.pl.
|
||||
|
||||
=head1 SERVICE HelloWorld
|
||||
|
||||
|
||||
|
||||
=head2 Port HelloWorldSoap
|
||||
|
||||
|
||||
|
||||
=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 sayHello
|
||||
|
||||
|
||||
|
||||
$interface->sayHello( {
|
||||
name => $some_value, # string
|
||||
givenName => $some_value, # string
|
||||
},,
|
||||
);
|
||||
|
||||
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Generated by SOAP::WSDL on Sat Dec 1 19:51:31 2007
|
||||
|
||||
=pod
|
||||
@@ -0,0 +1,113 @@
|
||||
package MyServer::HelloWorld::HelloWorldSoap;
|
||||
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::HelloWorld
|
||||
if not MyTypemaps::HelloWorld->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 = {
|
||||
'urn:HelloWorld#sayHello' => 'sayHello',
|
||||
|
||||
};
|
||||
|
||||
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::HelloWorld',
|
||||
dispatch_to => $dispatch_to{ $ident },
|
||||
});
|
||||
}
|
||||
|
||||
sub handle {
|
||||
$transport_of{ ${ $_[0] } }->handle();
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
|
||||
|
||||
__END__
|
||||
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
MyInterfaces::HelloWorld::HelloWorldSoap - SOAP Server Class for the HelloWorld Web Service
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
use MyServer::HelloWorld::HelloWorldSoap;
|
||||
my $server = MyServer::HelloWorld::HelloWorldSoap->new({
|
||||
dispatch_to => 'My::Handler::Class',
|
||||
transport_class => 'SOAP::WSDL::Server::CGI', # optional, default
|
||||
});
|
||||
$server->handle();
|
||||
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
SOAP Server handler for the HelloWorld web service
|
||||
located at http://localhost:81/soap-wsdl-test/helloworld.pl.
|
||||
|
||||
=head1 SERVICE HelloWorld
|
||||
|
||||
|
||||
|
||||
=head2 Port HelloWorldSoap
|
||||
|
||||
|
||||
|
||||
=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 sayHello
|
||||
|
||||
|
||||
|
||||
sub sayHello(
|
||||
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::sayHelloResponse->new( {
|
||||
sayHelloResult => $some_value, # string
|
||||
},
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Generated by SOAP::WSDL on Sun Dec 2 01:20:36 2007
|
||||
|
||||
=pod
|
||||
@@ -0,0 +1,57 @@
|
||||
package MyTypemaps::BarCode;
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
our $typemap_1 = {
|
||||
'GenerateBarCode/BarCodeText' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'GenerateBarCode/BarCodeParam/BarColor' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'GenerateBarCode/BarCodeParam/barcodeOption' => 'MyTypes::BarcodeOption',
|
||||
'GenerateBarCode/BarCodeParam/Left' => 'SOAP::WSDL::XSD::Typelib::Builtin::int',
|
||||
'Fault/faultcode' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI',
|
||||
'GenerateBarCode' => 'MyElements::GenerateBarCode',
|
||||
'Fault/faultstring' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'GenerateBarCode/BarCodeParam/Width' => 'SOAP::WSDL::XSD::Typelib::Builtin::int',
|
||||
'GenerateBarCode/BarCodeParam/Angle' => 'SOAP::WSDL::XSD::Typelib::Builtin::int',
|
||||
'Fault' => 'SOAP::WSDL::SOAP::Typelib::Fault11',
|
||||
'GenerateBarCode/BarCodeParam/BarCodeImageFormat' => 'MyTypes::ImageFormats',
|
||||
'GenerateBarCode/BarCodeParam/BGColor' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'GenerateBarCode/BarCodeParam/Ratio' => 'SOAP::WSDL::XSD::Typelib::Builtin::int',
|
||||
'Fault/faultactor' => 'SOAP::WSDL::XSD::Typelib::Builtin::TOKEN',
|
||||
'GenerateBarCode/BarCodeParam/Height' => 'SOAP::WSDL::XSD::Typelib::Builtin::int',
|
||||
'GenerateBarCode/BarCodeParam/CheckSum' => 'SOAP::WSDL::XSD::Typelib::Builtin::boolean',
|
||||
'GenerateBarCode/BarCodeParam/checkSumMethod' => 'MyTypes::CheckSumMethod',
|
||||
'Fault/detail' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'GenerateBarCode/BarCodeParam/barcodeType' => 'MyTypes::BarcodeType',
|
||||
'GenerateBarCode/BarCodeParam/FontSize' => 'SOAP::WSDL::XSD::Typelib::Builtin::float',
|
||||
'GenerateBarCode/BarCodeParam/Top' => 'SOAP::WSDL::XSD::Typelib::Builtin::int',
|
||||
'GenerateBarCodeResponse/GenerateBarCodeResult' => 'SOAP::WSDL::XSD::Typelib::Builtin::base64Binary',
|
||||
'GenerateBarCodeResponse' => 'MyElements::GenerateBarCodeResponse',
|
||||
'GenerateBarCode/BarCodeParam/Module' => 'SOAP::WSDL::XSD::Typelib::Builtin::int',
|
||||
'GenerateBarCode/BarCodeParam' => 'MyTypes::BarCodeData',
|
||||
'GenerateBarCode/BarCodeParam/showTextPosition' => 'MyTypes::ShowTextPosition',
|
||||
'GenerateBarCode/BarCodeParam/FontName' => 'SOAP::WSDL::XSD::Typelib::Builtin::string'
|
||||
};
|
||||
;
|
||||
|
||||
sub get_class {
|
||||
my $name = join '/', @{ $_[1] };
|
||||
exists $typemap_1->{ $name } or die "Cannot resolve $name via " . __PACKAGE__;
|
||||
return $typemap_1->{ $name };
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
||||
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
MyTypemaps::BarCode; - typemap for ::BarCode;
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Typemap created by SOAP::WSDL for map-based SOAP message parsers.
|
||||
|
||||
=cut
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
package MyTypemaps::HelloWorld;
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
our $typemap_1 = {
|
||||
'sayHello/givenName' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'sayHelloResponse' => 'MyElements::sayHelloResponse',
|
||||
'Fault/faultactor' => 'SOAP::WSDL::XSD::Typelib::Builtin::token',
|
||||
'Fault/detail' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'sayHelloResponse/sayHelloResult' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'Fault/faultcode' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI',
|
||||
'sayHello' => 'MyElements::sayHello',
|
||||
'sayHello/name' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'Fault/faultstring' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
'Fault' => 'SOAP::WSDL::SOAP::Typelib::Fault11'
|
||||
};
|
||||
;
|
||||
|
||||
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::HelloWorld; - typemap for ::HelloWorld;
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Typemap created by SOAP::WSDL for map-based SOAP message parsers.
|
||||
|
||||
=cut
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
package MyTypes::test2;
|
||||
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 %name_of :ATTR(:get<name>);
|
||||
my %givenName_of :ATTR(:get<givenName>);
|
||||
|
||||
__PACKAGE__->_factory(
|
||||
[ qw(
|
||||
name
|
||||
givenName
|
||||
) ],
|
||||
{
|
||||
name => \%name_of,
|
||||
givenName => \%givenName_of,
|
||||
},
|
||||
{
|
||||
name => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
givenName => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
}
|
||||
);
|
||||
|
||||
} # end BLOCK
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1;
|
||||
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
MyTypes::test2
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Perl data type class for the XML Schema defined complextype
|
||||
test2 from the namespace urn:HelloWorld.
|
||||
|
||||
=head2 PROPERTIES
|
||||
|
||||
The following properties may be accessed using get_PROPERTY / set_PROPERTY
|
||||
methods:
|
||||
|
||||
name
|
||||
givenName
|
||||
|
||||
|
||||
=head1 METHODS
|
||||
|
||||
=head2 new
|
||||
|
||||
Constructor. The following data structure may be passed to new():
|
||||
|
||||
{ # MyTypes::test2
|
||||
name => $some_value, # string
|
||||
givenName => $some_value, # string
|
||||
},
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Generated by SOAP::WSDL
|
||||
|
||||
=cut
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
package MyTypes::testExtended;
|
||||
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 %extend_of :ATTR(:get<extend>);
|
||||
|
||||
__PACKAGE__->_factory(
|
||||
[ qw(
|
||||
extend
|
||||
) ],
|
||||
{
|
||||
extend => \%extend_of,
|
||||
},
|
||||
{
|
||||
extend => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
}
|
||||
);
|
||||
|
||||
} # end BLOCK
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1;
|
||||
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
MyTypes::testExtended
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Perl data type class for the XML Schema defined complextype
|
||||
testExtended from the namespace urn:HelloWorld.
|
||||
|
||||
=head2 PROPERTIES
|
||||
|
||||
The following properties may be accessed using get_PROPERTY / set_PROPERTY
|
||||
methods:
|
||||
|
||||
extend
|
||||
|
||||
|
||||
=head1 METHODS
|
||||
|
||||
=head2 new
|
||||
|
||||
Constructor. The following data structure may be passed to new():
|
||||
|
||||
{ # MyTypes::testExtended
|
||||
extend => $some_value, # string
|
||||
},
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Generated by SOAP::WSDL
|
||||
|
||||
=cut
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
|
||||
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
|
||||
xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="urn:HelloWorld"
|
||||
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
|
||||
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
|
||||
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
|
||||
targetNamespace="urn:HelloWorld"
|
||||
xmlns="http://schemas.xmlsoap.org/wsdl/">
|
||||
<types>
|
||||
<s:schema elementFormDefault="qualified"
|
||||
targetNamespace="urn:HelloWorld">
|
||||
<s:element name="sayHello">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1"
|
||||
name="name" type="s:string" />
|
||||
<s:element minOccurs="0" maxOccurs="1"
|
||||
name="givenName" type="s:string" nillable="1" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
|
||||
<s:element name="sayHelloResponse">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1"
|
||||
name="sayHelloResult" type="s:string" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
|
||||
<s:complexType name="test2">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="name"
|
||||
type="s:string" />
|
||||
|
||||
<s:element minOccurs="0" maxOccurs="1"
|
||||
name="givenName" type="s:string" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
|
||||
<s:complexType name="testExtended">
|
||||
<s:extension base="s0:test2">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1"
|
||||
name="extend" type="s:string" />
|
||||
</s:sequence>
|
||||
</s:extension>
|
||||
</s:complexType>
|
||||
</s:schema>
|
||||
</types>
|
||||
|
||||
<message name="sayHelloSoapIn">
|
||||
<part name="parameters" element="s0:sayHello" />
|
||||
</message>
|
||||
|
||||
<message name="sayHelloSoapOut">
|
||||
<part name="parameters" element="s0:sayHelloResponse" />
|
||||
</message>
|
||||
|
||||
<portType name="Service1Soap">
|
||||
<operation name="sayHello">
|
||||
<input message="s0:sayHelloSoapIn" />
|
||||
|
||||
<output message="s0:sayHelloSoapOut" />
|
||||
</operation>
|
||||
</portType>
|
||||
|
||||
<binding name="Service1Soap" type="s0:Service1Soap">
|
||||
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"
|
||||
style="document" />
|
||||
|
||||
<operation name="sayHello">
|
||||
<soap:operation soapAction="urn:HelloWorld#sayHello"
|
||||
style="document" />
|
||||
|
||||
<input>
|
||||
<soap:body use="literal" />
|
||||
</input>
|
||||
|
||||
<output>
|
||||
<soap:body use="literal" />
|
||||
</output>
|
||||
</operation>
|
||||
</binding>
|
||||
|
||||
<service name="HelloWorld">
|
||||
<port name="HelloWorldSoap" binding="s0:Service1Soap">
|
||||
<soap:address
|
||||
location="http://localhost:81/soap-wsdl-test/helloworld.pl" />
|
||||
</port>
|
||||
</service>
|
||||
</definitions>
|
||||
|
||||
@@ -0,0 +1,153 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<wsdl:definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://www.webservicex.net/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://www.webservicex.net/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
|
||||
<wsdl:types>
|
||||
<s:schema elementFormDefault="qualified" targetNamespace="http://www.webservicex.net/">
|
||||
<s:element name="GenerateBarCode">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="1" maxOccurs="1" name="BarCodeParam" type="tns:BarCodeData" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="BarCodeText" type="s:string" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
<s:complexType name="BarCodeData">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="1" maxOccurs="1" name="Height" type="s:int" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="Width" type="s:int" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="Angle" type="s:int" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="Ratio" type="s:int" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="Module" type="s:int" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="Left" type="s:int" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="Top" type="s:int" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="CheckSum" type="s:boolean" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="FontName" type="s:string" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="BarColor" type="s:string" />
|
||||
<s:element minOccurs="0" maxOccurs="1" name="BGColor" type="s:string" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="FontSize" type="s:float" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="barcodeOption" type="tns:BarcodeOption" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="barcodeType" type="tns:BarcodeType" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="checkSumMethod" type="tns:CheckSumMethod" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="showTextPosition" type="tns:ShowTextPosition" />
|
||||
<s:element minOccurs="1" maxOccurs="1" name="BarCodeImageFormat" type="tns:ImageFormats" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:simpleType name="BarcodeOption">
|
||||
<s:restriction base="s:string">
|
||||
<s:enumeration value="None" />
|
||||
<s:enumeration value="Code" />
|
||||
<s:enumeration value="Typ" />
|
||||
<s:enumeration value="Both" />
|
||||
</s:restriction>
|
||||
</s:simpleType>
|
||||
<s:simpleType name="BarcodeType">
|
||||
<s:restriction base="s:string">
|
||||
<s:enumeration value="Code_2_5_interleaved" />
|
||||
<s:enumeration value="Code_2_5_industrial" />
|
||||
<s:enumeration value="Code_2_5_matrix" />
|
||||
<s:enumeration value="Code39" />
|
||||
<s:enumeration value="Code39Extended" />
|
||||
<s:enumeration value="Code128A" />
|
||||
<s:enumeration value="Code128B" />
|
||||
<s:enumeration value="Code128C" />
|
||||
<s:enumeration value="Code93" />
|
||||
<s:enumeration value="Code93Extended" />
|
||||
<s:enumeration value="CodeMSI" />
|
||||
<s:enumeration value="CodePostNet" />
|
||||
<s:enumeration value="CodeCodabar" />
|
||||
<s:enumeration value="CodeEAN8" />
|
||||
<s:enumeration value="CodeEAN13" />
|
||||
<s:enumeration value="CodeUPC_A" />
|
||||
<s:enumeration value="CodeUPC_E0" />
|
||||
<s:enumeration value="CodeUPC_E1" />
|
||||
<s:enumeration value="CodeUPC_Supp2" />
|
||||
<s:enumeration value="CodeUPC_Supp5" />
|
||||
<s:enumeration value="CodeEAN128A" />
|
||||
<s:enumeration value="CodeEAN128B" />
|
||||
<s:enumeration value="CodeEAN128C" />
|
||||
</s:restriction>
|
||||
</s:simpleType>
|
||||
<s:simpleType name="CheckSumMethod">
|
||||
<s:restriction base="s:string">
|
||||
<s:enumeration value="None" />
|
||||
<s:enumeration value="Modulo10" />
|
||||
</s:restriction>
|
||||
</s:simpleType>
|
||||
<s:simpleType name="ShowTextPosition">
|
||||
<s:restriction base="s:string">
|
||||
<s:enumeration value="TopLeft" />
|
||||
<s:enumeration value="TopRight" />
|
||||
<s:enumeration value="TopCenter" />
|
||||
<s:enumeration value="BottomLeft" />
|
||||
<s:enumeration value="BottomRight" />
|
||||
<s:enumeration value="BottomCenter" />
|
||||
</s:restriction>
|
||||
</s:simpleType>
|
||||
<s:simpleType name="ImageFormats">
|
||||
<s:restriction base="s:string">
|
||||
<s:enumeration value="BMP" />
|
||||
<s:enumeration value="EMF" />
|
||||
<s:enumeration value="EXIF" />
|
||||
<s:enumeration value="GIF" />
|
||||
<s:enumeration value="ICON" />
|
||||
<s:enumeration value="JPEG" />
|
||||
<s:enumeration value="MemoryBMP" />
|
||||
<s:enumeration value="PNG" />
|
||||
<s:enumeration value="TIFF" />
|
||||
<s:enumeration value="WMF" />
|
||||
</s:restriction>
|
||||
</s:simpleType>
|
||||
<s:element name="GenerateBarCodeResponse">
|
||||
<s:complexType>
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="GenerateBarCodeResult" type="s:base64Binary" />
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
</s:element>
|
||||
</s:schema>
|
||||
</wsdl:types>
|
||||
<wsdl:message name="GenerateBarCodeSoapIn">
|
||||
<wsdl:part name="parameters" element="tns:GenerateBarCode" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="GenerateBarCodeSoapOut">
|
||||
<wsdl:part name="parameters" element="tns:GenerateBarCodeResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:portType name="BarCodeSoap">
|
||||
<wsdl:operation name="GenerateBarCode">
|
||||
<documentation xmlns="http://schemas.xmlsoap.org/wsdl/">WebserviceX.NET barcode library that provides the means to create barcodes for printing and display in any internet enabled applications. This web service supports Code 128, Industrial 2 of 5, Interleaved 2 of 5, Code 2 5 Matrix, Code 39, Code 39 Extended, Code 93, Code 93 Extended, Codabar, EAN13, EAN8, MSI, Postnet, Supp2, Supp5, UPC A, UPC E0 and UPC E1 barcode formats. This Barcodes returns byte image. It supports following image format JPEG, GIF, PNG, BMP, EMF, EXIF, ICON, MEMORY BMP, TIFF and WMF.</documentation>
|
||||
<wsdl:input message="tns:GenerateBarCodeSoapIn" />
|
||||
<wsdl:output message="tns:GenerateBarCodeSoapOut" />
|
||||
</wsdl:operation>
|
||||
</wsdl:portType>
|
||||
<wsdl:portType name="BarCodeHttpGet" />
|
||||
<wsdl:portType name="BarCodeHttpPost" />
|
||||
<wsdl:binding name="BarCodeSoap" type="tns:BarCodeSoap">
|
||||
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
|
||||
<wsdl:operation name="GenerateBarCode">
|
||||
<soap:operation soapAction="http://www.webservicex.net/GenerateBarCode" style="document" />
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
<wsdl:binding name="BarCodeHttpGet" type="tns:BarCodeHttpGet">
|
||||
<http:binding verb="GET" />
|
||||
</wsdl:binding>
|
||||
<wsdl:binding name="BarCodeHttpPost" type="tns:BarCodeHttpPost">
|
||||
<http:binding verb="POST" />
|
||||
</wsdl:binding>
|
||||
<wsdl:service name="BarCode">
|
||||
<documentation xmlns="http://schemas.xmlsoap.org/wsdl/">Barcode generator</documentation>
|
||||
<wsdl:port name="BarCodeSoap" binding="tns:BarCodeSoap">
|
||||
<soap:address location="http://www.webservicex.net/genericbarcode.asmx" />
|
||||
</wsdl:port>
|
||||
<wsdl:port name="BarCodeHttpGet" binding="tns:BarCodeHttpGet">
|
||||
<http:address location="http://www.webservicex.net/genericbarcode.asmx" />
|
||||
</wsdl:port>
|
||||
<wsdl:port name="BarCodeHttpPost" binding="tns:BarCodeHttpPost">
|
||||
<http:address location="http://www.webservicex.net/genericbarcode.asmx" />
|
||||
</wsdl:port>
|
||||
</wsdl:service>
|
||||
</wsdl:definitions>
|
||||
Reference in New Issue
Block a user