[% USE XSD;
USE Dumper -%]
package [% XSD.create_xsd_name(complexType) %];
use strict;
use warnings;

[%#
# Don't include any perl source for this package below this line  - there
# may be sub-packages...
#-%]

__PACKAGE__->_set_element_form_qualified([%-
    IF complexType.schema.get_elementFormDefault == 'qualified'
    -%]1[% ELSE %]0[% END %]);

sub get_xmlns { '[% complexType.get_targetNamespace %]' };

[% INCLUDE complexType/contentModel.tt %]

1;

[%# work around for CPAN's indexer, which gets disturbed by pod in templates -%]
[% pod = BLOCK %]=pod[% END -%]
[% head1 = BLOCK %]=head1[% END -%]
[% head2 = BLOCK %]=head2[% END -%]
[% head3 = BLOCK %]=head3[% END -%]

[% pod %]

[% head1 %] NAME

[% XSD.create_xsd_name(complexType) %]

[% head1 %] DESCRIPTION

Perl data type class for the XML Schema defined complexType
[% complexType.get_name %] from the namespace [% complexType.get_targetNamespace %].

[% INCLUDE POD/annotation.tt(node = complexType) %]

[% IF (complexType.get_element); %]
[% head2 %] PROPERTIES

The following properties may be accessed using get_PROPERTY / set_PROPERTY
methods:

=over

[% FOREACH element = complexType.get_element -%]
=item * [% XSD.perl_var_name(XSD.element_name(element)) %]
[% IF (XSD.perl_var_name(XSD.element_name(element)) == 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:

 [% element.get_name %]

[% END %]
[%     IF element.get_annotation.get_documentation; %]
[% element.get_annotation.get_documentation %]
[%     END -%]
[% END %]

=back

[% END -%]

[% head1 %] METHODS

[% head2 %] new

Constructor. The following data structure may be passed to new():

[% indent = ' '; INCLUDE complexType/POD/structure.tt %]

[% INCLUDE complexType/POD/attributeSet.tt %]

[% head1 %] AUTHOR

Generated by SOAP::WSDL

=cut

