[Serializer] fix denormalization of xml-values to objects when no xml-attributes are specified #34825
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When deserializing an XML-Node like this to an object, everything works as expected:
<some-element optionalAttribute="foo">bar</some-element>
But if all attributes are optional and missing from the node, the deserialization fails
<some-element>bar</some-element>
The serializer handles XML-Attributes by prefixing them with '@' and node-data are handled with the special key '#'. But this key is only used, when attributes are present (see XmlEncoder.php#L175-185).
I choose to fix this within the denormalize-function of the AbstractObjectNormalizer. Handling it within the NameConverter would also be possible, but the NameConverter's don't know the source-format.