Пока ключи будут действительными именами XML, а значения имеют простое текстовое представление, я сделаю это так:
<map key1="value1" key2="value2" key3="value3".../>
поскольку атрибуты по определению представляют собой сопоставление имен значениям, в которых порядок сопоставления незначителен - как карта / словарь / хэш-таблица.
Существует множество случаев, когда вы не можете сделать это таким образом - например, если 123
является допустимым ключом или если значения (или ключи) являются сериализованными объектами. На самом деле все в порядке, если значения являются сериализованными объектами, если вы не возражаете, что они будут отображаться в значениях атрибутов со всей экранированной разметкой.