parseDataForm function
- XMLNode x
Parse a Data Form declaration.
Implementation
DataForm parseDataForm(XMLNode x) {
assert(x.attributes['xmlns'] == dataFormsXmlns, 'Invalid element xmlns');
assert(x.tag == 'x', 'Invalid element name');
final type = x.attributes['type']! as String;
final title = x.firstTag('title')?.innerText();
final instructions =
x.findTags('instructions').map((i) => i.innerText()).toList();
final fields = x.findTags('field').map(_parseDataFormField).toList();
final reported = x
.firstTag('reported')
?.findTags('field')
.map((i) => _parseDataFormField(i.firstTag('field')!))
.toList() ??
[];
final items = x
.findTags('item')
.map((i) => i.findTags('field').map(_parseDataFormField).toList())
.toList();
return DataForm(
type: type,
instructions: instructions,
fields: fields,
reported: reported,
items: items,
title: title,
);
}