public override void SetPropertyValue(string property, string value) { if (property == "XmlTagType") { XmlTagType = (XmlTagType)Enum.Parse(typeof(XmlTagType), value.XOMLName()); } else { base.SetPropertyValue(property, value); } }
public XElement element; //only to hold name and attributes public XmlTag(XmlTagType type, XElement element) { this.type = type; this.element = element; }
private static void LoadDataFromXml(XmlReader reader, string assemblyName) { if (reader == null) { return; } MemberDocumentNode currentDocNode = null; XmlTagType currentTag = XmlTagType.None; string currentParamName = String.Empty; while (reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: switch (reader.Name) { case "member": // Find attribute "name". if (reader.MoveToAttribute("name")) { currentDocNode = new MemberDocumentNode(assemblyName, reader.Value); documentNodes.Add(currentDocNode.FullyQualifiedName, currentDocNode); } currentTag = XmlTagType.Member; break; case "summary": currentTag = XmlTagType.Summary; break; case "param": if (reader.MoveToAttribute("name")) { currentParamName = reader.Value; } currentTag = XmlTagType.Parameter; break; case "returns": if (reader.MoveToAttribute("name")) { currentParamName = reader.Value; } else { currentParamName = null; } currentTag = XmlTagType.Returns; break; case "search": currentTag = XmlTagType.SearchTags; break; case "weights": currentTag = XmlTagType.SearchTagWeights; break; default: currentTag = XmlTagType.None; break; } break; case XmlNodeType.Text: if (currentDocNode == null) { continue; } switch (currentTag) { case XmlTagType.Summary: currentDocNode.Summary = reader.Value.CleanUpDocString(); break; case XmlTagType.Parameter: currentDocNode.Parameters.Add(currentParamName, reader.Value.CleanUpDocString()); break; case XmlTagType.Returns: currentDocNode.Returns.Add(new Tuple <string, string>(currentParamName, reader.Value.CleanUpDocString())); break; case XmlTagType.SearchTags: currentDocNode.SearchTags = reader.Value.CleanUpDocString(); break; case XmlTagType.SearchTagWeights: currentDocNode.SearchTagWeights = reader.Value.CleanUpDocString(); break; } break; } } }
public XmlTagAttribute(XmlTagType type) { this.Type = type; }
private static void LoadDataFromXml(XmlReader reader, string assemblyName) { if (reader == null) { return; } MemberDocumentNode currentDocNode = null; XmlTagType currentTag = XmlTagType.None; string currentParamName = String.Empty; while (reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: switch (reader.Name) { case "member": // Find attribute "name". if (reader.MoveToAttribute("name")) { currentDocNode = new MemberDocumentNode(assemblyName, reader.Value); documentNodes.Add(currentDocNode.FullyQualifiedName, currentDocNode); } currentTag = XmlTagType.Member; break; case "summary": currentTag = XmlTagType.Summary; break; case "param": if (reader.MoveToAttribute("name")) { currentParamName = reader.Value; } currentTag = XmlTagType.Parameter; break; case "returns": if (reader.MoveToAttribute("name")) { currentParamName = reader.Value; } else { currentParamName = null; } currentTag = XmlTagType.Returns; break; case "search": currentTag = XmlTagType.SearchTags; break; case "weights": currentTag = XmlTagType.SearchTagWeights; break; default: currentTag = XmlTagType.None; break; } break; case XmlNodeType.Text: if (currentDocNode == null) { continue; } switch (currentTag) { case XmlTagType.Summary: currentDocNode.Summary = reader.Value.CleanUpDocString(); break; case XmlTagType.Parameter: // If a tag is missing around text after <params> tag, the text can be added as a new parameter // under the previous parameter name. This check avoids the resulting ArgumentException with the dictionary. if (!currentDocNode.Parameters.ContainsKey(currentParamName)) { currentDocNode.Parameters.Add(currentParamName, reader.Value.CleanUpDocString()); } else { OnMissingXmlTags( $"{currentDocNode.FullyQualifiedName} {Properties.Resources.MissingXmlTagConsoleMessage}"); } break; case XmlTagType.Returns: currentDocNode.Returns.Add(new Tuple <string, string>(currentParamName, reader.Value.CleanUpDocString())); break; case XmlTagType.SearchTags: currentDocNode.SearchTags = reader.Value.CleanUpDocString(); break; case XmlTagType.SearchTagWeights: currentDocNode.SearchTagWeights = reader.Value.CleanUpDocString(); break; } break; } } }