import SOAP-WSDL 2.00.06 from CPAN

git-cpan-module:   SOAP-WSDL
git-cpan-version:  2.00.06
git-cpan-authorid: MKUTTER
git-cpan-file:     authors/id/M/MK/MKUTTER/SOAP-WSDL-2.00.06.tar.gz
This commit is contained in:
Martin Kutter
2009-12-12 19:48:54 -08:00
committed by Michael G. Schwern
parent c2ac24dd0f
commit 3de318be40
66 changed files with 758 additions and 342 deletions
@@ -3,7 +3,7 @@ use strict;
use warnings;
use Carp qw(confess);
use Class::Std::Fast::Storable constructor => 'none';
use Scalar::Util qw(blessed);
use version; our $VERSION = qv('2.00.05');
my %namespace_prefix_map_of :ATTR(:name<namespace_prefix_map> :default<{}>);
@@ -155,6 +155,8 @@ sub element_name {
my $self = shift;
my $element = shift;
confess "no element object" unless blessed $element;
my $name = $element->get_name();
if (! $name) {
while (my $ref = $element->get_ref()) {
+3
View File
@@ -205,6 +205,7 @@ sub visit_XSD_Element {
my $output = defined $output_of{ ident $self }
? $output_of{ ident $self }
: $self->_generate_filename( $self->get_name_resolver()->create_xsd_name($element) );
warn "Creating element class $output \n";
$self->_process('element.tt', { element => $element } , $output);
}
@@ -213,6 +214,7 @@ sub visit_XSD_SimpleType {
my $output = defined $output_of{ ident $self }
? $output_of{ ident $self }
: $self->_generate_filename( $self->get_name_resolver()->create_xsd_name($type) );
warn "Creating simpleType class $output \n";
$self->_process('simpleType.tt', { simpleType => $type } , $output);
}
@@ -221,6 +223,7 @@ sub visit_XSD_ComplexType {
my $output = defined $output_of{ ident $self }
? $output_of{ ident $self }
: $self->_generate_filename( $self->get_name_resolver()->create_xsd_name($type) );
warn "Creating complexType class $output \n";
$self->_process('complexType.tt', { complexType => $type } , $output);
}
@@ -4,6 +4,16 @@
[% type = definitions.find_portType( binding.expand( binding.get_type ) );
port_op = type.find_operation( definitions.get_targetNamespace, operation.get_name );
port_op.get_documentation %]
port_op.get_documentation();
$interface->[% operation.get_name %]([% INCLUDE Interface/POD/Message.tt %] );
# for now we only document the first response part - document/literal
# doesn't allow more.
response_name = port_op.first_output.get_message();
response_part = definitions.find_message( port_op.first_output.expand( response_name ) ).get_part();
response_body_element = definitions.first_types.find_element( response_part.0.expand( response_part.0.get_element ) );
response_body_class = XSD.create_xsd_name(response_body_element);
%]
Returns a L<[% response_body_class %]|[% response_body_class %]> object.
$response = $interface->[% operation.get_name %]([% INCLUDE Interface/POD/Message.tt %] );
@@ -1,12 +1,12 @@
[% IF (complexType.get_variety == 'restriction');
[% IF (complexType.get_derivation == 'restriction');
INCLUDE complexType/POD/restriction.tt(complexType = complexType);
ELSIF (complexType.get_variety == 'extension');
ELSIF (complexType.get_derivation == 'extension');
#THROW NOT_IMPLEMENTED, "${ complexType.get_name } - complexType complexContent extension not implemented yet";
%]
# No documentation generated for complexContent / extension yet
[%
ELSE;
THROW UNKNOWN, "unknown variety ${ complexType.get_variety }";
THROW UNKNOWN, "unknown derivation ${ complexType.get_derivation }";
END;
%]
@@ -7,6 +7,10 @@ ELSIF (complexType.get_variety == 'sequence');
ELSIF (complexType.get_variety == 'all');
INCLUDE complexType/extension.tt(complexType = complexType);
ELSE;
THROW UNKNOWN, "unknown variety ${ complexType.get_variety }";
IF (complexType.get_variety);
THROW UNKNOWN, "unknown variety ${ complexType.get_variety }";
ELSE -%]
# empty variety
[% END;
END;
%]
@@ -22,7 +22,7 @@ element_list = [];
# copy complexType ref
base_type = complexType;
base_name=base_type.expand( base_type.get_base );
base_name = base_type.expand( base_type.get_base );
base_type = definitions.first_types.find_type( base_name );
# add a use base for first to setup inheritance
@@ -31,13 +31,17 @@ use base qw([% XSD.create_xsd_name( base_type ) %]);
[%
# loop forever
WHILE (1);
IF (complexType.get_variety == 'extension');
# wrap statement in IF to avoid printing
IF (complexType.set_variety( base_type.get_variety )); END;
END;
# make a copy. We don't want to modify the original list here...
FOREACH element = base_type.get_element.reverse;
element_list.unshift(element);
END;
# get next base type
IF (base_name=base_type.expand( base_type.get_base ));
# get next base type if there is one...
IF (base_type.get_base);
base_name=base_type.expand( base_type.get_base );
# set new base_type
base_type = definitions.first_types.find_type( base_name );
ELSE;
@@ -59,8 +63,11 @@ END;
# set derived element list
# wrap in IF; END; to prevent it getting printed
IF (complexType.set_element( element_list )); END;
IF ( complexType.set_element( element_list ) ); END;
-%]
# Variety: [% complexType.get_variety %]
[%
INCLUDE complexType/variety.tt(complexType = complexType);
# restore original element list
@@ -76,6 +76,38 @@ Perl data type class for the XML Schema defined element
[% INCLUDE POD/annotation.tt(node = element) %]
[% IF (complexType = element.first_complexType);
IF (complexType.get_element); %]
[% head1 %] PROPERTIES
The following properties may be accessed using get_PROPERTY / set_PROPERTY
methods:
=over
[% FOREACH child_element = complexType.get_element -%]
=item * [% XSD.perl_var_name(XSD.element_name(child_element)) %]
$element->set_[% XSD.perl_var_name(XSD.element_name(child_element)) %]($data);
$element->get_[% XSD.perl_var_name(XSD.element_name(child_element)) %]();
[% IF (XSD.perl_var_name(XSD.element_name(child_element)) == child_element.get_name); %]
[% ELSE %]
Note: The name of this property has been altered, because it didn't match
perl's notion of variable/subroutine names. The altered name is used in
perl code only, XML output uses the original name:
[% child_element.get_name %]
[% END %]
=back
[% END;
END;
END; -%]
[% head1 %] METHODS
[% head2 %] new