#521: Implement Clone for all error types. This required changing Error::Io to contain
Arc<std::io::Error> instead of std::io::Error since std::io::Error does not implement
Clone.
Bug Fixes
#490: Ensure that serialization of map keys always produces valid XML names.
In particular, that means that maps with numeric and numeric-like keys (for
example, "42") no longer can be serialized because [XML name] cannot start
from a digit
#500: Fix deserialization of top-level sequences of enums, like
<?xml version="1.0" encoding="UTF-8"?>
<!-- list of enum Enum { A, B, С } -->
<A/>
<B/>
<C/>
#514: Fix wrong reporting Error::EndEventMismatch after disabling and enabling
.check_end_names
#517: Fix swapped codes for \r and \n characters when escaping them
#523: Fix incorrect skipping text and CDATA content before any map-like structures
in serde deserializer, like
unwanted text<struct>...</struct>
#523: Fix incorrect handling of xs:lists with encoded spaces: they still
act as delimiters, which is confirmed also by mature XmlBeans Java library
#473: Fix a hidden requirement to enable serde's derive feature to get
quick-xml's serialize feature for edition = 2021 or resolver = 2 crates
Misc Changes
#490: Removed $unflatten= special prefix for fields for serde (de)serializer, because:
it is useless for deserializer
serializer was rewritten and does not require it anymore
This prefix allowed you to serialize struct field as an XML element and now
replaced by a more thoughtful system explicitly indicating that a field should
be serialized as an attribute by prepending @ character to its name
#490: Removed $primitive= prefix. That prefix allowed you to serialize struct
field as an attribute instead of an element and now replaced by a more thoughtful
system explicitly indicating that a field should be serialized as an attribute
#521: Implement Clone for all error types. This required changing Error::Io to contain
Arc<std::io::Error> instead of std::io::Error since std::io::Error does not implement
Clone.
Bug Fixes
#490: Ensure that serialization of map keys always produces valid XML names.
In particular, that means that maps with numeric and numeric-like keys (for
example, "42") no longer can be serialized because [XML name] cannot start
from a digit
#500: Fix deserialization of top-level sequences of enums, like
<?xml version="1.0" encoding="UTF-8"?>
<!-- list of enum Enum { A, B, С } -->
<A/>
<B/>
<C/>
#514: Fix wrong reporting Error::EndEventMismatch after disabling and enabling
.check_end_names
#517: Fix swapped codes for \r and \n characters when escaping them
#523: Fix incorrect skipping text and CDATA content before any map-like structures
in serde deserializer, like
unwanted text<struct>...</struct>
#523: Fix incorrect handling of xs:lists with encoded spaces: they still
act as delimiters, which is confirmed also by mature XmlBeans Java library
#473: Fix a hidden requirement to enable serde's derive feature to get
quick-xml's serialize feature for edition = 2021 or resolver = 2 crates
Misc Changes
#490: Removed $unflatten= special prefix for fields for serde (de)serializer, because:
it is useless for deserializer
serializer was rewritten and does not require it anymore
This prefix allowed you to serialize struct field as an XML element and now
replaced by a more thoughtful system explicitly indicating that a field should
be serialized as an attribute by prepending @ character to its name
#490: Removed $primitive= prefix. That prefix allowed you to serialize struct
field as an attribute instead of an element and now replaced by a more thoughtful
system explicitly indicating that a field should be serialized as an attribute
by prepending @ character to its name
#490: In addition to the $value special name for a field a new $text
special name was added:
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Updates the requirements on quick-xml to permit the latest version.
Release notes
Sourced from quick-xml's releases.
... (truncated)
Changelog
Sourced from quick-xml's changelog.
... (truncated)
Commits
f63910d
Release 0.27.0d1908e6
Merge pull request #528 from Mingun/doc66275cc
Add an example for deserializing wrapped listsc521a2f
Add documentation for mapping from XML to Rust used by deserializer44a4c69
Merge pull request #524 from Mingun/serdec205f1d
Fix #473: add explicit serde feature that is independent from dependencye877f4f
Merge pull request #523 from Mingun/fix-bugs8283121
Add some comments about deserializing sequences and give a more descriptive n...daa6526
Fix incorrect handling ofxs:list
s with encoded spaces: they still act as d...1373eb1
Renamenext_text
toread_string
because new name are better describes the...Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)