Пример, нам нужно сделать запрос по API. У нас есть набор данных, номер карты, телефон, адрес и так далее.
Допустим один API принимает данные в виде:
<card>345354345</card>
<phone>456456456</phone>
<address>dgfdgdfgf</address>
Другому нужен только номер карты и называется она иначе:
<card_number>345354345</card_number>
У третьего есть основное поле, а все остальные обязательные, но не основные, и названия полей тоже другие:
<pay_to>345354345</pay_to>
<extra>
<call_to>456456456</call_to>
<location>dgfdgdfgf</location>
</extra>
Четвёртый дополнительные данные ожидает в виде значений атрибутов:
<card>345354345</card>
<extra phone="456456456" address="dgfdgdfgf">
А у пятого есть два основных параметра:
<main>
<pay_to>345354345</pay_to>
<pay_to_alter>676556767</pay_to_alter>
</main>
<extra>
<call_to>456456456</call_to>
<location>dgfdgdfgf</location>
</extra>
Это всё не обязательно xml, это и json и yaml и всё что угодно.
Вопрос - как можно описать имеющуюся у нас информацию и как описывать её преобразования, чтобы без лишней головной боли при появлении нового изощрённого формата можно было его описать не меняя исходные данные и не меняя код?
Какие есть для этого общепринятые решения?