Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
DumpXML(3)	      User Contributed Perl Documentation	    DumpXML(3)

       Data::DumpXML - Dump arbitrary data structures as XML

	use Data::DumpXML qw(dump_xml);
	$xml = dump_xml(@list)

       This module provides a single function called dump_xml()	that takes a
       list of Perl values as its argument and produces	a string as its
       result.	The string returned is an XML document that represents any
       Perl data structures passed to the function.  Reference loops are
       handled correctly.

       The following data model	is used:

	  data : scalar*
	  scalar = undef | str | ref | alias
	  ref :	scalar | array | hash |	glob | code
	  array: scalar*
	  hash:	(key scalar)*

       The distribution	comes with an XML schema and a DTD that	more formally
       describe	this structure.

       As an example of	the XML	documents produced, the	following call:

	 $a = bless [1,2], "Foo";


	 <?xml version="1.0" encoding="US-ASCII"?>
	 <data xmlns="">
	   <array class="Foo">

       If dump_xml() is	called in a void context, then the dump	is printed on
       STDERR automatically.  For compatibility	with "Data::Dump", there is
       also an alias for dump_xml() called simply dump().

       "Data::DumpXML::Parser" is a class that can restore data	structures
       dumped by dump_xml().

   Configuration variables
       The generated XML is influenced by a set	of configuration variables.
       If you modify them, then	it is a	good idea to localize the effect. For

	 sub my_dump_xml {
	     local $Data::DumpXML::INDENT = "";
	     local $Data::DumpXML::XML_DECL = 0;
	     local $Data::DumpXML::DTD_LOCATION	= "";
	     local $Data::DumpXML::NS_PREFIX = "dumpxml";

	     return dump_xml(@_);

       The variables are:

	   You can set the variable $Data::DumpXML::INDENT to control the
	   amount of indenting.	 The variable contains the whitespace you want
	   to be used for each level of	indenting.  The	default	is a single
	   space.  To suppress indenting, set it to "".

	   This	variable controls where	end element are	placed.	 If you	set
	   this	variable to the	value "Lisp" then end tags are not prefixed by
	   NL.	This give a more compact output.

	   This	boolean	variable controls whether an XML declaration should be
	   prefixed to the output.  The	XML declaration	is the <?xml ...?>
	   thingy.  The	default	is 1.  Set this	value to 0 to suppress the

	   This	variable contains the namespace	used for the XML elements.
	   The default is to let this be a URI that actually resolve to	the
	   XML schema on CPAN.	Set it to "" to	disable	use of namespaces.

	   This	variable contains the namespace	prefix to use on the elements.
	   The default is "", which means that a default namespace will	be

	   This	variable contains the location of the XML schema.  If this
	   variable is non-empty, then an "xsi:schemaLocation" attribute is
	   added to the	top level "data" element.  The default is not to
	   include this, as the	location can be	inferred from the default XML
	   namespace used.

	   This	variable contains the location of the DTD.  If this variable
	   is non-empty, then a	<!DOCTYPE ...> is included in the output.  The
	   default is to point to the DTD on CPAN.  Set	it to "" to suppress
	   the <!DOCTYPE ...> line.

       Class names with	8-bit characters are dumped as Latin-1,	but converted
       to UTF-8	when restored by the Data::DumpXML::Parser.

       The content of globs and	subroutines are	not dumped.  They are restored
       as the strings "** glob **" and "** code	**".

       LVALUE and IO objects are not dumped at all.  They simply disappear
       from the	restored data structure.

       Data::DumpXML::Parser, XML::Parser, XML::Dumper,	Data::Dump

       The "Data::DumpXML" module is written by	Gisle Aas <>,
       based on	"Data::Dump".

       The "Data::Dump"	module was written by Gisle Aas, based on
       "Data::Dumper" by Gurusamy Sarathy <>.

	Copyright 1998-2003 Gisle Aas.
	Copyright 1996-1998 Gurusamy Sarathy.

       This library is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

perl v5.32.0			  2003-12-18			    DumpXML(3)


Want to link to this manual page? Use this URL:

home | help