- Fixed whitespace event when parsing DOCTYPE with internal subset
- Option to tolerate invalid entities and chars
- Added configuration for document size/complexity limits.
- Fixed error line numbers when parsing CDATA as characters
- Improved speed of parsing elements with huge number of arguments
- Fixed error line numbers when ignoring comments
- Backward-compatibility fix
- Improved conformance of parsing invalid codepoints, XML prolog
- Reduced number of allocations
- Improved conformance of PI
- Forbidden invalid multiple root elements, unless an option allowing them is enabled.
- Improved parsing conformance
- Internal error handling improvements
- Added support for UTF-16 and ASCII
- Fixed CDATA parsing
- Added PE entities parsing
- Added recursive entity expansion (with length protection)
- Expanded parsing of DTD
- Basic parsing of DTD internal subset
- Speed improvements
- Fixed parsing of incorrectly nested comments and processing instructions
- Updated source code to edition 2018 and fixed/updated some Rust idioms.
- Fixed recognition of
?>
,]]>
and/>
tokens as characters. - Fixed writer output operations to use
write_all
to ensure that the data is written fully. - The document declaration is now written before any characters automatically.
- Added a new parser option,
ignore_root_level_whitespace
, which makes the parser skip emitting whitespace events outside of the root element when set totrue
. This helps with certain tasks like canonicalization.
- Added a new parser option,
replace_unknown_entity_references
, which allows to ignore invalid Unicode code points and replace them with a Unicode "replacement character" during parsing. This can be helpful to deal with e.g. UTF-16 surrogate pairs. - Added a new emitter option,
pad_self_closing
, which determines the style of the self-closing elements when they are emitted:<a />
(true
) vs<a/>
(false
).
- Fixed various issues with tests introduced by updates in Rust.
- Adjusted the lexer to ignore contents of the
<!DOCTYPE>
tag. - Removed unnecessary unsafety in tests.
- Added tests for doc comments in the readme file.
- Switched to GitHub Actions from Travis CI.
- Same as 0.7.1, with 0.7.1 being yanked because of the incorrect semver bump.
- Removed dependency on bitflags.
- Added the
XmlWriter::inner_mut()
method. - Fixed some rustdoc warnings.
- Same as 0.6.2, with 0.6.2 being yanked because of the incompatible bump of minimum required version of rustc.
- Bumped
bitflags
to 1.0.
- Fixed the writer to escape some special characters when writing attribute values.
- Changed the target type of extra entities from
char
toString
. This is an incompatible change.
- Added support for ignoring EOF errors in order to read documents from streams incrementally.
- Bumped
bitflags
to 0.9.
- Added missing
Debug
implementation toxml::writer::XmlEvent
.
- Bumped version number, since changes introduced in 0.3.7 break backwards compatibility.
- Fixed a problem introduced in 0.3.7 with entities in attributes causing parsing errors.
- Fixed the problem with parsing non-whitespace character entities as whitespace (issue #140).
- Added support for configuring custom entities in the parser configuration.
- Added an
Error
implementation forEmitterError
. - Fixed escaping of strings with multi-byte code points.
- Added
Debug
implementation forXmlVersion
. - Fixed some failing tests.
- Updated
bitflags
to 0.7.
- Added
From<io::Error>
forxml::reader::Error
, which improves usability of working with parsing errors.
- Bumped
bitflags
dependency to 0.4, some internal warning fixes.
- Changed error handling in
EventReader
- now I/O errors are properly bubbled up from the lexer.
- Fixed #112 - incorrect handling of namespace redefinitions when writing a document.
- Added
into_inner()
methods toEventReader
andEventWriter
.
- Using
join
instead of the deprecatedconnect
. - Added a simple XML analyzer program which demonstrates library usage and can be used to check XML documents for well-formedness.
- Fixed incorrect handling of unqualified attribute names (#107).
- Added this changelog.
- Fixed #105 - incorrect handling of double dashes.
- Major update, includes proper document writing support and significant architecture changes.