The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl -w

use strict;
use warnings;


###################################################################
##
## This script will pass a xml map file to the MapIt module
## and spit out the resulting datastructure returned by MapIt
## using Data::Dumper;
##
###################################################################


my $map="./maps/map1.xml";
use DBIx::XML::DataLoader::MapIt;
use Data::Dumper;
my  @classmap=DBIx::XML::DataLoader::MapIt->mapclasses($map);
print Dumper(@classmap);



__END__


#############################################################
###  The output from this script would look like this
############################################################

$VAR1 = undef;
$VAR2 = {
          'test_data' => {
                           'dbpass' => 'na',
                           'dbsource' => 'dbi:CSV:f_dir=./data',
                           'dbuser' => 'na'
                         }
        };
$VAR3 = 'PeopleDoc';
$VAR4 = {
          'Addresses' => [
                           {
                             'date' => undef,
                             'col' => 'UID',
                             'xpath' => '../../@uid',
                             'default' => undef
                           },
                           {
                             'date' => undef,
                             'col' => 'type',
                             'xpath' => './@type',
                             'default' => undef
                           },
                           {
                             'date' => undef,
                             'col' => 'Street',
                             'xpath' => './Street',
                             'default' => undef
                           },
                           {
                             'date' => undef,
                             'col' => 'City',
                             'xpath' => './City',
                             'default' => undef
                           },
                           {
                             'date' => undef,
                             'col' => 'State',
                             'xpath' => './State',
                             'default' => undef
                           },
                           {
                             'date' => undef,
                             'col' => 'Zip',
                             'xpath' => './Zip',
                             'default' => undef
                           },
                           {
                             'parent' => undef,
                             'xpath' => './Person/Addresses/Address',
                             'keys' => [
                                         {
                                           '2' => 'type'
                                         },
                                         {
                                           '1' => 'UID'
                                         },
                                         {
                                           '3' => 'Zip'
                                         },
                                         {
                                           '4' => 'City'
                                         }
                                       ],
                             'columns' => [
                                            'UID',
                                            'type',
                                            'Street',
                                            'City',
                                            'State',
                                            'Zip'
                                          ],
                             'child' => undef,
                             'handlers' => undef,
                             'dbname' => 'test_data'
                           }
                         ],
          'People_info' => [
                             {
                               'date' => undef,
                               'col' => 'UID',
                               'xpath' => './@uid',
                               'default' => undef
                             },
                             {
                               'date' => undef,
                               'col' => 'First_Name',
                               'xpath' => './@first',
                               'default' => undef
                             },
                             {
                               'date' => undef,
                               'col' => 'Last_Name',
                               'xpath' => './@last',
                               'default' => undef
                             },
                             {
                               'date' => undef,
                               'col' => 'Mothers_Maiden',
                               'xpath' => './@mothers_maiden',
                               'default' => undef
                             },
                             {
                               'date' => undef,
                               'col' => 'Age',
                               'xpath' => './@age',
                               'default' => undef
                             },
                             {
                               'parent' => undef,
                               'xpath' => './Person',
                               'keys' => [
                                           {
                                             '2' => 'Last_Name'
                                           },
                                           {
                                             '1' => 'UID'
                                           },
                                           {
                                             '3' => 'Mothers_Maiden'
                                           }
                                         ],
                               'columns' => [
                                              'UID',
                                              'First_Name',
                                              'Last_Name',
                                              'Mothers_Maiden',
                                              'Age'
                                            ],
                               'child' => undef,
                               'handlers' => {
                                               'Last_Name' => {
                                                                '1' => {
                                                                         'args' => undef,
                                                                         'handler' => 'sub{$_[0]=~s/.*/\\u\\L$&/; return $_[0];}'
                                                                       }
                                                              },
                                               'First_Name' => {
                                                                 '1' => {
                                                                          'args' => undef,
                                                                          'handler' => 'sub{$_[0]=~s/.*/\\u\\L$&/; return $_[0];}'
                                                                        }
                                                               }
                                             },
                               'dbname' => 'test_data'
                             }
                           ]
        };
$VAR5 = [
          'People_info',
          'Addresses'
        ];
$VAR6 = 'UID';