v0.2.0
problem-details-xml and problem-details-ktor-xml publish for the first time, alongside
problem-details-core and problem-details-ktor, all on the same version.
Added
problem-details-xml— the RFC 9457 Appendix Bapplication/problem+xmlcodec (ProblemXml),
byte-exact against the RFC's own example in both directions. The generic (non-JDK) xmlutil parser
is used explicitly, so external entities are never resolved. xmlutil is animplementation
dependency; no xmlutil type appears in this module's API, thrown types included.problem-details-ktor-xml—ProblemXmlConverterandproblemXml(), registering the codec
with Ktor'sContentNegotiation.problem-details-ktorstill never depends on either XML module.
RegisterproblemXml()afterproblemJson()— order decides which format an absent or wildcard
Acceptresolves to.- Every JVM jar now declares an
Automatic-Module-Namematching its root package.
Notes
- The XML writer refuses what XML cannot express rather than writing it verbatim: an extension
member name that is not an XMLNCName, or text carryingU+0000or an unpaired surrogate. A
Problemvalid for JSON may therefore be refused here — see the module README. Every refusal
surfaces asSerializationException, never an xmlutil type. - A whitespace-only member (
detail = " ") survives an XML round trip. application/problem+xmlrequests and responses are always UTF-8, regardless of what charset was
negotiated — an XML document states its own encoding in-band.