diff --git a/etc/schema/README b/etc/schema/README index 08dfe45dfbb..7611652762c 100644 --- a/etc/schema/README +++ b/etc/schema/README @@ -113,3 +113,23 @@ Software License: specific, written prior permission. Title to copyright in this software and any associated documentation will at all times remain with copyright holders. + + +The following files are related to .NET development: + + dotnet-appconfig.rnc dotnet-packages-config.rnc + dotnet-packages.props dotnet-resx.rnc msbuild.rnc nuget.rnc + nuspec.rnc + +These files are derived/inferred from files from numerous .NET projects, +whose contents have been created based on public documentation provided +by Microsoft, or created using the documentation as is. + +Links to various related resources: +- app.config: https://learn.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/ +- Directory.Packages.Props: https://learn.microsoft.com/en-us/nuget/consume-packages/central-package-management +- MSBuild: https://learn.microsoft.com/en-us/visualstudio/msbuild +- Nuspec: https://learn.microsoft.com/en-us/nuget/reference/nuspec +- Nuget.config: https://learn.microsoft.com/en-us/nuget/reference/nuget-config-file +- Packages.config: https://learn.microsoft.com/en-us/nuget/reference/packages-config +- Resx: Xsd-schema as included in default Resx-files generated by Resxen.exe diff --git a/etc/schema/dotnet-appconfig.rnc b/etc/schema/dotnet-appconfig.rnc new file mode 100644 index 00000000000..7e108672ed9 --- /dev/null +++ b/etc/schema/dotnet-appconfig.rnc @@ -0,0 +1,411 @@ +default namespace = "" +namespace ns1 = "http://schemas.microsoft.com/.NetConfiguration/v2.0" +namespace ns2 = "urn:schemas-microsoft-com:asm.v1" +namespace xdt = "http://schemas.microsoft.com/XML-Document-Transform" + +start = + element configuration { + element configSections { (section | sectionGroup)* }?, + element system.web.webPages.razor { + element host { + attribute factoryType { text } + }, + pages + }?, + (system.web + | system.webServer + | element location { + attribute inheritInChildApplications { xsd:boolean }?, + attribute path { text }?, + system.web?, + system.webServer? + } + | element runtime { + element loadFromRemoteSources { + attribute enabled { xsd:boolean } + }?, + element ns2:assemblyBinding { + attribute appliesTo { xsd:NCName }?, + element ns2:dependentAssembly { + element ns2:Paket { xsd:NCName }?, + element ns2:assemblyIdentity { + attribute culture { xsd:NCName }?, + attribute name { xsd:NCName }, + attribute publicKeyToken { xsd:NMTOKEN } + }, + element ns2:bindingRedirect { + attribute newVersion { xsd:NMTOKEN }, + attribute oldVersion { xsd:NMTOKEN } + } + }+ + }+ + } + | element startup { + attribute useLegacyV2RuntimeActivationPolicy { xsd:boolean }?, + element supportedRuntime { + attribute sku { text }, + attribute version { xsd:NCName } + } + } + | element system.codedom { + element compilers { + element compiler { + attribute compilerOptions { text }?, + attribute extension { xsd:NMTOKEN }, + attribute language { text }, + attribute type { text }, + attribute warningLevel { xsd:integer }, + element providerOption { + attribute name { xsd:NCName }, + attribute value { xsd:NCName } + }* + }+ + } + } + | element system.diagnostics { + element sources { + element source { + attribute name { xsd:NCName }, + element listeners { add }? + }+ + }?, + (element switches { empty }, + element sharedListeners { empty }, + element trace { + attribute autoflush { xsd:boolean } + })? + } + | element system.serviceModel { + element diagnostics { + element messageLogging { + attribute logEntireMessage { xsd:boolean }, + attribute logMalformedMessages { xsd:boolean }, + attribute logMessagesAtServiceLevel { xsd:boolean }, + attribute logMessagesAtTransportLevel { xsd:boolean }, + attribute maxMessagesToLog { xsd:integer }, + attribute maxSizeOfMessageToLog { xsd:integer } + } + }?, + (element behaviors { + element serviceBehaviors { + element behavior { + attribute name { text }?, + element serviceMetadata { + attribute httpGetEnabled { xsd:boolean }, + attribute httpsGetEnabled { xsd:boolean }? + }, + element serviceDebug { + attribute httpHelpPageEnabled { xsd:boolean }?, + attribute includeExceptionDetailInFaults { + xsd:boolean + } + }, + element dataContractSerializer { + attribute maxItemsInObjectGraph { xsd:integer } + }?, + (element serviceTelemetry { empty } + | element serviceThrottling { + attribute maxConcurrentCalls { xsd:integer }, + attribute maxConcurrentInstances { xsd:integer }, + attribute maxConcurrentSessions { xsd:integer } + })? + } + } + } + | element bindings { + element basicHttpBinding { + element binding { + attribute closeTimeout { xsd:time }?, + attribute maxBufferSize { xsd:integer }?, + attribute maxReceivedMessageSize { xsd:integer }?, + attribute name { xsd:NCName }?, + attribute openTimeout { xsd:time }?, + attribute receiveTimeout { xsd:time }?, + attribute sendTimeout { xsd:time }?, + element readerQuotas { + attribute maxArrayLength { xsd:integer }, + attribute maxBytesPerRead { xsd:integer }?, + attribute maxDepth { xsd:integer }?, + attribute maxNameTableCharCount { xsd:integer }?, + attribute maxStringContentLength { xsd:integer } + }?, + security? + }+ + }? + } + | element client { empty } + | element extensions { + element behaviorExtensions { add+ }, + (element bindingElementExtensions { add+ }, + element bindingExtensions { add+ })? + } + | element protocolMapping { add+ } + | element serviceHostingEnvironment { + attribute aspNetCompatibilityEnabled { xsd:boolean }?, + attribute multipleSiteBindingsEnabled { xsd:boolean }? + })*, + element services { + element service { + attribute behaviorConfiguration { xsd:NCName }?, + attribute name { text }, + element endpoint { + attribute address { xsd:NCName }?, + attribute binding { xsd:NCName }, + attribute bindingConfiguration { xsd:NCName }?, + attribute contract { xsd:NCName } + }+ + }+ + }? + })* + } + | element ns1:configuration { + element ns1:configSections { + element ns1:section { + attribute name { xsd:NCName }, + attribute requirePermission { xsd:boolean }, + attribute type { text } + } + }, + element ns1:appSettings { empty }, + element ns1:connectionStrings { empty }, + element ns1:system.web { + element ns1:compilation { + attribute debug { xsd:boolean }, + attribute defaultLanguage { text }, + attribute targetFramework { xsd:decimal } + }, + element ns1:authentication { + attribute mode { xsd:NCName } + }, + element ns1:httpModules { ns1.add }, + element ns1:pages { + attribute clientIDMode { xsd:NCName }, + attribute controlRenderingCompatibilityVersion { xsd:decimal } + } + }, + element ns1:system.webServer { + element ns1:modules { + attribute runAllManagedModulesForAllRequests { xsd:boolean }, + ns1.add + } + }, + element ns1:rewriter { + element ns1:rewrite { + attribute to { text }, + attribute url { text } + }+ + } + } +section = + element section { + attribute allowExeDefinition { xsd:NCName }?, + attribute name { xsd:NCName }, + attribute requirePermission { xsd:boolean }?, + attribute restartOnExternalChanges { xsd:boolean }?, + attribute type { text } + } +sectionGroup = + element sectionGroup { + attribute name { xsd:NCName }, + attribute type { text }?, + (section | sectionGroup)+ + } +pages = + element pages { + attribute clientIDMode { xsd:NCName }?, + attribute controlRenderingCompatibilityVersion { xsd:decimal }?, + attribute enableEventValidation { xsd:boolean }?, + attribute pageBaseType { xsd:NCName }?, + attribute theme { text }?, + attribute validateRequest { xsd:boolean }?, + attribute viewStateEncryptionMode { xsd:NCName }?, + element namespaces { add+ }? + } +add = + element add { + attribute assembly { text }?, + attribute binding { xsd:NCName }?, + attribute bindingConfiguration { text }?, + attribute connectionString { xsd:anyURI }?, + attribute initializationPage { text }?, + attribute initializeData { text }?, + attribute input { text }?, + attribute key { xsd:anyURI }?, + attribute matchType { xsd:NCName }?, + attribute modules { xsd:NCName }?, + attribute name { xsd:NCName }?, + attribute namespace { xsd:NCName }?, + attribute negate { xsd:boolean }?, + attribute path { text }?, + attribute preCondition { text }?, + attribute providerName { xsd:NCName }?, + attribute resourceType { xsd:NCName }?, + attribute responseBufferLimit { xsd:integer }?, + attribute scheme { xsd:NCName }?, + attribute scriptProcessor { text }?, + attribute type { text }?, + attribute validate { xsd:boolean }?, + attribute value { text }?, + attribute verb { text }?, + attribute xdt:Locator { text }?, + attribute xdt:Transform { xsd:NCName }? + } +security = + element security { + attribute mode { xsd:NCName }?, + attribute xdt:Transform { xsd:NCName }?, + (element requestFiltering { + attribute removeServerHeader { xsd:boolean }, + element requestLimits { + attribute maxAllowedContentLength { xsd:integer } + }? + } + | element transport { + attribute clientCredentialType { xsd:NCName } + })? + } +system.webServer = + element system.webServer { + (element httpErrors { + attribute errorMode { xsd:NCName }?, + attribute existingResponse { xsd:NCName }, + (remove+, + element error { + attribute path { text }, + attribute prefixLanguageFilePath { text }, + attribute responseMode { xsd:NCName }, + attribute statusCode { xsd:integer } + }+)? + } + | element staticContent { + element mimeMap { + attribute fileExtension { xsd:NMTOKEN }, + attribute mimeType { text } + }+ + })?, + (element applicationInitialization { + attribute xdt:Transform { xsd:NCName }, + add + } + | element rewrite { + element rules { + clear + | element rule { + attribute name { text }, + attribute stopProcessing { xsd:boolean }, + element match { + attribute url { text } + }, + element conditions { + attribute logicalGrouping { xsd:NCName }, + add+ + }?, + element action { + attribute redirectType { xsd:NCName }?, + attribute type { xsd:NCName }, + attribute url { text } + } + } + } + })?, + (security + | element aspNetCore { + attribute arguments { text }?, + attribute hostingModel { xsd:NCName }?, + attribute processPath { text }?, + attribute requestTimeout { xsd:time }?, + attribute stdoutLogEnabled { xsd:boolean }?, + attribute stdoutLogFile { text }?, + attribute xdt:Transform { text }? + } + | element handlers { (add | remove)+ } + | element httpProtocol { + attribute xdt:Transform { xsd:NCName }?, + element customHeaders { clear?, remove+ } + } + | element modules { + attribute runAllManagedModulesForAllRequests { xsd:boolean }?, + (add | remove)* + } + | element validation { + attribute validateIntegratedModeConfiguration { xsd:boolean } + })*, + element directoryBrowse { + attribute enabled { xsd:boolean } + }? + } +system.web = + element system.web { + element authorization { + element allow { + attribute users { text } + } + } + | (pages + | element authentication { + attribute mode { xsd:NCName } + } + | element compilation { + attribute debug { xsd:boolean }?, + attribute targetFramework { xsd:NMTOKEN }?, + attribute tempDirectory { text }?, + attribute xdt:Transform { text }?, + element assemblies { add+ }? + } + | element customErrors { + attribute defaultRedirect { text }?, + attribute mode { xsd:NCName }, + attribute redirectMode { xsd:NCName }? + } + | element globalization { + attribute requestEncoding { xsd:NCName }, + attribute responseEncoding { xsd:NCName } + } + | element httpHandlers { add+ } + | element httpModules { add* } + | element httpRuntime { + attribute appRequestQueueLimit { xsd:integer }?, + attribute enableVersionHeader { xsd:boolean }?, + attribute executionTimeout { xsd:integer }?, + attribute maxRequestLength { xsd:integer }?, + attribute minFreeThreads { xsd:integer }?, + attribute minLocalRequestFreeThreads { xsd:integer }?, + attribute requestPathInvalidCharacters { text }?, + attribute requestValidationMode { xsd:decimal }?, + attribute targetFramework { xsd:NMTOKEN }?, + attribute useFullyQualifiedRedirectUrl { xsd:boolean }? + } + | element identity { + attribute impersonate { xsd:boolean } + } + | element machineKey { + attribute validation { xsd:NCName } + } + | element sessionState { + attribute cookieSameSite { xsd:NCName }?, + attribute cookieless { xsd:boolean }, + attribute mode { xsd:NCName }, + attribute stateConnectionString { text }?, + attribute timeout { xsd:integer } + } + | element xhtmlConformance { + attribute mode { xsd:NCName } + })* + } +Globalization = + element Globalization { + element ResourceProviders { empty } + | add+ + } +ns1.add = + element ns1:add { + attribute name { xsd:NCName }, + attribute type { text } + } +remove = + element remove { + attribute name { xsd:NCName }?, + attribute statusCode { xsd:integer }?, + attribute subStatusCode { xsd:integer }? + } +clear = element clear { empty } diff --git a/etc/schema/dotnet-packages-config.rnc b/etc/schema/dotnet-packages-config.rnc new file mode 100644 index 00000000000..702f11aca31 --- /dev/null +++ b/etc/schema/dotnet-packages-config.rnc @@ -0,0 +1,11 @@ +default namespace = "" + +start = + element packages { + element package { + attribute id { xsd:NCName }, + attribute targetFramework { xsd:NCName }?, + attribute allowedVersions { xsd:NCName }?, + attribute version { xsd:NMTOKEN } + }+ + } diff --git a/etc/schema/dotnet-packages-props.rnc b/etc/schema/dotnet-packages-props.rnc new file mode 100644 index 00000000000..18c689eb2dd --- /dev/null +++ b/etc/schema/dotnet-packages-props.rnc @@ -0,0 +1,22 @@ +default namespace = "" + +start = + element Project { + element PropertyGroup { + element ManagePackageVersionsCentrally { xsd:boolean }, + element CentralPackageTransitivePinningEnabled { xsd:boolean }, + element CentralPackageVersionOverrideEnabled { xsd:boolean } + }?, + element ItemGroup { + attribute Condition { text }?, + (element GlobalPackageReference { + attribute Condition { text }?, + attribute Include { xsd:NCName }, + attribute Version { xsd:NMTOKEN } + }+ + | element PackageVersion { + attribute Include { xsd:NCName }, + attribute Version { text } + }+) + }+ + } diff --git a/etc/schema/dotnet-resx.rnc b/etc/schema/dotnet-resx.rnc new file mode 100644 index 00000000000..26b77e47527 --- /dev/null +++ b/etc/schema/dotnet-resx.rnc @@ -0,0 +1,57 @@ +default namespace = "" +namespace msdata = "urn:schemas-microsoft-com:xml-msdata" +namespace xsd = "http://www.w3.org/2001/XMLSchema" + +start = + element root { + element xsd:schema { + attribute id { xsd:NCName }, + element xsd:import { + attribute namespace { xsd:anyURI } + }?, + xsd.element + }, + element resheader { + attribute name { xsd:NCName }, + value + }+, + (element assembly { + attribute alias { xsd:NCName }, + attribute name { text } + } + | element data { + attribute mimetype { text }?, + attribute name { text }, + attribute type { text }?, + attribute xml:space { xsd:NCName }?, + value + } + | element metadata { + attribute name { xsd:NCName }, + attribute type { text }, + value + })* + } +xsd.element = + element xsd:element { + attribute minOccurs { xsd:integer }?, + attribute name { xsd:NCName }, + attribute type { xsd:NMTOKEN }?, + attribute msdata:IsDataSet { xsd:boolean }?, + attribute msdata:Ordinal { xsd:integer }?, + element xsd:complexType { + element xsd:choice { + attribute maxOccurs { xsd:NCName }, + xsd.element+ + }?, + element xsd:sequence { xsd.element+ }?, + element xsd:attribute { + attribute name { xsd:NCName }?, + attribute ref { xsd:NMTOKEN }?, + attribute type { xsd:NMTOKEN }?, + attribute use { xsd:NCName }?, + attribute msdata:Ordinal { xsd:integer }? + }* + }* + } +value = element value { text } diff --git a/etc/schema/msbuild.rnc b/etc/schema/msbuild.rnc new file mode 100644 index 00000000000..9425bbdf0b9 --- /dev/null +++ b/etc/schema/msbuild.rnc @@ -0,0 +1,1041 @@ +default namespace = "" +namespace ns1 = "http://schemas.microsoft.com/developer/msbuild/2003" + +start = Project | ns1.Project +Project = + element Project { + attribute Sdk { text }?, + (text + | ItemGroup + | PropertyGroup + | element Import { + attribute Project { text } + } + | element ProjectExtensions { + element VisualStudio { + element FlavorProperties { + attribute GUID { text }, + element WebProjectProperties { + element UseIIS { xsd:NCName }, + element AutoAssignPort { xsd:NCName }, + element DevelopmentServerPort { xsd:integer }, + element DevelopmentServerVPath { text }, + element IISUrl { xsd:anyURI }, + element NTLMAuthentication { xsd:NCName }, + element UseCustomServer { xsd:NCName }, + element CustomServerUrl { empty }, + element SaveServerSettingsInUserFile { xsd:NCName } + } + } + | element UserProperties { + attribute configuration_4bicepconfig_1json__JsonSchema { + xsd:anyURI + } + } + } + } + | element Target { + attribute AfterTargets { xsd:NCName }?, + attribute BeforeTargets { xsd:NCName }?, + attribute Condition { text }?, + attribute DependsOnTargets { text }?, + attribute Inputs { text }?, + attribute Name { xsd:NCName }, + attribute Outputs { text }?, + (PropertyGroup + | (element RemoveDir { + attribute Condition { text }, + attribute Directories { text } + }, + element Delete { + attribute Condition { text }, + attribute Files { text } + }))?, + (ItemGroup + | element Error { + attribute Condition { text }, + attribute Text { text } + } + | element Exec { + attribute Command { text }, + attribute Condition { text }?, + attribute ContinueOnError { xsd:boolean }?, + attribute EnvironmentVariables { text }?, + attribute WorkingDirectory { text }?, + element Output { + attribute PropertyName { xsd:NCName }, + attribute TaskParameter { xsd:NCName } + }? + } + | element MakeDir { + attribute Directories { text } + } + | element Message { + attribute Condition { text }?, + attribute Importance { xsd:NCName }, + attribute Text { text } + })*, + (element Copy { + attribute DestinationFolder { text }, + attribute SourceFiles { text } + } + | element MSBuild { + attribute BuildInParallel { xsd:boolean }, + attribute Projects { text }, + attribute Properties { text }, + attribute Targets { xsd:NCName } + })? + })+ + } +ns1.Project = + element ns1:Project { + attribute DefaultTargets { xsd:NCName }?, + attribute ToolsVersion { xsd:decimal }?, + (text + | ns1.ItemGroup + | ns1.PropertyGroup + | element ns1:Choose { + element ns1:When { + attribute Condition { text }, + (ns1.PropertyGroup | ns1.ItemGroup+) + }+, + element ns1:Otherwise { ns1.ItemGroup }? + } + | element ns1:Import { + attribute Condition { text }?, + attribute Label { xsd:NCName }?, + attribute Project { text } + } + | element ns1:ProjectExtensions { + element ns1:VisualStudio { + element ns1:FlavorProperties { + attribute GUID { text }, + (element ns1:WebProjectProperties { + (element ns1:UseIIS { xsd:NCName }, + element ns1:AutoAssignPort { xsd:NCName }, + element ns1:DevelopmentServerPort { xsd:integer }, + element ns1:DevelopmentServerVPath { text }, + element ns1:IISUrl { xsd:anyURI }, + element ns1:NTLMAuthentication { xsd:NCName }, + element ns1:UseCustomServer { xsd:NCName }, + element ns1:CustomServerUrl { empty })?, + element ns1:SaveServerSettingsInUserFile { xsd:NCName } + } + | (element ns1:ProjectProperties { + attribute AddItemTemplatesGuid { text }, + attribute ApplicationType { xsd:NCName }, + attribute DebugInfoExeName { text }, + attribute HostName { xsd:NCName }, + attribute HostPackage { text }, + attribute Language { xsd:NCName }, + attribute OfficeVersion { xsd:decimal }, + attribute TemplatesPath { xsd:NCName }, + attribute VstxVersion { xsd:decimal } + }, + element ns1:Host { + attribute GeneratedCodeNamespace { xsd:NCName }, + attribute IconIndex { xsd:integer }, + attribute Name { xsd:NCName }, + attribute PublishedHash { text }, + element ns1:HostItem { + attribute Blueprint { xsd:NCName }, + attribute CanActivate { xsd:boolean }, + attribute CanonicalName { xsd:NCName }, + attribute Code { xsd:NCName }, + attribute GeneratedCode { xsd:NCName }, + attribute IconIndex { xsd:integer }, + attribute Name { xsd:NCName }, + attribute PublishedHash { text } + } + })) + } + | element ns1:UserProperties { + attribute Name { xsd:NCName } + } + } + } + | element ns1:Target { + attribute AfterTargets { xsd:NCName }?, + attribute BeforeTargets { xsd:NCName }?, + attribute Condition { text }?, + attribute Name { xsd:NCName }, + attribute Outputs { text }?, + (ns1.PropertyGroup + | element ns1:Error { + attribute Condition { text }, + attribute HelpKeyword { xsd:NCName }, + attribute Text { text } + }* + | (ns1.ItemGroup + | element ns1:MakeDir { + attribute Directories { text } + } + | element ns1:WriteCodeFragment { + attribute AssemblyAttributes { text }, + attribute Language { text }, + attribute OutputFile { text } + })*), + (element ns1:Copy { + attribute ContinueOnError { xsd:boolean }?, + attribute DestinationFolder { text }, + attribute OverwriteReadOnlyFiles { xsd:NCName }, + attribute SourceFiles { text } + } + | element ns1:CreateItem { + attribute Exclude { text }?, + attribute Include { text }, + ns1.Output + } + | element ns1:Delete { + attribute Files { text }, + attribute TreatErrorsAsWarnings { xsd:NCName } + } + | element ns1:Exec { + attribute Command { text }, + attribute WorkingDirectory { text }? + } + | element ns1:GetVersionParts { + attribute AssemblyPath { text }, + ns1.Output+ + } + | element ns1:Message { + attribute Importance { xsd:NCName }?, + attribute Text { text } + } + | element ns1:TokenReplace { + attribute Condition { text }?, + attribute Destination { text }, + attribute Path { text }, + attribute Replacement { text }, + attribute Token { text } + })*, + element ns1:CallTarget { + attribute Condition { text }?, + attribute Targets { xsd:NCName } + }? + } + | element ns1:UsingTask { + attribute AssemblyFile { text }, + attribute TaskFactory { xsd:NCName }, + attribute TaskName { xsd:NCName }, + element ns1:ParameterGroup { + (element ns1:Path { + attribute ParameterType { xsd:NCName }, + attribute Required { xsd:boolean } + }, + element ns1:Destination { + attribute ParameterType { xsd:NCName }, + attribute Required { xsd:boolean } + }, + element ns1:Token { + attribute ParameterType { xsd:NCName }, + attribute Required { xsd:boolean } + }, + element ns1:Replacement { + attribute ParameterType { xsd:NCName }, + attribute Required { xsd:boolean } + }) + | (element ns1:AssemblyPath { + attribute ParameterType { xsd:NCName }, + attribute Required { xsd:boolean } + }, + element ns1:MajorVersion { + attribute Output { xsd:boolean }, + attribute ParameterType { xsd:NCName } + }, + element ns1:MinorVersion { + attribute Output { xsd:boolean }, + attribute ParameterType { xsd:NCName } + }, + element ns1:BuildVersion { + attribute Output { xsd:boolean }, + attribute ParameterType { xsd:NCName } + }, + element ns1:RevisionVersion { + attribute Output { xsd:boolean }, + attribute ParameterType { xsd:NCName } + }) + }, + element ns1:Task { + element ns1:Using { + attribute Namespace { xsd:NCName } + }?, + element ns1:Code { + attribute Language { xsd:NCName }, + attribute Type { xsd:NCName }, + text + } + } + })+ + } +PropertyGroup = + element PropertyGroup { + attribute Condition { text }?, + attribute Label { xsd:NCName }?, + element TargetFrameworks { text }?, + (element DotnetMonoRepoVersion { xsd:NMTOKEN } + | (element CFBundleName { text }, + element CFBundleDisplayName { text }, + element CFBundleIdentifier { xsd:NCName }, + element CFBundleVersion { xsd:NMTOKEN }, + element CFBundleShortVersionString { xsd:NMTOKEN }, + element CFBundlePackageType { xsd:NCName }, + element CFBundleExecutable { xsd:NCName }, + element CFBundleIconFile { xsd:NCName }, + element NSPrincipalClass { xsd:NCName }, + element NSHighResolutionCapable { xsd:boolean }))?, + (element SoAssemblyFileVersion { + attribute Condition { text }, + xsd:NMTOKEN + }, + element SoReleaseVersion { + attribute Condition { text }, + text + })?, + (element AccelerateBuildsInVisualStudio { xsd:boolean } + | element AddLicenseAsEmbeddedResource { xsd:boolean } + | element AddNoticeAsEmbeddedResource { xsd:boolean } + | element AnalysisMode { xsd:NCName } + | element ApiName { + attribute Condition { text }, + xsd:NCName + } + | element AppConfig { xsd:NCName } + | element AppendTargetFrameworkToOutputPath { xsd:boolean } + | element ApplicationIcon { text } + | element ApplicationManifest { xsd:NCName } + | element AspNetCoreHostingModel { xsd:NCName } + | element AssemblyName { text } + | element AssemblyOriginatorKeyFile { text } + | element AssemblyTitle { text } + | element AssemblyVersion { xsd:NMTOKEN } + | element Authors { text } + | element AutoGenerateBindingRedirects { + attribute Condition { text }?, + xsd:boolean + } + | element AzureFunctionsVersion { xsd:NCName } + | element BicepCompileAfterTargets { xsd:NCName } + | element BicepCompileBeforeTargets { xsd:NCName } + | element BootstrapperEnabled { xsd:boolean } + | element BuildOutputTargetFolder { xsd:NCName } + | element BuildServerSideRenderer { xsd:boolean } + | element BuiltInComInteropSupport { xsd:boolean } + | element CentralPackageTransitivePinningEnabled { xsd:boolean } + | element CodeAnalysisTreatWarningsAsErrors { xsd:boolean } + | element Company { text } + | element CopyLocalLockFileAssemblies { xsd:boolean } + | element Copyright { text } + | element DebugType { + attribute Condition { text }?, + xsd:NCName + } + | element DefaultItemExcludes { text } + | element DefineConstants { text } + | element DelaySign { xsd:boolean } + | element Description { text } + | element Deterministic { xsd:boolean } + | element DisableImplicitNuGetFallbackFolder { xsd:boolean } + | element DisableTransitiveProjectReferences { xsd:boolean } + | element DockerDefaultTargetOS { xsd:NCName } + | element DockerfileContext { text } + | element EmbedUntrackedSources { xsd:boolean } + | element EnableCompressionInSingleFile { xsd:boolean } + | element EnableDefaultCompileItems { xsd:boolean } + | element EnableDefaultEmbeddedResourceItems { xsd:boolean } + | element EnableMSTestRunner { xsd:boolean } + | element EnableNETAnalyzers { xsd:boolean } + | element EnableNuget { xsd:boolean } + | element EnableTrimAnalyzer { xsd:boolean } + | element EnforceCodeStyleInBuild { xsd:boolean } + | element ErrorReport { xsd:NCName } + | element FileVersion { xsd:NMTOKEN } + | element FindInvalidProjectReferences { xsd:boolean } + | element GenerateAssemblyInfo { xsd:boolean } + | element GenerateBindingRedirectsOutputType { xsd:boolean } + | element GenerateDocumentationFile { xsd:NCName } + | element GeneratePackageOnBuild { xsd:NCName } + | element GenerateResourceUsePreserializedResources { xsd:boolean } + | element ImplicitUsings { xsd:NCName } + | element IncludeNativeLibrariesForSelfExtract { xsd:boolean } + | element IncludeSymbols { xsd:boolean } + | element IsPackable { xsd:boolean } + | element LangVersion { xsd:NMTOKEN } + | element ManagePackageVersionsCentrally { xsd:boolean } + | element MapFileExtensions { xsd:boolean } + | element NoPackageAnalysis { xsd:boolean } + | element NoWarn { text } + | element Nullable { xsd:NCName } + | element Optimize { xsd:boolean } + | element OutputPath { text } + | element OutputType { xsd:NCName } + | element PackAsTool { xsd:boolean } + | element PackageIcon { text } + | element PackageIconUrl { empty } + | element PackageId { text } + | element PackageLicenseFile { xsd:NCName } + | element PackageProjectUrl { xsd:anyURI } + | element PackageReleaseNotes { text } + | element PackageTags { text } + | element PlatformTarget { xsd:NCName } + | element Platforms { text } + | element Prefer32Bit { xsd:boolean } + | element ProduceReferenceAssembly { xsd:NCName } + | element Product { text } + | element ProjectGuid { text } + | element PublishRepositoryUrl { xsd:boolean } + | element PublishSingleFile { xsd:boolean } + | element RepositoryType { empty } + | element RepositoryUrl { empty } + | element RestoreLockedMode { + attribute Condition { text }, + xsd:boolean + } + | element RestorePackagesWithLockFile { xsd:boolean } + | element RestoreProjectStyle { xsd:NCName } + | element RootNamespace { text } + | element RunPostBuildEvent { xsd:NCName } + | element RunSettingsFilePath { text } + | element RuntimeIdentifier { xsd:NCName } + | element RuntimeIdentifiers { + attribute Condition { text }?, + text + } + | element SatelliteResourceLanguages { xsd:NCName } + | element SelfContained { xsd:boolean } + | element SignAssembly { xsd:NCName } + | element SoVersionOptions { xsd:NCName } + | element SpaRoot { text } + | element StartupObject { xsd:NCName } + | element Summary { text } + | element SupportedOSPlatformVersion { xsd:decimal } + | element SuppressTrimAnalysisWarnings { xsd:boolean } + | element SymbolPackageFormat { xsd:NCName } + | element TargetFramework { text } + | element Title { text } + | element ToolCommandName { xsd:NCName } + | element TreatWarningsAsErrors { xsd:boolean } + | element TrimMode { xsd:NCName } + | element TypeScriptCompileBlocked { + attribute Condition { text }?, + xsd:boolean + } + | element TypeScriptToolsVersion { xsd:NCName } + | element UseAppHost { xsd:boolean } + | element UseApplicationTrust { xsd:boolean } + | element UseWPF { xsd:boolean } + | element UseWindowsForms { xsd:boolean } + | element UserSecretsId { text } + | element Version { + attribute Condition { text }?, + text + } + | element WarningsAsErrors { text } + | element WarningsNotAsErrors { text } + | element WasmMainJSPath { text })*, + (element PackageRequireLicenseAcceptance { xsd:boolean } + | element _FunctionsSkipCleanOutput { xsd:boolean } + | (element OutDir { text }, + element ExcludeXmlAssemblyFiles { xsd:boolean }))?, + element EnableUnsafeBinaryFormatterSerialization { xsd:boolean }?, + (element AssemblySearchPaths { text } + | element AvaloniaUseCompiledBindingsByDefault { xsd:boolean } + | element BaseOutputPath { text } + | element BicepOutputStyle { xsd:NCName } + | element ContinuousIntegrationBuild { xsd:boolean } + | element DebugSymbols { xsd:boolean } + | element DefaultDocumentationIncludeUndocumentedItems { + xsd:boolean + } + | element DscZipFile { text } + | element EnableNoticeInPublishOutput { xsd:boolean } + | element GenerateDocumentation { xsd:boolean } + | element IncludeAllContentForSelfExtract { xsd:boolean } + | element IsTestProject { xsd:boolean } + | element NetSdk { xsd:NCName } + | element ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch { + xsd:NCName + } + | element ShouldIncludeNativeSkiaSharp { xsd:NCName } + | element TargetsForTfmSpecificBuildOutput { text } + | (element SccProjectName { xsd:NCName }, + element SccProvider { xsd:NCName }, + element SccAuxPath { xsd:NCName }, + element SccLocalPath { xsd:NCName }) + | (element GenerateNoticePackageVersion { xsd:NMTOKEN }, + element GenerateNoticeRetryCount { xsd:integer }, + element GenerateNoticeBatchSize { xsd:integer }, + element GenerateNoticeUseLocalFile { + attribute Condition { text }, + xsd:boolean + }, + element GenerateNoticeUpdateLocalFile { + attribute Condition { text }, + xsd:boolean + }) + | (element RunNswag { xsd:boolean }, + element RunNodeBuild { xsd:boolean }) + | (element PublishTrimmed { xsd:boolean }, + element JsonSerializerIsReflectionEnabledByDefault { + xsd:boolean + }) + | (element ApplicationId { xsd:NCName }, + element ApplicationVersion { xsd:integer }, + element ApplicationDisplayVersion { xsd:decimal }, + element AndroidPackageFormat { xsd:NCName }, + element AndroidEnableProfiledAot { xsd:NCName }) + | (element DefaultDocumentationFolder { text }, + element DefaultDocumentationLinksBaseUrl { text }, + element DefaultDocumentationLinksOutputFile { text }, + element DefaultDocumentationExternLinksFiles { text }, + element DefaultDocumentationConfigurationFile { text }))?, + element ServiceName { xsd:NCName }?, + (element RazorLangVersion { xsd:decimal } + | (element WebRoot { text }, + element WebProjectFile { text }, + element WebOutputPath { text }))?, + element ClientName { text }?, + element DisableDataAnnotationsParam { text }?, + (element AvaloniaVersion { xsd:NMTOKEN } + | element ContinuePackingAfterGeneratingNuspec { xsd:boolean } + | ((element NSwagGenerateExceptionClasses { xsd:boolean } + | element WrapResponseMethods { text })+, + element NSwagOptions { text }) + | (element DeployDefaultTargetFrameworkVersion { xsd:decimal }, + element VisualStudioVersion { + attribute Condition { text }, + xsd:decimal + }))? + } +ItemGroup = + element ItemGroup { + attribute Condition { text }?, + (element ApiClientGen { + attribute Include { xsd:NCName } + } + | element AvaloniaXaml { + attribute Remove { text } + } + | element BuildOutputInPackage { + attribute Include { text }, + attribute TargetPath { text } + } + | element InternalsVisibleTo { + attribute Condition { text }, + attribute Include { text } + } + | element ProjectsToPublish { + attribute Include { text } + } + | element Service { + attribute Include { text } + } + | element _ReferenceCopyLocalPaths { + attribute Include { text } + } + | element ClaimsRequirement { + attribute Include { xsd:NCName } + }*), + element WCFMetadata { + attribute Include { text } + }?, + (element AdditionalFiles { + attribute Remove { text } + } + | element SourceRoot { + attribute Include { text } + } + | element ApiClient { + attribute Include { xsd:NCName } + }*), + element FrameworkReference { + attribute Include { xsd:NCName } + }?, + (element COMReference { + attribute Include { xsd:NCName }, + element Guid { text }, + element VersionMajor { xsd:integer }, + element VersionMinor { xsd:integer }, + element Lcid { xsd:integer }, + element WrapperTool { xsd:NCName }, + element Isolated { xsd:NCName }, + EmbedInteropTypes + } + | element TrimmerRootDescriptor { + attribute Include { xsd:NCName } + } + | element Watch { + attribute Exclude { text }?, + attribute Include { text }?, + attribute Remove { text }? + }* + | element AvaloniaResource { + attribute Include { text }?, + attribute Remove { text }? + }* + | element OpenApiReference { + attribute ClassName { text }?, + attribute Include { text }, + attribute Namespace { text }?, + attribute Options { text }?, + element CodeGenerator { xsd:NCName }? + }*), + element Bicep { + attribute Exclude { text }?, + attribute Include { text }?, + attribute NoBuild { xsd:boolean }?, + attribute OutputFile { text }?, + attribute Update { text }?, + element OutputFile { text }? + }*, + (element Folder { + attribute Include { text } + }* + | element BicepParam { + attribute Include { text } + }*), + (element Compile { + attribute Include { text }?, + attribute Link { xsd:NCName }?, + attribute Remove { text }?, + attribute Update { text }?, + Link?, + (DependentUpon + | element AutoGen { xsd:NCName } + | element DesignTime { xsd:NCName })*, + (SubType + | element DesignTimeSharedInput { xsd:NCName })? + } + | element Content { + attribute CopyToOutputDirectory { xsd:NCName }?, + attribute CopyToPublishDirectory { xsd:NCName }?, + attribute Exclude { text }?, + attribute Include { text }?, + attribute Link { text }?, + attribute PackagePath { text }?, + attribute Remove { text }?, + attribute Update { text }?, + Link?, + (CopyToOutputDirectory + | CopyToPublishDirectory + | DependentUpon + | ExcludeFromSingleFile + | SubType)* + } + | element EmbeddedResource { + attribute Condition { text }?, + attribute Include { text }?, + attribute Link { text }?, + attribute LogicalName { text }?, + attribute Remove { text }?, + attribute Update { text }?, + attribute WithCulture { xsd:boolean }?, + CopyToOutputDirectory?, + element CustomToolNamespace { xsd:NCName }?, + element LogicalName { text }?, + (Generator | LastGenOutput)*, + SubType?, + Link?, + (DependentUpon + | element WithCulture { xsd:boolean })? + } + | element None { + attribute CopyToOutputDirectory { xsd:NCName }?, + attribute CopyToPublishDirectory { xsd:NCName }?, + attribute Exclude { text }?, + attribute Include { text }?, + attribute Link { xsd:NCName }?, + attribute Pack { xsd:boolean }?, + attribute PackagePath { text }?, + attribute Remove { text }?, + attribute Update { text }?, + Generator?, + (LastGenOutput + | SubType + | (element Pack { xsd:NCName } + | element PackagePath { empty })*), + CopyToOutputDirectory?, + (CopyToPublishDirectory | DependentUpon)? + } + | element Resource { + attribute Include { text } + } + | element WCFMetadataStorage { + attribute Include { text } + })*, + (element AndroidResource { + attribute Include { xsd:NCName }, + Link + } + | element DesignData { + attribute Include { text } + } + | element WasmExtraFilesToDeploy { + attribute Include { text } + } + | element Using { + attribute Alias { xsd:NCName }?, + attribute Include { xsd:NCName } + }* + | element DocumentName { + attribute Include { xsd:NCName } + }* + | (element PackageDownload { + attribute Include { xsd:NCName }, + attribute Version { text } + } + | element PackageReference { + attribute Condition { text }?, + attribute ExcludeAssets { xsd:NCName }?, + attribute Include { text }, + attribute PrivateAssets { xsd:NCName }?, + attribute Version { text }?, + (element IncludeAssets { text } + | element PrivateAssets { xsd:NCName })* + } + | element ProjectReference { + attribute Include { text }?, + attribute PrivateAssets { xsd:NCName }?, + attribute Remove { xsd:NCName }?, + (element Properties { text } + | (Project, + element Name { xsd:NCName }))? + } + | element Reference { + attribute Include { text }, + (EmbedInteropTypes + | element HintPath { + attribute Condition { text }?, + text + } + | element Private { xsd:NCName } + | element SpecificVersion { xsd:NCName })* + })* + | (element DistFiles { + attribute Condition { text }?, + attribute Include { text } + }+, + element ResolvedFileToPublish { + attribute Exclude { text }, + attribute Include { text }, + element RelativePath { text }, + CopyToPublishDirectory, + ExcludeFromSingleFile? + }) + | element TypeScriptCompile { + attribute Include { text }?, + attribute Remove { text }?, + DependentUpon? + }* + | element Page { + attribute Generator { xsd:NMTOKEN }?, + attribute Include { text }?, + attribute Remove { text }?, + attribute SubType { xsd:NCName }? + }*) + } +ns1.PropertyGroup = + element ns1:PropertyGroup { + attribute Condition { text }?, + (element ns1:NugetFolder { text }, + element ns1:BuildFolder { text })?, + element ns1:SoReleaseVersion { text }?, + (element ns1:ApplicationManifest { xsd:NCName } + | element ns1:ErrorText { text } + | element ns1:__paket__NETStandard_Library_targets { text })?, + element ns1:PreBuildEvent { + attribute Condition { text }?, + text + }?, + element ns1:__paket__MSTest_TestFramework_targets { text }?, + element ns1:SoLegacyVersion { xsd:NCName }?, + element ns1:SoBetaTag { empty }?, + element ns1:ComputerName { text }?, + element ns1:__paket__MSTest_TestAdapter_props { text }?, + element ns1:__paket__MSTest_TestAdapter_targets { text }?, + element ns1:MinimumVisualStudioVersion { xsd:decimal }?, + (element ns1:AppDesignerFolder { xsd:NCName } + | element ns1:ApplicationRevision { xsd:integer } + | element ns1:ApplicationVersion { text } + | element ns1:AssemblyName { xsd:NCName } + | element ns1:AssemblyOriginatorKeyFile { text } + | element ns1:AutoGenerateBindingRedirects { xsd:boolean } + | element ns1:AutoIncrementApplicationRevision { xsd:boolean } + | element ns1:BootstrapperEnabled { xsd:boolean } + | element ns1:CodeAnalysisRuleSet { text } + | element ns1:Configuration { + attribute Condition { text }, + xsd:NCName + } + | element ns1:DebugSymbols { xsd:boolean } + | element ns1:DebugType { xsd:NCName } + | element ns1:DefineConstants { text } + | element ns1:DependsOnNETStandard { xsd:NCName } + | element ns1:Deterministic { xsd:boolean } + | element ns1:DocumentationFile { text } + | element ns1:EnableUnmanagedDebugging { xsd:boolean } + | element ns1:ErrorReport { xsd:NCName } + | element ns1:FileAlignment { xsd:integer } + | element ns1:FileUpgradeFlags { empty } + | element ns1:FindInvalidProjectReferences { xsd:boolean } + | element ns1:FriendlyName { xsd:NCName } + | element ns1:GenerateBindingRedirectsOutputType { xsd:boolean } + | element ns1:IISExpressAnonymousAuthentication { empty } + | element ns1:IISExpressSSLPort { text } + | element ns1:IISExpressUseClassicPipelineMode { empty } + | element ns1:IISExpressWindowsAuthentication { empty } + | element ns1:Install { xsd:boolean } + | element ns1:InstallFrom { xsd:NCName } + | element ns1:InstallUrl { empty } + | element ns1:IsCodedUITest { xsd:NCName } + | element ns1:IsWebBootstrapper { xsd:NCName } + | element ns1:LoadBehavior { xsd:integer } + | element ns1:ManifestCertificateThumbprint { text } + | element ns1:ManifestKeyFile { text } + | element ns1:MapFileExtensions { xsd:boolean } + | element ns1:NoStandardLibraries { xsd:boolean } + | element ns1:NoWarn { text } + | element ns1:NuGetPackageImportStamp { empty } + | element ns1:NugetExe { text } + | element ns1:OfficeApplicationDescription { empty } + | element ns1:OldToolsVersion { xsd:decimal } + | element ns1:Optimize { xsd:boolean } + | element ns1:OutputPath { text } + | element ns1:OutputType { xsd:NCName } + | element ns1:PackageDestinationDirectory { text } + | element ns1:Platform { + attribute Condition { text }, + xsd:NCName + } + | element ns1:PlatformTarget { xsd:NCName } + | element ns1:Prefer32Bit { xsd:boolean } + | element ns1:ProductName { xsd:NCName } + | element ns1:ProductVersion { text } + | element ns1:ProjectGuid { text } + | element ns1:ProjectTypeGuids { text } + | element ns1:PublishUrl { text } + | element ns1:PublisherName { empty } + | element ns1:ReferencePath { text } + | element ns1:RestorePackages { xsd:boolean } + | element ns1:RootNamespace { xsd:NCName } + | element ns1:RunPostBuildEvent { xsd:NCName } + | element ns1:SccAuxPath { xsd:anyURI } + | element ns1:SccLocalPath { xsd:NMTOKEN } + | element ns1:SccProjectName { text } + | element ns1:SccProvider { text } + | element ns1:SchemaVersion { xsd:decimal } + | element ns1:SignAssembly { xsd:boolean } + | element ns1:SignManifests { xsd:boolean } + | element ns1:SolutionDir { + attribute Condition { text }, + text + } + | element ns1:StartupObject { empty } + | element ns1:SupportUrl { empty } + | element ns1:TargetCulture { xsd:NCName } + | element ns1:TargetFrameworkProfile { text } + | element ns1:TargetFrameworkVersion { xsd:NCName } + | element ns1:TargetVsixContainerName { xsd:NCName } + | element ns1:TestProjectType { xsd:NCName } + | element ns1:TypeScriptCompileBlocked { xsd:boolean } + | element ns1:TypeScriptToolsVersion { xsd:decimal } + | element ns1:UpdateEnabled { xsd:boolean } + | element ns1:UpdateInterval { xsd:integer } + | element ns1:UpdateIntervalUnits { xsd:NCName } + | element ns1:UpdateMode { xsd:NCName } + | element ns1:UpdatePeriodically { xsd:boolean } + | element ns1:UpdateRequired { xsd:boolean } + | element ns1:UpgradeBackupLocation { empty } + | element ns1:Use64BitIISExpress { empty } + | element ns1:UseApplicationTrust { xsd:boolean } + | element ns1:UseGlobalApplicationHostFile { empty } + | element ns1:UseIISExpress { xsd:boolean } + | element ns1:UseVSHostingProcess { xsd:boolean } + | element ns1:VSTO_TrustAssembliesLocation { xsd:boolean } + | element ns1:VSToolsPath { + attribute Condition { text }, + text + } + | element ns1:VisualStudioVersion { + attribute Condition { text }, + xsd:decimal + } + | element ns1:WarningLevel { xsd:integer } + | element ns1:WcfConfigValidationEnabled { xsd:NCName })*, + element ns1:UseCodebase { xsd:boolean }?, + element ns1:GeneratePkgDefFile { xsd:boolean }?, + (element ns1:CopyBuildOutputToOutputDirectory { xsd:boolean } + | element ns1:CopyOutputSymbolsToOutputDirectory { xsd:boolean } + | element ns1:CopyVsixManifestToOutput { xsd:boolean } + | element ns1:CreateVsixContainer { xsd:boolean } + | element ns1:DeployExtension { xsd:boolean } + | element ns1:DeployVSTemplates { xsd:boolean } + | element ns1:IncludeAssemblyInVSIXContainer { xsd:boolean } + | element ns1:IncludeDebugSymbolsInLocalVSIXDeployment { + xsd:boolean + } + | element ns1:IncludeDebugSymbolsInVSIXContainer { xsd:boolean } + | element ns1:RuntimeIdentifier { xsd:NCName })*, + (element ns1:ApplicationIcon { xsd:NCName } + | element ns1:OfficeApplication { xsd:NCName } + | element ns1:PostBuildEvent { + attribute Condition { text }?, + text + }* + | (element ns1:StartAction { xsd:NCName }, + element ns1:StartProgram { + attribute Condition { text }, + text + }, + element ns1:StartArguments { text }, + element ns1:EnableNoticeInVisualStudioVsix { xsd:boolean })) + } +ns1.ItemGroup = + element ns1:ItemGroup { + (element ns1:AssemblyAttributes { + attribute Include { xsd:NCName }, + element ns1:_Parameter1 { text } + } + | element ns1:COMReference { + attribute Include { xsd:NCName }, + element ns1:Guid { text }, + element ns1:VersionMajor { xsd:integer }, + element ns1:VersionMinor { xsd:integer }, + element ns1:Lcid { xsd:integer }, + element ns1:WrapperTool { xsd:NCName }, + element ns1:Isolated { xsd:NCName }, + ns1.EmbedInteropTypes + } + | element ns1:WCFMetadata { + attribute Include { text } + } + | element ns1:ProjectReference { + attribute Include { text }, + ns1.Project, + element ns1:Name { xsd:NCName }, + (ns1.VSIXSubPath, + element ns1:ReferenceOutputAssembly { xsd:boolean })?, + element ns1:IncludeOutputGroupsInVSIX { text }?, + element ns1:IncludeOutputGroupsInVSIXLocalOnly { text }? + }* + | element ns1:Folder { + attribute Include { text } + }*), + element ns1:VSTemplate { + attribute Include { xsd:NCName }, + element ns1:OutputSubPath { xsd:NCName }?, + ns1.SubType + }*, + (element ns1:CodeAnalysisDependentAssemblyPaths { + attribute Condition { text }, + attribute Include { text }, + element ns1:Visible { xsd:NCName } + } + | element ns1:PackageSourceDirectory { + attribute Include { text } + } + | element ns1:WebReferences { + attribute Include { text } + } + | element ns1:Page { + attribute Include { text }, + ns1.Generator, + ns1.SubType + }* + | element ns1:Reference { + attribute Include { text }, + element ns1:RequiredTargetFramework { xsd:decimal }?, + element ns1:SpecificVersion { xsd:NCName }?, + ns1.EmbedInteropTypes?, + element ns1:HintPath { text }?, + element ns1:Private { xsd:NCName }?, + ns1.Paket? + }* + | element ns1:VSIXSourceItem { + attribute Exclude { text }?, + attribute Include { text }, + attribute VSIXSubPath { xsd:NCName }?, + ns1.VSIXSubPath? + }* + | element ns1:PackageReference { + attribute Include { xsd:NCName }, + attribute Version { text }?, + element ns1:Version { xsd:NMTOKEN }?, + element ns1:IncludeAssets { text }?, + element ns1:PrivateAssets { xsd:NCName }? + }* + | element ns1:Analyzer { + attribute Include { text }, + ns1.Paket + }*), + element ns1:ApplicationDefinition { + attribute Include { xsd:NCName }, + ns1.Generator, + ns1.SubType + }?, + (element ns1:Compile { + attribute Include { text }, + element ns1:AutoGen { xsd:NCName }?, + ns1.Link?, + (ns1.DependentUpon + | element ns1:DesignTime { xsd:NCName } + | element ns1:DesignTimeSharedInput { xsd:NCName })*, + ns1.SubType? + } + | element ns1:Content { + attribute Include { text }, + element ns1:IncludeInVSIX { xsd:boolean }?, + (ns1.CopyToOutputDirectory | ns1.DependentUpon | ns1.SubType)? + } + | element ns1:EmbeddedResource { + attribute Include { text }, + (ns1.Generator, ns1.LastGenOutput)?, + (ns1.DependentUpon | ns1.SubType)? + } + | element ns1:EntityDeploy { + attribute Include { xsd:NCName }, + ns1.Generator, + ns1.LastGenOutput + } + | element ns1:None { + attribute Include { text }, + (ns1.Generator, ns1.LastGenOutput)?, + (ns1.DependentUpon | ns1.Link)?, + ns1.CopyToOutputDirectory?, + ns1.SubType? + } + | element ns1:Resource { + attribute Include { text } + })*, + (element ns1:AppDesigner { + attribute Include { text } + } + | element ns1:Service { + attribute Include { text } + }*) + } +ns1.Output = + element ns1:Output { + attribute ItemName { xsd:NCName }?, + attribute PropertyName { xsd:NCName }?, + attribute TaskParameter { xsd:NCName } + } +EmbedInteropTypes = element EmbedInteropTypes { xsd:NCName } +Generator = element Generator { text } +SubType = element SubType { text } +LastGenOutput = element LastGenOutput { xsd:NCName } +CopyToOutputDirectory = element CopyToOutputDirectory { xsd:NCName } +DependentUpon = element DependentUpon { text } +CopyToPublishDirectory = element CopyToPublishDirectory { xsd:NCName } +Link = element Link { text } +ExcludeFromSingleFile = element ExcludeFromSingleFile { xsd:boolean } +ns1.VSIXSubPath = element ns1:VSIXSubPath { xsd:NCName } +ns1.EmbedInteropTypes = element ns1:EmbedInteropTypes { xsd:NCName } +ns1.SubType = element ns1:SubType { xsd:NCName } +ns1.Generator = element ns1:Generator { xsd:NMTOKEN } +ns1.Paket = element ns1:Paket { xsd:NCName } +ns1.LastGenOutput = element ns1:LastGenOutput { xsd:NCName } +ns1.DependentUpon = element ns1:DependentUpon { xsd:NCName } +ns1.Link = element ns1:Link { text } +ns1.CopyToOutputDirectory = + element ns1:CopyToOutputDirectory { xsd:NCName } diff --git a/etc/schema/nuget.rnc b/etc/schema/nuget.rnc new file mode 100644 index 00000000000..ab7052e91d1 --- /dev/null +++ b/etc/schema/nuget.rnc @@ -0,0 +1,25 @@ +default namespace = "" + +start = + element configuration { + element packageRestore { add+ }?, + (element config { add } + | element packageSourceMapping { + element packageSource { + attribute key { xsd:NCName }, + element package { + attribute pattern { text } + } + }+ + } + | element packageSources { + element clear { empty }, + add+ + })+ + } +add = + element add { + attribute key { xsd:NCName }, + attribute protocolVersion { xsd:integer }?, + attribute value { xsd:anyURI } + } diff --git a/etc/schema/nuspec.rnc b/etc/schema/nuspec.rnc new file mode 100644 index 00000000000..a4332f84fc0 --- /dev/null +++ b/etc/schema/nuspec.rnc @@ -0,0 +1,100 @@ +namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0" +default namespace mstns = "http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd" +namespace rng = "http://relaxng.org/ns/structure/1.0" + +dependency = + attribute id { xsd:string }, + attribute version { xsd:string }?, + attribute include { xsd:string }?, + attribute exclude { xsd:string }? +dependencyGroup = + element dependency { dependency }*, + attribute targetFramework { xsd:string }? +reference = attribute file { xsd:string } +contentFileEntries = + attribute include { xsd:string }, + attribute exclude { xsd:string }?, + attribute buildAction { xsd:string }?, + attribute copyToOutput { xsd:boolean }?, + attribute flatten { xsd:boolean }? +referenceGroup = + element reference { reference }+, + attribute targetFramework { xsd:string }? +frameworkReference = attribute name { xsd:string } +frameworkReferenceGroup = + element frameworkReference { frameworkReference }*, + attribute targetFramework { xsd:string } +start |= starting_package +starting_package = + element package { + element metadata { + (element id { xsd:string } + & element version { xsd:string } + & element title { xsd:string }? + & element authors { xsd:string } + & element owners { xsd:string }? + & element licenseUrl { xsd:anyURI }? + & element projectUrl { xsd:anyURI }? + & element iconUrl { xsd:anyURI }? + & element requireLicenseAcceptance { xsd:boolean }? + & element developmentDependency { xsd:boolean }? + & element description { xsd:string } + & element summary { xsd:string }? + & element releaseNotes { xsd:string }? + & (element copyright { xsd:string }?) + >> a:documentation [ + "\x{a}" ~ + " default value is : en-US" + ] + & element language { xsd:string }? + & element tags { xsd:string }? + & element serviceable { xsd:boolean }? + & element icon { xsd:string }? + & element readme { xsd:string }? + & element repository { + attribute type { xsd:string }?, + attribute url { xsd:anyURI }?, + attribute branch { xsd:string }?, + attribute commit { xsd:string }? + }? + & element license { + xsd:string, + attribute type { xsd:string }, + attribute version { xsd:string }? + }? + & element packageTypes { + element packageType { + attribute name { xsd:string }, + attribute version { xsd:string }? + }* + }? + & element dependencies { + (element dependency { dependency } + | element group { dependencyGroup })* + }? + & element frameworkAssemblies { + element frameworkAssembly { + attribute assemblyName { xsd:string }, + attribute targetFramework { xsd:string }? + }* + }? + & element frameworkReferences { + element group { frameworkReferenceGroup }* + }? + & element references { + (element reference { reference } + | element group { referenceGroup })* + }? + & element contentFiles { + (element files { contentFileEntries })* + }?), + attribute minClientVersion { xsd:string }? + }, + element files { + element file { + attribute src { xsd:string }, + attribute target { xsd:string }?, + attribute exclude { xsd:string }? + }* + }? + } diff --git a/etc/schema/schemas.xml b/etc/schema/schemas.xml index f04bba849b4..be0dacd6ecf 100644 --- a/etc/schema/schemas.xml +++ b/etc/schema/schemas.xml @@ -66,4 +66,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +