import SOAP-WSDL 1.24 from CPAN
git-cpan-module: SOAP-WSDL git-cpan-version: 1.24 git-cpan-authorid: MKUTTER git-cpan-file: authors/id/M/MK/MKUTTER/SOAP-WSDL-1.24.tar.gz
This commit is contained in:
committed by
Michael G. Schwern
parent
7ba2f93e44
commit
9e85f63aa0
@@ -1,19 +0,0 @@
|
||||
#!/usr/bin/perl
|
||||
package MyComplexType;
|
||||
use strict;
|
||||
use Class::Std::Storable;
|
||||
use lib '../../lib';
|
||||
use SOAP::WSDL::XSD::Typelib::ComplexType;
|
||||
use base ('SOAP::WSDL::XSD::Typelib::ComplexType');
|
||||
|
||||
my %MyTestName_of :ATTR(:get<MyTestName>);
|
||||
|
||||
__PACKAGE__->_factory(
|
||||
[ qw(MyTestName) ], # order
|
||||
{ MyTestName => \%MyTestName_of }, # attribute lookup map
|
||||
{ MyTestName => 'SOAP::WSDL::XSD::Typelib::Builtin::string' } # class name lookup map
|
||||
);
|
||||
|
||||
sub get_xmlns { 'urn:Test' };
|
||||
|
||||
1;
|
||||
@@ -1,84 +0,0 @@
|
||||
#!/usr/bin/perl
|
||||
package MyElement;
|
||||
use strict;
|
||||
use SOAP::WSDL::XSD::Typelib::Element;
|
||||
use SOAP::WSDL::XSD::Typelib::Builtin;
|
||||
use base (
|
||||
'SOAP::WSDL::XSD::Typelib::Element',
|
||||
'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
);
|
||||
|
||||
__PACKAGE__->__set_name('MyElementName');
|
||||
sub get_xmlns { 'urn:Test' };
|
||||
|
||||
package MyComplexTypeElement;
|
||||
use strict;
|
||||
use SOAP::WSDL::XSD::Typelib::Element;
|
||||
use MyComplexType;
|
||||
use base (
|
||||
'SOAP::WSDL::XSD::Typelib::Element',
|
||||
'MyComplexType',
|
||||
);
|
||||
|
||||
__PACKAGE__->__set_name('MyComplexTypeElement');
|
||||
sub get_xmlns { 'urn:Test' };
|
||||
|
||||
package MyTestElement;
|
||||
use strict;
|
||||
use SOAP::WSDL::XSD::Typelib::Element;
|
||||
use SOAP::WSDL::XSD::Typelib::Builtin::string;
|
||||
use base (
|
||||
'SOAP::WSDL::XSD::Typelib::Element',
|
||||
'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
);
|
||||
|
||||
__PACKAGE__->__set_name('MyTestElement');
|
||||
|
||||
sub get_xmlns { 'urn:Test' };
|
||||
|
||||
package MyTestElement2;
|
||||
use strict;
|
||||
use SOAP::WSDL::XSD::Typelib::Element;
|
||||
use SOAP::WSDL::XSD::Typelib::Builtin;
|
||||
use base (
|
||||
'SOAP::WSDL::XSD::Typelib::Element',
|
||||
'SOAP::WSDL::XSD::Typelib::Builtin::string',
|
||||
);
|
||||
|
||||
__PACKAGE__->__set_name('MyTestElement2');
|
||||
|
||||
sub get_xmlns { 'urn:Test' };
|
||||
|
||||
|
||||
package MyAtomicComplexTypeElement;
|
||||
|
||||
use strict;
|
||||
use SOAP::WSDL::XSD::Typelib::Element;
|
||||
use SOAP::WSDL::XSD::Typelib::ComplexType;
|
||||
use SOAP::WSDL::XSD::Typelib::Builtin;
|
||||
use base (
|
||||
'SOAP::WSDL::XSD::Typelib::Element',
|
||||
'SOAP::WSDL::XSD::Typelib::ComplexType',
|
||||
);
|
||||
|
||||
my %test_of :ATTR(:get<test>);
|
||||
my %test2_of :ATTR(:get<test2>);
|
||||
|
||||
sub get_xmlns { 'urn:Test' };
|
||||
|
||||
__PACKAGE__->_factory(
|
||||
[ qw(test test2) ],
|
||||
{
|
||||
test => \%test_of,
|
||||
test2 => \%test2_of,
|
||||
},
|
||||
{
|
||||
# this is the <element ref="" variant....
|
||||
test => 'MyTestElement',
|
||||
test2 => 'MyTestElement2',
|
||||
},
|
||||
);
|
||||
|
||||
__PACKAGE__->__set_name('MyAtomicComplexTypeElement');
|
||||
|
||||
1;
|
||||
@@ -1,53 +0,0 @@
|
||||
#!/usr/bin/perl
|
||||
package MySimpleType;
|
||||
use Class::Std::Storable;
|
||||
use SOAP::WSDL::XSD::Typelib::Builtin;
|
||||
use SOAP::WSDL::XSD::Typelib::SimpleType;
|
||||
# restriction base implemented via inheritance
|
||||
# derive by restriction
|
||||
# restriction base
|
||||
use base qw(
|
||||
SOAP::WSDL::XSD::Typelib::SimpleType::restriction
|
||||
SOAP::WSDL::XSD::Typelib::Builtin::string
|
||||
);
|
||||
|
||||
|
||||
# example simpleType derived by list.
|
||||
# XSD would be:
|
||||
# <simpleType name="MySimpleListType">
|
||||
# <list itemTipe="xsd:string">
|
||||
# </simpleType>
|
||||
package MySimpleListType;
|
||||
use Class::Std::Storable;
|
||||
# restriction base implemented via inheritance
|
||||
use SOAP::WSDL::XSD::Typelib::Builtin;
|
||||
# derive by list
|
||||
# list itemType
|
||||
use base qw(
|
||||
SOAP::WSDL::XSD::Typelib::SimpleType
|
||||
SOAP::WSDL::XSD::Typelib::Builtin::list
|
||||
SOAP::WSDL::XSD::Typelib::Builtin::string
|
||||
);
|
||||
|
||||
package MyAtomicSimpleType;
|
||||
use Class::Std::Storable;
|
||||
# restriction base implemented via inheritance
|
||||
use SOAP::WSDL::XSD::Typelib::Builtin;
|
||||
# derive by restriction
|
||||
# restriction with atomic simpleType
|
||||
use base qw(
|
||||
SOAP::WSDL::XSD::Typelib::SimpleType::restriction
|
||||
MySimpleType
|
||||
);
|
||||
|
||||
package MyAtomicSimpleListType;
|
||||
use Class::Std::Storable;
|
||||
# restriction base implemented via inheritance
|
||||
use SOAP::WSDL::XSD::Typelib::Builtin;
|
||||
# derive by restriction
|
||||
# restriction with atomic simpleType
|
||||
use base qw(
|
||||
SOAP::WSDL::XSD::Typelib::SimpleType::restriction
|
||||
MySimpleListType
|
||||
);
|
||||
1;
|
||||
@@ -1,64 +0,0 @@
|
||||
package Test::SOAPMessage;
|
||||
|
||||
use strict;
|
||||
|
||||
use SOAP::Lite;
|
||||
use Test::Differences;
|
||||
use Tie::IxHash;
|
||||
|
||||
use base qw/Exporter/;
|
||||
|
||||
our @EXPORT = qw/soap_eq_or_diff/;
|
||||
|
||||
sub soap_eq_or_diff
|
||||
{
|
||||
my $got = shift;
|
||||
my $expected = shift;
|
||||
my $message = shift;
|
||||
my $soapGot = SOAP::Deserializer->deserialize( $got );
|
||||
my $soapExpected = SOAP::Deserializer->deserialize( $expected );
|
||||
|
||||
return eq_or_diff(
|
||||
unlather( $soapGot ),
|
||||
unlather( $soapExpected ),
|
||||
$message
|
||||
);
|
||||
}
|
||||
|
||||
sub unlather
|
||||
{
|
||||
my $som = shift;
|
||||
my $path = shift || '/Envelope/Body/[1]';
|
||||
my $data = shift;
|
||||
|
||||
unless ( $data )
|
||||
{
|
||||
my %hashData = ();
|
||||
tie (%hashData, q/Tie::IxHash/);
|
||||
$data = \%hashData;
|
||||
}
|
||||
|
||||
my $value;
|
||||
my $tag;
|
||||
my $i = 1;
|
||||
while( $som->match("$path/[$i]") )
|
||||
{
|
||||
$tag = $som->dataof->name();
|
||||
$data ||= {};
|
||||
$value = unlather($som,$path.'/'. '[' . $i . ']' ) || $som->valueof("$path/[$i]");
|
||||
if ($data->{ $tag })
|
||||
{
|
||||
$data->{ $tag } = [ $data->{ $tag } ] unless ( ref ( $data->{ $tag } ) eq 'ARRAY' );
|
||||
push @{ $data->{ $tag } }, $value;
|
||||
}
|
||||
else
|
||||
{
|
||||
$data->{ $tag } = $value;
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
$data ||= $som->valueof($path);
|
||||
return $data;
|
||||
}
|
||||
|
||||
1;
|
||||
@@ -1,28 +0,0 @@
|
||||
package Typelib::Base;
|
||||
use Class::Std::Storable;
|
||||
|
||||
sub mk_add_mutators {
|
||||
my $class = shift;
|
||||
my $attributes = shift;
|
||||
for my $method ( keys %{$ attributes }) {
|
||||
*{ "$class\::add_$method" } = sub {
|
||||
my ($self, $value) = @_;
|
||||
my $ident = ident $self;
|
||||
|
||||
# we're the first value
|
||||
return $attributes->{ $method }->{ $ident } = $value
|
||||
if not defined $attributes->{ $method }->{ $ident };
|
||||
|
||||
# we're the second value
|
||||
return $attributes->{ $method }->{ $ident } = [
|
||||
$attributes->{ $method }->{ $ident }, $value ]
|
||||
if not ref $attributes->{ $method }->{ $ident } eq 'ARRAY';
|
||||
|
||||
# we're third or later
|
||||
push @{ $attributes->{ $method }->{ $ident } }, $value;
|
||||
return $attributes->{ $method }->{ $ident };
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
1;
|
||||
@@ -1,17 +0,0 @@
|
||||
package Typelib::TEnqueueMessage;
|
||||
use strict;
|
||||
use base qw(Typelib::Base);
|
||||
|
||||
my %MMessage_of :ATTR(:name<MMessage> :default<()>);
|
||||
|
||||
my %attributes_of :ATTR();
|
||||
|
||||
%attributes_of = (
|
||||
MMessage => \%MMessage_of,
|
||||
);
|
||||
|
||||
# make a add_BLA method for every attribute
|
||||
__PACKAGE__->mk_add_mutators( \%attributes_of );
|
||||
|
||||
|
||||
1;
|
||||
@@ -1,26 +0,0 @@
|
||||
package Typelib::TMessage;
|
||||
use strict;
|
||||
use base qw(Typelib::Base);
|
||||
|
||||
my %MRecipientURI_of :ATTR(:name<MRecipientURI> :default<()>);
|
||||
my %MMessageContent_of :ATTR(:name<MMessageContent> :default<()>);
|
||||
my %MSenderAddress_of :ATTR(:name<MSenderAddress> :default<()>);
|
||||
my %MSubject_of :ATTR(:name<MSubject> :default<()>);
|
||||
my %MDeliveryReportRecipientURI_of :ATTR(:name<MDeliveryReportRecipientURI> :default<()>);
|
||||
my %MKeepalive_of :ATTR(:name<MKeepalive> :default<()>);
|
||||
|
||||
my %attributes_of :ATTR();
|
||||
|
||||
%attributes_of = (
|
||||
MRecipientURI => \%MRecipientURI_of,
|
||||
MMessageContent => \%MMessageContent_of,
|
||||
MSenderAddress => \%MSenderAddress_of,
|
||||
MSubject => \%MSubject_of,
|
||||
MDeliveryReportRecipientURI => \%MDeliveryReportRecipientURI_of,
|
||||
MKeepalive => \%MKeepalive_of,
|
||||
);
|
||||
|
||||
# make a add_BLA method for every attribute
|
||||
__PACKAGE__->mk_add_mutators( \%attributes_of );
|
||||
|
||||
1;
|
||||
Reference in New Issue
Block a user