Releases: pdvrieze/xmlutil
0.81.2 – Goodbye JCenter
As part of a goodbye to jcenter configure publication on github packages. Note that this comes with a new maven coordinate, and a reverting to the default publishing as provided by kotlin multiplatform.
0.81.1 – To null or not to null
Small update:
- handle custom serializers for null values correctly (when using the composite encoder) - fixes #53.
- Update to 1.1.0 release of kotlinx.serialization
0.81.0 – Let's all keep in line
New version that is compatible with 1.1.0-RC
- Compiled against 1.1.0-RC
- Supports inline classes (when using the experimental IR compiler - a restriction of the compiler, not this library)
- Inline classes can use
@XmlSerialName
to override the name use used by the type
- Inline classes can use
0.80.1 – Some bug fixes
Fix some edge case issues:
- Handling of entity references #44
- The naming of the value tag for polymorphic values in non-auto-polymorphic mode
- Fix handling of the empty namespace in certain cases
0.80.0 – Let's go
Update the release candidate to work with the released kotlinx.serialization-1.0.0.
In addition to pure compatibility fixes it also adds configurability of encoding of default values (by default the original behaviour using @XmlDefault
)
0.80.0-RC – Getting ready for stabilization
This version provides support for Kotlin 1.4 and kotlinx.serialization-1.0.0-RC. This code should be fairly stable, but has not had API rationalization completed (working towards API stabilization). This doesn't mean that the API is going to change, just that some code should be private but isn't. Documentation should still be improved.
In addition, there is a new configuration approach to the serialization with policies (which was also in the v0.20.0.10 release). This needs feedback, but would even allow for custom annotations as well as support things like jackson compatibility.
0.20.0.10 – Replace the engine under the hood.
This version has extensive redesign under the hood. It now creates a complete descriptor tree with names, output kinds and all that is then used by the serialization/deserialization code. This has likely fixed some bugs, but at least clears up the code to be much more comprehensible (and less complex). In particular it makes encoder/decoder matching that much easier as they share information. The configuration has been changed by adding a policy interface that drives more important serialization decisions. This should allow for serialization to be much more customized.
Highlighted features:
- Configuration now has a policy attribute/type that can be used to determine tag names used, form of serialization etc.
- The
XmlDescriptor
class is created to allow introspecting the entire xml structure with names etc. This is used internally, but can also be
used to generate things like xml schema documents (future feature). - Add
MixedContent
to the serialutil module. This allows for typesafe serialization of mixed content (with text) - #30. Various fixes were
included to make it actually work. Those fixes should fix other custom serializers too. - By default support serialization/deserialization of
org.w3c.dom.Node
andorg.w3c.dom.Element
typed properties - Various bug fixes such as: missing/invalid namespace attributes #36, recursive type definitions #32,
Indent it all
This release is mostly a maintenance release. It properly allows for configurable indentation as well as other features:
- #27 omitXmlDecl=false didn't work on Android. This has been replaced by a more comprehensive configuration
option that also allows configuration of the xml declaration. - #28, #24 String indentation is fixed/enhanced. This version directly exposes the indentation string to the serialization (accidentally omitted in 0.20.0.0). Indentation can still be specified by a number, but can now be specified as a string. Internally it will parse the string and store it as a sequence of ignorable whitespace and comment events. As such, invalid indentation will now throw an exception.
- #25 When using the default java xml library (instead of woodstox) it should now correctly work when no namespaces are used.
- #13 Make direct closing tags available on JVM without a custom xml library to do it. Instead this is now done at wrapper level. It was already functional for Android. JS depends on the dom provided serialization.
0.20.0.0 – Keeping going
This is a release compatible with version 0.20.0 of the serialization library and Kotlin 1.3.70. In addition there are two
other significant changes:
- Fixed the way XmlPolyChildren works in relation to renamed classes (it will now use the declared XmlSerialName if not renamed in the annotation
- Made it possible (on XmlWriter to set indentation as string). For now you need to create your
XmlWriter
directly for this to be available. The configuration for the serializer format will follow.
0.14.0.3 – Have the features
A backport of the fixes from 0.20.0.0 to a 0.14.0 (kotlin 1.3.61) compatible version of the library.