The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Revision history for Perl module XML::Simple

2.18  Aug 15 2007
      - Non-unique key attribute values now trigger a warning (or a fatal
        error in strict mode) rather than silently discarding data (patch
        from Daniel Baysinger)

2.17  Aug 02 2007
      - Added parse_string(), parse_file() and parse_fh() methods
      - Added default_config_file(), and build_simple_tree() hook methods
      - Tweak to implementation of exporting (patch from Stuart Moore)
      - Documented hook methods
      - Fixed test suite race condition (RT#28603 from Andreas J. König)

2.16  Oct 30 2006
      - Added test/fix for bad GroupTags option (report from Lee Goddard)
      - Added new_hashref() hook method
      - refactored cache save/restore methods for easier overriding

2.15  Oct 03 2006
      - Makefile.PL changes: reject known-bad PurePerl and RTF parser modules;
        default to XML::SAX::Expat if no parser installed
      - allow '.' characters in variable names (suggested by Cosimo Streppone)
      - fix output of undefs in arrayrefs with SuppressEmpty (reported by
        かんな - Kanna)
      - tidy up code and docs around lexical filehandle passed to OutputFile
        (report from Helge Sauer)
      - reduce memory usage by passing XML strings by reference (patch from
        Dan Sully)

2.14  Jan 29 2005
      - unlink and lock fixes for VMS (patch from Peter (Stig) Edwards)

2.13  Nov 17 2004
      - Fixed bug where NoIndent broke KeyAttr (reported by David Haas)
      - Added copy_hash helper method which may be overridden to avoid
        tied hashes becoming untied during XMLout (patch from Jan Sundberg)
      - Fixed bug where GroupTags corrupted source hashref in XMLout
        (reported by Bram)
      - Tweaks to SuppressEmpty for undef with XMLout (report from jamesb),
        behaviour now matches docs and additional behaviour of setting
        option to 1 will skip undefined values altogether

2.12  Apr 05 2004
      - added NumericEscape option
      - added ValueAttr option (patch from Anton Berezin)
      - suppress 'wide character in print' warning (reported by Dawei Lin)

2.11  Mar 02 2004
      - Fixed hash ordering assumption in a new test (reported by Jost Krieger)

2.10  Feb 29 2004
      - Added AttrIndent option (patch from Volker Moell)
      - Hash keys are now sorted alphabetically by default; enable the
        new NoSort option if you don't want this (patch from Volker Moell)
      - Fixed bug where disabling array folding broke anonymous array handling
      - Fixed bug when unfolding a tied hash
      - SuppressEmpty patch from Douglas Wilson
      - Numerous test improvements - Devel::Cover rocks!
      - POD update re XMLin(XMLout($data)) caveats (bug report from Slaven
        Rezic)

2.09  Sep 09 2003
      - Makefile.PL makeover contributed by Joshua Keroes
      - fixed hash ordering assumption in test script (reported by Michel
        Rodriguez)
      - POD updates
      - updated link to Perl XML FAQ

2.08  Jun 13 2003
      - fixed variable expansion not happening in attributes (patch from Paul
        Bussé)

2.07  May 20 2003
      - added test to catch old versions of Storable which lack locking support
      - removed new-style loop which broke on 5.005_03
      - suppress more uninitialised variable warnings

2.06  May 18 2003
      - fixed strict mode requiring ForceArray on output (fix from Igor Román
        Mariño)
      - fixed warnings about uninitialised values
      - minor POD update (link to FAQ)

2.05  Apr 16 2003
      - fixed warnings when NormaliseSpace undefined (reported by Peter
        Scott and others)
      - added support for specifying ForceArray using regular expressions
        (patch from Jim Cromie)
      - added check to escape_value to guard against undefined argument
        (reported by Henrik Gemal)
      - added NoIndent option (requested by Afroze Husain Zubairi)

2.04  Apr 10 2003
      - integrated a patch from Michel Rodriguez
        + new facility for removing extra levels of indirection (using
          the new 'GroupTags' option)
        + new facility for rolling the dreaded 'content' hash up into a
          scalar if there are no keys left after array folding (using the
          '-' prefix mode on the ContentKey option)
        + new facility for doing variable substitution in the XML; variables
          can be defined in Perl (using the new 'Variables' option) or in 
          the XML document (using the new 'VarAttr' option)
      - added 'NormaliseSpace' option for tidying up hash keys and other
        text content if required (feature requested by Alex Manoussakis)
      - option names are now case-insensitive and can include underscores
      - XMLin() and XMLout() are now aliased to xml_in() and xml_out() when
        called as methods or imported explicitly
      - option names passed to XML::Simple->new() are now validated

2.03  Jan 20 2003
      - fixed circular reference check which was incorrectly catching
        'parallel' references (patch from Theo Lengyel)

2.02  Dec 15 2002
      - changed Storable calls to use locking (reported by Randal Schwarz)

2.01  Dec 11 2002
      - fixed bug whereby :strict mode required forcearray on 
        XMLout() (reported by Ville Skytta)

2.00  Dec 08 2002
      - first production release with SAX support
      - added support for 'strict mode' using :strict import tag
      - removed locking code (as it was incompatible with iThreads)
      - integrated patch for test failures from Sean Campbell
      - fixed stringification of references during folding (reported
        by Trond Michelsen)
      - fixed incompatability with Tie::IxHash (reported by
        Venkataramana Mokkapati)
      - POD: alphabetised options (patch from John Borwick)
      - POD: updated suppressempty (patch from Kjetil Kjernsmo)
      - added FAQ.pod to distribution and added new questions

1.08_01 Feb 14 2002 - beta release for testing SAX support
      - fixed errors with default namespace handling
      - minor POD updates

1.08  Feb 09 2002
      - re-release of 1.06 (stable) with minor updates ...
      - searchpath option now defaults to current directory if not set
      - fix to Storable test routine for test failures on Win32
      - removed obselete 'convert' script from distribution

1.07b Feb 05 2002 - beta release for testing SAX support
      - added SAX support including:
        + using SAX parsers
        + acting as a SAX handler 
        + generating SAX events from XMLout() with new Handler option
        + acting as a SAX filter (via new DataHandler option)
      - added $ENV{XML_SIMPLE_PREFERRED_PARSER} and
        $XML::Simple::PREFERRED_PARSER for selecting a parser module
      - added namespace support (SAX only) with nsexpand option for both 
        XMLin() and XMLout()
      - searchpath now defaults to current directory
      - parseropts option now officially deprecated
      - removed obselete 'convert' script from distribution
      - many POD updates (more to come)

1.06  Nov 19 2001
      - fixed version number in default xmldecl (thanks to Matt Sergeant for
        bug report and patch)
      - updated contact email address for author


1.05  Aug 31 2000
      - code re-org to make internals all OO for easier extending
      - added 'noattr' option to tell XMLout() not to use attributes (only
        nested elements) and XMLin() to discard attributes
      - added 'suppressempty' option to tell XMLin what to do with elements
        with no attributes and no content
      - added 'parseropts' option for specifying options which should be
        passed to the underlying XML::Parser object
      - added 'forcecontent' option to force text content to parse to a
        hash value even if the element has no attributes
      - fix for forcearray getting applied to text content
      - integrated patch from Paul Lindner to work around filenames sometimes
        being seen as XML when running under mod_perl
      - integrated patch from Edward Avis: filename '-' means stdin
      - fixed bug where a missing key attribute could cause a crash
      - added a warning message for above situation
      - added 'support' for CDATA sections - they always worked, but now
        they're in the test suite which should ensure they keep working
      - fixed error message when caching enabled but parsing from filehandle
      - fixed empty elements being skipped by XMLout() when folding enabled
      - fixed text content of '0' being skipped by XMLout()

1.04  Apr 03 2000
      - fix for text content being skipped by XMLout
      - added (optional) OO interface for changing default options
      - added 'keeproot' option (requested by Mark D. Anderson - MDA)
      - added 'contentkey' option (also requested by MDA)
      - incorporated 'forcearray' as arrayref patch from Andrew McNaughton

1.03  Mar 05 2000
      - added 'maketest' script for make impaired platforms
      - yet more cross platform robustness added to test scripts incl
        workaround for Win32 problem where writing to file changed contents
        but not timestamp(!)
      - backed out one overzealous use of File::Spec in test script
      - POD updates including XML::Twig description contributed by Michel
        Rodriguez

1.02b Feb 16 2000 - limited distribution beta
      - reinstated locking with new backwards compatibility code
      - fixed platform dependant pathname handling to use File::Basename &
        File::Spec in XML::Simple.pm and test scripts
      - fixed bug causing XMLout() to incorrectly barf on what it thought was
        a recursive data structure
      - removed spurious checking code which stopped XMLout unfolding a
        single nested hash
      - fixed t/4_MemShare.t to gracefully cope with the absense of utime()
      - changed t/3_Storable.t and t/5_MemCopy.t to skip gracefully if no
        Storable.pm
      - removed superflous eval blocks around requires

1.01  Dec  1 1999
      - removed faulty locking code pending a fix

1.00  Nov 25 1999
      - added escaping feature + noescape option
      - added xmldecl option
      - further tidy ups for thread safing
      - more POD revisions (incl: pointers to other modules)

0.95  Nov  2 1999
      - added rootname option
      - added outputfile option
      - lots of internal tidy ups for thread safing
      - fixed bug in check for XML string to XMLin()
      - extra tests (esp option handling)

0.90  Oct 14 1999 (first beta release)
      - module renamed to XML::Simple ready for CPAN upload
      - XMLToOpt() renamed to XMLin()
      - OptToXML() renamed to XMLout()
      - added 'convert' script

0.05  Sep 18 1999
      - fixed location of XML.pm in distribution (make install didn't work)
      - added tests for MemCopy
      - fixed ABSTRACT_FROM in Makefile.PL
      - fixed PREREQ_PM in Makefile.PL

0.04  Aug 10 1999
      - added caching using Storable.pm
      - updated MANIFEST to include missing test files

0.03  Jun 20 1999
      - rewrite of OptToXML
      - anonymous array support
      - more and better test routines
      - POD updates

0.02  Jun 10 1999
      - added support for OptToXML
      - fixed searchpath inconsistencies
      - added 'forcearray' option
      - POD improvements
      - much improved test routines

0.01  May 27 1999
      - original version; created by h2xs 1.18
      - module called 'Getopt::XML'
      - included basic XMLToOpt routine