private void Set(XElement element, string partName, string fieldName, string valueName, string value) { InfosetHelper.ThrowIfContainsInvalidXmlCharacter(value); var partElement = element.Element(partName); if (partElement == null) { partElement = new XElement(partName); element.Add(partElement); } var fieldElement = partElement.Element(fieldName); if (fieldElement == null) { fieldElement = new XElement(fieldName); partElement.Add(fieldElement); } if (string.IsNullOrEmpty(valueName)) { fieldElement.Value = value; } else { fieldElement.SetAttributeValue(XmlConvert.EncodeLocalName(valueName), value); } }
public void Set(string partName, string fieldName, string valueName, string value, bool versionable = false) { InfosetHelper.ThrowIfContainsInvalidXmlCharacter(value); var element = versionable ? VersionInfoset.Element : Infoset.Element; var encodedPartName = XmlConvert.EncodeName(partName); var partElement = element.Element(encodedPartName); if (partElement == null) { partElement = new XElement(encodedPartName); Infoset.Element.Add(partElement); } var encodedFieldName = XmlConvert.EncodeName(fieldName); var fieldElement = partElement.Element(encodedFieldName); if (fieldElement == null) { fieldElement = new XElement(encodedFieldName); partElement.Add(fieldElement); } if (string.IsNullOrEmpty(valueName)) { fieldElement.Value = value ?? ""; } else { fieldElement.SetAttributeValue(XmlConvert.EncodeName(valueName), value); } }