diff --git a/yaserde_derive/src/ser/expand_struct.rs b/yaserde_derive/src/ser/expand_struct.rs index 8802d5d..4ade567 100644 --- a/yaserde_derive/src/ser/expand_struct.rs +++ b/yaserde_derive/src/ser/expand_struct.rs @@ -262,8 +262,14 @@ pub fn serialize( }), Some(&FieldType::FieldTypeStruct { .. }) => Some(quote!{ if let Some(ref item) = &self.#label { - let start_event = XmlEvent::start_element(#label_name); - let _ret = writer.write(start_event); + writer.set_start_event_name(Some(#label_name.to_string())); + match item.serialize(writer) { + Ok(()) => {}, + Err(msg) => { + return Err(msg); + }, + }; + writer.set_start_event_name(None); writer.set_skip_start_end(true); match item.serialize(writer) {