Beispiel #1
0
 public override void SetPropertyValue(string property, string value)
 {
     if (property == "XmlTagType")
     {
         XmlTagType = (XmlTagType)Enum.Parse(typeof(XmlTagType), value.XOMLName());
     }
     else
     {
         base.SetPropertyValue(property, value);
     }
 }
Beispiel #2
0
        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;
                }
            }
        }
Beispiel #4
0
 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;
                }
            }
        }