aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--.github/workflows/build.yml18
-rw-r--r--OSMFEULA.txt63
-rw-r--r--src/Directory.Build.props29
-rw-r--r--src/Directory.Build.targets11
-rw-r--r--src/Directory.csproj.props3
-rw-r--r--src/Directory.csproj.targets10
-rw-r--r--src/Directory.wixproj.targets3
-rw-r--r--src/api/burn/WixToolset.BootstrapperApplicationApi/WixToolset.BootstrapperApplicationApi.nuspec10
-rw-r--r--src/api/burn/bextutil/bextutil.nuspec10
-rw-r--r--src/burn/stub/stub.nuspec6
-rw-r--r--src/dtf/WixToolset.Dtf.CustomAction/WixToolset.Dtf.CustomAction.nuspec10
-rw-r--r--src/ext/Bal/bal_t.proj4
-rw-r--r--src/ext/Bal/wixext-backward-compatible/WixToolset.Bal.wixext.nuspec10
-rw-r--r--src/ext/Bal/wixstdfn/wixstdfn.nuspec10
-rw-r--r--src/ext/ComPlus/complus_t.proj2
-rw-r--r--src/ext/Dependency/dependency_t.proj2
-rw-r--r--src/ext/DirectX/directx_t.proj2
-rw-r--r--src/ext/Firewall/firewall_t.proj2
-rw-r--r--src/ext/Http/http_t.proj2
-rw-r--r--src/ext/Iis/iis_t.proj2
-rw-r--r--src/ext/Msmq/msmq_t.proj2
-rw-r--r--src/ext/NetFx/netfx_t.proj2
-rw-r--r--src/ext/PowerShell/powershell_t.proj2
-rw-r--r--src/ext/Sql/sql_t.proj2
-rw-r--r--src/ext/UI/ui_t.proj2
-rw-r--r--src/ext/Util/util_t.proj2
-rw-r--r--src/ext/VisualStudio/visualstudio_t.proj2
-rw-r--r--src/ext/WixExt.props1
-rw-r--r--src/ext/ext_t.proj12
-rw-r--r--src/internal/SetBuildNumber/Directory.Packages.props.pp2
-rw-r--r--src/internal/SetBuildNumber/global.json.pp2
-rw-r--r--src/internal/images/icon.pngbin0 -> 4833 bytes
-rw-r--r--src/internal/images/official/icon.png (renamed from src/internal/images/wix.png)bin3410 -> 3410 bytes
-rw-r--r--src/libs/dutil/WixToolset.DUtil/dutil.nuspec10
-rw-r--r--src/libs/dutil/test/DUtilUnitTest/DUtilUnitTest.vcxproj3
-rw-r--r--src/libs/dutil/test/DUtilUnitTest/LocControlsUtilTests.cpp72
-rw-r--r--src/libs/dutil/test/DUtilUnitTest/LocStringsUtilTests.cpp (renamed from src/libs/dutil/test/DUtilUnitTest/LocUtilTests.cpp)60
-rw-r--r--src/libs/wcautil/WixToolset.WcaUtil/wcautil.nuspec10
-rw-r--r--src/setup/OSMFEULA.rtf258
-rw-r--r--src/setup/ThmViewerPackage/ThmViewerPackage.wxs2
-rw-r--r--src/setup/WixAdditionalTools/WixAdditionalTools.wxl1
-rw-r--r--src/setup/WixAdditionalTools/WixAdditionalTools.wxs6
-rw-r--r--src/setup/wix-cli/Package.wxs8
-rw-r--r--src/setup/wix-cli/wix-cli.wixproj4
-rw-r--r--src/tools/WixToolset.Heat/WixToolset.Heat.nuspec10
-rw-r--r--src/tools/tools_t.proj4
-rw-r--r--src/wix/WixToolset.Converters/ConvertCommand.cs2
-rw-r--r--src/wix/WixToolset.Core.Native/WixToolset.Core.Native.nuspec6
-rw-r--r--src/wix/WixToolset.Core/HarvestFilesCommand.cs51
-rw-r--r--src/wix/WixToolset.Sdk/WixToolset.Sdk.nuspec10
-rw-r--r--src/wix/pack-wix/pack-wix.nuspec10
-rw-r--r--src/wix/test/WixToolsetTest.CoreIntegration/HarvestFilesFixture.cs79
-rw-r--r--src/wix/test/WixToolsetTest.CoreIntegration/TestData/HarvestFiles/SomeExclusionsMissing.wxs17
-rw-r--r--src/wix/wix.cmd4
-rw-r--r--src/xsd/bal.xsd745
-rw-r--r--src/xsd/complus.xsd934
-rw-r--r--src/xsd/dependency.xsd40
-rw-r--r--src/xsd/difxapp.xsd119
-rw-r--r--src/xsd/directx.xsd53
-rw-r--r--src/xsd/firewall.xsd578
-rw-r--r--src/xsd/http.xsd268
-rw-r--r--src/xsd/iis.xsd1438
-rw-r--r--src/xsd/msmq.xsd153
-rw-r--r--src/xsd/netfx.xsd687
-rw-r--r--src/xsd/ps.xsd227
-rw-r--r--src/xsd/sql.xsd461
-rw-r--r--src/xsd/thmutil.xsd1365
-rw-r--r--src/xsd/ui.xsd77
-rw-r--r--src/xsd/util.xsd2536
-rw-r--r--src/xsd/vs.xsd140
-rw-r--r--src/xsd/wix.xsd14675
-rw-r--r--src/xsd/wixloc.xsd167
72 files changed, 25310 insertions, 220 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 36e0583c..78720df2 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -22,6 +22,8 @@ jobs:
22 name: Build 22 name: Build
23 runs-on: windows-2022 23 runs-on: windows-2022
24 env: 24 env:
25 RepoOrg: ${{ github.repository_owner }}
26 SignBuild: ${{ github.repository_owner == 'wixtoolset' && startsWith(github.ref, 'refs/tags/v') }}
25 WixOfficialBuild: ${{ github.repository_owner == 'wixtoolset' && startsWith(github.ref, 'refs/tags/v') }} 27 WixOfficialBuild: ${{ github.repository_owner == 'wixtoolset' && startsWith(github.ref, 'refs/tags/v') }}
26 permissions: 28 permissions:
27 packages: write 29 packages: write
@@ -37,7 +39,7 @@ jobs:
37 # run: ./src/vs_config.cmd 39 # run: ./src/vs_config.cmd
38 40
39 - name: Install sign tool 41 - name: Install sign tool
40 if: ${{ env.WixOfficialBuild == 'true' }} 42 if: ${{ env.SignBuild == 'true' }}
41 shell: cmd 43 shell: cmd
42 run: dotnet tool install --tool-path build\.tools sign --version 0.9.1-beta.24170.3 44 run: dotnet tool install --tool-path build\.tools sign --version 0.9.1-beta.24170.3
43 45
@@ -54,7 +56,7 @@ jobs:
54 reg add "HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\Windows Error Reporting\LocalDumps" /t REG_DWORD /v DumpType /d 1 56 reg add "HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\Windows Error Reporting\LocalDumps" /t REG_DWORD /v DumpType /d 1
55 57
56 # - name: 'Az CLI login' 58 # - name: 'Az CLI login'
57 # if: ${{ env.WixOfficialBuild == 'true' }} 59 # if: ${{ env.SignBuild == 'true' }}
58 # uses: azure/login@v1 60 # uses: azure/login@v1
59 # with: 61 # with:
60 # allow-no-subscriptions: true 62 # allow-no-subscriptions: true
@@ -66,11 +68,11 @@ jobs:
66 run: ./src/build_official.cmd 68 run: ./src/build_official.cmd
67 env: 69 env:
68 RuntimeTestsEnabled: true 70 RuntimeTestsEnabled: true
69 SigningKeyVaultUri: ${{ env.WixOfficialBuild == 'true' && secrets.WIX_SIGNING_VAULTURI || '' }} 71 SigningKeyVaultUri: ${{ env.SignBuild == 'true' && secrets.WIX_SIGNING_VAULTURI || '' }}
70 SigningTenantId: ${{ env.WixOfficialBuild == 'true' && secrets.WIX_SIGNING_TENANTID || '' }} 72 SigningTenantId: ${{ env.SignBuild == 'true' && secrets.WIX_SIGNING_TENANTID || '' }}
71 SigningClientId: ${{ env.WixOfficialBuild == 'true' && secrets.WIX_SIGNING_CLIENTID || '' }} 73 SigningClientId: ${{ env.SignBuild == 'true' && secrets.WIX_SIGNING_CLIENTID || '' }}
72 SigningClientSecret: ${{ env.WixOfficialBuild == 'true' && secrets.WIX_SIGNING_SECRET || '' }} 74 SigningClientSecret: ${{ env.SignBuild == 'true' && secrets.WIX_SIGNING_SECRET || '' }}
73 SigningCertName: ${{ env.WixOfficialBuild == 'true' && secrets.WIX_SIGNING_CERTNAME || '' }} 75 SigningCertName: ${{ env.SignBuild == 'true' && secrets.WIX_SIGNING_CERTNAME || '' }}
74 76
75 - name: Validate test results 77 - name: Validate test results
76 shell: cmd 78 shell: cmd
@@ -99,7 +101,7 @@ jobs:
99 101
100 # Do NOT publish logs on `official builds` (version tagged builds) as they may contain secrets in them. 102 # Do NOT publish logs on `official builds` (version tagged builds) as they may contain secrets in them.
101 - name: Save logs 103 - name: Save logs
102 if: ${{ env.WixOfficialBuild != 'true' && !cancelled() }} 104 if: ${{ env.SignBuild != 'true' && !cancelled() }}
103 uses: actions/upload-artifact@v4 105 uses: actions/upload-artifact@v4
104 with: 106 with:
105 name: logs_${{ github.run_id }} 107 name: logs_${{ github.run_id }}
diff --git a/OSMFEULA.txt b/OSMFEULA.txt
new file mode 100644
index 00000000..e6b014e9
--- /dev/null
+++ b/OSMFEULA.txt
@@ -0,0 +1,63 @@
1End User License Agreement
2
3This Open Source Maintenance Fee Agreement ("Agreement") is a legal agreement
4between you ("User") and WiX Toolset ("Project") for the use of the
5WiX Toolset ("Software"), an open source software project licensed under
6the Microsoft Reciprocal License ("OSI License"), an OSI-approved open source license.
7Project offers a Binary Release of the Software to Users in exchange for a
8maintenance fee ("Fee"). "Binary Release" refers to pre-compiled executable
9versions of the Software provided by Project. By accessing or using the
10Binary Release, User agrees to be bound by the terms of this Agreement.
11
121. Applicability
13
14Project agrees to provide User with the Binary Release in exchange for the
15Fees outlined in Section 2, subject to the terms of this Agreement. The Fee
16applies only to Users that generate revenue by the Software.
17Non-revenue-generating use of the Software is exempt from this Fee. In
18addition, Users who pay separate support and/or maintenance fees to the
19maintainers of the Software are exempt from the Fee outlined in this
20Agreement. This distinction ensures that duplicate fees are not imposed,
21promoting fairness and consistency while respecting alternative support
22arrangements.
23
242. Monthly Fee and Payment Terms
25
26Revenue-generating Users required to pay the Fee shall follow the payment
27terms set forth by the Project. Failure to comply with these terms may result
28in suspending access to the Binary Release. However, this does not restrict
29the User from obtaining or redistributing binaries from other sources or
30self-compiling them.
31
323. Nature of the Fee
33
34The Fee is not a license fee. The Software's source code is licensed to User
35under the OSI License and remains freely distributable under the terms of the
36OSI License and any applicable open-source licenses.
37
384. Conflicts with OSI License
39
40To the extent any term of this Agreement conflicts with User's rights
41under the OSI License regarding the Software, the OSI License shall govern.
42This Agreement applies only to the Binary Release and does not limit User's
43ability to access, modify, or distribute the Software's source code or
44self-compiled binaries. User may independently compile binaries from the
45Software's source code without this Agreement, subject to OSI License terms.
46User may redistribute the Binary Release received under this Agreement,
47provided such redistribution complies with the OSI License (e.g., including
48copyright and permission notices). This Agreement imposes no additional
49restrictions on such rights.
50
515. Disclaimer of Warranty and Limitation of Liability
52
53THE SOFTWARE AND BINARY RELEASE ARE PROVIDED BY THE PROJECT "AS IS" AND ANY
54EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
55WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
56DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR
57ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
58DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
59SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
60CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
61OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
62OF THE SOFTWARE AND BINARY RELEASE, EVEN IF ADVISED OF THE POSSIBILITY OF
63SUCH DAMAGE.
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index 883aba42..0ca36281 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -9,6 +9,7 @@
9 <NoWarn>$(NoWarn);MSB3026</NoWarn> 9 <NoWarn>$(NoWarn);MSB3026</NoWarn>
10 10
11 <ProjectName Condition=" '$(ProjectName)' == '' ">$(MSBuildProjectName)</ProjectName> 11 <ProjectName Condition=" '$(ProjectName)' == '' ">$(MSBuildProjectName)</ProjectName>
12 <RootFolder>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\))</RootFolder>
12 <RootBuildFolder>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\build\))</RootBuildFolder> 13 <RootBuildFolder>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\build\))</RootBuildFolder>
13 <RootPackagesFolder>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\packages\))</RootPackagesFolder> 14 <RootPackagesFolder>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\packages\))</RootPackagesFolder>
14 <LogsFolder>$(RootBuildFolder)logs\</LogsFolder> 15 <LogsFolder>$(RootBuildFolder)logs\</LogsFolder>
@@ -26,18 +27,30 @@
26 <PlatformToolset Condition=" '$(ConfigurationType)' == 'StaticLibrary' ">$(WixNativeSdkLibraryToolset)</PlatformToolset> 27 <PlatformToolset Condition=" '$(ConfigurationType)' == 'StaticLibrary' ">$(WixNativeSdkLibraryToolset)</PlatformToolset>
27 <PlatformToolset Condition=" '$(PlatformToolset)' == '' ">v143</PlatformToolset> 28 <PlatformToolset Condition=" '$(PlatformToolset)' == '' ">v143</PlatformToolset>
28 29
29 <Authors>WiX Toolset Team</Authors>
30 <Company>WiX Toolset</Company>
31 <Copyright>Copyright (c) .NET Foundation and contributors. All rights reserved.</Copyright>
32 <PackageLicenseExpression>MS-RL</PackageLicenseExpression>
33 <Product>WiX Toolset</Product>
34 <ProjectUrl>https://wixtoolset.org/</ProjectUrl>
35 <PackageIcon>wix.png</PackageIcon>
36
37 <NuGetAudit>true</NuGetAudit> 30 <NuGetAudit>true</NuGetAudit>
38 <NuGetAuditMode>all</NuGetAuditMode> 31 <NuGetAuditMode>all</NuGetAuditMode>
39 <NuGetAuditLevel>low</NuGetAuditLevel> 32 <NuGetAuditLevel>low</NuGetAuditLevel>
40 </PropertyGroup> 33 </PropertyGroup>
41 34
35 <PropertyGroup>
36 <Authors Condition=" '$(WixOfficialBuild)'!='true' ">Private WiX Build</Authors>
37 <Authors Condition=" '$(WixOfficialBuild)'=='true' ">WiX Toolset Team</Authors>
38 <Company Condition=" '$(WixOfficialBuild)'!='true' ">Private WiX Build</Company>
39 <Company Condition=" '$(WixOfficialBuild)'=='true' ">WiX Toolset</Company>
40 <Copyright>Copyright (c) .NET Foundation and contributors. All rights reserved.</Copyright>
41
42 <PackageEulaSource>$(RootFolder)OSMFEULA.txt</PackageEulaSource>
43 <PackageLicenseFile>OSMFEULA.txt</PackageLicenseFile>
44 <PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
45
46 <Product Condition=" '$(WixOfficialBuild)'!='true' ">Private WiX Build</Product>
47 <Product Condition=" '$(WixOfficialBuild)'=='true' ">WiX Toolset</Product>
48 <ProjectUrl>https://wixtoolset.org/</ProjectUrl>
49 <PackageIcon>icon.png</PackageIcon>
50 <PackageIconSource Condition=" '$(WixOfficialBuild)'!='true' ">$(MSBuildThisFileDirectory)internal\images\icon.png</PackageIconSource>
51 <PackageIconSource Condition=" '$(WixOfficialBuild)'=='true' ">$(MSBuildThisFileDirectory)internal\images\official\icon.png</PackageIconSource>
52 <PackageTags>WiX MSI install setup</PackageTags>
53 </PropertyGroup>
54
42 <Import Project="Directory$(MSBuildProjectExtension).props" Condition=" Exists('Directory$(MSBuildProjectExtension).props') " /> 55 <Import Project="Directory$(MSBuildProjectExtension).props" Condition=" Exists('Directory$(MSBuildProjectExtension).props') " />
43</Project> 56</Project>
diff --git a/src/Directory.Build.targets b/src/Directory.Build.targets
index 4adf903c..7083da38 100644
--- a/src/Directory.Build.targets
+++ b/src/Directory.Build.targets
@@ -32,7 +32,8 @@
32 <PropertyGroup> 32 <PropertyGroup>
33 <GenerateNuspecDependsOn> 33 <GenerateNuspecDependsOn>
34 $(GenerateNuspecDependsOn); 34 $(GenerateNuspecDependsOn);
35 __SetNuspecProperties 35 __SetNuspecProperties;
36 VerifyOfficialBuild
36 </GenerateNuspecDependsOn> 37 </GenerateNuspecDependsOn>
37 </PropertyGroup> 38 </PropertyGroup>
38 39
@@ -46,7 +47,8 @@
46 <NuspecProperties>$(NuspecProperties);Id=$(PackageId);Version=$(PackageVersion);MajorVersion=$(SomeVerInfoMajor);NextMajorVersion=$(SomeVerInfoNextMajor);Authors=$(Authors);Configuration=$(Configuration)</NuspecProperties> 47 <NuspecProperties>$(NuspecProperties);Id=$(PackageId);Version=$(PackageVersion);MajorVersion=$(SomeVerInfoMajor);NextMajorVersion=$(SomeVerInfoNextMajor);Authors=$(Authors);Configuration=$(Configuration)</NuspecProperties>
47 <NuspecProperties>$(NuspecProperties);Copyright=$(Copyright);Description=$(Description);Title=$(Title)</NuspecProperties> 48 <NuspecProperties>$(NuspecProperties);Copyright=$(Copyright);Description=$(Description);Title=$(Title)</NuspecProperties>
48 <NuspecProperties>$(NuspecProperties);RepositoryType=$(RepositoryType);RepositoryCommit=$(RepositoryCommit);RepositoryUrl=$(RepositoryUrl)</NuspecProperties> 49 <NuspecProperties>$(NuspecProperties);RepositoryType=$(RepositoryType);RepositoryCommit=$(RepositoryCommit);RepositoryUrl=$(RepositoryUrl)</NuspecProperties>
49 <NuspecProperties>$(NuspecProperties);ProjectUrl=$(ProjectUrl);ProjectFolder=$(MSBuildProjectDirectory)</NuspecProperties> 50 <NuspecProperties>$(NuspecProperties);PackageTags=$(PackageTags)</NuspecProperties>
51 <NuspecProperties>$(NuspecProperties);ProjectUrl=$(ProjectUrl);ProjectFolder=$(MSBuildProjectDirectory);RootFolder=$(RootFolder);EulaTxt=$(PackageEulaSource);IconPng=$(PackageIconSource)</NuspecProperties>
50 </PropertyGroup> 52 </PropertyGroup>
51 </Target> 53 </Target>
52 54
@@ -97,6 +99,11 @@
97 WorkingDirectory="$(MSBuildProjectDirectory)" EchoOff="true" /> 99 WorkingDirectory="$(MSBuildProjectDirectory)" EchoOff="true" />
98 </Target> 100 </Target>
99 101
102 <Target Name="VerifyOfficialBuild" Condition=" '$(WixOfficialBuild)'=='true' ">
103 <Error Text="Official builds are only supported in the WiX Toolset repo. You are welcome to create your own builds but please do not use the official WiX Toolset name or logo."
104 Condition=" '$(RepoOrg)'!='wixtoolset' " />
105 </Target>
106
100 <Import Project="Directory$(MSBuildProjectExtension).targets" Condition=" Exists('Directory$(MSBuildProjectExtension).targets') " /> 107 <Import Project="Directory$(MSBuildProjectExtension).targets" Condition=" Exists('Directory$(MSBuildProjectExtension).targets') " />
101 <Import Project="Custom.Build.targets" Condition=" Exists('Custom.Build.targets') " /> 108 <Import Project="Custom.Build.targets" Condition=" Exists('Custom.Build.targets') " />
102</Project> 109</Project>
diff --git a/src/Directory.csproj.props b/src/Directory.csproj.props
index 57111c40..c926f263 100644
--- a/src/Directory.csproj.props
+++ b/src/Directory.csproj.props
@@ -11,6 +11,7 @@
11 </PropertyGroup> 11 </PropertyGroup>
12 12
13 <ItemGroup Condition=" '$(IsWixTestProject)'!='true' "> 13 <ItemGroup Condition=" '$(IsWixTestProject)'!='true' ">
14 <Content Include="$(MSBuildThisFileDirectory)internal\images\wix.png" PackagePath="/" /> 14 <Content Include="$(PackageEulaSource)" Pack="true" PackagePath="/" />
15 <Content Include="$(PackageIconSource)" Pack="true" PackagePath="/" />
15 </ItemGroup> 16 </ItemGroup>
16</Project> 17</Project>
diff --git a/src/Directory.csproj.targets b/src/Directory.csproj.targets
index ed041bb8..d5bfb960 100644
--- a/src/Directory.csproj.targets
+++ b/src/Directory.csproj.targets
@@ -20,16 +20,6 @@
20 <TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure> 20 <TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure>
21 </PropertyGroup> 21 </PropertyGroup>
22 22
23 <Target Name="RunWixTests" AfterTargets="Build" Condition=" '$(IsWixMSTestProject)' == 'true' AND '$(SuppressWixTests)' != 'true' ">
24 <Delete Files="$(TestResultsFolder)$(MSBuildProjectName).trx" />
25
26 <Exec
27 Command="$(TargetPath.Replace('.dll', '.exe')) --results-directory $(TestResultsFolder) --report-trx --report-trx-filename $(MSBuildProjectName).trx --no-progress --settings $([MSBuild]::GetPathOfFileAbove('wix.runsettings'))"
28 UseCommandProcessor="false"
29 CustomErrorRegularExpression=" Test method .+ threw exception:" />
30 </Target>
31
32
33 <ItemGroup Condition=" '$(IsWixTestProject)'=='true' "> 23 <ItemGroup Condition=" '$(IsWixTestProject)'=='true' ">
34 <PackageReference Include="Microsoft.NET.Test.Sdk" /> 24 <PackageReference Include="Microsoft.NET.Test.Sdk" />
35 <PackageReference Include="xunit" /> 25 <PackageReference Include="xunit" />
diff --git a/src/Directory.wixproj.targets b/src/Directory.wixproj.targets
index b36bca75..142342e9 100644
--- a/src/Directory.wixproj.targets
+++ b/src/Directory.wixproj.targets
@@ -14,7 +14,8 @@
14 SetupMajorMinorVersion=$(SomeVerInfoMajor).$(SomeVerInfoMinor); 14 SetupMajorMinorVersion=$(SomeVerInfoMajor).$(SomeVerInfoMinor);
15 SetupMajorMinorPatchVersion=$(SomeVerInfoMajor).$(SomeVerInfoMinor).$(SomeVerInfoPatch); 15 SetupMajorMinorPatchVersion=$(SomeVerInfoMajor).$(SomeVerInfoMinor).$(SomeVerInfoPatch);
16 SetupDashedMajorMinorVersion=$(SomeVerInfoMajor)-$(SomeVerInfoMinor); 16 SetupDashedMajorMinorVersion=$(SomeVerInfoMajor)-$(SomeVerInfoMinor);
17 SetupDashedPrerelease=$(PrereleaseSuffix) 17 SetupDashedPrerelease=$(PrereleaseSuffix);
18 Company=$(Company);
18 </DefineConstants> 19 </DefineConstants>
19 </PropertyGroup> 20 </PropertyGroup>
20 </Target> 21 </Target>
diff --git a/src/api/burn/WixToolset.BootstrapperApplicationApi/WixToolset.BootstrapperApplicationApi.nuspec b/src/api/burn/WixToolset.BootstrapperApplicationApi/WixToolset.BootstrapperApplicationApi.nuspec
index 8618c2f1..63acc895 100644
--- a/src/api/burn/WixToolset.BootstrapperApplicationApi/WixToolset.BootstrapperApplicationApi.nuspec
+++ b/src/api/burn/WixToolset.BootstrapperApplicationApi/WixToolset.BootstrapperApplicationApi.nuspec
@@ -6,9 +6,10 @@
6 <title>$title$</title> 6 <title>$title$</title>
7 <description>$description$</description> 7 <description>$description$</description>
8 <authors>$authors$</authors> 8 <authors>$authors$</authors>
9 <icon>wix.png</icon> 9 <icon>icon.png</icon>
10 <license type="expression">MS-RL</license> 10 <license type="file">OSMFEULA.txt</license>
11 <requireLicenseAcceptance>false</requireLicenseAcceptance> 11 <requireLicenseAcceptance>true</requireLicenseAcceptance>
12 <tags>$packageTags$</tags>
12 <copyright>$copyright$</copyright> 13 <copyright>$copyright$</copyright>
13 <projectUrl>$projectUrl$</projectUrl> 14 <projectUrl>$projectUrl$</projectUrl>
14 <repository type="$repositorytype$" url="$repositoryurl$" commit="$repositorycommit$" /> 15 <repository type="$repositorytype$" url="$repositoryurl$" commit="$repositorycommit$" />
@@ -22,7 +23,8 @@
22 </metadata> 23 </metadata>
23 24
24 <files> 25 <files>
25 <file src="$projectFolder$\..\..\..\internal\images\wix.png" /> 26 <file src="$eulaTxt$" />
27 <file src="$iconPng$" />
26 28
27 <file src="$projectFolder$\build\WixToolset.BootstrapperApplicationApi.props" target="build\" /> 29 <file src="$projectFolder$\build\WixToolset.BootstrapperApplicationApi.props" target="build\" />
28 30
diff --git a/src/api/burn/bextutil/bextutil.nuspec b/src/api/burn/bextutil/bextutil.nuspec
index fb329d24..f790e0b8 100644
--- a/src/api/burn/bextutil/bextutil.nuspec
+++ b/src/api/burn/bextutil/bextutil.nuspec
@@ -6,9 +6,10 @@
6 <title>$title$</title> 6 <title>$title$</title>
7 <description>$description$</description> 7 <description>$description$</description>
8 <authors>$authors$</authors> 8 <authors>$authors$</authors>
9 <icon>wix.png</icon> 9 <icon>icon.png</icon>
10 <license type="expression">MS-RL</license> 10 <license type="file">OSMFEULA.txt</license>
11 <requireLicenseAcceptance>false</requireLicenseAcceptance> 11 <requireLicenseAcceptance>true</requireLicenseAcceptance>
12 <tags>$packageTags$</tags>
12 <copyright>$copyright$</copyright> 13 <copyright>$copyright$</copyright>
13 <projectUrl>$projectUrl$</projectUrl> 14 <projectUrl>$projectUrl$</projectUrl>
14 <repository type="$repositorytype$" url="$repositoryurl$" commit="$repositorycommit$" /> 15 <repository type="$repositorytype$" url="$repositoryurl$" commit="$repositorycommit$" />
@@ -18,8 +19,9 @@
18 </metadata> 19 </metadata>
19 20
20 <files> 21 <files>
22 <file src="$eulaTxt$" />
23 <file src="$iconPng$" />
21 <file src="$projectFolder$\build\$id$.props" target="build\" /> 24 <file src="$projectFolder$\build\$id$.props" target="build\" />
22 <file src="$projectFolder$\..\..\..\internal\images\wix.png" />
23 <file src="$projectFolder$\inc\*" target="build\native\include" /> 25 <file src="$projectFolder$\inc\*" target="build\native\include" />
24 <file src="$projectFolder$\..\inc\BootstrapperExtensionTypes.h" target="build\native\include" /> 26 <file src="$projectFolder$\..\inc\BootstrapperExtensionTypes.h" target="build\native\include" />
25 <file src="$projectFolder$\..\inc\BootstrapperExtensionEngineTypes.h" target="build\native\include" /> 27 <file src="$projectFolder$\..\inc\BootstrapperExtensionEngineTypes.h" target="build\native\include" />
diff --git a/src/burn/stub/stub.nuspec b/src/burn/stub/stub.nuspec
index a02cfe94..e8506505 100644
--- a/src/burn/stub/stub.nuspec
+++ b/src/burn/stub/stub.nuspec
@@ -6,14 +6,16 @@
6 <title>$title$</title> 6 <title>$title$</title>
7 <description>$description$</description> 7 <description>$description$</description>
8 <authors>$authors$</authors> 8 <authors>$authors$</authors>
9 <license type="expression">MS-RL</license> 9 <license type="file">OSMFEULA.txt</license>
10 <requireLicenseAcceptance>false</requireLicenseAcceptance> 10 <requireLicenseAcceptance>true</requireLicenseAcceptance>
11 <tags>$packageTags$</tags>
11 <copyright>$copyright$</copyright> 12 <copyright>$copyright$</copyright>
12 <projectUrl>$projectUrl$</projectUrl> 13 <projectUrl>$projectUrl$</projectUrl>
13 <repository type="$repositorytype$" url="$repositoryurl$" commit="$repositorycommit$" /> 14 <repository type="$repositorytype$" url="$repositoryurl$" commit="$repositorycommit$" />
14 </metadata> 15 </metadata>
15 16
16 <files> 17 <files>
18 <file src="$eulaTxt$" />
17 <file src="$projectFolder$\$id$.props" target="buildTransitive" /> 19 <file src="$projectFolder$\$id$.props" target="buildTransitive" />
18 <file src="..\x86\burn.exe" target="tools\x86" /> 20 <file src="..\x86\burn.exe" target="tools\x86" />
19 <file src="..\x64\burn.exe" target="tools\x64" /> 21 <file src="..\x64\burn.exe" target="tools\x64" />
diff --git a/src/dtf/WixToolset.Dtf.CustomAction/WixToolset.Dtf.CustomAction.nuspec b/src/dtf/WixToolset.Dtf.CustomAction/WixToolset.Dtf.CustomAction.nuspec
index cbc53152..8eb7110f 100644
--- a/src/dtf/WixToolset.Dtf.CustomAction/WixToolset.Dtf.CustomAction.nuspec
+++ b/src/dtf/WixToolset.Dtf.CustomAction/WixToolset.Dtf.CustomAction.nuspec
@@ -6,9 +6,10 @@
6 <title>$title$</title> 6 <title>$title$</title>
7 <description>$description$</description> 7 <description>$description$</description>
8 <authors>$authors$</authors> 8 <authors>$authors$</authors>
9 <icon>wix.png</icon> 9 <icon>icon.png</icon>
10 <license type="expression">MS-RL</license> 10 <license type="file">OSMFEULA.txt</license>
11 <requireLicenseAcceptance>false</requireLicenseAcceptance> 11 <requireLicenseAcceptance>true</requireLicenseAcceptance>
12 <tags>$packageTags$ CustomActions</tags>
12 <copyright>$copyright$</copyright> 13 <copyright>$copyright$</copyright>
13 <projectUrl>$projectUrl$</projectUrl> 14 <projectUrl>$projectUrl$</projectUrl>
14 <repository type="$repositorytype$" url="$repositoryurl$" commit="$repositorycommit$" /> 15 <repository type="$repositorytype$" url="$repositoryurl$" commit="$repositorycommit$" />
@@ -18,8 +19,9 @@
18 </metadata> 19 </metadata>
19 20
20 <files> 21 <files>
22 <file src="$eulaTxt$" />
23 <file src="$iconPng$" />
21 <file src="$projectFolder$\$id$.targets" target="build" /> 24 <file src="$projectFolder$\$id$.targets" target="build" />
22 <file src="$projectFolder$\..\..\internal\images\wix.png" />
23 <file src="net472\WixToolset.Dtf.MakeSfxCA.exe" target="tools" /> 25 <file src="net472\WixToolset.Dtf.MakeSfxCA.exe" target="tools" />
24 <file src="net472\WixToolset.Dtf.MakeSfxCA.exe.config" target="tools" /> 26 <file src="net472\WixToolset.Dtf.MakeSfxCA.exe.config" target="tools" />
25 <file src="net472\WixToolset.Dtf.Compression.dll" target="tools" /> 27 <file src="net472\WixToolset.Dtf.Compression.dll" target="tools" />
diff --git a/src/ext/Bal/bal_t.proj b/src/ext/Bal/bal_t.proj
index da83b47f..bb8d44a2 100644
--- a/src/ext/Bal/bal_t.proj
+++ b/src/ext/Bal/bal_t.proj
@@ -10,7 +10,7 @@
10 <ProjectReference Include="wixstdfn\wixstdfn.vcxproj" Properties="Platform=x64" /> 10 <ProjectReference Include="wixstdfn\wixstdfn.vcxproj" Properties="Platform=x64" />
11 <ProjectReference Include="wixstdfn\wixstdfn.vcxproj" Properties="Platform=ARM64" /> 11 <ProjectReference Include="wixstdfn\wixstdfn.vcxproj" Properties="Platform=ARM64" />
12 12
13 <ProjectReference Include="test\WixToolsetTest.BootstrapperApplications\WixToolsetTest.BootstrapperApplications.csproj" Properties="Platform=x64" /> 13 <ProjectReference Include="test\WixToolsetTest.BootstrapperApplications\WixToolsetTest.BootstrapperApplications.csproj" />
14 14
15 <ProjectReference Include="wixstdfn\wixstdfn.vcxproj" Properties="NoBuild=true" Targets="PackNative" /> 15 <ProjectReference Include="wixstdfn\wixstdfn.vcxproj" Properties="NoBuild=true" Targets="PackNative" />
16 <ProjectReference Include="wixext\WixToolset.BootstrapperApplications.wixext.csproj" Properties="NoBuild=true" Targets="Pack" /> 16 <ProjectReference Include="wixext\WixToolset.BootstrapperApplications.wixext.csproj" Properties="NoBuild=true" Targets="Pack" />
@@ -18,6 +18,8 @@
18 18
19 <ProjectReference Include="test\examples\examples.proj" /> 19 <ProjectReference Include="test\examples\examples.proj" />
20 20
21 <ProjectReference Include="test\WixToolsetTest.BootstrapperApplications\WixToolsetTest.BootstrapperApplications.csproj" Targets="Test" />
22
21 <!-- 23 <!--
22 Currently there are no unskipped unit tests in this project. Should that change, 24 Currently there are no unskipped unit tests in this project. Should that change,
23 we'll need to update the native test framework or figure out something else. 25 we'll need to update the native test framework or figure out something else.
diff --git a/src/ext/Bal/wixext-backward-compatible/WixToolset.Bal.wixext.nuspec b/src/ext/Bal/wixext-backward-compatible/WixToolset.Bal.wixext.nuspec
index 7a681707..2bebad30 100644
--- a/src/ext/Bal/wixext-backward-compatible/WixToolset.Bal.wixext.nuspec
+++ b/src/ext/Bal/wixext-backward-compatible/WixToolset.Bal.wixext.nuspec
@@ -6,16 +6,18 @@
6 <title>$title$</title> 6 <title>$title$</title>
7 <description>$description$</description> 7 <description>$description$</description>
8 <authors>$authors$</authors> 8 <authors>$authors$</authors>
9 <icon>wix.png</icon> 9 <icon>icon.png</icon>
10 <license type="expression">MS-RL</license> 10 <license type="file">OSMFEULA.txt</license>
11 <requireLicenseAcceptance>false</requireLicenseAcceptance> 11 <requireLicenseAcceptance>true</requireLicenseAcceptance>
12 <tags>$packageTags$</tags>
12 <copyright>$copyright$</copyright> 13 <copyright>$copyright$</copyright>
13 <projectUrl>$projectUrl$</projectUrl> 14 <projectUrl>$projectUrl$</projectUrl>
14 <repository type="$repositorytype$" url="$repositoryurl$" commit="$repositorycommit$" /> 15 <repository type="$repositorytype$" url="$repositoryurl$" commit="$repositorycommit$" />
15 </metadata> 16 </metadata>
16 17
17 <files> 18 <files>
18 <file src="$projectFolder$\..\..\..\internal\images\wix.png" /> 19 <file src="$eulaTxt$" />
20 <file src="$iconPng$" />
19 <file src="$projectFolder$\WixToolset.Bal.wixext.targets" target="build" /> 21 <file src="$projectFolder$\WixToolset.Bal.wixext.targets" target="build" />
20 <file src="WixToolset.BootstrapperApplications.wixext.dll" target="$wixExtensionPackageFolder$" /> 22 <file src="WixToolset.BootstrapperApplications.wixext.dll" target="$wixExtensionPackageFolder$" />
21 </files> 23 </files>
diff --git a/src/ext/Bal/wixstdfn/wixstdfn.nuspec b/src/ext/Bal/wixstdfn/wixstdfn.nuspec
index f436f375..86860b67 100644
--- a/src/ext/Bal/wixstdfn/wixstdfn.nuspec
+++ b/src/ext/Bal/wixstdfn/wixstdfn.nuspec
@@ -6,9 +6,10 @@
6 <title>$title$</title> 6 <title>$title$</title>
7 <description>$description$</description> 7 <description>$description$</description>
8 <authors>$authors$</authors> 8 <authors>$authors$</authors>
9 <icon>wix.png</icon> 9 <icon>icon.png</icon>
10 <license type="expression">MS-RL</license> 10 <license type="file">OSMFEULA.txt</license>
11 <requireLicenseAcceptance>false</requireLicenseAcceptance> 11 <requireLicenseAcceptance>true</requireLicenseAcceptance>
12 <tags>$packageTags$</tags>
12 <copyright>$copyright$</copyright> 13 <copyright>$copyright$</copyright>
13 <projectUrl>$projectUrl$</projectUrl> 14 <projectUrl>$projectUrl$</projectUrl>
14 <repository type="$repositorytype$" url="$repositoryurl$" commit="$repositorycommit$" /> 15 <repository type="$repositorytype$" url="$repositoryurl$" commit="$repositorycommit$" />
@@ -22,9 +23,10 @@
22 </metadata> 23 </metadata>
23 24
24 <files> 25 <files>
26 <file src="$eulaTxt$" />
27 <file src="$iconPng$" />
25 <file src="$projectFolder$\README.md" /> 28 <file src="$projectFolder$\README.md" />
26 <file src="$projectFolder$\build\$id$.props" target="build\" /> 29 <file src="$projectFolder$\build\$id$.props" target="build\" />
27 <file src="$projectFolder$\..\..\..\internal\images\wix.png" />
28 <file src="$projectFolder$\inc\*" target="lib\native\include" /> 30 <file src="$projectFolder$\inc\*" target="lib\native\include" />
29 <file src="..\..\v143\x86\wixstdfn.lib" target="lib\native\v14\x86" /> 31 <file src="..\..\v143\x86\wixstdfn.lib" target="lib\native\v14\x86" />
30 <file src="..\..\v143\x64\wixstdfn.lib" target="lib\native\v14\x64" /> 32 <file src="..\..\v143\x64\wixstdfn.lib" target="lib\native\v14\x64" />
diff --git a/src/ext/ComPlus/complus_t.proj b/src/ext/ComPlus/complus_t.proj
index 439856b6..8f187744 100644
--- a/src/ext/ComPlus/complus_t.proj
+++ b/src/ext/ComPlus/complus_t.proj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="Microsoft.Build.Traversal"> 4<Project Sdk="Microsoft.Build.Traversal">
5 <ItemGroup> 5 <ItemGroup>
6 <ProjectReference Include="test\WixToolsetTest.ComPlus\WixToolsetTest.ComPlus.csproj" /> 6 <ProjectReference Include="test\WixToolsetTest.ComPlus\WixToolsetTest.ComPlus.csproj" Targets="Test" />
7 <ProjectReference Include="wixext\WixToolset.ComPlus.wixext.csproj" Targets="Pack" Properties="NoBuild=true" /> 7 <ProjectReference Include="wixext\WixToolset.ComPlus.wixext.csproj" Targets="Pack" Properties="NoBuild=true" />
8 </ItemGroup> 8 </ItemGroup>
9 9
diff --git a/src/ext/Dependency/dependency_t.proj b/src/ext/Dependency/dependency_t.proj
index d05b8de9..569ddd17 100644
--- a/src/ext/Dependency/dependency_t.proj
+++ b/src/ext/Dependency/dependency_t.proj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="Microsoft.Build.Traversal"> 4<Project Sdk="Microsoft.Build.Traversal">
5 <ItemGroup> 5 <ItemGroup>
6 <ProjectReference Include="test\WixToolsetTest.Dependency\WixToolsetTest.Dependency.csproj" /> 6 <ProjectReference Include="test\WixToolsetTest.Dependency\WixToolsetTest.Dependency.csproj" Targets="Test" />
7 <ProjectReference Include="wixext\WixToolset.Dependency.wixext.csproj" Targets="Pack" Properties="NoBuild=true" /> 7 <ProjectReference Include="wixext\WixToolset.Dependency.wixext.csproj" Targets="Pack" Properties="NoBuild=true" />
8 </ItemGroup> 8 </ItemGroup>
9 9
diff --git a/src/ext/DirectX/directx_t.proj b/src/ext/DirectX/directx_t.proj
index 17b147ef..f014465b 100644
--- a/src/ext/DirectX/directx_t.proj
+++ b/src/ext/DirectX/directx_t.proj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="Microsoft.Build.Traversal"> 4<Project Sdk="Microsoft.Build.Traversal">
5 <ItemGroup> 5 <ItemGroup>
6 <ProjectReference Include="test\WixToolsetTest.DirectX\WixToolsetTest.DirectX.csproj" /> 6 <ProjectReference Include="test\WixToolsetTest.DirectX\WixToolsetTest.DirectX.csproj" Targets="Test" />
7 <ProjectReference Include="wixext\WixToolset.DirectX.wixext.csproj" Targets="Pack" Properties="NoBuild=true" /> 7 <ProjectReference Include="wixext\WixToolset.DirectX.wixext.csproj" Targets="Pack" Properties="NoBuild=true" />
8 </ItemGroup> 8 </ItemGroup>
9 9
diff --git a/src/ext/Firewall/firewall_t.proj b/src/ext/Firewall/firewall_t.proj
index 67229c39..72128805 100644
--- a/src/ext/Firewall/firewall_t.proj
+++ b/src/ext/Firewall/firewall_t.proj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="Microsoft.Build.Traversal"> 4<Project Sdk="Microsoft.Build.Traversal">
5 <ItemGroup> 5 <ItemGroup>
6 <ProjectReference Include="test\WixToolsetTest.Firewall\WixToolsetTest.Firewall.csproj" /> 6 <ProjectReference Include="test\WixToolsetTest.Firewall\WixToolsetTest.Firewall.csproj" Targets="Test" />
7 <ProjectReference Include="wixext\WixToolset.Firewall.wixext.csproj" Targets="Pack" Properties="NoBuild=true" /> 7 <ProjectReference Include="wixext\WixToolset.Firewall.wixext.csproj" Targets="Pack" Properties="NoBuild=true" />
8 </ItemGroup> 8 </ItemGroup>
9 9
diff --git a/src/ext/Http/http_t.proj b/src/ext/Http/http_t.proj
index 8cd9c7d4..ddcb64b4 100644
--- a/src/ext/Http/http_t.proj
+++ b/src/ext/Http/http_t.proj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="Microsoft.Build.Traversal"> 4<Project Sdk="Microsoft.Build.Traversal">
5 <ItemGroup> 5 <ItemGroup>
6 <ProjectReference Include="test\WixToolsetTest.Http\WixToolsetTest.Http.csproj" /> 6 <ProjectReference Include="test\WixToolsetTest.Http\WixToolsetTest.Http.csproj" Targets="Test" />
7 <ProjectReference Include="wixext\WixToolset.Http.wixext.csproj" Targets="Pack" Properties="NoBuild=true" /> 7 <ProjectReference Include="wixext\WixToolset.Http.wixext.csproj" Targets="Pack" Properties="NoBuild=true" />
8 </ItemGroup> 8 </ItemGroup>
9 9
diff --git a/src/ext/Iis/iis_t.proj b/src/ext/Iis/iis_t.proj
index 84473475..2238d785 100644
--- a/src/ext/Iis/iis_t.proj
+++ b/src/ext/Iis/iis_t.proj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="Microsoft.Build.Traversal"> 4<Project Sdk="Microsoft.Build.Traversal">
5 <ItemGroup> 5 <ItemGroup>
6 <ProjectReference Include="test\WixToolsetTest.Iis\WixToolsetTest.Iis.csproj" /> 6 <ProjectReference Include="test\WixToolsetTest.Iis\WixToolsetTest.Iis.csproj" Targets="Test" />
7 <ProjectReference Include="wixext\WixToolset.Iis.wixext.csproj" Targets="Pack" Properties="NoBuild=true" /> 7 <ProjectReference Include="wixext\WixToolset.Iis.wixext.csproj" Targets="Pack" Properties="NoBuild=true" />
8 </ItemGroup> 8 </ItemGroup>
9 9
diff --git a/src/ext/Msmq/msmq_t.proj b/src/ext/Msmq/msmq_t.proj
index 73424370..9eaab92f 100644
--- a/src/ext/Msmq/msmq_t.proj
+++ b/src/ext/Msmq/msmq_t.proj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="Microsoft.Build.Traversal"> 4<Project Sdk="Microsoft.Build.Traversal">
5 <ItemGroup> 5 <ItemGroup>
6 <ProjectReference Include="test\WixToolsetTest.Msmq\WixToolsetTest.Msmq.csproj" /> 6 <ProjectReference Include="test\WixToolsetTest.Msmq\WixToolsetTest.Msmq.csproj" Targets="Test" />
7 <ProjectReference Include="wixext\WixToolset.Msmq.wixext.csproj" Targets="Pack" Properties="NoBuild=true" /> 7 <ProjectReference Include="wixext\WixToolset.Msmq.wixext.csproj" Targets="Pack" Properties="NoBuild=true" />
8 </ItemGroup> 8 </ItemGroup>
9 9
diff --git a/src/ext/NetFx/netfx_t.proj b/src/ext/NetFx/netfx_t.proj
index 3301dc8a..1c1b8a61 100644
--- a/src/ext/NetFx/netfx_t.proj
+++ b/src/ext/NetFx/netfx_t.proj
@@ -4,7 +4,7 @@
4<Project Sdk="Microsoft.Build.Traversal"> 4<Project Sdk="Microsoft.Build.Traversal">
5 <ItemGroup> 5 <ItemGroup>
6 <ProjectReference Include="wixlib\netfx.wixproj" /> 6 <ProjectReference Include="wixlib\netfx.wixproj" />
7 <ProjectReference Include="test\WixToolsetTest.Netfx\WixToolsetTest.Netfx.csproj" /> 7 <ProjectReference Include="test\WixToolsetTest.Netfx\WixToolsetTest.Netfx.csproj" Targets="Test" />
8 <ProjectReference Include="wixext\WixToolset.Netfx.wixext.csproj" Targets="Pack" Properties="NoBuild=true" /> 8 <ProjectReference Include="wixext\WixToolset.Netfx.wixext.csproj" Targets="Pack" Properties="NoBuild=true" />
9 </ItemGroup> 9 </ItemGroup>
10 10
diff --git a/src/ext/PowerShell/powershell_t.proj b/src/ext/PowerShell/powershell_t.proj
index da54d629..a1d88013 100644
--- a/src/ext/PowerShell/powershell_t.proj
+++ b/src/ext/PowerShell/powershell_t.proj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="Microsoft.Build.Traversal"> 4<Project Sdk="Microsoft.Build.Traversal">
5 <ItemGroup> 5 <ItemGroup>
6 <ProjectReference Include="test\WixToolsetTest.PowerShell\WixToolsetTest.Powershell.csproj" /> 6 <ProjectReference Include="test\WixToolsetTest.PowerShell\WixToolsetTest.Powershell.csproj" Targets="Test" />
7 <ProjectReference Include="wixext\WixToolset.PowerShell.wixext.csproj" Targets="Pack" Properties="NoBuild=true" /> 7 <ProjectReference Include="wixext\WixToolset.PowerShell.wixext.csproj" Targets="Pack" Properties="NoBuild=true" />
8 </ItemGroup> 8 </ItemGroup>
9 9
diff --git a/src/ext/Sql/sql_t.proj b/src/ext/Sql/sql_t.proj
index 97b2c8fd..92c908d2 100644
--- a/src/ext/Sql/sql_t.proj
+++ b/src/ext/Sql/sql_t.proj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="Microsoft.Build.Traversal"> 4<Project Sdk="Microsoft.Build.Traversal">
5 <ItemGroup> 5 <ItemGroup>
6 <ProjectReference Include="test\WixToolsetTest.Sql\WixToolsetTest.Sql.csproj" /> 6 <ProjectReference Include="test\WixToolsetTest.Sql\WixToolsetTest.Sql.csproj" Targets="Test" />
7 <ProjectReference Include="wixext\WixToolset.Sql.wixext.csproj" Targets="Pack" Properties="NoBuild=true" /> 7 <ProjectReference Include="wixext\WixToolset.Sql.wixext.csproj" Targets="Pack" Properties="NoBuild=true" />
8 </ItemGroup> 8 </ItemGroup>
9 9
diff --git a/src/ext/UI/ui_t.proj b/src/ext/UI/ui_t.proj
index 0a989b6f..6ac63cfe 100644
--- a/src/ext/UI/ui_t.proj
+++ b/src/ext/UI/ui_t.proj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="Microsoft.Build.Traversal"> 4<Project Sdk="Microsoft.Build.Traversal">
5 <ItemGroup> 5 <ItemGroup>
6 <ProjectReference Include="test\WixToolsetTest.UI\WixToolsetTest.UI.csproj" /> 6 <ProjectReference Include="test\WixToolsetTest.UI\WixToolsetTest.UI.csproj" Targets="Test" />
7 <ProjectReference Include="wixext\WixToolset.UI.wixext.csproj" Targets="Pack" Properties="NoBuild=true" /> 7 <ProjectReference Include="wixext\WixToolset.UI.wixext.csproj" Targets="Pack" Properties="NoBuild=true" />
8 </ItemGroup> 8 </ItemGroup>
9 9
diff --git a/src/ext/Util/util_t.proj b/src/ext/Util/util_t.proj
index e1da6adf..6ec63476 100644
--- a/src/ext/Util/util_t.proj
+++ b/src/ext/Util/util_t.proj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="Microsoft.Build.Traversal"> 4<Project Sdk="Microsoft.Build.Traversal">
5 <ItemGroup> 5 <ItemGroup>
6 <ProjectReference Include="test\WixToolsetTest.Util\WixToolsetTest.Util.csproj" /> 6 <ProjectReference Include="test\WixToolsetTest.Util\WixToolsetTest.Util.csproj" Targets="Test" />
7 <ProjectReference Include="wixext\WixToolset.Util.wixext.csproj" Targets="Pack" Properties="NoBuild=true" /> 7 <ProjectReference Include="wixext\WixToolset.Util.wixext.csproj" Targets="Pack" Properties="NoBuild=true" />
8 </ItemGroup> 8 </ItemGroup>
9 9
diff --git a/src/ext/VisualStudio/visualstudio_t.proj b/src/ext/VisualStudio/visualstudio_t.proj
index 52de8019..9b3f5b4f 100644
--- a/src/ext/VisualStudio/visualstudio_t.proj
+++ b/src/ext/VisualStudio/visualstudio_t.proj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="Microsoft.Build.Traversal"> 4<Project Sdk="Microsoft.Build.Traversal">
5 <ItemGroup> 5 <ItemGroup>
6 <ProjectReference Include="test\WixToolsetTest.VisualStudio\WixToolsetTest.VisualStudio.csproj" /> 6 <ProjectReference Include="test\WixToolsetTest.VisualStudio\WixToolsetTest.VisualStudio.csproj" Targets="Test" />
7 <ProjectReference Include="wixext\WixToolset.VisualStudio.wixext.csproj" Targets="Pack" Properties="NoBuild=true" /> 7 <ProjectReference Include="wixext\WixToolset.VisualStudio.wixext.csproj" Targets="Pack" Properties="NoBuild=true" />
8 </ItemGroup> 8 </ItemGroup>
9 9
diff --git a/src/ext/WixExt.props b/src/ext/WixExt.props
index c6afb59f..538c6b97 100644
--- a/src/ext/WixExt.props
+++ b/src/ext/WixExt.props
@@ -7,6 +7,7 @@
7 <SuppressDependenciesWhenPacking>true</SuppressDependenciesWhenPacking> 7 <SuppressDependenciesWhenPacking>true</SuppressDependenciesWhenPacking>
8 <NoWarn>NU5100</NoWarn> 8 <NoWarn>NU5100</NoWarn>
9 <WixExtensionPackageFolder>wixext6</WixExtensionPackageFolder> 9 <WixExtensionPackageFolder>wixext6</WixExtensionPackageFolder>
10 <PackageTags>$(PackageTags) wixext CustomActions</PackageTags>
10 </PropertyGroup> 11 </PropertyGroup>
11 12
12 <ItemGroup> 13 <ItemGroup>
diff --git a/src/ext/ext_t.proj b/src/ext/ext_t.proj
index e3301172..b51f3425 100644
--- a/src/ext/ext_t.proj
+++ b/src/ext/ext_t.proj
@@ -3,15 +3,9 @@
3 3
4<Project Sdk="Microsoft.Build.Traversal"> 4<Project Sdk="Microsoft.Build.Traversal">
5 <ItemGroup> 5 <ItemGroup>
6 <!-- These projects are "special." --> 6 <!-- These projects are "special" and cannot build in parallel. -->
7 <ProjectReference Include="Util\util_t.proj" BuildInParallel="false" Targets="Restore;Build" Properties="SuppressWixTests=true" /> 7 <ProjectReference Include="Util\util_t.proj" BuildInParallel="false" Targets="Restore;Build" />
8 <ProjectReference Include="Bal\bal_t.proj" BuildInParallel="false" Targets="Restore;Build" Properties="SuppressWixTests=true" /> 8 <ProjectReference Include="Bal\bal_t.proj" BuildInParallel="false" Targets="Restore;Build" />
9 <!-- <ProjectReference Include="NetFx\netfx_t.proj" BuildInParallel="false" Targets="Restore;Build" Properties="SuppressWixTests=true" /> -->
10
11 <!-- Now run tests we skipped earlier along with everything in parallel. -->
12 <ProjectReference Include="Util\util_t.proj" Targets="Build" />
13 <ProjectReference Include="Bal\bal_t.proj" Targets="Build" />
14 <!-- <ProjectReference Include="NetFx\netfx_t.proj" Targets="Build" /> -->
15 9
16 <ProjectReference Include="NetFx\netfx_t.proj" BuildInParallel="false" Targets="Restore;Build" /> 10 <ProjectReference Include="NetFx\netfx_t.proj" BuildInParallel="false" Targets="Restore;Build" />
17 <ProjectReference Include="ComPlus\complus_t.proj" Targets="Restore;Build" /> 11 <ProjectReference Include="ComPlus\complus_t.proj" Targets="Restore;Build" />
diff --git a/src/internal/SetBuildNumber/Directory.Packages.props.pp b/src/internal/SetBuildNumber/Directory.Packages.props.pp
index 8204df97..c54bcdd6 100644
--- a/src/internal/SetBuildNumber/Directory.Packages.props.pp
+++ b/src/internal/SetBuildNumber/Directory.Packages.props.pp
@@ -100,7 +100,7 @@
100 </ItemGroup> 100 </ItemGroup>
101 101
102 <ItemGroup> 102 <ItemGroup>
103 <PackageVersion Include="MSTest.TestFramework" Version="3.8.0" /> 103 <PackageVersion Include="MSTest.TestFramework" Version="3.8.3" />
104 </ItemGroup> 104 </ItemGroup>
105 105
106 <ItemGroup> 106 <ItemGroup>
diff --git a/src/internal/SetBuildNumber/global.json.pp b/src/internal/SetBuildNumber/global.json.pp
index fe48e6cc..48f4ecb3 100644
--- a/src/internal/SetBuildNumber/global.json.pp
+++ b/src/internal/SetBuildNumber/global.json.pp
@@ -1,6 +1,6 @@
1{ 1{
2 "msbuild-sdks": { 2 "msbuild-sdks": {
3 "MSTest.Sdk": "3.8.0", 3 "MSTest.Sdk": "3.8.3",
4 "Microsoft.Build.Traversal": "4.1.82", 4 "Microsoft.Build.Traversal": "4.1.82",
5 "Microsoft.Build.NoTargets": "3.5.6", 5 "Microsoft.Build.NoTargets": "3.5.6",
6 "WixToolset.Sdk": "{packageversion}" 6 "WixToolset.Sdk": "{packageversion}"
diff --git a/src/internal/images/icon.png b/src/internal/images/icon.png
new file mode 100644
index 00000000..01944a48
--- /dev/null
+++ b/src/internal/images/icon.png
Binary files differ
diff --git a/src/internal/images/wix.png b/src/internal/images/official/icon.png
index 9a92155e..9a92155e 100644
--- a/src/internal/images/wix.png
+++ b/src/internal/images/official/icon.png
Binary files differ
diff --git a/src/libs/dutil/WixToolset.DUtil/dutil.nuspec b/src/libs/dutil/WixToolset.DUtil/dutil.nuspec
index a87da122..5c4634e4 100644
--- a/src/libs/dutil/WixToolset.DUtil/dutil.nuspec
+++ b/src/libs/dutil/WixToolset.DUtil/dutil.nuspec
@@ -6,17 +6,19 @@
6 <title>$title$</title> 6 <title>$title$</title>
7 <description>$description$</description> 7 <description>$description$</description>
8 <authors>$authors$</authors> 8 <authors>$authors$</authors>
9 <icon>wix.png</icon> 9 <icon>icon.png</icon>
10 <license type="expression">MS-RL</license> 10 <license type="file">OSMFEULA.txt</license>
11 <requireLicenseAcceptance>false</requireLicenseAcceptance> 11 <requireLicenseAcceptance>true</requireLicenseAcceptance>
12 <tags>$packageTags$</tags>
12 <copyright>$copyright$</copyright> 13 <copyright>$copyright$</copyright>
13 <projectUrl>$projectUrl$</projectUrl> 14 <projectUrl>$projectUrl$</projectUrl>
14 <repository type="$repositorytype$" url="$repositoryurl$" commit="$repositorycommit$" /> 15 <repository type="$repositorytype$" url="$repositoryurl$" commit="$repositorycommit$" />
15 </metadata> 16 </metadata>
16 17
17 <files> 18 <files>
19 <file src="$eulaTxt$" />
20 <file src="$iconPng$" />
18 <file src="$projectFolder$\build\$id$.props" target="build\" /> 21 <file src="$projectFolder$\build\$id$.props" target="build\" />
19 <file src="$projectFolder$\..\..\..\internal\images\wix.png" />
20 <file src="$projectFolder$\inc\*" target="build\native\include" /> 22 <file src="$projectFolder$\inc\*" target="build\native\include" />
21 <file src="..\..\v143\x64\dutil.lib" target="build\native\v14\x64" /> 23 <file src="..\..\v143\x64\dutil.lib" target="build\native\v14\x64" />
22 <file src="..\..\v143\x86\dutil.lib" target="build\native\v14\x86" /> 24 <file src="..\..\v143\x86\dutil.lib" target="build\native\v14\x86" />
diff --git a/src/libs/dutil/test/DUtilUnitTest/DUtilUnitTest.vcxproj b/src/libs/dutil/test/DUtilUnitTest/DUtilUnitTest.vcxproj
index 94826b8f..fccb73c4 100644
--- a/src/libs/dutil/test/DUtilUnitTest/DUtilUnitTest.vcxproj
+++ b/src/libs/dutil/test/DUtilUnitTest/DUtilUnitTest.vcxproj
@@ -55,7 +55,8 @@
55 <ClCompile Include="FileUtilTest.cpp" /> 55 <ClCompile Include="FileUtilTest.cpp" />
56 <ClCompile Include="GuidUtilTest.cpp" /> 56 <ClCompile Include="GuidUtilTest.cpp" />
57 <ClCompile Include="IniUtilTest.cpp" /> 57 <ClCompile Include="IniUtilTest.cpp" />
58 <ClCompile Include="LocUtilTests.cpp" /> 58 <ClCompile Include="LocControlsUtilTests.cpp" />
59 <ClCompile Include="LocStringsUtilTests.cpp" />
59 <ClCompile Include="MemUtilTest.cpp" /> 60 <ClCompile Include="MemUtilTest.cpp" />
60 <ClCompile Include="MonUtilTest.cpp" /> 61 <ClCompile Include="MonUtilTest.cpp" />
61 <ClCompile Include="PathUtilTest.cpp" /> 62 <ClCompile Include="PathUtilTest.cpp" />
diff --git a/src/libs/dutil/test/DUtilUnitTest/LocControlsUtilTests.cpp b/src/libs/dutil/test/DUtilUnitTest/LocControlsUtilTests.cpp
new file mode 100644
index 00000000..a558c0c5
--- /dev/null
+++ b/src/libs/dutil/test/DUtilUnitTest/LocControlsUtilTests.cpp
@@ -0,0 +1,72 @@
1// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2
3#include "precomp.h"
4
5using namespace System;
6using namespace Xunit;
7using namespace WixInternal::TestSupport;
8
9namespace DutilTests
10{
11 public ref class LocControlsUtil
12 {
13 public:
14 [Fact]
15 void CanLoadControlsWxl()
16 {
17 HRESULT hr = S_OK;
18 WIX_LOCALIZATION* pLoc = NULL;
19 LOC_CONTROL* pLocControl = NULL;
20
21 DutilInitialize(&DutilTestTraceError);
22
23 try
24 {
25 hr = XmlInitialize();
26 NativeAssert::Succeeded(hr, "Failed to initialize Xml.");
27
28 pin_ptr<const wchar_t> wxlFilePath = PtrToStringChars(TestData::Get("TestData", "LocUtilTests", "controls.wxl"));
29 hr = LocLoadFromFile(wxlFilePath, &pLoc);
30 NativeAssert::Succeeded(hr, "Failed to parse controls.wxl: {0}", wxlFilePath);
31
32 Assert::Equal(3ul, pLoc->cLocControls);
33
34 hr = LocGetControl(pLoc, L"Control1", &pLocControl);
35 NativeAssert::Succeeded(hr, "Failed to get loc control 'Control1' from: {0}", wxlFilePath);
36 NativeAssert::StringEqual(L"Control1", pLocControl->wzControl);
37 NativeAssert::Equal(1, pLocControl->nX);
38 NativeAssert::Equal(2, pLocControl->nY);
39 NativeAssert::Equal(LOC_CONTROL_NOT_SET, pLocControl->nWidth);
40 NativeAssert::Equal(LOC_CONTROL_NOT_SET, pLocControl->nHeight);
41 NativeAssert::StringEqual(L"This is control #1", pLocControl->wzText);
42
43 hr = LocGetControl(pLoc, L"Control2", &pLocControl);
44 NativeAssert::Succeeded(hr, "Failed to get loc control 'Control2' from: {0}", wxlFilePath);
45 NativeAssert::StringEqual(L"Control2", pLocControl->wzControl);
46 NativeAssert::Equal(LOC_CONTROL_NOT_SET, pLocControl->nX);
47 NativeAssert::Equal(LOC_CONTROL_NOT_SET, pLocControl->nY);
48 NativeAssert::Equal(50, pLocControl->nWidth);
49 NativeAssert::Equal(LOC_CONTROL_NOT_SET, pLocControl->nHeight);
50 NativeAssert::StringEqual(L"This is control #2", pLocControl->wzText);
51
52 hr = LocGetControl(pLoc, L"Control3", &pLocControl);
53 NativeAssert::Succeeded(hr, "Failed to get loc control 'Control3' from: {0}", wxlFilePath);
54 NativeAssert::StringEqual(L"Control3", pLocControl->wzControl);
55 NativeAssert::Equal(LOC_CONTROL_NOT_SET, pLocControl->nX);
56 NativeAssert::Equal(LOC_CONTROL_NOT_SET, pLocControl->nY);
57 NativeAssert::Equal(LOC_CONTROL_NOT_SET, pLocControl->nWidth);
58 NativeAssert::Equal(150, pLocControl->nHeight);
59 NativeAssert::StringEqual(L"", pLocControl->wzText);
60 }
61 finally
62 {
63 if (pLoc)
64 {
65 LocFree(pLoc);
66 }
67
68 DutilUninitialize();
69 }
70 }
71 };
72}
diff --git a/src/libs/dutil/test/DUtilUnitTest/LocUtilTests.cpp b/src/libs/dutil/test/DUtilUnitTest/LocStringsUtilTests.cpp
index 0376a340..1bfc4bb4 100644
--- a/src/libs/dutil/test/DUtilUnitTest/LocUtilTests.cpp
+++ b/src/libs/dutil/test/DUtilUnitTest/LocStringsUtilTests.cpp
@@ -8,7 +8,7 @@ using namespace WixInternal::TestSupport;
8 8
9namespace DutilTests 9namespace DutilTests
10{ 10{
11 public ref class LocUtil 11 public ref class LocStringsUtil
12 { 12 {
13 public: 13 public:
14 [Fact] 14 [Fact]
@@ -89,63 +89,5 @@ namespace DutilTests
89 DutilUninitialize(); 89 DutilUninitialize();
90 } 90 }
91 } 91 }
92
93 [Fact]
94 void CanLoadControlsWxl()
95 {
96 HRESULT hr = S_OK;
97 WIX_LOCALIZATION* pLoc = NULL;
98 LOC_CONTROL* pLocControl = NULL;
99
100 DutilInitialize(&DutilTestTraceError);
101
102 try
103 {
104 hr = XmlInitialize();
105 NativeAssert::Succeeded(hr, "Failed to initialize Xml.");
106
107 pin_ptr<const wchar_t> wxlFilePath = PtrToStringChars(TestData::Get("TestData", "LocUtilTests", "controls.wxl"));
108 hr = LocLoadFromFile(wxlFilePath, &pLoc);
109 NativeAssert::Succeeded(hr, "Failed to parse controls.wxl: {0}", wxlFilePath);
110
111 Assert::Equal(3ul, pLoc->cLocControls);
112
113 hr = LocGetControl(pLoc, L"Control1", &pLocControl);
114 NativeAssert::Succeeded(hr, "Failed to get loc control 'Control1' from: {0}", wxlFilePath);
115 NativeAssert::StringEqual(L"Control1", pLocControl->wzControl);
116 NativeAssert::Equal(1, pLocControl->nX);
117 NativeAssert::Equal(2, pLocControl->nY);
118 NativeAssert::Equal(LOC_CONTROL_NOT_SET, pLocControl->nWidth);
119 NativeAssert::Equal(LOC_CONTROL_NOT_SET, pLocControl->nHeight);
120 NativeAssert::StringEqual(L"This is control #1", pLocControl->wzText);
121
122 hr = LocGetControl(pLoc, L"Control2", &pLocControl);
123 NativeAssert::Succeeded(hr, "Failed to get loc control 'Control2' from: {0}", wxlFilePath);
124 NativeAssert::StringEqual(L"Control2", pLocControl->wzControl);
125 NativeAssert::Equal(LOC_CONTROL_NOT_SET, pLocControl->nX);
126 NativeAssert::Equal(LOC_CONTROL_NOT_SET, pLocControl->nY);
127 NativeAssert::Equal(50, pLocControl->nWidth);
128 NativeAssert::Equal(LOC_CONTROL_NOT_SET, pLocControl->nHeight);
129 NativeAssert::StringEqual(L"This is control #2", pLocControl->wzText);
130
131 hr = LocGetControl(pLoc, L"Control3", &pLocControl);
132 NativeAssert::Succeeded(hr, "Failed to get loc control 'Control3' from: {0}", wxlFilePath);
133 NativeAssert::StringEqual(L"Control3", pLocControl->wzControl);
134 NativeAssert::Equal(LOC_CONTROL_NOT_SET, pLocControl->nX);
135 NativeAssert::Equal(LOC_CONTROL_NOT_SET, pLocControl->nY);
136 NativeAssert::Equal(LOC_CONTROL_NOT_SET, pLocControl->nWidth);
137 NativeAssert::Equal(150, pLocControl->nHeight);
138 NativeAssert::StringEqual(L"", pLocControl->wzText);
139 }
140 finally
141 {
142 if (pLoc)
143 {
144 LocFree(pLoc);
145 }
146
147 DutilUninitialize();
148 }
149 }
150 }; 92 };
151} 93}
diff --git a/src/libs/wcautil/WixToolset.WcaUtil/wcautil.nuspec b/src/libs/wcautil/WixToolset.WcaUtil/wcautil.nuspec
index 704dedc2..827a946d 100644
--- a/src/libs/wcautil/WixToolset.WcaUtil/wcautil.nuspec
+++ b/src/libs/wcautil/WixToolset.WcaUtil/wcautil.nuspec
@@ -6,9 +6,10 @@
6 <title>$title$</title> 6 <title>$title$</title>
7 <description>$description$</description> 7 <description>$description$</description>
8 <authors>$authors$</authors> 8 <authors>$authors$</authors>
9 <icon>wix.png</icon> 9 <icon>icon.png</icon>
10 <license type="expression">MS-RL</license> 10 <license type="file">OSMFEULA.txt</license>
11 <requireLicenseAcceptance>false</requireLicenseAcceptance> 11 <requireLicenseAcceptance>true</requireLicenseAcceptance>
12 <tags>$packageTags$</tags>
12 <copyright>$copyright$</copyright> 13 <copyright>$copyright$</copyright>
13 <projectUrl>$projectUrl$</projectUrl> 14 <projectUrl>$projectUrl$</projectUrl>
14 <repository type="$repositorytype$" url="$repositoryurl$" commit="$repositorycommit$" /> 15 <repository type="$repositorytype$" url="$repositoryurl$" commit="$repositorycommit$" />
@@ -18,8 +19,9 @@
18 </metadata> 19 </metadata>
19 20
20 <files> 21 <files>
22 <file src="$eulaTxt$" />
23 <file src="$iconPng$" />
21 <file src="$projectFolder$\build\$id$.props" target="build\" /> 24 <file src="$projectFolder$\build\$id$.props" target="build\" />
22 <file src="$projectFolder$\..\..\..\internal\images\wix.png" />
23 <file src="$projectFolder$\inc\*" target="build\native\include" /> 25 <file src="$projectFolder$\inc\*" target="build\native\include" />
24 <file src="..\..\v143\x64\wcautil.lib" target="build\native\v14\x64" /> 26 <file src="..\..\v143\x64\wcautil.lib" target="build\native\v14\x64" />
25 <file src="..\..\v143\x86\wcautil.lib" target="build\native\v14\x86" /> 27 <file src="..\..\v143\x86\wcautil.lib" target="build\native\v14\x86" />
diff --git a/src/setup/OSMFEULA.rtf b/src/setup/OSMFEULA.rtf
new file mode 100644
index 00000000..e988b435
--- /dev/null
+++ b/src/setup/OSMFEULA.rtf
@@ -0,0 +1,258 @@
1{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff0\deff0\stshfdbch0\stshfloch31506\stshfhich31506\stshfbi31506\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f2\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}
2{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\f45\fbidi \fmodern\fcharset0\fprq1{\*\panose 00000000000000000000}Consolas;}
3{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
4{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;}{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
5{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
6{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f46\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
7{\f47\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\f49\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f50\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f51\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
8{\f52\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f53\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f54\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f66\fbidi \fmodern\fcharset238\fprq1 Courier New CE;}
9{\f67\fbidi \fmodern\fcharset204\fprq1 Courier New Cyr;}{\f69\fbidi \fmodern\fcharset161\fprq1 Courier New Greek;}{\f70\fbidi \fmodern\fcharset162\fprq1 Courier New Tur;}{\f71\fbidi \fmodern\fcharset177\fprq1 Courier New (Hebrew);}
10{\f72\fbidi \fmodern\fcharset178\fprq1 Courier New (Arabic);}{\f73\fbidi \fmodern\fcharset186\fprq1 Courier New Baltic;}{\f74\fbidi \fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f386\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}
11{\f387\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;}{\f389\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f390\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f393\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}
12{\f394\fbidi \froman\fcharset163\fprq2 Cambria Math (Vietnamese);}{\f416\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\f417\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\f419\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}
13{\f420\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f421\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\f422\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);}{\f423\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}
14{\f424\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\f496\fbidi \fmodern\fcharset238\fprq1 Consolas CE;}{\f497\fbidi \fmodern\fcharset204\fprq1 Consolas Cyr;}{\f499\fbidi \fmodern\fcharset161\fprq1 Consolas Greek;}
15{\f500\fbidi \fmodern\fcharset162\fprq1 Consolas Tur;}{\f503\fbidi \fmodern\fcharset186\fprq1 Consolas Baltic;}{\f504\fbidi \fmodern\fcharset163\fprq1 Consolas (Vietnamese);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
16{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
17{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
18{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
19{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
20{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
21{\fhimajor\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;}{\fhimajor\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;}{\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;}
22{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;}{\fhimajor\f31533\fbidi \fswiss\fcharset177\fprq2 Calibri Light (Hebrew);}{\fhimajor\f31534\fbidi \fswiss\fcharset178\fprq2 Calibri Light (Arabic);}
23{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;}{\fhimajor\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}
24{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}
25{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}
26{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
27{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
28{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}
29{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}
30{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}
31{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}
32{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}
33{\fhiminor\f31573\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\fhiminor\f31574\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}
34{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}
35{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}
36{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}}
37{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;
38\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;\red0\green0\blue0;\red0\green0\blue0;}{\*\defchp \f31506\fs22 }{\*\defpap \ql \li0\ri0\sa160\sl259\slmult1
39\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
40\f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\*
41\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa160\sl259\slmult1
42\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31506\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused Normal Table;}{
43\s15\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs21\alang1025 \ltrch\fcs0 \f45\fs21\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext15 \slink16 \sunhideused \styrsid10238504
44Plain Text;}{\*\cs16 \additive \rtlch\fcs1 \af0\afs21 \ltrch\fcs0 \f45\fs21 \sbasedon10 \slink15 \slocked \styrsid10238504 Plain Text Char;}}{\*\rsidtbl \rsid8468552\rsid10238504\rsid10488425\rsid14299409\rsid15219288}{\mmathPr\mmathFont34\mbrkBin0
45\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\author word}{\operator Rob Mensching}{\creatim\yr2025\mo3\dy19\hr21\min58}{\revtim\yr2025\mo3\dy19\hr14}{\version3}{\edmins1}{\nofpages2}
46{\nofwords501}{\nofchars2861}{\nofcharsws3356}{\vern115}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1501\margr1502\margt1440\margb1440\gutter0\ltrsect
47\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1\noxlattoyen
48\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1501\dgvorigin1440\dghshow1\dgvshow1
49\jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct
50\asianbrkrule\rsidroot14299409\newtblstyruls\nogrowautofit\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0
51{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\endnhere\sectlinegrid360\sectdefaultcl\sectrsid10238504\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2
52\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6
53\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang
54{\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\s15\ql \li0\ri0\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid10238504 \rtlch\fcs1 \af0\afs21\alang1025 \ltrch\fcs0 \f45\fs21\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {
55\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504 End User License Agreement
56\par
57\par This Open Source Maintenance Fee Agreement ("Agreement") is a legal agreement}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504
58between you ("User") and WiX Toolset ("Project") for the use of the}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504
59WiX Toolset ("Software"), an open source software project licensed under}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504
60the Microsoft Reciprocal License ("OSI License"), an OSI-approved open source license.}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504
61Project offers a Binary Release of the Software to Users in exchange for a}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504
62maintenance fee ("Fee"). "Binary Release" refers to pre-compiled executable}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504
63versions of the Software provided by Project. By accessing or using the}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504
64Binary Release, User agrees to be bound by the terms of this Agreement.
65\par
66\par 1. Applicability
67\par
68\par Project agrees to provide User with the Binary Release in exchange for the}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504
69Fees outlined in Section 2, subject to the terms of this Agreement. The Fee}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504 applies only to Users that generate revenue by the Software.
70}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504 Non-revenue-generating use of the Software is exempt from this Fee. In}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{
71\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504 addition, Users who pay separate support and/or maintenance fees to the}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0
72\f2\insrsid10488425\charrsid10238504 maintainers of the Software are exempt from the Fee outlined in this}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504
73Agreement. This distinction ensures that duplicate fees are not imposed,}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504
74promoting fairness and consistency while respecting alternative support}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504 arrangements.
75\par
76\par 2. Monthly Fee and Payment Terms
77\par
78\par Revenue-generating Users required to pay the Fee shall follow the payment}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504
79terms set forth by the Project. Failure to comply with these terms may result}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504
80in suspending access to the Binary Release. However, this does not restrict}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504
81the User from obtaining or redistributing binaries from other sources or}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504 self-compiling them.
82\par
83\par 3. Nature of the Fee
84\par
85\par The Fee is not a license fee. The Software's source code is licensed to User}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504
86under the OSI License and remains freely distributable under the terms of the}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504 OSI License and any applicable open-source licenses.
87
88\par
89\par 4. Conflicts with OSI License
90\par
91\par To the extent any term of this Agreement conflicts with User's rights
92\par under the OSI License regarding the Software, the OSI License shall govern.}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504
93This Agreement applies only to the Binary Release and does not limit User's}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504
94ability to access, modify, or distribute the Software's source code or}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504
95self-compiled binaries. User may independently compile binaries from the}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504
96Software's source code without this Agreement, subject to OSI License terms.}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504
97User may redistribute the Binary Release received under this Agreement,}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504
98provided such redistribution complies with the OSI License (e.g., including}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504
99copyright and permission notices). This Agreement imposes no additional}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504 restrictions on such rights.
100\par
101\par 5. Disclaimer of Warranty and Limitation of Liability
102\par
103\par THE SOFTWARE AND BINARY RELEASE ARE PROVIDED BY THE PROJECT "AS IS" AND ANY}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504
104EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504
105WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504
106DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504
107ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504
108DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504
109SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504 CAUSED AND ON ANY THEORY OF LI
110ABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE}{
111\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504 OF THE SOFTWARE AND BINARY RELEASE, EVEN IF ADVISED OF THE POSSIBILITY OF}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid15219288 }{
112\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10488425\charrsid10238504 SUCH DAMAGE.}{\rtlch\fcs1 \af2 \ltrch\fcs0 \f2\insrsid10238504
113\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a
1149cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad
1155689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6
116b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0
1170c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6
118a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f
119c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512
1200f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462
121a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865
1226d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b
1234b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b
1244757e8d3f729e245eb2b260a0238fd010000ffff0300504b03041400060008000000210007b740aaca0600008f1a0000160000007468656d652f7468656d652f
1257468656d65312e786d6cec595b8bdb46147e2ff43f08bd3bbe49be2cf1065bb69336bb49889d943cceda636bb2238dd18c776342a0244f7d2914d2d28706fad6
12687521a68a0a12ffd310b1bdaf447f4cc489667ec71f6420aa1640d8b34face996fce39face48ba7aed51449d239c70c2e2965bbe52721d1c8fd898c4d3967b6f
127d82f345c870b148f1165316eb90bccdd6bbb9f7e7215ed881047d801fb98efa0961b0a31db2916f9088611bfc26638866b13964448c069322d8e13740c7e235a
128ac944ab5628448ec3a318ac0ededc9848cb033942edddda5f31e85d358703930a2c940bac68685c28e0fcb12c1173ca089738468cb8579c6ec78881f09d7a188
1290bb8d0724beacf2dee5e2da29dcc888a2db69a5d5ffd657699c1f8b0a2e64ca607f9a49ee77bb576ee5f01a8d8c4f5eabd5aaf96fb5300341ac14a532eba4fbf
130d3ec74fd0cab81d2438bef6ebd5b2d1b78cd7f758373db973f03af40a97f6f03dfef07104503af4029dedfc07b5ebd1278065e81527c6d035f2fb5bb5eddc02b
1315048497cb8812ef9b56ab05c6d0e99307ac30a6ffa5ebf5ec99caf50500d7975c929262c16db6a2d420f59d2078004522448ec88c50c4fd008aa3840941c24c4
132d923d3100a6f8662c661b85429f54b55f82f7f9e3a5211413b1869d6921730e11b43928fc34709998996fb39787535c8e9ebd7274f5f9d3cfdfde4d9b393a7bf
13366732b5786dd0d144f75bbb73f7df3cf8b2f9dbf7ffbf1edf36fd3a9d7f15cc7bff9e5ab377ffcf92ef7b0e255284ebf7bf9e6d5cbd3efbffeebe7e716efed04
1341de8f0218930776ee163e72e8b608116fef820b998c5304444b768c7538e622467b1f8ef89d040df5a208a2cb80e36e3783f01a9b101afcf1f1a8407613217c4
135e2f1661819c07dc6688725d628dc947369611ecee3a97df264aee3ee2274649b3b40b191e5de7c061a4b6c2e83101b34ef50140b34c531168ebcc60e31b6acee
1360121465cf7c928619c4d84f380381d44ac21199203a39a56463748047959d80842be8dd8ecdf773a8cda56ddc5472612ee0d442de487981a61bc8ee602453697
1374314513de07b48843692834532d2713d2e20d3534c99d31b63ce6d36b71358af96f49b2033f6b4efd345642213410e6d3ef710633ab2cb0e831045331b7640e2
13850c77ec60fa144917387091b7c9f9977883c873ca0786bbaef136ca4fb6c35b8070aab535a1588bc324f2cb9bc8e9951bf83059d20aca4061a80a1eb1189cf14
139f93579f7ff3b7907113dfde1856545ef47d2ed8e8d7c5c50ccdb09b1de4d37d6247c1b6e5db803968cc987afdb5d348fef60b855369bd747d9fe28dbeeff5eb6
140b7ddcfef5fac57fa0cd22db7ade9765d6ddea3ad7bf709a174201614ef71b57de7d095c67d189476eab915e7cf72b3100ee59d0c1318b86982948d9330f10511
141e1204433d8e3975de964ca33d753eecc1887adbf1ab6fa96783a8ff6d9387d642d97e5e3692a1e1c89d578c9cfc7e17143a4e85a7df51896bb576ca7ea717949
14240da5e8484369949a26a21515f0eca20a98773089a85845ad97b61d1b4b06848f7cb546db0006a795660dbe4c066abe5fa1e9880113c55218ac7324f69aa97d9
14355c97c9f99de164ca302600fb1ac8055a69b92ebd6e5c9d5a5a5768e4c1b24b4723349a8c8a81ec64334c65975cad1f3d0b868ae9bab941af46428d47c505a2b
1441af5c6bb585c36d760b7ae0d34d69582c6ce71cbad557d2899119ab5dc093cfac3613483dae172bb8be814de9f8d4492def097519659c24517f1300db8129d54
1450d222270e25012b55cb9fc3c0d34561aa2b8952b20081f2cb926c8ca87460e926e26194f267824f4b46b2332d2e929287caa15d6abcafcf26069c9e690ee4138
1463e760ee83cb98ba0c4fc7a5906704c38bc012aa7d11c1378a5990bd9aafed61a5326bbfa3b455543e938a2b310651d4517f314aea43ca7a3cef2186867d99a21
147a05a48b2467830950d560faad14df3ae9172d8da75cf369291d34473d5330d55915dd3ae62c60ccb36b016cbcb35798dd532c4a0697a874fa57b5d729b4bad5b
148db27e45d02029ec7cfd275cfd110346aabc90c6a92f1a60c4bcdce46cddeb15ce019d4ced32434d5af2dddaec52def11d6e960f0529d1fecd6ab168626cb7da5
1498ab4faf6a17f9e60070f413cbaf022784e0557a9848f0f09820dd140ed4952d9805be491c86e0d3872e60969b98f4b7edb0b2a7e502835fc5ec1ab7aa542c36f
150570b6ddfaf967b7eb9d4ed549e4063116154f6d3ef2e7d780d4517d9d71735bef105265abe69bb32625191a92f2c45455c7d812957b67f81710888cee35aa5df
151ac363bb542b3daee17bc6ea7516806b54ea15b0beadd7e37f01bcdfe13d7395260af5d0dbc5aaf51a89583a0e0d54a927ea359a87b954adbabb71b3daffd24db
152c6c0ca53f9c86201e155bc76ff050000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f7468656d652f5f72
153656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c08
1542e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e3198720e274a939cd0
1558a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa
1564c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c0200001300000000000000000000000000000000005b436f
1576e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000000000300100005f72
158656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c00000000000000000000000000190200007468656d652f746865
1596d652f7468656d654d616e616765722e786d6c504b01022d001400060008000000210007b740aaca0600008f1a00001600000000000000000000000000d60200
160007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b01000027000000000000000000000000
16100d40900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000cf0a00000000}
162{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d
163617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169
1646e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363
165656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e}
166{\*\latentstyles\lsdstimax376\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1;
167\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4;
168\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;
169\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 1;
170\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 5;
171\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 9;
172\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3;
173\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6;
174\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Indent;
175\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 header;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footer;
176\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index heading;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of figures;
177\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope return;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation reference;
178\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 line number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 page number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote text;
179\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of authorities;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 macro;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 toa heading;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List;
180\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 3;
181\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 3;
182\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 3;
183\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Closing;
184\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Signature;\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent;
185\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 4;
186\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Message Header;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation;
187\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Note Heading;
188\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 3;
189\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Block Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 FollowedHyperlink;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;
190\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Document Map;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Plain Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 E-mail Signature;
191\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Top of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Bottom of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web);\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Acronym;
192\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Definition;
193\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Keyboard;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Preformatted;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Typewriter;
194\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1;
195\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid;
196\lsdsemihidden1 \lsdlocked0 Placeholder Text;\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid;
197\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2;\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2;
198\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List;\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1;
199\lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;
200\lsdsemihidden1 \lsdlocked0 Revision;\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;
201\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;
202\lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2;
203\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;
204\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;
205\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3;
206\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;
207\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;
208\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4;
209\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;
210\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;
211\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdpriority62 \lsdlocked0 Light Grid Accent 5;
212\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5;
213\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;
214\lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6;
215\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;
216\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;
217\lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis;
218\lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 \lsdlocked0 Bibliography;
219\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4;
220\lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4;
221\lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1;
222\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1;
223\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2;
224\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2;
225\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3;
226\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4;
227\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4;
228\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5;
229\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5;
230\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6;
231\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6;
232\lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark;
233\lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1;
234\lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1;
235\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2;
236\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3;
237\lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3;
238\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4;
239\lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4;
240\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5;
241\lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5;
242\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6;
243\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Mention;
244\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Smart Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hashtag;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Unresolved Mention;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Smart Link;}}{\*\datastore 01050000
24502000000180000004d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000
246d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
247ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
248ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
249ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
250fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
251ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
252ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
253ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
254ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e50000000000000000000000007006
255defa1199db01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000
25600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000
257000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000
2580000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file
diff --git a/src/setup/ThmViewerPackage/ThmViewerPackage.wxs b/src/setup/ThmViewerPackage/ThmViewerPackage.wxs
index 66bbe766..0851450e 100644
--- a/src/setup/ThmViewerPackage/ThmViewerPackage.wxs
+++ b/src/setup/ThmViewerPackage/ThmViewerPackage.wxs
@@ -1,6 +1,6 @@
1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. --> 1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Package Id="WixToolset.ThemeViewer.Package" Name="WiX Toolset Theme Viewer" Manufacturer="WiX Toolset" Language="1033" Version="!(bind.fileVersion.ThmViewerFile)"> 3 <Package Id="WixToolset.ThemeViewer.Package" Name="WiX Toolset Theme Viewer" Manufacturer="$(Company)" Language="1033" Version="!(bind.fileVersion.ThmViewerFile)">
4 <Component> 4 <Component>
5 <File Id="ThmViewerFile" Source="thmviewer.exe" /> 5 <File Id="ThmViewerFile" Source="thmviewer.exe" />
6 <Shortcut Name="!(bind.property.ProductName)" Directory="ShortcutFolder" Advertise="yes" /> 6 <Shortcut Name="!(bind.property.ProductName)" Directory="ShortcutFolder" Advertise="yes" />
diff --git a/src/setup/WixAdditionalTools/WixAdditionalTools.wxl b/src/setup/WixAdditionalTools/WixAdditionalTools.wxl
index 5085b5dd..9c1264a2 100644
--- a/src/setup/WixAdditionalTools/WixAdditionalTools.wxl
+++ b/src/setup/WixAdditionalTools/WixAdditionalTools.wxl
@@ -6,7 +6,6 @@
6 <String Id="Name" Overridable="yes" Value="WiX Toolset Additional Tools" /> 6 <String Id="Name" Overridable="yes" Value="WiX Toolset Additional Tools" />
7 <String Id="Regid" Overridable="yes" Value="wixtoolset.org" /> 7 <String Id="Regid" Overridable="yes" Value="wixtoolset.org" />
8 <String Id="AboutUrl" Overridable="yes" Value="https://wixtoolset.org/" /> 8 <String Id="AboutUrl" Overridable="yes" Value="https://wixtoolset.org/" />
9 <String Id="LicenseUrl" Overridable="yes" Value="https://wixtoolset.org/about/license/" />
10 <String Id="SupportUrl" Overridable="yes" Value="https://wixtoolset.org/docs/gethelp/" /> 9 <String Id="SupportUrl" Overridable="yes" Value="https://wixtoolset.org/docs/gethelp/" />
11 <String Id="UpdateUrl" Overridable="yes" Value="https://wixtoolset.org/releases/feeds/wix-additional-tools-$(SetupDashedMajorMinorVersion)$(SetupDashedPrerelease).feed" /> 10 <String Id="UpdateUrl" Overridable="yes" Value="https://wixtoolset.org/releases/feeds/wix-additional-tools-$(SetupDashedMajorMinorVersion)$(SetupDashedPrerelease).feed" />
12</WixLocalization> 11</WixLocalization>
diff --git a/src/setup/WixAdditionalTools/WixAdditionalTools.wxs b/src/setup/WixAdditionalTools/WixAdditionalTools.wxs
index 9369f32e..08dc90fe 100644
--- a/src/setup/WixAdditionalTools/WixAdditionalTools.wxs
+++ b/src/setup/WixAdditionalTools/WixAdditionalTools.wxs
@@ -2,12 +2,12 @@
2 2
3<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" 3<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
4 xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal"> 4 xmlns:bal="http://wixtoolset.org/schemas/v4/wxs/bal">
5 <Bundle Id="WixToolset.WixAdditionalTools" Name="!(loc.Name)" Manufacturer="WiX Toolset" Version="$(SetupVersion)" 5 <Bundle Id="WixToolset.WixAdditionalTools" Name="!(loc.Name)" Manufacturer="$(Company)" Version="$(SetupVersion)"
6 AboutUrl="!(loc.AboutUrl)" HelpUrl="!(loc.SupportUrl)" UpdateUrl="!(loc.UpdateUrl)"> 6 AboutUrl="!(loc.AboutUrl)" HelpUrl="!(loc.SupportUrl)" UpdateUrl="!(loc.UpdateUrl)">
7 <BootstrapperApplication> 7 <BootstrapperApplication>
8 <bal:WixStandardBootstrapperApplication 8 <bal:WixStandardBootstrapperApplication
9 LicenseUrl="!(loc.LicenseUrl)" 9 LicenseFile="..\OSMFEULA.rtf"
10 Theme="hyperlinkLicense" 10 Theme="rtfLicense"
11 ShowVersion="true" 11 ShowVersion="true"
12 LogoFile="wix-logo-sq.png" /> 12 LogoFile="wix-logo-sq.png" />
13 </BootstrapperApplication> 13 </BootstrapperApplication>
diff --git a/src/setup/wix-cli/Package.wxs b/src/setup/wix-cli/Package.wxs
index c777f356..897a1e5a 100644
--- a/src/setup/wix-cli/Package.wxs
+++ b/src/setup/wix-cli/Package.wxs
@@ -1,6 +1,7 @@
1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. --> 1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
3 <Package Id="WixToolset.CommandLineTools.Package" Name="WiX Toolset Command-Line Tools" Manufacturer="WiX Toolset" Version="!(bind.fileVersion.WixExe)"> 3 xmlns:ui="http://wixtoolset.org/schemas/v4/wxs/ui">
4 <Package Id="WixToolset.CommandLineTools$(SetupMajorVersion).Package" Name="WiX Toolset Command-Line Tools" Manufacturer="$(Company)" Version="!(bind.fileVersion.WixExe)">
4 <MediaTemplate EmbedCab="yes" /> 5 <MediaTemplate EmbedCab="yes" />
5 6
6 <ComponentGroupRef Id="BinaryFiles" /> 7 <ComponentGroupRef Id="BinaryFiles" />
@@ -9,6 +10,9 @@
9 <Property Id="ARPURLINFOABOUT" Value="https://wixtoolset.org/" /> 10 <Property Id="ARPURLINFOABOUT" Value="https://wixtoolset.org/" />
10 <Property Id="ARPHELPLINK" Value="https://wixtoolset.org/docs/gethelp/" /> 11 <Property Id="ARPHELPLINK" Value="https://wixtoolset.org/docs/gethelp/" />
11 <SetProperty Id="ARPINSTALLLOCATION" Value="[INSTALLFOLDER]" After="CostFinalize" /> 12 <SetProperty Id="ARPINSTALLLOCATION" Value="[INSTALLFOLDER]" After="CostFinalize" />
13
14 <ui:WixUI Id="WixUI_Minimal" />
15 <WixVariable Id="WixUILicenseRtf" Value="..\OSMFEULA.rtf" />
12 </Package> 16 </Package>
13 17
14 <Fragment> 18 <Fragment>
diff --git a/src/setup/wix-cli/wix-cli.wixproj b/src/setup/wix-cli/wix-cli.wixproj
index 35457460..5a5e2a93 100644
--- a/src/setup/wix-cli/wix-cli.wixproj
+++ b/src/setup/wix-cli/wix-cli.wixproj
@@ -28,6 +28,10 @@
28 <BindPath Include="$(RootBuildFolder)VisualStudio.wixext\$(Configuration)\netstandard2.0\" /> 28 <BindPath Include="$(RootBuildFolder)VisualStudio.wixext\$(Configuration)\netstandard2.0\" />
29 </ItemGroup> 29 </ItemGroup>
30 30
31 <ItemGroup>
32 <PackageReference Include="WixToolset.UI.wixext" />
33 </ItemGroup>
34
31 <UsingTask TaskName="GenerateMetadata" AssemblyFile="$(BaseOutputPath)$(Configuration)\net472\MetadataTask.dll" /> 35 <UsingTask TaskName="GenerateMetadata" AssemblyFile="$(BaseOutputPath)$(Configuration)\net472\MetadataTask.dll" />
32 36
33 <Target Name="GenerateMetadata" AfterTargets="AfterBuild"> 37 <Target Name="GenerateMetadata" AfterTargets="AfterBuild">
diff --git a/src/tools/WixToolset.Heat/WixToolset.Heat.nuspec b/src/tools/WixToolset.Heat/WixToolset.Heat.nuspec
index d3ee59f7..48e94797 100644
--- a/src/tools/WixToolset.Heat/WixToolset.Heat.nuspec
+++ b/src/tools/WixToolset.Heat/WixToolset.Heat.nuspec
@@ -6,17 +6,19 @@
6 <title>$title$</title> 6 <title>$title$</title>
7 <description>$description$</description> 7 <description>$description$</description>
8 <authors>$authors$</authors> 8 <authors>$authors$</authors>
9 <icon>wix.png</icon> 9 <icon>icon.png</icon>
10 <license type="expression">MS-RL</license> 10 <license type="file">OSMFEULA.txt</license>
11 <requireLicenseAcceptance>false</requireLicenseAcceptance> 11 <requireLicenseAcceptance>true</requireLicenseAcceptance>
12 <tags>$packageTags$</tags>
12 <copyright>$copyright$</copyright> 13 <copyright>$copyright$</copyright>
13 <projectUrl>$projectUrl$</projectUrl> 14 <projectUrl>$projectUrl$</projectUrl>
14 <repository type="$repositorytype$" url="$repositoryurl$" commit="$repositorycommit$" /> 15 <repository type="$repositorytype$" url="$repositoryurl$" commit="$repositorycommit$" />
15 </metadata> 16 </metadata>
16 17
17 <files> 18 <files>
19 <file src="$eulaTxt$" />
20 <file src="$iconPng$" />
18 <file src="$projectFolder$\$id$.targets" target="build" /> 21 <file src="$projectFolder$\$id$.targets" target="build" />
19 <file src="$projectFolder$\..\..\internal\images\wix.png" />
20 <file src="tools\**\*" target="tools" /> 22 <file src="tools\**\*" target="tools" />
21 </files> 23 </files>
22</package> 24</package>
diff --git a/src/tools/tools_t.proj b/src/tools/tools_t.proj
index 60685ef1..96a0cf2a 100644
--- a/src/tools/tools_t.proj
+++ b/src/tools/tools_t.proj
@@ -12,8 +12,8 @@
12 <!-- <ProjectReference Include="heat\heat.csproj" /> 12 <!-- <ProjectReference Include="heat\heat.csproj" />
13 <ProjectReference Include="WixToolset.HeatTasks\WixToolset.HeatTasks.csproj" /> --> 13 <ProjectReference Include="WixToolset.HeatTasks\WixToolset.HeatTasks.csproj" /> -->
14 14
15 <ProjectReference Include="test\WixToolsetTest.HeatTasks\WixToolsetTest.HeatTasks.csproj" /> 15 <ProjectReference Include="test\WixToolsetTest.HeatTasks\WixToolsetTest.HeatTasks.csproj" Targets="Test" />
16 <ProjectReference Include="test\WixToolsetTest.Heat\WixToolsetTest.Heat.csproj" /> 16 <ProjectReference Include="test\WixToolsetTest.Heat\WixToolsetTest.Heat.csproj" Targets="Test" />
17 17
18 <ProjectReference Include="WixToolset.Heat\WixToolset.Heat.csproj" Targets="Pack" /> 18 <ProjectReference Include="WixToolset.Heat\WixToolset.Heat.csproj" Targets="Pack" />
19 </ItemGroup> 19 </ItemGroup>
diff --git a/src/wix/WixToolset.Converters/ConvertCommand.cs b/src/wix/WixToolset.Converters/ConvertCommand.cs
index 6f0f5cd3..ca1b5f86 100644
--- a/src/wix/WixToolset.Converters/ConvertCommand.cs
+++ b/src/wix/WixToolset.Converters/ConvertCommand.cs
@@ -36,7 +36,7 @@ namespace WixToolset.Converters
36 { 36 {
37 this.ParseSettings(SettingsFileDefault); 37 this.ParseSettings(SettingsFileDefault);
38 38
39 var converter = new WixConverter(this.Messaging, this.IndentationAmount, this.ErrorsAsWarnings, this.IgnoreErrors); 39 var converter = new WixConverter(this.Messaging, this.IndentationAmount, this.ErrorsAsWarnings, this.IgnoreErrors, this.CustomTableSetting);
40 40
41 var errors = base.Inspect(Inspector, cancellationToken); 41 var errors = base.Inspect(Inspector, cancellationToken);
42 42
diff --git a/src/wix/WixToolset.Core.Native/WixToolset.Core.Native.nuspec b/src/wix/WixToolset.Core.Native/WixToolset.Core.Native.nuspec
index e4a32d2c..b5421c1a 100644
--- a/src/wix/WixToolset.Core.Native/WixToolset.Core.Native.nuspec
+++ b/src/wix/WixToolset.Core.Native/WixToolset.Core.Native.nuspec
@@ -6,8 +6,9 @@
6 <title>$title$</title> 6 <title>$title$</title>
7 <description>$description$</description> 7 <description>$description$</description>
8 <authors>$authors$</authors> 8 <authors>$authors$</authors>
9 <license type="expression">MS-RL</license> 9 <license type="file">OSMFEULA.txt</license>
10 <requireLicenseAcceptance>false</requireLicenseAcceptance> 10 <requireLicenseAcceptance>true</requireLicenseAcceptance>
11 <tags>$packageTags$</tags>
11 <copyright>$copyright$</copyright> 12 <copyright>$copyright$</copyright>
12 <projectUrl>$projectUrl$</projectUrl> 13 <projectUrl>$projectUrl$</projectUrl>
13 <repository type="$repositorytype$" url="$repositoryurl$" commit="$repositorycommit$" /> 14 <repository type="$repositorytype$" url="$repositoryurl$" commit="$repositorycommit$" />
@@ -17,6 +18,7 @@
17 </metadata> 18 </metadata>
18 19
19 <files> 20 <files>
21 <file src="$eulaTxt$" />
20 <file src="$id$.dll" target="lib\netstandard2.0" /> 22 <file src="$id$.dll" target="lib\netstandard2.0" />
21 <file src="$id$.xml" target="lib\netstandard2.0" /> 23 <file src="$id$.xml" target="lib\netstandard2.0" />
22 24
diff --git a/src/wix/WixToolset.Core/HarvestFilesCommand.cs b/src/wix/WixToolset.Core/HarvestFilesCommand.cs
index ed78e808..25698ece 100644
--- a/src/wix/WixToolset.Core/HarvestFilesCommand.cs
+++ b/src/wix/WixToolset.Core/HarvestFilesCommand.cs
@@ -135,33 +135,32 @@ namespace WixToolset.Core
135 135
136 var files = new List<WildcardFile>(); 136 var files = new List<WildcardFile>();
137 137
138 try 138 foreach (var pattern in patterns)
139 { 139 {
140 foreach (var pattern in patterns) 140 // Resolve bind paths, if any, which might result in multiple directories.
141 foreach (var path in this.ResolveBindPaths(sourceLineNumbers, pattern))
141 { 142 {
142 // Resolve bind paths, if any, which might result in multiple directories. 143 var sourceDirectory = String.IsNullOrEmpty(sourcePath) ? Path.GetDirectoryName(sourceLineNumbers.FileName) : sourcePath;
143 foreach (var path in this.ResolveBindPaths(sourceLineNumbers, pattern)) 144 var recursive = path.IndexOf("**") >= 0;
144 { 145 var filePortion = Path.GetFileName(path);
145 var sourceDirectory = String.IsNullOrEmpty(sourcePath) ? Path.GetDirectoryName(sourceLineNumbers.FileName) : sourcePath; 146 var directoryPortion = Path.GetDirectoryName(path).TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar);
146 var recursive = path.IndexOf("**") >= 0;
147 var filePortion = Path.GetFileName(path);
148 var directoryPortion = Path.GetDirectoryName(path).TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar);
149 147
150 if (directoryPortion?.EndsWith(@"\**") == true) 148 if (directoryPortion?.EndsWith(@"\**") == true)
151 { 149 {
152 directoryPortion = directoryPortion.Substring(0, directoryPortion.Length - 3); 150 directoryPortion = directoryPortion.Substring(0, directoryPortion.Length - 3);
153 } 151 }
154
155 if (directoryPortion is null || directoryPortion.Length == 0 || directoryPortion == "**")
156 {
157 directoryPortion = sourceDirectory;
158 152
159 } 153 if (directoryPortion is null || directoryPortion.Length == 0 || directoryPortion == "**")
160 else if (!Path.IsPathRooted(directoryPortion)) 154 {
161 { 155 directoryPortion = sourceDirectory;
162 directoryPortion = Path.Combine(sourceDirectory, directoryPortion); 156 }
163 } 157 else if (!Path.IsPathRooted(directoryPortion))
158 {
159 directoryPortion = Path.Combine(sourceDirectory, directoryPortion);
160 }
164 161
162 try
163 {
165 var recursiveDirOffset = directoryPortion.Length + 1; 164 var recursiveDirOffset = directoryPortion.Length + 1;
166 165
167 var foundFiles = Directory.EnumerateFiles(directoryPortion, filePortion, recursive ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly); 166 var foundFiles = Directory.EnumerateFiles(directoryPortion, filePortion, recursive ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly);
@@ -176,12 +175,12 @@ namespace WixToolset.Core
176 }); 175 });
177 } 176 }
178 } 177 }
178 catch (DirectoryNotFoundException e)
179 {
180 this.Messaging.Write(OptimizerWarnings.ExpectedDirectory(harvestFile.SourceLineNumbers, e.Message));
181 }
179 } 182 }
180 } 183 }
181 catch (DirectoryNotFoundException e)
182 {
183 this.Messaging.Write(OptimizerWarnings.ExpectedDirectory(harvestFile.SourceLineNumbers, e.Message));
184 }
185 184
186 return files; 185 return files;
187 } 186 }
diff --git a/src/wix/WixToolset.Sdk/WixToolset.Sdk.nuspec b/src/wix/WixToolset.Sdk/WixToolset.Sdk.nuspec
index 1f4e1cb3..104e5cd8 100644
--- a/src/wix/WixToolset.Sdk/WixToolset.Sdk.nuspec
+++ b/src/wix/WixToolset.Sdk/WixToolset.Sdk.nuspec
@@ -6,9 +6,10 @@
6 <title>$title$</title> 6 <title>$title$</title>
7 <description>$description$</description> 7 <description>$description$</description>
8 <authors>$authors$</authors> 8 <authors>$authors$</authors>
9 <icon>wix.png</icon> 9 <icon>icon.png</icon>
10 <license type="expression">MS-RL</license> 10 <license type="file">OSMFEULA.txt</license>
11 <requireLicenseAcceptance>false</requireLicenseAcceptance> 11 <requireLicenseAcceptance>true</requireLicenseAcceptance>
12 <tags>$packageTags$</tags>
12 <copyright>$copyright$</copyright> 13 <copyright>$copyright$</copyright>
13 <projectUrl>$projectUrl$</projectUrl> 14 <projectUrl>$projectUrl$</projectUrl>
14 <repository type="$repositorytype$" url="$repositoryurl$" commit="$repositorycommit$" /> 15 <repository type="$repositorytype$" url="$repositoryurl$" commit="$repositorycommit$" />
@@ -18,7 +19,8 @@
18 </metadata> 19 </metadata>
19 20
20 <files> 21 <files>
21 <file src="$projectFolder$\..\..\internal\images\wix.png" /> 22 <file src="$eulaTxt$" />
23 <file src="$iconPng$" />
22 <file src="build\**\*" target="build" /> 24 <file src="build\**\*" target="build" />
23 <file src="Sdk\**\*" target="Sdk" /> 25 <file src="Sdk\**\*" target="Sdk" />
24 <file src="tools\**\*" target="tools" exclude="**\*.xml;**\WixToolset.Core.Native.targets" /> 26 <file src="tools\**\*" target="tools" exclude="**\*.xml;**\WixToolset.Core.Native.targets" />
diff --git a/src/wix/pack-wix/pack-wix.nuspec b/src/wix/pack-wix/pack-wix.nuspec
index 8ecca0f2..cee65f79 100644
--- a/src/wix/pack-wix/pack-wix.nuspec
+++ b/src/wix/pack-wix/pack-wix.nuspec
@@ -6,9 +6,10 @@
6 <title>$title$</title> 6 <title>$title$</title>
7 <description>$description$</description> 7 <description>$description$</description>
8 <authors>$authors$</authors> 8 <authors>$authors$</authors>
9 <icon>wix.png</icon> 9 <icon>icon.png</icon>
10 <license type="expression">MS-RL</license> 10 <license type="file">OSMFEULA.txt</license>
11 <requireLicenseAcceptance>false</requireLicenseAcceptance> 11 <requireLicenseAcceptance>true</requireLicenseAcceptance>
12 <tags>$packageTags$</tags>
12 <copyright>$copyright$</copyright> 13 <copyright>$copyright$</copyright>
13 <projectUrl>$projectUrl$</projectUrl> 14 <projectUrl>$projectUrl$</projectUrl>
14 <repository type="$repositorytype$" url="$repositoryurl$" commit="$repositorycommit$" /> 15 <repository type="$repositorytype$" url="$repositoryurl$" commit="$repositorycommit$" />
@@ -18,8 +19,9 @@
18 </metadata> 19 </metadata>
19 20
20 <files> 21 <files>
22 <file src="$eulaTxt$" />
23 <file src="$iconPng$" />
21 <file src="$projectFolder$\DotnetToolSettings.xml" target="tools\net6.0\any" /> 24 <file src="$projectFolder$\DotnetToolSettings.xml" target="tools\net6.0\any" />
22 <file src="$projectFolder$\..\..\internal\images\wix.png" />
23 <file src="**" target="tools\net6.0\any" exclude="**\*.xml;**\WixToolset.Core.Native.targets" /> 25 <file src="**" target="tools\net6.0\any" exclude="**\*.xml;**\WixToolset.Core.Native.targets" />
24 </files> 26 </files>
25</package> 27</package>
diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/HarvestFilesFixture.cs b/src/wix/test/WixToolsetTest.CoreIntegration/HarvestFilesFixture.cs
index a8af2b4d..a680d145 100644
--- a/src/wix/test/WixToolsetTest.CoreIntegration/HarvestFilesFixture.cs
+++ b/src/wix/test/WixToolsetTest.CoreIntegration/HarvestFilesFixture.cs
@@ -9,7 +9,7 @@ namespace WixToolsetTest.CoreIntegration
9 using System.Linq; 9 using System.Linq;
10 using WixInternal.Core.TestPackage; 10 using WixInternal.Core.TestPackage;
11 using WixInternal.TestSupport; 11 using WixInternal.TestSupport;
12 using WixToolset.Data.WindowsInstaller; 12 using WixToolset.Data;
13 using Xunit; 13 using Xunit;
14 14
15 public class HarvestFilesFixture 15 public class HarvestFilesFixture
@@ -30,12 +30,12 @@ namespace WixToolsetTest.CoreIntegration
30 [Fact] 30 [Fact]
31 public void ZeroFilesHarvestedIsAWarning() 31 public void ZeroFilesHarvestedIsAWarning()
32 { 32 {
33 Build("ZeroFiles.wxs", (_, result) => 33 Build("ZeroFiles.wxs", (_, sourceFolder, baseFolder, result) =>
34 { 34 {
35 var messages = result.Messages.Select(m => m.Id); 35 var messages = result.Messages.Select(m => FormatMessage(m, sourceFolder, baseFolder)).ToArray();
36 Assert.Equal(new[] 36 WixAssert.CompareLineByLine(new[]
37 { 37 {
38 8600, 38 "8600: Files inclusions and exclusions resulted in zero files harvested. Unless that is expected, you should verify your Files paths, inclusions, and exclusions for accuracy.",
39 }, messages); 39 }, messages);
40 }); 40 });
41 } 41 }
@@ -43,20 +43,44 @@ namespace WixToolsetTest.CoreIntegration
43 [Fact] 43 [Fact]
44 public void MissingHarvestDirectoryIsAWarning() 44 public void MissingHarvestDirectoryIsAWarning()
45 { 45 {
46 Build("BadDirectory.wxs", (_, result) => 46 Build("BadDirectory.wxs", (_, sourceFolder, baseFolder, result) =>
47 { 47 {
48 var messages = result.Messages.Select(m => m.Id); 48 var messages = result.Messages.Select(m => FormatMessage(m, sourceFolder, baseFolder)).ToArray();
49 Assert.Equal(new[] 49 WixAssert.CompareLineByLine(new[]
50 { 50 {
51 8601, 51 @"8601: Missing directory for harvesting files: Could not find a part of the path '<sourceFolder>\files2\MissingDirectory'.",
52 8600, 52 @"8600: Files inclusions and exclusions resulted in zero files harvested. Unless that is expected, you should verify your Files paths, inclusions, and exclusions for accuracy.",
53 8601, 53 @"8601: Missing directory for harvesting files: Could not find a part of the path '<sourceFolder>\files2\ThisDirectoryIsAlsoMissing'.",
54 8600, 54 @"8600: Files inclusions and exclusions resulted in zero files harvested. Unless that is expected, you should verify your Files paths, inclusions, and exclusions for accuracy.",
55 }, messages); 55 }, messages);
56 }); 56 });
57 } 57 }
58 58
59 [Fact] 59 [Fact]
60 public void MissingHarvestExclusionsDoesNotBlockAllHarvesting()
61 {
62 Build("SomeExclusionsMissing.wxs", (msiPath, sourceFolder, baseFolder, result) =>
63 {
64 var expectedWarnings = new[]
65 {
66 @"8601: Missing directory for harvesting files: Could not find a part of the path '<sourceFolder>\files2\files2_sub2\MissingDirectory'.",
67 @"8601: Missing directory for harvesting files: Could not find a part of the path '<sourceFolder>\files2\files2_sub2\ThisDirectoryIsAlsoMissing'.",
68 };
69
70 var expectedFiles = new[]
71 {
72 @"flsCswDB8sBfZz7_oHNtra3tiFivPE=PFiles\MsiPackage\test20.txt",
73 @"fls4200C_IADZMINQyhQg52G3WxxfU=PFiles\MsiPackage\test21.txt",
74 };
75
76 var messages = result.Messages.Select(m => FormatMessage(m, sourceFolder, baseFolder)).ToArray();
77 WixAssert.CompareLineByLine(expectedWarnings, messages);
78
79 AssertFileIdsAndTargetPaths(msiPath, expectedFiles);
80 }, warningsAsErrors: false);
81 }
82
83 [Fact]
60 public void DuplicateFilesSomethingSomething() 84 public void DuplicateFilesSomethingSomething()
61 { 85 {
62 Build("DuplicateFiles.wxs", (_, result) => 86 Build("DuplicateFiles.wxs", (_, result) =>
@@ -392,17 +416,21 @@ namespace WixToolsetTest.CoreIntegration
392 416
393 private static void AssertFileIdsAndTargetPaths(string msiPath, string[] expected) 417 private static void AssertFileIdsAndTargetPaths(string msiPath, string[] expected)
394 { 418 {
395 var pkg = new WixToolset.Dtf.WindowsInstaller.Package.InstallPackage(msiPath, 419 var pkg = new WixToolset.Dtf.WindowsInstaller.Package.InstallPackage(msiPath, WixToolset.Dtf.WindowsInstaller.DatabaseOpenMode.ReadOnly);
396 WixToolset.Dtf.WindowsInstaller.DatabaseOpenMode.ReadOnly); 420 var sortedExpected = expected.OrderBy(s => s).ToArray();
397 var sortedExpected = expected.OrderBy(s => s); 421 var actual = pkg.Files.OrderBy(kvp => kvp.Key).Select(kvp => $"{kvp.Key}={kvp.Value.TargetPath}").ToArray();
398 var actual = pkg.Files.OrderBy(kvp => kvp.Key).Select(kvp => $"{kvp.Key}={kvp.Value.TargetPath}");
399 422
400 Assert.Equal(sortedExpected, actual); 423 WixAssert.CompareLineByLine(sortedExpected, actual);
401 } 424 }
402 425
403 private static void Build(string file, Action<string, WixRunnerResult> tester, bool isMsi = true, bool warningsAsErrors = true, bool addUnnamedBindPath = false, params string[] additionalCommandLineArguments) 426 private static void Build(string file, Action<string, WixRunnerResult> tester, bool isMsi = true, bool warningsAsErrors = true, bool addUnnamedBindPath = false, params string[] additionalCommandLineArguments)
404 { 427 {
405 var folder = TestData.Get("TestData", "HarvestFiles"); 428 Build(file, (msiPath, sourceFolder, baseFolder, result) => tester(msiPath, result), isMsi, warningsAsErrors, addUnnamedBindPath, additionalCommandLineArguments);
429 }
430
431 private static void Build(string file, Action<string, string, string, WixRunnerResult> tester, bool isMsi = true, bool warningsAsErrors = true, bool addUnnamedBindPath = false, params string[] additionalCommandLineArguments)
432 {
433 var sourceFolder = TestData.Get("TestData", "HarvestFiles");
406 434
407 using (var fs = new DisposableFileSystem()) 435 using (var fs = new DisposableFileSystem())
408 { 436 {
@@ -414,17 +442,17 @@ namespace WixToolsetTest.CoreIntegration
414 var arguments = new List<string>() 442 var arguments = new List<string>()
415 { 443 {
416 "build", 444 "build",
417 Path.Combine(folder, file), 445 Path.Combine(sourceFolder, file),
418 "-intermediateFolder", intermediateFolder, 446 "-intermediateFolder", intermediateFolder,
419 "-bindpath", @$"ToBeHarvested={folder}\files1", 447 "-bindpath", @$"ToBeHarvested={sourceFolder}\files1",
420 "-bindpath", @$"ToBeHarvested={folder}\files2", 448 "-bindpath", @$"ToBeHarvested={sourceFolder}\files2",
421 "-o", msiPath, 449 "-o", msiPath,
422 }; 450 };
423 451
424 if (addUnnamedBindPath) 452 if (addUnnamedBindPath)
425 { 453 {
426 arguments.Add("-bindpath"); 454 arguments.Add("-bindpath");
427 arguments.Add(Path.Combine(folder, "unnamedbindpath")); 455 arguments.Add(Path.Combine(sourceFolder, "unnamedbindpath"));
428 } 456 }
429 457
430 if (additionalCommandLineArguments.Length > 0) 458 if (additionalCommandLineArguments.Length > 0)
@@ -434,8 +462,13 @@ namespace WixToolsetTest.CoreIntegration
434 462
435 var result = WixRunner.Execute(warningsAsErrors, arguments.ToArray()); 463 var result = WixRunner.Execute(warningsAsErrors, arguments.ToArray());
436 464
437 tester(msiPath, result); 465 tester(msiPath, sourceFolder, baseFolder, result);
438 } 466 }
439 } 467 }
468
469 private static string FormatMessage(Message m, string sourceFolder, string baseFolder)
470 {
471 return $"{m.Id}: {m.ToString().Replace(sourceFolder, "<sourceFolder>").Replace(baseFolder, "<baseFolder>")}";
472 }
440 } 473 }
441} 474}
diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/TestData/HarvestFiles/SomeExclusionsMissing.wxs b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/HarvestFiles/SomeExclusionsMissing.wxs
new file mode 100644
index 00000000..104518bd
--- /dev/null
+++ b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/HarvestFiles/SomeExclusionsMissing.wxs
@@ -0,0 +1,17 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Id="WixToolsetTest.SomeExclusionsMissing" Name="MsiPackage" Version="1.0.0.0" Manufacturer="Example Corporation">
3
4 <Files Include="files2\files2_sub2\**">
5 <Exclude Files="files2\files2_sub2\MissingDirectory\**" />
6 <Exclude Files="files2\files2_sub2\pleasedontincludeme.dat" />
7 <Exclude Files="files2\files2_sub2\ThisDirectoryIsAlsoMissing\**" />
8 </Files>
9
10 </Package>
11
12 <Fragment>
13 <StandardDirectory Id="ProgramFilesFolder">
14 <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
15 </StandardDirectory>
16 </Fragment>
17</Wix>
diff --git a/src/wix/wix.cmd b/src/wix/wix.cmd
index ba5738cb..68e13cd1 100644
--- a/src/wix/wix.cmd
+++ b/src/wix/wix.cmd
@@ -26,7 +26,7 @@ msbuild -t:Restore wix.sln -p:Configuration=%_C% -tl -nologo -m -warnaserror -bl
26:: Build 26:: Build
27msbuild wixnative\wixnative_t.proj -p:Configuration=%_C% -tl -nologo -m -warnaserror -bl:%_L%\wixnative_build.binlog || exit /b 27msbuild wixnative\wixnative_t.proj -p:Configuration=%_C% -tl -nologo -m -warnaserror -bl:%_L%\wixnative_build.binlog || exit /b
28 28
29msbuild wix.sln -p:Configuration=%_C% -p:SuppressWixTests=true -tl -nologo -m -warnaserror -bl:%_L%\wix_build.binlog || exit /b 29msbuild wix.sln -p:Configuration=%_C% -tl -nologo -m -warnaserror -bl:%_L%\wix_build.binlog || exit /b
30 30
31msbuild publish_t.proj -p:Configuration=%_C% -tl -nologo -warnaserror -bl:%_L%\wix_publish.binlog || exit /b 31msbuild publish_t.proj -p:Configuration=%_C% -tl -nologo -warnaserror -bl:%_L%\wix_publish.binlog || exit /b
32 32
@@ -35,7 +35,7 @@ msbuild -t:Publish -p:Configuration=%_C% -tl -nologo -warnaserror WixToolset.Sdk
35:: TODO - used by MsbuildFixture.ReportsInnerExceptionForUnexpectedExceptions test 35:: TODO - used by MsbuildFixture.ReportsInnerExceptionForUnexpectedExceptions test
36:: msbuild -t:Publish -Restore -p:Configuration=%_C% -p:TargetFramework=net472 -p:RuntimeIdentifier=linux-x86 -p:PublishDir=%_P%WixToolset.Sdk\broken\net472\ wix\wix.csproj || exit /b 36:: msbuild -t:Publish -Restore -p:Configuration=%_C% -p:TargetFramework=net472 -p:RuntimeIdentifier=linux-x86 -p:PublishDir=%_P%WixToolset.Sdk\broken\net472\ wix\wix.csproj || exit /b
37 37
38msbuild -t:RunWixTests test\WixToolsetTest.Sdk\WixToolsetTest.Sdk.csproj -p:Configuration=%_C% -p:NoBuild=true -tl -nologo -warnaserror || exit /b 38msbuild -t:Test test\WixToolsetTest.Sdk\WixToolsetTest.Sdk.csproj -p:Configuration=%_C% -tl -nologo -warnaserror || exit /b
39 39
40:: Test 40:: Test
41dotnet test ^ 41dotnet test ^
diff --git a/src/xsd/bal.xsd b/src/xsd/bal.xsd
new file mode 100644
index 00000000..ff4142ad
--- /dev/null
+++ b/src/xsd/bal.xsd
@@ -0,0 +1,745 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
4
5<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
6 xmlns:xse="http://wixtoolset.org/schemas/XmlSchemaExtension"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:wxs="http://wixtoolset.org/schemas/v4/wxs"
9 targetNamespace="http://wixtoolset.org/schemas/v4/wxs/bal"
10 xmlns="http://wixtoolset.org/schemas/v4/wxs/bal">
11 <xs:annotation>
12 <xs:documentation>
13 The source code schema for the WiX Toolset Bootstrapper Applications Extension.
14 </xs:documentation>
15 </xs:annotation>
16
17 <xs:import namespace="http://wixtoolset.org/schemas/v4/wxs" />
18
19 <xs:element name="Condition">
20 <xs:annotation>
21 <xs:documentation>
22 Conditions for a bundle using WixStdBA.
23 </xs:documentation>
24 <xs:appinfo>
25 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
26 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
27 </xs:appinfo>
28 </xs:annotation>
29 <xs:complexType>
30 <xs:choice minOccurs="0" maxOccurs="unbounded">
31 <xs:any namespace="##other" processContents="lax">
32 <xs:annotation>
33 <xs:documentation>
34 Extensibility point in the WiX XML Schema. Schema extensions can register additional
35 elements at this point in the schema.
36 </xs:documentation>
37 </xs:annotation>
38 </xs:any>
39 </xs:choice>
40 <xs:attribute name="Message" type="xs:string" use="required">
41 <xs:annotation>
42 <xs:documentation>
43 Set the value to the text to display when the condition fails and the installation must be terminated.
44 </xs:documentation>
45 </xs:annotation>
46 </xs:attribute>
47 <xs:attribute name="Condition" type="xs:string" use="required">
48 <xs:annotation>
49 <xs:documentation>
50 The condition that must evaluate to true for the installation to continue.
51 </xs:documentation>
52 </xs:annotation>
53 </xs:attribute>
54 <xs:anyAttribute namespace="##other" processContents="lax">
55 <xs:annotation>
56 <xs:documentation>
57 Extensibility point in the WiX XML Schema. Schema extensions can register additional
58 attributes at this point in the schema.
59 </xs:documentation>
60 </xs:annotation>
61 </xs:anyAttribute>
62 </xs:complexType>
63 </xs:element>
64
65 <xs:element name="WixInternalUIBootstrapperApplication">
66 <xs:annotation>
67 <xs:documentation>
68 Uses WixInternalUIBootstrapperApplication as the Bootstrapper Application for a Bundle.
69 WixInternalUIBootstrapperApplication has no UI itself, it relies on the splash screen, prereq BA, and MSI UI.
70
71 wixiuiba is not a typical BA because it has very specific requirements for the packages in the chain.
72 There can only be one non-permanent package in the chain, and it needs to be the last package.
73 The only exception is that multiple non-permanent packages can be specified with bal:PrimaryPackageType with a specific architecture.
74 Each primary package must be an MsiPackage that contains UI for install and maintenance.
75
76 If there are permanent packages, then they are always installed through the same prereq BA that is used for the managed BA hosts before executing the primary package.
77
78 Due to Windows limitations, a splash screen should be provided so that the elevation prompt and MSI UI is automatically given focus.
79 </xs:documentation>
80 <xs:appinfo>
81 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="BootstrapperApplication" />
82 </xs:appinfo>
83 </xs:annotation>
84 <xs:complexType>
85 <xs:choice minOccurs="0" maxOccurs="unbounded">
86 <xs:any namespace="##other" processContents="lax">
87 <xs:annotation>
88 <xs:documentation>
89 Extensibility point in the WiX XML Schema. Schema extensions can register additional
90 elements at this point in the schema.
91 </xs:documentation>
92 </xs:annotation>
93 </xs:any>
94 </xs:choice>
95 <xs:attribute name="LogoFile" type="xs:string">
96 <xs:annotation>
97 <xs:documentation>Source file of the logo graphic.</xs:documentation>
98 </xs:annotation>
99 </xs:attribute>
100 <xs:attribute name="ThemeFile" type="xs:string">
101 <xs:annotation>
102 <xs:documentation>Source file of the theme XML.</xs:documentation>
103 </xs:annotation>
104 </xs:attribute>
105 <xs:attribute name="LocalizationFile" type="xs:string">
106 <xs:annotation>
107 <xs:documentation>Source file of the theme localization .wxl file.</xs:documentation>
108 </xs:annotation>
109 </xs:attribute>
110 <xs:attribute name="Theme">
111 <xs:annotation>
112 <xs:documentation>The built-in theme to use.</xs:documentation>
113 </xs:annotation>
114 <xs:simpleType>
115 <xs:restriction base="xs:NMTOKEN">
116 <xs:enumeration value="none" />
117 <xs:enumeration value="standard" />
118 </xs:restriction>
119 </xs:simpleType>
120 </xs:attribute>
121 <xs:anyAttribute namespace="##other" processContents="lax">
122 <xs:annotation>
123 <xs:documentation>
124 Extensibility point in the WiX XML Schema. Schema extensions can register additional
125 attributes at this point in the schema.
126 </xs:documentation>
127 </xs:annotation>
128 </xs:anyAttribute>
129 </xs:complexType>
130 </xs:element>
131
132 <xs:element name="WixStandardBootstrapperApplication">
133 <xs:annotation>
134 <xs:documentation>
135 Uses WixStandardBootstrapperApplication as the Bootstrapper Application for a Bundle.
136 </xs:documentation>
137 <xs:appinfo>
138 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="BootstrapperApplication" />
139 </xs:appinfo>
140 </xs:annotation>
141 <xs:complexType>
142 <xs:choice minOccurs="0" maxOccurs="unbounded">
143 <xs:any namespace="##other" processContents="lax">
144 <xs:annotation>
145 <xs:documentation>
146 Extensibility point in the WiX XML Schema. Schema extensions can register additional
147 elements at this point in the schema.
148 </xs:documentation>
149 </xs:annotation>
150 </xs:any>
151 </xs:choice>
152 <xs:attribute name="LaunchTarget" type="xs:string">
153 <xs:annotation>
154 <xs:documentation>
155 If set, the success page will show a Launch button the user can use to launch the application being installed.
156 The string value can be formatted using Burn variables enclosed in brackets,
157 to refer to installation directories and so forth.
158 </xs:documentation>
159 </xs:annotation>
160 </xs:attribute>
161 <xs:attribute name="LaunchTargetElevatedId" type="xs:string">
162 <xs:annotation>
163 <xs:documentation>
164 Id of the target ApprovedExeForElevation element.
165 If set with LaunchTarget, WixStdBA will launch the application through the Engine's LaunchApprovedExe method instead of through ShellExecute.
166 </xs:documentation>
167 </xs:annotation>
168 </xs:attribute>
169 <xs:attribute name="LaunchArguments" type="xs:string">
170 <xs:annotation>
171 <xs:documentation>
172 If set, WixStdBA will supply these arguments when launching the application specified by the LaunchTarget attribute.
173 The string value can be formatted using Burn variables enclosed in brackets,
174 to refer to installation directories and so forth.
175 </xs:documentation>
176 </xs:annotation>
177 </xs:attribute>
178 <xs:attribute name="LaunchHidden" type="wxs:YesNoTypeUnion">
179 <xs:annotation>
180 <xs:documentation>
181 If set to "yes", WixStdBA will launch the application specified by the LaunchTarget attribute with the SW_HIDE flag.
182 This attribute is ignored when the LaunchTargetElevatedId attribute is specified.
183 </xs:documentation>
184 </xs:annotation>
185 </xs:attribute>
186 <xs:attribute name="LaunchWorkingFolder" type="xs:string">
187 <xs:annotation>
188 <xs:documentation>
189 WixStdBA will use this working folder when launching the specified application.
190 The string value can be formatted using Burn variables enclosed in brackets,
191 to refer to installation directories and so forth.
192 This attribute is ignored when the LaunchTargetElevatedId attribute is specified.
193 </xs:documentation>
194 </xs:annotation>
195 </xs:attribute>
196 <xs:attribute name="LicenseFile" type="xs:string">
197 <xs:annotation>
198 <xs:documentation>Source file of the RTF license file. Cannot be used simultaneously with LicenseUrl.</xs:documentation>
199 </xs:annotation>
200 </xs:attribute>
201 <xs:attribute name="LicenseUrl" type="xs:string">
202 <xs:annotation>
203 <xs:documentation>URL target of the license link. Cannot be used simultaneously with LicenseFile. This attribute can be empty to hide the license link completely.</xs:documentation>
204 </xs:annotation>
205 </xs:attribute>
206 <xs:attribute name="LogoFile" type="xs:string">
207 <xs:annotation>
208 <xs:documentation>Source file of the logo graphic.</xs:documentation>
209 </xs:annotation>
210 </xs:attribute>
211 <xs:attribute name="LogoSideFile" type="xs:string">
212 <xs:annotation>
213 <xs:documentation>Source file of the side logo graphic.</xs:documentation>
214 </xs:annotation>
215 </xs:attribute>
216 <xs:attribute name="ThemeFile" type="xs:string">
217 <xs:annotation>
218 <xs:documentation>Source file of the theme XML.</xs:documentation>
219 </xs:annotation>
220 </xs:attribute>
221 <xs:attribute name="LocalizationFile" type="xs:string">
222 <xs:annotation>
223 <xs:documentation>Source file of the theme localization .wxl file.</xs:documentation>
224 </xs:annotation>
225 </xs:attribute>
226 <xs:attribute name="SuppressOptionsUI" type="wxs:YesNoTypeUnion">
227 <xs:annotation>
228 <xs:documentation>If set to "yes", the Options button will not be shown and the user will not be able to choose an installation directory.</xs:documentation>
229 </xs:annotation>
230 </xs:attribute>
231 <xs:attribute name="SuppressDowngradeFailure" type="wxs:YesNoTypeUnion">
232 <xs:annotation>
233 <xs:documentation>
234 If set to "yes", attempting to installer a downgraded version of a bundle will be treated as a successful do-nothing operation.
235 The default behavior (or when explicitly set to "no") is to treat downgrade attempts as failures.
236 </xs:documentation>
237 </xs:annotation>
238 </xs:attribute>
239 <xs:attribute name="SuppressRepair" type="wxs:YesNoTypeUnion">
240 <xs:annotation>
241 <xs:documentation>If set to "yes", the Repair button will not be shown in the maintenance-mode UI.</xs:documentation>
242 </xs:annotation>
243 </xs:attribute>
244 <xs:attribute name="ShowVersion" type="wxs:YesNoTypeUnion">
245 <xs:annotation>
246 <xs:documentation>If set to "yes", the application version will be displayed on the UI.</xs:documentation>
247 </xs:annotation>
248 </xs:attribute>
249 <xs:attribute name="SupportCacheOnly" type="wxs:YesNoTypeUnion">
250 <xs:annotation>
251 <xs:documentation>If set to "yes", the bundle can be pre-cached using the /cache command line argument.</xs:documentation>
252 </xs:annotation>
253 </xs:attribute>
254 <xs:attribute name="Theme" use="required">
255 <xs:annotation>
256 <xs:documentation>The built-in theme to use.</xs:documentation>
257 </xs:annotation>
258 <xs:simpleType>
259 <xs:restriction base="xs:NMTOKEN">
260 <xs:enumeration value="hyperlinkLargeLicense" />
261 <xs:enumeration value="hyperlinkLicense" />
262 <xs:enumeration value="hyperlinkSidebarLicense" />
263 <xs:enumeration value="none" />
264 <xs:enumeration value="rtfLargeLicense" />
265 <xs:enumeration value="rtfLicense" />
266 </xs:restriction>
267 </xs:simpleType>
268 </xs:attribute>
269 <xs:anyAttribute namespace="##other" processContents="lax">
270 <xs:annotation>
271 <xs:documentation>
272 Extensibility point in the WiX XML Schema. Schema extensions can register additional
273 attributes at this point in the schema.
274 </xs:documentation>
275 </xs:annotation>
276 </xs:anyAttribute>
277 </xs:complexType>
278 </xs:element>
279
280 <xs:element name="WixManagedBootstrapperApplicationHost">
281 <xs:annotation>
282 <xs:documentation>
283 Uses WixManagedBootstrapperApplicationHost as the Bootstrapper Application for a Bundle.
284
285 _Available in WiX v4. Deprecated in WiX v5; use WixPrerequisiteBootstrapperApplication instead._
286 </xs:documentation>
287 <xs:appinfo>
288 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="BootstrapperApplication" />
289 </xs:appinfo>
290 </xs:annotation>
291 <xs:complexType>
292 <xs:choice minOccurs="0" maxOccurs="unbounded">
293 <xs:any namespace="##other" processContents="lax">
294 <xs:annotation>
295 <xs:documentation>
296 Extensibility point in the WiX XML Schema. Schema extensions can register additional
297 elements at this point in the schema.
298 </xs:documentation>
299 </xs:annotation>
300 </xs:any>
301 </xs:choice>
302 <xs:attribute name="AlwaysInstallPrereqs" type="xs:string">
303 <xs:annotation>
304 <xs:documentation>
305 When not set or set to "no", the prereq BA is only used when the .NET Framework runtime can't be loaded.
306 When set to "yes", the prereq BA will always run before the .NET Framework runtime is attempted to be loaded.
307 If set to "yes" and all prereq packages are already installed, then the prereq BA's UI is not shown.
308 </xs:documentation>
309 </xs:annotation>
310 </xs:attribute>
311 <xs:attribute name="LogoFile" type="xs:string">
312 <xs:annotation>
313 <xs:documentation>Source file of the logo graphic.</xs:documentation>
314 </xs:annotation>
315 </xs:attribute>
316 <xs:attribute name="ThemeFile" type="xs:string">
317 <xs:annotation>
318 <xs:documentation>Source file of the theme XML.</xs:documentation>
319 </xs:annotation>
320 </xs:attribute>
321 <xs:attribute name="LocalizationFile" type="xs:string">
322 <xs:annotation>
323 <xs:documentation>Source file of the theme localization .wxl file.</xs:documentation>
324 </xs:annotation>
325 </xs:attribute>
326 <xs:attribute name="Theme">
327 <xs:annotation>
328 <xs:documentation>The built-in theme to use. The default is "standard".</xs:documentation>
329 </xs:annotation>
330 <xs:simpleType>
331 <xs:restriction base="xs:NMTOKEN">
332 <xs:enumeration value="none" />
333 <xs:enumeration value="standard" />
334 </xs:restriction>
335 </xs:simpleType>
336 </xs:attribute>
337 <xs:anyAttribute namespace="##other" processContents="lax">
338 <xs:annotation>
339 <xs:documentation>
340 Extensibility point in the WiX XML Schema. Schema extensions can register additional
341 attributes at this point in the schema.
342 </xs:documentation>
343 </xs:annotation>
344 </xs:anyAttribute>
345 </xs:complexType>
346 </xs:element>
347
348 <xs:element name="ManagedBootstrapperApplicationPrereqInformation">
349 <xs:annotation>
350 <xs:documentation>
351 Adds license information for a prereq package, should only be used when unable to add the license attributes to the package directly.
352
353 _Available in WiX v4. Deprecated in WiX v5; use BootstrapperApplicationPrerequisiteInformation instead._
354 </xs:documentation>
355 <xs:appinfo>
356 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
357 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
358 </xs:appinfo>
359 </xs:annotation>
360 <xs:complexType>
361 <xs:choice minOccurs="0" maxOccurs="unbounded">
362 <xs:any namespace="##other" processContents="lax">
363 <xs:annotation>
364 <xs:documentation>
365 Extensibility point in the WiX XML Schema. Schema extensions can register additional
366 elements at this point in the schema.
367 </xs:documentation>
368 </xs:annotation>
369 </xs:any>
370 </xs:choice>
371 <xs:attribute name="PackageId" type="xs:string" use="required">
372 <xs:annotation>
373 <xs:documentation>Id of the target package.</xs:documentation>
374 </xs:annotation>
375 </xs:attribute>
376 <xs:attribute name="LicenseFile" type="xs:string">
377 <xs:annotation>
378 <xs:documentation>Source file of the license. May not be used with LicenseUrl.</xs:documentation>
379 </xs:annotation>
380 </xs:attribute>
381 <xs:attribute name="LicenseUrl" type="xs:string">
382 <xs:annotation>
383 <xs:documentation>Source url of the license. May not be used with LicenseFile.</xs:documentation>
384 </xs:annotation>
385 </xs:attribute>
386 <xs:anyAttribute namespace="##other" processContents="lax">
387 <xs:annotation>
388 <xs:documentation>
389 Extensibility point in the WiX XML Schema. Schema extensions can register additional
390 attributes at this point in the schema.
391 </xs:documentation>
392 </xs:annotation>
393 </xs:anyAttribute>
394 </xs:complexType>
395 </xs:element>
396
397 <xs:element name="WixDotNetCoreBootstrapperApplicationHost">
398 <xs:annotation>
399 <xs:documentation>
400 Uses WixDotNetCoreBootstrapperApplicationHost as the Bootstrapper Application for a Bundle.
401
402 _Available in WiX v4. Deprecated in WiX v5; use WixPrerequisiteBootstrapperApplication instead._
403 </xs:documentation>
404 <xs:appinfo>
405 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="BootstrapperApplication" />
406 </xs:appinfo>
407 </xs:annotation>
408 <xs:complexType>
409 <xs:choice minOccurs="0" maxOccurs="unbounded">
410 <xs:any namespace="##other" processContents="lax">
411 <xs:annotation>
412 <xs:documentation>
413 Extensibility point in the WiX XML Schema. Schema extensions can register additional
414 elements at this point in the schema.
415 </xs:documentation>
416 </xs:annotation>
417 </xs:any>
418 </xs:choice>
419 <xs:attribute name="AlwaysInstallPrereqs" type="wxs:YesNoTypeUnion">
420 <xs:annotation>
421 <xs:documentation>
422 When not set or set to "no", the prereq BA is only used when the .NET Core runtime can't be loaded.
423 When set to "yes", the prereq BA will always run before the .NET Core runtime is attempted to be loaded.
424 If set to "yes" and all prereq packages are already installed, then the prereq BA's UI is not shown.
425 </xs:documentation>
426 </xs:annotation>
427 </xs:attribute>
428 <xs:attribute name="LogoFile" type="xs:string">
429 <xs:annotation>
430 <xs:documentation>Source file of the logo graphic.</xs:documentation>
431 </xs:annotation>
432 </xs:attribute>
433 <xs:attribute name="ThemeFile" type="xs:string">
434 <xs:annotation>
435 <xs:documentation>Source file of the theme XML.</xs:documentation>
436 </xs:annotation>
437 </xs:attribute>
438 <xs:attribute name="LocalizationFile" type="xs:string">
439 <xs:annotation>
440 <xs:documentation>Source file of the theme localization .wxl file.</xs:documentation>
441 </xs:annotation>
442 </xs:attribute>
443 <xs:attribute name="SelfContainedDeployment" type="wxs:YesNoTypeUnion">
444 <xs:annotation>
445 <xs:documentation>
446 Whether the .NET Core BA was published as self-contained (SCD).
447 </xs:documentation>
448 </xs:annotation>
449 </xs:attribute>
450 <xs:attribute name="Theme">
451 <xs:annotation>
452 <xs:documentation>The built-in theme to use. The default value is "standard".</xs:documentation>
453 </xs:annotation>
454 <xs:simpleType>
455 <xs:restriction base="xs:NMTOKEN">
456 <xs:enumeration value="none" />
457 <xs:enumeration value="standard" />
458 </xs:restriction>
459 </xs:simpleType>
460 </xs:attribute>
461 <xs:anyAttribute namespace="##other" processContents="lax">
462 <xs:annotation>
463 <xs:documentation>
464 Extensibility point in the WiX XML Schema. Schema extensions can register additional
465 attributes at this point in the schema.
466 </xs:documentation>
467 </xs:annotation>
468 </xs:anyAttribute>
469 </xs:complexType>
470 </xs:element>
471
472 <xs:element name="WixPrerequisiteBootstrapperApplication">
473 <xs:annotation>
474 <xs:documentation>
475 Uses WixPrerequisiteBootstrapperApplication as a secondary Bootstrapper Application for a Bundle,
476 to bootstrap the prerequisites needed for a primary bootstrapper application.
477
478 _Available in WiX v5._
479 </xs:documentation>
480 <xs:appinfo>
481 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="BootstrapperApplication" />
482 </xs:appinfo>
483 </xs:annotation>
484 <xs:complexType>
485 <xs:choice minOccurs="0" maxOccurs="unbounded">
486 <xs:any namespace="##other" processContents="lax">
487 <xs:annotation>
488 <xs:documentation>
489 Extensibility point in the WiX XML Schema. Schema extensions can register additional
490 elements at this point in the schema.
491 </xs:documentation>
492 </xs:annotation>
493 </xs:any>
494 </xs:choice>
495 <xs:attribute name="LogoFile" type="xs:string">
496 <xs:annotation>
497 <xs:documentation>Source file of the logo graphic.</xs:documentation>
498 </xs:annotation>
499 </xs:attribute>
500 <xs:attribute name="ThemeFile" type="xs:string">
501 <xs:annotation>
502 <xs:documentation>Source file of the theme XML.</xs:documentation>
503 </xs:annotation>
504 </xs:attribute>
505 <xs:attribute name="LocalizationFile" type="xs:string">
506 <xs:annotation>
507 <xs:documentation>Source file of the theme localization .wxl file.</xs:documentation>
508 </xs:annotation>
509 </xs:attribute>
510 <xs:attribute name="Theme">
511 <xs:annotation>
512 <xs:documentation>The built-in theme to use. The default is "standard".</xs:documentation>
513 </xs:annotation>
514 <xs:simpleType>
515 <xs:restriction base="xs:NMTOKEN">
516 <xs:enumeration value="none" />
517 <xs:enumeration value="standard" />
518 </xs:restriction>
519 </xs:simpleType>
520 </xs:attribute>
521 <xs:anyAttribute namespace="##other" processContents="lax">
522 <xs:annotation>
523 <xs:documentation>
524 Extensibility point in the WiX XML Schema. Schema extensions can register additional
525 attributes at this point in the schema.
526 </xs:documentation>
527 </xs:annotation>
528 </xs:anyAttribute>
529 </xs:complexType>
530 </xs:element>
531
532 <xs:element name="BootstrapperApplicationPrerequisiteInformation">
533 <xs:annotation>
534 <xs:documentation>
535 Adds license information for a prereq package, should only be used when unable to add the license attributes to the package directly.
536
537 _Available in WiX v5._
538 </xs:documentation>
539 <xs:appinfo>
540 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
541 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
542 </xs:appinfo>
543 </xs:annotation>
544 <xs:complexType>
545 <xs:choice minOccurs="0" maxOccurs="unbounded">
546 <xs:any namespace="##other" processContents="lax">
547 <xs:annotation>
548 <xs:documentation>
549 Extensibility point in the WiX XML Schema. Schema extensions can register additional
550 elements at this point in the schema.
551 </xs:documentation>
552 </xs:annotation>
553 </xs:any>
554 </xs:choice>
555 <xs:attribute name="PackageId" type="xs:string" use="required">
556 <xs:annotation>
557 <xs:documentation>Id of the target package.</xs:documentation>
558 </xs:annotation>
559 </xs:attribute>
560 <xs:attribute name="LicenseFile" type="xs:string">
561 <xs:annotation>
562 <xs:documentation>Source file of the license. May not be used with LicenseUrl.</xs:documentation>
563 </xs:annotation>
564 </xs:attribute>
565 <xs:attribute name="LicenseUrl" type="xs:string">
566 <xs:annotation>
567 <xs:documentation>Source url of the license. May not be used with LicenseFile.</xs:documentation>
568 </xs:annotation>
569 </xs:attribute>
570 <xs:anyAttribute namespace="##other" processContents="lax">
571 <xs:annotation>
572 <xs:documentation>
573 Extensibility point in the WiX XML Schema. Schema extensions can register additional
574 attributes at this point in the schema.
575 </xs:documentation>
576 </xs:annotation>
577 </xs:anyAttribute>
578 </xs:complexType>
579 </xs:element>
580
581 <xs:attribute name="BAFactoryAssembly" type="wxs:YesNoTypeUnion">
582 <xs:annotation>
583 <xs:documentation>
584 When set to "yes", WixDotNetCoreBootstrapperApplicationHost will load the DLL and instantiate the type with the BootstrapperApplicationFactoryAttribute.
585 The DLL must have been built referencing the WixToolset.Dnc.HostGenerator source generator NuGet package.
586 The .NET Core project must have been published, not just built.
587 Only one payload may be marked with this attribute set to "yes".
588
589 _Available in WiX v4. Deprecated in WiX v5. Move the Payload/@SourceFile attribute to be the BootstrapperApplication/@SourceFile attribute and remove the Payload element._
590 </xs:documentation>
591 <xs:appinfo>
592 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Payload" />
593 </xs:appinfo>
594 </xs:annotation>
595 </xs:attribute>
596
597 <xs:attribute name="BAFunctions" type="wxs:YesNoTypeUnion">
598 <xs:annotation>
599 <xs:documentation>
600 When set to "yes", WixStdBA will load the DLL and work with it to handle BA messages.
601 Only one payload may be marked with this attribute set to "yes".
602 </xs:documentation>
603 <xs:appinfo>
604 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Payload" />
605 </xs:appinfo>
606 </xs:annotation>
607 </xs:attribute>
608
609 <xs:attribute name="CommandLineVariables">
610 <xs:annotation>
611 <xs:documentation>
612 This value determines whether case sensitivity is used to match overridable variables specified on the command line. The default is "caseSensitive".
613 </xs:documentation>
614 <xs:appinfo>
615 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
616 </xs:appinfo>
617 </xs:annotation>
618 <xs:simpleType>
619 <xs:restriction base="xs:NMTOKEN">
620 <xs:enumeration value="caseSensitive" />
621 <xs:enumeration value="caseInsensitive" />
622 </xs:restriction>
623 </xs:simpleType>
624 </xs:attribute>
625
626 <xs:attribute name="DisplayInternalUICondition" type="xs:string">
627 <xs:annotation>
628 <xs:documentation>
629 Specifies whether the bundle will show the UI authored into the msi package. If not specified or the condition evaluates
630 to false, all information is routed to the bootstrapper application to provide a unified installation experience.
631 Otherwise, the UI authored into the msi package will be displayed on top of any bootstrapper application UI.
632 WixStdBA doesn't support EmbeddedUI.
633 </xs:documentation>
634 <xs:appinfo>
635 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="MsiPackage" />
636 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="MspPackage" />
637 </xs:appinfo>
638 </xs:annotation>
639 </xs:attribute>
640
641 <xs:attribute name="Overridable" type="wxs:YesNoTypeUnion">
642 <xs:annotation>
643 <xs:documentation>
644 When set to "yes", lets the user override the variable's default value by specifying another value on the command line,
645 in the form Variable=Value. Otherwise, WixStdBA won't overwrite the default value and will log
646 "Ignoring attempt to set non-overridable variable: 'BAR'."
647 </xs:documentation>
648 <xs:appinfo>
649 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Variable" />
650 </xs:appinfo>
651 </xs:annotation>
652 </xs:attribute>
653
654 <xs:attribute name="PrereqLicenseFile" type="xs:string">
655 <xs:annotation>
656 <xs:documentation>
657 Source file of the RTF license file.
658 There may only be one package in the bundle that has either the PrereqLicenseFile attribute or the PrereqLicenseUrl attribute.
659 </xs:documentation>
660 <xs:appinfo>
661 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="BundlePackage" />
662 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="ExePackage" />
663 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="MsiPackage" />
664 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="MspPackage" />
665 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="MsuPackage" />
666 </xs:appinfo>
667 </xs:annotation>
668 </xs:attribute>
669
670 <xs:attribute name="PrereqLicenseUrl" type="xs:string">
671 <xs:annotation>
672 <xs:documentation>
673 URL target of the license link.
674 There may only be one package in the bundle that has either the PrereqLicenseFile attribute or the PrereqLicenseUrl attribute.
675 </xs:documentation>
676 <xs:appinfo>
677 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="BundlePackage" />
678 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="ExePackage" />
679 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="MsiPackage" />
680 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="MspPackage" />
681 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="MsuPackage" />
682 </xs:appinfo>
683 </xs:annotation>
684 </xs:attribute>
685
686 <xs:attribute name="PrereqPackage" type="wxs:YesNoTypeUnion">
687 <xs:annotation>
688 <xs:documentation>
689 When set to "yes", the Prereq BA will plan the package to be installed if its InstallCondition is "true" or empty.
690 </xs:documentation>
691 <xs:appinfo>
692 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="BundlePackage" />
693 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="ExePackage" />
694 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="MsiPackage" />
695 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="MspPackage" />
696 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="MsuPackage" />
697 </xs:appinfo>
698 </xs:annotation>
699 </xs:attribute>
700
701 <xs:attribute name="PrimaryPackageType">
702 <xs:annotation>
703 <xs:documentation>Used by WixInternalUIBootstrapperApplication to determine which package is the primary package. The default value is "default".</xs:documentation>
704 <xs:appinfo>
705 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="BundlePackage" />
706 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="ExePackage" />
707 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="MsiPackage" />
708 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="MspPackage" />
709 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="MsuPackage" />
710 </xs:appinfo>
711 </xs:annotation>
712 <xs:simpleType>
713 <xs:restriction base="xs:NMTOKEN">
714 <xs:enumeration value="default">
715 <xs:annotation>
716 <xs:documentation>
717 This package is used unless there is a package for the runtime machine's architecture.
718 </xs:documentation>
719 </xs:annotation>
720 </xs:enumeration>
721 <xs:enumeration value="x86">
722 <xs:annotation>
723 <xs:documentation>
724 This package is used when the runtime machine's OS is x86 (IMAGE_FILE_MACHINE_I386).
725 </xs:documentation>
726 </xs:annotation>
727 </xs:enumeration>
728 <xs:enumeration value="x64">
729 <xs:annotation>
730 <xs:documentation>
731 This package is used when the runtime machine's OS is x64 (IMAGE_FILE_MACHINE_AMD64).
732 </xs:documentation>
733 </xs:annotation>
734 </xs:enumeration>
735 <xs:enumeration value="arm64">
736 <xs:annotation>
737 <xs:documentation>
738 This package is used when the runtime machine's OS is ARM64 (IMAGE_FILE_MACHINE_ARM64).
739 </xs:documentation>
740 </xs:annotation>
741 </xs:enumeration>
742 </xs:restriction>
743 </xs:simpleType>
744 </xs:attribute>
745</xs:schema>
diff --git a/src/xsd/complus.xsd b/src/xsd/complus.xsd
new file mode 100644
index 00000000..5e658aed
--- /dev/null
+++ b/src/xsd/complus.xsd
@@ -0,0 +1,934 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
4
5<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
6 xmlns:xse="http://wixtoolset.org/schemas/XmlSchemaExtension"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:wxs="http://wixtoolset.org/schemas/v4/wxs"
9 targetNamespace="http://wixtoolset.org/schemas/v4/wxs/complus"
10 xmlns="http://wixtoolset.org/schemas/v4/wxs/complus">
11 <xs:annotation>
12 <xs:documentation>
13 The source code schema for the WiX Toolset COM+ Extension.
14 </xs:documentation>
15 </xs:annotation>
16
17 <xs:import namespace="http://wixtoolset.org/schemas/v4/wxs" />
18
19 <xs:element name="ComPlusPartition">
20 <xs:annotation>
21 <xs:appinfo>
22 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
23 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
24 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
25 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
26 </xs:appinfo>
27 <xs:documentation>
28 Defines a COM+ partition. If this element is a child of a
29 Component element, the partition will be created in association with this
30 component. If the element is a child of any of the Fragment, Module, or Package
31 elements it is considered to be a locater, referencing an existing partition.
32 </xs:documentation>
33 </xs:annotation>
34 <xs:complexType>
35 <xs:sequence>
36 <xs:choice minOccurs="0" maxOccurs="unbounded">
37 <xs:element ref="ComPlusPartitionRole" />
38 <xs:element ref="ComPlusPartitionUser" />
39 <xs:element ref="ComPlusApplication" />
40 </xs:choice>
41 </xs:sequence>
42 <xs:attribute name="Id" use="required" type="xs:string">
43 <xs:annotation><xs:documentation>
44 Identifier for the element.
45 </xs:documentation></xs:annotation>
46 </xs:attribute>
47 <xs:attribute name="PartitionId" use="optional" type="xs:string">
48 <xs:annotation><xs:documentation>
49 Id for the partition. This attribute can be omitted, in
50 which case an id will be generated on install. If the element is a locater,
51 this attribute can be omitted if a value is provided for the Name attribute.
52 </xs:documentation></xs:annotation>
53 </xs:attribute>
54 <xs:attribute name="Name" use="optional" type="xs:string">
55 <xs:annotation><xs:documentation>
56 Name of the partition. This attribute can be omitted if
57 the element is a locater, and a value is provided for the PartitionId
58 attribute.
59 </xs:documentation></xs:annotation>
60 </xs:attribute>
61 <xs:attribute name="Changeable" use="optional" type="wxs:YesNoTypeUnion" />
62 <xs:attribute name="Deleteable" use="optional" type="wxs:YesNoTypeUnion" />
63 <xs:attribute name="Description" use="optional" type="xs:string" />
64 </xs:complexType>
65 </xs:element>
66
67 <xs:element name="ComPlusPartitionRole">
68 <xs:annotation>
69 <xs:appinfo>
70 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
71 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
72 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
73 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
74 </xs:appinfo>
75 <xs:documentation>
76 Defines a COM+ partition role. Partition roles can not be
77 created; this element can only be used as a locater to reference an existing
78 role.
79 </xs:documentation>
80 </xs:annotation>
81 <xs:complexType>
82 <xs:sequence>
83 <xs:choice minOccurs="0" maxOccurs="unbounded">
84 <xs:element ref="ComPlusUserInPartitionRole" />
85 <xs:element ref="ComPlusGroupInPartitionRole" />
86 </xs:choice>
87 </xs:sequence>
88 <xs:attribute name="Id" use="required" type="xs:string">
89 <xs:annotation><xs:documentation>
90 Identifier for the element.
91 </xs:documentation></xs:annotation>
92 </xs:attribute>
93 <xs:attribute name="Partition" use="optional" type="xs:string">
94 <xs:annotation><xs:documentation>
95 The id of a ComPlusPartition element representing the partition
96 the role belongs to.
97 </xs:documentation></xs:annotation>
98 </xs:attribute>
99 <xs:attribute name="Name" use="required" type="xs:string">
100 <xs:annotation><xs:documentation>
101 Name of the partition role.
102 </xs:documentation></xs:annotation>
103 </xs:attribute>
104 </xs:complexType>
105 </xs:element>
106
107 <xs:element name="ComPlusUserInPartitionRole">
108 <xs:annotation>
109 <xs:appinfo>
110 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
111 </xs:appinfo>
112 <xs:documentation>
113 This element represents a user membership in a partition
114 role. When the parent component of this element is installed, the user will be
115 added to the associated partition role.
116 </xs:documentation>
117 </xs:annotation>
118 <xs:complexType>
119 <xs:attribute name="Id" use="required" type="xs:string">
120 <xs:annotation><xs:documentation>
121 Identifier for the element.
122 </xs:documentation></xs:annotation>
123 </xs:attribute>
124 <xs:attribute name="PartitionRole" use="optional" type="xs:string">
125 <xs:annotation><xs:documentation>
126 The id of a ComPlusPartitionRole element representing the
127 partition the user should be added to.
128 </xs:documentation></xs:annotation>
129 </xs:attribute>
130 <xs:attribute name="User" use="required" type="xs:string">
131 <xs:annotation><xs:documentation>
132 Foreign key into the User table.
133 </xs:documentation></xs:annotation>
134 </xs:attribute>
135 </xs:complexType>
136 </xs:element>
137
138 <xs:element name="ComPlusGroupInPartitionRole">
139 <xs:annotation>
140 <xs:appinfo>
141 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
142 </xs:appinfo>
143 <xs:documentation>
144 This element represents a security group membership in a
145 partition role. When the parent component of this element is installed, the
146 security group will be added to the associated partition role.
147 </xs:documentation>
148 </xs:annotation>
149 <xs:complexType>
150 <xs:attribute name="Id" use="required" type="xs:string">
151 <xs:annotation><xs:documentation>
152 Identifier for the element.
153 </xs:documentation></xs:annotation>
154 </xs:attribute>
155 <xs:attribute name="PartitionRole" use="optional" type="xs:string">
156 <xs:annotation><xs:documentation>
157 The id of a ComPlusPartitionRole element representing the
158 partition the user should be added to.
159 </xs:documentation></xs:annotation>
160 </xs:attribute>
161 <xs:attribute name="Group" use="required" type="xs:string">
162 <xs:annotation><xs:documentation>
163 Foreign key into the Group table.
164 </xs:documentation></xs:annotation>
165 </xs:attribute>
166 </xs:complexType>
167 </xs:element>
168
169 <xs:element name="ComPlusPartitionUser">
170 <xs:annotation>
171 <xs:appinfo>
172 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
173 </xs:appinfo>
174 <xs:documentation>
175 Represents a default partition definition for a user. When
176 the parent component of this element is installed, the default partition of the
177 user will be set to the referenced partition.
178 </xs:documentation>
179 </xs:annotation>
180 <xs:complexType>
181 <xs:attribute name="Id" use="required" type="xs:string">
182 <xs:annotation><xs:documentation>
183 Identifier for the element.
184 </xs:documentation></xs:annotation>
185 </xs:attribute>
186 <xs:attribute name="Partition" use="optional" type="xs:string">
187 <xs:annotation><xs:documentation>
188 The id of a ComPlusPartition element representing the
189 partition that will be the default partition for the user.
190 </xs:documentation></xs:annotation>
191 </xs:attribute>
192 <xs:attribute name="User" use="required" type="xs:string">
193 <xs:annotation><xs:documentation>
194 Foreign key into the User table.
195 </xs:documentation></xs:annotation>
196 </xs:attribute>
197 </xs:complexType>
198 </xs:element>
199
200 <xs:element name="ComPlusApplication">
201 <xs:annotation>
202 <xs:appinfo>
203 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
204 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
205 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
206 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
207 </xs:appinfo>
208 <xs:documentation>
209 Defines a COM+ application. If this element is a descendent
210 of a Component element, the application will be created in association with
211 this component. If the element is a child of any of the Fragment, Module, or
212 Package elements it is considered to be a locater, referencing an existing
213 application.
214
215 If the element is a child of a ComPlusPartition element,
216 or have its Partition attribute set, the application will be installed under
217 the referenced partition.
218 </xs:documentation>
219 </xs:annotation>
220 <xs:complexType>
221 <xs:sequence>
222 <xs:choice minOccurs="0" maxOccurs="unbounded">
223 <xs:element ref="ComPlusApplicationRole" />
224 <xs:element ref="ComPlusAssembly" />
225 </xs:choice>
226 </xs:sequence>
227 <xs:attribute name="Id" use="required" type="xs:string">
228 <xs:annotation><xs:documentation>
229 Identifier for the element.
230 </xs:documentation></xs:annotation>
231 </xs:attribute>
232 <xs:attribute name="Partition" use="optional" type="xs:string">
233 <xs:annotation><xs:documentation>
234 If the element is not a child of a ComPlusPartition
235 element, this attribute can be provided with the id of a ComPlusPartition
236 element representing the partition the application belongs to.
237 </xs:documentation></xs:annotation>
238 </xs:attribute>
239 <xs:attribute name="ApplicationId" use="optional" type="xs:string">
240 <xs:annotation><xs:documentation>
241 Id for the application. This attribute can be omitted, in
242 which case an id will be generated on install. If the element is a locater,
243 this attribute can be omitted if a value is provided for the Name attribute.
244 </xs:documentation></xs:annotation>
245 </xs:attribute>
246 <xs:attribute name="Name" use="optional" type="xs:string">
247 <xs:annotation><xs:documentation>
248 Name of the application. This attribute can be omitted if
249 the element is a locater, and a value is provided for the PartitionId
250 attribute.
251 </xs:documentation></xs:annotation>
252 </xs:attribute>
253 <xs:attribute name="ThreeGigSupportEnabled" use="optional" type="wxs:YesNoTypeUnion" />
254 <xs:attribute name="AccessChecksLevel" use="optional">
255 <xs:simpleType>
256 <xs:restriction base="xs:NMTOKEN">
257 <xs:enumeration value="applicationLevel" />
258 <xs:enumeration value="applicationComponentLevel" />
259 </xs:restriction>
260 </xs:simpleType>
261 </xs:attribute>
262 <xs:attribute name="Activation" use="optional">
263 <xs:simpleType>
264 <xs:restriction base="xs:NMTOKEN">
265 <xs:enumeration value="inproc" />
266 <xs:enumeration value="local" />
267 </xs:restriction>
268 </xs:simpleType>
269 </xs:attribute>
270 <xs:attribute name="ApplicationAccessChecksEnabled" use="optional" type="wxs:YesNoTypeUnion" />
271 <xs:attribute name="ApplicationDirectory" use="optional" type="xs:string" />
272 <xs:attribute name="Authentication" use="optional">
273 <xs:simpleType>
274 <xs:restriction base="xs:NMTOKEN">
275 <xs:enumeration value="default" />
276 <xs:enumeration value="none" />
277 <xs:enumeration value="connect" />
278 <xs:enumeration value="call" />
279 <xs:enumeration value="packet" />
280 <xs:enumeration value="integrity" />
281 <xs:enumeration value="privacy" />
282 </xs:restriction>
283 </xs:simpleType>
284 </xs:attribute>
285 <xs:attribute name="AuthenticationCapability" use="optional">
286 <xs:simpleType>
287 <xs:restriction base="xs:NMTOKEN">
288 <xs:enumeration value="none" />
289 <xs:enumeration value="secureReference" />
290 <xs:enumeration value="staticCloaking" />
291 <xs:enumeration value="dynamicCloaking" />
292 </xs:restriction>
293 </xs:simpleType>
294 </xs:attribute>
295 <xs:attribute name="Changeable" use="optional" type="wxs:YesNoTypeUnion" />
296 <xs:attribute name="CommandLine" use="optional" type="xs:string" />
297 <xs:attribute name="ConcurrentApps" use="optional" type="xs:int" />
298 <xs:attribute name="CreatedBy" use="optional" type="xs:string" />
299 <xs:attribute name="CRMEnabled" use="optional" type="wxs:YesNoTypeUnion" />
300 <xs:attribute name="CRMLogFile" use="optional" type="xs:string" />
301 <xs:attribute name="Deleteable" use="optional" type="wxs:YesNoTypeUnion" />
302 <xs:attribute name="Description" use="optional" type="xs:string" />
303 <xs:attribute name="DumpEnabled" use="optional" type="wxs:YesNoTypeUnion" />
304 <xs:attribute name="DumpOnException" use="optional" type="wxs:YesNoTypeUnion" />
305 <xs:attribute name="DumpOnFailfast" use="optional" type="wxs:YesNoTypeUnion" />
306 <xs:attribute name="DumpPath" use="optional" type="xs:string" />
307 <xs:attribute name="EventsEnabled" use="optional" type="wxs:YesNoTypeUnion" />
308 <xs:attribute name="Identity" use="optional" type="xs:string" />
309 <xs:attribute name="ImpersonationLevel" use="optional">
310 <xs:simpleType>
311 <xs:restriction base="xs:NMTOKEN">
312 <xs:enumeration value="anonymous" />
313 <xs:enumeration value="identify" />
314 <xs:enumeration value="impersonate" />
315 <xs:enumeration value="delegate" />
316 </xs:restriction>
317 </xs:simpleType>
318 </xs:attribute>
319 <xs:attribute name="IsEnabled" use="optional" type="wxs:YesNoTypeUnion" />
320 <xs:attribute name="MaxDumpCount" use="optional" type="xs:int" />
321 <xs:attribute name="Password" use="optional" type="xs:string" />
322 <xs:attribute name="QCAuthenticateMsgs" use="optional">
323 <xs:simpleType>
324 <xs:restriction base="xs:NMTOKEN">
325 <xs:enumeration value="secureApps" />
326 <xs:enumeration value="off" />
327 <xs:enumeration value="on" />
328 </xs:restriction>
329 </xs:simpleType>
330 </xs:attribute>
331 <xs:attribute name="QCListenerMaxThreads" use="optional" type="xs:int" />
332 <xs:attribute name="QueueListenerEnabled" use="optional" type="wxs:YesNoTypeUnion" />
333 <xs:attribute name="QueuingEnabled" use="optional" type="wxs:YesNoTypeUnion" />
334 <xs:attribute name="RecycleActivationLimit" use="optional" type="xs:int" />
335 <xs:attribute name="RecycleCallLimit" use="optional" type="xs:int" />
336 <xs:attribute name="RecycleExpirationTimeout" use="optional" type="xs:int" />
337 <xs:attribute name="RecycleLifetimeLimit" use="optional" type="xs:int" />
338 <xs:attribute name="RecycleMemoryLimit" use="optional" type="xs:int" />
339 <xs:attribute name="Replicable" use="optional" type="wxs:YesNoTypeUnion" />
340 <xs:attribute name="RunForever" use="optional" type="wxs:YesNoTypeUnion" />
341 <xs:attribute name="ShutdownAfter" use="optional" type="xs:int" />
342 <xs:attribute name="SoapActivated" use="optional" type="wxs:YesNoTypeUnion" />
343 <xs:attribute name="SoapBaseUrl" use="optional" type="xs:string" />
344 <xs:attribute name="SoapMailTo" use="optional" type="xs:string" />
345 <xs:attribute name="SoapVRoot" use="optional" type="xs:string" />
346 <xs:attribute name="SRPEnabled" use="optional" type="wxs:YesNoTypeUnion" />
347 <xs:attribute name="SRPTrustLevel" use="optional">
348 <xs:simpleType>
349 <xs:restriction base="xs:NMTOKEN">
350 <xs:enumeration value="disallowed" />
351 <xs:enumeration value="fullyTrusted" />
352 </xs:restriction>
353 </xs:simpleType>
354 </xs:attribute>
355 </xs:complexType>
356 </xs:element>
357
358 <xs:element name="ComPlusApplicationRole">
359 <xs:annotation>
360 <xs:appinfo>
361 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
362 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
363 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
364 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
365 </xs:appinfo>
366 <xs:documentation>
367 Defines an application role. If this element is a descendent
368 of a Component element, the application role will be created in association
369 with this component. If the element is a child of any of the Fragment, Module,
370 or Package elements it is considered to be a locater, referencing an existing
371 application role.
372 </xs:documentation>
373 </xs:annotation>
374 <xs:complexType>
375 <xs:sequence>
376 <xs:choice minOccurs="0" maxOccurs="unbounded">
377 <xs:element ref="ComPlusUserInApplicationRole" />
378 <xs:element ref="ComPlusGroupInApplicationRole" />
379 </xs:choice>
380 </xs:sequence>
381 <xs:attribute name="Id" use="required" type="xs:string">
382 <xs:annotation><xs:documentation>
383 Identifier for the element.
384 </xs:documentation></xs:annotation>
385 </xs:attribute>
386 <xs:attribute name="Application" use="optional" type="xs:string">
387 <xs:annotation><xs:documentation>
388 If the element is not a child of a ComPlusApplication
389 element, this attribute should be provided with the id of a
390 ComPlusApplication element representing the application the role belongs to.
391 </xs:documentation></xs:annotation>
392 </xs:attribute>
393 <xs:attribute name="Name" use="required" type="xs:string">
394 <xs:annotation><xs:documentation>
395 Name of the application role.
396 </xs:documentation></xs:annotation>
397 </xs:attribute>
398 <xs:attribute name="Description" use="optional" type="xs:string" />
399 </xs:complexType>
400 </xs:element>
401
402 <xs:element name="ComPlusUserInApplicationRole">
403 <xs:annotation>
404 <xs:appinfo>
405 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
406 </xs:appinfo>
407 <xs:documentation>
408 This element represents a user membership in an
409 application role. When the parent component of this element is installed, the
410 user will be added to the associated application role. This element must be a descendent
411 of a Component element; it can not be a child of a ComPlusApplicationRole
412 locater element. To reference a locater element use the ApplicationRole
413 attribute.
414 </xs:documentation>
415 </xs:annotation>
416 <xs:complexType>
417 <xs:attribute name="Id" use="required" type="xs:string">
418 <xs:annotation><xs:documentation>
419 Identifier for the element.
420 </xs:documentation></xs:annotation>
421 </xs:attribute>
422 <xs:attribute name="ApplicationRole" use="optional" type="xs:string">
423 <xs:annotation><xs:documentation>
424 If the element is not a child of a ComPlusApplicationRole
425 element, this attribute should be provided with the id of a
426 ComPlusApplicationRole element representing the application role the user is
427 to be added to.
428 </xs:documentation></xs:annotation>
429 </xs:attribute>
430 <xs:attribute name="User" use="required" type="xs:string">
431 <xs:annotation><xs:documentation>
432 Foreign key into the User table.
433 </xs:documentation></xs:annotation>
434 </xs:attribute>
435 </xs:complexType>
436 </xs:element>
437
438 <xs:element name="ComPlusGroupInApplicationRole">
439 <xs:annotation>
440 <xs:appinfo>
441 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
442 </xs:appinfo>
443 <xs:documentation>
444 This element represents a security group membership in an
445 application role. When the parent component of this element is installed, the
446 user will be added to the associated application role. This element must be a
447 descendent of a Component element; it can not be a child of a
448 ComPlusApplicationRole locater element. To reference a locater element use the
449 ApplicationRole attribute.
450 </xs:documentation>
451 </xs:annotation>
452 <xs:complexType>
453 <xs:attribute name="Id" use="required" type="xs:string">
454 <xs:annotation><xs:documentation>
455 Identifier for the element.
456 </xs:documentation></xs:annotation>
457 </xs:attribute>
458 <xs:attribute name="ApplicationRole" use="optional" type="xs:string">
459 <xs:annotation><xs:documentation>
460 If the element is not a child of a ComPlusApplicationRole
461 element, this attribute should be provided with the id of a
462 ComPlusApplicationRole element representing the application role the user is
463 to be added to.
464 </xs:documentation></xs:annotation>
465 </xs:attribute>
466 <xs:attribute name="Group" use="required" type="xs:string">
467 <xs:annotation><xs:documentation>
468 Foreign key into the Group table.
469 </xs:documentation></xs:annotation>
470 </xs:attribute>
471 </xs:complexType>
472 </xs:element>
473
474 <xs:element name="ComPlusAssembly">
475 <xs:annotation>
476 <xs:documentation>
477 Represents a DLL or assembly to be registered with COM+. If
478 this element is a child of a ComPlusApplication element, the assembly will be
479 registered in this application. Other ways the Application attribute must be
480 set to an application. The element must be a descendent of a Component element,
481 it can not be a child of a ComPlusApplication locator element.
482 </xs:documentation>
483 <xs:appinfo>
484 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
485 <xse:remarks>
486 <html:p>
487 When installing a native assembly, all components
488 contained in the assembly must be represented as ComPlusComponent elements
489 under this element. Any component not listed will not be removed during
490 uninstall.
491 </html:p>
492
493 <html:p>
494 The fields DllPath, TlbPath and PSDllPath are formatted
495 fields that should contain file paths to there respective file types. A typical
496 value for DllPath for example, should be something like “[#MyAssembly_dll]”,
497 where “MyAssembly_dll” is the key of the dll file in the File table.
498 </html:p>
499
500 <html:p>
501 <html:b>Warning</html:b>: The assembly name provided in the AssemblyName
502 attribute must be a fully specified assembly name, if a partial name is
503 provided a random assembly matching the partial name will be selected.
504 </html:p>
505 </xse:remarks>
506 </xs:appinfo>
507 </xs:annotation>
508 <xs:complexType>
509 <xs:sequence>
510 <xs:choice minOccurs="0" maxOccurs="unbounded">
511 <xs:element ref="ComPlusAssemblyDependency" />
512 <xs:element ref="ComPlusComponent" />
513 </xs:choice>
514 </xs:sequence>
515 <xs:attribute name="Id" use="required" type="xs:string">
516 <xs:annotation><xs:documentation>
517 Identifier for the element.
518 </xs:documentation></xs:annotation>
519 </xs:attribute>
520 <xs:attribute name="Application" use="optional" type="xs:string">
521 <xs:annotation><xs:documentation>
522 If the element is not a child of a ComPlusApplication
523 element, this attribute should be provided with the id of a ComPlusApplication
524 element representing the application the assembly is to be registered in.
525 This attribute can be omitted for a .NET assembly even if the application is
526 not a child of a ComPlusApplication element.
527 </xs:documentation></xs:annotation>
528 </xs:attribute>
529 <xs:attribute name="AssemblyName" use="optional" type="xs:string">
530 <xs:annotation><xs:documentation>
531 The name of the assembly used to identify the assembly in
532 the GAC. This attribute can be provided only if DllPathFromGAC is set to
533 “yes”.
534 </xs:documentation></xs:annotation>
535 </xs:attribute>
536 <xs:attribute name="DllPath" use="optional" type="xs:string">
537 <xs:annotation><xs:documentation>
538 The path to locate the assembly DLL during registration.
539 This attribute should be provided if DllPathFromGAC is not set to “yes”.
540 </xs:documentation></xs:annotation>
541 </xs:attribute>
542 <xs:attribute name="TlbPath" use="optional" type="xs:string">
543 <xs:annotation><xs:documentation>
544 An optional path to an external type lib for the assembly.
545 This attribute must be provided if the Type attribute is set to “.net”.
546 </xs:documentation></xs:annotation>
547 </xs:attribute>
548 <xs:attribute name="PSDllPath" use="optional" type="xs:string">
549 <xs:annotation><xs:documentation>
550 An optional path to an external proxy/stub DLL for the assembly.
551 </xs:documentation></xs:annotation>
552 </xs:attribute>
553 <xs:attribute name="Type" use="required">
554 <xs:annotation><xs:documentation>
555 </xs:documentation></xs:annotation>
556 <xs:simpleType>
557 <xs:restriction base="xs:NMTOKEN">
558 <xs:enumeration value="native" />
559 <xs:enumeration value=".net" />
560 </xs:restriction>
561 </xs:simpleType>
562 </xs:attribute>
563 <xs:attribute name="EventClass" use="optional" type="wxs:YesNoTypeUnion">
564 <xs:annotation><xs:documentation>
565 Indicates that the assembly is to be installed as an event
566 class DLL. This attribute is only valid for native assemblies. The assembly
567 will be installed with the COM+ catalog’s InstallEventClass() function.
568 </xs:documentation></xs:annotation>
569 </xs:attribute>
570 <xs:attribute name="DllPathFromGAC" use="optional" type="wxs:YesNoTypeUnion">
571 <xs:annotation><xs:documentation>
572 Indicates that the DLL path should be extracted from the
573 GAC instead for being provided in the DllPath attribute. If this attribute is
574 set to “yes”, the name of the assembly can be provided using the AssemblyName
575 attribute. Or, if this AssemblyName attribute is missing, the name will be
576 extracted from the MsiAssemblyName table using the id of the parent Component
577 element.
578 </xs:documentation></xs:annotation>
579 </xs:attribute>
580 <xs:attribute name="RegisterInCommit" use="optional" type="wxs:YesNoTypeUnion">
581 <xs:annotation><xs:documentation>
582 Indicates that the assembly should be installed in the
583 commit custom action instead of the normal deferred custom action. This is
584 necessary when installing .NET assemblies to the GAC in the same
585 installation, as the assemblies are not visible in the GAC until after the
586 InstallFinalize action has run.
587 </xs:documentation></xs:annotation>
588 </xs:attribute>
589 </xs:complexType>
590 </xs:element>
591
592 <xs:element name="ComPlusAssemblyDependency">
593 <xs:annotation>
594 <xs:documentation>
595 Defines a dependency between two assemblies. This element
596 affects the order in which assembles are registered. Any assemblies referenced
597 by this element are guarantied to be registered before, and unregistered after,
598 the assembly referenced by the parent ComPlusAssembly element.
599 </xs:documentation>
600 <xs:appinfo>
601 <xse:remarks>
602 It is only necessary to explicitly specify dependencies between
603 assemblies contained in the same package (MSI or MSM). Assemblies merged in to a
604 package from a merge module will always be installed before any assemblies
605 specified in the base package. Assemblies merged in from different merge
606 modules are sequenced using the ModuleDependency MSI table. It is not possible
607 to have cross dependencies between merge modules or have an assembly in a merge
608 module depend on an assembly in the base package.
609 </xse:remarks>
610 </xs:appinfo>
611 </xs:annotation>
612 <xs:complexType>
613 <xs:attribute name="RequiredAssembly" use="required" type="xs:string">
614 <xs:annotation><xs:documentation>
615 Reference to the id of the assembly required by the parent
616 ComPlusAssembly element.
617 </xs:documentation></xs:annotation>
618 </xs:attribute>
619 </xs:complexType>
620 </xs:element>
621
622 <xs:element name="ComPlusComponent">
623 <xs:annotation><xs:documentation>
624 Represents a COM+ component in an assembly.
625 </xs:documentation></xs:annotation>
626 <xs:complexType>
627 <xs:sequence>
628 <xs:choice minOccurs="0" maxOccurs="unbounded">
629 <xs:element ref="ComPlusRoleForComponent" />
630 <xs:element ref="ComPlusInterface" />
631 <xs:element ref="ComPlusSubscription" />
632 </xs:choice>
633 </xs:sequence>
634 <xs:attribute name="Id" use="required" type="xs:string">
635 <xs:annotation><xs:documentation>
636 Identifier for the element.
637 </xs:documentation></xs:annotation>
638 </xs:attribute>
639 <xs:attribute name="CLSID" use="required" type="uuid">
640 <xs:annotation><xs:documentation>
641 CLSID of the component.
642 </xs:documentation></xs:annotation>
643 </xs:attribute>
644 <xs:attribute name="AllowInprocSubscribers" use="optional" type="wxs:YesNoTypeUnion" />
645 <xs:attribute name="ComponentAccessChecksEnabled" use="optional" type="wxs:YesNoTypeUnion" />
646 <xs:attribute name="ComponentTransactionTimeout" use="optional" type="xs:int" />
647 <xs:attribute name="ComponentTransactionTimeoutEnabled" use="optional" type="wxs:YesNoTypeUnion" />
648 <xs:attribute name="COMTIIntrinsics" use="optional" type="wxs:YesNoTypeUnion" />
649 <xs:attribute name="ConstructionEnabled" use="optional" type="wxs:YesNoTypeUnion" />
650 <xs:attribute name="ConstructorString" use="optional" type="xs:string" />
651 <xs:attribute name="CreationTimeout" use="optional" type="xs:int" />
652 <xs:attribute name="Description" use="optional" type="xs:string" />
653 <xs:attribute name="EventTrackingEnabled" use="optional" type="wxs:YesNoTypeUnion" />
654 <xs:attribute name="ExceptionClass" use="optional" type="xs:string" />
655 <xs:attribute name="FireInParallel" use="optional" type="wxs:YesNoTypeUnion" />
656 <xs:attribute name="IISIntrinsics" use="optional" type="wxs:YesNoTypeUnion" />
657 <xs:attribute name="InitializesServerApplication" use="optional" type="wxs:YesNoTypeUnion" />
658 <xs:attribute name="IsEnabled" use="optional" type="wxs:YesNoTypeUnion" />
659 <xs:attribute name="IsPrivateComponent" use="optional" type="wxs:YesNoTypeUnion" />
660 <xs:attribute name="JustInTimeActivation" use="optional" type="wxs:YesNoTypeUnion" />
661 <xs:attribute name="LoadBalancingSupported" use="optional" type="wxs:YesNoTypeUnion" />
662 <xs:attribute name="MaxPoolSize" use="optional" type="xs:int" />
663 <xs:attribute name="MinPoolSize" use="optional" type="xs:int" />
664 <xs:attribute name="MultiInterfacePublisherFilterCLSID" use="optional" type="xs:string" />
665 <xs:attribute name="MustRunInClientContext" use="optional" type="wxs:YesNoTypeUnion" />
666 <xs:attribute name="MustRunInDefaultContext" use="optional" type="wxs:YesNoTypeUnion" />
667 <xs:attribute name="ObjectPoolingEnabled" use="optional" type="wxs:YesNoTypeUnion" />
668 <xs:attribute name="PublisherID" use="optional" type="xs:string" />
669 <xs:attribute name="SoapAssemblyName" use="optional" type="xs:string" />
670 <xs:attribute name="SoapTypeName" use="optional" type="xs:string" />
671 <xs:attribute name="Synchronization" use="optional">
672 <xs:simpleType>
673 <xs:restriction base="xs:NMTOKEN">
674 <xs:enumeration value="ignored" />
675 <xs:enumeration value="none" />
676 <xs:enumeration value="supported" />
677 <xs:enumeration value="required" />
678 <xs:enumeration value="requiresNew" />
679 </xs:restriction>
680 </xs:simpleType>
681 </xs:attribute>
682 <xs:attribute name="Transaction" use="optional">
683 <xs:simpleType>
684 <xs:restriction base="xs:NMTOKEN">
685 <xs:enumeration value="ignored" />
686 <xs:enumeration value="none" />
687 <xs:enumeration value="supported" />
688 <xs:enumeration value="required" />
689 <xs:enumeration value="requiresNew" />
690 </xs:restriction>
691 </xs:simpleType>
692 </xs:attribute>
693 <xs:attribute name="TxIsolationLevel" use="optional">
694 <xs:simpleType>
695 <xs:restriction base="xs:NMTOKEN">
696 <xs:enumeration value="any" />
697 <xs:enumeration value="readUnCommitted" />
698 <xs:enumeration value="readCommitted" />
699 <xs:enumeration value="repeatableRead" />
700 <xs:enumeration value="serializable" />
701 </xs:restriction>
702 </xs:simpleType>
703 </xs:attribute>
704 </xs:complexType>
705 </xs:element>
706
707 <xs:element name="ComPlusRoleForComponent">
708 <xs:annotation>
709 <xs:appinfo>
710 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
711 </xs:appinfo>
712 <xs:documentation>
713 Represents a role assignment to a COM+ component.
714 </xs:documentation>
715 </xs:annotation>
716 <xs:complexType>
717 <xs:attribute name="Id" use="required" type="xs:string">
718 <xs:annotation><xs:documentation>
719 Identifier for the element.
720 </xs:documentation></xs:annotation>
721 </xs:attribute>
722 <xs:attribute name="Component" use="optional" type="xs:string">
723 <xs:annotation><xs:documentation>
724 If the element is not a child of a ComPlusComponent
725 element, this attribute should be provided with the id of a ComPlusComponent
726 element representing the component the role is to be added to.
727 </xs:documentation></xs:annotation>
728 </xs:attribute>
729 <xs:attribute name="ApplicationRole" use="required" type="xs:string">
730 <xs:annotation><xs:documentation>
731 Id of the ComPlusApplicationRole element representing the
732 role that shall be granted access to the component.
733 </xs:documentation></xs:annotation>
734 </xs:attribute>
735 </xs:complexType>
736 </xs:element>
737
738 <xs:element name="ComPlusInterface">
739 <xs:annotation><xs:documentation>
740 Represents an interface for a COM+ component.
741 </xs:documentation></xs:annotation>
742 <xs:complexType>
743 <xs:sequence>
744 <xs:choice minOccurs="0" maxOccurs="unbounded">
745 <xs:element ref="ComPlusRoleForInterface" />
746 <xs:element ref="ComPlusMethod" />
747 </xs:choice>
748 </xs:sequence>
749 <xs:attribute name="Id" use="required" type="xs:string">
750 <xs:annotation><xs:documentation>
751 Identifier for the element.
752 </xs:documentation></xs:annotation>
753 </xs:attribute>
754 <xs:attribute name="IID" use="required" type="uuid">
755 <xs:annotation><xs:documentation>
756 IID of the interface.
757 </xs:documentation></xs:annotation>
758 </xs:attribute>
759 <xs:attribute name="Description" use="optional" type="xs:string" />
760 <xs:attribute name="QueuingEnabled" use="optional" type="wxs:YesNoTypeUnion" />
761 </xs:complexType>
762 </xs:element>
763
764 <xs:element name="ComPlusRoleForInterface">
765 <xs:annotation>
766 <xs:appinfo>
767 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
768 </xs:appinfo>
769 <xs:documentation>
770 Represents a role assignment to an interface.
771 </xs:documentation>
772 </xs:annotation>
773 <xs:complexType>
774 <xs:attribute name="Id" use="required" type="xs:string">
775 <xs:annotation><xs:documentation>
776 Identifier for the element.
777 </xs:documentation></xs:annotation>
778 </xs:attribute>
779 <xs:attribute name="Interface" use="optional" type="xs:string">
780 <xs:annotation><xs:documentation>
781 If the element is not a child of a ComPlusInterface
782 element, this attribute should be provided with the id of a ComPlusInterface
783 element representing the interface the role is to be added to.
784 </xs:documentation></xs:annotation>
785 </xs:attribute>
786 <xs:attribute name="ApplicationRole" use="required" type="xs:string">
787 <xs:annotation><xs:documentation>
788 Id of the ComPlusApplicationRole element representing the
789 role that shall be granted access to the interface.
790 </xs:documentation></xs:annotation>
791 </xs:attribute>
792 </xs:complexType>
793 </xs:element>
794
795 <xs:element name="ComPlusMethod">
796 <xs:annotation>
797 <xs:documentation>
798 Represents a method for an interface.
799 </xs:documentation>
800 </xs:annotation>
801 <xs:complexType>
802 <xs:sequence>
803 <xs:element ref="ComPlusRoleForMethod" minOccurs="0" maxOccurs="unbounded" />
804 </xs:sequence>
805 <xs:attribute name="Id" use="required" type="xs:string">
806 <xs:annotation>
807 <xs:documentation>
808 Identifier for the element.
809 </xs:documentation>
810 </xs:annotation>
811 </xs:attribute>
812 <xs:attribute name="Index" use="optional" type="xs:int">
813 <xs:annotation>
814 <xs:documentation>
815 Dispatch id of the method. If this attribute is not set a
816 value must be provided for the Name attribute.
817 </xs:documentation>
818 </xs:annotation>
819 </xs:attribute>
820 <xs:attribute name="Name" use="optional" type="xs:string">
821 <xs:annotation>
822 <xs:documentation>
823 Name of the method. If this attribute is not set a value
824 must be provided for the Index attribute.
825 </xs:documentation>
826 </xs:annotation>
827 </xs:attribute>
828 <xs:attribute name="AutoComplete" use="optional" type="wxs:YesNoTypeUnion" />
829 <xs:attribute name="Description" use="optional" type="xs:string" />
830 </xs:complexType>
831 </xs:element>
832
833 <xs:element name="ComPlusRoleForMethod">
834 <xs:annotation>
835 <xs:appinfo>
836 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
837 </xs:appinfo>
838 <xs:documentation>
839 Represents a role assignment to a COM+ method.
840 </xs:documentation>
841 </xs:annotation>
842 <xs:complexType>
843 <xs:attribute name="Id" use="required" type="xs:string">
844 <xs:annotation><xs:documentation>
845 Identifier for the element.
846 </xs:documentation></xs:annotation>
847 </xs:attribute>
848 <xs:attribute name="Method" use="optional" type="xs:string">
849 <xs:annotation><xs:documentation>
850 If the element is not a child of a ComPlusMethod element,
851 this attribute should be provided with the id of a ComPlusMethod element
852 representing the method the role is to be added to.
853 </xs:documentation></xs:annotation>
854 </xs:attribute>
855 <xs:attribute name="ApplicationRole" use="required" type="xs:string">
856 <xs:annotation><xs:documentation>
857 Id of the ComPlusApplicationRole element representing the
858 role that shall be granted access to the method.
859 </xs:documentation></xs:annotation>
860 </xs:attribute>
861 </xs:complexType>
862 </xs:element>
863
864 <xs:element name="ComPlusSubscription">
865 <xs:annotation>
866 <xs:appinfo>
867 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
868 </xs:appinfo>
869 <xs:documentation>
870 Defines an event subscription for a COM+ component.
871 </xs:documentation>
872 </xs:annotation>
873 <xs:complexType>
874 <xs:attribute name="Id" use="required" type="xs:string">
875 <xs:annotation><xs:documentation>
876 Identifier for the element.
877 </xs:documentation></xs:annotation>
878 </xs:attribute>
879 <xs:attribute name="Component" use="optional" type="xs:string">
880 <xs:annotation><xs:documentation>
881 If the element is not a child of a ComPlusComponent
882 element, this attribute should be provided with the id of a ComPlusComponent
883 element representing the component the subscription is to be created for.
884 </xs:documentation></xs:annotation>
885 </xs:attribute>
886 <xs:attribute name="SubscriptionId" use="optional" type="xs:string">
887 <xs:annotation><xs:documentation>
888 Id of the subscription. If a value is not provided for
889 this attribute, an id will be generated during installation.
890 </xs:documentation></xs:annotation>
891 </xs:attribute>
892 <xs:attribute name="Name" use="required" type="xs:string">
893 <xs:annotation><xs:documentation>
894 Name of the subscription.
895 </xs:documentation></xs:annotation>
896 </xs:attribute>
897 <xs:attribute name="EventCLSID" use="optional" type="xs:string">
898 <xs:annotation><xs:documentation>
899 CLSID of the event class for the subscription. If a value
900 for this attribute is not provided, a value for the PublisherID attribute
901 must be provided.
902 </xs:documentation></xs:annotation>
903 </xs:attribute>
904 <xs:attribute name="PublisherID" use="optional" type="xs:string">
905 <xs:annotation><xs:documentation>
906 Publisher id for the subscription. If a value for this
907 attribute is not provided, a value for the EventCLSID attribute must be
908 provided.
909 </xs:documentation></xs:annotation>
910 </xs:attribute>
911 <xs:attribute name="Description" use="optional" type="xs:string" />
912 <xs:attribute name="Enabled" use="optional" type="wxs:YesNoTypeUnion" />
913 <xs:attribute name="EventClassPartitionID" use="optional" type="xs:string" />
914 <xs:attribute name="FilterCriteria" use="optional" type="xs:string" />
915 <xs:attribute name="InterfaceID" use="optional" type="xs:string" />
916 <xs:attribute name="MachineName" use="optional" type="xs:string" />
917 <xs:attribute name="MethodName" use="optional" type="xs:string" />
918 <xs:attribute name="PerUser" use="optional" type="wxs:YesNoTypeUnion" />
919 <xs:attribute name="Queued" use="optional" type="wxs:YesNoTypeUnion" />
920 <xs:attribute name="SubscriberMoniker" use="optional" type="xs:string" />
921 <xs:attribute name="UserName" use="optional" type="xs:string" />
922 </xs:complexType>
923 </xs:element>
924
925 <xs:simpleType name="uuid">
926 <xs:annotation>
927 <xs:documentation>Values of this type will look like: "01234567-89AB-CDEF-0123-456789ABCDEF".</xs:documentation>
928 </xs:annotation>
929 <xs:restriction base="xs:string">
930 <xs:pattern value="[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}" />
931 </xs:restriction>
932 </xs:simpleType>
933
934</xs:schema>
diff --git a/src/xsd/dependency.xsd b/src/xsd/dependency.xsd
new file mode 100644
index 00000000..b06e081c
--- /dev/null
+++ b/src/xsd/dependency.xsd
@@ -0,0 +1,40 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
4
5<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
6 xmlns:xse="http://wixtoolset.org/schemas/XmlSchemaExtension"
7 xmlns:wxs="http://wixtoolset.org/schemas/v4/wxs"
8 targetNamespace="http://wixtoolset.org/schemas/v4/wxs/dependency"
9 xmlns="http://wixtoolset.org/schemas/v4/wxs/dependency">
10 <xs:annotation>
11 <xs:documentation>
12 The source code schema for the WiX Toolset Dependency Extension.
13 </xs:documentation>
14 </xs:annotation>
15
16 <xs:import namespace="http://wixtoolset.org/schemas/v4/wxs" />
17
18 <xs:attribute name="Check" type="wxs:YesNoTypeUnion">
19 <xs:annotation>
20 <xs:documentation>
21 When set to "yes", adds a custom action to prompt the user when dependencies are still on the computer. The default is "no".
22 </xs:documentation>
23 <xs:appinfo>
24 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Provides" />
25 </xs:appinfo>
26 </xs:annotation>
27 </xs:attribute>
28
29 <xs:attribute name="Enforce" type="wxs:YesNoTypeUnion">
30 <xs:annotation>
31 <xs:documentation>
32 When set to "yes", adds a custom action to prompt the user when dependencies are missing from the computer. The default is "no".
33 </xs:documentation>
34 <xs:appinfo>
35 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Requires" />
36 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="RequiresRef" />
37 </xs:appinfo>
38 </xs:annotation>
39 </xs:attribute>
40</xs:schema>
diff --git a/src/xsd/difxapp.xsd b/src/xsd/difxapp.xsd
new file mode 100644
index 00000000..f918faee
--- /dev/null
+++ b/src/xsd/difxapp.xsd
@@ -0,0 +1,119 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
4
5<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
6 xmlns:xse="http://wixtoolset.org/schemas/XmlSchemaExtension"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:wxs="http://wixtoolset.org/schemas/v4/wxs"
9 targetNamespace="http://wixtoolset.org/schemas/v4/wxs/difxapp"
10 xmlns="http://wixtoolset.org/schemas/v4/wxs/difxapp">
11 <xs:annotation>
12 <xs:documentation>
13 The source code schema for the WiX Toolset Driver Install Frameworks for Applications Extension.
14
15 ## WixToolset.DifxApp.wixext was deprecated in WiX v4
16
17 ## WixToolset.DifxApp.wixext was removed in WiX v5
18 </xs:documentation>
19 </xs:annotation>
20
21 <xs:import namespace="http://wixtoolset.org/schemas/v4/wxs" />
22
23 <xs:element name="Driver">
24 <xs:annotation>
25 <xs:appinfo>
26 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
27 </xs:appinfo>
28 <xs:documentation>
29 Installs a driver. To use this element, you need to reference the WixDifxAppExtension extension and add the
30 .wixlib appropriate for the target platform (difxapp_x86.wixlib or difxapp_x64.wixlib)
31 to your project.
32 </xs:documentation>
33 </xs:annotation>
34 <xs:complexType>
35 <xs:choice minOccurs="0" maxOccurs="unbounded">
36 <xs:any namespace="##other" processContents="lax">
37 <xs:annotation>
38 <xs:documentation>
39 Extensibility point in the WiX XML Schema. Schema extensions can register additional
40 elements at this point in the schema.
41 </xs:documentation>
42 </xs:annotation>
43 </xs:any>
44 </xs:choice>
45 <xs:attribute name="AddRemovePrograms" type="wxs:YesNoTypeUnion">
46 <xs:annotation>
47 <xs:documentation>
48 Specifies that the DIFxApp CustomActions should add an entry in the Add/Remove Programs Control
49 Panel applet. The default is 'yes'.
50 </xs:documentation>
51 </xs:annotation>
52 </xs:attribute>
53 <xs:attribute name="DeleteFiles" type="wxs:YesNoTypeUnion">
54 <xs:annotation>
55 <xs:documentation>
56 If set to "yes", configures DIFxApp to delete binary files that were copied to the system from the driver
57 store when a driver package was installed. If this attribute is set to "no" or not present, DIFxApp does not
58 remove these files from a system. Note that configuring DIFxApp to delete these files is controlled by the
59 Flags entry value of the component that represents the driver package in the MsiDriverPackages custom table.
60 Setting DeleteFiles to "yes" sets the corresponding bit in the Flags entry value. Setting DeleteFiles to "no"
61 clears the corresponding bit in the Flags entry value. If this attribute is not present, DIFxApp uses a
62 default value of "no".
63 </xs:documentation>
64 </xs:annotation>
65 </xs:attribute>
66 <xs:attribute name="ForceInstall" type="wxs:YesNoTypeUnion">
67 <xs:annotation>
68 <xs:documentation>
69 Specifies that the DIFxApp CustomActions should force the installation of a new Plug and Play driver
70 on a device, even if the currently installed driver on the device is a better match than the new driver.
71 Specifying 'no' is an excellent way to ensure the DIFxApp CustomActions recognize the Component contains
72 a driver for installation. The default is null which means the Component does not install a driver via
73 DIFxApp CustomActions. See http://www.microsoft.com/whdc/driver/install/difxtools.mspx for more information.
74 </xs:documentation>
75 </xs:annotation>
76 </xs:attribute>
77 <xs:attribute name="Legacy" type="wxs:YesNoTypeUnion">
78 <xs:annotation>
79 <xs:documentation>
80 If set to "yes", configures DIFxApp to install unsigned driver packages and driver packages with missing
81 files. For more information, see "Installing Unsigned Driver Packages in Legacy Mode" earlier in this paper.
82 If this attribute is set to "no" or not present, DIFxApp will install only signed driver packages. Note
83 that configuring DIFxApp to install unsigned drivers is controlled by the Flags entry value of the component
84 that represents the driver package in the MsiDriverPackages custom table. Setting Legacy to "yes" sets
85 the corresponding bit in the Flags entry value. Setting Legacy to "no" clears the bit in the Flags
86 entry value that configures DIFxApp to install unsigned driver packages. If this attribute is not present,
87 DIFxApp uses a default value of "no".
88 </xs:documentation>
89 </xs:annotation>
90 </xs:attribute>
91 <xs:attribute name="PlugAndPlayPrompt" type="wxs:YesNoTypeUnion">
92 <xs:annotation>
93 <xs:documentation>
94 Specifies that the DIFxApp CustomActions should prompt the user to connect the Plug and Play
95 device if it is not connected. The default is 'yes'.
96 </xs:documentation>
97 </xs:annotation>
98 </xs:attribute>
99 <xs:attribute name="Sequence" type="wxs:Integer">
100 <xs:annotation>
101 <xs:documentation>
102 Specifies an optional installation sequence number. DIFxApp CustomActions install the driver packages in
103 an installation package in the order of increasing sequence numbers. The same sequence number can be used
104 for more than one driver; however, the order in which packages with the same sequence number are actually
105 installed cannot be determined.
106 </xs:documentation>
107 </xs:annotation>
108 </xs:attribute>
109 <xs:anyAttribute namespace="##other" processContents="lax">
110 <xs:annotation>
111 <xs:documentation>
112 Extensibility point in the WiX XML Schema. Schema extensions can register additional
113 attributes at this point in the schema.
114 </xs:documentation>
115 </xs:annotation>
116 </xs:anyAttribute>
117 </xs:complexType>
118 </xs:element>
119</xs:schema>
diff --git a/src/xsd/directx.xsd b/src/xsd/directx.xsd
new file mode 100644
index 00000000..efac3587
--- /dev/null
+++ b/src/xsd/directx.xsd
@@ -0,0 +1,53 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
4
5<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
6 xmlns:xse="http://wixtoolset.org/schemas/XmlSchemaExtension"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:wxs="http://wixtoolset.org/schemas/v4/wxs"
9 targetNamespace="http://wixtoolset.org/schemas/v4/wxs/directx"
10 xmlns="http://wixtoolset.org/schemas/v4/wxs/directx">
11 <xs:annotation>
12 <xs:documentation>
13 The source code schema for the WiX Toolset DirectX Extension.
14 </xs:documentation>
15 </xs:annotation>
16
17 <xs:import namespace="http://wixtoolset.org/schemas/v4/wxs" />
18
19 <xs:element name="GetCapabilities">
20 <xs:annotation>
21 <xs:appinfo>
22 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
23 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
24 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
25 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
26 </xs:appinfo>
27 <xs:documentation>
28 Schedules the WixToolset.DirectX.wixext custom action for the current platform to
29 detect DirectX capabilities. For more information, see [DirectX custom actions](../../../tools/wixext/directx).
30 </xs:documentation>
31 </xs:annotation>
32 <xs:complexType>
33 <xs:choice minOccurs="0" maxOccurs="unbounded">
34 <xs:any namespace="##other" processContents="lax">
35 <xs:annotation>
36 <xs:documentation>
37 Extensibility point in the WiX XML Schema. Schema extensions can register additional
38 elements at this point in the schema.
39 </xs:documentation>
40 </xs:annotation>
41 </xs:any>
42 </xs:choice>
43 <xs:anyAttribute namespace="##other" processContents="lax">
44 <xs:annotation>
45 <xs:documentation>
46 Extensibility point in the WiX XML Schema. Schema extensions can register additional
47 attributes at this point in the schema.
48 </xs:documentation>
49 </xs:annotation>
50 </xs:anyAttribute>
51 </xs:complexType>
52 </xs:element>
53</xs:schema>
diff --git a/src/xsd/firewall.xsd b/src/xsd/firewall.xsd
new file mode 100644
index 00000000..fcac0c96
--- /dev/null
+++ b/src/xsd/firewall.xsd
@@ -0,0 +1,578 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
4
5<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
6 xmlns:xse="http://wixtoolset.org/schemas/XmlSchemaExtension"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:wxs="http://wixtoolset.org/schemas/v4/wxs"
9 targetNamespace="http://wixtoolset.org/schemas/v4/wxs/firewall"
10 xmlns="http://wixtoolset.org/schemas/v4/wxs/firewall">
11 <xs:annotation>
12 <xs:documentation>
13 The source code schema for the WiX Toolset Firewall Extension.
14 </xs:documentation>
15 </xs:annotation>
16
17 <xs:import namespace="http://wixtoolset.org/schemas/v4/wxs" />
18
19 <xs:element name="FirewallException">
20 <xs:annotation>
21 <xs:documentation>
22 Registers an exception for a program or a specific port and protocol in the Windows Firewall.
23 For more information about the Windows Firewall, see [Windows Firewall with Advanced Security](https://learn.microsoft.com/en-us/previous-versions/windows/desktop/ics/windows-firewall-advanced-security-start-page).
24 </xs:documentation>
25 <xs:appinfo>
26 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
27 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="File" />
28 </xs:appinfo>
29 </xs:annotation>
30
31 <xs:complexType>
32 <xs:choice minOccurs="0" maxOccurs="unbounded">
33 <xs:annotation>
34 <xs:documentation>
35 Explicitly-listed remote addresses that this exception allows through the
36 firewall.
37 </xs:documentation>
38 </xs:annotation>
39 <xs:element ref="LocalAddress" />
40 <xs:element ref="Interface" />
41 <xs:element ref="InterfaceType" />
42 <xs:element ref="RemoteAddress" />
43 <xs:any namespace="##other" processContents="lax">
44 <xs:annotation>
45 <xs:documentation>
46 Extensibility point in the WiX XML Schema. Schema extensions can register additional
47 elements at this point in the schema.
48 </xs:documentation>
49 </xs:annotation>
50 </xs:any>
51 </xs:choice>
52
53 <xs:attribute name="Id" type="xs:string">
54 <xs:annotation>
55 <xs:documentation>
56 Unique ID of this firewall exception. If the Id is not specified, one will be generated.
57 </xs:documentation>
58 </xs:annotation>
59 </xs:attribute>
60
61 <xs:attribute name="Name" type="xs:string" use="required">
62 <xs:annotation>
63 <xs:documentation>
64 Name of this firewall exception, visible to the user in the firewall
65 control panel.
66 </xs:documentation>
67 </xs:annotation>
68 </xs:attribute>
69
70 <xs:attribute name="Action" type="FirewallActionTypeUnion">
71 <xs:annotation>
72 <xs:documentation>
73 The action for this firewall exception.
74 </xs:documentation>
75 </xs:annotation>
76 </xs:attribute>
77
78 <xs:attribute name="Enabled" type="FirewallYesNoPropertyType">
79 <xs:annotation>
80 <xs:documentation>
81 Indicates whether the firewall exception should be enabled.
82 </xs:documentation>
83 </xs:annotation>
84 </xs:attribute>
85
86 <xs:attribute name="Grouping" type="xs:string">
87 <xs:annotation>
88 <xs:documentation>
89 Grouping for the firewall exception.
90 </xs:documentation>
91 </xs:annotation>
92 </xs:attribute>
93
94 <xs:attribute name="IcmpTypesAndCodes" type="xs:string">
95 <xs:annotation>
96 <xs:documentation>
97 ICMP types and codes for the firewall exception.
98 </xs:documentation>
99 </xs:annotation>
100 </xs:attribute>
101
102 <xs:attribute name="Interface" type="xs:string">
103 <xs:annotation>
104 <xs:documentation>
105 Interface for the firewall exception.
106 </xs:documentation>
107 </xs:annotation>
108 </xs:attribute>
109
110 <xs:attribute name="InterfaceType" type="FirewallInterfaceTypeUnion">
111 <xs:annotation>
112 <xs:documentation>
113 Interface type for the firewall exception.
114 </xs:documentation>
115 </xs:annotation>
116 </xs:attribute>
117
118 <xs:attribute name="IPSecSecureFlags" type="FirewallIPSecSecureFlagsUnion">
119 <xs:annotation>
120 <xs:documentation>
121 IPSec secure flags for the firewall exception.
122 </xs:documentation>
123 </xs:annotation>
124 </xs:attribute>
125
126 <xs:attribute name="LocalAppPackageId" type="xs:string">
127 <xs:annotation>
128 <xs:documentation>
129 Local AppPackageId for the firewall exception.
130 </xs:documentation>
131 </xs:annotation>
132 </xs:attribute>
133
134 <xs:attribute name="LocalUserAuthorizedList" type="xs:string">
135 <xs:annotation>
136 <xs:documentation>
137 Local user authorized list for the firewall exception.
138 </xs:documentation>
139 </xs:annotation>
140 </xs:attribute>
141
142 <xs:attribute name="LocalUserOwner" type="xs:string">
143 <xs:annotation>
144 <xs:documentation>
145 Local user owner for the firewall exception.
146 </xs:documentation>
147 </xs:annotation>
148 </xs:attribute>
149
150 <xs:attribute name="LocalScope" type="FirewallLocalScopeTypeUnion">
151 <xs:annotation>
152 <xs:documentation>
153 Local scope for the firewall exception.
154 </xs:documentation>
155 </xs:annotation>
156 </xs:attribute>
157
158 <xs:attribute name="Scope" type="FirewallScopeTypeUnion">
159 <xs:annotation>
160 <xs:documentation>
161 The scope of this firewall exception, which indicates whether incoming
162 connections can come from any computer including those on the Internet
163 or only those on the local network subnet. To more precisely specify
164 allowed remote address, specify a custom scope using RemoteAddress
165 child elements.
166 </xs:documentation>
167 </xs:annotation>
168 </xs:attribute>
169
170 <xs:attribute name="Port" type="xs:string">
171 <xs:annotation>
172 <xs:documentation>
173 Port to allow through the firewall for this exception. By default,
174 any program is allowed access through the port unless a File or
175 Program attribute is specified.
176 </xs:documentation>
177 </xs:annotation>
178 </xs:attribute>
179
180 <xs:attribute name="Protocol" type="FirewallProtocolTypeUnion">
181 <xs:annotation>
182 <xs:documentation>
183 IP protocol used for this firewall exception. If Port is defined,
184 "tcp" is assumed if the protocol is not specified.
185 </xs:documentation>
186 </xs:annotation>
187 </xs:attribute>
188
189 <xs:attribute name="File" type="xs:string">
190 <xs:annotation>
191 <xs:documentation>
192 Identifier of a File to be granted access through the firewall. By default,
193 all incoming ports and protocols are allowed unless the Port and.or Protocol
194 attributes are specified.
195
196 If you use File, you cannot also use Program.
197 </xs:documentation>
198 </xs:annotation>
199 </xs:attribute>
200
201 <xs:attribute name="Program" type="xs:string">
202 <xs:annotation>
203 <xs:documentation>
204 Path to a target program to be granted access through the firewall. By default,
205 all incoming ports and protocols are allowed unless the Port and.or Protocol
206 attributes are specified.
207
208 Note that this is a formatted field, so you can use [#fileId]
209 syntax to refer to a file being installed. If you use Program, you cannot
210 also use File.
211 </xs:documentation>
212 </xs:annotation>
213 </xs:attribute>
214
215 <xs:attribute name="IgnoreFailure" type="wxs:YesNoTypeUnion">
216 <xs:annotation>
217 <xs:documentation>
218 If "yes", failures to register this firewall exception will be silently
219 ignored. If "no" (the default), failures will cause rollback.
220 </xs:documentation>
221 </xs:annotation>
222 </xs:attribute>
223
224 <xs:attribute name="Profile" type="FirewallProfileTypeUnion">
225 <xs:annotation>
226 <xs:documentation>
227 Profile type for this firewall exception. Default is "all".
228 </xs:documentation>
229 </xs:annotation>
230 </xs:attribute>
231
232 <xs:attribute name="Description" type="xs:string">
233 <xs:annotation>
234 <xs:documentation>
235 Description for this firewall rule displayed in Windows Firewall manager.
236 </xs:documentation>
237 </xs:annotation>
238 </xs:attribute>
239
240 <xs:attribute name="EdgeTraversal" type="FirewallEdgeTraversalTypeUnion">
241 <xs:annotation>
242 <xs:documentation>
243 Sets the edge traversal of the firewall exception.
244 </xs:documentation>
245 </xs:annotation>
246 </xs:attribute>
247
248 <xs:attribute name="OnUpdate" type="FirewallOnUpdateTypeUnion">
249 <xs:annotation>
250 <xs:documentation>
251 Installation instruction when updating the firewall exception.
252 </xs:documentation>
253 </xs:annotation>
254 </xs:attribute>
255
256 <xs:attribute name="Outbound" type="wxs:YesNoTypeUnion">
257 <xs:annotation>
258 <xs:documentation>
259 If "yes", registers an outbound firewall rule. The default is "no".
260 </xs:documentation>
261 </xs:annotation>
262 </xs:attribute>
263
264 <xs:attribute name="RemoteMachineAuthorizedList" type="xs:string">
265 <xs:annotation>
266 <xs:documentation>
267 Remote machine authorized list for the firewall exception.
268 </xs:documentation>
269 </xs:annotation>
270 </xs:attribute>
271
272 <xs:attribute name="RemoteUserAuthorizedList" type="xs:string">
273 <xs:annotation>
274 <xs:documentation>
275 Remote user authorized list for the firewall exception.
276 </xs:documentation>
277 </xs:annotation>
278 </xs:attribute>
279
280 <xs:attribute name="RemotePort" type="xs:string">
281 <xs:annotation>
282 <xs:documentation>
283 Remote port for the firewall exception.
284 </xs:documentation>
285 </xs:annotation>
286 </xs:attribute>
287
288 <xs:attribute name="Service" type="xs:string">
289 <xs:annotation>
290 <xs:documentation>
291 Service for the firewall exception. Cannot be specified when the firewall exception is a child of a service element.
292 </xs:documentation>
293 </xs:annotation>
294 </xs:attribute>
295
296 <xs:anyAttribute namespace="##other" processContents="lax">
297 <xs:annotation>
298 <xs:documentation>
299 Extensibility point in the WiX XML Schema. Schema extensions can register additional
300 attributes at this point in the schema.
301 </xs:documentation>
302 </xs:annotation>
303 </xs:anyAttribute>
304 </xs:complexType>
305 </xs:element>
306
307 <xs:element name="LocalAddress">
308 <xs:annotation>
309 <xs:documentation>
310 [WiX v5] Registers a local address to the firewall rule.
311 </xs:documentation>
312 </xs:annotation>
313
314 <xs:complexType>
315 <xs:choice minOccurs="0" maxOccurs="unbounded">
316 <xs:any namespace="##other" processContents="lax">
317 <xs:annotation>
318 <xs:documentation>
319 Extensibility point in the WiX XML Schema. Schema extensions can register additional
320 elements at this point in the schema.
321 </xs:documentation>
322 </xs:annotation>
323 </xs:any>
324 </xs:choice>
325 <xs:attribute name="Value" type="xs:string" use="required">
326 <xs:annotation>
327 <xs:documentation>
328 A local address to which the port or program can listen. See [LocalAddresses](https://learn.microsoft.com/en-us/windows/win32/api/netfw/nf-netfw-inetfwrule-get_localaddresses)
329 for examples.
330 </xs:documentation>
331 </xs:annotation>
332 </xs:attribute>
333 <xs:anyAttribute namespace="##other" processContents="lax">
334 <xs:annotation>
335 <xs:documentation>
336 Extensibility point in the WiX XML Schema. Schema extensions can register additional
337 attributes at this point in the schema.
338 </xs:documentation>
339 </xs:annotation>
340 </xs:anyAttribute>
341 </xs:complexType>
342 </xs:element>
343
344 <xs:element name="Interface">
345 <xs:annotation>
346 <xs:documentation>
347 [WiX v5] Registers an interface with the firewall rule.
348 </xs:documentation>
349 </xs:annotation>
350
351 <xs:complexType>
352 <xs:choice minOccurs="0" maxOccurs="unbounded">
353 <xs:any namespace="##other" processContents="lax">
354 <xs:annotation>
355 <xs:documentation>
356 Extensibility point in the WiX XML Schema. Schema extensions can register additional
357 elements at this point in the schema.
358 </xs:documentation>
359 </xs:annotation>
360 </xs:any>
361 </xs:choice>
362 <xs:attribute name="Name" type="xs:string" use="required">
363 <xs:annotation>
364 <xs:documentation>
365 A interface to which the firewall rule applices. See [Interfaces](https://learn.microsoft.com/en-us/windows/win32/api/netfw/nf-netfw-inetfwrule-get_interfaces)
366 for examples.
367 </xs:documentation>
368 </xs:annotation>
369 </xs:attribute>
370 <xs:anyAttribute namespace="##other" processContents="lax">
371 <xs:annotation>
372 <xs:documentation>
373 Extensibility point in the WiX XML Schema. Schema extensions can register additional
374 attributes at this point in the schema.
375 </xs:documentation>
376 </xs:annotation>
377 </xs:anyAttribute>
378 </xs:complexType>
379 </xs:element>
380
381 <xs:element name="InterfaceType">
382 <xs:annotation>
383 <xs:documentation>
384 [WiX v5] Registers an inteface type to the firewall rule.
385 </xs:documentation>
386 </xs:annotation>
387 <xs:complexType>
388 <xs:choice minOccurs="0" maxOccurs="unbounded">
389 <xs:any namespace="##other" processContents="lax">
390 <xs:annotation>
391 <xs:documentation>
392 Extensibility point in the WiX XML Schema. Schema extensions can register additional
393 elements at this point in the schema.
394 </xs:documentation>
395 </xs:annotation>
396 </xs:any>
397 </xs:choice>
398 <xs:attribute name="Value" type="FirewallInterfaceTypeUnion">
399 <xs:annotation>
400 <xs:documentation>
401 A interface type to which the firewall rule applices. See [Interfaces](https://learn.microsoft.com/en-us/windows/win32/api/netfw/nf-netfw-inetfwrule-get_interfaces)
402 for examples.
403 </xs:documentation>
404 </xs:annotation>
405 </xs:attribute>
406 <xs:anyAttribute namespace="##other" processContents="lax">
407 <xs:annotation>
408 <xs:documentation>
409 Extensibility point in the WiX XML Schema. Schema extensions can register additional
410 attributes at this point in the schema.
411 </xs:documentation>
412 </xs:annotation>
413 </xs:anyAttribute>
414 </xs:complexType>
415 </xs:element>
416
417 <xs:element name="RemoteAddress">
418 <xs:complexType>
419 <xs:choice minOccurs="0" maxOccurs="unbounded">
420 <xs:any namespace="##other" processContents="lax">
421 <xs:annotation>
422 <xs:documentation>
423 Extensibility point in the WiX XML Schema. Schema extensions can register additional
424 elements at this point in the schema.
425 </xs:documentation>
426 </xs:annotation>
427 </xs:any>
428 </xs:choice>
429 <xs:attribute name="Value" type="xs:string" use="required">
430 <xs:annotation>
431 <xs:documentation>
432 A remote address to which the port or program can listen. See [RemoteAddresses](https://learn.microsoft.com/en-us/windows/win32/api/netfw/nf-netfw-inetfwrule-get_remoteaddresses)
433 for examples.
434 </xs:documentation>
435 </xs:annotation>
436 </xs:attribute>
437 <xs:anyAttribute namespace="##other" processContents="lax">
438 <xs:annotation>
439 <xs:documentation>
440 Extensibility point in the WiX XML Schema. Schema extensions can register additional
441 attributes at this point in the schema.
442 </xs:documentation>
443 </xs:annotation>
444 </xs:anyAttribute>
445 </xs:complexType>
446 </xs:element>
447
448 <xs:simpleType name="PropertyReference">
449 <xs:annotation>
450 <xs:documentation>A type that represents a Property reference.</xs:documentation>
451 </xs:annotation>
452 <xs:restriction base="xs:string">
453 <xs:pattern value="\[.+\]" />
454 </xs:restriction>
455 </xs:simpleType>
456
457 <xs:simpleType name="FirewallActionTypeUnion">
458 <xs:union memberTypes="FirewallActionType PropertyReference wxs:PreprocessorVariables"/>
459 </xs:simpleType>
460 <xs:simpleType name="FirewallActionType">
461 <xs:restriction base="xs:NMTOKEN">
462 <xs:enumeration value="allow" />
463 <xs:enumeration value="block" />
464 </xs:restriction>
465 </xs:simpleType>
466
467 <xs:simpleType name="FirewallEdgeTraversalTypeUnion">
468 <xs:union memberTypes="FirewallEdgeTraversalType PropertyReference wxs:PreprocessorVariables"/>
469 </xs:simpleType>
470 <xs:simpleType name="FirewallEdgeTraversalType">
471 <xs:restriction base="xs:NMTOKEN">
472 <xs:enumeration value="allow" />
473 <xs:enumeration value="deferToApp" />
474 <xs:enumeration value="deferToUser" />
475 <xs:enumeration value="deny" />
476 </xs:restriction>
477 </xs:simpleType>
478
479 <xs:simpleType name="FirewallInterfaceTypeUnion">
480 <xs:union memberTypes="FirewallInterfaceType PropertyReference wxs:PreprocessorVariables"/>
481 </xs:simpleType>
482 <xs:simpleType name="FirewallInterfaceType">
483 <xs:restriction base="xs:NMTOKEN">
484 <xs:enumeration value="all" />
485 <xs:enumeration value="lan" />
486 <xs:enumeration value="remoteAccess" />
487 <xs:enumeration value="wireless" />
488 </xs:restriction>
489 </xs:simpleType>
490
491 <xs:simpleType name="FirewallIPSecSecureFlagsUnion">
492 <xs:union memberTypes="FirewallIPSecSecureFlags PropertyReference wxs:PreprocessorVariables"/>
493 </xs:simpleType>
494 <xs:simpleType name="FirewallIPSecSecureFlags">
495 <xs:restriction base="xs:NMTOKEN">
496 <xs:enumeration value="none" />
497 <xs:enumeration value="encrypt" />
498 <xs:enumeration value="negotiateEncryption" />
499 <xs:enumeration value="noEncapsulation" />
500 <xs:enumeration value="withIntegrity" />
501 </xs:restriction>
502 </xs:simpleType>
503
504 <xs:simpleType name="FirewallLocalScopeTypeUnion">
505 <xs:union memberTypes="FirewallLocalScopeType PropertyReference wxs:PreprocessorVariables"/>
506 </xs:simpleType>
507 <xs:simpleType name="FirewallLocalScopeType">
508 <xs:restriction base="xs:NMTOKEN">
509 <xs:enumeration value="any" />
510 <xs:enumeration value="dns" />
511 <xs:enumeration value="dhcp" />
512 <xs:enumeration value="wins" />
513 <xs:enumeration value="localSubnet" />
514 <xs:enumeration value="defaultGateway" />
515 </xs:restriction>
516 </xs:simpleType>
517
518 <xs:simpleType name="FirewallOnUpdateTypeUnion">
519 <xs:union memberTypes="FirewallOnUpdateType PropertyReference wxs:PreprocessorVariables"/>
520 </xs:simpleType>
521 <xs:simpleType name="FirewallOnUpdateType">
522 <xs:restriction base="xs:NMTOKEN">
523 <xs:enumeration value="doNothing" />
524 <xs:enumeration value="enableOnly" />
525 </xs:restriction>
526 </xs:simpleType>
527
528 <xs:simpleType name="FirewallProfileTypeUnion">
529 <xs:union memberTypes="FirewallProfileType PropertyReference wxs:PreprocessorVariables"/>
530 </xs:simpleType>
531 <xs:simpleType name="FirewallProfileType">
532 <xs:restriction base="xs:NMTOKEN">
533 <xs:enumeration value="domain" />
534 <xs:enumeration value="private" />
535 <xs:enumeration value="public" />
536 <xs:enumeration value="all" />
537 </xs:restriction>
538 </xs:simpleType>
539
540 <xs:simpleType name="FirewallProtocolTypeUnion">
541 <xs:union memberTypes="PropertyReference FirewallProtocolType FirewallProtocolNumber wxs:PreprocessorVariables"/>
542 </xs:simpleType>
543 <xs:simpleType name="FirewallProtocolType">
544 <xs:restriction base="xs:NMTOKEN">
545 <xs:enumeration value="tcp" />
546 <xs:enumeration value="udp" />
547 </xs:restriction>
548 </xs:simpleType>
549 <xs:simpleType name="FirewallProtocolNumber">
550 <xs:restriction base="xs:integer">
551 <xs:minInclusive value="0"/>
552 <xs:maxInclusive value="255"/>
553 </xs:restriction>
554 </xs:simpleType>
555
556 <xs:simpleType name="FirewallScopeTypeUnion">
557 <xs:union memberTypes="FirewallScopeType PropertyReference wxs:PreprocessorVariables"/>
558 </xs:simpleType>
559 <xs:simpleType name="FirewallScopeType">
560 <xs:restriction base="xs:NMTOKEN">
561 <xs:enumeration value="any" />
562 <xs:enumeration value="localSubnet" />
563 <xs:enumeration value="dns" />
564 <xs:enumeration value="dhcp" />
565 <xs:enumeration value="wins" />
566 <xs:enumeration value="defaultGateway" />
567 </xs:restriction>
568 </xs:simpleType>
569
570 <xs:simpleType name="FirewallYesNoPropertyType">
571 <xs:annotation>
572 <xs:documentation>
573 Allows "yes" or "true" or "no" or "false" or a Property reference.
574 </xs:documentation>
575 </xs:annotation>
576 <xs:union memberTypes="PropertyReference wxs:YesNoTypeUnion"/>
577 </xs:simpleType>
578</xs:schema>
diff --git a/src/xsd/http.xsd b/src/xsd/http.xsd
new file mode 100644
index 00000000..63820522
--- /dev/null
+++ b/src/xsd/http.xsd
@@ -0,0 +1,268 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
4
5<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
6 xmlns:xse="http://wixtoolset.org/schemas/XmlSchemaExtension"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:wxs="http://wixtoolset.org/schemas/v4/wxs"
9 targetNamespace="http://wixtoolset.org/schemas/v4/wxs/http"
10 xmlns="http://wixtoolset.org/schemas/v4/wxs/http">
11 <xs:annotation>
12 <xs:documentation>
13 The source code schema for the Windows Installer XML Toolset Http Extension.
14 </xs:documentation>
15 </xs:annotation>
16
17 <xs:import namespace="http://wixtoolset.org/schemas/v4/wxs" />
18
19 <xs:element name="SniSslCertificate">
20 <xs:annotation>
21 <xs:documentation>
22 Associates an SNI SSL certificate with HTTP.SYS.
23 </xs:documentation>
24 <xs:appinfo>
25 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
26 </xs:appinfo>
27 </xs:annotation>
28 <xs:complexType>
29 <xs:choice minOccurs="0" maxOccurs="unbounded">
30 <xs:any namespace="##other" processContents="lax">
31 <xs:annotation>
32 <xs:documentation>
33 Extensibility point in the WiX XML Schema. Schema extensions can register additional
34 elements at this point in the schema.
35 </xs:documentation>
36 </xs:annotation>
37 </xs:any>
38 </xs:choice>
39 <xs:attribute name="Id" type="xs:string">
40 <xs:annotation>
41 <xs:documentation>
42 Unique ID of this SNI SSL.
43 If this attribute is not specified, an identifier will be generated automatically.
44 </xs:documentation>
45 </xs:annotation>
46 </xs:attribute>
47
48 <xs:attribute name="AppId" type="xs:string">
49 <xs:annotation>
50 <xs:documentation>A GUID used ot identify the SNI SSL binding.</xs:documentation>
51 </xs:annotation>
52 </xs:attribute>
53
54 <xs:attribute name="HandleExisting">
55 <xs:annotation>
56 <xs:documentation>
57 Rights for this ACE. Default is "all".
58 </xs:documentation>
59 </xs:annotation>
60 <xs:simpleType>
61 <xs:restriction base="xs:NMTOKEN">
62 <xs:enumeration value="replace" />
63 <xs:enumeration value="ignore" />
64 <xs:enumeration value="fail" />
65 </xs:restriction>
66 </xs:simpleType>
67 </xs:attribute>
68
69 <xs:attribute name="Host" type="xs:string" use="required">
70 <xs:annotation>
71 <xs:documentation>Host of the URL to bind with the SNI SSL certificate.</xs:documentation>
72 </xs:annotation>
73 </xs:attribute>
74
75 <xs:attribute name="Port" type="xs:string" use="required">
76 <xs:annotation>
77 <xs:documentation>Host of the URL to bind with the SNI SSL certificate.</xs:documentation>
78 </xs:annotation>
79 </xs:attribute>
80
81 <xs:attribute name="Store" type="xs:string">
82 <xs:annotation>
83 <xs:documentation>Certificate store containing the SNI SSL certificate.</xs:documentation>
84 </xs:annotation>
85 </xs:attribute>
86
87 <xs:attribute name="Thumbprint" type="xs:string" use="required">
88 <xs:annotation>
89 <xs:documentation>Thumbprint of the SNI SSL certificate.</xs:documentation>
90 </xs:annotation>
91 </xs:attribute>
92
93 <xs:anyAttribute namespace="##other" processContents="lax">
94 <xs:annotation>
95 <xs:documentation>
96 Extensibility point in the WiX XML Schema. Schema extensions can register additional
97 attributes at this point in the schema.
98 </xs:documentation>
99 </xs:annotation>
100 </xs:anyAttribute>
101 </xs:complexType>
102 </xs:element>
103
104 <xs:element name="UrlReservation">
105 <xs:annotation>
106 <xs:documentation>
107 Makes a reservation record for the HTTP Server API configuration store on Windows XP SP2,
108 Windows Server 2003, and later. For more information about the HTTP Server API, see
109 [HTTP Server API](https://learn.microsoft.com/en-us/windows/win32/http/http-api-start-page).
110 </xs:documentation>
111 <xs:appinfo>
112 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
113 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="ServiceInstall" />
114 </xs:appinfo>
115 </xs:annotation>
116
117 <xs:complexType>
118 <xs:choice minOccurs="0" maxOccurs="unbounded">
119 <xs:annotation>
120 <xs:documentation>
121 The access control entries for the access control list.
122 </xs:documentation>
123 </xs:annotation>
124 <xs:element ref="UrlAce" />
125 <xs:any namespace="##other" processContents="lax">
126 <xs:annotation>
127 <xs:documentation>
128 Extensibility point in the WiX XML Schema. Schema extensions can register additional
129 elements at this point in the schema.
130 </xs:documentation>
131 </xs:annotation>
132 </xs:any>
133 </xs:choice>
134
135 <xs:attribute name="HandleExisting">
136 <xs:annotation>
137 <xs:documentation>
138 Specifies the behavior when trying to install a URL reservation and it already exists.
139 </xs:documentation>
140 </xs:annotation>
141 <xs:simpleType>
142 <xs:restriction base="xs:NMTOKEN">
143 <xs:enumeration value="replace">
144 <xs:annotation>
145 <xs:documentation>
146 Replaces the existing URL reservation (the default).
147 </xs:documentation>
148 </xs:annotation>
149 </xs:enumeration>
150 <xs:enumeration value="ignore">
151 <xs:annotation>
152 <xs:documentation>
153 Keeps the existing URL reservation.
154 </xs:documentation>
155 </xs:annotation>
156 </xs:enumeration>
157 <xs:enumeration value="fail">
158 <xs:annotation>
159 <xs:documentation>
160 The installation fails.
161 </xs:documentation>
162 </xs:annotation>
163 </xs:enumeration>
164 </xs:restriction>
165 </xs:simpleType>
166 </xs:attribute>
167
168 <xs:attribute name="Id" type="xs:string">
169 <xs:annotation>
170 <xs:documentation>
171 Unique ID of this URL reservation.
172 If this attribute is not specified, an identifier will be generated automatically.
173 </xs:documentation>
174 </xs:annotation>
175 </xs:attribute>
176
177 <xs:attribute name="Sddl" type="xs:string">
178 <xs:annotation>
179 <xs:documentation>
180 Security descriptor to apply to the URL reservation.
181 Can't be specified when using children UrlAce elements.
182 </xs:documentation>
183 </xs:annotation>
184 </xs:attribute>
185
186 <xs:attribute name="Url" type="xs:string" use="required">
187 <xs:annotation>
188 <xs:documentation>
189 The [UrlPrefix](https://learn.microsoft.com/en-us/windows/win32/http/urlprefix-strings)
190 string that defines the portion of the URL namespace to which this reservation pertains.
191 </xs:documentation>
192 </xs:annotation>
193 </xs:attribute>
194
195 <xs:anyAttribute namespace="##other" processContents="lax">
196 <xs:annotation>
197 <xs:documentation>
198 Extensibility point in the WiX XML Schema. Schema extensions can register additional
199 attributes at this point in the schema.
200 </xs:documentation>
201 </xs:annotation>
202 </xs:anyAttribute>
203 </xs:complexType>
204 </xs:element>
205
206 <xs:element name="UrlAce">
207 <xs:annotation>
208 <xs:documentation>
209 The security principal and which rights to assign to them for the URL reservation.
210 </xs:documentation>
211 </xs:annotation>
212 <xs:complexType>
213 <xs:choice minOccurs="0" maxOccurs="unbounded">
214 <xs:any namespace="##other" processContents="lax">
215 <xs:annotation>
216 <xs:documentation>
217 Extensibility point in the WiX XML Schema. Schema extensions can register additional
218 elements at this point in the schema.
219 </xs:documentation>
220 </xs:annotation>
221 </xs:any>
222 </xs:choice>
223 <xs:attribute name="Id" type="xs:string">
224 <xs:annotation>
225 <xs:documentation>
226 Unique ID of this URL ACE.
227 If this attribute is not specified, an identifier will be generated automatically.
228 </xs:documentation>
229 </xs:annotation>
230 </xs:attribute>
231
232 <xs:attribute name="SecurityPrincipal" type="xs:string">
233 <xs:annotation>
234 <xs:documentation>
235 The security principal for this ACE. When the UrlReservation is under a ServiceInstall element, this defaults to
236 "NT SERVICE\ServiceInstallName". This may be either a SID or an account name in a format that
237 [LookupAccountName](https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-lookupaccountnamea)
238 supports. When using a SID, an asterisk must be prepended. For example, "*S-1-5-18".
239 </xs:documentation>
240 </xs:annotation>
241 </xs:attribute>
242
243 <xs:attribute name="Rights">
244 <xs:annotation>
245 <xs:documentation>
246 Rights for this ACE. Default is "all".
247 </xs:documentation>
248 </xs:annotation>
249 <xs:simpleType>
250 <xs:restriction base="xs:NMTOKEN">
251 <xs:enumeration value="register" />
252 <xs:enumeration value="delegate" />
253 <xs:enumeration value="all" />
254 </xs:restriction>
255 </xs:simpleType>
256 </xs:attribute>
257
258 <xs:anyAttribute namespace="##other" processContents="lax">
259 <xs:annotation>
260 <xs:documentation>
261 Extensibility point in the WiX XML Schema. Schema extensions can register additional
262 attributes at this point in the schema.
263 </xs:documentation>
264 </xs:annotation>
265 </xs:anyAttribute>
266 </xs:complexType>
267 </xs:element>
268</xs:schema>
diff --git a/src/xsd/iis.xsd b/src/xsd/iis.xsd
new file mode 100644
index 00000000..b43bff42
--- /dev/null
+++ b/src/xsd/iis.xsd
@@ -0,0 +1,1438 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
4
5<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
6 xmlns:xse="http://wixtoolset.org/schemas/XmlSchemaExtension"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:wxs="http://wixtoolset.org/schemas/v4/wxs"
9 targetNamespace="http://wixtoolset.org/schemas/v4/wxs/iis"
10 xmlns="http://wixtoolset.org/schemas/v4/wxs/iis">
11 <xs:annotation>
12 <xs:documentation>
13 The source code schema for the WiX Toolset Internet Information Services Extension.
14 </xs:documentation>
15 </xs:annotation>
16
17 <xs:import namespace="http://wixtoolset.org/schemas/v4/wxs" />
18
19 <xs:element name="WebDirProperties">
20 <xs:annotation>
21 <xs:appinfo>
22 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
23 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
24 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
25 </xs:appinfo>
26 <xs:documentation>
27 WebDirProperties used by one or more WebSites. Lists properties common to IIS web sites and vroots. Corresponding properties can be viewed through the IIS Manager snap-in. One property entry can be reused by multiple sites or vroots using the Id field as a reference, using WebVirtualDir.DirProperties, WebSite.DirProperties, or WebDir.DirProperties.
28 </xs:documentation>
29 </xs:annotation>
30 <xs:complexType>
31 <xs:choice minOccurs="0" maxOccurs="unbounded">
32 <xs:any namespace="##other" processContents="lax">
33 <xs:annotation>
34 <xs:documentation>
35 Extensibility point in the WiX XML Schema. Schema extensions can register additional
36 elements at this point in the schema.
37 </xs:documentation>
38 </xs:annotation>
39 </xs:any>
40 </xs:choice>
41 <xs:attribute name="Id" type="xs:string">
42 <xs:annotation>
43 <xs:documentation>Identifier for the WebDirProperties. The Id is required when the parent is a Fragment, Module, or Package. Otherwise, Id is optional and if not specified, it will be generated.</xs:documentation>
44 </xs:annotation>
45 </xs:attribute>
46 <xs:attribute name="Read" type="wxs:YesNoTypeUnion" />
47 <xs:attribute name="Write" type="wxs:YesNoTypeUnion" />
48 <xs:attribute name="Script" type="wxs:YesNoTypeUnion" />
49 <xs:attribute name="Execute" type="wxs:YesNoTypeUnion" />
50 <xs:attribute name="AnonymousAccess" type="wxs:YesNoTypeUnion">
51 <xs:annotation>
52 <xs:documentation>Sets the Enable Anonymous Access checkbox, which maps anonymous users to a Windows user account. When setting this to 'yes' you should also provide the user account using the AnonymousUser attribute, and determine what setting to use for the IIsControlledPassword attribute. Defaults to 'no.'</xs:documentation>
53 </xs:annotation>
54 </xs:attribute>
55 <xs:attribute name="AnonymousUser" type="xs:string">
56 <xs:annotation>
57 <xs:documentation>Reference to the Id attribute on the User element to be used as the anonymous user for the directory. See the User element for more information.</xs:documentation>
58 </xs:annotation>
59 </xs:attribute>
60 <xs:attribute name="IIsControlledPassword" type="wxs:YesNoTypeUnion">
61 <xs:annotation>
62 <xs:documentation>Sets whether IIS should control the password used for the Windows account specified in the AnonymousUser attribute. Defaults to 'no.'</xs:documentation>
63 </xs:annotation>
64 </xs:attribute>
65 <xs:attribute name="WindowsAuthentication" type="wxs:YesNoTypeUnion">
66 <xs:annotation>
67 <xs:documentation>Sets the Windows Authentication option, which enables integrated Windows authentication to be used on the site. Defaults to 'no.'</xs:documentation>
68 </xs:annotation>
69 </xs:attribute>
70 <xs:attribute name="DigestAuthentication" type="wxs:YesNoTypeUnion">
71 <xs:annotation>
72 <xs:documentation>Sets the Digest Authentication option, which allows using digest authentication with domain user accounts. Defaults to 'no.'</xs:documentation>
73 </xs:annotation>
74 </xs:attribute>
75 <xs:attribute name="BasicAuthentication" type="wxs:YesNoTypeUnion">
76 <xs:annotation>
77 <xs:documentation>Sets the Basic Authentication option, which allows clients to provide credentials in plaintext over the wire. Defaults to 'no.'</xs:documentation>
78 </xs:annotation>
79 </xs:attribute>
80 <xs:attribute name="PassportAuthentication" type="wxs:YesNoTypeUnion">
81 <xs:annotation>
82 <xs:documentation>Sets the Passport Authentication option, which allows clients to provide credentials via a .Net Passport account. Defaults to 'no.'</xs:documentation>
83 </xs:annotation>
84 </xs:attribute>
85 <xs:attribute name="LogVisits" type="wxs:YesNoTypeUnion">
86 <xs:annotation>
87 <xs:documentation>Sets whether visits to this site should be logged. Defaults to 'no.'</xs:documentation>
88 </xs:annotation>
89 </xs:attribute>
90 <xs:attribute name="Index" type="wxs:YesNoTypeUnion">
91 <xs:annotation>
92 <xs:documentation>Sets the Index Resource option, which specifies whether this web directory should be indexed. Defaults to 'no.'</xs:documentation>
93 </xs:annotation>
94 </xs:attribute>
95 <xs:attribute name="DefaultDocuments" type="xs:string">
96 <xs:annotation>
97 <xs:documentation>The list of default documents to set for this web directory, in comma-delimited format.</xs:documentation>
98 </xs:annotation>
99 </xs:attribute>
100 <xs:attribute name="AspDetailedError" type="wxs:YesNoTypeUnion">
101 <xs:annotation>
102 <xs:documentation>Sets the option for whether to send detailed ASP errors back to the client on script error. Default is 'no.'</xs:documentation>
103 </xs:annotation>
104 </xs:attribute>
105 <xs:attribute name="HttpExpires" type="xs:string">
106 <xs:annotation>
107 <xs:documentation>Value to set the HttpExpires attribute to for a Web Dir in the metabase.</xs:documentation>
108 </xs:annotation>
109 </xs:attribute>
110 <xs:attribute name="CacheControlMaxAge" type="xs:nonNegativeInteger">
111 <xs:annotation>
112 <xs:documentation>Integer value specifying the cache control maximum age value.</xs:documentation>
113 </xs:annotation>
114 </xs:attribute>
115 <xs:attribute name="CacheControlCustom" type="xs:string">
116 <xs:annotation>
117 <xs:documentation>Custom HTTP 1.1 cache control directives.</xs:documentation>
118 </xs:annotation>
119 </xs:attribute>
120 <xs:attribute name="ClearCustomError" type="wxs:YesNoTypeUnion">
121 <xs:annotation>
122 <xs:documentation>Specifies whether IIs will return custom errors for this directory.</xs:documentation>
123 </xs:annotation>
124 </xs:attribute>
125 <xs:attribute name="AccessSSL" type="wxs:YesNoTypeUnion">
126 <xs:annotation>
127 <xs:documentation>A value of true indicates that file access requires SSL file permission processing, with or without a client certificate. This corresponds to AccessSSL flag for AccessSSLFlags IIS metabase property.</xs:documentation>
128 </xs:annotation>
129 </xs:attribute>
130 <xs:attribute name="AccessSSL128" type="wxs:YesNoTypeUnion">
131 <xs:annotation>
132 <xs:documentation>A value of true indicates that file access requires SSL file permission processing with a minimum key size of 128 bits, with or without a client certificate. This corresponds to AccessSSL128 flag for AccessSSLFlags IIS metabase property.</xs:documentation>
133 </xs:annotation>
134 </xs:attribute>
135 <xs:attribute name="AccessSSLMapCert" type="wxs:YesNoTypeUnion">
136 <xs:annotation>
137 <xs:documentation>This corresponds to AccessSSLMapCert flag for AccessSSLFlags IIS metabase property.</xs:documentation>
138 </xs:annotation>
139 </xs:attribute>
140 <xs:attribute name="AccessSSLNegotiateCert" type="wxs:YesNoTypeUnion">
141 <xs:annotation>
142 <xs:documentation>This corresponds to AccessSSLNegotiateCert flag for AccessSSLFlags IIS metabase property.</xs:documentation>
143 </xs:annotation>
144 </xs:attribute>
145 <xs:attribute name="AccessSSLRequireCert" type="wxs:YesNoTypeUnion">
146 <xs:annotation>
147 <xs:documentation>This corresponds to AccessSSLRequireCert flag for AccessSSLFlags IIS metabase property.</xs:documentation>
148 </xs:annotation>
149 </xs:attribute>
150 <xs:attribute name="AuthenticationProviders" type="xs:string">
151 <xs:annotation>
152 <xs:documentation>Comma delimited list, in order of precedence, of Windows authentication providers that IIS will attempt to use: NTLM, Kerberos, Negotiate, and others.</xs:documentation>
153 </xs:annotation>
154 </xs:attribute>
155 <xs:anyAttribute namespace="##other" processContents="lax">
156 <xs:annotation>
157 <xs:documentation>
158 Extensibility point in the WiX XML Schema. Schema extensions can register additional
159 attributes at this point in the schema.
160 </xs:documentation>
161 </xs:annotation>
162 </xs:anyAttribute>
163 </xs:complexType>
164 </xs:element>
165
166 <xs:element name="WebError">
167 <xs:annotation>
168 <xs:documentation>Custom Web Errors used by WebSites and Virtual Directories.</xs:documentation>
169 <xs:appinfo>
170 <xse:remarks>
171 You can only use error code and sub code combinations which are supported by IIS. Attempting to set a custom error for
172 an error code and sub code combination that is not supported by IIS (in the default list of error codes) will result in
173 an installation failure.
174 </xse:remarks>
175 </xs:appinfo>
176 </xs:annotation>
177 <xs:complexType>
178 <xs:choice minOccurs="0" maxOccurs="unbounded">
179 <xs:any namespace="##other" processContents="lax">
180 <xs:annotation>
181 <xs:documentation>
182 Extensibility point in the WiX XML Schema. Schema extensions can register additional
183 elements at this point in the schema.
184 </xs:documentation>
185 </xs:annotation>
186 </xs:any>
187 </xs:choice>
188 <xs:attribute name="ErrorCode" use="required" type="wxs:Integer">
189 <xs:annotation>
190 <xs:documentation>HTTP 1.1 error code.</xs:documentation>
191 </xs:annotation>
192 </xs:attribute>
193 <xs:attribute name="SubCode" use="required" type="wxs:Integer">
194 <xs:annotation>
195 <xs:documentation>Error sub code. Set to 0 to get the wild card "*".</xs:documentation>
196 </xs:annotation>
197 </xs:attribute>
198 <xs:attribute name="File" type="xs:string">
199 <xs:annotation>
200 <xs:documentation>File to be sent to the client for this error code and sub code. This can be formatted. For example: [#FileId].</xs:documentation>
201 </xs:annotation>
202 </xs:attribute>
203 <xs:attribute name="URL" type="xs:string">
204 <xs:annotation>
205 <xs:documentation>URL to be sent to the client for this error code and sub code. This can be formatted.</xs:documentation>
206 </xs:annotation>
207 </xs:attribute>
208 <xs:anyAttribute namespace="##other" processContents="lax">
209 <xs:annotation>
210 <xs:documentation>
211 Extensibility point in the WiX XML Schema. Schema extensions can register additional
212 attributes at this point in the schema.
213 </xs:documentation>
214 </xs:annotation>
215 </xs:anyAttribute>
216 </xs:complexType>
217 </xs:element>
218
219 <xs:element name="HttpHeader">
220 <xs:annotation>
221 <xs:documentation>Custom HTTP Header definition for IIS resources such as WebSite and WebVirtualDir.</xs:documentation>
222 </xs:annotation>
223 <xs:complexType>
224 <xs:choice minOccurs="0" maxOccurs="unbounded">
225 <xs:any namespace="##other" processContents="lax">
226 <xs:annotation>
227 <xs:documentation>
228 Extensibility point in the WiX XML Schema. Schema extensions can register additional
229 elements at this point in the schema.
230 </xs:documentation>
231 </xs:annotation>
232 </xs:any>
233 </xs:choice>
234 <xs:attribute name="Id" type="xs:string">
235 <xs:annotation>
236 <xs:documentation>Primary key for custom HTTP Header entry. This will default to the Name attribute.</xs:documentation>
237 </xs:annotation>
238 </xs:attribute>
239 <xs:attribute name="Name" type="xs:string" use="required">
240 <xs:annotation>
241 <xs:documentation>Name of the custom HTTP Header.</xs:documentation>
242 </xs:annotation>
243 </xs:attribute>
244 <xs:attribute name="Value" type="xs:string">
245 <xs:annotation>
246 <xs:documentation>Value for the custom HTTP Header. This attribute can contain a formatted string that is processed at install time to insert the values of properties using [PropertyName] syntax. Also supported are environment variables, file installation paths, and component installation directories; see <a href="http://msdn.microsoft.com/library/aa368609.aspx" target="_blank">Formatted</a> for details.</xs:documentation>
247 </xs:annotation>
248 </xs:attribute>
249 <xs:anyAttribute namespace="##other" processContents="lax">
250 <xs:annotation>
251 <xs:documentation>
252 Extensibility point in the WiX XML Schema. Schema extensions can register additional
253 attributes at this point in the schema.
254 </xs:documentation>
255 </xs:annotation>
256 </xs:anyAttribute>
257 </xs:complexType>
258 </xs:element>
259
260 <xs:element name="MimeMap">
261 <xs:annotation>
262 <xs:documentation>MimeMap definition for IIS resources.</xs:documentation>
263 </xs:annotation>
264 <xs:complexType>
265 <xs:choice minOccurs="0" maxOccurs="unbounded">
266 <xs:any namespace="##other" processContents="lax">
267 <xs:annotation>
268 <xs:documentation>
269 Extensibility point in the WiX XML Schema. Schema extensions can register additional
270 elements at this point in the schema.
271 </xs:documentation>
272 </xs:annotation>
273 </xs:any>
274 </xs:choice>
275 <xs:attribute name="Id" type="xs:string">
276 <xs:annotation>
277 <xs:documentation>Id for the MimeMap. If the Id is not specified, it will be generated.</xs:documentation>
278 </xs:annotation>
279 </xs:attribute>
280 <xs:attribute name="Type" type="xs:string" use="required">
281 <xs:annotation>
282 <xs:documentation>Mime-type covered by the MimeMap.</xs:documentation>
283 </xs:annotation>
284 </xs:attribute>
285 <xs:attribute name="Extension" type="xs:string" use="required">
286 <xs:annotation>
287 <xs:documentation>Extension covered by the MimeMap. Must begin with a dot.</xs:documentation>
288 </xs:annotation>
289 </xs:attribute>
290 <xs:anyAttribute namespace="##other" processContents="lax">
291 <xs:annotation>
292 <xs:documentation>
293 Extensibility point in the WiX XML Schema. Schema extensions can register additional
294 attributes at this point in the schema.
295 </xs:documentation>
296 </xs:annotation>
297 </xs:anyAttribute>
298 </xs:complexType>
299 </xs:element>
300
301 <xs:element name="WebFilter">
302 <xs:annotation>
303 <xs:appinfo>
304 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
305 </xs:appinfo>
306 <xs:documentation>IIs Filter for a Component or Web Site</xs:documentation>
307 </xs:annotation>
308 <xs:complexType>
309 <xs:choice minOccurs="0" maxOccurs="unbounded">
310 <xs:any namespace="##other" processContents="lax">
311 <xs:annotation>
312 <xs:documentation>
313 Extensibility point in the WiX XML Schema. Schema extensions can register additional
314 elements at this point in the schema.
315 </xs:documentation>
316 </xs:annotation>
317 </xs:any>
318 </xs:choice>
319 <xs:attribute name="Id" type="xs:string">
320 <xs:annotation>
321 <xs:documentation>The unique Id for the web filter. If the Id is not specified, it will be generated.</xs:documentation>
322 </xs:annotation>
323 </xs:attribute>
324 <xs:attribute name="Name" type="xs:string" use="required">
325 <xs:annotation>
326 <xs:documentation>The name of the filter to be used in IIS.</xs:documentation>
327 </xs:annotation>
328 </xs:attribute>
329 <xs:attribute name="Path" type="xs:string" use="required">
330 <xs:annotation>
331 <xs:documentation>
332 The path of the filter executable file.
333 This should usually be a value like '[!FileId]', where 'FileId' is the file identifier
334 of the filter executable file.
335 </xs:documentation>
336 </xs:annotation>
337 </xs:attribute>
338 <xs:attribute name="WebSite" type="xs:string">
339 <xs:annotation>
340 <xs:documentation>
341 Specifies the parent website for this filter (if there is one).
342 If this is a global filter, then this attribute should not be specified.
343 </xs:documentation>
344 </xs:annotation>
345 </xs:attribute>
346 <xs:attribute name="Description" type="xs:string">
347 <xs:annotation>
348 <xs:documentation>Description of the filter.</xs:documentation>
349 </xs:annotation>
350 </xs:attribute>
351 <xs:attribute name="Flags" type="wxs:Integer">
352 <xs:annotation>
353 <xs:documentation>Sets the MD_FILTER_FLAGS metabase key for the filter. This must be an integer. See MSDN 'FilterFlags' documentation for more details.</xs:documentation>
354 </xs:annotation>
355 </xs:attribute>
356 <xs:attribute name="LoadOrder" type="xs:string">
357 <xs:annotation>
358 <xs:documentation>
359 The legal values are "first", "last", or a number.
360 If a number is specified, it must be greater than 0.
361 </xs:documentation>
362 </xs:annotation>
363 </xs:attribute>
364 <xs:anyAttribute namespace="##other" processContents="lax">
365 <xs:annotation>
366 <xs:documentation>
367 Extensibility point in the WiX XML Schema. Schema extensions can register additional
368 attributes at this point in the schema.
369 </xs:documentation>
370 </xs:annotation>
371 </xs:anyAttribute>
372 </xs:complexType>
373 </xs:element>
374
375 <xs:element name="WebApplicationExtension">
376 <xs:annotation>
377 <xs:documentation>Extension for WebApplication</xs:documentation>
378 </xs:annotation>
379 <xs:complexType>
380 <xs:choice minOccurs="0" maxOccurs="unbounded">
381 <xs:any namespace="##other" processContents="lax">
382 <xs:annotation>
383 <xs:documentation>
384 Extensibility point in the WiX XML Schema. Schema extensions can register additional
385 elements at this point in the schema.
386 </xs:documentation>
387 </xs:annotation>
388 </xs:any>
389 </xs:choice>
390 <xs:attribute name="Executable" type="xs:string" use="required">
391 <xs:annotation>
392 <xs:documentation>Usually a Property that resolves to short file name path.</xs:documentation>
393 </xs:annotation>
394 </xs:attribute>
395 <xs:attribute name="Extension" type="xs:string">
396 <xs:annotation>
397 <xs:documentation>
398 Extension being registered. Do not prefix with a '.' (e.g. you should use "html", not ".html").
399 To register for all extensions, use Extension="*". To register a wildcard application map (which
400 handles all requests, even those for directories or files with no extension) omit the Extension
401 attribute completely.
402 </xs:documentation>
403 </xs:annotation>
404 </xs:attribute>
405 <xs:attribute name="Verbs" type="xs:string">
406 </xs:attribute>
407 <xs:attribute name="Script" type="wxs:YesNoTypeUnion">
408 </xs:attribute>
409 <xs:attribute name="CheckPath" type="wxs:YesNoTypeUnion">
410 </xs:attribute>
411 <xs:anyAttribute namespace="##other" processContents="lax">
412 <xs:annotation>
413 <xs:documentation>
414 Extensibility point in the WiX XML Schema. Schema extensions can register additional
415 attributes at this point in the schema.
416 </xs:documentation>
417 </xs:annotation>
418 </xs:anyAttribute>
419 </xs:complexType>
420 </xs:element>
421
422 <xs:element name="WebAppPool">
423 <xs:annotation>
424 <xs:appinfo>
425 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
426 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
427 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
428 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
429 </xs:appinfo>
430 <xs:documentation>IIS Application Pool</xs:documentation>
431 </xs:annotation>
432 <xs:complexType>
433 <xs:choice minOccurs="0" maxOccurs="unbounded">
434 <xs:element ref="RecycleTime" />
435 <xs:any namespace="##other" processContents="lax">
436 <xs:annotation>
437 <xs:documentation>
438 Extensibility point in the WiX XML Schema. Schema extensions can register additional
439 elements at this point in the schema.
440 </xs:documentation>
441 </xs:annotation>
442 </xs:any>
443 </xs:choice>
444 <xs:attribute name="Id" type="xs:string">
445 <xs:annotation>
446 <xs:documentation>Id of the AppPool. If the Id is not specified, it will be generated.</xs:documentation>
447 </xs:annotation>
448 </xs:attribute>
449 <xs:attribute name="Name" type="xs:string" use="required">
450 <xs:annotation>
451 <xs:documentation>Name of the AppPool to be shown in IIs.</xs:documentation>
452 </xs:annotation>
453 </xs:attribute>
454 <xs:attribute name="User" type="xs:string">
455 <xs:annotation>
456 <xs:documentation>User account to run the AppPool as. To use this, you must set the Identity attribute to 'other'.</xs:documentation>
457 </xs:annotation>
458 </xs:attribute>
459 <xs:attribute name="RecycleMinutes" type="wxs:Integer">
460 <xs:annotation>
461 <xs:documentation>How often, in minutes, you want the AppPool to be recycled.</xs:documentation>
462 </xs:annotation>
463 </xs:attribute>
464 <xs:attribute name="RecycleRequests" type="wxs:Integer">
465 <xs:annotation>
466 <xs:documentation>How often, in requests, you want the AppPool to be recycled.</xs:documentation>
467 </xs:annotation>
468 </xs:attribute>
469 <xs:attribute name="VirtualMemory" type="wxs:Integer">
470 <xs:annotation>
471 <xs:documentation>Specifies the amount of virtual memory (in KB) that a worker process can use before the worker process recycles. The maximum value supported for this attribute is 4,294,967 KB.</xs:documentation>
472 </xs:annotation>
473 </xs:attribute>
474 <xs:attribute name="PrivateMemory" type="wxs:Integer">
475 <xs:annotation>
476 <xs:documentation>Specifies the amount of private memory (in KB) that a worker process can use before the worker process recycles. The maximum value supported for this attribute is 4,294,967 KB.</xs:documentation>
477 </xs:annotation>
478 </xs:attribute>
479 <xs:attribute name="IdleTimeout" type="wxs:Integer">
480 <xs:annotation>
481 <xs:documentation>Shutdown worker process after being idle for (time in minutes).</xs:documentation>
482 </xs:annotation>
483 </xs:attribute>
484 <xs:attribute name="QueueLimit" type="wxs:Integer">
485 <xs:annotation>
486 <xs:documentation>Limit the kernel request queue (number of requests).</xs:documentation>
487 </xs:annotation>
488 </xs:attribute>
489 <xs:attribute name="MaxCpuUsage" type="PercentType">
490 <xs:annotation>
491 <xs:documentation>Maximum CPU usage (percent).</xs:documentation>
492 </xs:annotation>
493 </xs:attribute>
494 <xs:attribute name="RefreshCpu" type="wxs:Integer">
495 <xs:annotation>
496 <xs:documentation>Refresh CPU usage numbers (in minutes).</xs:documentation>
497 </xs:annotation>
498 </xs:attribute>
499 <xs:attribute name="CpuAction">
500 <xs:annotation>
501 <xs:documentation>Action taken when CPU exceeds maximum CPU use (as defined with MaxCpuUsage and RefreshCpu).</xs:documentation>
502 </xs:annotation>
503 <xs:simpleType>
504 <xs:restriction base="xs:string">
505 <xs:enumeration value="none"/>
506 <xs:enumeration value="shutdown"/>
507 </xs:restriction>
508 </xs:simpleType>
509 </xs:attribute>
510 <xs:attribute name="MaxWorkerProcesses" type="wxs:Integer">
511 <xs:annotation>
512 <xs:documentation>Maximum number of worker processes.</xs:documentation>
513 </xs:annotation>
514 </xs:attribute>
515 <xs:attribute name="Identity">
516 <xs:annotation>
517 <xs:documentation>Identity you want the AppPool to run under (applicationPoolIdentity is only available on IIS7). Use the 'other' value in conjunction with the User attribute to specify non-standard user.</xs:documentation>
518 </xs:annotation>
519 <xs:simpleType>
520 <xs:restriction base="xs:string">
521 <xs:enumeration value="networkService"/>
522 <xs:enumeration value="localService"/>
523 <xs:enumeration value="localSystem"/>
524 <xs:enumeration value="other"/>
525 <xs:enumeration value="applicationPoolIdentity"/>
526 </xs:restriction>
527 </xs:simpleType>
528 </xs:attribute>
529 <xs:attribute name="ManagedPipelineMode" type="xs:string">
530 <xs:annotation>
531 <xs:documentation>
532 Specifies the request-processing mode that is used to process requests for managed content. Only available on IIS7, ignored on IIS6.
533 See https://learn.microsoft.com/en-us/iis/configuration/system.applicationHost/applicationPools/applicationPoolDefaults/ for valid values.
534 This attribute may be set via a formatted Property (e.g. [MyProperty]).
535 </xs:documentation>
536 </xs:annotation>
537 </xs:attribute>
538 <xs:attribute name="ManagedRuntimeVersion" type="xs:string">
539 <xs:annotation>
540 <xs:documentation>
541 Specifies the .NET Framework version to be used by the application pool. Only available on IIS7, ignored on IIS6.
542 See https://learn.microsoft.com/en-us/iis/configuration/system.applicationHost/applicationPools/applicationPoolDefaults/ for valid values.
543 This attribute may be set via a formatted Property (e.g. [MyProperty]).
544 </xs:documentation>
545 </xs:annotation>
546 </xs:attribute>
547 <xs:anyAttribute namespace="##other" processContents="lax">
548 <xs:annotation>
549 <xs:documentation>
550 Extensibility point in the WiX XML Schema. Schema extensions can register additional
551 attributes at this point in the schema.
552 </xs:documentation>
553 </xs:annotation>
554 </xs:anyAttribute>
555 </xs:complexType>
556 </xs:element>
557
558 <xs:element name="RecycleTime">
559 <xs:annotation>
560 <xs:documentation>IIS6 Application Pool Recycle Times on 24 hour clock.</xs:documentation>
561 </xs:annotation>
562 <xs:complexType>
563 <xs:choice minOccurs="0" maxOccurs="unbounded">
564 <xs:any namespace="##other" processContents="lax">
565 <xs:annotation>
566 <xs:documentation>
567 Extensibility point in the WiX XML Schema. Schema extensions can register additional
568 elements at this point in the schema.
569 </xs:documentation>
570 </xs:annotation>
571 </xs:any>
572 </xs:choice>
573 <xs:attribute name="Value" use="required">
574 <xs:simpleType>
575 <xs:restriction base="xs:string">
576 <xs:pattern value="\d{1,2}:\d{2}"/>
577 </xs:restriction>
578 </xs:simpleType>
579 </xs:attribute>
580 <xs:anyAttribute namespace="##other" processContents="lax">
581 <xs:annotation>
582 <xs:documentation>
583 Extensibility point in the WiX XML Schema. Schema extensions can register additional
584 attributes at this point in the schema.
585 </xs:documentation>
586 </xs:annotation>
587 </xs:anyAttribute>
588 </xs:complexType>
589 </xs:element>
590
591 <xs:element name="Certificate">
592 <xs:annotation>
593 <xs:documentation>
594 Used to install and uninstall certificates.
595 </xs:documentation>
596 <xs:appinfo>
597 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
598 <xse:seeAlso ref="CertificateRef"/>
599 </xs:appinfo>
600 </xs:annotation>
601 <xs:complexType>
602 <xs:choice minOccurs="0" maxOccurs="unbounded">
603 <xs:any namespace="##other" processContents="lax">
604 <xs:annotation>
605 <xs:documentation>
606 Extensibility point in the WiX XML Schema. Schema extensions can register additional
607 elements at this point in the schema.
608 </xs:documentation>
609 </xs:annotation>
610 </xs:any>
611 </xs:choice>
612 <xs:attribute name="Id" type="xs:string">
613 <xs:annotation>
614 <xs:documentation>
615 Unique identifier for this certificate in the installation package. If the Id is not specified, it will be generated.
616 </xs:documentation>
617 </xs:annotation>
618 </xs:attribute>
619 <xs:attribute name="Name" type="xs:string" use="required">
620 <xs:annotation>
621 <xs:documentation>
622 Name of the certificate that will be installed or uninstalled in the specified store.
623 This attribute may be set via a formatted Property (e.g. [MyProperty]).
624 </xs:documentation>
625 </xs:annotation>
626 </xs:attribute>
627 <xs:attribute name="StoreName" use="required">
628 <xs:simpleType>
629 <xs:restriction base="xs:string">
630 <xs:enumeration value="ca">
631 <xs:annotation>
632 <xs:documentation>
633 Contains the certificates of certificate authorities that the user trusts to issue certificates to others. Certificates in these stores are normally supplied with the operating system or by the user's network administrator.
634 </xs:documentation>
635 </xs:annotation>
636 </xs:enumeration>
637 <xs:enumeration value="my">
638 <xs:annotation>
639 <xs:documentation>
640 Use the "personal" value instead.
641 </xs:documentation>
642 </xs:annotation>
643 </xs:enumeration>
644 <xs:enumeration value="personal">
645 <xs:annotation>
646 <xs:documentation>
647 Contains personal certificates. These certificates will usually have an associated private key. This store is often
648 referred to as the "MY" certificate store.
649 </xs:documentation>
650 </xs:annotation>
651 </xs:enumeration>
652 <xs:enumeration value="request"/>
653 <xs:enumeration value="root">
654 <xs:annotation>
655 <xs:documentation>
656 Contains the certificates of certificate authorities that the user trusts to issue certificates to others. Certificates in these stores are normally supplied with the operating system or by the user's network administrator. Certificates in this store are typically self-signed.
657 </xs:documentation>
658 </xs:annotation>
659 </xs:enumeration>
660 <xs:enumeration value="otherPeople">
661 <xs:annotation>
662 <xs:documentation>
663 Contains the certificates of those that the user normally sends enveloped messages to or receives signed messages from.
664 See <a href="http://msdn.microsoft.com/library/aa388160.aspx" target="_blank">MSDN documentation</a> for more information.
665 </xs:documentation>
666 </xs:annotation>
667 </xs:enumeration>
668 <xs:enumeration value="trustedPeople">
669 <xs:annotation>
670 <xs:documentation>
671 Contains the certificates of those directly trusted people and resources.
672 See <a href="http://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.storename.aspx" target="_blank">MSDN documentation</a> for more information.
673 </xs:documentation>
674 </xs:annotation>
675 </xs:enumeration>
676 <xs:enumeration value="trustedPublisher">
677 <xs:annotation>
678 <xs:documentation>
679 Contains the certificates of those publishers who are trusted.
680 See <a href="http://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.storename.aspx" target="_blank">MSDN documentation</a> for more information.
681 </xs:documentation>
682 </xs:annotation>
683 </xs:enumeration>
684 </xs:restriction>
685 </xs:simpleType>
686 </xs:attribute>
687 <xs:attribute name="StoreLocation" use="required">
688 <xs:simpleType>
689 <xs:restriction base="xs:string">
690 <xs:enumeration value="currentUser"/>
691 <xs:enumeration value="localMachine"/>
692 </xs:restriction>
693 </xs:simpleType>
694 </xs:attribute>
695 <!-- The Overwrite attribute is not implemented at this time.
696 <xs:attribute name="Overwrite" type="wxs:YesNoTypeUnion" />
697 -->
698 <xs:attribute name="Request" type="wxs:YesNoTypeUnion">
699 <xs:annotation>
700 <xs:documentation>
701 This attribute controls whether the CertificatePath attribute is a path to a certificate file (Request=&apos;no&apos;) or the
702 certificate authority to request the certificate from (Request=&apos;yes&apos;).
703 </xs:documentation>
704 </xs:annotation>
705 </xs:attribute>
706 <xs:attribute name="BinaryRef" type="xs:string">
707 <xs:annotation>
708 <xs:documentation>
709 Reference to a Binary element that will store the certificate as a stream inside the package. This attribute cannot be specified with
710 the CertificatePath attribute.
711 </xs:documentation>
712 <xs:appinfo>
713 <xse:seeAlso ref="Binary"/>
714 </xs:appinfo>
715 </xs:annotation>
716 </xs:attribute>
717 <xs:attribute name="CertificatePath" type="xs:string">
718 <xs:annotation>
719 <xs:documentation>
720 If the Request attribute is "no" then this attribute is the path to the certificate file outside of the package.
721 If the Request attribute is "yes" then this atribute is the certificate authority to request the certificate from.
722 This attribute may be set via a formatted Property (e.g. [MyProperty]).
723 </xs:documentation>
724 </xs:annotation>
725 </xs:attribute>
726 <xs:attribute name="PFXPassword" type="xs:string">
727 <xs:annotation>
728 <xs:documentation>
729 If the Binary stream or path to the file outside of the package is a password protected PFX file, the password for that
730 PFX must be specified here. This attribute may be set via a formatted Property (e.g. [MyProperty]).
731 </xs:documentation>
732 </xs:annotation>
733 </xs:attribute>
734 <xs:attribute name="Vital" type="wxs:YesNoTypeUnion">
735 <xs:annotation>
736 <xs:documentation>
737 Indicates whether to fail the install if the certificate fails to install. The default is "yes".
738 </xs:documentation>
739 </xs:annotation>
740 </xs:attribute>
741 <xs:anyAttribute namespace="##other" processContents="lax">
742 <xs:annotation>
743 <xs:documentation>
744 Extensibility point in the WiX XML Schema. Schema extensions can register additional
745 attributes at this point in the schema.
746 </xs:documentation>
747 </xs:annotation>
748 </xs:anyAttribute>
749 </xs:complexType>
750 </xs:element>
751
752 <xs:element name="CertificateRef">
753 <xs:annotation>
754 <xs:documentation>
755 Associates a certificate with the parent WebSite. The Certificate element should be
756 in the same Component as the parent WebSite.
757 </xs:documentation>
758 <xs:appinfo>
759 <xse:seeAlso ref="Certificate"/>
760 </xs:appinfo>
761 </xs:annotation>
762 <xs:complexType>
763 <xs:choice minOccurs="0" maxOccurs="unbounded">
764 <xs:any namespace="##other" processContents="lax">
765 <xs:annotation>
766 <xs:documentation>
767 Extensibility point in the WiX XML Schema. Schema extensions can register additional
768 elements at this point in the schema.
769 </xs:documentation>
770 </xs:annotation>
771 </xs:any>
772 </xs:choice>
773 <xs:attribute name="Id" type="xs:string" use="required">
774 <xs:annotation>
775 <xs:documentation>
776 The identifier of the referenced Certificate.
777 </xs:documentation>
778 </xs:annotation>
779 </xs:attribute>
780 <xs:anyAttribute namespace="##other" processContents="lax">
781 <xs:annotation>
782 <xs:documentation>
783 Extensibility point in the WiX XML Schema. Schema extensions can register additional
784 attributes at this point in the schema.
785 </xs:documentation>
786 </xs:annotation>
787 </xs:anyAttribute>
788 </xs:complexType>
789 </xs:element>
790
791 <xs:element name="WebProperty">
792 <xs:annotation>
793 <xs:appinfo>
794 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
795 <xse:remarks>
796 Here is an explanation of the acceptable values for each property and their meaning:
797 <html:ul>
798 <html:li>
799 For the Ids IIs5IsolationMode and LogInUTF8, no value should be specified since
800 the presence of this property indicates that the setting should be set.
801 </html:li>
802 <html:li>
803 For the MaxGlobalBandwidth Id, the value should be specified in kilobytes. The
804 value should be a base 10 number.
805 </html:li>
806 <html:li>
807 ETagChangeNumber sets the machine-specific portion of ETag as a number. This value,
808 when synchronized across servers in a web farm, allows the web farm to return an
809 identical ETag for a given resource regardless of the server that handled the
810 request. The value should be a base 10 number.
811 </html:li>
812 </html:ul>
813 </xse:remarks>
814 </xs:appinfo>
815 <xs:documentation>IIS Properties</xs:documentation>
816 </xs:annotation>
817 <xs:complexType>
818 <xs:choice minOccurs="0" maxOccurs="unbounded">
819 <xs:any namespace="##other" processContents="lax">
820 <xs:annotation>
821 <xs:documentation>
822 Extensibility point in the WiX XML Schema. Schema extensions can register additional
823 elements at this point in the schema.
824 </xs:documentation>
825 </xs:annotation>
826 </xs:any>
827 </xs:choice>
828 <xs:attribute name="Id" use="required">
829 <xs:simpleType>
830 <xs:restriction base="xs:string">
831 <xs:enumeration value="ETagChangeNumber"/>
832 <xs:enumeration value="IIs5IsolationMode"/>
833 <xs:enumeration value="MaxGlobalBandwidth"/>
834 <xs:enumeration value="LogInUTF8"/>
835 </xs:restriction>
836 </xs:simpleType>
837 </xs:attribute>
838 <xs:attribute name="Value" type="xs:string">
839 <xs:annotation>
840 <xs:documentation>
841 The value to be used for the WebProperty specified in the Id attribute. See
842 the remarks section for information on acceptable values for each Id.
843 </xs:documentation>
844 </xs:annotation>
845 </xs:attribute>
846 <xs:anyAttribute namespace="##other" processContents="lax">
847 <xs:annotation>
848 <xs:documentation>
849 Extensibility point in the WiX XML Schema. Schema extensions can register additional
850 attributes at this point in the schema.
851 </xs:documentation>
852 </xs:annotation>
853 </xs:anyAttribute>
854 </xs:complexType>
855 </xs:element>
856
857 <xs:element name="WebApplication">
858 <xs:annotation>
859 <xs:appinfo>
860 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
861 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
862 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
863 </xs:appinfo>
864 <xs:documentation>Defines properties for a web application. These properties can be used for more than one application defined in a web site or vroot, by defining this element in a common location and referring to it by setting the WebApplication attribute of the WebSite and WebVirtualDir elements.</xs:documentation>
865 </xs:annotation>
866 <xs:complexType>
867 <xs:choice minOccurs="0" maxOccurs="unbounded">
868 <xs:element ref="WebApplicationExtension" />
869 <xs:any namespace="##other" processContents="lax">
870 <xs:annotation>
871 <xs:documentation>
872 Extensibility point in the WiX XML Schema. Schema extensions can register additional
873 elements at this point in the schema.
874 </xs:documentation>
875 </xs:annotation>
876 </xs:any>
877 </xs:choice>
878 <xs:attribute name="Id" type="xs:string">
879 <xs:annotation>
880 <xs:documentation>Identifier for the web application. If the Id is not specified, it will be generated.</xs:documentation>
881 </xs:annotation>
882 </xs:attribute>
883 <xs:attribute name="Name" type="xs:string" use="required">
884 <xs:annotation>
885 <xs:documentation>Sets the name of this application.</xs:documentation>
886 </xs:annotation>
887 </xs:attribute>
888 <xs:attribute name="Isolation">
889 <xs:annotation>
890 <xs:documentation>
891 Sets the application isolation level for this application for pre-IIS 6 applications.
892 </xs:documentation>
893 </xs:annotation>
894 <xs:simpleType>
895 <xs:restriction base="xs:NMTOKEN">
896 <xs:enumeration value="low">
897 <xs:annotation>
898 <xs:documentation>
899 Means the application executes within the IIS process.
900 </xs:documentation>
901 </xs:annotation>
902 </xs:enumeration>
903 <xs:enumeration value="medium">
904 <xs:annotation>
905 <xs:documentation>
906 Executes pooled in a separate process.
907 </xs:documentation>
908 </xs:annotation>
909 </xs:enumeration>
910 <xs:enumeration value="high">
911 <xs:annotation>
912 <xs:documentation>
913 Means execution alone in a separate process.
914 </xs:documentation>
915 </xs:annotation>
916 </xs:enumeration>
917 </xs:restriction>
918 </xs:simpleType>
919 </xs:attribute>
920 <xs:attribute name="AllowSessions" type="wxs:YesNoDefaultTypeUnion">
921 <xs:annotation>
922 <xs:documentation>Sets the Enable Session State option. When enabled, you can set the session timeout using the SessionTimeout attribute.</xs:documentation>
923 </xs:annotation>
924 </xs:attribute>
925 <xs:attribute name="SessionTimeout" type="wxs:Integer">
926 <xs:annotation>
927 <xs:documentation>Sets the timeout value for sessions in minutes.</xs:documentation>
928 </xs:annotation>
929 </xs:attribute>
930 <xs:attribute name="Buffer" type="wxs:YesNoDefaultTypeUnion">
931 <xs:annotation>
932 <xs:documentation>Sets the option that enables response buffering in the application, which allows ASP script to set response headers anywhere in the script.</xs:documentation>
933 </xs:annotation>
934 </xs:attribute>
935 <xs:attribute name="ParentPaths" type="wxs:YesNoDefaultTypeUnion">
936 <xs:annotation>
937 <xs:documentation>Sets the parent paths option, which allows a client to use relative paths to reach parent directories from this application.</xs:documentation>
938 </xs:annotation>
939 </xs:attribute>
940 <xs:attribute name="DefaultScript">
941 <xs:annotation>
942 <xs:documentation>Sets the default script language for the site.</xs:documentation>
943 </xs:annotation>
944 <xs:simpleType>
945 <xs:restriction base="xs:NMTOKEN">
946 <xs:enumeration value="VBScript"/>
947 <xs:enumeration value="JScript"/>
948 </xs:restriction>
949 </xs:simpleType>
950 </xs:attribute>
951 <xs:attribute name="ScriptTimeout" type="wxs:Integer">
952 <xs:annotation>
953 <xs:documentation>Sets the timeout value in seconds for executing ASP scripts.</xs:documentation>
954 </xs:annotation>
955 </xs:attribute>
956 <xs:attribute name="ServerDebugging" type="wxs:YesNoDefaultTypeUnion">
957 <xs:annotation>
958 <xs:documentation>Enable ASP server-side script debugging.</xs:documentation>
959 </xs:annotation>
960 </xs:attribute>
961 <xs:attribute name="ClientDebugging" type="wxs:YesNoDefaultTypeUnion">
962 <xs:annotation>
963 <xs:documentation>Enable ASP client-side script debugging.</xs:documentation>
964 </xs:annotation>
965 </xs:attribute>
966 <xs:attribute name="WebAppPool" type="xs:string">
967 <xs:annotation>
968 <xs:documentation>References the Id attribute of a WebAppPool element to use as the application pool for this application in IIS 6 applications.</xs:documentation>
969 </xs:annotation>
970 </xs:attribute>
971 <xs:anyAttribute namespace="##other" processContents="lax">
972 <xs:annotation>
973 <xs:documentation>
974 Extensibility point in the WiX XML Schema. Schema extensions can register additional
975 attributes at this point in the schema.
976 </xs:documentation>
977 </xs:annotation>
978 </xs:anyAttribute>
979 </xs:complexType>
980 </xs:element>
981
982 <xs:element name="WebAddress">
983 <xs:annotation>
984 <xs:documentation>WebAddress for WebSite</xs:documentation>
985 </xs:annotation>
986 <xs:complexType>
987 <xs:choice minOccurs="0" maxOccurs="unbounded">
988 <xs:any namespace="##other" processContents="lax">
989 <xs:annotation>
990 <xs:documentation>
991 Extensibility point in the WiX XML Schema. Schema extensions can register additional
992 elements at this point in the schema.
993 </xs:documentation>
994 </xs:annotation>
995 </xs:any>
996 </xs:choice>
997 <xs:attribute name="Id" type="xs:string">
998 <xs:annotation>
999 <xs:documentation>Identifier for the web application. If the Id is not specified, it will be generated.</xs:documentation>
1000 </xs:annotation>
1001 </xs:attribute>
1002 <xs:attribute name="IP" type="xs:string">
1003 <xs:annotation>
1004 <xs:documentation>
1005 The IP address to locate an existing WebSite or create a new WebSite. When the WebAddress is part of a WebSite element
1006 used to locate an existing web site the following rules are used:
1007 <html:ul>
1008 <html:li>When this attribute is not specified only the "All Unassigned" IP address will be located.</html:li>
1009 <html:li>When this attribute is explicitly specified only the specified IP address will be located.</html:li>
1010 <html:li>When this attribute has the value "*" then any IP address including the "All Unassigned" IP address will be located</html:li>
1011 </html:ul>
1012
1013 When the WebAddress is part of a WebSite element used to create a new web site the following rules are used:
1014
1015 <html:ul>
1016 <html:li>When this attribute is not specified or the value is "*" the "All Unassigned" IP address will be used.</html:li>
1017 <html:li>When this attribute is explicitly specified the IP address will use that value.</html:li>
1018 </html:ul>
1019
1020 The IP attribute can contain a formatted string that is processed at install time to insert the values of properties using
1021 [PropertyName] syntax.
1022 </xs:documentation>
1023 </xs:annotation>
1024 </xs:attribute>
1025 <xs:attribute name="Port" type="xs:string" use="required"/>
1026 <xs:attribute name="Header" type="xs:string"/>
1027 <xs:attribute name="Secure" type="wxs:YesNoTypeUnion">
1028 <xs:annotation>
1029 <xs:documentation>Determines if this address represents a secure binding. The default is 'no'.</xs:documentation>
1030 </xs:annotation>
1031 </xs:attribute>
1032 <xs:anyAttribute namespace="##other" processContents="lax">
1033 <xs:annotation>
1034 <xs:documentation>
1035 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1036 attributes at this point in the schema.
1037 </xs:documentation>
1038 </xs:annotation>
1039 </xs:anyAttribute>
1040 </xs:complexType>
1041 </xs:element>
1042
1043 <xs:element name="WebVirtualDir">
1044 <xs:annotation>
1045 <xs:appinfo>
1046 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
1047 </xs:appinfo>
1048 <xs:documentation>Defines an IIS virtual directory. When this element is a child of WebSite element, the virtual directory is defined within that web site. Otherwise this virtual directory must reference a WebSite element via the WebSite attribute</xs:documentation>
1049 </xs:annotation>
1050 <xs:complexType>
1051 <xs:choice minOccurs="0" maxOccurs="unbounded">
1052 <xs:element ref="WebApplication" minOccurs="0" maxOccurs="1" />
1053 <xs:element ref="WebDirProperties" minOccurs="0" maxOccurs="1" />
1054 <xs:element ref="WebError" />
1055 <xs:element ref="WebVirtualDir" />
1056 <xs:element ref="HttpHeader" />
1057 <xs:element ref="MimeMap" />
1058 <xs:any namespace="##other" processContents="lax">
1059 <xs:annotation>
1060 <xs:documentation>
1061 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1062 elements at this point in the schema.
1063 </xs:documentation>
1064 </xs:annotation>
1065 </xs:any>
1066 </xs:choice>
1067 <xs:attribute name="Id" type="xs:string">
1068 <xs:annotation>
1069 <xs:documentation>Identifier for the web application. If the Id is not specified, it will be generated.</xs:documentation>
1070 </xs:annotation>
1071 </xs:attribute>
1072 <xs:attribute name="WebSite" type="xs:string">
1073 <xs:annotation>
1074 <xs:documentation>References the Id attribute for a WebSite in which this virtual directory belongs. Required when this element is not a child of WebSite element.</xs:documentation>
1075 </xs:annotation>
1076 </xs:attribute>
1077 <xs:attribute name="Alias" type="xs:string" use="required">
1078 <xs:annotation>
1079 <xs:documentation>Sets the application name, which is the URL relative path used to access this virtual directory</xs:documentation>
1080 </xs:annotation>
1081 </xs:attribute>
1082 <xs:attribute name="Directory" use="required" type="xs:string">
1083 <xs:annotation>
1084 <xs:documentation>References the Id attribute for a Directory element that points to the content for this virtual directory.</xs:documentation>
1085 </xs:annotation>
1086 </xs:attribute>
1087 <xs:attribute name="DirProperties" type="xs:string">
1088 <xs:annotation>
1089 <xs:documentation>
1090 References the Id attribute for a WebDirProperties element that specifies the security and access properties for this virtual directory.
1091 This attribute may not be specified if a WebDirProperties element is directly nested in this element.
1092 </xs:documentation>
1093 </xs:annotation>
1094 </xs:attribute>
1095 <xs:attribute name="WebApplication" type="xs:string">
1096 <xs:annotation>
1097 <xs:documentation>References the Id attribute for a WebApplication element that specifies web application settings for this virtual directory. If a WebApplication child is not specified, the virtual directory does not host web applications.</xs:documentation>
1098 </xs:annotation>
1099 </xs:attribute>
1100 <xs:anyAttribute namespace="##other" processContents="lax">
1101 <xs:annotation>
1102 <xs:documentation>
1103 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1104 attributes at this point in the schema.
1105 </xs:documentation>
1106 </xs:annotation>
1107 </xs:anyAttribute>
1108 </xs:complexType>
1109 </xs:element>
1110
1111 <xs:element name="WebDir">
1112 <xs:annotation>
1113 <xs:appinfo>
1114 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
1115 </xs:appinfo>
1116 <xs:documentation>Defines a subdirectory within an IIS web site. When this element is a child of WebSite, the web directory is defined within that web site. Otherwise the web directory must reference a WebSite element via the WebSite attribute.</xs:documentation>
1117 </xs:annotation>
1118 <xs:complexType>
1119 <xs:choice minOccurs="0" maxOccurs="unbounded">
1120 <xs:element ref="WebApplication" minOccurs="0" maxOccurs="1" />
1121 <xs:element ref="WebDirProperties" minOccurs="0" maxOccurs="1" />
1122 <xs:any namespace="##other" processContents="lax">
1123 <xs:annotation>
1124 <xs:documentation>
1125 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1126 elements at this point in the schema.
1127 </xs:documentation>
1128 </xs:annotation>
1129 </xs:any>
1130 </xs:choice>
1131 <xs:attribute name="Id" type="xs:string">
1132 <xs:annotation>
1133 <xs:documentation>Identifier for the web application. If the Id is not specified, it will be generated.</xs:documentation>
1134 </xs:annotation>
1135 </xs:attribute>
1136 <xs:attribute name="WebApplication" type="xs:string">
1137 <xs:annotation>
1138 <xs:documentation>References the Id attribute for a WebApplication element in which this directory belongs.</xs:documentation>
1139 </xs:annotation>
1140 </xs:attribute>
1141 <xs:attribute name="WebSite" type="xs:string">
1142 <xs:annotation>
1143 <xs:documentation>References the Id attribute for a WebSite element in which this directory belongs. Required when this element is not a child of a WebSite element.</xs:documentation>
1144 </xs:annotation>
1145 </xs:attribute>
1146 <xs:attribute name="Path" type="xs:string" use="required">
1147 <xs:annotation>
1148 <xs:documentation>Specifies the name of this web directory.</xs:documentation>
1149 </xs:annotation>
1150 </xs:attribute>
1151 <xs:attribute name="DirProperties" type="xs:string">
1152 <xs:annotation>
1153 <xs:documentation>
1154 References the Id attribute for a WebDirProperties element that specifies the security and access properties for this web directory.
1155 This attribute may not be specified if a WebDirProperties element is directly nested in this element.
1156 </xs:documentation>
1157 </xs:annotation>
1158 </xs:attribute>
1159 <xs:anyAttribute namespace="##other" processContents="lax">
1160 <xs:annotation>
1161 <xs:documentation>
1162 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1163 attributes at this point in the schema.
1164 </xs:documentation>
1165 </xs:annotation>
1166 </xs:anyAttribute>
1167 </xs:complexType>
1168 </xs:element>
1169
1170 <xs:element name="WebSite">
1171 <xs:annotation>
1172 <xs:appinfo>
1173 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
1174 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1175 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
1176 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
1177 <xse:remarks>
1178 Nesting WebSite under a Component element will result in a WebSite being installed to the machine as the package is installed.
1179 Nesting WebSite under Package, Fragment, or Module
1180 results in a web site "locator" record being created in
1181 the IIsWebSite table. This means that the web site
1182 itself is neither installed nor uninstalled by the MSI
1183 package. It does make the database available for referencing
1184 from a WebApplication, WebVirtualDir or WebDir record. This allows an MSI to install
1185 WebApplications, WebVirtualDirs or WebDirs to already existing web sites on the machine.
1186 The install will fail if the web site does not exist in these cases.
1187 </xse:remarks>
1188 </xs:appinfo>
1189 <xs:documentation>IIs Web Site</xs:documentation>
1190 </xs:annotation>
1191 <xs:complexType>
1192 <xs:choice minOccurs="0" maxOccurs="unbounded">
1193 <xs:element ref="WebAddress" minOccurs="1" maxOccurs="unbounded"/>
1194 <xs:element ref="WebApplication" minOccurs="0" maxOccurs="1" />
1195 <xs:element ref="WebDirProperties" minOccurs="0" maxOccurs="1" />
1196 <xs:element ref="MimeMap"/>
1197 <xs:element ref="CertificateRef"/>
1198 <xs:element ref="HttpHeader"/>
1199 <xs:element ref="WebDir"/>
1200 <xs:element ref="WebError"/>
1201 <xs:element ref="WebFilter"/>
1202 <xs:element ref="WebVirtualDir"/>
1203 <xs:any namespace="##other" processContents="lax">
1204 <xs:annotation>
1205 <xs:documentation>
1206 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1207 elements at this point in the schema.
1208 </xs:documentation>
1209 </xs:annotation>
1210 </xs:any>
1211 </xs:choice>
1212 <xs:attribute name="Id" type="xs:string">
1213 <xs:annotation>
1214 <xs:documentation>Identifier for the WebSite. Used within the MSI package only. If the Id is not specified, it will be generated.</xs:documentation>
1215 </xs:annotation>
1216 </xs:attribute>
1217 <xs:attribute name="AutoStart" type="wxs:YesNoTypeUnion">
1218 <xs:annotation>
1219 <xs:documentation>Specifies whether to automatically start the web site.</xs:documentation>
1220 </xs:annotation>
1221 </xs:attribute>
1222 <xs:attribute name="ConfigureIfExists" type="wxs:YesNoTypeUnion">
1223 <xs:annotation>
1224 <xs:documentation>Specifies whether to configure the web site if it already exists. Note: This will not affect uninstall behavior. If the web site exists on uninstall, it will be removed.</xs:documentation>
1225 </xs:annotation>
1226 </xs:attribute>
1227 <xs:attribute name="ConnectionTimeout" type="xs:nonNegativeInteger">
1228 <xs:annotation>
1229 <xs:documentation>Sets the timeout value for connections in seconds.</xs:documentation>
1230 </xs:annotation>
1231 </xs:attribute>
1232 <xs:attribute name="Description" use="required" type="xs:string">
1233 <xs:annotation>
1234 <xs:documentation>This is the name of the web site that will show up in the IIS management console.</xs:documentation>
1235 </xs:annotation>
1236 </xs:attribute>
1237 <xs:attribute name="Directory" type="xs:string">
1238 <xs:annotation>
1239 <xs:documentation>Root directory of the web site. Resolved to a directory in the Directory table at install time by the server custom actions.</xs:documentation>
1240 </xs:annotation>
1241 </xs:attribute>
1242 <xs:attribute name="DirProperties" type="xs:string">
1243 <xs:annotation>
1244 <xs:documentation>
1245 References the Id attribute for a WebDirProperties element that specifies the security and access properties for this website root directory.
1246 This attribute may not be specified if a WebDirProperties element is directly nested in this element.
1247 </xs:documentation>
1248 </xs:annotation>
1249 </xs:attribute>
1250 <xs:attribute name="Sequence" type="wxs:Integer">
1251 <xs:annotation>
1252 <xs:documentation>Sequence that the web site is to be created in.</xs:documentation>
1253 </xs:annotation>
1254 </xs:attribute>
1255 <xs:attribute name="SiteId" type="xs:string">
1256 <xs:annotation>
1257 <xs:documentation>
1258 Optional attribute to directly specify the site id of the WebSite. Use this to ensure all web
1259 sites in a web garden get the same site id. If a number is provided, the site id must be unique
1260 on all target machines. If "*" is used, the Description attribute will be hashed to create a unique
1261 value for the site id. This value must be a positive number or a "*" or a formatted value that resolves
1262 to "-1" (for the same behavior as "*") or a positive number or blank. If this attribute is absent then
1263 the web site will be located using the WebAddress element associated with the web site.
1264 </xs:documentation>
1265 </xs:annotation>
1266 </xs:attribute>
1267 <xs:attribute name="StartOnInstall" type="wxs:YesNoTypeUnion">
1268 <xs:annotation>
1269 <xs:documentation>Specifies whether to start the web site on install.</xs:documentation>
1270 </xs:annotation>
1271 </xs:attribute>
1272 <xs:attribute name="WebApplication" type="xs:string">
1273 <xs:annotation>
1274 <xs:documentation>Reference to a WebApplication that is to be installed as part of this web site.</xs:documentation>
1275 </xs:annotation>
1276 </xs:attribute>
1277 <xs:attribute name="WebLog" type="xs:string">
1278 <xs:annotation>
1279 <xs:documentation>Reference to WebLog definition.</xs:documentation>
1280 </xs:annotation>
1281 </xs:attribute>
1282 <xs:anyAttribute namespace="##other" processContents="lax">
1283 <xs:annotation>
1284 <xs:documentation>
1285 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1286 attributes at this point in the schema.
1287 </xs:documentation>
1288 </xs:annotation>
1289 </xs:anyAttribute>
1290 </xs:complexType>
1291 </xs:element>
1292
1293 <xs:element name="WebLog">
1294 <xs:annotation>
1295 <xs:appinfo>
1296 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1297 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
1298 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
1299 </xs:appinfo>
1300 <xs:documentation>WebLog definition.</xs:documentation>
1301 </xs:annotation>
1302 <xs:complexType>
1303 <xs:choice minOccurs="0" maxOccurs="unbounded">
1304 <xs:any namespace="##other" processContents="lax">
1305 <xs:annotation>
1306 <xs:documentation>
1307 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1308 elements at this point in the schema.
1309 </xs:documentation>
1310 </xs:annotation>
1311 </xs:any>
1312 </xs:choice>
1313 <xs:attribute name="Id" type="xs:string" use="required">
1314 <xs:annotation>
1315 <xs:documentation>Identifier for the WebLog.</xs:documentation>
1316 </xs:annotation>
1317 </xs:attribute>
1318 <xs:attribute name="Type" use="required">
1319 <xs:simpleType>
1320 <xs:restriction base="xs:NMTOKEN">
1321 <xs:enumeration value="IIS">
1322 <xs:annotation>
1323 <xs:documentation>
1324 Microsoft IIS Log File Format
1325 </xs:documentation>
1326 </xs:annotation>
1327 </xs:enumeration>
1328 <xs:enumeration value="NCSA">
1329 <xs:annotation>
1330 <xs:documentation>
1331 NCSA Common Log File Format
1332 </xs:documentation>
1333 </xs:annotation>
1334 </xs:enumeration>
1335 <xs:enumeration value="none">
1336 <xs:annotation>
1337 <xs:documentation>
1338 Disables logging.
1339 </xs:documentation>
1340 </xs:annotation>
1341 </xs:enumeration>
1342 <xs:enumeration value="ODBC">
1343 <xs:annotation>
1344 <xs:documentation>
1345 ODBC Logging
1346 </xs:documentation>
1347 </xs:annotation>
1348 </xs:enumeration>
1349 <xs:enumeration value="W3C">
1350 <xs:annotation>
1351 <xs:documentation>
1352 W3C Extended Log File Format
1353 </xs:documentation>
1354 </xs:annotation>
1355 </xs:enumeration>
1356 </xs:restriction>
1357 </xs:simpleType>
1358 </xs:attribute>
1359 <xs:anyAttribute namespace="##other" processContents="lax">
1360 <xs:annotation>
1361 <xs:documentation>
1362 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1363 attributes at this point in the schema.
1364 </xs:documentation>
1365 </xs:annotation>
1366 </xs:anyAttribute>
1367 </xs:complexType>
1368 </xs:element>
1369
1370 <xs:element name="WebServiceExtension">
1371 <xs:annotation>
1372 <xs:appinfo>
1373 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
1374 </xs:appinfo>
1375 <xs:documentation>The WebServiceExtension property is used by the Web server to determine whether a Web service extension is permitted to run.</xs:documentation>
1376 </xs:annotation>
1377 <xs:complexType>
1378 <xs:choice minOccurs="0" maxOccurs="unbounded">
1379 <xs:any namespace="##other" processContents="lax">
1380 <xs:annotation>
1381 <xs:documentation>
1382 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1383 elements at this point in the schema.
1384 </xs:documentation>
1385 </xs:annotation>
1386 </xs:any>
1387 </xs:choice>
1388 <xs:attribute name="Id" type="xs:string">
1389 <xs:annotation>
1390 <xs:documentation>Identifier for the web service extension. Used within the MSI package only. If the Id is not specified, it will be generated.</xs:documentation>
1391 </xs:annotation>
1392 </xs:attribute>
1393 <xs:attribute name="File" type="xs:string" use="required">
1394 <xs:annotation>
1395 <xs:documentation>Usually a Property that resolves to short file name path</xs:documentation>
1396 </xs:annotation>
1397 </xs:attribute>
1398 <xs:attribute name="Description" type="xs:string">
1399 <xs:annotation>
1400 <xs:documentation>Description of the extension.</xs:documentation>
1401 </xs:annotation>
1402 </xs:attribute>
1403 <xs:attribute name="Group" type="xs:string">
1404 <xs:annotation>
1405 <xs:documentation>String used to identify groups of extensions.</xs:documentation>
1406 </xs:annotation>
1407 </xs:attribute>
1408 <xs:attribute name="Allow" use="required" type="wxs:YesNoTypeUnion">
1409 <xs:annotation>
1410 <xs:documentation>Indicates if the extension is allowed or denied.</xs:documentation>
1411 </xs:annotation>
1412 </xs:attribute>
1413 <xs:attribute name="UIDeletable" type="wxs:YesNoTypeUnion">
1414 <xs:annotation>
1415 <xs:documentation>Indicates if the UI is allowed to delete the extension from the list of not. Default: Not deletable.</xs:documentation>
1416 </xs:annotation>
1417 </xs:attribute>
1418 <xs:anyAttribute namespace="##other" processContents="lax">
1419 <xs:annotation>
1420 <xs:documentation>
1421 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1422 attributes at this point in the schema.
1423 </xs:documentation>
1424 </xs:annotation>
1425 </xs:anyAttribute>
1426 </xs:complexType>
1427 </xs:element>
1428
1429 <xs:simpleType name="PercentType">
1430 <xs:annotation>
1431 <xs:documentation>Values of this type are any integers between 0 and 100, inclusive.</xs:documentation>
1432 </xs:annotation>
1433 <xs:restriction base="xs:nonNegativeInteger">
1434 <xs:maxInclusive value="100"/>
1435 </xs:restriction>
1436 </xs:simpleType>
1437
1438</xs:schema>
diff --git a/src/xsd/msmq.xsd b/src/xsd/msmq.xsd
new file mode 100644
index 00000000..223b4e48
--- /dev/null
+++ b/src/xsd/msmq.xsd
@@ -0,0 +1,153 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
4
5<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
6 xmlns:xse="http://wixtoolset.org/schemas/XmlSchemaExtension"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:wxs="http://wixtoolset.org/schemas/v4/wxs"
9 targetNamespace="http://wixtoolset.org/schemas/v4/wxs/msmq"
10 xmlns="http://wixtoolset.org/schemas/v4/wxs/msmq">
11 <xs:annotation>
12 <xs:documentation>
13 The source code schema for the WiX Toolset MSMQ Extension.
14 </xs:documentation>
15 </xs:annotation>
16
17 <xs:import namespace="http://wixtoolset.org/schemas/v4/wxs" />
18
19 <xs:element name="MessageQueue">
20 <xs:annotation>
21 <xs:documentation>Installs an MSMQ message queue.</xs:documentation>
22 <xs:appinfo>
23 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
24 </xs:appinfo>
25 </xs:annotation>
26 <xs:complexType>
27 <xs:choice minOccurs="0" maxOccurs="unbounded">
28 <xs:element ref="MessageQueuePermission" />
29 <xs:any namespace="##other" processContents="lax">
30 <xs:annotation>
31 <xs:documentation>
32 Extensibility point in the WiX XML Schema. Schema extensions can register additional
33 elements at this point in the schema.
34 </xs:documentation>
35 </xs:annotation>
36 </xs:any>
37 </xs:choice>
38 <xs:attribute name="Id" type="xs:string">
39 <xs:annotation>
40 <xs:documentation>Identifier for the message queue. If the Id is not specified, one will be generated.</xs:documentation>
41 </xs:annotation>
42 </xs:attribute>
43 <xs:attribute name="Authenticate" type="wxs:YesNoTypeUnion">
44 <xs:annotation>
45 <xs:documentation>The default value is "no".</xs:documentation>
46 </xs:annotation>
47 </xs:attribute>
48 <xs:attribute name="BasePriority" type="wxs:Integer">
49 <xs:annotation>
50 <xs:documentation>The base priority of the queue.</xs:documentation>
51 </xs:annotation>
52 </xs:attribute>
53 <xs:attribute name="Journal" type="wxs:YesNoTypeUnion">
54 <xs:annotation>
55 <xs:documentation>The default value is "no".</xs:documentation>
56 </xs:annotation>
57 </xs:attribute>
58 <xs:attribute name="JournalQuota" type="wxs:Integer" />
59 <xs:attribute name="Label" use="required" type="xs:string" />
60 <xs:attribute name="MulticastAddress" type="xs:string" />
61 <xs:attribute name="PathName" use="required" type="xs:string" />
62 <xs:attribute name="PrivLevel">
63 <xs:simpleType>
64 <xs:restriction base="xs:NMTOKEN">
65 <xs:enumeration value="none" />
66 <xs:enumeration value="optional" />
67 <xs:enumeration value="body" />
68 </xs:restriction>
69 </xs:simpleType>
70 </xs:attribute>
71 <xs:attribute name="Quota" type="wxs:Integer" />
72 <xs:attribute name="Transactional" type="wxs:YesNoTypeUnion">
73 <xs:annotation>
74 <xs:documentation>The default value is "no".</xs:documentation>
75 </xs:annotation>
76 </xs:attribute>
77 <xs:attribute name="ServiceTypeGuid" type="xs:string" />
78 <xs:anyAttribute namespace="##other" processContents="lax">
79 <xs:annotation>
80 <xs:documentation>
81 Extensibility point in the WiX XML Schema. Schema extensions can register additional
82 attributes at this point in the schema.
83 </xs:documentation>
84 </xs:annotation>
85 </xs:anyAttribute>
86 </xs:complexType>
87 </xs:element>
88
89 <xs:element name="MessageQueuePermission">
90 <xs:annotation><xs:documentation>
91 </xs:documentation>
92 <xs:appinfo>
93 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
94 </xs:appinfo>
95 </xs:annotation>
96 <xs:complexType>
97 <xs:choice minOccurs="0" maxOccurs="unbounded">
98 <xs:any namespace="##other" processContents="lax">
99 <xs:annotation>
100 <xs:documentation>
101 Extensibility point in the WiX XML Schema. Schema extensions can register additional
102 elements at this point in the schema.
103 </xs:documentation>
104 </xs:annotation>
105 </xs:any>
106 </xs:choice>
107 <xs:attribute name="Id" use="required" type="xs:string">
108 <xs:annotation>
109 <xs:documentation>Identifier for the message queue permission. If the Id is not specified, one will be generated.</xs:documentation>
110 </xs:annotation>
111 </xs:attribute>
112 <xs:attribute name="MessageQueue" type="xs:string">
113 <xs:annotation>
114 <xs:documentation>Message queue to set permissions on. Must be specified when under a Component element. Cannot be specified when under a MessageQueue element.</xs:documentation>
115 </xs:annotation>
116 </xs:attribute>
117 <xs:attribute name="User" type="xs:string">
118 <xs:annotation>
119 <xs:documentation></xs:documentation>
120 </xs:annotation>
121 </xs:attribute>
122 <xs:attribute name="Group" type="xs:string">
123 <xs:annotation>
124 <xs:documentation></xs:documentation>
125 </xs:annotation>
126 </xs:attribute>
127 <xs:attribute name="DeleteMessage" type="wxs:YesNoTypeUnion" />
128 <xs:attribute name="PeekMessage" type="wxs:YesNoTypeUnion" />
129 <xs:attribute name="WriteMessage" type="wxs:YesNoTypeUnion" />
130 <xs:attribute name="DeleteJournalMessage" type="wxs:YesNoTypeUnion" />
131 <xs:attribute name="SetQueueProperties" type="wxs:YesNoTypeUnion" />
132 <xs:attribute name="GetQueueProperties" type="wxs:YesNoTypeUnion" />
133 <xs:attribute name="DeleteQueue" type="wxs:YesNoTypeUnion" />
134 <xs:attribute name="GetQueuePermissions" type="wxs:YesNoTypeUnion" />
135 <xs:attribute name="ChangeQueuePermissions" type="wxs:YesNoTypeUnion" />
136 <xs:attribute name="TakeQueueOwnership" type="wxs:YesNoTypeUnion" />
137 <xs:attribute name="ReceiveMessage" type="wxs:YesNoTypeUnion" />
138 <xs:attribute name="ReceiveJournalMessage" type="wxs:YesNoTypeUnion" />
139 <xs:attribute name="QueueGenericRead" type="wxs:YesNoTypeUnion" />
140 <xs:attribute name="QueueGenericWrite" type="wxs:YesNoTypeUnion" />
141 <xs:attribute name="QueueGenericExecute" type="wxs:YesNoTypeUnion" />
142 <xs:attribute name="QueueGenericAll" type="wxs:YesNoTypeUnion" />
143 <xs:anyAttribute namespace="##other" processContents="lax">
144 <xs:annotation>
145 <xs:documentation>
146 Extensibility point in the WiX XML Schema. Schema extensions can register additional
147 attributes at this point in the schema.
148 </xs:documentation>
149 </xs:annotation>
150 </xs:anyAttribute>
151 </xs:complexType>
152 </xs:element>
153</xs:schema>
diff --git a/src/xsd/netfx.xsd b/src/xsd/netfx.xsd
new file mode 100644
index 00000000..079b95c9
--- /dev/null
+++ b/src/xsd/netfx.xsd
@@ -0,0 +1,687 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
4
5<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
6 xmlns:xse="http://wixtoolset.org/schemas/XmlSchemaExtension"
7 xmlns:wxs="http://wixtoolset.org/schemas/v4/wxs"
8 targetNamespace="http://wixtoolset.org/schemas/v4/wxs/netfx"
9 xmlns="http://wixtoolset.org/schemas/v4/wxs/netfx">
10 <xs:annotation>
11 <xs:documentation>
12 The source code schema for the WiX Toolset .NET Framework Extension.
13 </xs:documentation>
14 </xs:annotation>
15
16 <xs:import namespace="http://wixtoolset.org/schemas/v4/wxs" />
17
18 <xs:element name="NativeImage">
19 <xs:annotation>
20 <xs:documentation>
21 Improves the performance of managed applications by creating native images.
22 Requires the .NET Framework 2.0 or newer to be installed on the target machine since
23 it runs [NGen](https://learn.microsoft.com/en-us/dotnet/framework/tools/ngen-exe-native-image-generator).
24 </xs:documentation>
25 <xs:appinfo>
26 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="File" />
27 <xse:remarks>
28 Native images are files containing compiled processor-specific machine code, which
29 are installed into the native image cache on the local computer. The runtime
30 can use native images from the cache instead using the just-in-time (JIT)
31 compiler to compile the original assembly.
32
33 The native image custom actions are configured to ignore failures so that failing
34 to generate or remove a native image will not cause setup to fail and roll back.
35 </xse:remarks>
36 </xs:appinfo>
37 </xs:annotation>
38 <xs:complexType>
39 <xs:choice minOccurs="0" maxOccurs="unbounded">
40 <xs:any namespace="##other" processContents="lax">
41 <xs:annotation>
42 <xs:documentation>
43 Extensibility point in the WiX XML Schema. Schema extensions can register additional
44 elements at this point in the schema.
45 </xs:documentation>
46 </xs:annotation>
47 </xs:any>
48 </xs:choice>
49 <xs:attribute name="Id" type="xs:string">
50 <xs:annotation>
51 <xs:documentation>Identifier for the native image in the output database. If the Id is not specified, one will be generated.</xs:documentation>
52 </xs:annotation>
53 </xs:attribute>
54 <xs:attribute name="AppBaseDirectory" type="xs:string">
55 <xs:annotation>
56 <xs:documentation>
57 The directory to use for locating dependent assemblies.
58 For DLL assemblies and assemblies installed to the Global Assembly Cache (GAC),
59 this attribute should be set to the directory of the application which loads this
60 assembly. For EXE assemblies, this attribute does not need to be set because NGen
61 will use the directory of the assembly file by default.
62
63 The value can be in the form of a directory identifier, or a formatted string
64 that resolves to either a directory identifier or a full path to a directory.
65 </xs:documentation>
66 </xs:annotation>
67 </xs:attribute>
68 <xs:attribute name="AssemblyApplication" type="xs:string">
69 <xs:annotation>
70 <xs:documentation>
71 The application which will load this assembly.
72 For DLL assemblies which are loaded via reflection, this attribute should
73 be set to indicate the application which will load this assembly.
74 The configuration of the application (usually specified via an exe.config file) will be used
75 to determine how to resolve dependencies for this assembly.
76
77 The value can be in the form of a file identifier, or a formatted string
78 that resolves to either a file identifier or a full path to a file.
79
80 When a shared component is loaded at run time, using the Load method, the
81 application's configuration file determines the dependencies that are loaded
82 for the shared component — for example, the version of a dependency that is loaded.
83 This attribute gives guidance on which dependencies would be loaded at run time in order
84 to figure out which dependency assemblies will also need to have native images generated
85 (assuming the Dependency attribute is not set to "no").
86
87 This attribute cannot be set if the AssemblyApplication attribute is set on the parent
88 File element (please note that these attributes both refer to the same application
89 assembly but do very different things: specifiying File/@AssemblyApplication will force
90 an assembly to install to a private location next to the indicated application, whereas
91 this AssemblyApplication attribute will be used to help resolve dependent assemblies
92 while generating native images for this assembly).
93 </xs:documentation>
94 </xs:annotation>
95 </xs:attribute>
96 <xs:attribute name="Debug" type="wxs:YesNoTypeUnion">
97 <xs:annotation>
98 <xs:documentation>
99 Set to "yes" to generate native images that can be used under a debugger.
100 The default value is "no".
101 </xs:documentation>
102 </xs:annotation>
103 </xs:attribute>
104 <xs:attribute name="Dependencies" type="wxs:YesNoTypeUnion">
105 <xs:annotation>
106 <xs:documentation>
107 Set to "no" to generate the minimum number of native images.
108 The default value is "yes".
109 </xs:documentation>
110 </xs:annotation>
111 </xs:attribute>
112 <xs:attribute name="Platform" type="NativeImagePreprocessorPlatformType">
113 <xs:annotation>
114 <xs:documentation>
115 Sets the platform(s) for which native images will be generated.
116 </xs:documentation>
117 </xs:annotation>
118 </xs:attribute>
119 <xs:attribute name="Priority">
120 <xs:annotation>
121 <xs:documentation>
122 Sets the priority of generating the native images for this assembly.
123 </xs:documentation>
124 </xs:annotation>
125 <xs:simpleType>
126 <xs:restriction base="xs:NMTOKEN">
127 <xs:enumeration value="0">
128 <xs:annotation>
129 <xs:documentation>
130 This is the highest priority, it means that image generation occurs
131 and completes during setup. This option ensures images are generated
132 by the time setup is complete.
133 </xs:documentation>
134 </xs:annotation>
135 </xs:enumeration>
136 <xs:enumeration value="1">
137 <xs:annotation>
138 <xs:documentation>
139 This will queue image generation to the NGen service to occur immediately.
140 This option will slow down setup performance.
141 </xs:documentation>
142 </xs:annotation>
143 </xs:enumeration>
144 <xs:enumeration value="2">
145 <xs:annotation>
146 <xs:documentation>
147 This will queue image generation to the NGen service to occur after all priority 1
148 assemblies have completed.
149 This option will slow down setup performance.
150 </xs:documentation>
151 </xs:annotation>
152 </xs:enumeration>
153 <xs:enumeration value="3">
154 <xs:annotation>
155 <xs:documentation>
156 This is the lowest priority, it will queue image generation to occur when the
157 machine is idle.
158 This option should not slow down setup performance.
159 This is the default value.
160 </xs:documentation>
161 </xs:annotation>
162 </xs:enumeration>
163 </xs:restriction>
164 </xs:simpleType>
165 </xs:attribute>
166 <xs:attribute name="Profile" type="wxs:YesNoTypeUnion">
167 <xs:annotation>
168 <xs:documentation>
169 Set to "yes" to generate native images that can be used under a profiler.
170 The default value is "no".
171 </xs:documentation>
172 </xs:annotation>
173 </xs:attribute>
174 <xs:anyAttribute namespace="##other" processContents="lax">
175 <xs:annotation>
176 <xs:documentation>
177 Extensibility point in the WiX XML Schema. Schema extensions can register additional
178 attributes at this point in the schema.
179 </xs:documentation>
180 </xs:annotation>
181 </xs:anyAttribute>
182 </xs:complexType>
183 </xs:element>
184
185 <xs:element name="DotNetCoreSearch">
186 <xs:annotation>
187 <xs:documentation>
188 Searches for an installation of .NET Core.
189 The variable gets set to the latest version of the given Runtime, Platform, and Major Version.
190 </xs:documentation>
191 <xs:appinfo>
192 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
193 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
194 </xs:appinfo>
195 </xs:annotation>
196 <xs:complexType>
197 <xs:choice minOccurs="0" maxOccurs="unbounded">
198 <xs:any namespace="##other" processContents="lax">
199 <xs:annotation>
200 <xs:documentation>
201 Extensibility point in the WiX XML Schema. Schema extensions can register additional
202 elements at this point in the schema.
203 </xs:documentation>
204 </xs:annotation>
205 </xs:any>
206 </xs:choice>
207 <xs:attribute name="Id" type="xs:string">
208 <xs:annotation>
209 <xs:documentation>Identifier for the search. If the Id is not specified, one will be generated.</xs:documentation>
210 </xs:annotation>
211 </xs:attribute>
212 <xs:attribute name="Variable" type="xs:string" use="required">
213 <xs:annotation>
214 <xs:documentation>Name of the variable in which to place the result of the search.</xs:documentation>
215 </xs:annotation>
216 </xs:attribute>
217 <xs:attribute name="Condition" type="xs:string">
218 <xs:annotation>
219 <xs:documentation>Condition for evaluating the search. If this evaluates to false, the search is not executed at all.</xs:documentation>
220 </xs:annotation>
221 </xs:attribute>
222 <xs:attribute name="After" type="xs:string">
223 <xs:annotation>
224 <xs:documentation>Id of the search that this one should come after.</xs:documentation>
225 </xs:annotation>
226 </xs:attribute>
227 <xs:attribute name="RuntimeType">
228 <xs:annotation>
229 <xs:documentation>The type of .NET Core runtime to search for.</xs:documentation>
230 </xs:annotation>
231 <xs:simpleType>
232 <xs:restriction base="xs:NMTOKEN">
233 <xs:enumeration value="aspnet">
234 <xs:annotation>
235 <xs:documentation>
236 Attempt to check for an ASP.NET Core type runtime.
237 The ASP.NET Core Runtime enables you to run web/server applications.
238 </xs:documentation>
239 </xs:annotation>
240 </xs:enumeration>
241 <xs:enumeration value="core">
242 <xs:annotation>
243 <xs:documentation>
244 Attempt to check for a .NET type runtime.
245 The .NET Core Runtime contains just the components needed to run a console app.
246 </xs:documentation>
247 </xs:annotation>
248 </xs:enumeration>
249 <xs:enumeration value="desktop">
250 <xs:annotation>
251 <xs:documentation>
252 Attempt to check for a .NET Desktop type runtime.
253 The .NET Desktop Runtime enables you to run Windows desktop applications.
254 </xs:documentation>
255 </xs:annotation>
256 </xs:enumeration>
257 </xs:restriction>
258 </xs:simpleType>
259 </xs:attribute>
260 <xs:attribute name="Platform" type="NetfxPreprocessorPlatformType">
261 <xs:annotation>
262 <xs:documentation>The platform to search for.</xs:documentation>
263 </xs:annotation>
264 </xs:attribute>
265 <xs:attribute name="MajorVersion" type="wxs:Integer">
266 <xs:annotation>
267 <xs:documentation>Major version of .NET. For example, "6".</xs:documentation>
268 </xs:annotation>
269 </xs:attribute>
270 <xs:anyAttribute namespace="##other" processContents="lax">
271 <xs:annotation>
272 <xs:documentation>
273 Extensibility point in the WiX XML Schema. Schema extensions can register additional
274 attributes at this point in the schema.
275 </xs:documentation>
276 </xs:annotation>
277 </xs:anyAttribute>
278 </xs:complexType>
279 </xs:element>
280
281 <xs:element name="DotNetCoreSearchRef">
282 <xs:annotation>
283 <xs:documentation>References a DotNetCoreSearch.</xs:documentation>
284 <xs:appinfo>
285 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
286 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
287 </xs:appinfo>
288 </xs:annotation>
289 <xs:complexType>
290 <xs:choice minOccurs="0" maxOccurs="unbounded">
291 <xs:any namespace="##other" processContents="lax">
292 <xs:annotation>
293 <xs:documentation>
294 Extensibility point in the WiX XML Schema. Schema extensions can register additional
295 elements at this point in the schema.
296 </xs:documentation>
297 </xs:annotation>
298 </xs:any>
299 </xs:choice>
300 <xs:attribute name="Id" type="xs:string" use="required" />
301 <xs:anyAttribute namespace="##other" processContents="lax">
302 <xs:annotation>
303 <xs:documentation>
304 Extensibility point in the WiX XML Schema. Schema extensions can register additional
305 attributes at this point in the schema.
306 </xs:documentation>
307 </xs:annotation>
308 </xs:anyAttribute>
309 </xs:complexType>
310 </xs:element>
311
312 <xs:element name="DotNetCoreSdkSearch">
313 <xs:annotation>
314 <xs:documentation>
315 Searches for an installation of .NET Core SDK.
316 The variable gets set to the latest version of the given Platform and Major Version.
317 </xs:documentation>
318 <xs:appinfo>
319 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
320 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
321 </xs:appinfo>
322 </xs:annotation>
323 <xs:complexType>
324 <xs:choice minOccurs="0" maxOccurs="unbounded">
325 <xs:any namespace="##other" processContents="lax">
326 <xs:annotation>
327 <xs:documentation>
328 Extensibility point in the WiX XML Schema. Schema extensions can register additional
329 elements at this point in the schema.
330 </xs:documentation>
331 </xs:annotation>
332 </xs:any>
333 </xs:choice>
334 <xs:attribute name="Id" type="xs:string">
335 <xs:annotation>
336 <xs:documentation>Identifier for the search. If the Id is not specified, one will be generated.</xs:documentation>
337 </xs:annotation>
338 </xs:attribute>
339 <xs:attribute name="Variable" type="xs:string" use="required">
340 <xs:annotation>
341 <xs:documentation>Name of the variable in which to place the result of the search.</xs:documentation>
342 </xs:annotation>
343 </xs:attribute>
344 <xs:attribute name="Condition" type="xs:string">
345 <xs:annotation>
346 <xs:documentation>Condition for evaluating the search. If this evaluates to false, the search is not executed at all.</xs:documentation>
347 </xs:annotation>
348 </xs:attribute>
349 <xs:attribute name="After" type="xs:string">
350 <xs:annotation>
351 <xs:documentation>Id of the search that this one should come after.</xs:documentation>
352 </xs:annotation>
353 </xs:attribute>
354 <xs:attribute name="Platform" type="NetfxPreprocessorPlatformType">
355 <xs:annotation>
356 <xs:documentation>The platform to search for.</xs:documentation>
357 </xs:annotation>
358 </xs:attribute>
359 <xs:attribute name="MajorVersion" type="wxs:Integer">
360 <xs:annotation>
361 <xs:documentation>Major version of .NET SDK. For example, "6".</xs:documentation>
362 </xs:annotation>
363 </xs:attribute>
364 <xs:anyAttribute namespace="##other" processContents="lax">
365 <xs:annotation>
366 <xs:documentation>
367 Extensibility point in the WiX XML Schema. Schema extensions can register additional
368 attributes at this point in the schema.
369 </xs:documentation>
370 </xs:annotation>
371 </xs:anyAttribute>
372 </xs:complexType>
373 </xs:element>
374
375 <xs:element name="DotNetCoreSdkSearchRef">
376 <xs:annotation>
377 <xs:documentation>References a DotNetCoreSdkSearch.</xs:documentation>
378 <xs:appinfo>
379 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
380 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
381 </xs:appinfo>
382 </xs:annotation>
383 <xs:complexType>
384 <xs:choice minOccurs="0" maxOccurs="unbounded">
385 <xs:any namespace="##other" processContents="lax">
386 <xs:annotation>
387 <xs:documentation>
388 Extensibility point in the WiX XML Schema. Schema extensions can register additional
389 elements at this point in the schema.
390 </xs:documentation>
391 </xs:annotation>
392 </xs:any>
393 </xs:choice>
394 <xs:attribute name="Id" type="xs:string" use="required" />
395 <xs:anyAttribute namespace="##other" processContents="lax">
396 <xs:annotation>
397 <xs:documentation>
398 Extensibility point in the WiX XML Schema. Schema extensions can register additional
399 attributes at this point in the schema.
400 </xs:documentation>
401 </xs:annotation>
402 </xs:anyAttribute>
403 </xs:complexType>
404 </xs:element>
405
406 <xs:element name="DotNetCoreSdkFeatureBandSearch">
407 <xs:annotation>
408 <xs:documentation>
409 Searches for an installation of .NET Core SDK of the given platform.
410 The variable gets set to the latest version of the SDK that is in the feature band specified by Version.
411 </xs:documentation>
412 <xs:appinfo>
413 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
414 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
415 </xs:appinfo>
416 </xs:annotation>
417 <xs:complexType>
418 <xs:choice minOccurs="0" maxOccurs="unbounded">
419 <xs:any namespace="##other" processContents="lax">
420 <xs:annotation>
421 <xs:documentation>
422 Extensibility point in the WiX XML Schema. Schema extensions can register additional
423 elements at this point in the schema.
424 </xs:documentation>
425 </xs:annotation>
426 </xs:any>
427 </xs:choice>
428 <xs:attribute name="Id" type="xs:string">
429 <xs:annotation>
430 <xs:documentation>Identifier for the search. If the Id is not specified, one will be generated.</xs:documentation>
431 </xs:annotation>
432 </xs:attribute>
433 <xs:attribute name="Variable" type="xs:string" use="required">
434 <xs:annotation>
435 <xs:documentation>Name of the variable in which to place the result of the search.</xs:documentation>
436 </xs:annotation>
437 </xs:attribute>
438 <xs:attribute name="Condition" type="xs:string">
439 <xs:annotation>
440 <xs:documentation>Condition for evaluating the search. If this evaluates to false, the search is not executed at all.</xs:documentation>
441 </xs:annotation>
442 </xs:attribute>
443 <xs:attribute name="After" type="xs:string">
444 <xs:annotation>
445 <xs:documentation>Id of the search that this one should come after.</xs:documentation>
446 </xs:annotation>
447 </xs:attribute>
448 <xs:attribute name="Platform" type="NetfxPreprocessorPlatformType">
449 <xs:annotation>
450 <xs:documentation>The platform to search for.</xs:documentation>
451 </xs:annotation>
452 </xs:attribute>
453 <xs:attribute name="Version" type="wxs:StrictThreePartVersionType">
454 <xs:annotation>
455 <xs:documentation>
456 A specific .NET Core SDK feature band. For example, "6.0.400".
457 For more information about feature bands, see https://learn.microsoft.com/en-us/dotnet/core/releases-and-support#feature-bands-sdk-only.
458 </xs:documentation>
459 </xs:annotation>
460 </xs:attribute>
461 <xs:anyAttribute namespace="##other" processContents="lax">
462 <xs:annotation>
463 <xs:documentation>
464 Extensibility point in the WiX XML Schema. Schema extensions can register additional
465 attributes at this point in the schema.
466 </xs:documentation>
467 </xs:annotation>
468 </xs:anyAttribute>
469 </xs:complexType>
470 </xs:element>
471
472 <xs:element name="DotNetCoreSdkFeatureBandSearchRef">
473 <xs:annotation>
474 <xs:documentation>References a DotNetCoreSdkFeatureBandSearch.</xs:documentation>
475 <xs:appinfo>
476 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
477 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
478 </xs:appinfo>
479 </xs:annotation>
480 <xs:complexType>
481 <xs:choice minOccurs="0" maxOccurs="unbounded">
482 <xs:any namespace="##other" processContents="lax">
483 <xs:annotation>
484 <xs:documentation>
485 Extensibility point in the WiX XML Schema. Schema extensions can register additional
486 elements at this point in the schema.
487 </xs:documentation>
488 </xs:annotation>
489 </xs:any>
490 </xs:choice>
491 <xs:attribute name="Id" type="xs:string" use="required" />
492 <xs:anyAttribute namespace="##other" processContents="lax">
493 <xs:annotation>
494 <xs:documentation>
495 Extensibility point in the WiX XML Schema. Schema extensions can register additional
496 attributes at this point in the schema.
497 </xs:documentation>
498 </xs:annotation>
499 </xs:anyAttribute>
500 </xs:complexType>
501 </xs:element>
502
503 <xs:element name="DotNetCompatibilityCheck">
504 <xs:annotation>
505 <xs:documentation>
506 Validates whether the specified .NET is installed on the computer.
507 </xs:documentation>
508 <xs:appinfo>
509 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
510 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
511 </xs:appinfo>
512 </xs:annotation>
513 <xs:complexType>
514 <xs:choice minOccurs="0" maxOccurs="unbounded">
515 <xs:any namespace="##other" processContents="lax">
516 <xs:annotation>
517 <xs:documentation>
518 Extensibility point in the WiX XML Schema. Schema extensions can register additional
519 elements at this point in the schema.
520 </xs:documentation>
521 </xs:annotation>
522 </xs:any>
523 </xs:choice>
524 <xs:attribute name="Id" type="xs:string">
525 <xs:annotation>
526 <xs:documentation>Identifier for the compatibility check. If the Id is not specified, one will be generated.</xs:documentation>
527 </xs:annotation>
528 </xs:attribute>
529 <xs:attribute name="Property" type="xs:string" use="required">
530 <xs:annotation>
531 <xs:documentation>
532 Name of the property in which to place the result of the compatibility check. The possible values are:
533 - 0 - Successful compatibility check.
534 - 13 - Requested platform is not compatible with OS. _Introduced in WiX v5.0._
535 - 12289 - No runtime is installed.
536 - 12290 - Required runtime is not installed.
537 - 12291 - Failed to get hostfxr exports.
538 - 12292 - Invalid arguments.
539 - 12293 - Failed to construct temp json file path.
540 - 12294 - Failed to create temp json file.
541 </xs:documentation>
542 </xs:annotation>
543 </xs:attribute>
544 <xs:attribute name="RuntimeType">
545 <xs:annotation>
546 <xs:documentation>The .NET runtime to check against.</xs:documentation>
547 </xs:annotation>
548 <xs:simpleType>
549 <xs:restriction base="xs:NMTOKEN">
550 <xs:enumeration value="aspnet" />
551 <xs:enumeration value="core" />
552 <xs:enumeration value="desktop" />
553 </xs:restriction>
554 </xs:simpleType>
555 </xs:attribute>
556 <xs:attribute name="Platform" type="NetfxPreprocessorPlatformType">
557 <xs:annotation>
558 <xs:documentation>The platform to use to validate.</xs:documentation>
559 </xs:annotation>
560 </xs:attribute>
561 <xs:attribute name="Version" type="wxs:StrictThreePartVersionType">
562 <xs:annotation>
563 <xs:documentation>Version of .NET to check against.</xs:documentation>
564 </xs:annotation>
565 </xs:attribute>
566 <xs:attribute name="RollForward">
567 <xs:annotation>
568 <xs:documentation>The roll forward policy to use while validating.</xs:documentation>
569 </xs:annotation>
570 <xs:simpleType>
571 <xs:restriction base="xs:NMTOKEN">
572 <xs:enumeration value="latestMajor" />
573 <xs:enumeration value="major" />
574 <xs:enumeration value="latestMinor" />
575 <xs:enumeration value="minor" />
576 <xs:enumeration value="latestPatch" />
577 <xs:enumeration value="disable" />
578 </xs:restriction>
579 </xs:simpleType>
580 </xs:attribute>
581 <xs:anyAttribute namespace="##other" processContents="lax">
582 <xs:annotation>
583 <xs:documentation>
584 Extensibility point in the WiX XML Schema. Schema extensions can register additional
585 attributes at this point in the schema.
586 </xs:documentation>
587 </xs:annotation>
588 </xs:anyAttribute>
589 </xs:complexType>
590 </xs:element>
591
592 <xs:element name="DotNetCompatibilityCheckRef">
593 <xs:annotation>
594 <xs:documentation>References a DotNetCompatibilityCheck.</xs:documentation>
595 <xs:appinfo>
596 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
597 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
598 </xs:appinfo>
599 </xs:annotation>
600 <xs:complexType>
601 <xs:choice minOccurs="0" maxOccurs="unbounded">
602 <xs:any namespace="##other" processContents="lax">
603 <xs:annotation>
604 <xs:documentation>
605 Extensibility point in the WiX XML Schema. Schema extensions can register additional
606 elements at this point in the schema.
607 </xs:documentation>
608 </xs:annotation>
609 </xs:any>
610 </xs:choice>
611 <xs:attribute name="Id" type="xs:string" use="required" />
612 <xs:anyAttribute namespace="##other" processContents="lax">
613 <xs:annotation>
614 <xs:documentation>
615 Extensibility point in the WiX XML Schema. Schema extensions can register additional
616 attributes at this point in the schema.
617 </xs:documentation>
618 </xs:annotation>
619 </xs:anyAttribute>
620 </xs:complexType>
621 </xs:element>
622
623 <xs:simpleType name="NativeImagePlatformType">
624 <xs:restriction base="xs:NMTOKEN">
625 <xs:enumeration value="32bit">
626 <xs:annotation>
627 <xs:documentation>
628 Attempt to generate native images only for the 32-bit version of the .NET Framework
629 on the target machine. If the 32-bit version of the .NET Framework 2.0 or newer is not
630 present on the target machine, native image custom actions will not be scheduled.
631 This is the default value.
632 </xs:documentation>
633 </xs:annotation>
634 </xs:enumeration>
635 <xs:enumeration value="64bit">
636 <xs:annotation>
637 <xs:documentation>
638 Attempt to generate native images only for the 64-bit version of the .NET Framework
639 on the target machine. If a 64-bit version of the .NET Framework 2.0 or newer is not
640 present on the target machine, native image custom actions will not be scheduled.
641 </xs:documentation>
642 </xs:annotation>
643 </xs:enumeration>
644 <xs:enumeration value="all">
645 <xs:annotation>
646 <xs:documentation>
647 Attempt to generate native images for the 32-bit and 64-bit versions of the .NET Framework
648 on the target machine. If a version of the .NET Framework 2.0 or newer is not present on the
649 target machine for a processor architecture, native image custom actions will not be
650 scheduled for that processor architecture.
651 </xs:documentation>
652 </xs:annotation>
653 </xs:enumeration>
654 </xs:restriction>
655 </xs:simpleType>
656
657 <xs:simpleType name="NativeImagePreprocessorPlatformType">
658 <xs:annotation>
659 <xs:documentation>
660 Platform referencing the machine architecture.
661 </xs:documentation>
662 </xs:annotation>
663 <xs:union memberTypes="NativeImagePlatformType wxs:PreprocessorVariables"/>
664 </xs:simpleType>
665
666 <xs:simpleType name="NetfxPlatformType">
667 <xs:annotation>
668 <xs:documentation>
669 Platform referencing the machine architecture.
670 </xs:documentation>
671 </xs:annotation>
672 <xs:restriction base="xs:NMTOKEN">
673 <xs:enumeration value="arm64" />
674 <xs:enumeration value="x64" />
675 <xs:enumeration value="x86" />
676 </xs:restriction>
677 </xs:simpleType>
678
679 <xs:simpleType name="NetfxPreprocessorPlatformType">
680 <xs:annotation>
681 <xs:documentation>
682 Platform referencing the machine architecture.
683 </xs:documentation>
684 </xs:annotation>
685 <xs:union memberTypes="NetfxPlatformType wxs:PreprocessorVariables"/>
686 </xs:simpleType>
687</xs:schema>
diff --git a/src/xsd/ps.xsd b/src/xsd/ps.xsd
new file mode 100644
index 00000000..fce957d8
--- /dev/null
+++ b/src/xsd/ps.xsd
@@ -0,0 +1,227 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
4
5<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
6 xmlns:xse="http://wixtoolset.org/schemas/XmlSchemaExtension"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:wxs="http://wixtoolset.org/schemas/v4/wxs"
9 targetNamespace="http://wixtoolset.org/schemas/v4/wxs/powershell"
10 xmlns="http://wixtoolset.org/schemas/v4/wxs/powershell">
11 <xs:annotation>
12 <xs:documentation>
13 The source code schema for the WiX Toolset PowerShell Extension.
14 </xs:documentation>
15 </xs:annotation>
16
17 <xs:import namespace="http://wixtoolset.org/schemas/v4/wxs" />
18
19 <xs:element name="FormatsFile">
20 <xs:annotation>
21 <xs:documentation>
22 Identifies the parent File as a formats XML file for the referenced PowerShell snap-in.
23 </xs:documentation>
24 <xs:appinfo>
25 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="File" />
26 <xse:remarks>
27 A formats XML file that defines output formats for objects on the pipeline.
28 </xse:remarks>
29 </xs:appinfo>
30 </xs:annotation>
31 <xs:complexType>
32 <xs:choice minOccurs="0" maxOccurs="unbounded">
33 <xs:any namespace="##other" processContents="lax">
34 <xs:annotation>
35 <xs:documentation>
36 Extensibility point in the WiX XML Schema. Schema extensions can register additional
37 elements at this point in the schema.
38 </xs:documentation>
39 </xs:annotation>
40 </xs:any>
41 </xs:choice>
42 <xs:attribute name="FileId" type="xs:string">
43 <xs:annotation>
44 <xs:documentation>
45 Reference to the formats File ID. This is required when nested under the SnapIn element.
46 </xs:documentation>
47 </xs:annotation>
48 </xs:attribute>
49 <xs:attribute name="SnapIn" type="xs:string">
50 <xs:annotation>
51 <xs:documentation>
52 Reference to the PowerShell snap-in ID for which this formats file is associated. This is required when nested under the File element.
53 </xs:documentation>
54 </xs:annotation>
55 </xs:attribute>
56 <xs:anyAttribute namespace="##other" processContents="lax">
57 <xs:annotation>
58 <xs:documentation>
59 Extensibility point in the WiX XML Schema. Schema extensions can register additional
60 attributes at this point in the schema.
61 </xs:documentation>
62 </xs:annotation>
63 </xs:anyAttribute>
64 </xs:complexType>
65 </xs:element>
66
67 <xs:element name="TypesFile">
68 <xs:annotation>
69 <xs:documentation>
70 Identifies the parent File as a types XML file for the referenced PowerShell snap-in.
71 </xs:documentation>
72 <xs:appinfo>
73 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="File" />
74 <xse:remarks>
75 A types XML file used by the extensible type system.
76 </xse:remarks>
77 </xs:appinfo>
78 </xs:annotation>
79 <xs:complexType>
80 <xs:choice minOccurs="0" maxOccurs="unbounded">
81 <xs:any namespace="##other" processContents="lax">
82 <xs:annotation>
83 <xs:documentation>
84 Extensibility point in the WiX XML Schema. Schema extensions can register additional
85 elements at this point in the schema.
86 </xs:documentation>
87 </xs:annotation>
88 </xs:any>
89 </xs:choice>
90 <xs:attribute name="FileId" type="xs:string">
91 <xs:annotation>
92 <xs:documentation>
93 Reference to the types File ID. This is required when nested under the SnapIn element.
94 </xs:documentation>
95 </xs:annotation>
96 </xs:attribute>
97 <xs:attribute name="SnapIn" type="xs:string">
98 <xs:annotation>
99 <xs:documentation>
100 Reference to the PowerShell snap-in ID for which this types file is associated. This is required when nested under the File element.
101 </xs:documentation>
102 </xs:annotation>
103 </xs:attribute>
104 <xs:anyAttribute namespace="##other" processContents="lax">
105 <xs:annotation>
106 <xs:documentation>
107 Extensibility point in the WiX XML Schema. Schema extensions can register additional
108 attributes at this point in the schema.
109 </xs:documentation>
110 </xs:annotation>
111 </xs:anyAttribute>
112 </xs:complexType>
113 </xs:element>
114
115 <xs:element name="SnapIn">
116 <xs:annotation>
117 <xs:documentation>
118 Identifies the parent File as a PowerShell snap-in to be registered on the system.
119 </xs:documentation>
120 <xs:appinfo>
121 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="File" />
122 <xse:remarks>
123 [PowerShell](http://www.microsoft.com/powershell) snap-ins allow developers to
124 extend the functionality of of the PowerShell engine. Add this element to identify
125 the parent File as a PowerShell snap-in that will get registered on the system.
126 </xse:remarks>
127 </xs:appinfo>
128 </xs:annotation>
129 <xs:complexType>
130 <xs:choice minOccurs="0" maxOccurs="unbounded">
131 <xs:element ref="FormatsFile" />
132 <xs:element ref="TypesFile" />
133 <xs:any namespace="##other" processContents="lax">
134 <xs:annotation>
135 <xs:documentation>
136 Extensibility point in the WiX XML Schema. Schema extensions can register additional
137 elements at this point in the schema.
138 </xs:documentation>
139 </xs:annotation>
140 </xs:any>
141 </xs:choice>
142 <xs:attribute name="Id" type="xs:string" use="required">
143 <xs:annotation>
144 <xs:documentation>
145 The identifier for this PowerShell snap-in.
146 </xs:documentation>
147 </xs:annotation>
148 </xs:attribute>
149 <xs:attribute name="CustomSnapInType" type="xs:string">
150 <xs:annotation>
151 <xs:documentation>
152 The full type name of a class that is used to register a list of cmdlets and providers.
153 </xs:documentation>
154 </xs:annotation>
155 </xs:attribute>
156 <xs:attribute name="Description" type="xs:string">
157 <xs:annotation>
158 <xs:documentation>
159 A brief description of the snap-in.
160 </xs:documentation>
161 </xs:annotation>
162 </xs:attribute>
163 <xs:attribute name="DescriptionIndirect" type="EmbeddedResource">
164 <xs:annotation>
165 <xs:documentation>
166 An embedded resource that contains a brief description of the snap-in.
167 This resource must be embedded in the current snap-in assembly.
168 </xs:documentation>
169 </xs:annotation>
170 </xs:attribute>
171 <xs:attribute name="RequiredPowerShellVersion" type="wxs:VersionType">
172 <xs:annotation>
173 <xs:documentation>
174 The required version of PowerShell that must be installed and is associated with the
175 snap-in registration. The default value is "1.0".
176 </xs:documentation>
177 </xs:annotation>
178 </xs:attribute>
179 <xs:attribute name="Vendor" type="xs:string">
180 <xs:annotation>
181 <xs:documentation>
182 The name of the snap-in vendor.
183 </xs:documentation>
184 </xs:annotation>
185 </xs:attribute>
186 <xs:attribute name="VendorIndirect" type="EmbeddedResource">
187 <xs:annotation>
188 <xs:documentation>
189 An embedded resource that contains the name of the snap-in vendor.
190 This resource must be embedded in the current snap-in assembly.
191 </xs:documentation>
192 </xs:annotation>
193 </xs:attribute>
194 <xs:attribute name="Version" type="wxs:VersionType">
195 <xs:annotation>
196 <xs:documentation>
197 The version of the snapin. If not specified, this is taken from the assembly name.
198 </xs:documentation>
199 </xs:annotation>
200 </xs:attribute>
201 <xs:anyAttribute namespace="##other" processContents="lax">
202 <xs:annotation>
203 <xs:documentation>
204 Extensibility point in the WiX XML Schema. Schema extensions can register additional
205 attributes at this point in the schema.
206 </xs:documentation>
207 </xs:annotation>
208 </xs:anyAttribute>
209 </xs:complexType>
210 </xs:element>
211
212 <xs:simpleType name="EmbeddedResource">
213 <xs:annotation>
214 <xs:documentation>
215 <html:p>
216 Values should be in the format *ResourceName,StringName*, where *ResourceName*
217 is the name of the embedded resource in your assembly sans the ".resources" extension, and *StringName*
218 is the name of the string resource in the embedded resource.
219 </html:p>
220 <html:p>
221 Example: UtilityMshSnapInResources,Description
222 </html:p>
223 </xs:documentation>
224 </xs:annotation>
225 <xs:restriction base="xs:string" />
226 </xs:simpleType>
227</xs:schema>
diff --git a/src/xsd/sql.xsd b/src/xsd/sql.xsd
new file mode 100644
index 00000000..2c15a66e
--- /dev/null
+++ b/src/xsd/sql.xsd
@@ -0,0 +1,461 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
4
5<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
6 xmlns:xse="http://wixtoolset.org/schemas/XmlSchemaExtension"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:wxs="http://wixtoolset.org/schemas/v4/wxs"
9 targetNamespace="http://wixtoolset.org/schemas/v4/wxs/sql"
10 xmlns="http://wixtoolset.org/schemas/v4/wxs/sql">
11 <xs:annotation>
12 <xs:documentation>
13 The source code schema for the WiX Toolset SQL Server Extension.
14 </xs:documentation>
15 </xs:annotation>
16
17 <xs:import namespace="http://wixtoolset.org/schemas/v4/wxs" />
18
19 <xs:element name="SqlDatabase">
20 <xs:annotation>
21 <xs:appinfo>
22 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
23 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
24 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
25 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
26 <xse:remarks>
27 Nesting SqlDatabase under a Component element will result in a SqlDatabase being installed to the machine as the package is installed.
28
29 Nesting SqlDatabase under Package, Fragment, or Module
30 results in a database "locator" record being created in
31 the SqlDatabase table. This means that the database
32 itself is neither installed nor uninstalled by the MSI
33 package. It does make the database available for referencing
34 from a SqlString or SqlScript record. This allows MSI to install
35 SqlScripts or SqlStrings to already existing databases on the machine.
36 The install will fail if the database does not exist in these cases.
37
38 The User attribute references credentials specified in a User element.
39 If a user is not specified then Windows Authentication will be used by default
40 using the credentials of the user performing the install to execute sql
41 strings, etc.
42 </xse:remarks>
43 <xse:seeAlso namespace="http://wixtoolset.org/schemas/v4/wxs/util" ref="User"/>
44 </xs:appinfo>
45 <xs:documentation>SQL Database</xs:documentation>
46 </xs:annotation>
47 <xs:complexType>
48 <xs:choice minOccurs="0" maxOccurs="unbounded">
49 <xs:element ref="SqlFileSpec" />
50 <xs:element ref="SqlLogFileSpec" />
51 <xs:element ref="SqlScript"/>
52 <xs:element ref="SqlString"/>
53 <xs:any namespace="##other" processContents="lax">
54 <xs:annotation>
55 <xs:documentation>
56 Extensibility point in the WiX XML Schema. Schema extensions can register additional
57 elements at this point in the schema.
58 </xs:documentation>
59 </xs:annotation>
60 </xs:any>
61 </xs:choice>
62 <xs:attribute name="Id" type="xs:string">
63 <xs:annotation>
64 <xs:documentation>Unique identifier in your installation package for this database. If an Id is not provided, one will generated for you.</xs:documentation>
65 </xs:annotation>
66 </xs:attribute>
67 <xs:attribute name="Server" type="xs:string" use="required">
68 <xs:annotation>
69 <xs:documentation>Database server name.</xs:documentation>
70 </xs:annotation>
71 </xs:attribute>
72 <xs:attribute name="Instance" type="xs:string">
73 <xs:annotation>
74 <xs:documentation>Optional database server instance.</xs:documentation>
75 </xs:annotation>
76 </xs:attribute>
77 <xs:attribute name="Database" type="xs:string" use="required">
78 <xs:annotation>
79 <xs:documentation>
80 The name of the database. The value can be a literal value or derived from a
81 Property element using the [Formatted](https://learn.microsoft.com/en-us/windows/win32/msi/formatted)
82 syntax.
83 </xs:documentation>
84 </xs:annotation>
85 </xs:attribute>
86 <xs:attribute name="User" type="xs:string">
87 <xs:annotation>
88 <xs:documentation>Optional user used to connect to database.</xs:documentation>
89 </xs:annotation>
90 </xs:attribute>
91 <xs:attribute name="CreateOnInstall" type="wxs:YesNoTypeUnion">
92 <xs:annotation>
93 <xs:documentation>Create the database during installation.</xs:documentation>
94 </xs:annotation>
95 </xs:attribute>
96 <xs:attribute name="CreateOnReinstall" type="wxs:YesNoTypeUnion">
97 <xs:annotation>
98 <xs:documentation>
99 Specifies whether to create the database when the associated component is reinstalled. Setting CreateOnInstall to yes does <html:b>not</html:b> imply CreateOnReinstall is set to yes. CreateOnReinstall must be set in addition to CreateOnInstall for it to be created during both install and reinstall.
100 </xs:documentation>
101 </xs:annotation>
102 </xs:attribute>
103 <xs:attribute name="CreateOnUninstall" type="wxs:YesNoTypeUnion">
104 <xs:annotation>
105 <xs:documentation>Create the database during uninstallation.</xs:documentation>
106 </xs:annotation>
107 </xs:attribute>
108 <xs:attribute name="DropOnInstall" type="wxs:YesNoTypeUnion">
109 <xs:annotation>
110 <xs:documentation>Drop the database during installation.</xs:documentation>
111 </xs:annotation>
112 </xs:attribute>
113 <xs:attribute name="DropOnReinstall" type="wxs:YesNoTypeUnion">
114 <xs:annotation>
115 <xs:documentation>
116 Specifies whether to drop the database when the associated component is reinstalled. Setting DropOnInstall to yes does <html:b>not</html:b> imply DropOnReinstall is set to yes. DropOnReinstall must be set in addition to DropOnInstall for it to be dropped during both install and reinstall.
117 </xs:documentation>
118 </xs:annotation>
119 </xs:attribute>
120 <xs:attribute name="DropOnUninstall" type="wxs:YesNoTypeUnion">
121 <xs:annotation>
122 <xs:documentation>Drop the database during uninstallation.</xs:documentation>
123 </xs:annotation>
124 </xs:attribute>
125 <xs:attribute name="ContinueOnError" type="wxs:YesNoTypeUnion">
126 <xs:annotation>
127 <xs:documentation>Continue even if the database operation fails.</xs:documentation>
128 </xs:annotation>
129 </xs:attribute>
130 <xs:attribute name="ConfirmOverwrite" type="wxs:YesNoTypeUnion">
131 <xs:annotation>
132 <xs:documentation>Prompt the user to overwrite the database.</xs:documentation>
133 </xs:annotation>
134 </xs:attribute>
135 <xs:anyAttribute namespace="##other" processContents="lax">
136 <xs:annotation>
137 <xs:documentation>
138 Extensibility point in the WiX XML Schema. Schema extensions can register additional
139 attributes at this point in the schema.
140 </xs:documentation>
141 </xs:annotation>
142 </xs:anyAttribute>
143 </xs:complexType>
144 </xs:element>
145
146 <xs:element name="SqlFileSpec">
147 <xs:annotation>
148 <xs:documentation>File specification for a Sql database.</xs:documentation>
149 </xs:annotation>
150 <xs:complexType>
151 <xs:choice minOccurs="0" maxOccurs="unbounded">
152 <xs:any namespace="##other" processContents="lax">
153 <xs:annotation>
154 <xs:documentation>
155 Extensibility point in the WiX XML Schema. Schema extensions can register additional
156 elements at this point in the schema.
157 </xs:documentation>
158 </xs:annotation>
159 </xs:any>
160 </xs:choice>
161 <xs:attribute name="Id" use="required" type="xs:string">
162 <xs:annotation>
163 <xs:documentation>Unique identifier in your installation package for this file specification. If an Id is not provided, one will generated for you.</xs:documentation>
164 </xs:annotation>
165 </xs:attribute>
166 <xs:attribute name="Name" type="xs:string">
167 <xs:annotation>
168 <xs:documentation>Specifies the logical name for the database file.</xs:documentation>
169 </xs:annotation>
170 </xs:attribute>
171 <xs:attribute name="Filename" use="required" type="xs:string">
172 <xs:annotation>
173 <xs:documentation>Specifies the operating-system file name for the database file.</xs:documentation>
174 </xs:annotation>
175 </xs:attribute>
176 <xs:attribute name="Size" type="xs:string">
177 <xs:annotation>
178 <xs:documentation>
179 Specifies the size of the database file. The GB, MB and KB suffixes can be used to specify gigabytes,
180 megabytes or kilobytes. The default is megabytes if no suffix is specified. When a Size is not
181 supplied for a database file, SQL Server uses the size of the primary file in the model database.
182 </xs:documentation>
183 </xs:annotation>
184 </xs:attribute>
185 <xs:attribute name="MaxSize" type="xs:string">
186 <xs:annotation>
187 <xs:documentation>
188 Specifies the maximum size to which the database file can grow. The GB, MB and KB suffixes can be used to
189 to specify gigabytes, megabytes or kilobytes. The default is megabytes if no suffix is specified. If
190 MaxSize is not specified, the file will grow until the disk is full.
191 </xs:documentation>
192 </xs:annotation>
193 </xs:attribute>
194 <xs:attribute name="GrowthSize" type="xs:string">
195 <xs:annotation>
196 <xs:documentation>
197 Specifies the growth increment of the database file. The GB, MB and KB and % suffixes can be used to
198 specify gigabytes, megabytes, kilobytes or a percentage of the current file size to grow. The default is
199 megabytes if no suffix is specified. The default value is 10% if GrowthSize is not specified, and the
200 minimum value is 64 KB. The GrowthSize setting for a file cannot exceed the MaxSize setting.
201 </xs:documentation>
202 </xs:annotation>
203 </xs:attribute>
204 <xs:anyAttribute namespace="##other" processContents="lax">
205 <xs:annotation>
206 <xs:documentation>
207 Extensibility point in the WiX XML Schema. Schema extensions can register additional
208 attributes at this point in the schema.
209 </xs:documentation>
210 </xs:annotation>
211 </xs:anyAttribute>
212 </xs:complexType>
213 </xs:element>
214
215 <xs:element name="SqlLogFileSpec">
216 <xs:annotation>
217 <xs:documentation>File specification for a Sql database.</xs:documentation>
218 </xs:annotation>
219 <xs:complexType>
220 <xs:choice minOccurs="0" maxOccurs="unbounded">
221 <xs:any namespace="##other" processContents="lax">
222 <xs:annotation>
223 <xs:documentation>
224 Extensibility point in the WiX XML Schema. Schema extensions can register additional
225 elements at this point in the schema.
226 </xs:documentation>
227 </xs:annotation>
228 </xs:any>
229 </xs:choice>
230 <xs:attribute name="Id" type="xs:string">
231 <xs:annotation>
232 <xs:documentation>Unique identifier in your installation package for this log file specification. If an Id is not provided, one will generated for you.</xs:documentation>
233 </xs:annotation>
234 </xs:attribute>
235 <xs:attribute name="Name" type="xs:string">
236 <xs:annotation>
237 <xs:documentation>Specifies the logical name for the log file.</xs:documentation>
238 </xs:annotation>
239 </xs:attribute>
240 <xs:attribute name="Filename" type="xs:string">
241 <xs:annotation>
242 <xs:documentation>Specifies the operating-system file name for the log file.</xs:documentation>
243 </xs:annotation>
244 </xs:attribute>
245 <xs:attribute name="Size" type="xs:string">
246 <xs:annotation>
247 <xs:documentation>
248 Specifies the size of the log file. The GB, MB and KB suffixes can be used to specify gigabytes,
249 megabytes or kilobytes. The default is megabytes if no suffix is specified. When a Size is not
250 supplied for a log file, SQL Server makes the file 1 MB.
251 </xs:documentation>
252 </xs:annotation>
253 </xs:attribute>
254 <xs:attribute name="MaxSize" type="xs:string">
255 <xs:annotation>
256 <xs:documentation>
257 Specifies the maximum size to which the log file can grow. The GB, MB and KB suffixes can be used to
258 to specify gigabytes, megabytes or kilobytes. The default is megabytes if no suffix is specified. If
259 MaxSize is not specified, the file will grow until the disk is full.
260 </xs:documentation>
261 </xs:annotation>
262 </xs:attribute>
263 <xs:attribute name="GrowthSize" type="xs:string">
264 <xs:annotation>
265 <xs:documentation>
266 Specifies the growth increment of the log file. The GB, MB and KB and % suffixes can be used to
267 specify gigabytes, megabytes, kilobytes or a percentage of the current file size to grow. The default is
268 megabytes if no suffix is specified. The default value is 10% if GrowthSize is not specified, and the
269 minimum value is 64 KB. The GrowthSize setting for a file cannot exceed the MaxSize setting.
270 </xs:documentation>
271 </xs:annotation>
272 </xs:attribute>
273 <xs:anyAttribute namespace="##other" processContents="lax">
274 <xs:annotation>
275 <xs:documentation>
276 Extensibility point in the WiX XML Schema. Schema extensions can register additional
277 attributes at this point in the schema.
278 </xs:documentation>
279 </xs:annotation>
280 </xs:anyAttribute>
281 </xs:complexType>
282 </xs:element>
283
284 <xs:element name="SqlScript">
285 <xs:annotation>
286 <xs:appinfo>
287 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
288 </xs:appinfo>
289 <xs:documentation>SQL Script</xs:documentation>
290 </xs:annotation>
291 <xs:complexType>
292 <xs:choice minOccurs="0" maxOccurs="unbounded">
293 <xs:any namespace="##other" processContents="lax">
294 <xs:annotation>
295 <xs:documentation>
296 Extensibility point in the WiX XML Schema. Schema extensions can register additional
297 elements at this point in the schema.
298 </xs:documentation>
299 </xs:annotation>
300 </xs:any>
301 </xs:choice>
302 <xs:attribute name="Id" type="xs:string">
303 <xs:annotation>
304 <xs:documentation>Unique identifier in your installation package for this sql script. If an Id is not provided, one will generated for you.</xs:documentation>
305 </xs:annotation>
306 </xs:attribute>
307 <xs:attribute name="SqlDb" type="xs:string">
308 <xs:annotation>
309 <xs:documentation>Id of the SqlDatabase to execute the script against. Required when not child of SqlDatabase.</xs:documentation>
310 </xs:annotation>
311 </xs:attribute>
312 <xs:attribute name="User" type="xs:string">
313 <xs:annotation>
314 <xs:documentation>Optional user used to connect to database.</xs:documentation>
315 </xs:annotation>
316 </xs:attribute>
317 <xs:attribute name="BinaryRef" type="xs:string" use="required">
318 <xs:annotation>
319 <xs:documentation>Reference to Binary stream that contains the SQL script to execute.</xs:documentation>
320 </xs:annotation>
321 </xs:attribute>
322 <xs:attribute name="ExecuteOnInstall" type="wxs:YesNoTypeUnion">
323 <xs:annotation>
324 <xs:documentation>Specifies to execute the script when the associated component is installed. This attribute is mutually exclusive with the RollbackOnInstall, RollbackOnReinstall and RollbackOnUninstall attributes.</xs:documentation>
325 </xs:annotation>
326 </xs:attribute>
327 <xs:attribute name="ExecuteOnReinstall" type="wxs:YesNoTypeUnion">
328 <xs:annotation>
329 <xs:documentation>Specifies whether to execute the script when the associated component is reinstalled. Setting ExecuteOnInstall to yes does <html:b>not</html:b> imply ExecuteOnReinstall is set to yes. ExecuteOnReinstall must be set in addition to ExecuteOnInstall for it to be executed during both install and reinstall. This attribute is mutually exclusive with the RollbackOnInstall, RollbackOnReinstall and RollbackOnUninstall attributes.</xs:documentation>
330 </xs:annotation>
331 </xs:attribute>
332 <xs:attribute name="ExecuteOnUninstall" type="wxs:YesNoTypeUnion">
333 <xs:annotation>
334 <xs:documentation>Specifies to execute the script when the associated component is uninstalled. This attribute is mutually exclusive with the RollbackOnInstall, RollbackOnReinstall and RollbackOnUninstall attributes.</xs:documentation>
335 </xs:annotation>
336 </xs:attribute>
337 <xs:attribute name="RollbackOnInstall" type="wxs:YesNoTypeUnion">
338 <xs:annotation>
339 <xs:documentation>Specifies whether to execute the script on rollback if an attempt is made to install the associated component. This attribute is mutually exclusive with the ExecuteOnInstall, ExecuteOnReinstall and ExecuteOnUninstall attributes.</xs:documentation>
340 </xs:annotation>
341 </xs:attribute>
342 <xs:attribute name="RollbackOnReinstall" type="wxs:YesNoTypeUnion">
343 <xs:annotation>
344 <xs:documentation>Specifies whether to execute the script on rollback if an attempt is made to reinstall the associated component. This attribute is mutually exclusive with the ExecuteOnInstall, ExecuteOnReinstall and ExecuteOnUninstall attributes.</xs:documentation>
345 </xs:annotation>
346 </xs:attribute>
347 <xs:attribute name="RollbackOnUninstall" type="wxs:YesNoTypeUnion">
348 <xs:annotation>
349 <xs:documentation>Specifies whether to execute the script on rollback if an attempt is made to uninstall the associated component. This attribute is mutually exclusive with the ExecuteOnInstall, ExecuteOnReinstall and ExecuteOnUninstall attributes.</xs:documentation>
350 </xs:annotation>
351 </xs:attribute>
352 <xs:attribute name="ContinueOnError" type="wxs:YesNoTypeUnion">
353 <xs:annotation>
354 <xs:documentation>Continue executing scripts even if this one fails.</xs:documentation>
355 </xs:annotation>
356 </xs:attribute>
357 <xs:attribute name="Sequence" type="wxs:Integer">
358 <xs:annotation>
359 <xs:documentation>Specifes the order to run the SQL Scripts. It is recommended that rollback scripts be scheduled before their complementary execution script. This order is also relative across the SqlString element.</xs:documentation>
360 </xs:annotation>
361 </xs:attribute>
362 <xs:anyAttribute namespace="##other" processContents="lax">
363 <xs:annotation>
364 <xs:documentation>
365 Extensibility point in the WiX XML Schema. Schema extensions can register additional
366 attributes at this point in the schema.
367 </xs:documentation>
368 </xs:annotation>
369 </xs:anyAttribute>
370 </xs:complexType>
371 </xs:element>
372
373 <xs:element name="SqlString">
374 <xs:annotation>
375 <xs:appinfo>
376 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
377 </xs:appinfo>
378 <xs:documentation>SQL String</xs:documentation>
379 </xs:annotation>
380 <xs:complexType>
381 <xs:choice minOccurs="0" maxOccurs="unbounded">
382 <xs:any namespace="##other" processContents="lax">
383 <xs:annotation>
384 <xs:documentation>
385 Extensibility point in the WiX XML Schema. Schema extensions can register additional
386 elements at this point in the schema.
387 </xs:documentation>
388 </xs:annotation>
389 </xs:any>
390 </xs:choice>
391 <xs:attribute name="Id" type="xs:string">
392 <xs:annotation>
393 <xs:documentation>Unique identifier in your installation package for this sql command. If an Id is not provided, one will generated for you.</xs:documentation>
394 </xs:annotation>
395 </xs:attribute>
396 <xs:attribute name="SqlDb" type="xs:string">
397 <xs:annotation>
398 <xs:documentation>Id of the SqlDatabase to execute the script against. Required when not child of SqlDatabase.</xs:documentation>
399 </xs:annotation>
400 </xs:attribute>
401 <xs:attribute name="User" type="xs:string">
402 <xs:annotation>
403 <xs:documentation>Optional user used to connect to database.</xs:documentation>
404 </xs:annotation>
405 </xs:attribute>
406 <xs:attribute name="SQL" type="xs:string" use="required">
407 <xs:annotation>
408 <xs:documentation>SQL command to execute against the database.</xs:documentation>
409 </xs:annotation>
410 </xs:attribute>
411 <xs:attribute name="ExecuteOnInstall" type="wxs:YesNoTypeUnion">
412 <xs:annotation>
413 <xs:documentation>Specifies to execute the string when the associated component is installed. This attribute is mutually exclusive with the RollbackOnInstall, RollbackOnReinstall and RollbackOnUninstall attributes.</xs:documentation>
414 </xs:annotation>
415 </xs:attribute>
416 <xs:attribute name="ExecuteOnReinstall" type="wxs:YesNoTypeUnion">
417 <xs:annotation>
418 <xs:documentation>Specifies whether to execute the string when the associated component is reinstalled. Setting ExecuteOnInstall to yes does <html:b>not</html:b> imply ExecuteOnReinstall is set to yes. ExecuteOnReinstall must be set in addition to ExecuteOnInstall for it to be executed during both install and reinstall. This attribute is mutually exclusive with the RollbackOnInstall, RollbackOnReinstall and RollbackOnUninstall attributes.</xs:documentation>
419 </xs:annotation>
420 </xs:attribute>
421 <xs:attribute name="ExecuteOnUninstall" type="wxs:YesNoTypeUnion">
422 <xs:annotation>
423 <xs:documentation>Specifies to execute the string when the associated component is uninstalled. This attribute is mutually exclusive with the RollbackOnInstall, RollbackOnReinstall and RollbackOnUninstall attributes.</xs:documentation>
424 </xs:annotation>
425 </xs:attribute>
426 <xs:attribute name="RollbackOnInstall" type="wxs:YesNoTypeUnion">
427 <xs:annotation>
428 <xs:documentation>Specifies whether to execute the string on rollback if an attempt is made to install the associated component. This attribute is mutually exclusive with the ExecuteOnInstall, ExecuteOnReinstall and ExecuteOnUninstall attributes.</xs:documentation>
429 </xs:annotation>
430 </xs:attribute>
431 <xs:attribute name="RollbackOnReinstall" type="wxs:YesNoTypeUnion">
432 <xs:annotation>
433 <xs:documentation>Specifies whether to execute the string on rollback if an attempt is made to reinstall the associated component. This attribute is mutually exclusive with the ExecuteOnInstall, ExecuteOnReinstall and ExecuteOnUninstall attributes.</xs:documentation>
434 </xs:annotation>
435 </xs:attribute>
436 <xs:attribute name="RollbackOnUninstall" type="wxs:YesNoTypeUnion">
437 <xs:annotation>
438 <xs:documentation>Specifies whether to execute the string on rollback if an attempt is made to uninstall the associated component. This attribute is mutually exclusive with the ExecuteOnInstall, ExecuteOnReinstall and ExecuteOnUninstall attributes.</xs:documentation>
439 </xs:annotation>
440 </xs:attribute>
441 <xs:attribute name="ContinueOnError" type="wxs:YesNoTypeUnion">
442 <xs:annotation>
443 <xs:documentation>Continue executing strings even if this one fails.</xs:documentation>
444 </xs:annotation>
445 </xs:attribute>
446 <xs:attribute name="Sequence" type="wxs:Integer">
447 <xs:annotation>
448 <xs:documentation>Specifes the order to run the SQL Strings. It is recommended that rollback strings be scheduled before their complementary execution string. This order is also relative across the SqlScript element.</xs:documentation>
449 </xs:annotation>
450 </xs:attribute>
451 <xs:anyAttribute namespace="##other" processContents="lax">
452 <xs:annotation>
453 <xs:documentation>
454 Extensibility point in the WiX XML Schema. Schema extensions can register additional
455 attributes at this point in the schema.
456 </xs:documentation>
457 </xs:annotation>
458 </xs:anyAttribute>
459 </xs:complexType>
460 </xs:element>
461</xs:schema>
diff --git a/src/xsd/thmutil.xsd b/src/xsd/thmutil.xsd
new file mode 100644
index 00000000..417bac87
--- /dev/null
+++ b/src/xsd/thmutil.xsd
@@ -0,0 +1,1365 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
4
5<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
6 xmlns:xse="http://wixtoolset.org/schemas/XmlSchemaExtension"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 targetNamespace="http://wixtoolset.org/schemas/v4/thmutil"
9 xmlns="http://wixtoolset.org/schemas/v4/thmutil">
10 <xs:annotation>
11 <xs:documentation>
12 Schema for describing Theme files processed by thmutil.
13 </xs:documentation>
14 </xs:annotation>
15
16 <xs:import namespace="http://www.w3.org/1999/xhtml" />
17
18 <xs:element name="Theme">
19 <xs:annotation>
20 <xs:documentation>
21 This is the top-level container element for every thmutil Theme file.
22 </xs:documentation>
23 </xs:annotation>
24 <xs:complexType>
25 <xs:sequence>
26 <xs:element ref="Font" maxOccurs="unbounded" />
27 <xs:element ref="Image" minOccurs="0" maxOccurs="unbounded" />
28 <xs:element ref="ImageList" minOccurs="0" maxOccurs="unbounded" />
29 <xs:element ref="Window" minOccurs="1" maxOccurs="1" />
30 </xs:sequence>
31 <xs:attribute name="ImageFile" type="xs:string">
32 <xs:annotation>
33 <xs:documentation>
34 Relative path to an image file that can serve as a single source for images in the rest of the theme.
35 This image is referenced by controls using the SourceX and SourceY attributes.
36 Mutually exclusive with the ImageResource attribute.
37 </xs:documentation>
38 </xs:annotation>
39 </xs:attribute>
40 <xs:attribute name="ImageResource" type="xs:string">
41 <xs:annotation>
42 <xs:documentation>
43 Identifier that references an image resource in the module for the window.
44 This image is referenced by controls using the SourceX and SourceY attributes.
45 Mutually exclusive with the ImageFile attribute.
46 </xs:documentation>
47 </xs:annotation>
48 </xs:attribute>
49 </xs:complexType>
50 </xs:element>
51
52 <xs:element name="Font">
53 <xs:annotation>
54 <xs:documentation>Defines a font including the size and color.</xs:documentation>
55 </xs:annotation>
56 <xs:complexType>
57 <xs:simpleContent>
58 <xs:extension base="xs:string">
59 <xs:annotation>
60 <xs:documentation>Name of the font face (required).</xs:documentation>
61 </xs:annotation>
62 <xs:attribute name="Id" type="xs:string" use="required">
63 <xs:annotation>
64 <xs:documentation>Identifier for the font.</xs:documentation>
65 </xs:annotation>
66 </xs:attribute>
67 <xs:attribute name="Height" type="xs:int" use="required">
68 <xs:annotation>
69 <xs:documentation>Font size. Use negative numbers to specify the font in pixels.</xs:documentation>
70 </xs:annotation>
71 </xs:attribute>
72 <xs:attribute name="Weight" type="xs:nonNegativeInteger">
73 <xs:annotation>
74 <xs:documentation>Font weight.</xs:documentation>
75 </xs:annotation>
76 </xs:attribute>
77 <xs:attribute name="Foreground" type="FontColorType">
78 <xs:annotation>
79 <xs:documentation>
80 A system color id or a hexadecimal value representing BGR foreground color of the font.
81 "ffffff" is white, "ff0000" is pure blue, "00ff00" is pure green, "0000ff" is pure red, and "000000" is black.
82 If this attribute is absent the foreground will be transparent.
83 Supported system color ids are: btnface, btntext, graytext, highlight, highlighttext, hotlight, window, and windowtext.
84 </xs:documentation>
85 </xs:annotation>
86 </xs:attribute>
87 <xs:attribute name="Background" type="FontColorType">
88 <xs:annotation>
89 <xs:documentation>
90 A system color id or a hexadecimal value representing BGR background color of the font.
91 "ffffff" is white, "ff0000" is pure blue, "00ff00" is pure green, "0000ff" is pure red, and "000000" is black.
92 If this attribute is absent the background will be transparent.
93 Supported system color ids are: btnface, btntext, graytext, highlight, highlighttext, hotlight, window, and windowtext.
94 </xs:documentation>
95 </xs:annotation>
96 </xs:attribute>
97 <xs:attribute name="Underline" type="YesNoType">
98 <xs:annotation>
99 <xs:documentation>Specifies whether the font is underlined.</xs:documentation>
100 </xs:annotation>
101 </xs:attribute>
102 </xs:extension>
103 </xs:simpleContent>
104 </xs:complexType>
105 </xs:element>
106
107 <xs:element name="Image">
108 <xs:annotation>
109 <xs:documentation>
110 Defines an image which can be shared between multiple controls.
111 If alternates are provided, the dimensions of the destination rectangle are compared to all of the available sources:
112 1. If there is an exact match for width and height then that source will be used (no scaling required).
113 2. If there is not an exact match then the smallest source whose width and height are larger or equal to the destination will be used and downscaled.
114 3. If there is still no match then the largest source will be used and upscaled.
115 </xs:documentation>
116 </xs:annotation>
117 <xs:complexType>
118 <xs:choice minOccurs="0" maxOccurs="unbounded">
119 <xs:element ref="AlternateResolution" />
120 </xs:choice>
121 <xs:attribute name="Id" type="xs:string" use="required">
122 <xs:annotation>
123 <xs:documentation>Identifier for the Image.</xs:documentation>
124 </xs:annotation>
125 </xs:attribute>
126 <xs:attribute name="ImageFile" type="xs:string">
127 <xs:annotation>
128 <xs:documentation>
129 Relative path to an image file for the control.
130 Mutually exclusive with ImageResource attribute.
131 </xs:documentation>
132 </xs:annotation>
133 </xs:attribute>
134 <xs:attribute name="ImageResource" type="xs:nonNegativeInteger">
135 <xs:annotation>
136 <xs:documentation>
137 Identifier that references an image resource with type RT_RCDATA in the module for the control.
138 Mutually exclusive with ImageFile attribute.
139 </xs:documentation>
140 </xs:annotation>
141 </xs:attribute>
142 </xs:complexType>
143 </xs:element>
144
145 <xs:element name="ImageList">
146 <xs:annotation>
147 <xs:documentation>List of images which can be shared between multiple controls.</xs:documentation>
148 </xs:annotation>
149 <xs:complexType>
150 <xs:choice maxOccurs="unbounded">
151 <xs:element ref="ImageListItem" />
152 </xs:choice>
153 <xs:attribute name="Name" type="xs:string" use="required">
154 <xs:annotation>
155 <xs:documentation>
156 Name of the ImageList, to be referenced by other controls.
157 </xs:documentation>
158 </xs:annotation>
159 </xs:attribute>
160 </xs:complexType>
161 </xs:element>
162
163 <xs:element name="Page">
164 <xs:annotation>
165 <xs:documentation>Named set of controls that can be shown and hidden collectively.</xs:documentation>
166 </xs:annotation>
167 <xs:complexType>
168 <xs:group ref="ControlElements" maxOccurs="unbounded"/>
169 <xs:attribute name="Name" type="xs:string">
170 <xs:annotation>
171 <xs:documentation>
172 Optional name for the page.
173 </xs:documentation>
174 </xs:annotation>
175 </xs:attribute>
176 </xs:complexType>
177 </xs:element>
178
179 <xs:element name="Window">
180 <xs:annotation>
181 <xs:documentation>Defines the overall look of the main window.</xs:documentation>
182 </xs:annotation>
183 <xs:complexType>
184 <xs:choice minOccurs="0" maxOccurs="unbounded">
185 <xs:element ref="Page" />
186 <xs:group ref="ControlElements" minOccurs="0" maxOccurs="unbounded" />
187 </xs:choice>
188 <xs:attribute name="AutoResize" type="YesNoType">
189 <xs:annotation>
190 <xs:documentation>Specifies whether the ThmUtil default window proc should process WM_SIZE and WM_SIZING events.</xs:documentation>
191 </xs:annotation>
192 </xs:attribute>
193 <xs:attribute name="Caption" type="xs:string">
194 <xs:annotation>
195 <xs:documentation>
196 Caption for the window.
197 This is required if not using the StringId attribute.
198 </xs:documentation>
199 </xs:annotation>
200 </xs:attribute>
201 <xs:attribute name="FontId" type="xs:string" use="required">
202 <xs:annotation>
203 <xs:documentation>Identifier to the Font element that serves as the default font for the window.</xs:documentation>
204 </xs:annotation>
205 </xs:attribute>
206 <xs:attribute name="Height" type="xs:positiveInteger" use="required">
207 <xs:annotation>
208 <xs:documentation>Height of the window's client area.</xs:documentation>
209 </xs:annotation>
210 </xs:attribute>
211 <xs:attribute name="HexStyle" type="xs:hexBinary">
212 <xs:annotation>
213 <xs:documentation>
214 Hexadecimal window style. If this is not specified the default value is: WS_OVERLAPPED | WS_VISIBLE | WS_MINIMIZEBOX | WS_SYSMENU | WS_CAPTION.
215 If SourceX and SourceY are specified, then WS_OVERLAPPED is replaced with WS_POPUP.
216 </xs:documentation>
217 </xs:annotation>
218 </xs:attribute>
219 <xs:attribute name="IconFile" type="xs:string">
220 <xs:annotation>
221 <xs:documentation>Relative path to an icon file for the window. Mutually exclusive with IconResource attribute.</xs:documentation>
222 </xs:annotation>
223 </xs:attribute>
224 <xs:attribute name="IconResource" type="xs:string">
225 <xs:annotation>
226 <xs:documentation>
227 Identifier that references an icon resource in the module for the icon for the window.
228 Mutually exclusive with IconFile attribute.
229 </xs:documentation>
230 </xs:annotation>
231 </xs:attribute>
232 <xs:attribute name="MinimumHeight" type="xs:positiveInteger">
233 <xs:annotation>
234 <xs:documentation>Minimum height of the window. Can only be specified if AutoResize is enabled.</xs:documentation>
235 </xs:annotation>
236 </xs:attribute>
237 <xs:attribute name="MinimumWidth" type="xs:positiveInteger">
238 <xs:annotation>
239 <xs:documentation>Minimum width of the window. Can only be specified if AutoResize is enabled.</xs:documentation>
240 </xs:annotation>
241 </xs:attribute>
242 <xs:attribute name="SourceX" type="xs:nonNegativeInteger">
243 <xs:annotation>
244 <xs:documentation>
245 X offset of the window background in the Theme/@ImageFile or Theme/@ImageResource.
246 Can only be specified with Theme/@ImageFile or Theme/@ImageResource.
247 </xs:documentation>
248 </xs:annotation>
249 </xs:attribute>
250 <xs:attribute name="SourceY" type="xs:nonNegativeInteger">
251 <xs:annotation>
252 <xs:documentation>
253 Y offset of the window background in the Theme/@ImageFile or Theme/@ImageResource.
254 Can only be specified with Theme/@ImageFile or Theme/@ImageResource.
255 </xs:documentation>
256 </xs:annotation>
257 </xs:attribute>
258 <xs:attribute name="StringId" type="xs:nonNegativeInteger">
259 <xs:annotation>
260 <xs:documentation>
261 Identifier that references a string resource in the module to define the window caption.
262 Mutually exclusive with the Caption attribute.
263 </xs:documentation>
264 </xs:annotation>
265 </xs:attribute>
266 <xs:attribute name="Width" type="xs:positiveInteger" use="required">
267 <xs:annotation>
268 <xs:documentation>Width of the window's client area.</xs:documentation>
269 </xs:annotation>
270 </xs:attribute>
271 </xs:complexType>
272 </xs:element>
273
274 <xs:element name="Billboard">
275 <xs:annotation>
276 <xs:documentation>Defines a control that rotates through a set of panels on a specified interval.</xs:documentation>
277 </xs:annotation>
278 <xs:complexType>
279 <xs:sequence>
280 <xs:element ref="Panel" />
281 </xs:sequence>
282 <xs:attributeGroup ref="CommonControlAttributes" />
283 <xs:attribute name="Interval" type="xs:positiveInteger">
284 <xs:annotation>
285 <xs:documentation>
286 Specifies the time to wait before showing the next panel, in milliseconds.
287 </xs:documentation>
288 </xs:annotation>
289 </xs:attribute>
290 <xs:attribute name="Loop" type="YesNoType">
291 <xs:annotation>
292 <xs:documentation>Specifies whether the billboard should loop through the panels infinitely.</xs:documentation>
293 </xs:annotation>
294 </xs:attribute>
295 </xs:complexType>
296 </xs:element>
297
298 <xs:element name="AlternateResolution">
299 <xs:annotation>
300 <xs:documentation>
301 Defines an alternate resolution to avoid scaling in different DPIs.
302 </xs:documentation>
303 </xs:annotation>
304 <xs:complexType>
305 <xs:attribute name="ImageFile" type="xs:string">
306 <xs:annotation>
307 <xs:documentation>
308 Relative path to an image file for the control.
309 Mutually exclusive with ImageResource attribute.
310 </xs:documentation>
311 </xs:annotation>
312 </xs:attribute>
313 <xs:attribute name="ImageResource" type="xs:nonNegativeInteger">
314 <xs:annotation>
315 <xs:documentation>
316 Identifier that references an image resource with type RT_RCDATA in the module for the control.
317 Mutually exclusive with ImageFile attribute.
318 </xs:documentation>
319 </xs:annotation>
320 </xs:attribute>
321 </xs:complexType>
322 </xs:element>
323
324 <xs:element name="Button">
325 <xs:annotation>
326 <xs:documentation>
327 Defines a button.
328 </xs:documentation>
329 </xs:annotation>
330 <xs:complexType mixed="true">
331 <xs:annotation>
332 <xs:documentation>
333 Text to display in the button.
334 Mutually exclusive with the StringId attribute and child Text elements.
335 </xs:documentation>
336 </xs:annotation>
337 <xs:choice minOccurs="0" maxOccurs="unbounded">
338 <xs:annotation>
339 <xs:documentation>
340 If multiple Action elements are given, the conditions should be mutually exclusive (when multiple conditions are true, the behavior is undefined and could be changed at any time).
341 If none of the conditions of the Action elements are true, then it uses the Action element without the Condition attribute.
342 </xs:documentation>
343 </xs:annotation>
344 <xs:element ref="ButtonImage" maxOccurs="1" />
345 <xs:element ref="ButtonFocusImage" maxOccurs="1" />
346 <xs:element ref="ButtonHoverImage" maxOccurs="1" />
347 <xs:element ref="ButtonSelectedImage" maxOccurs="1" />
348 <xs:element ref="BrowseDirectoryAction" />
349 <xs:element ref="ChangePageAction" />
350 <xs:element ref="CloseWindowAction" />
351 <xs:element ref="Text" />
352 <xs:element ref="Tooltip" maxOccurs="1" />
353 </xs:choice>
354 <xs:attributeGroup ref="CommonControlAttributes" />
355 <xs:attributeGroup ref="OwnerDrawImageAttributes" />
356 <xs:attribute name="FontId" type="xs:string">
357 <xs:annotation>
358 <xs:documentation>Identifier to the Font element that serves as the font for the control. Only valid when using graphic buttons.</xs:documentation>
359 </xs:annotation>
360 </xs:attribute>
361 <xs:attribute name="HoverFontId" type="xs:string">
362 <xs:annotation>
363 <xs:documentation>Identifier to the Font element that serves as the font when the control is hovered over. Only valid when using graphic buttons.</xs:documentation>
364 </xs:annotation>
365 </xs:attribute>
366 <xs:attribute name="SelectedFontId" type="xs:string">
367 <xs:annotation>
368 <xs:documentation>Identifier to the Font element that serves as the font when the control is selected. Only valid when using graphic buttons.</xs:documentation>
369 </xs:annotation>
370 </xs:attribute>
371 <xs:attribute name="StringId" type="xs:nonNegativeInteger">
372 <xs:annotation>
373 <xs:documentation>
374 Identifier that references a string resource in the module to define the text for the control.
375 </xs:documentation>
376 </xs:annotation>
377 </xs:attribute>
378 </xs:complexType>
379 </xs:element>
380
381 <xs:element name="ButtonImage">
382 <xs:annotation>
383 <xs:documentation>
384 Defines a button image.
385 ButtonHoverImage and ButtonSelectedImage are required with ButtonImage.
386 </xs:documentation>
387 </xs:annotation>
388 <xs:complexType>
389 <xs:attributeGroup ref="OwnerDrawImageAttributes" />
390 </xs:complexType>
391 </xs:element>
392
393 <xs:element name="ButtonFocusImage">
394 <xs:annotation>
395 <xs:documentation>
396 Defines a button image that is used when the control has focus.
397 ButtonImage, ButtonHoverImage, and ButtonSelectedImage are required with ButtonFocusImage.
398 If not specified, then the default focus rectangle is drawn on top of ButtonImage.
399 </xs:documentation>
400 </xs:annotation>
401 <xs:complexType>
402 <xs:attributeGroup ref="OwnerDrawImageAttributes" />
403 </xs:complexType>
404 </xs:element>
405
406 <xs:element name="ButtonHoverImage">
407 <xs:annotation>
408 <xs:documentation>
409 Defines a button image that is used when the control is hovered over.
410 ButtonImage and ButtonSelectedImage are required with ButtonHoverImage.
411 </xs:documentation>
412 </xs:annotation>
413 <xs:complexType>
414 <xs:attributeGroup ref="OwnerDrawImageAttributes" />
415 </xs:complexType>
416 </xs:element>
417
418 <xs:element name="ButtonSelectedImage">
419 <xs:annotation>
420 <xs:documentation>
421 Defines a button image that is used when the control is selected.
422 ButtonImage and ButtonHoverImage are required with ButtonSelectedImage.
423 </xs:documentation>
424 </xs:annotation>
425 <xs:complexType>
426 <xs:attributeGroup ref="OwnerDrawImageAttributes" />
427 </xs:complexType>
428 </xs:element>
429
430 <xs:element name="BrowseDirectoryAction">
431 <xs:annotation>
432 <xs:documentation>
433 When the button is pressed, a directory browser dialog is shown.
434 </xs:documentation>
435 </xs:annotation>
436 <xs:complexType>
437 <xs:attribute name="Condition" type="xs:string">
438 <xs:annotation>
439 <xs:documentation>
440 The condition that determines if the parent control will execute this action.
441 </xs:documentation>
442 </xs:annotation>
443 </xs:attribute>
444 <xs:attribute name="VariableName" type="xs:string" use="required">
445 <xs:annotation>
446 <xs:documentation>
447 The name of the variable to update when the user selects a directory from the dialog.
448 </xs:documentation>
449 </xs:annotation>
450 </xs:attribute>
451 </xs:complexType>
452 </xs:element>
453
454 <xs:element name="ChangePageAction">
455 <xs:annotation>
456 <xs:documentation>
457 When the button is pressed, the specified page is shown.
458 </xs:documentation>
459 </xs:annotation>
460 <xs:complexType>
461 <xs:attribute name="Cancel" type="YesNoType">
462 <xs:annotation>
463 <xs:documentation>
464 When set to 'yes', none of the variable changes made on the current page are saved.
465 </xs:documentation>
466 </xs:annotation>
467 </xs:attribute>
468 <xs:attribute name="Condition" type="xs:string">
469 <xs:annotation>
470 <xs:documentation>
471 The condition that determines if the parent control will execute this action.
472 </xs:documentation>
473 </xs:annotation>
474 </xs:attribute>
475 <xs:attribute name="Page" type="xs:string" use="required">
476 <xs:annotation>
477 <xs:documentation>
478 The Name of the Page to show.
479 </xs:documentation>
480 </xs:annotation>
481 </xs:attribute>
482 </xs:complexType>
483 </xs:element>
484
485 <xs:element name="CloseWindowAction">
486 <xs:annotation>
487 <xs:documentation>
488 When the button is pressed, the WM_CLOSE message is sent to the window.
489 </xs:documentation>
490 </xs:annotation>
491 <xs:complexType>
492 <xs:attribute name="Condition" type="xs:string">
493 <xs:annotation>
494 <xs:documentation>
495 The condition that determines if the parent control will execute this action.
496 </xs:documentation>
497 </xs:annotation>
498 </xs:attribute>
499 </xs:complexType>
500 </xs:element>
501
502 <xs:element name="Checkbox">
503 <xs:annotation>
504 <xs:documentation>Defines a checkbox.</xs:documentation>
505 </xs:annotation>
506 <xs:complexType mixed="true">
507 <xs:annotation>
508 <xs:documentation>
509 Text to display beside the checkbox.
510 Mutually exclusive with the StringId attribute and child Text elements.
511 </xs:documentation>
512 </xs:annotation>
513 <xs:choice minOccurs="0" maxOccurs="unbounded">
514 <xs:element ref="Text" />
515 <xs:element ref="Tooltip" maxOccurs="1" />
516 </xs:choice>
517 <xs:attributeGroup ref="CommonControlAttributes" />
518 <xs:attribute name="FontId" type="xs:string">
519 <xs:annotation>
520 <xs:documentation>Identifier to the Font element that serves as the font for the control.</xs:documentation>
521 </xs:annotation>
522 </xs:attribute>
523 <xs:attribute name="StringId" type="xs:nonNegativeInteger">
524 <xs:annotation>
525 <xs:documentation>
526 Identifier that references a string resource in the module to define the text for the control.
527 </xs:documentation>
528 </xs:annotation>
529 </xs:attribute>
530 </xs:complexType>
531 </xs:element>
532
533 <xs:element name="Combobox">
534 <xs:annotation>
535 <xs:documentation>Defines a combobox.</xs:documentation>
536 </xs:annotation>
537 <xs:complexType>
538 <xs:attributeGroup ref="CommonControlAttributes" />
539 <xs:attribute name="FontId" type="xs:string">
540 <xs:annotation>
541 <xs:documentation>Identifier to the Font element that serves as the font for the control.</xs:documentation>
542 </xs:annotation>
543 </xs:attribute>
544 </xs:complexType>
545 </xs:element>
546
547 <xs:element name="CommandLink">
548 <xs:annotation>
549 <xs:documentation>Defines a button.</xs:documentation>
550 </xs:annotation>
551 <xs:complexType mixed="true">
552 <xs:annotation>
553 <xs:documentation>
554 Text to display in the button.
555 Mutually exclusive with the StringId attribute and child Text elements.
556 </xs:documentation>
557 </xs:annotation>
558 <xs:choice minOccurs="0" maxOccurs="unbounded">
559 <xs:annotation>
560 <xs:documentation>
561 If multiple Action elements are given, the conditions should be mutually exclusive (when multiple conditions are true, the behavior is undefined and could be changed at any time).
562 If none of the conditions of the Action elements are true, then it uses the Action element without the Condition attribute.
563 </xs:documentation>
564 </xs:annotation>
565 <xs:element ref="BrowseDirectoryAction" />
566 <xs:element ref="ChangePageAction" />
567 <xs:element ref="CloseWindowAction" />
568 <xs:element ref="Note" />
569 <xs:element ref="Text" />
570 </xs:choice>
571 <xs:attributeGroup ref="CommonControlAttributes" />
572 <xs:attribute name="FontId" type="xs:string">
573 <xs:annotation>
574 <xs:documentation>Identifier to the Font element that serves as the font for the control. Only valid when using graphic buttons.</xs:documentation>
575 </xs:annotation>
576 </xs:attribute>
577 <xs:attribute name="IconFile" type="xs:string">
578 <xs:annotation>
579 <xs:documentation>
580 Relative path to an icon file to define a command link glyph.
581 Mutually exclusive with IconResource and ImageFile and ImageResource attributes.
582 </xs:documentation>
583 </xs:annotation>
584 </xs:attribute>
585 <xs:attribute name="IconResource" type="xs:string">
586 <xs:annotation>
587 <xs:documentation>
588 Identifier that references an icon resource in the module to define a command link glyph.
589 Mutually exclusive with IconFile and ImageFile and ImageResource attributes.
590 </xs:documentation>
591 </xs:annotation>
592 </xs:attribute>
593 <xs:attribute name="ImageFile" type="xs:string">
594 <xs:annotation>
595 <xs:documentation>
596 Relative path to an image file to define a command link glyph.
597 Mutually exclusive with IconFile and IconResource and ImageResource attributes.
598 </xs:documentation>
599 </xs:annotation>
600 </xs:attribute>
601 <xs:attribute name="ImageResource" type="xs:string">
602 <xs:annotation>
603 <xs:documentation>
604 Identifier that references an image resource in the module to define a command link glyph.
605 Mutually exclusive with IconFile and IconResource and ImageFile attributes.
606 </xs:documentation>
607 </xs:annotation>
608 </xs:attribute>
609 <xs:attribute name="StringId" type="xs:nonNegativeInteger">
610 <xs:annotation>
611 <xs:documentation>
612 Identifier that references a string resource in the module to define the text for the control.
613 </xs:documentation>
614 </xs:annotation>
615 </xs:attribute>
616 </xs:complexType>
617 </xs:element>
618
619 <xs:element name="Editbox">
620 <xs:annotation>
621 <xs:documentation>Defines an edit box.</xs:documentation>
622 </xs:annotation>
623 <xs:complexType mixed="true">
624 <xs:simpleContent>
625 <xs:extension base="xs:string">
626 <xs:annotation>
627 <xs:documentation>
628 Initial text for the control.
629 Mutually exclusive with the StringId attribute and child Text elements.
630 </xs:documentation>
631 </xs:annotation>
632 <xs:attributeGroup ref="CommonControlAttributes" />
633 <xs:attribute name="FileSystemAutoComplete" type="YesNoType">
634 <xs:annotation>
635 <xs:documentation>Specifies whether the edit box should auto-complete with file system paths.</xs:documentation>
636 </xs:annotation>
637 </xs:attribute>
638 <xs:attribute name="FontId" type="xs:string">
639 <xs:annotation>
640 <xs:documentation>Identifier to the Font element that serves as the font for the control.</xs:documentation>
641 </xs:annotation>
642 </xs:attribute>
643 <xs:attribute name="StringId" type="xs:nonNegativeInteger">
644 <xs:annotation>
645 <xs:documentation>
646 Identifier that references a string resource in the module to define the initial text for the control.
647 </xs:documentation>
648 </xs:annotation>
649 </xs:attribute>
650 </xs:extension>
651 </xs:simpleContent>
652 </xs:complexType>
653 </xs:element>
654
655 <xs:element name="Hyperlink">
656 <xs:annotation>
657 <xs:documentation>Defines a hyperlink.</xs:documentation>
658 </xs:annotation>
659 <xs:complexType mixed="true">
660 <xs:annotation>
661 <xs:documentation>
662 Text to display as the link.
663 Mutually exclusive with the StringId attribute and child Text elements.
664 </xs:documentation>
665 </xs:annotation>
666 <xs:choice minOccurs="0" maxOccurs="unbounded">
667 <xs:element ref="Text" />
668 <xs:element ref="Tooltip" maxOccurs="1" />
669 </xs:choice>
670 <xs:attributeGroup ref="CommonControlAttributes" />
671 <xs:attribute name="FontId" type="xs:string">
672 <xs:annotation>
673 <xs:documentation>Identifier to the Font element that serves as the unselected font.</xs:documentation>
674 </xs:annotation>
675 </xs:attribute>
676 <xs:attribute name="HoverFontId" type="xs:string">
677 <xs:annotation>
678 <xs:documentation>Identifier to the Font element that serves as the font when the control is hovered over.</xs:documentation>
679 </xs:annotation>
680 </xs:attribute>
681 <xs:attribute name="SelectedFontId" type="xs:string">
682 <xs:annotation>
683 <xs:documentation>Identifier to the Font element that serves as the font when the control is selected.</xs:documentation>
684 </xs:annotation>
685 </xs:attribute>
686 <xs:attribute name="StringId" type="xs:nonNegativeInteger">
687 <xs:annotation>
688 <xs:documentation>
689 Identifier that references a string resource in the module to define the text for the control.
690 </xs:documentation>
691 </xs:annotation>
692 </xs:attribute>
693 </xs:complexType>
694 </xs:element>
695
696 <xs:element name="Hypertext">
697 <xs:annotation>
698 <xs:documentation>Defines a text block with support for HTML `&lt;a&gt;` tags.</xs:documentation>
699 </xs:annotation>
700 <xs:complexType mixed="true">
701 <xs:annotation>
702 <xs:documentation>
703 Text to display as the link.
704 Use HTML &lt;a href="URL"&gt; to create a link.
705 Mutually exclusive with the StringId attribute and child Text elements.
706 </xs:documentation>
707 </xs:annotation>
708 <xs:choice minOccurs="0" maxOccurs="unbounded">
709 <xs:element ref="Text" />
710 <xs:element ref="Tooltip" maxOccurs="1" />
711 </xs:choice>
712 <xs:attributeGroup ref="CommonControlAttributes" />
713 <xs:attribute name="FontId" type="xs:string">
714 <xs:annotation>
715 <xs:documentation>Identifier to the Font element that serves as the font for the control.</xs:documentation>
716 </xs:annotation>
717 </xs:attribute>
718 <xs:attribute name="StringId" type="xs:nonNegativeInteger">
719 <xs:annotation>
720 <xs:documentation>
721 Identifier that references a string resource in the module to define the text for the control.
722 </xs:documentation>
723 </xs:annotation>
724 </xs:attribute>
725 </xs:complexType>
726 </xs:element>
727
728 <xs:element name="ImageListItem">
729 <xs:annotation>
730 <xs:documentation>Defines an image for an ImageList.</xs:documentation>
731 </xs:annotation>
732 <xs:complexType>
733 <xs:attribute name="ImageFile" type="xs:string">
734 <xs:annotation>
735 <xs:documentation>Relative path to an image file. Mutually exclusive with ImageResource.</xs:documentation>
736 </xs:annotation>
737 </xs:attribute>
738 <xs:attribute name="ImageResource" type="xs:nonNegativeInteger">
739 <xs:annotation>
740 <xs:documentation>Identifier that references an image resource in the module. Mutually exclusive with ImageFile.</xs:documentation>
741 </xs:annotation>
742 </xs:attribute>
743 </xs:complexType>
744 </xs:element>
745
746 <xs:element name="ImageControl">
747 <xs:annotation>
748 <xs:documentation>Defines an image control.</xs:documentation>
749 </xs:annotation>
750 <xs:complexType>
751 <xs:attributeGroup ref="CommonControlAttributes" />
752 <xs:attributeGroup ref="OwnerDrawImageAttributes" />
753 </xs:complexType>
754 </xs:element>
755
756 <xs:element name="Label">
757 <xs:annotation>
758 <xs:documentation>Defines a label.</xs:documentation>
759 </xs:annotation>
760 <xs:complexType mixed="true">
761 <xs:annotation>
762 <xs:documentation>
763 Text for the label to display.
764 Mutually exclusive with the StringId attribute and child Text elements.
765 </xs:documentation>
766 </xs:annotation>
767 <xs:choice minOccurs="0" maxOccurs="unbounded">
768 <xs:element ref="Text" />
769 <xs:element ref="Tooltip" maxOccurs="1" />
770 </xs:choice>
771 <xs:attributeGroup ref="CommonControlAttributes" />
772 <xs:attribute name="Center" type="YesNoType" use="optional">
773 <xs:annotation>
774 <xs:documentation>Specifies whether the text should be centered horizontally in the width of the control. Default is "no".</xs:documentation>
775 </xs:annotation>
776 </xs:attribute>
777 <xs:attribute name="DisablePrefix" type="YesNoType" use="optional">
778 <xs:annotation>
779 <xs:documentation>By default ampersands (&amp;) in the text will underline the next character and treat it as an accelerator key. Set this attribute to "yes" to disable that behavior. Default is "no".</xs:documentation>
780 </xs:annotation>
781 </xs:attribute>
782 <xs:attribute name="FontId" type="xs:string">
783 <xs:annotation>
784 <xs:documentation>Numeric identifier to the Font element that serves as the font for the control.</xs:documentation>
785 </xs:annotation>
786 </xs:attribute>
787 <xs:attribute name="StringId" type="xs:nonNegativeInteger">
788 <xs:annotation>
789 <xs:documentation>
790 Identifier that references a string resource in the module to define the text for the label.
791 </xs:documentation>
792 </xs:annotation>
793 </xs:attribute>
794 </xs:complexType>
795 </xs:element>
796
797 <xs:element name="ListView">
798 <xs:annotation>
799 <xs:documentation>Defines a listview.</xs:documentation>
800 </xs:annotation>
801 <xs:complexType>
802 <xs:choice maxOccurs="unbounded">
803 <xs:element ref="Column" />
804 </xs:choice>
805 <xs:attributeGroup ref="CommonControlAttributes" />
806 <xs:attribute name="FontId" type="xs:string">
807 <xs:annotation>
808 <xs:documentation>Identifier to the Font element that serves as the default font for the ListView.</xs:documentation>
809 </xs:annotation>
810 </xs:attribute>
811 <xs:attribute name="HexExtendedStyle" type="xs:hexBinary">
812 <xs:annotation>
813 <xs:documentation>Hexadecimal extended window style.</xs:documentation>
814 </xs:annotation>
815 </xs:attribute>
816 <xs:attribute name="ImageList" type="xs:string">
817 <xs:annotation>
818 <xs:documentation>
819 The name of the ImageList to assign to this listview with type LVSIL_NORMAL.
820 </xs:documentation>
821 </xs:annotation>
822 </xs:attribute>
823 <xs:attribute name="ImageListSmall" type="xs:string">
824 <xs:annotation>
825 <xs:documentation>
826 The name of the ImageList to assign to this listview with type LVSIL_SMALL.
827 </xs:documentation>
828 </xs:annotation>
829 </xs:attribute>
830 <xs:attribute name="ImageListState" type="xs:string">
831 <xs:annotation>
832 <xs:documentation>
833 The name of the ImageList to assign to this listview with type LVSIL_STATE.
834 </xs:documentation>
835 </xs:annotation>
836 </xs:attribute>
837 <xs:attribute name="ImageListGroupHeader" type="xs:string">
838 <xs:annotation>
839 <xs:documentation>
840 The name of the ImageList to assign to this listview with type LVSIL_GROUPHEADER.
841 </xs:documentation>
842 </xs:annotation>
843 </xs:attribute>
844 </xs:complexType>
845 </xs:element>
846
847 <xs:element name="Note">
848 <xs:annotation>
849 <xs:documentation>
850 Defines note text for a command link control based on an optional condition.
851 If multiple Note elements are given for one control, the conditions should be mutually exclusive (when multiple conditions are true, the behavior is undefined and may be changed at any time).
852 If none of the conditions of a control's Note elements are true, then it uses the text of the Note element without the Condition attribute.
853 </xs:documentation>
854 </xs:annotation>
855 <xs:complexType>
856 <xs:simpleContent>
857 <xs:extension base="xs:string">
858 <xs:annotation>
859 <xs:documentation>
860 Note text for the parent command link control.
861 </xs:documentation>
862 </xs:annotation>
863 <xs:attribute name="Condition" type="xs:string">
864 <xs:annotation>
865 <xs:documentation>
866 The condition that determines when the parent control will use this note text.
867 </xs:documentation>
868 </xs:annotation>
869 </xs:attribute>
870 </xs:extension>
871 </xs:simpleContent>
872 </xs:complexType>
873 </xs:element>
874
875 <xs:element name="Panel">
876 <xs:annotation>
877 <xs:documentation>Defines a collection of controls.</xs:documentation>
878 </xs:annotation>
879 <xs:complexType>
880 <xs:group ref="PanelControlElements" maxOccurs="unbounded"/>
881 <xs:attributeGroup ref="CommonControlAttributes" />
882 </xs:complexType>
883 </xs:element>
884
885 <xs:element name="Progressbar">
886 <xs:annotation>
887 <xs:documentation>
888 Defines a progress bar.
889 </xs:documentation>
890 </xs:annotation>
891 <xs:complexType>
892 <xs:choice minOccurs="0" maxOccurs="unbounded">
893 <xs:element ref="ProgressbarImage" />
894 </xs:choice>
895 <xs:attributeGroup ref="CommonControlAttributes" />
896 </xs:complexType>
897 </xs:element>
898
899 <xs:element name="ProgressbarImage">
900 <xs:annotation>
901 <xs:documentation>
902 Defines a progress bar image.
903 The image must be 4 pixels wide: left pixel is the left side of progress bar, left middle pixel is progress used, right middle pixel is progress unused, right pixel is right side of progress bar.
904 If multiple ProgressbarImages are given, each is assigned an index in document order and can be selected programmatically with ThemeSetProgressControlColor.
905 </xs:documentation>
906 </xs:annotation>
907 <xs:complexType>
908 <xs:attributeGroup ref="OwnerDrawImageAttributes" />
909 </xs:complexType>
910 </xs:element>
911
912 <xs:element name="RadioButton">
913 <xs:annotation>
914 <xs:documentation>Defines an individual radio button within a set of radio buttons.</xs:documentation>
915 </xs:annotation>
916 <xs:complexType mixed="true">
917 <xs:annotation>
918 <xs:documentation>
919 Text to display beside the radio button.
920 Mutually exclusive with the StringId attribute and child Text elements.
921 </xs:documentation>
922 </xs:annotation>
923 <xs:choice minOccurs="0" maxOccurs="unbounded">
924 <xs:element ref="Text" />
925 <xs:element ref="Tooltip" maxOccurs="1" />
926 </xs:choice>
927 <xs:attributeGroup ref="CommonControlAttributes" />
928 <xs:attribute name="FontId" type="xs:string">
929 <xs:annotation>
930 <xs:documentation>Identifier to the Font element that serves as the font for the control.</xs:documentation>
931 </xs:annotation>
932 </xs:attribute>
933 <xs:attribute name="StringId" type="xs:nonNegativeInteger">
934 <xs:annotation>
935 <xs:documentation>
936 Identifier that references a string resource in the module to define the text for the control.
937 </xs:documentation>
938 </xs:annotation>
939 </xs:attribute>
940 <xs:attribute name="Value" type="xs:string">
941 <xs:annotation>
942 <xs:documentation>Optional value used when setting the variable associated with the set of radio buttons.</xs:documentation>
943 </xs:annotation>
944 </xs:attribute>
945 </xs:complexType>
946 </xs:element>
947
948 <xs:element name="RadioButtons">
949 <xs:annotation>
950 <xs:documentation>Defines a set of radio buttons.</xs:documentation>
951 </xs:annotation>
952 <xs:complexType>
953 <xs:choice maxOccurs="unbounded">
954 <xs:element ref="RadioButton" />
955 </xs:choice>
956 <xs:attribute name="Name" type="xs:string">
957 <xs:annotation>
958 <xs:documentation>Optional variable name for the set of radio buttons.</xs:documentation>
959 </xs:annotation>
960 </xs:attribute>
961 </xs:complexType>
962 </xs:element>
963
964 <xs:element name="Richedit">
965 <xs:annotation>
966 <xs:documentation>Defines a rich edit control.</xs:documentation>
967 </xs:annotation>
968 <xs:complexType mixed="true">
969 <xs:annotation>
970 <xs:documentation>
971 Initial text for the control.
972 Mutually exclusive with the StringId attribute.
973 </xs:documentation>
974 </xs:annotation>
975 <xs:choice minOccurs="0" maxOccurs="unbounded">
976 <xs:element ref="Text" />
977 <xs:element ref="Tooltip" maxOccurs="1" />
978 </xs:choice>
979 <xs:attributeGroup ref="CommonControlAttributes" />
980 <xs:attribute name="FontId" type="xs:string">
981 <xs:annotation>
982 <xs:documentation>
983 Identifier to the Font element that serves as the font for the control.
984 </xs:documentation>
985 </xs:annotation>
986 </xs:attribute>
987 <xs:attribute name="StringId" type="xs:nonNegativeInteger">
988 <xs:annotation>
989 <xs:documentation>
990 Identifier that references a string resource in the module to define the initial text for the control.
991 </xs:documentation>
992 </xs:annotation>
993 </xs:attribute>
994 </xs:complexType>
995 </xs:element>
996
997 <xs:element name="Static">
998 <xs:annotation>
999 <xs:documentation>Defines a straight line.</xs:documentation>
1000 </xs:annotation>
1001 <xs:complexType>
1002 <xs:attributeGroup ref="CommonControlAttributes" />
1003 </xs:complexType>
1004 </xs:element>
1005
1006 <xs:element name="Tab">
1007 <xs:annotation>
1008 <xs:documentation>Defines an individual tab within a set of tabs.</xs:documentation>
1009 </xs:annotation>
1010 <xs:complexType>
1011 <xs:simpleContent>
1012 <xs:extension base="xs:string">
1013 <xs:annotation>
1014 <xs:documentation>
1015 Caption of the tab.
1016 Mutually exclusive with the StringId attribute.
1017 </xs:documentation>
1018 </xs:annotation>
1019 <xs:attribute name="StringId" type="xs:nonNegativeInteger">
1020 <xs:annotation>
1021 <xs:documentation>
1022 Identifier that references a string resource in the module to define the caption of the tab.
1023 </xs:documentation>
1024 </xs:annotation>
1025 </xs:attribute>
1026 </xs:extension>
1027 </xs:simpleContent>
1028 </xs:complexType>
1029 </xs:element>
1030
1031 <xs:element name="Tabs">
1032 <xs:annotation>
1033 <xs:documentation>Defines a set of tabs.</xs:documentation>
1034 </xs:annotation>
1035 <xs:complexType>
1036 <xs:choice maxOccurs="unbounded">
1037 <xs:element ref="Tab" />
1038 </xs:choice>
1039 <xs:attributeGroup ref="CommonControlAttributes" />
1040 <xs:attribute name="FontId" type="xs:string">
1041 <xs:annotation>
1042 <xs:documentation>Identifier to the Font element that serves as the font for the control.</xs:documentation>
1043 </xs:annotation>
1044 </xs:attribute>
1045 </xs:complexType>
1046 </xs:element>
1047
1048 <xs:element name="Text">
1049 <xs:annotation>
1050 <xs:documentation>
1051 Defines text for the parent control based on an optional condition.
1052 If multiple Text elements are given for one control, the conditions should be mutually exclusive (when multiple conditions are true, the behavior is undefined and may be changed at any time).
1053 If none of the conditions of a control's Text elements are true, then it uses the text of the Text element without the Condition attribute.
1054 </xs:documentation>
1055 </xs:annotation>
1056 <xs:complexType>
1057 <xs:simpleContent>
1058 <xs:extension base="xs:string">
1059 <xs:annotation>
1060 <xs:documentation>
1061 Text for the parent control.
1062 </xs:documentation>
1063 </xs:annotation>
1064 <xs:attribute name="Condition" type="xs:string">
1065 <xs:annotation>
1066 <xs:documentation>
1067 The condition that determines when the parent control will use this text.
1068 </xs:documentation>
1069 </xs:annotation>
1070 </xs:attribute>
1071 </xs:extension>
1072 </xs:simpleContent>
1073 </xs:complexType>
1074 </xs:element>
1075
1076 <xs:element name="Tooltip">
1077 <xs:annotation>
1078 <xs:documentation>
1079 Defines text for the parent control's tooltip.
1080 </xs:documentation>
1081 </xs:annotation>
1082 <xs:complexType>
1083 <xs:simpleContent>
1084 <xs:extension base="xs:string">
1085 <xs:annotation>
1086 <xs:documentation>
1087 Text for the parent control's tooltip.
1088 </xs:documentation>
1089 </xs:annotation>
1090 </xs:extension>
1091 </xs:simpleContent>
1092 </xs:complexType>
1093 </xs:element>
1094
1095 <xs:element name="TreeView">
1096 <xs:annotation>
1097 <xs:documentation>Defines a treeview.</xs:documentation>
1098 </xs:annotation>
1099 <xs:complexType>
1100 <xs:attributeGroup ref="CommonControlAttributes"/>
1101 <xs:attribute name="AlwaysShowSelect">
1102 <xs:annotation>
1103 <xs:documentation>Specifies whether the row always appears selected even when the treeview has lost focus.</xs:documentation>
1104 </xs:annotation>
1105 </xs:attribute>
1106 <xs:attribute name="EnableDragDrop">
1107 <xs:annotation>
1108 <xs:documentation>Specifies whether drag and drop is enabled for the treeview.</xs:documentation>
1109 </xs:annotation>
1110 </xs:attribute>
1111 <xs:attribute name="FullRowSelect">
1112 <xs:annotation>
1113 <xs:documentation>Specifies whether an entire row is selected for the treeview.</xs:documentation>
1114 </xs:annotation>
1115 </xs:attribute>
1116 <xs:attribute name="HasButtons">
1117 <xs:annotation>
1118 <xs:documentation>Specifies whether the treeview will show buttons.</xs:documentation>
1119 </xs:annotation>
1120 </xs:attribute>
1121 <xs:attribute name="HasLines">
1122 <xs:annotation>
1123 <xs:documentation>Specifies whether lines appear for all treeview items.</xs:documentation>
1124 </xs:annotation>
1125 </xs:attribute>
1126 <xs:attribute name="LinesAtRoot">
1127 <xs:annotation>
1128 <xs:documentation>Specifies whether the root nodes have lines beside them.</xs:documentation>
1129 </xs:annotation>
1130 </xs:attribute>
1131 </xs:complexType>
1132 </xs:element>
1133
1134 <xs:element name="Column">
1135 <xs:annotation>
1136 <xs:documentation>A column of a list.</xs:documentation>
1137 </xs:annotation>
1138 <xs:complexType>
1139 <xs:simpleContent>
1140 <xs:extension base="xs:string">
1141 <xs:annotation>
1142 <xs:documentation>
1143 Text for the column header.
1144 Mutually exclusive with the StringId attribute.
1145 </xs:documentation>
1146 </xs:annotation>
1147 <xs:attribute name="Width" type="xs:int">
1148 <xs:annotation>
1149 <xs:documentation>Width of the column.</xs:documentation>
1150 </xs:annotation>
1151 </xs:attribute>
1152 <xs:attribute name="Expands" type="YesNoType">
1153 <xs:annotation>
1154 <xs:documentation>
1155 Whether or not this column can grow to fill available width of the listview.
1156 More than one column can be marked with yes - all expandable columns will share available extra space.
1157 This is especially useful if the Window/@AutoResize is yes.
1158 </xs:documentation>
1159 </xs:annotation>
1160 </xs:attribute>
1161 <xs:attribute name="StringId" type="xs:nonNegativeInteger">
1162 <xs:annotation>
1163 <xs:documentation>
1164 Identifier that references a string resource in the module to define the text for the column header.
1165 </xs:documentation>
1166 </xs:annotation>
1167 </xs:attribute>
1168 </xs:extension>
1169 </xs:simpleContent>
1170 </xs:complexType>
1171 </xs:element>
1172
1173 <xs:group name="ControlElements">
1174 <xs:choice>
1175 <xs:element ref="Billboard" />
1176 <xs:element ref="Button" />
1177 <xs:element ref="Checkbox" />
1178 <xs:element ref="Combobox" />
1179 <xs:element ref="CommandLink" />
1180 <xs:element ref="Editbox" />
1181 <xs:element ref="Hyperlink" />
1182 <xs:element ref="Hypertext" />
1183 <xs:element ref="ImageControl" />
1184 <xs:element ref="Label" />
1185 <xs:element ref="ListView" />
1186 <xs:element ref="Panel" />
1187 <xs:element ref="Progressbar" />
1188 <xs:element ref="RadioButtons" />
1189 <xs:element ref="Richedit" />
1190 <xs:element ref="Static" />
1191 <xs:element ref="Tabs" />
1192 <xs:element ref="TreeView" />
1193 </xs:choice>
1194 </xs:group>
1195
1196 <xs:group name="PanelControlElements">
1197 <xs:choice>
1198 <xs:element ref="Hyperlink" />
1199 <xs:element ref="Hypertext" />
1200 <xs:element ref="ImageControl" />
1201 <xs:element ref="Label" />
1202 <xs:element ref="Progressbar" />
1203 <xs:element ref="Static" />
1204 </xs:choice>
1205 </xs:group>
1206
1207 <xs:attributeGroup name="CommonControlAttributes">
1208 <xs:attribute name="Name" type="xs:string">
1209 <xs:annotation>
1210 <xs:documentation>
1211 Optional name for the control.
1212
1213 If the ThmUtil variable callback system has been configured, such as by
1214 WixStandardBootstrapperApplication, ThmUtil uses the control name to
1215 find a matching variable name. ThmUtil retrieves the variable's value
1216 to set the initial value of the control and sets the variable's value
1217 when the user interacts with the control.
1218
1219 For example, a checkbox control is checked when the matching variable
1220 has a nonzero value and unchecked for a value of `0`. When the user
1221 checks a checkbox control, ThmUtil sets the variable value to a nonzero
1222 value (currently `1`) and to `0` if the checkbox is unchecked.
1223
1224 An edit box control gets its initial value from a matching variable
1225 value. The control value is saved to the variable when navigating away
1226 from the page or when choosing a folder via an associated Browse button.
1227 </xs:documentation>
1228 </xs:annotation>
1229 </xs:attribute>
1230 <xs:attribute name="EnableCondition" type="xs:string">
1231 <xs:annotation>
1232 <xs:documentation>A condition that determines if the control is enabled. If this condition is true or omitted, then the control will be enabled.</xs:documentation>
1233 </xs:annotation>
1234 </xs:attribute>
1235 <xs:attribute name="Height" type="xs:int" use="required">
1236 <xs:annotation>
1237 <xs:documentation>Height of the control. Non-positive values extend the control to the bottom of the window minus the value. A zero value extends the control to the bottom of the window.</xs:documentation>
1238 </xs:annotation>
1239 </xs:attribute>
1240 <xs:attribute name="HexStyle" type="xs:hexBinary">
1241 <xs:annotation>
1242 <xs:documentation>Hexadecimal window style for the control.</xs:documentation>
1243 </xs:annotation>
1244 </xs:attribute>
1245 <xs:attribute name="HideWhenDisabled" type="YesNoType">
1246 <xs:annotation>
1247 <xs:documentation>Specifies whether the control should be hidden when disabled.</xs:documentation>
1248 </xs:annotation>
1249 </xs:attribute>
1250 <xs:attribute name="TabStop" type="YesNoType">
1251 <xs:annotation>
1252 <xs:documentation>Specifies whether the control is part of the tab sequence of controls.</xs:documentation>
1253 </xs:annotation>
1254 </xs:attribute>
1255 <xs:attribute name="Visible" type="YesNoType">
1256 <xs:annotation>
1257 <xs:documentation>Specifies whether the control is initially visible.</xs:documentation>
1258 </xs:annotation>
1259 </xs:attribute>
1260 <xs:attribute name="VisibleCondition" type="xs:string">
1261 <xs:annotation>
1262 <xs:documentation>
1263 A condition that determines if the control is visible. If this condition is true or omitted, then the control will be visible.
1264 </xs:documentation>
1265 </xs:annotation>
1266 </xs:attribute>
1267 <xs:attribute name="Width" type="xs:int" use="required">
1268 <xs:annotation>
1269 <xs:documentation>Width of the control. Non-positive values extend the control to the right of the window minus the value. A zero value extends the control to the right of the window.</xs:documentation>
1270 </xs:annotation>
1271 </xs:attribute>
1272 <xs:attribute name="X" type="xs:int" use="required">
1273 <xs:annotation>
1274 <xs:documentation>X coordinate for the control from the left of the window. Negative values are coordinates from the right of the window minus the width of the control.</xs:documentation>
1275 </xs:annotation>
1276 </xs:attribute>
1277 <xs:attribute name="Y" type="xs:int" use="required">
1278 <xs:annotation>
1279 <xs:documentation>Y coordinate for the control from the top of the window. Negative values are coordinates from the bottom of the window minus the height of the control.</xs:documentation>
1280 </xs:annotation>
1281 </xs:attribute>
1282 </xs:attributeGroup>
1283
1284 <xs:attributeGroup name="OwnerDrawImageAttributes">
1285 <xs:attribute name="ImageId" type="xs:string">
1286 <xs:annotation>
1287 <xs:documentation>
1288 Identifier to the Image element that serves as the image for the control.
1289 Mutually exclusive with ImageFile and ImageResource and SourceX and SourceY attributes.
1290 </xs:documentation>
1291 </xs:annotation>
1292 </xs:attribute>
1293 <xs:attribute name="ImageFile" type="xs:string">
1294 <xs:annotation>
1295 <xs:documentation>
1296 Relative path to an image file for the control.
1297 Mutually exclusive with ImageId and ImageResource and SourceX and SourceY attributes.
1298 </xs:documentation>
1299 </xs:annotation>
1300 </xs:attribute>
1301 <xs:attribute name="ImageResource" type="xs:nonNegativeInteger">
1302 <xs:annotation>
1303 <xs:documentation>
1304 Identifier that references an image resource with type RT_RCDATA in the module for the control.
1305 Mutually exclusive with ImageId and ImageFile and SourceX and SourceY attributes.
1306 </xs:documentation>
1307 </xs:annotation>
1308 </xs:attribute>
1309 <xs:attribute name="SourceX" type="xs:nonNegativeInteger">
1310 <xs:annotation>
1311 <xs:documentation>
1312 X offset of the Theme/@ImageFile or Theme/@ImageResource.
1313 Can only be specified with Theme/@ImageFile or Theme/@ImageResource.
1314 Mutually exclusive with ImageId and ImageFile and ImageResource attributes.
1315 </xs:documentation>
1316 </xs:annotation>
1317 </xs:attribute>
1318 <xs:attribute name="SourceY" type="xs:nonNegativeInteger">
1319 <xs:annotation>
1320 <xs:documentation>
1321 Y offset of the Theme/@ImageFile or Theme/@ImageResource.
1322 Can only be specified with Theme/@ImageFile or Theme/@ImageResource.
1323 Mutually exclusive with ImageId and ImageFile and ImageResource attributes.
1324 </xs:documentation>
1325 </xs:annotation>
1326 </xs:attribute>
1327 </xs:attributeGroup>
1328
1329 <xs:simpleType name="YesNoType">
1330 <xs:annotation>
1331 <xs:documentation>Values of this type will either be "yes" or "no".</xs:documentation>
1332 </xs:annotation>
1333 <xs:restriction base="xs:NMTOKEN">
1334 <xs:enumeration value="no"/>
1335 <xs:enumeration value="yes"/>
1336 </xs:restriction>
1337 </xs:simpleType>
1338
1339 <xs:simpleType name="SystemColorType">
1340 <xs:annotation>
1341 <xs:documentation>
1342 Indicates a system color for a font.
1343 </xs:documentation>
1344 </xs:annotation>
1345 <xs:restriction base="xs:NMTOKEN">
1346 <xs:enumeration value="btnface" />
1347 <xs:enumeration value="btntext" />
1348 <xs:enumeration value="graytext" />
1349 <xs:enumeration value="highlight" />
1350 <xs:enumeration value="highlighttext" />
1351 <xs:enumeration value="hotlight" />
1352 <xs:enumeration value="window" />
1353 <xs:enumeration value="windowtext" />
1354 </xs:restriction>
1355 </xs:simpleType>
1356
1357 <xs:simpleType name="FontColorType">
1358 <xs:annotation>
1359 <xs:documentation>
1360 Indicates the foreground or background color of a font.
1361 </xs:documentation>
1362 </xs:annotation>
1363 <xs:union memberTypes="SystemColorType xs:string"/>
1364 </xs:simpleType>
1365</xs:schema>
diff --git a/src/xsd/ui.xsd b/src/xsd/ui.xsd
new file mode 100644
index 00000000..cb5899ed
--- /dev/null
+++ b/src/xsd/ui.xsd
@@ -0,0 +1,77 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
4
5<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
6 xmlns:xse="http://wixtoolset.org/schemas/XmlSchemaExtension"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:wxs="http://wixtoolset.org/schemas/v4/wxs"
9 targetNamespace="http://wixtoolset.org/schemas/v4/wxs/ui"
10 xmlns="http://wixtoolset.org/schemas/v4/wxs/ui">
11 <xs:annotation>
12 <xs:documentation>
13 The source code schema for the WiX Toolset UI Extension.
14 </xs:documentation>
15 </xs:annotation>
16
17 <xs:import namespace="http://wixtoolset.org/schemas/v4/wxs" />
18
19 <xs:element name="WixUI">
20 <xs:annotation>
21 <xs:appinfo>
22 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
23 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
24 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
25 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="PatchFamily" />
26 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
27 </xs:appinfo>
28 <xs:documentation>
29 References a WixUI dialog set, either one that's included in WixToolset.UI.wixext or a
30 custom dialog set included in your authoring.
31 </xs:documentation>
32 </xs:annotation>
33 <xs:complexType>
34 <xs:choice minOccurs="0" maxOccurs="unbounded">
35 <xs:any namespace="##other" processContents="lax">
36 <xs:annotation>
37 <xs:documentation>
38 Extensibility point in the WiX XML Schema. Schema extensions can register additional
39 elements at this point in the schema.
40 </xs:documentation>
41 </xs:annotation>
42 </xs:any>
43 </xs:choice>
44 <xs:attribute name="Id" type="xs:string" use="required">
45 <xs:annotation>
46 <xs:documentation>
47 Identifier for the dialog set to reference.
48 </xs:documentation>
49 </xs:annotation>
50 </xs:attribute>
51 <xs:attribute name="InstallDirectory" type="xs:string">
52 <xs:annotation>
53 <xs:documentation>
54 An optional identifier that specifies the directory to set WIXUI_INSTALLDIR to,
55 for WixUI dialog sets that require it.
56 </xs:documentation>
57 </xs:annotation>
58 </xs:attribute>
59 <xs:attribute name="ExtendedPathValidation" type="wxs:YesNoTypeUnion">
60 <xs:annotation>
61 <xs:documentation>
62 Enable checks to test whether the package is being installed to a network share or removable
63 disk. The default is no.
64 </xs:documentation>
65 </xs:annotation>
66 </xs:attribute>
67 <xs:anyAttribute namespace="##other" processContents="lax">
68 <xs:annotation>
69 <xs:documentation>
70 Extensibility point in the WiX XML Schema. Schema extensions can register additional
71 attributes at this point in the schema.
72 </xs:documentation>
73 </xs:annotation>
74 </xs:anyAttribute>
75 </xs:complexType>
76 </xs:element>
77</xs:schema>
diff --git a/src/xsd/util.xsd b/src/xsd/util.xsd
new file mode 100644
index 00000000..1b649f48
--- /dev/null
+++ b/src/xsd/util.xsd
@@ -0,0 +1,2536 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
4
5<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
6 xmlns:xse="http://wixtoolset.org/schemas/XmlSchemaExtension"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:wxs="http://wixtoolset.org/schemas/v4/wxs"
9 targetNamespace="http://wixtoolset.org/schemas/v4/wxs/util"
10 xmlns="http://wixtoolset.org/schemas/v4/wxs/util">
11 <xs:annotation>
12 <xs:documentation>
13 The source code schema for the WiX Toolset Utility Extension.
14 </xs:documentation>
15 </xs:annotation>
16
17 <xs:import namespace="http://wixtoolset.org/schemas/v4/wxs" />
18
19 <xs:element name="CloseApplication">
20 <xs:annotation>
21 <xs:appinfo>
22 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
23 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
24 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
25 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
26 </xs:appinfo>
27 <xs:documentation>Closes applications or schedules a reboot if application cannot be closed.</xs:documentation>
28 </xs:annotation>
29 <xs:complexType>
30 <xs:choice minOccurs="0" maxOccurs="unbounded">
31 <xs:any namespace="##other" processContents="lax">
32 <xs:annotation>
33 <xs:documentation>
34 Extensibility point in the WiX XML Schema. Schema extensions can register additional
35 elements at this point in the schema.
36 </xs:documentation>
37 </xs:annotation>
38 </xs:any>
39 </xs:choice>
40 <xs:attribute name="Id" type="xs:string">
41 <xs:annotation>
42 <xs:documentation>Identifier for the close application (primary key). If the Id is not specified, one will be generated.</xs:documentation>
43 </xs:annotation>
44 </xs:attribute>
45 <xs:attribute name="Target" type="xs:string" use="required">
46 <xs:annotation>
47 <xs:documentation>Name of the exectuable to be closed. This should only be the file name.</xs:documentation>
48 </xs:annotation>
49 </xs:attribute>
50 <xs:attribute name="Condition" type="xs:string">
51 <xs:annotation>
52 <xs:documentation>
53 Condition that determines if the application should be closed. Must be blank or evaluate to true
54 for the application to be scheduled for closing.
55 </xs:documentation>
56 </xs:annotation>
57 </xs:attribute>
58 <xs:attribute name="Description" type="xs:string">
59 <xs:annotation>
60 <xs:documentation>Description to show if application is running and needs to be closed.</xs:documentation>
61 </xs:annotation>
62 </xs:attribute>
63 <xs:attribute name="Sequence" type="wxs:Integer">
64 <xs:annotation>
65 <xs:documentation>Optionally orders the applications to be closed.</xs:documentation>
66 </xs:annotation>
67 </xs:attribute>
68 <xs:attribute name="CloseMessage" type="wxs:YesNoTypeUnion">
69 <xs:annotation>
70 <xs:documentation>Optionally sends a close message to the application. Default is no.</xs:documentation>
71 </xs:annotation>
72 </xs:attribute>
73 <xs:attribute name="EndSessionMessage" type="wxs:YesNoTypeUnion">
74 <xs:annotation>
75 <xs:documentation>Sends WM_QUERYENDSESSION then WM_ENDSESSION messages to the application. Default is "no".</xs:documentation>
76 </xs:annotation>
77 </xs:attribute>
78 <xs:attribute name="ElevatedCloseMessage" type="wxs:YesNoTypeUnion">
79 <xs:annotation>
80 <xs:documentation>Optionally sends a close message to the application from deffered action without impersonation. Default is no.</xs:documentation>
81 </xs:annotation>
82 </xs:attribute>
83 <xs:attribute name="ElevatedEndSessionMessage" type="wxs:YesNoTypeUnion">
84 <xs:annotation>
85 <xs:documentation>Sends WM_QUERYENDSESSION then WM_ENDSESSION messages to the application from a deffered action without impersonation. Default is "no".</xs:documentation>
86 </xs:annotation>
87 </xs:attribute>
88 <xs:attribute name="RebootPrompt" type="wxs:YesNoTypeUnion">
89 <xs:annotation>
90 <xs:documentation>
91 Optionally prompts for reboot if application is still running.
92 The TerminateProcess attribute must be "no" or not specified if this attribute is "yes".
93 The default is "yes".
94 </xs:documentation>
95 </xs:annotation>
96 </xs:attribute>
97 <xs:attribute name="PromptToContinue" type="wxs:YesNoTypeUnion">
98 <xs:annotation>
99 <xs:documentation>
100 When this attribute is set to "yes", the user will be prompted when the application is still running. The Description attribute must contain the message to
101 display in the prompt. The prompt occurs before executing any of the other options and gives the options to "Abort", "Retry", or "Ignore". Abort will cancel
102 the install. Retry will attempt the check again and if the application is still running, prompt again. "Ignore" will continue and execute any other options
103 set on the CloseApplication element. The default is "no".
104 </xs:documentation>
105 </xs:annotation>
106 </xs:attribute>
107 <xs:attribute name="Property" type="xs:string">
108 <xs:annotation>
109 <xs:documentation>Property to be set if application is still running. Useful for launch conditions or to conditionalize custom UI to ask user to shut down apps.</xs:documentation>
110 </xs:annotation>
111 </xs:attribute>
112 <xs:attribute name="TerminateProcess" type="wxs:Integer">
113 <xs:annotation>
114 <xs:documentation>
115 Attempts to terminates process and return the attribute value as the process's exit code if the application is still running after sending any requested close and/or end session messages.
116 If this attribute is specified, the RebootPrompt attribute must be "no".
117 </xs:documentation>
118 </xs:annotation>
119 </xs:attribute>
120 <xs:attribute name="Timeout" type="wxs:Integer">
121 <xs:annotation>
122 <xs:documentation>
123 Optional time in seconds to wait for the application to exit after the close and/or end session messages. If the application is still running after the timeout then
124 the RebootPrompt or TerminateProcess attributes will be considered. The default value is "5" seconds.
125 </xs:documentation>
126 </xs:annotation>
127 </xs:attribute>
128 <xs:anyAttribute namespace="##other" processContents="lax">
129 <xs:annotation>
130 <xs:documentation>
131 Extensibility point in the WiX XML Schema. Schema extensions can register additional
132 attributes at this point in the schema.
133 </xs:documentation>
134 </xs:annotation>
135 </xs:anyAttribute>
136 </xs:complexType>
137 </xs:element>
138
139 <xs:element name="ComponentSearch">
140 <xs:annotation>
141 <xs:documentation>Describes a component search.</xs:documentation>
142 <xs:appinfo>
143 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
144 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
145 </xs:appinfo>
146 </xs:annotation>
147 <xs:complexType>
148 <xs:choice minOccurs="0" maxOccurs="unbounded">
149 <xs:any namespace="##other" processContents="lax">
150 <xs:annotation>
151 <xs:documentation>
152 Extensibility point in the WiX XML Schema. Schema extensions can register additional
153 elements at this point in the schema.
154 </xs:documentation>
155 </xs:annotation>
156 </xs:any>
157 </xs:choice>
158 <xs:attributeGroup ref="SearchCommonAttributes" />
159 <xs:attribute name="Guid" type="xs:string" use="required">
160 <xs:annotation>
161 <xs:documentation>Component to search for.</xs:documentation>
162 </xs:annotation>
163 </xs:attribute>
164 <xs:attribute name="ProductCode" type="xs:string">
165 <xs:annotation>
166 <xs:documentation>Optional ProductCode to determine if the component is installed.</xs:documentation>
167 </xs:annotation>
168 </xs:attribute>
169 <xs:attribute name="Result">
170 <xs:annotation>
171 <xs:documentation>
172 Rather than saving the matching key path into the variable, a ComponentSearch can save an attribute of the component instead.
173 </xs:documentation>
174 </xs:annotation>
175 <xs:simpleType>
176 <xs:restriction base="xs:NMTOKEN">
177 <xs:enumeration value="directory">
178 <xs:annotation>
179 <xs:documentation>Saves the parent directory for the component's file key path; other types of key path are returned unmodified.</xs:documentation>
180 </xs:annotation>
181 </xs:enumeration>
182 <xs:enumeration value="keyPath">
183 <xs:annotation>
184 <xs:documentation>Saves the key path of the component if installed. This is the default.</xs:documentation>
185 </xs:annotation>
186 </xs:enumeration>
187 <xs:enumeration value="state">
188 <xs:annotation>
189 <xs:documentation>Saves the state of the component: absent (2), locally installed (3), will run from source (4), or installed in default location (either local or from source) (5)</xs:documentation>
190 </xs:annotation>
191 </xs:enumeration>
192 </xs:restriction>
193 </xs:simpleType>
194 </xs:attribute>
195 <xs:anyAttribute namespace="##other" processContents="lax">
196 <xs:annotation>
197 <xs:documentation>
198 Extensibility point in the WiX XML Schema. Schema extensions can register additional
199 attributes at this point in the schema.
200 </xs:documentation>
201 </xs:annotation>
202 </xs:anyAttribute>
203 </xs:complexType>
204 </xs:element>
205
206 <xs:element name="ComponentSearchRef">
207 <xs:annotation>
208 <xs:documentation>References a ComponentSearch.</xs:documentation>
209 <xs:appinfo>
210 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
211 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
212 </xs:appinfo>
213 </xs:annotation>
214 <xs:complexType>
215 <xs:choice minOccurs="0" maxOccurs="unbounded">
216 <xs:any namespace="##other" processContents="lax">
217 <xs:annotation>
218 <xs:documentation>
219 Extensibility point in the WiX XML Schema. Schema extensions can register additional
220 elements at this point in the schema.
221 </xs:documentation>
222 </xs:annotation>
223 </xs:any>
224 </xs:choice>
225 <xs:attribute name="Id" type="xs:string" use="required" />
226 <xs:anyAttribute namespace="##other" processContents="lax">
227 <xs:annotation>
228 <xs:documentation>
229 Extensibility point in the WiX XML Schema. Schema extensions can register additional
230 attributes at this point in the schema.
231 </xs:documentation>
232 </xs:annotation>
233 </xs:anyAttribute>
234 </xs:complexType>
235 </xs:element>
236
237 <xs:element name="DirectorySearch">
238 <xs:annotation>
239 <xs:documentation>Describes a directory search.</xs:documentation>
240 <xs:appinfo>
241 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
242 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
243 </xs:appinfo>
244 </xs:annotation>
245 <xs:complexType>
246 <xs:choice minOccurs="0" maxOccurs="unbounded">
247 <xs:any namespace="##other" processContents="lax">
248 <xs:annotation>
249 <xs:documentation>
250 Extensibility point in the WiX XML Schema. Schema extensions can register additional
251 elements at this point in the schema.
252 </xs:documentation>
253 </xs:annotation>
254 </xs:any>
255 </xs:choice>
256 <xs:attributeGroup ref="SearchCommonAttributes" />
257 <xs:attribute name="Path" type="xs:string">
258 <xs:annotation>
259 <xs:documentation>Directory path to search for.</xs:documentation>
260 </xs:annotation>
261 </xs:attribute>
262 <xs:attribute name="DisableFileRedirection" type="wxs:YesNoTypeUnion">
263 <xs:annotation>
264 <xs:documentation>When set to "yes" and the running bundle is 32-bit, Wow64DisableWow64FsRedirection is called before starting the search.</xs:documentation>
265 </xs:annotation>
266 </xs:attribute>
267 <xs:attribute name="Result">
268 <xs:annotation>
269 <xs:documentation>
270 Rather than saving the matching directory path into the variable, a DirectorySearch can save an
271 attribute of the matching directory instead.
272 </xs:documentation>
273 </xs:annotation>
274 <xs:simpleType>
275 <xs:restriction base="xs:NMTOKEN">
276 <xs:enumeration value="exists">
277 <xs:annotation>
278 <xs:documentation>Saves true if a matching directory is found; false otherwise.</xs:documentation>
279 </xs:annotation>
280 </xs:enumeration>
281 </xs:restriction>
282 </xs:simpleType>
283 </xs:attribute>
284 <xs:anyAttribute namespace="##other" processContents="lax">
285 <xs:annotation>
286 <xs:documentation>
287 Extensibility point in the WiX XML Schema. Schema extensions can register additional
288 attributes at this point in the schema.
289 </xs:documentation>
290 </xs:annotation>
291 </xs:anyAttribute>
292 </xs:complexType>
293 </xs:element>
294
295 <xs:element name="DirectorySearchRef">
296 <xs:annotation>
297 <xs:documentation>References a DirectorySearch.</xs:documentation>
298 <xs:appinfo>
299 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
300 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
301 </xs:appinfo>
302 </xs:annotation>
303 <xs:complexType>
304 <xs:choice minOccurs="0" maxOccurs="unbounded">
305 <xs:any namespace="##other" processContents="lax">
306 <xs:annotation>
307 <xs:documentation>
308 Extensibility point in the WiX XML Schema. Schema extensions can register additional
309 elements at this point in the schema.
310 </xs:documentation>
311 </xs:annotation>
312 </xs:any>
313 </xs:choice>
314 <xs:attribute name="Id" type="xs:string" use="required" />
315 <xs:anyAttribute namespace="##other" processContents="lax">
316 <xs:annotation>
317 <xs:documentation>
318 Extensibility point in the WiX XML Schema. Schema extensions can register additional
319 attributes at this point in the schema.
320 </xs:documentation>
321 </xs:annotation>
322 </xs:anyAttribute>
323 </xs:complexType>
324 </xs:element>
325
326 <xs:element name="EventSource">
327 <xs:annotation>
328 <xs:appinfo>
329 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
330 </xs:appinfo>
331 <xs:documentation>Creates an event source.</xs:documentation>
332 </xs:annotation>
333 <xs:complexType>
334 <xs:choice minOccurs="0" maxOccurs="unbounded">
335 <xs:any namespace="##other" processContents="lax">
336 <xs:annotation>
337 <xs:documentation>
338 Extensibility point in the WiX XML Schema. Schema extensions can register additional
339 elements at this point in the schema.
340 </xs:documentation>
341 </xs:annotation>
342 </xs:any>
343 </xs:choice>
344 <xs:attribute name="CategoryCount" type="wxs:Integer">
345 <xs:annotation>
346 <xs:documentation>
347 The number of categories in CategoryMessageFile. CategoryMessageFile
348 must be specified too.
349 </xs:documentation>
350 </xs:annotation>
351 </xs:attribute>
352 <xs:attribute name="CategoryMessageFile" type="xs:string">
353 <xs:annotation>
354 <xs:documentation>
355 Name of the category message file. CategoryCount must be specified too.
356 Note that this is a formatted field, so you can use [#fileId] syntax to
357 refer to a file being installed. It is also written as a REG_EXPAND_SZ
358 string, so you can use %environment_variable% syntax to refer to a file
359 already present on the user's machine.
360 </xs:documentation>
361 </xs:annotation>
362 </xs:attribute>
363 <xs:attribute name="EventMessageFile" type="xs:string" use="required">
364 <xs:annotation>
365 <xs:documentation>
366 Name of the event message file.
367 Note that this is a formatted field, so you can use [#fileId] syntax to
368 refer to a file being installed. It is also written as a REG_EXPAND_SZ
369 string, so you can use %environment_variable% syntax to refer to a file
370 already present on the user's machine.
371 </xs:documentation>
372 </xs:annotation>
373 </xs:attribute>
374 <xs:attribute name="KeyPath" type="wxs:YesNoTypeUnion">
375 <xs:annotation>
376 <xs:documentation>
377 Marks the EventSource registry as the key path of the component it belongs to.
378 </xs:documentation>
379 </xs:annotation>
380 </xs:attribute>
381 <xs:attribute name="Log" type="xs:string" use="required">
382 <xs:annotation>
383 <xs:documentation>Name of the event source's log. The "Security" log is not support.</xs:documentation>
384 </xs:annotation>
385 </xs:attribute>
386 <xs:attribute name="Name" type="xs:string" use="required">
387 <xs:annotation>
388 <xs:documentation>Name of the event source.</xs:documentation>
389 </xs:annotation>
390 </xs:attribute>
391 <xs:attribute name="ParameterMessageFile" type="xs:string">
392 <xs:annotation>
393 <xs:documentation>
394 Name of the parameter message file.
395 Note that this is a formatted field, so you can use [#fileId] syntax to
396 refer to a file being installed. It is also written as a REG_EXPAND_SZ
397 string, so you can use %environment_variable% syntax to refer to a file
398 already present on the user's machine.
399 </xs:documentation>
400 </xs:annotation>
401 </xs:attribute>
402 <xs:attribute name="SupportsErrors" type="wxs:YesNoTypeUnion">
403 <xs:annotation>
404 <xs:documentation>
405 Equivalent to EVENTLOG_ERROR_TYPE.
406 </xs:documentation>
407 </xs:annotation>
408 </xs:attribute>
409 <xs:attribute name="SupportsFailureAudits" type="wxs:YesNoTypeUnion">
410 <xs:annotation>
411 <xs:documentation>
412 Equivalent to EVENTLOG_AUDIT_FAILURE.
413 </xs:documentation>
414 </xs:annotation>
415 </xs:attribute>
416 <xs:attribute name="SupportsInformationals" type="wxs:YesNoTypeUnion">
417 <xs:annotation>
418 <xs:documentation>
419 Equivalent to EVENTLOG_INFORMATION_TYPE.
420 </xs:documentation>
421 </xs:annotation>
422 </xs:attribute>
423 <xs:attribute name="SupportsSuccessAudits" type="wxs:YesNoTypeUnion">
424 <xs:annotation>
425 <xs:documentation>
426 Equivalent to EVENTLOG_AUDIT_SUCCESS.
427 </xs:documentation>
428 </xs:annotation>
429 </xs:attribute>
430 <xs:attribute name="SupportsWarnings" type="wxs:YesNoTypeUnion">
431 <xs:annotation>
432 <xs:documentation>
433 Equivalent to EVENTLOG_WARNING_TYPE.
434 </xs:documentation>
435 </xs:annotation>
436 </xs:attribute>
437 <xs:anyAttribute namespace="##other" processContents="lax">
438 <xs:annotation>
439 <xs:documentation>
440 Extensibility point in the WiX XML Schema. Schema extensions can register additional
441 attributes at this point in the schema.
442 </xs:documentation>
443 </xs:annotation>
444 </xs:anyAttribute>
445 </xs:complexType>
446 </xs:element>
447
448 <xs:element name="FileSearch">
449 <xs:annotation>
450 <xs:documentation>Describes a file search.</xs:documentation>
451 <xs:appinfo>
452 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
453 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
454 </xs:appinfo>
455 </xs:annotation>
456 <xs:complexType>
457 <xs:choice minOccurs="0" maxOccurs="unbounded">
458 <xs:any namespace="##other" processContents="lax">
459 <xs:annotation>
460 <xs:documentation>
461 Extensibility point in the WiX XML Schema. Schema extensions can register additional
462 elements at this point in the schema.
463 </xs:documentation>
464 </xs:annotation>
465 </xs:any>
466 </xs:choice>
467 <xs:attributeGroup ref="SearchCommonAttributes" />
468 <xs:attribute name="Path" type="xs:string">
469 <xs:annotation>
470 <xs:documentation>File path to search for.</xs:documentation>
471 </xs:annotation>
472 </xs:attribute>
473 <xs:attribute name="DisableFileRedirection" type="wxs:YesNoTypeUnion">
474 <xs:annotation>
475 <xs:documentation>When set to "yes" and the running bundle is 32-bit, Wow64DisableWow64FsRedirection is called before starting the search.</xs:documentation>
476 </xs:annotation>
477 </xs:attribute>
478 <xs:attribute name="Result">
479 <xs:annotation>
480 <xs:documentation>
481 Rather than saving the matching file path into the variable, a FileSearch can save an attribute of the matching file instead.
482 </xs:documentation>
483 </xs:annotation>
484 <xs:simpleType>
485 <xs:restriction base="xs:NMTOKEN">
486 <xs:enumeration value="exists">
487 <xs:annotation>
488 <xs:documentation>Saves true if a matching file is found; false otherwise.</xs:documentation>
489 </xs:annotation>
490 </xs:enumeration>
491 <xs:enumeration value="version">
492 <xs:annotation>
493 <xs:documentation>Saves the version information for files that have it (.exe, .dll); zero-version (0.0.0.0) otherwise.</xs:documentation>
494 </xs:annotation>
495 </xs:enumeration>
496 </xs:restriction>
497 </xs:simpleType>
498 </xs:attribute>
499 <xs:anyAttribute namespace="##other" processContents="lax">
500 <xs:annotation>
501 <xs:documentation>
502 Extensibility point in the WiX XML Schema. Schema extensions can register additional
503 attributes at this point in the schema.
504 </xs:documentation>
505 </xs:annotation>
506 </xs:anyAttribute>
507 </xs:complexType>
508 </xs:element>
509
510 <xs:element name="FileSearchRef">
511 <xs:annotation>
512 <xs:documentation>References a FileSearch.</xs:documentation>
513 <xs:appinfo>
514 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
515 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
516 </xs:appinfo>
517 </xs:annotation>
518 <xs:complexType>
519 <xs:choice minOccurs="0" maxOccurs="unbounded">
520 <xs:any namespace="##other" processContents="lax">
521 <xs:annotation>
522 <xs:documentation>
523 Extensibility point in the WiX XML Schema. Schema extensions can register additional
524 elements at this point in the schema.
525 </xs:documentation>
526 </xs:annotation>
527 </xs:any>
528 </xs:choice>
529 <xs:attribute name="Id" type="xs:string" use="required" />
530 <xs:anyAttribute namespace="##other" processContents="lax">
531 <xs:annotation>
532 <xs:documentation>
533 Extensibility point in the WiX XML Schema. Schema extensions can register additional
534 attributes at this point in the schema.
535 </xs:documentation>
536 </xs:annotation>
537 </xs:anyAttribute>
538 </xs:complexType>
539 </xs:element>
540
541 <xs:element name="FileShare">
542 <xs:annotation>
543 <xs:appinfo>
544 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
545 </xs:appinfo>
546 <xs:documentation>Creates a file share out of the component's directory.</xs:documentation>
547 </xs:annotation>
548 <xs:complexType>
549 <xs:choice minOccurs="0" maxOccurs="unbounded">
550 <xs:element ref="FileSharePermission">
551 <xs:annotation>
552 <xs:documentation>At least one of these ACL permission must be specified.</xs:documentation>
553 </xs:annotation>
554 </xs:element>
555 <xs:any namespace="##other" processContents="lax">
556 <xs:annotation>
557 <xs:documentation>
558 Extensibility point in the WiX XML Schema. Schema extensions can register additional
559 elements at this point in the schema.
560 </xs:documentation>
561 </xs:annotation>
562 </xs:any>
563 </xs:choice>
564 <xs:attribute name="Id" type="xs:string">
565 <xs:annotation>
566 <xs:documentation>Identifier for the file share (primary key).</xs:documentation>
567 </xs:annotation>
568 </xs:attribute>
569 <xs:attribute name="Name" type="xs:string" use="required">
570 <xs:annotation>
571 <xs:documentation>Name of the file share.</xs:documentation>
572 </xs:annotation>
573 </xs:attribute>
574 <xs:attribute name="Description" type="xs:string">
575 <xs:annotation>
576 <xs:documentation>Description of the file share.</xs:documentation>
577 </xs:annotation>
578 </xs:attribute>
579 <xs:anyAttribute namespace="##other" processContents="lax">
580 <xs:annotation>
581 <xs:documentation>
582 Extensibility point in the WiX XML Schema. Schema extensions can register additional
583 attributes at this point in the schema.
584 </xs:documentation>
585 </xs:annotation>
586 </xs:anyAttribute>
587 </xs:complexType>
588 </xs:element>
589
590 <xs:element name="FileSharePermission">
591 <xs:annotation>
592 <xs:documentation>
593 Sets ACLs on a FileShare. This element has no Id attribute.
594 The table and key are taken from the parent element.
595 </xs:documentation>
596 </xs:annotation>
597 <xs:complexType>
598 <xs:choice minOccurs="0" maxOccurs="unbounded">
599 <xs:any namespace="##other" processContents="lax">
600 <xs:annotation>
601 <xs:documentation>
602 Extensibility point in the WiX XML Schema. Schema extensions can register additional
603 elements at this point in the schema.
604 </xs:documentation>
605 </xs:annotation>
606 </xs:any>
607 </xs:choice>
608 <xs:attribute name="User" use="required" type="xs:string"></xs:attribute>
609 <!-- Common ACLs -->
610 <xs:attribute name="Read" type="wxs:YesNoTypeUnion"></xs:attribute>
611 <xs:attribute name="Delete" type="wxs:YesNoTypeUnion"></xs:attribute>
612 <xs:attribute name="ReadPermission" type="wxs:YesNoTypeUnion"></xs:attribute>
613 <xs:attribute name="ChangePermission" type="wxs:YesNoTypeUnion"></xs:attribute>
614 <xs:attribute name="TakeOwnership" type="wxs:YesNoTypeUnion"></xs:attribute>
615 <!-- Folder and File ACLs -->
616 <xs:attribute name="ReadAttributes" type="wxs:YesNoTypeUnion"></xs:attribute>
617 <xs:attribute name="WriteAttributes" type="wxs:YesNoTypeUnion"></xs:attribute>
618 <xs:attribute name="ReadExtendedAttributes" type="wxs:YesNoTypeUnion"></xs:attribute>
619 <xs:attribute name="WriteExtendedAttributes" type="wxs:YesNoTypeUnion"></xs:attribute>
620 <xs:attribute name="Synchronize" type="wxs:YesNoTypeUnion"></xs:attribute>
621 <!-- Folder only ACLs -->
622 <xs:attribute name="CreateFile" type="wxs:YesNoTypeUnion">
623 <xs:annotation>
624 <xs:documentation>For a directory, the right to create a file in the directory. Only valid under a 'CreateFolder' parent.</xs:documentation>
625 </xs:annotation>
626 </xs:attribute>
627 <xs:attribute name="CreateChild" type="wxs:YesNoTypeUnion">
628 <xs:annotation>
629 <xs:documentation>For a directory, the right to create a subdirectory. Only valid under a 'CreateFolder' parent.</xs:documentation>
630 </xs:annotation>
631 </xs:attribute>
632 <xs:attribute name="DeleteChild" type="wxs:YesNoTypeUnion">
633 <xs:annotation>
634 <xs:documentation>For a directory, the right to delete a directory and all the files it contains, including read-only files. Only valid under a 'CreateFolder' parent.</xs:documentation>
635 </xs:annotation>
636 </xs:attribute>
637 <xs:attribute name="Traverse" type="wxs:YesNoTypeUnion">
638 <xs:annotation>
639 <xs:documentation>For a directory, the right to traverse the directory. By default, users are assigned the BYPASS_TRAVERSE_CHECKING privilege, which ignores the FILE_TRAVERSE access right. Only valid under a 'CreateFolder' parent.</xs:documentation>
640 </xs:annotation>
641 </xs:attribute>
642 <!-- Generic ACLs, mapped by system to appropriate permissions -->
643 <xs:attribute name="GenericAll" type="wxs:YesNoTypeUnion"></xs:attribute>
644 <xs:attribute name="GenericExecute" type="wxs:YesNoTypeUnion"></xs:attribute>
645 <xs:attribute name="GenericWrite" type="wxs:YesNoTypeUnion"></xs:attribute>
646 <xs:attribute name="GenericRead" type="wxs:YesNoTypeUnion">
647 <xs:annotation>
648 <xs:documentation>specifying this will fail to grant read access</xs:documentation>
649 </xs:annotation>
650 </xs:attribute>
651 <xs:anyAttribute namespace="##other" processContents="lax">
652 <xs:annotation>
653 <xs:documentation>
654 Extensibility point in the WiX XML Schema. Schema extensions can register additional
655 attributes at this point in the schema.
656 </xs:documentation>
657 </xs:annotation>
658 </xs:anyAttribute>
659 </xs:complexType>
660 </xs:element>
661
662 <xs:element name="FormatFile">
663 <xs:annotation>
664 <xs:appinfo>
665 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="File" />
666 </xs:appinfo>
667 <xs:documentation>
668 Formats a file's contents at install time. The contents are formatted according to the rules of the
669 [Formatted](https://learn.microsoft.com/en-us/windows/win32/msi/formatted) data type.
670 </xs:documentation>
671 </xs:annotation>
672 <xs:complexType>
673 <xs:choice minOccurs="0" maxOccurs="unbounded">
674 <xs:any namespace="##other" processContents="lax">
675 <xs:annotation>
676 <xs:documentation>
677 Extensibility point in the WiX XML Schema. Schema extensions can register additional
678 elements at this point in the schema.
679 </xs:documentation>
680 </xs:annotation>
681 </xs:any>
682 </xs:choice>
683 <xs:attribute name="BinaryRef" type="xs:string" use="required">
684 <xs:annotation>
685 <xs:documentation>
686 The id of a Binary row that contains a copy of the file. The file in the Binary table overwrites whatever
687 file is installed by the parent component.
688 </xs:documentation>
689 </xs:annotation>
690 </xs:attribute>
691 <xs:anyAttribute namespace="##other" processContents="lax">
692 <xs:annotation>
693 <xs:documentation>
694 Extensibility point in the WiX XML Schema. Schema extensions can register additional
695 attributes at this point in the schema.
696 </xs:documentation>
697 </xs:annotation>
698 </xs:anyAttribute>
699 </xs:complexType>
700 </xs:element>
701
702 <xs:element name="Group">
703 <xs:annotation>
704 <xs:appinfo>
705 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
706 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
707 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
708 </xs:appinfo>
709 <xs:documentation>
710 Finds user groups on the local machine or specified Active Directory domain. The local machine will be
711 searched for the group first then fallback to looking in Active Directory. This element is not capable
712 of creating new groups but can be used to add new or existing users to an existing group.
713 </xs:documentation>
714 </xs:annotation>
715 <xs:complexType>
716 <xs:choice minOccurs="0" maxOccurs="unbounded">
717 <xs:any namespace="##other" processContents="lax">
718 <xs:annotation>
719 <xs:documentation>
720 Extensibility point in the WiX XML Schema. Schema extensions can register additional
721 elements at this point in the schema.
722 </xs:documentation>
723 </xs:annotation>
724 </xs:any>
725 </xs:choice>
726 <xs:attribute name="Id" type="xs:string">
727 <xs:annotation>
728 <xs:documentation>Unique identifier in your installation package for this group.</xs:documentation>
729 </xs:annotation>
730 </xs:attribute>
731 <xs:attribute name="Name" type="xs:string" use="required">
732 <xs:annotation>
733 <xs:documentation>A [Formatted](https://learn.microsoft.com/en-us/windows/win32/msi/formatted) string that contains the name of the group to be found.</xs:documentation>
734 </xs:annotation>
735 </xs:attribute>
736 <xs:attribute name="Domain" type="xs:string">
737 <xs:annotation>
738 <xs:documentation>An optional [Formatted](https://learn.microsoft.com/en-us/windows/win32/msi/formatted) string that specifies the domain for the group.</xs:documentation>
739 </xs:annotation>
740 </xs:attribute>
741 <xs:anyAttribute namespace="##other" processContents="lax">
742 <xs:annotation>
743 <xs:documentation>
744 Extensibility point in the WiX XML Schema. Schema extensions can register additional
745 attributes at this point in the schema.
746 </xs:documentation>
747 </xs:annotation>
748 </xs:anyAttribute>
749 </xs:complexType>
750 </xs:element>
751
752 <xs:element name="GroupRef">
753 <xs:annotation>
754 <xs:documentation>Used to join a user to a group</xs:documentation>
755 </xs:annotation>
756 <xs:complexType>
757 <xs:choice minOccurs="0" maxOccurs="unbounded">
758 <xs:any namespace="##other" processContents="lax">
759 <xs:annotation>
760 <xs:documentation>
761 Extensibility point in the WiX XML Schema. Schema extensions can register additional
762 elements at this point in the schema.
763 </xs:documentation>
764 </xs:annotation>
765 </xs:any>
766 </xs:choice>
767 <xs:attribute name="Id" type="xs:string" use="required" />
768 <xs:anyAttribute namespace="##other" processContents="lax">
769 <xs:annotation>
770 <xs:documentation>
771 Extensibility point in the WiX XML Schema. Schema extensions can register additional
772 attributes at this point in the schema.
773 </xs:documentation>
774 </xs:annotation>
775 </xs:anyAttribute>
776 </xs:complexType>
777 </xs:element>
778
779 <xs:element name="InternetShortcut">
780 <xs:annotation>
781 <xs:appinfo>
782 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
783 <xse:howtoRef href="files_and_registry/create_internet_shortcut.html">How To: Create a shortcut to a webpage</xse:howtoRef>
784 </xs:appinfo>
785 <xs:documentation>Creates a shortcut to a URL.</xs:documentation>
786 </xs:annotation>
787 <xs:complexType>
788 <xs:choice minOccurs="0" maxOccurs="unbounded">
789 <xs:any namespace="##other" processContents="lax">
790 <xs:annotation>
791 <xs:documentation>
792 Extensibility point in the WiX XML Schema. Schema extensions can register additional
793 elements at this point in the schema.
794 </xs:documentation>
795 </xs:annotation>
796 </xs:any>
797 </xs:choice>
798 <xs:attribute name="Id" type="xs:string">
799 <xs:annotation>
800 <xs:documentation>Unique identifier in your installation package for this Internet shortcut.</xs:documentation>
801 </xs:annotation>
802 </xs:attribute>
803 <xs:attribute name="Directory" type="xs:string">
804 <xs:annotation>
805 <xs:documentation>Identifier reference to Directory element where shortcut is to be created. This attribute's value defaults to the parent Component directory.</xs:documentation>
806 </xs:annotation>
807 </xs:attribute>
808 <xs:attribute name="Name" type="xs:string" use="required">
809 <xs:annotation>
810 <xs:documentation>
811 The name of the shortcut file, which is visible to the user. (The .lnk
812 extension is added automatically and by default, is not shown to the user.)
813 </xs:documentation>
814 </xs:annotation>
815 </xs:attribute>
816 <xs:attribute name="Target" type="xs:string" use="required">
817 <xs:annotation>
818 <xs:documentation>
819 URL that should be opened when the user selects the shortcut. Windows
820 opens the URL in the appropriate handler for the protocol specified
821 in the URL. Note that this is a formatted field, so you can use
822 [#fileId] syntax to refer to a file being installed (using the file:
823 protocol).
824 </xs:documentation>
825 </xs:annotation>
826 </xs:attribute>
827 <xs:attribute name="Type">
828 <xs:annotation>
829 <xs:documentation>Which type of shortcut should be created.</xs:documentation>
830 </xs:annotation>
831 <xs:simpleType>
832 <xs:restriction base="xs:NMTOKEN">
833 <xs:enumeration value="url">
834 <xs:annotation>
835 <xs:documentation>Creates .url files using IUniformResourceLocatorW.</xs:documentation>
836 </xs:annotation>
837 </xs:enumeration>
838 <xs:enumeration value="link">
839 <xs:annotation>
840 <xs:documentation>Creates .lnk files using IShellLinkW (default).</xs:documentation>
841 </xs:annotation>
842 </xs:enumeration>
843 </xs:restriction>
844 </xs:simpleType>
845 </xs:attribute>
846 <xs:attribute name="IconFile" type="xs:string">
847 <xs:annotation>
848 <xs:documentation>
849 Icon file that should be displayed. Note that this is a formatted field, so you can use
850 [#fileId] syntax to refer to a file being installed (using the file:
851 protocol).
852 </xs:documentation>
853 </xs:annotation>
854 </xs:attribute>
855 <xs:attribute name="IconIndex" type="wxs:Integer">
856 <xs:annotation>
857 <xs:documentation>
858 Index of the icon being referenced.
859 </xs:documentation>
860 </xs:annotation>
861 </xs:attribute>
862 <xs:anyAttribute namespace="##other" processContents="lax">
863 <xs:annotation>
864 <xs:documentation>
865 Extensibility point in the WiX XML Schema. Schema extensions can register additional
866 attributes at this point in the schema.
867 </xs:documentation>
868 </xs:annotation>
869 </xs:anyAttribute>
870 </xs:complexType>
871 </xs:element>
872
873 <xs:element name="PerformanceCategory">
874 <xs:annotation>
875 <xs:appinfo>
876 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
877 </xs:appinfo>
878 <xs:documentation>Used to create performance categories and configure performance counters.</xs:documentation>
879 </xs:annotation>
880 <xs:complexType>
881 <xs:choice minOccurs="0" maxOccurs="unbounded">
882 <xs:element ref="PerformanceCounter" />
883 <xs:any namespace="##other" processContents="lax">
884 <xs:annotation>
885 <xs:documentation>
886 Extensibility point in the WiX XML Schema. Schema extensions can register additional
887 elements at this point in the schema.
888 </xs:documentation>
889 </xs:annotation>
890 </xs:any>
891 </xs:choice>
892 <xs:attribute name="Id" type="xs:string">
893 <xs:annotation>
894 <xs:documentation>Unique identifier in your installation package for this performance counter category.</xs:documentation>
895 </xs:annotation>
896 </xs:attribute>
897 <xs:attribute name="Name" type="xs:string">
898 <xs:annotation>
899 <xs:documentation>Name for the performance counter category. If this attribute is not provided the Id attribute is used as the name of the performance counter category.</xs:documentation>
900 </xs:annotation>
901 </xs:attribute>
902 <xs:attribute name="Help" type="xs:string">
903 <xs:annotation>
904 <xs:documentation>Optional help text for the performance counter category.</xs:documentation>
905 </xs:annotation>
906 </xs:attribute>
907 <xs:attribute name="MultiInstance" type="wxs:YesNoTypeUnion">
908 <xs:annotation>
909 <xs:documentation>Flag that specifies whether the performance counter category is multi or single instanced. Default is single instance.</xs:documentation>
910 </xs:annotation>
911 </xs:attribute>
912 <xs:attribute name="Library" type="xs:string">
913 <xs:annotation>
914 <xs:documentation>DLL that contains the performance counter. The default is "netfxperf.dll" which should be used for all managed code performance counters.</xs:documentation>
915 </xs:annotation>
916 </xs:attribute>
917 <xs:attribute name="Open" type="xs:string">
918 <xs:annotation>
919 <xs:documentation>Function entry point in to the Library DLL called when opening the performance counter. The default is "OpenPerformanceData" which should be used for all managed code performance counters.</xs:documentation>
920 </xs:annotation>
921 </xs:attribute>
922 <xs:attribute name="Close" type="xs:string">
923 <xs:annotation>
924 <xs:documentation>Function entry point in to the Library DLL called when closing the performance counter. The default is "ClosePerformanceData" which should be used for all managed code performance counters.</xs:documentation>
925 </xs:annotation>
926 </xs:attribute>
927 <xs:attribute name="Collect" type="xs:string">
928 <xs:annotation>
929 <xs:documentation>Function entry point in to the Library DLL called when collecting data from the performance counter. The default is "CollectPerformanceData" which should be used for all managed code performance counters.</xs:documentation>
930 </xs:annotation>
931 </xs:attribute>
932 <xs:attribute name="DefaultLanguage" type="PerformanceCounterLanguageType">
933 <xs:annotation>
934 <xs:documentation>Default language for the performance category and contained counters' names and help text.</xs:documentation>
935 </xs:annotation>
936 </xs:attribute>
937 <xs:anyAttribute namespace="##other" processContents="lax">
938 <xs:annotation>
939 <xs:documentation>
940 Extensibility point in the WiX XML Schema. Schema extensions can register additional
941 attributes at this point in the schema.
942 </xs:documentation>
943 </xs:annotation>
944 </xs:anyAttribute>
945 </xs:complexType>
946 </xs:element>
947
948 <xs:element name="PerformanceCounter">
949 <xs:annotation>
950 <xs:documentation>Creates a performance counter in a performance category.</xs:documentation>
951 </xs:annotation>
952 <xs:complexType>
953 <xs:choice minOccurs="0" maxOccurs="unbounded">
954 <xs:any namespace="##other" processContents="lax">
955 <xs:annotation>
956 <xs:documentation>
957 Extensibility point in the WiX XML Schema. Schema extensions can register additional
958 elements at this point in the schema.
959 </xs:documentation>
960 </xs:annotation>
961 </xs:any>
962 </xs:choice>
963 <xs:attribute name="Name" type="xs:string">
964 <xs:annotation>
965 <xs:documentation>Name for the performance counter.</xs:documentation>
966 </xs:annotation>
967 </xs:attribute>
968 <xs:attribute name="Help" type="xs:string">
969 <xs:annotation>
970 <xs:documentation>Optional help text for the performance counter.</xs:documentation>
971 </xs:annotation>
972 </xs:attribute>
973 <xs:attribute name="Type" type="PerformanceCounterTypesType">
974 <xs:annotation>
975 <xs:documentation>Type of the performance counter.</xs:documentation>
976 </xs:annotation>
977 </xs:attribute>
978 <xs:attribute name="Language" type="PerformanceCounterLanguageType">
979 <xs:annotation>
980 <xs:documentation>Language for the peformance counter name and help. The default is to use the parent PerformanceCategory element's DefaultLanguage attribute.</xs:documentation>
981 </xs:annotation>
982 </xs:attribute>
983 <xs:anyAttribute namespace="##other" processContents="lax">
984 <xs:annotation>
985 <xs:documentation>
986 Extensibility point in the WiX XML Schema. Schema extensions can register additional
987 attributes at this point in the schema.
988 </xs:documentation>
989 </xs:annotation>
990 </xs:anyAttribute>
991 </xs:complexType>
992 </xs:element>
993
994 <xs:element name="PerfCounter">
995 <xs:annotation>
996 <xs:appinfo>
997 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="File" />
998 <xse:deprecated ref="PerformanceCounter" />
999 </xs:appinfo>
1000 <xs:documentation>Used to install Perfmon counters.</xs:documentation>
1001 </xs:annotation>
1002 <xs:complexType>
1003 <xs:choice minOccurs="0" maxOccurs="unbounded">
1004 <xs:any namespace="##other" processContents="lax">
1005 <xs:annotation>
1006 <xs:documentation>
1007 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1008 elements at this point in the schema.
1009 </xs:documentation>
1010 </xs:annotation>
1011 </xs:any>
1012 </xs:choice>
1013 <xs:attribute name="Name" type="xs:string" />
1014 <xs:anyAttribute namespace="##other" processContents="lax">
1015 <xs:annotation>
1016 <xs:documentation>
1017 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1018 attributes at this point in the schema.
1019 </xs:documentation>
1020 </xs:annotation>
1021 </xs:anyAttribute>
1022 </xs:complexType>
1023 </xs:element>
1024
1025 <xs:element name="PerfCounterManifest">
1026 <xs:annotation>
1027 <xs:appinfo>
1028 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="File" />
1029 </xs:appinfo>
1030 <xs:documentation>
1031 Used to install Perfmon Counter Manifests.
1032 Note that this functionality cannot be used with major upgrades that are scheduled after the InstallExecute,
1033 InstallExecuteAgain, or InstallFinalize actions. For more information on major upgrade scheduling, see
1034 [RemoveExistingProducts Action](https://learn.microsoft.com/en-us/windows/win32/msi/removeexistingproducts-action).
1035 </xs:documentation>
1036 </xs:annotation>
1037 <xs:complexType>
1038 <xs:choice minOccurs="0" maxOccurs="unbounded">
1039 <xs:any namespace="##other" processContents="lax">
1040 <xs:annotation>
1041 <xs:documentation>
1042 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1043 elements at this point in the schema.
1044 </xs:documentation>
1045 </xs:annotation>
1046 </xs:any>
1047 </xs:choice>
1048 <xs:attribute name="ResourceFileDirectory" type="xs:string">
1049 <xs:annotation>
1050 <xs:documentation>The directory that holds the resource file of the providers in the perfmon counter manifest. Often the resource file path cannot be determined until setup time. Put the directory here and during perfmon manifest registrtion the path will be updated in the registry. If not specified, Perfmon will look for the resource file in the same directory of the perfmon counter manifest file.</xs:documentation>
1051 </xs:annotation>
1052 </xs:attribute>
1053 <xs:anyAttribute namespace="##other" processContents="lax">
1054 <xs:annotation>
1055 <xs:documentation>
1056 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1057 attributes at this point in the schema.
1058 </xs:documentation>
1059 </xs:annotation>
1060 </xs:anyAttribute>
1061 </xs:complexType>
1062 </xs:element>
1063
1064 <xs:element name="EventManifest">
1065 <xs:annotation>
1066 <xs:appinfo>
1067 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="File" />
1068 </xs:appinfo>
1069 <xs:documentation>Used to install Event Manifests.</xs:documentation>
1070 </xs:annotation>
1071 <xs:complexType>
1072 <xs:choice minOccurs="0" maxOccurs="unbounded">
1073 <xs:any namespace="##other" processContents="lax">
1074 <xs:annotation>
1075 <xs:documentation>
1076 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1077 elements at this point in the schema.
1078 </xs:documentation>
1079 </xs:annotation>
1080 </xs:any>
1081 </xs:choice>
1082 <xs:attribute name="MessageFile" type="xs:string">
1083 <xs:annotation>
1084 <xs:documentation>The message file (including path) of all the providers in the event manifest. Often the message file path cannot be determined until setup time. Put your MessageFile here and the messageFileName attribute of the all the providers in the manifest will be updated with the path before it is registered. </xs:documentation>
1085 </xs:annotation>
1086 </xs:attribute>
1087 <xs:attribute name="ParameterFile" type="xs:string">
1088 <xs:annotation>
1089 <xs:documentation>The parameter file (including path) of all the providers in the event manifest. Often the parameter file path cannot be determined until setup time. Put your ParameterFile here and the parameterFileName attribute of the all the providers in the manifest will be updated with the path before it is registered. </xs:documentation>
1090 </xs:annotation>
1091 </xs:attribute>
1092 <xs:attribute name="ResourceFile" type="xs:string">
1093 <xs:annotation>
1094 <xs:documentation>The resource file (including path) of all the providers in the event manifest. Often the resource file path cannot be determined until setup time. Put your ResourceFile here and the resourceFileName attribute of the all the providers in the manifest will be updated with the path before it is registered. </xs:documentation>
1095 </xs:annotation>
1096 </xs:attribute>
1097 <xs:anyAttribute namespace="##other" processContents="lax">
1098 <xs:annotation>
1099 <xs:documentation>
1100 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1101 attributes at this point in the schema.
1102 </xs:documentation>
1103 </xs:annotation>
1104 </xs:anyAttribute>
1105 </xs:complexType>
1106 </xs:element>
1107
1108 <xs:element name="PermissionEx">
1109 <xs:annotation>
1110 <xs:documentation>
1111 Sets ACLs on File, Registry, CreateFolder, or ServiceInstall. When under a Registry element, this cannot be used
1112 if the Action attribute's value is remove or removeKeyOnInstall. This element has no Id attribute.
1113 The table and key are taken from the parent element.
1114 </xs:documentation>
1115 <xs:appinfo>
1116 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="CreateFolder" />
1117 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="File" />
1118 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="RegistryKey" />
1119 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="RegistryValue" />
1120 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="ServiceInstall" />
1121 </xs:appinfo>
1122 </xs:annotation>
1123 <xs:complexType>
1124 <xs:choice minOccurs="0" maxOccurs="unbounded">
1125 <xs:any namespace="##other" processContents="lax">
1126 <xs:annotation>
1127 <xs:documentation>
1128 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1129 elements at this point in the schema.
1130 </xs:documentation>
1131 </xs:annotation>
1132 </xs:any>
1133 </xs:choice>
1134 <xs:attribute name="User" type="xs:string" use="required"></xs:attribute>
1135 <xs:attribute name="Domain" type="xs:string"></xs:attribute>
1136 <xs:attribute name="Inheritable" type="wxs:YesNoTypeUnion">
1137 <xs:annotation>
1138 <xs:documentation>Whether the permissions are inheritable. The default is "yes".</xs:documentation>
1139 </xs:annotation>
1140 </xs:attribute>
1141 <!-- Common ACLs -->
1142 <xs:attribute name="Read" type="wxs:YesNoTypeUnion"></xs:attribute>
1143 <xs:attribute name="Delete" type="wxs:YesNoTypeUnion"></xs:attribute>
1144 <xs:attribute name="ReadPermission" type="wxs:YesNoTypeUnion"></xs:attribute>
1145 <xs:attribute name="ChangePermission" type="wxs:YesNoTypeUnion"></xs:attribute>
1146 <xs:attribute name="TakeOwnership" type="wxs:YesNoTypeUnion"></xs:attribute>
1147 <!-- Folder and File ACLs -->
1148 <xs:attribute name="ReadAttributes" type="wxs:YesNoTypeUnion"></xs:attribute>
1149 <xs:attribute name="WriteAttributes" type="wxs:YesNoTypeUnion"></xs:attribute>
1150 <xs:attribute name="ReadExtendedAttributes" type="wxs:YesNoTypeUnion"></xs:attribute>
1151 <xs:attribute name="WriteExtendedAttributes" type="wxs:YesNoTypeUnion"></xs:attribute>
1152 <xs:attribute name="Synchronize" type="wxs:YesNoTypeUnion"></xs:attribute>
1153 <!-- Folder only ACLs -->
1154 <xs:attribute name="CreateFile" type="wxs:YesNoTypeUnion">
1155 <xs:annotation>
1156 <xs:documentation>For a directory, the right to create a file in the directory. Only valid under a 'CreateFolder' parent.</xs:documentation>
1157 </xs:annotation>
1158 </xs:attribute>
1159 <xs:attribute name="CreateChild" type="wxs:YesNoTypeUnion">
1160 <xs:annotation>
1161 <xs:documentation>For a directory, the right to create a subdirectory. Only valid under a 'CreateFolder' parent.</xs:documentation>
1162 </xs:annotation>
1163 </xs:attribute>
1164 <xs:attribute name="DeleteChild" type="wxs:YesNoTypeUnion">
1165 <xs:annotation>
1166 <xs:documentation>For a directory, the right to delete a directory and all the files it contains, including read-only files. Only valid under a 'CreateFolder' parent.</xs:documentation>
1167 </xs:annotation>
1168 </xs:attribute>
1169 <xs:attribute name="Traverse" type="wxs:YesNoTypeUnion">
1170 <xs:annotation>
1171 <xs:documentation>For a directory, the right to traverse the directory. By default, users are assigned the BYPASS_TRAVERSE_CHECKING privilege, which ignores the FILE_TRAVERSE access right. Only valid under a 'CreateFolder' parent.</xs:documentation>
1172 </xs:annotation>
1173 </xs:attribute>
1174 <!-- File only ACLs -->
1175 <xs:attribute name="Append" type="wxs:YesNoTypeUnion"></xs:attribute>
1176 <xs:attribute name="Execute" type="wxs:YesNoTypeUnion"></xs:attribute>
1177 <!-- File and Registry ACLs -->
1178 <xs:attribute name="Write" type="wxs:YesNoTypeUnion"></xs:attribute>
1179 <!-- Registry only ACLs -->
1180 <xs:attribute name="CreateSubkeys" type="wxs:YesNoTypeUnion"></xs:attribute>
1181 <xs:attribute name="EnumerateSubkeys" type="wxs:YesNoTypeUnion"></xs:attribute>
1182 <xs:attribute name="Notify" type="wxs:YesNoTypeUnion"></xs:attribute>
1183 <xs:attribute name="CreateLink" type="wxs:YesNoTypeUnion"></xs:attribute>
1184 <!-- Generic ACLs, mapped by system to appropriate permissions -->
1185 <xs:attribute name="GenericAll" type="wxs:YesNoTypeUnion"></xs:attribute>
1186 <xs:attribute name="GenericExecute" type="wxs:YesNoTypeUnion"></xs:attribute>
1187 <xs:attribute name="GenericWrite" type="wxs:YesNoTypeUnion"></xs:attribute>
1188 <xs:attribute name="GenericRead" type="wxs:YesNoTypeUnion">
1189 <xs:annotation>
1190 <xs:documentation>specifying this will fail to grant read access</xs:documentation>
1191 </xs:annotation>
1192 </xs:attribute>
1193 <!-- Service only ACLs -->
1194 <xs:attribute name="ServiceQueryConfig" type="wxs:YesNoTypeUnion">
1195 <xs:annotation>
1196 <xs:documentation>Required to call the QueryServiceConfig and QueryServiceConfig2 functions to query the service configuration. Only valid under a 'ServiceInstall' parent.</xs:documentation>
1197 </xs:annotation>
1198 </xs:attribute>
1199 <xs:attribute name="ServiceChangeConfig" type="wxs:YesNoTypeUnion">
1200 <xs:annotation>
1201 <xs:documentation>Required to call the ChangeServiceConfig or ChangeServiceConfig2 function to change the service configuration. Only valid under a 'ServiceInstall' parent.</xs:documentation>
1202 </xs:annotation>
1203 </xs:attribute>
1204 <xs:attribute name="ServiceQueryStatus" type="wxs:YesNoTypeUnion">
1205 <xs:annotation>
1206 <xs:documentation>Required to call the QueryServiceStatus function to ask the service control manager about the status of the service. Only valid under a 'ServiceInstall' parent.</xs:documentation>
1207 </xs:annotation>
1208 </xs:attribute>
1209 <xs:attribute name="ServiceEnumerateDependents" type="wxs:YesNoTypeUnion">
1210 <xs:annotation>
1211 <xs:documentation>Required to call the EnumDependentServices function to enumerate all the services dependent on the service. Only valid under a 'ServiceInstall' parent.</xs:documentation>
1212 </xs:annotation>
1213 </xs:attribute>
1214 <xs:attribute name="ServiceStart" type="wxs:YesNoTypeUnion">
1215 <xs:annotation>
1216 <xs:documentation>Required to call the StartService function to start the service. Only valid under a 'ServiceInstall' parent.</xs:documentation>
1217 </xs:annotation>
1218 </xs:attribute>
1219 <xs:attribute name="ServiceStop" type="wxs:YesNoTypeUnion">
1220 <xs:annotation>
1221 <xs:documentation>Required to call the ControlService function to stop the service. Only valid under a 'ServiceInstall' parent.</xs:documentation>
1222 </xs:annotation>
1223 </xs:attribute>
1224 <xs:attribute name="ServicePauseContinue" type="wxs:YesNoTypeUnion">
1225 <xs:annotation>
1226 <xs:documentation>Required to call the ControlService function to pause or continue the service. Only valid under a 'ServiceInstall' parent.</xs:documentation>
1227 </xs:annotation>
1228 </xs:attribute>
1229 <xs:attribute name="ServiceInterrogate" type="wxs:YesNoTypeUnion">
1230 <xs:annotation>
1231 <xs:documentation>Required to call the ControlService function to ask the service to report its status immediately. Only valid under a 'ServiceInstall' parent.</xs:documentation>
1232 </xs:annotation>
1233 </xs:attribute>
1234 <xs:attribute name="ServiceUserDefinedControl" type="wxs:YesNoTypeUnion">
1235 <xs:annotation>
1236 <xs:documentation>Required to call the ControlService function to specify a user-defined control code. Only valid under a 'ServiceInstall' parent.</xs:documentation>
1237 </xs:annotation>
1238 </xs:attribute>
1239 <xs:anyAttribute namespace="##other" processContents="lax">
1240 <xs:annotation>
1241 <xs:documentation>
1242 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1243 attributes at this point in the schema.
1244 </xs:documentation>
1245 </xs:annotation>
1246 </xs:anyAttribute>
1247 </xs:complexType>
1248 </xs:element>
1249
1250 <xs:element name="ProductSearch">
1251 <xs:annotation>
1252 <xs:documentation>Describes a product search.</xs:documentation>
1253 <xs:appinfo>
1254 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
1255 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1256 </xs:appinfo>
1257 </xs:annotation>
1258 <xs:complexType>
1259 <xs:choice minOccurs="0" maxOccurs="unbounded">
1260 <xs:any namespace="##other" processContents="lax">
1261 <xs:annotation>
1262 <xs:documentation>
1263 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1264 elements at this point in the schema.
1265 </xs:documentation>
1266 </xs:annotation>
1267 </xs:any>
1268 </xs:choice>
1269 <xs:attributeGroup ref="SearchCommonAttributes" />
1270 <xs:attribute name="Guid" type="xs:string">
1271 <xs:annotation>
1272 <xs:documentation>The Guid attribute has been deprecated; use the ProductCode or UpgradeCode attribute instead. If this attribute is used, it is assumed to be a ProductCode.</xs:documentation>
1273 </xs:annotation>
1274 </xs:attribute>
1275 <xs:attribute name="ProductCode" type="xs:string">
1276 <xs:annotation>
1277 <xs:documentation>The ProductCode to use for the search. This attribute must be omitted if UpgradeCode is specified.</xs:documentation>
1278 </xs:annotation>
1279 </xs:attribute>
1280 <xs:attribute name="UpgradeCode" type="xs:string">
1281 <xs:annotation>
1282 <xs:documentation>The UpgradeCode to use for the search. This attribute must be omitted if ProductCode is specified. Note that if multiple products are found, the highest versioned product will be used for the result.</xs:documentation>
1283 </xs:annotation>
1284 </xs:attribute>
1285 <xs:attribute name="Result">
1286 <xs:annotation>
1287 <xs:documentation>
1288 Rather than saving the product version into the variable, a ProductSearch can save another attribute of the matching product instead.
1289 </xs:documentation>
1290 </xs:annotation>
1291 <xs:simpleType>
1292 <xs:restriction base="xs:NMTOKEN">
1293 <xs:enumeration value="assignment">
1294 <xs:annotation>
1295 <xs:documentation>Saves the assignment type of the product: per-user (0), or per-machine (1).</xs:documentation>
1296 </xs:annotation>
1297 </xs:enumeration>
1298 <xs:enumeration value="language">
1299 <xs:annotation>
1300 <xs:documentation>Saves the language of a matching product if found; empty otherwise.</xs:documentation>
1301 </xs:annotation>
1302 </xs:enumeration>
1303 <xs:enumeration value="state">
1304 <xs:annotation>
1305 <xs:documentation>Saves the state of the product: advertised (1), absent (2), or locally installed (5).</xs:documentation>
1306 </xs:annotation>
1307 </xs:enumeration>
1308 <xs:enumeration value="version">
1309 <xs:annotation>
1310 <xs:documentation>Saves the version of a matching product if found; 0.0.0.0 otherwise. This is the default.</xs:documentation>
1311 </xs:annotation>
1312 </xs:enumeration>
1313 </xs:restriction>
1314 </xs:simpleType>
1315 </xs:attribute>
1316 <xs:anyAttribute namespace="##other" processContents="lax">
1317 <xs:annotation>
1318 <xs:documentation>
1319 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1320 attributes at this point in the schema.
1321 </xs:documentation>
1322 </xs:annotation>
1323 </xs:anyAttribute>
1324 </xs:complexType>
1325 </xs:element>
1326
1327 <xs:element name="ProductSearchRef">
1328 <xs:annotation>
1329 <xs:documentation>References a ProductSearch.</xs:documentation>
1330 <xs:appinfo>
1331 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
1332 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1333 </xs:appinfo>
1334 </xs:annotation>
1335 <xs:complexType>
1336 <xs:choice minOccurs="0" maxOccurs="unbounded">
1337 <xs:any namespace="##other" processContents="lax">
1338 <xs:annotation>
1339 <xs:documentation>
1340 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1341 elements at this point in the schema.
1342 </xs:documentation>
1343 </xs:annotation>
1344 </xs:any>
1345 </xs:choice>
1346 <xs:attribute name="Id" type="xs:string" use="required" />
1347 <xs:anyAttribute namespace="##other" processContents="lax">
1348 <xs:annotation>
1349 <xs:documentation>
1350 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1351 attributes at this point in the schema.
1352 </xs:documentation>
1353 </xs:annotation>
1354 </xs:anyAttribute>
1355 </xs:complexType>
1356 </xs:element>
1357
1358 <xs:element name="RemoveFolderEx">
1359 <xs:annotation>
1360 <xs:appinfo>
1361 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
1362 <xse:msiRef table="RemoveFile" href="https://learn.microsoft.com/en-us/windows/win32/msi/removefile-table"/>
1363 <xse:remarks>
1364 <html:p>
1365 The custom action that implements RemoveFolderEx does so by writing temporary rows to the RemoveFile table
1366 for each subfolder of the root folder you specify. Because it might dramatically affect Windows Installer's
1367 [File Costing](https://learn.microsoft.com/en-us/windows/win32/msi/file-costing),
1368 the temporary rows must be written before the CostInitialize standard action. Unfortunately, MSI doesn't
1369 create properties for the Directory hierarchy in your package until later, in the CostFinalize action.
1370 </html:p>
1371 <html:p>
1372 An easy workaround for a typical use case of removing a folder during uninstall is to write the directory
1373 path to the registry and to load it during uninstall. See [The WiX toolset's "Remember Property" pattern](http://robmensching.com/blog/posts/2010/5/2/the-wix-toolsets-remember-property-pattern)
1374 for an example.
1375 </html:p>
1376 <html:p>
1377 If you use custom actions to set properties, ensure that they are scheduled before the WixRemoveFoldersEx custom action.
1378 </html:p>
1379 </xse:remarks>
1380 </xs:appinfo>
1381 <xs:documentation>
1382 Remove a folder and all contained files and folders if the parent component is selected for installation or removal.
1383 The folder must be specified in the Property attribute as the name of a property that will have a value that resolves
1384 to the full path of the folder before the CostInitialize action. Note that Directory ids cannot be used.
1385 For more details, see the Remarks.
1386 </xs:documentation>
1387 </xs:annotation>
1388 <xs:complexType>
1389 <xs:choice minOccurs="0" maxOccurs="unbounded">
1390 <xs:any namespace="##other" processContents="lax">
1391 <xs:annotation>
1392 <xs:documentation>
1393 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1394 elements at this point in the schema.
1395 </xs:documentation>
1396 </xs:annotation>
1397 </xs:any>
1398 </xs:choice>
1399 <xs:attribute name="Id" type="xs:string">
1400 <xs:annotation>
1401 <xs:documentation>
1402 Primary key used to identify this particular entry. If this is not specified, a stable identifier
1403 will be generated at compile time based on the other attributes.
1404 </xs:documentation>
1405 </xs:annotation>
1406 </xs:attribute>
1407 <xs:attribute name="Condition" type="xs:string">
1408 <xs:annotation>
1409 <xs:documentation>
1410 Condition that determines if the folders should be removed. Must be blank or evaluate to true
1411 for the folder to be scheduled for removal.
1412 </xs:documentation>
1413 </xs:annotation>
1414 </xs:attribute>
1415 <xs:attribute name="Property" type="xs:string">
1416 <xs:annotation>
1417 <xs:documentation>
1418 The id of a property that resolves to the full path of the source directory. The property does not have
1419 to exist in the installer database at creation time; it could be created at installation time by a custom
1420 action, on the command line, etc. The property value can contain environment variables surrounded by
1421 percent signs such as from a REG_EXPAND_SZ registry value; environment variables will be expanded before
1422 being evaluated for a full path.
1423 </xs:documentation>
1424 </xs:annotation>
1425 </xs:attribute>
1426 <xs:attribute name="On">
1427 <xs:annotation>
1428 <xs:documentation>
1429 This value determines when the folder may be removed.
1430 </xs:documentation>
1431 </xs:annotation>
1432 <xs:simpleType>
1433 <xs:restriction base="xs:NMTOKEN">
1434 <xs:enumeration value="install">
1435 <xs:annotation>
1436 <xs:documentation>
1437 Removes the folder only when the parent component is being installed (msiInstallStateLocal or msiInstallStateSource).
1438 </xs:documentation>
1439 </xs:annotation>
1440 </xs:enumeration>
1441 <xs:enumeration value="uninstall">
1442 <xs:annotation>
1443 <xs:documentation>
1444 Removes the folder only when the parent component is being removed (msiInstallStateAbsent). This is the default if the On attribute is not specified.
1445 </xs:documentation>
1446 </xs:annotation>
1447 </xs:enumeration>
1448 <xs:enumeration value="both">
1449 <xs:annotation>
1450 <xs:documentation>
1451 Removes the folder when the parent component is being installed or removed.
1452 </xs:documentation>
1453 </xs:annotation>
1454 </xs:enumeration>
1455 </xs:restriction>
1456 </xs:simpleType>
1457 </xs:attribute>
1458 <xs:anyAttribute namespace="##other" processContents="lax">
1459 <xs:annotation>
1460 <xs:documentation>
1461 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1462 attributes at this point in the schema.
1463 </xs:documentation>
1464 </xs:annotation>
1465 </xs:anyAttribute>
1466 </xs:complexType>
1467 </xs:element>
1468
1469 <xs:element name="RestartResource">
1470 <xs:annotation>
1471 <xs:documentation>Registers a resource with the Restart Manager.</xs:documentation>
1472 <xs:appinfo>
1473 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
1474 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1475 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
1476 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
1477 </xs:appinfo>
1478 </xs:annotation>
1479 <xs:complexType>
1480 <xs:choice minOccurs="0" maxOccurs="unbounded">
1481 <xs:any namespace="##other" processContents="lax">
1482 <xs:annotation>
1483 <xs:documentation>
1484 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1485 elements at this point in the schema.
1486 </xs:documentation>
1487 </xs:annotation>
1488 </xs:any>
1489 </xs:choice>
1490 <xs:attribute name="Id" type="xs:string">
1491 <xs:annotation>
1492 <xs:documentation>
1493 The unique identifier for this resource. A unique identifier will
1494 be generated automatically if not specified.
1495 </xs:documentation>
1496 </xs:annotation>
1497 </xs:attribute>
1498 <xs:attribute name="Path" type="xs:string">
1499 <xs:annotation>
1500 <xs:documentation>
1501 The full path to the process module to register with the Restart Manager.
1502 This can be a formatted value that resolves to a full path.
1503 </xs:documentation>
1504 </xs:annotation>
1505 </xs:attribute>
1506 <xs:attribute name="ProcessName" type="xs:string">
1507 <xs:annotation>
1508 <xs:documentation>
1509 The name of a process to register with the Restart Manager.
1510 This can be a formatted value that resolves to a process name.
1511 </xs:documentation>
1512 </xs:annotation>
1513 </xs:attribute>
1514 <xs:attribute name="ServiceName" type="xs:string">
1515 <xs:annotation>
1516 <xs:documentation>
1517 The name of a Windows service to register with the Restart Manager.
1518 This can be a formatted value that resolves to a service name.
1519 </xs:documentation>
1520 </xs:annotation>
1521 </xs:attribute>
1522 <xs:anyAttribute namespace="##other" processContents="lax">
1523 <xs:annotation>
1524 <xs:documentation>
1525 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1526 attributes at this point in the schema.
1527 </xs:documentation>
1528 </xs:annotation>
1529 </xs:anyAttribute>
1530 </xs:complexType>
1531 </xs:element>
1532
1533 <xs:element name="RegistrySearch">
1534 <xs:annotation>
1535 <xs:documentation>Describes a registry search.</xs:documentation>
1536 <xs:appinfo>
1537 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
1538 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1539 </xs:appinfo>
1540 </xs:annotation>
1541 <xs:complexType>
1542 <xs:choice minOccurs="0" maxOccurs="unbounded">
1543 <xs:any namespace="##other" processContents="lax">
1544 <xs:annotation>
1545 <xs:documentation>
1546 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1547 elements at this point in the schema.
1548 </xs:documentation>
1549 </xs:annotation>
1550 </xs:any>
1551 </xs:choice>
1552 <xs:attributeGroup ref="SearchCommonAttributes" />
1553 <xs:attribute name="Bitness" type="wxs:BitnessTypeUnion">
1554 <xs:annotation>
1555 <xs:documentation>
1556 Overrides the default registry to search. The value `always64` will force
1557 the search to look in the 64-bit registry even when building for 32-bit.
1558 Simliarly, the value `always32` will force the search to look in the 32-bit
1559 registry even when building for 64-bit.
1560 The default value is `default` where the search will look in the same registry
1561 as the bitness of the package.
1562 </xs:documentation>
1563 </xs:annotation>
1564 </xs:attribute>
1565 <xs:attribute name="Root" use="required">
1566 <xs:annotation>
1567 <xs:documentation>Registry root hive to search under.</xs:documentation>
1568 </xs:annotation>
1569 <xs:simpleType>
1570 <xs:restriction base="xs:NMTOKEN">
1571 <xs:enumeration value="HKLM">
1572 <xs:annotation>
1573 <xs:documentation>HKEY_LOCAL_MACHINE</xs:documentation>
1574 </xs:annotation>
1575 </xs:enumeration>
1576 <xs:enumeration value="HKCU">
1577 <xs:annotation>
1578 <xs:documentation>HKEY_CURRENT_USER</xs:documentation>
1579 </xs:annotation>
1580 </xs:enumeration>
1581 <xs:enumeration value="HKCR">
1582 <xs:annotation>
1583 <xs:documentation>HKEY_CLASSES_ROOT</xs:documentation>
1584 </xs:annotation>
1585 </xs:enumeration>
1586 <xs:enumeration value="HKU">
1587 <xs:annotation>
1588 <xs:documentation>HKEY_USERS</xs:documentation>
1589 </xs:annotation>
1590 </xs:enumeration>
1591 </xs:restriction>
1592 </xs:simpleType>
1593 </xs:attribute>
1594 <xs:attribute name="Key" type="xs:string" use="required">
1595 <xs:annotation>
1596 <xs:documentation>Key to search for.</xs:documentation>
1597 </xs:annotation>
1598 </xs:attribute>
1599 <xs:attribute name="Value" type="xs:string">
1600 <xs:annotation>
1601 <xs:documentation>Optional value to search for under the given Key.</xs:documentation>
1602 </xs:annotation>
1603 </xs:attribute>
1604 <xs:attribute name="ExpandEnvironmentVariables" type="wxs:YesNoTypeUnion">
1605 <xs:annotation>
1606 <xs:documentation>Whether to expand any environment variables in REG_SZ, REG_EXPAND_SZ, or REG_MULTI_SZ values.</xs:documentation>
1607 </xs:annotation>
1608 </xs:attribute>
1609 <xs:attribute name="Result">
1610 <xs:annotation>
1611 <xs:documentation>
1612 Rather than saving the matching registry value into the variable, a RegistrySearch can save an attribute of the matching entry instead.
1613 </xs:documentation>
1614 </xs:annotation>
1615 <xs:simpleType>
1616 <xs:restriction base="xs:NMTOKEN">
1617 <xs:enumeration value="exists">
1618 <xs:annotation>
1619 <xs:documentation>Saves true if a matching registry entry is found; false otherwise.</xs:documentation>
1620 </xs:annotation>
1621 </xs:enumeration>
1622 <xs:enumeration value="value">
1623 <xs:annotation>
1624 <xs:documentation>Saves the value of the registry key in the variable. This is the default.</xs:documentation>
1625 </xs:annotation>
1626 </xs:enumeration>
1627 </xs:restriction>
1628 </xs:simpleType>
1629 </xs:attribute>
1630 <xs:anyAttribute namespace="##other" processContents="lax">
1631 <xs:annotation>
1632 <xs:documentation>
1633 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1634 attributes at this point in the schema.
1635 </xs:documentation>
1636 </xs:annotation>
1637 </xs:anyAttribute>
1638 </xs:complexType>
1639 </xs:element>
1640
1641 <xs:element name="RegistrySearchRef">
1642 <xs:annotation>
1643 <xs:documentation>References a RegistrySearch.</xs:documentation>
1644 <xs:appinfo>
1645 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
1646 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1647 </xs:appinfo>
1648 </xs:annotation>
1649 <xs:complexType>
1650 <xs:choice minOccurs="0" maxOccurs="unbounded">
1651 <xs:any namespace="##other" processContents="lax">
1652 <xs:annotation>
1653 <xs:documentation>
1654 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1655 elements at this point in the schema.
1656 </xs:documentation>
1657 </xs:annotation>
1658 </xs:any>
1659 </xs:choice>
1660 <xs:attribute name="Id" type="xs:string" use="required" />
1661 <xs:anyAttribute namespace="##other" processContents="lax">
1662 <xs:annotation>
1663 <xs:documentation>
1664 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1665 attributes at this point in the schema.
1666 </xs:documentation>
1667 </xs:annotation>
1668 </xs:anyAttribute>
1669 </xs:complexType>
1670 </xs:element>
1671
1672 <xs:element name="ServiceConfig">
1673 <xs:annotation>
1674 <xs:documentation>Service configuration information for failure actions.</xs:documentation>
1675 <xs:appinfo>
1676 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
1677 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="ServiceInstall" />
1678 <xse:remarks>
1679 Nesting a ServiceConfig element under a ServiceInstall element will result in the service being installed to be configured.
1680 Nesting a ServiceConfig element under a component element will result in an already installed service to be configured. If the service does not exist prior to the install of the MSI package, the install will fail.
1681 </xse:remarks>
1682 </xs:appinfo>
1683 </xs:annotation>
1684 <xs:complexType>
1685 <xs:choice minOccurs="0" maxOccurs="unbounded">
1686 <xs:any namespace="##other" processContents="lax">
1687 <xs:annotation>
1688 <xs:documentation>
1689 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1690 elements at this point in the schema.
1691 </xs:documentation>
1692 </xs:annotation>
1693 </xs:any>
1694 </xs:choice>
1695 <xs:attribute name="ServiceName" type="xs:string">
1696 <xs:annotation>
1697 <xs:documentation>Required if not under a ServiceInstall element.</xs:documentation>
1698 </xs:annotation>
1699 </xs:attribute>
1700 <xs:attribute name="FirstFailureActionType" use="required">
1701 <xs:annotation>
1702 <xs:documentation>Action to take on the first failure of the service.</xs:documentation>
1703 </xs:annotation>
1704 <xs:simpleType>
1705 <xs:restriction base="xs:NMTOKEN">
1706 <xs:enumeration value="none" />
1707 <xs:enumeration value="reboot" />
1708 <xs:enumeration value="restart" />
1709 <xs:enumeration value="runCommand" />
1710 </xs:restriction>
1711 </xs:simpleType>
1712 </xs:attribute>
1713 <xs:attribute name="SecondFailureActionType" use="required">
1714 <xs:annotation>
1715 <xs:documentation>Action to take on the second failure of the service.</xs:documentation>
1716 </xs:annotation>
1717 <xs:simpleType>
1718 <xs:restriction base="xs:NMTOKEN">
1719 <xs:enumeration value="none" />
1720 <xs:enumeration value="reboot" />
1721 <xs:enumeration value="restart" />
1722 <xs:enumeration value="runCommand" />
1723 </xs:restriction>
1724 </xs:simpleType>
1725 </xs:attribute>
1726 <xs:attribute name="ThirdFailureActionType" use="required">
1727 <xs:annotation>
1728 <xs:documentation>Action to take on the third failure of the service.</xs:documentation>
1729 </xs:annotation>
1730 <xs:simpleType>
1731 <xs:restriction base="xs:NMTOKEN">
1732 <xs:enumeration value="none" />
1733 <xs:enumeration value="reboot" />
1734 <xs:enumeration value="restart" />
1735 <xs:enumeration value="runCommand" />
1736 </xs:restriction>
1737 </xs:simpleType>
1738 </xs:attribute>
1739 <xs:attribute name="ResetPeriodInDays" type="wxs:Integer">
1740 <xs:annotation>
1741 <xs:documentation>Number of days after which to reset the failure count to zero if there are no failures.</xs:documentation>
1742 </xs:annotation>
1743 </xs:attribute>
1744 <xs:attribute name="RestartServiceDelayInSeconds" type="wxs:Integer">
1745 <xs:annotation>
1746 <xs:documentation>If any of the three *ActionType attributes is "restart", this specifies the number of seconds to wait before doing so.</xs:documentation>
1747 </xs:annotation>
1748 </xs:attribute>
1749 <xs:attribute name="ProgramCommandLine" type="xs:string">
1750 <xs:annotation>
1751 <xs:documentation>If any of the three *ActionType attributes is "runCommand", this specifies the command to run when doing so. This value is formatted.</xs:documentation>
1752 </xs:annotation>
1753 </xs:attribute>
1754 <xs:attribute name="RebootMessage" type="xs:string">
1755 <xs:annotation>
1756 <xs:documentation>If any of the three *ActionType attributes is "reboot", this specifies the message to broadcast to server users before doing so.</xs:documentation>
1757 </xs:annotation>
1758 </xs:attribute>
1759 <xs:anyAttribute namespace="##other" processContents="lax">
1760 <xs:annotation>
1761 <xs:documentation>
1762 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1763 attributes at this point in the schema.
1764 </xs:documentation>
1765 </xs:annotation>
1766 </xs:anyAttribute>
1767 </xs:complexType>
1768 </xs:element>
1769
1770 <xs:element name="TouchFile">
1771 <xs:annotation>
1772 <xs:documentation>Updates the last modified date/time of a file.</xs:documentation>
1773 <xs:appinfo>
1774 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
1775 </xs:appinfo>
1776 </xs:annotation>
1777 <xs:complexType>
1778 <xs:choice minOccurs="0" maxOccurs="unbounded">
1779 <xs:any namespace="##other" processContents="lax">
1780 <xs:annotation>
1781 <xs:documentation>
1782 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1783 elements at this point in the schema.
1784 </xs:documentation>
1785 </xs:annotation>
1786 </xs:any>
1787 </xs:choice>
1788 <xs:attribute name="Id" type="xs:string">
1789 <xs:annotation>
1790 <xs:documentation>Identifier for the touch file operation. If the identifier is not specified it will be generated.</xs:documentation>
1791 </xs:annotation>
1792 </xs:attribute>
1793 <xs:attribute name="Path" use="required" type="xs:string">
1794 <xs:annotation>
1795 <xs:documentation>Path of the file to update. This value is formatted.</xs:documentation>
1796 </xs:annotation>
1797 </xs:attribute>
1798 <xs:attribute name="OnInstall" type="wxs:YesNoTypeUnion">
1799 <xs:annotation>
1800 <xs:documentation>Specifies whether or not the modified time of the file should be updated on install. If the OnInstall, OnReinstall and OnUninstall attributes are all absent the default is 'yes'.</xs:documentation>
1801 </xs:annotation>
1802 </xs:attribute>
1803 <xs:attribute name="OnReinstall" type="wxs:YesNoTypeUnion">
1804 <xs:annotation>
1805 <xs:documentation>Specifies whether or not the modified time of the file should be updated on reinstall. If the OnInstall, OnReinstall and OnUninstall attributes are all absent the default is 'yes'.</xs:documentation>
1806 </xs:annotation>
1807 </xs:attribute>
1808 <xs:attribute name="OnUninstall" type="wxs:YesNoTypeUnion">
1809 <xs:annotation>
1810 <xs:documentation>Specifies whether or not the modified time of the file should be updated on uninstall. If the OnInstall, OnReinstall and OnUninstall attributes are all absent the default is 'no'.</xs:documentation>
1811 </xs:annotation>
1812 </xs:attribute>
1813 <xs:attribute name="Nonvital" type="wxs:YesNoTypeUnion">
1814 <xs:annotation>
1815 <xs:documentation>Indicates the installation will succeed even if the modified time of the file cannot be updated. The default is 'no'.</xs:documentation>
1816 </xs:annotation>
1817 </xs:attribute>
1818 <xs:anyAttribute namespace="##other" processContents="lax">
1819 <xs:annotation>
1820 <xs:documentation>
1821 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1822 attributes at this point in the schema.
1823 </xs:documentation>
1824 </xs:annotation>
1825 </xs:anyAttribute>
1826 </xs:complexType>
1827 </xs:element>
1828
1829 <xs:element name="User">
1830 <xs:annotation>
1831 <xs:documentation>User for all kinds of things. When it is not nested under a component it is included in the MSI so it can be referenced by other elements such as the User attribute in the AppPool element. When it is nested under a Component element, the User will be created on install and can also be used for reference.</xs:documentation>
1832 <xs:appinfo>
1833 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
1834 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1835 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
1836 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
1837 <xse:seeAlso ref="Group" />
1838 <xse:seeAlso ref="GroupRef" />
1839 </xs:appinfo>
1840 </xs:annotation>
1841 <xs:complexType>
1842 <xs:choice minOccurs="0" maxOccurs="unbounded">
1843 <xs:element ref="GroupRef" minOccurs="0" maxOccurs="unbounded" />
1844 <xs:any namespace="##other" processContents="lax">
1845 <xs:annotation>
1846 <xs:documentation>
1847 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1848 elements at this point in the schema.
1849 </xs:documentation>
1850 </xs:annotation>
1851 </xs:any>
1852 </xs:choice>
1853 <xs:attribute name="Id" type="xs:string" />
1854 <xs:attribute name="Name" type="xs:string" use="required">
1855 <xs:annotation>
1856 <xs:documentation>A [Formatted])(https://learn.microsoft.com/en-us/windows/win32/msi/formatted) string that contains the name of the user account.</xs:documentation>
1857 </xs:annotation>
1858 </xs:attribute>
1859 <xs:attribute name="Domain" type="xs:string">
1860 <xs:annotation>
1861 <xs:documentation>A [Formatted])(https://learn.microsoft.com/en-us/windows/win32/msi/formatted) string that contains the local machine or Active Directory domain for the user.</xs:documentation>
1862 </xs:annotation>
1863 </xs:attribute>
1864 <xs:attribute name="Password" type="xs:string">
1865 <xs:annotation>
1866 <xs:documentation>Usually a Property that is passed in on the command-line to keep it more secure.</xs:documentation>
1867 </xs:annotation>
1868 </xs:attribute>
1869 <xs:attribute name="PasswordNeverExpires" type="wxs:YesNoTypeUnion">
1870 <xs:annotation>
1871 <xs:documentation>The account's password never expires. Equivalent to UF_DONT_EXPIRE_PASSWD.</xs:documentation>
1872 </xs:annotation>
1873 </xs:attribute>
1874 <xs:attribute name="CanNotChangePassword" type="wxs:YesNoTypeUnion">
1875 <xs:annotation>
1876 <xs:documentation>The user cannot change the account's password. Equivalent to UF_PASSWD_CANT_CHANGE.</xs:documentation>
1877 </xs:annotation>
1878 </xs:attribute>
1879 <xs:attribute name="RemoveOnUninstall" type="wxs:YesNoTypeUnion">
1880 <xs:annotation>
1881 <xs:documentation>Indicates whether the user account should be removed or left behind on uninstall.</xs:documentation>
1882 </xs:annotation>
1883 </xs:attribute>
1884 <xs:attribute name="FailIfExists" type="wxs:YesNoTypeUnion">
1885 <xs:annotation>
1886 <xs:documentation>Indicates if the install should fail if the user already exists.</xs:documentation>
1887 </xs:annotation>
1888 </xs:attribute>
1889 <xs:attribute name="LogonAsService" type="wxs:YesNoTypeUnion">
1890 <xs:annotation>
1891 <xs:documentation>Indicates whether or not the user can logon as a serivce. User creation can be skipped if all that is desired is to set this access right on the user.</xs:documentation>
1892 </xs:annotation>
1893 </xs:attribute>
1894 <xs:attribute name="LogonAsBatchJob" type="wxs:YesNoTypeUnion">
1895 <xs:annotation>
1896 <xs:documentation>Indicates whether or not the user can logon as a batch job. User creation can be skipped if all that is desired is to set this access right on the user.</xs:documentation>
1897 </xs:annotation>
1898 </xs:attribute>
1899 <xs:attribute name="UpdateIfExists" type="wxs:YesNoTypeUnion">
1900 <xs:annotation>
1901 <xs:documentation>Indicates if the user account properties should be updated if the user already exists.</xs:documentation>
1902 </xs:annotation>
1903 </xs:attribute>
1904 <xs:attribute name="PasswordExpired" type="wxs:YesNoTypeUnion">
1905 <xs:annotation>
1906 <xs:documentation>Indicates whether the user must change their password on their first login.</xs:documentation>
1907 </xs:annotation>
1908 </xs:attribute>
1909 <xs:attribute name="Disabled" type="wxs:YesNoTypeUnion">
1910 <xs:annotation>
1911 <xs:documentation>The account is disabled. Equivalent to UF_ACCOUNTDISABLE.</xs:documentation>
1912 </xs:annotation>
1913 </xs:attribute>
1914 <xs:attribute name="CreateUser" type="wxs:YesNoTypeUnion">
1915 <xs:annotation>
1916 <xs:documentation>Indicates whether or not to create the user. User creation can be skipped if all that is desired is to join a user to groups.</xs:documentation>
1917 </xs:annotation>
1918 </xs:attribute>
1919 <xs:attribute name="Vital" type="wxs:YesNoTypeUnion">
1920 <xs:annotation>
1921 <xs:documentation>Indicates whether failure to create the user or add the user to a group fails the installation. The default value is "yes".</xs:documentation>
1922 </xs:annotation>
1923 </xs:attribute>
1924 <xs:attribute name="Comment" type="xs:string">
1925 <xs:annotation>
1926 <xs:documentation>Optional comment to set on the user.</xs:documentation>
1927 </xs:annotation>
1928 </xs:attribute>
1929 <xs:attribute name="RemoveComment" type="wxs:YesNoTypeUnion">
1930 <xs:annotation>
1931 <xs:documentation>Indicates whether remove the comment from the user. The default value is "no".</xs:documentation>
1932 </xs:annotation>
1933 </xs:attribute>
1934 <xs:anyAttribute namespace="##other" processContents="lax">
1935 <xs:annotation>
1936 <xs:documentation>
1937 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1938 attributes at this point in the schema.
1939 </xs:documentation>
1940 </xs:annotation>
1941 </xs:anyAttribute>
1942 </xs:complexType>
1943 </xs:element>
1944
1945 <xs:element name="WindowsFeatureSearch">
1946 <xs:annotation>
1947 <xs:documentation>Detects the existence of a Windows feature.</xs:documentation>
1948 <xs:appinfo>
1949 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
1950 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1951 </xs:appinfo>
1952 </xs:annotation>
1953 <xs:complexType>
1954 <xs:choice minOccurs="0" maxOccurs="unbounded">
1955 <xs:any namespace="##other" processContents="lax">
1956 <xs:annotation>
1957 <xs:documentation>
1958 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1959 elements at this point in the schema.
1960 </xs:documentation>
1961 </xs:annotation>
1962 </xs:any>
1963 </xs:choice>
1964 <xs:attributeGroup ref="SearchCommonAttributes" />
1965 <xs:attribute name="Feature" use="required">
1966 <xs:annotation>
1967 <xs:documentation>The feature to detect.</xs:documentation>
1968 </xs:annotation>
1969 <xs:simpleType>
1970 <xs:restriction base="xs:NMTOKEN">
1971 <xs:enumeration value="sha2CodeSigning">
1972 <xs:annotation>
1973 <xs:documentation>The oldest OS with this feature is Win7 SP1 with KB3033929.</xs:documentation>
1974 </xs:annotation>
1975 </xs:enumeration>
1976 </xs:restriction>
1977 </xs:simpleType>
1978 </xs:attribute>
1979 <xs:anyAttribute namespace="##other" processContents="lax">
1980 <xs:annotation>
1981 <xs:documentation>
1982 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1983 attributes at this point in the schema.
1984 </xs:documentation>
1985 </xs:annotation>
1986 </xs:anyAttribute>
1987 </xs:complexType>
1988 </xs:element>
1989
1990 <xs:element name="WindowsFeatureSearchRef">
1991 <xs:annotation>
1992 <xs:documentation>References a WindowsFeatureSearch.</xs:documentation>
1993 <xs:appinfo>
1994 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
1995 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1996 </xs:appinfo>
1997 </xs:annotation>
1998 <xs:complexType>
1999 <xs:choice minOccurs="0" maxOccurs="unbounded">
2000 <xs:any namespace="##other" processContents="lax">
2001 <xs:annotation>
2002 <xs:documentation>
2003 Extensibility point in the WiX XML Schema. Schema extensions can register additional
2004 elements at this point in the schema.
2005 </xs:documentation>
2006 </xs:annotation>
2007 </xs:any>
2008 </xs:choice>
2009 <xs:attribute name="Id" type="xs:string" use="required" />
2010 <xs:anyAttribute namespace="##other" processContents="lax">
2011 <xs:annotation>
2012 <xs:documentation>
2013 Extensibility point in the WiX XML Schema. Schema extensions can register additional
2014 attributes at this point in the schema.
2015 </xs:documentation>
2016 </xs:annotation>
2017 </xs:anyAttribute>
2018 </xs:complexType>
2019 </xs:element>
2020
2021 <xs:element name="XmlFile">
2022 <xs:annotation>
2023 <xs:documentation>
2024 Adds or removes .xml file entries. If you use the XmlFile element you must reference WixUtilExtension.dll as it contains the XmlFile custom actions.
2025 </xs:documentation>
2026 <xs:appinfo>
2027 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
2028 </xs:appinfo>
2029 </xs:annotation>
2030 <xs:complexType>
2031 <xs:choice minOccurs="0" maxOccurs="unbounded">
2032 <xs:any namespace="##other" processContents="lax">
2033 <xs:annotation>
2034 <xs:documentation>
2035 Extensibility point in the WiX XML Schema. Schema extensions can register additional
2036 elements at this point in the schema.
2037 </xs:documentation>
2038 </xs:annotation>
2039 </xs:any>
2040 </xs:choice>
2041 <xs:attribute name="Id" type="xs:string">
2042 <xs:annotation>
2043 <xs:documentation>Identifier for xml file modification.</xs:documentation>
2044 </xs:annotation>
2045 </xs:attribute>
2046 <xs:attribute name="ElementPath" type="xs:string" use="required">
2047 <xs:annotation>
2048 <xs:documentation>The XPath of the element to be modified. Note that this is a formatted field and therefore, square brackets in the XPath must be escaped. In addition, XPaths allow backslashes to be used to escape characters, so if you intend to include literal backslashes, you must escape them as well by doubling them in this attribute. The string is formatted by MSI first, and the result is consumed as the XPath.</xs:documentation>
2049 </xs:annotation>
2050 </xs:attribute>
2051 <xs:attribute name="File" type="xs:string" use="required">
2052 <xs:annotation>
2053 <xs:documentation>Path of the .xml file to configure.</xs:documentation>
2054 </xs:annotation>
2055 </xs:attribute>
2056 <xs:attribute name="Name" type="xs:string">
2057 <xs:annotation>
2058 <xs:documentation>Name of XML node to set/add to the specified element. Not setting this attribute causes the element's text value to be set. Otherwise this specified the attribute name that is set.</xs:documentation>
2059 </xs:annotation>
2060 </xs:attribute>
2061 <xs:attribute name="Value" type="xs:string">
2062 <xs:annotation>
2063 <xs:documentation>
2064 The value to be written. See the <html:a href="http://msdn.microsoft.com/library/aa368609(VS.85).aspx" target="_blank">Formatted topic</html:a> for information how to escape square brackets in the value.
2065 </xs:documentation>
2066 </xs:annotation>
2067 </xs:attribute>
2068 <xs:attribute name="Action" use="required">
2069 <xs:annotation>
2070 <xs:documentation>The type of modification to be made to the XML file when the component is installed.</xs:documentation>
2071 </xs:annotation>
2072 <xs:simpleType>
2073 <xs:restriction base="xs:NMTOKEN">
2074 <xs:enumeration value="createElement">
2075 <xs:annotation>
2076 <xs:documentation>Creates a new element under the element specified in ElementPath. The Name attribute is required in this case and specifies the name of the new element. The Value attribute is not necessary when createElement is specified as the action. If the Value attribute is set, it will cause the new element's text value to be set.</xs:documentation>
2077 </xs:annotation>
2078 </xs:enumeration>
2079 <xs:enumeration value="deleteValue">
2080 <xs:annotation>
2081 <xs:documentation>Deletes a value from the element specified in the ElementPath. If Name is specified, the attribute with that name is deleted. If Name is not specified, the text value of the element specified in the ElementPath is deleted. The Value attribute is ignored if deleteValue is the action specified.</xs:documentation>
2082 </xs:annotation>
2083 </xs:enumeration>
2084 <xs:enumeration value="setValue">
2085 <xs:annotation>
2086 <xs:documentation>Sets a value in the element specified in the ElementPath. If Name is specified, and attribute with that name is set to the value specified in Value. If Name is not specified, the text value of the element is set. Value is a required attribute if setValue is the action specified.</xs:documentation>
2087 </xs:annotation>
2088 </xs:enumeration>
2089 <xs:enumeration value="bulkSetValue">
2090 <xs:annotation>
2091 <xs:documentation>Sets all the values in the elements that match the ElementPath. If Name is specified, attributes with that name are set to the same value specified in Value. If Name is not specified, the text values of the elements are set. Value is a required attribute if setBulkValue is the action specified.</xs:documentation>
2092 </xs:annotation>
2093 </xs:enumeration>
2094 </xs:restriction>
2095 </xs:simpleType>
2096 </xs:attribute>
2097 <xs:attribute name="Permanent" type="wxs:YesNoTypeUnion">
2098 <xs:annotation>
2099 <xs:documentation>Specifies whether or not the modification should be removed on uninstall. This has no effect on uninstall if the action was deleteValue.</xs:documentation>
2100 </xs:annotation>
2101 </xs:attribute>
2102 <xs:attribute name="PreserveModifiedDate" type="wxs:YesNoTypeUnion">
2103 <xs:annotation>
2104 <xs:documentation>Specifies wheter or not the modification should preserve the modified date. Preserving the modified date will allow the file to be patched if no other modifications have been made.</xs:documentation>
2105 </xs:annotation>
2106 </xs:attribute>
2107 <xs:attribute name="Sequence" type="wxs:Integer">
2108 <xs:annotation>
2109 <xs:documentation>Specifies the order in which the modification is to be attempted on the XML file. It is important to ensure that new elements are created before you attempt to add an attribute to them.</xs:documentation>
2110 </xs:annotation>
2111 </xs:attribute>
2112 <xs:attribute name="SelectionLanguage">
2113 <xs:annotation>
2114 <xs:documentation>
2115 Specify whether the DOM object should use XPath language or the old XSLPattern language (default) as the query language.
2116 </xs:documentation>
2117 </xs:annotation>
2118 <xs:simpleType>
2119 <xs:restriction base="xs:NMTOKEN">
2120 <xs:enumeration value="XPath" />
2121 <xs:enumeration value="XSLPattern" />
2122 </xs:restriction>
2123 </xs:simpleType>
2124 </xs:attribute>
2125 <xs:anyAttribute namespace="##other" processContents="lax">
2126 <xs:annotation>
2127 <xs:documentation>
2128 Extensibility point in the WiX XML Schema. Schema extensions can register additional
2129 attributes at this point in the schema.
2130 </xs:documentation>
2131 </xs:annotation>
2132 </xs:anyAttribute>
2133 </xs:complexType>
2134 </xs:element>
2135
2136 <xs:element name="XmlConfig">
2137 <xs:annotation>
2138 <xs:documentation>
2139 Adds or removes .xml file entries. If you use the XmlConfig element you must reference WixUtilExtension.dll as it contains the XmlConfig custom actions.
2140 </xs:documentation>
2141 <xs:appinfo>
2142 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
2143 </xs:appinfo>
2144 </xs:annotation>
2145 <xs:complexType>
2146 <xs:choice minOccurs="0" maxOccurs="unbounded">
2147 <xs:element ref="XmlConfig" />
2148 <xs:any namespace="##other" processContents="lax">
2149 <xs:annotation>
2150 <xs:documentation>
2151 Extensibility point in the WiX XML Schema. Schema extensions can register additional
2152 elements at this point in the schema.
2153 </xs:documentation>
2154 </xs:annotation>
2155 </xs:any>
2156 </xs:choice>
2157 <xs:attribute name="Id" type="xs:string">
2158 <xs:annotation>
2159 <xs:documentation>Identifier for xml file modification.</xs:documentation>
2160 </xs:annotation>
2161 </xs:attribute>
2162 <xs:attribute name="Action">
2163 <xs:simpleType>
2164 <xs:restriction base="xs:NMTOKEN">
2165 <xs:enumeration value="create" />
2166 <xs:enumeration value="delete" />
2167 </xs:restriction>
2168 </xs:simpleType>
2169 </xs:attribute>
2170 <xs:attribute name="ElementId" type="xs:string">
2171 <xs:annotation>
2172 <xs:documentation>The Id of another XmlConfig to add attributes to. In this case, the 'ElementPath', 'Action', 'Node', and 'On' attributes must be omitted.</xs:documentation>
2173 </xs:annotation>
2174 </xs:attribute>
2175 <xs:attribute name="ElementPath" type="xs:string">
2176 <xs:annotation>
2177 <xs:documentation>The XPath of the parent element being modified. Note that this is a formatted field and therefore, square brackets in the XPath must be escaped. In addition, XPaths allow backslashes to be used to escape characters, so if you intend to include literal backslashes, you must escape them as well by doubling them in this attribute. The string is formatted by MSI first, and the result is consumed as the XPath.</xs:documentation>
2178 </xs:annotation>
2179 </xs:attribute>
2180 <xs:attribute name="File" type="xs:string" use="required">
2181 <xs:annotation>
2182 <xs:documentation>Path of the .xml file to configure.</xs:documentation>
2183 </xs:annotation>
2184 </xs:attribute>
2185 <xs:attribute name="Name" type="xs:string">
2186 <xs:annotation>
2187 <xs:documentation>Name of XML node to set/add to the specified element. Not setting this attribute causes the element's text value to be set. Otherwise this specified the attribute name that is set.</xs:documentation>
2188 </xs:annotation>
2189 </xs:attribute>
2190 <xs:attribute name="Node">
2191 <xs:simpleType>
2192 <xs:restriction base="xs:NMTOKEN">
2193 <xs:enumeration value="element" />
2194 <xs:enumeration value="value" />
2195 <xs:enumeration value="document" />
2196 </xs:restriction>
2197 </xs:simpleType>
2198 </xs:attribute>
2199 <xs:attribute name="On">
2200 <xs:simpleType>
2201 <xs:restriction base="xs:NMTOKEN">
2202 <xs:enumeration value="install" />
2203 <xs:enumeration value="uninstall" />
2204 </xs:restriction>
2205 </xs:simpleType>
2206 </xs:attribute>
2207 <xs:attribute name="PreserveModifiedDate" type="wxs:YesNoTypeUnion">
2208 <xs:annotation>
2209 <xs:documentation>Specifies wheter or not the modification should preserve the modified date. Preserving the modified date will allow the file to be patched if no other modifications have been made.</xs:documentation>
2210 </xs:annotation>
2211 </xs:attribute>
2212 <xs:attribute name="Sequence" type="wxs:Integer">
2213 <xs:annotation>
2214 <xs:documentation>Specifies the order in which the modification is to be attempted on the XML file. It is important to ensure that new elements are created before you attempt to add an attribute to them.</xs:documentation>
2215 </xs:annotation>
2216 </xs:attribute>
2217 <xs:attribute name="Value" type="xs:string">
2218 <xs:annotation>
2219 <xs:documentation>
2220 The value to be written. See the <html:a href="https://docs.microsoft.com/en-us/windows/win32/msi/formatted" target="_blank">Formatted topic</html:a> for information how to escape square brackets in the value.
2221 </xs:documentation>
2222 </xs:annotation>
2223 </xs:attribute>
2224 <xs:attribute name="VerifyPath" type="xs:string">
2225 <xs:annotation>
2226 <xs:documentation>The XPath to the element being modified. This is required for 'delete' actions. For 'create' actions, VerifyPath is used to decide if the element already exists. Note that this is a formatted field and therefore, square brackets in the XPath must be escaped. In addition, XPaths allow backslashes to be used to escape characters, so if you intend to include literal backslashes, you must escape them as well by doubling them in this attribute. The string is formatted by MSI first, and the result is consumed as the XPath.</xs:documentation>
2227 </xs:annotation>
2228 </xs:attribute>
2229 <xs:anyAttribute namespace="##other" processContents="lax">
2230 <xs:annotation>
2231 <xs:documentation>
2232 Extensibility point in the WiX XML Schema. Schema extensions can register additional
2233 attributes at this point in the schema.
2234 </xs:documentation>
2235 </xs:annotation>
2236 </xs:anyAttribute>
2237 </xs:complexType>
2238 </xs:element>
2239
2240 <xs:element name="BroadcastEnvironmentChange">
2241 <xs:annotation>
2242 <xs:documentation>Schedules the BroadcastEnvironmentChange custom action for the current platform.</xs:documentation>
2243 <xs:appinfo>
2244 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
2245 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
2246 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
2247 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
2248 </xs:appinfo>
2249 </xs:annotation>
2250 </xs:element>
2251
2252 <xs:element name="BroadcastSettingChange">
2253 <xs:annotation>
2254 <xs:documentation>Schedules the BroadcastSettingChange custom action for the current platform.</xs:documentation>
2255 <xs:appinfo>
2256 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
2257 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
2258 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
2259 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
2260 </xs:appinfo>
2261 </xs:annotation>
2262 </xs:element>
2263
2264 <xs:element name="CheckRebootRequired">
2265 <xs:annotation>
2266 <xs:documentation>Schedules the CheckRebootRequired custom action for the current platform.</xs:documentation>
2267 <xs:appinfo>
2268 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
2269 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
2270 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
2271 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
2272 </xs:appinfo>
2273 </xs:annotation>
2274 </xs:element>
2275
2276 <xs:element name="ExitEarlyWithSuccess">
2277 <xs:annotation>
2278 <xs:documentation>Schedules the ExitEarlyWithSuccess custom action for the current platform.</xs:documentation>
2279 <xs:appinfo>
2280 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
2281 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
2282 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
2283 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
2284 </xs:appinfo>
2285 </xs:annotation>
2286 </xs:element>
2287
2288 <xs:element name="FailWhenDeferred">
2289 <xs:annotation>
2290 <xs:documentation>Schedules the FailWhenDeferred custom action for the current platform.</xs:documentation>
2291 <xs:appinfo>
2292 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
2293 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
2294 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
2295 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
2296 </xs:appinfo>
2297 </xs:annotation>
2298 </xs:element>
2299
2300 <xs:element name="WaitForEvent">
2301 <xs:annotation>
2302 <xs:documentation>Schedules the WaitForEvent custom action for the current platform.</xs:documentation>
2303 <xs:appinfo>
2304 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
2305 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
2306 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
2307 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
2308 </xs:appinfo>
2309 </xs:annotation>
2310 </xs:element>
2311
2312 <xs:element name="WaitForEventDeferred">
2313 <xs:annotation>
2314 <xs:documentation>Schedules the WaitForEventDeferred custom action for the current platform.</xs:documentation>
2315 <xs:appinfo>
2316 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
2317 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
2318 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
2319 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
2320 </xs:appinfo>
2321 </xs:annotation>
2322 </xs:element>
2323
2324 <xs:element name="QueryNativeMachine">
2325 <xs:annotation>
2326 <xs:documentation>
2327 Schedules the QueryNativeMachine custom action for the current platform. For more information, see [QueryNativeMachine properties](../../../tools/wixext/wininfo#querynativemachine).
2328 </xs:documentation>
2329 <xs:appinfo>
2330 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
2331 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
2332 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
2333 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
2334 </xs:appinfo>
2335 </xs:annotation>
2336 </xs:element>
2337
2338 <xs:element name="QueryWindowsDirectories">
2339 <xs:annotation>
2340 <xs:documentation>
2341 Schedules the QueryOsDirs custom action for the current platform. For more information, see [QueryWindowsDirectories properties](../../../tools/wixext/wininfo#querywindowsdirectories).
2342 </xs:documentation>
2343 <xs:appinfo>
2344 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
2345 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
2346 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
2347 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
2348 </xs:appinfo>
2349 </xs:annotation>
2350 </xs:element>
2351
2352 <xs:element name="QueryWindowsDriverInfo">
2353 <xs:annotation>
2354 <xs:documentation>
2355 Schedules the QueryOsDriverInfo custom action for the current platform. For more information, see [QueryWindowsDriverInfo properties](../../../tools/wixext/wininfo#querywindowsdriverinfo).
2356 </xs:documentation>
2357 <xs:appinfo>
2358 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
2359 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
2360 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
2361 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
2362 </xs:appinfo>
2363 </xs:annotation>
2364 </xs:element>
2365
2366 <xs:element name="QueryWindowsSuiteInfo">
2367 <xs:annotation>
2368 <xs:documentation>
2369 Schedules the QueryOsInfo custom action for the current platform. For more information, see [QueryWindowsSuiteInfo properties](../../../tools/wixext/wininfo#querywindowssuiteinfo).
2370 </xs:documentation>
2371 <xs:appinfo>
2372 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
2373 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
2374 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
2375 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
2376 </xs:appinfo>
2377 </xs:annotation>
2378 </xs:element>
2379
2380 <xs:element name="QueryWindowsWellKnownSIDs">
2381 <xs:annotation>
2382 <xs:documentation>
2383 Schedules the QueryOsWellKnownSID custom action for the current platform. For more information, see [QueryWindowsWellKnownSIDs properties](../../../tools/wixext/wininfo#querywindowswellknownsids).
2384 </xs:documentation>
2385 <xs:documentation>Schedules the QueryOsWellKnownSID custom action for the current platform.</xs:documentation>
2386 <xs:appinfo>
2387 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
2388 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
2389 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
2390 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
2391 </xs:appinfo>
2392 </xs:annotation>
2393 </xs:element>
2394
2395 <xs:attributeGroup name="SearchCommonAttributes">
2396 <xs:attribute name="Id" type="xs:string">
2397 <xs:annotation>
2398 <xs:documentation>Id of the search for ordering and dependency.</xs:documentation>
2399 </xs:annotation>
2400 </xs:attribute>
2401 <xs:attribute name="Variable" type="xs:string" use="required">
2402 <xs:annotation>
2403 <xs:documentation>Name of the variable in which to place the result of the search.</xs:documentation>
2404 </xs:annotation>
2405 </xs:attribute>
2406 <xs:attribute name="Condition" type="xs:string">
2407 <xs:annotation>
2408 <xs:documentation>Condition for evaluating the search. If this evaluates to false, the search is not executed at all.</xs:documentation>
2409 </xs:annotation>
2410 </xs:attribute>
2411 <xs:attribute name="After" type="xs:string">
2412 <xs:annotation>
2413 <xs:documentation>Id of the search that this one should come after.</xs:documentation>
2414 </xs:annotation>
2415 </xs:attribute>
2416 </xs:attributeGroup>
2417
2418 <xs:simpleType name="PerformanceCounterLanguageType">
2419 <xs:annotation>
2420 <xs:documentation>Enumeration of valid languages for performance counters.</xs:documentation>
2421 </xs:annotation>
2422 <xs:restriction base="xs:NMTOKEN">
2423 <xs:enumeration value="afrikaans" />
2424 <xs:enumeration value="albanian" />
2425 <xs:enumeration value="arabic" />
2426 <xs:enumeration value="armenian" />
2427 <xs:enumeration value="assamese" />
2428 <xs:enumeration value="azeri" />
2429 <xs:enumeration value="basque" />
2430 <xs:enumeration value="belarusian" />
2431 <xs:enumeration value="bengali" />
2432 <xs:enumeration value="bulgarian" />
2433 <xs:enumeration value="catalan" />
2434 <xs:enumeration value="chinese" />
2435 <xs:enumeration value="croatian" />
2436 <xs:enumeration value="czech" />
2437 <xs:enumeration value="danish" />
2438 <xs:enumeration value="divehi" />
2439 <xs:enumeration value="dutch" />
2440 <xs:enumeration value="english" />
2441 <xs:enumeration value="estonian" />
2442 <xs:enumeration value="faeroese" />
2443 <xs:enumeration value="farsi" />
2444 <xs:enumeration value="finnish" />
2445 <xs:enumeration value="french" />
2446 <xs:enumeration value="galician" />
2447 <xs:enumeration value="georgian" />
2448 <xs:enumeration value="german" />
2449 <xs:enumeration value="greek" />
2450 <xs:enumeration value="gujarati" />
2451 <xs:enumeration value="hebrew" />
2452 <xs:enumeration value="hindi" />
2453 <xs:enumeration value="hungarian" />
2454 <xs:enumeration value="icelandic" />
2455 <xs:enumeration value="indonesian" />
2456 <xs:enumeration value="italian" />
2457 <xs:enumeration value="japanese" />
2458 <xs:enumeration value="kannada" />
2459 <xs:enumeration value="kashmiri" />
2460 <xs:enumeration value="kazak" />
2461 <xs:enumeration value="konkani" />
2462 <xs:enumeration value="korean" />
2463 <xs:enumeration value="kyrgyz" />
2464 <xs:enumeration value="latvian" />
2465 <xs:enumeration value="lithuanian" />
2466 <xs:enumeration value="macedonian" />
2467 <xs:enumeration value="malay" />
2468 <xs:enumeration value="malayalam" />
2469 <xs:enumeration value="manipuri" />
2470 <xs:enumeration value="marathi" />
2471 <xs:enumeration value="mongolian" />
2472 <xs:enumeration value="nepali" />
2473 <xs:enumeration value="norwegian" />
2474 <xs:enumeration value="oriya" />
2475 <xs:enumeration value="polish" />
2476 <xs:enumeration value="portuguese" />
2477 <xs:enumeration value="punjabi" />
2478 <xs:enumeration value="romanian" />
2479 <xs:enumeration value="russian" />
2480 <xs:enumeration value="sanskrit" />
2481 <xs:enumeration value="serbian" />
2482 <xs:enumeration value="sindhi" />
2483 <xs:enumeration value="slovak" />
2484 <xs:enumeration value="slovenian" />
2485 <xs:enumeration value="spanish" />
2486 <xs:enumeration value="swahili" />
2487 <xs:enumeration value="swedish" />
2488 <xs:enumeration value="syriac" />
2489 <xs:enumeration value="tamil" />
2490 <xs:enumeration value="tatar" />
2491 <xs:enumeration value="telugu" />
2492 <xs:enumeration value="thai" />
2493 <xs:enumeration value="turkish" />
2494 <xs:enumeration value="ukrainian" />
2495 <xs:enumeration value="urdu" />
2496 <xs:enumeration value="uzbek" />
2497 <xs:enumeration value="vietnamese" />
2498 </xs:restriction>
2499 </xs:simpleType>
2500
2501 <xs:simpleType name="PerformanceCounterTypesType">
2502 <xs:annotation>
2503 <xs:documentation>Enumeration of valid types for performance counters.</xs:documentation>
2504 </xs:annotation>
2505 <xs:restriction base="xs:NMTOKEN">
2506 <xs:enumeration value="averageBase" />
2507 <xs:enumeration value="averageCount64" />
2508 <xs:enumeration value="averageTimer32" />
2509 <xs:enumeration value="counterDelta32" />
2510 <xs:enumeration value="counterTimerInverse" />
2511 <xs:enumeration value="sampleFraction" />
2512 <xs:enumeration value="timer100Ns" />
2513 <xs:enumeration value="counterTimer" />
2514 <xs:enumeration value="rawFraction" />
2515 <xs:enumeration value="timer100NsInverse" />
2516 <xs:enumeration value="counterMultiTimer" />
2517 <xs:enumeration value="counterMultiTimer100Ns" />
2518 <xs:enumeration value="counterMultiTimerInverse" />
2519 <xs:enumeration value="counterMultiTimer100NsInverse" />
2520 <xs:enumeration value="elapsedTime" />
2521 <xs:enumeration value="sampleBase" />
2522 <xs:enumeration value="rawBase" />
2523 <xs:enumeration value="counterMultiBase" />
2524 <xs:enumeration value="rateOfCountsPerSecond64" />
2525 <xs:enumeration value="rateOfCountsPerSecond32" />
2526 <xs:enumeration value="countPerTimeInterval64" />
2527 <xs:enumeration value="countPerTimeInterval32" />
2528 <xs:enumeration value="sampleCounter" />
2529 <xs:enumeration value="counterDelta64" />
2530 <xs:enumeration value="numberOfItems64" />
2531 <xs:enumeration value="numberOfItems32" />
2532 <xs:enumeration value="numberOfItemsHEX64" />
2533 <xs:enumeration value="numberOfItemsHEX32" />
2534 </xs:restriction>
2535 </xs:simpleType>
2536</xs:schema>
diff --git a/src/xsd/vs.xsd b/src/xsd/vs.xsd
new file mode 100644
index 00000000..f233db92
--- /dev/null
+++ b/src/xsd/vs.xsd
@@ -0,0 +1,140 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
4
5<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
6 xmlns:xse="http://wixtoolset.org/schemas/XmlSchemaExtension"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 xmlns:wxs="http://wixtoolset.org/schemas/v4/wxs"
9 targetNamespace="http://wixtoolset.org/schemas/v4/wxs/vs"
10 xmlns="http://wixtoolset.org/schemas/v4/wxs/vs">
11 <xs:annotation>
12 <xs:documentation>
13 The source code schema for the WiX Toolset Visual Studio Extension.
14 </xs:documentation>
15 </xs:annotation>
16
17 <xs:import namespace="http://wixtoolset.org/schemas/v4/wxs" />
18
19 <xs:element name="FindVisualStudio">
20 <xs:annotation>
21 <xs:documentation>
22 This element detects which, if any, Visual Studio instances are installed. If so, it sets
23 the appropriate property or properties: `VS2017_ROOT_FOLDER`, `VS2019_ROOT_FOLDER`, or
24 `VS2022_ROOT_FOLDER`.
25 </xs:documentation>
26 <xs:appinfo>
27 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
28 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
29 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
30 </xs:appinfo>
31 </xs:annotation>
32 <xs:complexType>
33 <xs:choice minOccurs="0" maxOccurs="unbounded">
34 <xs:any namespace="##other" processContents="lax">
35 <xs:annotation>
36 <xs:documentation>
37 Extensibility point in the WiX XML Schema. Schema extensions can register additional
38 elements at this point in the schema.
39 </xs:documentation>
40 </xs:annotation>
41 </xs:any>
42 </xs:choice>
43 </xs:complexType>
44 </xs:element>
45
46 <xs:element name="VsixPackage">
47 <xs:annotation>
48 <xs:documentation>
49 This element provides the metdata required to install/uninstall a file as
50 a VSIX Package. The VSIX package file will be installed as part of the MSI
51 then passed to the VSIX installer to install the VSIX package. To avoid the
52 duplication, simply use the MSI to install the VSIX package itself.
53 </xs:documentation>
54 <xs:appinfo>
55 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
56 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="File" />
57 </xs:appinfo>
58 </xs:annotation>
59 <xs:complexType>
60 <xs:choice minOccurs="0" maxOccurs="unbounded">
61 <xs:any namespace="##other" processContents="lax">
62 <xs:annotation>
63 <xs:documentation>
64 Extensibility point in the WiX XML Schema. Schema extensions can register additional
65 elements at this point in the schema.
66 </xs:documentation>
67 </xs:annotation>
68 </xs:any>
69 </xs:choice>
70 <xs:attribute name="File" type="xs:string">
71 <xs:annotation>
72 <xs:documentation>
73 Reference to file identifer. This attribute is required when the element is not a
74 child of a File element and is invalid when the element is a child of the File element.
75 </xs:documentation>
76 </xs:annotation>
77 </xs:attribute>
78 <xs:attribute name="PackageId" type="xs:string" use="required">
79 <xs:annotation>
80 <xs:documentation>
81 Identity of the VSIX package per its internal manifest. If this value is not correct
82 the VSIX package will not correctly uninstall.
83 </xs:documentation>
84 </xs:annotation>
85 </xs:attribute>
86 <xs:attribute name="Permanent" type="wxs:YesNoTypeUnion">
87 <xs:annotation>
88 <xs:documentation>
89 Indicates whether the VSIX package is uninstalled when the parent Component is uninstalled.
90 The default is 'no'.
91 </xs:documentation>
92 </xs:annotation>
93 </xs:attribute>
94 <xs:attribute name="Target" type="xs:string">
95 <xs:annotation>
96 <xs:documentation>
97 Specifies the SKU of Visual Studio in which to register the extension. If no target
98 is specified the extension is registered with all installed SKUs. If the Target
99 attribute is specified the TargetVersion attribute must also be specified. The
100 following is a list of known Visual Studio targets: integratedShell, professional,
101 premium, ultimate, vbExpress, vcExpress, vcsExpress, vwdExpress
102 </xs:documentation>
103 </xs:annotation>
104 </xs:attribute>
105 <xs:attribute name="TargetVersion" type="wxs:VersionType">
106 <xs:annotation>
107 <xs:documentation>
108 Specifies the version of Visual Studio in which to register the extension. This attribute
109 is required if the Target attribute is specified.
110 </xs:documentation>
111 </xs:annotation>
112 </xs:attribute>
113 <xs:attribute name="Vital" type="wxs:YesNoTypeUnion">
114 <xs:annotation>
115 <xs:documentation>
116 Indicates whether failure to install the VSIX package causes the installation to rollback.
117 The default is 'yes'.
118 </xs:documentation>
119 </xs:annotation>
120 </xs:attribute>
121 <xs:attribute name="VsixInstallerPathProperty" type="xs:string">
122 <xs:annotation>
123 <xs:documentation>
124 Optional reference to a Property element that contains the path to the VsixInstaller.exe.
125 By default, the latest VsixInstaller.exe on the machine will be used to install the VSIX
126 package. It is highly recommended that this attribute is *not* used.
127 </xs:documentation>
128 </xs:annotation>
129 </xs:attribute>
130 <xs:anyAttribute namespace="##other" processContents="lax">
131 <xs:annotation>
132 <xs:documentation>
133 Extensibility point in the WiX XML Schema. Schema extensions can register additional
134 attributes at this point in the schema.
135 </xs:documentation>
136 </xs:annotation>
137 </xs:anyAttribute>
138 </xs:complexType>
139 </xs:element>
140</xs:schema>
diff --git a/src/xsd/wix.xsd b/src/xsd/wix.xsd
new file mode 100644
index 00000000..4816ae8c
--- /dev/null
+++ b/src/xsd/wix.xsd
@@ -0,0 +1,14675 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
4
5<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
6 xmlns:xse="http://wixtoolset.org/schemas/XmlSchemaExtension"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 targetNamespace="http://wixtoolset.org/schemas/v4/wxs"
9 xmlns="http://wixtoolset.org/schemas/v4/wxs">
10 <xs:annotation>
11 <xs:documentation>
12 Schema for describing Windows Installer database files (.msi/.msm/.msp).
13 </xs:documentation>
14 <xs:appinfo>
15 <xse:main />
16 </xs:appinfo>
17 </xs:annotation>
18
19 <xs:element name="Wix">
20 <xs:annotation>
21 <xs:documentation>
22 This is the top-level container element for every wxs file. Among the possible children,
23 the Bundle, Package, Module, Patch elements are analogous to the main function in a C program.
24 There can only be one of these present when linking occurs. Package compiles into an MSI file,
25 Module compiles into an MSM file, Patch compiles into an MSP file. The Fragment element is an atomic
26 unit which ultimately links into either a Package, Module. The Fragment can either be completely included or excluded during linking.
27 </xs:documentation>
28 </xs:annotation>
29 <xs:complexType>
30 <xs:choice minOccurs="0">
31 <xs:sequence>
32 <xs:choice minOccurs="0">
33 <xs:element ref="Bundle" />
34 <xs:element ref="Package" />
35 <xs:element ref="Module" />
36 <xs:element ref="Patch" />
37 <xs:element ref="PatchCreation" />
38 </xs:choice>
39 <xs:element ref="Fragment" minOccurs="0" maxOccurs="unbounded" />
40 </xs:sequence>
41 </xs:choice>
42 <xs:attribute name="RequiredVersion" type="WixVersionType">
43 <xs:annotation>
44 <xs:documentation>Required version of the WiX toolset to compile this input file.</xs:documentation>
45 </xs:annotation>
46 </xs:attribute>
47 <xs:anyAttribute namespace="##other" processContents="lax">
48 <xs:annotation>
49 <xs:documentation>
50 Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema.
51 </xs:documentation>
52 </xs:annotation>
53 </xs:anyAttribute>
54 </xs:complexType>
55 </xs:element>
56 <xs:element name="Include">
57 <xs:annotation>
58 <xs:documentation>
59 This is the top-level container element for every wxi file.
60 </xs:documentation>
61 </xs:annotation>
62 <xs:complexType>
63 <xs:choice minOccurs="0" maxOccurs="unbounded">
64 <xs:any namespace="##any" processContents="lax" />
65 </xs:choice>
66 </xs:complexType>
67 </xs:element>
68 <xs:element name="Bundle">
69 <xs:annotation>
70 <xs:documentation>The root element for creating bundled packages.</xs:documentation>
71 </xs:annotation>
72 <xs:complexType>
73 <xs:choice minOccurs="0" maxOccurs="unbounded">
74 <xs:element ref="ApprovedExeForElevation" />
75 <xs:element ref="BootstrapperApplication" />
76 <xs:element ref="BootstrapperApplicationRef" />
77 <xs:element ref="BootstrapperExtension" />
78 <xs:element ref="BootstrapperExtensionRef" />
79 <xs:element ref="BundleCustomData" />
80 <xs:element ref="BundleCustomDataRef" />
81 <xs:element ref="BundleExtension" />
82 <xs:element ref="BundleExtensionRef" />
83 <xs:element ref="OptionalUpdateRegistration" minOccurs="0" maxOccurs="1" />
84 <xs:element ref="Chain" minOccurs="1" maxOccurs="1" />
85 <xs:element ref="Container" />
86 <xs:element ref="ContainerRef" />
87 <xs:element ref="Log" minOccurs="0" maxOccurs="1" />
88 <xs:element ref="PayloadGroup" />
89 <xs:element ref="PayloadGroupRef" />
90 <xs:element ref="RelatedBundle" />
91 <xs:element ref="Requires" />
92 <xs:element ref="SetVariable" />
93 <xs:element ref="SetVariableRef" />
94 <xs:element ref="SoftwareTag" />
95 <xs:element ref="Update" minOccurs="0" maxOccurs="1" />
96 <xs:element ref="Variable" />
97 <xs:element ref="WixVariable" />
98 <xs:any namespace="##other" processContents="lax">
99 <xs:annotation>
100 <xs:documentation>
101 Extensibility point in the WiX XML Schema. Schema extensions can register additional
102 elements at this point in the schema.
103 </xs:documentation>
104 </xs:annotation>
105 </xs:any>
106 </xs:choice>
107 <xs:attribute name="AboutUrl" type="xs:string">
108 <xs:annotation>
109 <xs:documentation>
110 A URL for more information about the bundle to display in Programs and Features (also
111 known as Add/Remove Programs).
112 </xs:documentation>
113 </xs:annotation>
114 </xs:attribute>
115 <xs:attribute name="Compressed" type="YesNoDefaultTypeUnion">
116 <xs:annotation>
117 <xs:documentation>Whether Packages and Payloads not assigned to a container should be added to the default attached container or if they should be external. The default is yes.</xs:documentation>
118 </xs:annotation>
119 </xs:attribute>
120 <xs:attribute name="Condition" type="xs:string">
121 <xs:annotation>
122 <xs:documentation>
123 The condition of the bundle. If the condition is not met, the bundle will
124 refuse to run. Conditions are checked before the bootstrapper application is loaded
125 (before detect), and thus can only reference built-in variables such as
126 variables which indicate the version of the OS.
127 </xs:documentation>
128 </xs:annotation>
129 </xs:attribute>
130 <xs:attribute name="Copyright" type="xs:string">
131 <xs:annotation>
132 <xs:documentation>
133 The legal copyright found in the version resources of final bundle executable. If
134 this attribute is not provided the copyright will be set to "Copyright (c) [Bundle/@Manufacturer]. All rights reserved.".
135 </xs:documentation>
136 </xs:annotation>
137 </xs:attribute>
138 <xs:attribute name="DisableModify" type="YesNoButtonTypeUnion">
139 <xs:annotation>
140 <xs:documentation>
141 Determines whether the bundle can be modified via the Programs and Features (also known as
142 Add/Remove Programs). If the value is "button" then Programs and Features will show a single
143 "Uninstall/Change" button. If the value is "yes" then Programs and Features will only show
144 the "Uninstall" button". If the value is "no", the default, then a "Change" button is shown.
145 See the DisableRemove attribute for information how to not display the bundle in Programs
146 and Features.
147 </xs:documentation>
148 </xs:annotation>
149 </xs:attribute>
150 <xs:attribute name="DisableRemove" type="YesNoTypeUnion">
151 <xs:annotation>
152 <xs:documentation>
153 Determines whether the bundle can be removed via the Programs and Features (also
154 known as Add/Remove Programs). If the value is "yes" then the "Uninstall" button will
155 not be displayed. The default is "no" which ensures there is an "Uninstall" button to
156 remove the bundle. If the "DisableModify" attribute is also "yes" or "button" then the
157 bundle will not be displayed in Progams and Features and another mechanism (such as
158 registering as a related bundle addon) must be used to ensure the bundle can be removed.
159 </xs:documentation>
160 </xs:annotation>
161 </xs:attribute>
162 <xs:attribute name="HelpTelephone" type="xs:string">
163 <xs:annotation>
164 <xs:documentation>
165 A telephone number for help to display in Programs and Features (also known as
166 Add/Remove Programs).
167 </xs:documentation>
168 </xs:annotation>
169 </xs:attribute>
170 <xs:attribute name="HelpUrl" type="xs:string">
171 <xs:annotation>
172 <xs:documentation>
173 A URL to the help for the bundle to display in Programs and Features (also known as
174 Add/Remove Programs).
175 </xs:documentation>
176 </xs:annotation>
177 </xs:attribute>
178 <xs:attribute name="IconSourceFile" type="xs:string">
179 <xs:annotation>
180 <xs:documentation>
181 Path to an icon that will replace the default icon in the final Bundle executable.
182 This icon will also be displayed in Programs and Features (also known as Add/Remove
183 Programs).
184 </xs:documentation>
185 </xs:annotation>
186 </xs:attribute>
187 <xs:attribute name="Id" type="xs:string">
188 <xs:annotation>
189 <xs:documentation>
190 _New in WiX v6: WiX v6 adds this attribute to the `Package` element._
191 A globally unique identiifer for the bundle in the world. It is recommended to use a prefix such as "CompanyName." to
192 create a namespace of sorts. By default, higher versioned upgrade lower versioned bundles with the same Id. Use this
193 attribute instead of the UpgradeCode attribute in new development.
194 </xs:documentation>
195 </xs:annotation>
196 </xs:attribute>
197 <xs:attribute name="InProgressName" type="xs:string">
198 <xs:annotation>
199 <xs:documentation>
200 Optional name to display in Add/Remove Programs while the bundle is being installed, uninstalled, repaired.
201 </xs:documentation>
202 </xs:annotation>
203 </xs:attribute>
204 <xs:attribute name="Manufacturer" type="xs:string">
205 <xs:annotation>
206 <xs:documentation>
207 The publisher of the bundle to display in Programs and Features (also known as
208 Add/Remove Programs).
209 </xs:documentation>
210 </xs:annotation>
211 </xs:attribute>
212 <xs:attribute name="Name" type="xs:string">
213 <xs:annotation>
214 <xs:documentation>
215 The name of the bundle to display in Programs and Features (also known as Add/Remove
216 Programs). This name can be accessed and overwritten by a BootstrapperApplication
217 using the WixBundleName bundle variable.
218 </xs:documentation>
219 </xs:annotation>
220 </xs:attribute>
221 <xs:attribute name="ParentName" type="xs:string">
222 <xs:annotation>
223 <xs:documentation>
224 The name of the parent bundle to display in Installed Updates (also known as Add/Remove
225 Programs). This name is used to nest or group bundles that will appear as updates.
226 If the parent name does not actually exist, a virtual parent is created automatically.
227 </xs:documentation>
228 </xs:annotation>
229 </xs:attribute>
230 <xs:attribute name="ProviderKey" type="xs:string">
231 <xs:annotation>
232 <xs:documentation>
233 Optional attribute to explicitly author the provider key for the entire bundle.
234 <html:p>
235 This provider key is designed to persist throughout compatible upgrades so that dependent bundles do not have to be reinstalled
236 and will not prevent your product from being upgraded. If this attribute is not authored, the value is the
237 automatically-generated bundle ID and will not automatically support upgrades.
238 </html:p>
239 <html:p>
240 Only a single provider key is supported for bundles. To author that your bundle provides additional features via
241 packages, author different provider keys for your packages.
242 </html:p>
243 </xs:documentation>
244 </xs:annotation>
245 </xs:attribute>
246 <xs:attribute name="SplashScreenSourceFile" type="xs:string">
247 <xs:annotation>
248 <xs:documentation>Path to a bitmap that will be shown as the bootstrapper application is being loaded. If this attribute is not specified, no splash screen will be displayed.</xs:documentation>
249 </xs:annotation>
250 </xs:attribute>
251 <xs:attribute name="Tag" type="xs:string">
252 <xs:annotation>
253 <xs:documentation>Set this string to uniquely identify this bundle to its own BA, and to related bundles. The value of this string only matters to the BA, and its value has no direct effect on engine functionality.</xs:documentation>
254 </xs:annotation>
255 </xs:attribute>
256 <xs:attribute name="UpdateUrl" type="xs:string">
257 <xs:annotation>
258 <xs:documentation>
259 A URL for updates of the bundle to display in Programs and Features (also
260 known as Add/Remove Programs).
261 </xs:documentation>
262 </xs:annotation>
263 </xs:attribute>
264 <xs:attribute name="UpgradeCode" type="Guid">
265 <xs:annotation>
266 <xs:documentation>
267 For new bundles, it is recommended to use the Id attribute instead. This attribute exists for
268 backwards compatibility scenarios. Use this attribute to provide a specific unique identifier
269 for a family of bundles. If two bundles have the same UpgradeCode the bundle with the highest
270 version will be installed.
271 </xs:documentation>
272 </xs:annotation>
273 </xs:attribute>
274 <xs:attribute name="Version" type="xs:string" use="required">
275 <xs:annotation>
276 <xs:documentation>
277 The version of the bundle. Newer versions upgrade earlier versions of the bundles
278 with matching UpgradeCodes. If the bundle is registered in Programs and Features
279 then this attribute will be displayed in the Programs and Features user interface.
280 </xs:documentation>
281 </xs:annotation>
282 </xs:attribute>
283 <xs:anyAttribute namespace="##other" processContents="lax">
284 <xs:annotation>
285 <xs:documentation>
286 Extensibility point in the WiX XML Schema. Schema extensions can register additional
287 attributes at this point in the schema.
288 </xs:documentation>
289 </xs:annotation>
290 </xs:anyAttribute>
291 </xs:complexType>
292 </xs:element>
293 <xs:element name="ApprovedExeForElevation">
294 <xs:annotation>
295 <xs:documentation>Provides information about an .exe so that the BA can request the engine to run it elevated from any secure location.</xs:documentation>
296 <xs:appinfo>
297 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
298 </xs:appinfo>
299 </xs:annotation>
300 <xs:complexType>
301 <xs:attribute name="Id" type="xs:string" use="required">
302 <xs:annotation>
303 <xs:documentation>The identifier of the ApprovedExeForElevation element.</xs:documentation>
304 </xs:annotation>
305 </xs:attribute>
306 <xs:attribute name="Key" type="xs:string" use="required">
307 <xs:annotation>
308 <xs:documentation>
309 The key path.
310 For security purposes, the root key will be HKLM and Variables are not supported.
311 </xs:documentation>
312 </xs:annotation>
313 </xs:attribute>
314 <xs:attribute name="Value" type="xs:string">
315 <xs:annotation>
316 <xs:documentation>
317 The value name.
318 For security purposes, Variables are not supported.
319 </xs:documentation>
320 </xs:annotation>
321 </xs:attribute>
322 <xs:attribute name="Bitness" type="BitnessTypeUnion">
323 <xs:annotation>
324 <xs:documentation>
325 Overrides the default registry to search. The value `always64` will force
326 the search to look in the 64-bit registry even when building for 32-bit.
327 Simliarly, the value `always32` will force the search to look in the 32-bit
328 registry even when building for 64-bit.
329 The default value is `default` where the search will look in the same registry
330 as the bitness of the package.
331 </xs:documentation>
332 </xs:annotation>
333 </xs:attribute>
334 </xs:complexType>
335 </xs:element>
336 <xs:element name="Log">
337 <xs:annotation>
338 <xs:documentation>Overrides the default log settings for a bundle.</xs:documentation>
339 <xs:appinfo>
340 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
341 </xs:appinfo>
342 </xs:annotation>
343 <xs:complexType>
344 <xs:attribute name="Disable" type="YesNoTypeUnion">
345 <xs:annotation>
346 <xs:documentation>
347 Disables the default logging in the Bundle. The end user can still generate a
348 log file by specifying the "-l" command-line argument when installing the
349 Bundle.
350 </xs:documentation>
351 </xs:annotation>
352 </xs:attribute>
353 <xs:attribute name="PathVariable" type="xs:string">
354 <xs:annotation>
355 <xs:documentation>
356 Name of a Variable that will hold the path to the log file. An empty value
357 will cause the variable to not be set. The default is "WixBundleLog".
358 </xs:documentation>
359 </xs:annotation>
360 </xs:attribute>
361 <xs:attribute name="Prefix" type="xs:string">
362 <xs:annotation>
363 <xs:documentation>
364 File name and optionally a relative path to use as the prefix for the log file. The
365 default is to use the Bundle/@Name or, if Bundle/@Name is not specified, the value
366 "Setup".
367 </xs:documentation>
368 </xs:annotation>
369 </xs:attribute>
370 <xs:attribute name="Extension" type="xs:string">
371 <xs:annotation>
372 <xs:documentation>The extension to use for the log. The default is ".log".</xs:documentation>
373 </xs:annotation>
374 </xs:attribute>
375 </xs:complexType>
376 </xs:element>
377 <xs:element name="BootstrapperApplicationDll">
378 <xs:annotation>
379 <xs:documentation>Describes the entry point to the bootstrapper application.</xs:documentation>
380 </xs:annotation>
381 <xs:complexType>
382 <xs:choice minOccurs="0" maxOccurs="unbounded">
383 <xs:any namespace="##other" processContents="lax">
384 <xs:annotation>
385 <xs:documentation>
386 Extensibility point in the WiX XML Schema. Schema extensions can register additional
387 elements at this point in the schema.
388 </xs:documentation>
389 </xs:annotation>
390 </xs:any>
391 </xs:choice>
392 <xs:attribute name="Id" type="xs:string">
393 <xs:annotation>
394 <xs:documentation>The identifier of BootstrapperApplicationDll element.</xs:documentation>
395 </xs:annotation>
396 </xs:attribute>
397 <xs:attribute name="SourceFile" type="xs:string">
398 <xs:annotation>
399 <xs:documentation>
400 Location of the source file.
401 The default value is the Name attribute, if provided.
402 At a minimum, the SourceFile or Name attribute must be specified.
403 </xs:documentation>
404 </xs:annotation>
405 </xs:attribute>
406 <xs:attribute name="Name" type="xs:string">
407 <xs:annotation>
408 <xs:documentation>
409 The destination path and file name for this payload.
410 The default is the source file name.
411 At a minimum, the Name or SourceFile attribute must be specified.
412 This must be a relative path ('\foo' or 'C:\foo' is not allowed).
413 </xs:documentation>
414 </xs:annotation>
415 </xs:attribute>
416 <xs:attribute name="DpiAwareness" default="perMonitorV2">
417 <xs:annotation>
418 <xs:documentation>The DPI awareness of the BootstrapperApplication. The default is 'perMonitorV2'. Microsoft High DPI documentation is at https://docs.microsoft.com/en-us/windows/win32/hidpi/high-dpi-desktop-application-development-on-windows.</xs:documentation>
419 </xs:annotation>
420 <xs:simpleType>
421 <xs:restriction base="xs:NMTOKEN">
422 <xs:enumeration value="gdiScaled">
423 <xs:annotation>
424 <xs:documentation>Corresponds to the .exe manifest element 'gdiScaling' with content of 'true'. Windows does not support combining this with other DPI awareness modes.</xs:documentation>
425 </xs:annotation>
426 </xs:enumeration>
427 <xs:enumeration value="perMonitor">
428 <xs:annotation>
429 <xs:documentation>Corresponds to the .exe manifest element 'dpiAware' with content of 'true/pm'.</xs:documentation>
430 </xs:annotation>
431 </xs:enumeration>
432 <xs:enumeration value="perMonitorV2">
433 <xs:annotation>
434 <xs:documentation>Corresponds to the .exe manifest element 'dpiAwareness' with content of 'PerMonitorV2, PerMonitor' and the manifest element 'dpiAware' with content of 'true/pm'.</xs:documentation>
435 </xs:annotation>
436 </xs:enumeration>
437 <xs:enumeration value="system">
438 <xs:annotation>
439 <xs:documentation>Corresponds to the .exe manifest element 'dpiAware' with content of 'true'.</xs:documentation>
440 </xs:annotation>
441 </xs:enumeration>
442 <xs:enumeration value="unaware" />
443 </xs:restriction>
444 </xs:simpleType>
445 </xs:attribute>
446 <xs:anyAttribute namespace="##other" processContents="lax">
447 <xs:annotation>
448 <xs:documentation>
449 Extensibility point in the WiX XML Schema. Schema extensions can register additional
450 attributes at this point in the schema.
451 </xs:documentation>
452 </xs:annotation>
453 </xs:anyAttribute>
454 </xs:complexType>
455 </xs:element>
456 <xs:element name="BootstrapperApplication">
457 <xs:annotation>
458 <xs:documentation>Contains all the relevant information about the setup UI.</xs:documentation>
459 </xs:annotation>
460 <xs:complexType>
461 <xs:choice minOccurs="0" maxOccurs="unbounded">
462 <xs:element ref="BootstrapperApplicationDll" minOccurs="0" maxOccurs="1" />
463 <xs:element ref="Payload" />
464 <xs:element ref="PayloadGroupRef" />
465 <xs:any namespace="##other" processContents="lax">
466 <xs:annotation>
467 <xs:documentation>
468 Extensibility point in the WiX XML Schema. Schema extensions can register additional
469 elements at this point in the schema.
470 </xs:documentation>
471 </xs:annotation>
472 </xs:any>
473 </xs:choice>
474 <xs:attribute name="Id" type="xs:string">
475 <xs:annotation>
476 <xs:documentation>The identifier of the BootstrapperApplication element. Only required if you want to reference this element using a BootstrapperApplicationRef element.</xs:documentation>
477 </xs:annotation>
478 </xs:attribute>
479 <xs:attribute name="Name" type="xs:string">
480 <xs:annotation>
481 <xs:documentation>
482 [WIX v5 and later]
483 The relative destination path and file name for the bootstrapper application executable.
484 The default is the source file name. Use this attribute to rename the bootstrapper application executable or extract it into a subfolder.
485 At a minimum, the Name or SourceFile attribute must be specified.
486 This must be a relative path ('\foo' or 'C:\foo' is not allowed).
487 </xs:documentation>
488 </xs:annotation>
489 </xs:attribute>
490 <xs:attribute name="SourceFile" type="xs:string">
491 <xs:annotation>
492 <xs:documentation>
493 [WIX v5 and later]
494 The path to the bootstrapper application executable.
495 If not provided, will use the Name attribute value.
496 At a minimum, the SourceFile or Name attribute must be specified.
497 </xs:documentation>
498 </xs:annotation>
499 </xs:attribute>
500 <xs:attribute name="Secondary" type="YesNoTypeUnion">
501 <xs:annotation>
502 <xs:documentation>
503 [WIX v5 and later]
504 Indicates whether the bootstrapper application is the secondary or fallback.
505 This bootstrapper application will only run if the primary bootstrapper application returns a non-zero exit code.
506 </xs:documentation>
507 </xs:annotation>
508 </xs:attribute>
509 <xs:anyAttribute namespace="##other" processContents="lax">
510 <xs:annotation>
511 <xs:documentation>
512 Extensibility point in the WiX XML Schema. Schema extensions can register additional
513 attributes at this point in the schema.
514 </xs:documentation>
515 </xs:annotation>
516 </xs:anyAttribute>
517 </xs:complexType>
518 </xs:element>
519 <xs:element name="BootstrapperApplicationRef">
520 <xs:annotation>
521 <xs:documentation>Used to reference a BootstrapperApplication element and optionally add additional payloads to the bootstrapper application.</xs:documentation>
522 </xs:annotation>
523 <xs:complexType>
524 <xs:choice minOccurs="0" maxOccurs="unbounded">
525 <xs:element ref="Payload" />
526 <xs:element ref="PayloadGroupRef" />
527 <xs:any namespace="##other" processContents="lax">
528 <xs:annotation>
529 <xs:documentation>
530 Extensibility point in the WiX XML Schema. Schema extensions can register additional
531 elements at this point in the schema.
532 </xs:documentation>
533 </xs:annotation>
534 </xs:any>
535 </xs:choice>
536 <xs:attribute name="Id" type="xs:string" use="required">
537 <xs:annotation>
538 <xs:documentation>The identifier of the BootstrapperApplication element to reference.</xs:documentation>
539 </xs:annotation>
540 </xs:attribute>
541 <xs:anyAttribute namespace="##other" processContents="lax">
542 <xs:annotation>
543 <xs:documentation>
544 Extensibility point in the WiX XML Schema. Schema extensions can register additional
545 attributes at this point in the schema.
546 </xs:documentation>
547 </xs:annotation>
548 </xs:anyAttribute>
549 </xs:complexType>
550 </xs:element>
551 <xs:element name="BundleCustomData">
552 <xs:annotation>
553 <xs:documentation>Defines a custom XML element for use in a bundle data manifest.</xs:documentation>
554 </xs:annotation>
555 <xs:complexType>
556 <xs:choice minOccurs="0" maxOccurs="unbounded">
557 <xs:element ref="BundleAttributeDefinition">
558 <xs:annotation>
559 <xs:documentation>Attribute definition for BundleCustomData. There must be at least one defined.</xs:documentation>
560 </xs:annotation>
561 </xs:element>
562 <xs:element ref="BundleElement">
563 <xs:annotation>
564 <xs:documentation>Instance data for BundleCustomData.</xs:documentation>
565 </xs:annotation>
566 </xs:element>
567 </xs:choice>
568 <xs:attribute name="Id" type="xs:string" use="required">
569 <xs:annotation>
570 <xs:documentation>
571 Identifier for the custom table.
572 Also used as the name of the XML element.
573 </xs:documentation>
574 </xs:annotation>
575 </xs:attribute>
576 <xs:attribute name="Type">
577 <xs:annotation>
578 <xs:documentation>
579 Indicates the custom data is transformed into the bootstrapper application data manifest or the bundle extension data manifest.
580 Defaults to BootstrapperExtension if ExtensionId is specified, otherwise BootstrapperApplication.
581 </xs:documentation>
582 </xs:annotation>
583 <xs:simpleType>
584 <xs:restriction base="xs:NMTOKEN">
585 <xs:enumeration value="BootstrapperApplication" />
586 <xs:enumeration value="BootstrapperExtension" />
587 <xs:enumeration value="BundleExtension" />
588 </xs:restriction>
589 </xs:simpleType>
590 </xs:attribute>
591 <xs:attribute name="ExtensionId" type="xs:string">
592 <xs:annotation>
593 <xs:documentation>
594 Identifier for the bootstrapper extension.
595 Required when Type is BootstrapperExtension, must not be specified otherwise.
596 </xs:documentation>
597 </xs:annotation>
598 </xs:attribute>
599 </xs:complexType>
600 </xs:element>
601 <xs:element name="BundleAttributeDefinition">
602 <xs:annotation>
603 <xs:documentation>Attribute definition for BundleCustomData.</xs:documentation>
604 </xs:annotation>
605 <xs:complexType>
606 <xs:attribute name="Id" type="xs:string" use="required">
607 <xs:annotation>
608 <xs:documentation>The name of the attribute.</xs:documentation>
609 </xs:annotation>
610 </xs:attribute>
611 </xs:complexType>
612 </xs:element>
613 <xs:element name="BundleElement">
614 <xs:annotation>
615 <xs:documentation>Instance data for BundleCustomData.</xs:documentation>
616 </xs:annotation>
617 <xs:complexType>
618 <xs:sequence>
619 <xs:element ref="BundleAttribute" maxOccurs="unbounded" />
620 </xs:sequence>
621 </xs:complexType>
622 </xs:element>
623 <xs:element name="BundleAttribute">
624 <xs:annotation>
625 <xs:documentation>Used for BundleCustomData. Specifies a BundleAttributeDefinition and its value for the parent BundleElement.</xs:documentation>
626 </xs:annotation>
627 <xs:complexType>
628 <xs:attribute name="Id" type="xs:string" use="required">
629 <xs:annotation>
630 <xs:documentation>Specifies the BundleAttributeDefinition associated with this value.</xs:documentation>
631 </xs:annotation>
632 </xs:attribute>
633 <xs:attribute name="Value" type="xs:string">
634 <xs:annotation>
635 <xs:documentation>An attribute's value.</xs:documentation>
636 </xs:annotation>
637 </xs:attribute>
638 </xs:complexType>
639 </xs:element>
640 <xs:element name="BundleCustomDataRef">
641 <xs:annotation>
642 <xs:documentation>Used to reference a BundleCustomData element and optionally add more data.</xs:documentation>
643 </xs:annotation>
644 <xs:complexType>
645 <xs:choice minOccurs="0" maxOccurs="unbounded">
646 <xs:element ref="BundleElement">
647 <xs:annotation>
648 <xs:documentation>Instance data for BundleCustomData.</xs:documentation>
649 </xs:annotation>
650 </xs:element>
651 </xs:choice>
652 <xs:attribute name="Id" type="xs:string" use="required">
653 <xs:annotation>
654 <xs:documentation>
655 The identifier of the BundleCustomData element to reference.
656 </xs:documentation>
657 </xs:annotation>
658 </xs:attribute>
659 </xs:complexType>
660 </xs:element>
661 <xs:element name="BootstrapperExtension">
662 <xs:annotation>
663 <xs:documentation>[WIX v5] An extension to the Burn engine. Currently requires a WiX compiler extension to do anything useful.</xs:documentation>
664 </xs:annotation>
665 <xs:complexType>
666 <xs:choice minOccurs="0" maxOccurs="unbounded">
667 <xs:element ref="Payload" />
668 <xs:element ref="PayloadGroupRef" />
669 <xs:any namespace="##other" processContents="lax">
670 <xs:annotation>
671 <xs:documentation>
672 Extensibility point in the WiX XML Schema. Schema extensions can register additional
673 elements at this point in the schema.
674 </xs:documentation>
675 </xs:annotation>
676 </xs:any>
677 </xs:choice>
678 <xs:attribute name="Id" type="xs:string">
679 <xs:annotation>
680 <xs:documentation>The identifier of the BootstrapperExtension element. Only required if you want to reference this element using a BootstrapperExtensionRef element.</xs:documentation>
681 </xs:annotation>
682 </xs:attribute>
683 <xs:attribute name="Name" type="xs:string">
684 <xs:annotation>
685 <xs:documentation>
686 The relative destination path and file name for the bundle extension DLL.
687 The default is the source file name. Use this attribute to rename the bundle extension DLL or extract it into a subfolder.
688 At a minimum, the Name or SourceFile attribute must be specified.
689 This must be a relative path ('\foo' or 'C:\foo' is not allowed).
690 </xs:documentation>
691 </xs:annotation>
692 </xs:attribute>
693 <xs:attribute name="SourceFile" type="xs:string">
694 <xs:annotation>
695 <xs:documentation>
696 The DLL with the bundle extension entry function.
697 The default value is the Name attribute, if provided.
698 At a minimum, the SourceFile or Name attribute must be specified.
699 </xs:documentation>
700 </xs:annotation>
701 </xs:attribute>
702 </xs:complexType>
703 </xs:element>
704 <xs:element name="BootstrapperExtensionRef">
705 <xs:annotation>
706 <xs:appinfo>
707 <xse:seeAlso ref="BootstrapperExtension" />
708 </xs:appinfo>
709 <xs:documentation>[WiX v5] Used to reference a BootstrapperExtension element.</xs:documentation>
710 </xs:annotation>
711 <xs:complexType>
712 <xs:choice minOccurs="0" maxOccurs="unbounded">
713 <xs:any namespace="##other" processContents="lax">
714 <xs:annotation>
715 <xs:documentation>
716 Extensibility point in the WiX XML Schema. Schema extensions can register additional
717 elements at this point in the schema.
718 </xs:documentation>
719 </xs:annotation>
720 </xs:any>
721 </xs:choice>
722 <xs:attribute name="Id" type="xs:string" use="required">
723 <xs:annotation>
724 <xs:documentation>The identifier of the BootstrapperExtension element to reference.</xs:documentation>
725 </xs:annotation>
726 </xs:attribute>
727 <xs:anyAttribute namespace="##other" processContents="lax">
728 <xs:annotation>
729 <xs:documentation>
730 Extensibility point in the WiX XML Schema. Schema extensions can register additional
731 attributes at this point in the schema.
732 </xs:documentation>
733 </xs:annotation>
734 </xs:anyAttribute>
735 </xs:complexType>
736 </xs:element>
737 <xs:element name="BundleExtension">
738 <xs:annotation>
739 <xs:documentation>[WIX v4 only]An extension to the Burn engine. Currently requires a WiX compiler extension to do anything useful.</xs:documentation>
740 </xs:annotation>
741 <xs:complexType>
742 <xs:choice minOccurs="0" maxOccurs="unbounded">
743 <xs:element ref="Payload" />
744 <xs:element ref="PayloadGroupRef" />
745 <xs:any namespace="##other" processContents="lax">
746 <xs:annotation>
747 <xs:documentation>
748 Extensibility point in the WiX XML Schema. Schema extensions can register additional
749 elements at this point in the schema.
750 </xs:documentation>
751 </xs:annotation>
752 </xs:any>
753 </xs:choice>
754 <xs:attribute name="Id" type="xs:string">
755 <xs:annotation>
756 <xs:documentation>The identifier of the BundleExtension element. Only required if you want to reference this element using a BundleExtensionRef element.</xs:documentation>
757 </xs:annotation>
758 </xs:attribute>
759 <xs:attribute name="Name" type="xs:string">
760 <xs:annotation>
761 <xs:documentation>
762 The relative destination path and file name for the bundle extension DLL.
763 The default is the source file name. Use this attribute to rename the bundle extension DLL or extract it into a subfolder.
764 At a minimum, the Name or SourceFile attribute must be specified.
765 This must be a relative path ('\foo' or 'C:\foo' is not allowed).
766 </xs:documentation>
767 </xs:annotation>
768 </xs:attribute>
769 <xs:attribute name="SourceFile" type="xs:string">
770 <xs:annotation>
771 <xs:documentation>
772 The DLL with the bundle extension entry function.
773 The default value is the Name attribute, if provided.
774 At a minimum, the SourceFile or Name attribute must be specified.
775 </xs:documentation>
776 </xs:annotation>
777 </xs:attribute>
778 </xs:complexType>
779 </xs:element>
780 <xs:element name="BundleExtensionRef">
781 <xs:annotation>
782 <xs:appinfo>
783 <xse:seeAlso ref="BundleExtension" />
784 </xs:appinfo>
785 <xs:documentation>[WiX v4 only] Used to reference a BundleExtension element.</xs:documentation>
786 </xs:annotation>
787 <xs:complexType>
788 <xs:choice minOccurs="0" maxOccurs="unbounded">
789 <xs:any namespace="##other" processContents="lax">
790 <xs:annotation>
791 <xs:documentation>
792 Extensibility point in the WiX XML Schema. Schema extensions can register additional
793 elements at this point in the schema.
794 </xs:documentation>
795 </xs:annotation>
796 </xs:any>
797 </xs:choice>
798 <xs:attribute name="Id" type="xs:string" use="required">
799 <xs:annotation>
800 <xs:documentation>The identifier of the BundleExtension element to reference.</xs:documentation>
801 </xs:annotation>
802 </xs:attribute>
803 <xs:anyAttribute namespace="##other" processContents="lax">
804 <xs:annotation>
805 <xs:documentation>
806 Extensibility point in the WiX XML Schema. Schema extensions can register additional
807 attributes at this point in the schema.
808 </xs:documentation>
809 </xs:annotation>
810 </xs:anyAttribute>
811 </xs:complexType>
812 </xs:element>
813 <xs:element name="OptionalUpdateRegistration">
814 <xs:annotation>
815 <xs:documentation>Writes additional information to the Windows registry that can be used to detect the bundle.
816 This registration is intended primarily for update to an existing product.</xs:documentation>
817 <xs:appinfo>
818 <xse:remarks>
819 <html:p>The attributes are used to write the following registry values to the key:
820 <html:code>SOFTWARE\[Manufacturer]\Updates\[ProductFamily]\[Name]</html:code></html:p>
821 <html:ul>
822 <html:li>ThisVersionInstalled: Y</html:li>
823 <html:li>PackageName: (bundle name)</html:li>
824 <html:li>PackageVersion: (bundle version)</html:li>
825 <html:li>Publisher: [Manufacturer]</html:li>
826 <html:li>PublishingGroup: [Department]</html:li>
827 <html:li>ReleaseType: [Classification]</html:li>
828 <html:li>InstalledBy: [LogonUser]</html:li>
829 <html:li>InstalledDate: [Date]</html:li>
830 <html:li>InstallerName: (installer name)</html:li>
831 <html:li>InstallerVersion: (installer version)</html:li>
832 </html:ul>
833 </xse:remarks>
834 </xs:appinfo>
835 </xs:annotation>
836 <xs:complexType>
837 <xs:attribute name="Manufacturer" type="xs:string">
838 <xs:annotation>
839 <xs:documentation>The name of the manufacturer. The default is the Bundle/@Manufacturer attribute,
840 but may also be a short form, ex: Acme instead of Acme Corporation.
841 An error is generated at build time if neither attribute is specified.</xs:documentation>
842 </xs:annotation>
843 </xs:attribute>
844 <xs:attribute name="Department" type="xs:string">
845 <xs:annotation>
846 <xs:documentation>The name of the department or division publishing the update bundle.
847 The PublishingGroup registry value is not written if this attribute is not specified.</xs:documentation>
848 </xs:annotation>
849 </xs:attribute>
850 <xs:attribute name="ProductFamily" type="xs:string">
851 <xs:annotation>
852 <xs:documentation>The name of the family of products being updated. The default is the Bundle/@ParentName attribute.
853 The corresponding registry key is not created if neither attribute is specified.</xs:documentation>
854 </xs:annotation>
855 </xs:attribute>
856 <xs:attribute name="Name" type="xs:string">
857 <xs:annotation>
858 <xs:documentation>The name of the bundle. The default is the Bundle/@Name attribute,
859 but may also be a short form, ex: KB12345 instead of Update to Product (KB12345).
860 An error is generated at build time if neither attribute is specified.</xs:documentation>
861 </xs:annotation>
862 </xs:attribute>
863 <xs:attribute name="Classification" type="xs:string" default="Update">
864 <xs:annotation>
865 <xs:documentation>
866 The release type of the update bundle, such as Update, Security Update, Service Pack, etc.
867 The default value is Update.
868 </xs:documentation>
869 </xs:annotation>
870 </xs:attribute>
871 </xs:complexType>
872 </xs:element>
873 <xs:element name="Chain">
874 <xs:annotation>
875 <xs:documentation>Contains the chain of packages to install.</xs:documentation>
876 <xs:appinfo>
877 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
878 </xs:appinfo>
879 </xs:annotation>
880 <xs:complexType>
881 <xs:choice minOccurs="0" maxOccurs="unbounded">
882 <xs:element ref="MsiPackage" />
883 <xs:element ref="MspPackage" />
884 <xs:element ref="MsuPackage" />
885 <xs:element ref="ExePackage" />
886 <xs:element ref="BundlePackage" />
887 <xs:element ref="RollbackBoundary" />
888 <xs:element ref="PackageGroupRef" />
889 </xs:choice>
890 <xs:attribute name="DisableRollback" type="YesNoTypeUnion">
891 <xs:annotation>
892 <xs:documentation>
893 Specifies whether the bundle will attempt to roll back packages
894 executed in the chain. If "yes" is specified then when a vital
895 package fails to install only that package will roll back and the
896 chain will stop with the error. The default is "no" which
897 indicates all packages executed during the chain will be
898 rolledback to their previous state when a vital package fails.
899 </xs:documentation>
900 </xs:annotation>
901 </xs:attribute>
902 <xs:attribute name="DisableSystemRestore" type="YesNoTypeUnion">
903 <xs:annotation>
904 <xs:documentation>
905 Specifies whether the bundle will attempt to create a system
906 restore point when executing the chain. If "yes" is specified then
907 a system restore point will not be created. The default is "no" which
908 indicates a system restore point will be created when the bundle is
909 installed, uninstalled, repaired, modified, etc. If the system restore
910 point cannot be created, the bundle will log the issue and continue.
911 </xs:documentation>
912 </xs:annotation>
913 </xs:attribute>
914 <xs:attribute name="ParallelCache" type="YesNoTypeUnion">
915 <xs:annotation>
916 <xs:documentation>
917 Specifies whether the bundle will start installing packages
918 while other packages are still being cached. If "yes",
919 packages will start executing when a rollback boundary is
920 encountered. The default is "no" which dictates all packages
921 must be cached before any packages will start to be installed.
922 </xs:documentation>
923 </xs:annotation>
924 </xs:attribute>
925 </xs:complexType>
926 </xs:element>
927 <xs:element name="MsiPackage">
928 <xs:annotation>
929 <xs:documentation>Describes a single msi package to install.</xs:documentation>
930 </xs:annotation>
931 <xs:complexType>
932 <xs:choice minOccurs="0" maxOccurs="unbounded">
933 <xs:element ref="MsiProperty" />
934 <xs:element ref="SlipstreamMsp" />
935 <xs:element ref="Payload" />
936 <xs:element ref="PayloadGroupRef" />
937 <xs:element ref="MsiPackagePayload" />
938 <xs:element ref="Provides" />
939 <xs:any namespace="##other" processContents="lax">
940 <xs:annotation>
941 <xs:documentation>
942 Extensibility point in the WiX XML Schema. Schema extensions can register additional
943 elements at this point in the schema. The extension's
944 <html:code>CompilerExtension.ParseElement()</html:code>
945 method will be called with the package identifier as the first value in
946 <html:code>contextValues</html:code>.
947 </xs:documentation>
948 </xs:annotation>
949 </xs:any>
950 </xs:choice>
951 <xs:attributeGroup ref="ChainPackageCommonAttributes" />
952 <xs:attributeGroup ref="ChainPackagePermanentAttribute" />
953 <xs:attribute name="RepairCondition" type="xs:string">
954 <xs:annotation>
955 <xs:documentation>
956 A condition that determines during Repair if the package will be repaired by default.
957 This condition can use built-in variables and variables returned by searches.
958 </xs:documentation>
959 </xs:annotation>
960 </xs:attribute>
961 <xs:attribute name="EnableFeatureSelection" type="YesNoTypeUnion">
962 <xs:annotation>
963 <xs:documentation>
964 Specifies whether the bundle will allow individual control over the installation state of Features inside
965 the msi package. Managing feature selection requires special care to ensure the install, modify, update and
966 uninstall behavior of the package is always correct. The default is "no".
967 </xs:documentation>
968 </xs:annotation>
969 </xs:attribute>
970 <xs:attribute name="ForcePerMachine" type="YesNoTypeUnion">
971 <xs:annotation>
972 <xs:documentation>
973 Override the automatic per-machine detection of MSI packages and force the package to be per-machine.
974 The default is "no", which allows the tools to detect the expected value.
975 </xs:documentation>
976 </xs:annotation>
977 </xs:attribute>
978 <xs:attribute name="Visible" type="YesNoTypeUnion">
979 <xs:annotation>
980 <xs:documentation>
981 Specifies whether the MSI will be displayed in Programs and Features (also known as Add/Remove Programs). If "yes" is
982 specified the MSI package information will be displayed in Programs and Features. The default "no" indicates the MSI
983 will not be displayed.
984 </xs:documentation>
985 </xs:annotation>
986 </xs:attribute>
987 </xs:complexType>
988 </xs:element>
989 <xs:element name="MspPackage">
990 <xs:annotation>
991 <xs:documentation>Describes a single msp package to install.</xs:documentation>
992 <xs:appinfo>
993 <xse:seeAlso ref="SlipstreamMsp" />
994 </xs:appinfo>
995 </xs:annotation>
996 <xs:complexType>
997 <xs:choice minOccurs="0" maxOccurs="unbounded">
998 <xs:element ref="MsiProperty" />
999 <xs:element ref="Payload" />
1000 <xs:element ref="PayloadGroupRef" />
1001 <xs:element ref="MspPackagePayload" />
1002 <xs:element ref="Provides" />
1003 <xs:any namespace="##other" processContents="lax">
1004 <xs:annotation>
1005 <xs:documentation>
1006 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1007 elements at this point in the schema. The extension's
1008 <html:code>CompilerExtension.ParseElement()</html:code>
1009 method will be called with the package identifier as the first value in
1010 <html:code>contextValues</html:code>.
1011 </xs:documentation>
1012 </xs:annotation>
1013 </xs:any>
1014 </xs:choice>
1015 <xs:attributeGroup ref="ChainPackageCommonAttributes" />
1016 <xs:attributeGroup ref="ChainPackagePermanentAttribute" />
1017 <xs:attribute name="RepairCondition" type="xs:string">
1018 <xs:annotation>
1019 <xs:documentation>
1020 A condition that determines during Repair if the package will be repaired by default.
1021 This condition can use built-in variables and variables returned by searches.
1022 </xs:documentation>
1023 </xs:annotation>
1024 </xs:attribute>
1025 <xs:attribute name="PerMachine" type="YesNoDefaultTypeUnion">
1026 <xs:annotation>
1027 <xs:documentation>Indicates the package must be executed elevated. The default is "no".</xs:documentation>
1028 </xs:annotation>
1029 </xs:attribute>
1030 <xs:attribute name="Slipstream" type="YesNoTypeUnion">
1031 <xs:annotation>
1032 <xs:documentation>
1033 Specifies whether to automatically slipstream the patch for any target msi packages in the chain. The default is "no".
1034 Even when the value is "no", you can still author the SlipstreamMsp element under MsiPackage elements as desired.
1035 </xs:documentation>
1036 </xs:annotation>
1037 </xs:attribute>
1038 </xs:complexType>
1039 </xs:element>
1040 <xs:element name="MsuPackage">
1041 <xs:annotation>
1042 <xs:documentation>Describes a single msu package to install.</xs:documentation>
1043 </xs:annotation>
1044 <xs:complexType>
1045 <xs:choice minOccurs="0" maxOccurs="unbounded">
1046 <xs:element ref="Payload" />
1047 <xs:element ref="PayloadGroupRef" />
1048 <xs:element ref="MsuPackagePayload" />
1049 <xs:element ref="Provides" />
1050 <xs:any namespace="##other" processContents="lax">
1051 <xs:annotation>
1052 <xs:documentation>
1053 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1054 elements at this point in the schema. The extension's
1055 <html:code>CompilerExtension.ParseElement()</html:code>
1056 method will be called with the package identifier as the first value in
1057 <html:code>contextValues</html:code>.
1058 </xs:documentation>
1059 </xs:annotation>
1060 </xs:any>
1061 </xs:choice>
1062 <xs:attributeGroup ref="ChainPackageCommonAttributes" />
1063 <xs:attribute name="DetectCondition" type="xs:string">
1064 <xs:annotation>
1065 <xs:documentation>
1066 A condition that determines if the package is present on the target system. This condition can use built-in
1067 variables and variables returned by searches. This condition is necessary because Windows doesn't provide a
1068 method to detect the presence of an MsuPackage. Burn uses this condition to determine how to treat this
1069 package during a bundle action; for example, if this condition is false or omitted and the bundle is being
1070 installed, Burn will install this package.
1071 </xs:documentation>
1072 </xs:annotation>
1073 </xs:attribute>
1074 </xs:complexType>
1075 </xs:element>
1076 <xs:element name="ExePackage">
1077 <xs:annotation>
1078 <xs:documentation>Describes a single exe package to install.</xs:documentation>
1079 </xs:annotation>
1080 <xs:complexType>
1081 <xs:choice minOccurs="0" maxOccurs="unbounded">
1082 <xs:element ref="Payload" />
1083 <xs:element ref="PayloadGroupRef" />
1084 <xs:element ref="ExePackagePayload" />
1085 <xs:element ref="ExitCode" />
1086 <xs:element ref="CommandLine" />
1087 <xs:element ref="ArpEntry" />
1088 <xs:element ref="Provides" />
1089 <xs:any namespace="##other" processContents="lax">
1090 <xs:annotation>
1091 <xs:documentation>
1092 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1093 elements at this point in the schema. The extension's
1094 <html:code>CompilerExtension.ParseElement()</html:code>
1095 method will be called with the package identifier as the first value in
1096 <html:code>contextValues</html:code>.
1097 </xs:documentation>
1098 </xs:annotation>
1099 </xs:any>
1100 </xs:choice>
1101 <xs:attributeGroup ref="ChainPackageCommonAttributes" />
1102 <xs:attributeGroup ref="ChainPackagePermanentAttribute" />
1103 <xs:attribute name="DetectCondition" type="xs:string">
1104 <xs:annotation>
1105 <xs:documentation>
1106 A condition that determines if the package is present on the target system. This condition can use built-in
1107 variables and variables returned by searches. This condition is necessary because Windows doesn't provide a
1108 method to detect the presence of an ExePackage. Burn uses this condition to determine how to treat this
1109 package during a bundle action; for example, if this condition is false or omitted and the bundle is being
1110 installed, Burn will install this package.
1111 </xs:documentation>
1112 </xs:annotation>
1113 </xs:attribute>
1114 <xs:attribute name="RepairCondition" type="xs:string">
1115 <xs:annotation>
1116 <xs:documentation>
1117 A condition that determines during Repair if the package will be repaired by default.
1118 This condition can use built-in variables and variables returned by searches.
1119 This attribute may only be specified if RepairArguments is also specified.
1120 </xs:documentation>
1121 </xs:annotation>
1122 </xs:attribute>
1123 <xs:attribute name="InstallArguments" type="xs:string">
1124 <xs:annotation>
1125 <xs:documentation>The command-line arguments provided to the ExePackage during install. If this attribute is absent the executable will be launched with no command-line arguments.</xs:documentation>
1126 </xs:annotation>
1127 </xs:attribute>
1128 <xs:attribute name="RepairArguments" type="xs:string">
1129 <xs:annotation>
1130 <xs:documentation>
1131 The command-line arguments to specify to indicate a repair. If the executable package can be repaired but
1132 does not require any special command-line arguments to do so then set the attribute's value to blank. To
1133 indicate that the package does not support repair, omit this attribute.
1134 </xs:documentation>
1135 </xs:annotation>
1136 </xs:attribute>
1137 <xs:attribute name="UninstallArguments" type="xs:string">
1138 <xs:annotation>
1139 <xs:documentation>The command-line arguments provided to the ExePackage during uninstall. If this attribute is absent the executable will be launched with no command-line arguments. To prevent an ExePackage from being uninstalled set the Permanent attribute to "yes".</xs:documentation>
1140 </xs:annotation>
1141 </xs:attribute>
1142 <xs:attribute name="PerMachine" type="YesNoDefaultTypeUnion">
1143 <xs:annotation>
1144 <xs:documentation>Indicates the package must be executed elevated. The default is "no".</xs:documentation>
1145 </xs:annotation>
1146 </xs:attribute>
1147 <xs:attribute name="Bundle" type="YesNoTypeUnion">
1148 <xs:annotation>
1149 <xs:documentation>
1150 Indicates the package is a WiX bundle. The default is "no".
1151 If "yes", then the default Protocol value is "burn".
1152 The engine will prepend command line arguments such as "-norestart" for all operations,
1153 as well as avoid running this bundle as a related bundle.
1154 </xs:documentation>
1155 </xs:annotation>
1156 </xs:attribute>
1157 <xs:attribute name="Protocol" type="BurnExeProtocolType">
1158 <xs:annotation>
1159 <xs:documentation>Indicates the communication protocol the package supports for extended progress and error reporting. The default is "none".</xs:documentation>
1160 </xs:annotation>
1161 </xs:attribute>
1162 </xs:complexType>
1163 </xs:element>
1164 <xs:element name="BundlePackage">
1165 <xs:annotation>
1166 <xs:documentation>Describes a single bundle package to install.</xs:documentation>
1167 </xs:annotation>
1168 <xs:complexType>
1169 <xs:choice minOccurs="0" maxOccurs="unbounded">
1170 <xs:element ref="Payload" />
1171 <xs:element ref="PayloadGroupRef" />
1172 <xs:element ref="BundlePackagePayload" />
1173 <xs:element ref="ExitCode" />
1174 <xs:element ref="CommandLine" />
1175 <xs:element ref="Provides" />
1176 <xs:any namespace="##other" processContents="lax">
1177 <xs:annotation>
1178 <xs:documentation>
1179 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1180 elements at this point in the schema. The extension's
1181 <html:code>CompilerExtension.ParseElement()</html:code>
1182 method will be called with the package identifier as the first value in
1183 <html:code>contextValues</html:code>.
1184 </xs:documentation>
1185 </xs:annotation>
1186 </xs:any>
1187 </xs:choice>
1188 <xs:attributeGroup ref="ChainPackageCommonAttributes" />
1189 <xs:attributeGroup ref="ChainPackagePermanentAttribute" />
1190 <xs:attribute name="RepairCondition" type="xs:string">
1191 <xs:annotation>
1192 <xs:documentation>
1193 A condition that determines during Repair if the package will be repaired by default.
1194 This condition can use built-in variables and variables returned by searches.
1195 </xs:documentation>
1196 </xs:annotation>
1197 </xs:attribute>
1198 <xs:attribute name="InstallArguments" type="xs:string">
1199 <xs:annotation>
1200 <xs:documentation>
1201 The command-line arguments provided to the BundlePackage during install.
1202 </xs:documentation>
1203 </xs:annotation>
1204 </xs:attribute>
1205 <xs:attribute name="RepairArguments" type="xs:string">
1206 <xs:annotation>
1207 <xs:documentation>
1208 The command-line arguments provided to the BundlePackage during repair.
1209 "/repair" is added automatically.
1210 </xs:documentation>
1211 </xs:annotation>
1212 </xs:attribute>
1213 <xs:attribute name="UninstallArguments" type="xs:string">
1214 <xs:annotation>
1215 <xs:documentation>
1216 The command-line arguments provided to the BundlePackage during uninstall.
1217 "/uninstall" is added automatically.
1218 </xs:documentation>
1219 </xs:annotation>
1220 </xs:attribute>
1221 <xs:attribute name="Visible" type="YesNoTypeUnion">
1222 <xs:annotation>
1223 <xs:documentation>
1224 Specifies whether the bundle will be displayed in Programs and Features (also known as Add/Remove Programs).
1225 If "yes" is specified the bundle package information will be displayed in Programs and Features.
1226 "no" indicates the bundle will not be displayed.
1227 If not specified, the default is the value of the Permanent attribute.
1228 </xs:documentation>
1229 </xs:annotation>
1230 </xs:attribute>
1231 </xs:complexType>
1232 </xs:element>
1233 <xs:element name="RollbackBoundary">
1234 <xs:annotation>
1235 <xs:documentation>Describes a rollback boundary in the chain.</xs:documentation>
1236 </xs:annotation>
1237 <xs:complexType>
1238 <xs:choice minOccurs="0" maxOccurs="unbounded">
1239 <xs:any namespace="##other" processContents="lax">
1240 <xs:annotation>
1241 <xs:documentation>
1242 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1243 elements at this point in the schema. The extension's
1244 <html:code>CompilerExtension.ParseElement()</html:code>
1245 method will be called with the rollback boundary identifier as the 'RollbackBoundaryId' key in
1246 <html:code>contextValues</html:code>.
1247 </xs:documentation>
1248 </xs:annotation>
1249 </xs:any>
1250 </xs:choice>
1251 <xs:attribute name="Id" type="xs:string">
1252 <xs:annotation>
1253 <xs:documentation>
1254 Identifier for this rollback boundary, for ordering and cross-referencing. If this attribute is
1255 not provided a stable identifier will be generated.
1256 </xs:documentation>
1257 </xs:annotation>
1258 </xs:attribute>
1259 <xs:attribute name="Vital" type="YesNoTypeUnion">
1260 <xs:annotation>
1261 <xs:documentation>
1262 Specifies whether the rollback boundary aborts the chain. The default "yes" indicates that if
1263 the rollback boundary is encountered then the chain will fail and roll back or stop. If "no"
1264 is specified then the chain should continue successfuly at the next rollback boundary.
1265 </xs:documentation>
1266 </xs:annotation>
1267 </xs:attribute>
1268 <xs:attribute name="LogPathVariable" type="xs:string">
1269 <xs:annotation>
1270 <xs:documentation>
1271 Name of a Variable that will hold the path to the log file when the rollback boundary is a MSI package transaction.
1272 An empty value will cause the variable to not be set. The default is "WixBundleLog_[RollbackBoundaryId]".
1273 </xs:documentation>
1274 </xs:annotation>
1275 </xs:attribute>
1276 <xs:attribute name="Transaction" type="YesNoTypeUnion">
1277 <xs:annotation>
1278 <xs:documentation>
1279 Specifies whether the rollback boundary is wrapped in an MSI transaction. The default is "no".
1280 Only MsiPackages and MspPackages may be inside of a rollback boundary with Transaction set to "yes".
1281 </xs:documentation>
1282 </xs:annotation>
1283 </xs:attribute>
1284 </xs:complexType>
1285 </xs:element>
1286 <xs:attributeGroup name="ChainPackagePermanentAttribute">
1287 <xs:attribute name="Permanent" type="YesNoTypeUnion">
1288 <xs:annotation>
1289 <xs:documentation>
1290 Specifies whether the package can be uninstalled. The default is "no".
1291 </xs:documentation>
1292 </xs:annotation>
1293 </xs:attribute>
1294 </xs:attributeGroup>
1295 <xs:attributeGroup name="ChainPackageCommonAttributes">
1296 <xs:attribute name="SourceFile" type="xs:string">
1297 <xs:annotation>
1298 <xs:documentation>
1299 Location of the package to add to the bundle.
1300 The default value is the Name attribute, if provided.
1301 At a minimum, the SourceFile or Name attribute must be specified.
1302 Must not be specified if the package payload is given by the *PackagePayload element.
1303 </xs:documentation>
1304 </xs:annotation>
1305 </xs:attribute>
1306 <xs:attribute name="Name" type="xs:string">
1307 <xs:annotation>
1308 <xs:documentation>
1309 The destination path and file name for this chain payload. Use this attribute to rename the
1310 chain entry point or extract it into a subfolder. The default value is the file name from the
1311 SourceFile attribute, if provided. At a minimum, the Name or SourceFile attribute must be specified.
1312 This must be a relative path ('\foo' or 'C:\foo' is not allowed).
1313 Must not be specified if the package payload is given by the *PackagePayload element.
1314 </xs:documentation>
1315 </xs:annotation>
1316 </xs:attribute>
1317 <xs:attribute name="DownloadUrl" type="xs:string">
1318 <xs:annotation>
1319 <xs:documentation>
1320 <html:p>The URL to use to download the package. The following substitutions are supported:</html:p>
1321 <html:ul>
1322 <html:li>{0} is replaced by the package Id.</html:li>
1323 <html:li>{1} is replaced by the payload Id.</html:li>
1324 <html:li>{2} is replaced by the payload file name.</html:li>
1325 </html:ul>
1326 Must not be specified if the package payload is given by the *PackagePayload element.
1327 </xs:documentation>
1328 </xs:annotation>
1329 </xs:attribute>
1330 <xs:attribute name="Id" type="xs:string">
1331 <xs:annotation>
1332 <xs:documentation>
1333 Identifier for this package, for ordering and cross-referencing. The default is the Name attribute
1334 modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores).
1335 </xs:documentation>
1336 </xs:annotation>
1337 </xs:attribute>
1338 <xs:attribute name="After" type="xs:string">
1339 <xs:annotation>
1340 <xs:documentation>
1341 The identifier of another package that this one should be installed after. By default the After
1342 attribute is set to the previous sibling package in the Chain or PackageGroup element. If this
1343 attribute is specified ensure that a cycle is not created explicitly or implicitly.
1344 </xs:documentation>
1345 </xs:annotation>
1346 </xs:attribute>
1347 <xs:attribute name="InstallSize" type="xs:string">
1348 <xs:annotation>
1349 <xs:documentation>
1350 The size this package will take on disk in bytes after it is installed. By default, the binder will
1351 calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs)
1352 and use the total for the install size of the package.
1353 </xs:documentation>
1354 </xs:annotation>
1355 </xs:attribute>
1356 <xs:attribute name="InstallCondition" type="xs:string">
1357 <xs:annotation>
1358 <xs:documentation>
1359 A condition to evaluate before installing the package. The package will only be installed if the condition
1360 evaluates to true. If the condition evaluates to false and the bundle is being installed, repaired, or modified,
1361 the package will be uninstalled.
1362 </xs:documentation>
1363 </xs:annotation>
1364 </xs:attribute>
1365 <xs:attribute name="Cache" type="KeepRemoveForceTypeUnion">
1366 <xs:annotation>
1367 <xs:documentation>Whether to cache the package. The default is "keep".</xs:documentation>
1368 </xs:annotation>
1369 </xs:attribute>
1370 <xs:attribute name="CacheId" type="xs:string">
1371 <xs:annotation>
1372 <xs:documentation>The identifier to use when caching the package.</xs:documentation>
1373 </xs:annotation>
1374 </xs:attribute>
1375 <xs:attribute name="DisplayName" type="xs:string">
1376 <xs:annotation>
1377 <xs:documentation>
1378 Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages
1379 use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use
1380 the DisplayName patch metadata property. Other package types must use this attribute to define a display name in the
1381 bootstrapper application data manifest.
1382 </xs:documentation>
1383 </xs:annotation>
1384 </xs:attribute>
1385 <xs:attribute name="Description" type="xs:string">
1386 <xs:annotation>
1387 <xs:documentation>
1388 Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages
1389 use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use
1390 the Description patch metadata property. Other package types must use this attribute to define a description in the
1391 bootstrapper application data manifest.
1392 </xs:documentation>
1393 </xs:annotation>
1394 </xs:attribute>
1395 <xs:attribute name="LogPathVariable" type="xs:string">
1396 <xs:annotation>
1397 <xs:documentation>
1398 Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not
1399 be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging.
1400 </xs:documentation>
1401 </xs:annotation>
1402 </xs:attribute>
1403 <xs:attribute name="RollbackLogPathVariable" type="xs:string">
1404 <xs:annotation>
1405 <xs:documentation>
1406 Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause
1407 the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which
1408 default to no logging.
1409 </xs:documentation>
1410 </xs:annotation>
1411 </xs:attribute>
1412 <xs:attribute name="Vital" type="YesNoTypeUnion">
1413 <xs:annotation>
1414 <xs:documentation>
1415 Specifies whether the package must succeed for the chain to continue. The default "yes"
1416 indicates that if the package fails then the chain will fail and roll back or stop. If
1417 "no" is specified then the chain will continue even if the package reports failure.
1418 </xs:documentation>
1419 </xs:annotation>
1420 </xs:attribute>
1421 <xs:attribute name="Compressed" type="YesNoDefaultTypeUnion">
1422 <xs:annotation>
1423 <xs:documentation>
1424 Whether the package payload should be embedded in a container or left as an external payload.
1425 Must not be specified if the package payload is given by the *PackagePayload element.
1426 </xs:documentation>
1427 </xs:annotation>
1428 </xs:attribute>
1429 <xs:anyAttribute namespace="##other" processContents="lax">
1430 <xs:annotation>
1431 <xs:documentation>
1432 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1433 attributes at this point in the schema. The extension's
1434 <html:code>CompilerExtension.ParseAttribute()</html:code>
1435 method will be called with the package identifier in
1436 <html:code>contextValues["PackageId"]</html:code>.
1437 </xs:documentation>
1438 </xs:annotation>
1439 </xs:anyAttribute>
1440 </xs:attributeGroup>
1441 <xs:element name="PackageGroup">
1442 <xs:annotation>
1443 <xs:documentation>Describes a package group to a bootstrapper.</xs:documentation>
1444 <xs:appinfo>
1445 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1446 </xs:appinfo>
1447 </xs:annotation>
1448 <xs:complexType>
1449 <xs:choice minOccurs="0" maxOccurs="unbounded">
1450 <xs:element ref="MsiPackage" />
1451 <xs:element ref="MspPackage" />
1452 <xs:element ref="MsuPackage" />
1453 <xs:element ref="ExePackage" />
1454 <xs:element ref="BundlePackage" />
1455 <xs:element ref="RollbackBoundary" />
1456 <xs:element ref="PackageGroupRef" />
1457 </xs:choice>
1458 <xs:attribute name="Id" type="xs:string" use="required">
1459 <xs:annotation>
1460 <xs:documentation>Identifier for package group.</xs:documentation>
1461 </xs:annotation>
1462 </xs:attribute>
1463 </xs:complexType>
1464 </xs:element>
1465 <xs:element name="PackageGroupRef">
1466 <xs:annotation>
1467 <xs:documentation>Create a reference to PackageGroup element that exists inside a Bundle or Fragment element.</xs:documentation>
1468 <xs:appinfo>
1469 <xse:seeAlso ref="PackageGroup" />
1470 </xs:appinfo>
1471 </xs:annotation>
1472 <xs:complexType>
1473 <xs:attribute name="Id" type="xs:string" use="required">
1474 <xs:annotation>
1475 <xs:documentation>The identifier of the PackageGroup element to reference.</xs:documentation>
1476 </xs:annotation>
1477 </xs:attribute>
1478 <xs:attribute name="After" type="xs:string">
1479 <xs:annotation>
1480 <xs:documentation>The identifier of a package that this group should be installed after.</xs:documentation>
1481 </xs:annotation>
1482 </xs:attribute>
1483 </xs:complexType>
1484 </xs:element>
1485 <xs:element name="MsiProperty">
1486 <xs:annotation>
1487 <xs:documentation>Allows an MSI property to be set based on the value of a burn engine expression.</xs:documentation>
1488 <xs:appinfo>
1489 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="MsiPackage" />
1490 </xs:appinfo>
1491 </xs:annotation>
1492 <xs:complexType>
1493 <xs:attribute name="Name" type="xs:string" use="required">
1494 <xs:annotation>
1495 <xs:documentation>The name of the MSI property to set. Burn controls the follow MSI properties so they cannot be set with MsiProperty: ACTION, ALLUSERS, REBOOT, REINSTALL, REINSTALLMODE</xs:documentation>
1496 </xs:annotation>
1497 </xs:attribute>
1498 <xs:attribute name="Value" type="xs:string" use="required">
1499 <xs:annotation>
1500 <xs:documentation>The value to set the property to. This string is evaluated by the Burn engine and can be as simple as a Burn engine variable reference or as complex as a full expression.</xs:documentation>
1501 </xs:annotation>
1502 </xs:attribute>
1503 <xs:attribute name="Condition" type="xs:string">
1504 <xs:annotation>
1505 <xs:documentation>Condition to determine whether to pass the MSI Property. If this evaluates to false, the MSI Property is not passed along.</xs:documentation>
1506 </xs:annotation>
1507 </xs:attribute>
1508 </xs:complexType>
1509 </xs:element>
1510 <xs:element name="SlipstreamMsp">
1511 <xs:annotation>
1512 <xs:documentation>Specifies a patch included in the same bundle that is installed when the parent MSI package is installed.</xs:documentation>
1513 <xs:appinfo>
1514 <xse:seeAlso ref="MspPackage" />
1515 <xse:remarks>
1516 <html:p>You can also specify that any MspPackage elements in the chain are automatically slipstreamed by setting the Slipstream attribute of an MspPackage to "yes". This will reduce the amount of authoring you need to write and will determine which msi packages can slipstream patches when building a bundle.</html:p>
1517 </xse:remarks>
1518 </xs:appinfo>
1519 </xs:annotation>
1520 <xs:complexType>
1521 <xs:attribute name="Id" type="xs:string" use="required">
1522 <xs:annotation>
1523 <xs:documentation>The identifier for a MspPackage in the bundle.</xs:documentation>
1524 </xs:annotation>
1525 </xs:attribute>
1526 </xs:complexType>
1527 </xs:element>
1528 <xs:element name="Variable">
1529 <xs:annotation>
1530 <xs:documentation>Describes a burn engine variable to define.</xs:documentation>
1531 </xs:annotation>
1532 <xs:complexType>
1533 <xs:attribute name="Hidden" type="YesNoTypeUnion">
1534 <xs:annotation>
1535 <xs:documentation>Whether the value of the variable should be hidden.</xs:documentation>
1536 </xs:annotation>
1537 </xs:attribute>
1538 <xs:attribute name="Name" type="xs:string" use="required">
1539 <xs:annotation>
1540 <xs:documentation>The name for the variable.</xs:documentation>
1541 </xs:annotation>
1542 </xs:attribute>
1543 <xs:attribute name="Persisted" type="YesNoTypeUnion">
1544 <xs:annotation>
1545 <xs:documentation>Whether the variable should be persisted.</xs:documentation>
1546 </xs:annotation>
1547 </xs:attribute>
1548 <xs:attribute name="Value" type="xs:string">
1549 <xs:annotation>
1550 <xs:documentation>Starting value for the variable.</xs:documentation>
1551 </xs:annotation>
1552 </xs:attribute>
1553 <xs:attribute name="Type" type="VariableType">
1554 <xs:annotation>
1555 <xs:documentation>Type of the variable, inferred from the value if not specified.</xs:documentation>
1556 </xs:annotation>
1557 </xs:attribute>
1558 <xs:anyAttribute namespace="##other" processContents="lax">
1559 <xs:annotation>
1560 <xs:documentation>
1561 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1562 attributes at this point in the schema.
1563 </xs:documentation>
1564 </xs:annotation>
1565 </xs:anyAttribute>
1566 </xs:complexType>
1567 </xs:element>
1568 <xs:attributeGroup name="SearchCommonAttributes">
1569 <xs:attribute name="Id" type="xs:string">
1570 <xs:annotation>
1571 <xs:documentation>Id of the search for ordering and dependency.</xs:documentation>
1572 </xs:annotation>
1573 </xs:attribute>
1574 <xs:attribute name="Variable" type="xs:string" use="required">
1575 <xs:annotation>
1576 <xs:documentation>Name of the variable in which to place the result of the search.</xs:documentation>
1577 </xs:annotation>
1578 </xs:attribute>
1579 <xs:attribute name="Condition" type="xs:string">
1580 <xs:annotation>
1581 <xs:documentation>Condition for evaluating the search. If this evaluates to false, the search is not executed at all.</xs:documentation>
1582 </xs:annotation>
1583 </xs:attribute>
1584 <xs:attribute name="After" type="xs:string">
1585 <xs:annotation>
1586 <xs:documentation>Id of the search that this one should come after.</xs:documentation>
1587 </xs:annotation>
1588 </xs:attribute>
1589 </xs:attributeGroup>
1590 <xs:element name="SetVariable">
1591 <xs:annotation>
1592 <xs:documentation>Schedules a "search" that sets a variable to the given value.</xs:documentation>
1593 </xs:annotation>
1594 <xs:complexType>
1595 <xs:attributeGroup ref="SearchCommonAttributes" />
1596 <xs:attribute name="Value" type="xs:string">
1597 <xs:annotation>
1598 <xs:documentation>
1599 New value for the variable. This string gets formatted, then converted to the specified type, then assigned to the variable.
1600 Leaving Value and Type unspecified will clear the variable.
1601 </xs:documentation>
1602 </xs:annotation>
1603 </xs:attribute>
1604 <xs:attribute name="Type" type="VariableType">
1605 <xs:annotation>
1606 <xs:documentation>Type of the variable, inferred from the value if not specified.</xs:documentation>
1607 </xs:annotation>
1608 </xs:attribute>
1609 <xs:anyAttribute namespace="##other" processContents="lax">
1610 <xs:annotation>
1611 <xs:documentation>
1612 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1613 attributes at this point in the schema.
1614 </xs:documentation>
1615 </xs:annotation>
1616 </xs:anyAttribute>
1617 </xs:complexType>
1618 </xs:element>
1619 <xs:element name="SetVariableRef">
1620 <xs:annotation>
1621 <xs:appinfo>
1622 <xse:seeAlso ref="SetVariable" />
1623 </xs:appinfo>
1624 <xs:documentation>Used to reference a SetVariable element.</xs:documentation>
1625 </xs:annotation>
1626 <xs:complexType>
1627 <xs:choice minOccurs="0" maxOccurs="unbounded">
1628 <xs:any namespace="##other" processContents="lax">
1629 <xs:annotation>
1630 <xs:documentation>
1631 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1632 elements at this point in the schema.
1633 </xs:documentation>
1634 </xs:annotation>
1635 </xs:any>
1636 </xs:choice>
1637 <xs:attribute name="Id" type="xs:string" use="required">
1638 <xs:annotation>
1639 <xs:documentation>The identifier of the SetVariable element to reference.</xs:documentation>
1640 </xs:annotation>
1641 </xs:attribute>
1642 <xs:anyAttribute namespace="##other" processContents="lax">
1643 <xs:annotation>
1644 <xs:documentation>
1645 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1646 attributes at this point in the schema.
1647 </xs:documentation>
1648 </xs:annotation>
1649 </xs:anyAttribute>
1650 </xs:complexType>
1651 </xs:element>
1652 <xs:element name="Container">
1653 <xs:annotation>
1654 <xs:documentation>Representation of a file that contains one or more files.</xs:documentation>
1655 </xs:annotation>
1656 <xs:complexType>
1657 <xs:choice minOccurs="0" maxOccurs="unbounded">
1658 <xs:element ref="PackageGroupRef" />
1659 </xs:choice>
1660 <xs:attribute name="DownloadUrl" type="xs:string">
1661 <xs:annotation>
1662 <xs:documentation>
1663 <html:p>The URL to use to download the container. This attribute is only valid when the container is detached. The
1664 following substitutions are supported:</html:p>
1665 <html:ul>
1666 <html:li>{0} is always null.</html:li>
1667 <html:li>{1} is replaced by the container Id.</html:li>
1668 <html:li>{2} is replaced by the container file name.</html:li>
1669 </html:ul>
1670 </xs:documentation>
1671 </xs:annotation>
1672 </xs:attribute>
1673 <xs:attribute name="Id" type="xs:string">
1674 <xs:annotation>
1675 <xs:documentation>The unique identifier for the container. If this attribute is not specified the Name attribute will be used.</xs:documentation>
1676 </xs:annotation>
1677 </xs:attribute>
1678 <xs:attribute name="Name" type="xs:string">
1679 <xs:annotation>
1680 <xs:documentation>The file name for this container. A relative path may be provided to place the container in a sub-folder of the bundle.</xs:documentation>
1681 </xs:annotation>
1682 </xs:attribute>
1683 <xs:attribute name="Type" type="BurnContainerType">
1684 <xs:annotation>
1685 <xs:documentation>
1686 Indicates whether the container is "attached" to the bundle executable or placed external to the bundle extecutable as "detached". If
1687 this attribute is not specified, the default is to create a detached container.
1688 </xs:documentation>
1689 </xs:annotation>
1690 </xs:attribute>
1691 </xs:complexType>
1692 </xs:element>
1693 <xs:element name="ContainerRef">
1694 <xs:annotation>
1695 <xs:documentation>Create a reference to an existing Container element.</xs:documentation>
1696 <xs:appinfo>
1697 <xse:seeAlso ref="Container" />
1698 </xs:appinfo>
1699 </xs:annotation>
1700 <xs:complexType>
1701 <xs:attribute name="Id" type="xs:string" use="required">
1702 <xs:annotation>
1703 <xs:documentation>The identifier of Container element to reference.</xs:documentation>
1704 </xs:annotation>
1705 </xs:attribute>
1706 </xs:complexType>
1707 </xs:element>
1708 <xs:element name="ArpEntry">
1709 <xs:annotation>
1710 <xs:documentation>
1711 Information about the Add/Remove Programs entry that is installed by the package.
1712 ArpEntry may not be specified with DetectCondition or UninstallArguments.
1713 </xs:documentation>
1714 </xs:annotation>
1715 <xs:complexType>
1716 <xs:attribute name="Id" type="xs:string" use="required">
1717 <xs:annotation>
1718 <xs:documentation>
1719 The id of the ARP entry.
1720 </xs:documentation>
1721 </xs:annotation>
1722 </xs:attribute>
1723 <xs:attribute name="Win64" type="YesNoTypeUnion" use="required">
1724 <xs:annotation>
1725 <xs:documentation>
1726 Whether the ARP entry is 64-bit.
1727 </xs:documentation>
1728 </xs:annotation>
1729 </xs:attribute>
1730 <xs:attribute name="Version" type="xs:string" use="required">
1731 <xs:annotation>
1732 <xs:documentation>
1733 The DisplayVersion value of the ARP entry that is installed by this package.
1734 Older or missing versions cause this package to be detected as absent.
1735 Newer versions cause this package to be detected as obsolete.
1736 </xs:documentation>
1737 </xs:annotation>
1738 </xs:attribute>
1739 <xs:attribute name="AdditionalUninstallArguments" type="xs:string">
1740 <xs:annotation>
1741 <xs:documentation>
1742 Additional arguments for the uninstall command line.
1743 </xs:documentation>
1744 </xs:annotation>
1745 </xs:attribute>
1746 <xs:attribute name="UseUninstallString" type="YesNoTypeUnion">
1747 <xs:annotation>
1748 <xs:documentation>
1749 If yes, use the `UninstallString` value instead of the default `QuietUninstallString`.
1750 </xs:documentation>
1751 </xs:annotation>
1752 </xs:attribute>
1753 </xs:complexType>
1754 </xs:element>
1755 <xs:element name="ExitCode">
1756 <xs:annotation>
1757 <xs:documentation>Describes map of exit code returned from executable package to a bootstrapper behavior.</xs:documentation>
1758 </xs:annotation>
1759 <xs:complexType>
1760 <xs:attribute name="Value" type="NegativeInteger">
1761 <xs:annotation>
1762 <xs:documentation>Exit code returned from executable package. If no value is provided it means all values not explicitly set default to this behavior.</xs:documentation>
1763 </xs:annotation>
1764 </xs:attribute>
1765 <xs:attribute name="Behavior" use="required">
1766 <xs:annotation>
1767 <xs:documentation>Choose one of the supported behaviors error codes: success, error, scheduleReboot, forceReboot, errorScheduleReboot, errorForceReboot.</xs:documentation>
1768 </xs:annotation>
1769 <xs:simpleType>
1770 <xs:restriction base="xs:string">
1771 <xs:enumeration value="success">
1772 <xs:annotation>
1773 <xs:documentation>The process completed successfully.</xs:documentation>
1774 </xs:annotation>
1775 </xs:enumeration>
1776 <xs:enumeration value="error">
1777 <xs:annotation>
1778 <xs:documentation>The process failed.</xs:documentation>
1779 </xs:annotation>
1780 </xs:enumeration>
1781 <xs:enumeration value="scheduleReboot">
1782 <xs:annotation>
1783 <xs:documentation>The process completed successfully and requires the machine to be restarted.</xs:documentation>
1784 </xs:annotation>
1785 </xs:enumeration>
1786 <xs:enumeration value="forceReboot">
1787 <xs:annotation>
1788 <xs:documentation>The process completed successfully and initiated a restart.</xs:documentation>
1789 </xs:annotation>
1790 </xs:enumeration>
1791 <xs:enumeration value="errorScheduleReboot">
1792 <xs:annotation>
1793 <xs:documentation>The process failed and requires the machine to be restarted.</xs:documentation>
1794 </xs:annotation>
1795 </xs:enumeration>
1796 <xs:enumeration value="errorForceReboot">
1797 <xs:annotation>
1798 <xs:documentation>The process failed and initiated a restart.</xs:documentation>
1799 </xs:annotation>
1800 </xs:enumeration>
1801 </xs:restriction>
1802 </xs:simpleType>
1803 </xs:attribute>
1804 </xs:complexType>
1805 </xs:element>
1806 <xs:element name="CommandLine">
1807 <xs:annotation>
1808 <xs:documentation>Describes additional, conditional command-line arguments for an ExePackage or BundlePackage.</xs:documentation>
1809 </xs:annotation>
1810 <xs:complexType>
1811 <xs:attribute name="InstallArgument" type="xs:string">
1812 <xs:annotation>
1813 <xs:documentation>Additional command-line arguments to apply during package installation if Condition is true.</xs:documentation>
1814 </xs:annotation>
1815 </xs:attribute>
1816 <xs:attribute name="UninstallArgument" type="xs:string">
1817 <xs:annotation>
1818 <xs:documentation>Additional command-line arguments to apply during package uninstallation if Condition is true.</xs:documentation>
1819 </xs:annotation>
1820 </xs:attribute>
1821 <xs:attribute name="RepairArgument" type="xs:string">
1822 <xs:annotation>
1823 <xs:documentation>Additional command-line arguments to apply during package repair if Condition is true.</xs:documentation>
1824 </xs:annotation>
1825 </xs:attribute>
1826 <xs:attribute name="Condition" type="xs:string">
1827 <xs:annotation>
1828 <xs:documentation>
1829 The condition that controls whether the command-line arguments specified in the
1830 InstallArgument, UninstallArgument, or RepairArgument attributes are appended to the
1831 command line passed to the package. Which attribute is used depends on the
1832 action being applied to the package. For example, when the package is
1833 being installed, the InstallArgument attribute value is appended to the command
1834 line when the package is executed.
1835 </xs:documentation>
1836 </xs:annotation>
1837 </xs:attribute>
1838 </xs:complexType>
1839 </xs:element>
1840 <xs:element name="Payload">
1841 <xs:annotation>
1842 <xs:documentation>Describes a payload to a bootstrapper.</xs:documentation>
1843 </xs:annotation>
1844 <xs:complexType>
1845 <xs:attribute name="Id" type="xs:string">
1846 <xs:annotation>
1847 <xs:documentation>The identifier of Payload element.</xs:documentation>
1848 </xs:annotation>
1849 </xs:attribute>
1850 <xs:attribute name="CertificatePublicKey" type="xs:string">
1851 <xs:annotation>
1852 <xs:documentation>Optional public key of the certificate used to sign the payload. It is not recommended to use this attribute and rely on the Hash alone.</xs:documentation>
1853 </xs:annotation>
1854 </xs:attribute>
1855 <xs:attribute name="CertificateThumbprint" type="xs:string">
1856 <xs:annotation>
1857 <xs:documentation>Optional thumbprint of the certificate used to sign the payload. It is not recommended to use this attribute and rely on the Hash alone.</xs:documentation>
1858 </xs:annotation>
1859 </xs:attribute>
1860 <xs:attribute name="Compressed" type="YesNoDefaultTypeUnion">
1861 <xs:annotation>
1862 <xs:documentation>Whether the payload should be embedded in a container or left as an external payload.</xs:documentation>
1863 </xs:annotation>
1864 </xs:attribute>
1865 <xs:attribute name="Hash" type="xs:string">
1866 <xs:annotation>
1867 <xs:documentation>Optional SHA256 hash of the payload. Must be provided if the SourceFile attribute is not used.</xs:documentation>
1868 </xs:annotation>
1869 </xs:attribute>
1870 <xs:attribute name="Size" type="Integer">
1871 <xs:annotation>
1872 <xs:documentation>Optional size of the payload in bytes. Required if Hash is specified, otherwise must not be specified.</xs:documentation>
1873 </xs:annotation>
1874 </xs:attribute>
1875 <xs:attribute name="SourceFile" type="xs:string">
1876 <xs:annotation>
1877 <xs:documentation>
1878 Location of the source file.
1879 The default value is the Name attribute, if provided.
1880 At a minimum, the SourceFile or Name attribute must be specified.
1881 </xs:documentation>
1882 </xs:annotation>
1883 </xs:attribute>
1884 <xs:attribute name="Name" type="xs:string">
1885 <xs:annotation>
1886 <xs:documentation>
1887 The destination path and file name for this payload.
1888 The default is the source file name.
1889 At a minimum, the Name or SourceFile attribute must be specified.
1890 This must be a relative path ('\foo' or 'C:\foo' is not allowed).
1891 </xs:documentation>
1892 </xs:annotation>
1893 </xs:attribute>
1894 <xs:attribute name="DownloadUrl" type="xs:string">
1895 <xs:annotation>
1896 <xs:documentation>
1897 <html:p>The URL to use to download the package. The following substitutions are supported:</html:p>
1898 <html:ul>
1899 <html:li>{0} is replaced by the package Id.</html:li>
1900 <html:li>{1} is replaced by the payload Id.</html:li>
1901 <html:li>{2} is replaced by the payload file name.</html:li>
1902 </html:ul>
1903 </xs:documentation>
1904 </xs:annotation>
1905 </xs:attribute>
1906 <xs:anyAttribute namespace="##other" processContents="lax">
1907 <xs:annotation>
1908 <xs:documentation>
1909 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1910 attributes at this point in the schema.
1911 </xs:documentation>
1912 </xs:annotation>
1913 </xs:anyAttribute>
1914 </xs:complexType>
1915 </xs:element>
1916 <xs:element name="PayloadGroup">
1917 <xs:annotation>
1918 <xs:documentation>
1919 Describes a payload group to a bootstrapper. PayloadGroups referenced from within a Bundle are tied to the Bundle.
1920 PayloadGroups referenced from a Fragment are tied to the context of whatever references them such as an ExePackage or MsiPackage.
1921 It is possible to share a PayloadGroup between multiple Packages and/or a Bundle by creating multiple references to it.
1922 </xs:documentation>
1923 </xs:annotation>
1924 <xs:complexType>
1925 <xs:choice minOccurs="0" maxOccurs="unbounded">
1926 <xs:element ref="BundlePackagePayload" />
1927 <xs:element ref="ExePackagePayload" />
1928 <xs:element ref="MsiPackagePayload" />
1929 <xs:element ref="MspPackagePayload" />
1930 <xs:element ref="MsuPackagePayload" />
1931 <xs:element ref="Payload" />
1932 <xs:element ref="PayloadGroupRef" />
1933 </xs:choice>
1934 <xs:attribute name="Id" type="xs:string" use="required">
1935 <xs:annotation>
1936 <xs:documentation>Identifier for payload group.</xs:documentation>
1937 </xs:annotation>
1938 </xs:attribute>
1939 </xs:complexType>
1940 </xs:element>
1941 <xs:element name="PayloadGroupRef">
1942 <xs:annotation>
1943 <xs:documentation>Create a reference to PayloadGroup element that exists inside a Bundle or Fragment element.</xs:documentation>
1944 <xs:appinfo>
1945 <xse:seeAlso ref="PayloadGroup" />
1946 </xs:appinfo>
1947 </xs:annotation>
1948 <xs:complexType>
1949 <xs:attribute name="Id" type="xs:string" use="required">
1950 <xs:annotation>
1951 <xs:documentation>The identifier of the PayloadGroup element to reference.</xs:documentation>
1952 </xs:annotation>
1953 </xs:attribute>
1954 </xs:complexType>
1955 </xs:element>
1956 <xs:element name="BundlePackagePayload">
1957 <xs:annotation>
1958 <xs:documentation>
1959 Describes information about the BundlePackage payload.
1960 Cannot be specified if the owning BundlePackage specified any of SourceFile, Name, DownloadUrl, or Compressed.
1961 </xs:documentation>
1962 </xs:annotation>
1963 <xs:complexType>
1964 <xs:choice minOccurs="0" maxOccurs="unbounded">
1965 <xs:element ref="RemoteBundle" minOccurs="0" maxOccurs="1" />
1966 <xs:any namespace="##other" processContents="lax">
1967 <xs:annotation>
1968 <xs:documentation>
1969 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1970 elements at this point in the schema.
1971 </xs:documentation>
1972 </xs:annotation>
1973 </xs:any>
1974 </xs:choice>
1975 <xs:attribute name="PayloadGeneration">
1976 <xs:annotation>
1977 <xs:documentation>
1978 Choose one of the supported payload generation types: none, externalWithoutDownloadUrl, external, all.
1979 </xs:documentation>
1980 </xs:annotation>
1981 <xs:simpleType>
1982 <xs:restriction base="xs:string">
1983 <xs:enumeration value="none">
1984 <xs:annotation>
1985 <xs:documentation>
1986 None of the bundle's payloads or containers are automatically included as payloads for the package.
1987 </xs:documentation>
1988 </xs:annotation>
1989 </xs:enumeration>
1990 <xs:enumeration value="externalWithoutDownloadUrl">
1991 <xs:annotation>
1992 <xs:documentation>
1993 All detached containers from the bundle that have no download url are included as payloads for the package,
1994 as well as all external payloads from the bundle that have no download url.
1995 </xs:documentation>
1996 </xs:annotation>
1997 </xs:enumeration>
1998 <xs:enumeration value="external">
1999 <xs:annotation>
2000 <xs:documentation>
2001 All detached containers from the bundle are included as payloads for the package,
2002 as well as all external payloads from the bundle.
2003 </xs:documentation>
2004 </xs:annotation>
2005 </xs:enumeration>
2006 <xs:enumeration value="all">
2007 <xs:annotation>
2008 <xs:documentation>
2009 All detached containers from the bundle are included as payloads for the package,
2010 as well as all other payloads that are not compressed into the detached containers.
2011 This option normally requires extra work to use since it requires all attached containers to have been extracted.
2012 </xs:documentation>
2013 </xs:annotation>
2014 </xs:enumeration>
2015 </xs:restriction>
2016 </xs:simpleType>
2017 </xs:attribute>
2018 <xs:attributeGroup ref="ChainPackagePayloadCommonAttributes" />
2019 <xs:attributeGroup ref="RemotePackagePayloadCommonAttributes" />
2020 </xs:complexType>
2021 </xs:element>
2022 <xs:element name="ExePackagePayload">
2023 <xs:annotation>
2024 <xs:documentation>
2025 Describes information about the ExePackage payload.
2026 Cannot be specified if the owning ExePackage specified any of SourceFile, Name, DownloadUrl, or Compressed.
2027 </xs:documentation>
2028 </xs:annotation>
2029 <xs:complexType>
2030 <xs:attributeGroup ref="ChainPackagePayloadCommonAttributes" />
2031 <xs:attributeGroup ref="RemotePackagePayloadCommonAttributes" />
2032 </xs:complexType>
2033 </xs:element>
2034 <xs:element name="MsiPackagePayload">
2035 <xs:annotation>
2036 <xs:documentation>
2037 Describes information about the MsiPackage payload.
2038 Cannot be specified if the owning MsiPackage specified any of SourceFile, Name, DownloadUrl, or Compressed.
2039 </xs:documentation>
2040 </xs:annotation>
2041 <xs:complexType>
2042 <xs:attributeGroup ref="ChainPackagePayloadCommonAttributes" />
2043 <xs:attributeGroup ref="LocalPackagePayloadCommonAttributes" />
2044 </xs:complexType>
2045 </xs:element>
2046 <xs:element name="MspPackagePayload">
2047 <xs:annotation>
2048 <xs:documentation>
2049 Describes information about the MspPackage payload.
2050 Cannot be specified if the owning MspPackage specified any of SourceFile, Name, DownloadUrl, or Compressed.
2051 </xs:documentation>
2052 </xs:annotation>
2053 <xs:complexType>
2054 <xs:attributeGroup ref="ChainPackagePayloadCommonAttributes" />
2055 <xs:attributeGroup ref="LocalPackagePayloadCommonAttributes" />
2056 </xs:complexType>
2057 </xs:element>
2058 <xs:element name="MsuPackagePayload">
2059 <xs:annotation>
2060 <xs:documentation>
2061 Describes information about the MsuPackage payload.
2062 Cannot be specified if the owning MsuPackage specified any of SourceFile, Name, DownloadUrl, or Compressed.
2063 </xs:documentation>
2064 </xs:annotation>
2065 <xs:complexType>
2066 <xs:attributeGroup ref="ChainPackagePayloadCommonAttributes" />
2067 <xs:attributeGroup ref="RemotePackagePayloadCommonAttributes" />
2068 </xs:complexType>
2069 </xs:element>
2070 <xs:attributeGroup name="ChainPackagePayloadCommonAttributes">
2071 <xs:attribute name="Id" type="xs:string">
2072 <xs:annotation>
2073 <xs:documentation>The identifier of the package payload element.</xs:documentation>
2074 </xs:annotation>
2075 </xs:attribute>
2076 <xs:attribute name="DownloadUrl" type="xs:string">
2077 <xs:annotation>
2078 <xs:documentation>
2079 <html:p>The URL to use to download the package. The following substitutions are supported:</html:p>
2080 <html:ul>
2081 <html:li>{0} is replaced by the package Id.</html:li>
2082 <html:li>{1} is replaced by the payload Id.</html:li>
2083 <html:li>{2} is replaced by the payload file name.</html:li>
2084 </html:ul>
2085 </xs:documentation>
2086 </xs:annotation>
2087 </xs:attribute>
2088 <xs:attribute name="Compressed" type="YesNoDefaultTypeUnion">
2089 <xs:annotation>
2090 <xs:documentation>Whether the package payload should be embedded in a container or left as an external payload.</xs:documentation>
2091 </xs:annotation>
2092 </xs:attribute>
2093 <xs:attribute name="Name" type="xs:string">
2094 <xs:annotation>
2095 <xs:documentation>
2096 The destination path and file name for this chain payload.
2097 Use this attribute to rename the chain entry point or extract it into a subfolder.
2098 The default value is the file name from the SourceFile attribute.
2099 At a minimum, the Name or SourceFile attribute must be specified.
2100 This must be a relative path ('\foo' or 'C:\foo' is not allowed).
2101 </xs:documentation>
2102 </xs:annotation>
2103 </xs:attribute>
2104 <xs:anyAttribute namespace="##other" processContents="lax" />
2105 </xs:attributeGroup>
2106 <xs:attributeGroup name="LocalPackagePayloadCommonAttributes">
2107 <xs:attribute name="SourceFile" type="xs:string">
2108 <xs:annotation>
2109 <xs:documentation>
2110 Location of the package to add to the bundle.
2111 The default value is the Name attribute, if provided.
2112 At a minimum, the SourceFile or Name attribute must be specified.
2113 </xs:documentation>
2114 </xs:annotation>
2115 </xs:attribute>
2116 </xs:attributeGroup>
2117 <xs:attributeGroup name="RemotePackagePayloadCommonAttributes">
2118 <xs:attribute name="SourceFile" type="xs:string">
2119 <xs:annotation>
2120 <xs:documentation>
2121 Location of the package to add to the bundle.
2122 The default value is the Name attribute, if provided.
2123 If Hash is specified, must not be specified.
2124 </xs:documentation>
2125 </xs:annotation>
2126 </xs:attribute>
2127 <xs:attribute name="CertificatePublicKey" type="xs:string">
2128 <xs:annotation>
2129 <xs:documentation>Optional public key of the certificate used to sign the payload. It is not recommended to use this attribute and rely on the Hash alone.</xs:documentation>
2130 </xs:annotation>
2131 </xs:attribute>
2132 <xs:attribute name="CertificateThumbprint" type="xs:string">
2133 <xs:annotation>
2134 <xs:documentation>Optional thumbprint of the certificate used to sign the payload. It is not recommended to use this attribute and rely on the Hash alone.</xs:documentation>
2135 </xs:annotation>
2136 </xs:attribute>
2137 <xs:attribute name="Description" type="xs:string">
2138 <xs:annotation>
2139 <xs:documentation>
2140 Description of the file from version resources.
2141 If Hash is not specified, must not be specified.
2142 </xs:documentation>
2143 </xs:annotation>
2144 </xs:attribute>
2145 <xs:attribute name="Hash" type="HexType">
2146 <xs:annotation>
2147 <xs:documentation>
2148 SHA-512 hash of the RemotePayload.
2149 If SourceFile is specified, must not be specified.
2150 If specified then Name, DownloadUrl, and Size are required.
2151 </xs:documentation>
2152 </xs:annotation>
2153 </xs:attribute>
2154 <xs:attribute name="ProductName" type="xs:string">
2155 <xs:annotation>
2156 <xs:documentation>
2157 Product name of the file from version resouces.
2158 If Hash is not specified, must not be specified.
2159 </xs:documentation>
2160 </xs:annotation>
2161 </xs:attribute>
2162 <xs:attribute name="Size" type="Integer">
2163 <xs:annotation>
2164 <xs:documentation>
2165 Size of the remote file in bytes.
2166 Required if Hash is specified, otherwise must not be specified.
2167 </xs:documentation>
2168 </xs:annotation>
2169 </xs:attribute>
2170 <xs:attribute name="Version" type="WixVersionType">
2171 <xs:annotation>
2172 <xs:documentation>
2173 Version of the remote file.
2174 If Hash is not specified, must not be specified.
2175 </xs:documentation>
2176 </xs:annotation>
2177 </xs:attribute>
2178 </xs:attributeGroup>
2179 <xs:element name="RemoteBundle">
2180 <xs:annotation>
2181 <xs:documentation>
2182 Describes information about the referenced Bundle.
2183 </xs:documentation>
2184 </xs:annotation>
2185 <xs:complexType>
2186 <xs:choice minOccurs="0" maxOccurs="unbounded">
2187 <xs:element ref="RemoteRelatedBundle" />
2188 <xs:any namespace="##other" processContents="lax">
2189 <xs:annotation>
2190 <xs:documentation>
2191 Extensibility point in the WiX XML Schema. Schema extensions can register additional
2192 elements at this point in the schema.
2193 </xs:documentation>
2194 </xs:annotation>
2195 </xs:any>
2196 </xs:choice>
2197 <xs:attribute name="BundleId" type="Guid" use="required">
2198 <xs:annotation>
2199 <xs:documentation>
2200 The id of the bundle.
2201 </xs:documentation>
2202 </xs:annotation>
2203 </xs:attribute>
2204 <xs:attribute name="DisplayName" type="xs:string">
2205 <xs:annotation>
2206 <xs:documentation>
2207 The display name of the bundle.
2208 </xs:documentation>
2209 </xs:annotation>
2210 </xs:attribute>
2211 <xs:attribute name="EngineVersion" type="xs:string">
2212 <xs:annotation>
2213 <xs:documentation>
2214 The version of the bundle's engine.
2215 </xs:documentation>
2216 </xs:annotation>
2217 </xs:attribute>
2218 <xs:attribute name="InstallSize" type="xs:string">
2219 <xs:annotation>
2220 <xs:documentation>
2221 The size this bundle will take on disk in bytes after it is installed.
2222 </xs:documentation>
2223 </xs:annotation>
2224 </xs:attribute>
2225 <xs:attribute name="ManifestNamespace" type="xs:string" use="required">
2226 <xs:annotation>
2227 <xs:documentation>
2228 The namespace of the bundle's manifest.
2229 </xs:documentation>
2230 </xs:annotation>
2231 </xs:attribute>
2232 <xs:attribute name="PerMachine" type="YesNoTypeUnion" use="required">
2233 <xs:annotation>
2234 <xs:documentation>
2235 Whether the bundle is per-machine.
2236 </xs:documentation>
2237 </xs:annotation>
2238 </xs:attribute>
2239 <xs:attribute name="ProtocolVersion" type="Integer" use="required">
2240 <xs:annotation>
2241 <xs:documentation>
2242 The protocol version of the related bundle.
2243 </xs:documentation>
2244 </xs:annotation>
2245 </xs:attribute>
2246 <xs:attribute name="ProviderKey" type="xs:string" use="required">
2247 <xs:annotation>
2248 <xs:documentation>
2249 The provider key of the bundle.
2250 </xs:documentation>
2251 </xs:annotation>
2252 </xs:attribute>
2253 <xs:attribute name="UpgradeCode" type="Guid" use="required">
2254 <xs:annotation>
2255 <xs:documentation>
2256 An upgrade code of the bundle.
2257 </xs:documentation>
2258 </xs:annotation>
2259 </xs:attribute>
2260 <xs:attribute name="Version" type="xs:string" use="required">
2261 <xs:annotation>
2262 <xs:documentation>
2263 The version of the bundle.
2264 </xs:documentation>
2265 </xs:annotation>
2266 </xs:attribute>
2267 <xs:attribute name="Win64" type="YesNoTypeUnion" use="required">
2268 <xs:annotation>
2269 <xs:documentation>
2270 Whether the bundle is 64-bit.
2271 </xs:documentation>
2272 </xs:annotation>
2273 </xs:attribute>
2274 <xs:anyAttribute namespace="##other" processContents="lax">
2275 <xs:annotation>
2276 <xs:documentation>
2277 Extensibility point in the WiX XML Schema. Schema extensions can register additional
2278 attributes at this point in the schema.
2279 </xs:documentation>
2280 </xs:annotation>
2281 </xs:anyAttribute>
2282 </xs:complexType>
2283 </xs:element>
2284 <xs:element name="RemoteRelatedBundle">
2285 <xs:annotation>
2286 <xs:documentation>
2287 Defines a related bundle for the parent RemoteBundle.
2288 </xs:documentation>
2289 </xs:annotation>
2290 <xs:complexType>
2291 <xs:choice minOccurs="0" maxOccurs="unbounded">
2292 <xs:any namespace="##other" processContents="lax">
2293 <xs:annotation>
2294 <xs:documentation>
2295 Extensibility point in the WiX XML Schema. Schema extensions can register additional
2296 elements at this point in the schema.
2297 </xs:documentation>
2298 </xs:annotation>
2299 </xs:any>
2300 </xs:choice>
2301 <xs:attribute name="Id" type="Guid" use="required">
2302 <xs:annotation>
2303 <xs:documentation>The identifier of the RelatedBundle group.</xs:documentation>
2304 </xs:annotation>
2305 </xs:attribute>
2306 <xs:attribute name="Action" use="required">
2307 <xs:annotation>
2308 <xs:documentation>The action to take on bundles related to this one.</xs:documentation>
2309 </xs:annotation>
2310 <xs:simpleType>
2311 <xs:restriction base="xs:string">
2312 <xs:enumeration value="detect" />
2313 <xs:enumeration value="upgrade" />
2314 <xs:enumeration value="addon" />
2315 <xs:enumeration value="patch" />
2316 </xs:restriction>
2317 </xs:simpleType>
2318 </xs:attribute>
2319 <xs:anyAttribute namespace="##other" processContents="lax">
2320 <xs:annotation>
2321 <xs:documentation>
2322 Extensibility point in the WiX XML Schema. Schema extensions can register additional
2323 attributes at this point in the schema.
2324 </xs:documentation>
2325 </xs:annotation>
2326 </xs:anyAttribute>
2327 </xs:complexType>
2328 </xs:element>
2329 <xs:element name="RelatedBundle">
2330 <xs:annotation>
2331 <xs:documentation>Defines a related bundle for the parent Bundle.</xs:documentation>
2332 </xs:annotation>
2333 <xs:complexType>
2334 <xs:choice minOccurs="0" maxOccurs="unbounded">
2335 <xs:any namespace="##other" processContents="lax">
2336 <xs:annotation>
2337 <xs:documentation>
2338 Extensibility point in the WiX XML Schema. Schema extensions can register additional
2339 elements at this point in the schema.
2340 </xs:documentation>
2341 </xs:annotation>
2342 </xs:any>
2343 </xs:choice>
2344 <xs:attribute name="Id" type="Guid" use="required">
2345 <xs:annotation>
2346 <xs:documentation>The identifier of the RelatedBundle group.</xs:documentation>
2347 </xs:annotation>
2348 </xs:attribute>
2349 <xs:attribute name="Action" use="optional">
2350 <xs:annotation>
2351 <xs:documentation>The action to take on bundles related to this one. Detect is the default.</xs:documentation>
2352 </xs:annotation>
2353 <xs:simpleType>
2354 <xs:restriction base="xs:string">
2355 <xs:enumeration value="detect" />
2356 <xs:enumeration value="upgrade" />
2357 <xs:enumeration value="addon" />
2358 <xs:enumeration value="patch" />
2359 </xs:restriction>
2360 </xs:simpleType>
2361 </xs:attribute>
2362 <xs:anyAttribute namespace="##other" processContents="lax">
2363 <xs:annotation>
2364 <xs:documentation>
2365 Extensibility point in the WiX XML Schema. Schema extensions can register additional
2366 attributes at this point in the schema.
2367 </xs:documentation>
2368 </xs:annotation>
2369 </xs:anyAttribute>
2370 </xs:complexType>
2371 </xs:element>
2372 <xs:element name="Update">
2373 <xs:annotation>
2374 <xs:documentation>Defines the update for a Bundle.</xs:documentation>
2375 </xs:annotation>
2376 <xs:complexType>
2377 <xs:attribute name="Location" type="xs:string" use="required">
2378 <xs:annotation>
2379 <xs:documentation>
2380 The absolute path or URL to check for an update bundle. Currently the engine provides this value
2381 in the IBootstrapperApplication::OnDetectUpdateBegin() and otherwise ignores the value. In the
2382 future the engine will be able to acquire an update bundle from the location and determine if it
2383 is newer than the current executing bundle.
2384 </xs:documentation>
2385 </xs:annotation>
2386 </xs:attribute>
2387 </xs:complexType>
2388 </xs:element>
2389 <xs:element name="Package">
2390 <xs:annotation>
2391 <xs:documentation>
2392 The Package element is analogous to the main function in a C program. When linking, only one Package section
2393 can be given to the build to produce a successful result. Using this element creates an MSI file which often
2394 referred to as a Product.
2395 </xs:documentation>
2396 <xs:appinfo>
2397 <xse:remarks>
2398 <html:p>You can specify any valid Windows code page by integer like 1252, or by web name like Windows-1252. See [Code pages](../../../tools/codepage/) for more information.</html:p>
2399 </xse:remarks>
2400 </xs:appinfo>
2401 </xs:annotation>
2402 <xs:complexType>
2403 <xs:choice minOccurs="0" maxOccurs="unbounded">
2404 <xs:element ref="AdminExecuteSequence" />
2405 <xs:element ref="AdminUISequence" />
2406 <xs:element ref="AdvertiseExecuteSequence" />
2407 <xs:element ref="AppId" />
2408 <xs:element ref="Binary" />
2409 <xs:element ref="ComplianceCheck" />
2410 <xs:element ref="Component" />
2411 <xs:element ref="ComponentRef" />
2412 <xs:element ref="ComponentGroup" />
2413 <xs:element ref="ComponentGroupRef" />
2414 <xs:element ref="CustomAction" />
2415 <xs:element ref="CustomActionRef" />
2416 <xs:element ref="CustomTable" />
2417 <xs:element ref="CustomTableRef" />
2418 <xs:element ref="Directory" />
2419 <xs:element ref="DirectoryRef" />
2420 <xs:element ref="EmbeddedChainer" />
2421 <xs:element ref="EmbeddedChainerRef" />
2422 <xs:element ref="EnsureTable" />
2423 <xs:element ref="Feature" />
2424 <xs:element ref="FeatureRef" />
2425 <xs:element ref="FeatureGroupRef" />
2426 <xs:element ref="File" />
2427 <xs:element ref="Files" />
2428 <xs:element ref="Icon" />
2429 <xs:element ref="InstallExecuteSequence" />
2430 <xs:element ref="InstallUISequence" />
2431 <xs:element ref="InstanceTransforms" />
2432 <xs:element ref="Launch" />
2433 <xs:element ref="MajorUpgrade" />
2434 <xs:element ref="Media" />
2435 <xs:element ref="MediaTemplate" />
2436 <xs:element ref="PackageCertificates" />
2437 <xs:element ref="PatchCertificates" />
2438 <xs:element ref="Property" />
2439 <xs:element ref="PropertyRef" />
2440 <xs:element ref="Requires" />
2441 <xs:element ref="SetDirectory" />
2442 <xs:element ref="SetProperty" />
2443 <xs:element ref="SFPCatalog" />
2444 <xs:element ref="SoftwareTag" />
2445 <xs:element ref="StandardDirectory" />
2446 <xs:element ref="SummaryInformation" />
2447 <xs:element ref="SymbolPath" />
2448 <xs:element ref="UI" />
2449 <xs:element ref="UIRef" />
2450 <xs:element ref="Upgrade" />
2451 <xs:element ref="WixVariable" />
2452 <xs:any namespace="##other" processContents="lax">
2453 <xs:annotation>
2454 <xs:documentation>
2455 Extensibility point in the WiX XML Schema. Schema extensions can register additional
2456 elements at this point in the schema.
2457 </xs:documentation>
2458 </xs:annotation>
2459 </xs:any>
2460 </xs:choice>
2461 <xs:attribute name="Codepage" type="xs:string">
2462 <xs:annotation>
2463 <xs:documentation>
2464 The code page integer value or web name for the resulting MSI. See remarks for more information.
2465 The default codepage is 65001 (UTF-8).
2466 </xs:documentation>
2467 </xs:annotation>
2468 </xs:attribute>
2469 <xs:attribute name="Compressed" type="YesNoTypeUnion">
2470 <xs:annotation>
2471 <xs:documentation>Indicates whether the package files are compressed. Default is compressed packages.</xs:documentation>
2472 </xs:annotation>
2473 </xs:attribute>
2474 <xs:attribute name="Id" type="xs:string">
2475 <xs:annotation>
2476 <xs:documentation>
2477 _New in WiX v6: WiX v6 adds this attribute to the `Package` element._
2478 A globally unique identiifer for the package in the world. It is recommended to use a prefix such as "CompanyName." to
2479 create a namespace of sorts. By default, higher versioned upgrade lower versioned packages with the same Id. Use this
2480 attibute instead of the UpgradeCode attribute in new development.
2481 </xs:documentation>
2482 </xs:annotation>
2483 </xs:attribute>
2484 <xs:attribute name="InstallerVersion" type="Integer">
2485 <xs:annotation>
2486 <xs:documentation>
2487 The minimum version of the Windows Installer required to install this package. Take the major version of the required Windows Installer
2488 and multiply by a 100 then add the minor version of the Windows Installer. For example, "200" would represent Windows Installer 2.0 and
2489 "405" would represent Windows Installer 4.5. This value is defaulted to "500" which is the latest version of the Windows Installer and
2490 present in Windows 7 and later.
2491 </xs:documentation>
2492 </xs:annotation>
2493 </xs:attribute>
2494 <xs:attribute name="Language" type="LocalizableInteger">
2495 <xs:annotation>
2496 <xs:documentation>The decimal language ID (LCID) for the product. Sets the ProductLanguage property.</xs:documentation>
2497 </xs:annotation>
2498 </xs:attribute>
2499 <xs:attribute name="Manufacturer" type="xs:string" use="required">
2500 <xs:annotation>
2501 <xs:documentation>The manufacturer of the package. Sets the Manufacturer property.</xs:documentation>
2502 </xs:annotation>
2503 </xs:attribute>
2504 <xs:attribute name="Name" type="xs:string" use="required">
2505 <xs:annotation>
2506 <xs:documentation>The descriptive name of the product. Sets the ProductName property.</xs:documentation>
2507 </xs:annotation>
2508 </xs:attribute>
2509 <xs:attribute name="ProductCode" type="AutogenGuid">
2510 <xs:annotation>
2511 <xs:documentation>
2512 Optional ProductCode GUID for the package. By default, a new ProductCode property will be
2513 generated with every build enabling major upgrades.
2514 </xs:documentation>
2515 </xs:annotation>
2516 </xs:attribute>
2517 <xs:attribute name="Scope" type="PackageScopeTypeUnion">
2518 <xs:annotation>
2519 <xs:documentation>Use this attribute to specify the installation scope of this package: per-machine, per-user, or a choice of either. The default is per-machine.</xs:documentation>
2520 </xs:annotation>
2521 </xs:attribute>
2522 <xs:attribute name="ShortNames" type="YesNoTypeUnion">
2523 <xs:annotation>
2524 <xs:documentation>Indicates whether the package files are installed using 8.3 filenames. The default is no.</xs:documentation>
2525 </xs:annotation>
2526 </xs:attribute>
2527 <xs:attribute name="UpgradeCode" type="Guid">
2528 <xs:annotation>
2529 <xs:documentation>
2530 For new packages, it is recommended to use the Id attribute instead. This attribute exists for
2531 backwards compatibility scenarios. Use this attribute to provide a specific upgrade code GUID
2532 for a MSI package. See <html:a href="https://learn.microsoft.com/en-us/windows/win32/msi/upgradecode">UpgradeCode</html:a>
2533 for more information.
2534 </xs:documentation>
2535 </xs:annotation>
2536 </xs:attribute>
2537 <xs:attribute name="UpgradeStrategy" type="UpgradeStrategyTypeUnion">
2538 <xs:annotation>
2539 <xs:documentation>
2540 _New in WiX v5: WiX v5 adds this attribute to the `Package` element._
2541 The upgrade strategy for the package. If "none," no major upgrade is expected.
2542 If "majorUpgrade," the UpgradeCode attribute is required and a major upgrade is expected.
2543 The default is "majorUpgrade."
2544 A default major upgrade is automatically provided if none is authored.
2545 </xs:documentation>
2546 </xs:annotation>
2547 </xs:attribute>
2548 <xs:attribute name="Version" type="xs:string" use="required">
2549 <xs:annotation>
2550 <xs:documentation>The product's version string. Sets the ProductVersion property.</xs:documentation>
2551 </xs:annotation>
2552 </xs:attribute>
2553 <xs:anyAttribute namespace="##other" processContents="lax">
2554 <xs:annotation>
2555 <xs:documentation>
2556 Extensibility point in the WiX XML Schema. Schema extensions can register additional
2557 attributes at this point in the schema.
2558 </xs:documentation>
2559 </xs:annotation>
2560 </xs:anyAttribute>
2561 </xs:complexType>
2562 </xs:element>
2563 <xs:element name="Module">
2564 <xs:annotation>
2565 <xs:documentation>
2566 The Module element is analogous to the main function in a C program. When linking, only
2567 one Module section can be given to the linker to produce a successful result. Using this
2568 element creates an msm file.
2569 </xs:documentation>
2570 </xs:annotation>
2571 <xs:complexType>
2572 <xs:choice minOccurs="0" maxOccurs="unbounded">
2573 <xs:element ref="AppId" />
2574 <xs:element ref="Binary" />
2575 <xs:element ref="Component" />
2576 <xs:element ref="ComponentGroupRef" />
2577 <xs:element ref="ComponentRef" />
2578 <xs:element ref="Configuration" />
2579 <xs:element ref="CustomAction" />
2580 <xs:element ref="CustomActionRef" />
2581 <xs:element ref="CustomTable" />
2582 <xs:element ref="CustomTableRef" />
2583 <xs:element ref="Dependency" />
2584 <xs:element ref="Directory" />
2585 <xs:element ref="DirectoryRef" />
2586 <xs:element ref="EmbeddedChainer" />
2587 <xs:element ref="EmbeddedChainerRef" />
2588 <xs:element ref="EnsureTable" />
2589 <xs:element ref="Exclusion" />
2590 <xs:element ref="File" />
2591 <xs:element ref="Files" />
2592 <xs:element ref="Icon" />
2593 <xs:element ref="IgnoreTable" />
2594 <xs:element ref="Property" />
2595 <xs:element ref="PropertyRef" />
2596 <xs:element ref="Requires" />
2597 <xs:element ref="SetDirectory" />
2598 <xs:element ref="SetProperty" />
2599 <xs:element ref="SFPCatalog" />
2600 <xs:element ref="StandardDirectory" />
2601 <xs:element ref="Substitution" />
2602 <xs:element ref="SummaryInformation" />
2603 <xs:element ref="UI" />
2604 <xs:element ref="UIRef" />
2605 <xs:element ref="WixVariable" />
2606 <xs:element ref="InstallExecuteSequence" />
2607 <xs:element ref="InstallUISequence" />
2608 <xs:element ref="AdminExecuteSequence" />
2609 <xs:element ref="AdminUISequence" />
2610 <xs:element ref="AdvertiseExecuteSequence" />
2611 <xs:any namespace="##other" processContents="lax">
2612 <xs:annotation>
2613 <xs:documentation>
2614 Extensibility point in the WiX XML Schema. Schema extensions can register additional
2615 elements at this point in the schema.
2616 </xs:documentation>
2617 </xs:annotation>
2618 </xs:any>
2619 </xs:choice>
2620 <xs:attribute name="Id" type="xs:string" use="required">
2621 <xs:annotation>
2622 <xs:documentation>The name of the merge module (not the file name).</xs:documentation>
2623 </xs:annotation>
2624 </xs:attribute>
2625 <xs:attribute name="Codepage" type="xs:string">
2626 <xs:annotation>
2627 <xs:documentation>
2628 The code page integer value or web name for the resulting MSM. You can specify any valid Windows
2629 code by by integer like 1252, or by web name like Windows-1252. See [Code pages](../../../tools/codepage/)
2630 for more information.
2631 </xs:documentation>
2632 </xs:annotation>
2633 </xs:attribute>
2634 <xs:attribute name="Guid" type="Guid">
2635 <xs:annotation>
2636 <xs:documentation>The GUID of the Merge Module that will be appended to primary keys in the database.</xs:documentation>
2637 </xs:annotation>
2638 </xs:attribute>
2639 <xs:attribute name="InstallerVersion" type="Integer">
2640 <xs:annotation>
2641 <xs:documentation>
2642 The minimum version of the Windows Installer required to install this package. Take the major version of the required Windows Installer
2643 and multiply by a 100 then add the minor version of the Windows Installer. For example, "200" would represent Windows Installer 2.0 and
2644 "405" would represent Windows Installer 4.5. This value is defaulted to "500" which is the latest version of the Windows Installer and
2645 present in Windows 7 and later.
2646 </xs:documentation>
2647 </xs:annotation>
2648 </xs:attribute>
2649 <xs:attribute name="Language" type="LocalizableInteger" use="required">
2650 <xs:annotation>
2651 <xs:documentation>The decimal language ID (LCID) of the merge module.</xs:documentation>
2652 </xs:annotation>
2653 </xs:attribute>
2654 <xs:attribute name="Version" type="xs:string" use="required">
2655 <xs:annotation>
2656 <xs:documentation>The major and minor versions of the merge module.</xs:documentation>
2657 </xs:annotation>
2658 </xs:attribute>
2659 </xs:complexType>
2660 </xs:element>
2661 <xs:element name="Dependency">
2662 <xs:annotation>
2663 <xs:documentation>Declares a dependency on another merge module.</xs:documentation>
2664 </xs:annotation>
2665 <xs:complexType>
2666 <xs:attribute name="RequiredId" type="xs:string" use="required">
2667 <xs:annotation>
2668 <xs:documentation>Identifier of the merge module required by the merge module.</xs:documentation>
2669 </xs:annotation>
2670 </xs:attribute>
2671 <xs:attribute name="RequiredLanguage" type="Integer" use="required">
2672 <xs:annotation>
2673 <xs:documentation>Numeric language ID of the merge module in RequiredID.</xs:documentation>
2674 </xs:annotation>
2675 </xs:attribute>
2676 <xs:attribute name="RequiredVersion" type="xs:string">
2677 <xs:annotation>
2678 <xs:documentation>Version of the merge module in RequiredID.</xs:documentation>
2679 </xs:annotation>
2680 </xs:attribute>
2681 </xs:complexType>
2682 </xs:element>
2683 <xs:element name="Exclusion">
2684 <xs:annotation>
2685 <xs:documentation>Declares a merge module with which this merge module is incompatible.</xs:documentation>
2686 </xs:annotation>
2687 <xs:complexType>
2688 <xs:attribute name="ExcludedId" type="xs:string" use="required">
2689 <xs:annotation>
2690 <xs:documentation>Identifier of the merge module that is incompatible.</xs:documentation>
2691 </xs:annotation>
2692 </xs:attribute>
2693 <xs:attribute name="ExcludeExceptLanguage" type="Integer">
2694 <xs:annotation>
2695 <xs:documentation>Numeric language ID of the merge module in ExcludedID. All except this language will be excluded. Only one of ExcludeExceptLanguage and ExcludeLanguage may be specified.</xs:documentation>
2696 </xs:annotation>
2697 </xs:attribute>
2698 <xs:attribute name="ExcludeLanguage" type="Integer">
2699 <xs:annotation>
2700 <xs:documentation>Numeric language ID of the merge module in ExcludedID. The specified language will be excluded. Only one of ExcludeExceptLanguage and ExcludeLanguage may be specified.</xs:documentation>
2701 </xs:annotation>
2702 </xs:attribute>
2703 <xs:attribute name="ExcludedMinVersion" type="xs:string">
2704 <xs:annotation>
2705 <xs:documentation>Minimum version excluded from a range. If not set, all versions before max are excluded. If neither max nor min, no exclusion based on version.</xs:documentation>
2706 </xs:annotation>
2707 </xs:attribute>
2708 <xs:attribute name="ExcludedMaxVersion" type="xs:string">
2709 <xs:annotation>
2710 <xs:documentation>Maximum version excluded from a range. If not set, all versions after min are excluded. If neither max nor min, no exclusion based on version.</xs:documentation>
2711 </xs:annotation>
2712 </xs:attribute>
2713 </xs:complexType>
2714 </xs:element>
2715 <xs:element name="Configuration">
2716 <xs:annotation>
2717 <xs:documentation>Defines the configurable attributes of merge module.</xs:documentation>
2718 </xs:annotation>
2719 <xs:complexType>
2720 <xs:attribute name="Name" type="xs:string" use="required">
2721 <xs:annotation>
2722 <xs:documentation>Defines the name of the configurable item.</xs:documentation>
2723 </xs:annotation>
2724 </xs:attribute>
2725 <xs:attribute name="Format" use="required">
2726 <xs:annotation>
2727 <xs:documentation>Specifies the format of the data being changed.</xs:documentation>
2728 </xs:annotation>
2729 <xs:simpleType>
2730 <xs:restriction base="xs:string">
2731 <xs:enumeration value="Text" />
2732 <xs:enumeration value="Key" />
2733 <xs:enumeration value="Integer" />
2734 <xs:enumeration value="Bitfield" />
2735 </xs:restriction>
2736 </xs:simpleType>
2737 </xs:attribute>
2738 <xs:attribute name="Type" type="xs:string">
2739 <xs:annotation>
2740 <xs:documentation>Specifies the type of the data being changed.</xs:documentation>
2741 </xs:annotation>
2742 </xs:attribute>
2743 <xs:attribute name="ContextData" type="xs:string">
2744 <xs:annotation>
2745 <xs:documentation>Specifies a semantic context for the requested data.</xs:documentation>
2746 </xs:annotation>
2747 </xs:attribute>
2748 <xs:attribute name="DefaultValue" type="xs:string">
2749 <xs:annotation>
2750 <xs:documentation>Specifies a default value for the item in this record if the merge tool declines to provide a value.</xs:documentation>
2751 </xs:annotation>
2752 </xs:attribute>
2753 <xs:attribute name="KeyNoOrphan" type="YesNoTypeUnion">
2754 <xs:annotation>
2755 <xs:documentation>Does not merge rule according to rules in MSI SDK.</xs:documentation>
2756 </xs:annotation>
2757 </xs:attribute>
2758 <xs:attribute name="NonNullable" type="YesNoTypeUnion">
2759 <xs:annotation>
2760 <xs:documentation>If yes, null is not a valid entry.</xs:documentation>
2761 </xs:annotation>
2762 </xs:attribute>
2763 <xs:attribute name="DisplayName" type="xs:string">
2764 <xs:annotation>
2765 <xs:documentation>Display name for authoring.</xs:documentation>
2766 </xs:annotation>
2767 </xs:attribute>
2768 <xs:attribute name="Description" type="xs:string">
2769 <xs:annotation>
2770 <xs:documentation>Description for authoring.</xs:documentation>
2771 </xs:annotation>
2772 </xs:attribute>
2773 <xs:attribute name="HelpLocation" type="xs:string">
2774 <xs:annotation>
2775 <xs:documentation>Location of chm file for authoring.</xs:documentation>
2776 </xs:annotation>
2777 </xs:attribute>
2778 <xs:attribute name="HelpKeyword" type="xs:string">
2779 <xs:annotation>
2780 <xs:documentation>Keyword into chm file for authoring.</xs:documentation>
2781 </xs:annotation>
2782 </xs:attribute>
2783 </xs:complexType>
2784 </xs:element>
2785 <xs:element name="Substitution">
2786 <xs:annotation>
2787 <xs:documentation>Specifies the configurable fields of a module database and provides a template for the configuration of each field.</xs:documentation>
2788 </xs:annotation>
2789 <xs:complexType>
2790 <xs:attribute name="Table" type="xs:string" use="required">
2791 <xs:annotation>
2792 <xs:documentation>Specifies the name of the table being modified in the module database.</xs:documentation>
2793 </xs:annotation>
2794 </xs:attribute>
2795 <xs:attribute name="Row" type="xs:string" use="required">
2796 <xs:annotation>
2797 <xs:documentation>Specifies the primary keys of the target row in the table named in the Table column. If multiple keys, separated by semicolons.</xs:documentation>
2798 </xs:annotation>
2799 </xs:attribute>
2800 <xs:attribute name="Column" type="xs:string" use="required">
2801 <xs:annotation>
2802 <xs:documentation>Specifies the target column in the row named in the Row column.</xs:documentation>
2803 </xs:annotation>
2804 </xs:attribute>
2805 <xs:attribute name="Value" type="xs:string">
2806 <xs:annotation>
2807 <xs:documentation>Provides a formatting template for the data being substituted into the target field specified by Table, Row, and Column.</xs:documentation>
2808 </xs:annotation>
2809 </xs:attribute>
2810 </xs:complexType>
2811 </xs:element>
2812 <xs:element name="IgnoreTable">
2813 <xs:annotation>
2814 <xs:documentation>
2815 Specifies a table from the merge module that is not merged into an .msi file.
2816 If the table already exists in an .msi file, it is not modified by the merge.
2817 The specified table can therefore contain data that is unneeded after the merge.
2818 To minimize the size of the .msm file, it is recommended that developers remove
2819 unused tables from modules intended for redistribution rather than creating
2820 IgnoreTable elements for those tables.
2821 </xs:documentation>
2822 </xs:annotation>
2823 <xs:complexType>
2824 <xs:attribute name="Id" type="xs:string" use="required">
2825 <xs:annotation>
2826 <xs:documentation>
2827 The name of the table in the merge module that is not to be merged into the .msi file.
2828 </xs:documentation>
2829 </xs:annotation>
2830 </xs:attribute>
2831 </xs:complexType>
2832 </xs:element>
2833 <xs:element name="Fragment">
2834 <xs:annotation>
2835 <xs:documentation>
2836 The Fragment element is the building block of creating an installer database in WiX. Once defined,
2837 the Fragment becomes an immutable, atomic unit which can either be completely included or excluded
2838 from a product. The contents of a Fragment element can be linked into a product by utilizing one
2839 of the many *Ref elements. When linking in a Fragment, it will be necessary to link in all of its
2840 individual units. For instance, if a given Fragment contains two Component elements, you must link
2841 both under features using ComponentRef for each linked Component. Otherwise, you will get a linker
2842 warning and have a floating Component that does not appear under any Feature.
2843 </xs:documentation>
2844 </xs:annotation>
2845 <xs:complexType>
2846 <xs:choice minOccurs="0" maxOccurs="unbounded">
2847 <xs:element ref="AdminExecuteSequence" />
2848 <xs:element ref="AdminUISequence" />
2849 <xs:element ref="AdvertiseExecuteSequence" />
2850 <xs:element ref="AppId" />
2851 <xs:element ref="Binary" />
2852 <xs:element ref="BootstrapperApplication" />
2853 <xs:element ref="BootstrapperApplicationRef" />
2854 <xs:element ref="BootstrapperExtension" />
2855 <xs:element ref="BootstrapperExtensionRef" />
2856 <xs:element ref="BundleCustomData" />
2857 <xs:element ref="BundleCustomDataRef" />
2858 <xs:element ref="BundleExtension" />
2859 <xs:element ref="BundleExtensionRef" />
2860 <xs:element ref="ComplianceCheck" />
2861 <xs:element ref="Component" />
2862 <xs:element ref="ComponentGroup" />
2863 <xs:element ref="Container" />
2864 <xs:element ref="CustomAction" />
2865 <xs:element ref="CustomActionRef" />
2866 <xs:element ref="CustomTable" />
2867 <xs:element ref="CustomTableRef" />
2868 <xs:element ref="Directory" />
2869 <xs:element ref="DirectoryRef" />
2870 <xs:element ref="EmbeddedChainer" />
2871 <xs:element ref="EmbeddedChainerRef" />
2872 <xs:element ref="EnsureTable" />
2873 <xs:element ref="Feature" />
2874 <xs:element ref="FeatureGroup" />
2875 <xs:element ref="FeatureRef" />
2876 <xs:element ref="File" />
2877 <xs:element ref="Files" />
2878 <xs:element ref="Icon" />
2879 <xs:element ref="InstallExecuteSequence" />
2880 <xs:element ref="InstallUISequence" />
2881 <xs:element ref="Launch" />
2882 <xs:element ref="Media" />
2883 <xs:element ref="MediaTemplate" />
2884 <xs:element ref="PackageGroup" />
2885 <xs:element ref="PackageCertificates" />
2886 <xs:element ref="PatchCertificates" />
2887 <xs:element ref="PatchFamily" />
2888 <xs:element ref="PatchFamilyGroup"/>
2889 <xs:element ref="PatchFamilyGroupRef"/>
2890 <xs:element ref="PayloadGroup" />
2891 <xs:element ref="Property" />
2892 <xs:element ref="PropertyRef" />
2893 <xs:element ref="RelatedBundle" />
2894 <xs:element ref="Requires" />
2895 <xs:element ref="SetDirectory" />
2896 <xs:element ref="SetProperty" />
2897 <xs:element ref="SetVariable" />
2898 <xs:element ref="SetVariableRef" />
2899 <xs:element ref="SFPCatalog" />
2900 <xs:element ref="StandardDirectory" />
2901 <xs:element ref="UI" />
2902 <xs:element ref="UIRef" />
2903 <xs:element ref="Upgrade" />
2904 <xs:element ref="Variable" />
2905 <xs:element ref="WixVariable" />
2906 <xs:any namespace="##other" processContents="lax">
2907 <xs:annotation>
2908 <xs:documentation>
2909 Extensibility point in the WiX XML Schema. Schema extensions can register additional
2910 elements at this point in the schema.
2911 </xs:documentation>
2912 </xs:annotation>
2913 </xs:any>
2914 </xs:choice>
2915 <xs:attribute name="Id" type="xs:string">
2916 <xs:annotation>
2917 <xs:documentation>
2918 Optional identifier for a Fragment. Should only be set by advanced users to tag sections.
2919 </xs:documentation>
2920 </xs:annotation>
2921 </xs:attribute>
2922 </xs:complexType>
2923 </xs:element>
2924 <xs:element name="Patch">
2925 <xs:annotation>
2926 <xs:documentation>
2927 The Patch element is analogous to the main function in a C program. When linking, only one Patch section
2928 can be given to the linker to produce a successful result. Using this element creates an MSP file.
2929 </xs:documentation>
2930 <xs:appinfo>
2931 <xse:remarks>
2932 <html:p>You can specify any valid Windows code by by integer like 1252, or by web name like Windows-1252. See [Code pages](../../../tools/codepage/) for more information.</html:p>
2933 <html:p>The ClientPatchId attribute allows you to specify an easily referenced identity that you can use in product authoring. This identity prefixes properties added by WiX to a patch transform, such as <html:i>ClientPatchId</html:i>.PatchCode and <html:i>ClientPatchId</html:i>.AllowRemoval. If the patch code GUID is auto-generated you could not reference any properties using this auto-generated prefix.</html:p>
2934 <html:p>For example, if you were planning to ship a patch referred to as "QFE1" and needed to write your own registry values for Add/Remove Programs in product authoring such as the UninstallString for this patch, you could author a RegistryValue with the name UninstallString and the value <html:code>[SystemFolder]msiexec.exe /package [ProductCode] /uninstall [QFE1.PatchCode]</html:code>. In your patch authoring you would then set ClientPatchId to "QFE1" and WiX will add the QFE1.PatchCode property to the patch transform when the patch is created. If the Id attribute specified the patch code to be generated automatically, you could not reference the <html:i>prefix</html:i>.PatchCode property as shown above.</html:p>
2935 <html:p>The summary information is automatically populated from attribute values of the Patch element including the code page. If you want to override some of these summary information properties or use a different code page for the summary information itself, author the PatchInformation element.</html:p>
2936 </xse:remarks>
2937 </xs:appinfo>
2938 </xs:annotation>
2939 <xs:complexType>
2940 <xs:sequence>
2941 <xs:choice minOccurs="0" maxOccurs="unbounded">
2942 <xs:element ref="PatchInformation" minOccurs="0" maxOccurs="1">
2943 <xs:annotation>
2944 <xs:documentation>Optional element that allows overriding summary information properties.</xs:documentation>
2945 </xs:annotation>
2946 </xs:element>
2947 <xs:element ref="Media" minOccurs="1" maxOccurs="unbounded" />
2948 <xs:element ref="OptimizeCustomActions" minOccurs="0" maxOccurs="1">
2949 <xs:annotation>
2950 <xs:documentation>Indicates whether custom actions can be skipped when applying the patch.</xs:documentation>
2951 </xs:annotation>
2952 </xs:element>
2953 <xs:element ref="PatchFamily" minOccurs="1" maxOccurs="unbounded" />
2954 <xs:element ref="PatchFamilyRef" minOccurs="0" maxOccurs="unbounded" />
2955 <xs:element ref="PatchFamilyGroup" minOccurs="1" maxOccurs="unbounded"/>
2956 <xs:element ref="PatchFamilyGroupRef" minOccurs="0" maxOccurs="unbounded"/>
2957 <xs:element ref="PatchProperty" />
2958 <xs:element ref="TargetProductCodes" />
2959 <xs:any namespace="##other" processContents="lax">
2960 <xs:annotation>
2961 <xs:documentation>
2962 Extensibility point in the WiX XML Schema. Schema extensions can register additional
2963 elements at this point in the schema.
2964 </xs:documentation>
2965 </xs:annotation>
2966 </xs:any>
2967 </xs:choice>
2968 </xs:sequence>
2969 <xs:attribute name="Id" type="AutogenGuid">
2970 <xs:annotation>
2971 <xs:documentation>Patch code for this patch.</xs:documentation>
2972 </xs:annotation>
2973 </xs:attribute>
2974 <xs:attribute name="Codepage" type="xs:string">
2975 <xs:annotation>
2976 <xs:documentation>The code page integer value or web name for the resulting MSP. See remarks for more information.</xs:documentation>
2977 </xs:annotation>
2978 </xs:attribute>
2979 <xs:attribute name="AllowRemoval" type="YesNoTypeUnion">
2980 <xs:annotation>
2981 <xs:documentation>Whether this is an uninstallable patch.</xs:documentation>
2982 </xs:annotation>
2983 </xs:attribute>
2984 <xs:attribute name="Classification" type="xs:string" use="required">
2985 <xs:annotation>
2986 <xs:documentation>Category of updates. Recommended values are Critical Update, Hotfix, Security Rollup, Security Update, Service Pack, Update, Update Rollup.</xs:documentation>
2987 </xs:annotation>
2988 </xs:attribute>
2989 <xs:attribute name="ClientPatchId" type="xs:string">
2990 <xs:annotation>
2991 <xs:documentation>An easily referenced identity unique to a patch that can be used in product authoring. See remarks for more information.</xs:documentation>
2992 </xs:annotation>
2993 </xs:attribute>
2994 <xs:attribute name="ApiPatchingSymbolNoImagehlpFlag" type="YesNoTypeUnion">
2995 <xs:annotation>
2996 <xs:documentation>Flag used when creating a binary file patch. Default is "no". Don't use imagehlp.dll.</xs:documentation>
2997 </xs:annotation>
2998 </xs:attribute>
2999 <xs:attribute name="ApiPatchingSymbolNoFailuresFlag" type="YesNoTypeUnion">
3000 <xs:annotation>
3001 <xs:documentation>Flag used when creating a binary file patch. Default is "no". Don't fail patch due to imagehlp failures.</xs:documentation>
3002 </xs:annotation>
3003 </xs:attribute>
3004 <xs:attribute name="ApiPatchingSymbolUndecoratedTooFlag" type="YesNoTypeUnion">
3005 <xs:annotation>
3006 <xs:documentation>Flag used when creating a binary file patch. Default is "no". After matching decorated symbols, try to match remaining by undecorated names.</xs:documentation>
3007 </xs:annotation>
3008 </xs:attribute>
3009 <xs:attribute name="Description" type="xs:string" use="required">
3010 <xs:annotation>
3011 <xs:documentation>Description of the patch.</xs:documentation>
3012 </xs:annotation>
3013 </xs:attribute>
3014 <xs:attribute name="DisplayName" type="xs:string" use="required">
3015 <xs:annotation>
3016 <xs:documentation>A title for the patch that is suitable for public display. In Add/Remove Programs from XP SP2 on.</xs:documentation>
3017 </xs:annotation>
3018 </xs:attribute>
3019 <xs:attribute name="Comments" type="xs:string">
3020 <xs:annotation>
3021 <xs:documentation>Optional comments for browsing.</xs:documentation>
3022 </xs:annotation>
3023 </xs:attribute>
3024 <xs:attribute name="Manufacturer" type="xs:string">
3025 <xs:annotation>
3026 <xs:documentation>Vendor releasing the package</xs:documentation>
3027 </xs:annotation>
3028 </xs:attribute>
3029 <xs:attribute name="MinorUpdateTargetRTM" type="YesNoTypeUnion">
3030 <xs:annotation>
3031 <xs:documentation>
3032 Indicates that the patch targets the RTM version of the product or the most recent major
3033 upgrade patch. Author this optional property in minor update patches that contain sequencing
3034 information to indicate that the patch removes all patches up to the RTM version of the
3035 product, or up to the most recent major upgrade patch. This property is available beginning
3036 with Windows Installer 3.1.
3037 </xs:documentation>
3038 </xs:annotation>
3039 </xs:attribute>
3040 <xs:attribute name="MoreInfoURL" type="xs:string">
3041 <xs:annotation>
3042 <xs:documentation>A URL that provides information specific to this patch. In Add/Remove Programs from XP SP2 on.</xs:documentation>
3043 </xs:annotation>
3044 </xs:attribute>
3045 <xs:attribute name="OptimizedInstallMode" type="YesNoTypeUnion">
3046 <xs:annotation>
3047 <xs:documentation>
3048 If this attribute is set to 'yes' in all the patches to be applied in a transaction, the
3049 application of the patch is optimized if possible. Available beginning with Windows Installer 3.1.
3050 </xs:documentation>
3051 </xs:annotation>
3052 </xs:attribute>
3053 <xs:attribute name="TargetProductName" type="xs:string">
3054 <xs:annotation>
3055 <xs:documentation>Name of the application or target product suite.</xs:documentation>
3056 </xs:annotation>
3057 </xs:attribute>
3058 <xs:attribute name="OptimizePatchSizeForLargeFiles" type="YesNoTypeUnion">
3059 <xs:annotation>
3060 <xs:documentation>When this attribute is set, patches for files greater than approximately 4 MB in size may be made smaller.</xs:documentation>
3061 </xs:annotation>
3062 </xs:attribute>
3063 </xs:complexType>
3064 </xs:element>
3065 <xs:element name="Validate">
3066 <xs:annotation>
3067 <xs:documentation>Sets information in the patch transform that determines if the transform applies to an installed product and what errors should be ignored when applying the patch transform.</xs:documentation>
3068 <xs:appinfo>
3069 <xse:remarks>
3070 <html:p>A transform contains the differences between the target product and the upgraded product. When a transform or a patch (which contains transforms) is applied, the following properties of the installed product are validated against the properties of the target product stored in a transform.</html:p>
3071 <html:ul>
3072 <html:li>ProductCode</html:li>
3073 <html:li>ProductLanguage</html:li>
3074 <html:li>ProductVersion</html:li>
3075 <html:li>UpgradeCode</html:li>
3076 </html:ul>
3077 <html:p>Windows Installer simply validates that the ProductCode, ProductLanguage, and UpgradeCode of an installed product are equivalent to those propeties of the target product used to create the transform; however, the ProductVersion can be validated with a greater range of comparisons.</html:p>
3078 <html:p>You can compare up to the first three fields of the ProductVersion. Changes to the fourth field are not validated and are useful for small updates. You can also choose how to compare the target ProductVersion used to create the transform with the installed ProductVersion. For example, while the default value of 'Equals' is recommended, if you wanted a minor upgrade patch to apply to the target ProductVersion and all older products with the same ProductCode, you would use 'LesserOrEqual'.</html:p>
3079 </xse:remarks>
3080 </xs:appinfo>
3081 </xs:annotation>
3082 <xs:complexType>
3083 <xs:attribute name="ProductId" type="YesNoTypeUnion" default="yes">
3084 <xs:annotation>
3085 <xs:documentation>Requires that the installed ProductCode match the target ProductCode used to create the transform. The default is 'yes'.</xs:documentation>
3086 </xs:annotation>
3087 </xs:attribute>
3088 <xs:attribute name="ProductLanguage" type="YesNoTypeUnion" default="no">
3089 <xs:annotation>
3090 <xs:documentation>Requires that the installed ProductLanguage match the target ProductLanguage used to create the transform. The default is 'no'.</xs:documentation>
3091 </xs:annotation>
3092 </xs:attribute>
3093 <xs:attribute name="ProductVersion" default="Update">
3094 <xs:annotation>
3095 <xs:documentation>Determines how many fields of the installed ProductVersion to compare. See remarks for more information. The default is 'Update'.</xs:documentation>
3096 </xs:annotation>
3097 <xs:simpleType>
3098 <xs:restriction base="xs:NMTOKEN">
3099 <xs:enumeration value="Major">
3100 <xs:annotation>
3101 <xs:documentation>Checks the major version.</xs:documentation>
3102 </xs:annotation>
3103 </xs:enumeration>
3104 <xs:enumeration value="Minor">
3105 <xs:annotation>
3106 <xs:documentation>Checks the major and minor versions.</xs:documentation>
3107 </xs:annotation>
3108 </xs:enumeration>
3109 <xs:enumeration value="Update">
3110 <xs:annotation>
3111 <xs:documentation>Checks the major, minor, and update versions.</xs:documentation>
3112 </xs:annotation>
3113 </xs:enumeration>
3114 </xs:restriction>
3115 </xs:simpleType>
3116 </xs:attribute>
3117 <xs:attribute name="ProductVersionOperator" default="Equal">
3118 <xs:annotation>
3119 <xs:documentation>Determines how the installed ProductVersion is compared to the target ProductVersion used to create the transform. See remarks for more information. The default is 'Equal'.</xs:documentation>
3120 </xs:annotation>
3121 <xs:simpleType>
3122 <xs:restriction base="xs:NMTOKEN">
3123 <xs:enumeration value="Lesser">
3124 <xs:annotation>
3125 <xs:documentation>Installed ProductVersion &lt; target ProductVersion.</xs:documentation>
3126 </xs:annotation>
3127 </xs:enumeration>
3128 <xs:enumeration value="LesserOrEqual">
3129 <xs:annotation>
3130 <xs:documentation>Installed ProductVersion &lt;= target ProductVersion.</xs:documentation>
3131 </xs:annotation>
3132 </xs:enumeration>
3133 <xs:enumeration value="Equal">
3134 <xs:annotation>
3135 <xs:documentation>Installed ProductVersion = target ProductVersion.</xs:documentation>
3136 </xs:annotation>
3137 </xs:enumeration>
3138 <xs:enumeration value="GreaterOrEqual">
3139 <xs:annotation>
3140 <xs:documentation>Installed ProductVersion &gt;= target ProductVersion.</xs:documentation>
3141 </xs:annotation>
3142 </xs:enumeration>
3143 <xs:enumeration value="Greater">
3144 <xs:annotation>
3145 <xs:documentation>Installed ProductVersion &gt; target ProductVersion.</xs:documentation>
3146 </xs:annotation>
3147 </xs:enumeration>
3148 </xs:restriction>
3149 </xs:simpleType>
3150 </xs:attribute>
3151 <xs:attribute name="UpgradeCode" type="YesNoTypeUnion" default="yes">
3152 <xs:annotation>
3153 <xs:documentation>Requires that the installed UpgradeCode match the target UpgradeCode used to create the transform. The default is 'yes'.</xs:documentation>
3154 </xs:annotation>
3155 </xs:attribute>
3156 <xs:attribute name="IgnoreAddExistingRow" type="YesNoTypeUnion" default="yes">
3157 <xs:annotation>
3158 <xs:documentation>Ignore errors when adding existing rows. The default is 'yes'.</xs:documentation>
3159 </xs:annotation>
3160 </xs:attribute>
3161 <xs:attribute name="IgnoreAddExistingTable" type="YesNoTypeUnion" default="yes">
3162 <xs:annotation>
3163 <xs:documentation>Ignore errors when adding existing tables. The default is 'yes'.</xs:documentation>
3164 </xs:annotation>
3165 </xs:attribute>
3166 <xs:attribute name="IgnoreDeleteMissingRow" type="YesNoTypeUnion" default="yes">
3167 <xs:annotation>
3168 <xs:documentation>Ignore errors when deleting missing rows. The default is 'yes'.</xs:documentation>
3169 </xs:annotation>
3170 </xs:attribute>
3171 <xs:attribute name="IgnoreDeleteMissingTable" type="YesNoTypeUnion" default="yes">
3172 <xs:annotation>
3173 <xs:documentation>Ignore errors when deleting missing tables. The default is 'yes'.</xs:documentation>
3174 </xs:annotation>
3175 </xs:attribute>
3176 <xs:attribute name="IgnoreUpdateMissingRow" type="YesNoTypeUnion" default="yes">
3177 <xs:annotation>
3178 <xs:documentation>Ignore errors when updating missing rows. The default is 'yes'.</xs:documentation>
3179 </xs:annotation>
3180 </xs:attribute>
3181 <xs:attribute name="IgnoreChangingCodePage" type="YesNoTypeUnion" default="no">
3182 <xs:annotation>
3183 <xs:documentation>Ignore errors when changing the database code page. The default is 'no'.</xs:documentation>
3184 </xs:annotation>
3185 </xs:attribute>
3186 </xs:complexType>
3187 </xs:element>
3188 <xs:element name="OptimizeCustomActions">
3189 <xs:annotation>
3190 <xs:documentation>Indicates whether custom actions can be skipped when applying the patch.</xs:documentation>
3191 <xs:appinfo>
3192 <xse:msiRef table="MsiPatchMetadata" href="http://msdn.microsoft.com/library/aa370344.aspx" />
3193 </xs:appinfo>
3194 </xs:annotation>
3195 <xs:complexType>
3196 <xs:attribute name="SkipAssignment" type="YesNoTypeUnion">
3197 <xs:annotation>
3198 <xs:documentation>Skip property (type 51) and directory (type 35) assignment custom actions.</xs:documentation>
3199 </xs:annotation>
3200 </xs:attribute>
3201 <xs:attribute name="SkipImmediate" type="YesNoTypeUnion">
3202 <xs:annotation>
3203 <xs:documentation>Skip immediate custom actions that are not property or directory assignment custom actions.</xs:documentation>
3204 </xs:annotation>
3205 </xs:attribute>
3206 <xs:attribute name="SkipDeferred" type="YesNoTypeUnion">
3207 <xs:annotation>
3208 <xs:documentation>Skip custom actions that run within the script.</xs:documentation>
3209 </xs:annotation>
3210 </xs:attribute>
3211 </xs:complexType>
3212 </xs:element>
3213 <xs:element name="PatchBaseline">
3214 <xs:annotation>
3215 <xs:documentation>Identifies a set of product versions.</xs:documentation>
3216 </xs:annotation>
3217 <xs:complexType>
3218 <xs:choice minOccurs="0">
3219 <xs:element ref="Validate" minOccurs="0" />
3220 </xs:choice>
3221 <xs:attribute name="Id" type="xs:string" use="required">
3222 <xs:annotation>
3223 <xs:documentation>Identifier for a set of product versions. It is recommended to use short identifiers like 'RTM' and 'SP1'. The identifier will been trimmed to less than 28 characters as required by the Windows Installer.</xs:documentation>
3224 </xs:annotation>
3225 </xs:attribute>
3226 <xs:attribute name="BaselineFile" type="xs:string" use="required">
3227 <xs:annotation>
3228 <xs:documentation>Path to baseline MSI for patch.</xs:documentation>
3229 </xs:annotation>
3230 </xs:attribute>
3231 <xs:attribute name="UpdateFile" type="xs:string" use="required">
3232 <xs:annotation>
3233 <xs:documentation>Path to updated MSI for patch.</xs:documentation>
3234 </xs:annotation>
3235 </xs:attribute>
3236 <xs:attribute name="DiskId" type="Integer">
3237 <xs:annotation>
3238 <xs:documentation>Optional id for cabinet to place patched files in.</xs:documentation>
3239 </xs:annotation>
3240 </xs:attribute>
3241 </xs:complexType>
3242 </xs:element>
3243 <xs:element name="PatchFamily">
3244 <xs:annotation>
3245 <xs:documentation>Collection of items that should be kept from the differences between two products.</xs:documentation>
3246 </xs:annotation>
3247 <xs:complexType>
3248 <xs:choice minOccurs="0" maxOccurs="unbounded">
3249 <xs:element ref="All" minOccurs="0" />
3250 <xs:element ref="BinaryRef" minOccurs="0" maxOccurs="unbounded" />
3251 <xs:element ref="ComponentRef" minOccurs="0" maxOccurs="unbounded" />
3252 <xs:element ref="CustomActionRef" minOccurs="0" maxOccurs="unbounded" />
3253 <xs:element ref="DigitalCertificateRef" minOccurs="0" maxOccurs="unbounded" />
3254 <xs:element ref="DirectoryRef" minOccurs="0" maxOccurs="unbounded" />
3255 <xs:element ref="FeatureRef" minOccurs="0" maxOccurs="unbounded" />
3256 <xs:element ref="IconRef" minOccurs="0" maxOccurs="unbounded" />
3257 <xs:element ref="PropertyRef" minOccurs="0" maxOccurs="unbounded" />
3258 <xs:element ref="SoftwareTagRef" minOccurs="0" maxOccurs="unbounded" />
3259 <xs:element ref="UIRef" minOccurs="0" maxOccurs="unbounded" />
3260 <xs:any namespace="##other" processContents="lax">
3261 <xs:annotation>
3262 <xs:documentation>
3263 Extensibility point in the WiX XML Schema. Schema extensions can register additional
3264 elements at this point in the schema.
3265 </xs:documentation>
3266 </xs:annotation>
3267 </xs:any>
3268 </xs:choice>
3269 <xs:attribute name="Id" type="xs:string" use="required">
3270 <xs:annotation>
3271 <xs:documentation>Identifier which indicates a sequence family to which this patch belongs.</xs:documentation>
3272 </xs:annotation>
3273 </xs:attribute>
3274 <xs:attribute name="ProductCode" type="Guid">
3275 <xs:annotation>
3276 <xs:documentation>
3277 Specifies the ProductCode of the product that this family applies to.
3278 </xs:documentation>
3279 </xs:annotation>
3280 </xs:attribute>
3281 <xs:attribute name="Version" type="xs:string" use="required">
3282 <xs:annotation>
3283 <xs:documentation>
3284 Used to populate the sequence column of the MsiPatchSequence table in the final MSP file.
3285 Specified in x.x.x.x format. See documentation for Sequence column of MsiPatchSequence table in MSI SDK.
3286 </xs:documentation>
3287 </xs:annotation>
3288 </xs:attribute>
3289 <xs:attribute name="Supersede" type="YesNoTypeUnion">
3290 <xs:annotation>
3291 <xs:documentation>
3292 Set this value to 'yes' to indicate that this patch will supersede all previous patches in this patch family.
3293 The default value is 'no'.
3294 </xs:documentation>
3295 </xs:annotation>
3296 </xs:attribute>
3297 <xs:anyAttribute namespace="##other" processContents="lax">
3298 <xs:annotation>
3299 <xs:documentation>
3300 Extensibility point in the WiX XML Schema. Schema extensions can register additional
3301 attributes at this point in the schema.
3302 </xs:documentation>
3303 </xs:annotation>
3304 </xs:anyAttribute>
3305 </xs:complexType>
3306 </xs:element>
3307 <xs:element name="PatchFamilyGroup">
3308 <xs:annotation>
3309 <xs:documentation>
3310 Groups together multiple patch families to be used in other locations.
3311 </xs:documentation>
3312 <xs:appinfo>
3313 <xse:seeAlso ref="PatchFamilyGroupRef"/>
3314 </xs:appinfo>
3315 </xs:annotation>
3316 <xs:complexType>
3317 <xs:choice minOccurs="0" maxOccurs="unbounded">
3318 <xs:element ref="PatchFamily"/>
3319 <xs:element ref="PatchFamilyRef"/>
3320 <xs:element ref="PatchFamilyGroupRef"/>
3321 <xs:any namespace="##other" processContents="lax">
3322 <xs:annotation>
3323 <xs:documentation>
3324 Extensibility point in the WiX XML Schema. Schema extensions can register additional
3325 elements at this point in the schema.
3326 </xs:documentation>
3327 </xs:annotation>
3328 </xs:any>
3329 </xs:choice>
3330 <xs:attribute name="Id" type="xs:string" use="required">
3331 <xs:annotation>
3332 <xs:documentation>Identifier for the PatchFamilyGroup.</xs:documentation>
3333 </xs:annotation>
3334 </xs:attribute>
3335 <xs:anyAttribute namespace="##other" processContents="lax">
3336 <xs:annotation>
3337 <xs:documentation>
3338 Extensibility point in the WiX XML Schema. Schema extensions can register additional
3339 attributes at this point in the schema.
3340 </xs:documentation>
3341 </xs:annotation>
3342 </xs:anyAttribute>
3343 </xs:complexType>
3344</xs:element>
3345<xs:element name="PatchFamilyGroupRef">
3346 <xs:annotation>
3347 <xs:documentation>Create a reference to a PatchFamilyGroup in another Fragment.</xs:documentation>
3348 <xs:appinfo>
3349 <xse:seeAlso ref="PatchFamilyGroup" />
3350 </xs:appinfo>
3351 </xs:annotation>
3352 <xs:complexType>
3353 <xs:attribute name="Id" type="xs:string" use="required">
3354 <xs:annotation>
3355 <xs:documentation>The identifier of the PatchFamilyGroup to reference.</xs:documentation>
3356 </xs:annotation>
3357 </xs:attribute>
3358 <xs:anyAttribute namespace="##other" processContents="lax">
3359 <xs:annotation>
3360 <xs:documentation>
3361 Extensibility point in the WiX XML Schema. Schema extensions can register additional
3362 attributes at this point in the schema.
3363 </xs:documentation>
3364 </xs:annotation>
3365 </xs:anyAttribute>
3366 </xs:complexType>
3367</xs:element>
3368 <xs:element name="PatchCreation">
3369 <xs:annotation>
3370 <xs:documentation>
3371 The PatchCreation element is analogous to the main function in a C program. When linking, only one PatchCreation section
3372 can be given to the linker to produce a successful result. Using this element creates a pcp file.
3373 </xs:documentation>
3374 <xs:appinfo>
3375 <xse:remarks>
3376 <html:p>You can specify any valid Windows code by by integer like 1252, or by web name like Windows-1252. See [Code pages](../../../tools/codepage/) for more information.</html:p>
3377 </xse:remarks>
3378 </xs:appinfo>
3379 </xs:annotation>
3380 <xs:complexType>
3381 <xs:sequence>
3382 <xs:element ref="PatchInformation" />
3383 <xs:element ref="PatchMetadata" minOccurs="0" />
3384 <xs:element ref="Family" maxOccurs="unbounded" />
3385 <xs:choice minOccurs="0" maxOccurs="unbounded">
3386 <xs:element ref="PatchProperty" />
3387 <xs:element ref="PatchSequence" />
3388 <xs:element ref="ReplacePatch" />
3389 <xs:element ref="TargetProductCode" />
3390 </xs:choice>
3391 </xs:sequence>
3392 <xs:attribute name="Id" type="Guid" use="required">
3393 <xs:annotation>
3394 <xs:documentation>PatchCreation identifier; this is the primary key for identifying patches.</xs:documentation>
3395 </xs:annotation>
3396 </xs:attribute>
3397 <xs:attribute name="AllowMajorVersionMismatches" type="YesNoTypeUnion">
3398 <xs:annotation>
3399 <xs:documentation>Use this to set whether the major versions between the upgrade and target images match. See <html:a href="http://msdn.microsoft.com/library/aa370890.aspx">AllowProductVersionMajorMismatches</html:a> for more information.</xs:documentation>
3400 </xs:annotation>
3401 </xs:attribute>
3402 <xs:attribute name="AllowProductCodeMismatches" type="YesNoTypeUnion">
3403 <xs:annotation>
3404 <xs:documentation>Use this to set whether the product code between the upgrade and target images match. See <html:a href="http://msdn.microsoft.com/library/aa370890.aspx">AllowProductCodeMismatches</html:a> for more information.</xs:documentation>
3405 </xs:annotation>
3406 </xs:attribute>
3407 <xs:attribute name="CleanWorkingFolder" type="YesNoTypeUnion">
3408 <xs:annotation>
3409 <xs:documentation>Use this to set whether Patchwiz should clean the temp folder when finished. See <html:a href="http://msdn.microsoft.com/library/aa370890.aspx">DontRemoveTempFolderWhenFinished</html:a> for more information. </xs:documentation>
3410 </xs:annotation>
3411 </xs:attribute>
3412 <xs:attribute name="Codepage" type="xs:string">
3413 <xs:annotation>
3414 <xs:documentation>The code page integer value or web name for the resulting PCP. See remarks for more information.</xs:documentation>
3415 </xs:annotation>
3416 </xs:attribute>
3417 <xs:attribute name="OutputPath" type="xs:string">
3418 <xs:annotation>
3419 <xs:documentation>The full path, including file name, of the patch package file that is to be generated. See <html:a href="http://msdn.microsoft.com/library/aa370890.aspx">PatchOutputPath</html:a> for more information.</xs:documentation>
3420 </xs:annotation>
3421 </xs:attribute>
3422 <xs:attribute name="SourceList" type="xs:string">
3423 <xs:annotation>
3424 <xs:documentation>Used to locate the .msp file for the patch if the cached copy is unavailable. See <html:a href="http://msdn.microsoft.com/library/aa370890.aspx">PatchSourceList</html:a> for more information.</xs:documentation>
3425 </xs:annotation>
3426 </xs:attribute>
3427 <xs:attribute name="SymbolFlags" type="xs:int">
3428 <xs:annotation>
3429 <xs:documentation>An 8-digit hex integer representing the combination of patch symbol usage flags to use when creating a binary file patch. See <html:a href="http://msdn.microsoft.com/library/aa370890.aspx">ApiPatchingSymbolFlags</html:a> for more information.</xs:documentation>
3430 </xs:annotation>
3431 </xs:attribute>
3432 <xs:attribute name="WholeFilesOnly" type="YesNoTypeUnion">
3433 <xs:annotation>
3434 <xs:documentation>Use this to set whether changing files should be included in their entirety. See <html:a href="http://msdn.microsoft.com/library/aa370890.aspx">IncludeWholeFilesOnly</html:a> for more information.</xs:documentation>
3435 </xs:annotation>
3436 </xs:attribute>
3437 </xs:complexType>
3438 </xs:element>
3439 <xs:element name="PatchInformation">
3440 <xs:annotation>
3441 <xs:documentation>Properties about the patch to be placed in the Summary Information Stream. These are visible from COM through the IStream interface, and these properties can be seen on the package in Explorer.</xs:documentation>
3442 <xs:appinfo>
3443 <xse:remarks>
3444 <html:p>You can specify any valid Windows code by by integer like 1252, or by web name like Windows-1252. See [Code pages](../../../tools/codepage/) for more information.</html:p>
3445 </xse:remarks>
3446 </xs:appinfo>
3447 </xs:annotation>
3448 <xs:complexType>
3449 <xs:attribute name="Description" type="xs:string">
3450 <xs:annotation>
3451 <xs:documentation>A short description of the patch that includes the name of the product.</xs:documentation>
3452 </xs:annotation>
3453 </xs:attribute>
3454 <xs:attribute name="Platforms" type="xs:string">
3455 <xs:annotation>
3456 <xs:appinfo>
3457 <xse:deprecated />
3458 </xs:appinfo>
3459 </xs:annotation>
3460 </xs:attribute>
3461 <xs:attribute name="Languages" type="xs:string">
3462 <xs:annotation>
3463 <xs:appinfo>
3464 <xse:deprecated />
3465 </xs:appinfo>
3466 </xs:annotation>
3467 </xs:attribute>
3468 <xs:attribute name="Manufacturer" type="xs:string">
3469 <xs:annotation>
3470 <xs:documentation>The name of the manufacturer of the patch package.</xs:documentation>
3471 </xs:annotation>
3472 </xs:attribute>
3473 <xs:attribute name="Keywords" type="xs:string">
3474 <xs:annotation>
3475 <xs:documentation>A semicolon-delimited list of network or URL locations for alternate sources of the patch. The default is "Installer,Patching,PCP,Database".</xs:documentation>
3476 </xs:annotation>
3477 </xs:attribute>
3478 <xs:attribute name="Comments" type="xs:string">
3479 <xs:annotation>
3480 <xs:documentation>General purpose of the patch package. For example, "This patch contains the logic and data required to install _product_."</xs:documentation>
3481 </xs:annotation>
3482 </xs:attribute>
3483 <xs:attribute name="ReadOnly" type="YesNoDefaultTypeUnion">
3484 <xs:annotation>
3485 <xs:documentation>
3486 The value of this attribute conveys whether the package should be opened as read-only.
3487 A database editing tool should not modify a read-only enforced database and should
3488 issue a warning at attempts to modify a read-only recommended database.
3489 </xs:documentation>
3490 </xs:annotation>
3491 </xs:attribute>
3492 <xs:attribute name="SummaryCodepage" type="xs:string">
3493 <xs:annotation>
3494 <xs:documentation>The code page integer value or web name for summary info strings only. The default is 1252. See remarks for more information.</xs:documentation>
3495 </xs:annotation>
3496 </xs:attribute>
3497 <xs:attribute name="ShortNames" type="YesNoTypeUnion">
3498 <xs:annotation>
3499 <xs:appinfo>
3500 <xse:deprecated />
3501 </xs:appinfo>
3502 </xs:annotation>
3503 </xs:attribute>
3504 <xs:attribute name="Compressed" type="YesNoTypeUnion">
3505 <xs:annotation>
3506 <xs:appinfo>
3507 <xse:deprecated />
3508 </xs:appinfo>
3509 </xs:annotation>
3510 </xs:attribute>
3511 <xs:attribute name="AdminImage" type="YesNoTypeUnion">
3512 <xs:annotation>
3513 <xs:appinfo>
3514 <xse:deprecated />
3515 </xs:appinfo>
3516 </xs:annotation>
3517 </xs:attribute>
3518 </xs:complexType>
3519 </xs:element>
3520 <xs:element name="PatchMetadata">
3521 <xs:annotation>
3522 <xs:documentation>Properties about the patch to be placed in the PatchMetadata table.</xs:documentation>
3523 <xs:appinfo>
3524 <xse:msiRef table="MsiPatchMetadata" href="http://msdn.microsoft.com/library/aa370344.aspx" />
3525 </xs:appinfo>
3526 </xs:annotation>
3527 <xs:complexType>
3528 <xs:sequence>
3529 <xs:choice minOccurs="0" maxOccurs="unbounded">
3530 <xs:element ref="CustomProperty" minOccurs="0">
3531 <xs:annotation>
3532 <xs:documentation>A custom property that extends the standard set.</xs:documentation>
3533 </xs:annotation>
3534 </xs:element>
3535 <xs:element ref="OptimizeCustomActions" minOccurs="0" maxOccurs="1">
3536 <xs:annotation>
3537 <xs:documentation>Indicates whether custom actions can be skipped when applying the patch.</xs:documentation>
3538 </xs:annotation>
3539 </xs:element>
3540 </xs:choice>
3541 </xs:sequence>
3542 <xs:attribute name="AllowRemoval" type="YesNoTypeUnion" use="required">
3543 <xs:annotation>
3544 <xs:documentation>Whether this is an uninstallable patch.</xs:documentation>
3545 </xs:annotation>
3546 </xs:attribute>
3547 <xs:attribute name="Classification" type="xs:string" use="required">
3548 <xs:annotation>
3549 <xs:documentation>Category of updates. Recommended values are Critical Update, Hotfix, Security Rollup, Security Update, Service Pack, Update, Update Rollup.</xs:documentation>
3550 </xs:annotation>
3551 </xs:attribute>
3552 <xs:attribute name="CreationTimeUTC" type="xs:string">
3553 <xs:annotation>
3554 <xs:documentation>Creation time of the .msp file in the form mm-dd-yy HH:MM (month-day-year hour:minute).</xs:documentation>
3555 </xs:annotation>
3556 </xs:attribute>
3557 <xs:attribute name="Description" type="xs:string" use="required">
3558 <xs:annotation>
3559 <xs:documentation>Description of the patch.</xs:documentation>
3560 </xs:annotation>
3561 </xs:attribute>
3562 <xs:attribute name="DisplayName" type="xs:string" use="required">
3563 <xs:annotation>
3564 <xs:documentation>A title for the patch that is suitable for public display. In Add/Remove Programs from XP SP2 on.</xs:documentation>
3565 </xs:annotation>
3566 </xs:attribute>
3567 <xs:attribute name="ManufacturerName" type="xs:string" use="required">
3568 <xs:annotation>
3569 <xs:documentation>Name of the manufacturer.</xs:documentation>
3570 </xs:annotation>
3571 </xs:attribute>
3572 <xs:attribute name="MinorUpdateTargetRTM" type="xs:string">
3573 <xs:annotation>
3574 <xs:documentation>
3575 Indicates that the patch targets the RTM version of the product or the most recent major
3576 upgrade patch. Author this optional property in minor update patches that contain sequencing
3577 information to indicate that the patch removes all patches up to the RTM version of the
3578 product, or up to the most recent major upgrade patch. This property is available beginning
3579 with Windows Installer 3.1.
3580 </xs:documentation>
3581 </xs:annotation>
3582 </xs:attribute>
3583 <xs:attribute name="MoreInfoURL" type="xs:string" use="required">
3584 <xs:annotation>
3585 <xs:documentation>A URL that provides information specific to this patch. In Add/Remove Programs from XP SP2 on.</xs:documentation>
3586 </xs:annotation>
3587 </xs:attribute>
3588 <xs:attribute name="OptimizedInstallMode" type="YesNoTypeUnion">
3589 <xs:annotation>
3590 <xs:documentation>
3591 If this attribute is set to 'yes' in all the patches to be applied in a transaction, the
3592 application of the patch is optimized if possible. Available beginning with Windows Installer 3.1.
3593 </xs:documentation>
3594 </xs:annotation>
3595 </xs:attribute>
3596 <xs:attribute name="TargetProductName" type="xs:string" use="required">
3597 <xs:annotation>
3598 <xs:documentation>Name of the application or target product suite.</xs:documentation>
3599 </xs:annotation>
3600 </xs:attribute>
3601 </xs:complexType>
3602 </xs:element>
3603 <xs:element name="CustomProperty">
3604 <xs:annotation>
3605 <xs:documentation>A custom property for the PatchMetadata table.</xs:documentation>
3606 </xs:annotation>
3607 <xs:complexType>
3608 <xs:attribute name="Company" type="xs:string" use="required">
3609 <xs:annotation>
3610 <xs:documentation>The name of the company.</xs:documentation>
3611 </xs:annotation>
3612 </xs:attribute>
3613 <xs:attribute name="Property" type="xs:string" use="required">
3614 <xs:annotation>
3615 <xs:documentation>The name of the metadata property.</xs:documentation>
3616 </xs:annotation>
3617 </xs:attribute>
3618 <xs:attribute name="Value" type="xs:string" use="required">
3619 <xs:annotation>
3620 <xs:documentation>Value of the metadata property.</xs:documentation>
3621 </xs:annotation>
3622 </xs:attribute>
3623 </xs:complexType>
3624 </xs:element>
3625 <xs:element name="ReplacePatch">
3626 <xs:annotation>
3627 <xs:documentation>A patch that is deprecated by this patch.</xs:documentation>
3628 </xs:annotation>
3629 <xs:complexType>
3630 <xs:attribute name="Id" type="Guid" use="required">
3631 <xs:annotation>
3632 <xs:documentation>Patch GUID to be unregistered if it exists on the machine targeted by this patch.</xs:documentation>
3633 </xs:annotation>
3634 </xs:attribute>
3635 </xs:complexType>
3636 </xs:element>
3637 <xs:element name="TargetProductCodes">
3638 <xs:annotation>
3639 <xs:documentation>
3640 The product codes for products that can accept the patch.
3641 </xs:documentation>
3642 </xs:annotation>
3643 <xs:complexType>
3644 <xs:choice maxOccurs="unbounded">
3645 <xs:element ref="TargetProductCode" />
3646 </xs:choice>
3647 <xs:attribute name="Replace" type="YesNoTypeUnion">
3648 <xs:annotation>
3649 <xs:documentation>Whether to replace the product codes that can accept the patch from the target packages with the child elements.</xs:documentation>
3650 </xs:annotation>
3651 </xs:attribute>
3652 </xs:complexType>
3653 </xs:element>
3654 <xs:element name="TargetProductCode">
3655 <xs:annotation>
3656 <xs:documentation>
3657 A product code for a product that can accept the patch.
3658 </xs:documentation>
3659 <xs:appinfo>
3660 <xse:remarks>
3661 <html:p>When using the PatchCreation element, if the Id attribute value is '*' or this element is not authored, the product codes of all products referenced by the TargetImages element are used.</html:p>
3662 <html:p>When using the Patch element, the Id attribute value must not be '*'. Use the TargetProductCodes/@Replace attribute instead.</html:p>
3663 </xse:remarks>
3664 </xs:appinfo>
3665 </xs:annotation>
3666 <xs:complexType>
3667 <xs:attribute name="Id" type="xs:string" use="required">
3668 <xs:annotation>
3669 <xs:documentation>
3670 The product code for a product that can accept the patch. This can be '*'. See remarks for more information.
3671 </xs:documentation>
3672 </xs:annotation>
3673 </xs:attribute>
3674 </xs:complexType>
3675 </xs:element>
3676 <xs:element name="PatchProperty">
3677 <xs:annotation>
3678 <xs:documentation>A property for this patch database.</xs:documentation>
3679 <xs:appinfo>
3680 <xse:msiRef table="MsiPatchMetadata" href="http://msdn.microsoft.com/library/aa370344.aspx" />
3681 <xse:remarks>
3682 <html:p>When authored under the Patch element, the PatchProperty defines entries in the MsiPatchMetadata table.</html:p>
3683 </xse:remarks>
3684 </xs:appinfo>
3685 </xs:annotation>
3686 <xs:complexType>
3687 <xs:attribute name="Company" type="xs:string">
3688 <xs:annotation>
3689 <xs:documentation>Name of the company for a custom metadata property.</xs:documentation>
3690 </xs:annotation>
3691 </xs:attribute>
3692 <xs:attribute name="Name" type="xs:string" use="required">
3693 <xs:annotation>
3694 <xs:documentation>Name of the patch property.</xs:documentation>
3695 </xs:annotation>
3696 </xs:attribute>
3697 <xs:attribute name="Value" type="xs:string" use="required">
3698 <xs:annotation>
3699 <xs:documentation>Value of the patch property.</xs:documentation>
3700 </xs:annotation>
3701 </xs:attribute>
3702 </xs:complexType>
3703 </xs:element>
3704 <xs:element name="PatchSequence">
3705 <xs:annotation>
3706 <xs:documentation>Sequence information for this patch database. Sequence information is generated automatically in most cases, and rarely needs to be set explicitly.</xs:documentation>
3707 <xs:appinfo>
3708 <xse:msiRef table="MsiPatchSequence" href="http://msdn.microsoft.com/library/aa370350.aspx" />
3709 </xs:appinfo>
3710 </xs:annotation>
3711 <xs:complexType>
3712 <xs:attribute name="PatchFamily" type="xs:string" use="required">
3713 <xs:annotation>
3714 <xs:documentation>Identifier which indicates a sequence family to which this patch belongs.</xs:documentation>
3715 </xs:annotation>
3716 </xs:attribute>
3717 <xs:attribute name="ProductCode" type="Guid">
3718 <xs:annotation>
3719 <xs:documentation>
3720 Specifies the ProductCode of the product that this family applies to.
3721 This attribute cannot the specified if the TargetImage attribute is specified.
3722 </xs:documentation>
3723 </xs:annotation>
3724 </xs:attribute>
3725 <xs:attribute name="Sequence" type="xs:string">
3726 <xs:annotation>
3727 <xs:documentation>Used to populate the sequence column of the MsiPatchSequence table in the final MSP file. Specified in x.x.x.x format. See documentation for Sequence column of MsiPatchSequence table in MSI SDK.</xs:documentation>
3728 </xs:annotation>
3729 </xs:attribute>
3730 <xs:attribute name="Supersede" type="YesNoTypeUnion">
3731 <xs:annotation>
3732 <xs:documentation>
3733 Set this value to 'yes' to indicate that this patch will supersede all previous patches in this patch family.
3734 The default value is 'no'.
3735 </xs:documentation>
3736 </xs:annotation>
3737 </xs:attribute>
3738 <xs:attribute name="Target" type="xs:string">
3739 <xs:annotation>
3740 <xs:appinfo>
3741 <xse:deprecated ref="TargetImage" />
3742 </xs:appinfo>
3743 </xs:annotation>
3744 </xs:attribute>
3745 <xs:attribute name="TargetImage" type="xs:string">
3746 <xs:annotation>
3747 <xs:documentation>
3748 Specifies the TargetImage that this family applies to.
3749 This attribute cannot the specified if the ProductCode attribute is specified.
3750 </xs:documentation>
3751 </xs:annotation>
3752 </xs:attribute>
3753 </xs:complexType>
3754 </xs:element>
3755 <xs:element name="Family">
3756 <xs:annotation>
3757 <xs:documentation>Group of one or more upgraded images of a product.</xs:documentation>
3758 </xs:annotation>
3759 <xs:complexType>
3760 <xs:sequence>
3761 <xs:element ref="UpgradeImage" maxOccurs="unbounded" />
3762 <xs:choice minOccurs="0" maxOccurs="unbounded">
3763 <xs:element ref="ExternalFile" />
3764 <xs:element ref="ProtectFile" />
3765 </xs:choice>
3766 </xs:sequence>
3767 <xs:attribute name="DiskId" type="DiskIdType">
3768 <xs:annotation>
3769 <xs:documentation>Entered into the DiskId field of the new Media table record.</xs:documentation>
3770 </xs:annotation>
3771 </xs:attribute>
3772 <xs:attribute name="DiskPrompt" type="xs:string">
3773 <xs:annotation>
3774 <xs:documentation>Value to display in the "[1]" of the DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property.</xs:documentation>
3775 </xs:annotation>
3776 </xs:attribute>
3777 <xs:attribute name="MediaSrcProp" type="xs:string">
3778 <xs:annotation>
3779 <xs:documentation>Entered into the Source field of the new Media table entry of the upgraded image.</xs:documentation>
3780 </xs:annotation>
3781 </xs:attribute>
3782 <xs:attribute name="Name" type="xs:string" use="required">
3783 <xs:annotation>
3784 <xs:documentation>Identifier for the family.</xs:documentation>
3785 </xs:annotation>
3786 </xs:attribute>
3787 <xs:attribute name="SequenceStart" type="xs:int">
3788 <xs:annotation>
3789 <xs:documentation>Sequence number for the starting file.</xs:documentation>
3790 </xs:annotation>
3791 </xs:attribute>
3792 <xs:attribute name="VolumeLabel" type="xs:string">
3793 <xs:annotation>
3794 <xs:documentation>Entered into the VolumeLabel field of the new Media table record.</xs:documentation>
3795 </xs:annotation>
3796 </xs:attribute>
3797 </xs:complexType>
3798 </xs:element>
3799 <xs:element name="UpgradeImage">
3800 <xs:annotation>
3801 <xs:documentation>Contains information about the upgraded images of the product.</xs:documentation>
3802 </xs:annotation>
3803 <xs:complexType>
3804 <xs:sequence>
3805 <xs:element ref="TargetImage" maxOccurs="unbounded" />
3806 <xs:choice minOccurs="0" maxOccurs="unbounded">
3807 <xs:element ref="SymbolPath" />
3808 <xs:element ref="UpgradeFile" />
3809 </xs:choice>
3810 </xs:sequence>
3811 <xs:attribute name="Id" type="xs:string" use="required">
3812 <xs:annotation>
3813 <xs:documentation>Identifier to connect target images with upgraded image.</xs:documentation>
3814 </xs:annotation>
3815 </xs:attribute>
3816 <xs:attribute name="SourceFile" type="xs:string">
3817 <xs:annotation>
3818 <xs:documentation>Full path to location of msi file for upgraded image.</xs:documentation>
3819 </xs:annotation>
3820 </xs:attribute>
3821 <xs:attribute name="SourcePatch" type="xs:string">
3822 <xs:annotation>
3823 <xs:documentation>Modified copy of the upgraded installation database that contains additional authoring specific to patching.</xs:documentation>
3824 </xs:annotation>
3825 </xs:attribute>
3826 </xs:complexType>
3827 </xs:element>
3828 <xs:element name="TargetImage">
3829 <xs:annotation>
3830 <xs:documentation>Contains information about the target images of the product.</xs:documentation>
3831 </xs:annotation>
3832 <xs:complexType>
3833 <xs:choice minOccurs="0" maxOccurs="unbounded">
3834 <xs:element ref="SymbolPath" />
3835 <xs:element ref="TargetFile" />
3836 </xs:choice>
3837 <xs:attribute name="Id" type="xs:string" use="required">
3838 <xs:annotation>
3839 <xs:documentation>Identifier for the target image.</xs:documentation>
3840 </xs:annotation>
3841 </xs:attribute>
3842 <xs:attribute name="SourceFile" type="xs:string">
3843 <xs:annotation>
3844 <xs:documentation>Full path to the location of the msi file for the target image.</xs:documentation>
3845 </xs:annotation>
3846 </xs:attribute>
3847 <xs:attribute name="Order" type="xs:int" use="required">
3848 <xs:annotation>
3849 <xs:documentation>Relative order of the target image.</xs:documentation>
3850 </xs:annotation>
3851 </xs:attribute>
3852 <xs:attribute name="Validation" type="xs:string">
3853 <xs:annotation>
3854 <xs:documentation>Product checking to avoid applying irrelevant transforms.</xs:documentation>
3855 </xs:annotation>
3856 </xs:attribute>
3857 <xs:attribute name="IgnoreMissingFiles" type="YesNoTypeUnion">
3858 <xs:annotation>
3859 <xs:documentation>Files missing from the target image are ignored by the installer.</xs:documentation>
3860 </xs:annotation>
3861 </xs:attribute>
3862 </xs:complexType>
3863 </xs:element>
3864 <xs:element name="TargetFile">
3865 <xs:annotation>
3866 <xs:documentation>Information about specific files in a target image.</xs:documentation>
3867 </xs:annotation>
3868 <xs:complexType>
3869 <xs:sequence>
3870 <xs:element ref="SymbolPath" minOccurs="0" />
3871 <xs:choice minOccurs="0" maxOccurs="unbounded">
3872 <xs:element ref="IgnoreRange" />
3873 <xs:element ref="ProtectRange" />
3874 </xs:choice>
3875 </xs:sequence>
3876 <xs:attribute name="Id" type="xs:string" use="required">
3877 <xs:annotation>
3878 <xs:documentation>Foreign key into the File table.</xs:documentation>
3879 </xs:annotation>
3880 </xs:attribute>
3881 </xs:complexType>
3882 </xs:element>
3883 <xs:element name="IgnoreRange">
3884 <xs:annotation>
3885 <xs:documentation>Specifies part of a file that is to be ignored during patching.</xs:documentation>
3886 </xs:annotation>
3887 <xs:complexType>
3888 <xs:attribute name="Offset" type="xs:int" use="required">
3889 <xs:annotation>
3890 <xs:documentation>Offset of the start of the range.</xs:documentation>
3891 </xs:annotation>
3892 </xs:attribute>
3893 <xs:attribute name="Length" type="xs:int" use="required">
3894 <xs:annotation>
3895 <xs:documentation>Length of the range.</xs:documentation>
3896 </xs:annotation>
3897 </xs:attribute>
3898 </xs:complexType>
3899 </xs:element>
3900 <xs:element name="ProtectRange">
3901 <xs:annotation>
3902 <xs:documentation>Specifies part of a file that cannot be overwritten during patching.</xs:documentation>
3903 </xs:annotation>
3904 <xs:complexType>
3905 <xs:attribute name="Offset" type="xs:int" use="required">
3906 <xs:annotation>
3907 <xs:documentation>Offset of the start of the range.</xs:documentation>
3908 </xs:annotation>
3909 </xs:attribute>
3910 <xs:attribute name="Length" type="xs:int" use="required">
3911 <xs:annotation>
3912 <xs:documentation>Length of the range.</xs:documentation>
3913 </xs:annotation>
3914 </xs:attribute>
3915 </xs:complexType>
3916 </xs:element>
3917 <xs:element name="ProtectFile">
3918 <xs:annotation>
3919 <xs:documentation>Specifies a file to be protected.</xs:documentation>
3920 </xs:annotation>
3921 <xs:complexType>
3922 <xs:choice maxOccurs="unbounded">
3923 <xs:element ref="ProtectRange" />
3924 </xs:choice>
3925 <xs:attribute name="File" type="xs:string" use="required">
3926 <xs:annotation>
3927 <xs:documentation>Foreign key into the File table.</xs:documentation>
3928 </xs:annotation>
3929 </xs:attribute>
3930 </xs:complexType>
3931 </xs:element>
3932 <xs:element name="ExternalFile">
3933 <xs:annotation>
3934 <xs:documentation>Contains information about specific files that are not part of a regular target image.</xs:documentation>
3935 </xs:annotation>
3936 <xs:complexType>
3937 <xs:sequence>
3938 <xs:element ref="ProtectRange" maxOccurs="unbounded" />
3939 <xs:element ref="SymbolPath" maxOccurs="unbounded" />
3940 <xs:choice minOccurs="0" maxOccurs="unbounded">
3941 <xs:element ref="IgnoreRange" />
3942 </xs:choice>
3943 </xs:sequence>
3944 <xs:attribute name="File" type="xs:string" use="required">
3945 <xs:annotation>
3946 <xs:documentation>Foreign key into the File table.</xs:documentation>
3947 </xs:annotation>
3948 </xs:attribute>
3949 <xs:attribute name="Source" type="xs:string">
3950 <xs:annotation>
3951 <xs:documentation>Full path of the external file.</xs:documentation>
3952 </xs:annotation>
3953 </xs:attribute>
3954 <xs:attribute name="Order" type="xs:int" use="required">
3955 <xs:annotation>
3956 <xs:documentation>Specifies the order of the external files to use when creating the patch.</xs:documentation>
3957 </xs:annotation>
3958 </xs:attribute>
3959 </xs:complexType>
3960 </xs:element>
3961 <xs:element name="UpgradeFile">
3962 <xs:annotation>
3963 <xs:documentation>Specifies files to either ignore or to specify optional data about a file.</xs:documentation>
3964 </xs:annotation>
3965 <xs:complexType>
3966 <xs:choice minOccurs="0" maxOccurs="unbounded">
3967 <xs:element ref="SymbolPath" />
3968 </xs:choice>
3969 <xs:attribute name="File" type="xs:string" use="required">
3970 <xs:annotation>
3971 <xs:documentation>Foreign key into the File table.</xs:documentation>
3972 </xs:annotation>
3973 </xs:attribute>
3974 <xs:attribute name="Ignore" type="YesNoTypeUnion" use="required">
3975 <xs:annotation>
3976 <xs:documentation>If yes, the file is ignored during patching, and the next two attributes are ignored.</xs:documentation>
3977 </xs:annotation>
3978 </xs:attribute>
3979 <xs:attribute name="AllowIgnoreOnError" type="YesNoTypeUnion">
3980 <xs:annotation>
3981 <xs:documentation>Specifies whether patching this file is vital.</xs:documentation>
3982 </xs:annotation>
3983 </xs:attribute>
3984 <xs:attribute name="WholeFile" type="YesNoTypeUnion">
3985 <xs:annotation>
3986 <xs:documentation>Whether the whole file should be installed, rather than creating a binary patch.</xs:documentation>
3987 </xs:annotation>
3988 </xs:attribute>
3989 </xs:complexType>
3990 </xs:element>
3991 <xs:element name="SymbolPath">
3992 <xs:annotation>
3993 <xs:documentation>A path to symbols.</xs:documentation>
3994 </xs:annotation>
3995 <xs:complexType>
3996 <xs:attribute name="Path" type="xs:string" use="required">
3997 <xs:annotation>
3998 <xs:documentation>The path.</xs:documentation>
3999 </xs:annotation>
4000 </xs:attribute>
4001 </xs:complexType>
4002 </xs:element>
4003 <xs:element name="SummaryInformation">
4004 <xs:annotation>
4005 <xs:documentation>
4006 Properties about the package to be placed in the Summary Information Stream. These are
4007 visible from COM through the IStream interface, and these properties can be seen on the package in Explorer.
4008 </xs:documentation>
4009 <xs:appinfo>
4010 <xse:remarks>
4011 <html:p>You can specify any valid Windows code by by integer like 1252, or by web name like Windows-1252. See [Code pages](../../../tools/codepage/) for more information.</html:p>
4012 </xse:remarks>
4013 </xs:appinfo>
4014 </xs:annotation>
4015 <xs:complexType>
4016 <xs:attribute name="Codepage" type="xs:string">
4017 <xs:annotation>
4018 <xs:documentation>The code page integer value or web name for summary info strings only. See remarks for more information.</xs:documentation>
4019 </xs:annotation>
4020 </xs:attribute>
4021 <xs:attribute name="Comments" type="xs:string">
4022 <xs:annotation>
4023 <xs:documentation>Optional comments for browsing. _New in WiX v5: WiX v5 adds this attribute to the `SummaryInformation` element._</xs:documentation>
4024 </xs:annotation>
4025 </xs:attribute>
4026 <xs:attribute name="Description" type="xs:string">
4027 <xs:annotation>
4028 <xs:documentation>The product full name or description.</xs:documentation>
4029 </xs:annotation>
4030 </xs:attribute>
4031 <xs:attribute name="Keywords" type="xs:string">
4032 <xs:annotation>
4033 <xs:documentation>Optional keywords for browsing.</xs:documentation>
4034 </xs:annotation>
4035 </xs:attribute>
4036 <xs:attribute name="Manufacturer" type="xs:string">
4037 <xs:annotation>
4038 <xs:documentation>The vendor releasing the package. Defaults to the Package/@Manufacturer attribute's value.</xs:documentation>
4039 </xs:annotation>
4040 </xs:attribute>
4041 </xs:complexType>
4042 </xs:element>
4043 <xs:element name="AssemblyName">
4044 <xs:annotation>
4045 <xs:documentation>
4046 The MsiAssemblyName table specifies the schema for the elements of a strong assembly cache name for a .NET Framework or Win32 assembly.
4047 Consider using the Assembly attribute on File element to have the toolset populate these entries automatically.
4048 </xs:documentation>
4049 <xs:appinfo>
4050 <xse:msiRef table="MsiAssemblyName" href="http://msdn.microsoft.com/library/aa370062.aspx" />
4051 </xs:appinfo>
4052 </xs:annotation>
4053 <xs:complexType>
4054 <xs:attribute name="Id" use="required" type="xs:string">
4055 <xs:annotation>
4056 <xs:documentation>Name of the attribute associated with the value specified in the Value column.</xs:documentation>
4057 </xs:annotation>
4058 </xs:attribute>
4059 <xs:attribute name="Value" type="xs:string">
4060 <xs:annotation>
4061 <xs:documentation>Value associated with the name specified in the Name column.</xs:documentation>
4062 </xs:annotation>
4063 </xs:attribute>
4064 </xs:complexType>
4065 </xs:element>
4066 <xs:element name="PatchCertificates">
4067 <xs:annotation>
4068 <xs:documentation>
4069 Identifies the possible signer certificates used to digitally sign patches.
4070 </xs:documentation>
4071 <xs:appinfo>
4072 <xse:msiRef table="MsiPatchCertificate" href="http://msdn.microsoft.com/library/aa370342.aspx" />
4073 </xs:appinfo>
4074 </xs:annotation>
4075 <xs:complexType>
4076 <xs:choice maxOccurs="unbounded">
4077 <xs:element ref="DigitalCertificate" />
4078 </xs:choice>
4079 </xs:complexType>
4080 </xs:element>
4081 <xs:element name="PackageCertificates">
4082 <xs:annotation>
4083 <xs:documentation>
4084 Digital signatures that identify installation packages in a multi-product transaction.
4085 </xs:documentation>
4086 <xs:appinfo>
4087 <xse:msiRef table="MsiPackageCertificate" href="http://msdn.microsoft.com/library/cc542575.aspx" />
4088 </xs:appinfo>
4089 </xs:annotation>
4090 <xs:complexType>
4091 <xs:choice maxOccurs="unbounded">
4092 <xs:element ref="DigitalCertificate" />
4093 </xs:choice>
4094 </xs:complexType>
4095 </xs:element>
4096 <xs:element name="DigitalCertificate">
4097 <xs:annotation>
4098 <xs:documentation>
4099 Adds a digital certificate.
4100 </xs:documentation>
4101 <xs:appinfo>
4102 <xse:msiRef table="MsiDigitalCertificate" href="http://msdn.microsoft.com/library/aa370086.aspx" />
4103 </xs:appinfo>
4104 </xs:annotation>
4105 <xs:complexType>
4106 <xs:attribute name="Id" type="xs:string" use="required">
4107 <xs:annotation>
4108 <xs:documentation>Identifier for a certificate file.</xs:documentation>
4109 </xs:annotation>
4110 </xs:attribute>
4111 <xs:attribute name="SourceFile" type="xs:string" use="required">
4112 <xs:annotation>
4113 <xs:documentation>The path to the certificate file.</xs:documentation>
4114 </xs:annotation>
4115 </xs:attribute>
4116 </xs:complexType>
4117 </xs:element>
4118 <xs:element name="DigitalCertificateRef">
4119 <xs:annotation>
4120 <xs:documentation>
4121 Reference to a DigitalCertificate element. This will force the entire referenced Fragment's contents
4122 to be included in the installer database. This is only used for references when patching.
4123 </xs:documentation>
4124 </xs:annotation>
4125 <xs:complexType>
4126 <xs:attribute name="Id" type="xs:string" use="required" />
4127 <xs:anyAttribute namespace="##other" processContents="lax">
4128 <xs:annotation>
4129 <xs:documentation>
4130 Extensibility point in the WiX XML Schema. Schema extensions can register additional
4131 attributes at this point in the schema.
4132 </xs:documentation>
4133 </xs:annotation>
4134 </xs:anyAttribute>
4135 </xs:complexType>
4136 </xs:element>
4137 <xs:element name="DigitalSignature">
4138 <xs:annotation>
4139 <xs:documentation>
4140 Adds a digital signature.
4141 </xs:documentation>
4142 <xs:appinfo>
4143 <xse:msiRef table="MsiDigitalSignature" href="http://msdn.microsoft.com/library/aa370087.aspx" />
4144 </xs:appinfo>
4145 </xs:annotation>
4146 <xs:complexType>
4147 <xs:choice>
4148 <xs:element ref="DigitalCertificate" />
4149 </xs:choice>
4150 <xs:attribute name="SourceFile" type="xs:string">
4151 <xs:annotation>
4152 <xs:documentation>The path to signature's optional hash file.</xs:documentation>
4153 </xs:annotation>
4154 </xs:attribute>
4155 </xs:complexType>
4156 </xs:element>
4157 <xs:element name="SFPCatalog">
4158 <xs:annotation>
4159 <xs:documentation>
4160 Adds a system file protection update catalog file
4161 </xs:documentation>
4162 <xs:appinfo>
4163 <xse:msiRef table="SFPCatalog" href="http://msdn.microsoft.com/library/aa371833.aspx" />
4164 </xs:appinfo>
4165 </xs:annotation>
4166 <xs:complexType>
4167 <xs:choice minOccurs="0" maxOccurs="unbounded">
4168 <xs:element ref="SFPCatalog" minOccurs="0" maxOccurs="unbounded" />
4169 <xs:element ref="SFPFile" minOccurs="0" maxOccurs="unbounded">
4170 <xs:annotation>
4171 <xs:documentation>Primary Key to File Table.</xs:documentation>
4172 </xs:annotation>
4173 </xs:element>
4174 </xs:choice>
4175 <xs:attribute name="Name" type="xs:string">
4176 <xs:annotation>
4177 <xs:documentation>Filename for catalog file when installed.</xs:documentation>
4178 </xs:annotation>
4179 </xs:attribute>
4180 <xs:attribute name="Dependency" type="xs:string">
4181 <xs:annotation>
4182 <xs:documentation>Used to define dependency outside of the package.</xs:documentation>
4183 </xs:annotation>
4184 </xs:attribute>
4185 <xs:attribute name="SourceFile" type="xs:string">
4186 <xs:annotation>
4187 <xs:documentation>Path to catalog file in binary.</xs:documentation>
4188 </xs:annotation>
4189 </xs:attribute>
4190 </xs:complexType>
4191 </xs:element>
4192 <xs:element name="SFPFile">
4193 <xs:annotation>
4194 <xs:documentation>
4195 Provides a many-to-many mapping from the SFPCatalog table to the File table
4196 </xs:documentation>
4197 <xs:appinfo>
4198 <xse:msiRef table="FileSFPCatalog" href="http://msdn.microsoft.com/library/aa368591.aspx" />
4199 </xs:appinfo>
4200 </xs:annotation>
4201 <xs:complexType>
4202 <xs:attribute name="Id" use="required" type="xs:string">
4203 <xs:annotation>
4204 <xs:documentation>Primary Key to File Table.</xs:documentation>
4205 </xs:annotation>
4206 </xs:attribute>
4207 </xs:complexType>
4208 </xs:element>
4209 <xs:element name="IniFile">
4210 <xs:annotation>
4211 <xs:documentation>
4212 Adds or removes .ini file entries.
4213 </xs:documentation>
4214 <xs:appinfo>
4215 <xse:msiRef table="IniFile" href="https://learn.microsoft.com/en-us/windows/win32/msi/inifile-table" />
4216 <xse:msiRef table="RemoveIniFile" href="https://learn.microsoft.com/en-us/windows/win32/msi/removeinifile-table" />
4217 </xs:appinfo>
4218 </xs:annotation>
4219 <xs:complexType>
4220 <xs:attribute name="Id" type="xs:string">
4221 <xs:annotation>
4222 <xs:documentation>Identifier for ini file. If one is not specified a stable identifier will be generated.</xs:documentation>
4223 </xs:annotation>
4224 </xs:attribute>
4225 <xs:attribute name="Action" use="required">
4226 <xs:annotation>
4227 <xs:documentation>The type of modification to be made.</xs:documentation>
4228 </xs:annotation>
4229 <xs:simpleType>
4230 <xs:restriction base="xs:NMTOKEN">
4231 <xs:enumeration value="addLine">
4232 <xs:annotation>
4233 <xs:documentation>Creates or updates an .ini entry.</xs:documentation>
4234 </xs:annotation>
4235 </xs:enumeration>
4236 <xs:enumeration value="addTag">
4237 <xs:annotation>
4238 <xs:documentation>Creates a new entry or appends a new comma-separated value to an existing entry.</xs:documentation>
4239 </xs:annotation>
4240 </xs:enumeration>
4241 <xs:enumeration value="createLine">
4242 <xs:annotation>
4243 <xs:documentation>Creates an .ini entry only if the entry does no already exist.</xs:documentation>
4244 </xs:annotation>
4245 </xs:enumeration>
4246 <xs:enumeration value="removeLine">
4247 <xs:annotation>
4248 <xs:documentation>Removes an .ini entry.</xs:documentation>
4249 </xs:annotation>
4250 </xs:enumeration>
4251 <xs:enumeration value="removeTag">
4252 <xs:annotation>
4253 <xs:documentation>Removes a tag from an .ini entry.</xs:documentation>
4254 </xs:annotation>
4255 </xs:enumeration>
4256 </xs:restriction>
4257 </xs:simpleType>
4258 </xs:attribute>
4259 <xs:attribute name="Directory" type="xs:string">
4260 <xs:annotation>
4261 <xs:documentation>Name of a property, the value of which is the full path of the folder containing the .ini file. Can be name of a directory in the Directory table, a property set by the AppSearch table, or any other property representing a full path.</xs:documentation>
4262 </xs:annotation>
4263 </xs:attribute>
4264 <xs:attribute name="Key" use="required" type="xs:string">
4265 <xs:annotation>
4266 <xs:documentation>The localizable .ini file key within the section.</xs:documentation>
4267 </xs:annotation>
4268 </xs:attribute>
4269 <xs:attribute name="Name" type="LongFileNameType" use="required">
4270 <xs:annotation>
4271 <xs:documentation>
4272 In prior versions of the WiX toolset, this attribute specified the short name.
4273 This attribute's value may now be either a short or long name.
4274 If a short name is specified, the ShortName attribute may not be specified.
4275 Also, if this value is a long name, the ShortName attribute may be omitted to
4276 allow WiX to attempt to generate a unique short name.
4277 However, if this name collides with another file or you wish to manually specify
4278 the short name, then the ShortName attribute may be specified.
4279 </xs:documentation>
4280 </xs:annotation>
4281 </xs:attribute>
4282 <xs:attribute name="Section" use="required" type="xs:string">
4283 <xs:annotation>
4284 <xs:documentation>The localizable .ini file section.</xs:documentation>
4285 </xs:annotation>
4286 </xs:attribute>
4287 <xs:attribute name="ShortName" type="ShortFileNameType">
4288 <xs:annotation>
4289 <xs:documentation>
4290 The short name of the in 8.3 format.
4291 This attribute should only be set if there is a conflict between generated short names
4292 or the user wants to manually specify the short name.
4293 </xs:documentation>
4294 </xs:annotation>
4295 </xs:attribute>
4296 <xs:attribute name="Value" type="xs:string">
4297 <xs:annotation>
4298 <xs:documentation>
4299 The localizable value to be written or deleted. This attribute must be set if
4300 the Action attribute's value is "addLine", "addTag", or "createLine".
4301 </xs:documentation>
4302 </xs:annotation>
4303 </xs:attribute>
4304 </xs:complexType>
4305 </xs:element>
4306 <xs:element name="ODBCDataSource">
4307 <xs:annotation>
4308 <xs:documentation>
4309 ODBCDataSource for a Component
4310 </xs:documentation>
4311 <xs:appinfo>
4312 <xse:msiRef table="ODBCDataSource" href="http://msdn.microsoft.com/library/aa370546.aspx" />
4313 </xs:appinfo>
4314 </xs:annotation>
4315 <xs:complexType>
4316 <xs:choice minOccurs="0" maxOccurs="unbounded">
4317 <xs:element ref="Property">
4318 <xs:annotation>
4319 <xs:documentation>Translates into ODBCSourceAttributes</xs:documentation>
4320 </xs:annotation>
4321 </xs:element>
4322 </xs:choice>
4323 <xs:attribute name="Id" use="required" type="xs:string">
4324 <xs:annotation>
4325 <xs:documentation>Identifier of the data source.</xs:documentation>
4326 </xs:annotation>
4327 </xs:attribute>
4328 <xs:attribute name="Name" use="required" type="xs:string">
4329 <xs:annotation>
4330 <xs:documentation>Name for the data source.</xs:documentation>
4331 </xs:annotation>
4332 </xs:attribute>
4333 <xs:attribute name="DriverName" type="xs:string">
4334 <xs:annotation>
4335 <xs:documentation>Required if not found as child of ODBCDriver element</xs:documentation>
4336 </xs:annotation>
4337 </xs:attribute>
4338 <xs:attribute name="Registration" use="required">
4339 <xs:annotation>
4340 <xs:documentation>Scope for which the data source should be registered.</xs:documentation>
4341 </xs:annotation>
4342 <xs:simpleType>
4343 <xs:restriction base="xs:NMTOKEN">
4344 <xs:enumeration value="machine">
4345 <xs:annotation>
4346 <xs:documentation>
4347 Data source is registered per machine.
4348 </xs:documentation>
4349 </xs:annotation>
4350 </xs:enumeration>
4351 <xs:enumeration value="user">
4352 <xs:annotation>
4353 <xs:documentation>
4354 Data source is registered per user.
4355 </xs:documentation>
4356 </xs:annotation>
4357 </xs:enumeration>
4358 </xs:restriction>
4359 </xs:simpleType>
4360 </xs:attribute>
4361 <xs:attribute name="KeyPath" type="YesNoTypeUnion">
4362 <xs:annotation>
4363 <xs:documentation>Set 'yes' to force this file to be key path for parent Component</xs:documentation>
4364 </xs:annotation>
4365 </xs:attribute>
4366 </xs:complexType>
4367 </xs:element>
4368 <xs:element name="ODBCDriver">
4369 <xs:annotation>
4370 <xs:documentation>
4371 ODBCDriver for a Component
4372 </xs:documentation>
4373 <xs:appinfo>
4374 <xse:msiRef table="ODBCDriver" href="http://msdn.microsoft.com/library/aa370547.aspx" />
4375 </xs:appinfo>
4376 </xs:annotation>
4377 <xs:complexType>
4378 <xs:choice minOccurs="0" maxOccurs="unbounded">
4379 <xs:element ref="Property">
4380 <xs:annotation>
4381 <xs:documentation>Translates into ODBCSourceAttributes</xs:documentation>
4382 </xs:annotation>
4383 </xs:element>
4384 <xs:element ref="ODBCDataSource" />
4385 </xs:choice>
4386 <xs:attribute name="Id" use="required" type="xs:string">
4387 <xs:annotation>
4388 <xs:documentation>Identifier for the driver.</xs:documentation>
4389 </xs:annotation>
4390 </xs:attribute>
4391 <xs:attribute name="Name" use="required" type="xs:string">
4392 <xs:annotation>
4393 <xs:documentation>Name for the driver.</xs:documentation>
4394 </xs:annotation>
4395 </xs:attribute>
4396 <xs:attribute name="File" type="xs:string">
4397 <xs:annotation>
4398 <xs:documentation>Required if not found as child of File element</xs:documentation>
4399 </xs:annotation>
4400 </xs:attribute>
4401 <xs:attribute name="SetupFile" type="xs:string">
4402 <xs:annotation>
4403 <xs:documentation>Required if not found as child of File element or different from File attribute above</xs:documentation>
4404 </xs:annotation>
4405 </xs:attribute>
4406 </xs:complexType>
4407 </xs:element>
4408 <xs:element name="ODBCTranslator">
4409 <xs:annotation>
4410 <xs:documentation>
4411 ODBCTranslator for a Component
4412 </xs:documentation>
4413 <xs:appinfo>
4414 <xse:msiRef table="ODBCTranslator" href="http://msdn.microsoft.com/library/aa370549.aspx" />
4415 </xs:appinfo>
4416 </xs:annotation>
4417 <xs:complexType>
4418 <xs:attribute name="Id" use="required" type="xs:string">
4419 <xs:annotation>
4420 <xs:documentation>Identifier for the translator.</xs:documentation>
4421 </xs:annotation>
4422 </xs:attribute>
4423 <xs:attribute name="Name" use="required" type="xs:string">
4424 <xs:annotation>
4425 <xs:documentation>Name for the translator.</xs:documentation>
4426 </xs:annotation>
4427 </xs:attribute>
4428 <xs:attribute name="File" type="xs:string">
4429 <xs:annotation>
4430 <xs:documentation>Required if not found as child of File element</xs:documentation>
4431 </xs:annotation>
4432 </xs:attribute>
4433 <xs:attribute name="SetupFile" type="xs:string">
4434 <xs:annotation>
4435 <xs:documentation>Required if not found as child of File element or different from File attribute above</xs:documentation>
4436 </xs:annotation>
4437 </xs:attribute>
4438 </xs:complexType>
4439 </xs:element>
4440 <xs:element name="FileSearch">
4441 <xs:annotation>
4442 <xs:appinfo>
4443 <xse:seeAlso ref="ComponentSearch" />
4444 <xse:seeAlso ref="DirectorySearch" />
4445 <xse:seeAlso ref="DirectorySearchRef" />
4446 <xse:seeAlso ref="FileSearchRef" />
4447 <xse:seeAlso ref="IniFileSearch" />
4448 <xse:seeAlso ref="RegistrySearch" />
4449 <xse:msiRef table="DrLocator" href="http://msdn.microsoft.com/library/aa368331.aspx" />
4450 <xse:msiRef table="Signature" href="https://docs.microsoft.com/en-us/windows/win32/msi/signature-table" />
4451 <xse:howtoRef href="files_and_registry/check_the_version_number.html">How To: Check the version number of a file during installation</xse:howtoRef>
4452 <xse:remarks>
4453 When the parent DirectorySearch/@Depth attribute is greater than 0, the FileSearch/@Id attribute must be absent or the same as the parent DirectorySearch/@Id attribute value, unless the parent DirectorySearch/@AssignToProperty attribute value is 'yes'.
4454 </xse:remarks>
4455 </xs:appinfo>
4456 <xs:documentation>Searches for file and assigns to fullpath value of parent Property</xs:documentation>
4457 </xs:annotation>
4458 <xs:complexType>
4459 <xs:attribute name="Id" type="xs:string">
4460 <xs:annotation>
4461 <xs:documentation>Unique identifier for the file search and external key into the Signature table. If this attribute value is not set then the parent element's @Id attribute is used.</xs:documentation>
4462 </xs:annotation>
4463 </xs:attribute>
4464 <xs:attribute name="Name" type="LongFileNameType">
4465 <xs:annotation>
4466 <xs:documentation>
4467 In prior versions of the WiX toolset, this attribute specified the short file name.
4468 This attribute's value may now be either a short or long file name.
4469 If a short file name is specified, the ShortName attribute may not be specified.
4470 If you wish to manually specify the short file name, then the ShortName
4471 attribute may be specified.
4472 </xs:documentation>
4473 </xs:annotation>
4474 </xs:attribute>
4475 <xs:attribute name="ShortName" type="ShortFileNameType">
4476 <xs:annotation>
4477 <xs:documentation>
4478 The short file name of the file in 8.3 format.
4479 There is a Windows Installer bug which prevents the FileSearch functionality from working
4480 if both a short and long file name are specified. Since the Name attribute allows either
4481 a short or long name to be specified, it is the only attribute related to file names which
4482 should be specified.
4483 </xs:documentation>
4484 </xs:annotation>
4485 </xs:attribute>
4486 <xs:attribute name="MinSize" type="xs:int">
4487 <xs:annotation>
4488 <xs:documentation>The minimum size of the file.</xs:documentation>
4489 </xs:annotation>
4490 </xs:attribute>
4491 <xs:attribute name="MaxSize" type="xs:int">
4492 <xs:annotation>
4493 <xs:documentation>The maximum size of the file.</xs:documentation>
4494 </xs:annotation>
4495 </xs:attribute>
4496 <xs:attribute name="MinVersion" type="xs:string">
4497 <xs:annotation>
4498 <xs:documentation>The minimum version of the file.</xs:documentation>
4499 </xs:annotation>
4500 </xs:attribute>
4501 <xs:attribute name="MaxVersion" type="xs:string">
4502 <xs:annotation>
4503 <xs:documentation>The maximum version of the file.</xs:documentation>
4504 </xs:annotation>
4505 </xs:attribute>
4506 <xs:attribute name="MinDate" type="xs:dateTime">
4507 <xs:annotation>
4508 <xs:documentation>The minimum modification date and time of the file. Formatted as YYYY-MM-DDTHH:mm:ss, where YYYY is the year, MM is month, DD is day, 'T' is literal, HH is hour, mm is minute and ss is second.</xs:documentation>
4509 </xs:annotation>
4510 </xs:attribute>
4511 <xs:attribute name="MaxDate" type="xs:dateTime">
4512 <xs:annotation>
4513 <xs:documentation>The maximum modification date and time of the file. Formatted as YYYY-MM-DDTHH:mm:ss, where YYYY is the year, MM is month, DD is day, 'T' is literal, HH is hour, mm is minute and ss is second.</xs:documentation>
4514 </xs:annotation>
4515 </xs:attribute>
4516 <xs:attribute name="Languages" type="xs:string">
4517 <xs:annotation>
4518 <xs:documentation>The languages supported by the file.</xs:documentation>
4519 </xs:annotation>
4520 </xs:attribute>
4521 </xs:complexType>
4522 </xs:element>
4523 <xs:element name="FileSearchRef">
4524 <xs:annotation>
4525 <xs:appinfo>
4526 <xse:seeAlso ref="FileSearch" />
4527 <xse:remarks>
4528 <html:p>A reference to another FileSearch element must reference the same Id and the same Parent Id. If any of these attribute values are different you must instead use a FileSearch element.</html:p>
4529 </xse:remarks>
4530 </xs:appinfo>
4531 <xs:documentation>References an existing FileSearch element.</xs:documentation>
4532 </xs:annotation>
4533 <xs:complexType>
4534 <xs:attribute name="Id" use="required" type="xs:string">
4535 <xs:annotation>
4536 <xs:documentation>Specify the Id to the FileSearch to reference.</xs:documentation>
4537 </xs:annotation>
4538 </xs:attribute>
4539 </xs:complexType>
4540 </xs:element>
4541 <xs:element name="DirectorySearch">
4542 <xs:annotation>
4543 <xs:appinfo>
4544 <xse:seeAlso ref="ComponentSearch" />
4545 <xse:seeAlso ref="IniFileSearch" />
4546 <xse:seeAlso ref="RegistrySearch" />
4547 <xse:msiRef table="DrLocator" href="http://msdn.microsoft.com/library/aa368331.aspx" />
4548 <xse:msiRef table="Signature" href="https://docs.microsoft.com/en-us/windows/win32/msi/signature-table" />
4549 <xse:howtoRef href="files_and_registry/check_the_version_number.html">How To: Check the version number of a file during installation</xse:howtoRef>
4550 <xse:howtoRef href="files_and_registry/directorysearchref.html">How To: Reference another DirectorySearch element</xse:howtoRef>
4551 <xse:howtoRef href="files_and_registry/parentdirectorysearch.html">How To: Get the parent directory of a file search</xse:howtoRef>
4552 <xse:remarks>
4553 Use the AssignToProperty attribute to search for a file but set the outer property to the directory containing the file. When this attribute is set to 'yes', you may only nest a FileSearch element with a unique Id or define no child element.
4554 When the parent DirectorySearch/@Depth attribute is greater than 0, the FileSearch/@Id attribute must be absent or the same as the parent DirectorySearch/@Id attribute value, unless the parent DirectorySearch/@AssignToProperty attribute value is 'yes'.
4555 </xse:remarks>
4556 </xs:appinfo>
4557 <xs:documentation>Searches for directory and assigns to value of parent Property.</xs:documentation>
4558 </xs:annotation>
4559 <xs:complexType>
4560 <xs:choice minOccurs="0">
4561 <xs:element ref="DirectorySearch" />
4562 <xs:element ref="DirectorySearchRef" />
4563 <xs:element ref="FileSearch" />
4564 <xs:element ref="FileSearchRef" />
4565 </xs:choice>
4566 <xs:attribute name="Id" use="required" type="xs:string">
4567 <xs:annotation>
4568 <xs:documentation>Unique identifier for the directory search.</xs:documentation>
4569 </xs:annotation>
4570 </xs:attribute>
4571 <xs:attribute name="Path" type="xs:string">
4572 <xs:annotation>
4573 <xs:documentation>Path on the user's system. Either absolute, or relative to containing directories.</xs:documentation>
4574 </xs:annotation>
4575 </xs:attribute>
4576 <xs:attribute name="Depth" type="Integer">
4577 <xs:annotation>
4578 <xs:documentation>
4579 Depth below the path that the installer searches for the file or directory specified by the search. See remarks for more information.
4580 </xs:documentation>
4581 </xs:annotation>
4582 </xs:attribute>
4583 <xs:attribute name="AssignToProperty" type="YesNoTypeUnion">
4584 <xs:annotation>
4585 <xs:documentation>Set the value of the outer Property to the result of this search. See remarks for more information.</xs:documentation>
4586 </xs:annotation>
4587 </xs:attribute>
4588 </xs:complexType>
4589 </xs:element>
4590 <xs:element name="DirectorySearchRef">
4591 <xs:annotation>
4592 <xs:appinfo>
4593 <xse:seeAlso ref="ComponentSearch" />
4594 <xse:seeAlso ref="IniFileSearch" />
4595 <xse:seeAlso ref="RegistrySearch" />
4596 <xse:howtoRef href="files_and_registry/directorysearchref.html">How To: Reference another DirectorySearch element</xse:howtoRef>
4597 <xse:remarks>
4598 <html:p>A reference to another DirectorySearch element must reference the same Id, the same Parent Id, and the same Path. If any of these attribute values are different you must instead use a DirectorySearch element.</html:p>
4599 </xse:remarks>
4600 </xs:appinfo>
4601 <xs:documentation>References an existing DirectorySearch element.</xs:documentation>
4602 </xs:annotation>
4603 <xs:complexType>
4604 <xs:choice minOccurs="0">
4605 <xs:element ref="DirectorySearch" />
4606 <xs:element ref="DirectorySearchRef" />
4607 <xs:element ref="FileSearch" />
4608 <xs:element ref="FileSearchRef" />
4609 </xs:choice>
4610 <xs:attribute name="Id" use="required" type="xs:string">
4611 <xs:annotation>
4612 <xs:documentation>Id of the search being referred to.</xs:documentation>
4613 </xs:annotation>
4614 </xs:attribute>
4615 <xs:attribute name="Parent" type="xs:string">
4616 <xs:annotation>
4617 <xs:documentation>This attribute is the signature of the parent directory of the file or directory in the Signature_ column. If this field is null, and the Path column does not expand to a full path, then all the fixed drives of the user's system are searched by using the Path. This field is a key into one of the following tables: the RegLocator, the IniLocator, the CompLocator, or the DrLocator tables.</xs:documentation>
4618 </xs:annotation>
4619 </xs:attribute>
4620 <xs:attribute name="Path" type="xs:string">
4621 <xs:annotation>
4622 <xs:documentation>Path on the user's system. Either absolute, or relative to containing directories.</xs:documentation>
4623 </xs:annotation>
4624 </xs:attribute>
4625 </xs:complexType>
4626 </xs:element>
4627 <xs:element name="ComponentSearch">
4628 <xs:annotation>
4629 <xs:appinfo>
4630 <xse:seeAlso ref="IniFileSearch" />
4631 <xse:seeAlso ref="RegistrySearch" />
4632 <xse:msiRef table="CompLocator" href="http://msdn.microsoft.com/library/aa368001.aspx" />
4633 <xse:msiRef table="Signature" href="https://docs.microsoft.com/en-us/windows/win32/msi/signature-table" />
4634 </xs:appinfo>
4635 <xs:documentation>Searches for file or directory and assigns to value of parent Property.</xs:documentation>
4636 </xs:annotation>
4637 <xs:complexType>
4638 <xs:choice minOccurs="0">
4639 <xs:element ref="DirectorySearch" />
4640 <xs:element ref="DirectorySearchRef" />
4641 <xs:element ref="FileSearch" />
4642 <xs:element ref="FileSearchRef" />
4643 </xs:choice>
4644 <xs:attribute name="Id" use="required" type="xs:string" />
4645 <xs:attribute name="Guid" type="Guid">
4646 <xs:annotation>
4647 <xs:documentation>The component ID of the component whose key path is to be used for the search.</xs:documentation>
4648 </xs:annotation>
4649 </xs:attribute>
4650 <xs:attribute name="Type">
4651 <xs:annotation>
4652 <xs:documentation>Must be file if last child is FileSearch element and must be directory if last child is DirectorySearch element.</xs:documentation>
4653 </xs:annotation>
4654 <xs:simpleType>
4655 <xs:restriction base="xs:NMTOKEN">
4656 <xs:enumeration value="directory">
4657 <xs:annotation>
4658 <xs:documentation>
4659 The key path of the component is a directory.
4660 </xs:documentation>
4661 </xs:annotation>
4662 </xs:enumeration>
4663 <xs:enumeration value="file">
4664 <xs:annotation>
4665 <xs:documentation>
4666 The key path of the component is a file. This is the default value.
4667 </xs:documentation>
4668 </xs:annotation>
4669 </xs:enumeration>
4670 </xs:restriction>
4671 </xs:simpleType>
4672 </xs:attribute>
4673 </xs:complexType>
4674 </xs:element>
4675 <xs:element name="IniFileSearch">
4676 <xs:annotation>
4677 <xs:appinfo>
4678 <xse:seeAlso ref="ComponentSearch" />
4679 <xse:seeAlso ref="RegistrySearch" />
4680 <xse:msiRef table="IniLocator" href="http://msdn.microsoft.com/library/aa369283.aspx" />
4681 <xse:msiRef table="Signature" href="https://docs.microsoft.com/en-us/windows/win32/msi/signature-table" />
4682 </xs:appinfo>
4683 <xs:documentation>Searches for file, directory or registry key and assigns to value of parent Property</xs:documentation>
4684 </xs:annotation>
4685 <xs:complexType>
4686 <xs:choice minOccurs="0">
4687 <xs:element ref="DirectorySearch" />
4688 <xs:element ref="DirectorySearchRef" />
4689 <xs:element ref="FileSearch" />
4690 <xs:element ref="FileSearchRef" />
4691 </xs:choice>
4692 <xs:attribute name="Id" use="required" type="xs:string">
4693 <xs:annotation>
4694 <xs:documentation>External key into the Signature table.</xs:documentation>
4695 </xs:annotation>
4696 </xs:attribute>
4697 <xs:attribute name="Field" type="Integer">
4698 <xs:annotation>
4699 <xs:documentation>The field in the .ini line. If field is Null or 0, the entire line is read.</xs:documentation>
4700 </xs:annotation>
4701 </xs:attribute>
4702 <xs:attribute name="Key" use="required" type="xs:string">
4703 <xs:annotation>
4704 <xs:documentation>The key value within the section.</xs:documentation>
4705 </xs:annotation>
4706 </xs:attribute>
4707 <xs:attribute name="Name" type="LongFileNameType" use="required">
4708 <xs:annotation>
4709 <xs:documentation>
4710 In prior versions of the WiX toolset, this attribute specified the short name.
4711 This attribute's value may now be either a short or long name.
4712 If a short name is specified, the ShortName attribute may not be specified.
4713 Also, if this value is a long name, the ShortName attribute may be omitted to
4714 allow WiX to attempt to generate a unique short name.
4715 However, if you wish to manually specify the short name, then the ShortName
4716 attribute may be specified.
4717 </xs:documentation>
4718 </xs:annotation>
4719 </xs:attribute>
4720 <xs:attribute name="Section" use="required" type="xs:string">
4721 <xs:annotation>
4722 <xs:documentation>The localizable .ini file section.</xs:documentation>
4723 </xs:annotation>
4724 </xs:attribute>
4725 <xs:attribute name="ShortName" type="ShortFileNameType">
4726 <xs:annotation>
4727 <xs:documentation>
4728 The short name of the file in 8.3 format.
4729 This attribute should only be set if the user wants to manually specify the short name.
4730 </xs:documentation>
4731 </xs:annotation>
4732 </xs:attribute>
4733 <xs:attribute name="Type">
4734 <xs:annotation>
4735 <xs:documentation>Must be file if last child is FileSearch element and must be directory if last child is DirectorySearch element.</xs:documentation>
4736 </xs:annotation>
4737 <xs:simpleType>
4738 <xs:restriction base="xs:NMTOKEN">
4739 <xs:enumeration value="directory">
4740 <xs:annotation>
4741 <xs:documentation>A directory location.</xs:documentation>
4742 </xs:annotation>
4743 </xs:enumeration>
4744 <xs:enumeration value="file">
4745 <xs:annotation>
4746 <xs:documentation>A file location. This is the default value.</xs:documentation>
4747 </xs:annotation>
4748 </xs:enumeration>
4749 <xs:enumeration value="raw">
4750 <xs:annotation>
4751 <xs:documentation>A raw .ini value.</xs:documentation>
4752 </xs:annotation>
4753 </xs:enumeration>
4754 </xs:restriction>
4755 </xs:simpleType>
4756 </xs:attribute>
4757 </xs:complexType>
4758 </xs:element>
4759 <xs:element name="RegistrySearch">
4760 <xs:annotation>
4761 <xs:appinfo>
4762 <xse:seeAlso ref="ComponentSearch" />
4763 <xse:seeAlso ref="IniFileSearch" />
4764 <xse:msiRef table="RegLocator" href="http://msdn.microsoft.com/library/aa371171.aspx" />
4765 <xse:msiRef table="Signature" href="https://docs.microsoft.com/en-us/windows/win32/msi/signature-table" />
4766 <xse:howtoRef href="files_and_registry/read_a_registry_entry.html">How To: Read a registry entry during installation</xse:howtoRef>
4767 <xse:remarks>
4768 <html:p>
4769 When the Type attribute value is 'directory' the registry value must specify the path to a directory excluding the file name.
4770 When the Type attribute value is 'file' the registry value must specify the path to a file including the file name;
4771 however, if there is no child FileSearch element the parent directory of the file is returned. The FileSearch element requires
4772 that you author the name of the file you are searching for. If you do not know the file name
4773 you must set the Type attribute to 'raw' to return the full file path including the file name.
4774 </html:p>
4775 </xse:remarks>
4776 </xs:appinfo>
4777 <xs:documentation>Searches for file, directory or registry key and assigns to value of parent Property</xs:documentation>
4778 </xs:annotation>
4779 <xs:complexType>
4780 <xs:choice minOccurs="0">
4781 <xs:element ref="DirectorySearch" />
4782 <xs:element ref="DirectorySearchRef" />
4783 <xs:element ref="FileSearch" />
4784 <xs:element ref="FileSearchRef" />
4785 </xs:choice>
4786 <xs:attribute name="Id" type="xs:string">
4787 <xs:annotation>
4788 <xs:documentation>Signature to be used for the file, directory or registry key being searched for. If omitted, WiX generates a suitable id.</xs:documentation>
4789 </xs:annotation>
4790 </xs:attribute>
4791 <xs:attribute name="Bitness" type="BitnessTypeUnion">
4792 <xs:annotation>
4793 <xs:documentation>
4794 Overrides the default registry to search. The value `always64` will force
4795 the search to look in the 64-bit registry even when building for 32-bit.
4796 Simliarly, the value `always32` will force the search to look in the 32-bit
4797 registry even when building for 64-bit.
4798 The default value is `default` where the search will look in the same registry
4799 as the bitness of the package.
4800 </xs:documentation>
4801 </xs:annotation>
4802 </xs:attribute>
4803 <xs:attribute name="Root" use="required">
4804 <xs:annotation>
4805 <xs:documentation>Root key for the registry value.</xs:documentation>
4806 </xs:annotation>
4807 <xs:simpleType>
4808 <xs:restriction base="xs:NMTOKEN">
4809 <xs:enumeration value="HKCR">
4810 <xs:annotation>
4811 <xs:documentation>
4812 HKEY_CLASSES_ROOT
4813 </xs:documentation>
4814 </xs:annotation>
4815 </xs:enumeration>
4816 <xs:enumeration value="HKCU">
4817 <xs:annotation>
4818 <xs:documentation>
4819 HKEY_CURRENT_USER
4820 </xs:documentation>
4821 </xs:annotation>
4822 </xs:enumeration>
4823 <xs:enumeration value="HKLM">
4824 <xs:annotation>
4825 <xs:documentation>
4826 HKEY_LOCAL_MACHINE
4827 </xs:documentation>
4828 </xs:annotation>
4829 </xs:enumeration>
4830 <xs:enumeration value="HKU">
4831 <xs:annotation>
4832 <xs:documentation>
4833 HKEY_USERS
4834 </xs:documentation>
4835 </xs:annotation>
4836 </xs:enumeration>
4837 </xs:restriction>
4838 </xs:simpleType>
4839 </xs:attribute>
4840 <xs:attribute name="Key" use="required" type="xs:string">
4841 <xs:annotation>
4842 <xs:documentation>Key for the registry value.</xs:documentation>
4843 </xs:annotation>
4844 </xs:attribute>
4845 <xs:attribute name="Name" type="xs:string">
4846 <xs:annotation>
4847 <xs:documentation>Registry value name. If this value is null, then the value from the key's unnamed or default value, if any, is retrieved.</xs:documentation>
4848 </xs:annotation>
4849 </xs:attribute>
4850 <xs:attribute name="Type" use="required">
4851 <xs:annotation>
4852 <xs:documentation>
4853 The value must be 'file' if the child is a FileSearch element, and must be 'directory' if child is a DirectorySearch element.
4854 </xs:documentation>
4855 </xs:annotation>
4856 <xs:simpleType>
4857 <xs:restriction base="xs:NMTOKEN">
4858 <xs:enumeration value="directory">
4859 <xs:annotation>
4860 <xs:documentation>
4861 The registry value contains the path to a directory.
4862 </xs:documentation>
4863 </xs:annotation>
4864 </xs:enumeration>
4865 <xs:enumeration value="file">
4866 <xs:annotation>
4867 <xs:documentation>
4868 The registry value contains the path to a file. To return the full file path you must add a FileSearch element as a child of this element; otherwise, the parent directory of the file path is returned.
4869 </xs:documentation>
4870 </xs:annotation>
4871 </xs:enumeration>
4872 <xs:enumeration value="raw">
4873 <xs:annotation>
4874 <xs:documentation>
4875 Sets the raw value from the registry value. Please note that this value will contain a prefix as follows:
4876
4877 - DWORD: Starts with `#` optionally followed by `+` or `-`.
4878 - REG_BINARY: Starts with `#x` and the installer converts and saves each hexadecimal digit (nibble) as an ASCII character prefixed by `#x`.
4879 - REG_EXPAND_SZ: Starts with `#%`.
4880 - REG_MULTI_SZ: Starts with `[~]` and ends with `[~]`.
4881 - REG_SZ: No prefix, but if the first character of the registry value is `#`, the installer escapes the character by prefixing it with another `#`.
4882 </xs:documentation>
4883 </xs:annotation>
4884 </xs:enumeration>
4885 </xs:restriction>
4886 </xs:simpleType>
4887 </xs:attribute>
4888 </xs:complexType>
4889 </xs:element>
4890 <xs:element name="RegistrySearchRef">
4891 <xs:annotation>
4892 <xs:appinfo>
4893 <xse:seeAlso ref="RegistrySearch" />
4894 </xs:appinfo>
4895 <xs:documentation>References an existing RegistrySearch element.</xs:documentation>
4896 </xs:annotation>
4897 <xs:complexType>
4898 <xs:attribute name="Id" type="xs:string" use="required">
4899 <xs:annotation>
4900 <xs:documentation>Specify the Id of the RegistrySearch to reference.</xs:documentation>
4901 </xs:annotation>
4902 </xs:attribute>
4903 </xs:complexType>
4904 </xs:element>
4905 <xs:element name="ComplianceDrive">
4906 <xs:annotation>
4907 <xs:documentation>Sets the parent of a nested DirectorySearch element to CCP_DRIVE.</xs:documentation>
4908 </xs:annotation>
4909 <xs:complexType>
4910 <xs:choice>
4911 <xs:element ref="DirectorySearch" />
4912 <xs:element ref="DirectorySearchRef" />
4913 </xs:choice>
4914 </xs:complexType>
4915 </xs:element>
4916 <xs:element name="ComplianceCheck">
4917 <xs:annotation>
4918 <xs:appinfo>
4919 <xse:seeAlso ref="Property" />
4920 <xse:msiRef table="CCPSearch" href="https://docs.microsoft.com/en-us/windows/win32/msi/ccpsearch-table" />
4921 <xse:msiRef table="Signature" href="https://docs.microsoft.com/en-us/windows/win32/msi/signature-table" />
4922 </xs:appinfo>
4923 <xs:documentation>Adds a row to the CCPSearch table.</xs:documentation>
4924 </xs:annotation>
4925 <xs:complexType>
4926 <xs:choice minOccurs="0" maxOccurs="unbounded">
4927 <xs:sequence>
4928 <xs:element ref="ComplianceDrive" minOccurs="0">
4929 <xs:annotation>
4930 <xs:documentation>Starts searches from the CCP_DRIVE.</xs:documentation>
4931 </xs:annotation>
4932 </xs:element>
4933 <xs:element ref="ComponentSearch" minOccurs="0" maxOccurs="unbounded" />
4934 <xs:element ref="RegistrySearch" minOccurs="0" maxOccurs="unbounded" />
4935 <xs:element ref="IniFileSearch" minOccurs="0" maxOccurs="unbounded" />
4936 <xs:element ref="DirectorySearch" minOccurs="0" maxOccurs="unbounded" />
4937 <xs:any namespace="##other" processContents="lax">
4938 <xs:annotation>
4939 <xs:documentation>
4940 Extensibility point in the WiX XML Schema. Schema extensions can register additional
4941 elements at this point in the schema.
4942 </xs:documentation>
4943 </xs:annotation>
4944 </xs:any>
4945 </xs:sequence>
4946 </xs:choice>
4947 <xs:anyAttribute namespace="##other" processContents="lax">
4948 <xs:annotation>
4949 <xs:documentation>
4950 Extensibility point in the WiX XML Schema. Schema extensions can register additional
4951 attributes at this point in the schema.
4952 </xs:documentation>
4953 </xs:annotation>
4954 </xs:anyAttribute>
4955 </xs:complexType>
4956 </xs:element>
4957 <xs:element name="Property">
4958 <xs:annotation>
4959 <xs:appinfo>
4960 <xse:seeAlso ref="PropertyRef" />
4961 <xse:msiRef table="Property" href="http://msdn.microsoft.com/library/aa370908.aspx" />
4962 <xse:howtoRef href="files_and_registry/check_the_version_number.html">How To: Check the version number of a file during installation</xse:howtoRef>
4963 </xs:appinfo>
4964 <xs:documentation>Property value for a Package or Module.</xs:documentation>
4965 </xs:annotation>
4966 <xs:complexType>
4967 <xs:choice minOccurs="0" maxOccurs="unbounded">
4968 <xs:element ref="ComplianceDrive" />
4969 <xs:element ref="ComponentSearch"/>
4970 <xs:element ref="RegistrySearch"/>
4971 <xs:element ref="RegistrySearchRef"/>
4972 <xs:element ref="IniFileSearch"/>
4973 <xs:element ref="DirectorySearch"/>
4974 <xs:element ref="DirectorySearchRef"/>
4975 <xs:element ref="ProductSearch"/>
4976 <xs:any namespace="##other" processContents="lax">
4977 <xs:annotation>
4978 <xs:documentation>
4979 Extensibility point in the WiX XML Schema. Schema extensions can register additional
4980 elements at this point in the schema.
4981 </xs:documentation>
4982 </xs:annotation>
4983 </xs:any>
4984 </xs:choice>
4985 <xs:attribute name="Id" type="xs:string" use="required">
4986 <xs:annotation>
4987 <xs:documentation>Unique identifier for Property.</xs:documentation>
4988 </xs:annotation>
4989 </xs:attribute>
4990 <xs:attribute name="Value" type="xs:string">
4991 <xs:annotation>
4992 <xs:documentation>Sets a default value for the property. The value will be overwritten if the Property is used for a search.</xs:documentation>
4993 </xs:annotation>
4994 </xs:attribute>
4995 <xs:attribute name="ComplianceCheck" type="YesNoTypeUnion">
4996 <xs:annotation>
4997 <xs:documentation>Adds a row to the CCPSearch table. This attribute is only valid when this Property contains a search element.</xs:documentation>
4998 </xs:annotation>
4999 </xs:attribute>
5000 <xs:attribute name="Admin" type="YesNoTypeUnion">
5001 <xs:annotation>
5002 <xs:documentation>
5003 Denotes that the property is saved during [administrative installations](https://learn.microsoft.com/en-us/windows/win32/msi/administrative-installation).
5004 Adds the property name to the [AdminProperties property](https://learn.microsoft.com/en-us/windows/win32/msi/adminproperties).
5005 </xs:documentation>
5006 </xs:annotation>
5007 </xs:attribute>
5008 <xs:attribute name="Secure" type="YesNoTypeUnion">
5009 <xs:annotation>
5010 <xs:documentation>Denotes that the Property can be passed to the server side when doing a managed installation with elevated privileges. See the <html:a href="https://learn.microsoft.com/en-us/windows/win32/msi/securecustomproperties">SecureCustomProperties Property</html:a> for more information.</xs:documentation>
5011 </xs:annotation>
5012 </xs:attribute>
5013 <xs:attribute name="Hidden" type="YesNoTypeUnion">
5014 <xs:annotation>
5015 <xs:documentation>Denotes that the Property is not logged during installation. See the <html:a href="https://learn.microsoft.com/en-us/windows/win32/msi/msihiddenproperties">MsiHiddenProperties Property</html:a> for more information.</xs:documentation>
5016 </xs:annotation>
5017 </xs:attribute>
5018 <xs:attribute name="SuppressModularization" type="YesNoTypeUnion">
5019 <xs:annotation>
5020 <xs:documentation>
5021 Use to suppress modularization of this property identifier in merge modules.
5022 Using this functionality is strongly discouraged; it should only be
5023 necessary as a workaround of last resort in rare scenarios.
5024 </xs:documentation>
5025 </xs:annotation>
5026 </xs:attribute>
5027 <xs:anyAttribute namespace="##other" processContents="lax">
5028 <xs:annotation>
5029 <xs:documentation>
5030 Extensibility point in the WiX XML Schema. Schema extensions can register additional
5031 attributes at this point in the schema.
5032 </xs:documentation>
5033 </xs:annotation>
5034 </xs:anyAttribute>
5035 </xs:complexType>
5036 </xs:element>
5037 <xs:element name="PropertyRef">
5038 <xs:annotation>
5039 <xs:appinfo>
5040 <xse:seeAlso ref="Property" />
5041 <xse:howtoRef href="redistributables_and_install_checks/check_for_dotnet.html">How To: Check for .NET Framework versions</xse:howtoRef>
5042 </xs:appinfo>
5043 <xs:documentation>Reference to a Property value.</xs:documentation>
5044 </xs:annotation>
5045 <xs:complexType>
5046 <xs:choice minOccurs="0" maxOccurs="unbounded">
5047 <xs:any namespace="##other" processContents="lax">
5048 <xs:annotation>
5049 <xs:documentation>
5050 Extensibility point in the WiX XML Schema. Schema extensions can register additional
5051 elements at this point in the schema.
5052 </xs:documentation>
5053 </xs:annotation>
5054 </xs:any>
5055 </xs:choice>
5056 <xs:attribute name="Id" type="xs:string" use="required">
5057 <xs:annotation>
5058 <xs:documentation>Identifier of Property to reference.</xs:documentation>
5059 </xs:annotation>
5060 </xs:attribute>
5061 <xs:anyAttribute namespace="##other" processContents="lax">
5062 <xs:annotation>
5063 <xs:documentation>
5064 Extensibility point in the WiX XML Schema. Schema extensions can register additional
5065 attributes at this point in the schema.
5066 </xs:documentation>
5067 </xs:annotation>
5068 </xs:anyAttribute>
5069 </xs:complexType>
5070 </xs:element>
5071 <xs:element name="SoftwareTagRef">
5072 <xs:annotation>
5073 <xs:documentation>Reference to a SoftwareTag by Regid.</xs:documentation>
5074 </xs:annotation>
5075 <xs:complexType>
5076 <xs:choice minOccurs="0" maxOccurs="unbounded">
5077 <xs:any namespace="##other" processContents="lax">
5078 <xs:annotation>
5079 <xs:documentation>
5080 Extensibility point in the WiX XML Schema. Schema extensions can register additional
5081 elements at this point in the schema.
5082 </xs:documentation>
5083 </xs:annotation>
5084 </xs:any>
5085 </xs:choice>
5086 <xs:attribute name="Regid" type="xs:string" use="required">
5087 <xs:annotation>
5088 <xs:documentation>Regid of SoftwareTag to reference.</xs:documentation>
5089 </xs:annotation>
5090 </xs:attribute>
5091 <xs:anyAttribute namespace="##other" processContents="lax">
5092 <xs:annotation>
5093 <xs:documentation>
5094 Extensibility point in the WiX XML Schema. Schema extensions can register additional
5095 attributes at this point in the schema.
5096 </xs:documentation>
5097 </xs:annotation>
5098 </xs:anyAttribute>
5099 </xs:complexType>
5100 </xs:element>
5101 <xs:element name="Shortcut">
5102 <xs:annotation>
5103 <xs:documentation>
5104 Shortcut, default target is parent File, CreateFolder, or Component's Directory
5105 </xs:documentation>
5106 <xs:appinfo>
5107 <xse:msiRef table="Shortcut" href="http://msdn.microsoft.com/library/aa371847.aspx" />
5108 <xse:howtoRef href="files_and_registry/create_start_menu_shortcut.html">How To: Create a shortcut on the Start Menu</xse:howtoRef>
5109 </xs:appinfo>
5110 </xs:annotation>
5111 <xs:complexType>
5112 <xs:choice minOccurs="0" maxOccurs="unbounded">
5113 <xs:element ref="Icon" minOccurs="0" />
5114 <xs:element ref="ShortcutProperty" minOccurs="0" />
5115 </xs:choice>
5116 <xs:attribute name="Id" type="xs:string">
5117 <xs:annotation>
5118 <xs:documentation>Unique identifier for the shortcut. This value will serve as the primary key for the row.</xs:documentation>
5119 </xs:annotation>
5120 </xs:attribute>
5121 <xs:attribute name="Directory" type="xs:string">
5122 <xs:annotation>
5123 <xs:documentation>Identifier reference to Directory element where shortcut is to be created. When nested under a Component element, this attribute's value will default to the parent directory. Otherwise, this attribute is required.</xs:documentation>
5124 </xs:annotation>
5125 </xs:attribute>
5126 <xs:attribute name="Name" type="LongFileNameType" use="required">
5127 <xs:annotation>
5128 <xs:documentation>
5129 If a short name is specified, the ShortName attribute may not be specified.
5130 If this value is a long name, the ShortName attribute may be omitted to
5131 allow WiX to attempt to generate a unique short name.
5132 However, if this name collides with another shortcut or you wish to manually specify
5133 the short name, then the ShortName attribute may be specified.
5134 </xs:documentation>
5135 </xs:annotation>
5136 </xs:attribute>
5137 <xs:attribute name="ShortName" type="ShortFileNameType">
5138 <xs:annotation>
5139 <xs:documentation>
5140 The short name of the shortcut in 8.3 format.
5141 This attribute should only be set if there is a conflict between generated short names
5142 or the user wants to manually specify the short name.
5143 </xs:documentation>
5144 </xs:annotation>
5145 </xs:attribute>
5146 <xs:attribute name="Target" type="xs:string">
5147 <xs:annotation>
5148 <xs:documentation>
5149 This attribute can only be set if this Shortcut element is nested under a Component element.
5150 When nested under a Component element, this attribute's value will default to the parent directory.
5151 This attribute's value is the target for a non-advertised shortcut.
5152 This attribute is not valid for advertised shortcuts.
5153 If you specify this value, its value should be a property identifier enclosed by square brackets ([ ]), that is expanded into the file or a folder pointed to by the shortcut.
5154 </xs:documentation>
5155 </xs:annotation>
5156 </xs:attribute>
5157 <xs:attribute name="Description" type="xs:string">
5158 <xs:annotation>
5159 <xs:documentation>The localizable description for the shortcut.</xs:documentation>
5160 </xs:annotation>
5161 </xs:attribute>
5162 <xs:attribute name="Arguments" type="xs:string">
5163 <xs:annotation>
5164 <xs:documentation>
5165 The command-line arguments for the shortcut. Note that the resolution of properties
5166 in the Arguments field is limited. A property formatted as [Property] in this field can only be resolved if the
5167 property already has the intended value when the component owning the shortcut is installed. For example, for the
5168 argument "[#MyDoc.doc]" to resolve to the correct value, the same process must be installing the file MyDoc.doc and
5169 the component that owns the shortcut.
5170 </xs:documentation>
5171 </xs:annotation>
5172 </xs:attribute>
5173 <xs:attribute name="Hotkey" type="Integer">
5174 <xs:annotation>
5175 <xs:documentation>
5176 The hotkey for the shortcut. The low-order byte contains the virtual-key code for
5177 the key, and the high-order byte contains modifier flags. This must be a non-negative number. Authors of
5178 installation packages are generally recommend not to set this option, because this can add duplicate hotkeys to a
5179 users desktop. In addition, the practice of assigning hotkeys to shortcuts can be problematic for users using hotkeys
5180 for accessibility.
5181 </xs:documentation>
5182 </xs:annotation>
5183 </xs:attribute>
5184 <xs:attribute name="Icon" type="xs:string">
5185 <xs:annotation>
5186 <xs:documentation>
5187 Identifier reference to Icon element. The Icon identifier should have the same extension
5188 as the file that it points at. For example, a shortcut to an executable (e.g. "my.exe") should reference an Icon with identifier
5189 like "MyIcon.exe"
5190 </xs:documentation>
5191 </xs:annotation>
5192 </xs:attribute>
5193 <xs:attribute name="IconIndex" type="Integer">
5194 <xs:annotation>
5195 <xs:documentation>Identifier reference to Icon element.</xs:documentation>
5196 </xs:annotation>
5197 </xs:attribute>
5198 <xs:attribute name="Show">
5199 <xs:simpleType>
5200 <xs:restriction base="xs:NMTOKEN">
5201 <xs:enumeration value="normal">
5202 <xs:annotation>
5203 <xs:documentation>
5204 The shortcut target will be displayed using the SW_SHOWNORMAL attribute.
5205 </xs:documentation>
5206 </xs:annotation>
5207 </xs:enumeration>
5208 <xs:enumeration value="minimized">
5209 <xs:annotation>
5210 <xs:documentation>
5211 The shortcut target will be displayed using the SW_SHOWMINNOACTIVE attribute.
5212 </xs:documentation>
5213 </xs:annotation>
5214 </xs:enumeration>
5215 <xs:enumeration value="maximized">
5216 <xs:annotation>
5217 <xs:documentation>
5218 The shortcut target will be displayed using the SW_SHOWMAXIMIZED attribute.
5219 </xs:documentation>
5220 </xs:annotation>
5221 </xs:enumeration>
5222 </xs:restriction>
5223 </xs:simpleType>
5224 </xs:attribute>
5225 <xs:attribute name="Subdirectory" type="xs:string">
5226 <xs:annotation>
5227 <xs:documentation>
5228 This attribute defines one or more directories below the directory referenced by the Directory attribute
5229 where the shortcut will be installed.
5230 </xs:documentation>
5231 </xs:annotation>
5232 </xs:attribute>
5233 <xs:attribute name="WorkingDirectory" type="xs:string">
5234 <xs:annotation>
5235 <xs:documentation>
5236 Directory identifier (or Property identifier that resolves to a directory) that resolves
5237 to the path of the working directory for the shortcut.
5238 </xs:documentation>
5239 </xs:annotation>
5240 </xs:attribute>
5241 <xs:attribute name="WorkingSubdirectory" type="xs:string">
5242 <xs:annotation>
5243 <xs:documentation>
5244 This attribute defines one or more directories below the directory referenced by the WorkingDirectory attribute
5245 for the shortcut's working directory.
5246 </xs:documentation>
5247 </xs:annotation>
5248 </xs:attribute>
5249 <xs:attribute name="Advertise" type="YesNoTypeUnion">
5250 <xs:annotation>
5251 <xs:documentation>
5252 Specifies if the shortcut should be advertised or not. Note that advertised shortcuts
5253 always point at a particular application, identified by a ProductCode, and should not be shared between applications.
5254 Advertised shortcuts only work for the most recently installed application, and are removed when that application is
5255 removed. The default value is 'no'.
5256 </xs:documentation>
5257 </xs:annotation>
5258 </xs:attribute>
5259 <xs:attribute name="DisplayResourceDll" type="xs:string">
5260 <xs:annotation>
5261 <xs:documentation>
5262 The Formatted string providing the full path to the language neutral file containing the MUI Manifest. Generally
5263 authored using [#filekey] form. When this attribute is specified, the DisplayResourceId attribute must also
5264 be provided.
5265
5266 This attribute is only used on Windows Vista and above. If this attribute is not populated and the install
5267 is running on Vista and above, the value in the Name attribute is used. If this attribute is populated and
5268 the install is running on Vista and above, the value in the Name attribute is ignored.
5269 </xs:documentation>
5270 </xs:annotation>
5271 </xs:attribute>
5272 <xs:attribute name="DisplayResourceId" type="Integer">
5273 <xs:annotation>
5274 <xs:documentation>
5275 The display name index for the shortcut. This must be a non-negative number. When this attribute is specified, the
5276 DisplayResourceDll attribute must also be provided.
5277
5278 This attribute is only used on Windows Vista and above. If this attribute is not specified and the install
5279 is running on Vista and above, the value in the Name attribute is used. If this attribute is specified and
5280 the install is running on Vista and above, the value in the Name attribute is ignored.
5281 </xs:documentation>
5282 </xs:annotation>
5283 </xs:attribute>
5284 <xs:attribute name="DescriptionResourceDll" type="xs:string">
5285 <xs:annotation>
5286 <xs:documentation>
5287 The Formatted string providing the full path to the language neutral file containing the MUI Manifest. Generally
5288 authored using [#filekey] form. When this attribute is specified, the DescriptionResourceId attribute must also
5289 be provided.
5290
5291 This attribute is only used on Windows Vista and above. If this attribute is not specified and the install
5292 is running on Vista and above, the value in the Name attribute is used. If this attribute is provided and
5293 the install is running on Vista and above, the value in the Name attribute is ignored.
5294 </xs:documentation>
5295 </xs:annotation>
5296 </xs:attribute>
5297 <xs:attribute name="DescriptionResourceId" type="Integer">
5298 <xs:annotation>
5299 <xs:documentation>
5300 The description name index for the shortcut. This must be a non-negative number. When this attribute is specified,
5301 the DescriptionResourceDll attribute must also be populated.
5302
5303 This attribute is only used on Windows Vista and above. If this attribute is not specified and the install
5304 is running on Vista and above, the value in the Name attribute is used. If this attribute is populated and the
5305 install is running on Vista and above, the value in the Name attribute is ignored.
5306 </xs:documentation>
5307 </xs:annotation>
5308 </xs:attribute>
5309 </xs:complexType>
5310 </xs:element>
5311 <xs:element name="ShortcutProperty">
5312 <xs:annotation>
5313 <xs:appinfo>
5314 <xse:seeAlso ref="Shortcut" />
5315 <xse:msiRef table="MsiShortcutProperty" />
5316 </xs:appinfo>
5317 <xs:documentation>Property values for a shortcut. This element's functionality is available starting with MSI 5.0.</xs:documentation>
5318 </xs:annotation>
5319 <xs:complexType>
5320 <xs:attribute name="Id" type="xs:string">
5321 <xs:annotation>
5322 <xs:documentation>Unique identifier for MsiShortcutProperty table. If omitted, a stable identifier will be generated from the parent shortcut identifier and Key value.</xs:documentation>
5323 </xs:annotation>
5324 </xs:attribute>
5325 <xs:attribute name="Key" type="xs:string" use="required">
5326 <xs:annotation>
5327 <xs:documentation>A formatted string identifying the property to be set.</xs:documentation>
5328 </xs:annotation>
5329 </xs:attribute>
5330 <xs:attribute name="Value" type="xs:string">
5331 <xs:annotation>
5332 <xs:documentation>A formatted string supplying the value of the property.</xs:documentation>
5333 </xs:annotation>
5334 </xs:attribute>
5335 </xs:complexType>
5336 </xs:element>
5337 <xs:element name="Permission">
5338 <xs:annotation>
5339 <xs:documentation>
5340 Sets ACLs on File, Registry, or CreateFolder. When under a Registry element, this cannot be used
5341 if the Action attribute's value is remove or removeKeyOnInstall. This element has no Id attribute.
5342 The table and key are taken from the parent element.
5343 </xs:documentation>
5344 <xs:appinfo>
5345 <xse:msiRef table="LockPermissions" href="http://msdn.microsoft.com/library/aa369774.aspx" />
5346 </xs:appinfo>
5347 </xs:annotation>
5348 <xs:complexType>
5349 <xs:attribute name="Domain" type="xs:string"></xs:attribute>
5350 <xs:attribute name="User" use="required" type="xs:string"></xs:attribute>
5351 <!-- Common ACLs -->
5352 <xs:attribute name="Read" type="YesNoTypeUnion"></xs:attribute>
5353 <xs:attribute name="Delete" type="YesNoTypeUnion"></xs:attribute>
5354 <xs:attribute name="ReadPermission" type="YesNoTypeUnion"></xs:attribute>
5355 <xs:attribute name="ChangePermission" type="YesNoTypeUnion"></xs:attribute>
5356 <xs:attribute name="TakeOwnership" type="YesNoTypeUnion"></xs:attribute>
5357 <xs:attribute name="SpecificRightsAll" type="YesNoTypeUnion">
5358 <xs:annotation>
5359 <xs:documentation>Bit mask for SPECIFIC_RIGHTS_ALL from WinNT.h (0x0000FFFF).</xs:documentation>
5360 </xs:annotation>
5361 </xs:attribute>
5362 <!-- Folder and File ACLs -->
5363 <xs:attribute name="ReadAttributes" type="YesNoTypeUnion"></xs:attribute>
5364 <xs:attribute name="WriteAttributes" type="YesNoTypeUnion"></xs:attribute>
5365 <xs:attribute name="ReadExtendedAttributes" type="YesNoTypeUnion"></xs:attribute>
5366 <xs:attribute name="WriteExtendedAttributes" type="YesNoTypeUnion"></xs:attribute>
5367 <xs:attribute name="Synchronize" type="YesNoTypeUnion"></xs:attribute>
5368 <!-- Folder only ACLs -->
5369 <xs:attribute name="CreateFile" type="YesNoTypeUnion">
5370 <xs:annotation>
5371 <xs:documentation>For a directory, the right to create a file in the directory. Only valid under a 'CreateFolder' parent.</xs:documentation>
5372 </xs:annotation>
5373 </xs:attribute>
5374 <xs:attribute name="CreateChild" type="YesNoTypeUnion">
5375 <xs:annotation>
5376 <xs:documentation>For a directory, the right to create a subdirectory. Only valid under a 'CreateFolder' parent.</xs:documentation>
5377 </xs:annotation>
5378 </xs:attribute>
5379 <xs:attribute name="DeleteChild" type="YesNoTypeUnion">
5380 <xs:annotation>
5381 <xs:documentation>For a directory, the right to delete a directory and all the files it contains, including read-only files. Only valid under a 'CreateFolder' parent.</xs:documentation>
5382 </xs:annotation>
5383 </xs:attribute>
5384 <xs:attribute name="Traverse" type="YesNoTypeUnion">
5385 <xs:annotation>
5386 <xs:documentation>For a directory, the right to traverse the directory. By default, users are assigned the BYPASS_TRAVERSE_CHECKING privilege, which ignores the FILE_TRAVERSE access right. Only valid under a 'CreateFolder' parent.</xs:documentation>
5387 </xs:annotation>
5388 </xs:attribute>
5389 <!-- File only ACLs -->
5390 <xs:attribute name="Append" type="YesNoTypeUnion"></xs:attribute>
5391 <xs:attribute name="Execute" type="YesNoTypeUnion"></xs:attribute>
5392 <xs:attribute name="FileAllRights" type="YesNoTypeUnion">
5393 <xs:annotation>
5394 <xs:documentation>Bit mask for FILE_ALL_ACCESS from WinNT.h (0x001F01FF).</xs:documentation>
5395 </xs:annotation>
5396 </xs:attribute>
5397 <!-- File and Registry ACLs -->
5398 <xs:attribute name="Write" type="YesNoTypeUnion"></xs:attribute>
5399 <!-- Registry only ACLs -->
5400 <xs:attribute name="CreateSubkeys" type="YesNoTypeUnion"></xs:attribute>
5401 <xs:attribute name="EnumerateSubkeys" type="YesNoTypeUnion"></xs:attribute>
5402 <xs:attribute name="Notify" type="YesNoTypeUnion"></xs:attribute>
5403 <xs:attribute name="CreateLink" type="YesNoTypeUnion"></xs:attribute>
5404 <!-- Generic ACLs, mapped by system to appropriate permissions -->
5405 <xs:attribute name="GenericAll" type="YesNoTypeUnion"></xs:attribute>
5406 <xs:attribute name="GenericExecute" type="YesNoTypeUnion"></xs:attribute>
5407 <xs:attribute name="GenericWrite" type="YesNoTypeUnion"></xs:attribute>
5408 <xs:attribute name="GenericRead" type="YesNoTypeUnion">
5409 <xs:annotation>
5410 <xs:documentation>specifying this will fail to grant read access</xs:documentation>
5411 </xs:annotation>
5412 </xs:attribute>
5413 </xs:complexType>
5414 </xs:element>
5415 <xs:element name="PermissionEx">
5416 <xs:annotation>
5417 <xs:documentation>
5418 Sets ACLs on File, Registry, or CreateFolder. When under a Registry element, this cannot be used
5419 if the Action attribute's value is remove or removeKeyOnInstall. This element is only available
5420 when installing with MSI 5.0. For downlevel support, see the PermissionEx element from the
5421 WixUtilExtension.
5422 </xs:documentation>
5423 <xs:appinfo>
5424 <xse:msiRef table="MsiLockPermissionsEx" href="http://msdn.microsoft.com/library/aa369774.aspx" />
5425 </xs:appinfo>
5426 </xs:annotation>
5427 <xs:complexType>
5428 <xs:attribute name="Id" type="xs:string">
5429 <xs:annotation>
5430 <xs:documentation>
5431 Primary key used to identify this particular entry. If this is not specified the parent element's Id attribute
5432 will be used instead.
5433 </xs:documentation>
5434 </xs:annotation>
5435 </xs:attribute>
5436 <xs:attribute name="Condition" type="xs:string">
5437 <xs:annotation>
5438 <xs:documentation>
5439 Optional condition that controls whether the permissions are applied.
5440 </xs:documentation>
5441 </xs:annotation>
5442 </xs:attribute>
5443 <xs:attribute name="Sddl" type="xs:string" use="required">
5444 <xs:annotation>
5445 <xs:documentation>
5446 Security descriptor to apply to parent object.
5447 </xs:documentation>
5448 </xs:annotation>
5449 </xs:attribute>
5450 </xs:complexType>
5451 </xs:element>
5452 <xs:element name="CopyFile">
5453 <xs:annotation>
5454 <xs:appinfo>
5455 <xse:seeAlso ref="RemoveFile" />
5456 <xse:msiRef table="DuplicateFile" href="http://msdn.microsoft.com/library/aa368335.aspx" />
5457 <xse:msiRef table="MoveFile" href="http://msdn.microsoft.com/library/aa370055.aspx" />
5458 </xs:appinfo>
5459 <xs:documentation>
5460 Copy or move an existing file on the target machine, or copy a file that is being installed, to another destination. When
5461 this element is nested under a File element, the parent file will be installed, then copied to the specified destination
5462 if the parent component of the file is selected for installation or removal. When this element is nested under
5463 a Component element and no FileId attribute is specified, the file to copy or move must already be on the target machine.
5464 When this element is nested under a Component element and the FileId attribute is specified, the specified file is installed,
5465 then copied to the specified destination if the parent component is selected for installation or removal (use
5466 this option to control the copy of a file in a different component by the parent component's installation state). If the
5467 specified destination directory is the same as the directory containing the original file and the name for the proposed source
5468 file is the same as the original, then no action takes place.
5469 </xs:documentation>
5470 </xs:annotation>
5471 <xs:complexType>
5472 <xs:attribute name="Id" type="xs:string" use="required">
5473 <xs:annotation>
5474 <xs:documentation>Primary key used to identify this particular entry.</xs:documentation>
5475 </xs:annotation>
5476 </xs:attribute>
5477 <xs:attribute name="FileId" type="xs:string">
5478 <xs:annotation>
5479 <xs:documentation>
5480 This attribute cannot be specified if the element is nested under a File element. Set this attribute's value to the identifier
5481 of a file from a different component to copy it based on the install state of the parent component.
5482 </xs:documentation>
5483 </xs:annotation>
5484 </xs:attribute>
5485 <xs:attribute name="SourceDirectory" type="xs:string">
5486 <xs:annotation>
5487 <xs:documentation>
5488 This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set
5489 this value to the source directory from which to copy or move an existing file on the target machine. This Directory must
5490 exist in the installer database at creation time. This attribute cannot be specified in conjunction with SourceProperty.
5491 </xs:documentation>
5492 </xs:annotation>
5493 </xs:attribute>
5494 <xs:attribute name="SourceProperty" type="xs:string">
5495 <xs:annotation>
5496 <xs:documentation>
5497 This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set
5498 this value to a property that will have a value that resolves to the full path of the source directory (or full path
5499 including file name if SourceName is not specified). The property does not have to exist in the installer database at
5500 creation time; it could be created at installation time by a custom action, on the command line, etc. This attribute
5501 cannot be specified in conjunction with SourceDirectory.
5502 </xs:documentation>
5503 </xs:annotation>
5504 </xs:attribute>
5505 <xs:attribute name="SourceName" type="WildCardLongFileNameType">
5506 <xs:annotation>
5507 <xs:documentation>
5508 This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set
5509 this value to the localizable name of the file(s) to be copied or moved. All of the files that
5510 match the wild card will be removed from the specified directory. The value is a filename that may also
5511 contain the wild card characters "?" for any single character or "*" for zero or more occurrences of any character. If this
5512 attribute is not specified (and this element is not nested under a File element or specify a FileId attribute) then the
5513 SourceProperty attribute should be set to the name of a property that will resolve to the full path of the source filename.
5514 If the value of this attribute contains a "*" wildcard and the DestinationName attribute is specified, all moved or copied
5515 files retain the file names from their sources.
5516 </xs:documentation>
5517 </xs:annotation>
5518 </xs:attribute>
5519 <xs:attribute name="DestinationDirectory" type="xs:string">
5520 <xs:annotation>
5521 <xs:documentation>
5522 Set this value to the destination directory where an existing file on the target machine should be moved or copied to. This
5523 Directory must exist in the installer database at creation time. This attribute cannot be specified in conjunction with
5524 DestinationProperty.
5525 </xs:documentation>
5526 </xs:annotation>
5527 </xs:attribute>
5528 <xs:attribute name="DestinationProperty" type="xs:string">
5529 <xs:annotation>
5530 <xs:documentation>
5531 Set this value to a property that will have a value that resolves to the full path of the destination directory. The property
5532 does not have to exist in the installer database at creation time; it could be created at installation time by a custom
5533 action, on the command line, etc. This attribute cannot be specified in conjunction with DestinationDirectory.
5534 </xs:documentation>
5535 </xs:annotation>
5536 </xs:attribute>
5537 <xs:attribute name="DestinationName" type="LongFileNameType">
5538 <xs:annotation>
5539 <xs:documentation>
5540 In prior versions of the WiX toolset, this attribute specified the short file name.
5541 Now set this value to the localizable name to be given to the original file after it is moved or copied.
5542 If this attribute is not specified, then the destination file is given the same name as the source file.
5543 If a short file name is specified, the DestinationShortName attribute may not be specified.
5544 Also, if this value is a long file name, the DestinationShortName attribute may be omitted to
5545 allow WiX to attempt to generate a unique short file name.
5546 However, if this name collides with another file or you wish to manually specify
5547 the short file name, then the DestinationShortName attribute may be specified.
5548 </xs:documentation>
5549 </xs:annotation>
5550 </xs:attribute>
5551 <xs:attribute name="DestinationShortName" type="ShortFileNameType">
5552 <xs:annotation>
5553 <xs:documentation>
5554 The short file name of the file in 8.3 format.
5555 This attribute should only be set if there is a conflict between generated short file names
5556 or you wish to manually specify the short file name.
5557 </xs:documentation>
5558 </xs:annotation>
5559 </xs:attribute>
5560 <xs:attribute name="Delete" type="YesNoTypeUnion">
5561 <xs:annotation>
5562 <xs:documentation>
5563 This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. In other
5564 cases, if the attribute is not specified, the default value is "no" and the file is copied, not moved. Set the value to "yes"
5565 in order to move the file (thus deleting the source file) instead of copying it.
5566 </xs:documentation>
5567 </xs:annotation>
5568 </xs:attribute>
5569 </xs:complexType>
5570 </xs:element>
5571 <xs:element name="File">
5572 <xs:annotation>
5573 <xs:documentation>
5574 Defines a file to be installed by the package.
5575 </xs:documentation>
5576 <xs:appinfo>
5577 <xse:msiRef table="File" href="https://learn.microsoft.com/en-us/windows/win32/msi/file-table" />
5578 <xse:howtoRef href="files_and_registry/add_a_file.html">How To: Add a file to your installer</xse:howtoRef>
5579 </xs:appinfo>
5580 </xs:annotation>
5581 <xs:complexType>
5582 <xs:choice minOccurs="0" maxOccurs="unbounded">
5583 <xs:element ref="AssemblyName" />
5584 <xs:element ref="Permission">
5585 <xs:annotation>
5586 <xs:documentation>Used to configure the ACLs for this file.</xs:documentation>
5587 </xs:annotation>
5588 </xs:element>
5589 <xs:element ref="PermissionEx">
5590 <xs:annotation>
5591 <xs:documentation>Can also configure the ACLs for this file.</xs:documentation>
5592 </xs:annotation>
5593 </xs:element>
5594 <xs:element ref="CopyFile">
5595 <xs:annotation>
5596 <xs:documentation>Used to create a duplicate of this file elsewhere.</xs:documentation>
5597 </xs:annotation>
5598 </xs:element>
5599 <xs:element ref="Shortcut">
5600 <xs:annotation>
5601 <xs:documentation>Target of the shortcut will be set to this file.</xs:documentation>
5602 </xs:annotation>
5603 </xs:element>
5604 <xs:element ref="ODBCDriver" />
5605 <xs:element ref="ODBCTranslator" />
5606 <xs:element ref="SymbolPath" />
5607 <xs:element ref="Class" />
5608 <xs:element ref="AppId" />
5609 <xs:element ref="TypeLib" />
5610 <xs:any namespace="##other" processContents="lax">
5611 <xs:annotation>
5612 <xs:documentation>
5613 Extensibility point in the WiX XML Schema. Schema extensions can register additional
5614 elements at this point in the schema.
5615 </xs:documentation>
5616 </xs:annotation>
5617 </xs:any>
5618 </xs:choice>
5619 <xs:attribute name="Id" type="xs:string">
5620 <xs:annotation>
5621 <xs:documentation>
5622 The unique identifier for this File element. If you omit Id, a stable identifier is generated for you.
5623 </xs:documentation>
5624 </xs:annotation>
5625 </xs:attribute>
5626 <xs:attribute name="Bitness" type="BitnessTypeUnion">
5627 <xs:annotation>
5628 <xs:documentation>
5629 [WiX v5] Only valid when the File element is not a child of the Component element.
5630 Overrides the default File bitness. Only a 64-bit File can install to 64-bit locations such
5631 as `ProgramFiles64Folder` and the 64-bit registry. The value `always64` will force the File
5632 bitness to be 64-bit and cannot be included in 32-bit packages.
5633 Simliarly, the value `always32` will force the File bitness to 32-bit and can be included in
5634 32-bit or 64-bit packages.
5635 The default value is `default` where the File will be installed using the
5636 same bitness as the package.
5637 </xs:documentation>
5638 </xs:annotation>
5639 </xs:attribute>
5640 <xs:attribute name="CompanionFile" type="xs:string">
5641 <xs:annotation>
5642 <xs:documentation>
5643 Set this attribute to make this file a companion child of another file. The installation
5644 state of a companion file depends not on its own file versioning information, but on the versioning of its
5645 companion parent. A file that is the key path for its component can not be a companion file (that means
5646 this attribute cannot be set if KeyPath="yes" for this file). The Version attribute cannot be set along
5647 with this attribute since companion files are not installed based on their own version.</xs:documentation>
5648 </xs:annotation>
5649 </xs:attribute>
5650 <xs:attribute name="Condition" type="xs:string">
5651 <xs:annotation>
5652 <xs:documentation>
5653 [WiX v5] Only valid when the File element is not a child of the Component element.
5654 The condition expression to be evaluated at install time. When false the File will not be installed.
5655 </xs:documentation>
5656 </xs:annotation>
5657 </xs:attribute>
5658 <xs:attribute name="Directory" type="xs:string">
5659 <xs:annotation>
5660 <xs:documentation>
5661 [WiX v5] Only valid when the File element is not a child of the Component element.
5662 This attribute specifies a reference to a Directory element with matching Id attribute containing a directory path.
5663 If not provided, the value will default to "INSTALLFOLDER".
5664 </xs:documentation>
5665 </xs:annotation>
5666 </xs:attribute>
5667 <xs:attribute name="Subdirectory" type="xs:string">
5668 <xs:annotation>
5669 <xs:documentation>
5670 [WiX v5] Only valid when the File element is not a child of the Component element.
5671 This attribute defines one or more directories below the directory referenced by the Directory attribute.
5672 </xs:documentation>
5673 </xs:annotation>
5674 </xs:attribute>
5675 <xs:attribute name="Name" type="LongFileNameType">
5676 <xs:annotation>
5677 <xs:documentation>
5678 Specifies the name of the installed file. If this attribute is omitted, then
5679 its default value is the file name portion of the Source attribute. If the
5680 Source attribute is omitted, you must specify a Name attribute. For more
5681 information, see [Specifying source files](../../../tools/payloads/).
5682 </xs:documentation>
5683 </xs:annotation>
5684 </xs:attribute>
5685 <xs:attribute name="KeyPath" type="YesNoTypeUnion">
5686 <xs:annotation>
5687 <xs:documentation>Set to yes in order to force this file to be the key path for the parent component.</xs:documentation>
5688 </xs:annotation>
5689 </xs:attribute>
5690 <xs:attribute name="ShortName" type="ShortFileNameType">
5691 <xs:annotation>
5692 <xs:documentation>
5693 The short file name of the file in 8.3 format.
5694 This attribute should only be set if there is a conflict between generated short file names
5695 or the user wants to manually specify the short file name.
5696 </xs:documentation>
5697 </xs:annotation>
5698 </xs:attribute>
5699 <xs:attribute name="ReadOnly" type="YesNoTypeUnion">
5700 <xs:annotation>
5701 <xs:documentation>Set to yes in order to have the file's read-only attribute set when it is installed on the target machine.</xs:documentation>
5702 </xs:annotation>
5703 </xs:attribute>
5704 <xs:attribute name="Hidden" type="YesNoTypeUnion">
5705 <xs:annotation>
5706 <xs:documentation>Set to yes in order to have the file's hidden attribute set when it is installed on the target machine.</xs:documentation>
5707 </xs:annotation>
5708 </xs:attribute>
5709 <xs:attribute name="System" type="YesNoTypeUnion">
5710 <xs:annotation>
5711 <xs:documentation>Set to yes in order to have the file's system attribute set when it is installed on the target machine.</xs:documentation>
5712 </xs:annotation>
5713 </xs:attribute>
5714 <xs:attribute name="Vital" type="YesNoTypeUnion">
5715 <xs:annotation>
5716 <xs:documentation>If a file is vital, then installation cannot proceed unless the file is successfully installed. The user will have no option to ignore an error installing this file. If an error occurs, they can merely retry to install the file or abort the installation. The default is "yes," unless the -sfdvital switch (candle.exe) or SuppressFileDefaultVital property (.wixproj) is used.</xs:documentation>
5717 </xs:annotation>
5718 </xs:attribute>
5719 <xs:attribute name="Checksum" type="YesNoTypeUnion">
5720 <xs:annotation>
5721 <xs:documentation>This attribute should be set to "yes" for every executable file in the installation that has a valid checksum stored in the Portable Executable (PE) file header. Only those files that have this attribute set will be verified for valid checksum during a reinstall.</xs:documentation>
5722 </xs:annotation>
5723 </xs:attribute>
5724 <xs:attribute name="Compressed" type="YesNoDefaultTypeUnion">
5725 <xs:annotation>
5726 <xs:documentation>Sets the file's source type compression. A setting of "yes"/"true", or "no"/"false" will override the setting in the Word Count Summary Property.</xs:documentation>
5727 </xs:annotation>
5728 </xs:attribute>
5729 <xs:attribute name="BindPath" type="xs:string">
5730 <xs:annotation>
5731 <xs:documentation>A list of paths, separated by semicolons, that represent the paths to be searched to find the imported DLLs. The list is usually a list of properties, with each property enclosed inside square brackets. The value may be set to an empty string. Including this attribute will cause an entry to be generated for the file in the BindImage table.</xs:documentation>
5732 </xs:annotation>
5733 </xs:attribute>
5734 <xs:attribute name="SelfRegCost" type="Integer">
5735 <xs:annotation>
5736 <xs:documentation>The cost of registering the file in bytes. This must be a non-negative number. Including this attribute will cause an entry to be generated for the file in the SelfReg table.</xs:documentation>
5737 </xs:annotation>
5738 </xs:attribute>
5739 <xs:attribute name="TrueType" type="YesNoTypeUnion">
5740 <xs:annotation>
5741 <xs:documentation>Causes an entry to be generated for the file in the Font table with no FontTitle specified. This attribute is intended to be used to register the file as a TrueType font.</xs:documentation>
5742 </xs:annotation>
5743 </xs:attribute>
5744 <xs:attribute name="FontTitle" type="xs:string">
5745 <xs:annotation>
5746 <xs:documentation>Causes an entry to be generated for the file in the Font table with the specified FontTitle. This attribute is intended to be used to register the file as a non-TrueType font.</xs:documentation>
5747 </xs:annotation>
5748 </xs:attribute>
5749 <xs:attribute name="DefaultLanguage" type="xs:string">
5750 <xs:annotation>
5751 <xs:documentation>This is the default language of this file. The linker will replace this value from the value in the file if the suppress files option is not used.</xs:documentation>
5752 </xs:annotation>
5753 </xs:attribute>
5754 <xs:attribute name="DefaultSize" type="Integer">
5755 <xs:annotation>
5756 <xs:documentation>This is the default size of this file. The linker will replace this value from the value in the file if the suppress files option is not used.</xs:documentation>
5757 </xs:annotation>
5758 </xs:attribute>
5759 <xs:attribute name="DefaultVersion" type="xs:string">
5760 <xs:annotation>
5761 <xs:documentation>This is the default version of this file. The linker will replace this value from the value in the file if the suppress files option is not used.</xs:documentation>
5762 </xs:annotation>
5763 </xs:attribute>
5764 <xs:attribute name="Assembly">
5765 <xs:annotation>
5766 <xs:documentation>
5767 Specifies if this File is a Win32 Assembly or .NET Assembly that needs to be installed into the
5768 Global Assembly Cache (GAC). If the value is '.net' or 'win32', this file must also be the key path of the Component.
5769 </xs:documentation>
5770 </xs:annotation>
5771 <xs:simpleType>
5772 <xs:restriction base="xs:NMTOKEN">
5773 <xs:enumeration value=".net">
5774 <xs:annotation>
5775 <xs:documentation>
5776 The file is a .NET Framework assembly.
5777 </xs:documentation>
5778 </xs:annotation>
5779 </xs:enumeration>
5780 <xs:enumeration value="no">
5781 <xs:annotation>
5782 <xs:documentation>
5783 The file is not a .NET Framework or Win32 assembly. This is the default value.
5784 </xs:documentation>
5785 </xs:annotation>
5786 </xs:enumeration>
5787 <xs:enumeration value="win32">
5788 <xs:annotation>
5789 <xs:documentation>
5790 The file is a Win32 assembly.
5791 </xs:documentation>
5792 </xs:annotation>
5793 </xs:enumeration>
5794 </xs:restriction>
5795 </xs:simpleType>
5796 </xs:attribute>
5797 <xs:attribute name="AssemblyManifest" type="xs:string">
5798 <xs:annotation>
5799 <xs:documentation>
5800 Specifies the file identifier of the manifest file that describes this assembly.
5801 The manifest file should be in the same component as the assembly it describes.
5802 This attribute may only be specified if the Assembly attribute is set to '.net' or 'win32'.
5803 </xs:documentation>
5804 </xs:annotation>
5805 </xs:attribute>
5806 <xs:attribute name="AssemblyApplication" type="xs:string">
5807 <xs:annotation>
5808 <xs:documentation>
5809 Specifies the file identifier of the application file. This assembly will be isolated
5810 to the same directory as the application file.
5811 If this attribute is absent, the assembly will be installed to the Global Assembly Cache (GAC).
5812 This attribute may only be specified if the Assembly attribute is set to '.net' or 'win32'.
5813 </xs:documentation>
5814 </xs:annotation>
5815 </xs:attribute>
5816 <xs:attribute name="ProcessorArchitecture">
5817 <xs:annotation>
5818 <xs:documentation>Specifies the architecture for this assembly. This attribute should only be used on .NET Framework 2.0 or higher assemblies.</xs:documentation>
5819 </xs:annotation>
5820 <xs:simpleType>
5821 <xs:restriction base="xs:NMTOKEN">
5822 <xs:enumeration value="msil">
5823 <xs:annotation>
5824 <xs:documentation>
5825 The file is a .NET Framework assembly that is processor-neutral.
5826 </xs:documentation>
5827 </xs:annotation>
5828 </xs:enumeration>
5829 <xs:enumeration value="x86">
5830 <xs:annotation>
5831 <xs:documentation>
5832 The file is a .NET Framework assembly for the x86 processor.
5833 </xs:documentation>
5834 </xs:annotation>
5835 </xs:enumeration>
5836 <xs:enumeration value="x64">
5837 <xs:annotation>
5838 <xs:documentation>
5839 The file is a .NET Framework assembly for the x64 processor.
5840 </xs:documentation>
5841 </xs:annotation>
5842 </xs:enumeration>
5843 <xs:enumeration value="ia64">
5844 <xs:annotation>
5845 <xs:documentation>
5846 The file is a .NET Framework assembly for the ia64 processor.
5847 </xs:documentation>
5848 </xs:annotation>
5849 </xs:enumeration>
5850 </xs:restriction>
5851 </xs:simpleType>
5852 </xs:attribute>
5853 <xs:attribute name="DiskId" type="DiskIdType">
5854 <xs:annotation>
5855 <xs:documentation>
5856 The value of this attribute should correspond to the Id attribute of a Media
5857 element authored elsewhere. By creating this connection between a file and
5858 its media, you set the packaging options to the values specified in the Media
5859 element (values such as compression level, cab embedding, etc...). Specifying
5860 the DiskId attribute on the File element overrides the default DiskId attribute
5861 from the parent Component element. If no DiskId attribute is specified,
5862 the default is "1". This DiskId attribute is ignored when creating a merge module
5863 because merge modules do not have media.
5864 </xs:documentation>
5865 </xs:annotation>
5866 </xs:attribute>
5867 <xs:attribute name="Source" type="xs:string">
5868 <xs:annotation>
5869 <xs:documentation>
5870 Specifies the path to the file in the build process. Overrides default source
5871 path set by parent directories and Name attribute. This attribute must be set
5872 if no source information can be gathered from parent directories. For more
5873 information, see [Specifying source files](../../../tools/payloads/).
5874 </xs:documentation>
5875 </xs:annotation>
5876 </xs:attribute>
5877 <xs:attribute name="PatchGroup" type="Integer">
5878 <xs:annotation>
5879 <xs:documentation>
5880 This attribute must be set for patch-added files. Each patch should be assigned a different patch group number. Patch groups
5881 numbers must be greater 0 and should be assigned consecutively. For example, the first patch should use PatchGroup='1', the
5882 second patch will have PatchGroup='2', etc...
5883 </xs:documentation>
5884 </xs:annotation>
5885 </xs:attribute>
5886 <xs:attribute name="PatchIgnore" type="YesNoTypeUnion">
5887 <xs:annotation>
5888 <xs:documentation>Prevents the updating of the file that is in fact changed in the upgraded image relative to the target images.</xs:documentation>
5889 </xs:annotation>
5890 </xs:attribute>
5891 <xs:attribute name="PatchAllowIgnoreOnError" type="YesNoTypeUnion">
5892 <xs:annotation>
5893 <xs:documentation>Set to indicate that the patch is non-vital.</xs:documentation>
5894 </xs:annotation>
5895 </xs:attribute>
5896 <xs:attribute name="PatchWholeFile" type="YesNoTypeUnion">
5897 <xs:annotation>
5898 <xs:documentation>Set if the entire file should be installed rather than creating a binary patch.</xs:documentation>
5899 </xs:annotation>
5900 </xs:attribute>
5901 <xs:anyAttribute namespace="##other" processContents="lax">
5902 <xs:annotation>
5903 <xs:documentation>
5904 Extensibility point in the WiX XML Schema. Schema extensions can register additional
5905 attributes at this point in the schema.
5906 </xs:documentation>
5907 </xs:annotation>
5908 </xs:anyAttribute>
5909 </xs:complexType>
5910 </xs:element>
5911 <xs:element name="MultiString">
5912 <xs:annotation>
5913 <xs:documentation>
5914 Use several of these elements to specify each registry value in a multiString registry value. This element
5915 cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'.
5916 </xs:documentation>
5917 <xs:appinfo>
5918 <xse:msiRef table="Registry" href="https://learn.microsoft.com/en-us/windows/win32/msi/registry-table" />
5919 </xs:appinfo>
5920 </xs:annotation>
5921 <xs:complexType>
5922 <xs:attribute name="Value" type="xs:string">
5923 <xs:annotation>
5924 <xs:documentation>
5925 The multi-string value.
5926 </xs:documentation>
5927 </xs:annotation>
5928 </xs:attribute>
5929 </xs:complexType>
5930 </xs:element>
5931 <xs:element name="MultiStringValue">
5932 <xs:annotation>
5933 <xs:documentation>
5934 Use several of these elements to specify each registry value in a multiString registry value. This element
5935 cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'.
5936
5937 Consider using the MultiString element instead.
5938 </xs:documentation>
5939 <xs:appinfo>
5940 <xse:seeAlso ref="MultiString" />
5941 <xse:msiRef table="Registry" href="https://learn.microsoft.com/en-us/windows/win32/msi/registry-table" />
5942 </xs:appinfo>
5943 </xs:annotation>
5944 <xs:complexType>
5945 <xs:attribute name="Value" type="xs:string">
5946 <xs:annotation>
5947 <xs:documentation>The multi-string value.</xs:documentation>
5948 </xs:annotation>
5949 </xs:attribute>
5950 </xs:complexType>
5951 </xs:element>
5952 <xs:element name="RegistryKey">
5953 <xs:annotation>
5954 <xs:documentation>
5955 Used for organization of child RegistryValue elements or to create a registry key
5956 (and optionally remove it during uninstallation).
5957 </xs:documentation>
5958 <xs:appinfo>
5959 <xse:msiRef table="Registry" href="https://learn.microsoft.com/en-us/windows/win32/msi/registry-table" />
5960 <xse:howtoRef href="files_and_registry/read_a_registry_entry.html">How To: Read a registry entry during installation</xse:howtoRef>
5961 <xse:howtoRef href="files_and_registry/write_a_registry_entry.html">How To: Write a registry entry during installation</xse:howtoRef>
5962 </xs:appinfo>
5963 </xs:annotation>
5964 <xs:complexType>
5965 <xs:choice minOccurs="0" maxOccurs="unbounded">
5966 <xs:element ref="RegistryKey" />
5967 <xs:element ref="RegistryValue" />
5968 <xs:element ref="Permission" minOccurs="0" maxOccurs="unbounded">
5969 <xs:annotation>
5970 <xs:documentation>ACL permission</xs:documentation>
5971 </xs:annotation>
5972 </xs:element>
5973 <xs:element ref="PermissionEx">
5974 <xs:annotation>
5975 <xs:documentation>Can also configure the ACLs for this registry key.</xs:documentation>
5976 </xs:annotation>
5977 </xs:element>
5978 <xs:any namespace="##other" processContents="lax">
5979 <xs:annotation>
5980 <xs:documentation>
5981 Extensibility point in the WiX XML Schema. Schema extensions can register additional
5982 elements at this point in the schema.
5983 </xs:documentation>
5984 </xs:annotation>
5985 </xs:any>
5986 </xs:choice>
5987 <xs:attribute name="Id" type="xs:string">
5988 <xs:annotation>
5989 <xs:documentation>
5990 Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be
5991 generated.
5992 </xs:documentation>
5993 </xs:annotation>
5994 </xs:attribute>
5995 <xs:attribute name="Action">
5996 <xs:annotation>
5997 <xs:documentation>
5998 The Action attribute has been deprecated. In most cases, you can simply omit @Action. If you need to force Windows Installer
5999 to create an empty key or recursively delete the key, use the ForceCreateOnInstall or ForceDeleteOnUninstall attributes instead.
6000 </xs:documentation>
6001 </xs:annotation>
6002 <xs:simpleType>
6003 <xs:restriction base="xs:NMTOKEN">
6004 <xs:enumeration value="create">
6005 <xs:annotation>
6006 <xs:documentation>
6007 Creates the key, if absent, when the parent component is installed.
6008 </xs:documentation>
6009 </xs:annotation>
6010 </xs:enumeration>
6011 <xs:enumeration value="createAndRemoveOnUninstall">
6012 <xs:annotation>
6013 <xs:documentation>
6014 Creates the key, if absent, when the parent component is installed then remove the key with all its values and subkeys when the parent component is uninstalled.
6015 Note that this value is useful only if your program creates additional values or subkeys under this key and you want an uninstall to remove them. MSI already
6016 removes all values and subkeys that it creates, so this option just adds additional overhead to uninstall.
6017 </xs:documentation>
6018 </xs:annotation>
6019 </xs:enumeration>
6020 <xs:enumeration value="none">
6021 <xs:annotation>
6022 <xs:documentation>
6023 Does nothing; this element is used merely in WiX authoring for organization and does nothing to the final output.
6024 This is the default value.
6025 </xs:documentation>
6026 </xs:annotation>
6027 </xs:enumeration>
6028 </xs:restriction>
6029 </xs:simpleType>
6030 </xs:attribute>
6031 <xs:attribute name="ForceCreateOnInstall" type="YesNoTypeUnion">
6032 <xs:annotation>
6033 <xs:documentation>
6034 Set this attribute to 'yes' to create an empty key, if absent, when the parent component is installed.
6035 This value is needed only to create an empty key with no subkeys or values. Windows Installer creates
6036 keys as needed to store subkeys and values. The default is "no".
6037 </xs:documentation>
6038 </xs:annotation>
6039 </xs:attribute>
6040 <xs:attribute name="ForceDeleteOnUninstall" type="YesNoTypeUnion">
6041 <xs:annotation>
6042 <xs:documentation>
6043 Set this attribute to 'yes' to remove the key with all its values and subkeys when the parent component is uninstalled.
6044 Note that this value is useful only if your program creates additional values or subkeys under this key and you want an uninstall to remove them. MSI already
6045 removes all values and subkeys that it creates, so this option just adds additional overhead to uninstall.
6046 The default is "no".
6047 </xs:documentation>
6048 </xs:annotation>
6049 </xs:attribute>
6050 <xs:attribute name="Key" type="xs:string">
6051 <xs:annotation>
6052 <xs:documentation>
6053 The localizable key for the registry value.
6054 If the parent element is a RegistryKey, this value may be omitted to use the
6055 path of the parent, or if its specified it will be appended to the path of the parent.
6056 </xs:documentation>
6057 </xs:annotation>
6058 </xs:attribute>
6059 <xs:attribute name="Root" type="RegistryRootType">
6060 <xs:annotation>
6061 <xs:documentation>
6062 The predefined root key for the registry value.
6063 </xs:documentation>
6064 </xs:annotation>
6065 </xs:attribute>
6066 <xs:anyAttribute namespace="##other" processContents="lax">
6067 <xs:annotation>
6068 <xs:documentation>
6069 Extensibility point in the WiX XML Schema. Schema extensions can register additional
6070 attributes at this point in the schema.
6071 </xs:documentation>
6072 </xs:annotation>
6073 </xs:anyAttribute>
6074 </xs:complexType>
6075 </xs:element>
6076 <xs:element name="RegistryValue">
6077 <xs:annotation>
6078 <xs:documentation>
6079 Used to create a registry value. For multi-string values, this can be used to prepend or append values.
6080
6081 For legacy authoring: Use several of these elements to specify each registry value in a multiString registry value. This element
6082 cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'.
6083 </xs:documentation>
6084 <xs:appinfo>
6085 <xse:msiRef table="Registry" href="https://learn.microsoft.com/en-us/windows/win32/msi/registry-table" />
6086 <xse:howtoRef href="files_and_registry/write_a_registry_entry.html">How To: Write a registry entry during installation</xse:howtoRef>
6087 </xs:appinfo>
6088 </xs:annotation>
6089 <xs:complexType>
6090 <xs:choice minOccurs="0" maxOccurs="unbounded">
6091 <xs:element ref="Permission" />
6092 <xs:element ref="PermissionEx">
6093 <xs:annotation>
6094 <xs:documentation>Can also configure the ACLs for this registry value.</xs:documentation>
6095 </xs:annotation>
6096 </xs:element>
6097 <xs:element ref="MultiString" />
6098 <xs:element ref="MultiStringValue" />
6099 <xs:any namespace="##other" processContents="lax">
6100 <xs:annotation>
6101 <xs:documentation>
6102 Extensibility point in the WiX XML Schema. Schema extensions can register additional
6103 elements at this point in the schema.
6104 </xs:documentation>
6105 </xs:annotation>
6106 </xs:any>
6107 </xs:choice>
6108 <xs:attribute name="Id" type="xs:string">
6109 <xs:annotation>
6110 <xs:documentation>
6111 Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be
6112 generated by hashing the parent Component identifier, Root, Key, and Name.
6113 </xs:documentation>
6114 </xs:annotation>
6115 </xs:attribute>
6116 <xs:attribute name="Root" type="RegistryRootType">
6117 <xs:annotation>
6118 <xs:documentation>
6119 The predefined root key for the registry value.
6120 </xs:documentation>
6121 </xs:annotation>
6122 </xs:attribute>
6123 <xs:attribute name="Key" type="xs:string">
6124 <xs:annotation>
6125 <xs:documentation>
6126 The localizable key for the registry value.
6127 If the parent element is a RegistryKey, this value may be omitted to use the
6128 path of the parent, or if its specified it will be appended to the path of the parent.
6129 </xs:documentation>
6130 </xs:annotation>
6131 </xs:attribute>
6132 <xs:attribute name="Name" type="xs:string">
6133 <xs:annotation>
6134 <xs:documentation>
6135 The localizable registry value name. If this attribute is not provided the default value for the registry key will
6136 be set instead. The Windows Installer allows several special values to be set for this attribute. You should not
6137 use them in WiX. Instead use appropriate values in the Action attribute to get the desired behavior.
6138 </xs:documentation>
6139 </xs:annotation>
6140 </xs:attribute>
6141 <xs:attribute name="Value" type="xs:string">
6142 <xs:annotation>
6143 <xs:documentation>
6144 Set this attribute to the localizable registry value. This value is formatted. The Windows Installer allows
6145 several special values to be set for this attribute. You should not use them in WiX. Instead use appropriate
6146 values in the Type attribute to get the desired behavior.
6147 </xs:documentation>
6148 </xs:annotation>
6149 </xs:attribute>
6150 <xs:attribute name="Type">
6151 <xs:annotation>
6152 <xs:documentation>
6153 Set this attribute to the type of the desired registry key. This attribute must be specified whenever the Value
6154 attribute or a child RegistryValue element is specified. This attribute
6155 should only be set when the value of the Action attribute does not include the word 'remove'.
6156 </xs:documentation>
6157 </xs:annotation>
6158 <xs:simpleType>
6159 <xs:restriction base="xs:NMTOKEN">
6160 <xs:enumeration value="string">
6161 <xs:annotation>
6162 <xs:documentation>
6163 The value is interpreted and stored as a string (REG_SZ).
6164 </xs:documentation>
6165 </xs:annotation>
6166 </xs:enumeration>
6167 <xs:enumeration value="integer">
6168 <xs:annotation>
6169 <xs:documentation>
6170 The value is interpreted and stored as an integer (REG_DWORD).
6171 </xs:documentation>
6172 </xs:annotation>
6173 </xs:enumeration>
6174 <xs:enumeration value="binary">
6175 <xs:annotation>
6176 <xs:documentation>
6177 The value is interpreted and stored as a hexadecimal value (REG_BINARY).
6178 </xs:documentation>
6179 </xs:annotation>
6180 </xs:enumeration>
6181 <xs:enumeration value="expandable">
6182 <xs:annotation>
6183 <xs:documentation>
6184 The value is interpreted and stored as an expandable string (REG_EXPAND_SZ).
6185 </xs:documentation>
6186 </xs:annotation>
6187 </xs:enumeration>
6188 <xs:enumeration value="multiString">
6189 <xs:annotation>
6190 <xs:documentation>
6191 The value is interpreted and stored as a multiple strings (REG_MULTI_SZ).
6192 Please note that this value will only result in a multi-string value if there is more than one registry value
6193 or the Action attribute's value is 'append' or 'prepend'. Otherwise a string value will be created.
6194 </xs:documentation>
6195 </xs:annotation>
6196 </xs:enumeration>
6197 </xs:restriction>
6198 </xs:simpleType>
6199 </xs:attribute>
6200 <xs:attribute name="Action">
6201 <xs:annotation>
6202 <xs:documentation>
6203 This is the action that will be taken for this registry value.
6204 </xs:documentation>
6205 </xs:annotation>
6206 <xs:simpleType>
6207 <xs:restriction base="xs:NMTOKEN">
6208 <xs:enumeration value="append">
6209 <xs:annotation>
6210 <xs:documentation>
6211 Appends the specified value(s) to a multiString registry value.
6212 </xs:documentation>
6213 </xs:annotation>
6214 </xs:enumeration>
6215 <xs:enumeration value="prepend">
6216 <xs:annotation>
6217 <xs:documentation>
6218 Prepends the specified value(s) to a multiString registry value.
6219 </xs:documentation>
6220 </xs:annotation>
6221 </xs:enumeration>
6222 <xs:enumeration value="write">
6223 <xs:annotation>
6224 <xs:documentation>
6225 Writes a registry value. This is the default value.
6226 </xs:documentation>
6227 </xs:annotation>
6228 </xs:enumeration>
6229 </xs:restriction>
6230 </xs:simpleType>
6231 </xs:attribute>
6232 <xs:attribute name="KeyPath" type="YesNoTypeUnion">
6233 <xs:annotation>
6234 <xs:documentation>
6235 Set this attribute to 'yes' to make this registry key the KeyPath of the parent component.
6236 Only one resource (registry, file, etc) can be the KeyPath of a component.
6237 </xs:documentation>
6238 </xs:annotation>
6239 </xs:attribute>
6240 <xs:anyAttribute namespace="##other" processContents="lax">
6241 <xs:annotation>
6242 <xs:documentation>
6243 Extensibility point in the WiX XML Schema. Schema extensions can register additional
6244 attributes at this point in the schema.
6245 </xs:documentation>
6246 </xs:annotation>
6247 </xs:anyAttribute>
6248 </xs:complexType>
6249 </xs:element>
6250 <xs:element name="RemoveRegistryKey">
6251 <xs:annotation>
6252 <xs:documentation>
6253 Used for removing registry keys and all child keys during install or uninstall.
6254 </xs:documentation>
6255 <xs:appinfo>
6256 <xse:msiRef table="Registry" href="https://learn.microsoft.com/en-us/windows/win32/msi/registry-table" />
6257 <xse:msiRef table="RemoveRegistry" href="http://msdn.microsoft.com/library/aa371208.aspx" />
6258 </xs:appinfo>
6259 </xs:annotation>
6260 <xs:complexType>
6261 <xs:attribute name="Id" type="xs:string">
6262 <xs:annotation>
6263 <xs:documentation>
6264 Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be
6265 generated by hashing the parent Component identifier, Root, Key, and Name.
6266 </xs:documentation>
6267 </xs:annotation>
6268 </xs:attribute>
6269 <xs:attribute name="Action">
6270 <xs:annotation>
6271 <xs:documentation>
6272 This is the action that will be taken for this registry value.
6273 </xs:documentation>
6274 </xs:annotation>
6275 <xs:simpleType>
6276 <xs:restriction base="xs:NMTOKEN">
6277 <xs:enumeration value="removeOnInstall">
6278 <xs:annotation>
6279 <xs:documentation>
6280 Removes a key with all its values and subkeys when the parent component is installed.
6281 </xs:documentation>
6282 </xs:annotation>
6283 </xs:enumeration>
6284 <xs:enumeration value="removeOnUninstall">
6285 <xs:annotation>
6286 <xs:documentation>
6287 Removes a key with all its values and subkeys when the parent component is uninstalled.
6288 </xs:documentation>
6289 </xs:annotation>
6290 </xs:enumeration>
6291 </xs:restriction>
6292 </xs:simpleType>
6293 </xs:attribute>
6294 <xs:attribute name="Key" type="xs:string">
6295 <xs:annotation>
6296 <xs:documentation>
6297 The localizable key for the registry value.
6298 </xs:documentation>
6299 </xs:annotation>
6300 </xs:attribute>
6301 <xs:attribute name="Root" type="RegistryRootType">
6302 <xs:annotation>
6303 <xs:documentation>
6304 The predefined root key for the registry value.
6305 </xs:documentation>
6306 </xs:annotation>
6307 </xs:attribute>
6308 <xs:anyAttribute namespace="##other" processContents="lax">
6309 <xs:annotation>
6310 <xs:documentation>
6311 Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema.
6312 </xs:documentation>
6313 </xs:annotation>
6314 </xs:anyAttribute>
6315 </xs:complexType>
6316 </xs:element>
6317 <xs:element name="RemoveRegistryValue">
6318 <xs:annotation>
6319 <xs:documentation>
6320 Used to remove a registry value during installation.
6321 There is no standard way to remove a single registry value during uninstall (but you can remove an entire key with RemoveRegistryKey).
6322 </xs:documentation>
6323 <xs:appinfo>
6324 <xse:msiRef table="RemoveRegistry" href="https://docs.microsoft.com/en-us/windows/win32/msi/removeregistry-table" />
6325 </xs:appinfo>
6326 </xs:annotation>
6327 <xs:complexType>
6328 <xs:choice minOccurs="0" maxOccurs="unbounded">
6329 <xs:any namespace="##other" processContents="lax">
6330 <xs:annotation>
6331 <xs:documentation>
6332 Extensibility point in the WiX XML Schema. Schema extensions can register additional
6333 elements at this point in the schema.
6334 </xs:documentation>
6335 </xs:annotation>
6336 </xs:any>
6337 </xs:choice>
6338 <xs:attribute name="Id" type="xs:string">
6339 <xs:annotation>
6340 <xs:documentation>
6341 Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be
6342 generated by hashing the parent Component identifier, Root, Key, and Name.
6343 </xs:documentation>
6344 </xs:annotation>
6345 </xs:attribute>
6346 <xs:attribute name="Key" type="xs:string">
6347 <xs:annotation>
6348 <xs:documentation>
6349 The localizable key for the registry value.
6350 </xs:documentation>
6351 </xs:annotation>
6352 </xs:attribute>
6353 <xs:attribute name="Name" type="xs:string">
6354 <xs:annotation>
6355 <xs:documentation>
6356 The localizable registry value name. If this attribute is not provided the default value for the registry key will
6357 be set instead. The Windows Installer allows several special values to be set for this attribute. You should not
6358 use them in WiX. Instead use appropriate values in the Action attribute to get the desired behavior.
6359 </xs:documentation>
6360 </xs:annotation>
6361 </xs:attribute>
6362 <xs:attribute name="Root" type="RegistryRootType">
6363 <xs:annotation>
6364 <xs:documentation>
6365 The predefined root key for the registry value.
6366 </xs:documentation>
6367 </xs:annotation>
6368 </xs:attribute>
6369 <xs:anyAttribute namespace="##other" processContents="lax">
6370 <xs:annotation>
6371 <xs:documentation>
6372 Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema.
6373 </xs:documentation>
6374 </xs:annotation>
6375 </xs:anyAttribute>
6376 </xs:complexType>
6377 </xs:element>
6378 <xs:element name="RemoveFile">
6379 <xs:annotation>
6380 <xs:appinfo>
6381 <xse:seeAlso ref="CopyFile" />
6382 <xse:msiRef table="RemoveFile" href="https://learn.microsoft.com/en-us/windows/win32/msi/removefile-table" />
6383 </xs:appinfo>
6384 <xs:documentation>
6385 Remove a file(s) if the parent component is selected for installation or removal. Multiple files can be removed
6386 by specifying a wildcard for the value of the Name attribute. By default, the source
6387 directory of the file is the directory of the parent component. This can be overridden by specifying the
6388 Directory attribute with a value corresponding to the Id of the source directory, or by specifying the Property
6389 attribute with a value corresponding to a property that will have a value that resolves to the full path
6390 to the source directory.
6391 </xs:documentation>
6392 </xs:annotation>
6393 <xs:complexType>
6394 <xs:choice minOccurs="0" maxOccurs="unbounded">
6395 <xs:any namespace="##other" processContents="lax">
6396 <xs:annotation>
6397 <xs:documentation>
6398 Extensibility point in the WiX XML Schema. Schema extensions can register additional
6399 elements at this point in the schema.
6400 </xs:documentation>
6401 </xs:annotation>
6402 </xs:any>
6403 </xs:choice>
6404 <xs:attribute name="Id" type="xs:string">
6405 <xs:annotation>
6406 <xs:documentation>Primary key used to identify this particular entry.</xs:documentation>
6407 </xs:annotation>
6408 </xs:attribute>
6409 <xs:attribute name="Directory" type="xs:string">
6410 <xs:annotation>
6411 <xs:documentation>
6412 Overrides the directory of the parent component with a specific Directory. This Directory must exist in the
6413 installer database at creation time. This attribute cannot be specified in conjunction with the Property attribute.
6414 </xs:documentation>
6415 </xs:annotation>
6416 </xs:attribute>
6417 <xs:attribute name="Property" type="xs:string">
6418 <xs:annotation>
6419 <xs:documentation>
6420 Overrides the directory of the parent component with the value of the specified property. The property
6421 should have a value that resolves to the full path of the source directory. The property does not have
6422 to exist in the installer database at creation time; it could be created at installation time by a custom
6423 action, on the command line, etc. This attribute cannot be specified in conjunction with the Directory attribute.
6424 </xs:documentation>
6425 </xs:annotation>
6426 </xs:attribute>
6427 <xs:attribute name="Name" type="WildCardLongFileNameType" use="required">
6428 <xs:annotation>
6429 <xs:documentation>
6430 This value should be set to the localizable name of the file(s) to be removed. All of the files that
6431 match the wild card will be removed from the specified directory. The value is a filename that may also
6432 contain the wild card characters "?" for any single character or "*" for zero or more occurrences of any character.
6433 In prior versions of the WiX toolset, this attribute specified the short file name.
6434 This attribute's value may now be either a short or long file name.
6435 If a short file name is specified, the ShortName attribute may not be specified.
6436 Also, if this value is a long file name, the ShortName attribute may be omitted to
6437 allow WiX to attempt to generate a unique short file name.
6438 However, if you wish to manually specify the short file name, then the ShortName attribute may be specified.
6439 </xs:documentation>
6440 </xs:annotation>
6441 </xs:attribute>
6442 <xs:attribute name="ShortName" type="WildCardShortFileNameType">
6443 <xs:annotation>
6444 <xs:documentation>
6445 The short file name of the file in 8.3 format.
6446 This attribute should only be set if you want to manually specify the short file name.
6447 </xs:documentation>
6448 </xs:annotation>
6449 </xs:attribute>
6450 <xs:attribute name="On" type="InstallUninstallType" use="required">
6451 <xs:annotation>
6452 <xs:documentation>
6453 This value determines the time at which the file(s) may be removed. For 'install', the file will
6454 be removed only when the parent component is being installed (msiInstallStateLocal or
6455 msiInstallStateSource); for 'uninstall', the file will be removed only when the parent component
6456 is being removed (msiInstallStateAbsent); for 'both', the file will be removed in both cases.
6457 </xs:documentation>
6458 </xs:annotation>
6459 </xs:attribute>
6460 <xs:attribute name="Subdirectory" type="xs:string">
6461 <xs:annotation>
6462 <xs:documentation>
6463 This attribute defines one or more directories below the directory referenced by the Directory attribute or parent
6464 Directory reference for the file to be removed.
6465 </xs:documentation>
6466 </xs:annotation>
6467 </xs:attribute>
6468 <xs:anyAttribute namespace="##other" processContents="lax">
6469 <xs:annotation>
6470 <xs:documentation>
6471 Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema.
6472 </xs:documentation>
6473 </xs:annotation>
6474 </xs:anyAttribute>
6475 </xs:complexType>
6476 </xs:element>
6477 <xs:element name="RemoveFolder">
6478 <xs:annotation>
6479 <xs:appinfo>
6480 <xse:seeAlso ref="CreateFolder" />
6481 <xse:msiRef table="RemoveFile" href="https://learn.microsoft.com/en-us/windows/win32/msi/removefile-table" />
6482 </xs:appinfo>
6483 <xs:documentation>
6484 Remove an empty folder if the parent component is selected for installation or removal. By default, the folder
6485 is the directory of the parent component. This can be overridden by specifying the Directory attribute
6486 with a value corresponding to the Id of the directory, or by specifying the Property attribute with a value
6487 corresponding to a property that will have a value that resolves to the full path of the folder.
6488 </xs:documentation>
6489 </xs:annotation>
6490 <xs:complexType>
6491 <xs:choice minOccurs="0" maxOccurs="unbounded">
6492 <xs:any namespace="##other" processContents="lax">
6493 <xs:annotation>
6494 <xs:documentation>
6495 Extensibility point in the WiX XML Schema. Schema extensions can register additional
6496 elements at this point in the schema.
6497 </xs:documentation>
6498 </xs:annotation>
6499 </xs:any>
6500 </xs:choice>
6501 <xs:attribute name="Id" type="xs:string">
6502 <xs:annotation>
6503 <xs:documentation>Primary key used to identify this particular entry.</xs:documentation>
6504 </xs:annotation>
6505 </xs:attribute>
6506 <xs:attribute name="Directory" type="xs:string">
6507 <xs:annotation>
6508 <xs:documentation>
6509 Overrides the directory of the parent component with a specific Directory. This Directory must exist in the
6510 installer database at creation time. This attribute cannot be specified in conjunction with the Property attribute.
6511 </xs:documentation>
6512 </xs:annotation>
6513 </xs:attribute>
6514 <xs:attribute name="Property" type="xs:string">
6515 <xs:annotation>
6516 <xs:documentation>
6517 Overrides the directory of the parent component with the value of the specified property. The property
6518 should have a value that resolves to the full path of the source directory. The property does not have
6519 to exist in the installer database at creation time; it could be created at installation time by a custom
6520 action, on the command line, etc. This attribute cannot be specified in conjunction with the Directory attribute.
6521 </xs:documentation>
6522 </xs:annotation>
6523 </xs:attribute>
6524 <xs:attribute name="On" type="InstallUninstallType" use="required">
6525 <xs:annotation>
6526 <xs:documentation>
6527 This value determines the time at which the folder may be removed, based on the install/uninstall of the parent component.
6528 For 'install', the folder will be removed only when the parent component is being installed (msiInstallStateLocal or
6529 msiInstallStateSource); for 'uninstall', the folder will be removed only when the parent component
6530 is being removed (msiInstallStateAbsent); for 'both', the folder will be removed in both cases.
6531 </xs:documentation>
6532 </xs:annotation>
6533 </xs:attribute>
6534 <xs:attribute name="Subdirectory" type="xs:string">
6535 <xs:annotation>
6536 <xs:documentation>
6537 This attribute defines one or more directories below the directory referenced by the Directory attribute or parent
6538 Directory reference for the folder to be removed.
6539 </xs:documentation>
6540 </xs:annotation>
6541 </xs:attribute>
6542 <xs:anyAttribute namespace="##other" processContents="lax">
6543 <xs:annotation>
6544 <xs:documentation>
6545 Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema.
6546 </xs:documentation>
6547 </xs:annotation>
6548 </xs:anyAttribute>
6549 </xs:complexType>
6550 </xs:element>
6551 <xs:element name="CreateFolder">
6552 <xs:annotation>
6553 <xs:appinfo>
6554 <xse:seeAlso ref="RemoveFolder" />
6555 <xse:msiRef table="CreateFolder" href="https://learn.microsoft.com/en-us/windows/win32/msi/createfolder-table" />
6556 </xs:appinfo>
6557 <xs:documentation>Create folder as part of parent Component.</xs:documentation>
6558 </xs:annotation>
6559 <xs:complexType>
6560 <xs:choice minOccurs="0" maxOccurs="unbounded">
6561 <xs:element ref="Shortcut" minOccurs="0" maxOccurs="unbounded">
6562 <xs:annotation>
6563 <xs:documentation>Non-advertised shortcut to this folder, Shortcut Target is preset to the folder</xs:documentation>
6564 </xs:annotation>
6565 </xs:element>
6566 <xs:element ref="Permission" minOccurs="0" maxOccurs="unbounded">
6567 <xs:annotation>
6568 <xs:documentation>ACL permission</xs:documentation>
6569 </xs:annotation>
6570 </xs:element>
6571 <xs:element ref="PermissionEx">
6572 <xs:annotation>
6573 <xs:documentation>Can also configure the ACLs for this folder.</xs:documentation>
6574 </xs:annotation>
6575 </xs:element>
6576 <xs:any namespace="##other" processContents="lax">
6577 <xs:annotation>
6578 <xs:documentation>
6579 Extensibility point in the WiX XML Schema. Schema extensions can register additional
6580 elements at this point in the schema.
6581 </xs:documentation>
6582 </xs:annotation>
6583 </xs:any>
6584 </xs:choice>
6585 <xs:attribute name="Directory" type="xs:string">
6586 <xs:annotation>
6587 <xs:documentation>Identifier of Directory to create. Defaults to Directory of parent Component.</xs:documentation>
6588 </xs:annotation>
6589 </xs:attribute>
6590 <xs:attribute name="Subdirectory" type="xs:string">
6591 <xs:annotation>
6592 <xs:documentation>
6593 This attribute defines one or more directories below the directory referenced by the Directory attribute or parent
6594 Directory reference for the directory to be created.
6595 </xs:documentation>
6596 </xs:annotation>
6597 </xs:attribute>
6598 <xs:anyAttribute namespace="##other" processContents="lax">
6599 <xs:annotation>
6600 <xs:documentation>
6601 Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema.
6602 </xs:documentation>
6603 </xs:annotation>
6604 </xs:anyAttribute>
6605 </xs:complexType>
6606 </xs:element>
6607 <xs:element name="Category">
6608 <xs:annotation>
6609 <xs:documentation>
6610 Qualified published component for parent Component
6611 </xs:documentation>
6612 <xs:appinfo>
6613 <xse:msiRef table="PublishComponent" href="https://learn.microsoft.com/en-us/windows/win32/msi/publishcomponent-table" />
6614 </xs:appinfo>
6615 </xs:annotation>
6616 <xs:complexType>
6617 <xs:choice minOccurs="0" maxOccurs="unbounded">
6618 <xs:any namespace="##other" processContents="lax">
6619 <xs:annotation>
6620 <xs:documentation>
6621 Extensibility point in the WiX XML Schema. Schema extensions can register additional
6622 elements at this point in the schema.
6623 </xs:documentation>
6624 </xs:annotation>
6625 </xs:any>
6626 </xs:choice>
6627 <xs:attribute name="Id" use="required" type="Guid">
6628 <xs:annotation>
6629 <xs:documentation>A string GUID that represents the category of components being grouped together.</xs:documentation>
6630 </xs:annotation>
6631 </xs:attribute>
6632 <xs:attribute name="Qualifier" use="required" type="xs:string">
6633 <xs:annotation>
6634 <xs:documentation>A text string that qualifies the value in the Id attribute. A qualifier is used to distinguish multiple forms of the same Component, such as a Component that is implemented in multiple languages.</xs:documentation>
6635 </xs:annotation>
6636 </xs:attribute>
6637 <xs:attribute name="AppData" type="xs:string">
6638 <xs:annotation>
6639 <xs:documentation>An optional localizable text describing the category. The string is commonly parsed by the application and can be displayed to the user. It should describe the category.</xs:documentation>
6640 </xs:annotation>
6641 </xs:attribute>
6642 <xs:attribute name="Feature" type="xs:string">
6643 <xs:annotation>
6644 <xs:documentation>Feature that controls the advertisement of the category. Defaults to the primary Feature for the parent Component .</xs:documentation>
6645 </xs:annotation>
6646 </xs:attribute>
6647 <xs:anyAttribute namespace="##other" processContents="lax">
6648 <xs:annotation>
6649 <xs:documentation>
6650 Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema.
6651 </xs:documentation>
6652 </xs:annotation>
6653 </xs:anyAttribute>
6654 </xs:complexType>
6655 </xs:element>
6656 <xs:element name="MIME">
6657 <xs:annotation>
6658 <xs:documentation>
6659 MIME content-type for an Extension
6660 </xs:documentation>
6661 <xs:appinfo>
6662 <xse:msiRef table="MIME" href="http://msdn.microsoft.com/library/aa370035.aspx" />
6663 </xs:appinfo>
6664 </xs:annotation>
6665 <xs:complexType>
6666 <xs:attribute name="Advertise" type="YesNoTypeUnion">
6667 <xs:annotation>
6668 <xs:documentation>Whether this MIME is to be advertised. The default is to match whatever the parent extension element uses. If the parent element is not advertised, then this element cannot be advertised either.</xs:documentation>
6669 </xs:annotation>
6670 </xs:attribute>
6671 <xs:attribute name="ContentType" type="xs:string" use="required">
6672 <xs:annotation>
6673 <xs:documentation>This is the identifier for the MIME content. It is commonly written in the form of type/format.</xs:documentation>
6674 </xs:annotation>
6675 </xs:attribute>
6676 <xs:attribute name="Class" type="Guid">
6677 <xs:annotation>
6678 <xs:documentation>Class ID for the COM server that is to be associated with the MIME content.</xs:documentation>
6679 </xs:annotation>
6680 </xs:attribute>
6681 <xs:attribute name="Default" type="YesNoTypeUnion">
6682 <xs:annotation>
6683 <xs:documentation>If 'yes', become the content type for the parent Extension. The default value is 'no'.</xs:documentation>
6684 </xs:annotation>
6685 </xs:attribute>
6686 </xs:complexType>
6687 </xs:element>
6688 <xs:element name="Verb">
6689 <xs:annotation>
6690 <xs:documentation>
6691 Verb definition for an Extension. When advertised, this element creates a row in the
6692 <html:a href="https://learn.microsoft.com/en-us/windows/win32/msi/verb-table">Verb table</html:a>.
6693 When not advertised, this element creates the appropriate rows in <html:a href="https://learn.microsoft.com/en-us/windows/win32/msi/registry-table">Registry table</html:a>.
6694 </xs:documentation>
6695 <xs:appinfo>
6696 <xse:msiRef table="Verb" href="https://learn.microsoft.com/en-us/windows/win32/msi/verb-table" />
6697 <xse:msiRef table="Registry" href="https://learn.microsoft.com/en-us/windows/win32/msi/registry-table" />
6698 </xs:appinfo>
6699 </xs:annotation>
6700 <xs:complexType>
6701 <xs:attribute name="Id" type="xs:string" use="required">
6702 <xs:annotation>
6703 <xs:documentation>The verb for the command.</xs:documentation>
6704 </xs:annotation>
6705 </xs:attribute>
6706 <xs:attribute name="Command" type="xs:string">
6707 <xs:annotation>
6708 <xs:documentation>The localized text displayed on the context menu.</xs:documentation>
6709 </xs:annotation>
6710 </xs:attribute>
6711 <xs:attribute name="Argument" type="xs:string">
6712 <xs:annotation>
6713 <xs:documentation>Value for the command arguments. Note that the resolution of properties in the
6714 Argument field is limited. A property formatted as [Property] in this field can only be resolved if the property
6715 already has the intended value when the component owning the verb is installed. For example, for the argument
6716 "[#MyDoc.doc]" to resolve to the correct value, the same process must be installing the file MyDoc.doc and the
6717 component that owns the verb.</xs:documentation>
6718 </xs:annotation>
6719 </xs:attribute>
6720 <xs:attribute name="Sequence" type="Integer">
6721 <xs:annotation>
6722 <xs:documentation>The sequence of the commands. Only verbs for which the Sequence is specified
6723 are used to prepare an ordered list for the default value of the shell key. The Verb with the lowest value in this
6724 column becomes the default verb. Used only for Advertised verbs.</xs:documentation>
6725 </xs:annotation>
6726 </xs:attribute>
6727 <xs:attribute name="TargetFile" type="xs:string">
6728 <xs:annotation>
6729 <xs:documentation>
6730 Either this attribute or the TargetProperty attribute must be specified for a non-advertised verb.
6731 The value should be the identifier of the target file to be executed for the verb.
6732 </xs:documentation>
6733 </xs:annotation>
6734 </xs:attribute>
6735 <xs:attribute name="TargetProperty" type="xs:string">
6736 <xs:annotation>
6737 <xs:documentation>
6738 Either this attribute or the TargetFile attribute must be specified for a non-advertised verb.
6739 The value should be the identifier of the property which will resolve to the path to the target file to be executed for the verb.
6740 </xs:documentation>
6741 </xs:annotation>
6742 </xs:attribute>
6743 </xs:complexType>
6744 </xs:element>
6745 <xs:element name="Extension">
6746 <xs:annotation>
6747 <xs:documentation>
6748 Extension for a Component
6749 </xs:documentation>
6750 <xs:appinfo>
6751 <xse:msiRef table="MIME" href="http://msdn.microsoft.com/library/aa370035.aspx" />
6752 <xse:msiRef table="Verb" href="https://learn.microsoft.com/en-us/windows/win32/msi/verb-table" />
6753 <xse:msiRef table="Registry" href="https://learn.microsoft.com/en-us/windows/win32/msi/registry-table" />
6754 </xs:appinfo>
6755 </xs:annotation>
6756 <xs:complexType>
6757 <xs:choice minOccurs="0" maxOccurs="unbounded">
6758 <xs:annotation>
6759 <xs:documentation>MIME and Verbs can be associated with Extensions</xs:documentation>
6760 </xs:annotation>
6761 <xs:element ref="MIME" />
6762 <xs:element ref="Verb" />
6763 </xs:choice>
6764 <xs:attribute name="Id" type="xs:string" use="required">
6765 <xs:annotation>
6766 <xs:documentation>This is simply the file extension, like "doc" or "xml". Do not include the preceding period.</xs:documentation>
6767 </xs:annotation>
6768 </xs:attribute>
6769 <xs:attribute name="ContentType" type="xs:string">
6770 <xs:annotation>
6771 <xs:documentation>The MIME type that is to be written.</xs:documentation>
6772 </xs:annotation>
6773 </xs:attribute>
6774 <xs:attribute name="Advertise" type="YesNoTypeUnion">
6775 <xs:annotation>
6776 <xs:documentation>Whether this extension is to be advertised. The default is "no".</xs:documentation>
6777 </xs:annotation>
6778 </xs:attribute>
6779 <xs:anyAttribute namespace="##other" processContents="lax">
6780 <xs:annotation>
6781 <xs:documentation>
6782 Extensibility point in the WiX XML Schema. Schema extensions can register additional
6783 attributes at this point in the schema.
6784 </xs:documentation>
6785 </xs:annotation>
6786 </xs:anyAttribute>
6787 </xs:complexType>
6788 </xs:element>
6789 <xs:element name="TypeLib">
6790 <xs:annotation>
6791 <xs:documentation>
6792 Register a type library (TypeLib). Please note that in order to properly use this
6793 non-advertised, you will need use this element with Advertise='no' and also author the
6794 appropriate child Interface elements by extracting them from the type library itself.
6795 </xs:documentation>
6796 <xs:appinfo>
6797 <xse:msiRef table="TypeLib" href="http://msdn.microsoft.com/library/aa372092.aspx" />
6798 <xse:msiRef table="Registry" href="https://learn.microsoft.com/en-us/windows/win32/msi/registry-table" />
6799 </xs:appinfo>
6800 </xs:annotation>
6801 <xs:complexType>
6802 <xs:choice minOccurs="0" maxOccurs="unbounded">
6803 <xs:element ref="AppId" />
6804 <xs:element ref="Class" />
6805 <xs:element ref="Interface" />
6806 </xs:choice>
6807 <xs:attribute name="Id" type="Guid" use="required">
6808 <xs:annotation>
6809 <xs:documentation>The GUID that identifes the type library.</xs:documentation>
6810 </xs:annotation>
6811 </xs:attribute>
6812 <xs:attribute name="Advertise" type="YesNoTypeUnion">
6813 <xs:annotation>
6814 <xs:documentation>
6815 Value of 'yes' will create a row in the TypeLib table.
6816 Value of 'no' will create rows in the Registry table.
6817 The default value is 'no'.
6818 </xs:documentation>
6819 </xs:annotation>
6820 </xs:attribute>
6821 <xs:attribute name="Control" type="YesNoTypeUnion">
6822 <xs:annotation>
6823 <xs:documentation>
6824 Value of 'yes' means the type library describes controls, and should not be displayed in type browsers intended for nonvisual objects.
6825 This attribute can only be set if Advertise='no'.
6826 </xs:documentation>
6827 </xs:annotation>
6828 </xs:attribute>
6829 <xs:attribute name="Cost" type="xs:int">
6830 <xs:annotation>
6831 <xs:documentation>
6832 The cost associated with the registration of the type library in bytes. This attribute cannot be set if Advertise='no'.
6833 </xs:documentation>
6834 </xs:annotation>
6835 </xs:attribute>
6836 <xs:attribute name="Description" type="xs:string">
6837 <xs:annotation>
6838 <xs:documentation>The localizable description of the type library.</xs:documentation>
6839 </xs:annotation>
6840 </xs:attribute>
6841 <xs:attribute name="HasDiskImage" type="YesNoTypeUnion">
6842 <xs:annotation>
6843 <xs:documentation>
6844 Value of 'yes' means the type library exists in a persisted form on disk. This attribute can only be set if Advertise='no'.
6845 </xs:documentation>
6846 </xs:annotation>
6847 </xs:attribute>
6848 <xs:attribute name="HelpDirectory" type="xs:string">
6849 <xs:annotation>
6850 <xs:documentation>The identifier of the Directory element for the help directory.</xs:documentation>
6851 </xs:annotation>
6852 </xs:attribute>
6853 <xs:attribute name="HelpSubirectory" type="xs:string">
6854 <xs:annotation>
6855 <xs:documentation>
6856 This attribute defines one or more directories below the directory referenced by the HelpDirectory attribute
6857 for the typelib's help directory.
6858 </xs:documentation>
6859 </xs:annotation>
6860 </xs:attribute>
6861 <xs:attribute name="Hidden" type="YesNoTypeUnion">
6862 <xs:annotation>
6863 <xs:documentation>
6864 Value of 'yes' means the type library should not be displayed to users, although its use is not restricted.
6865 Should be used by controls. Hosts should create a new type library that wraps the control with extended properties.
6866 This attribute can only be set if Advertise='no'.
6867 </xs:documentation>
6868 </xs:annotation>
6869 </xs:attribute>
6870 <xs:attribute name="Language" use="required" type="Integer">
6871 <xs:annotation>
6872 <xs:documentation>The language of the type library. This must be a non-negative integer.</xs:documentation>
6873 </xs:annotation>
6874 </xs:attribute>
6875 <xs:attribute name="MajorVersion" type="Integer">
6876 <xs:annotation>
6877 <xs:documentation>The major version of the type library. The value should be an integer from 0 - 255.</xs:documentation>
6878 </xs:annotation>
6879 </xs:attribute>
6880 <xs:attribute name="MinorVersion" type="Integer">
6881 <xs:annotation>
6882 <xs:documentation>The minor version of the type library. The value should be an integer from 0 - 255.</xs:documentation>
6883 </xs:annotation>
6884 </xs:attribute>
6885 <xs:attribute name="ResourceId" type="Integer">
6886 <xs:annotation>
6887 <xs:documentation>The resource id of a typelib. The value is appended to the end of the typelib path in the registry.</xs:documentation>
6888 </xs:annotation>
6889 </xs:attribute>
6890 <xs:attribute name="Restricted" type="YesNoTypeUnion">
6891 <xs:annotation>
6892 <xs:documentation>
6893 Value of 'yes' means the type library is restricted, and should not be displayed to users. This attribute can only be set if Advertise='no'.
6894 </xs:documentation>
6895 </xs:annotation>
6896 </xs:attribute>
6897 </xs:complexType>
6898 </xs:element>
6899 <xs:element name="ProgId">
6900 <xs:annotation>
6901 <xs:documentation>
6902 ProgId registration for parent Component. If ProgId has an associated Class, it must be a child of that element.
6903 </xs:documentation>
6904 <xs:appinfo>
6905 <xse:msiRef table="ProgId" href="http://msdn.microsoft.com/library/aa370879.aspx" />
6906 <xse:msiRef table="Class" href="http://msdn.microsoft.com/library/aa367861.aspx" />
6907 <xse:msiRef table="Registry" href="https://learn.microsoft.com/en-us/windows/win32/msi/registry-table" />
6908 <xse:msiRef table="Icon" href="http://msdn.microsoft.com/library/aa369210.aspx" />
6909 </xs:appinfo>
6910 </xs:annotation>
6911 <xs:complexType>
6912 <xs:sequence>
6913 <xs:element ref="ProgId" minOccurs="0" maxOccurs="unbounded">
6914 <xs:annotation>
6915 <xs:documentation>The version-independent ProgId must be the first child element of actual ProgId. Nesting other ProgId elements within the Version-independent ProgId will create COM+ aliases, see <html:a href="http://support.microsoft.com/kb/305745">http://support.microsoft.com/kb/305745</html:a> for more information.</xs:documentation>
6916 </xs:annotation>
6917 </xs:element>
6918 <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded">
6919 <xs:annotation>
6920 <xs:documentation>Extensions that refer to this ProgId</xs:documentation>
6921 </xs:annotation>
6922 </xs:element>
6923 </xs:sequence>
6924 <xs:attribute name="Id" type="xs:string" use="required" />
6925 <xs:attribute name="Description" type="xs:string" />
6926 <xs:attribute name="Icon" type="xs:string">
6927 <xs:annotation>
6928 <xs:documentation>For an advertised ProgId, the Id of an Icon element. For a non-advertised ProgId, this is the Id of a file containing an icon resource.</xs:documentation>
6929 </xs:annotation>
6930 </xs:attribute>
6931 <xs:attribute name="IconIndex" type="Integer" />
6932 <xs:attribute name="Advertise" type="YesNoTypeUnion" />
6933 <xs:attribute name="NoOpen" type="xs:string">
6934 <xs:annotation>
6935 <xs:documentation>Specifies that the associated ProgId should not be opened by users. The value is presented as a warning to users. An empty string is also valid for this attribute.</xs:documentation>
6936 </xs:annotation>
6937 </xs:attribute>
6938 </xs:complexType>
6939 </xs:element>
6940 <xs:element name="AppId">
6941 <xs:annotation>
6942 <xs:documentation>
6943 Application ID containing DCOM information for the associated application GUID.
6944 If this element is nested under a Fragment, Module, or Package element, it must be
6945 advertised.
6946 </xs:documentation>
6947 <xs:appinfo>
6948 <xse:msiRef table="AppId" href="http://msdn.microsoft.com/library/aa367566.aspx" />
6949 <xse:msiRef table="Registry" href="https://learn.microsoft.com/en-us/windows/win32/msi/registry-table" />
6950 <xse:remarks>
6951 When being used in unadvertised mode, the attributes in the AppId element correspond to registry values
6952 under the `[HKCR\AppID\{Id}]` key, as follows:
6953
6954 - `Id`: [HKCR\AppID\`Id`]
6955 - `ActivateAtStorage`: [HKCR\AppID\`Id`]/ActivateAtStorage="Y"
6956 - `Description`: [HKCR\AppID\`Id`]/@="My AppId Description"
6957 - `DllSurrogate`: [HKCR\AppID\`Id`]/DllSurrogate="C:\surrogate.exe"
6958 - `LocalService`: [HKCR\AppID\`Id`]/LocalService="MyServiceName"
6959 - `RemoteServerName`: [HKCR\AppID\`Id`]/RemoteServerName="MyRemoteServer"
6960 - `RunAsInteractiveUser`: [HKCR\AppID\`Id`]/RunAs="Interactive User"
6961 - `ServiceParameters`: [HKCR\AppID\`Id`]/ServiceParameters="-param"
6962 </xse:remarks>
6963 </xs:appinfo>
6964 </xs:annotation>
6965 <xs:complexType>
6966 <xs:choice minOccurs="0" maxOccurs="unbounded">
6967 <xs:element ref="Class" />
6968 </xs:choice>
6969 <xs:attribute name="ActivateAtStorage" type="YesNoTypeUnion">
6970 <xs:annotation>
6971 <xs:documentation>
6972 Set this value to 'yes' to configure the client to activate on the same system as persistent storage.
6973 </xs:documentation>
6974 </xs:annotation>
6975 </xs:attribute>
6976 <xs:attribute name="Advertise" type="YesNoTypeUnion">
6977 <xs:annotation>
6978 <xs:documentation>
6979 Set this value to 'yes' in order to create a normal AppId table row. Set this value to 'no' in order to
6980 generate Registry rows that perform similar registration (without the often problematic Windows Installer
6981 advertising behavior).
6982 </xs:documentation>
6983 </xs:annotation>
6984 </xs:attribute>
6985 <xs:attribute name="Description" type="xs:string">
6986 <xs:annotation>
6987 <xs:documentation>
6988 Set this value to the description of the AppId. It can only be specified when the AppId is not being advertised.
6989 </xs:documentation>
6990 </xs:annotation>
6991 </xs:attribute>
6992 <xs:attribute name="DllSurrogate" type="xs:string">
6993 <xs:annotation>
6994 <xs:documentation>
6995 Set this value to specify that the class is a DLL that is to be activated in a surrogate EXE
6996 process, and the surrogate process to be used is the path of a surrogate EXE file specified by the value.
6997 </xs:documentation>
6998 </xs:annotation>
6999 </xs:attribute>
7000 <xs:attribute name="Id" type="Guid" use="required">
7001 <xs:annotation>
7002 <xs:documentation>
7003 Set this value to the AppID GUID that corresponds to the named executable.
7004 </xs:documentation>
7005 </xs:annotation>
7006 </xs:attribute>
7007 <xs:attribute name="LocalService" type="xs:string">
7008 <xs:annotation>
7009 <xs:documentation>
7010 Set this value to the name of a service to allow the object to be installed as a Win32 service.
7011 </xs:documentation>
7012 </xs:annotation>
7013 </xs:attribute>
7014 <xs:attribute name="RemoteServerName" type="xs:string">
7015 <xs:annotation>
7016 <xs:documentation>
7017 Set this value to the name of the remote server to configure the client to request the object
7018 be run at a particular machine whenever an activation function is called for which a COSERVERINFO
7019 structure is not specified.
7020 </xs:documentation>
7021 </xs:annotation>
7022 </xs:attribute>
7023 <xs:attribute name="RunAsInteractiveUser" type="YesNoTypeUnion">
7024 <xs:annotation>
7025 <xs:documentation>
7026 Set this value to 'yes' to configure a class to run under the identity of the user currently
7027 logged on and connected to the interactive desktop when activated by a remote client without
7028 being written as a Win32 service.
7029 </xs:documentation>
7030 </xs:annotation>
7031 </xs:attribute>
7032 <xs:attribute name="ServiceParameters" type="xs:string">
7033 <xs:annotation>
7034 <xs:documentation>
7035 Set this value to the parameters to be passed to a LocalService on invocation.
7036 </xs:documentation>
7037 </xs:annotation>
7038 </xs:attribute>
7039 </xs:complexType>
7040 </xs:element>
7041 <xs:element name="Class">
7042 <xs:annotation>
7043 <xs:documentation>COM Class registration for parent Component.</xs:documentation>
7044 <xs:appinfo>
7045 <xse:seeAlso ref="AppId" />
7046 <xse:msiRef table="Class" href="http://msdn.microsoft.com/library/aa367861.aspx" />
7047 <xse:msiRef table="ProgId" href="http://msdn.microsoft.com/library/aa370879.aspx" />
7048 <xse:msiRef table="Registry" href="https://learn.microsoft.com/en-us/windows/win32/msi/registry-table" />
7049 <xse:msiRef table="AppId" href="http://msdn.microsoft.com/library/aa367566.aspx" />
7050 <xse:remarks>
7051 When being used in unadvertised mode, the attributes in the Class element correspond to registry
7052 values under the `[HKCR\CLSID\{Id}]` and `[HKCR\CLSID\{Id}\Context]` keys as follows:
7053
7054 - `Id, Context`: [HKCR\CLSID\{Id}\Context]
7055 - `Server`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32]\@="[!comserv.dll]"
7056 - `ForeignServer`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32]\@="mscoree.dll"
7057 - `AppId`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}]\AppId="{00000000-89AB-0000-0123-000000000000}"
7058 - `Argument`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32]\@="[!comserv.dll] /arg1 /arg2 /arg3"
7059 - `Control`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Control]
7060 - `Description`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}]\@="Description of Example COM Component"
7061 - `Handler`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\InprocHandler32]\@="handler.dll"
7062 - `Insertable`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Insertable]
7063 - `Insertable`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\NotInsertable]
7064 - `Programmable`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Programmable]
7065 - `SafeForInitializing`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}]
7066 - `ThreadingModel`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32]\ThreadingModel="Apartment"
7067 - `TypeLibId`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\TypeLib]\@="{11111111-89AB-1111-0123-111111111111}"
7068 - `Version`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Version]\@="1.0.0.0"
7069 </xse:remarks>
7070 </xs:appinfo>
7071 </xs:annotation>
7072 <xs:complexType>
7073 <xs:choice minOccurs="0" maxOccurs="unbounded">
7074 <xs:element ref="ProgId">
7075 <xs:annotation>
7076 <xs:documentation>A ProgId associated with Class must be a child element of the Class element</xs:documentation>
7077 </xs:annotation>
7078 </xs:element>
7079 <xs:element ref="FileTypeMask" />
7080 <xs:element ref="Interface">
7081 <xs:annotation>
7082 <xs:documentation>These Interfaces will be registered with the parent Class and TypeLib (if present).</xs:documentation>
7083 </xs:annotation>
7084 </xs:element>
7085 </xs:choice>
7086 <xs:attribute name="Id" type="Guid" use="required">
7087 <xs:annotation>
7088 <xs:documentation>The Class identifier (CLSID) of a COM server.</xs:documentation>
7089 </xs:annotation>
7090 </xs:attribute>
7091 <xs:attribute name="Context">
7092 <xs:annotation>
7093 <xs:documentation>
7094 The server context(s) for this COM server. This attribute is optional for VB6 libraries that are marked "PublicNotCreateable".
7095 Class elements marked Advertised must specify at least one server context. It is most common for there to be a single value
7096 for the Context attribute.
7097 </xs:documentation>
7098 </xs:annotation>
7099 <xs:simpleType>
7100 <xs:list>
7101 <xs:simpleType>
7102 <xs:restriction base="xs:NMTOKEN">
7103 <xs:enumeration value="LocalServer">
7104 <xs:annotation>
7105 <xs:documentation>
7106 A 16-bit local server application.
7107 </xs:documentation>
7108 </xs:annotation>
7109 </xs:enumeration>
7110 <xs:enumeration value="LocalServer32">
7111 <xs:annotation>
7112 <xs:documentation>
7113 A 32-bit local server application.
7114 </xs:documentation>
7115 </xs:annotation>
7116 </xs:enumeration>
7117 <xs:enumeration value="InprocServer">
7118 <xs:annotation>
7119 <xs:documentation>
7120 A 16-bit in-process server DLL.
7121 </xs:documentation>
7122 </xs:annotation>
7123 </xs:enumeration>
7124 <xs:enumeration value="InprocServer32">
7125 <xs:annotation>
7126 <xs:documentation>
7127 A 32-bit in-process server DLL.
7128 </xs:documentation>
7129 </xs:annotation>
7130 </xs:enumeration>
7131 </xs:restriction>
7132 </xs:simpleType>
7133 </xs:list>
7134 </xs:simpleType>
7135 </xs:attribute>
7136 <xs:attribute name="Description" type="xs:string">
7137 <xs:annotation>
7138 <xs:documentation>Localized description associated with the Class ID and Program ID.</xs:documentation>
7139 </xs:annotation>
7140 </xs:attribute>
7141 <xs:attribute name="AppId" type="Guid">
7142 <xs:annotation>
7143 <xs:documentation>
7144 This attribute is only allowed when a Class is advertised. Using this attribute will reference an Application ID
7145 containing DCOM information for the associated application GUID. The value must correspond to an AppId/@Id of an
7146 AppId element nested under a Fragment, Module, or Package element. To associate an AppId with a non-advertised
7147 class, nest the class within a parent AppId element.
7148 </xs:documentation>
7149 </xs:annotation>
7150 </xs:attribute>
7151 <xs:attribute name="Icon" type="xs:string">
7152 <xs:annotation>
7153 <xs:documentation>
7154 The file providing the icon associated with this CLSID. Reference to an Icon element
7155 (should match the Id attribute of an Icon element). This is currently not supported if the
7156 value of the Advertise attribute is "no".
7157 </xs:documentation>
7158 </xs:annotation>
7159 </xs:attribute>
7160 <xs:attribute name="IconIndex" type="Integer">
7161 <xs:annotation>
7162 <xs:documentation>Icon index into the icon file.</xs:documentation>
7163 </xs:annotation>
7164 </xs:attribute>
7165 <xs:attribute name="Handler" type="xs:string">
7166 <xs:annotation>
7167 <xs:documentation>
7168 The default inproc handler. May be optionally provided only for Context = LocalServer or
7169 LocalServer32. Value of "1" creates a 16-bit InprocHandler (appearing as the InprocHandler
7170 value). Value of "2" creates a 32-bit InprocHandler (appearing as the InprocHandler32 value).
7171 Value of "3" creates 16-bit as well as 32-bit InprocHandlers. A non-numeric value is treated
7172 as a system file that serves as the 32-bit InprocHandler (appearing as the InprocHandler32 value).
7173 </xs:documentation>
7174 </xs:annotation>
7175 </xs:attribute>
7176 <xs:attribute name="Argument" type="xs:string">
7177 <xs:annotation>
7178 <xs:documentation>
7179 This column is optional only when the Context column is set to "LocalServer"
7180 or "LocalServer32" server context. The text is registered as the argument against
7181 the OLE server and is used by OLE for invoking the server. Note that the resolution
7182 of properties in the Argument field is limited. A property formatted as [Property] in
7183 this field can only be resolved if the property already has the intended value when
7184 the component owning the class is installed. For example, for the argument "[#MyDoc.doc]"
7185 to resolve to the correct value, the same process must be installing the file MyDoc.doc and the
7186 component that owns the class.
7187 </xs:documentation>
7188 </xs:annotation>
7189 </xs:attribute>
7190 <xs:attribute name="RelativePath" type="YesNoTypeUnion">
7191 <xs:annotation>
7192 <xs:documentation>
7193 When the value is "yes", the bare file name can be used for COM servers. The installer
7194 registers the file name only instead of the complete path. This enables the server in
7195 the current directory to take precedence and allows multiple copies of the same component.
7196 </xs:documentation>
7197 </xs:annotation>
7198 </xs:attribute>
7199 <xs:attribute name="Advertise" type="YesNoTypeUnion">
7200 <xs:annotation>
7201 <xs:documentation>
7202 Set this value to "yes" in order to create a normal Class table row. Set this value to
7203 "no" in order to generate Registry rows that perform similar registration (without the
7204 often problematic Windows Installer advertising behavior).
7205 </xs:documentation>
7206 </xs:annotation>
7207 </xs:attribute>
7208 <!-- Following attributes are not advertised, but add the appropriate rows to the Registry table -->
7209 <xs:attribute name="ThreadingModel">
7210 <xs:annotation>
7211 <xs:documentation>
7212 Threading model for the CLSID.
7213 </xs:documentation>
7214 </xs:annotation>
7215 <xs:simpleType>
7216 <xs:restriction base="xs:NMTOKEN">
7217 <xs:enumeration value="apartment" />
7218 <xs:enumeration value="free" />
7219 <xs:enumeration value="both" />
7220 <xs:enumeration value="neutral" />
7221 <xs:enumeration value="single" />
7222 <xs:enumeration value="rental" />
7223 </xs:restriction>
7224 </xs:simpleType>
7225 </xs:attribute>
7226 <xs:attribute name="Version" type="xs:string">
7227 <xs:annotation>
7228 <xs:documentation>
7229 Version for the CLSID.
7230 </xs:documentation>
7231 </xs:annotation>
7232 </xs:attribute>
7233 <xs:attribute name="Insertable" type="YesNoTypeUnion">
7234 <xs:annotation>
7235 <xs:documentation>
7236 Specifies the CLSID may be insertable.
7237 </xs:documentation>
7238 </xs:annotation>
7239 </xs:attribute>
7240 <xs:attribute name="Programmable" type="YesNoTypeUnion">
7241 <xs:annotation>
7242 <xs:documentation>
7243 Specifies the CLSID may be programmable.
7244 </xs:documentation>
7245 </xs:annotation>
7246 </xs:attribute>
7247 <xs:attribute name="ForeignServer" type="xs:string">
7248 <xs:annotation>
7249 <xs:documentation>
7250 May only be specified if the value of the Advertise attribute is "no" and Server has not been specified. In addition, it may only
7251 be used when the Class element is directly under the Component element. The value can be
7252 that of an registry type (REG_SZ). This attribute should be used to specify foreign servers, such as mscoree.dll if needed.
7253 </xs:documentation>
7254 </xs:annotation>
7255 </xs:attribute>
7256 <xs:attribute name="Server" type="xs:string">
7257 <xs:annotation>
7258 <xs:documentation>
7259 May only be specified if the value of the Advertise attribute is "no" and the ForeignServer attribute is not specified. File Id of the
7260 COM server file. If this element is nested under a File element, this value defaults to
7261 the value of the parent File/@Id.
7262 </xs:documentation>
7263 </xs:annotation>
7264 </xs:attribute>
7265 <xs:attribute name="ShortPath" type="YesNoTypeUnion">
7266 <xs:annotation>
7267 <xs:documentation>
7268 Specifies whether or not to use the short path for the COM server. This can only apply when Advertise is set to 'no'. The default is 'no' meaning that it will use the long file name for the COM server.
7269 </xs:documentation>
7270 </xs:annotation>
7271 </xs:attribute>
7272 <xs:attribute name="SafeForScripting" type="YesNoTypeUnion">
7273 <xs:annotation>
7274 <xs:documentation>
7275 May only be specified if the value of the Advertise attribute is "no".
7276 </xs:documentation>
7277 </xs:annotation>
7278 </xs:attribute>
7279 <xs:attribute name="SafeForInitializing" type="YesNoTypeUnion">
7280 <xs:annotation>
7281 <xs:documentation>
7282 May only be specified if the value of the Advertise attribute is "no".
7283 </xs:documentation>
7284 </xs:annotation>
7285 </xs:attribute>
7286 <xs:attribute name="Control" type="YesNoTypeUnion">
7287 <xs:annotation>
7288 <xs:documentation>
7289 Set this attribute's value to 'yes' to identify an object as an ActiveX Control. The default value is 'no'.
7290 </xs:documentation>
7291 </xs:annotation>
7292 </xs:attribute>
7293 </xs:complexType>
7294 </xs:element>
7295 <xs:element name="Interface">
7296 <xs:annotation>
7297 <xs:documentation>COM Interface registration for parent TypeLib.</xs:documentation>
7298 <xs:appinfo>
7299 <xse:msiRef table="Registry" href="https://learn.microsoft.com/en-us/windows/win32/msi/registry-table" />
7300 </xs:appinfo>
7301 </xs:annotation>
7302 <xs:complexType>
7303 <xs:attribute name="Id" type="Guid" use="required">
7304 <xs:annotation>
7305 <xs:documentation>GUID identifier for COM Interface.</xs:documentation>
7306 </xs:annotation>
7307 </xs:attribute>
7308 <xs:attribute name="Name" type="xs:string" use="required">
7309 <xs:annotation>
7310 <xs:documentation>Name for COM Interface.</xs:documentation>
7311 </xs:annotation>
7312 </xs:attribute>
7313 <xs:attribute name="BaseInterface" type="Guid">
7314 <xs:annotation>
7315 <xs:documentation>Identifies the interface from which the current interface is derived.</xs:documentation>
7316 </xs:annotation>
7317 </xs:attribute>
7318 <xs:attribute name="ProxyStubClassId" type="Guid">
7319 <xs:annotation>
7320 <xs:documentation>GUID CLSID for proxy stub to COM Interface.</xs:documentation>
7321 </xs:annotation>
7322 </xs:attribute>
7323 <xs:attribute name="ProxyStubClassId32" type="Guid">
7324 <xs:annotation>
7325 <xs:documentation>GUID CLSID for 32-bit proxy stub to COM Interface.</xs:documentation>
7326 </xs:annotation>
7327 </xs:attribute>
7328 <xs:attribute name="NumMethods" type="Integer">
7329 <xs:annotation>
7330 <xs:documentation>Number of methods implemented on COM Interface.</xs:documentation>
7331 </xs:annotation>
7332 </xs:attribute>
7333 <xs:attribute name="Versioned" type="YesNoTypeUnion">
7334 <xs:annotation>
7335 <xs:documentation>Determines whether a Typelib version entry should be created with the other COM Interface registry keys. Default is 'yes'.</xs:documentation>
7336 </xs:annotation>
7337 </xs:attribute>
7338 </xs:complexType>
7339 </xs:element>
7340 <xs:element name="FileTypeMask">
7341 <xs:annotation>
7342 <xs:documentation>FileType data for class Id registration.</xs:documentation>
7343 </xs:annotation>
7344 <xs:complexType>
7345 <xs:attribute name="Offset" type="Integer" use="required">
7346 <xs:annotation>
7347 <xs:documentation>Offset into file. If positive, offset is from the beginning; if negative, offset is from the end.</xs:documentation>
7348 </xs:annotation>
7349 </xs:attribute>
7350 <xs:attribute name="Mask" type="HexType" use="required">
7351 <xs:annotation>
7352 <xs:documentation>Hex value that is AND'd against the bytes in the file at Offset.</xs:documentation>
7353 </xs:annotation>
7354 </xs:attribute>
7355 <xs:attribute name="Value" type="HexType" use="required">
7356 <xs:annotation>
7357 <xs:documentation>If the result of the AND'ing of Mask with the bytes in the file is Value, the file is a match for this File Type.</xs:documentation>
7358 </xs:annotation>
7359 </xs:attribute>
7360 </xs:complexType>
7361 </xs:element>
7362 <xs:element name="ServiceDependency">
7363 <xs:annotation>
7364 <xs:documentation>
7365 Service or group of services that must start before the parent service.
7366 </xs:documentation>
7367 <xs:appinfo>
7368 <xse:msiRef table="ServiceInstall" href="https://docs.microsoft.com/en-us/windows/win32/msi/serviceinstall-table" />
7369 </xs:appinfo>
7370 </xs:annotation>
7371 <xs:complexType>
7372 <xs:attribute name="Id" type="xs:string" use="required">
7373 <xs:annotation>
7374 <xs:documentation>
7375 The name (not the display name) of a previously installed service or the name of a service group when the Group attribute is set to 'yes'.
7376 </xs:documentation>
7377 </xs:annotation>
7378 </xs:attribute>
7379 <xs:attribute name="Group" type="YesNoTypeUnion">
7380 <xs:annotation>
7381 <xs:documentation>
7382 Set to 'yes' to indicate that the value in the Id attribute is the name of a group of services. If 'no' or not set, the Id attribute refers to another service by name.
7383 </xs:documentation>
7384 </xs:annotation>
7385 </xs:attribute>
7386 </xs:complexType>
7387 </xs:element>
7388 <xs:element name="ServiceInstall">
7389 <xs:annotation>
7390 <xs:documentation>
7391 Adds services for parent Component. Use the ServiceControl element to remove services.
7392 </xs:documentation>
7393 <xs:appinfo>
7394 <xse:msiRef table="ServiceInstall" href="https://docs.microsoft.com/en-us/windows/win32/msi/serviceinstall-table" />
7395 <xse:remarks>
7396 The service executable installed will point to the KeyPath for the Component.
7397 Therefore, you must ensure that the correct executable is either the first child
7398 File element under this Component or explicitly mark the appropriate File element
7399 as KeyPath='yes'.
7400 </xse:remarks>
7401 </xs:appinfo>
7402 </xs:annotation>
7403 <xs:complexType>
7404 <xs:choice minOccurs="0" maxOccurs="unbounded">
7405 <xs:element ref="PermissionEx">
7406 <xs:annotation>
7407 <xs:documentation>Configures the ACLs for this service.</xs:documentation>
7408 </xs:annotation>
7409 </xs:element>
7410 <xs:element ref="ServiceDependency">
7411 <xs:annotation>
7412 <xs:documentation>Ordered list of dependencies when installing services.</xs:documentation>
7413 </xs:annotation>
7414 </xs:element>
7415 <xs:element ref="ServiceConfig" />
7416 <xs:element ref="ServiceConfigFailureActions" />
7417 <xs:any namespace="##other" processContents="lax">
7418 <xs:annotation>
7419 <xs:documentation>
7420 Extensibility point in the WiX XML Schema. Schema extensions can register additional
7421 elements at this point in the schema.
7422 </xs:documentation>
7423 </xs:annotation>
7424 </xs:any>
7425 </xs:choice>
7426 <xs:attribute name="Id" type="xs:string">
7427 <xs:annotation>
7428 <xs:documentation>
7429 Unique identifier for this service configuration. This value will default to the Name attribute if not
7430 specified.
7431 </xs:documentation>
7432 </xs:annotation>
7433 </xs:attribute>
7434 <xs:attribute name="Name" type="xs:string" use="required">
7435 <xs:annotation>
7436 <xs:documentation>This column is the string that gives the service name to install.</xs:documentation>
7437 </xs:annotation>
7438 </xs:attribute>
7439 <xs:attribute name="DisplayName" type="xs:string">
7440 <xs:annotation>
7441 <xs:documentation>This column is the localizable string that user interface programs use to identify the service.</xs:documentation>
7442 </xs:annotation>
7443 </xs:attribute>
7444 <xs:attribute name="Type" use="required">
7445 <xs:annotation>
7446 <xs:documentation>The Windows Installer does not currently support kernelDriver or systemDriver.</xs:documentation>
7447 </xs:annotation>
7448 <xs:simpleType>
7449 <xs:restriction base="xs:NMTOKEN">
7450 <xs:enumeration value="ownProcess">
7451 <xs:annotation>
7452 <xs:documentation>
7453 A Win32 service that runs its own process.
7454 </xs:documentation>
7455 </xs:annotation>
7456 </xs:enumeration>
7457 <xs:enumeration value="shareProcess">
7458 <xs:annotation>
7459 <xs:documentation>
7460 A Win32 service that shares a process.
7461 </xs:documentation>
7462 </xs:annotation>
7463 </xs:enumeration>
7464 <xs:enumeration value="kernelDriver">
7465 <xs:annotation>
7466 <xs:documentation>
7467 A kernel driver service. This value is not currently supported by the Windows Installer.
7468 </xs:documentation>
7469 </xs:annotation>
7470 </xs:enumeration>
7471 <xs:enumeration value="systemDriver">
7472 <xs:annotation>
7473 <xs:documentation>
7474 A file system driver service. This value is not currently supported by the Windows Installer.
7475 </xs:documentation>
7476 </xs:annotation>
7477 </xs:enumeration>
7478 </xs:restriction>
7479 </xs:simpleType>
7480 </xs:attribute>
7481 <xs:attribute name="Interactive" type="YesNoTypeUnion">
7482 <xs:annotation>
7483 <xs:documentation>Whether or not the service interacts with the desktop.</xs:documentation>
7484 </xs:annotation>
7485 </xs:attribute>
7486 <xs:attribute name="Start" use="required">
7487 <xs:annotation>
7488 <xs:documentation>Determines when the service should be started. The Windows Installer does not support boot or system.</xs:documentation>
7489 </xs:annotation>
7490 <xs:simpleType>
7491 <xs:restriction base="xs:NMTOKEN">
7492 <xs:enumeration value="auto">
7493 <xs:annotation>
7494 <xs:documentation>
7495 The service will start during startup of the system.
7496 </xs:documentation>
7497 </xs:annotation>
7498 </xs:enumeration>
7499 <xs:enumeration value="demand">
7500 <xs:annotation>
7501 <xs:documentation>
7502 The service will start when the service control manager calls the StartService function.
7503 </xs:documentation>
7504 </xs:annotation>
7505 </xs:enumeration>
7506 <xs:enumeration value="disabled">
7507 <xs:annotation>
7508 <xs:documentation>
7509 The service can no longer be started.
7510 </xs:documentation>
7511 </xs:annotation>
7512 </xs:enumeration>
7513 <xs:enumeration value="boot">
7514 <xs:annotation>
7515 <xs:documentation>
7516 The service is a device driver that will be started by the operating system boot loader. This value is not currently supported by the Windows Installer.
7517 </xs:documentation>
7518 </xs:annotation>
7519 </xs:enumeration>
7520 <xs:enumeration value="system">
7521 <xs:annotation>
7522 <xs:documentation>
7523 The service is a device driver that will be started by the IoInitSystem function. This value is not currently supported by the Windows Installer.
7524 </xs:documentation>
7525 </xs:annotation>
7526 </xs:enumeration>
7527 </xs:restriction>
7528 </xs:simpleType>
7529 </xs:attribute>
7530 <xs:attribute name="ErrorControl" use="required">
7531 <xs:annotation>
7532 <xs:documentation>Determines what action should be taken on an error.</xs:documentation>
7533 </xs:annotation>
7534 <xs:simpleType>
7535 <xs:restriction base="xs:NMTOKEN">
7536 <xs:enumeration value="ignore">
7537 <xs:annotation>
7538 <xs:documentation>
7539 Logs the error and continues with the startup operation.
7540 </xs:documentation>
7541 </xs:annotation>
7542 </xs:enumeration>
7543 <xs:enumeration value="normal">
7544 <xs:annotation>
7545 <xs:documentation>
7546 Logs the error, displays a message box and continues the startup operation.
7547 </xs:documentation>
7548 </xs:annotation>
7549 </xs:enumeration>
7550 <xs:enumeration value="critical">
7551 <xs:annotation>
7552 <xs:documentation>
7553 Logs the error if it is possible and the system is restarted with the last configuration known to be good. If the last-known-good configuration is being started, the startup operation fails.
7554 </xs:documentation>
7555 </xs:annotation>
7556 </xs:enumeration>
7557 </xs:restriction>
7558 </xs:simpleType>
7559 </xs:attribute>
7560 <xs:attribute name="Vital" type="YesNoTypeUnion">
7561 <xs:annotation>
7562 <xs:documentation>When set to 'yes' or left unspecified the overall install will fail if this service fails to install. A value of 'no' indicates failure to install the service will be ignored.</xs:documentation>
7563 </xs:annotation>
7564 </xs:attribute>
7565 <xs:attribute name="LoadOrderGroup" type="xs:string">
7566 <xs:annotation>
7567 <xs:documentation>The load ordering group that this service should be a part of.</xs:documentation>
7568 </xs:annotation>
7569 </xs:attribute>
7570 <xs:attribute name="Account" type="xs:string">
7571 <xs:annotation>
7572 <xs:documentation>Fully qualified names must be used even for local accounts, e.g.: ".\LOCAL_ACCOUNT". Valid only when ServiceType is ownProcess.</xs:documentation>
7573 </xs:annotation>
7574 </xs:attribute>
7575 <xs:attribute name="Password" type="xs:string">
7576 <xs:annotation>
7577 <xs:documentation>The password for the account. Valid only when the account has a password.</xs:documentation>
7578 </xs:annotation>
7579 </xs:attribute>
7580 <xs:attribute name="Arguments" type="xs:string">
7581 <xs:annotation>
7582 <xs:documentation>Contains any command line arguments or properties required to run the service.</xs:documentation>
7583 </xs:annotation>
7584 </xs:attribute>
7585 <xs:attribute name="Description" type="xs:string">
7586 <xs:annotation>
7587 <xs:documentation>Sets the description of the service.</xs:documentation>
7588 </xs:annotation>
7589 </xs:attribute>
7590 <xs:attribute name="EraseDescription" type="YesNoTypeUnion">
7591 <xs:annotation>
7592 <xs:documentation>Determines whether the existing service description will be ignored. If 'yes', the service description will be null, even if the Description attribute is set.</xs:documentation>
7593 </xs:annotation>
7594 </xs:attribute>
7595 </xs:complexType>
7596 </xs:element>
7597 <xs:element name="ServiceArgument" type="xs:string">
7598 <xs:annotation>
7599 <xs:documentation>
7600 Argument used in ServiceControl parent
7601 </xs:documentation>
7602 <xs:appinfo>
7603 <xse:msiRef table="ServiceControl" href="http://msdn.microsoft.com/library/aa371634.aspx" />
7604 </xs:appinfo>
7605 </xs:annotation>
7606 </xs:element>
7607 <xs:element name="ServiceControl">
7608 <xs:annotation>
7609 <xs:documentation>
7610 Starts, stops, and removes services for parent Component. This element is used to control the state
7611 of a service installed by the MSI or MSM file by using the start, stop and remove attributes.
7612 For example, Start='install' Stop='both' Remove='uninstall' would mean: start the service on install,
7613 remove the service when the product is uninstalled, and stop the service both on install and uninstall.
7614 </xs:documentation>
7615 <xs:appinfo>
7616 <xse:msiRef table="ServiceControl" href="http://msdn.microsoft.com/library/aa371634.aspx" />
7617 </xs:appinfo>
7618 </xs:annotation>
7619 <xs:complexType>
7620 <xs:sequence>
7621 <xs:element ref="ServiceArgument" minOccurs="0" maxOccurs="unbounded">
7622 <xs:annotation>
7623 <xs:documentation>Ordered list of arguments used when modifying services.</xs:documentation>
7624 </xs:annotation>
7625 </xs:element>
7626 </xs:sequence>
7627 <xs:attribute name="Id" type="xs:string">
7628 <xs:annotation>
7629 <xs:documentation>
7630 Unique identifier for this service control. This value will default to the Name attribute if not
7631 specified.
7632 </xs:documentation>
7633 </xs:annotation>
7634 </xs:attribute>
7635 <xs:attribute name="Name" type="xs:string" use="required">
7636 <xs:annotation>
7637 <xs:documentation>Name of the service.</xs:documentation>
7638 </xs:annotation>
7639 </xs:attribute>
7640 <xs:attribute name="Start" type="InstallUninstallType">
7641 <xs:annotation>
7642 <xs:documentation>
7643 Specifies whether the service should be started by the StartServices action on install, uninstall or both.
7644 For 'install', the service will be started only when the parent component is being installed (msiInstallStateLocal or
7645 msiInstallStateSource); for 'uninstall', the service will be started only when the parent component
7646 is being removed (msiInstallStateAbsent); for 'both', the service will be started in both cases.
7647 </xs:documentation>
7648 </xs:annotation>
7649 </xs:attribute>
7650 <xs:attribute name="Stop" type="InstallUninstallType">
7651 <xs:annotation>
7652 <xs:documentation>
7653 Specifies whether the service should be stopped by the StopServices action on install, uninstall or both.
7654 For 'install', the service will be stopped only when the parent component is being installed (msiInstallStateLocal or
7655 msiInstallStateSource); for 'uninstall', the service will be stopped only when the parent component
7656 is being removed (msiInstallStateAbsent); for 'both', the service will be stopped in both cases.
7657 </xs:documentation>
7658 </xs:annotation>
7659 </xs:attribute>
7660 <xs:attribute name="Remove" type="InstallUninstallType">
7661 <xs:annotation>
7662 <xs:documentation>
7663 Specifies whether the service should be removed by the DeleteServices action on install, uninstall or both.
7664 For 'install', the service will be removed only when the parent component is being installed (msiInstallStateLocal or
7665 msiInstallStateSource); for 'uninstall', the service will be removed only when the parent component
7666 is being removed (msiInstallStateAbsent); for 'both', the service will be removed in both cases.
7667 </xs:documentation>
7668 </xs:annotation>
7669 </xs:attribute>
7670 <xs:attribute name="Wait" type="YesNoTypeUnion">
7671 <xs:annotation>
7672 <xs:documentation>Specifies whether or not to wait for the service to complete before continuing. The default is 'yes'.</xs:documentation>
7673 </xs:annotation>
7674 </xs:attribute>
7675 </xs:complexType>
7676 </xs:element>
7677 <xs:element name="RequiredPrivilege" type="xs:string">
7678 <xs:annotation>
7679 <xs:documentation>
7680 Privilege required by service configured by ServiceConfig parent. Valid values are a <html:a href="http://msdn.microsoft.com/en-us/library/bb530716.aspx">privilege constant</html:a> or a
7681 Formatted property that resolves to a privilege constant.
7682 </xs:documentation>
7683 <xs:appinfo>
7684 <xse:msiRef table="MsiServiceConfig" href="https://learn.microsoft.com/en-us/windows/win32/msi/msiserviceconfig-table" />
7685 </xs:appinfo>
7686 </xs:annotation>
7687 </xs:element>
7688 <xs:element name="ServiceConfig">
7689 <xs:annotation>
7690 <xs:documentation>
7691 Configures a service being installed or one that already exists. This element's functionality is available starting with MSI 5.0. However, a
7692 [remark indicating the functionality does not work correctly](https://learn.microsoft.com/en-us/windows/win32/msi/msiconfigureservices-action) was added later.
7693 Consider using the [util:ServiceConfig element](../../schema/util/serviceconfig.md) instead.
7694 </xs:documentation>
7695 <xs:appinfo>
7696 <xse:msiRef table="MsiServiceConfig" href="https://learn.microsoft.com/en-us/windows/win32/msi/msiserviceconfig-table" />
7697 </xs:appinfo>
7698 </xs:annotation>
7699 <xs:complexType>
7700 <xs:choice minOccurs="0" maxOccurs="unbounded">
7701 <xs:element ref="RequiredPrivilege">
7702 <xs:annotation>
7703 <xs:documentation>List of privileges to apply to service.</xs:documentation>
7704 </xs:annotation>
7705 </xs:element>
7706 </xs:choice>
7707 <xs:attribute name="Id" type="xs:string">
7708 <xs:annotation>
7709 <xs:documentation>
7710 Unique identifier for this service configuration. This value will default to the ServiceName attribute if not
7711 specified.
7712 </xs:documentation>
7713 </xs:annotation>
7714 </xs:attribute>
7715 <xs:attribute name="DelayedAutoStart" type="xs:string">
7716 <xs:annotation>
7717 <xs:documentation>
7718 This attribute specifies whether an auto-start service should delay its start until after all other auto-start
7719 services. This attribute only affects auto-start services. Allowed values are "yes", "no" or a Formatted property that
7720 resolves to "1" (for "yes") or "0" (for "no"). If this attribute is not present the setting is not configured.
7721 </xs:documentation>
7722 </xs:annotation>
7723 </xs:attribute>
7724 <xs:attribute name="FailureActionsWhen" type="xs:string">
7725 <xs:annotation>
7726 <xs:documentation>
7727 This attribute specifies when failure actions should be applied. Allowed values are "failedToStop", "failedToStopOrReturnedError"
7728 or a Formatted property that resolves to "1" (for "failedToStopOrReturnedError") or "0" (for "failedToStop"). If this attribute
7729 is not present the setting is not configured.
7730 </xs:documentation>
7731 </xs:annotation>
7732 </xs:attribute>
7733 <xs:attribute name="PreShutdownDelay" type="xs:string">
7734 <xs:annotation>
7735 <xs:documentation>
7736 This attribute specifies time in milliseconds that the Service Control Manager (SCM) waits after notifying the service of a system
7737 shutdown. If this attribute is not present the default value, 3 minutes, is used.
7738 </xs:documentation>
7739 </xs:annotation>
7740 </xs:attribute>
7741 <xs:attribute name="OnInstall" type="YesNoTypeUnion">
7742 <xs:annotation>
7743 <xs:documentation>
7744 Specifies whether to configure the service when the parent Component is installed. This attribute may be combined with OnReinstall
7745 and OnUninstall.
7746 </xs:documentation>
7747 </xs:annotation>
7748 </xs:attribute>
7749 <xs:attribute name="OnReinstall" type="YesNoTypeUnion">
7750 <xs:annotation>
7751 <xs:documentation>
7752 Specifies whether to configure the service when the parent Component is reinstalled. This attribute may be combined with OnInstall
7753 and OnUninstall.
7754 </xs:documentation>
7755 </xs:annotation>
7756 </xs:attribute>
7757 <xs:attribute name="OnUninstall" type="YesNoTypeUnion">
7758 <xs:annotation>
7759 <xs:documentation>
7760 Specifies whether to configure the service when the parent Component is uninstalled. This attribute may be combined with OnInstall
7761 and OnReinstall.
7762 </xs:documentation>
7763 </xs:annotation>
7764 </xs:attribute>
7765 <xs:attribute name="ServiceName" type="xs:string">
7766 <xs:annotation>
7767 <xs:documentation>
7768 Specifies the name of the service to configure. This value will default to the ServiceInstall/@Name attribute when nested under
7769 a ServiceInstall element.
7770 </xs:documentation>
7771 </xs:annotation>
7772 </xs:attribute>
7773 <xs:attribute name="ServiceSid" type="xs:string">
7774 <xs:annotation>
7775 <xs:documentation>
7776 Specifies the service SID to apply to the service. Valid values are "none", "restricted", "unrestricted" or a Formatted property
7777 that resolves to "0" (for "none"), "3" (for "restricted") or "1" (for "unrestricted"). If this attribute is not present the
7778 setting is not configured.
7779 </xs:documentation>
7780 </xs:annotation>
7781 </xs:attribute>
7782 </xs:complexType>
7783 </xs:element>
7784 <xs:element name="Failure">
7785 <xs:annotation>
7786 <xs:documentation>Failure action for a ServiceConfigFailureActions element.</xs:documentation>
7787 </xs:annotation>
7788 <xs:complexType>
7789 <xs:attribute name="Action" type="xs:string" use="required">
7790 <xs:annotation>
7791 <xs:documentation>
7792 Specifies the action to take when the service fails. Valid values are "none", "restartComputer", "restartService", "runCommand" or a Formatted property
7793 that resolves to "0" (for "none"), "1" (for "restartService"), "2" (for "restartComputer") or "3" (for "runCommand").
7794 </xs:documentation>
7795 </xs:annotation>
7796 </xs:attribute>
7797 <xs:attribute name="Delay" type="xs:string" use="required">
7798 <xs:annotation>
7799 <xs:documentation>
7800 Specifies the time in milliseconds to wait before performing the value from the Action attribute.
7801 </xs:documentation>
7802 </xs:annotation>
7803 </xs:attribute>
7804 </xs:complexType>
7805 </xs:element>
7806 <xs:element name="ServiceConfigFailureActions">
7807 <xs:annotation>
7808 <xs:documentation>
7809 Configures the failure actions for a service being installed or one that already exists. This element's functionality is available starting with MSI 5.0.
7810 </xs:documentation>
7811 <xs:appinfo>
7812 <xse:msiRef table="MsiServiceConfigFailureActions" href="https://learn.microsoft.com/en-us/windows/win32/msi/msiserviceconfigfailureactions-table" />
7813 </xs:appinfo>
7814 </xs:annotation>
7815 <xs:complexType>
7816 <xs:choice minOccurs="0" maxOccurs="unbounded">
7817 <xs:element ref="Failure">
7818 <xs:annotation>
7819 <xs:documentation>Ordered list of failure actions to apply to service.</xs:documentation>
7820 </xs:annotation>
7821 </xs:element>
7822 </xs:choice>
7823 <xs:attribute name="Id" type="xs:string">
7824 <xs:annotation>
7825 <xs:documentation>
7826 Unique identifier for this service configuration. This value will default to the ServiceName attribute if not
7827 specified.
7828 </xs:documentation>
7829 </xs:annotation>
7830 </xs:attribute>
7831 <xs:attribute name="Command" type="xs:string">
7832 <xs:annotation>
7833 <xs:documentation>
7834 This attribute specifies command to execute when a "runCommand" failure action hit. If an empty string is provided it clears
7835 the existing command. If this attribute is not present the setting is not changed.
7836 </xs:documentation>
7837 </xs:annotation>
7838 </xs:attribute>
7839 <xs:attribute name="OnInstall" type="YesNoTypeUnion">
7840 <xs:annotation>
7841 <xs:documentation>
7842 Specifies whether to configure the service when the parent Component is installed. This attribute may be combined with OnReinstall
7843 and OnUninstall.
7844 </xs:documentation>
7845 </xs:annotation>
7846 </xs:attribute>
7847 <xs:attribute name="OnReinstall" type="YesNoTypeUnion">
7848 <xs:annotation>
7849 <xs:documentation>
7850 Specifies whether to configure the service when the parent Component is reinstalled. This attribute may be combined with OnInstall
7851 and OnUninstall.
7852 </xs:documentation>
7853 </xs:annotation>
7854 </xs:attribute>
7855 <xs:attribute name="OnUninstall" type="YesNoTypeUnion">
7856 <xs:annotation>
7857 <xs:documentation>
7858 Specifies whether to configure the service when the parent Component is uninstalled. This attribute may be combined with OnInstall
7859 and OnReinstall.
7860 </xs:documentation>
7861 </xs:annotation>
7862 </xs:attribute>
7863 <xs:attribute name="RebootMessage" type="xs:string">
7864 <xs:annotation>
7865 <xs:documentation>
7866 Specifies the message to show for a reboot failure action. If an empty string is provided it clears any existing reboot message. If this
7867 attribute is not present the setting is not changed.
7868 </xs:documentation>
7869 </xs:annotation>
7870 </xs:attribute>
7871 <xs:attribute name="ResetPeriod" type="Integer">
7872 <xs:annotation>
7873 <xs:documentation>
7874 Specifies the time in seconds to reset the failure count. If this attribute is not present the failure count will not be reset.
7875 </xs:documentation>
7876 </xs:annotation>
7877 </xs:attribute>
7878 <xs:attribute name="ServiceName" type="xs:string">
7879 <xs:annotation>
7880 <xs:documentation>
7881 Specifies the name of the service to configure. This value will default to the ServiceInstall/@Name attribute when nested under
7882 a ServiceInstall element.
7883 </xs:documentation>
7884 </xs:annotation>
7885 </xs:attribute>
7886 </xs:complexType>
7887 </xs:element>
7888 <xs:element name="Environment">
7889 <xs:annotation>
7890 <xs:documentation>
7891 Environment variables added or removed for the parent component.
7892 </xs:documentation>
7893 <xs:appinfo>
7894 <xse:msiRef table="Environment" href="http://msdn.microsoft.com/library/aa368369.aspx" />
7895 </xs:appinfo>
7896 </xs:annotation>
7897 <xs:complexType>
7898 <xs:attribute name="Id" type="xs:string">
7899 <xs:annotation>
7900 <xs:documentation>Unique identifier for environment entry.</xs:documentation>
7901 </xs:annotation>
7902 </xs:attribute>
7903 <xs:attribute name="Name" type="xs:string" use="required">
7904 <xs:annotation>
7905 <xs:documentation>Name of the environment variable.</xs:documentation>
7906 </xs:annotation>
7907 </xs:attribute>
7908 <xs:attribute name="Value" type="xs:string">
7909 <xs:annotation>
7910 <xs:documentation>
7911 The value to set into the environment variable.
7912 If this attribute is not set, the environment variable is removed during installation if it exists on the machine.
7913 </xs:documentation>
7914 </xs:annotation>
7915 </xs:attribute>
7916 <xs:attribute name="Separator" type="xs:string">
7917 <xs:annotation>
7918 <xs:documentation>Optional attribute to change the separator used between values. By default a semicolon is used.</xs:documentation>
7919 </xs:annotation>
7920 </xs:attribute>
7921 <xs:attribute name="Action">
7922 <xs:annotation>
7923 <xs:documentation>Specfies whether the environmental variable should be created, set or removed when the parent component is installed.</xs:documentation>
7924 </xs:annotation>
7925 <xs:simpleType>
7926 <xs:restriction base="xs:NMTOKEN">
7927 <xs:enumeration value="create">
7928 <xs:annotation>
7929 <xs:documentation>Creates the environment variable if it does not exist, then set it during installation. This has no effect on the value of the environment variable if it already exists.</xs:documentation>
7930 </xs:annotation>
7931 </xs:enumeration>
7932 <xs:enumeration value="set">
7933 <xs:annotation>
7934 <xs:documentation>Creates the environment variable if it does not exist, and then set it during installation. If the environment variable exists, set it during the installation.</xs:documentation>
7935 </xs:annotation>
7936 </xs:enumeration>
7937 <xs:enumeration value="remove">
7938 <xs:annotation>
7939 <xs:documentation>
7940 Removes the environment variable during an installation.
7941 The installer only removes an environment variable during an installation if the name and value
7942 of the variable match the entries in the Name and Value attributes.
7943 If you want to remove an environment variable, regardless of its value, do not set the Value attribute.
7944 </xs:documentation>
7945 </xs:annotation>
7946 </xs:enumeration>
7947 </xs:restriction>
7948 </xs:simpleType>
7949 </xs:attribute>
7950 <xs:attribute name="Part">
7951 <xs:simpleType>
7952 <xs:restriction base="xs:NMTOKEN">
7953 <xs:enumeration value="all">
7954 <xs:annotation>
7955 <xs:documentation>
7956 This value is the entire environmental variable. This is the default.
7957 </xs:documentation>
7958 </xs:annotation>
7959 </xs:enumeration>
7960 <xs:enumeration value="first">
7961 <xs:annotation>
7962 <xs:documentation>
7963 This value is prefixed.
7964 </xs:documentation>
7965 </xs:annotation>
7966 </xs:enumeration>
7967 <xs:enumeration value="last">
7968 <xs:annotation>
7969 <xs:documentation>
7970 This value is appended.
7971 </xs:documentation>
7972 </xs:annotation>
7973 </xs:enumeration>
7974 </xs:restriction>
7975 </xs:simpleType>
7976 </xs:attribute>
7977 <xs:attribute name="Permanent" type="YesNoTypeUnion">
7978 <xs:annotation>
7979 <xs:documentation>Specifies that the environment variable should not be removed on uninstall.</xs:documentation>
7980 </xs:annotation>
7981 </xs:attribute>
7982 <xs:attribute name="System" type="YesNoTypeUnion">
7983 <xs:annotation>
7984 <xs:documentation>
7985 Specifies that the environment variable should be added to the system environment space. The default
7986 is 'no' which indicates the environment variable is added to the user environment space.
7987 </xs:documentation>
7988 </xs:annotation>
7989 </xs:attribute>
7990 </xs:complexType>
7991 </xs:element>
7992 <xs:element name="Launch">
7993 <xs:annotation>
7994 <xs:documentation>
7995 Launch conditions for MSI packages.
7996 </xs:documentation>
7997 <xs:appinfo>
7998 <xse:msiRef table="LaunchCondition" href="https://docs.microsoft.com/en-us/windows/win32/msi/launchcondition-table" />
7999 <xse:howtoRef href="redistributables_and_install_checks/block_install_on_os.html">How To: Block installation based on OS version</xse:howtoRef>
8000 <xse:howtoRef href="files_and_registry/check_the_version_number.html">How To: Check the version number of a file during installation</xse:howtoRef>
8001 </xs:appinfo>
8002 </xs:annotation>
8003 <xs:complexType>
8004 <xs:attribute name="Condition" type="xs:string" use="required">
8005 <xs:annotation>
8006 <xs:documentation>
8007 The condition expression to be evaluated at install time.
8008 </xs:documentation>
8009 </xs:annotation>
8010 </xs:attribute>
8011 <xs:attribute name="Message" type="xs:string" use="required">
8012 <xs:annotation>
8013 <xs:documentation>
8014 Set the value to the text to display when the condition fails and the installation must be terminated.
8015 </xs:documentation>
8016 </xs:annotation>
8017 </xs:attribute>
8018 </xs:complexType>
8019 </xs:element>
8020 <xs:element name="Level">
8021 <xs:annotation>
8022 <xs:documentation>
8023 Feature levels for MSI packages.
8024 </xs:documentation>
8025 <xs:appinfo>
8026 <xse:msiRef table="Condition" href="http://msdn.microsoft.com/library/aa368014.aspx" />
8027 </xs:appinfo>
8028 </xs:annotation>
8029 <xs:complexType>
8030 <xs:attribute name="Condition" type="xs:string" use="required">
8031 <xs:annotation>
8032 <xs:documentation>
8033 The condition expression to be evaluated at install time. When true the Feature level is set to the Value.
8034 </xs:documentation>
8035 </xs:annotation>
8036 </xs:attribute>
8037 <xs:attribute name="Value" type="Integer" use="required">
8038 <xs:annotation>
8039 <xs:documentation>
8040 Allows modifying the level of a Feature based on the result of the condition.
8041 </xs:documentation>
8042 </xs:annotation>
8043 </xs:attribute>
8044 </xs:complexType>
8045 </xs:element>
8046 <xs:element name="IsolateComponent">
8047 <xs:annotation>
8048 <xs:documentation>
8049 Shared Component to be privately replicated in folder of parent Component
8050 </xs:documentation>
8051 <xs:appinfo>
8052 <xse:msiRef table="IsolateComponent" href="http://msdn.microsoft.com/library/aa369730.aspx" />
8053 </xs:appinfo>
8054 </xs:annotation>
8055 <xs:complexType>
8056 <xs:attribute name="Shared" type="xs:string" use="required">
8057 <xs:annotation>
8058 <xs:documentation>Shared Component for this application Component.</xs:documentation>
8059 </xs:annotation>
8060 </xs:attribute>
8061 </xs:complexType>
8062 </xs:element>
8063 <xs:element name="ReserveCost">
8064 <xs:annotation>
8065 <xs:documentation>
8066 Disk cost to reserve in a folder for running locally and/or from source.
8067 </xs:documentation>
8068 <xs:appinfo>
8069 <xse:msiRef table="ReserveCost" href="http://msdn.microsoft.com/library/aa371226.aspx" />
8070 </xs:appinfo>
8071 </xs:annotation>
8072 <xs:complexType>
8073 <xs:attribute name="Id" type="xs:string" use="required">
8074 <xs:annotation>
8075 <xs:documentation>A primary key that uniquely identifies this ReserveCost entry.</xs:documentation>
8076 </xs:annotation>
8077 </xs:attribute>
8078 <xs:attribute name="Directory" type="xs:string">
8079 <xs:annotation>
8080 <xs:documentation>
8081 Adds the amount of disk space specified in RunFromSource or RunLocal to the volume cost of the device containing the directory.
8082 If this attribute is not set, it will default to the directory of parent component.
8083 </xs:documentation>
8084 </xs:annotation>
8085 </xs:attribute>
8086 <xs:attribute name="Subdirectory" type="xs:string">
8087 <xs:annotation>
8088 <xs:documentation>
8089 This attribute defines one or more directories below the directory referenced by the Directory attribute
8090 to add cost to.
8091 </xs:documentation>
8092 </xs:annotation>
8093 </xs:attribute>
8094 <xs:attribute name="RunFromSource" type="Integer" use="required">
8095 <xs:annotation>
8096 <xs:documentation>The number of bytes of disk space to reserve if the component is installed to run from source.</xs:documentation>
8097 </xs:annotation>
8098 </xs:attribute>
8099 <xs:attribute name="RunLocal" type="Integer" use="required">
8100 <xs:annotation>
8101 <xs:documentation>The number of bytes of disk space to reserve if the component is installed to run locally.</xs:documentation>
8102 </xs:annotation>
8103 </xs:attribute>
8104 </xs:complexType>
8105 </xs:element>
8106 <xs:element name="Component">
8107 <xs:annotation>
8108 <xs:documentation>Component for parent Directory</xs:documentation>
8109 <xs:appinfo>
8110 <xse:seeAlso ref="ComponentRef" />
8111 <xse:msiRef table="Component" href="http://msdn.microsoft.com/library/aa368007.aspx" />
8112 <xse:msiRef table="Condition" href="http://msdn.microsoft.com/library/aa368014.aspx" />
8113 <xse:msiRef table="Directory" href="http://msdn.microsoft.com/library/aa368295.aspx" />
8114 <xse:howtoRef href="files_and_registry/add_a_file.html">How To: Add a file to your installer</xse:howtoRef>
8115 </xs:appinfo>
8116 </xs:annotation>
8117 <xs:complexType>
8118 <xs:choice minOccurs="0" maxOccurs="unbounded">
8119 <xs:element ref="AppId" />
8120 <xs:element ref="Category" />
8121 <xs:element ref="Class" />
8122 <xs:element ref="CopyFile" />
8123 <xs:element ref="CreateFolder" />
8124 <xs:element ref="Environment" />
8125 <xs:element ref="Extension" />
8126 <xs:element ref="File" />
8127 <xs:element ref="IniFile" />
8128 <xs:element ref="Interface" />
8129 <xs:element ref="IsolateComponent" />
8130 <xs:element ref="ODBCDataSource" />
8131 <xs:element ref="ODBCDriver" />
8132 <xs:element ref="ODBCTranslator" />
8133 <xs:element ref="ProgId" />
8134 <xs:element ref="Provides" />
8135 <xs:element ref="RegistryKey" />
8136 <xs:element ref="RegistryValue" />
8137 <xs:element ref="RemoveFile" />
8138 <xs:element ref="RemoveFolder" />
8139 <xs:element ref="RemoveRegistryKey" />
8140 <xs:element ref="RemoveRegistryValue" />
8141 <xs:element ref="ReserveCost" />
8142 <xs:element ref="ServiceControl" />
8143 <xs:element ref="ServiceConfig" />
8144 <xs:element ref="ServiceConfigFailureActions" />
8145 <xs:element ref="ServiceInstall" />
8146 <xs:element ref="Shortcut" />
8147 <xs:element ref="SymbolPath" />
8148 <xs:element ref="TypeLib" />
8149 <xs:any namespace="##other" processContents="lax">
8150 <xs:annotation>
8151 <xs:documentation>
8152 Extensibility point in the WiX XML Schema. Schema extensions can register additional
8153 elements at this point in the schema.
8154 </xs:documentation>
8155 </xs:annotation>
8156 </xs:any>
8157 </xs:choice>
8158 <xs:attribute name="Id" type="xs:string">
8159 <xs:annotation>
8160 <xs:documentation>
8161 Component identifier; this is the primary key for identifying components. If omitted,
8162 the compiler defaults the identifier to the identifier of the resource that is the
8163 explicit or default keypath of the component (for example, a child File element).
8164 In WiX v4 and WiX v5, such a default identifier is private to the section where it is
8165 defined. To make it public (and therefore accessible from other sections and usable
8166 in references like ComponentRef), give the component an explicit value for Id.
8167 </xs:documentation>
8168 </xs:annotation>
8169 </xs:attribute>
8170 <xs:attribute name="ComPlusFlags" type="Integer">
8171 <xs:annotation>
8172 <xs:documentation>
8173 Set this attribute to create a ComPlus entry. The value should be the export flags used
8174 during the generation of the .msi file. For more information see the COM+ documentation
8175 in the Platform SDK.
8176 </xs:documentation>
8177 </xs:annotation>
8178 </xs:attribute>
8179 <xs:attribute name="Condition" type="xs:string">
8180 <xs:annotation>
8181 <xs:documentation>
8182 The condition expression to be evaluated at install time. When false the Component will not be installed.
8183 </xs:documentation>
8184 </xs:annotation>
8185 </xs:attribute>
8186 <xs:attribute name="DisableRegistryReflection" type="YesNoTypeUnion">
8187 <xs:annotation>
8188 <xs:documentation>
8189 Set this attribute to 'yes' in order to disable registry reflection on all existing and
8190 new registry keys affected by this component.
8191 When set to 'yes', the Windows Installer calls the RegDisableReflectionKey on each key
8192 being accessed by the component.
8193 This bit is available with Windows Installer version 4.0 and is ignored on 32-bit systems.
8194 </xs:documentation>
8195 </xs:annotation>
8196 </xs:attribute>
8197 <xs:attribute name="Directory" type="xs:string">
8198 <xs:annotation>
8199 <xs:documentation>
8200 Sets the Directory of the Component. If this element is nested under a Directory element,
8201 this value defaults to the value of the parent Directory/@Id.
8202 </xs:documentation>
8203 </xs:annotation>
8204 </xs:attribute>
8205 <xs:attribute name="DiskId" type="DiskIdType">
8206 <xs:annotation>
8207 <xs:documentation>
8208 This attribute provides a default DiskId attribute for all child File elements. Specifying
8209 the DiskId on a Component element will override any DiskId attributes set by parent Directory
8210 or DirectoryRef elements. See the File element's DiskId attribute for more information about
8211 the purpose of the DiskId.
8212 </xs:documentation>
8213 </xs:annotation>
8214 </xs:attribute>
8215 <xs:attribute name="Feature" type="xs:string">
8216 <xs:annotation>
8217 <xs:documentation>
8218 Identifies a feature to which this component belongs, as a shorthand for a child
8219 ComponentRef element of the Feature element. The value of this attribute should
8220 correspond to the Id attribute of a Feature element authored elsewhere. Note that
8221 a single component can belong to multiple features but this attribute allows you
8222 to specify only a single feature.
8223 </xs:documentation>
8224 </xs:annotation>
8225 </xs:attribute>
8226 <xs:attribute name="Guid" type="ComponentGuid">
8227 <xs:annotation>
8228 <xs:documentation>
8229 This value should be a guid that uniquely identifies this component's contents, language, platform, and version.
8230 If omitted, the default value is '*' which indicates that the linker should generate a stable guid.
8231 Generatable guids are supported only for components with a single file as the component's keypath
8232 or no files and a registry value as the keypath.
8233 It's also possible to set the value to an empty string to specify an unmanaged component.
8234 Unmanaged components are a security vulnerability because the component cannot be removed or repaired
8235 by Windows Installer (it is essentially an unpatchable, permanent component). Therefore, a guid should
8236 always be specified for any component which contains resources that may need to be patched in the future.
8237 </xs:documentation>
8238 </xs:annotation>
8239 </xs:attribute>
8240 <xs:attribute name="KeyPath" type="YesNoTypeUnion">
8241 <xs:annotation>
8242 <xs:documentation>
8243 If this attribute's value is set to 'yes', then the Directory of this Component is used
8244 as the KeyPath. To set a Registry value or File as the KeyPath of a component, set the
8245 KeyPath attribute to 'yes' on one of those child elements. If KeyPath is not set to 'yes' for the
8246 Component or for a child Registry value or File, WiX will look at the child elements under the
8247 Component in sequential order and try to automatically select one of them as a key path. Allowing
8248 WiX to automatically select a key path can be dangerous because adding or removing child elements
8249 under the Component can inadvertantly cause the key path to change, which can lead to
8250 installation problems.
8251 </xs:documentation>
8252 </xs:annotation>
8253 </xs:attribute>
8254 <xs:attribute name="Location">
8255 <xs:annotation>
8256 <xs:documentation>
8257 Optional value that specifies the location that the component can be run from.
8258 </xs:documentation>
8259 </xs:annotation>
8260 <xs:simpleType>
8261 <xs:restriction base="xs:NMTOKEN">
8262 <xs:enumeration value="local">
8263 <xs:annotation>
8264 <xs:documentation>
8265 Prevents the component from running from the source or the network (this is the default behavior if this attribute is not set).
8266 </xs:documentation>
8267 </xs:annotation>
8268 </xs:enumeration>
8269 <xs:enumeration value="source">
8270 <xs:annotation>
8271 <xs:documentation>
8272 Enforces that the component can only be run from the source (it cannot be run from the user's computer).
8273 </xs:documentation>
8274 </xs:annotation>
8275 </xs:enumeration>
8276 <xs:enumeration value="either">
8277 <xs:annotation>
8278 <xs:documentation>
8279 Allows the component to run from source or locally.
8280 </xs:documentation>
8281 </xs:annotation>
8282 </xs:enumeration>
8283 </xs:restriction>
8284 </xs:simpleType>
8285 </xs:attribute>
8286 <xs:attribute name="MultiInstance" type="YesNoTypeUnion">
8287 <xs:annotation>
8288 <xs:documentation>
8289 If this attribute is set to 'yes', a new Component/@Guid will be generated for each
8290 instance transform. Ensure that all of the resources contained in a multi-instance
8291 Component will be installed to different paths based on the instance Property; otherwise,
8292 the Component Rules will be violated.
8293 </xs:documentation>
8294 </xs:annotation>
8295 </xs:attribute>
8296 <xs:attribute name="NeverOverwrite" type="YesNoTypeUnion">
8297 <xs:annotation>
8298 <xs:documentation>
8299 If this attribute is set to 'yes', the installer does not install or reinstall the
8300 component if a key path file or a key path registry entry for the component already
8301 exists. The application does register itself as a client of the component. Use this
8302 flag only for components that are being registered by the Registry table. Do not use
8303 this flag for components registered by the AppId, Class, Extension, ProgId, MIME, and
8304 Verb tables.
8305 </xs:documentation>
8306 </xs:annotation>
8307 </xs:attribute>
8308 <xs:attribute name="Permanent" type="YesNoTypeUnion">
8309 <xs:annotation>
8310 <xs:documentation>
8311 If this attribute is set to 'yes', the installer does not remove the component during
8312 an uninstall. The installer registers an extra system client for the component in
8313 the Windows Installer registry settings (which basically just means that at least one
8314 product is always referencing this component). Note that this option differs from the
8315 behavior of not setting a guid because although the component is permanent, it is still
8316 patchable (because Windows Installer still tracks it), it's just not uninstallable.
8317 </xs:documentation>
8318 </xs:annotation>
8319 </xs:attribute>
8320 <xs:attribute name="Shared" type="YesNoTypeUnion">
8321 <xs:annotation>
8322 <xs:documentation>
8323 If this attribute's value is set to 'yes', enables advanced patching semantics for
8324 Components that are shared across multiple MSI packages. Specifically, the Windows Installer
8325 will cache the shared files to improve patch uninstall. This functionality is available
8326 in Windows Installer 4.5 and later.
8327 </xs:documentation>
8328 </xs:annotation>
8329 </xs:attribute>
8330 <xs:attribute name="SharedDllRefCount" type="YesNoTypeUnion">
8331 <xs:annotation>
8332 <xs:documentation>
8333 If this attribute's value is set to 'yes', the installer increments the reference count
8334 in the shared DLL registry of the component's key file. If this bit is not set, the
8335 installer increments the reference count only if the reference count already exists.
8336 </xs:documentation>
8337 </xs:annotation>
8338 </xs:attribute>
8339 <xs:attribute name="Subdirectory" type="xs:string">
8340 <xs:annotation>
8341 <xs:documentation>
8342 This attribute defines one or more directories below the directory referenced by the Directory attribute or parent
8343 Directory reference where the Component will be installed.
8344 </xs:documentation>
8345 </xs:annotation>
8346 </xs:attribute>
8347 <xs:attribute name="Transitive" type="YesNoTypeUnion">
8348 <xs:annotation>
8349 <xs:documentation>
8350 If this attribute is set to 'yes', the installer reevaluates the value of the statement
8351 in the Condition upon a reinstall. If the value was previously False and has changed to
8352 True, the installer installs the component. If the value was previously True and has
8353 changed to False, the installer removes the component even if the component has other
8354 products as clients.
8355 </xs:documentation>
8356 </xs:annotation>
8357 </xs:attribute>
8358 <xs:attribute name="UninstallWhenSuperseded" type="YesNoTypeUnion">
8359 <xs:annotation>
8360 <xs:documentation>
8361 If this attribute is set to 'yes', the installer will uninstall the Component's files
8362 and registry keys when it is superseded by a patch. This functionality is available in
8363 Windows Installer 4.5 and later.
8364 </xs:documentation>
8365 </xs:annotation>
8366 </xs:attribute>
8367 <xs:attribute name="Bitness" type="BitnessTypeUnion">
8368 <xs:annotation>
8369 <xs:documentation>
8370 Overrides the default Component bitness. Only 64-bit Components can install to 64-bit locations such
8371 as `ProgramFiles64Folder` and the 64-bit registry. The value `always64` will force the Component
8372 bitness to be 64-bit and cannot be included in 32-bit packages.
8373 Simliarly, the value `always32` will force the Component bitness to 32-bit and can be included in
8374 32-bit or 64-bit packages.
8375 The default value is `default` where the Component will be installed using the
8376 same bitness as the package.
8377 </xs:documentation>
8378 </xs:annotation>
8379 </xs:attribute>
8380 <xs:anyAttribute namespace="##other" processContents="lax">
8381 <xs:annotation>
8382 <xs:documentation>
8383 Extensibility point in the WiX XML Schema. Schema extensions can register additional
8384 attributes at this point in the schema.
8385 </xs:documentation>
8386 </xs:annotation>
8387 </xs:anyAttribute>
8388 </xs:complexType>
8389 </xs:element>
8390 <xs:element name="ComponentGroup">
8391 <xs:annotation>
8392 <xs:documentation>
8393 Groups together multiple components to be used in other locations.
8394 </xs:documentation>
8395 <xs:appinfo>
8396 <xse:seeAlso ref="ComponentGroupRef" />
8397 </xs:appinfo>
8398 </xs:annotation>
8399 <xs:complexType>
8400 <xs:choice minOccurs="0" maxOccurs="unbounded">
8401 <xs:element ref="Component" />
8402 <xs:element ref="ComponentGroupRef" />
8403 <xs:element ref="ComponentRef" />
8404 <xs:element ref="File" />
8405 <xs:element ref="Files" />
8406 <xs:any namespace="##other" processContents="lax">
8407 <xs:annotation>
8408 <xs:documentation>
8409 Extensibility point in the WiX XML Schema. Schema extensions can register additional
8410 elements at this point in the schema.
8411 </xs:documentation>
8412 </xs:annotation>
8413 </xs:any>
8414 </xs:choice>
8415 <xs:attribute name="Id" type="xs:string" use="required">
8416 <xs:annotation>
8417 <xs:documentation>Identifier for the ComponentGroup.</xs:documentation>
8418 </xs:annotation>
8419 </xs:attribute>
8420 <xs:attribute name="Directory" type="xs:string">
8421 <xs:annotation>
8422 <xs:documentation>
8423 Sets the default directory identifier for child Component elements.
8424 </xs:documentation>
8425 </xs:annotation>
8426 </xs:attribute>
8427 <xs:attribute name="Subdirectory" type="xs:string">
8428 <xs:annotation>
8429 <xs:documentation>
8430 This attribute defines one or more directories below the directory referenced by the Directory attribute or parent
8431 Directory reference where the contained Components will be installed.
8432 </xs:documentation>
8433 </xs:annotation>
8434 </xs:attribute>
8435 <xs:attribute name="Source" type="xs:string">
8436 <xs:annotation>
8437 <xs:documentation>
8438 Used to set the default file system source for child Component elements. For more information, see
8439 [Specifying source files](../../../tools/payloads/).
8440 </xs:documentation>
8441 </xs:annotation>
8442 </xs:attribute>
8443 <xs:anyAttribute namespace="##other" processContents="lax">
8444 <xs:annotation>
8445 <xs:documentation>
8446 Extensibility point in the WiX XML Schema. Schema extensions can register additional
8447 attributes at this point in the schema.
8448 </xs:documentation>
8449 </xs:annotation>
8450 </xs:anyAttribute>
8451 </xs:complexType>
8452 </xs:element>
8453 <xs:element name="ComponentGroupRef">
8454 <xs:annotation>
8455 <xs:documentation>
8456 Create a reference to a ComponentGroup in another Fragment.
8457 _New in WiX v5: Can be a child of the `Package` element._
8458 </xs:documentation>
8459 <xs:appinfo>
8460 <xse:seeAlso ref="ComponentGroup" />
8461 </xs:appinfo>
8462 </xs:annotation>
8463 <xs:complexType>
8464 <xs:attribute name="Id" type="xs:string" use="required">
8465 <xs:annotation>
8466 <xs:documentation>The identifier of the ComponentGroup to reference.</xs:documentation>
8467 </xs:annotation>
8468 </xs:attribute>
8469 <xs:attribute name="Primary" type="YesNoTypeUnion">
8470 <xs:annotation>
8471 <xs:documentation>
8472 Set this attribute to 'yes' in order to make the parent feature of this component
8473 the primary feature for this component. Components may belong to multiple features.
8474 By designating a feature as the primary feature of a component, you ensure that
8475 whenever a component is selected for install-on-demand (IOD), the primary feature
8476 will be the one to install it. This attribute should only be set if a component
8477 actually nests under multiple features. If a component nests under only one feature,
8478 that feature is the primary feature for the component. You cannot set more than one
8479 feature as the primary feature of a given component.
8480 </xs:documentation>
8481 </xs:annotation>
8482 </xs:attribute>
8483 <xs:anyAttribute namespace="##other" processContents="lax">
8484 <xs:annotation>
8485 <xs:documentation>
8486 Extensibility point in the WiX XML Schema. Schema extensions can register additional
8487 attributes at this point in the schema.
8488 </xs:documentation>
8489 </xs:annotation>
8490 </xs:anyAttribute>
8491 </xs:complexType>
8492 </xs:element>
8493 <xs:element name="All">
8494 <xs:annotation>
8495 <xs:documentation>Used only for PatchFamilies to include all changes between the baseline and upgraded packages in a patch.</xs:documentation>
8496 <xs:appinfo>
8497 <xse:remarks>
8498 <html:p>Warning: this is intended for testing purposes only. Shipping a patch with all changes negates the benefits of using patch families for including only specific changes.</html:p>
8499 <html:p>Because changing the ProductCode is not supported in a patch, the ProductCode property is automatically removed from the transform.</html:p>
8500 </xse:remarks>
8501 </xs:appinfo>
8502 </xs:annotation>
8503 </xs:element>
8504 <xs:element name="BinaryRef">
8505 <xs:annotation>
8506 <xs:documentation>Used only for PatchFamilies to include only a binary table entry in a patch.</xs:documentation>
8507 </xs:annotation>
8508 <xs:complexType>
8509 <xs:attribute name="Id" type="xs:string" use="required">
8510 <xs:annotation>
8511 <xs:documentation>The identifier of the Binary element to reference.</xs:documentation>
8512 </xs:annotation>
8513 </xs:attribute>
8514 <xs:anyAttribute namespace="##other" processContents="lax">
8515 <xs:annotation>
8516 <xs:documentation>
8517 Extensibility point in the WiX XML Schema. Schema extensions can register additional
8518 attributes at this point in the schema.
8519 </xs:documentation>
8520 </xs:annotation>
8521 </xs:anyAttribute>
8522 </xs:complexType>
8523 </xs:element>
8524 <xs:element name="IconRef">
8525 <xs:annotation>
8526 <xs:documentation>Used only for PatchFamilies to include only a icon table entry in a patch.</xs:documentation>
8527 </xs:annotation>
8528 <xs:complexType>
8529 <xs:attribute name="Id" type="xs:string" use="required">
8530 <xs:annotation>
8531 <xs:documentation>The identifier of the Icon element to reference.</xs:documentation>
8532 </xs:annotation>
8533 </xs:attribute>
8534 <xs:anyAttribute namespace="##other" processContents="lax">
8535 <xs:annotation>
8536 <xs:documentation>
8537 Extensibility point in the WiX XML Schema. Schema extensions can register additional
8538 attributes at this point in the schema.
8539 </xs:documentation>
8540 </xs:annotation>
8541 </xs:anyAttribute>
8542 </xs:complexType>
8543 </xs:element>
8544 <xs:element name="ComponentRef">
8545 <xs:annotation>
8546 <xs:documentation>
8547 Create a reference to a Feature element in another Fragment.
8548 _New in WiX v5: Can be a child of the `Package` element._
8549 </xs:documentation>
8550 <xs:appinfo>
8551 <xse:seeAlso ref="Component" />
8552 <xse:howtoRef href="files_and_registry/add_a_file.html">How To: Add a file to your installer</xse:howtoRef>
8553 </xs:appinfo>
8554 </xs:annotation>
8555 <xs:complexType>
8556 <xs:attribute name="Id" type="xs:string" use="required">
8557 <xs:annotation>
8558 <xs:documentation>The identifier of the Component element to reference.</xs:documentation>
8559 </xs:annotation>
8560 </xs:attribute>
8561 <xs:attribute name="Primary" type="YesNoTypeUnion">
8562 <xs:annotation>
8563 <xs:documentation>
8564 Set this attribute to 'yes' in order to make the parent feature of this component
8565 the primary feature for this component. Components may belong to multiple features.
8566 By designating a feature as the primary feature of a component, you ensure that
8567 whenever a component is selected for install-on-demand (IOD), the primary feature
8568 will be the one to install it. This attribute should only be set if a component
8569 actually nests under multiple features. If a component nests under only one feature,
8570 that feature is the primary feature for the component. You cannot set more than one
8571 feature as the primary feature of a given component.
8572 </xs:documentation>
8573 </xs:annotation>
8574 </xs:attribute>
8575 <xs:anyAttribute namespace="##other" processContents="lax">
8576 <xs:annotation>
8577 <xs:documentation>
8578 Extensibility point in the WiX XML Schema. Schema extensions can register additional
8579 attributes at this point in the schema.
8580 </xs:documentation>
8581 </xs:annotation>
8582 </xs:anyAttribute>
8583 </xs:complexType>
8584 </xs:element>
8585 <xs:element name="Merge">
8586 <xs:annotation>
8587 <xs:appinfo>
8588 <xse:seeAlso ref="MergeRef" />
8589 <xse:howtoRef href="redistributables_and_install_checks/install_vcredist.html">How To: Install the Visual C++ Redistributable with your installer</xse:howtoRef>
8590 </xs:appinfo>
8591 <xs:documentation>Merge directive to bring in a merge module that will be redirected to the parent directory.</xs:documentation>
8592 </xs:annotation>
8593 <xs:complexType>
8594 <xs:choice minOccurs="0" maxOccurs="unbounded">
8595 <xs:element ref="ConfigurationData">
8596 <xs:annotation>
8597 <xs:documentation>Data to use as input to a configurable merge module.</xs:documentation>
8598 </xs:annotation>
8599 </xs:element>
8600 </xs:choice>
8601 <xs:attribute name="Id" type="xs:string" use="required">
8602 <xs:annotation>
8603 <xs:documentation>The unique identifier for the Merge element in the source code. Referenced by the MergeRef/@Id.</xs:documentation>
8604 </xs:annotation>
8605 </xs:attribute>
8606 <xs:attribute name="DiskId" type="DiskIdType">
8607 <xs:annotation>
8608 <xs:documentation>The value of this attribute should correspond to the Id attribute of a
8609 Media element authored elsewhere. By creating this connection between the merge module and Media
8610 element, you set the packaging options to the values specified in the Media
8611 element (values such as compression level, cab embedding, etc...).</xs:documentation>
8612 </xs:annotation>
8613 </xs:attribute>
8614 <xs:attribute name="FileCompression" type="YesNoTypeUnion">
8615 <xs:annotation>
8616 <xs:documentation>Specifies if the files in the merge module should be compressed.</xs:documentation>
8617 </xs:annotation>
8618 </xs:attribute>
8619 <xs:attribute name="Language" type="LocalizableInteger" use="required">
8620 <xs:annotation>
8621 <xs:documentation>Specifies the decimal LCID or localization token for the language to merge the Module in as.</xs:documentation>
8622 </xs:annotation>
8623 </xs:attribute>
8624 <xs:attribute name="SourceFile" type="xs:string">
8625 <xs:annotation>
8626 <xs:documentation>Path to the source location of the merge module.</xs:documentation>
8627 </xs:annotation>
8628 </xs:attribute>
8629 </xs:complexType>
8630 </xs:element>
8631 <xs:element name="MergeRef">
8632 <xs:annotation>
8633 <xs:appinfo>
8634 <xse:seeAlso ref="Merge" />
8635 <xse:howtoRef href="redistributables_and_install_checks/install_vcredist.html">How To: Install the Visual C++ Redistributable with your installer</xse:howtoRef>
8636 </xs:appinfo>
8637 <xs:documentation>Merge reference to connect a Merge Module to parent Feature</xs:documentation>
8638 </xs:annotation>
8639 <xs:complexType>
8640 <xs:attribute name="Id" type="xs:string" use="required">
8641 <xs:annotation>
8642 <xs:documentation>The unique identifier for the Merge element to be referenced.</xs:documentation>
8643 </xs:annotation>
8644 </xs:attribute>
8645 <xs:attribute name="Primary" type="YesNoTypeUnion">
8646 <xs:annotation>
8647 <xs:documentation>Specifies whether the feature containing this MergeRef is the primary feature for advertising the merge module's components.</xs:documentation>
8648 </xs:annotation>
8649 </xs:attribute>
8650 <xs:anyAttribute namespace="##other" processContents="lax">
8651 <xs:annotation>
8652 <xs:documentation>
8653 Extensibility point in the WiX XML Schema. Schema extensions can register additional
8654 attributes at this point in the schema.
8655 </xs:documentation>
8656 </xs:annotation>
8657 </xs:anyAttribute>
8658 </xs:complexType>
8659 </xs:element>
8660 <xs:element name="ConfigurationData">
8661 <xs:annotation>
8662 <xs:documentation>Data to use as input to a configurable merge module.</xs:documentation>
8663 </xs:annotation>
8664 <xs:complexType>
8665 <xs:attribute name="Name" type="xs:string" use="required">
8666 <xs:annotation>
8667 <xs:documentation>Name of the item in the ModuleConfiguration table.</xs:documentation>
8668 </xs:annotation>
8669 </xs:attribute>
8670 <xs:attribute name="Value" type="xs:string" use="required">
8671 <xs:annotation>
8672 <xs:documentation>Value to be passed to configurable merge module.</xs:documentation>
8673 </xs:annotation>
8674 </xs:attribute>
8675 </xs:complexType>
8676 </xs:element>
8677 <xs:element name="Directory">
8678 <xs:annotation>
8679 <xs:documentation>Directory layout for the product. Also specifies the mappings between source and target directories.</xs:documentation>
8680 <xs:appinfo>
8681 <xse:seeAlso ref="DirectoryRef" />
8682 <xse:msiRef table="Directory" href="http://msdn.microsoft.com/library/aa368295.aspx" />
8683 <xse:howtoRef href="files_and_registry/add_a_file.html">How To: Add a file to your installer</xse:howtoRef>
8684 </xs:appinfo>
8685 </xs:annotation>
8686 <xs:complexType>
8687 <xs:choice minOccurs="0" maxOccurs="unbounded">
8688 <xs:element ref="Component" />
8689 <xs:element ref="Directory" />
8690 <xs:element ref="File" />
8691 <xs:element ref="Files" />
8692 <xs:element ref="Merge" />
8693 <xs:element ref="SymbolPath" />
8694 <xs:any namespace="##other" processContents="lax">
8695 <xs:annotation>
8696 <xs:documentation>
8697 Extensibility point in the WiX XML Schema. Schema extensions can register additional
8698 elements at this point in the schema.
8699 </xs:documentation>
8700 </xs:annotation>
8701 </xs:any>
8702 </xs:choice>
8703 <xs:attribute name="Id" type="xs:string">
8704 <xs:annotation>
8705 <xs:documentation>
8706 An optional identifier for the directory. If one is not specified,
8707 a private identifier will be generated.
8708 </xs:documentation>
8709 </xs:annotation>
8710 </xs:attribute>
8711 <xs:attribute name="ComponentGuidGenerationSeed" type="Guid">
8712 <xs:annotation>
8713 <xs:documentation>
8714 The Component Guid Generation Seed is a guid that must be used when a Component with the generate guid directive ("*")
8715 is not rooted in a standard Windows Installer directory (for example, ProgramFilesFolder or CommonFilesFolder).
8716 It is recommended that this attribute be avoided and that developers install their Components under standard
8717 directories with unique names instead (for example, "ProgramFilesFolder\Company Name Product Name Version"). It is
8718 important to note that once a directory is assigned a Component Guid Generation Seed the value must not change until
8719 (and must be changed when) the path to that directory, including itself and all parent directories, changes.
8720 </xs:documentation>
8721 </xs:annotation>
8722 </xs:attribute>
8723 <xs:attribute name="DiskId" type="DiskIdType">
8724 <xs:annotation>
8725 <xs:documentation>
8726 Sets the default disk identifier for the files contained in this directory.
8727 This attribute's value may be overridden by a child Component, Directory,
8728 Merge or File element. See the File or Merge elements' DiskId attribute for
8729 more information.
8730 </xs:documentation>
8731 </xs:annotation>
8732 </xs:attribute>
8733 <xs:attribute name="FileSource" type="xs:string">
8734 <xs:annotation>
8735 <xs:documentation>Used to set the file system source for this directory's child elements.
8736 For more information, see [Specifying source files](../../../tools/payloads/).</xs:documentation>
8737 </xs:annotation>
8738 </xs:attribute>
8739 <xs:attribute name="Name" type="xs:string">
8740 <xs:annotation>
8741 <xs:documentation>
8742 The name of the directory.
8743
8744 Do not specify this attribute if this directory represents
8745 the same directory as the parent (see the Windows Installer SDK's
8746 <html:a href="http://msdn.microsoft.com/library/Aa368295.aspx">Directory table</html:a>
8747 topic for more information about the "." operator).
8748
8749 This attribute's value may either a short or long directory name. If a short directory
8750 name is specified, the ShortName attribute may not be specified. If this value is a long
8751 directory name, the ShortName attribute may be omitted to
8752 allow WiX to attempt to generate a unique short directory name.
8753 However, if this name collides with another directory or you wish to manually specify
8754 the short directory name, then the ShortName attribute may be specified.
8755 </xs:documentation>
8756 </xs:annotation>
8757 </xs:attribute>
8758 <xs:attribute name="ShortName" type="ShortFileNameType">
8759 <xs:annotation>
8760 <xs:documentation>
8761 The short name of the directory in 8.3 format.
8762 This attribute should only be set if there is a conflict between generated short directory names
8763 or the user wants to manually specify the short directory name.
8764 </xs:documentation>
8765 </xs:annotation>
8766 </xs:attribute>
8767 <xs:attribute name="ShortSourceName" type="ShortFileNameType">
8768 <xs:annotation>
8769 <xs:documentation>
8770 The short name of the directory on the source media in 8.3 format.
8771 This attribute should only be set if there is a conflict between generated short directory names
8772 or the user wants to manually specify the short source directory name.
8773 </xs:documentation>
8774 </xs:annotation>
8775 </xs:attribute>
8776 <xs:attribute name="SourceName" type="LongFileNameType">
8777 <xs:annotation>
8778 <xs:documentation>
8779 The name of the directory on the source media.
8780 If this attribute is not specified, Windows Installer will default to the Name attribute.
8781
8782 In prior versions of the WiX toolset, this attribute specified the short source directory name.
8783 This attribute's value may now be either a short or long directory name.
8784 If a short directory name is specified, the ShortSourceName attribute may not be specified.
8785 If a long directory name is specified, the LongSource attribute may not be specified.
8786 Also, if this value is a long directory name, the ShortSourceName attribute may be omitted to
8787 allow WiX to attempt to generate a unique short directory name.
8788 However, if this name collides with another directory or you wish to manually specify
8789 the short directory name, then the ShortSourceName attribute may be specified.
8790 </xs:documentation>
8791 </xs:annotation>
8792 </xs:attribute>
8793 <xs:anyAttribute namespace="##other" processContents="lax">
8794 <xs:annotation>
8795 <xs:documentation>
8796 Extensibility point in the WiX XML Schema. Schema extensions can register additional
8797 attributes at this point in the schema.
8798 </xs:documentation>
8799 </xs:annotation>
8800 </xs:anyAttribute>
8801 </xs:complexType>
8802 </xs:element>
8803 <xs:element name="DirectoryRef">
8804 <xs:annotation>
8805 <xs:documentation>Create a reference to a Directory element in another Fragment.</xs:documentation>
8806 <xs:appinfo>
8807 <xse:seeAlso ref="Directory" />
8808 <xse:howtoRef href="files_and_registry/add_a_file.html">How To: Add a file to your installer</xse:howtoRef>
8809 </xs:appinfo>
8810 </xs:annotation>
8811 <xs:complexType>
8812 <xs:choice minOccurs="0" maxOccurs="unbounded">
8813 <xs:element ref="Component" />
8814 <xs:element ref="Directory" />
8815 <xs:element ref="File" />
8816 <xs:element ref="Files" />
8817 <xs:element ref="Merge" />
8818 <xs:any namespace="##other" processContents="lax">
8819 <xs:annotation>
8820 <xs:documentation>
8821 Extensibility point in the WiX XML Schema. Schema extensions can register additional
8822 elements at this point in the schema.
8823 </xs:documentation>
8824 </xs:annotation>
8825 </xs:any>
8826 </xs:choice>
8827 <xs:attribute name="Id" type="xs:string" use="required">
8828 <xs:annotation>
8829 <xs:documentation>The identifier of the Directory element to reference.</xs:documentation>
8830 </xs:annotation>
8831 </xs:attribute>
8832 <xs:attribute name="DiskId" type="DiskIdType">
8833 <xs:annotation>
8834 <xs:documentation>
8835 Sets the default disk identifier for the files contained in this directory.
8836 This attribute's value may be overridden by a child Component, Directory,
8837 Merge or File element. See the File or Merge elements' DiskId attribute for
8838 more information.
8839 </xs:documentation>
8840 </xs:annotation>
8841 </xs:attribute>
8842 <xs:attribute name="FileSource" type="xs:string">
8843 <xs:annotation>
8844 <xs:documentation>Used to set the file system source for this DirectoryRef's child elements.
8845 For more information, see [Specifying source files](../../../tools/payloads/).</xs:documentation>
8846 </xs:annotation>
8847 </xs:attribute>
8848 <xs:anyAttribute namespace="##other" processContents="lax">
8849 <xs:annotation>
8850 <xs:documentation>
8851 Extensibility point in the WiX XML Schema. Schema extensions can register additional
8852 attributes at this point in the schema.
8853 </xs:documentation>
8854 </xs:annotation>
8855 </xs:anyAttribute>
8856 </xs:complexType>
8857 </xs:element>
8858 <xs:element name="SoftwareTag">
8859 <xs:annotation>
8860 <xs:documentation>
8861 This extension implements the ISO/IEC 19770-2:2015 specification. A SWID tag file
8862 will be generated an inserted into the Package or Bundle.
8863 </xs:documentation>
8864 </xs:annotation>
8865 <xs:complexType>
8866 <xs:attribute name="Name" type="xs:string">
8867 <xs:annotation>
8868 <xs:documentation>
8869 Name to use in the filename for the software id tag. By default the filename
8870 uses the Bundle/@Name or Package/@Name. If the bundle name or package name contains
8871 invalid filename characters such as ":" or "?", use this attribute to provide
8872 a valid filename.
8873 </xs:documentation>
8874 </xs:annotation>
8875 </xs:attribute>
8876 <xs:attribute name="Regid" type="xs:string" use="required">
8877 <xs:annotation>
8878 <xs:documentation>
8879 The regid for the software manufacturer. A regid is a URI simplified for the common
8880 case. Namely, if the scheme is "http://", it can be removed. Additionally, the domain
8881 should be minimized as much as possible (for example, remove "www." prefix if unnecessary).
8882
8883 For example, the WiX toolset regid is "wixtoolset.org".
8884 </xs:documentation>
8885 </xs:annotation>
8886 </xs:attribute>
8887 <xs:attribute name="InstallDirectory" type="xs:string">
8888 <xs:annotation>
8889 <xs:documentation>
8890 A reference to an existing Directory/@Id where the software is installed. The SWID tag file will be installed in a "swidtag" folder
8891 under that directory as per the specification. This attribute is required on a SoftwareTag element found under a Package element.
8892 </xs:documentation>
8893 </xs:annotation>
8894 </xs:attribute>
8895 <xs:attribute name="InstallPath" type="xs:string">
8896 <xs:annotation>
8897 <xs:documentation>
8898 The path where the software is installed. The SWID tag file will be installed in a "swidtag" folder.
8899 This is a formatted attribute so it is possible to use Variables as the InstallPath by setting
8900 the value to, for example, "[ProgramFilesFolder]CompanyName\Product Name". This attribute is required
8901 on a SoftwareTag element found under a Bundle element.
8902 </xs:documentation>
8903 </xs:annotation>
8904 </xs:attribute>
8905 <xs:attribute name="Feature" type="xs:string">
8906 <xs:annotation>
8907 <xs:documentation>
8908 Optional attribute to explicitly set the Feature when defining the software id tag
8909 in a Package. By default the software id tag will always be installed by a top-level hidden feature.
8910 It is recommended to <html:strong>not</html:strong> set this attribute.
8911 </xs:documentation>
8912 </xs:annotation>
8913 </xs:attribute>
8914 <xs:attribute name="Bitness" type="BitnessTypeUnion">
8915 <xs:annotation>
8916 <xs:documentation>
8917 This attribute facilitates the installation of packages that install both 32-bit and 64-bit files. Set this attribute to 'always32'
8918 force the software id tag to a 32-bit location (such as "ProgramFilesFolder") or 'always64' to force the tag to be installed to
8919 a 64-bit location (such as "ProgramFiles64Folder").
8920
8921 The default value is `default` where the tag will be installed to the directory that matches the
8922 same bitness as the package.
8923
8924 This attribute is only allowed on a SoftwareTag element found under a Package element.
8925 </xs:documentation>
8926 </xs:annotation>
8927 </xs:attribute>
8928 </xs:complexType>
8929 </xs:element>
8930 <xs:element name="StandardDirectory">
8931 <xs:annotation>
8932 <xs:documentation>References a standard Windows Installer directory, such as ProgramFilesFolder.</xs:documentation>
8933 <xs:appinfo>
8934 <xse:seeAlso ref="Directory" />
8935 <xse:howtoRef href="files_and_registry/add_a_file.html">How To: Add a file to your installer</xse:howtoRef>
8936 </xs:appinfo>
8937 </xs:annotation>
8938 <xs:complexType>
8939 <xs:choice minOccurs="0" maxOccurs="unbounded">
8940 <xs:element ref="Component" />
8941 <xs:element ref="Directory" />
8942 <xs:element ref="File" />
8943 <xs:element ref="Files" />
8944 <xs:element ref="Merge" />
8945 <xs:any namespace="##other" processContents="lax">
8946 <xs:annotation>
8947 <xs:documentation>
8948 Extensibility point in the WiX XML Schema. Schema extensions can register additional
8949 elements at this point in the schema.
8950 </xs:documentation>
8951 </xs:annotation>
8952 </xs:any>
8953 </xs:choice>
8954 <xs:attribute name="Id" type="StandardDirectoryTypeUnion" use="required">
8955 <xs:annotation>
8956 <xs:documentation>The identifier of the standard directory to include in the package.</xs:documentation>
8957 </xs:annotation>
8958 </xs:attribute>
8959 <xs:anyAttribute namespace="##other" processContents="lax">
8960 <xs:annotation>
8961 <xs:documentation>
8962 Extensibility point in the WiX XML Schema. Schema extensions can register additional
8963 attributes at this point in the schema.
8964 </xs:documentation>
8965 </xs:annotation>
8966 </xs:anyAttribute>
8967 </xs:complexType>
8968 </xs:element>
8969 <xs:element name="Files">
8970 <xs:annotation>
8971 <xs:documentation>
8972 Authoring to define the set of files to be harvested for inclusion in a package.
8973 </xs:documentation>
8974 </xs:annotation>
8975 <xs:complexType>
8976 <xs:choice minOccurs="0" maxOccurs="unbounded">
8977 <xs:element ref="Exclude" />
8978 <xs:any namespace="##other" processContents="lax">
8979 <xs:annotation>
8980 <xs:documentation>
8981 Extensibility point in the WiX XML Schema. Schema extensions can register additional
8982 elements at this point in the schema.
8983 </xs:documentation>
8984 </xs:annotation>
8985 </xs:any>
8986 </xs:choice>
8987 <xs:attribute name="Include" type="xs:string" use="required">
8988 <xs:annotation>
8989 <xs:documentation>
8990 A file-selection pattern that can include directory names, file names, and wildcards.
8991 If a pattern is not an absolute path (via a preprocessor variable, unnamed bind path,
8992 or named bind path), it is interpreted as relative to the directory containing the
8993 source file. Absolute paths via a named bind path are recommended.
8994
8995 Wildcards include typical `*.ext` globs and MSBuild-style `**` globs to indicate
8996 that directories should be recursed. Examples include:
8997
8998 | Pattern | Description |
8999 | ------- | ----------- |
9000 | `!(bindpath.ToBeHarvested)\**` | All files in the parent directory identified by the `ToBeHarvested` bind path and its subdirectories. |
9001 | `$(PayloadFiles)\bin\Release\**` | All files in the `bin\Release` subdirectory in the directory named by the `PayloadFiles` preprocessor variable and its subdirectories. |
9002 | `!(bindpath.arm64)\**.pdb` | All files with `.pdb` extension in the parent directory identified by the `arm64` bind path and its subdirectories. |
9003 | `**` | If an unnamed bind path was specified, all files in that directory and its subdirectories. If an unnamed bind path was _not_ specified, all files in directory of the source .wxs file and its subdirectories. |
9004 </xs:documentation>
9005 </xs:annotation>
9006 </xs:attribute>
9007 <xs:attribute name="Directory" type="xs:string">
9008 <xs:annotation>
9009 <xs:documentation>
9010 This attribute specifies a reference to a Directory element with matching Id attribute containing a directory path
9011 for the root of the harvested files.
9012 </xs:documentation>
9013 </xs:annotation>
9014 </xs:attribute>
9015 <xs:attribute name="Subdirectory" type="xs:string">
9016 <xs:annotation>
9017 <xs:documentation>
9018 This attribute defines one or more directories below the directory referenced by the Directory attribute.
9019 This attribute is optional but can only be specified when the Directory attribute is also specified.
9020 </xs:documentation>
9021 </xs:annotation>
9022 </xs:attribute>
9023 <xs:anyAttribute namespace="##other" processContents="lax">
9024 <xs:annotation>
9025 <xs:documentation>
9026 Extensibility point in the WiX XML Schema. Schema extensions can register additional
9027 attributes at this point in the schema.
9028 </xs:documentation>
9029 </xs:annotation>
9030 </xs:anyAttribute>
9031 </xs:complexType>
9032 </xs:element>
9033 <xs:element name="Exclude">
9034 <xs:annotation>
9035 <xs:documentation>
9036 Using wildcards, defines the files from a parent `Files` element that should be excluded from harvesting.
9037 </xs:documentation>
9038 </xs:annotation>
9039 <xs:complexType>
9040 <xs:choice minOccurs="0" maxOccurs="unbounded">
9041 <xs:any namespace="##other" processContents="lax">
9042 <xs:annotation>
9043 <xs:documentation>
9044 Extensibility point in the WiX XML Schema. Schema extensions can register additional
9045 elements at this point in the schema.
9046 </xs:documentation>
9047 </xs:annotation>
9048 </xs:any>
9049 </xs:choice>
9050 <xs:attribute name="Files" type="xs:string" use="required">
9051 <xs:annotation>
9052 <xs:documentation>
9053 Excludes files from the set of files harvested via the parent `Files` element.
9054 Inclusion and exclusion wildcards must match paths. For example, if you have a
9055 `Files` element with `Include="!(bindpath.ToBeHarvested)\**"` and want to
9056 exclude one of the files, use an `Exclude` element with a `Files` attribute
9057 like `!(bindpath.ToBeHarvested)\notatest.txt` to match the inclusion path.
9058 You can also use the `**` wildcard to match directories, such as
9059 `Files="**\pleasedontincludeme.dat"`.
9060
9061 The file-selection pattern can include directory names, file names, and wildcards.
9062 If a pattern is not an absolute path (via a preprocessor variable, unnamed bind path,
9063 or named bind path), it is interpreted as relative to the directory containing the
9064 source file. Absolute paths via a named bind path are recommended.
9065
9066 Wildcards include typical `*.ext` globs and MSBuild-style `**` globs to indicate
9067 that directories should be recursed. Examples include:
9068
9069 | Pattern | Description |
9070 | ------- | ----------- |
9071 | `!(bindpath.ToBeHarvested)\**` | All files in the parent directory identified by the `ToBeHarvested` bind path and its subdirectories. |
9072 | `$(PayloadFiles)\bin\Release\**` | All files in the `bin\Release` subdirectory in the directory named by the `PayloadFiles` preprocessor variable and its subdirectories. |
9073 | `!(bindpath.arm64)\**.pdb` | All files with `.pdb` extension in the parent directory identified by the `arm64` bind path and its subdirectories. |
9074 | `**` | If an unnamed bind path was specified, all files in that directory and its subdirectories. If an unnamed bind path was _not_ specified, all files in directory of the source .wxs file and its subdirectories. |
9075 </xs:documentation>
9076 </xs:annotation>
9077 </xs:attribute>
9078 <xs:anyAttribute namespace="##other" processContents="lax">
9079 <xs:annotation>
9080 <xs:documentation>
9081 Extensibility point in the WiX XML Schema. Schema extensions can register additional
9082 attributes at this point in the schema.
9083 </xs:documentation>
9084 </xs:annotation>
9085 </xs:anyAttribute>
9086 </xs:complexType>
9087 </xs:element>
9088 <xs:element name="UpgradeVersion">
9089 <xs:annotation>
9090 <xs:appinfo>
9091 <xse:msiRef table="Upgrade" href="https://learn.microsoft.com/en-us/windows/win32/msi/upgrade-table" />
9092 </xs:appinfo>
9093 </xs:annotation>
9094 <xs:complexType>
9095 <xs:attribute name="Minimum" type="xs:string">
9096 <xs:annotation>
9097 <xs:documentation>Specifies the lower bound on the range of product versions to be detected by FindRelatedProducts.</xs:documentation>
9098 </xs:annotation>
9099 </xs:attribute>
9100 <xs:attribute name="Maximum" type="xs:string">
9101 <xs:annotation>
9102 <xs:documentation>Specifies the upper boundary of the range of product versions detected by FindRelatedProducts.</xs:documentation>
9103 </xs:annotation>
9104 </xs:attribute>
9105 <xs:attribute name="Language" type="xs:string">
9106 <xs:annotation>
9107 <xs:documentation>Specifies the set of languages detected by FindRelatedProducts. Enter a list of numeric language identifiers (LANGID) separated by commas (,). Leave this value null to specify all languages. Set ExcludeLanguages to "yes" in order detect all languages, excluding the languages listed in this value.</xs:documentation>
9108 </xs:annotation>
9109 </xs:attribute>
9110 <xs:attribute name="RemoveFeatures" type="xs:string">
9111 <xs:annotation>
9112 <xs:documentation>The installer sets the REMOVE property to features specified in this column. The features to be removed can be determined at run time. The Formatted string entered in this field must evaluate to a comma-delimited list of feature names. For example: [Feature1],[Feature2],[Feature3]. No features are removed if the field contains formatted text that evaluates to an empty string. The installer sets REMOVE=ALL only if the Remove field is empty.</xs:documentation>
9113 </xs:annotation>
9114 </xs:attribute>
9115 <xs:attribute name="Property" type="xs:string" use="required">
9116 <xs:annotation>
9117 <xs:documentation>When the FindRelatedProducts action detects a related product installed on the system, it appends the product code to the property specified in this field. Windows Installer documentation for the <html:a href="https://learn.microsoft.com/en-us/windows/win32/msi/upgrade-table">Upgrade table</html:a> states that the property specified in this field must be a public property and must be added to the <html:a href="http://msdn.microsoft.com/library/aa371571.aspx">SecureCustomProperties</html:a> property. WiX automatically appends the property specified in this field to the SecureCustomProperties property when creating an MSI. Each UpgradeVersion must have a unique Property value. After the FindRelatedProducts action is run, the value of this property is a list of product codes, separated by semicolons (;), detected on the system.</xs:documentation>
9118 </xs:annotation>
9119 </xs:attribute>
9120 <xs:attribute name="MigrateFeatures" type="YesNoTypeUnion">
9121 <xs:annotation>
9122 <xs:documentation>Set to "yes" to migrate feature states from upgraded products by enabling the logic in the MigrateFeatureStates action.</xs:documentation>
9123 </xs:annotation>
9124 </xs:attribute>
9125 <xs:attribute name="OnlyDetect" type="YesNoTypeUnion">
9126 <xs:annotation>
9127 <xs:documentation>Set to "yes" to detect products and applications but do not uninstall.</xs:documentation>
9128 </xs:annotation>
9129 </xs:attribute>
9130 <xs:attribute name="IgnoreRemoveFailure" type="YesNoTypeUnion">
9131 <xs:annotation>
9132 <xs:documentation>Set to "yes" to continue installation upon failure to remove a product or application.</xs:documentation>
9133 </xs:annotation>
9134 </xs:attribute>
9135 <xs:attribute name="IncludeMinimum" type="YesNoTypeUnion">
9136 <xs:annotation>
9137 <xs:documentation>Set to "no" to make the range of versions detected exclude the value specified in Minimum. This attribute is "yes" by default.</xs:documentation>
9138 </xs:annotation>
9139 </xs:attribute>
9140 <xs:attribute name="IncludeMaximum" type="YesNoTypeUnion">
9141 <xs:annotation>
9142 <xs:documentation>Set to "yes" to make the range of versions detected include the value specified in Maximum.</xs:documentation>
9143 </xs:annotation>
9144 </xs:attribute>
9145 <xs:attribute name="ExcludeLanguages" type="YesNoTypeUnion">
9146 <xs:annotation>
9147 <xs:documentation>Set to "yes" to detect all languages, excluding the languages listed in the Language attribute.</xs:documentation>
9148 </xs:annotation>
9149 </xs:attribute>
9150 <xs:anyAttribute namespace="##other" processContents="lax">
9151 <xs:annotation>
9152 <xs:documentation>
9153 Extensibility point in the WiX XML Schema. Schema extensions can register additional
9154 attributes at this point in the schema.
9155 </xs:documentation>
9156 </xs:annotation>
9157 </xs:anyAttribute>
9158 </xs:complexType>
9159 </xs:element>
9160 <xs:element name="Upgrade">
9161 <xs:annotation>
9162 <xs:documentation>
9163 Upgrade info for a particular UpgradeCode
9164 </xs:documentation>
9165 <xs:appinfo>
9166 <xse:msiRef table="Upgrade" href="https://learn.microsoft.com/en-us/windows/win32/msi/upgrade-table" />
9167 </xs:appinfo>
9168 </xs:annotation>
9169 <xs:complexType>
9170 <xs:choice minOccurs="0" maxOccurs="unbounded">
9171 <xs:element ref="UpgradeVersion" />
9172 <xs:element ref="Property">
9173 <xs:annotation>
9174 <xs:documentation>
9175 Nesting a Property element under an Upgrade element has been deprecated.
9176 Please nest Property elements in any of the other supported locations.
9177 </xs:documentation>
9178 </xs:annotation>
9179 </xs:element>
9180 </xs:choice>
9181 <xs:attribute name="Id" type="Guid" use="required">
9182 <xs:annotation>
9183 <xs:documentation>This value specifies the upgrade code for the products that are to be detected by the FindRelatedProducts action.</xs:documentation>
9184 </xs:annotation>
9185 </xs:attribute>
9186 </xs:complexType>
9187 </xs:element>
9188 <xs:element name="Feature">
9189 <xs:annotation>
9190 <xs:documentation>
9191 A feature for the Feature table. Features are the smallest installable unit. See msi.chm for more
9192 detailed information on the myriad installation options for a feature.
9193 </xs:documentation>
9194 <xs:appinfo>
9195 <xse:seeAlso ref="FeatureRef" />
9196 <xse:msiRef table="Feature" href="https://learn.microsoft.com/en-us/windows/win32/msi/feature-table" />
9197 <xse:howtoRef href="files_and_registry/add_a_file.html">How To: Add a file to your installer</xse:howtoRef>
9198 </xs:appinfo>
9199 </xs:annotation>
9200 <xs:complexType>
9201 <xs:choice minOccurs="0" maxOccurs="unbounded">
9202 <xs:element ref="Component" />
9203 <xs:element ref="ComponentGroupRef" />
9204 <xs:element ref="ComponentRef" />
9205 <xs:element ref="File" />
9206 <xs:element ref="Files" />
9207 <xs:element ref="Level" />
9208 <xs:element ref="Feature" />
9209 <xs:element ref="FeatureGroupRef" />
9210 <xs:element ref="FeatureRef" />
9211 <xs:element ref="MergeRef" />
9212 <xs:any namespace="##other" processContents="lax">
9213 <xs:annotation>
9214 <xs:documentation>
9215 Extensibility point in the WiX XML Schema. Schema extensions can register additional
9216 elements at this point in the schema.
9217 </xs:documentation>
9218 </xs:annotation>
9219 </xs:any>
9220 </xs:choice>
9221 <xs:attribute name="Id" type="xs:string" use="required">
9222 <xs:annotation>
9223 <xs:documentation>Unique identifier of the feature. The id must be shorter than 38 characters.</xs:documentation>
9224 </xs:annotation>
9225 </xs:attribute>
9226 <xs:attribute name="AllowAbsent" type="YesNoTypeUnion">
9227 <xs:annotation>
9228 <xs:documentation>
9229 This attribute determines if a user will have the option to set a feature to absent in the user interface.
9230 </xs:documentation>
9231 </xs:annotation>
9232 </xs:attribute>
9233 <xs:attribute name="AllowAdvertise" type="YesNoTypeUnion">
9234 <xs:annotation>
9235 <xs:documentation>
9236 This attribute determines the possible advertise states for this feature. The default is 'yes'.
9237 </xs:documentation>
9238 </xs:annotation>
9239 </xs:attribute>
9240 <xs:attribute name="ConfigurableDirectory" type="xs:string">
9241 <xs:annotation>
9242 <xs:documentation>
9243 Specify the Id of a Directory that can be configured by the user at installation time. This identifier
9244 must be a public property and therefore completely uppercase.
9245 </xs:documentation>
9246 </xs:annotation>
9247 </xs:attribute>
9248 <xs:attribute name="Description" type="xs:string">
9249 <xs:annotation>
9250 <xs:documentation>
9251 Longer string of text describing the feature. This localizable string is displayed by the
9252 Text Control of the Selection Dialog.
9253 </xs:documentation>
9254 </xs:annotation>
9255 </xs:attribute>
9256 <xs:attribute name="Display" type="xs:string">
9257 <xs:annotation>
9258 <xs:documentation>
9259 Determines the initial display of this feature in the feature tree.
9260 This attribute's value should be one of the following:
9261
9262 - `collapse`: Initially shows the feature collapsed. This is the default value.
9263 - `expand`: Initially shows the feature expanded.
9264 - `hidden`: Prevents the feature from displaying in the user interface.
9265 - an explicit integer value: For advanced users only, it is possible to directly set the integer value of the display value that will appear in the Feature row.
9266 </xs:documentation>
9267 </xs:annotation>
9268 </xs:attribute>
9269 <xs:attribute name="InstallDefault">
9270 <xs:annotation>
9271 <xs:documentation>
9272 This attribute determines the default install/run location of a feature. This attribute cannot be specified
9273 if the value of the FollowParent attribute is 'yes' since that would ask the installer to force this feature
9274 to follow the parent installation state and simultaneously favor a particular installation state just for this feature.
9275 </xs:documentation>
9276 </xs:annotation>
9277 <xs:simpleType>
9278 <xs:restriction base="xs:NMTOKEN">
9279 <xs:enumeration value="followParent">
9280 <xs:annotation>
9281 <xs:documentation>
9282 Forces the feature to follow the same installation state as its parent feature.
9283 </xs:documentation>
9284 </xs:annotation>
9285 </xs:enumeration>
9286 <xs:enumeration value="local">
9287 <xs:annotation>
9288 <xs:documentation>
9289 Favors installing this feature locally by setting the msidbFeatureAttributesFavorLocal attribute.
9290 </xs:documentation>
9291 </xs:annotation>
9292 </xs:enumeration>
9293 <xs:enumeration value="source">
9294 <xs:annotation>
9295 <xs:documentation>
9296 Favors running this feature from source by setting the msidbFeatureAttributesFavorSource attribute.
9297 </xs:documentation>
9298 </xs:annotation>
9299 </xs:enumeration>
9300 </xs:restriction>
9301 </xs:simpleType>
9302 </xs:attribute>
9303 <xs:attribute name="Level" type="Integer">
9304 <xs:annotation>
9305 <xs:documentation>
9306 Sets the install level of this feature. A value of 0 will disable the feature. This value
9307 can be modified at install time using the Level element as a child of the Feature.
9308 The default value is "1".
9309 </xs:documentation>
9310 </xs:annotation>
9311 </xs:attribute>
9312 <xs:attribute name="Title" type="xs:string">
9313 <xs:annotation>
9314 <xs:documentation>
9315 Short string of text identifying the feature. This string is listed as an item by the
9316 SelectionTree control of the Selection Dialog.
9317 </xs:documentation>
9318 </xs:annotation>
9319 </xs:attribute>
9320 <xs:attribute name="TypicalDefault">
9321 <xs:annotation>
9322 <xs:documentation>
9323 This attribute determines the default advertise state of the feature.
9324 </xs:documentation>
9325 </xs:annotation>
9326 <xs:simpleType>
9327 <xs:restriction base="xs:NMTOKEN">
9328 <xs:enumeration value="advertise">
9329 <xs:annotation>
9330 <xs:documentation>
9331 Sets the feature to be advertised by setting the msidbFeatureAttributesFavorAdvertise attribute.
9332 This value cannot be set if the value of the AllowAdvertise attribute is 'no' since that would ask the installer to
9333 disallow the advertised state for this feature while at the same time favoring it.
9334 </xs:documentation>
9335 </xs:annotation>
9336 </xs:enumeration>
9337 <xs:enumeration value="install">
9338 <xs:annotation>
9339 <xs:documentation>
9340 Sets the feature to the default non-advertised installation option.
9341 </xs:documentation>
9342 </xs:annotation>
9343 </xs:enumeration>
9344 </xs:restriction>
9345 </xs:simpleType>
9346 </xs:attribute>
9347 <xs:anyAttribute namespace="##other" processContents="lax">
9348 <xs:annotation>
9349 <xs:documentation>
9350 Extensibility point in the WiX XML Schema. Schema extensions can register additional
9351 attributes at this point in the schema.
9352 </xs:documentation>
9353 </xs:annotation>
9354 </xs:anyAttribute>
9355 </xs:complexType>
9356 </xs:element>
9357 <xs:element name="FeatureGroup">
9358 <xs:annotation>
9359 <xs:documentation>
9360 Groups together multiple components, features, and merges to be used in other locations.
9361 </xs:documentation>
9362 <xs:appinfo>
9363 <xse:seeAlso ref="FeatureGroupRef" />
9364 </xs:appinfo>
9365 </xs:annotation>
9366 <xs:complexType>
9367 <xs:choice minOccurs="0" maxOccurs="unbounded">
9368 <xs:element ref="Component" />
9369 <xs:element ref="ComponentGroupRef" />
9370 <xs:element ref="ComponentRef" />
9371 <xs:element ref="Feature" />
9372 <xs:element ref="FeatureGroupRef" />
9373 <xs:element ref="FeatureRef" />
9374 <xs:element ref="File" />
9375 <xs:element ref="Files" />
9376 <xs:element ref="MergeRef" />
9377 <xs:any namespace="##other" processContents="lax">
9378 <xs:annotation>
9379 <xs:documentation>
9380 Extensibility point in the WiX XML Schema. Schema extensions can register additional
9381 elements at this point in the schema.
9382 </xs:documentation>
9383 </xs:annotation>
9384 </xs:any>
9385 </xs:choice>
9386 <xs:attribute name="Id" type="xs:string" use="required">
9387 <xs:annotation>
9388 <xs:documentation>Identifier for the FeatureGroup.</xs:documentation>
9389 </xs:annotation>
9390 </xs:attribute>
9391 <xs:anyAttribute namespace="##other" processContents="lax">
9392 <xs:annotation>
9393 <xs:documentation>
9394 Extensibility point in the WiX XML Schema. Schema extensions can register additional
9395 attributes at this point in the schema.
9396 </xs:documentation>
9397 </xs:annotation>
9398 </xs:anyAttribute>
9399 </xs:complexType>
9400 </xs:element>
9401 <xs:element name="FeatureGroupRef">
9402 <xs:annotation>
9403 <xs:documentation>Create a reference to a FeatureGroup in another Fragment.</xs:documentation>
9404 <xs:appinfo>
9405 <xse:seeAlso ref="FeatureGroup" />
9406 </xs:appinfo>
9407 </xs:annotation>
9408 <xs:complexType>
9409 <xs:attribute name="Id" type="xs:string" use="required">
9410 <xs:annotation>
9411 <xs:documentation>The identifier of the FeatureGroup to reference.</xs:documentation>
9412 </xs:annotation>
9413 </xs:attribute>
9414 <xs:attribute name="IgnoreParent" type="YesNoTypeUnion">
9415 <xs:annotation>
9416 <xs:documentation>
9417 Normally feature group references that end up nested under a parent element create a
9418 connection to that parent. This behavior is undesirable when trying to simply reference
9419 to a FeatureGroup in a different Fragment. Specify 'yes' to have this feature group
9420 reference not create a connection to its parent. The default is 'no'.
9421 </xs:documentation>
9422 </xs:annotation>
9423 </xs:attribute>
9424 <xs:attribute name="Primary" type="YesNoTypeUnion">
9425 <xs:annotation>
9426 <xs:documentation>
9427 Set this attribute to 'yes' in order to make the parent feature of this group
9428 the primary feature for any components and merges contained in the group.
9429 Features may belong to multiple features. By designating a feature as the
9430 primary feature of a component or merge, you ensure that whenever a component is
9431 selected for install-on-demand (IOD), the primary feature will be the one to install
9432 it. This attribute should only be set if a component actually nests under multiple
9433 features. If a component nests under only one feature, that feature is the primary
9434 feature for the component. You cannot set more than one feature as the primary
9435 feature of a given component.
9436 </xs:documentation>
9437 </xs:annotation>
9438 </xs:attribute>
9439 <xs:anyAttribute namespace="##other" processContents="lax">
9440 <xs:annotation>
9441 <xs:documentation>
9442 Extensibility point in the WiX XML Schema. Schema extensions can register additional
9443 attributes at this point in the schema.
9444 </xs:documentation>
9445 </xs:annotation>
9446 </xs:anyAttribute>
9447 </xs:complexType>
9448 </xs:element>
9449 <xs:element name="FeatureRef">
9450 <xs:annotation>
9451 <xs:documentation>Create a reference to a Feature element in another Fragment.</xs:documentation>
9452 <xs:appinfo>
9453 <xse:seeAlso ref="Feature" />
9454 </xs:appinfo>
9455 </xs:annotation>
9456 <xs:complexType>
9457 <xs:choice minOccurs="0" maxOccurs="unbounded">
9458 <xs:element ref="Component" />
9459 <xs:element ref="ComponentGroupRef" />
9460 <xs:element ref="ComponentRef" />
9461 <xs:element ref="Feature" />
9462 <xs:element ref="FeatureRef" />
9463 <xs:element ref="FeatureGroup" />
9464 <xs:element ref="FeatureGroupRef" />
9465 <xs:element ref="File" />
9466 <xs:element ref="Files" />
9467 <xs:element ref="MergeRef" />
9468 <xs:any namespace="##other" processContents="lax">
9469 <xs:annotation>
9470 <xs:documentation>
9471 Extensibility point in the WiX XML Schema. Schema extensions can register additional
9472 elements at this point in the schema.
9473 </xs:documentation>
9474 </xs:annotation>
9475 </xs:any>
9476 </xs:choice>
9477 <xs:attribute name="Id" type="xs:string" use="required">
9478 <xs:annotation>
9479 <xs:documentation>The identifier of the Feature element to reference.</xs:documentation>
9480 </xs:annotation>
9481 </xs:attribute>
9482 <xs:attribute name="IgnoreParent" type="YesNoTypeUnion">
9483 <xs:annotation>
9484 <xs:documentation>
9485 Normally feature references that are nested under a parent element create a connection to that
9486 parent. This behavior is undesirable when trying to simply reference a Feature in a different
9487 Fragment. Specify 'yes' to have this feature reference not create a connection to its parent.
9488 The default is 'no'.
9489 </xs:documentation>
9490 </xs:annotation>
9491 </xs:attribute>
9492 <xs:anyAttribute namespace="##other" processContents="lax">
9493 <xs:annotation>
9494 <xs:documentation>
9495 Extensibility point in the WiX XML Schema. Schema extensions can register additional
9496 attributes at this point in the schema.
9497 </xs:documentation>
9498 </xs:annotation>
9499 </xs:anyAttribute>
9500 </xs:complexType>
9501 </xs:element>
9502 <xs:element name="Media">
9503 <xs:annotation>
9504 <xs:documentation>Media element describes a disk that makes up the source media for the installation.</xs:documentation>
9505 <xs:appinfo>
9506 <xse:msiRef table="Media" href="http://msdn.microsoft.com/library/aa369801.aspx" />
9507 </xs:appinfo>
9508 </xs:annotation>
9509 <xs:complexType>
9510 <xs:sequence>
9511 <xs:choice minOccurs="0" maxOccurs="unbounded">
9512 <xs:element ref="DigitalSignature" minOccurs="0" />
9513 <xs:element ref="PatchBaseline" minOccurs="0" maxOccurs="unbounded" />
9514 <xs:element ref="SymbolPath" />
9515 </xs:choice>
9516 </xs:sequence>
9517 <xs:attribute name="Id" type="DiskIdType" use="required">
9518 <xs:annotation>
9519 <xs:documentation>Disk identifier for Media table. This number must be equal to or greater than 1.</xs:documentation>
9520 </xs:annotation>
9521 </xs:attribute>
9522 <xs:attribute name="Cabinet" type="xs:string">
9523 <xs:annotation>
9524 <xs:documentation>The name of the cabinet if some or all of the files stored on the media are in a cabinet file. If no cabinets are used, this attribute must not be set.</xs:documentation>
9525 </xs:annotation>
9526 </xs:attribute>
9527 <xs:attribute name="CompressionLevel" type="CompressionLevelTypeUnion">
9528 <xs:annotation>
9529 <xs:documentation>
9530 Indicates the compression level for the Media's cabinet. This attribute can
9531 only be used in conjunction with the Cabinet attribute. The default is 'medium'.
9532 </xs:documentation>
9533 </xs:annotation>
9534 </xs:attribute>
9535 <xs:attribute name="DiskPrompt" type="xs:string">
9536 <xs:annotation>
9537 <xs:documentation>The disk name, which is usually the visible text printed on the disk. This localizable text is used to prompt the user when this disk needs to be inserted. This value will be used in the "[1]" of the DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property.</xs:documentation>
9538 </xs:annotation>
9539 </xs:attribute>
9540 <xs:attribute name="EmbedCab" type="YesNoTypeUnion">
9541 <xs:annotation>
9542 <xs:documentation>Instructs the binder to embed the cabinet in the product if 'yes'. This attribute can only be specified in conjunction with the Cabinet attribute.</xs:documentation>
9543 </xs:annotation>
9544 </xs:attribute>
9545 <xs:attribute name="Layout" type="xs:string">
9546 <xs:annotation>
9547 <xs:documentation>
9548 This attribute specifies the root directory for the uncompressed files that
9549 are a part of this Media element. By default, the src will be the output
9550 directory for the final image. The default value ensures the binder generates
9551 an installable image. If a relative path is specified in the src attribute,
9552 the value will be appended to the image's output directory. If an absolute
9553 path is provided, that path will be used without modification. The latter two
9554 options are provided to ease the layout of an image onto multiple medias (CDs/DVDs).
9555 </xs:documentation>
9556 </xs:annotation>
9557 </xs:attribute>
9558 <xs:attribute name="VolumeLabel" type="xs:string">
9559 <xs:annotation>
9560 <xs:documentation>
9561 The label attributed to the volume. This is the volume label returned
9562 by the GetVolumeInformation function. If the SourceDir property refers
9563 to a removable (floppy or CD-ROM) volume, then this volume label is
9564 used to verify that the proper disk is in the drive before attempting
9565 to install files. The entry in this column must match the volume label
9566 of the physical media.
9567 </xs:documentation>
9568 </xs:annotation>
9569 </xs:attribute>
9570 <xs:attribute name="Source" type="xs:string">
9571 <xs:annotation>
9572 <xs:documentation>
9573 Optional property that identifies the source of the embedded cabinet.
9574 If a cabinet is specified for a patch, this property should be defined
9575 and unique to each patch so that the embedded cabinet containing patched
9576 and new files can be located in the patch package. If the cabinet is not
9577 embedded - this is not typical - the cabinet can be found in the directory
9578 referenced in this column. If empty, the external cabinet must be located
9579 in the SourceDir directory.
9580 </xs:documentation>
9581 </xs:annotation>
9582 </xs:attribute>
9583 </xs:complexType>
9584 </xs:element>
9585 <xs:element name="MediaTemplate">
9586 <xs:annotation>
9587 <xs:documentation>
9588 MediaTeplate element describes information to automatically assign files to cabinets.
9589 A maximumum number of cabinets created is 999.
9590 </xs:documentation>
9591 </xs:annotation>
9592 <xs:complexType>
9593 <xs:attribute name="CabinetTemplate" type="xs:string">
9594 <xs:annotation>
9595 <xs:documentation>
9596 Templated name of the cabinet if some or all of the files stored on the media are in
9597 a cabinet file. This name must begin with either a letter or an underscore, contain
9598 maximum of five characters and {0} in the cabinet name part and must end three character extension.
9599 The default is cab{0}.cab.
9600 </xs:documentation>
9601 </xs:annotation>
9602 </xs:attribute>
9603 <xs:attribute name="CompressionLevel" type="CompressionLevelTypeUnion">
9604 <xs:annotation>
9605 <xs:documentation>
9606 Indicates the compression level for the Media's cabinet. This attribute can
9607 only be used in conjunction with the Cabinet attribute. The default is 'medium'.
9608 </xs:documentation>
9609 </xs:annotation>
9610 </xs:attribute>
9611 <xs:attribute name="DiskPrompt" type="xs:string">
9612 <xs:annotation>
9613 <xs:documentation>
9614 The disk name, which is usually the visible text printed on the disk. This localizable text is used
9615 to prompt the user when this disk needs to be inserted. This value will be used in the "[1]" of the
9616 DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property.
9617 </xs:documentation>
9618 </xs:annotation>
9619 </xs:attribute>
9620 <xs:attribute name="EmbedCab" type="YesNoTypeUnion">
9621 <xs:annotation>
9622 <xs:documentation>Instructs the binder to embed the cabinets in the product if 'yes'.</xs:documentation>
9623 </xs:annotation>
9624 </xs:attribute>
9625 <xs:attribute name="VolumeLabel" type="xs:string">
9626 <xs:annotation>
9627 <xs:documentation>
9628 The label attributed to the volume. This is the volume label returned
9629 by the GetVolumeInformation function. If the SourceDir property refers
9630 to a removable (floppy or CD-ROM) volume, then this volume label is
9631 used to verify that the proper disk is in the drive before attempting
9632 to install files. The entry in this column must match the volume label
9633 of the physical media.
9634 </xs:documentation>
9635 </xs:annotation>
9636 </xs:attribute>
9637 <xs:attribute name="MaximumUncompressedMediaSize" type="xs:int">
9638 <xs:annotation>
9639 <xs:documentation>
9640 Size of uncompressed files in each cabinet, in megabytes. WIX_MUMS environment variable
9641 can be used to override this value. Default value is 200 MB.
9642 </xs:documentation>
9643 </xs:annotation>
9644 </xs:attribute>
9645 <xs:attribute name="MaximumCabinetSizeForLargeFileSplitting" type="xs:int">
9646 <xs:annotation>
9647 <xs:documentation>
9648 Maximum size of cabinet files in megabytes for large files. This attribute is used for packaging
9649 files that are larger than MaximumUncompressedMediaSize into smaller cabinets. If cabinet size
9650 exceed this value, then setting this attribute will cause the file to be split into multiple
9651 cabinets of this maximum size. For simply controlling cabinet size without file splitting use
9652 MaximumUncompressedMediaSize attribute. Setting this attribute will disable smart cabbing feature
9653 for this Fragment / Package. Setting WIX_MCSLFS environment variable can be used to override this
9654 value. Minimum allowed value of this attribute is 20 MB. Maximum allowed value and the Default
9655 value of this attribute is 2048 MB (2 GB).
9656 </xs:documentation>
9657 </xs:annotation>
9658 </xs:attribute>
9659 </xs:complexType>
9660 </xs:element>
9661 <xs:element name="CustomAction">
9662 <xs:annotation>
9663 <xs:appinfo>
9664 <xse:seeAlso ref="Custom" />
9665 <xse:seeAlso ref="CustomActionRef" />
9666 <xse:msiRef table="CustomAction" href="https://learn.microsoft.com/en-us/windows/win32/msi/customaction-table" />
9667 </xs:appinfo>
9668 <xs:documentation>
9669 Specifies a custom action to be added to the MSI CustomAction table. Various combinations of the attributes for this element
9670 correspond to different custom action types. For more information about custom actions see the
9671 <html:a href="https://learn.microsoft.com/en-us/windows/win32/msi/summary-list-of-all-custom-action-types">
9672 Custom Action Types</html:a> topic on MSDN.
9673 </xs:documentation>
9674 </xs:annotation>
9675 <xs:complexType>
9676 <xs:attribute name="Id" type="xs:string" use="required">
9677 <xs:annotation>
9678 <xs:documentation>
9679 The identifier of the custom action.
9680 </xs:documentation>
9681 </xs:annotation>
9682 </xs:attribute>
9683 <!-- CustomAction Source specification, sets source Attribute bits -->
9684 <xs:attribute name="BinaryRef" type="xs:string">
9685 <xs:annotation>
9686 <xs:documentation>
9687 This attribute is a reference to a Binary element with matching Id attribute. That binary stream contains
9688 the custom action for use during install. The custom action will not be installed into a target directory. This attribute is
9689 typically used with the DllEntry attribute to specify the custom action DLL to use for a type 1 custom action, with the ExeCommand
9690 attribute to specify a type 17 custom action that runs an embedded executable, or with the VBScriptCall or JScriptCall attributes
9691 to specify a type 5 or 6 custom action.
9692 </xs:documentation>
9693 </xs:annotation>
9694 </xs:attribute>
9695 <xs:attribute name="FileRef" type="xs:string">
9696 <xs:annotation>
9697 <xs:documentation>
9698 This attribute specifies a reference to a File element with matching Id attribute that
9699 will execute the custom action code in the file after the file is installed. This
9700 attribute is typically used with the ExeCommand attribute to specify a type 18 custom action
9701 that runs an installed executable, with the DllEntry attribute to specify an installed custom
9702 action DLL to use for a type 17 custom action, or with the VBScriptCall or JScriptCall
9703 attributes to specify a type 21 or 22 custom action.
9704 </xs:documentation>
9705 </xs:annotation>
9706 </xs:attribute>
9707 <xs:attribute name="Property" type="xs:string">
9708 <xs:annotation>
9709 <xs:documentation>
9710 This attribute specifies a reference to a Property element with matching Id attribute that specifies the Property
9711 to be used or updated on execution of this custom action. This attribute is
9712 typically used with the Value attribute to create a type 51 custom action that parses
9713 the text in Value and places it into the specified Property. This attribute is also used with
9714 the ExeCommand attribute to create a type 50 custom action that uses the value of the
9715 given property to specify the path to the executable. Type 51 custom actions are often useful to
9716 pass values to a deferred custom action.
9717 See <html:a href="https://learn.microsoft.com/en-us/windows/win32/msi/obtaining-context-information-for-deferred-execution-custom-actions">
9718 Obtaining Context Information for Deferred Execution Custom Actions</html:a> for more information.
9719 </xs:documentation>
9720 </xs:annotation>
9721 </xs:attribute>
9722 <xs:attribute name="Directory" type="xs:string">
9723 <xs:annotation>
9724 <xs:documentation>
9725 This attribute specifies a reference to a Directory element with matching Id attribute containing a directory path.
9726 This attribute is typically used with the ExeCommand attribute to specify the source executable for a type 34
9727 custom action, or with the Value attribute to specify a formatted string to place in the specified Directory
9728 table entry in a type 35 custom action.
9729 </xs:documentation>
9730 </xs:annotation>
9731 </xs:attribute>
9732 <xs:attribute name="Subdirectory" type="xs:string">
9733 <xs:annotation>
9734 <xs:documentation>
9735 This attribute defines one or more directories below the directory referenced by the Directory attribute.
9736 This attribute is optional but can only be specified when the Directory attribute is also specified.
9737 </xs:documentation>
9738 </xs:annotation>
9739 </xs:attribute>
9740 <!-- CustomAction Target specification, sets target Attribute bits -->
9741 <xs:attribute name="DllEntry" type="xs:string">
9742 <xs:annotation>
9743 <xs:documentation>
9744 This attribute specifies the name of a function in a custom action to execute.
9745 This attribute is used with the BinaryRef attribute to create a type 1 custom
9746 action, or with the FileRef attribute to create a type 17 custom action.
9747 </xs:documentation>
9748 </xs:annotation>
9749 </xs:attribute>
9750 <xs:attribute name="ExeCommand" type="xs:string">
9751 <xs:annotation>
9752 <xs:documentation>
9753 This attribute specifies the command line parameters to supply to an externally
9754 run executable. This attribute is typically used with the BinaryRef attribute for a type 2 custom action,
9755 the FileRef attribute for a type 18 custom action, the Property attribute for a type 50 custom action,
9756 or the Directory attribute for a type 34 custom action that specify the executable to run.
9757 </xs:documentation>
9758 </xs:annotation>
9759 </xs:attribute>
9760 <xs:attribute name="JScriptCall" type="xs:string">
9761 <xs:annotation>
9762 <xs:documentation>
9763 This attribute specifies the name of the JScript function to execute in a script. The script must be
9764 provided in a Binary element identified by the BinaryRef attribute described above. In other words, this
9765 attribute must be specified in conjunction with the BinaryRef attribute.
9766 </xs:documentation>
9767 </xs:annotation>
9768 </xs:attribute>
9769 <xs:attribute name="VBScriptCall" type="xs:string">
9770 <xs:annotation>
9771 <xs:documentation>
9772 This attribute specifies the name of the VBScript Subroutine to execute in a script. The script must be
9773 provided in a Binary element identified by the BinaryRef attribute described above. In other words, this
9774 attribute must be specified in conjunction with the BinaryRef attribute.
9775 </xs:documentation>
9776 </xs:annotation>
9777 </xs:attribute>
9778 <xs:attribute name="Script">
9779 <xs:annotation>
9780 <xs:documentation>
9781 Creates a type 37 or 38 custom action. Specify a path to the script to be embedded in the package in the
9782 `ScriptSourceFile` attribute.
9783 </xs:documentation>
9784 </xs:annotation>
9785 <xs:simpleType>
9786 <xs:restriction base="xs:NMTOKEN">
9787 <xs:enumeration value="jscript" />
9788 <xs:enumeration value="vbscript" />
9789 </xs:restriction>
9790 </xs:simpleType>
9791 </xs:attribute>
9792 <xs:attribute name="ScriptSourceFile" type="xs:string">
9793 <xs:annotation>
9794 <xs:documentation>
9795 Path to the external file containing the script code. Can be used only with the Script attribute.
9796 </xs:documentation>
9797 </xs:annotation>
9798 </xs:attribute>
9799 <xs:attribute name="SuppressModularization" type="YesNoTypeUnion">
9800 <xs:annotation>
9801 <xs:documentation>
9802 Use to suppress modularization of this custom action name in merge modules.
9803 This should only be necessary for table-driven custom actions because the
9804 table name which they interact with cannot be modularized, so there can only
9805 be one instance of the table.
9806 </xs:documentation>
9807 </xs:annotation>
9808 </xs:attribute>
9809 <xs:attribute name="Value" type="xs:string">
9810 <xs:annotation>
9811 <xs:documentation>
9812 This attribute specifies a string value to use in the custom action. This attribute
9813 must be used with the Property attribute to set the property as part of a
9814 type 51 custom action or with the Directory attribute to set a directory path in that
9815 table in a type 35 custom action. The value can be a literal value or derived from a
9816 Property element using the <html:a href="https://learn.microsoft.com/en-us/windows/win32/msi/formatted">Formatted</html:a>
9817 syntax.
9818 </xs:documentation>
9819 </xs:annotation>
9820 </xs:attribute>
9821 <xs:attribute name="Error" type="xs:string">
9822 <xs:annotation>
9823 <xs:documentation>
9824 This attribute specifies an index in the MSI Error table to use as an error message for a
9825 type 19 custom action that displays the error message and aborts a product's installation.
9826 </xs:documentation>
9827 </xs:annotation>
9828 </xs:attribute>
9829 <!-- Other CustomAction type attributes -->
9830 <xs:attribute name="Return">
9831 <xs:annotation>
9832 <xs:documentation>
9833 Set this attribute to set the return behavior of the custom action.
9834 </xs:documentation>
9835 </xs:annotation>
9836 <xs:simpleType>
9837 <xs:restriction base="xs:NMTOKEN">
9838 <xs:enumeration value="asyncNoWait">
9839 <xs:annotation>
9840 <xs:documentation>
9841 Indicates that the custom action will run asyncronously and execution may continue after the installer terminates.
9842 </xs:documentation>
9843 </xs:annotation>
9844 </xs:enumeration>
9845 <xs:enumeration value="asyncWait">
9846 <xs:annotation>
9847 <xs:documentation>
9848 Indicates that the custom action will run asynchronously but the installer will wait for the return code at sequence end.
9849 </xs:documentation>
9850 </xs:annotation>
9851 </xs:enumeration>
9852 <xs:enumeration value="check">
9853 <xs:annotation>
9854 <xs:documentation>
9855 Indicates that the custom action will run synchronously and the return code will be checked for success. This is the default.
9856 </xs:documentation>
9857 </xs:annotation>
9858 </xs:enumeration>
9859 <xs:enumeration value="ignore">
9860 <xs:annotation>
9861 <xs:documentation>
9862 Indicates that the custom action will run synchronously and the return code will not be checked.
9863 </xs:documentation>
9864 </xs:annotation>
9865 </xs:enumeration>
9866 </xs:restriction>
9867 </xs:simpleType>
9868 </xs:attribute>
9869 <xs:attribute name="Execute">
9870 <xs:annotation>
9871 <xs:documentation>
9872 This attribute indicates the scheduling of the custom action.
9873 </xs:documentation>
9874 </xs:annotation>
9875 <xs:simpleType>
9876 <xs:restriction base="xs:NMTOKEN">
9877 <xs:enumeration value="commit">
9878 <xs:annotation>
9879 <xs:documentation>
9880 Indicates that the custom action will run after successful completion of the installation script (at the end of the installation).
9881 </xs:documentation>
9882 </xs:annotation>
9883 </xs:enumeration>
9884 <xs:enumeration value="deferred">
9885 <xs:annotation>
9886 <xs:documentation>
9887 Indicates that the custom action runs in-script (possibly with elevated privileges).
9888 </xs:documentation>
9889 </xs:annotation>
9890 </xs:enumeration>
9891 <xs:enumeration value="firstSequence">
9892 <xs:annotation>
9893 <xs:documentation>
9894 Indicates that the custom action will only run in the first sequence that runs it.
9895 </xs:documentation>
9896 </xs:annotation>
9897 </xs:enumeration>
9898 <xs:enumeration value="immediate">
9899 <xs:annotation>
9900 <xs:documentation>
9901 Indicates that the custom action will run during normal processing time with user privileges. This is the default.
9902 </xs:documentation>
9903 </xs:annotation>
9904 </xs:enumeration>
9905 <xs:enumeration value="oncePerProcess">
9906 <xs:annotation>
9907 <xs:documentation>
9908 Indicates that the custom action will only run in the first sequence that runs it in the same process.
9909 </xs:documentation>
9910 </xs:annotation>
9911 </xs:enumeration>
9912 <xs:enumeration value="rollback">
9913 <xs:annotation>
9914 <xs:documentation>
9915 Indicates that a custom action will run in the rollback sequence when a failure
9916 occurs during installation, usually to undo changes made by a deferred custom action.
9917 </xs:documentation>
9918 </xs:annotation>
9919 </xs:enumeration>
9920 <xs:enumeration value="secondSequence">
9921 <xs:annotation>
9922 <xs:documentation>
9923 Indicates that a custom action should be run a second time if it was previously run in an earlier sequence.
9924 </xs:documentation>
9925 </xs:annotation>
9926 </xs:enumeration>
9927 </xs:restriction>
9928 </xs:simpleType>
9929 </xs:attribute>
9930 <xs:attribute name="Impersonate" type="YesNoTypeUnion">
9931 <xs:annotation>
9932 <xs:documentation>
9933 This attribute specifies whether the Windows Installer, which executes as LocalSystem,
9934 should impersonate the user context of the installing user when executing this custom action.
9935 Typically the value should be 'yes', except when the custom action needs elevated privileges
9936 to apply changes to the machine.
9937 </xs:documentation>
9938 </xs:annotation>
9939 </xs:attribute>
9940 <xs:attribute name="PatchUninstall" type="YesNoTypeUnion">
9941 <xs:annotation>
9942 <xs:documentation>
9943 This attribute specifies that the Windows Installer, execute the custom action only when
9944 a patch is being uninstalled. These custom actions should also be conditioned using the
9945 MSIPATCHREMOVE property to ensure proper down level (less than Windows Installer 4.5)
9946 behavior.
9947 </xs:documentation>
9948 </xs:annotation>
9949 </xs:attribute>
9950 <xs:attribute name="Bitness" type="BitnessTypeUnion">
9951 <xs:annotation>
9952 <xs:documentation>
9953 Valid only when used with the Script, VBScriptCall, and JScriptCall attributes.
9954 Overrides the default scripting host for script custom actions. The value `always64` will force the
9955 script to run in the 64-bit scripting host. Simliarly, the value `always32` will force the script
9956 to run in the 64-bit scripting host.
9957 The default value is `default` where the script will be run in the scripting host that matches the
9958 same bitness as the package.
9959 </xs:documentation>
9960 </xs:annotation>
9961 </xs:attribute>
9962 <xs:attribute name="TerminalServerAware" type="YesNoTypeUnion">
9963 <xs:annotation>
9964 <xs:documentation>
9965 This attribute specifies controls whether the custom action will impersonate the
9966 installing user during per-machine installs on Terminal Server machines.
9967 Deferred execution custom actions that do not specify this attribute, or explicitly set it 'no',
9968 will run with no user impersonation on Terminal Server machines during
9969 per-machine installations. This attribute is only applicable when installing on the
9970 Windows Server 2003 family.
9971 </xs:documentation>
9972 </xs:annotation>
9973 </xs:attribute>
9974 <xs:attribute name="HideTarget" type="YesNoTypeUnion">
9975 <xs:annotation>
9976 <xs:documentation>Ensures the installer does not log the CustomActionData for the deferred custom action.</xs:documentation>
9977 </xs:annotation>
9978 </xs:attribute>
9979 <xs:anyAttribute namespace="##other" processContents="lax">
9980 <xs:annotation>
9981 <xs:documentation>
9982 Extensibility point in the WiX XML Schema. Schema extensions can register additional
9983 attributes at this point in the schema.
9984 </xs:documentation>
9985 </xs:annotation>
9986 </xs:anyAttribute>
9987 </xs:complexType>
9988 </xs:element>
9989 <xs:element name="CustomActionRef">
9990 <xs:annotation>
9991 <xs:appinfo>
9992 <xse:seeAlso ref="CustomAction" />
9993 </xs:appinfo>
9994 <xs:documentation>
9995 This will cause the entire contents of the Fragment containing the referenced CustomAction to be
9996 included in the installer database.
9997 </xs:documentation>
9998 </xs:annotation>
9999 <xs:complexType>
10000 <xs:attribute name="Id" type="xs:string" use="required">
10001 <xs:annotation>
10002 <xs:documentation>The identifier of the CustomAction to reference.</xs:documentation>
10003 </xs:annotation>
10004 </xs:attribute>
10005 <xs:anyAttribute namespace="##other" processContents="lax">
10006 <xs:annotation>
10007 <xs:documentation>
10008 Extensibility point in the WiX XML Schema. Schema extensions can register additional
10009 attributes at this point in the schema.
10010 </xs:documentation>
10011 </xs:annotation>
10012 </xs:anyAttribute>
10013 </xs:complexType>
10014 </xs:element>
10015 <xs:element name="SetDirectory">
10016 <xs:annotation>
10017 <xs:appinfo>
10018 <xse:seeAlso ref="Custom" />
10019 <xse:seeAlso ref="CustomActionRef" />
10020 <xse:seeAlso ref="InstallUISequence" />
10021 <xse:seeAlso ref="InstallExecuteSequence" />
10022 <xse:msiRef table="CustomAction" href="https://learn.microsoft.com/en-us/windows/win32/msi/customaction-table" />
10023 </xs:appinfo>
10024 <xs:documentation>
10025 Sets a Directory to a particular value. This is accomplished by creating a Type 51 custom action that is appropriately scheduled in
10026 the InstallUISequence and InstallExecuteSequence.
10027 </xs:documentation>
10028 </xs:annotation>
10029 <xs:complexType>
10030 <xs:attribute name="Action" type="xs:string">
10031 <xs:annotation>
10032 <xs:documentation>
10033 By default the action is "Set" + Id attribute's value. This optional attribute can override the action name in the case
10034 where multiple SetDirectory elements target the same Id (probably with mutually exclusive conditions).
10035 </xs:documentation>
10036 </xs:annotation>
10037 </xs:attribute>
10038 <xs:attribute name="Condition" type="xs:string">
10039 <xs:annotation>
10040 <xs:documentation>
10041 The condition that determines whether the Directory is set. If the condition evaluates to false, the SetDirectory is skipped.
10042 </xs:documentation>
10043 </xs:annotation>
10044 </xs:attribute>
10045 <xs:attribute name="Id" type="xs:string">
10046 <xs:annotation>
10047 <xs:documentation>
10048 This attribute specifies a reference to a Directory element with matching Id attribute. The path of the Directory will be set to
10049 the Value attribute.
10050 </xs:documentation>
10051 </xs:annotation>
10052 </xs:attribute>
10053 <xs:attribute name="Sequence" type="SequenceType">
10054 <xs:annotation>
10055 <xs:documentation>
10056 Controls which sequences the Directory assignment is sequenced in.
10057 For 'execute', the assignment is scheduled in the InstallExecuteSequence.
10058 For 'ui', the assignment is scheduled in the InstallUISequence.
10059 For 'first', the assignment is scheduled in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped at install time.
10060 For 'both', the assignment is scheduled in both the InstallUISequence and the InstallExecuteSequence.
10061 The default is 'both'.
10062 </xs:documentation>
10063 </xs:annotation>
10064 </xs:attribute>
10065 <xs:attribute name="Value" type="xs:string">
10066 <xs:annotation>
10067 <xs:documentation>
10068 This attribute specifies a string value to assign to the Directory. The value can be a literal value or derived from a
10069 Property element using the <html:a href="https://learn.microsoft.com/en-us/windows/win32/msi/formatted">Formatted</html:a>
10070 syntax.
10071 </xs:documentation>
10072 </xs:annotation>
10073 </xs:attribute>
10074 <xs:anyAttribute namespace="##other" processContents="lax">
10075 <xs:annotation>
10076 <xs:documentation>
10077 Extensibility point in the WiX XML Schema. Schema extensions can register additional
10078 attributes at this point in the schema.
10079 </xs:documentation>
10080 </xs:annotation>
10081 </xs:anyAttribute>
10082 </xs:complexType>
10083 </xs:element>
10084 <xs:element name="SetProperty">
10085 <xs:annotation>
10086 <xs:appinfo>
10087 <xse:seeAlso ref="Custom" />
10088 <xse:seeAlso ref="CustomActionRef" />
10089 <xse:seeAlso ref="InstallUISequence" />
10090 <xse:seeAlso ref="InstallExecuteSequence" />
10091 <xse:msiRef table="CustomAction" href="https://learn.microsoft.com/en-us/windows/win32/msi/customaction-table" />
10092 </xs:appinfo>
10093 <xs:documentation>
10094 Sets a Property to a particular value. This is accomplished by creating a Type 51 custom action that is appropriately scheduled in
10095 the InstallUISequence and InstallExecuteSequence.
10096 </xs:documentation>
10097 </xs:annotation>
10098 <xs:complexType>
10099 <xs:attribute name="Action" type="xs:string">
10100 <xs:annotation>
10101 <xs:documentation>
10102 By default the action is "Set" + Id attribute's value. This optional attribute can override the action name in the case
10103 where multiple SetProperty elements target the same Id (probably with mutually exclusive conditions).
10104 </xs:documentation>
10105 </xs:annotation>
10106 </xs:attribute>
10107 <xs:attribute name="After" type="xs:string">
10108 <xs:annotation>
10109 <xs:documentation>
10110 The name of the standard or custom action after which this action should be performed. Mutually exclusive with
10111 the Before attribute. A Before or After attribute is required when setting a Property.
10112 </xs:documentation>
10113 </xs:annotation>
10114 </xs:attribute>
10115 <xs:attribute name="Before" type="xs:string">
10116 <xs:annotation>
10117 <xs:documentation>The name of the standard or custom action before which this action should be performed. Mutually exclusive with the After attribute. A Before or After attribute is required when setting a Property.</xs:documentation>
10118 </xs:annotation>
10119 </xs:attribute>
10120 <xs:attribute name="Condition" type="xs:string">
10121 <xs:annotation>
10122 <xs:documentation>
10123 The condition that determines whether the Property is set. If the condition evaluates to false, the Set is skipped.
10124 </xs:documentation>
10125 </xs:annotation>
10126 </xs:attribute>
10127 <xs:attribute name="Id" type="xs:string">
10128 <xs:annotation>
10129 <xs:documentation>
10130 This attribute specifies the Property to set to the Value.
10131 </xs:documentation>
10132 </xs:annotation>
10133 </xs:attribute>
10134 <xs:attribute name="Sequence" type="SequenceType">
10135 <xs:annotation>
10136 <xs:documentation>
10137 Controls which sequences the Property assignment is sequenced in.
10138 For 'execute', the assignment is scheduled in the InstallExecuteSequence.
10139 For 'ui', the assignment is scheduled in the InstallUISequence.
10140 For 'first', the assignment is scheduled in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped at install time.
10141 For 'both', the assignment is scheduled in both the InstallUISequence and the InstallExecuteSequence.
10142 The default is 'both'.
10143 </xs:documentation>
10144 </xs:annotation>
10145 </xs:attribute>
10146 <xs:attribute name="Value" type="xs:string">
10147 <xs:annotation>
10148 <xs:documentation>
10149 This attribute specifies a string value to assign to the Property. The value can be a literal value or derived from a
10150 Property element using the <html:a href="https://learn.microsoft.com/en-us/windows/win32/msi/formatted">Formatted</html:a>
10151 syntax.
10152 </xs:documentation>
10153 </xs:annotation>
10154 </xs:attribute>
10155 <xs:anyAttribute namespace="##other" processContents="lax">
10156 <xs:annotation>
10157 <xs:documentation>
10158 Extensibility point in the WiX XML Schema. Schema extensions can register additional
10159 attributes at this point in the schema.
10160 </xs:documentation>
10161 </xs:annotation>
10162 </xs:anyAttribute>
10163 </xs:complexType>
10164 </xs:element>
10165 <xs:element name="PatchFamilyRef">
10166 <xs:annotation>
10167 <xs:appinfo>
10168 <xse:seeAlso ref="PatchFamily" />
10169 </xs:appinfo>
10170 <xs:documentation>
10171 This will cause the entire contents of the Fragment containing the referenced PatchFamily to be
10172 used in the process of creating a patch.
10173 </xs:documentation>
10174 </xs:annotation>
10175 <xs:complexType>
10176 <xs:attribute name="Id" type="xs:string" use="required">
10177 <xs:annotation>
10178 <xs:documentation>The identifier of the PatchFamily to reference.</xs:documentation>
10179 </xs:annotation>
10180 </xs:attribute>
10181 <xs:attribute name="ProductCode" type="Guid">
10182 <xs:annotation>
10183 <xs:documentation>Specifies the ProductCode of the product that this family applies to.</xs:documentation>
10184 </xs:annotation>
10185 </xs:attribute>
10186 <xs:anyAttribute namespace="##other" processContents="lax">
10187 <xs:annotation>
10188 <xs:documentation>
10189 Extensibility point in the WiX XML Schema. Schema extensions can register additional
10190 attributes at this point in the schema.
10191 </xs:documentation>
10192 </xs:annotation>
10193 </xs:anyAttribute>
10194 </xs:complexType>
10195 </xs:element>
10196 <!-- - - - - - - - - - - Sequence Table Definitions - - - - - - - - - - - - - - -->
10197 <xs:element name="ValidateProductID" type="ActionSequenceType">
10198 <xs:annotation>
10199 <xs:appinfo>
10200 <xse:msiRef action="ValidateProductID" href="http://msdn.microsoft.com/library/aa372475.aspx" />
10201 </xs:appinfo>
10202 <xs:documentation>Sets the ProductID property to the full product identifier. This action must be sequenced before the user interface wizard in the InstallUISequence table and before the RegisterUser action in the InstallExecuteSequence table. If the product identifier has already been validated successfully, the ValidateProductID action does nothing. The ValidateProductID action always returns a success, whether or not the product identifier is valid, so that the product identifier can be entered on the command line the first time the product is run. The product identifier can be validated without having the user reenter this information by setting the PIDKEY property on the command line or by using a transform. The display of the dialog box requesting the user to enter the product identifier can then be made conditional upon the presence of the ProductID property, which is set when the PIDKEY property is validated. The condition for this action may be specified in the element's inner text.</xs:documentation>
10203 </xs:annotation>
10204 </xs:element>
10205 <xs:element name="CostInitialize" type="ActionSequenceType">
10206 <xs:annotation>
10207 <xs:appinfo>
10208 <xse:seeAlso ref="FileCost" />
10209 <xse:seeAlso ref="CostFinalize" />
10210 <xse:msiRef action="CostInitialize" href="http://msdn.microsoft.com/library/aa368048.aspx" />
10211 </xs:appinfo>
10212 <xs:documentation>Initiates the internal installation costing process. Any standard or custom actions that affect costing should be sequenced before the CostInitialize action. Call the FileCost action immediately following the CostInitialize action. Then call the CostFinalize action following the CostInitialize action to make all final cost calculations available to the installer through the Component table. The condition for this action may be specified in the element's inner text.</xs:documentation>
10213 </xs:annotation>
10214 </xs:element>
10215 <xs:element name="FileCost" type="ActionSequenceType">
10216 <xs:annotation>
10217 <xs:appinfo>
10218 <xse:seeAlso ref="CostInitialize" />
10219 <xse:seeAlso ref="CostFinalize" />
10220 <xse:msiRef action="FileCost" href="http://msdn.microsoft.com/library/aa368589.aspx" />
10221 </xs:appinfo>
10222 <xs:documentation>Initiates dynamic costing of standard installation actions. Any standard or custom actions that affect costing should sequenced before the CostInitialize action. Call the FileCost action immediately following the CostInitialize action. Then call the CostFinalize action following the FileCost action to make all final cost calculations available to the installer through the Component table. The CostInitialize action must be executed before the FileCost action. The installer then determines the disk-space cost of every file in the File table, on a per-component basis, taking both volume clustering and the presence of existing files that may need to be overwritten into account. All actions that consume or release disk space are also considered. If an existing file is found, a file version check is performed to determine whether the new file actually needs to be installed or not. If the existing file is of an equal or greater version number, the existing file is not overwritten and no disk-space cost is incurred. In all cases, the installer uses the results of version number checking to set the installation state of each file. The FileCost action initializes cost calculation with the installer. Actual dynamic costing does not occur until the CostFinalize action is executed. The condition for this action may be specified in the element's inner text.</xs:documentation>
10223 </xs:annotation>
10224 </xs:element>
10225 <xs:element name="IsolateComponents" type="ActionSequenceType">
10226 <xs:annotation>
10227 <xs:appinfo>
10228 <xse:seeAlso ref="IsolateComponent" />
10229 <xse:msiRef action="IsolateComponents" href="http://msdn.microsoft.com/library/aa369561.aspx" />
10230 </xs:appinfo>
10231 <xs:documentation>Installs a copy of a component (commonly a shared DLL) into a private location for use by a specific application (typically an .exe). This isolates the application from other copies of the component that may be installed to a shared location on the computer. The action refers to each record of the IsolatedComponent table and associates the files of the component listed in the Component_Shared field with the component listed in the Component_Application field. The installer installs the files of Component_Shared into the same directory as Component_Application. The installer generates a file in this directory, zero bytes in length, having the short filename name of the key file for Component_Application (typically this is the same file name as the .exe) appended with .local. The IsolatedComponent action does not affect the installation of Component_Application. Uninstalling Component_Application also removes the Component_Shared files and the .local file from the directory. The IsolateComponents action can be used only in the InstallUISequence table and the InstallExecuteSequence table. This action must come after the CostInitialize action and before the CostFinalize action. The condition for this action may be specified in the element's inner text.</xs:documentation>
10232 </xs:annotation>
10233 </xs:element>
10234 <xs:element name="CostFinalize" type="ActionSequenceType">
10235 <xs:annotation>
10236 <xs:appinfo>
10237 <xse:seeAlso ref="CostInitialize" />
10238 <xse:seeAlso ref="FileCost" />
10239 <xse:msiRef action="CostFinalize" href="http://msdn.microsoft.com/library/aa368048.aspx" />
10240 </xs:appinfo>
10241 <xs:documentation>Ends the internal installation costing process begun by the CostInitialize action. Any standard or custom actions that affect costing should be sequenced before the CostInitialize action. Call the FileCost action immediately following the CostInitialize action and then call the CostFinalize action to make all final cost calculations available to the installer through the Component table. The CostFinalize action must be executed before starting any user interface sequence which allows the user to view or modify Feature table selections or directories. The CostFinalize action queries the Condition table to determine which features are scheduled to be installed. Costing is done for each component in the Component table. The CostFinalize action also verifies that all the target directories are writable before allowing the installation to continue. The condition for this action may be specified in the element's inner text.</xs:documentation>
10242 </xs:annotation>
10243 </xs:element>
10244 <xs:element name="SetODBCFolders" type="ActionSequenceType">
10245 <xs:annotation>
10246 <xs:appinfo>
10247 <xse:msiRef action="SetODBCFolders" href="http://msdn.microsoft.com/library/aa371691.aspx" />
10248 </xs:appinfo>
10249 <xs:documentation>Checks for existing ODBC drivers and sets the target directory for each new driver to the location of an existing driver. The condition for this action may be specified in the element's inner text.</xs:documentation>
10250 </xs:annotation>
10251 </xs:element>
10252 <xs:element name="MigrateFeatureStates" type="ActionSequenceType">
10253 <xs:annotation>
10254 <xs:appinfo>
10255 <xse:msiRef action="MigrateFeatureStates" href="http://msdn.microsoft.com/library/aa370034.aspx" />
10256 </xs:appinfo>
10257 <xs:documentation>Used for upgrading or installing over an existing application. Reads feature states from existing application and sets these feature states for the pending installation. The condition for this action may be specified in the element's inner text.</xs:documentation>
10258 </xs:annotation>
10259 </xs:element>
10260 <xs:element name="ExecuteAction" type="ActionSequenceType">
10261 <xs:annotation>
10262 <xs:appinfo>
10263 <xse:msiRef action="ExecuteAction" href="http://msdn.microsoft.com/library/aa368565.aspx" />
10264 </xs:appinfo>
10265 <xs:documentation>Initiates the execution sequence. The condition for this action may be specified in the element's inner text.</xs:documentation>
10266 </xs:annotation>
10267 </xs:element>
10268 <xs:element name="InstallValidate" type="ActionSequenceType">
10269 <xs:annotation>
10270 <xs:appinfo>
10271 <xse:msiRef action="InstallValidate" href="http://msdn.microsoft.com/library/aa369546.aspx" />
10272 </xs:appinfo>
10273 <xs:documentation>Verifies that all costed volumes have enough space for the installation. The condition for this action may be specified in the element's inner text.</xs:documentation>
10274 </xs:annotation>
10275 </xs:element>
10276 <xs:element name="InstallInitialize" type="ActionSequenceType">
10277 <xs:annotation>
10278 <xs:appinfo>
10279 <xse:seeAlso ref="InstallFinalize" />
10280 <xse:msiRef action="InstallInitialize" href="http://msdn.microsoft.com/library/aa369535.aspx" />
10281 </xs:appinfo>
10282 <xs:documentation>Marks the beginning of a sequence of actions that change the system. The condition for this action may be specified in the element's inner text.</xs:documentation>
10283 </xs:annotation>
10284 </xs:element>
10285 <xs:element name="AllocateRegistrySpace" type="ActionSequenceType">
10286 <xs:annotation>
10287 <xs:appinfo>
10288 <xse:msiRef action="AllocateRegistrySpace" href="http://msdn.microsoft.com/library/aa367554.aspx" />
10289 </xs:appinfo>
10290 <xs:documentation>Ensures the needed amount of space exists in the registry. The condition for this action may be specified in the element's inner text.</xs:documentation>
10291 </xs:annotation>
10292 </xs:element>
10293 <xs:element name="ProcessComponents" type="ActionSequenceType">
10294 <xs:annotation>
10295 <xs:appinfo>
10296 <xse:msiRef action="ProcessComponents" href="http://msdn.microsoft.com/library/aa370853.aspx" />
10297 </xs:appinfo>
10298 <xs:documentation>Registers and unregisters components, their key paths, and the component clients. The condition for this action may be specified in the element's inner text.</xs:documentation>
10299 </xs:annotation>
10300 </xs:element>
10301 <xs:element name="UnpublishComponents" type="ActionSequenceType">
10302 <xs:annotation>
10303 <xs:appinfo>
10304 <xse:msiRef action="UnpublishComponents" href="http://msdn.microsoft.com/library/aa372106.aspx" />
10305 </xs:appinfo>
10306 <xs:documentation>Manages the unadvertisement of components listed in the PublishComponent table. The condition for this action may be specified in the element's inner text.</xs:documentation>
10307 </xs:annotation>
10308 </xs:element>
10309 <xs:element name="MsiUnpublishAssemblies" type="ActionSequenceType">
10310 <xs:annotation>
10311 <xs:appinfo>
10312 <xse:msiRef action="MsiUnpublishAssemblies" href="http://msdn.microsoft.com/library/aa370500.aspx" />
10313 </xs:appinfo>
10314 <xs:documentation>Manages the unadvertisement of CLR and Win32 assemblies that are being removed. The condition for this action may be specified in the element's inner text.</xs:documentation>
10315 </xs:annotation>
10316 </xs:element>
10317 <xs:element name="UnpublishFeatures" type="ActionSequenceType">
10318 <xs:annotation>
10319 <xs:appinfo>
10320 <xse:msiRef action="UnpublishFeatures" href="http://msdn.microsoft.com/library/aa372107.aspx" />
10321 </xs:appinfo>
10322 <xs:documentation>Removes selection-state and feature-component mapping information from the registry. The condition for this action may be specified in the element's inner text.</xs:documentation>
10323 </xs:annotation>
10324 </xs:element>
10325 <xs:element name="StopServices" type="ActionSequenceType">
10326 <xs:annotation>
10327 <xs:appinfo>
10328 <xse:msiRef action="StopServices" href="http://msdn.microsoft.com/library/aa372028.aspx" />
10329 </xs:appinfo>
10330 <xs:documentation>Stops system services. The condition for this action may be specified in the element's inner text.</xs:documentation>
10331 </xs:annotation>
10332 </xs:element>
10333 <xs:element name="DeleteServices" type="ActionSequenceType">
10334 <xs:annotation>
10335 <xs:appinfo>
10336 <xse:msiRef action="DeleteServices" href="http://msdn.microsoft.com/library/aa368270.aspx" />
10337 </xs:appinfo>
10338 <xs:documentation>Stops a service and removes its registration from the system. The condition for this action may be specified in the element's inner text.</xs:documentation>
10339 </xs:annotation>
10340 </xs:element>
10341 <xs:element name="UnregisterComPlus" type="ActionSequenceType">
10342 <xs:annotation>
10343 <xs:appinfo>
10344 <xse:msiRef action="UnregisterComPlus" href="http://msdn.microsoft.com/library/aa372109.aspx" />
10345 </xs:appinfo>
10346 <xs:documentation>Removes COM+ applications from the registry. The condition for this action may be specified in the element's inner text.</xs:documentation>
10347 </xs:annotation>
10348 </xs:element>
10349 <xs:element name="SelfUnregModules" type="ActionSequenceType">
10350 <xs:annotation>
10351 <xs:appinfo>
10352 <xse:msiRef action="SelfUnregModules" href="http://msdn.microsoft.com/library/aa371610.aspx" />
10353 </xs:appinfo>
10354 <xs:documentation>Unregisters all modules listed in the SelfReg table that are scheduled to be uninstalled. The condition for this action may be specified in the element's inner text.</xs:documentation>
10355 </xs:annotation>
10356 </xs:element>
10357 <xs:element name="UnregisterTypeLibraries" type="ActionSequenceType">
10358 <xs:annotation>
10359 <xs:appinfo>
10360 <xse:msiRef action="UnregisterTypeLibraries" href="http://msdn.microsoft.com/library/aa372357.aspx" />
10361 </xs:appinfo>
10362 <xs:documentation>Unregisters type libraries from the system. The condition for this action may be specified in the element's inner text.</xs:documentation>
10363 </xs:annotation>
10364 </xs:element>
10365 <xs:element name="RemoveODBC" type="ActionSequenceType">
10366 <xs:annotation>
10367 <xs:appinfo>
10368 <xse:msiRef action="RemoveODBC" href="http://msdn.microsoft.com/library/aa371206.aspx" />
10369 </xs:appinfo>
10370 <xs:documentation>Removes the data sources, translators, and drivers listed for removal during the installation. The condition for this action may be specified in the element's inner text.</xs:documentation>
10371 </xs:annotation>
10372 </xs:element>
10373 <xs:element name="UnregisterFonts" type="ActionSequenceType">
10374 <xs:annotation>
10375 <xs:appinfo>
10376 <xse:msiRef action="UnregisterFonts" href="http://msdn.microsoft.com/library/aa372112.aspx" />
10377 </xs:appinfo>
10378 <xs:documentation>Removes registration information about installed fonts from the system. The condition for this action may be specified in the element's inner text.</xs:documentation>
10379 </xs:annotation>
10380 </xs:element>
10381 <xs:element name="RemoveRegistryValues" type="ActionSequenceType">
10382 <xs:annotation>
10383 <xs:appinfo>
10384 <xse:msiRef action="RemoveRegistryValues" href="http://msdn.microsoft.com/library/aa371207.aspx" />
10385 </xs:appinfo>
10386 <xs:documentation>Removes a registry value that has been authored into the registry table if the associated component was installed locally or as run from source, and is now set to be uninstalled. The condition for this action may be specified in the element's inner text.</xs:documentation>
10387 </xs:annotation>
10388 </xs:element>
10389 <xs:element name="UnregisterClassInfo" type="ActionSequenceType">
10390 <xs:annotation>
10391 <xs:appinfo>
10392 <xse:msiRef action="UnregisterClassInfo" href="http://msdn.microsoft.com/library/aa372108.aspx" />
10393 </xs:appinfo>
10394 <xs:documentation>Manages the removal of COM class information from the system registry. The condition for this action may be specified in the element's inner text.</xs:documentation>
10395 </xs:annotation>
10396 </xs:element>
10397 <xs:element name="UnregisterExtensionInfo" type="ActionSequenceType">
10398 <xs:annotation>
10399 <xs:appinfo>
10400 <xse:msiRef action="UnregisterExtensionInfo" href="http://msdn.microsoft.com/library/aa372110.aspx" />
10401 </xs:appinfo>
10402 <xs:documentation>Manages the removal of extension-related information from the system registry. The condition for this action may be specified in the element's inner text.</xs:documentation>
10403 </xs:annotation>
10404 </xs:element>
10405 <xs:element name="UnregisterProgIdInfo" type="ActionSequenceType">
10406 <xs:annotation>
10407 <xs:appinfo>
10408 <xse:msiRef action="UnregisterProgIdInfo" href="http://msdn.microsoft.com/library/aa372114.aspx" />
10409 </xs:appinfo>
10410 <xs:documentation>Manages the unregistration of OLE ProgId information with the system. The condition for this action may be specified in the element's inner text.</xs:documentation>
10411 </xs:annotation>
10412 </xs:element>
10413 <xs:element name="UnregisterMIMEInfo" type="ActionSequenceType">
10414 <xs:annotation>
10415 <xs:appinfo>
10416 <xse:msiRef action="UnregisterMIMEInfo" href="http://msdn.microsoft.com/library/aa372113.aspx" />
10417 </xs:appinfo>
10418 <xs:documentation>Unregisters MIME-related registry information from the system. The condition for this action may be specified in the element's inner text.</xs:documentation>
10419 </xs:annotation>
10420 </xs:element>
10421 <xs:element name="RemoveIniValues" type="ActionSequenceType">
10422 <xs:annotation>
10423 <xs:appinfo>
10424 <xse:msiRef action="RemoveIniValues" href="http://msdn.microsoft.com/library/aa371205.aspx" />
10425 </xs:appinfo>
10426 <xs:documentation>Removes .ini file information specified for removal in the RemoveIniFile table if the component is set to be installed locally or run from source. The condition for this action may be specified in the element's inner text.</xs:documentation>
10427 </xs:annotation>
10428 </xs:element>
10429 <xs:element name="RemoveShortcuts" type="ActionSequenceType">
10430 <xs:annotation>
10431 <xs:appinfo>
10432 <xse:msiRef action="RemoveShortcuts" href="http://msdn.microsoft.com/library/aa371209.aspx" />
10433 </xs:appinfo>
10434 <xs:documentation>Manages the removal of an advertised shortcut whose feature is selected for uninstallation or a nonadvertised shortcut whose component is selected for uninstallation. The condition for this action may be specified in the element's inner text.</xs:documentation>
10435 </xs:annotation>
10436 </xs:element>
10437 <xs:element name="RemoveEnvironmentStrings" type="ActionSequenceType">
10438 <xs:annotation>
10439 <xs:appinfo>
10440 <xse:msiRef action="RemoveEnvironmentStrings" href="http://msdn.microsoft.com/library/aa371196.aspx" />
10441 </xs:appinfo>
10442 <xs:documentation>Modifies the values of environment variables. The condition for this action may be specified in the element's inner text.</xs:documentation>
10443 </xs:annotation>
10444 </xs:element>
10445 <xs:element name="RemoveDuplicateFiles" type="ActionSequenceType">
10446 <xs:annotation>
10447 <xs:appinfo>
10448 <xse:msiRef action="RemoveDuplicateFiles" href="http://msdn.microsoft.com/library/aa371195.aspx" />
10449 </xs:appinfo>
10450 <xs:documentation>Deletes files installed by the DuplicateFiles action. The condition for this action may be specified in the element's inner text.</xs:documentation>
10451 </xs:annotation>
10452 </xs:element>
10453 <xs:element name="RemoveFiles" type="ActionSequenceType">
10454 <xs:annotation>
10455 <xs:appinfo>
10456 <xse:msiRef action="RemoveFiles" href="http://msdn.microsoft.com/library/aa371199.aspx" />
10457 </xs:appinfo>
10458 <xs:documentation>Removes files previously installed by the InstallFiles action. The condition for this action may be specified in the element's inner text.</xs:documentation>
10459 </xs:annotation>
10460 </xs:element>
10461 <xs:element name="RemoveFolders" type="ActionSequenceType">
10462 <xs:annotation>
10463 <xs:appinfo>
10464 <xse:msiRef action="RemoveFolders" href="http://msdn.microsoft.com/library/aa371202.aspx" />
10465 </xs:appinfo>
10466 <xs:documentation>Removes any folders linked to components set to be removed or run from source. The condition for this action may be specified in the element's inner text.</xs:documentation>
10467 </xs:annotation>
10468 </xs:element>
10469 <xs:element name="CreateFolders" type="ActionSequenceType">
10470 <xs:annotation>
10471 <xs:appinfo>
10472 <xse:msiRef action="CreateFolders" href="http://msdn.microsoft.com/library/aa368052.aspx" />
10473 </xs:appinfo>
10474 <xs:documentation>Creates empty folders for components that are set to be installed. The condition for this action may be specified in the element's inner text.</xs:documentation>
10475 </xs:annotation>
10476 </xs:element>
10477 <xs:element name="MoveFiles" type="ActionSequenceType">
10478 <xs:annotation>
10479 <xs:appinfo>
10480 <xse:msiRef table="MoveFile" href="http://msdn.microsoft.com/library/aa370055.aspx" />
10481 <xse:msiRef action="MoveFiles" href="http://msdn.microsoft.com/library/aa370054.aspx" />
10482 </xs:appinfo>
10483 <xs:documentation>Locates existing files on the system and moves or copies those files to a new location. The condition for this action may be specified in the element's inner text.</xs:documentation>
10484 </xs:annotation>
10485 </xs:element>
10486 <xs:element name="InstallAdminPackage" type="ActionSequenceType">
10487 <xs:annotation>
10488 <xs:appinfo>
10489 <xse:msiRef action="InstallAdminPackage" href="http://msdn.microsoft.com/library/aa369287.aspx" />
10490 </xs:appinfo>
10491 <xs:documentation>Copies the product database to the administrative installation point. The condition for this action may be specified in the element's inner text.</xs:documentation>
10492 </xs:annotation>
10493 </xs:element>
10494 <xs:element name="InstallFiles" type="ActionSequenceType">
10495 <xs:annotation>
10496 <xs:appinfo>
10497 <xse:msiRef action="InstallFiles" href="http://msdn.microsoft.com/library/aa369503.aspx" />
10498 </xs:appinfo>
10499 <xs:documentation>Copies files specified in the File table from the source directory to the destination directory. The condition for this action may be specified in the element's inner text.</xs:documentation>
10500 </xs:annotation>
10501 </xs:element>
10502 <xs:element name="DuplicateFiles" type="ActionSequenceType">
10503 <xs:annotation>
10504 <xs:appinfo>
10505 <xse:msiRef action="DuplicateFiles" href="http://msdn.microsoft.com/library/aa368334.aspx" />
10506 </xs:appinfo>
10507 <xs:documentation>Duplicates files installed by the InstallFiles action. The condition for this action may be specified in the element's inner text.</xs:documentation>
10508 </xs:annotation>
10509 </xs:element>
10510 <xs:element name="PatchFiles" type="ActionSequenceType">
10511 <xs:annotation>
10512 <xs:appinfo>
10513 <xse:msiRef action="PatchFiles" href="http://msdn.microsoft.com/library/aa370577.aspx" />
10514 </xs:appinfo>
10515 <xs:documentation>Queries the Patch table to determine which patches are to be applied. The condition for this action may be specified in the element's inner text.</xs:documentation>
10516 </xs:annotation>
10517 </xs:element>
10518 <xs:element name="BindImage" type="ActionSequenceType">
10519 <xs:annotation>
10520 <xs:appinfo>
10521 <xse:msiRef table="BindImage" href="http://msdn.microsoft.com/library/aa367828.aspx" />
10522 <xse:msiRef action="BindImage" href="http://msdn.microsoft.com/library/aa367827.aspx" />
10523 </xs:appinfo>
10524 <xs:documentation>Binds each executable or DLL that must be bound to the DLLs imported by it. The condition for this action may be specified in the element's inner text.</xs:documentation>
10525 </xs:annotation>
10526 </xs:element>
10527 <xs:element name="CreateShortcuts" type="ActionSequenceType">
10528 <xs:annotation>
10529 <xs:appinfo>
10530 <xse:msiRef action="CreateShortcuts" href="http://msdn.microsoft.com/library/aa368054.aspx" />
10531 </xs:appinfo>
10532 <xs:documentation>Manages the creation of shortcuts. The condition for this action may be specified in the element's inner text.</xs:documentation>
10533 </xs:annotation>
10534 </xs:element>
10535 <xs:element name="RegisterClassInfo" type="ActionSequenceType">
10536 <xs:annotation>
10537 <xs:appinfo>
10538 <xse:msiRef action="RegisterClassInfo" href="http://msdn.microsoft.com/library/aa371154.aspx" />
10539 </xs:appinfo>
10540 <xs:documentation>Manages the registration of COM class information with the system. The condition for this action may be specified in the element's inner text.</xs:documentation>
10541 </xs:annotation>
10542 </xs:element>
10543 <xs:element name="RegisterExtensionInfo" type="ActionSequenceType">
10544 <xs:annotation>
10545 <xs:appinfo>
10546 <xse:msiRef action="RegisterExtensionInfo" href="http://msdn.microsoft.com/library/aa371156.aspx" />
10547 </xs:appinfo>
10548 <xs:documentation>Manages the registration of extension related information with the system. The condition for this action may be specified in the element's inner text.</xs:documentation>
10549 </xs:annotation>
10550 </xs:element>
10551 <xs:element name="RegisterProgIdInfo" type="ActionSequenceType">
10552 <xs:annotation>
10553 <xs:appinfo>
10554 <xse:msiRef action="RegisterProgIdInfo" href="http://msdn.microsoft.com/library/aa371164.aspx" />
10555 </xs:appinfo>
10556 <xs:documentation>Manages the registration of OLE ProgId information with the system. The condition for this action may be specified in the element's inner text.</xs:documentation>
10557 </xs:annotation>
10558 </xs:element>
10559 <xs:element name="RegisterMIMEInfo" type="ActionSequenceType">
10560 <xs:annotation>
10561 <xs:appinfo>
10562 <xse:msiRef action="RegisterMIMEInfo" href="http://msdn.microsoft.com/library/aa371160.aspx" />
10563 </xs:appinfo>
10564 <xs:documentation>Registers MIME-related registry information with the system. The condition for this action may be specified in the element's inner text.</xs:documentation>
10565 </xs:annotation>
10566 </xs:element>
10567 <xs:element name="WriteRegistryValues" type="ActionSequenceType">
10568 <xs:annotation>
10569 <xs:appinfo>
10570 <xse:msiRef action="WriteRegistryValues" href="http://msdn.microsoft.com/library/aa372891.aspx" />
10571 </xs:appinfo>
10572 <xs:documentation>Sets up an application's registry information. The condition for this action may be specified in the element's inner text.</xs:documentation>
10573 </xs:annotation>
10574 </xs:element>
10575 <xs:element name="WriteIniValues" type="ActionSequenceType">
10576 <xs:annotation>
10577 <xs:appinfo>
10578 <xse:msiRef action="WriteIniValues" href="http://msdn.microsoft.com/library/aa372884.aspx" />
10579 </xs:appinfo>
10580 <xs:documentation>Writes the .ini file information that the application needs written to its .ini files. The condition for this action may be specified in the element's inner text.</xs:documentation>
10581 </xs:annotation>
10582 </xs:element>
10583 <xs:element name="WriteEnvironmentStrings" type="ActionSequenceType">
10584 <xs:annotation>
10585 <xs:appinfo>
10586 <xse:msiRef action="WriteEnvironmentStrings" href="http://msdn.microsoft.com/library/aa372883.aspx" />
10587 </xs:appinfo>
10588 <xs:documentation>Modifies the values of environment variables. The condition for this action may be specified in the element's inner text.</xs:documentation>
10589 </xs:annotation>
10590 </xs:element>
10591 <xs:element name="RegisterFonts" type="ActionSequenceType">
10592 <xs:annotation>
10593 <xs:appinfo>
10594 <xse:msiRef action="RegisterFonts" href="http://msdn.microsoft.com/library/aa371158.aspx" />
10595 </xs:appinfo>
10596 <xs:documentation>Registers installed fonts with the system. The condition for this action may be specified in the element's inner text.</xs:documentation>
10597 </xs:annotation>
10598 </xs:element>
10599 <xs:element name="InstallODBC" type="ActionSequenceType">
10600 <xs:annotation>
10601 <xs:appinfo>
10602 <xse:msiRef action="InstallODBC" href="http://msdn.microsoft.com/library/aa369538.aspx" />
10603 </xs:appinfo>
10604 <xs:documentation>Installs the drivers, translators, and data sources in the ODBCDriver table, ODBCTranslator table, and ODBCDataSource table. The condition for this action may be specified in the element's inner text.</xs:documentation>
10605 </xs:annotation>
10606 </xs:element>
10607 <xs:element name="RegisterTypeLibraries" type="ActionSequenceType">
10608 <xs:annotation>
10609 <xs:appinfo>
10610 <xse:msiRef action="RegisterTypeLibraries" href="http://msdn.microsoft.com/library/aa371165.aspx" />
10611 </xs:appinfo>
10612 <xs:documentation>Registers type libraries with the system. The condition for this action may be specified in the element's inner text.</xs:documentation>
10613 </xs:annotation>
10614 </xs:element>
10615 <xs:element name="SelfRegModules" type="ActionSequenceType">
10616 <xs:annotation>
10617 <xs:appinfo>
10618 <xse:msiRef action="SelfRegModules" href="http://msdn.microsoft.com/library/aa371607.aspx" />
10619 </xs:appinfo>
10620 <xs:documentation>Processes all modules listed in the SelfReg table and registers all installed modules with the system. The condition for this action may be specified in the element's inner text.</xs:documentation>
10621 </xs:annotation>
10622 </xs:element>
10623 <xs:element name="RegisterComPlus" type="ActionSequenceType">
10624 <xs:annotation>
10625 <xs:appinfo>
10626 <xse:msiRef action="RegisterComPlus" href="http://msdn.microsoft.com/library/aa371155.aspx" />
10627 </xs:appinfo>
10628 <xs:documentation>Registers COM+ applications. The condition for this action may be specified in the element's inner text.</xs:documentation>
10629 </xs:annotation>
10630 </xs:element>
10631 <xs:element name="InstallServices" type="ActionSequenceType">
10632 <xs:annotation>
10633 <xs:appinfo>
10634 <xse:msiRef action="InstallServices" href="http://msdn.microsoft.com/library/aa369540.aspx" />
10635 </xs:appinfo>
10636 <xs:documentation>Registers a service for the system. The condition for this action may be specified in the element's inner text.</xs:documentation>
10637 </xs:annotation>
10638 </xs:element>
10639 <xs:element name="StartServices" type="ActionSequenceType">
10640 <xs:annotation>
10641 <xs:appinfo>
10642 <xse:msiRef action="StartServices" href="http://msdn.microsoft.com/library/aa372026.aspx" />
10643 </xs:appinfo>
10644 <xs:documentation>Starts system services. The condition for this action may be specified in the element's inner text.</xs:documentation>
10645 </xs:annotation>
10646 </xs:element>
10647 <xs:element name="RegisterUser" type="ActionSequenceType">
10648 <xs:annotation>
10649 <xs:appinfo>
10650 <xse:msiRef action="RegisterUser" href="http://msdn.microsoft.com/library/aa371166.aspx" />
10651 </xs:appinfo>
10652 <xs:documentation>Registers the user information with the installer to identify the user of a product. The condition for this action may be specified in the element's inner text.</xs:documentation>
10653 </xs:annotation>
10654 </xs:element>
10655 <xs:element name="RegisterProduct" type="ActionSequenceType">
10656 <xs:annotation>
10657 <xs:appinfo>
10658 <xse:msiRef action="RegisterProduct" href="http://msdn.microsoft.com/library/aa371162.aspx" />
10659 </xs:appinfo>
10660 <xs:documentation>Registers the product information with the installer. The condition for this action may be specified in the element's inner text.</xs:documentation>
10661 </xs:annotation>
10662 </xs:element>
10663 <xs:element name="PublishComponents" type="ActionSequenceType">
10664 <xs:annotation>
10665 <xs:appinfo>
10666 <xse:msiRef action="PublishComponents" href="http://msdn.microsoft.com/library/aa370918.aspx" />
10667 </xs:appinfo>
10668 <xs:documentation>Manages the advertisement of the components from the PublishComponent table. The condition for this action may be specified in the element's inner text.</xs:documentation>
10669 </xs:annotation>
10670 </xs:element>
10671 <xs:element name="MsiPublishAssemblies" type="ActionSequenceType">
10672 <xs:annotation>
10673 <xs:appinfo>
10674 <xse:msiRef action="MsiPublishAssemblies" href="http://msdn.microsoft.com/library/aa370359.aspx" />
10675 </xs:appinfo>
10676 <xs:documentation>Manages the advertisement of CLR and Win32 assemblies. The condition for this action may be specified in the element's inner text.</xs:documentation>
10677 </xs:annotation>
10678 </xs:element>
10679 <xs:element name="PublishFeatures" type="ActionSequenceType">
10680 <xs:annotation>
10681 <xs:appinfo>
10682 <xse:msiRef action="PublishFeatures" href="http://msdn.microsoft.com/library/aa370923.aspx" />
10683 </xs:appinfo>
10684 <xs:documentation>Writes each feature's state into the system registry. The condition for this action may be specified in the element's inner text.</xs:documentation>
10685 </xs:annotation>
10686 </xs:element>
10687 <xs:element name="PublishProduct" type="ActionSequenceType">
10688 <xs:annotation>
10689 <xs:appinfo>
10690 <xse:msiRef action="PublishProduct" href="http://msdn.microsoft.com/library/aa370932.aspx" />
10691 </xs:appinfo>
10692 <xs:documentation>Manages the advertisement of the product information with the system. The condition for this action may be specified in the element's inner text.</xs:documentation>
10693 </xs:annotation>
10694 </xs:element>
10695 <xs:element name="InstallFinalize" type="ActionSequenceType">
10696 <xs:annotation>
10697 <xs:appinfo>
10698 <xse:seeAlso ref="InstallInitialize" />
10699 <xse:msiRef action="InstallFinalize" href="http://msdn.microsoft.com/library/aa369505.aspx" />
10700 </xs:appinfo>
10701 <xs:documentation>Marks the end of a sequence of actions that change the system. The condition for this action may be specified in the element's inner text.</xs:documentation>
10702 </xs:annotation>
10703 </xs:element>
10704 <xs:element name="AppSearch" type="ActionModuleSequenceType">
10705 <xs:annotation>
10706 <xs:appinfo>
10707 <xse:seeAlso ref="ComponentSearch" />
10708 <xse:seeAlso ref="FileSearch" />
10709 <xse:seeAlso ref="IniFileSearch" />
10710 <xse:seeAlso ref="RegistrySearch" />
10711 <xse:msiRef table="AppSearch" href="http://msdn.microsoft.com/library/aa367579.aspx" />
10712 <xse:msiRef action="AppSearch" href="http://msdn.microsoft.com/library/aa367578.aspx" />
10713 </xs:appinfo>
10714 <xs:documentation>Uses file signatures to search for existing versions of products. The AppSearch action may use this information to determine where upgrades are to be installed. The AppSearch action can also be used to set a property to the existing value of an registry or .ini file entry. AppSearch should be authored into the InstallUISequence table and InstallExecuteSequence table. The installer prevents The AppSearch action from running in the InstallExecuteSequence sequence if the action has already run in InstallUISequence sequence. The AppSearch action searches for file signatures using the CompLocator table first, the RegLocator table next, then the IniLocator table, and finally the DrLocator table. The condition for this action may be specified in the element's inner text.</xs:documentation>
10715 </xs:annotation>
10716 </xs:element>
10717 <xs:element name="CCPSearch" type="ActionModuleSequenceType">
10718 <xs:annotation>
10719 <xs:appinfo>
10720 <xse:seeAlso ref="RMCCPSearch" />
10721 <xse:seeAlso ref="ComplianceCheck" />
10722 <xse:msiRef action="CCPSearch" href="http://msdn.microsoft.com/library/aa367845.aspx" />
10723 </xs:appinfo>
10724 <xs:documentation>Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed. The CCPSearch action should be authored into the InstallUISequence table and InstallExecuteSequence table. The installer prevents the CCPSearch action from running in the InstallExecuteSequence sequence if the action has already run in InstallUISequence sequence. The CCPSearch action must come before the RMCCPSearch action. The condition for this action may be specified in the element's inner text.</xs:documentation>
10725 </xs:annotation>
10726 </xs:element>
10727 <xs:element name="RMCCPSearch" type="ActionModuleSequenceType">
10728 <xs:annotation>
10729 <xs:appinfo>
10730 <xse:seeAlso ref="CCPSearch" />
10731 <xse:seeAlso ref="ComplianceCheck" />
10732 <xse:msiRef action="RMCCPSearch" href="http://msdn.microsoft.com/library/aa371364.aspx" />
10733 </xs:appinfo>
10734 <xs:documentation>Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed. The RMCCPSearch action should be authored into the InstallUISequence table and InstallExecuteSequence table. The installer prevents RMCCPSearch from running in the InstallExecuteSequence sequence if the action has already run in InstallUISequence sequence. The RMCCPSearch action requires the CCP_DRIVE property to be set to the root path on the removable volume that has the installation for any of the qualifying products. The condition for this action may be specified in the element's inner text.</xs:documentation>
10735 </xs:annotation>
10736 </xs:element>
10737 <xs:element name="LaunchConditions" type="ActionModuleSequenceType">
10738 <xs:annotation>
10739 <xs:appinfo>
10740 <xse:seeAlso ref="Launch" />
10741 <xse:msiRef action="LaunchConditions" href="http://msdn.microsoft.com/library/aa369751.aspx" />
10742 </xs:appinfo>
10743 <xs:documentation>Queries the LaunchCondition table and evaluates each conditional statement recorded there. If any of these conditional statements fail, an error message is displayed to the user and the installation is terminated. The LaunchConditions action is optional. This action is normally the first in the sequence, but the AppSearch Action may be sequenced before the LaunchConditions action. If there are launch conditions that do not apply to all installation modes, the appropriate installation mode property should be used in a conditional expression in the appropriate sequence table. The condition for this action may be specified in the element's inner text.</xs:documentation>
10744 </xs:annotation>
10745 </xs:element>
10746 <xs:element name="FindRelatedProducts" type="ActionModuleSequenceType">
10747 <xs:annotation>
10748 <xs:appinfo>
10749 <xse:seeAlso ref="Upgrade" />
10750 <xse:msiRef action="FindRelatedProducts" href="http://msdn.microsoft.com/library/aa368600.aspx" />
10751 </xs:appinfo>
10752 <xs:documentation>Runs through each record of the Upgrade table in sequence and compares the upgrade code, product version, and language in each row to products installed on the system. When FindRelatedProducts detects a correspondence between the upgrade information and an installed product, it appends the product code to the property specified in the ActionProperty column of the UpgradeTable. The FindRelatedProducts action only runs the first time the product is installed. The FindRelatedProducts action does not run during maintenance mode or uninstallation. FindRelatedProducts should be authored into the InstallUISequence table and InstallExecuteSequence tables. The installer prevents FindRelatedProducts from running in InstallExecuteSequence if the action has already run in InstallUISequence. The FindRelatedProducts action must come before the MigrateFeatureStates action and the RemoveExistingProducts action. The condition for this action may be specified in the element's inner text.</xs:documentation>
10753 </xs:annotation>
10754 </xs:element>
10755 <xs:element name="InstallExecute" type="ActionModuleSequenceType">
10756 <xs:annotation>
10757 <xs:appinfo>
10758 <xse:msiRef action="InstallExecute" href="http://msdn.microsoft.com/library/aa369502.aspx" />
10759 </xs:appinfo>
10760 <xs:documentation>Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize.</xs:documentation>
10761 </xs:annotation>
10762 </xs:element>
10763 <xs:element name="InstallExecuteAgain" type="ActionModuleSequenceType">
10764 <xs:annotation>
10765 <xs:appinfo>
10766 <xse:msiRef action="InstallExecuteAgain" href="http://msdn.microsoft.com/library/aa369497.aspx" />
10767 </xs:appinfo>
10768 <xs:documentation>Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action. Should only be used after InstallExecute. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize.</xs:documentation>
10769 </xs:annotation>
10770 </xs:element>
10771 <xs:element name="DisableRollback" type="ActionModuleSequenceType">
10772 <xs:annotation>
10773 <xs:appinfo>
10774 <xse:msiRef action="DisableRollback" href="http://msdn.microsoft.com/library/aa368308.aspx" />
10775 </xs:appinfo>
10776 <xs:documentation>Disables rollback for the remainder of the installation. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize.</xs:documentation>
10777 </xs:annotation>
10778 </xs:element>
10779 <xs:element name="RemoveExistingProducts" type="ActionModuleSequenceType">
10780 <xs:annotation>
10781 <xs:appinfo>
10782 <xse:msiRef action="RemoveExistingProducts" href="http://msdn.microsoft.com/library/aa371197.aspx" />
10783 </xs:appinfo>
10784 <xs:documentation>Goes through the product codes listed in the ActionProperty column of the Upgrade table and removes the products in sequence. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize.</xs:documentation>
10785 </xs:annotation>
10786 </xs:element>
10787 <xs:element name="ScheduleReboot" type="ActionModuleSequenceType">
10788 <xs:annotation>
10789 <xs:appinfo>
10790 <xse:msiRef action="ScheduleReboot" href="http://msdn.microsoft.com/library/aa371527.aspx" />
10791 </xs:appinfo>
10792 <xs:documentation>Prompts the user to restart the system at the end of installation. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize.</xs:documentation>
10793 </xs:annotation>
10794 </xs:element>
10795 <xs:element name="ForceReboot" type="ActionModuleSequenceType">
10796 <xs:annotation>
10797 <xs:appinfo>
10798 <xse:msiRef action="ForceReboot" href="http://msdn.microsoft.com/library/aa368607.aspx" />
10799 </xs:appinfo>
10800 <xs:documentation>Prompts the user for a restart of the system during the installation. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize.</xs:documentation>
10801 </xs:annotation>
10802 </xs:element>
10803 <xs:element name="ResolveSource" type="ActionModuleSequenceType">
10804 <xs:annotation>
10805 <xs:appinfo>
10806 <xse:msiRef action="ResolveSource" href="http://msdn.microsoft.com/library/aa371232.aspx" />
10807 </xs:appinfo>
10808 <xs:documentation>Determines the location of the source and sets the SourceDir property if the source has not been resolved yet. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize.</xs:documentation>
10809 </xs:annotation>
10810 </xs:element>
10811 <!-- CustomActions and Dialogs of course aren't built in and must be specified relative to another action -->
10812 <xs:element name="Custom">
10813 <xs:annotation>
10814 <xs:appinfo>
10815 <xse:seeAlso ref="CustomAction" />
10816 </xs:appinfo>
10817 <xs:documentation>Use to sequence a custom action.</xs:documentation>
10818 </xs:annotation>
10819 <xs:complexType>
10820 <xs:annotation>
10821 <xs:documentation>Text node specifies the condition of the action.</xs:documentation>
10822 </xs:annotation>
10823 <xs:attribute name="Action" type="xs:string" use="required">
10824 <xs:annotation>
10825 <xs:documentation>The CustomAction to which the Custom element applies.</xs:documentation>
10826 </xs:annotation>
10827 </xs:attribute>
10828 <xs:attribute name="Condition" type="xs:string">
10829 <xs:annotation>
10830 <xs:documentation>Optional condition that determines whether the action should be executed.</xs:documentation>
10831 </xs:annotation>
10832 </xs:attribute>
10833 <xs:attribute name="OnExit" type="ExitType">
10834 <xs:annotation>
10835 <xs:documentation>Mutually exclusive with Before, After, and Sequence attributes</xs:documentation>
10836 </xs:annotation>
10837 </xs:attribute>
10838 <xs:attribute name="Before" type="xs:string">
10839 <xs:annotation>
10840 <xs:documentation>The name of the standard or custom action before which this action should be performed. Mutually exclusive with OnExit, After, and Sequence attributes</xs:documentation>
10841 </xs:annotation>
10842 </xs:attribute>
10843 <xs:attribute name="After" type="xs:string">
10844 <xs:annotation>
10845 <xs:documentation>The name of the standard or custom action after which this action should be performed. Mutually exclusive with Before, OnExit, and Sequence attributes</xs:documentation>
10846 </xs:annotation>
10847 </xs:attribute>
10848 <xs:attribute name="Overridable" type="YesNoTypeUnion">
10849 <xs:annotation>
10850 <xs:documentation>If "yes", the sequencing of this action may be overridden by sequencing elsewhere.</xs:documentation>
10851 </xs:annotation>
10852 </xs:attribute>
10853 <xs:attribute name="Sequence" type="Integer">
10854 <xs:annotation>
10855 <xs:documentation>The sequence number for this action. It is recommended to use one of the other mutually exclusive attributes: OnExit, After, and Before.</xs:documentation>
10856 </xs:annotation>
10857 </xs:attribute>
10858 </xs:complexType>
10859 </xs:element>
10860 <xs:element name="Show">
10861 <xs:complexType>
10862 <xs:attribute name="Dialog" type="xs:string" use="required">
10863 <xs:annotation>
10864 <xs:documentation>Reference to dialog to show.</xs:documentation>
10865 </xs:annotation>
10866 </xs:attribute>
10867 <xs:attribute name="Condition" type="xs:string">
10868 <xs:annotation>
10869 <xs:documentation>Optional condition that determines whether the dialog should be displayed.</xs:documentation>
10870 </xs:annotation>
10871 </xs:attribute>
10872 <xs:attribute name="OnExit" type="ExitType">
10873 <xs:annotation>
10874 <xs:documentation>Show the dialog Mutually exclusive with Before, After, and Sequence attributes.</xs:documentation>
10875 </xs:annotation>
10876 </xs:attribute>
10877 <xs:attribute name="Before" type="xs:string">
10878 <xs:annotation>
10879 <xs:documentation>Show the dialog before the specified action. Mutually exclusive with OnExit, After, and Sequence attributes.</xs:documentation>
10880 </xs:annotation>
10881 </xs:attribute>
10882 <xs:attribute name="After" type="xs:string">
10883 <xs:annotation>
10884 <xs:documentation>Show the dialog after the specified action. Mutually exclusive with OnExit, Before, and Sequence attributes.</xs:documentation>
10885 </xs:annotation>
10886 </xs:attribute>
10887 <xs:attribute name="Overridable" type="YesNoTypeUnion">
10888 <xs:annotation>
10889 <xs:documentation>
10890 If "yes", the sequencing of this dialog may be overridden by sequencing elsewhere. The default is "no".
10891 </xs:documentation>
10892 </xs:annotation>
10893 </xs:attribute>
10894 <xs:attribute name="Sequence" type="Integer">
10895 <xs:annotation>
10896 <xs:documentation>Show the dialog at the specified sequence. It is recommended to use one of the other mutually exclusive attributes: OnExit, After, and Before.</xs:documentation>
10897 </xs:annotation>
10898 </xs:attribute>
10899 </xs:complexType>
10900 </xs:element>
10901 <!-- standard sequence table compositions -->
10902 <xs:element name="InstallUISequence">
10903 <xs:annotation>
10904 <xs:appinfo>
10905 <xse:msiRef table="InstallUISequence" href="https://docs.microsoft.com/en-us/windows/win32/msi/installuisequence-table" />
10906 </xs:appinfo>
10907 </xs:annotation>
10908 <xs:complexType>
10909 <xs:choice minOccurs="0" maxOccurs="unbounded">
10910 <xs:element ref="Custom" minOccurs="0" maxOccurs="unbounded">
10911 <xs:annotation>
10912 <xs:documentation>Use to sequence a custom action.</xs:documentation>
10913 </xs:annotation>
10914 </xs:element>
10915 <xs:element ref="Show" minOccurs="0" maxOccurs="unbounded">
10916 <xs:annotation>
10917 <xs:documentation>Displays a Dialog.</xs:documentation>
10918 </xs:annotation>
10919 </xs:element>
10920 <xs:element ref="ScheduleReboot" minOccurs="0">
10921 <xs:annotation>
10922 <xs:documentation>Prompts the user to restart the system at the end of installation. Not fixed sequence.</xs:documentation>
10923 </xs:annotation>
10924 </xs:element>
10925 <xs:element ref="LaunchConditions" minOccurs="0">
10926 <xs:annotation>
10927 <xs:documentation>Queries the LaunchCondition table and evaluates each conditional statement recorded there.</xs:documentation>
10928 </xs:annotation>
10929 </xs:element>
10930 <xs:element ref="FindRelatedProducts" minOccurs="0">
10931 <xs:annotation>
10932 <xs:documentation>Runs through each record of the Upgrade table in sequence and compares the upgrade code, product version, and language in each row to products installed on the system.</xs:documentation>
10933 </xs:annotation>
10934 </xs:element>
10935 <xs:element ref="AppSearch" minOccurs="0">
10936 <xs:annotation>
10937 <xs:documentation>Uses file signatures to search for existing versions of products.</xs:documentation>
10938 </xs:annotation>
10939 </xs:element>
10940 <xs:element ref="CCPSearch" minOccurs="0">
10941 <xs:annotation>
10942 <xs:documentation>Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed.</xs:documentation>
10943 </xs:annotation>
10944 </xs:element>
10945 <xs:element ref="RMCCPSearch" minOccurs="0">
10946 <xs:annotation>
10947 <xs:documentation>Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed.</xs:documentation>
10948 </xs:annotation>
10949 </xs:element>
10950 <xs:element ref="ValidateProductID">
10951 <xs:annotation>
10952 <xs:documentation>Sets the ProductID property to the full product identifier.</xs:documentation>
10953 </xs:annotation>
10954 </xs:element>
10955 <xs:element ref="CostInitialize">
10956 <xs:annotation>
10957 <xs:documentation>Initiates the internal installation costing process.</xs:documentation>
10958 </xs:annotation>
10959 </xs:element>
10960 <xs:element ref="FileCost">
10961 <xs:annotation>
10962 <xs:documentation>Initiates dynamic costing of standard installation actions.</xs:documentation>
10963 </xs:annotation>
10964 </xs:element>
10965 <xs:element ref="IsolateComponents">
10966 <xs:annotation>
10967 <xs:documentation>Installs a copy of a component (commonly a shared DLL) into a private location for use by a specific application (typically an .exe).</xs:documentation>
10968 </xs:annotation>
10969 </xs:element>
10970 <xs:element ref="ResolveSource" minOccurs="0">
10971 <xs:annotation>
10972 <xs:documentation>Determines the location of the source and sets the SourceDir property if the source has not been resolved yet.</xs:documentation>
10973 </xs:annotation>
10974 </xs:element>
10975 <xs:element ref="CostFinalize">
10976 <xs:annotation>
10977 <xs:documentation>Ends the internal installation costing process begun by the CostInitialize action.</xs:documentation>
10978 </xs:annotation>
10979 </xs:element>
10980 <xs:element ref="MigrateFeatureStates">
10981 <xs:annotation>
10982 <xs:documentation>Used for upgrading or installing over an existing application.</xs:documentation>
10983 </xs:annotation>
10984 </xs:element>
10985 <xs:element ref="ExecuteAction" minOccurs="0">
10986 <xs:annotation>
10987 <xs:documentation>Initiates the execution sequence.</xs:documentation>
10988 </xs:annotation>
10989 </xs:element>
10990 </xs:choice>
10991 </xs:complexType>
10992 </xs:element>
10993 <xs:element name="InstallExecuteSequence">
10994 <xs:annotation>
10995 <xs:appinfo>
10996 <xse:msiRef table="InstallExecuteSequence" href="https://docs.microsoft.com/en-us/windows/win32/msi/installexecutesequence-table" />
10997 </xs:appinfo>
10998 </xs:annotation>
10999 <xs:complexType>
11000 <xs:choice minOccurs="0" maxOccurs="unbounded">
11001 <xs:element ref="Custom" minOccurs="0" maxOccurs="unbounded">
11002 <xs:annotation>
11003 <xs:documentation>Use to sequence a custom action.</xs:documentation>
11004 </xs:annotation>
11005 </xs:element>
11006 <xs:element ref="ScheduleReboot" minOccurs="0">
11007 <xs:annotation>
11008 <xs:documentation>Prompts the user to restart the system at the end of installation. Not fixed sequence.</xs:documentation>
11009 </xs:annotation>
11010 </xs:element>
11011 <xs:element ref="ForceReboot" minOccurs="0">
11012 <xs:annotation>
11013 <xs:documentation>Prompts the user for a restart of the system during the installation. Not fixed sequence.</xs:documentation>
11014 </xs:annotation>
11015 </xs:element>
11016 <xs:element ref="ResolveSource" minOccurs="0">
11017 <xs:annotation>
11018 <xs:documentation>Determines the location of the source and sets the SourceDir property if the source has not been resolved yet. Not fixed sequence.</xs:documentation>
11019 </xs:annotation>
11020 </xs:element>
11021 <xs:element ref="LaunchConditions" minOccurs="0">
11022 <xs:annotation>
11023 <xs:documentation>Queries the LaunchCondition table and evaluates each conditional statement recorded there.</xs:documentation>
11024 </xs:annotation>
11025 </xs:element>
11026 <xs:element ref="FindRelatedProducts" minOccurs="0">
11027 <xs:annotation>
11028 <xs:documentation>Runs through each record of the Upgrade table in sequence and compares the upgrade code, product version, and language in each row to products installed on the system.</xs:documentation>
11029 </xs:annotation>
11030 </xs:element>
11031 <xs:element ref="AppSearch" minOccurs="0">
11032 <xs:annotation>
11033 <xs:documentation>Uses file signatures to search for existing versions of products.</xs:documentation>
11034 </xs:annotation>
11035 </xs:element>
11036 <xs:element ref="CCPSearch">
11037 <xs:annotation>
11038 <xs:documentation>Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed.</xs:documentation>
11039 </xs:annotation>
11040 </xs:element>
11041 <xs:element ref="RMCCPSearch">
11042 <xs:annotation>
11043 <xs:documentation>Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed.</xs:documentation>
11044 </xs:annotation>
11045 </xs:element>
11046 <xs:element ref="ValidateProductID">
11047 <xs:annotation>
11048 <xs:documentation>Sets the ProductID property to the full product identifier.</xs:documentation>
11049 </xs:annotation>
11050 </xs:element>
11051 <xs:element ref="CostInitialize">
11052 <xs:annotation>
11053 <xs:documentation>Initiates the internal installation costing process.</xs:documentation>
11054 </xs:annotation>
11055 </xs:element>
11056 <xs:element ref="FileCost">
11057 <xs:annotation>
11058 <xs:documentation>Initiates dynamic costing of standard installation actions.</xs:documentation>
11059 </xs:annotation>
11060 </xs:element>
11061 <xs:element ref="IsolateComponents">
11062 <xs:annotation>
11063 <xs:documentation>Installs a copy of a component (commonly a shared DLL) into a private location for use by a specific application (typically an .exe).</xs:documentation>
11064 </xs:annotation>
11065 </xs:element>
11066 <xs:element ref="CostFinalize">
11067 <xs:annotation>
11068 <xs:documentation>Ends the internal installation costing process begun by the CostInitialize action.</xs:documentation>
11069 </xs:annotation>
11070 </xs:element>
11071 <xs:element ref="SetODBCFolders">
11072 <xs:annotation>
11073 <xs:documentation>Checks for existing ODBC drivers and sets the target directory for each new driver to the location of an existing driver.</xs:documentation>
11074 </xs:annotation>
11075 </xs:element>
11076 <xs:element ref="MigrateFeatureStates">
11077 <xs:annotation>
11078 <xs:documentation>Used for upgrading or installing over an existing application.</xs:documentation>
11079 </xs:annotation>
11080 </xs:element>
11081 <xs:element ref="InstallValidate">
11082 <xs:annotation>
11083 <xs:documentation>Verifies that all costed volumes have enough space for the installation.</xs:documentation>
11084 </xs:annotation>
11085 </xs:element>
11086 <xs:element ref="InstallInitialize">
11087 <xs:annotation>
11088 <xs:documentation>Marks the beginning of a sequence of actions that change the system.</xs:documentation>
11089 </xs:annotation>
11090 </xs:element>
11091 <xs:element ref="AllocateRegistrySpace" minOccurs="0">
11092 <xs:annotation>
11093 <xs:documentation>Ensures the needed amount of space exists in the registry.</xs:documentation>
11094 </xs:annotation>
11095 </xs:element>
11096 <xs:element ref="ProcessComponents">
11097 <xs:annotation>
11098 <xs:documentation>Registers and unregisters components, their key paths, and the component clients.</xs:documentation>
11099 </xs:annotation>
11100 </xs:element>
11101 <xs:element ref="UnpublishComponents" minOccurs="0">
11102 <xs:annotation>
11103 <xs:documentation>Manages the unadvertisement of components listed in the PublishComponent table.</xs:documentation>
11104 </xs:annotation>
11105 </xs:element>
11106 <xs:element ref="UnpublishFeatures" minOccurs="0">
11107 <xs:annotation>
11108 <xs:documentation>Removes selection-state and feature-component mapping information from the registry.</xs:documentation>
11109 </xs:annotation>
11110 </xs:element>
11111 <xs:element ref="StopServices">
11112 <xs:annotation>
11113 <xs:documentation>Stops system services.</xs:documentation>
11114 </xs:annotation>
11115 </xs:element>
11116 <xs:element ref="DeleteServices">
11117 <xs:annotation>
11118 <xs:documentation>Stops a service and removes its registration from the system.</xs:documentation>
11119 </xs:annotation>
11120 </xs:element>
11121 <xs:element ref="UnregisterComPlus">
11122 <xs:annotation>
11123 <xs:documentation>Removes COM+ applications from the registry.</xs:documentation>
11124 </xs:annotation>
11125 </xs:element>
11126 <xs:element ref="SelfUnregModules" minOccurs="0">
11127 <xs:annotation>
11128 <xs:documentation>Unregisters all modules listed in the SelfReg table that are scheduled to be uninstalled.</xs:documentation>
11129 </xs:annotation>
11130 </xs:element>
11131 <xs:element ref="UnregisterTypeLibraries" minOccurs="0">
11132 <xs:annotation>
11133 <xs:documentation>Unregisters type libraries from the system.</xs:documentation>
11134 </xs:annotation>
11135 </xs:element>
11136 <xs:element ref="RemoveODBC">
11137 <xs:annotation>
11138 <xs:documentation>Removes the data sources, translators, and drivers listed for removal during the installation.</xs:documentation>
11139 </xs:annotation>
11140 </xs:element>
11141 <xs:element ref="UnregisterFonts">
11142 <xs:annotation>
11143 <xs:documentation>Removes registration information about installed fonts from the system.</xs:documentation>
11144 </xs:annotation>
11145 </xs:element>
11146 <xs:element ref="RemoveRegistryValues" minOccurs="0">
11147 <xs:annotation>
11148 <xs:documentation>Removes a registry value that has been authored into the registry table if the associated component was installed locally or as run from source, and is now set to be uninstalled.</xs:documentation>
11149 </xs:annotation>
11150 </xs:element>
11151 <xs:element ref="UnregisterClassInfo" minOccurs="0">
11152 <xs:annotation>
11153 <xs:documentation>Manages the removal of COM class information from the system registry.</xs:documentation>
11154 </xs:annotation>
11155 </xs:element>
11156 <xs:element ref="UnregisterExtensionInfo">
11157 <xs:annotation>
11158 <xs:documentation>Manages the removal of extension-related information from the system registry.</xs:documentation>
11159 </xs:annotation>
11160 </xs:element>
11161 <xs:element ref="UnregisterProgIdInfo" minOccurs="0">
11162 <xs:annotation>
11163 <xs:documentation>Manages the unregistration of OLE ProgId information with the system.</xs:documentation>
11164 </xs:annotation>
11165 </xs:element>
11166 <xs:element ref="UnregisterMIMEInfo">
11167 <xs:annotation>
11168 <xs:documentation>Unregisters MIME-related registry information from the system.</xs:documentation>
11169 </xs:annotation>
11170 </xs:element>
11171 <xs:element ref="RemoveIniValues">
11172 <xs:annotation>
11173 <xs:documentation>Removes .ini file information specified for removal in the RemoveIniFile table if the component is set to be installed locally or run from source.</xs:documentation>
11174 </xs:annotation>
11175 </xs:element>
11176 <xs:element ref="RemoveShortcuts" minOccurs="0">
11177 <xs:annotation>
11178 <xs:documentation>Manages the removal of an advertised shortcut whose feature is selected for uninstallation or a nonadvertised shortcut whose component is selected for uninstallation.</xs:documentation>
11179 </xs:annotation>
11180 </xs:element>
11181 <xs:element ref="RemoveEnvironmentStrings">
11182 <xs:annotation>
11183 <xs:documentation>Modifies the values of environment variables.</xs:documentation>
11184 </xs:annotation>
11185 </xs:element>
11186 <xs:element ref="RemoveDuplicateFiles">
11187 <xs:annotation>
11188 <xs:documentation>Deletes files installed by the DuplicateFiles action.</xs:documentation>
11189 </xs:annotation>
11190 </xs:element>
11191 <xs:element ref="RemoveFiles" minOccurs="0">
11192 <xs:annotation>
11193 <xs:documentation>Removes files previously installed by the InstallFiles action.</xs:documentation>
11194 </xs:annotation>
11195 </xs:element>
11196 <xs:element ref="RemoveFolders" minOccurs="0">
11197 <xs:annotation>
11198 <xs:documentation>Removes any folders linked to components set to be removed or run from source.</xs:documentation>
11199 </xs:annotation>
11200 </xs:element>
11201 <xs:element ref="CreateFolders" minOccurs="0">
11202 <xs:annotation>
11203 <xs:documentation>Creates empty folders for components that are set to be installed.</xs:documentation>
11204 </xs:annotation>
11205 </xs:element>
11206 <xs:element ref="MoveFiles">
11207 <xs:annotation>
11208 <xs:documentation>Locates existing files on the system and moves or copies those files to a new location.</xs:documentation>
11209 </xs:annotation>
11210 </xs:element>
11211 <xs:element ref="InstallFiles" minOccurs="0">
11212 <xs:annotation>
11213 <xs:documentation>Copies files specified in the File table from the source directory to the destination directory.</xs:documentation>
11214 </xs:annotation>
11215 </xs:element>
11216 <xs:element ref="DuplicateFiles">
11217 <xs:annotation>
11218 <xs:documentation>Duplicates files installed by the InstallFiles action.</xs:documentation>
11219 </xs:annotation>
11220 </xs:element>
11221 <xs:element ref="PatchFiles">
11222 <xs:annotation>
11223 <xs:documentation>Queries the Patch table to determine which patches are to be applied.</xs:documentation>
11224 </xs:annotation>
11225 </xs:element>
11226 <xs:element ref="BindImage" minOccurs="0">
11227 <xs:annotation>
11228 <xs:documentation>Binds each executable or DLL that must be bound to the DLLs imported by it.</xs:documentation>
11229 </xs:annotation>
11230 </xs:element>
11231 <xs:element ref="CreateShortcuts" minOccurs="0">
11232 <xs:annotation>
11233 <xs:documentation>Manages the creation of shortcuts.</xs:documentation>
11234 </xs:annotation>
11235 </xs:element>
11236 <xs:element ref="RegisterClassInfo" minOccurs="0">
11237 <xs:annotation>
11238 <xs:documentation>Manages the registration of COM class information with the system.</xs:documentation>
11239 </xs:annotation>
11240 </xs:element>
11241 <xs:element ref="RegisterExtensionInfo">
11242 <xs:annotation>
11243 <xs:documentation>Manages the registration of extension related information with the system.</xs:documentation>
11244 </xs:annotation>
11245 </xs:element>
11246 <xs:element ref="RegisterProgIdInfo" minOccurs="0">
11247 <xs:annotation>
11248 <xs:documentation>Manages the registration of OLE ProgId information with the system.</xs:documentation>
11249 </xs:annotation>
11250 </xs:element>
11251 <xs:element ref="RegisterMIMEInfo">
11252 <xs:annotation>
11253 <xs:documentation>Registers MIME-related registry information with the system.</xs:documentation>
11254 </xs:annotation>
11255 </xs:element>
11256 <xs:element ref="WriteRegistryValues" minOccurs="0">
11257 <xs:annotation>
11258 <xs:documentation>Sets up an application's registry information.</xs:documentation>
11259 </xs:annotation>
11260 </xs:element>
11261 <xs:element ref="WriteIniValues">
11262 <xs:annotation>
11263 <xs:documentation>Writes the .ini file information that the application needs written to its .ini files.</xs:documentation>
11264 </xs:annotation>
11265 </xs:element>
11266 <xs:element ref="WriteEnvironmentStrings">
11267 <xs:annotation>
11268 <xs:documentation>Modifies the values of environment variables.</xs:documentation>
11269 </xs:annotation>
11270 </xs:element>
11271 <xs:element ref="RegisterFonts">
11272 <xs:annotation>
11273 <xs:documentation>Registers installed fonts with the system.</xs:documentation>
11274 </xs:annotation>
11275 </xs:element>
11276 <xs:element ref="InstallODBC">
11277 <xs:annotation>
11278 <xs:documentation>Installs the drivers, translators, and data sources in the ODBCDriver table, ODBCTranslator table, and ODBCDataSource table.</xs:documentation>
11279 </xs:annotation>
11280 </xs:element>
11281 <xs:element ref="RegisterTypeLibraries" minOccurs="0">
11282 <xs:annotation>
11283 <xs:documentation>Registers type libraries with the system.</xs:documentation>
11284 </xs:annotation>
11285 </xs:element>
11286 <xs:element ref="SelfRegModules" minOccurs="0">
11287 <xs:annotation>
11288 <xs:documentation>Processes all modules listed in the SelfReg table and registers all installed modules with the system.</xs:documentation>
11289 </xs:annotation>
11290 </xs:element>
11291 <xs:element ref="RegisterComPlus">
11292 <xs:annotation>
11293 <xs:documentation>Registers COM+ applications.</xs:documentation>
11294 </xs:annotation>
11295 </xs:element>
11296 <xs:element ref="InstallServices">
11297 <xs:annotation>
11298 <xs:documentation>Registers a service for the system.</xs:documentation>
11299 </xs:annotation>
11300 </xs:element>
11301 <xs:element ref="StartServices">
11302 <xs:annotation>
11303 <xs:documentation>Starts system services.</xs:documentation>
11304 </xs:annotation>
11305 </xs:element>
11306 <xs:element ref="RegisterUser" minOccurs="0">
11307 <xs:annotation>
11308 <xs:documentation>Registers the user information with the installer to identify the user of a product.</xs:documentation>
11309 </xs:annotation>
11310 </xs:element>
11311 <xs:element ref="RegisterProduct" minOccurs="0">
11312 <xs:annotation>
11313 <xs:documentation>Registers the product information with the installer.</xs:documentation>
11314 </xs:annotation>
11315 </xs:element>
11316 <xs:element ref="PublishComponents" minOccurs="0">
11317 <xs:annotation>
11318 <xs:documentation>Manages the advertisement of the components from the PublishComponent table.</xs:documentation>
11319 </xs:annotation>
11320 </xs:element>
11321 <xs:element ref="PublishFeatures" minOccurs="0">
11322 <xs:annotation>
11323 <xs:documentation>Writes each feature's state into the system registry.</xs:documentation>
11324 </xs:annotation>
11325 </xs:element>
11326 <xs:element ref="PublishProduct" minOccurs="0">
11327 <xs:annotation>
11328 <xs:documentation>Manages the advertisement of the product information with the system.</xs:documentation>
11329 </xs:annotation>
11330 </xs:element>
11331 <xs:element ref="InstallFinalize">
11332 <xs:annotation>
11333 <xs:documentation>Marks the end of a sequence of actions that change the system.</xs:documentation>
11334 </xs:annotation>
11335 </xs:element>
11336 <xs:element ref="RemoveExistingProducts">
11337 <xs:annotation>
11338 <xs:documentation>Goes through the product codes listed in the ActionProperty column of the Upgrade table and removes the products in sequence.</xs:documentation>
11339 </xs:annotation>
11340 </xs:element>
11341 <xs:element ref="DisableRollback" minOccurs="0">
11342 <xs:annotation>
11343 <xs:documentation>Disables rollback for the remainder of the installation.</xs:documentation>
11344 </xs:annotation>
11345 </xs:element>
11346 <xs:element ref="InstallExecute" minOccurs="0">
11347 <xs:annotation>
11348 <xs:documentation>Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action.</xs:documentation>
11349 </xs:annotation>
11350 </xs:element>
11351 <xs:element ref="InstallExecuteAgain" minOccurs="0">
11352 <xs:annotation>
11353 <xs:documentation>Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action.</xs:documentation>
11354 </xs:annotation>
11355 </xs:element>
11356 <xs:element ref="MsiPublishAssemblies">
11357 <xs:annotation>
11358 <xs:documentation>Manages the advertisement of CLR and Win32 assemblies.</xs:documentation>
11359 </xs:annotation>
11360 </xs:element>
11361 <xs:element ref="MsiUnpublishAssemblies">
11362 <xs:annotation>
11363 <xs:documentation>Manages the unadvertisement of CLR and Win32 assemblies that are being removed.</xs:documentation>
11364 </xs:annotation>
11365 </xs:element>
11366 </xs:choice>
11367 </xs:complexType>
11368 </xs:element>
11369 <xs:element name="AdminUISequence">
11370 <xs:annotation>
11371 <xs:appinfo>
11372 <xse:msiRef table="AdminUISequence" href="https://docs.microsoft.com/en-us/windows/win32/msi/adminuisequence-table" />
11373 </xs:appinfo>
11374 </xs:annotation>
11375 <xs:complexType>
11376 <xs:choice minOccurs="0" maxOccurs="unbounded">
11377 <xs:element ref="Custom" minOccurs="0" maxOccurs="unbounded">
11378 <xs:annotation>
11379 <xs:documentation>Use to sequence a custom action.</xs:documentation>
11380 </xs:annotation>
11381 </xs:element>
11382 <xs:element ref="Show" minOccurs="0" maxOccurs="unbounded" />
11383 <xs:element ref="CostInitialize">
11384 <xs:annotation>
11385 <xs:documentation>Initiates the internal installation costing process.</xs:documentation>
11386 </xs:annotation>
11387 </xs:element>
11388 <xs:element ref="FileCost">
11389 <xs:annotation>
11390 <xs:documentation>Initiates dynamic costing of standard installation actions.</xs:documentation>
11391 </xs:annotation>
11392 </xs:element>
11393 <xs:element ref="CostFinalize">
11394 <xs:annotation>
11395 <xs:documentation>Ends the internal installation costing process begun by the CostInitialize action.</xs:documentation>
11396 </xs:annotation>
11397 </xs:element>
11398 <xs:element ref="ExecuteAction">
11399 <xs:annotation>
11400 <xs:documentation>Initiates the execution sequence.</xs:documentation>
11401 </xs:annotation>
11402 </xs:element>
11403 <xs:element ref="InstallValidate">
11404 <xs:annotation>
11405 <xs:documentation>Verifies that all costed volumes have enough space for the installation.</xs:documentation>
11406 </xs:annotation>
11407 </xs:element>
11408 <xs:element ref="InstallInitialize">
11409 <xs:annotation>
11410 <xs:documentation>Marks the beginning of a sequence of actions that change the system.</xs:documentation>
11411 </xs:annotation>
11412 </xs:element>
11413 <xs:element ref="InstallAdminPackage">
11414 <xs:annotation>
11415 <xs:documentation>Copies the product database to the administrative installation point.</xs:documentation>
11416 </xs:annotation>
11417 </xs:element>
11418 <xs:element ref="InstallFiles">
11419 <xs:annotation>
11420 <xs:documentation>Copies files specified in the File table from the source directory to the destination directory.</xs:documentation>
11421 </xs:annotation>
11422 </xs:element>
11423 <xs:element ref="InstallFinalize">
11424 <xs:annotation>
11425 <xs:documentation>Marks the end of a sequence of actions that change the system.</xs:documentation>
11426 </xs:annotation>
11427 </xs:element>
11428 <xs:element ref="LaunchConditions">
11429 <xs:annotation>
11430 <xs:documentation>Queries the LaunchCondition table and evaluates each conditional statement recorded there.</xs:documentation>
11431 </xs:annotation>
11432 </xs:element>
11433 </xs:choice>
11434 </xs:complexType>
11435 </xs:element>
11436 <xs:element name="AdminExecuteSequence">
11437 <xs:annotation>
11438 <xs:appinfo>
11439 <xse:msiRef table="AdminExecuteSequence" href="https://docs.microsoft.com/en-us/windows/win32/msi/adminexecutesequence-table" />
11440 </xs:appinfo>
11441 </xs:annotation>
11442 <xs:complexType>
11443 <xs:choice minOccurs="0" maxOccurs="unbounded">
11444 <xs:element ref="Custom" minOccurs="0" maxOccurs="unbounded">
11445 <xs:annotation>
11446 <xs:documentation>Use to sequence a custom action.</xs:documentation>
11447 </xs:annotation>
11448 </xs:element>
11449 <xs:element ref="CostInitialize">
11450 <xs:annotation>
11451 <xs:documentation>Initiates the internal installation costing process.</xs:documentation>
11452 </xs:annotation>
11453 </xs:element>
11454 <xs:element ref="FileCost">
11455 <xs:annotation>
11456 <xs:documentation>Initiates dynamic costing of standard installation actions.</xs:documentation>
11457 </xs:annotation>
11458 </xs:element>
11459 <xs:element ref="CostFinalize">
11460 <xs:annotation>
11461 <xs:documentation>Ends the internal installation costing process begun by the CostInitialize action.</xs:documentation>
11462 </xs:annotation>
11463 </xs:element>
11464 <xs:element ref="InstallValidate">
11465 <xs:annotation>
11466 <xs:documentation>Verifies that all costed volumes have enough space for the installation.</xs:documentation>
11467 </xs:annotation>
11468 </xs:element>
11469 <xs:element ref="InstallInitialize">
11470 <xs:annotation>
11471 <xs:documentation>Marks the beginning of a sequence of actions that change the system.</xs:documentation>
11472 </xs:annotation>
11473 </xs:element>
11474 <xs:element ref="InstallAdminPackage">
11475 <xs:annotation>
11476 <xs:documentation>Copies the product database to the administrative installation point.</xs:documentation>
11477 </xs:annotation>
11478 </xs:element>
11479 <xs:element ref="InstallFiles">
11480 <xs:annotation>
11481 <xs:documentation>Copies files specified in the File table from the source directory to the destination directory.</xs:documentation>
11482 </xs:annotation>
11483 </xs:element>
11484 <xs:element ref="PatchFiles">
11485 <xs:annotation>
11486 <xs:documentation>Queries the Patch table to determine which patches are to be applied.</xs:documentation>
11487 </xs:annotation>
11488 </xs:element>
11489 <xs:element ref="InstallFinalize">
11490 <xs:annotation>
11491 <xs:documentation>Marks the end of a sequence of actions that change the system.</xs:documentation>
11492 </xs:annotation>
11493 </xs:element>
11494 <xs:element ref="LaunchConditions">
11495 <xs:annotation>
11496 <xs:documentation>Queries the LaunchCondition table and evaluates each conditional statement recorded there.</xs:documentation>
11497 </xs:annotation>
11498 </xs:element>
11499 <xs:element ref="ResolveSource" minOccurs="0">
11500 <xs:annotation>
11501 <xs:documentation>Determines the location of the source and sets the SourceDir property if the source has not been resolved yet.</xs:documentation>
11502 </xs:annotation>
11503 </xs:element>
11504 </xs:choice>
11505 </xs:complexType>
11506 </xs:element>
11507 <xs:element name="AdvertiseExecuteSequence">
11508 <xs:annotation>
11509 <xs:appinfo>
11510 <xse:msiRef table="AdvtExecuteSequence" href="https://docs.microsoft.com/en-us/windows/win32/msi/advtexecutesequence-table" />
11511 </xs:appinfo>
11512 </xs:annotation>
11513 <xs:complexType>
11514 <xs:choice minOccurs="0" maxOccurs="unbounded">
11515 <xs:element ref="CostInitialize">
11516 <xs:annotation>
11517 <xs:documentation>Initiates the internal installation costing process.</xs:documentation>
11518 </xs:annotation>
11519 </xs:element>
11520 <xs:element ref="CostFinalize">
11521 <xs:annotation>
11522 <xs:documentation>Ends the internal installation costing process begun by the CostInitialize action.</xs:documentation>
11523 </xs:annotation>
11524 </xs:element>
11525 <xs:element ref="Custom" minOccurs="0" maxOccurs="unbounded">
11526 <xs:annotation>
11527 <xs:documentation>Use to sequence a custom action. The only custom actions that are allowed in the AdvtExecuteSequence are type 19 (0x013) type 35 (0x023) and type 51 (0x033).</xs:documentation>
11528 </xs:annotation>
11529 </xs:element>
11530 <xs:element ref="InstallValidate">
11531 <xs:annotation>
11532 <xs:documentation>Verifies that all costed volumes have enough space for the installation.</xs:documentation>
11533 </xs:annotation>
11534 </xs:element>
11535 <xs:element ref="InstallInitialize">
11536 <xs:annotation>
11537 <xs:documentation>Marks the beginning of a sequence of actions that change the system.</xs:documentation>
11538 </xs:annotation>
11539 </xs:element>
11540 <xs:element ref="CreateShortcuts">
11541 <xs:annotation>
11542 <xs:documentation>Manages the creation of shortcuts.</xs:documentation>
11543 </xs:annotation>
11544 </xs:element>
11545 <xs:element ref="RegisterClassInfo">
11546 <xs:annotation>
11547 <xs:documentation>Manages the registration of COM class information with the system.</xs:documentation>
11548 </xs:annotation>
11549 </xs:element>
11550 <xs:element ref="RegisterExtensionInfo">
11551 <xs:annotation>
11552 <xs:documentation>Manages the registration of extension related information with the system.</xs:documentation>
11553 </xs:annotation>
11554 </xs:element>
11555 <xs:element ref="RegisterMIMEInfo">
11556 <xs:annotation>
11557 <xs:documentation>Registers MIME-related registry information with the system.</xs:documentation>
11558 </xs:annotation>
11559 </xs:element>
11560 <xs:element ref="RegisterProgIdInfo">
11561 <xs:annotation>
11562 <xs:documentation>Manages the registration of OLE ProgId information with the system.</xs:documentation>
11563 </xs:annotation>
11564 </xs:element>
11565 <xs:element ref="PublishComponents">
11566 <xs:annotation>
11567 <xs:documentation>Manages the advertisement of the components from the PublishComponent table.</xs:documentation>
11568 </xs:annotation>
11569 </xs:element>
11570 <xs:element ref="PublishFeatures">
11571 <xs:annotation>
11572 <xs:documentation>Writes each feature's state into the system registry.</xs:documentation>
11573 </xs:annotation>
11574 </xs:element>
11575 <xs:element ref="PublishProduct">
11576 <xs:annotation>
11577 <xs:documentation>Manages the advertisement of the product information with the system.</xs:documentation>
11578 </xs:annotation>
11579 </xs:element>
11580 <xs:element ref="InstallFinalize">
11581 <xs:annotation>
11582 <xs:documentation>Marks the end of a sequence of actions that change the system.</xs:documentation>
11583 </xs:annotation>
11584 </xs:element>
11585 <xs:element ref="MsiPublishAssemblies">
11586 <xs:annotation>
11587 <xs:documentation>Manages the advertisement of CLR and Win32 assemblies.</xs:documentation>
11588 </xs:annotation>
11589 </xs:element>
11590 </xs:choice>
11591 </xs:complexType>
11592 </xs:element>
11593 <xs:element name="Binary">
11594 <xs:annotation>
11595 <xs:documentation>
11596 Binary data used for CustomAction elements and UI controls.
11597 </xs:documentation>
11598 <xs:appinfo>
11599 <xse:msiRef table="Binary" href="https://learn.microsoft.com/en-us/windows/win32/msi/binary-table" />
11600 </xs:appinfo>
11601 </xs:annotation>
11602 <xs:complexType>
11603 <xs:choice minOccurs="0" maxOccurs="unbounded">
11604 <xs:any namespace="##other" processContents="lax">
11605 <xs:annotation>
11606 <xs:documentation>
11607 Extensibility point in the WiX XML Schema. Schema extensions can register additional
11608 elements at this point in the schema.
11609 </xs:documentation>
11610 </xs:annotation>
11611 </xs:any>
11612 </xs:choice>
11613 <xs:attribute name="Id" type="xs:string" use="required">
11614 <xs:annotation>
11615 <xs:documentation>The Id cannot be longer than 55 characters. In order to prevent errors in cases where the Id is modularized, it should not be longer than 18 characters.</xs:documentation>
11616 </xs:annotation>
11617 </xs:attribute>
11618 <xs:attribute name="SourceFile" type="xs:string">
11619 <xs:annotation>
11620 <xs:documentation>Path to the binary file.</xs:documentation>
11621 </xs:annotation>
11622 </xs:attribute>
11623 <xs:attribute name="SuppressModularization" type="YesNoTypeUnion">
11624 <xs:annotation>
11625 <xs:documentation>
11626 Use to suppress modularization of this Binary identifier in merge modules.
11627 </xs:documentation>
11628 </xs:annotation>
11629 </xs:attribute>
11630 <xs:anyAttribute namespace="##other" processContents="lax">
11631 <xs:annotation>
11632 <xs:documentation>
11633 Extensibility point in the WiX XML Schema. Schema extensions can register additional
11634 attributes at this point in the schema.
11635 </xs:documentation>
11636 </xs:annotation>
11637 </xs:anyAttribute>
11638 </xs:complexType>
11639 </xs:element>
11640 <xs:element name="Icon">
11641 <xs:annotation>
11642 <xs:documentation>
11643 Icon used for Shortcut, ProgId, or Class elements (but not UI controls).
11644 </xs:documentation>
11645 <xs:appinfo>
11646 <xse:msiRef table="Icon" href="https://learn.microsoft.com/en-us/windows/win32/msi/icon-table" />
11647 <xse:howtoRef href="ui_and_localization/configure_arp_appearance.html">How To: Set your installer's icon in Add/Remove Programs</xse:howtoRef>
11648 <xse:howtoRef href="files_and_registry/create_start_menu_shortcut.html">How To: Create a shortcut on the Start Menu</xse:howtoRef>
11649 </xs:appinfo>
11650 </xs:annotation>
11651 <xs:complexType>
11652 <xs:attribute name="Id" type="xs:string" use="required">
11653 <xs:annotation>
11654 <xs:documentation>The Id cannot be longer than 55 characters. In order to prevent errors in cases where the Id is modularized, it should not be longer than 18 characters.</xs:documentation>
11655 </xs:annotation>
11656 </xs:attribute>
11657 <xs:attribute name="SourceFile" type="xs:string">
11658 <xs:annotation>
11659 <xs:documentation>Path to the icon file.</xs:documentation>
11660 </xs:annotation>
11661 </xs:attribute>
11662 </xs:complexType>
11663 </xs:element>
11664 <xs:element name="EmbeddedChainer">
11665 <xs:annotation>
11666 <xs:appinfo>
11667 <xse:msiRef table="MsiEmbeddedChainer " href="http://msdn.microsoft.com/library/bb736316.aspx" />
11668 <xse:seeAlso ref="Binary" />
11669 <xse:seeAlso ref="File" />
11670 <xse:seeAlso ref="Property" />
11671 <xse:seeAlso ref="EmbeddedChainerRef" />
11672 </xs:appinfo>
11673 </xs:annotation>
11674 <xs:complexType>
11675 <xs:attribute name="Id" type="xs:string" use="required">
11676 <xs:annotation>
11677 <xs:documentation>Unique identifier for embedded chainer.</xs:documentation>
11678 </xs:annotation>
11679 </xs:attribute>
11680 <xs:attribute name="CommandLine" type="xs:string">
11681 <xs:annotation>
11682 <xs:documentation>Value to append to the transaction handle and passed to the chainer executable.</xs:documentation>
11683 </xs:annotation>
11684 </xs:attribute>
11685 <xs:attribute name="Condition" type="xs:string">
11686 <xs:annotation>
11687 <xs:documentation>
11688 Value is the condition. It is important to note that each EmbeddedChainer element must have a mutually exclusive condition
11689 to ensure that only one embedded chainer will execute at a time. If the conditions are not mutually exclusive the chainer
11690 that executes is undeterministic.
11691 </xs:documentation>
11692 </xs:annotation>
11693 </xs:attribute>
11694 <xs:attribute name="BinarySource" type="xs:string">
11695 <xs:annotation>
11696 <xs:documentation>
11697 Reference to the Binary element that contains the chainer executable. Mutually exclusive with
11698 the FileSource and PropertySource attributes.
11699 </xs:documentation>
11700 </xs:annotation>
11701 </xs:attribute>
11702 <xs:attribute name="FileSource" type="xs:string">
11703 <xs:annotation>
11704 <xs:documentation>
11705 Reference to the File element that is the chainer executable. Mutually exclusive with
11706 the BinarySource and PropertySource attributes.
11707 </xs:documentation>
11708 </xs:annotation>
11709 </xs:attribute>
11710 <xs:attribute name="PropertySource" type="xs:string">
11711 <xs:annotation>
11712 <xs:documentation>
11713 Reference to a Property that resolves to the full path to the chainer executable. Mutually exclusive with
11714 the BinarySource and FileSource attributes.
11715 </xs:documentation>
11716 </xs:annotation>
11717 </xs:attribute>
11718 <xs:anyAttribute namespace="##other" processContents="lax">
11719 <xs:annotation>
11720 <xs:documentation>
11721 Extensibility point in the WiX XML Schema. Schema extensions can register additional
11722 attributes at this point in the schema.
11723 </xs:documentation>
11724 </xs:annotation>
11725 </xs:anyAttribute>
11726 </xs:complexType>
11727 </xs:element>
11728 <xs:element name="EmbeddedChainerRef">
11729 <xs:annotation>
11730 <xs:documentation>
11731 Reference to an EmbeddedChainer element. This will force the entire referenced Fragment's contents
11732 to be included in the installer database.
11733 </xs:documentation>
11734 <xs:appinfo>
11735 <xse:seeAlso ref="EmbeddedChainer" />
11736 </xs:appinfo>
11737 </xs:annotation>
11738 <xs:complexType>
11739 <xs:attribute name="Id" type="xs:string" use="required" />
11740 <xs:anyAttribute namespace="##other" processContents="lax">
11741 <xs:annotation>
11742 <xs:documentation>
11743 Extensibility point in the WiX XML Schema. Schema extensions can register additional
11744 attributes at this point in the schema.
11745 </xs:documentation>
11746 </xs:annotation>
11747 </xs:anyAttribute>
11748 </xs:complexType>
11749 </xs:element>
11750 <!-- - - - - - - - - - - UI Definitions - - - - - - - - - - - - - -->
11751 <xs:element name="EmbeddedUI">
11752 <xs:annotation>
11753 <xs:appinfo>
11754 <xse:msiRef table="MsiEmbeddedUI" href="https://learn.microsoft.com/en-us/windows/win32/msi/msiembeddedui-table" />
11755 </xs:appinfo>
11756 </xs:annotation>
11757 <xs:complexType>
11758 <xs:choice minOccurs="0" maxOccurs="unbounded">
11759 <xs:element ref="EmbeddedUIResource">
11760 <xs:annotation>
11761 <xs:documentation>Specifies extra files to be extracted for use by the embedded UI, such as language resources.</xs:documentation>
11762 </xs:annotation>
11763 </xs:element>
11764 <xs:any namespace="##other" processContents="lax">
11765 <xs:annotation>
11766 <xs:documentation>
11767 Extensibility point in the WiX XML Schema. Schema extensions can register additional
11768 elements at this point in the schema.
11769 </xs:documentation>
11770 </xs:annotation>
11771 </xs:any>
11772 </xs:choice>
11773 <xs:attribute name="Id" type="xs:string">
11774 <xs:annotation>
11775 <xs:documentation>
11776 Unique identifier for embedded UI. If this attribute is not specified the Name attribute or the file name
11777 portion of the SourceFile attribute will be used.
11778 </xs:documentation>
11779 </xs:annotation>
11780 </xs:attribute>
11781 <xs:attribute name="IgnoreFatalExit" type="YesNoTypeUnion">
11782 <xs:annotation>
11783 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_FATALEXIT messages.</xs:documentation>
11784 </xs:annotation>
11785 </xs:attribute>
11786 <xs:attribute name="IgnoreError" type="YesNoTypeUnion">
11787 <xs:annotation>
11788 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_ERROR messages.</xs:documentation>
11789 </xs:annotation>
11790 </xs:attribute>
11791 <xs:attribute name="IgnoreWarning" type="YesNoTypeUnion">
11792 <xs:annotation>
11793 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_WARNING messages.</xs:documentation>
11794 </xs:annotation>
11795 </xs:attribute>
11796 <xs:attribute name="IgnoreUser" type="YesNoTypeUnion">
11797 <xs:annotation>
11798 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_USER messages.</xs:documentation>
11799 </xs:annotation>
11800 </xs:attribute>
11801 <xs:attribute name="IgnoreInfo" type="YesNoTypeUnion">
11802 <xs:annotation>
11803 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_INFO messages.</xs:documentation>
11804 </xs:annotation>
11805 </xs:attribute>
11806 <xs:attribute name="IgnoreFilesInUse" type="YesNoTypeUnion">
11807 <xs:annotation>
11808 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_FILESINUSE messages.</xs:documentation>
11809 </xs:annotation>
11810 </xs:attribute>
11811 <xs:attribute name="IgnoreResolveSource" type="YesNoTypeUnion">
11812 <xs:annotation>
11813 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_RESOLVESOURCE messages.</xs:documentation>
11814 </xs:annotation>
11815 </xs:attribute>
11816 <xs:attribute name="IgnoreOutOfDiskSpace" type="YesNoTypeUnion">
11817 <xs:annotation>
11818 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_OUTOFDISKSPACE messages.</xs:documentation>
11819 </xs:annotation>
11820 </xs:attribute>
11821 <xs:attribute name="IgnoreActionStart" type="YesNoTypeUnion">
11822 <xs:annotation>
11823 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_ACTIONSTART messages.</xs:documentation>
11824 </xs:annotation>
11825 </xs:attribute>
11826 <xs:attribute name="IgnoreActionData" type="YesNoTypeUnion">
11827 <xs:annotation>
11828 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_ACTIONDATA messages.</xs:documentation>
11829 </xs:annotation>
11830 </xs:attribute>
11831 <xs:attribute name="IgnoreProgress" type="YesNoTypeUnion">
11832 <xs:annotation>
11833 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_PROGRESS messages.</xs:documentation>
11834 </xs:annotation>
11835 </xs:attribute>
11836 <xs:attribute name="IgnoreCommonData" type="YesNoTypeUnion">
11837 <xs:annotation>
11838 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_COMMONDATA messages.</xs:documentation>
11839 </xs:annotation>
11840 </xs:attribute>
11841 <xs:attribute name="IgnoreInitialize" type="YesNoTypeUnion">
11842 <xs:annotation>
11843 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_INITIALIZE messages.</xs:documentation>
11844 </xs:annotation>
11845 </xs:attribute>
11846 <xs:attribute name="IgnoreTerminate" type="YesNoTypeUnion">
11847 <xs:annotation>
11848 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_TERMINATE messages.</xs:documentation>
11849 </xs:annotation>
11850 </xs:attribute>
11851 <xs:attribute name="IgnoreShowDialog" type="YesNoTypeUnion">
11852 <xs:annotation>
11853 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_SHOWDIALOG messages.</xs:documentation>
11854 </xs:annotation>
11855 </xs:attribute>
11856 <xs:attribute name="IgnoreRMFilesInUse" type="YesNoTypeUnion">
11857 <xs:annotation>
11858 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_RMFILESINUSE messages.</xs:documentation>
11859 </xs:annotation>
11860 </xs:attribute>
11861 <xs:attribute name="IgnoreInstallStart" type="YesNoTypeUnion">
11862 <xs:annotation>
11863 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_INSTALLSTART messages.</xs:documentation>
11864 </xs:annotation>
11865 </xs:attribute>
11866 <xs:attribute name="IgnoreInstallEnd" type="YesNoTypeUnion">
11867 <xs:annotation>
11868 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_INSTALLEND messages.</xs:documentation>
11869 </xs:annotation>
11870 </xs:attribute>
11871 <xs:attribute name="Name" type="LongFileNameType">
11872 <xs:annotation>
11873 <xs:documentation>
11874 The name for the embedded UI DLL when it is extracted from the MSI package and executed. (Windows Installer
11875 does not support the typical short filename and long filename combination for embedded UI files as it
11876 does for other kinds of files.) If this attribute is not specified the file name portion of the SourceFile
11877 attribute will be used.
11878 </xs:documentation>
11879 </xs:annotation>
11880 </xs:attribute>
11881 <xs:attribute name="SourceFile" type="xs:string" use="required">
11882 <xs:annotation>
11883 <xs:documentation>
11884 Path to the binary file that is the embedded UI. This must be a DLL that exports the following
11885 three entry points: InitializeEmbeddedUI, EmbeddedUIHandler and ShutdownEmbeddedUI.
11886 </xs:documentation>
11887 </xs:annotation>
11888 </xs:attribute>
11889 <xs:attribute name="SupportBasicUI" type="YesNoTypeUnion">
11890 <xs:annotation>
11891 <xs:documentation>Set yes to allow the Windows Installer to display the embedded UI during basic UI level installation.</xs:documentation>
11892 </xs:annotation>
11893 </xs:attribute>
11894 <xs:anyAttribute namespace="##other" processContents="lax">
11895 <xs:annotation>
11896 <xs:documentation>
11897 Extensibility point in the WiX XML Schema. Schema extensions can register additional
11898 attributes at this point in the schema.
11899 </xs:documentation>
11900 </xs:annotation>
11901 </xs:anyAttribute>
11902 </xs:complexType>
11903 </xs:element>
11904 <xs:element name="EmbeddedUIResource">
11905 <xs:annotation>
11906 <xs:documentation>
11907 Defines a resource for use by the embedded UI.
11908 </xs:documentation>
11909 <xs:appinfo>
11910 <xse:seeAlso ref="EmbeddedUI" />
11911 <xse:msiRef table="MsiEmbeddedUI" href="https://learn.microsoft.com/en-us/windows/win32/msi/msiembeddedui-table" />
11912 </xs:appinfo>
11913 </xs:annotation>
11914 <xs:complexType>
11915 <xs:choice minOccurs="0" maxOccurs="unbounded">
11916 <xs:any namespace="##other" processContents="lax">
11917 <xs:annotation>
11918 <xs:documentation>
11919 Extensibility point in the WiX XML Schema. Schema extensions can register additional
11920 elements at this point in the schema.
11921 </xs:documentation>
11922 </xs:annotation>
11923 </xs:any>
11924 </xs:choice>
11925 <xs:attribute name="Id" type="xs:string" use="required">
11926 <xs:annotation>
11927 <xs:documentation>Identifier for the embedded UI resource.</xs:documentation>
11928 </xs:annotation>
11929 </xs:attribute>
11930 <xs:attribute name="Name" type="LongFileNameType" use="required">
11931 <xs:annotation>
11932 <xs:documentation>
11933 The name for the resource when it is extracted from the MSI package for use by the embedded UI DLL. (Windows
11934 Installer does not support the typical short filename and long filename combination for embedded UI files
11935 as it does for other kinds of files.) If this attribute is not specified the Id attribute will be used.
11936 </xs:documentation>
11937 </xs:annotation>
11938 </xs:attribute>
11939 <xs:attribute name="SourceFile" type="xs:string" use="required">
11940 <xs:annotation>
11941 <xs:documentation>Path to the binary file that is the embedded UI resource.</xs:documentation>
11942 </xs:annotation>
11943 </xs:attribute>
11944 <xs:anyAttribute namespace="##other" processContents="lax">
11945 <xs:annotation>
11946 <xs:documentation>
11947 Extensibility point in the WiX XML Schema. Schema extensions can register additional
11948 attributes at this point in the schema.
11949 </xs:documentation>
11950 </xs:annotation>
11951 </xs:anyAttribute>
11952 </xs:complexType>
11953 </xs:element>
11954 <xs:element name="Error">
11955 <xs:annotation>
11956 <xs:appinfo>
11957 <xse:msiRef table="Error" href="https://learn.microsoft.com/en-us/windows/win32/msi/error-table" />
11958 </xs:appinfo>
11959 </xs:annotation>
11960 <xs:complexType>
11961 <xs:choice minOccurs="0" maxOccurs="unbounded">
11962 <xs:any namespace="##other" processContents="lax">
11963 <xs:annotation>
11964 <xs:documentation>
11965 Extensibility point in the WiX XML Schema. Schema extensions can register additional
11966 elements at this point in the schema.
11967 </xs:documentation>
11968 </xs:annotation>
11969 </xs:any>
11970 </xs:choice>
11971 <xs:attribute name="Id" type="Integer">
11972 <xs:annotation>
11973 <xs:documentation>Number of the error for which a message is being provided. See MSI SDK for error definitions.</xs:documentation>
11974 </xs:annotation>
11975 </xs:attribute>
11976 <xs:attribute name="Message" type="xs:string">
11977 <xs:annotation>
11978 <xs:documentation>Message to display for the specified error number.</xs:documentation>
11979 </xs:annotation>
11980 </xs:attribute>
11981 <xs:anyAttribute namespace="##other" processContents="lax">
11982 <xs:annotation>
11983 <xs:documentation>
11984 Extensibility point in the WiX XML Schema. Schema extensions can register additional
11985 attributes at this point in the schema.
11986 </xs:documentation>
11987 </xs:annotation>
11988 </xs:anyAttribute>
11989 </xs:complexType>
11990 </xs:element>
11991 <xs:element name="Publish">
11992 <xs:annotation>
11993 <xs:appinfo>
11994 <xse:msiRef table="ControlEvent" href="https://learn.microsoft.com/en-us/windows/win32/msi/controlevent-table" />
11995 </xs:appinfo>
11996 </xs:annotation>
11997 <xs:complexType>
11998 <xs:choice minOccurs="0" maxOccurs="unbounded">
11999 <xs:any namespace="##other" processContents="lax">
12000 <xs:annotation>
12001 <xs:documentation>
12002 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12003 elements at this point in the schema.
12004 </xs:documentation>
12005 </xs:annotation>
12006 </xs:any>
12007 </xs:choice>
12008 <xs:attribute name="Condition" type="xs:string">
12009 <xs:annotation>
12010 <xs:documentation>Optional condition that determines whether the control event should be published.</xs:documentation>
12011 </xs:annotation>
12012 </xs:attribute>
12013 <xs:attribute name="Control" type="xs:string">
12014 <xs:annotation>
12015 <xs:documentation>
12016 The parent Control for this Publish element, should only be specified when this element is a child of the UI element.
12017 </xs:documentation>
12018 </xs:annotation>
12019 </xs:attribute>
12020 <xs:attribute name="Dialog" type="xs:string">
12021 <xs:annotation>
12022 <xs:documentation>
12023 The parent Dialog for this Publish element, should only be specified when this element is a child of the UI element.
12024 This attribute will create a reference to the specified Dialog, so an additional DialogRef is not necessary.
12025 </xs:documentation>
12026 </xs:annotation>
12027 </xs:attribute>
12028 <xs:attribute name="Event" type="xs:string">
12029 <xs:annotation>
12030 <xs:documentation>
12031 Set this attribute's value to one of the standard control events to trigger that event.
12032 Either this attribute or the Property attribute must be set, but not both at the same time.
12033 </xs:documentation>
12034 </xs:annotation>
12035 </xs:attribute>
12036 <xs:attribute name="Order" type="xs:string">
12037 <xs:annotation>
12038 <xs:documentation>
12039 This attribute should only need to be set if this element is nested under a UI element in order to
12040 control the order in which this publish event will be started.
12041 If this element is nested under a Control element, the default value will be one greater than any
12042 previous Publish element's order (the first element's default value is 1).
12043 If this element is nested under a UI element, the default value is always 1 (it does not get a
12044 default value based on any previous Publish elements).
12045 </xs:documentation>
12046 </xs:annotation>
12047 </xs:attribute>
12048 <xs:attribute name="Property" type="xs:string">
12049 <xs:annotation>
12050 <xs:documentation>
12051 Set this attribute's value to a property name to set that property.
12052 Either this attribute or the Event attribute must be set, but not both at the same time.
12053 </xs:documentation>
12054 </xs:annotation>
12055 </xs:attribute>
12056 <xs:attribute name="Value" type="xs:string">
12057 <xs:annotation>
12058 <xs:documentation>
12059 If the Property attribute is specified, set the value of this attribute to the new value for the property.
12060 To set a property to null, do not set this attribute (the ControlEvent Argument column will be set to '{}').
12061 Otherwise, this attribute's value should be the argument for the event specified in the Event attribute.
12062 If the event doesn't take an attribute, a common value to use is "0".
12063 </xs:documentation>
12064 </xs:annotation>
12065 </xs:attribute>
12066 <xs:anyAttribute namespace="##other" processContents="lax">
12067 <xs:annotation>
12068 <xs:documentation>
12069 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12070 attributes at this point in the schema.
12071 </xs:documentation>
12072 </xs:annotation>
12073 </xs:anyAttribute>
12074 </xs:complexType>
12075 </xs:element>
12076 <xs:element name="Subscribe">
12077 <xs:annotation>
12078 <xs:documentation>
12079 Sets attributes for events in the EventMapping table
12080 </xs:documentation>
12081 <xs:appinfo>
12082 <xse:msiRef table="EventMapping" href="https://learn.microsoft.com/en-us/windows/win32/msi/eventmapping-table" />
12083 </xs:appinfo>
12084 </xs:annotation>
12085 <xs:complexType>
12086 <xs:choice minOccurs="0" maxOccurs="unbounded">
12087 <xs:any namespace="##other" processContents="lax">
12088 <xs:annotation>
12089 <xs:documentation>
12090 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12091 elements at this point in the schema.
12092 </xs:documentation>
12093 </xs:annotation>
12094 </xs:any>
12095 </xs:choice>
12096 <xs:attribute name="Event" type="xs:string">
12097 <xs:annotation>
12098 <xs:documentation>must be one of the standard control events'</xs:documentation>
12099 </xs:annotation>
12100 </xs:attribute>
12101 <xs:attribute name="Attribute" type="xs:string">
12102 <xs:annotation>
12103 <xs:documentation>if not present can only handle enable, disable, hide, unhide events</xs:documentation>
12104 </xs:annotation>
12105 </xs:attribute>
12106 <xs:anyAttribute namespace="##other" processContents="lax">
12107 <xs:annotation>
12108 <xs:documentation>
12109 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12110 attributes at this point in the schema.
12111 </xs:documentation>
12112 </xs:annotation>
12113 </xs:anyAttribute>
12114 </xs:complexType>
12115 </xs:element>
12116 <xs:element name="Text">
12117 <xs:annotation>
12118 <xs:documentation>
12119 An alternative to using the Text attribute on the Control element.
12120 </xs:documentation>
12121 </xs:annotation>
12122 <xs:complexType>
12123 <xs:attribute name="SourceFile" type="xs:string">
12124 <xs:annotation>
12125 <xs:documentation>
12126 Instructs the text to be imported from a file instead of the element value during the binding process.
12127 Cannot be specified with the Value attribute.
12128 </xs:documentation>
12129 </xs:annotation>
12130 </xs:attribute>
12131 <xs:attribute name="Value" type="xs:string">
12132 <xs:annotation>
12133 <xs:documentation>
12134 The value of the control's text. Cannot be specified with the SourceFile attribute.
12135 </xs:documentation>
12136 </xs:annotation>
12137 </xs:attribute>
12138 <xs:anyAttribute namespace="##other" processContents="lax">
12139 <xs:annotation>
12140 <xs:documentation>
12141 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12142 attributes at this point in the schema.
12143 </xs:documentation>
12144 </xs:annotation>
12145 </xs:anyAttribute>
12146 </xs:complexType>
12147 </xs:element>
12148 <xs:element name="Control">
12149 <xs:annotation>
12150 <xs:appinfo>
12151 <xse:msiRef table="Control" href="https://docs.microsoft.com/en-us/windows/win32/msi/control-table" />
12152 <xse:msiRef table="ComboBox" href="https://docs.microsoft.com/en-us/windows/win32/msi/combobox-table" />
12153 <xse:msiRef table="Dialog" href="https://docs.microsoft.com/en-us/windows/win32/msi/dialog-table" />
12154 <xse:msiRef table="ListBox" href="https://docs.microsoft.com/en-us/windows/win32/msi/listbox-table" />
12155 <xse:msiRef table="ListView" href="https://docs.microsoft.com/en-us/windows/win32/msi/listview-table" />
12156 <xse:msiRef table="RadioButton" href="https://docs.microsoft.com/en-us/windows/win32/msi/radiobutton-table" />
12157 </xs:appinfo>
12158 <xs:documentation>Contains the controls that appear on each dialog.</xs:documentation>
12159 </xs:annotation>
12160 <xs:complexType>
12161 <xs:sequence>
12162 <xs:element ref="Text" minOccurs="0">
12163 <xs:annotation>
12164 <xs:documentation>Alternative to Text attribute.</xs:documentation>
12165 </xs:annotation>
12166 </xs:element>
12167 <xs:element ref="ComboBox" minOccurs="0">
12168 <xs:annotation>
12169 <xs:documentation>ComboBox table with ListItem children</xs:documentation>
12170 </xs:annotation>
12171 </xs:element>
12172 <xs:element ref="ListBox" minOccurs="0">
12173 <xs:annotation>
12174 <xs:documentation>ListBox table with ListItem children</xs:documentation>
12175 </xs:annotation>
12176 </xs:element>
12177 <xs:element ref="ListView" minOccurs="0">
12178 <xs:annotation>
12179 <xs:documentation>ListView table with ListItem children</xs:documentation>
12180 </xs:annotation>
12181 </xs:element>
12182 <xs:element ref="RadioButtonGroup" minOccurs="0">
12183 <xs:annotation>
12184 <xs:documentation>RadioButton table with RadioButton children</xs:documentation>
12185 </xs:annotation>
12186 </xs:element>
12187 <xs:element ref="Property" minOccurs="0">
12188 <xs:annotation>
12189 <xs:documentation>Property table entry for the Property table column associated with this control</xs:documentation>
12190 </xs:annotation>
12191 </xs:element>
12192 <xs:element ref="Binary" minOccurs="0">
12193 <xs:annotation>
12194 <xs:documentation>Icon referenced in icon column of row</xs:documentation>
12195 </xs:annotation>
12196 </xs:element>
12197 <xs:choice minOccurs="0" maxOccurs="unbounded">
12198 <xs:annotation>
12199 <xs:documentation>Child elements affecting operation of this control</xs:documentation>
12200 </xs:annotation>
12201 <xs:element ref="Publish" />
12202 <xs:element ref="Subscribe" />
12203 <xs:any namespace="##other" processContents="lax">
12204 <xs:annotation>
12205 <xs:documentation>
12206 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12207 elements at this point in the schema.
12208 </xs:documentation>
12209 </xs:annotation>
12210 </xs:any>
12211 </xs:choice>
12212 </xs:sequence>
12213 <xs:attribute name="Id" use="required" type="xs:string">
12214 <xs:annotation>
12215 <xs:documentation>Combined with the Dialog Id to make up the primary key of the Control table.</xs:documentation>
12216 </xs:annotation>
12217 </xs:attribute>
12218 <xs:attribute name="Type" use="required" type="xs:string">
12219 <xs:annotation>
12220 <xs:documentation>The type of the control. Could be one of the following: Billboard, Bitmap, CheckBox, ComboBox, DirectoryCombo, DirectoryList, Edit, GroupBox, Hyperlink, Icon, Line, ListBox, ListView, MaskedEdit, PathEdit, ProgressBar, PushButton, RadioButtonGroup, ScrollableText, SelectionTree, Text, VolumeCostList, VolumeSelectCombo</xs:documentation>
12221 </xs:annotation>
12222 </xs:attribute>
12223 <xs:attribute name="X" use="required" type="LocalizableInteger">
12224 <xs:annotation>
12225 <xs:documentation>Horizontal coordinate of the upper-left corner of the rectangular boundary of the control. This must be a non-negative number.</xs:documentation>
12226 </xs:annotation>
12227 </xs:attribute>
12228 <xs:attribute name="Y" use="required" type="LocalizableInteger">
12229 <xs:annotation>
12230 <xs:documentation>Vertical coordinate of the upper-left corner of the rectangular boundary of the control. This must be a non-negative number.</xs:documentation>
12231 </xs:annotation>
12232 </xs:attribute>
12233 <xs:attribute name="Width" use="required" type="LocalizableInteger">
12234 <xs:annotation>
12235 <xs:documentation>Width of the rectangular boundary of the control. This must be a non-negative number.</xs:documentation>
12236 </xs:annotation>
12237 </xs:attribute>
12238 <xs:attribute name="Height" use="required" type="LocalizableInteger">
12239 <xs:annotation>
12240 <xs:documentation>Height of the rectangular boundary of the control. This must be a non-negative number.</xs:documentation>
12241 </xs:annotation>
12242 </xs:attribute>
12243 <xs:attribute name="Property" type="xs:string">
12244 <xs:annotation>
12245 <xs:documentation>The name of a defined property to be linked to this control. This column is required for active controls.</xs:documentation>
12246 </xs:annotation>
12247 </xs:attribute>
12248 <xs:attribute name="Text" type="xs:string">
12249 <xs:annotation>
12250 <xs:documentation>A localizable string used to set the initial text contained in a control. This attribute can contain a formatted string that is processed at install time to insert the values of properties using [PropertyName] syntax. Also supported are environment variables, file installation paths, and component installation directories; see <html:a href="https://learn.microsoft.com/en-us/windows/win32/msi/formatted">Formatted</html:a> for details.</xs:documentation>
12251 </xs:annotation>
12252 </xs:attribute>
12253 <xs:attribute name="Help" type="xs:string">
12254 <xs:annotation>
12255 <xs:documentation>This attribute is reserved for future use. There is no need to use this until Windows Installer uses it for something.</xs:documentation>
12256 </xs:annotation>
12257 </xs:attribute>
12258 <xs:attribute name="ToolTip" type="xs:string">
12259 <xs:annotation>
12260 <xs:documentation>The string used for the Tooltip.</xs:documentation>
12261 </xs:annotation>
12262 </xs:attribute>
12263 <xs:attribute name="CheckBoxValue" type="xs:string">
12264 <xs:annotation>
12265 <xs:documentation>This attribute is only valid for CheckBox Controls. When set, the linked Property will be set to this value when the check box is checked.</xs:documentation>
12266 </xs:annotation>
12267 </xs:attribute>
12268 <xs:attribute name="CheckBoxPropertyRef" type="xs:string">
12269 <xs:annotation>
12270 <xs:documentation>This attribute is only valid for CheckBox controls. The value is the name of a Property that was already used as the Property for another CheckBox control. The Property attribute cannot be specified. The attribute exists to support multiple checkboxes on different dialogs being tied to the same property.</xs:documentation>
12271 </xs:annotation>
12272 </xs:attribute>
12273
12274 <xs:attribute name="TabSkip" type="YesNoTypeUnion">
12275 <xs:annotation>
12276 <xs:documentation>Set this attribute to "yes" to cause this Control to be skipped in the tab sequence.</xs:documentation>
12277 </xs:annotation>
12278 </xs:attribute>
12279 <xs:attribute name="Default" type="YesNoTypeUnion">
12280 <xs:annotation>
12281 <xs:documentation>Set this attribute to "yes" to cause this Control to be invoked by the return key.</xs:documentation>
12282 </xs:annotation>
12283 </xs:attribute>
12284 <xs:attribute name="Cancel" type="YesNoTypeUnion">
12285 <xs:annotation>
12286 <xs:documentation>Set this attribute to "yes" to cause this Control to be invoked by the escape key.</xs:documentation>
12287 </xs:annotation>
12288 </xs:attribute>
12289
12290 <xs:attribute name="DefaultCondition">
12291 <xs:annotation>
12292 <xs:documentation>
12293 When the condition expression evaluates to true, set the Control as the default.
12294 </xs:documentation>
12295 </xs:annotation>
12296 </xs:attribute>
12297 <xs:attribute name="EnableCondition">
12298 <xs:annotation>
12299 <xs:documentation>
12300 When the condition expression evaluates to true, enable the Control.
12301 </xs:documentation>
12302 </xs:annotation>
12303 </xs:attribute>
12304 <xs:attribute name="DisableCondition">
12305 <xs:annotation>
12306 <xs:documentation>
12307 When the condition expression evaluates to true, disable the Control.
12308 </xs:documentation>
12309 </xs:annotation>
12310 </xs:attribute>
12311 <xs:attribute name="HideCondition">
12312 <xs:annotation>
12313 <xs:documentation>
12314 When the condition expression evaluates to true, hide the Control.
12315 </xs:documentation>
12316 </xs:annotation>
12317 </xs:attribute>
12318 <xs:attribute name="ShowCondition">
12319 <xs:annotation>
12320 <xs:documentation>
12321 When the condition expression evaluates to true, show the Control.
12322 </xs:documentation>
12323 </xs:annotation>
12324 </xs:attribute>
12325 <xs:attribute name="Hidden" type="YesNoTypeUnion">
12326 <xs:annotation>
12327 <xs:documentation>Set this attribute to "yes" to cause the Control to be hidden.</xs:documentation>
12328 </xs:annotation>
12329 </xs:attribute>
12330 <xs:attribute name="Disabled" type="YesNoTypeUnion">
12331 <xs:annotation>
12332 <xs:documentation>Set this attribute to "yes" to cause the Control to be disabled.</xs:documentation>
12333 </xs:annotation>
12334 </xs:attribute>
12335 <xs:attribute name="Sunken" type="YesNoTypeUnion">
12336 <xs:annotation>
12337 <xs:documentation>Set this attribute to "yes" to cause the Control to be sunken.</xs:documentation>
12338 </xs:annotation>
12339 </xs:attribute>
12340 <xs:attribute name="Indirect" type="YesNoTypeUnion">
12341 <xs:annotation>
12342 <xs:documentation>Specifies whether the value displayed or changed by this control is referenced indirectly. If this bit is set, the control displays or changes the value of the property that has the identifier listed in the Property column of the Control table.</xs:documentation>
12343 </xs:annotation>
12344 </xs:attribute>
12345 <xs:attribute name="Integer" type="YesNoTypeUnion">
12346 <xs:annotation>
12347 <xs:documentation>Set this attribute to "yes" to cause the linked Property value for the Control to be treated as an integer. Otherwise, the Property will be treated as a string.</xs:documentation>
12348 </xs:annotation>
12349 </xs:attribute>
12350 <xs:attribute name="RightToLeft" type="YesNoTypeUnion">
12351 <xs:annotation>
12352 <xs:documentation>Set this attribute to "yes" to cause the Control to display from right to left.</xs:documentation>
12353 </xs:annotation>
12354 </xs:attribute>
12355 <xs:attribute name="RightAligned" type="YesNoTypeUnion">
12356 <xs:annotation>
12357 <xs:documentation>Set this attribute to "yes" to cause the Control to be right aligned.</xs:documentation>
12358 </xs:annotation>
12359 </xs:attribute>
12360 <xs:attribute name="LeftScroll" type="YesNoTypeUnion">
12361 <xs:annotation>
12362 <xs:documentation>Set this attribute to "yes" to cause the scroll bar to display on the left side of the Control.</xs:documentation>
12363 </xs:annotation>
12364 </xs:attribute>
12365
12366 <xs:attribute name="Transparent" type="YesNoTypeUnion">
12367 <xs:annotation>
12368 <xs:documentation>This attribute is only valid for Text Controls.</xs:documentation>
12369 </xs:annotation>
12370 </xs:attribute>
12371 <xs:attribute name="NoPrefix" type="YesNoTypeUnion">
12372 <xs:annotation>
12373 <xs:documentation>This attribute is only valid for Text Controls.</xs:documentation>
12374 </xs:annotation>
12375 </xs:attribute>
12376 <xs:attribute name="NoWrap" type="YesNoTypeUnion">
12377 <xs:annotation>
12378 <xs:documentation>This attribute is only valid for Text Controls.</xs:documentation>
12379 </xs:annotation>
12380 </xs:attribute>
12381 <xs:attribute name="FormatSize" type="YesNoTypeUnion">
12382 <xs:annotation>
12383 <xs:documentation>This attribute is only valid for Text Controls.</xs:documentation>
12384 </xs:annotation>
12385 </xs:attribute>
12386 <xs:attribute name="UserLanguage" type="YesNoTypeUnion">
12387 <xs:annotation>
12388 <xs:documentation>This attribute is only valid for Text Controls.</xs:documentation>
12389 </xs:annotation>
12390 </xs:attribute>
12391 <xs:attribute name="Multiline" type="YesNoTypeUnion">
12392 <xs:annotation>
12393 <xs:documentation>This attribute is only valid for Edit Controls.</xs:documentation>
12394 </xs:annotation>
12395 </xs:attribute>
12396 <xs:attribute name="Password" type="YesNoTypeUnion">
12397 <xs:annotation>
12398 <xs:documentation>This attribute is only valid for Edit Controls.</xs:documentation>
12399 </xs:annotation>
12400 </xs:attribute>
12401 <xs:attribute name="ProgressBlocks" type="YesNoTypeUnion">
12402 <xs:annotation>
12403 <xs:documentation>This attribute is only valid for ProgressBar Controls.</xs:documentation>
12404 </xs:annotation>
12405 </xs:attribute>
12406 <xs:attribute name="Removable" type="YesNoTypeUnion">
12407 <xs:annotation>
12408 <xs:documentation>This attribute is only valid for Volume and Directory Controls.</xs:documentation>
12409 </xs:annotation>
12410 </xs:attribute>
12411 <xs:attribute name="Fixed" type="YesNoTypeUnion">
12412 <xs:annotation>
12413 <xs:documentation>This attribute is only valid for Volume and Directory Controls.</xs:documentation>
12414 </xs:annotation>
12415 </xs:attribute>
12416 <xs:attribute name="Remote" type="YesNoTypeUnion">
12417 <xs:annotation>
12418 <xs:documentation>This attribute is only valid for Volume and Directory Controls.</xs:documentation>
12419 </xs:annotation>
12420 </xs:attribute>
12421 <xs:attribute name="CDROM" type="YesNoTypeUnion">
12422 <xs:annotation>
12423 <xs:documentation>This attribute is only valid for Volume and Directory Controls.</xs:documentation>
12424 </xs:annotation>
12425 </xs:attribute>
12426 <xs:attribute name="RAMDisk" type="YesNoTypeUnion">
12427 <xs:annotation>
12428 <xs:documentation>This attribute is only valid for Volume and Directory Controls.</xs:documentation>
12429 </xs:annotation>
12430 </xs:attribute>
12431 <xs:attribute name="Floppy" type="YesNoTypeUnion">
12432 <xs:annotation>
12433 <xs:documentation>This attribute is only valid for Volume and Directory Controls.</xs:documentation>
12434 </xs:annotation>
12435 </xs:attribute>
12436 <xs:attribute name="ShowRollbackCost" type="YesNoTypeUnion">
12437 <xs:annotation>
12438 <xs:documentation>This attribute is only valid for VolumeCostList Controls.</xs:documentation>
12439 </xs:annotation>
12440 </xs:attribute>
12441 <xs:attribute name="Sorted" type="YesNoTypeUnion">
12442 <xs:annotation>
12443 <xs:documentation>
12444 This attribute is only valid for ListBox, ListView, and ComboBox Controls. Set
12445 the value of this attribute to "yes" to have entries appear in the order specified under the Control.
12446 If the attribute value is "no" or absent the entries in the control will appear in alphabetical order.
12447 </xs:documentation>
12448 </xs:annotation>
12449 </xs:attribute>
12450 <xs:attribute name="ComboList" type="YesNoTypeUnion">
12451 <xs:annotation>
12452 <xs:documentation>This attribute is only valid for ComboBox Controls.</xs:documentation>
12453 </xs:annotation>
12454 </xs:attribute>
12455 <xs:attribute name="Image" type="YesNoTypeUnion">
12456 <xs:annotation>
12457 <xs:documentation>This attribute is only valid for RadioButton, PushButton, and Icon Controls.</xs:documentation>
12458 </xs:annotation>
12459 </xs:attribute>
12460 <xs:attribute name="IconSize">
12461 <xs:annotation>
12462 <xs:documentation>This attribute is only valid for RadioButton, PushButton, and Icon Controls.</xs:documentation>
12463 </xs:annotation>
12464 <xs:simpleType>
12465 <xs:restriction base="xs:NMTOKEN">
12466 <xs:enumeration value="16" />
12467 <xs:enumeration value="32" />
12468 <xs:enumeration value="48" />
12469 </xs:restriction>
12470 </xs:simpleType>
12471 </xs:attribute>
12472 <xs:attribute name="FixedSize" type="YesNoTypeUnion">
12473 <xs:annotation>
12474 <xs:documentation>This attribute is only valid for RadioButton, PushButton, and Icon Controls.</xs:documentation>
12475 </xs:annotation>
12476 </xs:attribute>
12477 <xs:attribute name="Icon" type="YesNoTypeUnion">
12478 <xs:annotation>
12479 <xs:documentation>This attribute is only valid for RadioButton and PushButton Controls.</xs:documentation>
12480 </xs:annotation>
12481 </xs:attribute>
12482 <xs:attribute name="Bitmap" type="YesNoTypeUnion">
12483 <xs:annotation>
12484 <xs:documentation>This attribute is only valid for RadioButton and PushButton Controls.</xs:documentation>
12485 </xs:annotation>
12486 </xs:attribute>
12487 <xs:attribute name="PushLike" type="YesNoTypeUnion">
12488 <xs:annotation>
12489 <xs:documentation>This attribute is only valid for RadioButton and Checkbox Controls.</xs:documentation>
12490 </xs:annotation>
12491 </xs:attribute>
12492 <xs:attribute name="HasBorder" type="YesNoTypeUnion">
12493 <xs:annotation>
12494 <xs:documentation>This attribute is only valid for RadioButton Controls.</xs:documentation>
12495 </xs:annotation>
12496 </xs:attribute>
12497 <xs:attribute name="ElevationShield" type="YesNoTypeUnion">
12498 <xs:annotation>
12499 <xs:documentation>
12500 This attribute is only valid for PushButton controls.
12501 Set this attribute to "yes" to add the User Account Control (UAC) elevation icon (shield icon) to the PushButton control.
12502 If this attribute's value is "yes" and the installation is not yet running with elevated privileges,
12503 the pushbutton control is created using the User Account Control (UAC) elevation icon (shield icon).
12504 If this attribute's value is "yes" and the installation is already running with elevated privileges,
12505 the pushbutton control is created using the other icon attributes.
12506 Otherwise, the pushbutton control is created using the other icon attributes.
12507 </xs:documentation>
12508 </xs:annotation>
12509 </xs:attribute>
12510 <xs:anyAttribute namespace="##other" processContents="lax">
12511 <xs:annotation>
12512 <xs:documentation>
12513 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12514 attributes at this point in the schema.
12515 </xs:documentation>
12516 </xs:annotation>
12517 </xs:anyAttribute>
12518 </xs:complexType>
12519 </xs:element>
12520 <xs:element name="Billboard">
12521 <xs:annotation>
12522 <xs:documentation>
12523 Billboard to display during install of a Feature
12524 </xs:documentation>
12525 <xs:appinfo>
12526 <xse:msiRef table="Billboard" href="https://learn.microsoft.com/en-us/windows/win32/msi/billboard-table" />
12527 <xse:msiRef table="BBControl" href="https://learn.microsoft.com/en-us/windows/win32/msi/bbcontrol-table" />
12528 </xs:appinfo>
12529 </xs:annotation>
12530 <xs:complexType>
12531 <xs:sequence>
12532 <xs:element ref="Control" minOccurs="0" maxOccurs="unbounded">
12533 <xs:annotation>
12534 <xs:documentation>Only controls of static type such as: Text, Bitmap, Icon, or custom control can be placed on a billboard.</xs:documentation>
12535 </xs:annotation>
12536 </xs:element>
12537 </xs:sequence>
12538 <xs:attribute name="Id" type="xs:string" use="required">
12539 <xs:annotation>
12540 <xs:documentation>Unique identifier for the Billboard.</xs:documentation>
12541 </xs:annotation>
12542 </xs:attribute>
12543 <xs:attribute name="Feature" type="xs:string">
12544 <xs:annotation>
12545 <xs:documentation>Feature whose state determines if the Billboard is shown.</xs:documentation>
12546 </xs:annotation>
12547 </xs:attribute>
12548 <xs:anyAttribute namespace="##other" processContents="lax">
12549 <xs:annotation>
12550 <xs:documentation>
12551 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12552 attributes at this point in the schema.
12553 </xs:documentation>
12554 </xs:annotation>
12555 </xs:anyAttribute>
12556 </xs:complexType>
12557 </xs:element>
12558 <xs:element name="BillboardAction">
12559 <xs:annotation>
12560 <xs:documentation>
12561 Billboard action during which child Billboards are displayed
12562 </xs:documentation>
12563 <xs:appinfo>
12564 <xse:msiRef table="Billboard" href="https://learn.microsoft.com/en-us/windows/win32/msi/billboard-table" />
12565 <xse:msiRef table="BBControl" href="https://learn.microsoft.com/en-us/windows/win32/msi/bbcontrol-table" />
12566 </xs:appinfo>
12567 </xs:annotation>
12568 <xs:complexType>
12569 <xs:sequence>
12570 <xs:element ref="Billboard" maxOccurs="unbounded">
12571 <xs:annotation>
12572 <xs:documentation>Order of Billboard elements determines order of display</xs:documentation>
12573 </xs:annotation>
12574 </xs:element>
12575 </xs:sequence>
12576 <xs:attribute name="Id" type="xs:string" use="required">
12577 <xs:annotation>
12578 <xs:documentation>Action name that determines when the Billboard should be shown.</xs:documentation>
12579 </xs:annotation>
12580 </xs:attribute>
12581 <xs:anyAttribute namespace="##other" processContents="lax">
12582 <xs:annotation>
12583 <xs:documentation>
12584 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12585 attributes at this point in the schema.
12586 </xs:documentation>
12587 </xs:annotation>
12588 </xs:anyAttribute>
12589 </xs:complexType>
12590 </xs:element>
12591 <xs:element name="Dialog">
12592 <xs:annotation>
12593 <xs:appinfo>
12594 <xse:msiRef table="Control" href="https://docs.microsoft.com/en-us/windows/win32/msi/control-table" />
12595 <xse:msiRef table="ComboBox" href="https://docs.microsoft.com/en-us/windows/win32/msi/combobox-table" />
12596 <xse:msiRef table="Dialog" href="https://docs.microsoft.com/en-us/windows/win32/msi/dialog-table" />
12597 <xse:msiRef table="ListBox" href="https://docs.microsoft.com/en-us/windows/win32/msi/listbox-table" />
12598 <xse:msiRef table="ListView" href="https://docs.microsoft.com/en-us/windows/win32/msi/listview-table" />
12599 <xse:msiRef table="RadioButton" href="https://docs.microsoft.com/en-us/windows/win32/msi/radiobutton-table" />
12600 </xs:appinfo>
12601 <xs:documentation>
12602 Defines a dialog box in the Dialog Table.
12603 </xs:documentation>
12604 </xs:annotation>
12605 <xs:complexType>
12606 <xs:choice minOccurs="0" maxOccurs="unbounded">
12607 <xs:element ref="Control">
12608 <xs:annotation>
12609 <xs:documentation>Control elements belonging to this dialog.</xs:documentation>
12610 </xs:annotation>
12611 </xs:element>
12612 <xs:any namespace="##other" processContents="lax">
12613 <xs:annotation>
12614 <xs:documentation>
12615 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12616 elements at this point in the schema.
12617 </xs:documentation>
12618 </xs:annotation>
12619 </xs:any>
12620 </xs:choice>
12621 <xs:attribute name="Id" type="xs:string" use="required">
12622 <xs:annotation>
12623 <xs:documentation>Unique identifier for the dialog.</xs:documentation>
12624 </xs:annotation>
12625 </xs:attribute>
12626 <xs:attribute name="X" type="Integer">
12627 <xs:annotation>
12628 <xs:documentation>Horizontal placement of the dialog box as a percentage of screen width. The default value is 50.</xs:documentation>
12629 </xs:annotation>
12630 </xs:attribute>
12631 <xs:attribute name="Y" type="Integer">
12632 <xs:annotation>
12633 <xs:documentation>Vertical placement of the dialog box as a percentage of screen height. The default value is 50.</xs:documentation>
12634 </xs:annotation>
12635 </xs:attribute>
12636 <xs:attribute name="Width" use="required" type="Integer">
12637 <xs:annotation>
12638 <xs:documentation>The width of the dialog box in dialog units.</xs:documentation>
12639 </xs:annotation>
12640 </xs:attribute>
12641 <xs:attribute name="Height" use="required" type="Integer">
12642 <xs:annotation>
12643 <xs:documentation>The height of the dialog box in dialog units.</xs:documentation>
12644 </xs:annotation>
12645 </xs:attribute>
12646 <xs:attribute name="Title" type="xs:string">
12647 <xs:annotation>
12648 <xs:documentation>The title of the dialog box.</xs:documentation>
12649 </xs:annotation>
12650 </xs:attribute>
12651
12652 <xs:attribute name="Hidden" type="YesNoTypeUnion">
12653 <xs:annotation>
12654 <xs:documentation>Used to hide the dialog.</xs:documentation>
12655 </xs:annotation>
12656 </xs:attribute>
12657 <xs:attribute name="Modeless" type="YesNoTypeUnion">
12658 <xs:annotation>
12659 <xs:documentation>Used to set the dialog as modeless.</xs:documentation>
12660 </xs:annotation>
12661 </xs:attribute>
12662 <xs:attribute name="NoMinimize" type="YesNoTypeUnion">
12663 <xs:annotation>
12664 <xs:documentation>Used to specify if the dialog can be minimized.</xs:documentation>
12665 </xs:annotation>
12666 </xs:attribute>
12667 <xs:attribute name="SystemModal" type="YesNoTypeUnion">
12668 <xs:annotation>
12669 <xs:documentation>Used to set the dialog as system modal.</xs:documentation>
12670 </xs:annotation>
12671 </xs:attribute>
12672 <xs:attribute name="KeepModeless" type="YesNoTypeUnion">
12673 <xs:annotation>
12674 <xs:documentation>Keep modeless dialogs alive when this dialog is created through DoAction.</xs:documentation>
12675 </xs:annotation>
12676 </xs:attribute>
12677 <xs:attribute name="TrackDiskSpace" type="YesNoTypeUnion">
12678 <xs:annotation>
12679 <xs:documentation>Have the dialog periodically call the installer to check if available disk space has changed.</xs:documentation>
12680 </xs:annotation>
12681 </xs:attribute>
12682 <xs:attribute name="CustomPalette" type="YesNoTypeUnion">
12683 <xs:annotation>
12684 <xs:documentation>Used to specify if pictures in the dialog box are rendered with a custom palette.</xs:documentation>
12685 </xs:annotation>
12686 </xs:attribute>
12687 <xs:attribute name="RightToLeft" type="YesNoTypeUnion">
12688 <xs:annotation>
12689 <xs:documentation>Used to specify if the text in the dialog should be displayed in right to left reading order.</xs:documentation>
12690 </xs:annotation>
12691 </xs:attribute>
12692 <xs:attribute name="RightAligned" type="YesNoTypeUnion">
12693 <xs:annotation>
12694 <xs:documentation>Align text on the right.</xs:documentation>
12695 </xs:annotation>
12696 </xs:attribute>
12697 <xs:attribute name="LeftScroll" type="YesNoTypeUnion">
12698 <xs:annotation>
12699 <xs:documentation>Used to align the scroll bar on the left.</xs:documentation>
12700 </xs:annotation>
12701 </xs:attribute>
12702 <xs:attribute name="ErrorDialog" type="YesNoTypeUnion">
12703 <xs:annotation>
12704 <xs:documentation>Specifies this dialog as an error dialog.</xs:documentation>
12705 </xs:annotation>
12706 </xs:attribute>
12707 <xs:anyAttribute namespace="##other" processContents="lax">
12708 <xs:annotation>
12709 <xs:documentation>
12710 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12711 attributes at this point in the schema.
12712 </xs:documentation>
12713 </xs:annotation>
12714 </xs:anyAttribute>
12715 </xs:complexType>
12716 </xs:element>
12717 <xs:element name="DialogRef">
12718 <xs:annotation>
12719 <xs:appinfo>
12720 <xse:seeAlso ref="Dialog" />
12721 </xs:appinfo>
12722 <xs:documentation>
12723 Reference to a Dialog. This will cause the entire referenced section's contents
12724 to be included in the installer database.
12725 </xs:documentation>
12726 </xs:annotation>
12727 <xs:complexType>
12728 <xs:attribute name="Id" type="xs:string" use="required">
12729 <xs:annotation>
12730 <xs:documentation>The identifier of the Dialog to reference.</xs:documentation>
12731 </xs:annotation>
12732 </xs:attribute>
12733 <xs:anyAttribute namespace="##other" processContents="lax">
12734 <xs:annotation>
12735 <xs:documentation>
12736 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12737 attributes at this point in the schema.
12738 </xs:documentation>
12739 </xs:annotation>
12740 </xs:anyAttribute>
12741 </xs:complexType>
12742 </xs:element>
12743 <xs:element name="ProgressText">
12744 <xs:annotation>
12745 <xs:appinfo>
12746 <xse:msiRef table="ActionText" href="https://learn.microsoft.com/en-us/windows/win32/msi/actiontext-table" />
12747 </xs:appinfo>
12748 </xs:annotation>
12749 <xs:complexType>
12750 <xs:attribute name="Action" type="xs:string" use="required" />
12751 <xs:attribute name="Message" type="xs:string">
12752 <xs:annotation>
12753 <xs:documentation>Element value is progress message text for action.</xs:documentation>
12754 </xs:annotation>
12755 </xs:attribute>
12756 <xs:attribute name="Template" type="xs:string">
12757 <xs:annotation>
12758 <xs:documentation>Used to format ActionData messages from action processing</xs:documentation>
12759 </xs:annotation>
12760 </xs:attribute>
12761 </xs:complexType>
12762 </xs:element>
12763 <xs:element name="TextStyle">
12764 <xs:annotation>
12765 <xs:appinfo>
12766 <xse:msiRef table="TextStyle" href="https://docs.microsoft.com/en-us/windows/win32/msi/textstyle-table" />
12767 </xs:appinfo>
12768 </xs:annotation>
12769 <xs:complexType>
12770 <xs:attribute name="Id" type="xs:string">
12771 <xs:annotation>
12772 <xs:documentation>
12773 An optional identifier for the text style in the database. If one is not specified,
12774 one will be generated.
12775 </xs:documentation>
12776 </xs:annotation>
12777 </xs:attribute>
12778 <xs:attribute name="FaceName" use="required" type="xs:string">
12779 <xs:annotation>
12780 <xs:documentation>The face name of the font.</xs:documentation>
12781 </xs:annotation>
12782 </xs:attribute>
12783 <xs:attribute name="Size" use="required" type="xs:string">
12784 <xs:annotation>
12785 <xs:documentation>The font's size.</xs:documentation>
12786 </xs:annotation>
12787 </xs:attribute>
12788 <xs:attribute name="Red" type="Integer">
12789 <xs:annotation>
12790 <xs:documentation>A value from 0 to 255 to indicate the amount of red in the font.</xs:documentation>
12791 </xs:annotation>
12792 </xs:attribute>
12793 <xs:attribute name="Green" type="Integer">
12794 <xs:annotation>
12795 <xs:documentation>A value from 0 to 255 to indicate the amount of green in the font.</xs:documentation>
12796 </xs:annotation>
12797 </xs:attribute>
12798 <xs:attribute name="Blue" type="Integer">
12799 <xs:annotation>
12800 <xs:documentation>A value from 0 to 255 to indicate the amount of blue in the font.</xs:documentation>
12801 </xs:annotation>
12802 </xs:attribute>
12803 <xs:attribute name="Bold" type="YesNoTypeUnion">
12804 <xs:annotation>
12805 <xs:documentation>Indicates whether the font should be bold. Default is 'false'.</xs:documentation>
12806 </xs:annotation>
12807 </xs:attribute>
12808 <xs:attribute name="Italic" type="YesNoTypeUnion">
12809 <xs:annotation>
12810 <xs:documentation>Indicates whether the font should be italic. Default is 'false'.</xs:documentation>
12811 </xs:annotation>
12812 </xs:attribute>
12813 <xs:attribute name="Underline" type="YesNoTypeUnion">
12814 <xs:annotation>
12815 <xs:documentation>Indicates whether the font should be underline. Default is 'false'.</xs:documentation>
12816 </xs:annotation>
12817 </xs:attribute>
12818 <xs:attribute name="Strike" type="YesNoTypeUnion">
12819 <xs:annotation>
12820 <xs:documentation>Indicates whether the font should be strikethrough. Default is 'false'.</xs:documentation>
12821 </xs:annotation>
12822 </xs:attribute>
12823 <xs:anyAttribute namespace="##other" processContents="lax">
12824 <xs:annotation>
12825 <xs:documentation>
12826 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12827 attributes at this point in the schema.
12828 </xs:documentation>
12829 </xs:annotation>
12830 </xs:anyAttribute>
12831 </xs:complexType>
12832 </xs:element>
12833 <xs:element name="ListItem">
12834 <xs:annotation>
12835 <xs:documentation>
12836 The value (and optional text) associated with an item in a ComboBox, ListBox, or ListView.
12837 </xs:documentation>
12838 <xs:appinfo>
12839 <xse:msiRef table="ComboBox" href="https://docs.microsoft.com/en-us/windows/win32/msi/combobox-table" />
12840 <xse:msiRef table="ListBox" href="https://docs.microsoft.com/en-us/windows/win32/msi/listbox-table" />
12841 <xse:msiRef table="ListView" href="https://docs.microsoft.com/en-us/windows/win32/msi/listview-table" />
12842 </xs:appinfo>
12843 </xs:annotation>
12844 <xs:complexType>
12845 <xs:attribute name="Value" type="xs:string" use="required">
12846 <xs:annotation>
12847 <xs:documentation>
12848 The value assigned to the associated ComboBox, ListBox, or ListView property if this item is selected.
12849 </xs:documentation>
12850 </xs:annotation>
12851 </xs:attribute>
12852 <xs:attribute name="Text" type="xs:string">
12853 <xs:annotation>
12854 <xs:documentation>
12855 The localizable, visible text to be assigned to the item.
12856 If not specified, this will default to the value of the Value attribute.
12857 </xs:documentation>
12858 </xs:annotation>
12859 </xs:attribute>
12860 <xs:attribute name="Icon" type="xs:string">
12861 <xs:annotation>
12862 <xs:documentation>
12863 The identifier of the Binary (not Icon) element containing the icon to associate with this item.
12864 This value is only valid when nested under a ListView element.
12865 </xs:documentation>
12866 </xs:annotation>
12867 </xs:attribute>
12868 <xs:anyAttribute namespace="##other" processContents="lax">
12869 <xs:annotation>
12870 <xs:documentation>
12871 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12872 attributes at this point in the schema.
12873 </xs:documentation>
12874 </xs:annotation>
12875 </xs:anyAttribute>
12876 </xs:complexType>
12877 </xs:element>
12878 <xs:element name="ListBox">
12879 <xs:annotation>
12880 <xs:documentation>
12881 Set of items for a particular ListBox control tied to an install Property
12882 </xs:documentation>
12883 <xs:appinfo>
12884 <xse:msiRef table="Control" href="https://docs.microsoft.com/en-us/windows/win32/msi/control-table" />
12885 <xse:msiRef table="Dialog" href="https://docs.microsoft.com/en-us/windows/win32/msi/dialog-table" />
12886 <xse:msiRef table="ListView" href="https://docs.microsoft.com/en-us/windows/win32/msi/listview-table" />
12887 </xs:appinfo>
12888 </xs:annotation>
12889 <xs:complexType>
12890 <xs:choice minOccurs="0" maxOccurs="unbounded">
12891 <xs:element ref="ListItem">
12892 <xs:annotation>
12893 <xs:documentation>entry for ListBox table</xs:documentation>
12894 </xs:annotation>
12895 </xs:element>
12896 </xs:choice>
12897 <xs:attribute name="Property" use="required" type="xs:string">
12898 <xs:annotation>
12899 <xs:documentation>Property tied to this group</xs:documentation>
12900 </xs:annotation>
12901 </xs:attribute>
12902 <xs:anyAttribute namespace="##other" processContents="lax">
12903 <xs:annotation>
12904 <xs:documentation>
12905 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12906 attributes at this point in the schema.
12907 </xs:documentation>
12908 </xs:annotation>
12909 </xs:anyAttribute>
12910 </xs:complexType>
12911 </xs:element>
12912 <xs:element name="ComboBox">
12913 <xs:annotation>
12914 <xs:documentation>
12915 Set of items for a particular ComboBox control tied to an install Property
12916 </xs:documentation>
12917 <xs:appinfo>
12918 <xse:msiRef table="ComboBox" href="https://docs.microsoft.com/en-us/windows/win32/msi/combobox-table" />
12919 <xse:msiRef table="Control" href="https://docs.microsoft.com/en-us/windows/win32/msi/control-table" />
12920 <xse:msiRef table="Dialog" href="https://docs.microsoft.com/en-us/windows/win32/msi/dialog-table" />
12921 </xs:appinfo>
12922 </xs:annotation>
12923 <xs:complexType>
12924 <xs:choice minOccurs="0" maxOccurs="unbounded">
12925 <xs:element ref="ListItem">
12926 <xs:annotation>
12927 <xs:documentation>entry for ComboBox table</xs:documentation>
12928 </xs:annotation>
12929 </xs:element>
12930 </xs:choice>
12931 <xs:attribute name="Property" use="required" type="xs:string">
12932 <xs:annotation>
12933 <xs:documentation>Property tied to this group</xs:documentation>
12934 </xs:annotation>
12935 </xs:attribute>
12936 <xs:anyAttribute namespace="##other" processContents="lax">
12937 <xs:annotation>
12938 <xs:documentation>
12939 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12940 attributes at this point in the schema.
12941 </xs:documentation>
12942 </xs:annotation>
12943 </xs:anyAttribute>
12944 </xs:complexType>
12945 </xs:element>
12946 <xs:element name="ListView">
12947 <xs:annotation>
12948 <xs:documentation>
12949 Set of items for a particular ListView control tied to an install Property
12950 </xs:documentation>
12951 <xs:appinfo>
12952 <xse:msiRef table="ListView" href="https://docs.microsoft.com/en-us/windows/win32/msi/listview-table" />
12953 <xse:msiRef table="Control" href="https://docs.microsoft.com/en-us/windows/win32/msi/control-table" />
12954 <xse:msiRef table="Dialog" href="https://docs.microsoft.com/en-us/windows/win32/msi/dialog-table" />
12955 </xs:appinfo>
12956 </xs:annotation>
12957 <xs:complexType>
12958 <xs:choice minOccurs="0" maxOccurs="unbounded">
12959 <xs:element ref="ListItem">
12960 <xs:annotation>
12961 <xs:documentation>entry for ListView table</xs:documentation>
12962 </xs:annotation>
12963 </xs:element>
12964 </xs:choice>
12965 <xs:attribute name="Property" use="required" type="xs:string">
12966 <xs:annotation>
12967 <xs:documentation>Property tied to this group</xs:documentation>
12968 </xs:annotation>
12969 </xs:attribute>
12970 <xs:anyAttribute namespace="##other" processContents="lax">
12971 <xs:annotation>
12972 <xs:documentation>
12973 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12974 attributes at this point in the schema.
12975 </xs:documentation>
12976 </xs:annotation>
12977 </xs:anyAttribute>
12978 </xs:complexType>
12979 </xs:element>
12980 <xs:element name="RadioButton">
12981 <xs:annotation>
12982 <xs:appinfo>
12983 <xse:seeAlso ref="RadioButtonGroup" />
12984 <xse:msiRef table="RadioButton" href="https://docs.microsoft.com/en-us/windows/win32/msi/radiobutton-table" />
12985 <xse:msiRef table="Control" href="https://docs.microsoft.com/en-us/windows/win32/msi/control-table" />
12986 <xse:msiRef table="Dialog" href="https://docs.microsoft.com/en-us/windows/win32/msi/dialog-table" />
12987 </xs:appinfo>
12988 <xs:documentation>Text or Icon plus Value that is assigned to the Property of the parent Control (RadioButtonGroup).</xs:documentation>
12989 </xs:annotation>
12990 <xs:complexType>
12991 <xs:attribute name="Bitmap" type="xs:string">
12992 <xs:annotation>
12993 <xs:documentation>
12994 This attribute defines the bitmap displayed with the radio button. The value of the attribute creates a reference
12995 to a Binary element that represents the bitmap. This attribute is mutually exclusive with the Icon and Text
12996 attributes.
12997 </xs:documentation>
12998 </xs:annotation>
12999 </xs:attribute>
13000 <xs:attribute name="Height" use="required" type="LocalizableInteger" />
13001 <xs:attribute name="Help" type="xs:string" />
13002 <xs:attribute name="Icon" type="xs:string">
13003 <xs:annotation>
13004 <xs:documentation>
13005 This attribute defines the icon displayed with the radio button. The value of the attribute creates a reference
13006 to a Binary element that represents the icon. This attribute is mutually exclusive with the Bitmap and Text
13007 attributes.
13008 </xs:documentation>
13009 </xs:annotation>
13010 </xs:attribute>
13011 <xs:attribute name="Text" type="xs:string">
13012 <xs:annotation>
13013 <xs:documentation>Text displayed with the radio button. This attribute is mutually exclusive with the Bitmap and Icon attributes.</xs:documentation>
13014 </xs:annotation>
13015 </xs:attribute>
13016 <xs:attribute name="ToolTip" type="xs:string" />
13017 <xs:attribute name="Value" type="xs:string" use="required">
13018 <xs:annotation>
13019 <xs:documentation>Value assigned to the associated control Property when this radio button is selected.</xs:documentation>
13020 </xs:annotation>
13021 </xs:attribute>
13022 <xs:attribute name="Width" use="required" type="LocalizableInteger" />
13023 <xs:attribute name="X" use="required" type="LocalizableInteger" />
13024 <xs:attribute name="Y" use="required" type="LocalizableInteger" />
13025 <xs:anyAttribute namespace="##other" processContents="lax">
13026 <xs:annotation>
13027 <xs:documentation>
13028 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13029 attributes at this point in the schema.
13030 </xs:documentation>
13031 </xs:annotation>
13032 </xs:anyAttribute>
13033 </xs:complexType>
13034 </xs:element>
13035 <xs:element name="RadioButtonGroup">
13036 <xs:annotation>
13037 <xs:documentation>
13038 Set of radio buttons tied to the specified Property
13039 </xs:documentation>
13040 <xs:appinfo>
13041 <xse:msiRef table="RadioButton" href="https://docs.microsoft.com/en-us/windows/win32/msi/radiobutton-table" />
13042 <xse:msiRef table="Control" href="https://docs.microsoft.com/en-us/windows/win32/msi/control-table" />
13043 <xse:msiRef table="Dialog" href="https://docs.microsoft.com/en-us/windows/win32/msi/dialog-table" />
13044 </xs:appinfo>
13045 </xs:annotation>
13046 <xs:complexType>
13047 <xs:sequence>
13048 <xs:element ref="RadioButton" maxOccurs="unbounded" />
13049 </xs:sequence>
13050 <xs:attribute name="Property" use="required" type="xs:string">
13051 <xs:annotation>
13052 <xs:documentation>Property tied to this group.</xs:documentation>
13053 </xs:annotation>
13054 </xs:attribute>
13055 <xs:anyAttribute namespace="##other" processContents="lax">
13056 <xs:annotation>
13057 <xs:documentation>
13058 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13059 attributes at this point in the schema.
13060 </xs:documentation>
13061 </xs:annotation>
13062 </xs:anyAttribute>
13063 </xs:complexType>
13064 </xs:element>
13065 <xs:element name="UIText">
13066 <xs:annotation>
13067 <xs:documentation>
13068 Text associated with certain controls.
13069 </xs:documentation>
13070 <xs:appinfo>
13071 <xse:msiRef table="UIText" href="https://docs.microsoft.com/en-us/windows/win32/msi/uitext-table" />
13072 </xs:appinfo>
13073 </xs:annotation>
13074 <xs:complexType>
13075 <xs:attribute name="Id" type="xs:string">
13076 <xs:annotation>
13077 <xs:documentation>
13078 An optional identifier for the text style in the database. If one is not specified,
13079 one will be generated.
13080 </xs:documentation>
13081 </xs:annotation>
13082 </xs:attribute>
13083 <xs:attribute name="Value" type="xs:string">
13084 <xs:annotation>
13085 <xs:documentation>The UI text.</xs:documentation>
13086 </xs:annotation>
13087 </xs:attribute>
13088 <xs:anyAttribute namespace="##other" processContents="lax">
13089 <xs:annotation>
13090 <xs:documentation>
13091 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13092 attributes at this point in the schema.
13093 </xs:documentation>
13094 </xs:annotation>
13095 </xs:anyAttribute>
13096 </xs:complexType>
13097 </xs:element>
13098 <xs:element name="UIRef">
13099 <xs:annotation>
13100 <xs:documentation>
13101 Reference to a UI element. This will force the entire referenced Fragment's contents
13102 to be included in the installer database.
13103 </xs:documentation>
13104 <xs:appinfo>
13105 <xse:seeAlso ref="UI" />
13106 </xs:appinfo>
13107 </xs:annotation>
13108 <xs:complexType>
13109 <xs:attribute name="Id" type="xs:string" use="required" />
13110 <xs:anyAttribute namespace="##other" processContents="lax">
13111 <xs:annotation>
13112 <xs:documentation>
13113 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13114 attributes at this point in the schema.
13115 </xs:documentation>
13116 </xs:annotation>
13117 </xs:anyAttribute>
13118 </xs:complexType>
13119 </xs:element>
13120 <xs:element name="UI">
13121 <xs:annotation>
13122 <xs:documentation>
13123 Enclosing element to compartmentalize UI specifications.
13124 </xs:documentation>
13125 <xs:appinfo>
13126 <xse:seeAlso ref="UIRef" />
13127 </xs:appinfo>
13128 </xs:annotation>
13129 <xs:complexType>
13130 <xs:choice minOccurs="0" maxOccurs="unbounded">
13131 <xs:element ref="BillboardAction" />
13132 <xs:element ref="ComboBox" />
13133 <xs:element ref="Dialog" />
13134 <xs:element ref="DialogRef" />
13135 <xs:element ref="EmbeddedUI" />
13136 <xs:element ref="Error" />
13137 <xs:element ref="ListBox" />
13138 <xs:element ref="ListView"/>
13139 <xs:element ref="ProgressText"/>
13140 <xs:element ref="Publish" />
13141 <xs:element ref="RadioButtonGroup"/>
13142 <xs:element ref="TextStyle" />
13143 <xs:element ref="UIText"/>
13144 <!--
13145 Elements with identical behavior as under Package/Fragment element, solely to allow grouping with other UI elements
13146 -->
13147 <xs:element ref="AdminUISequence" />
13148 <xs:element ref="InstallUISequence" />
13149 <xs:element ref="Binary" />
13150 <xs:element ref="Property" />
13151 <xs:element ref="PropertyRef" />
13152 <xs:element ref="UIRef" />
13153 <xs:any namespace="##other" processContents="lax">
13154 <xs:annotation>
13155 <xs:documentation>
13156 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13157 elements at this point in the schema.
13158 </xs:documentation>
13159 </xs:annotation>
13160 </xs:any>
13161 </xs:choice>
13162 <xs:attribute name="Id" type="xs:string" />
13163 <xs:anyAttribute namespace="##other" processContents="lax">
13164 <xs:annotation>
13165 <xs:documentation>
13166 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13167 attributes at this point in the schema.
13168 </xs:documentation>
13169 </xs:annotation>
13170 </xs:anyAttribute>
13171 </xs:complexType>
13172 </xs:element>
13173
13174 <xs:element name="CustomTable">
13175 <xs:annotation>
13176 <xs:documentation>Defines a custom table for use from a custom action.</xs:documentation>
13177 </xs:annotation>
13178 <xs:complexType>
13179 <xs:choice maxOccurs="unbounded">
13180 <xs:element ref="Column">
13181 <xs:annotation>
13182 <xs:documentation>Column definition for the custom table.</xs:documentation>
13183 </xs:annotation>
13184 </xs:element>
13185 <xs:element ref="Row">
13186 <xs:annotation>
13187 <xs:documentation>Row definition for the custom table.</xs:documentation>
13188 </xs:annotation>
13189 </xs:element>
13190 <xs:any namespace="##other" processContents="lax">
13191 <xs:annotation>
13192 <xs:documentation>
13193 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13194 elements at this point in the schema.
13195 </xs:documentation>
13196 </xs:annotation>
13197 </xs:any>
13198 </xs:choice>
13199 <xs:attribute name="Id" type="xs:string" use="required">
13200 <xs:annotation>
13201 <xs:documentation>Identifier for the custom table. The id must be less than 31 characters.</xs:documentation>
13202 </xs:annotation>
13203 </xs:attribute>
13204 <xs:attribute name="Unreal" type="YesNoType">
13205 <xs:annotation>
13206 <xs:documentation>Indicates the table is not supposed to be included in the final output.</xs:documentation>
13207 </xs:annotation>
13208 </xs:attribute>
13209 <xs:anyAttribute namespace="##other" processContents="lax">
13210 <xs:annotation>
13211 <xs:documentation>
13212 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13213 attributes at this point in the schema.
13214 </xs:documentation>
13215 </xs:annotation>
13216 </xs:anyAttribute>
13217 </xs:complexType>
13218 </xs:element>
13219 <xs:element name="Column">
13220 <xs:annotation>
13221 <xs:documentation>Column definition for a Custom Table</xs:documentation>
13222 </xs:annotation>
13223 <xs:complexType>
13224 <xs:choice minOccurs="0" maxOccurs="unbounded">
13225 <xs:any namespace="##other" processContents="lax">
13226 <xs:annotation>
13227 <xs:documentation>
13228 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13229 elements at this point in the schema.
13230 </xs:documentation>
13231 </xs:annotation>
13232 </xs:any>
13233 </xs:choice>
13234 <xs:attribute name="Id" type="xs:string" use="required">
13235 <xs:annotation>
13236 <xs:documentation>Identifier for the column.</xs:documentation>
13237 </xs:annotation>
13238 </xs:attribute>
13239 <xs:attribute name="PrimaryKey" type="YesNoTypeUnion">
13240 <xs:annotation>
13241 <xs:documentation>Whether this column is a primary key.</xs:documentation>
13242 </xs:annotation>
13243 </xs:attribute>
13244 <xs:attribute name="Type" use="required">
13245 <xs:annotation>
13246 <xs:documentation>The type of this column.</xs:documentation>
13247 </xs:annotation>
13248 <xs:simpleType>
13249 <xs:restriction base="xs:NMTOKEN">
13250 <xs:enumeration value="binary">
13251 <xs:annotation>
13252 <xs:documentation>
13253 Column contains a path to a file that will be inserted into the column as a binary object.
13254 If this value is set, the Category attribute must also be set with a value of 'Binary' to pass ICE validation.
13255 </xs:documentation>
13256 </xs:annotation>
13257 </xs:enumeration>
13258 <xs:enumeration value="int">
13259 <xs:annotation>
13260 <xs:documentation>
13261 Column contains an integer or datetime value (the MinValue and MaxValue attributes should also be set).
13262 </xs:documentation>
13263 </xs:annotation>
13264 </xs:enumeration>
13265 <xs:enumeration value="string">
13266 <xs:annotation>
13267 <xs:documentation>
13268 Column contains a non-localizable string value.
13269 </xs:documentation>
13270 </xs:annotation>
13271 </xs:enumeration>
13272 </xs:restriction>
13273 </xs:simpleType>
13274 </xs:attribute>
13275 <xs:attribute name="Width" type="Integer">
13276 <xs:annotation>
13277 <xs:documentation>Width of this column.</xs:documentation>
13278 </xs:annotation>
13279 </xs:attribute>
13280 <xs:attribute name="Nullable" type="YesNoTypeUnion">
13281 <xs:annotation>
13282 <xs:documentation>Whether this column can be left null.</xs:documentation>
13283 </xs:annotation>
13284 </xs:attribute>
13285 <xs:attribute name="Localizable" type="YesNoTypeUnion">
13286 <xs:annotation>
13287 <xs:documentation>Whether this column can be localized.</xs:documentation>
13288 </xs:annotation>
13289 </xs:attribute>
13290 <xs:attribute name="MinValue" type="xs:long">
13291 <xs:annotation>
13292 <xs:documentation>Minimum value for a numeric value, date or version in this column.</xs:documentation>
13293 </xs:annotation>
13294 </xs:attribute>
13295 <xs:attribute name="MaxValue" type="xs:long">
13296 <xs:annotation>
13297 <xs:documentation>Maximum value for a numeric value, date or version in this column.</xs:documentation>
13298 </xs:annotation>
13299 </xs:attribute>
13300 <xs:attribute name="KeyTable" type="xs:string">
13301 <xs:annotation>
13302 <xs:documentation>Table in which this column is an external key. Can be semicolon delimited.</xs:documentation>
13303 </xs:annotation>
13304 </xs:attribute>
13305 <xs:attribute name="KeyColumn" type="Integer">
13306 <xs:annotation>
13307 <xs:documentation>Column in the table in KeyTable attribute.</xs:documentation>
13308 </xs:annotation>
13309 </xs:attribute>
13310 <xs:attribute name="Category">
13311 <xs:annotation>
13312 <xs:documentation>
13313 Category of this column.
13314 This attribute must be specified with a value of 'Binary' if the Type attribute's value is 'binary'.
13315 </xs:documentation>
13316 </xs:annotation>
13317 <xs:simpleType>
13318 <xs:restriction base="xs:NMTOKEN">
13319 <xs:enumeration value="text" />
13320 <xs:enumeration value="upperCase" />
13321 <xs:enumeration value="lowerCase" />
13322 <xs:enumeration value="integer" />
13323 <xs:enumeration value="doubleInteger" />
13324 <xs:enumeration value="timeDate" />
13325 <xs:enumeration value="identifier" />
13326 <xs:enumeration value="property" />
13327 <xs:enumeration value="filename" />
13328 <xs:enumeration value="wildCardFilename" />
13329 <xs:enumeration value="path" />
13330 <xs:enumeration value="paths" />
13331 <xs:enumeration value="anyPath" />
13332 <xs:enumeration value="defaultDir" />
13333 <xs:enumeration value="regPath" />
13334 <xs:enumeration value="formatted" />
13335 <xs:enumeration value="formattedSddl" />
13336 <xs:enumeration value="template" />
13337 <xs:enumeration value="condition" />
13338 <xs:enumeration value="guid" />
13339 <xs:enumeration value="version" />
13340 <xs:enumeration value="language" />
13341 <xs:enumeration value="binary" />
13342 <xs:enumeration value="customSource" />
13343 <xs:enumeration value="cabinet" />
13344 <xs:enumeration value="shortcut" />
13345 </xs:restriction>
13346 </xs:simpleType>
13347 </xs:attribute>
13348 <xs:attribute name="Set" type="xs:string">
13349 <xs:annotation>
13350 <xs:documentation>Semicolon delimited list of permissible values.</xs:documentation>
13351 </xs:annotation>
13352 </xs:attribute>
13353 <xs:attribute name="Description" type="xs:string">
13354 <xs:annotation>
13355 <xs:documentation>Description of this column.</xs:documentation>
13356 </xs:annotation>
13357 </xs:attribute>
13358 <xs:attribute name="Modularize">
13359 <xs:annotation>
13360 <xs:documentation>How this column should be modularized, if at all.</xs:documentation>
13361 </xs:annotation>
13362 <xs:simpleType>
13363 <xs:restriction base="xs:NMTOKEN">
13364 <xs:enumeration value="none">
13365 <xs:annotation>
13366 <xs:documentation>
13367 Column should not be modularized. This is the default value.
13368 </xs:documentation>
13369 </xs:annotation>
13370 </xs:enumeration>
13371 <xs:enumeration value="column">
13372 <xs:annotation>
13373 <xs:documentation>
13374 Column should be modularized.
13375 </xs:documentation>
13376 </xs:annotation>
13377 </xs:enumeration>
13378 <xs:enumeration value="condition">
13379 <xs:annotation>
13380 <xs:documentation>
13381 Column is a condition and should be modularized.
13382 </xs:documentation>
13383 </xs:annotation>
13384 </xs:enumeration>
13385 <xs:enumeration value="icon">
13386 <xs:annotation>
13387 <xs:documentation>
13388 When the column is an primary or foreign key to the Icon table it should be modularized special.
13389 </xs:documentation>
13390 </xs:annotation>
13391 </xs:enumeration>
13392 <xs:enumeration value="property">
13393 <xs:annotation>
13394 <xs:documentation>
13395 Any Properties in the column should be modularized.
13396 </xs:documentation>
13397 </xs:annotation>
13398 </xs:enumeration>
13399 <xs:enumeration value="semicolonDelimited">
13400 <xs:annotation>
13401 <xs:documentation>
13402 Semi-colon list of keys, all of which need to be modularized.
13403 </xs:documentation>
13404 </xs:annotation>
13405 </xs:enumeration>
13406 </xs:restriction>
13407 </xs:simpleType>
13408 </xs:attribute>
13409 <xs:anyAttribute namespace="##other" processContents="lax">
13410 <xs:annotation>
13411 <xs:documentation>
13412 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13413 attributes at this point in the schema.
13414 </xs:documentation>
13415 </xs:annotation>
13416 </xs:anyAttribute>
13417 </xs:complexType>
13418 </xs:element>
13419 <xs:element name="Row">
13420 <xs:annotation>
13421 <xs:documentation>Row data for a Custom Table</xs:documentation>
13422 </xs:annotation>
13423 <xs:complexType>
13424 <xs:choice maxOccurs="unbounded">
13425 <xs:element ref="Data"/>
13426 <xs:any namespace="##other" processContents="lax">
13427 <xs:annotation>
13428 <xs:documentation>
13429 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13430 elements at this point in the schema.
13431 </xs:documentation>
13432 </xs:annotation>
13433 </xs:any>
13434 </xs:choice>
13435 <xs:anyAttribute namespace="##other" processContents="lax">
13436 <xs:annotation>
13437 <xs:documentation>
13438 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13439 attributes at this point in the schema.
13440 </xs:documentation>
13441 </xs:annotation>
13442 </xs:anyAttribute>
13443 </xs:complexType>
13444 </xs:element>
13445 <xs:element name="Data">
13446 <xs:annotation>
13447 <xs:documentation>Used for a Custom Table. Specifies the data for the parent Row and specified Column.</xs:documentation>
13448 </xs:annotation>
13449 <xs:complexType>
13450 <xs:attribute name="Column" type="xs:string" use="required">
13451 <xs:annotation>
13452 <xs:documentation>Specifies in which column to insert this data.</xs:documentation>
13453 </xs:annotation>
13454 </xs:attribute>
13455 <xs:attribute name="Value" type="xs:string">
13456 <xs:annotation>
13457 <xs:documentation>Specifies the optional data for this column.</xs:documentation>
13458 </xs:annotation>
13459 </xs:attribute>
13460 <xs:anyAttribute namespace="##other" processContents="lax">
13461 <xs:annotation>
13462 <xs:documentation>
13463 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13464 attributes at this point in the schema.
13465 </xs:documentation>
13466 </xs:annotation>
13467 </xs:anyAttribute>
13468 </xs:complexType>
13469 </xs:element>
13470 <xs:element name="CustomTableRef">
13471 <xs:annotation>
13472 <xs:documentation>Used to reference a CustomTable element and optionally add more data.</xs:documentation>
13473 </xs:annotation>
13474 <xs:complexType>
13475 <xs:sequence>
13476 <xs:element ref="Row" minOccurs="0" maxOccurs="unbounded">
13477 <xs:annotation>
13478 <xs:documentation>Row definition for the custom table.</xs:documentation>
13479 </xs:annotation>
13480 </xs:element>
13481 </xs:sequence>
13482 <xs:attribute name="Id" type="xs:string" use="required">
13483 <xs:annotation>
13484 <xs:documentation>The identifier of the CustomTable element to reference.</xs:documentation>
13485 </xs:annotation>
13486 </xs:attribute>
13487 <xs:anyAttribute namespace="##other" processContents="lax">
13488 <xs:annotation>
13489 <xs:documentation>
13490 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13491 attributes at this point in the schema.
13492 </xs:documentation>
13493 </xs:annotation>
13494 </xs:anyAttribute>
13495 </xs:complexType>
13496 </xs:element>
13497
13498 <xs:element name="EnsureTable">
13499 <xs:annotation>
13500 <xs:documentation>
13501 Use this element to ensure that a table appears in the installer database, even if its empty.
13502 </xs:documentation>
13503 <xs:appinfo>
13504 <xse:remarks>
13505 This element is particularly useful for two problems that may occur while merging merge modules:
13506
13507 * The first likely problem is that in order to properly merge you need to have certain
13508 tables present prior to merging. Using this element is one way to ensure those tables
13509 are present prior to the merging.
13510
13511 * The other common problem is that a merge module has incorrect validation information
13512 about some tables. By ensuring these tables prior to merging, you can avoid this
13513 problem because the correct validation information will go into the installer database
13514 before the merge module has a chance to set it incorrectly.
13515 </xse:remarks>
13516 </xs:appinfo>
13517 </xs:annotation>
13518 <xs:complexType>
13519 <xs:attribute name="Id" use="required" type="xs:string">
13520 <xs:annotation>
13521 <xs:documentation>The name of the table.</xs:documentation>
13522 </xs:annotation>
13523 </xs:attribute>
13524 <xs:anyAttribute namespace="##other" processContents="lax">
13525 <xs:annotation>
13526 <xs:documentation>
13527 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13528 attributes at this point in the schema.
13529 </xs:documentation>
13530 </xs:annotation>
13531 </xs:anyAttribute>
13532 </xs:complexType>
13533 </xs:element>
13534 <xs:element name="WixVariable">
13535 <xs:annotation>
13536 <xs:documentation>
13537 This element exposes advanced WiX functionality. Use this element to declare WiX variables
13538 from directly within your authoring. WiX variables are not resolved until the final package
13539 file is actually generated (bind time). WiX variables do not persist into the package file,
13540 so they cannot be used when an MSI file is being installed; it's a WiX-only concept.
13541 </xs:documentation>
13542 </xs:annotation>
13543 <xs:complexType>
13544 <xs:attribute name="Id" type="xs:string" use="required">
13545 <xs:annotation>
13546 <xs:documentation>The name of the variable.</xs:documentation>
13547 </xs:annotation>
13548 </xs:attribute>
13549 <xs:attribute name="Overridable" type="YesNoTypeUnion">
13550 <xs:annotation>
13551 <xs:documentation>
13552 Set this value to 'yes' in order to make the variable's value overridable either by
13553 another WixVariable entry or via the command-line option -d_name_=_value_;
13554 for light.exe. If the same variable is declared overridable in multiple places it
13555 will cause an error (since WiX won't know which value is correct). The default value
13556 is 'no'.
13557 </xs:documentation>
13558 </xs:annotation>
13559 </xs:attribute>
13560 <xs:attribute name="Value" type="xs:string" use="required">
13561 <xs:annotation>
13562 <xs:documentation>
13563 The value of the variable. Note that because values are substituted at bind time,
13564 they skip all the validation done at compile time, which can be more thorough than
13565 validation done at bind time.
13566 </xs:documentation>
13567 </xs:annotation>
13568 </xs:attribute>
13569 <xs:anyAttribute namespace="##other" processContents="lax">
13570 <xs:annotation>
13571 <xs:documentation>
13572 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13573 attributes at this point in the schema.
13574 </xs:documentation>
13575 </xs:annotation>
13576 </xs:anyAttribute>
13577 </xs:complexType>
13578 </xs:element>
13579 <xs:element name="InstanceTransforms">
13580 <xs:annotation>
13581 <xs:documentation>
13582 Use this element to contain definitions for instance transforms.
13583 </xs:documentation>
13584 </xs:annotation>
13585 <xs:complexType>
13586 <xs:choice minOccurs="0" maxOccurs="unbounded">
13587 <xs:element ref="Instance" />
13588 </xs:choice>
13589 <xs:attribute name="Property" type="xs:string" use="required">
13590 <xs:annotation>
13591 <xs:documentation>The Id of the Property who's value should change for each instance.</xs:documentation>
13592 </xs:annotation>
13593 </xs:attribute>
13594 <xs:anyAttribute namespace="##other" processContents="lax">
13595 <xs:annotation>
13596 <xs:documentation>
13597 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13598 attributes at this point in the schema.
13599 </xs:documentation>
13600 </xs:annotation>
13601 </xs:anyAttribute>
13602 </xs:complexType>
13603 </xs:element>
13604 <xs:element name="Instance">
13605 <xs:annotation>
13606 <xs:documentation>
13607 Defines an instance transform for your product.
13608 </xs:documentation>
13609 </xs:annotation>
13610 <xs:complexType>
13611 <xs:attribute name="Id" type="xs:string" use="required">
13612 <xs:annotation>
13613 <xs:documentation>
13614 The identity of the instance transform. This value will define the name by which the instance
13615 should be referred to on the command line. In addition, the value of the this attribute will
13616 determine what the value of the property specified in Property attribute on InstanceTransforms
13617 will change to for each instance.
13618 </xs:documentation>
13619 </xs:annotation>
13620 </xs:attribute>
13621 <xs:attribute name="ProductCode" type="AutogenGuid" use="required">
13622 <xs:annotation>
13623 <xs:documentation>The ProductCode for this instance.</xs:documentation>
13624 </xs:annotation>
13625 </xs:attribute>
13626 <xs:attribute name="ProductName" type="xs:string">
13627 <xs:annotation>
13628 <xs:documentation>The ProductName for this instance.</xs:documentation>
13629 </xs:annotation>
13630 </xs:attribute>
13631 <xs:attribute name="UpgradeCode" type="Guid">
13632 <xs:annotation>
13633 <xs:documentation>The UpgradeCode for this instance.</xs:documentation>
13634 </xs:annotation>
13635 </xs:attribute>
13636 <xs:anyAttribute namespace="##other" processContents="lax">
13637 <xs:annotation>
13638 <xs:documentation>
13639 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13640 attributes at this point in the schema.
13641 </xs:documentation>
13642 </xs:annotation>
13643 </xs:anyAttribute>
13644 </xs:complexType>
13645 </xs:element>
13646 <xs:element name="MajorUpgrade">
13647 <xs:annotation>
13648 <xs:documentation>
13649 Simplifies authoring for major upgrades, including support for preventing downgrades.
13650
13651 The parent Package element must have valid UpgradeCode and Version attributes.
13652
13653 When the FindRelatedProducts action detects a related product installed on the system,
13654 it appends the product code to the property named WIX_UPGRADE_DETECTED. After the
13655 FindRelatedProducts action is run, the value of the WIX_UPGRADE_DETECTED property is a
13656 list of product codes, separated by semicolons (;), detected on the system.
13657 </xs:documentation>
13658 <xs:appinfo>
13659 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
13660 </xs:appinfo>
13661 </xs:annotation>
13662 <xs:complexType>
13663 <xs:attribute name="AllowDowngrades" type="YesNoTypeUnion">
13664 <xs:annotation>
13665 <xs:documentation>
13666 When set to no (the default), products with lower version numbers are blocked from
13667 installing when a product with a higher version is installed; the DowngradeErrorMessage
13668 attribute must also be specified.
13669
13670 When set to yes, any version can be installed over any other version.
13671 </xs:documentation>
13672 </xs:annotation>
13673 </xs:attribute>
13674 <xs:attribute name="AllowSameVersionUpgrades" type="YesNoTypeUnion">
13675 <xs:annotation>
13676 <xs:documentation>
13677 When set to no (the default), installing a product with the same version and upgrade code
13678 (but different product code) is allowed and treated by MSI as two products. When set to yes,
13679 WiX sets the msidbUpgradeAttributesVersionMaxInclusive attribute, which tells MSI to treat
13680 a product with the same version as a major upgrade.
13681
13682 This is useful when two product versions differ only in the fourth version field. MSI
13683 specifically ignores that field when comparing product versions, so two products that
13684 differ only in the fourth version field are the same product and need this attribute set to
13685 yes to be detected.
13686
13687 Note that because MSI ignores the fourth product version field, setting this attribute to
13688 yes also allows downgrades when the first three product version fields are identical.
13689 For example, product version 1.0.0.1 will "upgrade" 1.0.0.2998 because they're seen as the
13690 same version (1.0.0). That could reintroduce serious bugs so the safest choice is to change
13691 the first three version fields and omit this attribute to get the default of no.
13692
13693 This attribute cannot be "yes" when AllowDowngrades is also "yes" -- AllowDowngrades
13694 already allows two products with the same version number to upgrade each other.
13695 </xs:documentation>
13696 </xs:annotation>
13697 </xs:attribute>
13698 <xs:attribute name="Disallow" type="YesNoTypeUnion">
13699 <xs:annotation>
13700 <xs:documentation>
13701 When set to yes, products with higer version numbers are blocked from
13702 installing when a product with a lower version is installed; the UpgradeErrorMessage
13703 attribute must also be specified.
13704
13705 When set to no (the default), any version can be installed over any lower version.
13706 </xs:documentation>
13707 </xs:annotation>
13708 </xs:attribute>
13709 <xs:attribute name="DowngradeErrorMessage" type="xs:string">
13710 <xs:annotation>
13711 <xs:documentation>
13712 The message displayed if users try to install a product with a lower version number
13713 when a product with a higher version is installed. Used only when AllowDowngrades
13714 is no (the default).
13715 </xs:documentation>
13716 </xs:annotation>
13717 </xs:attribute>
13718 <xs:attribute name="DisallowUpgradeErrorMessage" type="xs:string">
13719 <xs:annotation>
13720 <xs:documentation>
13721 The message displayed if users try to install a product with a higer version number
13722 when a product with a lower version is installed. Used only when Disallow
13723 is yes.
13724 </xs:documentation>
13725 </xs:annotation>
13726 </xs:attribute>
13727 <xs:attribute name="MigrateFeatures" type="YesNoTypeUnion">
13728 <xs:annotation>
13729 <xs:documentation>
13730 When set to yes (the default), the MigrateFeatureStates standard action will set the
13731 feature states of the upgrade product to those of the installed product.
13732
13733 When set to no, the installed features have no effect on the upgrade installation.
13734 </xs:documentation>
13735 </xs:annotation>
13736 </xs:attribute>
13737 <xs:attribute name="IgnoreLanguage" type="YesNoTypeUnion">
13738 <xs:annotation>
13739 <xs:documentation>
13740 When set to yes, the Upgrade table rows will match any product with the same UpgradeCode.
13741
13742 When set to no (the default), the Upgrade table rows will match only products with the
13743 same UpgradeCode and ProductLanguage.
13744 </xs:documentation>
13745 </xs:annotation>
13746 </xs:attribute>
13747 <xs:attribute name="IgnoreRemoveFailure" type="YesNoTypeUnion">
13748 <xs:annotation>
13749 <xs:documentation>
13750 When set to yes, failures removing the installed product during the upgrade will be
13751 ignored.
13752
13753 When set to no (the default), failures removing the installed product during the upgrade
13754 will be considered a failure and, depending on the scheduling, roll back the upgrade.
13755 </xs:documentation>
13756 </xs:annotation>
13757 </xs:attribute>
13758 <xs:attribute name="RemoveFeatures" type="xs:string">
13759 <xs:annotation>
13760 <xs:documentation>
13761 A formatted string that contains the list of features to remove from the installed
13762 product. The default is to remove all features. Note that if you use formatted property
13763 values that evaluate to an empty string, no features will be removed; only omitting
13764 this attribute defaults to removing all features.
13765 </xs:documentation>
13766 </xs:annotation>
13767 </xs:attribute>
13768 <xs:attribute name="Schedule" default="afterInstallValidate">
13769 <xs:annotation>
13770 <xs:documentation>
13771 Determines the scheduling of the RemoveExistingProducts standard action, which is when
13772 the installed product is removed. The default is "afterInstallValidate" which removes
13773 the installed product entirely before installing the upgrade product. It's slowest but
13774 gives the most flexibility in changing components and features in the upgrade product.
13775
13776 For more information, see <html:a href="https://learn.microsoft.com/en-us/windows/win32/msi/removeexistingproducts-action">RemoveExistingProducts</html:a>.
13777 </xs:documentation>
13778 </xs:annotation>
13779 <xs:simpleType>
13780 <xs:restriction base="xs:NMTOKEN">
13781 <xs:enumeration value="afterInstallValidate">
13782 <xs:annotation>
13783 <xs:documentation>
13784 (Default) Schedules RemoveExistingProducts after the InstallValidate standard
13785 action. This scheduling removes the installed product entirely before installing
13786 the upgrade product. It's slowest but gives the most flexibility in changing
13787 components and features in the upgrade product. Note that if the installation
13788 of the upgrade product fails, the machine will have neither version installed.
13789 </xs:documentation>
13790 </xs:annotation>
13791 </xs:enumeration>
13792 <xs:enumeration value="afterInstallInitialize">
13793 <xs:annotation>
13794 <xs:documentation>
13795 Schedules RemoveExistingProducts after the InstallInitialize standard action.
13796 This is similar to the afterInstallValidate scheduling, but if the installation
13797 of the upgrade product fails, Windows Installer also rolls back the removal of
13798 the installed product -- in other words, reinstalls it.
13799 </xs:documentation>
13800 </xs:annotation>
13801 </xs:enumeration>
13802 <xs:enumeration value="afterInstallExecute">
13803 <xs:annotation>
13804 <xs:documentation>
13805 Schedules RemoveExistingProducts between the InstallExecute and InstallFinalize standard actions.
13806 This scheduling installs the upgrade product "on top of" the installed product then lets
13807 RemoveExistingProducts uninstall any components that don't also exist in the upgrade product.
13808 Note that this scheduling requires strict adherence to the component rules because it relies
13809 on component reference counts to be accurate during installation of the upgrade product and
13810 removal of the installed product. For more information, see
13811 <html:a href="http://www.joyofsetup.com/2008/12/30/paying-for-upgrades/">Bob Arnson's blog post "Paying for Upgrades"</html:a> for details. If installation of the upgrade product fails, Windows Installer
13812 also rolls back the removal of the installed product -- in other words, reinstalls it.
13813 </xs:documentation>
13814 </xs:annotation>
13815 </xs:enumeration>
13816 <xs:enumeration value="afterInstallExecuteAgain">
13817 <xs:annotation>
13818 <xs:documentation>
13819 Schedules RemoveExistingProducts between the InstallExecuteAgain and InstallFinalize standard actions.
13820 This is identical to the afterInstallExecute scheduling but after the InstallExecuteAgain standard
13821 action instead of InstallExecute.
13822 </xs:documentation>
13823 </xs:annotation>
13824 </xs:enumeration>
13825 <xs:enumeration value="afterInstallFinalize">
13826 <xs:annotation>
13827 <xs:documentation>
13828 Schedules RemoveExistingProducts after the InstallFinalize standard action. This is similar to the
13829 afterInstallExecute and afterInstallExecuteAgain schedulings but takes place outside the
13830 installation transaction so if installation of the upgrade product fails, Windows Installer does
13831 not roll back the removal of the installed product, so the machine will have both versions
13832 installed.
13833 </xs:documentation>
13834 </xs:annotation>
13835 </xs:enumeration>
13836 </xs:restriction>
13837 </xs:simpleType>
13838 </xs:attribute>
13839 <xs:anyAttribute namespace="##other" processContents="lax">
13840 <xs:annotation>
13841 <xs:documentation>
13842 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13843 attributes at this point in the schema.
13844 </xs:documentation>
13845 </xs:annotation>
13846 </xs:anyAttribute>
13847 </xs:complexType>
13848 </xs:element>
13849 <xs:element name="ProductSearch">
13850 <xs:annotation>
13851 <xs:appinfo>
13852 <xse:msiRef table="Upgrade" href="https://learn.microsoft.com/en-us/windows/win32/msi/upgrade-table" />
13853 </xs:appinfo>
13854 </xs:annotation>
13855 <xs:complexType>
13856 <xs:attribute name="Minimum" type="xs:string">
13857 <xs:annotation>
13858 <xs:documentation>Specifies the lower bound on the range of product versions to be detected by FindRelatedProducts.</xs:documentation>
13859 </xs:annotation>
13860 </xs:attribute>
13861 <xs:attribute name="Maximum" type="xs:string">
13862 <xs:annotation>
13863 <xs:documentation>Specifies the upper boundary of the range of product versions detected by FindRelatedProducts.</xs:documentation>
13864 </xs:annotation>
13865 </xs:attribute>
13866 <xs:attribute name="Language" type="xs:string">
13867 <xs:annotation>
13868 <xs:documentation>Specifies the set of languages detected by FindRelatedProducts. Enter a list of numeric language identifiers (LANGID) separated by commas (,). Leave this value null to specify all languages. Set ExcludeLanguages to "yes" in order detect all languages, excluding the languages listed in this value.</xs:documentation>
13869 </xs:annotation>
13870 </xs:attribute>
13871 <xs:attribute name="IncludeMinimum" type="YesNoTypeUnion">
13872 <xs:annotation>
13873 <xs:documentation>Set to "no" to make the range of versions detected exclude the value specified in Minimum. This attribute is "yes" by default.</xs:documentation>
13874 </xs:annotation>
13875 </xs:attribute>
13876 <xs:attribute name="IncludeMaximum" type="YesNoTypeUnion">
13877 <xs:annotation>
13878 <xs:documentation>Set to "yes" to make the range of versions detected include the value specified in Maximum.</xs:documentation>
13879 </xs:annotation>
13880 </xs:attribute>
13881 <xs:attribute name="ExcludeLanguages" type="YesNoTypeUnion">
13882 <xs:annotation>
13883 <xs:documentation>Set to "yes" to detect all languages, excluding the languages listed in the Language attribute.</xs:documentation>
13884 </xs:annotation>
13885 </xs:attribute>
13886 <xs:attribute name="UpgradeCode" type="Guid" use="required">
13887 <xs:annotation>
13888 <xs:documentation>This value specifies the upgrade code for the products that are to be detected by the FindRelatedProducts action.</xs:documentation>
13889 </xs:annotation>
13890 </xs:attribute>
13891 <xs:anyAttribute namespace="##other" processContents="lax">
13892 <xs:annotation>
13893 <xs:documentation>
13894 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13895 attributes at this point in the schema.
13896 </xs:documentation>
13897 </xs:annotation>
13898 </xs:anyAttribute>
13899 </xs:complexType>
13900 </xs:element>
13901 <!-- - - - - - - - - - - Complex Type Definitions - - - - - - - - - - - -->
13902 <xs:complexType name="ActionModuleSequenceType">
13903 <xs:attribute name="After" type="xs:string">
13904 <xs:annotation>
13905 <xs:documentation>The name of an action that this action should come after.</xs:documentation>
13906 </xs:annotation>
13907 </xs:attribute>
13908 <xs:attribute name="Before" type="xs:string">
13909 <xs:annotation>
13910 <xs:documentation>The name of an action that this action should come before.</xs:documentation>
13911 </xs:annotation>
13912 </xs:attribute>
13913 <xs:attribute name="Condition" type="xs:string">
13914 <xs:annotation>
13915 <xs:documentation>The condition of the action.</xs:documentation>
13916 </xs:annotation>
13917 </xs:attribute>
13918 <xs:attribute name="Overridable" type="YesNoTypeUnion">
13919 <xs:annotation>
13920 <xs:documentation>
13921 If "yes", the sequencing of this action may be overridden by sequencing elsewhere.
13922 </xs:documentation>
13923 </xs:annotation>
13924 </xs:attribute>
13925 <xs:attribute name="Sequence" type="Integer">
13926 <xs:annotation>
13927 <xs:documentation>A value used to indicate the position of this action in a sequence.</xs:documentation>
13928 </xs:annotation>
13929 </xs:attribute>
13930 <xs:attribute name="Suppress" type="YesNoTypeUnion">
13931 <xs:annotation>
13932 <xs:documentation>If yes, this action will not occur.</xs:documentation>
13933 </xs:annotation>
13934 </xs:attribute>
13935 </xs:complexType>
13936 <xs:complexType name="ActionSequenceType">
13937 <xs:attribute name="Condition" type="xs:string">
13938 <xs:annotation>
13939 <xs:documentation>The condition of the action.</xs:documentation>
13940 </xs:annotation>
13941 </xs:attribute>
13942 <xs:attribute name="Sequence" type="Integer">
13943 <xs:annotation>
13944 <xs:documentation>A value used to indicate the position of this action in a sequence.</xs:documentation>
13945 </xs:annotation>
13946 </xs:attribute>
13947 <xs:attribute name="Suppress" type="YesNoTypeUnion">
13948 <xs:annotation>
13949 <xs:documentation>If yes, this action will not occur.</xs:documentation>
13950 </xs:annotation>
13951 </xs:attribute>
13952 </xs:complexType>
13953 <!-- - - - - - - - - - - Simple Type Definitions - - - - - - - - - - - - -->
13954 <xs:simpleType name="Guid">
13955 <xs:annotation>
13956 <xs:documentation>Values of this type will look like: "01234567-89AB-CDEF-0123-456789ABCDEF" or "{01234567-89AB-CDEF-0123-456789ABCDEF}". Also allows "PUT-GUID-HERE" for use in examples.</xs:documentation>
13957 </xs:annotation>
13958 <xs:restriction base="xs:string">
13959 <xs:pattern value="[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|\$\((var\.)?[_A-Za-z]{1}[0-9A-Za-z_\.]*\)|!\((loc|wix)\.[_A-Za-z]{1}[0-9A-Za-z_\.]*\)" />
13960 </xs:restriction>
13961 </xs:simpleType>
13962 <xs:simpleType name="AutogenGuid">
13963 <xs:annotation>
13964 <xs:documentation>Values of this type will look like: "01234567-89AB-CDEF-0123-456789ABCDEF" or "{01234567-89AB-CDEF-0123-456789ABCDEF}". A GUID can be auto-generated by setting the value to "*". Also allows "PUT-GUID-HERE" for use in examples.</xs:documentation>
13965 </xs:annotation>
13966 <xs:restriction base="xs:string">
13967 <xs:pattern value="[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|\$\((var\.)?[_A-Za-z]{1}[0-9A-Za-z_\.]*\)|!\((loc|wix)\.[_A-Za-z]{1}[0-9A-Za-z_\.]*\)|\*" />
13968 </xs:restriction>
13969 </xs:simpleType>
13970 <xs:simpleType name="BitnessTypeUnion">
13971 <xs:annotation>
13972 <xs:documentation>Values of this type will be "default", "always32" or "always64".</xs:documentation>
13973 </xs:annotation>
13974 <xs:union memberTypes="BitnessType PreprocessorVariables"/>
13975 </xs:simpleType>
13976 <xs:simpleType name="BitnessType">
13977 <xs:annotation>
13978 <xs:documentation>Values of this type will be "default", "always32" or "always64".</xs:documentation>
13979 </xs:annotation>
13980 <xs:restriction base="xs:NMTOKEN">
13981 <xs:enumeration value="default" />
13982 <xs:enumeration value="always32" />
13983 <xs:enumeration value="always64" />
13984 </xs:restriction>
13985 </xs:simpleType>
13986 <xs:simpleType name="BurnContainerType">
13987 <xs:annotation>
13988 <xs:documentation>Values of this type will either be "attached" or "detached".</xs:documentation>
13989 </xs:annotation>
13990 <xs:restriction base="xs:NMTOKEN">
13991 <xs:enumeration value="attached" />
13992 <xs:enumeration value="detached" />
13993 </xs:restriction>
13994 </xs:simpleType>
13995 <xs:simpleType name="BurnExeProtocolType">
13996 <xs:annotation>
13997 <xs:documentation>The list of communcation protocols with executable packages Burn supports.
13998 </xs:documentation>
13999 </xs:annotation>
14000 <xs:restriction base="xs:NMTOKEN">
14001 <xs:enumeration value="none">
14002 <xs:annotation>
14003 <xs:documentation>
14004 The executable package does not support a communication protocol.
14005 </xs:documentation>
14006 </xs:annotation>
14007 </xs:enumeration>
14008 <xs:enumeration value="burn">
14009 <xs:annotation>
14010 <xs:documentation>
14011 The executable package implements the Burn communication protocol.
14012 </xs:documentation>
14013 </xs:annotation>
14014 </xs:enumeration>
14015 <xs:enumeration value="netfx4">
14016 <xs:annotation>
14017 <xs:documentation>
14018 The executable package implements the .NET Framework v4.0 communication protocol.
14019 </xs:documentation>
14020 </xs:annotation>
14021 </xs:enumeration>
14022 </xs:restriction>
14023 </xs:simpleType>
14024 <xs:simpleType name="ComponentGuid">
14025 <xs:annotation>
14026 <xs:documentation>Values of this type must be a GUID, with or without braces: `01234567-89AB-CDEF-0123-456789ABCDEF` or `{01234567-89AB-CDEF-0123-456789ABCDEF}`. `PUT-GUID-HERE` can be used for sample code. Empty values are also supported.</xs:documentation>
14027 </xs:annotation>
14028 <xs:restriction base="xs:string">
14029 <xs:pattern value="[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(\d+\-)?HERE|\$\((var\.)?[_A-Za-z]{1}[0-9A-Za-z_\.]*\)|!\((loc|wix)\.[_A-Za-z]{1}[0-9A-Za-z_\.]*\)|\*|^$" />
14030 </xs:restriction>
14031 </xs:simpleType>
14032 <xs:simpleType name="Integer">
14033 <xs:annotation>
14034 <xs:documentation>Values of this type must be a non-negative integer or a preprocessor variable with the format `$(Variable)` or `$(var.Variable)`.</xs:documentation>
14035 </xs:annotation>
14036 <xs:restriction base="xs:string">
14037 <xs:pattern value="[\d]+|\$\((var\.)?[_A-Za-z]{1}[0-9A-Za-z_\.]*\)" />
14038 </xs:restriction>
14039 </xs:simpleType>
14040 <xs:simpleType name="LocalizableInteger">
14041 <xs:annotation>
14042 <xs:documentation>Values of this type must be a non-negative integer or a localization variable with the format `!(loc.Variable)` where `Variable` is the name of the localization variable.</xs:documentation>
14043 </xs:annotation>
14044 <xs:restriction base="xs:string">
14045 <xs:pattern value="[\d]+|\$\((var\.)?[_A-Za-z]{1}[_A-Za-z0-9\.]*\)|!\((loc|bind)\.[_A-Za-z]{1}[_A-Za-z0-9\.]*\)" />
14046 </xs:restriction>
14047 </xs:simpleType>
14048 <xs:simpleType name="NegativeInteger">
14049 <xs:annotation>
14050 <xs:documentation>Values of this allow negative integer or a preprocessor variable with the format `$(Variable)` or `$(var.Variable).</xs:documentation>
14051 </xs:annotation>
14052 <xs:restriction base="xs:string">
14053 <xs:pattern value="-?[\d]+|\$\((var\.)?[_A-Za-z]{1}[0-9A-Za-z_\.]*\)" />
14054 </xs:restriction>
14055 </xs:simpleType>
14056 <xs:simpleType name="ShortFileNameType">
14057 <xs:annotation>
14058 <xs:documentation>Values of this type will look like: "FileName.ext". Only one period is allowed. The following characters are not allowed: \ ? | &gt; : / * " + , ; = [ ] &lt;, or whitespace. The name cannot exceed 8 characters and the extension cannot exceed 3 characters. The value could also be a localization variable with the format !(loc.VARIABLE).</xs:documentation>
14059 </xs:annotation>
14060 <xs:restriction base="xs:string">
14061 <xs:pattern value="[^\\\?|&gt;&lt;:/\*&quot;\+,;=\[\]\. ]{1,8}(\.[^\\\?|&gt;&lt;:/\*&quot;\+,;=\[\]\. ]{0,3})?|([!$])\(loc\.[_A-Za-z]{1}[0-9A-Za-z_\.]*\)" />
14062 </xs:restriction>
14063 </xs:simpleType>
14064 <xs:simpleType name="LongFileNameType">
14065 <xs:annotation>
14066 <xs:documentation>Values of this type will look like: "Long File Name.extension". Legal long names contain no more than 260 characters and must contain at least one non-period character. The following characters are not allowed: \ ? | &gt; : / * " or &lt;. The name must be shorter than 260 characters. The value could also be a localization variable with the format !(loc.VARIABLE).</xs:documentation>
14067 </xs:annotation>
14068 <xs:restriction base="xs:string">
14069 <xs:pattern value="[^\\\?|&gt;&lt;:/\*&quot;]{1,259}|([!$])\(loc\.[_A-Za-z]{1}[0-9A-Za-z_\.]*\)" />
14070 </xs:restriction>
14071 </xs:simpleType>
14072 <xs:simpleType name="VersionType">
14073 <xs:annotation>
14074 <xs:documentation>Values of this type will look like: "x.x.x.x" where x is an integer from 0 to 65534.</xs:documentation>
14075 </xs:annotation>
14076 <xs:restriction base="xs:string">
14077 <xs:pattern value="(\d{1,5}\.){3}\d{1,5}" />
14078 </xs:restriction>
14079 </xs:simpleType>
14080 <xs:simpleType name="StrictThreePartVersionType">
14081 <xs:annotation>
14082 <xs:documentation>Values of this type will look exactly like: "x.x.x" where x is an integer.</xs:documentation>
14083 </xs:annotation>
14084 <xs:restriction base="xs:string">
14085 <xs:pattern value="(\d+\.){2}\d+|\$\((var\.)?[_A-Za-z]{1}[0-9A-Za-z_\.]*\)|!\((loc|bind)\.[_A-Za-z]{1}[0-9A-Za-z_\.]*\)" />
14086 </xs:restriction>
14087 </xs:simpleType>
14088 <xs:simpleType name="WixVersionType">
14089 <xs:annotation>
14090 <xs:documentation>Values of this type will be a 1-part, 2-part, 3-part or 4-part version number or a semantic version.</xs:documentation>
14091 </xs:annotation>
14092 <xs:restriction base="xs:string">
14093 <xs:pattern value="v?(\d+\.){0,3}\d+(-[\w.\d]+)?||\$\((var\.)?[_A-Za-z]{1}[0-9A-Za-z_\.]*\)|!\((loc|bind)\.[_A-Za-z]{1}[0-9A-Za-z_\.]*\)" />
14094 </xs:restriction>
14095 </xs:simpleType>
14096 <xs:simpleType name="WildCardShortFileNameType">
14097 <xs:annotation>
14098 <xs:documentation>Values of this type will look like: "File?.*". Only one period is allowed. The following characters are not allowed: \ | &gt; : / " + , ; = [ ] &lt;, or whitespace. The name cannot be longer than 8 characters and the extension cannot exceed 3 characters. The value could also be a localization variable with the format !(loc.VARIABLE).</xs:documentation>
14099 </xs:annotation>
14100 <xs:restriction base="xs:string">
14101 <xs:pattern value="[^\\\|&gt;&lt;:/&quot;\+,;=\[\]\. ]{1,16}(\.[^\\\|&gt;&lt;:/&quot;\+,;=\[\]\. ]{0,6})?|([!$])\(loc\.[_A-Za-z]{1}[0-9A-Za-z_\.]*\)" />
14102 </xs:restriction>
14103 </xs:simpleType>
14104 <xs:simpleType name="WildCardLongFileNameType">
14105 <xs:annotation>
14106 <xs:documentation>Values of this type will look like: "Long File N?me.extension*". Legal long names contain no more than 260 characters and must contain at least one non-period character. The following characters are not allowed: \ | &gt; : / " or &lt;. The name must be shorter than 260 characters. The value could also be a localization variable with the format !(loc.VARIABLE).</xs:documentation>
14107 </xs:annotation>
14108 <xs:restriction base="xs:string">
14109 <xs:pattern value="[^\\\|&gt;&lt;:/&quot;]{1,259}|([!$])\(loc\.[_A-Za-z]{1}[0-9A-Za-z_\.]*\)" />
14110 </xs:restriction>
14111 </xs:simpleType>
14112 <xs:simpleType name="HexType">
14113 <xs:annotation>
14114 <xs:documentation>This type supports any hexadecimal number. Both upper and lower case are supported for letters appearing in the number. This type also includes the empty string: "".</xs:documentation>
14115 </xs:annotation>
14116 <xs:restriction base="xs:string">
14117 <xs:pattern value="[0-9A-Fa-f]*" />
14118 </xs:restriction>
14119 </xs:simpleType>
14120 <xs:simpleType name="StandardDirectoryTypeUnion">
14121 <xs:annotation>
14122 <xs:documentation>A Windows Installer standard directory.</xs:documentation>
14123 </xs:annotation>
14124 <xs:union memberTypes="StandardDirectoryType PreprocessorVariables"/>
14125 </xs:simpleType>
14126 <xs:simpleType name="StandardDirectoryType">
14127 <xs:annotation>
14128 <xs:documentation>A Windows Installer standard directory.</xs:documentation>
14129 </xs:annotation>
14130 <xs:restriction base="xs:NMTOKEN">
14131 <xs:enumeration value="TARGETDIR" />
14132 <xs:enumeration value="AdminToolsFolder" />
14133 <xs:enumeration value="AppDataFolder" />
14134 <xs:enumeration value="CommonAppDataFolder" />
14135 <xs:enumeration value="CommonFilesFolder" />
14136 <xs:enumeration value="CommonFiles64Folder" />
14137 <xs:enumeration value="CommonFiles6432Folder" />
14138 <xs:enumeration value="DesktopFolder" />
14139 <xs:enumeration value="FavoritesFolder" />
14140 <xs:enumeration value="FontsFolder" />
14141 <xs:enumeration value="LocalAppDataFolder" />
14142 <xs:enumeration value="MyPicturesFolder" />
14143 <xs:enumeration value="NetHoodFolder" />
14144 <xs:enumeration value="PersonalFolder" />
14145 <xs:enumeration value="PrintHoodFolder" />
14146 <xs:enumeration value="ProgramFilesFolder" />
14147 <xs:enumeration value="ProgramFiles64Folder" />
14148 <xs:enumeration value="ProgramFiles6432Folder" />
14149 <xs:enumeration value="ProgramMenuFolder" />
14150 <xs:enumeration value="PerUserProgramFilesFolder" />
14151 <xs:enumeration value="RecentFolder" />
14152 <xs:enumeration value="SendToFolder" />
14153 <xs:enumeration value="StartMenuFolder" />
14154 <xs:enumeration value="StartupFolder" />
14155 <xs:enumeration value="SystemFolder" />
14156 <xs:enumeration value="System16Folder" />
14157 <xs:enumeration value="System64Folder" />
14158 <xs:enumeration value="System6432Folder" />
14159 <xs:enumeration value="TempFolder" />
14160 <xs:enumeration value="TemplateFolder" />
14161 <xs:enumeration value="WindowsFolder" />
14162 </xs:restriction>
14163 </xs:simpleType>
14164 <xs:simpleType name="PackageScopeTypeUnion">
14165 <xs:annotation>
14166 <xs:documentation>Use this attribute to specify the installation scope of this package: per-machine, per-user, or a choice of either.</xs:documentation>
14167 </xs:annotation>
14168 <xs:union memberTypes="PackageScopeType PreprocessorVariables"/>
14169 </xs:simpleType>
14170 <xs:simpleType name="PackageScopeType">
14171 <xs:annotation>
14172 <xs:documentation>Use this attribute to specify the installation scope of this package: per-machine, per-user, or a choice of either.</xs:documentation>
14173 </xs:annotation>
14174 <xs:restriction base="xs:NMTOKEN">
14175 <xs:enumeration value="perMachine">
14176 <xs:annotation>
14177 <xs:documentation>
14178 Set this value to declare that the package is a per-machine installation and requires elevated privileges to install.
14179 Sets the ALLUSERS property to 1.
14180 </xs:documentation>
14181 </xs:annotation>
14182 </xs:enumeration>
14183 <xs:enumeration value="perUser">
14184 <xs:annotation>
14185 <xs:documentation>
14186 Set this value to declare that the package is a per-user installation and does not require elevated privileges to install.
14187 Sets the package's InstallPrivileges attribute to "limited."
14188 </xs:documentation>
14189 </xs:annotation>
14190 </xs:enumeration>
14191 <xs:enumeration value="perUserOrMachine">
14192 <xs:annotation>
14193 <xs:documentation>
14194 Set this value to declare that the package is [dual-purpose that can install per-user or per-machine](https://learn.microsoft.com/en-us/windows/win32/msi/single-package-authoring).
14195 Sets the ALLUSERS property to 2 and MSIINSTALLPERUSER property to 1.
14196 </xs:documentation>
14197 </xs:annotation>
14198 </xs:enumeration>
14199 </xs:restriction>
14200 </xs:simpleType>
14201 <xs:simpleType name="UpgradeStrategyTypeUnion">
14202 <xs:annotation>
14203 <xs:documentation>Use this attribute to specify the upgrade strategy of this package: major upgrade or none.</xs:documentation>
14204 </xs:annotation>
14205 <xs:union memberTypes="UpgradeStrategyType PreprocessorVariables"/>
14206 </xs:simpleType>
14207 <xs:simpleType name="UpgradeStrategyType">
14208 <xs:annotation>
14209 <xs:documentation>Use this attribute to specify the installation scope of this package: major upgrade or none.</xs:documentation>
14210 </xs:annotation>
14211 <xs:restriction base="xs:NMTOKEN">
14212 <xs:enumeration value="majorUpgrade">
14213 <xs:annotation>
14214 <xs:documentation>
14215 Set this value to declare that the package will be upgraded via major upgrades.
14216 You can author a major upgrade with your preferred options or a default major
14217 upgrade will be provided if you don't. The UpgradeCode attribute is required.
14218 </xs:documentation>
14219 </xs:annotation>
14220 </xs:enumeration>
14221 <xs:enumeration value="none">
14222 <xs:annotation>
14223 <xs:documentation>
14224 Set this value to declare that the package will not support major upgrades.
14225 This value is _not_ recommended because it means a product cannot be serviced
14226 in the event of major bug or security vulnerability.
14227 </xs:documentation>
14228 </xs:annotation>
14229 </xs:enumeration>
14230 </xs:restriction>
14231 </xs:simpleType>
14232 <xs:simpleType name="YesNoTypeUnion">
14233 <xs:annotation>
14234 <xs:documentation>Values of this type will either be "yes"/"true" or "no"/"false".</xs:documentation>
14235 </xs:annotation>
14236 <xs:union memberTypes="YesNoType PreprocessorVariables"/>
14237 </xs:simpleType>
14238 <xs:simpleType name="YesNoType">
14239 <xs:annotation>
14240 <xs:documentation>Values of this type will either be "yes"/"true" or "no"/"false".</xs:documentation>
14241 </xs:annotation>
14242 <xs:restriction base="xs:NMTOKEN">
14243 <xs:enumeration value="no" />
14244 <xs:enumeration value="false" />
14245 <xs:enumeration value="yes" />
14246 <xs:enumeration value="true" />
14247 </xs:restriction>
14248 </xs:simpleType>
14249 <xs:simpleType name="YesNoButtonTypeUnion">
14250 <xs:annotation>
14251 <xs:documentation>Values of this type will either be "button", "yes"/"true", or "no"/"false".</xs:documentation>
14252 </xs:annotation>
14253 <xs:union memberTypes="YesNoButtonType PreprocessorVariables"/>
14254 </xs:simpleType>
14255 <xs:simpleType name="YesNoButtonType">
14256 <xs:annotation>
14257 <xs:documentation>Values of this type will either be "button", "yes"/"true", or "no"/"false".</xs:documentation>
14258 </xs:annotation>
14259 <xs:restriction base="xs:NMTOKEN">
14260 <xs:enumeration value="no" />
14261 <xs:enumeration value="false" />
14262 <xs:enumeration value="yes" />
14263 <xs:enumeration value="true" />
14264 <xs:enumeration value="button" />
14265 </xs:restriction>
14266 </xs:simpleType>
14267 <xs:simpleType name="YesNoDefaultTypeUnion">
14268 <xs:annotation>
14269 <xs:documentation>Values of this type will either be "default", "yes", or "no".</xs:documentation>
14270 </xs:annotation>
14271 <xs:union memberTypes="YesNoDefaultType PreprocessorVariables"/>
14272 </xs:simpleType>
14273 <xs:simpleType name="YesNoDefaultType">
14274 <xs:annotation>
14275 <xs:documentation>Values of this type will either be "default", "yes", or "no".</xs:documentation>
14276 </xs:annotation>
14277 <xs:restriction base="xs:NMTOKEN">
14278 <xs:enumeration value="default" />
14279 <xs:enumeration value="no" />
14280 <xs:enumeration value="false" />
14281 <xs:enumeration value="yes" />
14282 <xs:enumeration value="true" />
14283 </xs:restriction>
14284 </xs:simpleType>
14285 <xs:simpleType name="KeepRemoveForceTypeUnion">
14286 <xs:annotation>
14287 <xs:documentation>Values of this type will either be "force", "keep", or "remove".</xs:documentation>
14288 </xs:annotation>
14289 <xs:union memberTypes="KeepRemoveForceType PreprocessorVariables"/>
14290 </xs:simpleType>
14291 <xs:simpleType name="KeepRemoveForceType">
14292 <xs:annotation>
14293 <xs:documentation>Values of this type will either be "force", "keep", or "remove".</xs:documentation>
14294 </xs:annotation>
14295 <xs:restriction base="xs:NMTOKEN">
14296 <xs:enumeration value="force">
14297 <xs:annotation>
14298 <xs:documentation>
14299 Always cache the package during Cache, Install, Modify, Repair, and Layout.
14300 </xs:documentation>
14301 </xs:annotation>
14302 </xs:enumeration>
14303 <xs:enumeration value="keep">
14304 <xs:annotation>
14305 <xs:documentation>
14306 Keep the package cached when the package is requested to be present.
14307 </xs:documentation>
14308 </xs:annotation>
14309 </xs:enumeration>
14310 <xs:enumeration value="remove">
14311 <xs:annotation>
14312 <xs:documentation>
14313 Always uncache the package after Cache, Install, Modify, Repair, Uninstall, and Layout.
14314 </xs:documentation>
14315 </xs:annotation>
14316 </xs:enumeration>
14317 </xs:restriction>
14318 </xs:simpleType>
14319 <xs:simpleType name="RegistryRootType">
14320 <xs:annotation>
14321 <xs:documentation>Values of this type represent possible registry roots.</xs:documentation>
14322 </xs:annotation>
14323 <xs:restriction base="xs:NMTOKEN">
14324 <xs:enumeration value="HKMU">
14325 <xs:annotation>
14326 <xs:documentation>
14327 A per-user installation will make the operation occur under HKEY_CURRENT_USER.
14328 A per-machine installation will make the operation occur under HKEY_LOCAL_MACHINE.
14329 </xs:documentation>
14330 </xs:annotation>
14331 </xs:enumeration>
14332 <xs:enumeration value="HKCR">
14333 <xs:annotation>
14334 <xs:documentation>
14335 Operation occurs under HKEY_CLASSES_ROOT. When using Windows 2000 or later, the installer writes or removes the value
14336 from the HKCU\Software\Classes hive during per-user installations. When using Windows 2000 or later operating systems,
14337 the installer writes or removes the value from the HKLM\Software\Classes hive during per-machine installations.
14338 </xs:documentation>
14339 </xs:annotation>
14340 </xs:enumeration>
14341 <xs:enumeration value="HKCU">
14342 <xs:annotation>
14343 <xs:documentation>
14344 Operation occurs under HKEY_CURRENT_USER. It is recommended to set the KeyPath attribute to `yes` when setting this value for writing values
14345 in order to ensure that the installer writes the necessary registry entries when there are multiple users on the same computer.
14346 </xs:documentation>
14347 </xs:annotation>
14348 </xs:enumeration>
14349 <xs:enumeration value="HKLM">
14350 <xs:annotation>
14351 <xs:documentation>
14352 Operation occurs under HKEY_LOCAL_MACHINE.
14353 </xs:documentation>
14354 </xs:annotation>
14355 </xs:enumeration>
14356 <xs:enumeration value="HKU">
14357 <xs:annotation>
14358 <xs:documentation>
14359 Operation occurs under HKEY_USERS.
14360 </xs:documentation>
14361 </xs:annotation>
14362 </xs:enumeration>
14363 </xs:restriction>
14364 </xs:simpleType>
14365 <xs:simpleType name="ExitType">
14366 <xs:annotation>
14367 <xs:documentation>Value indicates that this action is executed if the installer returns the associated exit type. Each exit type can be used with no more than one action.
14368 Multiple actions can have exit types assigned, but every action and exit type must be different. Exit types are typically used with dialog boxes.</xs:documentation>
14369 </xs:annotation>
14370 <xs:restriction base="xs:NMTOKEN">
14371 <xs:enumeration value="success" />
14372 <xs:enumeration value="cancel" />
14373 <xs:enumeration value="error" />
14374 <xs:enumeration value="suspend" />
14375 </xs:restriction>
14376 </xs:simpleType>
14377 <xs:simpleType name="InstallUninstallType">
14378 <xs:annotation>
14379 <xs:documentation>Specifies whether an action occur on install, uninstall or both.</xs:documentation>
14380 </xs:annotation>
14381 <xs:restriction base="xs:NMTOKEN">
14382 <xs:enumeration value="install">
14383 <xs:annotation>
14384 <xs:documentation>
14385 The action should happen during install (msiInstallStateLocal or msiInstallStateSource).
14386 </xs:documentation>
14387 </xs:annotation>
14388 </xs:enumeration>
14389 <xs:enumeration value="uninstall">
14390 <xs:annotation>
14391 <xs:documentation>
14392 The action should happen during uninstall (msiInstallStateAbsent).
14393 </xs:documentation>
14394 </xs:annotation>
14395 </xs:enumeration>
14396 <xs:enumeration value="both">
14397 <xs:annotation>
14398 <xs:documentation>
14399 The action should happen during both install and uninstall.
14400 </xs:documentation>
14401 </xs:annotation>
14402 </xs:enumeration>
14403 </xs:restriction>
14404 </xs:simpleType>
14405 <xs:simpleType name="SequenceType">
14406 <xs:annotation>
14407 <xs:documentation>
14408 Controls which sequences the item assignment is sequenced in.
14409 </xs:documentation>
14410 </xs:annotation>
14411 <xs:restriction base="xs:NMTOKEN">
14412 <xs:enumeration value="both">
14413 <xs:annotation>
14414 <xs:documentation>
14415 Schedules the assignment in the InstallUISequence and the InstallExecuteSequence.
14416 </xs:documentation>
14417 </xs:annotation>
14418 </xs:enumeration>
14419 <xs:enumeration value="first">
14420 <xs:annotation>
14421 <xs:documentation>
14422 Schedules the assignment to run in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped.
14423 </xs:documentation>
14424 </xs:annotation>
14425 </xs:enumeration>
14426 <xs:enumeration value="execute">
14427 <xs:annotation>
14428 <xs:documentation>
14429 Schedules the assignment only in the the InstallExecuteSequence.
14430 </xs:documentation>
14431 </xs:annotation>
14432 </xs:enumeration>
14433 <xs:enumeration value="ui">
14434 <xs:annotation>
14435 <xs:documentation>
14436 Schedules the assignment only in the the InstallUISequence.
14437 </xs:documentation>
14438 </xs:annotation>
14439 </xs:enumeration>
14440 </xs:restriction>
14441 </xs:simpleType>
14442 <xs:simpleType name="CompressionLevelTypeUnion">
14443 <xs:annotation>
14444 <xs:documentation>
14445 Indicates the compression level for a cabinet.
14446 </xs:documentation>
14447 </xs:annotation>
14448 <xs:union memberTypes="CompressionLevelType PreprocessorVariables"/>
14449 </xs:simpleType>
14450
14451 <xs:simpleType name="CompressionLevelType">
14452 <xs:annotation>
14453 <xs:documentation>
14454 Indicates the compression level for a cabinet.
14455 </xs:documentation>
14456 </xs:annotation>
14457 <xs:restriction base="xs:NMTOKEN">
14458 <xs:enumeration value="high" />
14459 <xs:enumeration value="low" />
14460 <xs:enumeration value="medium" />
14461 <xs:enumeration value="mszip" />
14462 <xs:enumeration value="none" />
14463 </xs:restriction>
14464 </xs:simpleType>
14465 <xs:simpleType name="PreprocessorVariables">
14466 <xs:annotation>
14467 <xs:documentation>A type that represents 1 or more preprocessor variables.</xs:documentation>
14468 </xs:annotation>
14469 <xs:restriction base="xs:string">
14470 <xs:pattern value="(\$\((\w+\.)?(\w[\w()]*)\))+" />
14471 </xs:restriction>
14472 </xs:simpleType>
14473 <xs:simpleType name="DiskIdType">
14474 <xs:annotation>
14475 <xs:documentation>Values of this type must be an integer or the value of one or more preprocessor variables with the format `$(Variable)` or `$(var.Variable)`.</xs:documentation>
14476 </xs:annotation>
14477 <xs:restriction base="xs:string">
14478 <xs:pattern value="((\d+)|(\$\(\w+\.(\w|[.])+\)))+" />
14479 </xs:restriction>
14480 </xs:simpleType>
14481 <xs:simpleType name="VariableType">
14482 <xs:annotation>
14483 <xs:documentation>Indicates the type of a Variable.</xs:documentation>
14484 </xs:annotation>
14485 <xs:restriction base="xs:NMTOKEN">
14486 <xs:enumeration value="string">
14487 <xs:annotation>
14488 <xs:documentation>A literal string.</xs:documentation>
14489 </xs:annotation>
14490 </xs:enumeration>
14491 <xs:enumeration value="formatted">
14492 <xs:annotation>
14493 <xs:documentation>A string that may contain Variables.</xs:documentation>
14494 </xs:annotation>
14495 </xs:enumeration>
14496 <xs:enumeration value="numeric" />
14497 <xs:enumeration value="version" />
14498 </xs:restriction>
14499 </xs:simpleType>
14500
14501 <xs:element name="Provides">
14502 <xs:annotation>
14503 <xs:documentation>
14504 Describes the information for this product or feature that serves as a dependency of other products or features.
14505 </xs:documentation>
14506 <xs:appinfo>
14507 <xse:remarks>
14508 This element is required for any product, feature, or bundle that will use the Dependency feature to properly reference count
14509 other products or features. It should be authored into a component that is always installed and removed with the
14510 product or features that contain it. This guarantees that product dependencies are not removed before those products that
14511 depend on them.
14512
14513 The @Key attribute should identify a version range for your product that you guarantee will be backward compatible.
14514 This key is designed to persist throughout compatible upgrades so that dependent products do not have to be reinstalled
14515 and will not prevent your product from being upgraded. If this attribute is not authored, the value is the ProductCode
14516 and will not automatically support upgrades.
14517
14518 By default this uses the Package/@ProductCode attribute value, which may be automatically generated.
14519 </xse:remarks>
14520 <xse:howtoRef href="author_product_dependencies.html">How To: Author product dependencies</xse:howtoRef>
14521 </xs:appinfo>
14522 </xs:annotation>
14523 <xs:complexType>
14524 <xs:choice minOccurs="0" maxOccurs="unbounded">
14525 <xs:element ref="Requires" />
14526 <xs:element ref="RequiresRef" />
14527 </xs:choice>
14528 <xs:attribute name="Id" type="xs:string">
14529 <xs:annotation>
14530 <xs:documentation>
14531 Dependency provider identity. If this attribute is not specified, an identifier will be generated automatically.
14532 </xs:documentation>
14533 </xs:annotation>
14534 </xs:attribute>
14535 <xs:attribute name="Key" type="xs:string">
14536 <xs:annotation>
14537 <xs:documentation>
14538 Optional unique registry key name that identifies a product version range on which other products can depend.
14539 This attribute is required in package authoring, but optional for components.
14540 </xs:documentation>
14541 </xs:annotation>
14542 </xs:attribute>
14543 <xs:attribute name="Version" type="WixVersionType">
14544 <xs:annotation>
14545 <xs:documentation>
14546 The version of the package. For MSI packages, the ProductVersion will be used by default
14547 and this attribute should not be specified.
14548 </xs:documentation>
14549 </xs:annotation>
14550 </xs:attribute>
14551 <xs:attribute name="DisplayName" type="xs:string">
14552 <xs:annotation>
14553 <xs:documentation>
14554 Optional display name of the package. For MSI packages, the ProductName will be used by default.
14555 </xs:documentation>
14556 </xs:annotation>
14557 </xs:attribute>
14558 <xs:anyAttribute namespace="##other" processContents="lax">
14559 <xs:annotation>
14560 <xs:documentation>
14561 Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema.
14562 </xs:documentation>
14563 </xs:annotation>
14564 </xs:anyAttribute>
14565 </xs:complexType>
14566 </xs:element>
14567 <xs:element name="Requires">
14568 <xs:annotation>
14569 <xs:documentation>
14570 Describes a dependency on a provider for the current component or package.
14571 </xs:documentation>
14572 <xs:appinfo>
14573 <xse:remarks>
14574 <html:p>
14575 This element declares a dependency on any product that uses the Provides element. If that product is uninstalled
14576 before a product that requires it, the uninstall will err or warn the user that other products are installed
14577 which depend on that product. This behavior can be modified by changing the attribute values on the Requires element.
14578 </html:p>
14579 <html:p>
14580 If you do not nest this element under a Provides element, you must specify the @Id attribute
14581 so that it can be referenced by a RequiresRef element nested under a Provides element.
14582 </html:p>
14583 </xse:remarks>
14584 <xse:seeAlso ref="RequiresRef" />
14585 <xse:howtoRef href="author_product_dependencies.html">How To: Author product dependencies</xse:howtoRef>
14586 </xs:appinfo>
14587 </xs:annotation>
14588 <xs:complexType>
14589 <xs:attribute name="Id" type="xs:string">
14590 <xs:annotation>
14591 <xs:documentation>
14592 Dependency requirement identity. If this attribute is not specified, an identifier will be generated automatically.
14593 If this element is not authored under a Provides element, this attribute is required.
14594 </xs:documentation>
14595 </xs:annotation>
14596 </xs:attribute>
14597 <xs:attribute name="ProviderKey" type="xs:string" use="required">
14598 <xs:annotation>
14599 <xs:documentation>
14600 The unique registry key name for the dependency provider to require during installation of this product.
14601 </xs:documentation>
14602 </xs:annotation>
14603 </xs:attribute>
14604 <xs:attribute name="Minimum" type="WixVersionType">
14605 <xs:annotation>
14606 <xs:documentation>
14607 The minimum version of the dependency provider required to be installed. The default is unbound.
14608 </xs:documentation>
14609 </xs:annotation>
14610 </xs:attribute>
14611 <xs:attribute name="Maximum" type="WixVersionType">
14612 <xs:annotation>
14613 <xs:documentation>
14614 The maximum version of the dependency provider required to be installed. The default is unbound.
14615 </xs:documentation>
14616 </xs:annotation>
14617 </xs:attribute>
14618 <xs:attribute name="IncludeMinimum" type="YesNoType">
14619 <xs:annotation>
14620 <xs:documentation>
14621 Set to "yes" to make the range of dependency provider versions required include the value specified in Minimum.
14622 </xs:documentation>
14623 </xs:annotation>
14624 </xs:attribute>
14625 <xs:attribute name="IncludeMaximum" type="YesNoType">
14626 <xs:annotation>
14627 <xs:documentation>
14628 Set to "yes" to make the range of dependency provider versions required include the value specified in Maximum.
14629 </xs:documentation>
14630 </xs:annotation>
14631 </xs:attribute>
14632 <xs:anyAttribute namespace="##other" processContents="lax">
14633 <xs:annotation>
14634 <xs:documentation>
14635 Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema.
14636 </xs:documentation>
14637 </xs:annotation>
14638 </xs:anyAttribute>
14639 </xs:complexType>
14640 </xs:element>
14641 <xs:element name="RequiresRef">
14642 <xs:annotation>
14643 <xs:documentation>
14644 References existing authoring for a dependency on a provider for the current component or package.
14645 </xs:documentation>
14646 <xs:appinfo>
14647 <xse:remarks>
14648 <html:p>
14649 This element references a dependency on any product that uses the Provides element. If that product is uninstalled
14650 before a product that requires it, the uninstall will err or warn the user that other products are installed
14651 which depend on that product. This behavior can be modified by changing the attribute values on the Requires element.
14652 </html:p>
14653 </xse:remarks>
14654 <xse:seeAlso ref="Requires" />
14655 <xse:howtoRef href="author_product_dependencies.html">How To: Author product dependencies</xse:howtoRef>
14656 </xs:appinfo>
14657 </xs:annotation>
14658 <xs:complexType>
14659 <xs:attribute name="Id" type="xs:string" use="required">
14660 <xs:annotation>
14661 <xs:documentation>
14662 The identifier of the Requires element to reference.
14663 </xs:documentation>
14664 </xs:annotation>
14665 </xs:attribute>
14666 <xs:anyAttribute namespace="##other" processContents="lax">
14667 <xs:annotation>
14668 <xs:documentation>
14669 Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema.
14670 </xs:documentation>
14671 </xs:annotation>
14672 </xs:anyAttribute>
14673 </xs:complexType>
14674 </xs:element>
14675</xs:schema>
diff --git a/src/xsd/wixloc.xsd b/src/xsd/wixloc.xsd
new file mode 100644
index 00000000..2f67b16c
--- /dev/null
+++ b/src/xsd/wixloc.xsd
@@ -0,0 +1,167 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
4
5<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
6 xmlns:xse="http://wixtoolset.org/schemas/XmlSchemaExtension"
7 xmlns:html="http://www.w3.org/1999/xhtml"
8 targetNamespace="http://wixtoolset.org/schemas/v4/wxl"
9 xmlns="http://wixtoolset.org/schemas/v4/wxl">
10 <xs:annotation>
11 <xs:documentation>
12 Schema for describing WiX Localization files (.wxl).
13 </xs:documentation>
14 </xs:annotation>
15
16 <xs:element name="WixLocalization">
17 <xs:annotation>
18 <xs:appinfo>
19 <xse:remarks>
20 <html:p>You can specify any valid Windows code page by integer like 1252, or by web name like Windows-1252 or iso-8859-1. See [Code pages](../../../tools/codepage/) for more information.</html:p>
21 </xse:remarks>
22 <xse:howtoRef href="ui_and_localization/build_a_localized_version.html">How To: Build a localized version of your installer</xse:howtoRef>
23 <xse:howtoRef href="ui_and_localization/make_installer_localizable.html">How To: Make your installer localizable</xse:howtoRef>
24 </xs:appinfo>
25 </xs:annotation>
26 <xs:complexType>
27 <xs:choice minOccurs="0" maxOccurs="unbounded">
28 <xs:element ref="String" />
29 <xs:element ref="UI" />
30 </xs:choice>
31 <xs:attribute name="Codepage" type="xs:string">
32 <xs:annotation>
33 <xs:documentation>Optional code page integer value or web name for the resulting database. You can also specify -1 which will not reset the database code page. See remarks for more information.</xs:documentation>
34 </xs:annotation>
35 </xs:attribute>
36 <xs:attribute name="Culture" type="xs:string">
37 <xs:annotation>
38 <xs:documentation>Optional culture for this localization file. If the Culture attribute is not provided, the localization file is considered to be language neutral. This culture value is used to filter applicable localization files during the build. Language neutral localization files are always included.</xs:documentation>
39 </xs:annotation>
40 </xs:attribute>
41 <xs:attribute name="ExtensionDefaultCulture" type="LocalizationYesNoType">
42 <xs:annotation>
43 <xs:documentation>[WiX v5] Optional. Indicates that the localization file's culture is the default culture for a WiX Extension. Only valid when used in a WiX library included in a WiX Extension..</xs:documentation>
44 </xs:annotation>
45 </xs:attribute>
46 <xs:attribute name="Language" type="Integer">
47 <xs:annotation>
48 <xs:documentation>The decimal language ID (LCID) for the culture. Used only when processed by native code using locutil.</xs:documentation>
49 </xs:annotation>
50 </xs:attribute>
51 <xs:attribute name="SummaryInformationCodepage" type="xs:string">
52 <xs:annotation>
53 <xs:documentation>Optional code page integer value or web name for the resulting database's SummaryInformation. If not specified, the SummaryInformation codepage will be set to the same value from the Codepage attribute. If no codepage is provided, the SummaryInformation will default to the ANSI codepage. See remarks for more information.</xs:documentation>
54 </xs:annotation>
55 </xs:attribute>
56 </xs:complexType>
57 </xs:element>
58
59 <xs:element name="String">
60 <xs:annotation>
61 <xs:appinfo>
62 <xse:howtoRef href="ui_and_localization/build_a_localized_version.html">How To: Build a localized version of your installer</xse:howtoRef>
63 <xse:howtoRef href="ui_and_localization/make_installer_localizable.html">How To: Make your installer localizable</xse:howtoRef>
64 </xs:appinfo>
65 </xs:annotation>
66 <xs:complexType>
67 <xs:attribute name="Id" type="xs:string" use="required">
68 <xs:annotation>
69 <xs:documentation>Identity of the localized string. Referenced in .wxs files using `!(loc.Id)` or in locutil using `#(loc.Id)`.</xs:documentation>
70 </xs:annotation>
71 </xs:attribute>
72 <xs:attribute name="Overridable" type="LocalizationYesNoType">
73 <xs:annotation>
74 <xs:documentation>Determines if the localized string may be overridden by a definition in another localization file. The default value is `no`.</xs:documentation>
75 </xs:annotation>
76 </xs:attribute>
77 <xs:attribute name="Localizable" type="LocalizationYesNoType">
78 <xs:annotation>
79 <xs:documentation>Indicates whether the string is localizable text or a non-localizable string that must be unique per locale. The value of this attribute is not used by the WiX Toolset. It provided as documentation for localizers to ignore things like GUIDs or identifiers that look like text.</xs:documentation>
80 </xs:annotation>
81 </xs:attribute>
82 <xs:attribute name="Value" type="xs:string">
83 <xs:annotation>
84 <xs:documentation>The localized value for this string.</xs:documentation>
85 </xs:annotation>
86 </xs:attribute>
87 </xs:complexType>
88 </xs:element>
89
90 <xs:element name="UI">
91 <xs:annotation>
92 <xs:documentation>Allows a localization to override the position, size, and text of dialogs and controls.</xs:documentation>
93 </xs:annotation>
94 <xs:complexType mixed="true">
95 <xs:attribute name="Dialog" type="xs:string">
96 <xs:annotation>
97 <xs:documentation>Identifies the dialog to localize or the dialog that a control to localize is in.</xs:documentation>
98 </xs:annotation>
99 </xs:attribute>
100 <xs:attribute name="Control" type="xs:string">
101 <xs:annotation>
102 <xs:documentation>Combined with the Dialog attribute, identifies the control to localize.</xs:documentation>
103 </xs:annotation>
104 </xs:attribute>
105 <xs:attribute name="X" type="Integer">
106 <xs:annotation>
107 <xs:documentation>For a dialog, overrides the authored horizontal centering. For a control, overrides the authored horizontal coordinate of the upper-left corner of the rectangular boundary. This must be a non-negative number.</xs:documentation>
108 </xs:annotation>
109 </xs:attribute>
110 <xs:attribute name="Y" type="Integer">
111 <xs:annotation>
112 <xs:documentation>For a dialog, overrides the authored vertical centering. For a control, overrides the authored vertical coordinate of the upper-left corner of the rectangular boundary of the control. This must be a non-negative number.</xs:documentation>
113 </xs:annotation>
114 </xs:attribute>
115 <xs:attribute name="Width" type="Integer">
116 <xs:annotation>
117 <xs:documentation>For a dialog, overrides the authored width in dialog units. For a control, overrides the authored width of the rectangular boundary of the control. This must be a non-negative number.</xs:documentation>
118 </xs:annotation>
119 </xs:attribute>
120 <xs:attribute name="Height" type="Integer">
121 <xs:annotation>
122 <xs:documentation>For a dialog, overrides the authored height in dialog units. For a control, overrides the authored height of the rectangular boundary of the control. This must be a non-negative number.</xs:documentation>
123 </xs:annotation>
124 </xs:attribute>
125 <xs:attribute name="RightToLeft" type="LocalizationYesNoType">
126 <xs:annotation>
127 <xs:documentation>Set this attribute to "yes" to cause the Control to display from right to left. Not valid for a dialog.</xs:documentation>
128 </xs:annotation>
129 </xs:attribute>
130 <xs:attribute name="RightAligned" type="LocalizationYesNoType">
131 <xs:annotation>
132 <xs:documentation>Set this attribute to "yes" to cause the Control to be right aligned. Not valid for a dialog.</xs:documentation>
133 </xs:annotation>
134 </xs:attribute>
135 <xs:attribute name="LeftScroll" type="LocalizationYesNoType">
136 <xs:annotation>
137 <xs:documentation>Set this attribute to "yes" to cause the scroll bar to display on the left side of the Control. Not valid for a dialog.</xs:documentation>
138 </xs:annotation>
139 </xs:attribute>
140 <xs:attribute name="Text" type="xs:string">
141 <xs:annotation>
142 <xs:documentation>Override the text of a UI element.</xs:documentation>
143 </xs:annotation>
144 </xs:attribute>
145 </xs:complexType>
146 </xs:element>
147
148 <xs:simpleType name="Integer">
149 <xs:annotation>
150 <xs:documentation>Values of this type must be an integer or a preprocessor variable with the format `$(Variable)` or `$(var.Variable).</xs:documentation>
151 </xs:annotation>
152 <xs:restriction base="xs:string">
153 <xs:pattern value="[\d]+|\$\((var\.)?[_A-Za-z][0-9A-Za-z_.]*\)" />
154 </xs:restriction>
155 </xs:simpleType>
156 <xs:simpleType name="LocalizationYesNoType">
157 <xs:annotation>
158 <xs:documentation>Values of this type will either be "yes"/"true" or "no"/"false".</xs:documentation>
159 </xs:annotation>
160 <xs:restriction base="xs:NMTOKEN">
161 <xs:enumeration value="no" />
162 <xs:enumeration value="false" />
163 <xs:enumeration value="yes" />
164 <xs:enumeration value="true" />
165 </xs:restriction>
166 </xs:simpleType>
167</xs:schema>