Changes for version 2.57 - 2026-04-07

  • Fixes:
    • PR #235 GH #234 Fix PE parsing regression that broke XML::Twig DTD round-tripping: defer parameter entity parsing activation to when a declaration handler is registered, preventing PE references from being consumed by the empty sub-parser instead of reaching the Default handler
    • PR #232 GH #47 Add regression tests for post-root character data routing and add ppport.h for XS backward compatibility macros
    • PR #229 Add NULL check after XML_ParserCreate_MM to prevent segfault on memory allocation failure
    • PR #225 Replace deprecated indirect object syntax in LWPExternEnt.pl (new URI(...) -> URI->new(...), etc.) for forward compatibility with Perl 5.36+ where 'use v5.36' disables the indirect feature. Also add 'use strict' to the file
  • Improvements:
    • PR #233 Add downstream CI testing for XML::XPath, XML::DOM, and XML::Twig to catch breakage in major consumers before release
  • Maintenance:
    • PR #239 Convert t/char_end_doc.t to Test::More; all 57 test files now consistently use Test::More
    • PR #238 Expand CLAUDE.md with project conventions for generated files, releases, and testing
    • PR #231 Add test coverage for load_encoding, xml_escape edge cases, and ContentModel API
    • PR #230 Add test coverage for element_index, position_in_context, specified_attr, and setHandlers
    • PR #228 Add test coverage for recognized_string, default_current, and original_string introspection methods
    • PR #227 Add test coverage for context-tracking API (context, current_element, in_element, within_element, depth)
    • PR #226 Add test coverage for parse_start/ExpatNB non-blocking parser API
    • PR #225 Replace indirect object syntax in test files (t/decl.t, t/parament.t, t/external_ent.t)
    • PR #224 Add test coverage for IO control character rejection in external entity paths

Documentation

Modules

Lowlevel access to James Clark's expat XML parser
A perl module for parsing XML documents
Debug style for XML::Parser
Objects styler parser
Stream style for XML::Parser
glue for handling element callbacks
Tree style parser