I am studying the architecture of the gutenprint project and, in order to understand the contents of the "src/xml" folder, i used an UML design tool to reverse engineer the various xml files and to obtain an UML class diagram of their structures, which I attached here.
This diagram makes it much easier to understand how information is encoded into the configuration base and maybe it is a good addition to any development documentation for gutenprint. If anyone who deals with that aspect becomes interested, please feel free to grab and/or improve it. I can provide the original UML model as exported xml/xmi files as well.

Besides that, taking the chance to exercise some basic data normalization concepts, I would like to point some aspects on the repository structure:

a) There appears to be some redundance of properties among different data entities, showing less than optimal data normalization. An evident example of that is the existence of the files "xml\papers*.xml" and also "xml\escp2\midiasizes*.xml" which appears to contain basically the same information (standard paper sizes).

b) Similar to previous item, the "escp2Model" entity has many properties which would be better placed in other already existing entities, such as the weaving information, resolution details, inputslots detailed info, printhead config detailed infor, etc

c) Many naming issues, mainly the existence of the "parameter" atribute on some entities which acts more or less as a "wildcard" property, hiding structural infomation under a generic field name which is used in different places with different meanings

The reorganization and streamlining of this huge set of entities and properties would not bring any new functionality to the software but would allow easier maintainablity. Is it worth the effort? That would generate a huge discussion, for sure.

Regards,

Ramiro C. Carvalho