internal static IElementSchema Build()
        {
            var schema = new ElementSchemaBuilder("Project", typeof(Project), "Sdk")
                         .AddChildElement("PropertyGroup", typeof(PropertyGroup))
                         .AddTextNodeChildElement("TargetFramework")
                         .AddTextNodeChildElement("IsPackable")
                         .AddTextNodeChildElement("AssemblyName")
                         .AddTextNodeChildElement("RootNamespace")
                         .GetParent()
                         .AddChildElement("ItemGroup", typeof(ItemGroup))
                         .AddTextNodeChildElement("None")
                         .AddTextNodeChildElement("EmbeddedResource")
                         .AddTextNodeChildElement("ProjectReference")
                         .AddChildElement("PackageReference", typeof(PackageReference))
                         .AddTextNodeChildElement("PrivateAssets")
                         .AddTextNodeChildElement("IncludeAssets")

                         .Build();

            return(schema);
        }
        internal static IElementSchema Build()
        {
            var schema = new ElementSchemaBuilder("Project", typeof(Project), "ToolsVersion", "DefaultTargets", "xmlns")
                .AddChildElement("Import", typeof(Import))
                .GetParent()
                .AddChildElement("PropertyGroup", typeof(PropertyGroup))
                    .AddTextNodeChildElement("Configuration")
                    .AddTextNodeChildElement("Platform")
                    .AddTextNodeChildElement("ProductVersion")
                    .AddTextNodeChildElement("SchemaVersion")
                    .AddTextNodeChildElement("ProjectGuid")
                    .AddTextNodeChildElement("ProjectTypeGuids")
                    .AddTextNodeChildElement("OutputType")
                    .AddTextNodeChildElement("AppDesignerFolder")
                    .AddTextNodeChildElement("RootNamespace")
                    .AddTextNodeChildElement("AssemblyName")
                    .AddTextNodeChildElement("TargetFrameworkVersion")
                    .AddTextNodeChildElement("MvcBuildViews")
                    .AddTextNodeChildElement("UseIISExpress")
                    .AddTextNodeChildElement("Use64BitIISExpress")
                    .AddTextNodeChildElement("IISExpressSSLPort")
                    .AddTextNodeChildElement("IISExpressAnonymousAuthentication")
                    .AddTextNodeChildElement("IISExpressWindowsAuthentication")
                    .AddTextNodeChildElement("IISExpressUseClassicPipelineMode")
                    .AddTextNodeChildElement("UseGlobalApplicationHostFile")
                    .AddTextNodeChildElement("NuGetPackageImportStamp")
                    .AddTextNodeChildElement("ApplicationInsightsResourceId")
                    .AddTextNodeChildElement("ApplicationInsightsAnnotationResourceId")
                    .AddTextNodeChildElement("DebugSymbols")
                    .AddTextNodeChildElement("DebugType")
                    .AddTextNodeChildElement("Optimize")
                    .AddTextNodeChildElement("OutputPath")
                    .AddTextNodeChildElement("DefineConstants")
                    .AddTextNodeChildElement("ErrorReport")
                    .AddTextNodeChildElement("WarningLevel")
                    .AddTextNodeChildElement("LangVersion")
                    .AddTextNodeChildElement("DocumentationFile")
                    .AddTextNodeChildElement("VisualStudioVersion")
                    .AddTextNodeChildElement("PostBuildEvent")
                    .AddTextNodeChildElement("PreBuildEvent")
                    .AddTextNodeChildElement("VSToolsPath")
                .GetParent()
                .AddChildElement("ItemGroup", typeof(ItemGroup))
                    .AddChildElement("Reference", typeof(Reference))
                        .AddTextNodeChildElement("HintPath")
                        .AddTextNodeChildElement("Private")
                    .GetParent()
                    .AddChildElement("Compile", typeof(Compile))
                        .AddTextNodeChildElement("DependentUpon")
                    .GetParent()
                    .AddChildElement("Content", typeof(Compile))
                        .AddTextNodeChildElement("CopyToOutputDirectory")
                    .GetParent()
                    .AddChildElement("None", typeof(None))
                    .GetParent()
                    .AddChildElement("ProjectReference", typeof(ProjectReference))
                        .AddTextNodeChildElement("Project")
                        .AddTextNodeChildElement("Name")
                    .GetParent()
                    .AddChildElement("WCFMetadata", typeof(WCFMetadata))
                    .GetParent()
                .GetParent()
                .AddChildElement("Target", typeof(Target))
                    .AddTextNodeChildElement("AspNetCompiler")
                    .AddTextNodeChildElement("Error")
                    .AddChildElement("PropertyGroup", typeof(PropertyGroup))
                        .AddTextNodeChildElement("ErrorText")
                    .GetParent()

                .GetParent()
                .AddChildElement("ProjectExtensions", typeof(ProjectExtensions))
                    .AddChildElement("VisualStudio", typeof(VisualStudio))
                        .AddChildElement("FlavorProperties", typeof(FlavorProperties))
                            .AddChildElement("WebProjectProperties", typeof(WebProjectProperties))
                                .AddTextNodeChildElement("UseIIS")
                                .AddTextNodeChildElement("AutoAssignPort")
                                .AddTextNodeChildElement("DevelopmentServerPort")
                                .AddTextNodeChildElement("DevelopmentServerVPath")
                                .AddTextNodeChildElement("IISUrl")
                                .AddTextNodeChildElement("NTLMAuthentication")
                                .AddTextNodeChildElement("UseCustomServer")
                                .AddTextNodeChildElement("CustomServerUrl")
                                .AddTextNodeChildElement("SaveServerSettingsInUserFile")
                .Build();

            return schema;
        }