Step 1 / source
Choose the source
Drop one file here
Choose a CSV whose first row names columns and whose later rows use one consistent delimiter.
Checking publication status...LOCAL DATA CONVERTER / CSV TO XML
Convert a rectangular header-based CSV into well-formed UTF-8 XML with one explicit element per row and safely escaped cell text.
Step 1 / source
Choose a CSV whose first row names columns and whose later rows use one consistent delimiter.
Checking publication status...This operation runs with browser APIs. Nirmion receives catalogue requests, not the selected source bytes.
The converter creates a separately named output. It never writes back into the source file.
One UTF-8 .csv file up to 5 MB, with no more than 50,000 data rows, 200 columns, 1,000,000 cells, or 20 MB output. Every row must have the same width.
Plain-language method
Nirmion parses quoted delimiters and line breaks, validates a rectangular table, turns each header into a safe unique XML element name, escapes reserved XML characters in every cell, and wraps all row elements inside the requested root element. It never interprets cell text as markup.
Use one header row and consistently separated data rows. A shifted quote or missing delimiter changes table shape and is rejected before XML is generated.
Root and row names must be simple XML names such as dataset and record. Header text is normalized automatically and duplicate names receive suffixes.
The download ends in _nirmion_tools_records.xml, declares UTF-8, and contains one child element for every source column in every record.
Useful when
Before converting
Know the boundary
Spaces and unsupported punctuation in CSV headers become safe XML-name characters, and collisions receive suffixes. Validate those generated element names against the receiving schema.
Quick answers
The output is simple record XML, not an inferred schema.
Yes. Cell values are XML-escaped and are never treated as elements.
No. It creates one self-contained XML data document without guessing data types.
They receive stable numeric suffixes so both columns remain present.