From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(_serialize_object);
use strict;
use vars qw($VERSION);
$VERSION = '0.28';
sub _serialize_object {
my ($stream, $envelope, $k_uri, $k, $v) = @_;
my $serializer = $envelope->_get_type_mapper()->get_serializer($v);
if ($serializer->is_multiref()) {
$stream->reference_accessor($k_uri, $k, $v);
}
else {
if ($serializer->is_compound()) {
my ($typeuri, $typename) = $serializer->get_typeinfo();
my $is_package = $serializer->is_package();
my $child_stream = $stream->compound_accessor(undef, $k, $typeuri, $typename, $is_package);
$serializer->serialize($child_stream, $envelope);
}
else {
# assume it's a simple type, but ask the serializer to do the work
# and also ask him for the type URI
my $content = $serializer->serialize_as_string();
my ($typeuri, $typename) = $serializer->get_typeinfo();
$stream->simple_accessor($k_uri, $k, $typeuri, $typename, $content);
}
}
}
1;
__END__
=head1 NAME
SOAP::Serializer - serialization utilities
=head1 SYNOPSIS
Used internally by SOAP/Perl
=head1 DESCRIPTION
Used internally by SOAP/Perl
=head1 AUTHOR
Keith Brown
=cut