Skip to content

XML input and output format support #99

@vmvarela

Description

@vmvarela

Part of #68
Depends on #95 (format plugin architecture)

Description

Add row-based XML as an input and output format. Each row maps to an XML element; column values become child elements or attributes.

Acceptance Criteria

  • --input-format xml reads row-based XML (each child element of root = one row; grandchildren = columns)
  • --output-format xml writes results as XML with configurable root/row element names
  • --xml-root <name> flag sets the root element name (default: results)
  • --xml-row <name> flag sets the row element name (default: row)
  • Column values with special XML characters are properly escaped
  • Malformed XML produces a clear error with line/column number
  • Nested XML is handled: nested elements are serialized as XML strings

Notes

  • Use Zig's std.xml or a minimal C XML library (expat is small and permissive)
  • Row-based XML is simpler than columnar XML — target row-based only for now
  • Example output:
    <results>
      <row><name>Alice</name><age>30</age></row>
      <row><name>Bob</name><age>25</age></row>
    </results>

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority:lowNice to have, do when possiblesize:mMedium — 4 to 8 hoursstatus:readyRefined and ready for sprint selectiontype:featureNew functionality

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions