import SOAP-WSDL 2.00.02 from CPAN

git-cpan-module:   SOAP-WSDL
git-cpan-version:  2.00.02
git-cpan-authorid: MKUTTER
git-cpan-file:     authors/id/M/MK/MKUTTER/SOAP-WSDL-2.00.02.tar.gz
This commit is contained in:
Martin Kutter
2009-12-12 19:48:35 -08:00
committed by Michael G. Schwern
parent 745ce925c1
commit 915ee03cbe
153 changed files with 3289 additions and 2513 deletions
+1 -1
View File
@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.01');
use version; our $VERSION = qv('2.00.02');
#<enumeration value="">
+1 -1
View File
@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.01');
use version; our $VERSION = qv('2.00.02');
#<attribute
# default = string
+1 -1
View File
@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.01');
use version; our $VERSION = qv('2.00.02');
#<attributeGroup
# id = ID
+1 -1
View File
@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.01');
use version; our $VERSION = qv('2.00.02');
# only used in SOAP::WSDL - will be obsolete once SOAP::WSDL uses the
# generative approach, too
+18 -1
View File
@@ -6,7 +6,7 @@ use Class::Std::Fast::Storable;
use Scalar::Util qw(blessed);
use base qw/SOAP::WSDL::Base/;
use version; our $VERSION = qv('2.00.01');
use version; our $VERSION = qv('2.00.02');
# id provided by Base
# name provided by Base
@@ -34,6 +34,8 @@ my %itemType_of :ATTR(:name<itemType> :default<()>);
my %abstract_of :ATTR(:name<abstract> :default<()>);
my %mixed_of :ATTR(:name<mixed> :default<()>); # default is false
my %derivation_of :ATTR(:name<derivation> :default<()>);
# is set to simpleContent/complexContent
my %content_model_of :ATTR(:name<contentModel> :default<NONE>);
@@ -59,6 +61,7 @@ sub set_restriction {
my $self = shift;
my $element = shift;
$variety_of{ ident $self } = 'restriction';
$derivation_of{ ident $self } = 'restriction';
$base_of{ ident $self } = $element->{ Value };
}
@@ -66,6 +69,7 @@ sub set_extension {
my $self = shift;
my $element = shift;
$variety_of{ ident $self } = 'extension';
$derivation_of{ ident $self } = 'extension';
$base_of{ ident $self } = $element->{ Value };
}
@@ -107,6 +111,19 @@ sub serialize {
if ( ($variety eq "sequence") or ($variety eq "all") ) {
$opt->{ indent } .= "\t";
for my $element (@{ $self->get_element() }) {
# resolve element ref
#
# Basic algorithm is like this:
# If on serialization, we meet a element whose get_ref method
# returns a true value, lookup the element from the <types>
# definitions instead, and serialize this element.
#
if (my $ref = $element->get_ref()) {
$element = $opt->{ typelib }->find_element(
$element->expand($ref)
);
}
# might be list - listify
$value = [ $value ] if not ref $value eq 'ARRAY';
+1 -1
View File
@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.01');
use version; our $VERSION = qv('2.00.02');
# id provided by Base
# name provided by Base
+1 -1
View File
@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.01');
use version; our $VERSION = qv('2.00.02');
#<enumeration value="">
+1 -1
View File
@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.01');
use version; our $VERSION = qv('2.00.02');
#<pattern value="">
+1 -1
View File
@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.01');
use version; our $VERSION = qv('2.00.02');
#<xs:group name="myModelGroup">
# <xs:sequence>
+1 -1
View File
@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.01');
use version; our $VERSION = qv('2.00.02');
#<minExclusive value="">
+1 -1
View File
@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.01');
use version; our $VERSION = qv('2.00.02');
#<minExclusive value="">
+1 -1
View File
@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.01');
use version; our $VERSION = qv('2.00.02');
#<minExclusive value="">
+1 -1
View File
@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.01');
use version; our $VERSION = qv('2.00.02');
#<maxLength value="">
+1 -1
View File
@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.01');
use version; our $VERSION = qv('2.00.02');
#<minExclusive value="">
+1 -1
View File
@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.01');
use version; our $VERSION = qv('2.00.02');
#<minExclusive value="">
+1 -1
View File
@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.01');
use version; our $VERSION = qv('2.00.02');
#<minExclusive value="">
+1 -1
View File
@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.01');
use version; our $VERSION = qv('2.00.02');
#<pattern value="">
+1 -1
View File
@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.01');
use version; our $VERSION = qv('2.00.02');
# child elements
my %attributeGroup_of :ATTR(:name<attributeGroup> :default<[]>);
+4 -4
View File
@@ -6,7 +6,7 @@ use SOAP::WSDL::XSD::Schema;
use SOAP::WSDL::XSD::Builtin;
use base qw(SOAP::WSDL::XSD::Schema);
use version; our $VERSION = qv('2.00.01');
use version; our $VERSION = qv('2.00.02');
# all builtin types - add validation (e.g. content restrictions) later...
my %BUILTINS = (
@@ -98,10 +98,10 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION
$Rev: 616 $
$Rev: 672 $
$LastChangedBy: kutterma $
$Id: Builtin.pm 616 2008-04-22 21:51:49Z kutterma $
$HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/XSD/Schema/Builtin.pm $
$Id: Builtin.pm 672 2008-05-16 09:37:59Z kutterma $
$HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/XSD/Schema/Builtin.pm $
=cut
+1 -1
View File
@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.01');
use version; our $VERSION = qv('2.00.02');
my %length_of :ATTR(:name<length> :default<[]>);
my %minLength_of :ATTR(:name<minLength> :default<[]>);
+1 -1
View File
@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.01');
use version; our $VERSION = qv('2.00.02');
#<totalDigits value="">
+1 -1
View File
@@ -4,7 +4,7 @@ use warnings;
use base qw(SOAP::WSDL::XSD::Typelib::Element);
use version; our $VERSION = qv('2.00.01');
use version; our $VERSION = qv('2.00.02');
sub start_tag {
# my ($self, $opt, $value) = @_;
+1 -1
View File
@@ -3,7 +3,7 @@ use strict;
use warnings;
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);
use version; our $VERSION = qv('2.00.01');
use version; our $VERSION = qv('2.00.02');
sub serialize {
# we work on @_ for performance.
+1 -1
View File
@@ -3,7 +3,7 @@ use strict;
use warnings;
use Class::Std::Fast::Storable;
use version; our $VERSION = qv('2.00.01');
use version; our $VERSION = qv('2.00.02');
use SOAP::WSDL::XSD::Typelib::Builtin::anyType;
use SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType;
+30 -37
View File
@@ -3,53 +3,46 @@ use strict;
use warnings;
use Class::Std::Fast::Storable constructor => 'none';
our $VERSION = q{2.00_29};
use version; our $VERSION = qv('2.00.02');
sub get_xmlns { 'http://www.w3.org/2001/XMLSchema' };
# use $_[1] for performance
#sub start_tag {
# return q{} if not $#_; # return if no second argument ($opt)
# if ($_[1]->{ name }) {
# return qq{ $_[1]->{name}="} if $_[1]->{ attr };
# return "<$_[1]->{name}/>" if $_[1]->{ empty };
# return "<$_[1]->{name}>";
# }
# return q{};
#}
# start_tag creates a XML start tag either for a XML element or a attribute.
# The method is highly optimized for performance:
# - operates on @_
# - uses no private variables
# - uses no blocks
sub start_tag {
return q{} if not $#_; # return if no second argument ($opt)
if ($_[1]->{ name }) {
return qq{ $_[1]->{name}="} if $_[1]->{ attr };
my $ending = ($_[1]->{ empty }) ? '/>' : '>';
my @attr_from = ();
if ($_[1]->{ nil }) {
push @attr_from, q{ xsi:nil="true"};
$ending = '/>';
}
# if (delete $_[1]->{qualified}) {
# push @attr_from, q{ xmlns="} . $_[0]->get_xmlns() . q{"};
# }
push @attr_from, $_[0]->serialize_attr();
# do we need to check for name ? Element ref="" should have it's own
# start_tag. If we don't need to check, we can speed things up
return join q{}, "<$_[1]->{ name }" , @attr_from , $ending;
}
return q{};
# return empty string if no second argument ($opt) or no name
return q{} if (! $#_);
return q{} if (! exists $_[1]->{ name });
# return attribute start if it's an attribute
return qq{ $_[1]->{name}="} if $_[1]->{ attr };
# return with xsi:nil="true" if it is nil
return join q{} , "<$_[1]->{ name }" , $_[0]->serialize_attr() , q{ xsi:nil="true"/>}
if ($_[1]->{ nil });
# return "empty" start tag if it's empty
return join q{}, "<$_[1]->{ name }" , $_[0]->serialize_attr() , '/>'
if ($_[1]->{ empty });
# return XML element start tag
return join q{}, "<$_[1]->{ name }" , $_[0]->serialize_attr() , '>';
}
# use $_[1] for performance
# start_tag creates a XML end tag either for a XML element or a attribute.
# The method is highly optimized for performance:
# - operates on @_
# - uses no private variables
# - uses no blocks
sub end_tag {
return $_[1] && defined $_[1]->{ name }
? $_[1]->{ attr }
? q{"}
: "</$_[1]->{name}>"
: q{};
# return empty string if no second argument ($opt) or no name
return q{} if (! $#_);
return q{} if (! exists $_[1]->{ name });
return q{"} if $_[1]->{ attr };
return "</$_[1]->{name}>";
};
sub serialize_attr {};
sub serialize_attr { () };
# sub serialize { q{} };
+1 -1
View File
@@ -3,7 +3,7 @@ use strict;
use warnings;
use Class::Std::Fast::Storable constructor => 'none', cache => 1;
our $VERSION='2.00_23';
use version; our $VERSION= qv('2.00.02');
use base qw(SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType);
+1 -1
View File
@@ -6,7 +6,7 @@ use Date::Format;
use Class::Std::Fast::Storable constructor => 'none', cache => 1;
use base qw(SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType);
our $VERSION='2.00_25';
use version; our $VERSION=qv('2.00.02');
sub set_value {
# use set_value from base class if we have a XML-Time format
+32 -24
View File
@@ -10,11 +10,13 @@ require Class::Std::Fast::Storable;
use base qw(SOAP::WSDL::XSD::Typelib::Builtin::anyType);
use version; our $VERSION = qv('2.00.01');
use version; our $VERSION = qv('2.1.0');
my %ELEMENTS_FROM; # order of elements in a class
my %ATTRIBUTES_OF; # references to value hashes
my %CLASSES_OF; # class names of elements in a class
my %NAMES_OF; # XML names of elements in a class
my %ELEMENTS_FROM;
my %ATTRIBUTES_OF;
my %CLASSES_OF;
# XML Attribute handling
my %xml_attr_of :ATTR();
@@ -30,11 +32,6 @@ our $___xml_attribute_of_ref = \%xml_attr_of;
# properly, and slower (~10%) if not.
# Hmmm. Trade 1% for 10?
#sub STORABLE_freeze_pre {}
#sub STORABLE_freeze_post {}
#sub STORABLE_thaw_pre {}
#sub STORABLE_thaw_post {}
my %STORABLE_METHODS = (
STORABLE_freeze_pre => undef,
STORABLE_freeze_post => undef,
@@ -48,16 +45,23 @@ sub AUTOMETHOD {
return if exists $STORABLE_METHODS{$_};
my ($self, $ident, @args_from) = @_;
my $class = ref $self || $self or die "Cannot call AUTOMETHOD as function";
# Test whether we're called from ->can()
my @caller = caller(1);
# return if not called by AUTOLOAD - caller must be something like can()
# Unfortunately we cannot test for "UNIVERSAL::can", as it gets overwritten
# by both Class::Std and Class::Std::Fast, and we don't know the loading
# order (Class::Std::Fast should be loaded before for maximum speedup)
return if $caller[3] ne 'Class::Std::AUTOLOAD';
confess "Can't locate object method \"$_\" via package \"$class\". \n"
. "Valid methods are: "
. join(', ', map { ("get_$_" , "set_$_") } keys %{ $ATTRIBUTES_OF{ $class } })
. "\n"
}
sub attr {
my $self = shift;
my $class = $self->__get_attr_class()
@@ -65,8 +69,6 @@ sub attr {
# disable strictness - in perl 5.10 %{ "$foo\::_bar" } triggers a
# symbolic reference error with strictness enabled
no strict qw(refs);
# die "$class has no attributes" if not defined %{ "$class\::_ATTR::"};
if (@_) {
# setter
return $xml_attr_of{ $$self } = $class->new(@_);
@@ -80,10 +82,13 @@ sub serialize_attr {
return $xml_attr_of{ ${ $_[0] } }->serialize();
}
# TODO: are complextypes are always true ?
sub as_bool :BOOLIFY { 1 }
sub as_hash_ref {
my $self = shift;
my $attributes_ref = $ATTRIBUTES_OF{ ref $self };
my $ident = ident $self;
my $ident = ${ $self };
my $hash_of_ref = {};
foreach my $attribute (keys %{ $attributes_ref }) {
@@ -92,13 +97,13 @@ sub as_hash_ref {
$hash_of_ref->{ $attribute } = blessed $value
? $value->isa('SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType')
? $value
? $value->get_value()
: $value->as_hash_ref()
: ref $value eq 'ARRAY'
? [
map {
$_->isa('SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType')
? $_
? $_->get_value()
: $_->as_hash_ref()
} @{ $value }
]
@@ -112,9 +117,10 @@ sub as_hash_ref {
# call as __PACKAGE__->_factory
sub _factory {
my $class = shift;
$ELEMENTS_FROM{ $class } = shift;
$ATTRIBUTES_OF{ $class } = shift;
$CLASSES_OF{ $class } = shift;
$ELEMENTS_FROM{ $class } = shift;
$ATTRIBUTES_OF{ $class } = shift;
$CLASSES_OF{ $class } = shift;
$NAMES_OF{ $class } = shift;
no strict qw(refs);
no warnings qw(redefine);
@@ -280,7 +286,9 @@ sub _factory {
# do we have some content
if (defined $element) {
$element = [ $element ] if not ref $element eq 'ARRAY';
my $name = $_;
# from 2.00.02 on $NAMES_OF is filled - use || $_; for
# backward compatibility
my $name = $NAMES_OF{$class}->{$_} || $_;
my $target_namespace = $_[0]->get_xmlns();
map {
# serialize element elements with their own serializer
@@ -500,10 +508,10 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION
$Rev: 616 $
$Rev: 670 $
$LastChangedBy: kutterma $
$Id: ComplexType.pm 616 2008-04-22 21:51:49Z kutterma $
$HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/XSD/Typelib/ComplexType.pm $
$Id: ComplexType.pm 670 2008-05-14 07:39:14Z kutterma $
$HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/XSD/Typelib/ComplexType.pm $
=cut
+4 -4
View File
@@ -3,7 +3,7 @@ package SOAP::WSDL::XSD::Typelib::Element;
use Class::Std::Fast::Storable constructor => 'none';
use strict;
use version; our $VERSION = qv('2.00.01');
use version; our $VERSION = qv('2.00.02');
my %NAME;
my %NILLABLE;
@@ -176,10 +176,10 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION
$Rev: 616 $
$Rev: 672 $
$LastChangedBy: kutterma $
$Id: Element.pm 616 2008-04-22 21:51:49Z kutterma $
$HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/XSD/Typelib/Element.pm $
$Id: Element.pm 672 2008-05-16 09:37:59Z kutterma $
$HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/XSD/Typelib/Element.pm $
=cut
+5 -5
View File
@@ -3,14 +3,14 @@ package SOAP::WSDL::XSD::Typelib::SimpleType;
use strict;
use SOAP::WSDL::XSD::Typelib::Builtin;
use version; our $VERSION = qv('2.00.01');
use version; our $VERSION = qv('2.00.02');
package SOAP::WSDL::XSD::Typelib::SimpleType::restriction;
use strict;
use SOAP::WSDL::XSD::Typelib::Builtin;
use base qw(SOAP::WSDL::XSD::Typelib::SimpleType);
use version; our $VERSION = qv('2.00.01');
use version; our $VERSION = qv('2.00.02');
1;
__END__
@@ -133,10 +133,10 @@ Martin Kutter E<lt>martin.kutter fen-net.deE<gt>
=head1 REPOSITORY INFORMATION
$Rev: 616 $
$Rev: 672 $
$LastChangedBy: kutterma $
$Id: SimpleType.pm 616 2008-04-22 21:51:49Z kutterma $
$HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/XSD/Typelib/SimpleType.pm $
$Id: SimpleType.pm 672 2008-05-16 09:37:59Z kutterma $
$HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/XSD/Typelib/SimpleType.pm $
=cut
+1 -1
View File
@@ -4,7 +4,7 @@ use warnings;
use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::Base);
use version; our $VERSION = qv('2.00.01');
use version; our $VERSION = qv('2.00.02');
#<pattern value="">