Похоже, то, что вы хотите сделать, это абстрагировать структуру документа, которая является общей и содержит все детали всех форматов, которые вы хотите перевести в / из. Этот общий формат может быть XML или чем-то еще.
Тогда ваша проблема сводится к переводу всех форматов в общий формат и переводу общего формата во все другие форматы.
Разработке этих наборов конкретных методов может способствовать дальнейшее либо генерирование кода (которое создает для вас жестко запрограммированные методы из шаблона), либо дальнейшее абстрагирование методов синтаксического анализа и выражение правил для конкретного типа документа в виде метаданных, какие движки, какие конкретные функции вы вызываете.