private static void WriteInvalidAttributes(PrintFile printFile, IEnumerable <PropertyInfo> properties, IEnumerable <string> attributes)
        {
            var list =
                attributes
                .Where(attribute => attribute != "xsd" && attribute != "xsi" && properties.All(x => x.Name != attribute))
                .ToList();

            if (list.Count == 0)
            {
                return;
            }

            printFile.WriteLine("The following attributes in the configuration file are invalid:");
            printFile.IncrementIndent();

            foreach (var item in list)
            {
                printFile.WriteLine("* {0}", item);
            }

            printFile.DecrementIndent();
            printFile.WriteLine();
        }
        private static void WriteUnusedProperties(PrintFile printFile, IEnumerable <PropertyInfo> properties, IEnumerable <string> attributes)
        {
            var list =
                properties
                .Where(property => attributes.All(x => x != property.Name))
                .Select(property => property.Name)
                .ToList();

            if (list.Count == 0)
            {
                return;
            }

            printFile.WriteLine("The following properties in the configuration file where not set:");
            printFile.IncrementIndent();

            foreach (var item in list)
            {
                printFile.WriteLine("* {0}", item);
            }

            printFile.DecrementIndent();
            printFile.WriteLine();
        }