Attempt to workaround problem reported about empty plc.xml after unrelated crash. Now, if etree model is corrupted in a way tostring() would generate an empty string, exception prevents saving.
// widget_list.ysl2
template "widget[@type='List']", mode="widget_defs" {
param "hmi_element";
| items: {
foreach "$hmi_element/*[@inkscape:label]" {
| «@inkscape:label»: "«@id»",
}
| },
}
template "widget[@type='TextStyleList']", mode="widget_defs" {
param "hmi_element";
| styles: {
foreach "$hmi_element/*[@inkscape:label]" {
const "style", "func:refered_elements(.)[self::svg:text]/@style";
| «@inkscape:label»: "«$style»",
}
| },
}