# # implement better checks... # if (@{ $CHILD_ORDER }) { # if ($CHILD_ORDER->[$CHILD_INDEX] ne $localname) { # if (! $CHILD_ORDER->[++$CHILD_INDEX] # || $CHILD_ORDER->[$CHILD_INDEX] ne $localname) { # die "misplaced xml element " . $parser->recognized_string() # . " at line " # . $parser->current_line() # . " column " . $parser->current_column() , "\n" # , "Element order: " . join(',' , @{ $CHILD_ORDER }), "\n" # } # } # } # # if (%{ $CHILD_OCCURS }) { # die "too many occurances of $localname at line " # . $parser->current_line() # . " column " . $parser->current_column() , "\n" # if (not --$CHILD_OCCURS->{ $localname }->{ max }); # # # min must be checked in end_element ! # $CHILD_OCCURS->{ $localname }->{ min }-- # if ($CHILD_OCCURS->{ $localname }->{ min }); # }

NAME

SOAP::WSDL::Expat::MessageParser - Convert SOAP messages to custom object trees

SYNOPSIS

 my $parser = SOAP::WSDL::Expat::MessageParser->new({
    class_resolver => 'My::Resolver'   
 });
 $parser->parse( $xml );
 my $obj = $parser->get_data();

DESCRIPTION

Real fast expat based SOAP message parser.

See SOAP::WSDL::Parser for details.

Skipping unwanted items

Sometimes there's unneccessary information transported in SOAP messages.

To skip XML nodes (including all child nodes), just edit the type map for the message and set the type map entry to '__SKIP__'.

Bugs and Limitations

  • Ignores all namespaces

  • Does not handle mixed content

  • The SOAP header is ignored

AUTHOR

Replace the whitespace by @ for E-Mail Address.

 Martin Kutter E<lt>martin.kutter fen-net.deE<gt>

COPYING

This module may be used under the same terms as perl itself.

Repository information

 $ID: $

 $LastChangedDate: 2007-09-10 17:54:52 +0200 (Mo, 10 Sep 2007) $
 $LastChangedRevision: 214 $
 $LastChangedBy: kutterma $

 $HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Expat/MessageSubParser.pm $