Changes for version 1.18

  • Fixed typo "DOM::XML::XmlUtf8Encode" in expandEntityRefs() to XML::DOM::XmlUtf8Encode. (Thanks to Manessinger Andreas <man@adv.magwien.gv.at>)
  • XML::Parser 2.20 added the is_defaulted method, which improves performance a bit when used. Benchmark (see below) went from 6.50s to 6.07s (7%) You don't have to upgrade to 2.20, this change is backwards compatible.
  • Copied node constants (e.g. ELEMENT_NODE) from XML::DOM::Node to XML::DOM, so you can use ELEMENT_NODE instead of XML::DOM::ELEMENT_NODE. The old style will still work.
  • Fixed XmlUtf8Decode to add 'x' when printing hex entities (not used by XML::DOM module, but other people might want to use it at some point)
  • Fixed typo: DocumentType::getSysid should have been getSysId. (Thanks to Bruce Kaskel <bkaskel@Adobe.COM>)
  • Added DocumentType::setName, setSysId, setPubId
  • Added Document::createDocumentType
  • DocumentType::print no longer prints the square brackets if it has no entities, notations or other children. (Thanks again, Bruce)
  • The MacOS related bugs in the testcases etc. should all be fixed. (Thanks to Arved Sandstrom <Arved_37@chebucto.ns.ca> and Chris Nandor <pudge@pobox.com>)
  • Added code to ignore Text Declarations from external parsed entities, i.e. <?xml version....?> They were causing exceptions like "XML::DOM::DOMException(Code=5, Name=INVALID_CHARACTER_ERR, Message=bad Entity Name [] in EntityReference)" (Thanks to Marcin Jagodzinski <marcin@quake.org.pl>)

Modules

A perl module for building DOM Level 1 compliant document structures
Addition to XML::DOM to exploit Perl's utf8 support