/// <summary>
        /// Checks the contents of the documentation for the elements in the document.
        /// </summary>
        /// <param name="document">The document to check.</param>
        private void CheckElementDocumentation(CsDocument document)
        {
            Param.AssertNotNull(document, "document");

            // Get the settings.
            AnalyzerSettings settings = new AnalyzerSettings();
            settings.IgnorePrivates = DocumentationRules.IgnorePrivatesDefaultValue;
            settings.IgnoreInternals = DocumentationRules.IgnoreInternalsDefaultValue;
            settings.RequireFields = DocumentationRules.IncludeFieldsDefaultValue;

            BooleanProperty setting = this.GetSetting(document, DocumentationRules.IgnorePrivates) as BooleanProperty;
            if (setting != null)
            {
                settings.IgnorePrivates = setting.Value;
            }

            setting = this.GetSetting(document, DocumentationRules.IgnoreInternals) as BooleanProperty;
            if (setting != null)
            {
                settings.IgnoreInternals = setting.Value;
            }

            setting = this.GetSetting(document, DocumentationRules.IncludeFieldsProperty) as BooleanProperty;
            if (setting != null)
            {
                settings.RequireFields = setting.Value;
            }

            for (Element element = document.FindFirstDescendentElement(); element != null; element = element.FindNextDescendentElementOf(document))
            {
                if (this.Cancel)
                {
                    break;
                }

                this.CheckDocumentationForElement(element, settings);
            }
        }