NAME

Pitonyak::XMLUtil - Convert Objects to and from XML.


DESCRIPTION

A few simple XML utilities that will convert arbitrary objects to XML and back again. These routines have not been extensively tested.

convert_entity_references_to_characters

convert_entity_references_to_characters(@strings_with_entity_refs)

Change '&amp;' to '&', '&lt;' to '<', '&gt;' to '>', '&quot;' to '``', and '&apos;' to '''``.

The calling parameters are modfied

convert_xml_characters_to_entity_references

convert_xml_characters_to_entity_references(@strings_needing_entity_refs)

Change '&' to '&amp;', '<' to '&lt;', '>' to '&gt;', '``' to '&quot;', and '''`` to '&apos;',

The calling parameters are modfied.

This is used to render a string safe to send as XML. Existing entity referenes will have their leading ampersand transformed.

object_to_xml

object_to_xml(@objects_to_transform)

Transform an object into XML. An attempt is made to make this object human readable. Note that if the object is a package object that is referenced as a HASH it is still embedded as a HASH.

Each object in the array is returned as a separate XML string.

An object that is not defined is returned as <NULL/>>

A SCALAR is rendered XML safe by converting special characters to entity references. It is otherwise left unchanged.

A Reference to a SCALAR is encoded as <REF/> for a zero length SCALAR and as <REF>value</REF>

An ARRAY reference is encoded as either <ARRAY/> or something similar to <ARRAY><VALUE>value</VALUE></ARRAY>.

A HASH reference is encoded as <HASH><PAIR><KEY>value</KEY><VALUE>value<VALUE></PAIR></HASH> A PAIR may be missing a VALUE which means that it is undefined.

If a value is really the intended value, then it is rendered XML safe by using entity references and no extra space is used. If the value is a reference to something else then the object is converted to XML using extra white space and indentation for easier reading.

xml_to_object

xml_to_object(@xml_strings_to_convert_to_objects)

Convert XML strings back into objects.


COPYRIGHT

Copyright 2002, Andrew Pitonyak (perlboy@pitonyak.org)

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


Modification History

September 10, 2002

Version 1.00 Initial release