Я долго думал над этим вопросом и пошел с ProtocolBuffer, чтобы хранить метаданные для моих изображений.Для каждого изображения, например, Image00012.jpg, я сохраняю метаданные в Image00012.jpg.pbmd.После того, как я настрою файл .proto, класс Python и класс C ++ генерируются автоматически.Он работает очень хорошо и требует от меня тратить немного времени на разбор (явно лучше, чем на написание пользовательского ридера для файлов YAML).
RestRisiko поднимает вопрос о том, как мне следует обрабатывать недоступные метаданные.Хорошая вещь о ProtocolBuffer - он поддерживает необязательные / обязательные поля.Это решает мою проблему в этом направлении.
Причина, по которой я считаю, что XML и INI не подходят для этой цели, заключается в том, что многие из моих метаданных являются сложными (распределение цвета, ...) и требуют небольшой настройки хранилища.,ProtocolBuffer позволяет мне вложить декларацию прото.Кроме того, размер файла метаданных и скорость синтаксического анализа явно превосходят мои возможности чтения / записи XML в ручном режиме.