import SOAP-WSDL 2.00.05 from CPAN
git-cpan-module: SOAP-WSDL git-cpan-version: 2.00.05 git-cpan-authorid: MKUTTER git-cpan-file: authors/id/M/MK/MKUTTER/SOAP-WSDL-2.00.05.tar.gz
This commit is contained in:
committed by
Michael G. Schwern
parent
c3e3d1908e
commit
c2ac24dd0f
@@ -6,7 +6,7 @@ use XML::Parser::Expat;
|
||||
|
||||
# TODO: convert to Class::Std::Fast based class - hash based classes suck.
|
||||
|
||||
use version; our $VERSION = qv('2.00.04');
|
||||
use version; our $VERSION = qv('2.00.05');
|
||||
|
||||
sub new {
|
||||
my ($class, $arg_ref) = @_;
|
||||
@@ -35,17 +35,23 @@ sub get_uri { return $_[0]->{ uri }; }
|
||||
sub set_user_agent { $_[0]->{ user_agent } = $_[1]; }
|
||||
sub get_user_agent { return $_[0]->{ user_agent }; }
|
||||
|
||||
# Mark a URI as "already parsed"
|
||||
sub set_parsed {
|
||||
my ($self, $uri) = @_;
|
||||
$self->{ parsed }->{ $uri } = 1;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
# returns true if a specific URI has already been parsed
|
||||
sub is_parsed {
|
||||
my ($self, $uri) = @_;
|
||||
return exists $self->{ parsed }->{ $uri };
|
||||
}
|
||||
|
||||
|
||||
# parse a URI. This is the preferred parsing method for WSDL files, as it's
|
||||
# the only one allowing automatic import resolution
|
||||
sub parse_uri {
|
||||
my $self = shift;
|
||||
my $uri = shift;
|
||||
@@ -74,6 +80,7 @@ sub parse {
|
||||
$_[0]->{ parser }->release();
|
||||
};
|
||||
$_[0]->{ parser }->xpcroak( $@ ) if $@;
|
||||
delete $_[0]->{ parser };
|
||||
return $_[0]->{ data };
|
||||
}
|
||||
|
||||
@@ -83,6 +90,7 @@ sub parsefile {
|
||||
$_[0]->{ parser }->release();
|
||||
};
|
||||
$_[0]->{ parser }->xpcroak( $@ ) if $@;
|
||||
delete $_[0]->{ parser };
|
||||
return $_[0]->{ data };
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ use strict;
|
||||
use warnings;
|
||||
use base qw(SOAP::WSDL::Expat::Base);
|
||||
|
||||
use version; our $VERSION = qv('2.00.03');
|
||||
use version; our $VERSION = qv('2.00.05');
|
||||
|
||||
sub _initialize {
|
||||
my ($self, $parser) = @_;
|
||||
|
||||
@@ -1,19 +1,20 @@
|
||||
#!/usr/bin/perl
|
||||
package SOAP::WSDL::Expat::MessageParser;
|
||||
use strict;
|
||||
use warnings;
|
||||
use Carp qw(croak confess);
|
||||
|
||||
use version; our $VERSION = qv('2.00.03');
|
||||
use strict; use warnings;
|
||||
|
||||
use SOAP::WSDL::XSD::Typelib::Builtin;
|
||||
use SOAP::WSDL::XSD::Typelib::Builtin::anySimpleType;
|
||||
|
||||
use base qw(SOAP::WSDL::Expat::Base);
|
||||
|
||||
require Class::Std::Fast;
|
||||
BEGIN { require Class::Std::Fast };
|
||||
|
||||
use version; our $VERSION = qv('2.00.05');
|
||||
|
||||
# GLOBALS
|
||||
my $OBJECT_CACHE_REF = Class::Std::Fast::OBJECT_CACHE_REF();
|
||||
|
||||
# keep track of classes loaded
|
||||
my %LOADED_OF = ();
|
||||
|
||||
sub new {
|
||||
@@ -46,7 +47,10 @@ sub class_resolver {
|
||||
sub load_classes {
|
||||
my $self = shift;
|
||||
|
||||
for (values %{ $self->{ class_resolver }->get_typemap }) {
|
||||
return if $LOADED_OF{ $self->{ class_resolver } };
|
||||
|
||||
# requires sorting to make sub-packages load after their parent
|
||||
for (sort values %{ $self->{ class_resolver }->get_typemap }) {
|
||||
no strict qw(refs);
|
||||
my $class = $_;
|
||||
|
||||
@@ -54,9 +58,10 @@ sub load_classes {
|
||||
next if $class eq '__SKIP__';
|
||||
next if defined *{ "$class\::" }; # check if namespace exists
|
||||
|
||||
# Require takes a bareword or a file name - we have to take
|
||||
# the filname road here...
|
||||
$class =~s{ :: }{/}xmsg;
|
||||
$class .= '.pm';
|
||||
require $class;
|
||||
require "$class.pm"; ## no critic (RequireBarewordIncludes)
|
||||
}
|
||||
$LOADED_OF{ $self->{ class_resolver } } = 1;
|
||||
}
|
||||
@@ -106,16 +111,12 @@ sub _initialize {
|
||||
: ();
|
||||
|
||||
# use "globals" for speed
|
||||
my ($_prefix, $_method,
|
||||
$_class, $_leaf) = ();
|
||||
my ($_prefix, $_method, $_class, $_leaf) = ();
|
||||
|
||||
my $char_handler = sub {
|
||||
return if (!$_leaf); # we only want characters in leaf nodes
|
||||
|
||||
$characters .= $_[1];
|
||||
# if $_[1] =~m{ [^\s] }xms;
|
||||
|
||||
return;
|
||||
return if (!$_leaf); # we only want characters in leaf nodes
|
||||
$characters .= $_[1]; # add to characters
|
||||
return; # return void
|
||||
};
|
||||
|
||||
no strict qw(refs);
|
||||
@@ -194,6 +195,9 @@ sub _initialize {
|
||||
}
|
||||
}
|
||||
$depth++;
|
||||
|
||||
# TODO: Skip content of anyType / any stuff
|
||||
|
||||
return;
|
||||
},
|
||||
|
||||
@@ -319,10 +323,10 @@ the same terms as perl itself
|
||||
|
||||
=head1 Repository information
|
||||
|
||||
$Id: MessageParser.pm 677 2008-05-18 20:17:56Z kutterma $
|
||||
$Id: MessageParser.pm 728 2008-07-13 19:28:50Z kutterma $
|
||||
|
||||
$LastChangedDate: 2008-05-18 22:17:56 +0200 (So, 18 Mai 2008) $
|
||||
$LastChangedRevision: 677 $
|
||||
$LastChangedDate: 2008-07-13 21:28:50 +0200 (So, 13 Jul 2008) $
|
||||
$LastChangedRevision: 728 $
|
||||
$LastChangedBy: kutterma $
|
||||
|
||||
$HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Expat/MessageParser.pm $
|
||||
|
||||
@@ -6,7 +6,7 @@ use XML::Parser::Expat;
|
||||
use SOAP::WSDL::Expat::MessageParser;
|
||||
use base qw(SOAP::WSDL::Expat::MessageParser);
|
||||
|
||||
use version; our $VERSION = qv('2.00.04');
|
||||
use version; our $VERSION = qv('2.00.05');
|
||||
|
||||
sub parse_start {
|
||||
my $self = shift;
|
||||
@@ -69,9 +69,9 @@ the same terms as perl itself
|
||||
|
||||
=head1 REPOSITORY INFORMATION
|
||||
|
||||
$Rev: 701 $
|
||||
$Rev: 728 $
|
||||
$LastChangedBy: kutterma $
|
||||
$Id: MessageStreamParser.pm 701 2008-06-05 19:19:16Z kutterma $
|
||||
$Id: MessageStreamParser.pm 728 2008-07-13 19:28:50Z kutterma $
|
||||
$HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Expat/MessageStreamParser.pm $
|
||||
|
||||
=cut
|
||||
|
||||
@@ -5,7 +5,17 @@ use Carp;
|
||||
use SOAP::WSDL::TypeLookup;
|
||||
use base qw(SOAP::WSDL::Expat::Base);
|
||||
|
||||
use version; our $VERSION = qv('2.00.03');
|
||||
use version; our $VERSION = qv('2.00.05');
|
||||
|
||||
#
|
||||
# Import child elements of a WSDL / XML Schema tree into the current tree
|
||||
#
|
||||
# Set the targetNamespace of the imported nodes to $import_namespace
|
||||
#
|
||||
# SYNOPSIS
|
||||
#
|
||||
# $self->_import_children($name, $imported, $imported, $import_namespace)
|
||||
#
|
||||
|
||||
sub _import_children {
|
||||
my ($self, $name, $imported, $importer, $import_namespace) = @_;
|
||||
@@ -140,6 +150,8 @@ sub _initialize {
|
||||
# TODO skip non-XML Schema namespace tags
|
||||
$parser->setHandlers(
|
||||
Start => sub {
|
||||
# handle attrs as list - expat uses dual-vars for looking
|
||||
# up namespace information, and hash keys don't allow dual vars...
|
||||
my ($parser, $localname, @attrs) = @_;
|
||||
$characters = q{};
|
||||
|
||||
@@ -174,9 +186,7 @@ sub _initialize {
|
||||
# remember element for stepping back
|
||||
push @{ $list }, $current;
|
||||
}
|
||||
else {
|
||||
$self->{ data } = $obj;
|
||||
}
|
||||
|
||||
# set new element (step down)
|
||||
$current = $obj;
|
||||
}
|
||||
@@ -228,6 +238,11 @@ sub _initialize {
|
||||
$localname
|
||||
) || {};
|
||||
|
||||
if (! defined $list->[-1]) {
|
||||
$self->{ data } = $current;
|
||||
return;
|
||||
}
|
||||
|
||||
return if not ($action->{ type });
|
||||
if ( $action->{ type } eq 'CLASS' ) {
|
||||
$current = pop @{ $list };
|
||||
@@ -275,7 +290,6 @@ sub _fixup_attrs {
|
||||
} $parser->new_ns_prefixes();
|
||||
|
||||
push @attrs_from, map {
|
||||
$_ =
|
||||
{
|
||||
Name => defined $parser->namespace($_)
|
||||
? $parser->namespace($_) . '|' . $_
|
||||
@@ -322,10 +336,10 @@ the same terms as perl itself
|
||||
|
||||
=head1 Repository information
|
||||
|
||||
$Id: WSDLParser.pm 688 2008-05-23 21:01:54Z kutterma $
|
||||
$Id: WSDLParser.pm 728 2008-07-13 19:28:50Z kutterma $
|
||||
|
||||
$LastChangedDate: 2008-05-23 23:01:54 +0200 (Fr, 23 Mai 2008) $
|
||||
$LastChangedRevision: 688 $
|
||||
$LastChangedDate: 2008-07-13 21:28:50 +0200 (So, 13 Jul 2008) $
|
||||
$LastChangedRevision: 728 $
|
||||
$LastChangedBy: kutterma $
|
||||
|
||||
$HeadURL: http://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Expat/WSDLParser.pm $
|
||||
|
||||
Reference in New Issue
Block a user