Exemplo n.º 1
0
        private void ReadXmlContents(XmlReader reader)
        {
            string startElement = reader.Name;

            Debug.Assert(String.Equals(startElement, "contents"));

            while (reader.Read())
            {
                if (reader.NodeType == XmlNodeType.Element)
                {
                    if (!reader.IsEmptyElement && String.Equals(reader.Name, "content",
                                                                StringComparison.OrdinalIgnoreCase))
                    {
                        switch (reader.GetAttribute("type").ToLower())
                        {
                        case "scripts":
                            if (_scripts == null)
                            {
                                _scripts = new ScriptContent();
                            }
                            if (reader.ReadToDescendant(ScriptContent.TagName))
                            {
                                _scripts.ReadXml(reader);
                            }
                            break;

                        case "snippets":
                            if (_snippets == null)
                            {
                                _snippets = new SnippetContent();
                            }
                            if (reader.ReadToDescendant(SnippetContent.TagName))
                            {
                                _snippets.ReadXml(reader);
                            }
                            break;

                        case "stylesheets":
                            if (_styleSheets == null)
                            {
                                _styleSheets = new StyleSheetContent();
                            }
                            if (reader.ReadToDescendant(StyleSheetContent.TagName))
                            {
                                _styleSheets.ReadXml(reader);
                            }
                            break;

                        case "packages":
                            if (_mathPackages == null)
                            {
                                _mathPackages = new MathPackageContent();
                            }
                            if (reader.ReadToDescendant(MathPackageContent.TagName))
                            {
                                _mathPackages.ReadXml(reader);
                            }
                            break;

                        case "commands":
                            if (_mathCommands == null)
                            {
                                _mathCommands = new MathCommandContent();
                            }
                            if (reader.ReadToDescendant(MathCommandContent.TagName))
                            {
                                _mathCommands.ReadXml(reader);
                            }
                            break;
                        }
                    }
                }
                else if (reader.NodeType == XmlNodeType.EndElement)
                {
                    if (String.Equals(reader.Name, startElement,
                                      StringComparison.OrdinalIgnoreCase))
                    {
                        break;
                    }
                }
            }
        }