XML::C...Dumper(3pm)
โจ XML::Compile::Dumper โจ
okay bestie, gather round ๐ this is a User Contributed Perl Documentation page, and it's literally the "remember my precompiled XML processors so I don't have to do all that work again" module. it's giving main character energy for your schema compile times. no cap.
๐ธ NAME ๐ธ
XML::Compile::Dumper โ Remember precompiled XML processors ๐ง โจ
๐ SYNOPSIS ๐
# create readers and writers or soap things
my $reader = $schema->compile(READER => '{myns}mytype');
my $writer = $schema->compile(WRITER => ...);
# then dump them into a package
my $dumper = XML::Compile::Dumper->new
(package => 'My::Package', filename => 'My/Package.pm');
$dumper->freeze(foo => $reader, bar => $writer);
$dumper->close;
# later, they can get recalled using
use My::Package;
my $hash = foo($xml);
my $doc = bar($doc, $xml);
like, you freeze them ๐ง, you close, and later you just use My::Package and boom, your foo and bar are back. iconic behaviour fr fr ๐
๐ฆ DESCRIPTION ๐ฆ
so this module is out here simplifying the task of saving and loading pre-compiled translators. the way that schemas can get huge โ and when you're not building a daemon to do the XML communication, you may end up compiling and interpreting these big ol' schemas constantly, just to be able to process simple data-structures ๐ญ that's so much wasted effort bestie.
built on top of the excellent Data::Dump::Streamer, this module helps you create standard Perl packages which contain the reader and writer code references. slay ๐
โ ๏ธ WARNING: this feature was introduced in release 0.17. usingperl 5.8.8,libxml 2.6.26,XML::LibXML 2.60, andData::Dump::Streamer 2.03, Perl complains about"PmmREFCNT_dec: REFCNT decremented below 0! during global destruction."when the tests are run. this bug can be anywhere ๐. therefore, these tests are disabled by default int/TestTools.pm. if you have time, could you please run the tests with$skip_dumper = 0;and report the results to the author? ๐ฅบ๐ซถ
๐ METHODS ๐
๐ง Constructors ๐ง
$obj->close()โ Finalize the produced file. this will be called automatically if the object goes out-of-scope, so it's got your back ๐ซถXML::Compile::Dumper->new(%options)โ Create an object which will collect the information for the output file. you have to specify either afilehandleor afilename. a filehandle will be closed after processing ๐
-Option --Default
filehandle undef
filename undef
package <required>
filehandle => "IO::Handle"filename => FILENAME
The file will be written using utf8 encoding, using IO::File. if you want something else, open your filehandle first, and provide that as argument. you do you ๐
package => PACKAGE
The name-space which will be used: it will produce a package line in the output. it's literally required, no skips ๐ซ
๐ฎ Accessors ๐ฎ
$obj->file()โ Returns the output file-handle, which you may use to add extensions to the module. cute lil extra credit moment โจ
๐ Producers ๐
$obj->footer($fh)$obj->freeze(PAIRS|HASH)โ Produce the dump for a group of code references, which will be made available under a normal subroutine name. > this method can only be called once. one and done, periodt ๐$obj->header($fh, $package)โ Prints the header text to the file.
๐ฅ DIAGNOSTICS ๐ฅ
Error: either filename or filehandle requiredError: freeze can only be called onceโ the various closures may have related variables, and therefore need to be dumped in one go. that's why, bestie, no second chances ๐Error: freeze needs PAIRS or a HASHError: package name requiredโ the perl module which is produced is cleanly encapsulating the produced program text in a perl package name-space. the name has to be provided.Error: value with $name is not a code reference
๐ SEE ALSO ๐
this module is part of XML-Compile-Dumper distribution version 0.14, built on January 22, 2014. website: http://perl.overmeer.net/xml-compile/ ๐
other distributions in this suite: XML::Compile, XML::Compile::SOAP, XML::Compile::WSDL11, XML::Compile::SOAP12, XML::Compile::SOAP::Daemon, XML::Compile::SOAP::WSA, XML::Compile::C14N, XML::Compile::WSS, XML::Compile::WSS::Signature, XML::Compile::Tester, XML::Compile::Cache, XML::Compile::Dumper, XML::Compile::RPC, XML::Rewrite and XML::LibXML::Simple. the whole squad is here ๐ซ
please post questions or ideas to the mailinglist at http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/xml-compile . for live contact with other developers, visit the "#xml-compile" channel on irc.perl.org. come hang out, iykyk ๐ฌ
๐ LICENSE ๐
Copyrights 2007-2014 by [Mark Overmeer]. for other contributors see ChangeLog.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. see http://www.perl.com/perl/misc/Artistic.html ๐
and that's the whole thing bestie, we ate and left no crumbs ๐ โจ this page was served to you by perl v5.34.0, dated 2022-06-28 โ mwah, love u, go compile something ๐ฆ๐๐
๐ฆ where this page comes from
- debian bookworm: libxml-compile-dumper-perl 0.14-2 ยท Artistic-1.0-Perl OR GPL-1.0-or-later
- debian trixie: libxml-compile-dumper-perl 0.14-2 ยท Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu noble: libxml-compile-dumper-perl 0.14-2 ยท Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu resolute: libxml-compile-dumper-perl 0.14-2 ยท Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu stonking: libxml-compile-dumper-perl 0.14-2 ยท Artistic-1.0-Perl OR GPL-1.0-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms