Revision history for XML-Simple

2.25      2018-03-18 16:18:24+13:00 Pacific/Auckland
  - disable entity expansion when using XML::Parser, for more secure default
    behaviour (patch from Ray Morris)
  - call to XML::Parser constructor is now in its own method to ease overriding

2.24      2017-04-17 16:12:00+12:00 Pacific/Auckland
  - fix typo in last commit with mistakenly removed some underscores
  - don't initialise $XML::Simple::PREFERRED_PARSER to undef as a caller may
    have already set it before loading XML::Simple and if not, it would have
    defaulted to undef anyway (RT#118205 from Slaven Rezić)

2.23      2017-04-17 15:49:14+12:00 Pacific/Auckland
  - another fix to the logic for detecting circular references (RT#114120 from
    Matthias Pitzl, also report from Erland Sommarskog)

2.22      2015-12-05 11:08:20+13:00 Pacific/Auckland
  - POD fix in link to package XML::SAX::ParseFactory (from Mohammad S Anwar)
  - allow subclass to override attribute escaping (from Christopher Masto)
  - POD fix adding NAME section to FAQ (RT#110080 from Bart Martens & gregor
    herrmann of the Debian project)
  - POD typo fix (RT#110082 from gregor herrmann of the Debian project)
  - fix reference comparison operator used in checking for circular data
    structures (RT#89553 from Laurent Dami)
  - add better diagnostics from file handling code in test suite

2.21      2015-12-04 16:33:49+13:00 Pacific/Auckland
  - Improved diagnostics - xml_in() will now catch parse exceptions and add
    caller information via Carp::croak
  - Switch to use lexical warnings (suppress with either 'no warnings;' or
    'no warnings "XML::Simple";', rather than $^W = 0)
  - POD fixes (from David Steinbrunner)
  - Regex escaping fixes for Perl 5.22+ (from Kent Fredric)
  - Add workaround for test failures on RHEL/CentOS 6.5 (RT#102115 from
    Chris Drake, workaround from Tim Bunce)
  - Remove some 'eval' calls from test suite which could mask root cause of
    test failures
  - Make each test script use unique filenames to allow tests to be run in
    parallel (RT#101362 from Karen Etheridge & Kent Fredric)
  - POD update: mention XML::Twig in 'STATUS' section (RT#79228 from Matt Trout)

2.20      2012-06-20 22:00:13 Pacific/Auckland
  - Suppress warning from empty CDATA section (RT#58359 from Juan Antonio
    Navarro Pérez)

2.19_02   2012-06-19 20:33:53 Pacific/Auckland
  - Reinstate XML::SAX::Expat dependency
  - Fix warnings tests (broken in 2.19_01) which rely on global $^W

2.19_01   2012-06-17 23:27:22 Pacific/Auckland
  - Use lexical filehandles instead of old-style fileglobs (RT#77787 from
  - Restrict scope of :strict mode to calling package (RT#41562 from Hannu
  - Fix POD typo (RT#45414 from Anirvan Chatterjee)
  - Update POD to reflect best practise regarding :strict and options
  - Change minimum Perl requirement to 5.008
  - Switch to using Dist::Zilla for release management

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

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

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

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
  - 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)
    $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

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 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
  - 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 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
  - 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