kobold-xml
A clean-room, Rust-native COBOL-data XML layer — turns a decoded COBOL record into deterministic XML.
[!IMPORTANT] kobold-xml is independent of GnuCOBOL/libcob. It links no COBOL runtime, contains no libcob-derived code, and is not a GnuCOBOL 3.2 parity claim. It answers "what should a safe Rust-native COBOL XML layer do?" — not "what does GnuCOBOL 3.2 do?" (that is the LGPL
gnucobol-rscrate's job, which faithfully preserves GnuCOBOL's behavior including its unimplementedXML PARSEstub). Evidence here is theEXT.XML.*court namespace.
v0.1 — XML GENERATE
- A deterministic XML serializer of an explicit element tree (
EXT.XML.GENERATE.1) with explicit text/attribute escaping (EXT.XML.ESCAPE.1): attributes in tree order, no timestamps/locale — safe for migration diffs and golden-file tests. - A clean COBOL-record model (
CobolField/CobolValue) and its mapping to the XML tree. You decode your COBOL data intoCobolFields by whatever means (e.g. separately withgnucobol-rs); kobold-xml itself depends on no COBOL runtime.
v0.1 value policy: alphanumeric → bytes trimmed of trailing spaces; numeric → leading zeros stripped, decimal
point at scale, leading - if negative; group → nested element; FILLER omitted.
v0.2 (planned) — XML PARSE
A real event stream (START-OF-DOCUMENT … END-OF-DOCUMENT) + generate→parse round-trip
(EXT.XML.PARSE.1 / EXT.XML.ROUNDTRIP.1).
License: Apache-2.0.