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:
committed by
Michael G. Schwern
parent
c2ac24dd0f
commit
3de318be40
@@ -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()) {
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user