What IIF is
IIF is QuickBooks Desktop's import and export format: tab-separated, with several tables interleaved in one file. A line starting with an exclamation mark defines the columns for a record type, and the data lines that follow begin with that type's keyword.
QuickBooks Desktop users, and the bookkeepers who have to move data into and out of it.
What XML is
XML marks up data with nested named tags and optional attributes. It is verbose, strict about being well-formed, and can carry a schema that says what shape a document must have.
Enterprise integrations, government data feeds, RSS, SOAP services and older document formats.
What changes when you convert IIF to XML
The largest table in the file is used, which is almost always the transactions. A typical export holds TRNS rows for the transactions and SPL rows for their split lines; those are two tables, not one, and combining them would produce a column layout that fits neither.
Each row becomes an element with one child per column. Header names are rewritten where they have to be, because an XML tag cannot start with a digit or contain a space, so a column called 2024 Sales becomes _2024_Sales.
What carries over from IIF to XML
IIF records 2 things about a table that XML has no way to hold.
IIF distinguishes a number from the text of a number; XML does not, so every value arrives as text and has to be re-parsed by whatever reads it next.
XML has no header row. The column names are repeated as keys on every record instead, which is why the result is bigger on disk than the table it came from.