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:
Martin Kutter
2009-12-12 19:48:11 -08:00
committed by Michael G. Schwern
parent 84b53d9261
commit a9033164e6
177 changed files with 3449 additions and 2063 deletions
+55
View File
@@ -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
+29
View File
@@ -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;
+21
View File
@@ -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";
+21
View File
@@ -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";
+27
View File
@@ -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";
+86
View File
@@ -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
+57
View File
@@ -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
+44
View File
@@ -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
+74
View File
@@ -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
+68
View File
@@ -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
+95
View File
@@ -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>
+153
View File
@@ -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>