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
Quanah)
- Restrict scope of :strict mode to calling package (RT#41562 from Hannu
Aronsson)
- 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
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