Releases: tafia/quick-xml
v0.38.4 - CDATA serialization in serde
What's Changed
New Features
- #353: Add ability to serialize textual content as CDATA sections in
Serializer. Everywhere where the text node may be created, a CDATA section(s) could be produced instead. See the newSerializer::text_format()method.
Bug Fixes
- #912: Fix deserialization of numbers, booleans and characters that is space-wrapped, for example
<int> 42 </int>. That space characters are usually indent added during serialization and other XML serialization libraries trims them
Misc Changes
New Contributors
- @Ninja3047 made their first contribution in #904
- @alexanderkjall made their first contribution in #901
Full Changelog: v0.38.3...v0.38.4
v0.38.3 - Fix EOL normalization in some cases
What's Changed
Bug Fixes
- #895: Fix incorrect normalization of
\rXEOL sequences whereXis a char which is UTF-8 encoded as [c2 xx], except [c2 85].
Misc Changes
- #895: Add new
xml10_content()andxml11_content()methods which behaves the same ashtml_content()andxml_content()methods, but express intention more clearly.
Full Changelog: v0.38.2...v0.38.3
v0.38.2 - Make NamespaceResolver public
What's Changed
New Features
- #893: Implement
FusedIteratorforNamespaceBindingsIter. - #893: Make
NamespaceResolverpublic. - #893: Add
NsReader::resolver()for access to namespace resolver.
Misc Changes
- #893: Rename
PrefixItertoNamespaceBindingsIter.
New Contributors
- @decathorpe made their first contribution in #891
Full Changelog: v0.38.1...v0.38.2
v0.38.1 - EOL normalization in events
What's Changed
Important changes
To get text in events according to the XML specification (normalized EOLs) use the new methods xml_content() instead of decode(). Deserializer uses new method automatically.
New Features
- #882: Add new methods to create
Deserializerfrom existingNsReader:Deserializer::borrowingDeserializer::borrowing_with_resolverDeserializer::bufferingDeserializer::buffering_with_resolver
- #878: Add ability to serialize structs in
$valuefields. The struct name will be used as a tag name. Previously only enums was allowed there. - #806: Add
BytesText::xml_content,BytesCData::xml_contentandBytesRef::xml_contentmethods which returns XML EOL normalized strings. - #806: Add
BytesText::html_content,BytesCData::html_contentandBytesRef::html_contentmethods which returns HTML EOL normalized strings.
Bug Fixes
- #806: Properly normalize EOL characters in
Deserializer. - #888: Properly split attribute values by items when deserialize attribute into list of values and attribute requires decoding.
New Contributors
- @fukusuket made their first contribution in #874
- @xdm67x made their first contribution in #882
Full Changelog: v0.38.0...v0.38.1
v0.38.0 - Better support of references (&...;)
What's Changed
Significant changes
Now references to entities (as predefined, such as <, as user-defined) reported as a new Event::GeneralRef.
Caller can parse the content of the entity and stream events from it as it is required by the XML specification. See the updated custom_entities example!
Implement whitespace behavior in the standard in Deserializer, which says string primitive types should preserve whitespace, while all other primitives have collapse behavior.
New Features
- #863: Add
Attributes::into_map_access(&str)andAttributes::into_deserializer()whenserializefeature is enabled. This will allow do deserialize serde types right from attributes. Both methods returns the same type which implements serde'sDeserializerandMapAccesstraits. - #766: Allow to parse resolved entities as XML fragments and stream events from them.
- #766: Added new event
Event::GeneralRefwith content of general entity. - #766: Added new configuration option
allow_dangling_ampwhich allows to have a¬ followed by;in the textual data which is required for some applications for compatibility reasons. - #285: Add ability to
quick_xml::de::Textto access text with trimmed spaces
Bug Fixes
- #868: Allow to have both
$textand$valuespecial fields in one struct. Previously any text will be recognized as$valuefield even when$textfield is also presented. - #868: Skip text events when deserialize a sequence of items overlapped with text (including CDATA).
- #841: Do not strip
xmlprefix from the attributes when map them to struct fields inDeserializer.
Misc Changes
- #863: Remove
From<QName<'a>> for BytesStart<'a>because nowBytesStartstores the encoding in which its data is encoded, butQNameis a simple wrapper around byte slice. - #766:
BytesText::unescapeandBytesText::unescape_withreplaced byBytesText::decode. Now Text events does not contain escaped parts which are reported asEvent::GeneralRef.
New Contributors
- @Dr-Emann made their first contribution in #860
- @maxence-cornaton made their first contribution in #864
- @dizzyi made their first contribution in #866
- @eirnym made their first contribution in #870
- @ggodlewski made their first contribution in #865
- @curatorsigma made their first contribution in #873
Full Changelog: v0.37.5...v0.38.0
v0.37.5 - BytesCData::decode()
What's Changed
New Features
- #857: Add
BytesCData::decode().
New Contributors
- @mematthias made their first contribution in #857
Full Changelog: v0.37.4...v0.37.5
v0.37.4 - Derive more traits for readers
What's Changed
Misc Changes
- #852: Add
Debugimpl forNsReaderandReaderandCloneimpl forNsReader
New Contributors
Full Changelog: v0.37.3...v0.37.4
v0.37.3 - support for `xsi:nil` in Deserializer
What's Changed
New Features
- #850: Add
Attribute::as_bool()method to get an attribute value as a boolean. - #850: Add
Attributes::has_nil()method to check if attributes hasxsi:nilattribute set totrue. - #497: Handle
xsi:nilattribute in serde Deserializer to better process optional fields.
Full Changelog: v0.37.2...v0.37.3
v0.37.2 - se::to_utf8_io_writer()
What's Changed
New Features
- #836: Add
se::to_utf8_io_writer()helper compatible withstd::io::Writeand restricted to UTF-8 encoding.
New Contributors
- @pronebird made their first contribution in #836
Full Changelog: v0.37.1...v0.37.2