////////////////////////////////////////////////////////////////////// /// <summary>Parses an xml node to create a GsaExtension object.</summary> /// <param name="node">the node to parse node</param> /// <param name="parser">the xml parser to use if we need to dive deeper</param> /// <returns>the created GsaExtension object</returns> ////////////////////////////////////////////////////////////////////// public IExtensionElementFactory CreateInstance(XmlNode node, AtomFeedParser parser) { Tracing.TraceCall(); GsaExtension gsa = null; if (node != null) { object localname = node.LocalName; if (localname.Equals(this.XmlName) == false || node.NamespaceURI.Equals(this.XmlNameSpace) == false) { return null; } } gsa = new GsaExtension(); if (node != null) { if (node.Attributes == null || node.Attributes[PropertyName] == null) { throw new ArgumentException("GsaContent name can not found in this name space"); } gsa.ContentName = node.Attributes[PropertyName].Value; gsa.ContentValue = node.InnerText == null ? "" : node.InnerText; } return gsa; }
/// <summary> /// Add another set of extension data to the entry. Each GSA extension stores /// the content as a mixed text/XML content of this XML tag. /// addGsaContent does not support repeating extension data with /// the same extension name. Even though addGsaContent will successfully /// add repeating extensions, there is no guarantee which of the repeating /// extensions with the same extension name will be returned by methods /// GetGsaContent() and GetAllGsaContents(). /// </summary> /// <param name="name">name of the content extension</param> /// <param name="content">content data of the extension</param> public void AddGsaContent(string name, string content) { GsaExtension extension = new GsaExtension(name, content); this.ExtensionElements.Add(extension); }