Update Rust crate quick-xml to 0.39.0 #28

Merged
redbinder0526 merged 1 commit from renovate/quick-xml-0.x into main 2026-04-29 09:54:02 +02:00
Owner

This PR contains the following updates:

Package Type Update Change
quick-xml dependencies minor 0.37.20.39.0

Release Notes

tafia/quick-xml (quick-xml)

v0.39.2

Compare Source

New Features
  • #​483: Implement read_text_into() and read_text_into_async().
Bug Fixes
  • #​939: Fix parsing error of the tag from buffered reader, when the first byte <
    is the last in the BufRead internal buffer. This is the regression from #​936.

v0.39.1

Compare Source

New Features
  • #​598: Add method NamespaceResolver::set_level which may be helpful in some circumstances.
Bug Fixes
  • #​597: Fix incorrect processing of namespace scopes in NsReader::read_to_end
    NsReader::read_to_end_into, NsReader::read_to_end_into_async and NsReader::read_text.
    The scope started by a start element was not ended after that call.
  • #​936: Fix incorrect result of .read_text() when it is called after reading Text or GeneralRef event.

v0.39.0

Compare Source

Added a way to configure Writer. Now all configuration is contained in the writer::Config
struct and can be applied at once. When serde-types feature is enabled, configuration is serializable.

New Features
  • #​846: Add methods config() and config_mut() to inspect and change the writer configuration.
  • #​846: Add ability to write space before /> in self-closed tags for maximum compatibility with
    XHTML.
  • #​846: Add method empty_element_handling() as a more powerful alternative to expand_empty_elements()
    in Serializer.
  • #​929: Allow to pass list of field names to impl_deserialize_for_internally_tagged_enum! macro
    which is required if you enum variants contains $value fields.
Bug Fixes
  • #​923: Implement correct skipping of well-formed DTD.
Misc Changes
  • #​908: Increase minimal supported serde version from 1.0.139 to 1.0.180.
  • #​913: Deprecate .prefixes(), .resolve(), .resolve_attribute(), and .resolve_element()
    of NsReader. Use .resolver().bindings() and .resolver().resolve() methods instead.
  • #​913: Attributes::has_nil now accepts NamespaceResolver instead of Reader<R>.
  • #​924: (breaking change) Split SyntaxError::UnclosedPIOrXmlDecl into UnclosedPI and
    UnclosedXmlDecl for more precise error reporting.
  • #​924: (breaking change) Parser::eof_error now takes &self and content &[u8] parameters.
  • #​926: (breaking change) Split SyntaxError::UnclosedTag into UnclosedTag,
    UnclosedSingleQuotedAttributeValue and UnclosedDoubleQuotedAttributeValue for more precise error reporting.

v0.38.4

Compare Source

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 new Serializer::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
  • #​901: Fix running tests on 32-bit architecture
  • #​909: Avoid some allocations in the Serializer

v0.38.3

Compare Source

Bug Fixes
  • #​895: Fix incorrect normalization of \rX EOL sequences where X is a char which is
    UTF-8 encoded as [c2 xx], except [c2 85].
Misc Changes
  • #​895: Add new xml10_content() and xml11_content() methods which behaves the same as
    html_content() and xml_content() methods, but express intention more clearly.

v0.38.2

Compare Source

New Features
  • #​893: Implement FusedIterator for NamespaceBindingsIter.
  • #​893: Make NamespaceResolver public.
  • #​893: Add NsReader::resolver() for access to namespace resolver.
Misc Changes
  • #​893: Rename PrefixIter to NamespaceBindingsIter.

v0.38.1

Compare Source

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 Deserializer from existing NsReader:
    • Deserializer::borrowing
    • Deserializer::borrowing_with_resolver
    • Deserializer::buffering
    • Deserializer::buffering_with_resolver
  • #​878: Add ability to serialize structs in $value fields. The struct name will
    be used as a tag name. Previously only enums was allowed there.
  • #​806: Add BytesText::xml_content, BytesCData::xml_content and BytesRef::xml_content
    methods which returns XML EOL normalized strings.
  • #​806: Add BytesText::html_content, BytesCData::html_content and BytesRef::html_content
    methods 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.

v0.38.0

Compare Source

Significant changes

Now references to entities (as predefined, such as &lt;, 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) and Attributes::into_deserializer() when serialize
    feature is enabled. This will allow do deserialize serde types right from attributes. Both methods
    returns the same type which implements serde's Deserializer and MapAccess traits.
  • #​766: Allow to parse resolved entities as XML fragments and stream events from them.
  • #​766: Added new event Event::GeneralRef with content of general entity.
  • #​766: Added new configuration option allow_dangling_amp which allows to have
    a & not followed by ; in the textual data which is required for some applications
    for compatibility reasons.
  • #​285: Add ability to quick_xml::de::Text to access text with trimmed spaces
Bug Fixes
  • #​868: Allow to have both $text and $value special fields in one struct. Previously
    any text will be recognized as $value field even when $text field is also presented.
  • #​868: Skip text events when deserialize a sequence of items overlapped with text (including CDATA).
  • #​841: Do not strip xml prefix from the attributes when map them to struct fields in Deserializer.
Misc Changes
  • #​863: Remove From<QName<'a>> for BytesStart<'a> because now BytesStart stores the
    encoding in which its data is encoded, but QName is a simple wrapper around byte slice.
  • #​766: BytesText::unescape and BytesText::unescape_with replaced by BytesText::decode.
    Now Text events does not contain escaped parts which are reported as Event::GeneralRef.

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [quick-xml](https://github.com/tafia/quick-xml) | dependencies | minor | `0.37.2` → `0.39.0` | --- ### Release Notes <details> <summary>tafia/quick-xml (quick-xml)</summary> ### [`v0.39.2`](https://github.com/tafia/quick-xml/blob/HEAD/Changelog.md#0392----2026-02-20) [Compare Source](https://github.com/tafia/quick-xml/compare/v0.39.1...v0.39.2) ##### New Features - [#&#8203;483]: Implement `read_text_into()` and `read_text_into_async()`. ##### Bug Fixes - [#&#8203;939]: Fix parsing error of the tag from buffered reader, when the first byte `<` is the last in the `BufRead` internal buffer. This is the regression from [#&#8203;936]. [#&#8203;483]: https://github.com/tafia/quick-xml/issues/483 [#&#8203;936]: https://github.com/tafia/quick-xml/pull/936 [#&#8203;939]: https://github.com/tafia/quick-xml/issues/939 ### [`v0.39.1`](https://github.com/tafia/quick-xml/blob/HEAD/Changelog.md#0391----2026-02-15) [Compare Source](https://github.com/tafia/quick-xml/compare/v0.39.0...v0.39.1) ##### New Features - [#&#8203;598]: Add method `NamespaceResolver::set_level` which may be helpful in some circumstances. ##### Bug Fixes - [#&#8203;597]: Fix incorrect processing of namespace scopes in `NsReader::read_to_end` `NsReader::read_to_end_into`, `NsReader::read_to_end_into_async` and `NsReader::read_text`. The scope started by a start element was not ended after that call. - [#&#8203;936]: Fix incorrect result of `.read_text()` when it is called after reading `Text` or `GeneralRef` event. [#&#8203;597]: https://github.com/tafia/quick-xml/issues/597 [#&#8203;598]: https://github.com/tafia/quick-xml/pull/598 [#&#8203;936]: https://github.com/tafia/quick-xml/pull/936 ### [`v0.39.0`](https://github.com/tafia/quick-xml/blob/HEAD/Changelog.md#0390----2026-01-11) [Compare Source](https://github.com/tafia/quick-xml/compare/v0.38.4...v0.39.0) Added a way to configure `Writer`. Now all configuration is contained in the `writer::Config` struct and can be applied at once. When `serde-types` feature is enabled, configuration is serializable. ##### New Features - [#&#8203;846]: Add methods `config()` and `config_mut()` to inspect and change the writer configuration. - [#&#8203;846]: Add ability to write space before `/>` in self-closed tags for maximum compatibility with XHTML. - [#&#8203;846]: Add method `empty_element_handling()` as a more powerful alternative to `expand_empty_elements()` in `Serializer`. - [#&#8203;929]: Allow to pass list of field names to `impl_deserialize_for_internally_tagged_enum!` macro which is required if you enum variants contains `$value` fields. ##### Bug Fixes - [#&#8203;923]: Implement correct skipping of well-formed DTD. ##### Misc Changes - [#&#8203;908]: Increase minimal supported `serde` version from 1.0.139 to 1.0.180. - [#&#8203;913]: Deprecate `.prefixes()`, `.resolve()`, `.resolve_attribute()`, and `.resolve_element()` of `NsReader`. Use `.resolver().bindings()` and `.resolver().resolve()` methods instead. - [#&#8203;913]: `Attributes::has_nil` now accepts `NamespaceResolver` instead of `Reader<R>`. - [#&#8203;924]: (breaking change) Split `SyntaxError::UnclosedPIOrXmlDecl` into `UnclosedPI` and `UnclosedXmlDecl` for more precise error reporting. - [#&#8203;924]: (breaking change) `Parser::eof_error` now takes `&self` and content `&[u8]` parameters. - [#&#8203;926]: (breaking change) Split `SyntaxError::UnclosedTag` into `UnclosedTag`, `UnclosedSingleQuotedAttributeValue` and `UnclosedDoubleQuotedAttributeValue` for more precise error reporting. [#&#8203;846]: https://github.com/tafia/quick-xml/issues/846 [#&#8203;908]: https://github.com/tafia/quick-xml/pull/908 [#&#8203;913]: https://github.com/tafia/quick-xml/pull/913 [#&#8203;923]: https://github.com/tafia/quick-xml/issues/923 [#&#8203;924]: https://github.com/tafia/quick-xml/pull/924 [#&#8203;926]: https://github.com/tafia/quick-xml/issues/926 [#&#8203;929]: https://github.com/tafia/quick-xml/pull/929 ### [`v0.38.4`](https://github.com/tafia/quick-xml/blob/HEAD/Changelog.md#0384----2025-11-11) [Compare Source](https://github.com/tafia/quick-xml/compare/v0.38.3...v0.38.4) ##### New Features - [#&#8203;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 new [`Serializer::text_format()`] method. ##### Bug Fixes - [#&#8203;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 - [#&#8203;901]: Fix running tests on 32-bit architecture - [#&#8203;909]: Avoid some allocations in the `Serializer` [#&#8203;353]: https://github.com/tafia/quick-xml/issues/353 [#&#8203;901]: https://github.com/tafia/quick-xml/pull/901 [#&#8203;909]: https://github.com/tafia/quick-xml/pull/909 [#&#8203;912]: https://github.com/tafia/quick-xml/pull/912 [`Serializer::text_format()`]: https://docs.rs/quick-xml/0.38.4/quick_xml/se/struct.Serializer.html#method.text_format ### [`v0.38.3`](https://github.com/tafia/quick-xml/blob/HEAD/Changelog.md#0383----2025-08-24) [Compare Source](https://github.com/tafia/quick-xml/compare/v0.38.2...v0.38.3) ##### Bug Fixes - [#&#8203;895]: Fix incorrect normalization of `\rX` EOL sequences where `X` is a char which is UTF-8 encoded as \[c2 xx], except \[c2 85]. ##### Misc Changes - [#&#8203;895]: Add new `xml10_content()` and `xml11_content()` methods which behaves the same as `html_content()` and `xml_content()` methods, but express intention more clearly. [#&#8203;895]: https://github.com/tafia/quick-xml/pull/895 ### [`v0.38.2`](https://github.com/tafia/quick-xml/blob/HEAD/Changelog.md#0382----2025-08-19) [Compare Source](https://github.com/tafia/quick-xml/compare/v0.38.1...v0.38.2) ##### New Features - [#&#8203;893]: Implement `FusedIterator` for `NamespaceBindingsIter`. - [#&#8203;893]: Make `NamespaceResolver` public. - [#&#8203;893]: Add `NsReader::resolver()` for access to namespace resolver. ##### Misc Changes - [#&#8203;893]: Rename `PrefixIter` to `NamespaceBindingsIter`. [#&#8203;893]: https://github.com/tafia/quick-xml/pull/893 ### [`v0.38.1`](https://github.com/tafia/quick-xml/blob/HEAD/Changelog.md#0381----2025-08-03) [Compare Source](https://github.com/tafia/quick-xml/compare/v0.38.0...v0.38.1) ##### 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 - [#&#8203;882]: Add new methods to create `Deserializer` from existing `NsReader`: - `Deserializer::borrowing` - `Deserializer::borrowing_with_resolver` - `Deserializer::buffering` - `Deserializer::buffering_with_resolver` - [#&#8203;878]: Add ability to serialize structs in `$value` fields. The struct name will be used as a tag name. Previously only enums was allowed there. - [#&#8203;806]: Add `BytesText::xml_content`, `BytesCData::xml_content` and `BytesRef::xml_content` methods which returns XML EOL normalized strings. - [#&#8203;806]: Add `BytesText::html_content`, `BytesCData::html_content` and `BytesRef::html_content` methods which returns HTML EOL normalized strings. ##### Bug Fixes - [#&#8203;806]: Properly normalize EOL characters in `Deserializer`. - [#&#8203;888]: Properly split attribute values by items when deserialize attribute into list of values and attribute requires decoding. [#&#8203;806]: https://github.com/tafia/quick-xml/issues/806 [#&#8203;878]: https://github.com/tafia/quick-xml/pull/878 [#&#8203;882]: https://github.com/tafia/quick-xml/pull/882 [#&#8203;888]: https://github.com/tafia/quick-xml/pull/888 ### [`v0.38.0`](https://github.com/tafia/quick-xml/blob/HEAD/Changelog.md#0380----2025-06-28) [Compare Source](https://github.com/tafia/quick-xml/compare/v0.37.5...v0.38.0) ##### Significant changes Now references to entities (as predefined, such as `&lt;`, 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 - [#&#8203;863]: Add `Attributes::into_map_access(&str)` and `Attributes::into_deserializer()` when `serialize` feature is enabled. This will allow do deserialize serde types right from attributes. Both methods returns the same type which implements serde's `Deserializer` and `MapAccess` traits. - [#&#8203;766]: Allow to parse resolved entities as XML fragments and stream events from them. - [#&#8203;766]: Added new event `Event::GeneralRef` with content of [general entity]. - [#&#8203;766]: Added new configuration option `allow_dangling_amp` which allows to have a `&` not followed by `;` in the textual data which is required for some applications for compatibility reasons. - [#&#8203;285]: Add ability to `quick_xml::de::Text` to access text with trimmed spaces ##### Bug Fixes - [#&#8203;868]: Allow to have both `$text` and `$value` special fields in one struct. Previously any text will be recognized as `$value` field even when `$text` field is also presented. - [#&#8203;868]: Skip text events when deserialize a sequence of items overlapped with text (including CDATA). - [#&#8203;841]: Do not strip `xml` prefix from the attributes when map them to struct fields in `Deserializer`. ##### Misc Changes - [#&#8203;863]: Remove `From<QName<'a>> for BytesStart<'a>` because now `BytesStart` stores the encoding in which its data is encoded, but `QName` is a simple wrapper around byte slice. - [#&#8203;766]: `BytesText::unescape` and `BytesText::unescape_with` replaced by `BytesText::decode`. Now Text events does not contain escaped parts which are reported as `Event::GeneralRef`. [#&#8203;285]: https://github.com/tafia/quick-xml/issues/285 [#&#8203;766]: https://github.com/tafia/quick-xml/pull/766 [#&#8203;841]: https://github.com/tafia/quick-xml/issues/841 [#&#8203;863]: https://github.com/tafia/quick-xml/pull/863 [#&#8203;868]: https://github.com/tafia/quick-xml/pull/868 [general entity]: https://www.w3.org/TR/xml11/#gen-entity </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNTAuMCIsInVwZGF0ZWRJblZlciI6IjQzLjE1MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Update Rust crate quick-xml to 0.39.0
All checks were successful
Build and Test / account (push) Successful in 7m50s
ef3a33fd5d
redbinder0526 deleted branch renovate/quick-xml-0.x 2026-04-29 09:54:02 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
spacebar/account!28
No description provided.