#!/usr/bin/perl -w

use strict ;

use XML::Parser::Notifier ;
use XML::Serial::Decoder ;
use XML::Serial::Encoder ;
use SGML::Generic::Printer ;

my $decoder = new XML::Serial::Decoder ;
my $parser = new XML::Parser::Notifier ;
$parser -> add_client ( $decoder ) ;
my ($result) = $parser -> parse( \*DATA ) ;
my $encoder = new XML::Serial::Encoder ;

my ($request) = $encoder -> request( @$result ) ;
select STDOUT ; $| = 1 ;
SGML::Generic::Printer -> new( ) -> print( $request ) ;

__DATA__
<Message>
<Request method="expat">
<Param>
<Struct dim="7" type="dict" id="x8143b84" class="XML::Parser::Fake">
<Member name="Namespaces">
<Scalar type="integer" dim="1">0</Scalar>
</Member>
<Member name="_Setters">
<Struct dim="16" type="dict" id="x80fa460">
<Member name="Unparsed">
<Null count="1" id="x81875a0" class="CODE"/>
</Member>
<Member name="Attlist">
<Null count="1" id="x81875dc" class="CODE"/>
</Member>
<Member name="Default">
<Null count="1" id="x8187594" class="CODE"/>
</Member>
<Member name="XMLDecl">
<Null count="1" id="x81875f4" class="CODE"/>
</Member>
<Member name="Element">
<Null count="1" id="x81875d0" class="CODE"/>
</Member>
<Member name="CdataStart">
<Null count="1" id="x81876e4" class="CODE"/>
</Member>
<Member name="Notation">
<Null count="1" id="x81875ac" class="CODE"/>
</Member>
<Member name="Start">
<Null count="1" id="x8187558" class="CODE"/>
</Member>
<Member name="Comment">
<Null count="1" id="x8187588" class="CODE"/>
</Member>
<Member name="Proc">
<Null count="1" id="x818757c" class="CODE"/>
</Member>
<Member name="CdataEnd">
<Null count="1" id="x81876f0" class="CODE"/>
</Member>
<Member name="End">
<Null count="1" id="x8187564" class="CODE"/>
</Member>
<Member name="Doctype">
<Null count="1" id="x81875e8" class="CODE"/>
</Member>
<Member name="ExternEnt">
<Null count="1" id="x81875b8" class="CODE"/>
</Member>
<Member name="Entity">
<Null count="1" id="x81875c4" class="CODE"/>
</Member>
<Member name="Char">
<Null count="1" id="x8187570" class="CODE"/>
</Member>
</Struct>
</Member>
<Member name="Used">
<Scalar type="integer" dim="1">0</Scalar>
</Member>
<Member name="Parser">
<Scalar type="integer" dim="9">136284816</Scalar>
</Member>
<Member name="Context">
<Array dim="0" type="sparse" id="x81f5cbc">
</Array>
</Member>
<Member name="ErrorMessage">
<Scalar type="string" dim="0"></Scalar>
</Member>
<Member name="Notifier_">
<Struct dim="3" type="dict" id="x81f5c74" class="XML::Parser::Notifier">
<Member name="Notify_">
<Struct dim="3" type="dict" id="x80c8b98">
<Member name="Char">
<Array dim="1" type="sparse" id="x81f740c">
<Item index="0">
<Struct dim="0" type="dict" id="x80c8b8c" class="XML::Parser::Notifier::SimpleDispatcher">
</Struct>
</Item>
</Array>
</Member>
<Member name="Start">
<Array dim="1" type="sparse" id="x81f5ef0">
<Item index="0">
<Ref type="HASH" iref="x80c8b8c"/>
</Item>
</Array>
</Member>
<Member name="End">
<Array dim="1" type="sparse" id="x81f5fa4">
<Item index="0">
<Ref type="HASH" iref="x80c8b8c"/>
</Item>
</Array>
</Member>
</Struct>
</Member>
<Member name="Clients_">
<Array dim="1" type="sparse" id="x80c2534">
<Item index="0">
<Ref type="HASH" iref="x80c8b8c"/>
</Item>
</Array>
</Member>
<Member name="Parser_">
<Ref type="HASH" iref="x8143b84"/>
</Member>
</Struct>
</Member>
</Struct>
</Param>
</Request>
</Message>
