diff --git a/src/model/data_form.rs b/src/model/data_form.rs index 87a219c..45e5116 100644 --- a/src/model/data_form.rs +++ b/src/model/data_form.rs @@ -272,7 +272,13 @@ impl Requires for DataForm { self.entries .entry .iter() - .map(|item| item.type_ == "formReference" && item.name == name) + .map(|item| { + item.type_ == "formReference" + && match item.referenced_data_form.as_ref() { + Some(refname) => refname == name, + _ => false, + } + }) .filter(|&it| it) .last() .unwrap_or_default() @@ -281,7 +287,13 @@ impl Requires for DataForm { self.entries .entry .iter() - .map(|item| item.type_ == "subform" && item.name == name) + .map(|item| { + item.type_ == "subform" + && match item.referenced_data_form.as_ref() { + Some(refname) => refname == name, + _ => false, + } + }) .filter(|&it| it) .last() .unwrap_or_default() diff --git a/src/model/unterformular.rs b/src/model/unterformular.rs index 915baac..92cc9c5 100644 --- a/src/model/unterformular.rs +++ b/src/model/unterformular.rs @@ -276,7 +276,13 @@ impl Requires for Unterformular { self.entries .entry .iter() - .map(|item| item.type_ == "formReference" && item.name == name) + .map(|item| { + item.type_ == "formReference" + && match item.referenced_data_form.as_ref() { + Some(refname) => refname == name, + _ => false, + } + }) .filter(|&it| it) .last() .unwrap_or_default() @@ -285,7 +291,13 @@ impl Requires for Unterformular { self.entries .entry .iter() - .map(|item| item.type_ == "subform" && item.name == name) + .map(|item| { + item.type_ == "subform" + && match item.referenced_data_form.as_ref() { + Some(refname) => refname == name, + _ => false, + } + }) .filter(|&it| it) .last() .unwrap_or_default()