w3c-xmlserializer is an XML serializer that follows the W3C specification. It is useful in Node.js for converting a DOM node (for example, from jsdom) into an XML string, with an option to require well-formedness and throw errors for non-well-formed constructs.
Project status
- Actively maintained: Yes, there were very recent updates (v6.0.0 on 2026-09-21, and an upstream push on 2026-09-21), with the latest activity just a few days before today (2026-09-24).
- Update cadence: The project is not frequent day-to-day, but it has a history of periodic jumps. After v5.0.0 (2023-11-12), the next update (v6.0.0) arrived on 2026-09-21, indicating a multi-year cadence at least recently.
AI summary generated
Recent updates
v6.0.0
Release 6.0.0 updates runtime requirements by raising the minimum supported Node.js versions, and improves XML well formedness validation. The serializer now performs stricter XML character validation (when requireWellFormed is enabled) and fixes multiple namespace edge cases around null vs string-named namespaces, prototype-named namespaces, and sibling prefix leakage.
Breakingv5.0.0
Release v5.0.0 primarily raises the Node.js engine requirement to >=18. The code diff also shows a tooling and dependency modernization (npm-based installs, test runner migration, and major dependency bumps) that is not mentioned in the release notes.
Breakingv4.0.0
Release v4.0.0 raises the minimum supported Node.js version to v14 and improves handling of well-formedness requirements so that emoji characters can be serialized when `requireWellFormed` is enabled. The code changes also expand the XML character validation regex to include supplementary Unicode code points, and the project/tooling dependencies are bumped.
BreakingFeaturesv3.0.0
Release 3.0.0 of the XML serializer raises the minimum supported Node.js version to v12 and claims that XML name validation is now correctly enforced when `requireWellFormed` is enabled. The code diff also shows multiple internal serialization/validation implementation changes and several major dependency upgrades that are not called out in the release notes.
Breakingv2.0.0
Release 2.0.0 is a major API overhaul of the package, switching from an XMLSerializer class-based interface to a simpler default-exported serialization function. It introduces an options object form for well-formedness checking and changes the thrown error types to plain Error/TypeError instead of DOMException.
BreakingFeaturesv1.1.2
v1.1.2 addresses a packaging/entry-point regression that caused `require()` of the package to fail. The code changes add a new entry module under `lib/` and update `package.json` so consumers load it correctly.
v1.1.1
Release v1.1.1 makes a small documentation-only fix. The release notes state an incorrect README sample code issue, and the diff shows only README adjustments plus a package.json version bump.
v1.1.0
v1.1.0 adds support for serializing CDATA section nodes and improves XML serialization correctness around namespaces and tab characters. Release notes also mention better handling of tabs in require-wellformedness mode and a fix for namespace prefix memoization.
Featuresv1.0.1
Release v1.0.1 updates the XML serializer to correctly handle unknown namespace prefixes during serialization. Specifically, it prevents an internal exception when an unexpected prefix/namespace mapping is encountered, and adds a regression test to confirm correct output.
v1.0.0
This is the first release (v1.0.0). The release notes do not mention any features, fixes, security changes, or migration steps beyond stating it is an initial release.