XML Level ID Comparison: When Two Files Should Match But Don't
Comparing two XML files sounds simple. Comparing them at the semantic level — checking if IDs match across different structures — is a different beast entirely.
This tool exists because of a very specific workflow problem: you have a source XML document and a translated or adapted version of it. The structure should be the same. The IDs should match. But across versions, across teams, across time — they drift.
An ID that was "chapter_01" in v1 becomes "ch_01" in v3 because someone changed the naming convention. A section that existed in the source gets removed from the adaptation without documentation. A new section is added to one but not synchronized to the other.
The Level ID Comparison tool takes both files and does a structural diff at the ID level. Not a text comparison — a logical comparison. It understands that XML documents have hierarchy, and it compares that hierarchy intelligently.
The multi-file version can compare an entire batch of file pairs at once — useful when you're managing a project with dozens of documents that all need to stay in sync. One click, one report showing every discrepancy across the entire project.
I used a similar concept from code version control and adapted it for XML documents. The insight that made it work: treat IDs as node identifiers, not as text, and the comparison logic becomes much cleaner.