/// <summary> /// Parses WebDav_Prop from 'DAV:prop' element. /// </summary> /// <param name="propNode">The 'DAV:prop' element</param> /// <returns>Returns DAV prop.</returns> /// <exception cref="ArgumentNullException">Is raised when when <b>propNode</b> is null reference.</exception> /// <exception cref="ParseException">Is raised when there are any parsing error.</exception> internal static WebDav_Prop Parse(XmlNode propNode) { if (propNode == null) { throw new ArgumentNullException("propNode"); } // Invalid response. if (!string.Equals(propNode.NamespaceURI + propNode.LocalName, "DAV:prop", StringComparison.InvariantCultureIgnoreCase)) { throw new ParseException("Invalid DAV:prop value."); } WebDav_Prop retVal = new WebDav_Prop(); foreach (XmlNode node in propNode.ChildNodes) { // Resource type property. if (string.Equals(node.LocalName, "resourcetype", StringComparison.InvariantCultureIgnoreCase)) { retVal.m_pProperties.Add(WebDav_p_ResourceType.Parse(node)); } // Default name-value property. else { retVal.m_pProperties.Add(new WebDav_p_Default(node.NamespaceURI, node.LocalName, node.InnerXml)); } } return(retVal); }
/// <summary> /// Parses WebDav_p_ResourceType from 'DAV:resourcetype' xml element. /// </summary> /// <param name="resourcetypeNode">The 'DAV:resourcetype' xml element.</param> /// <returns>Returns DAV resourcetype.</returns> /// <exception cref="ArgumentNullException">Is raised when <b>resourcetypeNode</b> is null reference.</exception> /// <exception cref="ParseException">Is raised when there are any parsing error.</exception> internal static WebDav_p_ResourceType Parse(XmlNode resourcetypeNode) { if (resourcetypeNode == null) { throw new ArgumentNullException("resourcetypeNode"); } // Invalid response. if (!string.Equals(resourcetypeNode.NamespaceURI + resourcetypeNode.LocalName, "DAV:resourcetype", StringComparison.InvariantCultureIgnoreCase)) { throw new ParseException("Invalid DAV:resourcetype value."); } WebDav_p_ResourceType retVal = new WebDav_p_ResourceType(); foreach (XmlNode node in resourcetypeNode.ChildNodes) { retVal.m_pItems.Add(node.NamespaceURI + node.LocalName); } return(retVal); }