Index: contrib/libxo/libxo/libxo.c =================================================================== --- contrib/libxo/libxo/libxo.c +++ contrib/libxo/libxo/libxo.c @@ -6929,7 +6929,9 @@ switch (xo_style(xop)) { case XO_STYLE_XML: - rc = xo_printf(xop, "%*s<%s", xo_indent(xop), "", name); + if (! isalpha(name[0]) && name[0] != '_') + pre_nl = "_"; + rc = xo_printf(xop, "%*s<%s%s", xo_indent(xop), "", pre_nl, name); if (xop->xo_attrs.xb_curp != xop->xo_attrs.xb_bufp) { rc += xop->xo_attrs.xb_curp - xop->xo_attrs.xb_bufp; @@ -7028,7 +7030,10 @@ switch (xo_style(xop)) { case XO_STYLE_XML: xo_depth_change(xop, name, -1, -1, XSS_CLOSE_CONTAINER, 0); - rc = xo_printf(xop, "%*s%s", xo_indent(xop), "", name, ppn); + if (! isalpha(name[0]) && name[0] != '_') + pre_nl = "_"; + rc = xo_printf(xop, "%*s%s", xo_indent(xop), "", pre_nl, name, + ppn); break; case XO_STYLE_JSON: