Я пытаюсь реализовать короткий конвертер с использованием TinyXML, который будет принимать XML-файл (с фиксированным форматом), анализировать его и заполнять объект protobuf элементами.Проблема в том, что некоторые элементы являются необязательными в определении protobuf, и TinyXML не имеет поддержки схемы.
Какой был бы простой способ надежного анализа элементов с учетом требуемой / необязательной разницы.Должен ли я вставить все элементы в std::map
, а затем проверить?
Пример XML будет
<box>
<id>495</bin_id>
<region>
<vertices>
<x>233</x>
<y>208</y>
</vertices>
<vertices>
<x>233</x>
<y>188</y>
</vertices>
<vertices>
<x>253</x>
<y>188</y>
</vertices>
<vertices>
<x>253</x>
<y>208</y>
</vertices>
</region>
<type>Pencils</type>
<color>GREEN</color>
<deplete_level_thr>0.2</deplete_level_thr>
<replenish_level_thr>0.8</replenish_level_thr>
<box>
с соответствующим прототипом
message ProduceBin {
required int64 id = 1;
required system.messaging.Polygon region = 2;
optional string type = 3;
optional string color = 4;
optional double deplete_level_thr = 6;
optional double replenish_level_thr = 7;
}