The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package MyTypes::Person;
use strict;
use warnings;


our $XML_ATTRIBUTE_CLASS;
undef $XML_ATTRIBUTE_CLASS;

sub __get_attr_class {
    return $XML_ATTRIBUTE_CLASS;
}

use Class::Std::Fast::Storable constructor => 'none';
use base qw(SOAP::WSDL::XSD::Typelib::ComplexType);

Class::Std::initialize();

{ # BLOCK to scope variables

my %PersonID_of :ATTR(:get<PersonID>);
my %Salutation_of :ATTR(:get<Salutation>);
my %Name_of :ATTR(:get<Name>);
my %GivenName_of :ATTR(:get<GivenName>);
my %DateOfBirth_of :ATTR(:get<DateOfBirth>);
my %HomeAddress_of :ATTR(:get<HomeAddress>);
my %WorkAddress_of :ATTR(:get<WorkAddress>);
my %Contracts_of :ATTR(:get<Contracts>);

__PACKAGE__->_factory(
    [ qw(        PersonID
        Salutation
        Name
        GivenName
        DateOfBirth
        HomeAddress
        WorkAddress
        Contracts

    ) ],
    {
        'PersonID' => \%PersonID_of,
        'Salutation' => \%Salutation_of,
        'Name' => \%Name_of,
        'GivenName' => \%GivenName_of,
        'DateOfBirth' => \%DateOfBirth_of,
        'HomeAddress' => \%HomeAddress_of,
        'WorkAddress' => \%WorkAddress_of,
        'Contracts' => \%Contracts_of,
    },
    {
        'PersonID' => 'MyTypes::PersonID',
        'Salutation' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
        'Name' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
        'GivenName' => 'SOAP::WSDL::XSD::Typelib::Builtin::string',
        'DateOfBirth' => 'SOAP::WSDL::XSD::Typelib::Builtin::date',
        'HomeAddress' => 'MyTypes::Address',
        'WorkAddress' => 'MyTypes::Address',
        'Contracts' => 'MyTypes::ArrayOfContract',
    },
    {

        'PersonID' => 'PersonID',
        'Salutation' => 'Salutation',
        'Name' => 'Name',
        'GivenName' => 'GivenName',
        'DateOfBirth' => 'DateOfBirth',
        'HomeAddress' => 'HomeAddress',
        'WorkAddress' => 'WorkAddress',
        'Contracts' => 'Contracts',
    }
);

} # end BLOCK







1;


=pod

=head1 NAME

MyTypes::Person

=head1 DESCRIPTION

Perl data type class for the XML Schema defined complexType
Person from the namespace http://www.example.org/benchmark/.






=head2 PROPERTIES

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

=over

=item * PersonID


=item * Salutation


=item * Name


=item * GivenName


=item * DateOfBirth


=item * HomeAddress


=item * WorkAddress


=item * Contracts




=back


=head1 METHODS

=head2 new

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

 { # MyTypes::Person
   PersonID =>  { # MyTypes::PersonID
     ID =>  $some_value, # int
   },
   Salutation =>  $some_value, # string
   Name =>  $some_value, # string
   GivenName =>  $some_value, # string
   DateOfBirth =>  $some_value, # date
   HomeAddress =>  { # MyTypes::Address
     Street =>  $some_value, # string
     ZIP =>  $some_value, # string
     City =>  $some_value, # string
     Country =>  $some_value, # string
     PhoneNumber => $some_value, # PhoneNumber
     MobilePhoneNumber => $some_value, # PhoneNumber
   },
   WorkAddress =>  { # MyTypes::Address
     Street =>  $some_value, # string
     ZIP =>  $some_value, # string
     City =>  $some_value, # string
     Country =>  $some_value, # string
     PhoneNumber => $some_value, # PhoneNumber
     MobilePhoneNumber => $some_value, # PhoneNumber
   },
   Contracts =>  { # MyTypes::ArrayOfContract
     Contract =>  { # MyTypes::Contract
       ContractID =>  $some_value, # long
       ContractName =>  $some_value, # string
     },
   },
 },




=head1 AUTHOR

Generated by SOAP::WSDL

=cut