deserialize method
Deserializes the FML template elements, attributes and children
Implementation
@override
void deserialize(XmlElement? xml)
{
if (xml == null) return;
// deserialize
super.deserialize(xml);
// Label
String? label = Xml.attribute(node: xml, tag: 'label');
if (label == null)
{
XmlElement? node = Xml.getElement(node: xml, tag: 'label');
if (node != null)
{
if (Xml.hasChildElements(node)) {
this.label = RowModel.fromXml(this, node);
} else {
this.label = TextModel(this, null, value: Xml.getText(node));
}
}
}
else {
this.label = TextModel(this, null, value: label);
}
// Empty?
if (this.label == null)
{
label = Xml.getText(xml);
if (label != null) {
this.label = TextModel(this, null, value: label);
}
}
if (this.label == null && labelValue == null) {
labelValue = Xml.get(node: xml, tag: 'value');
this.label = TextModel(this, null, value: labelValue);
}
// Value
String? value = Xml.get(node: xml, tag: 'value');
if (value == null) {
this.value = label;
labelValue = label;
}
else {
this.value = value;
}
labelValue = label;
tags = Xml.get(node: xml, tag: 'tags');
}