////////////////////////////////////////////////////////////////////// /// <summary>Parses an xml node to create a Where 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 Where object</returns> ////////////////////////////////////////////////////////////////////// public IExtensionElementFactory CreateInstance(XmlNode node, AtomFeedParser parser) { Tracing.TraceCall(); Where where = null; if (node != null) { object localname = node.LocalName; if (!localname.Equals(this.XmlName) || !node.NamespaceURI.Equals(this.XmlNameSpace)) { return(null); } } where = new Where(); if (node != null) { if (node.Attributes != null) { if (node.Attributes[GDataParserNameTable.XmlAttributeRel] != null) { where.Rel = node.Attributes[GDataParserNameTable.XmlAttributeRel].Value; } if (node.Attributes[GDataParserNameTable.XmlAttributeLabel] != null) { where.Label = node.Attributes[GDataParserNameTable.XmlAttributeLabel].Value; } if (node.Attributes[GDataParserNameTable.XmlAttributeValueString] != null) { where.ValueString = node.Attributes[GDataParserNameTable.XmlAttributeValueString].Value; } } if (node.HasChildNodes) { foreach (XmlNode childNode in node.ChildNodes) { if (childNode.LocalName == GDataParserNameTable.XmlEntryLinkElement) { if (where.EntryLink == null) { where.EntryLink = EntryLink.ParseEntryLink(childNode, parser); } else { throw new ArgumentException("Only one entryLink is allowed inside the g:where"); } } } } } return(where); }
////////////////////////////////////////////////////////////////////// /// <summary>Parses an xml node to create a Where 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 Where object</returns> ////////////////////////////////////////////////////////////////////// public IExtensionElementFactory CreateInstance(XmlNode node, AtomFeedParser parser) { Tracing.TraceCall(); Who who = null; if (node != null) { object localname = node.LocalName; if (!localname.Equals(this.XmlName) || !node.NamespaceURI.Equals(this.XmlNameSpace)) { return(null); } } who = new Who(); if (node != null) { if (node.Attributes != null) { if (node.Attributes[GDataParserNameTable.XmlAttributeRel] != null) { who.Rel = node.Attributes[GDataParserNameTable.XmlAttributeRel].Value; } if (node.Attributes[GDataParserNameTable.XmlAttributeValueString] != null) { who.valueString = node.Attributes[GDataParserNameTable.XmlAttributeValueString].Value; } if (node.Attributes[GDataParserNameTable.XmlAttributeEmail] != null) { who.email = node.Attributes[GDataParserNameTable.XmlAttributeEmail].Value; } } if (node.HasChildNodes) { XmlNode childNode = node.FirstChild; while (childNode != null) { if (childNode is XmlElement) { if (childNode.LocalName == GDataParserNameTable.XmlAttendeeTypeElement) { who.Attendee_Type = AttendeeType.parse(childNode); } else if (childNode.LocalName == GDataParserNameTable.XmlAttendeeStatusElement) { who.Attendee_Status = AttendeeStatus.parse(childNode); } else if (childNode.LocalName == GDataParserNameTable.XmlEntryLinkElement) { who.EntryLink = EntryLink.ParseEntryLink(childNode, parser); } } childNode = childNode.NextSibling; } } } return(who); }
/// <summary> /// factory method to create an instance of a batchinterrupt during parsing /// </summary> /// <param name="node">the xmlnode that is going to be parsed</param> /// <param name="parser">the feedparser that is used right now</param> /// <returns></returns> public IExtensionElementFactory CreateInstance(XmlNode node, AtomFeedParser parser) { return(EntryLink.ParseEntryLink(node, parser)); }