public void WriteXml(XmlWriter writer, Adduct adduct) { if (adduct.IsEmpty) { writer.WriteAttributeIfString(ATTR.neutral_formula, Formula); } else { writer.WriteAttributeIfString(ATTR.ion_formula, (Formula ?? string.Empty) + (adduct.IsProteomic ? string.Empty : adduct.ToString())); } Assume.IsFalse(AverageMass.IsMassH()); // We're going to read these as neutral masses Assume.IsFalse(MonoisotopicMass.IsMassH()); writer.WriteAttributeNullable(ATTR.neutral_mass_average, AverageMass); writer.WriteAttributeNullable(ATTR.neutral_mass_monoisotopic, MonoisotopicMass); if (!string.IsNullOrEmpty(Name)) { writer.WriteAttribute(ATTR.custom_ion_name, Name); } writer.WriteAttributeIfString(ATTR.id, AccessionNumbers.ToSerializableString()); }