aboutsummaryrefslogtreecommitdiff
path: root/src/xsd/wix.xsd
diff options
context:
space:
mode:
Diffstat (limited to 'src/xsd/wix.xsd')
-rw-r--r--src/xsd/wix.xsd14745
1 files changed, 14745 insertions, 0 deletions
diff --git a/src/xsd/wix.xsd b/src/xsd/wix.xsd
new file mode 100644
index 00000000..165f76e3
--- /dev/null
+++ b/src/xsd/wix.xsd
@@ -0,0 +1,14745 @@
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="Payloads" />
91 <xs:element ref="RelatedBundle" />
92 <xs:element ref="Requires" />
93 <xs:element ref="SetVariable" />
94 <xs:element ref="SetVariableRef" />
95 <xs:element ref="SoftwareTag" />
96 <xs:element ref="Update" minOccurs="0" maxOccurs="1" />
97 <xs:element ref="Variable" />
98 <xs:element ref="WixVariable" />
99 <xs:any namespace="##other" processContents="lax">
100 <xs:annotation>
101 <xs:documentation>
102 Extensibility point in the WiX XML Schema. Schema extensions can register additional
103 elements at this point in the schema.
104 </xs:documentation>
105 </xs:annotation>
106 </xs:any>
107 </xs:choice>
108 <xs:attribute name="AboutUrl" type="xs:string">
109 <xs:annotation>
110 <xs:documentation>
111 A URL for more information about the bundle to display in Programs and Features (also
112 known as Add/Remove Programs).
113 </xs:documentation>
114 </xs:annotation>
115 </xs:attribute>
116 <xs:attribute name="Compressed" type="YesNoDefaultTypeUnion">
117 <xs:annotation>
118 <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>
119 </xs:annotation>
120 </xs:attribute>
121 <xs:attribute name="Condition" type="xs:string">
122 <xs:annotation>
123 <xs:documentation>
124 The condition of the bundle. If the condition is not met, the bundle will
125 refuse to run. Conditions are checked before the bootstrapper application is loaded
126 (before detect), and thus can only reference built-in variables such as
127 variables which indicate the version of the OS.
128 </xs:documentation>
129 </xs:annotation>
130 </xs:attribute>
131 <xs:attribute name="Copyright" type="xs:string">
132 <xs:annotation>
133 <xs:documentation>
134 The legal copyright found in the version resources of final bundle executable. If
135 this attribute is not provided the copyright will be set to "Copyright (c) [Bundle/@Manufacturer]. All rights reserved.".
136 </xs:documentation>
137 </xs:annotation>
138 </xs:attribute>
139 <xs:attribute name="DisableModify" type="YesNoButtonTypeUnion">
140 <xs:annotation>
141 <xs:documentation>
142 Determines whether the bundle can be modified via the Programs and Features (also known as
143 Add/Remove Programs). If the value is "button" then Programs and Features will show a single
144 "Uninstall/Change" button. If the value is "yes" then Programs and Features will only show
145 the "Uninstall" button". If the value is "no", the default, then a "Change" button is shown.
146 See the DisableRemove attribute for information how to not display the bundle in Programs
147 and Features.
148 </xs:documentation>
149 </xs:annotation>
150 </xs:attribute>
151 <xs:attribute name="DisableRemove" type="YesNoTypeUnion">
152 <xs:annotation>
153 <xs:documentation>
154 Determines whether the bundle can be removed via the Programs and Features (also
155 known as Add/Remove Programs). If the value is "yes" then the "Uninstall" button will
156 not be displayed. The default is "no" which ensures there is an "Uninstall" button to
157 remove the bundle. If the "DisableModify" attribute is also "yes" or "button" then the
158 bundle will not be displayed in Progams and Features and another mechanism (such as
159 registering as a related bundle addon) must be used to ensure the bundle can be removed.
160 </xs:documentation>
161 </xs:annotation>
162 </xs:attribute>
163 <xs:attribute name="HelpTelephone" type="xs:string">
164 <xs:annotation>
165 <xs:documentation>
166 A telephone number for help to display in Programs and Features (also known as
167 Add/Remove Programs).
168 </xs:documentation>
169 </xs:annotation>
170 </xs:attribute>
171 <xs:attribute name="HelpUrl" type="xs:string">
172 <xs:annotation>
173 <xs:documentation>
174 A URL to the help for the bundle to display in Programs and Features (also known as
175 Add/Remove Programs).
176 </xs:documentation>
177 </xs:annotation>
178 </xs:attribute>
179 <xs:attribute name="IconSourceFile" type="xs:string">
180 <xs:annotation>
181 <xs:documentation>
182 Path to an icon that will replace the default icon in the final Bundle executable.
183 This icon will also be displayed in Programs and Features (also known as Add/Remove
184 Programs).
185 </xs:documentation>
186 </xs:annotation>
187 </xs:attribute>
188 <xs:attribute name="Id" type="xs:string">
189 <xs:annotation>
190 <xs:documentation>
191 _New in WiX v6: WiX v6 adds this attribute to the `Bundle` element._
192 A globally unique identiifer for the bundle in the world. It is recommended to use a prefix such as "CompanyName." to
193 create a namespace of sorts. By default, higher versioned upgrade lower versioned bundles with the same Id. Use this
194 attribute instead of the UpgradeCode attribute in new development.
195 </xs:documentation>
196 </xs:annotation>
197 </xs:attribute>
198 <xs:attribute name="InProgressName" type="xs:string">
199 <xs:annotation>
200 <xs:documentation>
201 Optional name to display in Add/Remove Programs while the bundle is being installed, uninstalled, repaired.
202 </xs:documentation>
203 </xs:annotation>
204 </xs:attribute>
205 <xs:attribute name="Manufacturer" type="xs:string">
206 <xs:annotation>
207 <xs:documentation>
208 The publisher of the bundle to display in Programs and Features (also known as
209 Add/Remove Programs).
210 </xs:documentation>
211 </xs:annotation>
212 </xs:attribute>
213 <xs:attribute name="Name" type="xs:string">
214 <xs:annotation>
215 <xs:documentation>
216 The name of the bundle to display in Programs and Features (also known as Add/Remove
217 Programs). This name can be accessed and overwritten by a BootstrapperApplication
218 using the WixBundleName bundle variable.
219 </xs:documentation>
220 </xs:annotation>
221 </xs:attribute>
222 <xs:attribute name="ParentName" type="xs:string">
223 <xs:annotation>
224 <xs:documentation>
225 The name of the parent bundle to display in Installed Updates (also known as Add/Remove
226 Programs). This name is used to nest or group bundles that will appear as updates.
227 If the parent name does not actually exist, a virtual parent is created automatically.
228 </xs:documentation>
229 </xs:annotation>
230 </xs:attribute>
231 <xs:attribute name="ProviderKey" type="xs:string">
232 <xs:annotation>
233 <xs:documentation>
234 Optional attribute to explicitly author the provider key for the entire bundle.
235 <html:p>
236 This provider key is designed to persist throughout compatible upgrades so that dependent bundles do not have to be reinstalled
237 and will not prevent your product from being upgraded. If this attribute is not authored, the value is the
238 automatically-generated bundle ID and will not automatically support upgrades.
239 </html:p>
240 <html:p>
241 Only a single provider key is supported for bundles. To author that your bundle provides additional features via
242 packages, author different provider keys for your packages.
243 </html:p>
244 </xs:documentation>
245 </xs:annotation>
246 </xs:attribute>
247 <xs:attribute name="SplashScreenSourceFile" type="xs:string">
248 <xs:annotation>
249 <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>
250 </xs:annotation>
251 </xs:attribute>
252 <xs:attribute name="Tag" type="xs:string">
253 <xs:annotation>
254 <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>
255 </xs:annotation>
256 </xs:attribute>
257 <xs:attribute name="UpdateUrl" type="xs:string">
258 <xs:annotation>
259 <xs:documentation>
260 A URL for updates of the bundle to display in Programs and Features (also
261 known as Add/Remove Programs).
262 </xs:documentation>
263 </xs:annotation>
264 </xs:attribute>
265 <xs:attribute name="UpgradeCode" type="Guid">
266 <xs:annotation>
267 <xs:documentation>
268 For new bundles, it is recommended to use the Id attribute instead. This attribute exists for
269 backwards compatibility scenarios. Use this attribute to provide a specific unique identifier
270 for a family of bundles. If two bundles have the same UpgradeCode the bundle with the highest
271 version will be installed.
272 </xs:documentation>
273 </xs:annotation>
274 </xs:attribute>
275 <xs:attribute name="Version" type="xs:string" use="required">
276 <xs:annotation>
277 <xs:documentation>
278 The version of the bundle. Newer versions upgrade earlier versions of the bundles
279 with matching UpgradeCodes. If the bundle is registered in Programs and Features
280 then this attribute will be displayed in the Programs and Features user interface.
281 </xs:documentation>
282 </xs:annotation>
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 <xs:element name="ApprovedExeForElevation">
295 <xs:annotation>
296 <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>
297 <xs:appinfo>
298 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
299 </xs:appinfo>
300 </xs:annotation>
301 <xs:complexType>
302 <xs:attribute name="Id" type="xs:string" use="required">
303 <xs:annotation>
304 <xs:documentation>The identifier of the ApprovedExeForElevation element.</xs:documentation>
305 </xs:annotation>
306 </xs:attribute>
307 <xs:attribute name="Key" type="xs:string" use="required">
308 <xs:annotation>
309 <xs:documentation>
310 The key path.
311 For security purposes, the root key will be HKLM and Variables are not supported.
312 </xs:documentation>
313 </xs:annotation>
314 </xs:attribute>
315 <xs:attribute name="Value" type="xs:string">
316 <xs:annotation>
317 <xs:documentation>
318 The value name.
319 For security purposes, Variables are not supported.
320 </xs:documentation>
321 </xs:annotation>
322 </xs:attribute>
323 <xs:attribute name="Bitness" type="BitnessTypeUnion">
324 <xs:annotation>
325 <xs:documentation>
326 Overrides the default registry to search. The value `always64` will force
327 the search to look in the 64-bit registry even when building for 32-bit.
328 Simliarly, the value `always32` will force the search to look in the 32-bit
329 registry even when building for 64-bit.
330 The default value is `default` where the search will look in the same registry
331 as the bitness of the package.
332 </xs:documentation>
333 </xs:annotation>
334 </xs:attribute>
335 </xs:complexType>
336 </xs:element>
337 <xs:element name="Log">
338 <xs:annotation>
339 <xs:documentation>Overrides the default log settings for a bundle.</xs:documentation>
340 <xs:appinfo>
341 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
342 </xs:appinfo>
343 </xs:annotation>
344 <xs:complexType>
345 <xs:attribute name="Disable" type="YesNoTypeUnion">
346 <xs:annotation>
347 <xs:documentation>
348 Disables the default logging in the Bundle. The end user can still generate a
349 log file by specifying the "-l" command-line argument when installing the
350 Bundle.
351 </xs:documentation>
352 </xs:annotation>
353 </xs:attribute>
354 <xs:attribute name="PathVariable" type="xs:string">
355 <xs:annotation>
356 <xs:documentation>
357 Name of a Variable that will hold the path to the log file. An empty value
358 will cause the variable to not be set. The default is "WixBundleLog".
359 </xs:documentation>
360 </xs:annotation>
361 </xs:attribute>
362 <xs:attribute name="Prefix" type="xs:string">
363 <xs:annotation>
364 <xs:documentation>
365 File name and optionally a relative path to use as the prefix for the log file. The
366 default is to use the Bundle/@Name or, if Bundle/@Name is not specified, the value
367 "Setup".
368 </xs:documentation>
369 </xs:annotation>
370 </xs:attribute>
371 <xs:attribute name="Extension" type="xs:string">
372 <xs:annotation>
373 <xs:documentation>The extension to use for the log. The default is ".log".</xs:documentation>
374 </xs:annotation>
375 </xs:attribute>
376 </xs:complexType>
377 </xs:element>
378 <xs:element name="BootstrapperApplicationDll">
379 <xs:annotation>
380 <xs:documentation>Describes the entry point to the bootstrapper application.</xs:documentation>
381 </xs:annotation>
382 <xs:complexType>
383 <xs:choice minOccurs="0" maxOccurs="unbounded">
384 <xs:any namespace="##other" processContents="lax">
385 <xs:annotation>
386 <xs:documentation>
387 Extensibility point in the WiX XML Schema. Schema extensions can register additional
388 elements at this point in the schema.
389 </xs:documentation>
390 </xs:annotation>
391 </xs:any>
392 </xs:choice>
393 <xs:attribute name="Id" type="xs:string">
394 <xs:annotation>
395 <xs:documentation>The identifier of BootstrapperApplicationDll element.</xs:documentation>
396 </xs:annotation>
397 </xs:attribute>
398 <xs:attribute name="SourceFile" type="xs:string">
399 <xs:annotation>
400 <xs:documentation>
401 Location of the source file.
402 The default value is the Name attribute, if provided.
403 At a minimum, the SourceFile or Name attribute must be specified.
404 </xs:documentation>
405 </xs:annotation>
406 </xs:attribute>
407 <xs:attribute name="Name" type="xs:string">
408 <xs:annotation>
409 <xs:documentation>
410 The destination path and file name for this payload.
411 The default is the source file name.
412 At a minimum, the Name or SourceFile attribute must be specified.
413 This must be a relative path ('\foo' or 'C:\foo' is not allowed).
414 </xs:documentation>
415 </xs:annotation>
416 </xs:attribute>
417 <xs:attribute name="DpiAwareness" default="perMonitorV2">
418 <xs:annotation>
419 <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>
420 </xs:annotation>
421 <xs:simpleType>
422 <xs:restriction base="xs:NMTOKEN">
423 <xs:enumeration value="gdiScaled">
424 <xs:annotation>
425 <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>
426 </xs:annotation>
427 </xs:enumeration>
428 <xs:enumeration value="perMonitor">
429 <xs:annotation>
430 <xs:documentation>Corresponds to the .exe manifest element 'dpiAware' with content of 'true/pm'.</xs:documentation>
431 </xs:annotation>
432 </xs:enumeration>
433 <xs:enumeration value="perMonitorV2">
434 <xs:annotation>
435 <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>
436 </xs:annotation>
437 </xs:enumeration>
438 <xs:enumeration value="system">
439 <xs:annotation>
440 <xs:documentation>Corresponds to the .exe manifest element 'dpiAware' with content of 'true'.</xs:documentation>
441 </xs:annotation>
442 </xs:enumeration>
443 <xs:enumeration value="unaware" />
444 </xs:restriction>
445 </xs:simpleType>
446 </xs:attribute>
447 <xs:anyAttribute namespace="##other" processContents="lax">
448 <xs:annotation>
449 <xs:documentation>
450 Extensibility point in the WiX XML Schema. Schema extensions can register additional
451 attributes at this point in the schema.
452 </xs:documentation>
453 </xs:annotation>
454 </xs:anyAttribute>
455 </xs:complexType>
456 </xs:element>
457 <xs:element name="BootstrapperApplication">
458 <xs:annotation>
459 <xs:documentation>Contains all the relevant information about the setup UI.</xs:documentation>
460 </xs:annotation>
461 <xs:complexType>
462 <xs:choice minOccurs="0" maxOccurs="unbounded">
463 <xs:element ref="BootstrapperApplicationDll" minOccurs="0" maxOccurs="1" />
464 <xs:element ref="Payload" />
465 <xs:element ref="PayloadGroupRef" />
466 <xs:element ref="Payloads" />
467 <xs:any namespace="##other" processContents="lax">
468 <xs:annotation>
469 <xs:documentation>
470 Extensibility point in the WiX XML Schema. Schema extensions can register additional
471 elements at this point in the schema.
472 </xs:documentation>
473 </xs:annotation>
474 </xs:any>
475 </xs:choice>
476 <xs:attribute name="Id" type="xs:string">
477 <xs:annotation>
478 <xs:documentation>The identifier of the BootstrapperApplication element. Only required if you want to reference this element using a BootstrapperApplicationRef element.</xs:documentation>
479 </xs:annotation>
480 </xs:attribute>
481 <xs:attribute name="Name" type="xs:string">
482 <xs:annotation>
483 <xs:documentation>
484 [WIX v5 and later]
485 The relative destination path and file name for the bootstrapper application executable.
486 The default is the source file name. Use this attribute to rename the bootstrapper application executable or extract it into a subfolder.
487 At a minimum, the Name or SourceFile attribute must be specified.
488 This must be a relative path ('\foo' or 'C:\foo' is not allowed).
489 </xs:documentation>
490 </xs:annotation>
491 </xs:attribute>
492 <xs:attribute name="SourceFile" type="xs:string">
493 <xs:annotation>
494 <xs:documentation>
495 [WIX v5 and later]
496 The path to the bootstrapper application executable.
497 If not provided, will use the Name attribute value.
498 At a minimum, the SourceFile or Name attribute must be specified.
499 </xs:documentation>
500 </xs:annotation>
501 </xs:attribute>
502 <xs:attribute name="Secondary" type="YesNoTypeUnion">
503 <xs:annotation>
504 <xs:documentation>
505 [WIX v5 and later]
506 Indicates whether the bootstrapper application is the secondary or fallback.
507 This bootstrapper application will only run if the primary bootstrapper application returns a non-zero exit code.
508 </xs:documentation>
509 </xs:annotation>
510 </xs:attribute>
511 <xs:anyAttribute namespace="##other" processContents="lax">
512 <xs:annotation>
513 <xs:documentation>
514 Extensibility point in the WiX XML Schema. Schema extensions can register additional
515 attributes at this point in the schema.
516 </xs:documentation>
517 </xs:annotation>
518 </xs:anyAttribute>
519 </xs:complexType>
520 </xs:element>
521 <xs:element name="BootstrapperApplicationRef">
522 <xs:annotation>
523 <xs:documentation>Used to reference a BootstrapperApplication element and optionally add additional payloads to the bootstrapper application.</xs:documentation>
524 </xs:annotation>
525 <xs:complexType>
526 <xs:choice minOccurs="0" maxOccurs="unbounded">
527 <xs:element ref="Payload" />
528 <xs:element ref="PayloadGroupRef" />
529 <xs:element ref="Payloads" />
530 <xs:any namespace="##other" processContents="lax">
531 <xs:annotation>
532 <xs:documentation>
533 Extensibility point in the WiX XML Schema. Schema extensions can register additional
534 elements at this point in the schema.
535 </xs:documentation>
536 </xs:annotation>
537 </xs:any>
538 </xs:choice>
539 <xs:attribute name="Id" type="xs:string" use="required">
540 <xs:annotation>
541 <xs:documentation>The identifier of the BootstrapperApplication element to reference.</xs:documentation>
542 </xs:annotation>
543 </xs:attribute>
544 <xs:anyAttribute namespace="##other" processContents="lax">
545 <xs:annotation>
546 <xs:documentation>
547 Extensibility point in the WiX XML Schema. Schema extensions can register additional
548 attributes at this point in the schema.
549 </xs:documentation>
550 </xs:annotation>
551 </xs:anyAttribute>
552 </xs:complexType>
553 </xs:element>
554 <xs:element name="BundleCustomData">
555 <xs:annotation>
556 <xs:documentation>Defines a custom XML element for use in a bundle data manifest.</xs:documentation>
557 </xs:annotation>
558 <xs:complexType>
559 <xs:choice minOccurs="0" maxOccurs="unbounded">
560 <xs:element ref="BundleAttributeDefinition">
561 <xs:annotation>
562 <xs:documentation>Attribute definition for BundleCustomData. There must be at least one defined.</xs:documentation>
563 </xs:annotation>
564 </xs:element>
565 <xs:element ref="BundleElement">
566 <xs:annotation>
567 <xs:documentation>Instance data for BundleCustomData.</xs:documentation>
568 </xs:annotation>
569 </xs:element>
570 </xs:choice>
571 <xs:attribute name="Id" type="xs:string" use="required">
572 <xs:annotation>
573 <xs:documentation>
574 Identifier for the custom table.
575 Also used as the name of the XML element.
576 </xs:documentation>
577 </xs:annotation>
578 </xs:attribute>
579 <xs:attribute name="Type">
580 <xs:annotation>
581 <xs:documentation>
582 Indicates the custom data is transformed into the bootstrapper application data manifest or the bundle extension data manifest.
583 Defaults to BootstrapperExtension if ExtensionId is specified, otherwise BootstrapperApplication.
584 </xs:documentation>
585 </xs:annotation>
586 <xs:simpleType>
587 <xs:restriction base="xs:NMTOKEN">
588 <xs:enumeration value="BootstrapperApplication" />
589 <xs:enumeration value="BootstrapperExtension" />
590 <xs:enumeration value="BundleExtension" />
591 </xs:restriction>
592 </xs:simpleType>
593 </xs:attribute>
594 <xs:attribute name="ExtensionId" type="xs:string">
595 <xs:annotation>
596 <xs:documentation>
597 Identifier for the bootstrapper extension.
598 Required when Type is BootstrapperExtension, must not be specified otherwise.
599 </xs:documentation>
600 </xs:annotation>
601 </xs:attribute>
602 </xs:complexType>
603 </xs:element>
604 <xs:element name="BundleAttributeDefinition">
605 <xs:annotation>
606 <xs:documentation>Attribute definition for BundleCustomData.</xs:documentation>
607 </xs:annotation>
608 <xs:complexType>
609 <xs:attribute name="Id" type="xs:string" use="required">
610 <xs:annotation>
611 <xs:documentation>The name of the attribute.</xs:documentation>
612 </xs:annotation>
613 </xs:attribute>
614 </xs:complexType>
615 </xs:element>
616 <xs:element name="BundleElement">
617 <xs:annotation>
618 <xs:documentation>Instance data for BundleCustomData.</xs:documentation>
619 </xs:annotation>
620 <xs:complexType>
621 <xs:sequence>
622 <xs:element ref="BundleAttribute" maxOccurs="unbounded" />
623 </xs:sequence>
624 </xs:complexType>
625 </xs:element>
626 <xs:element name="BundleAttribute">
627 <xs:annotation>
628 <xs:documentation>Used for BundleCustomData. Specifies a BundleAttributeDefinition and its value for the parent BundleElement.</xs:documentation>
629 </xs:annotation>
630 <xs:complexType>
631 <xs:attribute name="Id" type="xs:string" use="required">
632 <xs:annotation>
633 <xs:documentation>Specifies the BundleAttributeDefinition associated with this value.</xs:documentation>
634 </xs:annotation>
635 </xs:attribute>
636 <xs:attribute name="Value" type="xs:string">
637 <xs:annotation>
638 <xs:documentation>An attribute's value.</xs:documentation>
639 </xs:annotation>
640 </xs:attribute>
641 </xs:complexType>
642 </xs:element>
643 <xs:element name="BundleCustomDataRef">
644 <xs:annotation>
645 <xs:documentation>Used to reference a BundleCustomData element and optionally add more data.</xs:documentation>
646 </xs:annotation>
647 <xs:complexType>
648 <xs:choice minOccurs="0" maxOccurs="unbounded">
649 <xs:element ref="BundleElement">
650 <xs:annotation>
651 <xs:documentation>Instance data for BundleCustomData.</xs:documentation>
652 </xs:annotation>
653 </xs:element>
654 </xs:choice>
655 <xs:attribute name="Id" type="xs:string" use="required">
656 <xs:annotation>
657 <xs:documentation>
658 The identifier of the BundleCustomData element to reference.
659 </xs:documentation>
660 </xs:annotation>
661 </xs:attribute>
662 </xs:complexType>
663 </xs:element>
664 <xs:element name="BootstrapperExtension">
665 <xs:annotation>
666 <xs:documentation>[WIX v5] An extension to the Burn engine. Currently requires a WiX compiler extension to do anything useful.</xs:documentation>
667 </xs:annotation>
668 <xs:complexType>
669 <xs:choice minOccurs="0" maxOccurs="unbounded">
670 <xs:element ref="Payload" />
671 <xs:element ref="PayloadGroupRef" />
672 <xs:element ref="Payloads" />
673 <xs:any namespace="##other" processContents="lax">
674 <xs:annotation>
675 <xs:documentation>
676 Extensibility point in the WiX XML Schema. Schema extensions can register additional
677 elements at this point in the schema.
678 </xs:documentation>
679 </xs:annotation>
680 </xs:any>
681 </xs:choice>
682 <xs:attribute name="Id" type="xs:string">
683 <xs:annotation>
684 <xs:documentation>The identifier of the BootstrapperExtension element. Only required if you want to reference this element using a BootstrapperExtensionRef element.</xs:documentation>
685 </xs:annotation>
686 </xs:attribute>
687 <xs:attribute name="Name" type="xs:string">
688 <xs:annotation>
689 <xs:documentation>
690 The relative destination path and file name for the bundle extension DLL.
691 The default is the source file name. Use this attribute to rename the bundle extension DLL or extract it into a subfolder.
692 At a minimum, the Name or SourceFile attribute must be specified.
693 This must be a relative path ('\foo' or 'C:\foo' is not allowed).
694 </xs:documentation>
695 </xs:annotation>
696 </xs:attribute>
697 <xs:attribute name="SourceFile" type="xs:string">
698 <xs:annotation>
699 <xs:documentation>
700 The DLL with the bundle extension entry function.
701 The default value is the Name attribute, if provided.
702 At a minimum, the SourceFile or Name attribute must be specified.
703 </xs:documentation>
704 </xs:annotation>
705 </xs:attribute>
706 </xs:complexType>
707 </xs:element>
708 <xs:element name="BootstrapperExtensionRef">
709 <xs:annotation>
710 <xs:appinfo>
711 <xse:seeAlso ref="BootstrapperExtension" />
712 </xs:appinfo>
713 <xs:documentation>[WiX v5] Used to reference a BootstrapperExtension element.</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" use="required">
727 <xs:annotation>
728 <xs:documentation>The identifier of the BootstrapperExtension element to reference.</xs:documentation>
729 </xs:annotation>
730 </xs:attribute>
731 <xs:anyAttribute namespace="##other" processContents="lax">
732 <xs:annotation>
733 <xs:documentation>
734 Extensibility point in the WiX XML Schema. Schema extensions can register additional
735 attributes at this point in the schema.
736 </xs:documentation>
737 </xs:annotation>
738 </xs:anyAttribute>
739 </xs:complexType>
740 </xs:element>
741 <xs:element name="BundleExtension">
742 <xs:annotation>
743 <xs:documentation>[WIX v4 only]An extension to the Burn engine. Currently requires a WiX compiler extension to do anything useful.</xs:documentation>
744 </xs:annotation>
745 <xs:complexType>
746 <xs:choice minOccurs="0" maxOccurs="unbounded">
747 <xs:element ref="Payload" />
748 <xs:element ref="PayloadGroupRef" />
749 <xs:any namespace="##other" processContents="lax">
750 <xs:annotation>
751 <xs:documentation>
752 Extensibility point in the WiX XML Schema. Schema extensions can register additional
753 elements at this point in the schema.
754 </xs:documentation>
755 </xs:annotation>
756 </xs:any>
757 </xs:choice>
758 <xs:attribute name="Id" type="xs:string">
759 <xs:annotation>
760 <xs:documentation>The identifier of the BundleExtension element. Only required if you want to reference this element using a BundleExtensionRef element.</xs:documentation>
761 </xs:annotation>
762 </xs:attribute>
763 <xs:attribute name="Name" type="xs:string">
764 <xs:annotation>
765 <xs:documentation>
766 The relative destination path and file name for the bundle extension DLL.
767 The default is the source file name. Use this attribute to rename the bundle extension DLL or extract it into a subfolder.
768 At a minimum, the Name or SourceFile attribute must be specified.
769 This must be a relative path ('\foo' or 'C:\foo' is not allowed).
770 </xs:documentation>
771 </xs:annotation>
772 </xs:attribute>
773 <xs:attribute name="SourceFile" type="xs:string">
774 <xs:annotation>
775 <xs:documentation>
776 The DLL with the bundle extension entry function.
777 The default value is the Name attribute, if provided.
778 At a minimum, the SourceFile or Name attribute must be specified.
779 </xs:documentation>
780 </xs:annotation>
781 </xs:attribute>
782 </xs:complexType>
783 </xs:element>
784 <xs:element name="BundleExtensionRef">
785 <xs:annotation>
786 <xs:appinfo>
787 <xse:seeAlso ref="BundleExtension" />
788 </xs:appinfo>
789 <xs:documentation>[WiX v4 only] Used to reference a BundleExtension element.</xs:documentation>
790 </xs:annotation>
791 <xs:complexType>
792 <xs:choice minOccurs="0" maxOccurs="unbounded">
793 <xs:any namespace="##other" processContents="lax">
794 <xs:annotation>
795 <xs:documentation>
796 Extensibility point in the WiX XML Schema. Schema extensions can register additional
797 elements at this point in the schema.
798 </xs:documentation>
799 </xs:annotation>
800 </xs:any>
801 </xs:choice>
802 <xs:attribute name="Id" type="xs:string" use="required">
803 <xs:annotation>
804 <xs:documentation>The identifier of the BundleExtension element to reference.</xs:documentation>
805 </xs:annotation>
806 </xs:attribute>
807 <xs:anyAttribute namespace="##other" processContents="lax">
808 <xs:annotation>
809 <xs:documentation>
810 Extensibility point in the WiX XML Schema. Schema extensions can register additional
811 attributes at this point in the schema.
812 </xs:documentation>
813 </xs:annotation>
814 </xs:anyAttribute>
815 </xs:complexType>
816 </xs:element>
817 <xs:element name="OptionalUpdateRegistration">
818 <xs:annotation>
819 <xs:documentation>Writes additional information to the Windows registry that can be used to detect the bundle.
820 This registration is intended primarily for update to an existing product.</xs:documentation>
821 <xs:appinfo>
822 <xse:remarks>
823 <html:p>The attributes are used to write the following registry values to the key:
824 <html:code>SOFTWARE\[Manufacturer]\Updates\[ProductFamily]\[Name]</html:code></html:p>
825 <html:ul>
826 <html:li>ThisVersionInstalled: Y</html:li>
827 <html:li>PackageName: (bundle name)</html:li>
828 <html:li>PackageVersion: (bundle version)</html:li>
829 <html:li>Publisher: [Manufacturer]</html:li>
830 <html:li>PublishingGroup: [Department]</html:li>
831 <html:li>ReleaseType: [Classification]</html:li>
832 <html:li>InstalledBy: [LogonUser]</html:li>
833 <html:li>InstalledDate: [Date]</html:li>
834 <html:li>InstallerName: (installer name)</html:li>
835 <html:li>InstallerVersion: (installer version)</html:li>
836 </html:ul>
837 </xse:remarks>
838 </xs:appinfo>
839 </xs:annotation>
840 <xs:complexType>
841 <xs:attribute name="Manufacturer" type="xs:string">
842 <xs:annotation>
843 <xs:documentation>The name of the manufacturer. The default is the Bundle/@Manufacturer attribute,
844 but may also be a short form, ex: Acme instead of Acme Corporation.
845 An error is generated at build time if neither attribute is specified.</xs:documentation>
846 </xs:annotation>
847 </xs:attribute>
848 <xs:attribute name="Department" type="xs:string">
849 <xs:annotation>
850 <xs:documentation>The name of the department or division publishing the update bundle.
851 The PublishingGroup registry value is not written if this attribute is not specified.</xs:documentation>
852 </xs:annotation>
853 </xs:attribute>
854 <xs:attribute name="ProductFamily" type="xs:string">
855 <xs:annotation>
856 <xs:documentation>The name of the family of products being updated. The default is the Bundle/@ParentName attribute.
857 The corresponding registry key is not created if neither attribute is specified.</xs:documentation>
858 </xs:annotation>
859 </xs:attribute>
860 <xs:attribute name="Name" type="xs:string">
861 <xs:annotation>
862 <xs:documentation>The name of the bundle. The default is the Bundle/@Name attribute,
863 but may also be a short form, ex: KB12345 instead of Update to Product (KB12345).
864 An error is generated at build time if neither attribute is specified.</xs:documentation>
865 </xs:annotation>
866 </xs:attribute>
867 <xs:attribute name="Classification" type="xs:string" default="Update">
868 <xs:annotation>
869 <xs:documentation>
870 The release type of the update bundle, such as Update, Security Update, Service Pack, etc.
871 The default value is Update.
872 </xs:documentation>
873 </xs:annotation>
874 </xs:attribute>
875 </xs:complexType>
876 </xs:element>
877 <xs:element name="Chain">
878 <xs:annotation>
879 <xs:documentation>Contains the chain of packages to install.</xs:documentation>
880 <xs:appinfo>
881 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
882 </xs:appinfo>
883 </xs:annotation>
884 <xs:complexType>
885 <xs:choice minOccurs="0" maxOccurs="unbounded">
886 <xs:element ref="MsiPackage" />
887 <xs:element ref="MspPackage" />
888 <xs:element ref="MsuPackage" />
889 <xs:element ref="ExePackage" />
890 <xs:element ref="BundlePackage" />
891 <xs:element ref="RollbackBoundary" />
892 <xs:element ref="PackageGroupRef" />
893 </xs:choice>
894 <xs:attribute name="DisableRollback" type="YesNoTypeUnion">
895 <xs:annotation>
896 <xs:documentation>
897 Specifies whether the bundle will attempt to roll back packages
898 executed in the chain. If "yes" is specified then when a vital
899 package fails to install only that package will roll back and the
900 chain will stop with the error. The default is "no" which
901 indicates all packages executed during the chain will be
902 rolledback to their previous state when a vital package fails.
903 </xs:documentation>
904 </xs:annotation>
905 </xs:attribute>
906 <xs:attribute name="DisableSystemRestore" type="YesNoTypeUnion">
907 <xs:annotation>
908 <xs:documentation>
909 Specifies whether the bundle will attempt to create a system
910 restore point when executing the chain. If "yes" is specified then
911 a system restore point will not be created. The default is "no" which
912 indicates a system restore point will be created when the bundle is
913 installed, uninstalled, repaired, modified, etc. If the system restore
914 point cannot be created, the bundle will log the issue and continue.
915 </xs:documentation>
916 </xs:annotation>
917 </xs:attribute>
918 <xs:attribute name="ParallelCache" type="YesNoTypeUnion">
919 <xs:annotation>
920 <xs:documentation>
921 Specifies whether the bundle will start installing packages
922 while other packages are still being cached. If "yes",
923 packages will start executing when a rollback boundary is
924 encountered. The default is "no" which dictates all packages
925 must be cached before any packages will start to be installed.
926 </xs:documentation>
927 </xs:annotation>
928 </xs:attribute>
929 </xs:complexType>
930 </xs:element>
931 <xs:element name="MsiPackage">
932 <xs:annotation>
933 <xs:documentation>Describes a single msi package to install.</xs:documentation>
934 </xs:annotation>
935 <xs:complexType>
936 <xs:choice minOccurs="0" maxOccurs="unbounded">
937 <xs:element ref="MsiProperty" />
938 <xs:element ref="SlipstreamMsp" />
939 <xs:element ref="Payload" />
940 <xs:element ref="PayloadGroupRef" />
941 <xs:element ref="Payloads" />
942 <xs:element ref="MsiPackagePayload" />
943 <xs:element ref="Provides" />
944 <xs:any namespace="##other" processContents="lax">
945 <xs:annotation>
946 <xs:documentation>
947 Extensibility point in the WiX XML Schema. Schema extensions can register additional
948 elements at this point in the schema. The extension's
949 <html:code>CompilerExtension.ParseElement()</html:code>
950 method will be called with the package identifier as the first value in
951 <html:code>contextValues</html:code>.
952 </xs:documentation>
953 </xs:annotation>
954 </xs:any>
955 </xs:choice>
956 <xs:attributeGroup ref="ChainPackageCommonAttributes" />
957 <xs:attributeGroup ref="ChainPackagePermanentAttribute" />
958 <xs:attribute name="RepairCondition" type="xs:string">
959 <xs:annotation>
960 <xs:documentation>
961 A condition that determines during Repair if the package will be repaired by default.
962 This condition can use built-in variables and variables returned by searches.
963 </xs:documentation>
964 </xs:annotation>
965 </xs:attribute>
966 <xs:attribute name="EnableFeatureSelection" type="YesNoTypeUnion">
967 <xs:annotation>
968 <xs:documentation>
969 Specifies whether the bundle will allow individual control over the installation state of Features inside
970 the msi package. Managing feature selection requires special care to ensure the install, modify, update and
971 uninstall behavior of the package is always correct. The default is "no".
972 </xs:documentation>
973 </xs:annotation>
974 </xs:attribute>
975 <xs:attribute name="ForcePerMachine" type="YesNoTypeUnion">
976 <xs:annotation>
977 <xs:documentation>
978 Override the automatic per-machine detection of MSI packages and force the package to be per-machine.
979 The default is "no", which allows the tools to detect the expected value.
980 </xs:documentation>
981 </xs:annotation>
982 </xs:attribute>
983 <xs:attribute name="Visible" type="YesNoTypeUnion">
984 <xs:annotation>
985 <xs:documentation>
986 Specifies whether the MSI will be displayed in Programs and Features (also known as Add/Remove Programs). If "yes" is
987 specified the MSI package information will be displayed in Programs and Features. The default "no" indicates the MSI
988 will not be displayed.
989 </xs:documentation>
990 </xs:annotation>
991 </xs:attribute>
992 </xs:complexType>
993 </xs:element>
994 <xs:element name="MspPackage">
995 <xs:annotation>
996 <xs:documentation>Describes a single msp package to install.</xs:documentation>
997 <xs:appinfo>
998 <xse:seeAlso ref="SlipstreamMsp" />
999 </xs:appinfo>
1000 </xs:annotation>
1001 <xs:complexType>
1002 <xs:choice minOccurs="0" maxOccurs="unbounded">
1003 <xs:element ref="MsiProperty" />
1004 <xs:element ref="Payload" />
1005 <xs:element ref="PayloadGroupRef" />
1006 <xs:element ref="Payloads" />
1007 <xs:element ref="MspPackagePayload" />
1008 <xs:element ref="Provides" />
1009 <xs:any namespace="##other" processContents="lax">
1010 <xs:annotation>
1011 <xs:documentation>
1012 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1013 elements at this point in the schema. The extension's
1014 <html:code>CompilerExtension.ParseElement()</html:code>
1015 method will be called with the package identifier as the first value in
1016 <html:code>contextValues</html:code>.
1017 </xs:documentation>
1018 </xs:annotation>
1019 </xs:any>
1020 </xs:choice>
1021 <xs:attributeGroup ref="ChainPackageCommonAttributes" />
1022 <xs:attributeGroup ref="ChainPackagePermanentAttribute" />
1023 <xs:attribute name="RepairCondition" type="xs:string">
1024 <xs:annotation>
1025 <xs:documentation>
1026 A condition that determines during Repair if the package will be repaired by default.
1027 This condition can use built-in variables and variables returned by searches.
1028 </xs:documentation>
1029 </xs:annotation>
1030 </xs:attribute>
1031 <xs:attribute name="PerMachine" type="YesNoDefaultTypeUnion">
1032 <xs:annotation>
1033 <xs:documentation>Indicates the package must be executed elevated. The default is "no".</xs:documentation>
1034 </xs:annotation>
1035 </xs:attribute>
1036 <xs:attribute name="Slipstream" type="YesNoTypeUnion">
1037 <xs:annotation>
1038 <xs:documentation>
1039 Specifies whether to automatically slipstream the patch for any target msi packages in the chain. The default is "no".
1040 Even when the value is "no", you can still author the SlipstreamMsp element under MsiPackage elements as desired.
1041 </xs:documentation>
1042 </xs:annotation>
1043 </xs:attribute>
1044 </xs:complexType>
1045 </xs:element>
1046 <xs:element name="MsuPackage">
1047 <xs:annotation>
1048 <xs:documentation>Describes a single msu package to install.</xs:documentation>
1049 </xs:annotation>
1050 <xs:complexType>
1051 <xs:choice minOccurs="0" maxOccurs="unbounded">
1052 <xs:element ref="Payload" />
1053 <xs:element ref="PayloadGroupRef" />
1054 <xs:element ref="Payloads" />
1055 <xs:element ref="MsuPackagePayload" />
1056 <xs:element ref="Provides" />
1057 <xs:any namespace="##other" processContents="lax">
1058 <xs:annotation>
1059 <xs:documentation>
1060 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1061 elements at this point in the schema. The extension's
1062 <html:code>CompilerExtension.ParseElement()</html:code>
1063 method will be called with the package identifier as the first value in
1064 <html:code>contextValues</html:code>.
1065 </xs:documentation>
1066 </xs:annotation>
1067 </xs:any>
1068 </xs:choice>
1069 <xs:attributeGroup ref="ChainPackageCommonAttributes" />
1070 <xs:attribute name="DetectCondition" type="xs:string">
1071 <xs:annotation>
1072 <xs:documentation>
1073 A condition that determines if the package is present on the target system. This condition can use built-in
1074 variables and variables returned by searches. This condition is necessary because Windows doesn't provide a
1075 method to detect the presence of an MsuPackage. Burn uses this condition to determine how to treat this
1076 package during a bundle action; for example, if this condition is false or omitted and the bundle is being
1077 installed, Burn will install this package.
1078 </xs:documentation>
1079 </xs:annotation>
1080 </xs:attribute>
1081 </xs:complexType>
1082 </xs:element>
1083 <xs:element name="ExePackage">
1084 <xs:annotation>
1085 <xs:documentation>Describes a single exe package to install.</xs:documentation>
1086 </xs:annotation>
1087 <xs:complexType>
1088 <xs:choice minOccurs="0" maxOccurs="unbounded">
1089 <xs:element ref="Payload" />
1090 <xs:element ref="PayloadGroupRef" />
1091 <xs:element ref="Payloads" />
1092 <xs:element ref="ExePackagePayload" />
1093 <xs:element ref="ExitCode" />
1094 <xs:element ref="CommandLine" />
1095 <xs:element ref="ArpEntry" />
1096 <xs:element ref="Provides" />
1097 <xs:any namespace="##other" processContents="lax">
1098 <xs:annotation>
1099 <xs:documentation>
1100 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1101 elements at this point in the schema. The extension's
1102 <html:code>CompilerExtension.ParseElement()</html:code>
1103 method will be called with the package identifier as the first value in
1104 <html:code>contextValues</html:code>.
1105 </xs:documentation>
1106 </xs:annotation>
1107 </xs:any>
1108 </xs:choice>
1109 <xs:attributeGroup ref="ChainPackageCommonAttributes" />
1110 <xs:attributeGroup ref="ChainPackagePermanentAttribute" />
1111 <xs:attribute name="DetectCondition" type="xs:string">
1112 <xs:annotation>
1113 <xs:documentation>
1114 A condition that determines if the package is present on the target system. This condition can use built-in
1115 variables and variables returned by searches. This condition is necessary because Windows doesn't provide a
1116 method to detect the presence of an ExePackage. Burn uses this condition to determine how to treat this
1117 package during a bundle action; for example, if this condition is false or omitted and the bundle is being
1118 installed, Burn will install this package.
1119 </xs:documentation>
1120 </xs:annotation>
1121 </xs:attribute>
1122 <xs:attribute name="RepairCondition" type="xs:string">
1123 <xs:annotation>
1124 <xs:documentation>
1125 A condition that determines during Repair if the package will be repaired by default.
1126 This condition can use built-in variables and variables returned by searches.
1127 This attribute may only be specified if RepairArguments is also specified.
1128 </xs:documentation>
1129 </xs:annotation>
1130 </xs:attribute>
1131 <xs:attribute name="InstallArguments" type="xs:string">
1132 <xs:annotation>
1133 <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>
1134 </xs:annotation>
1135 </xs:attribute>
1136 <xs:attribute name="RepairArguments" type="xs:string">
1137 <xs:annotation>
1138 <xs:documentation>
1139 The command-line arguments to specify to indicate a repair. If the executable package can be repaired but
1140 does not require any special command-line arguments to do so then set the attribute's value to blank. To
1141 indicate that the package does not support repair, omit this attribute.
1142 </xs:documentation>
1143 </xs:annotation>
1144 </xs:attribute>
1145 <xs:attribute name="UninstallArguments" type="xs:string">
1146 <xs:annotation>
1147 <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>
1148 </xs:annotation>
1149 </xs:attribute>
1150 <xs:attribute name="PerMachine" type="YesNoDefaultTypeUnion">
1151 <xs:annotation>
1152 <xs:documentation>Indicates the package must be executed elevated. The default is "no".</xs:documentation>
1153 </xs:annotation>
1154 </xs:attribute>
1155 <xs:attribute name="Bundle" type="YesNoTypeUnion">
1156 <xs:annotation>
1157 <xs:documentation>
1158 Indicates the package is a WiX bundle. The default is "no".
1159 If "yes", then the default Protocol value is "burn".
1160 The engine will prepend command line arguments such as "-norestart" for all operations,
1161 as well as avoid running this bundle as a related bundle.
1162 </xs:documentation>
1163 </xs:annotation>
1164 </xs:attribute>
1165 <xs:attribute name="Protocol" type="BurnExeProtocolType">
1166 <xs:annotation>
1167 <xs:documentation>Indicates the communication protocol the package supports for extended progress and error reporting. The default is "none".</xs:documentation>
1168 </xs:annotation>
1169 </xs:attribute>
1170 </xs:complexType>
1171 </xs:element>
1172 <xs:element name="BundlePackage">
1173 <xs:annotation>
1174 <xs:documentation>Describes a single bundle package to install.</xs:documentation>
1175 </xs:annotation>
1176 <xs:complexType>
1177 <xs:choice minOccurs="0" maxOccurs="unbounded">
1178 <xs:element ref="Payload" />
1179 <xs:element ref="PayloadGroupRef" />
1180 <xs:element ref="Payloads" />
1181 <xs:element ref="BundlePackagePayload" />
1182 <xs:element ref="ExitCode" />
1183 <xs:element ref="CommandLine" />
1184 <xs:element ref="Provides" />
1185 <xs:any namespace="##other" processContents="lax">
1186 <xs:annotation>
1187 <xs:documentation>
1188 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1189 elements at this point in the schema. The extension's
1190 <html:code>CompilerExtension.ParseElement()</html:code>
1191 method will be called with the package identifier as the first value in
1192 <html:code>contextValues</html:code>.
1193 </xs:documentation>
1194 </xs:annotation>
1195 </xs:any>
1196 </xs:choice>
1197 <xs:attributeGroup ref="ChainPackageCommonAttributes" />
1198 <xs:attributeGroup ref="ChainPackagePermanentAttribute" />
1199 <xs:attribute name="RepairCondition" type="xs:string">
1200 <xs:annotation>
1201 <xs:documentation>
1202 A condition that determines during Repair if the package will be repaired by default.
1203 This condition can use built-in variables and variables returned by searches.
1204 </xs:documentation>
1205 </xs:annotation>
1206 </xs:attribute>
1207 <xs:attribute name="InstallArguments" type="xs:string">
1208 <xs:annotation>
1209 <xs:documentation>
1210 The command-line arguments provided to the BundlePackage during install.
1211 </xs:documentation>
1212 </xs:annotation>
1213 </xs:attribute>
1214 <xs:attribute name="RepairArguments" type="xs:string">
1215 <xs:annotation>
1216 <xs:documentation>
1217 The command-line arguments provided to the BundlePackage during repair.
1218 "/repair" is added automatically.
1219 </xs:documentation>
1220 </xs:annotation>
1221 </xs:attribute>
1222 <xs:attribute name="UninstallArguments" type="xs:string">
1223 <xs:annotation>
1224 <xs:documentation>
1225 The command-line arguments provided to the BundlePackage during uninstall.
1226 "/uninstall" is added automatically.
1227 </xs:documentation>
1228 </xs:annotation>
1229 </xs:attribute>
1230 <xs:attribute name="Visible" type="YesNoTypeUnion">
1231 <xs:annotation>
1232 <xs:documentation>
1233 Specifies whether the bundle will be displayed in Programs and Features (also known as Add/Remove Programs).
1234 If "yes" is specified the bundle package information will be displayed in Programs and Features.
1235 "no" indicates the bundle will not be displayed.
1236 If not specified, the default is the value of the Permanent attribute.
1237 </xs:documentation>
1238 </xs:annotation>
1239 </xs:attribute>
1240 </xs:complexType>
1241 </xs:element>
1242 <xs:element name="RollbackBoundary">
1243 <xs:annotation>
1244 <xs:documentation>Describes a rollback boundary in the chain.</xs:documentation>
1245 </xs:annotation>
1246 <xs:complexType>
1247 <xs:choice minOccurs="0" maxOccurs="unbounded">
1248 <xs:any namespace="##other" processContents="lax">
1249 <xs:annotation>
1250 <xs:documentation>
1251 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1252 elements at this point in the schema. The extension's
1253 <html:code>CompilerExtension.ParseElement()</html:code>
1254 method will be called with the rollback boundary identifier as the 'RollbackBoundaryId' key in
1255 <html:code>contextValues</html:code>.
1256 </xs:documentation>
1257 </xs:annotation>
1258 </xs:any>
1259 </xs:choice>
1260 <xs:attribute name="Id" type="xs:string">
1261 <xs:annotation>
1262 <xs:documentation>
1263 Identifier for this rollback boundary, for ordering and cross-referencing. If this attribute is
1264 not provided a stable identifier will be generated.
1265 </xs:documentation>
1266 </xs:annotation>
1267 </xs:attribute>
1268 <xs:attribute name="Vital" type="YesNoTypeUnion">
1269 <xs:annotation>
1270 <xs:documentation>
1271 Specifies whether the rollback boundary aborts the chain. The default "yes" indicates that if
1272 the rollback boundary is encountered then the chain will fail and roll back or stop. If "no"
1273 is specified then the chain should continue successfuly at the next rollback boundary.
1274 </xs:documentation>
1275 </xs:annotation>
1276 </xs:attribute>
1277 <xs:attribute name="LogPathVariable" type="xs:string">
1278 <xs:annotation>
1279 <xs:documentation>
1280 Name of a Variable that will hold the path to the log file when the rollback boundary is a MSI package transaction.
1281 An empty value will cause the variable to not be set. The default is "WixBundleLog_[RollbackBoundaryId]".
1282 </xs:documentation>
1283 </xs:annotation>
1284 </xs:attribute>
1285 <xs:attribute name="Transaction" type="YesNoTypeUnion">
1286 <xs:annotation>
1287 <xs:documentation>
1288 Specifies whether the rollback boundary is wrapped in an MSI transaction. The default is "no".
1289 Only MsiPackages and MspPackages may be inside of a rollback boundary with Transaction set to "yes".
1290 </xs:documentation>
1291 </xs:annotation>
1292 </xs:attribute>
1293 </xs:complexType>
1294 </xs:element>
1295 <xs:attributeGroup name="ChainPackagePermanentAttribute">
1296 <xs:attribute name="Permanent" type="YesNoTypeUnion">
1297 <xs:annotation>
1298 <xs:documentation>
1299 Specifies whether the package can be uninstalled. The default is "no".
1300 </xs:documentation>
1301 </xs:annotation>
1302 </xs:attribute>
1303 </xs:attributeGroup>
1304 <xs:attributeGroup name="ChainPackageCommonAttributes">
1305 <xs:attribute name="SourceFile" type="xs:string">
1306 <xs:annotation>
1307 <xs:documentation>
1308 Location of the package to add to the bundle.
1309 The default value is the Name attribute, if provided.
1310 At a minimum, the SourceFile or Name attribute must be specified.
1311 Must not be specified if the package payload is given by the *PackagePayload element.
1312 </xs:documentation>
1313 </xs:annotation>
1314 </xs:attribute>
1315 <xs:attribute name="Name" type="xs:string">
1316 <xs:annotation>
1317 <xs:documentation>
1318 The destination path and file name for this chain payload. Use this attribute to rename the
1319 chain entry point or extract it into a subfolder. The default value is the file name from the
1320 SourceFile attribute, if provided. At a minimum, the Name or SourceFile attribute must be specified.
1321 This must be a relative path ('\foo' or 'C:\foo' is not allowed).
1322 Must not be specified if the package payload is given by the *PackagePayload element.
1323 </xs:documentation>
1324 </xs:annotation>
1325 </xs:attribute>
1326 <xs:attribute name="DownloadUrl" type="xs:string">
1327 <xs:annotation>
1328 <xs:documentation>
1329 <html:p>The URL to use to download the package. The following substitutions are supported:</html:p>
1330 <html:ul>
1331 <html:li>{0} is replaced by the package Id.</html:li>
1332 <html:li>{1} is replaced by the payload Id.</html:li>
1333 <html:li>{2} is replaced by the payload file name.</html:li>
1334 </html:ul>
1335 Must not be specified if the package payload is given by the *PackagePayload element.
1336 </xs:documentation>
1337 </xs:annotation>
1338 </xs:attribute>
1339 <xs:attribute name="Id" type="xs:string">
1340 <xs:annotation>
1341 <xs:documentation>
1342 Identifier for this package, for ordering and cross-referencing. The default is the Name attribute
1343 modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores).
1344 </xs:documentation>
1345 </xs:annotation>
1346 </xs:attribute>
1347 <xs:attribute name="After" type="xs:string">
1348 <xs:annotation>
1349 <xs:documentation>
1350 The identifier of another package that this one should be installed after. By default the After
1351 attribute is set to the previous sibling package in the Chain or PackageGroup element. If this
1352 attribute is specified ensure that a cycle is not created explicitly or implicitly.
1353 </xs:documentation>
1354 </xs:annotation>
1355 </xs:attribute>
1356 <xs:attribute name="InstallSize" type="xs:string">
1357 <xs:annotation>
1358 <xs:documentation>
1359 The size this package will take on disk in bytes after it is installed. By default, the binder will
1360 calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs)
1361 and use the total for the install size of the package.
1362 </xs:documentation>
1363 </xs:annotation>
1364 </xs:attribute>
1365 <xs:attribute name="InstallCondition" type="xs:string">
1366 <xs:annotation>
1367 <xs:documentation>
1368 A condition to evaluate before installing the package. The package will only be installed if the condition
1369 evaluates to true. If the condition evaluates to false and the bundle is being installed, repaired, or modified,
1370 the package will be uninstalled.
1371 </xs:documentation>
1372 </xs:annotation>
1373 </xs:attribute>
1374 <xs:attribute name="Cache" type="KeepRemoveForceTypeUnion">
1375 <xs:annotation>
1376 <xs:documentation>Whether to cache the package. The default is "keep".</xs:documentation>
1377 </xs:annotation>
1378 </xs:attribute>
1379 <xs:attribute name="CacheId" type="xs:string">
1380 <xs:annotation>
1381 <xs:documentation>The identifier to use when caching the package.</xs:documentation>
1382 </xs:annotation>
1383 </xs:attribute>
1384 <xs:attribute name="DisplayName" type="xs:string">
1385 <xs:annotation>
1386 <xs:documentation>
1387 Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages
1388 use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use
1389 the DisplayName patch metadata property. Other package types must use this attribute to define a display name in the
1390 bootstrapper application data manifest.
1391 </xs:documentation>
1392 </xs:annotation>
1393 </xs:attribute>
1394 <xs:attribute name="Description" type="xs:string">
1395 <xs:annotation>
1396 <xs:documentation>
1397 Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages
1398 use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use
1399 the Description patch metadata property. Other package types must use this attribute to define a description in the
1400 bootstrapper application data manifest.
1401 </xs:documentation>
1402 </xs:annotation>
1403 </xs:attribute>
1404 <xs:attribute name="LogPathVariable" type="xs:string">
1405 <xs:annotation>
1406 <xs:documentation>
1407 Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not
1408 be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging.
1409 </xs:documentation>
1410 </xs:annotation>
1411 </xs:attribute>
1412 <xs:attribute name="RollbackLogPathVariable" type="xs:string">
1413 <xs:annotation>
1414 <xs:documentation>
1415 Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause
1416 the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which
1417 default to no logging.
1418 </xs:documentation>
1419 </xs:annotation>
1420 </xs:attribute>
1421 <xs:attribute name="Vital" type="YesNoTypeUnion">
1422 <xs:annotation>
1423 <xs:documentation>
1424 Specifies whether the package must succeed for the chain to continue. The default "yes"
1425 indicates that if the package fails then the chain will fail and roll back or stop. If
1426 "no" is specified then the chain will continue even if the package reports failure.
1427 </xs:documentation>
1428 </xs:annotation>
1429 </xs:attribute>
1430 <xs:attribute name="Compressed" type="YesNoDefaultTypeUnion">
1431 <xs:annotation>
1432 <xs:documentation>
1433 Whether the package payload should be embedded in a container or left as an external payload.
1434 Must not be specified if the package payload is given by the *PackagePayload element.
1435 </xs:documentation>
1436 </xs:annotation>
1437 </xs:attribute>
1438 <xs:anyAttribute namespace="##other" processContents="lax">
1439 <xs:annotation>
1440 <xs:documentation>
1441 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1442 attributes at this point in the schema. The extension's
1443 <html:code>CompilerExtension.ParseAttribute()</html:code>
1444 method will be called with the package identifier in
1445 <html:code>contextValues["PackageId"]</html:code>.
1446 </xs:documentation>
1447 </xs:annotation>
1448 </xs:anyAttribute>
1449 </xs:attributeGroup>
1450 <xs:element name="PackageGroup">
1451 <xs:annotation>
1452 <xs:documentation>Describes a package group to a bootstrapper.</xs:documentation>
1453 <xs:appinfo>
1454 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1455 </xs:appinfo>
1456 </xs:annotation>
1457 <xs:complexType>
1458 <xs:choice minOccurs="0" maxOccurs="unbounded">
1459 <xs:element ref="MsiPackage" />
1460 <xs:element ref="MspPackage" />
1461 <xs:element ref="MsuPackage" />
1462 <xs:element ref="ExePackage" />
1463 <xs:element ref="BundlePackage" />
1464 <xs:element ref="RollbackBoundary" />
1465 <xs:element ref="PackageGroupRef" />
1466 </xs:choice>
1467 <xs:attribute name="Id" type="xs:string" use="required">
1468 <xs:annotation>
1469 <xs:documentation>Identifier for package group.</xs:documentation>
1470 </xs:annotation>
1471 </xs:attribute>
1472 </xs:complexType>
1473 </xs:element>
1474 <xs:element name="PackageGroupRef">
1475 <xs:annotation>
1476 <xs:documentation>Create a reference to PackageGroup element that exists inside a Bundle or Fragment element.</xs:documentation>
1477 <xs:appinfo>
1478 <xse:seeAlso ref="PackageGroup" />
1479 </xs:appinfo>
1480 </xs:annotation>
1481 <xs:complexType>
1482 <xs:attribute name="Id" type="xs:string" use="required">
1483 <xs:annotation>
1484 <xs:documentation>The identifier of the PackageGroup element to reference.</xs:documentation>
1485 </xs:annotation>
1486 </xs:attribute>
1487 <xs:attribute name="After" type="xs:string">
1488 <xs:annotation>
1489 <xs:documentation>The identifier of a package that this group should be installed after.</xs:documentation>
1490 </xs:annotation>
1491 </xs:attribute>
1492 </xs:complexType>
1493 </xs:element>
1494 <xs:element name="MsiProperty">
1495 <xs:annotation>
1496 <xs:documentation>Allows an MSI property to be set based on the value of a burn engine expression.</xs:documentation>
1497 <xs:appinfo>
1498 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="MsiPackage" />
1499 </xs:appinfo>
1500 </xs:annotation>
1501 <xs:complexType>
1502 <xs:attribute name="Name" type="xs:string" use="required">
1503 <xs:annotation>
1504 <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>
1505 </xs:annotation>
1506 </xs:attribute>
1507 <xs:attribute name="Value" type="xs:string" use="required">
1508 <xs:annotation>
1509 <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>
1510 </xs:annotation>
1511 </xs:attribute>
1512 <xs:attribute name="Condition" type="xs:string">
1513 <xs:annotation>
1514 <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>
1515 </xs:annotation>
1516 </xs:attribute>
1517 </xs:complexType>
1518 </xs:element>
1519 <xs:element name="SlipstreamMsp">
1520 <xs:annotation>
1521 <xs:documentation>Specifies a patch included in the same bundle that is installed when the parent MSI package is installed.</xs:documentation>
1522 <xs:appinfo>
1523 <xse:seeAlso ref="MspPackage" />
1524 <xse:remarks>
1525 <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>
1526 </xse:remarks>
1527 </xs:appinfo>
1528 </xs:annotation>
1529 <xs:complexType>
1530 <xs:attribute name="Id" type="xs:string" use="required">
1531 <xs:annotation>
1532 <xs:documentation>The identifier for a MspPackage in the bundle.</xs:documentation>
1533 </xs:annotation>
1534 </xs:attribute>
1535 </xs:complexType>
1536 </xs:element>
1537 <xs:element name="Variable">
1538 <xs:annotation>
1539 <xs:documentation>Describes a burn engine variable to define.</xs:documentation>
1540 </xs:annotation>
1541 <xs:complexType>
1542 <xs:attribute name="Hidden" type="YesNoTypeUnion">
1543 <xs:annotation>
1544 <xs:documentation>Whether the value of the variable should be hidden.</xs:documentation>
1545 </xs:annotation>
1546 </xs:attribute>
1547 <xs:attribute name="Name" type="xs:string" use="required">
1548 <xs:annotation>
1549 <xs:documentation>The name for the variable.</xs:documentation>
1550 </xs:annotation>
1551 </xs:attribute>
1552 <xs:attribute name="Persisted" type="YesNoTypeUnion">
1553 <xs:annotation>
1554 <xs:documentation>Whether the variable should be persisted.</xs:documentation>
1555 </xs:annotation>
1556 </xs:attribute>
1557 <xs:attribute name="Value" type="xs:string">
1558 <xs:annotation>
1559 <xs:documentation>Starting value for the variable.</xs:documentation>
1560 </xs:annotation>
1561 </xs:attribute>
1562 <xs:attribute name="Type" type="VariableType">
1563 <xs:annotation>
1564 <xs:documentation>Type of the variable, inferred from the value if not specified.</xs:documentation>
1565 </xs:annotation>
1566 </xs:attribute>
1567 <xs:anyAttribute namespace="##other" processContents="lax">
1568 <xs:annotation>
1569 <xs:documentation>
1570 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1571 attributes at this point in the schema.
1572 </xs:documentation>
1573 </xs:annotation>
1574 </xs:anyAttribute>
1575 </xs:complexType>
1576 </xs:element>
1577 <xs:attributeGroup name="SearchCommonAttributes">
1578 <xs:attribute name="Id" type="xs:string">
1579 <xs:annotation>
1580 <xs:documentation>Id of the search for ordering and dependency.</xs:documentation>
1581 </xs:annotation>
1582 </xs:attribute>
1583 <xs:attribute name="Variable" type="xs:string" use="required">
1584 <xs:annotation>
1585 <xs:documentation>Name of the variable in which to place the result of the search.</xs:documentation>
1586 </xs:annotation>
1587 </xs:attribute>
1588 <xs:attribute name="Condition" type="xs:string">
1589 <xs:annotation>
1590 <xs:documentation>Condition for evaluating the search. If this evaluates to false, the search is not executed at all.</xs:documentation>
1591 </xs:annotation>
1592 </xs:attribute>
1593 <xs:attribute name="After" type="xs:string">
1594 <xs:annotation>
1595 <xs:documentation>Id of the search that this one should come after.</xs:documentation>
1596 </xs:annotation>
1597 </xs:attribute>
1598 </xs:attributeGroup>
1599 <xs:element name="SetVariable">
1600 <xs:annotation>
1601 <xs:documentation>Schedules a "search" that sets a variable to the given value.</xs:documentation>
1602 </xs:annotation>
1603 <xs:complexType>
1604 <xs:attributeGroup ref="SearchCommonAttributes" />
1605 <xs:attribute name="Value" type="xs:string">
1606 <xs:annotation>
1607 <xs:documentation>
1608 New value for the variable. This string gets formatted, then converted to the specified type, then assigned to the variable.
1609 Leaving Value and Type unspecified will clear the variable.
1610 </xs:documentation>
1611 </xs:annotation>
1612 </xs:attribute>
1613 <xs:attribute name="Type" type="VariableType">
1614 <xs:annotation>
1615 <xs:documentation>Type of the variable, inferred from the value if not specified.</xs:documentation>
1616 </xs:annotation>
1617 </xs:attribute>
1618 <xs:anyAttribute namespace="##other" processContents="lax">
1619 <xs:annotation>
1620 <xs:documentation>
1621 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1622 attributes at this point in the schema.
1623 </xs:documentation>
1624 </xs:annotation>
1625 </xs:anyAttribute>
1626 </xs:complexType>
1627 </xs:element>
1628 <xs:element name="SetVariableRef">
1629 <xs:annotation>
1630 <xs:appinfo>
1631 <xse:seeAlso ref="SetVariable" />
1632 </xs:appinfo>
1633 <xs:documentation>Used to reference a SetVariable element.</xs:documentation>
1634 </xs:annotation>
1635 <xs:complexType>
1636 <xs:choice minOccurs="0" maxOccurs="unbounded">
1637 <xs:any namespace="##other" processContents="lax">
1638 <xs:annotation>
1639 <xs:documentation>
1640 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1641 elements at this point in the schema.
1642 </xs:documentation>
1643 </xs:annotation>
1644 </xs:any>
1645 </xs:choice>
1646 <xs:attribute name="Id" type="xs:string" use="required">
1647 <xs:annotation>
1648 <xs:documentation>The identifier of the SetVariable element to reference.</xs:documentation>
1649 </xs:annotation>
1650 </xs:attribute>
1651 <xs:anyAttribute namespace="##other" processContents="lax">
1652 <xs:annotation>
1653 <xs:documentation>
1654 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1655 attributes at this point in the schema.
1656 </xs:documentation>
1657 </xs:annotation>
1658 </xs:anyAttribute>
1659 </xs:complexType>
1660 </xs:element>
1661 <xs:element name="Container">
1662 <xs:annotation>
1663 <xs:documentation>Representation of a file that contains one or more files.</xs:documentation>
1664 </xs:annotation>
1665 <xs:complexType>
1666 <xs:choice minOccurs="0" maxOccurs="unbounded">
1667 <xs:element ref="PackageGroupRef" />
1668 </xs:choice>
1669 <xs:attribute name="DownloadUrl" type="xs:string">
1670 <xs:annotation>
1671 <xs:documentation>
1672 <html:p>The URL to use to download the container. This attribute is only valid when the container is detached. The
1673 following substitutions are supported:</html:p>
1674 <html:ul>
1675 <html:li>{0} is always null.</html:li>
1676 <html:li>{1} is replaced by the container Id.</html:li>
1677 <html:li>{2} is replaced by the container file name.</html:li>
1678 </html:ul>
1679 </xs:documentation>
1680 </xs:annotation>
1681 </xs:attribute>
1682 <xs:attribute name="Id" type="xs:string">
1683 <xs:annotation>
1684 <xs:documentation>The unique identifier for the container. If this attribute is not specified the Name attribute will be used.</xs:documentation>
1685 </xs:annotation>
1686 </xs:attribute>
1687 <xs:attribute name="Name" type="xs:string">
1688 <xs:annotation>
1689 <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>
1690 </xs:annotation>
1691 </xs:attribute>
1692 <xs:attribute name="Type" type="BurnContainerType">
1693 <xs:annotation>
1694 <xs:documentation>
1695 Indicates whether the container is "attached" to the bundle executable or placed external to the bundle extecutable as "detached". If
1696 this attribute is not specified, the default is to create a detached container.
1697 </xs:documentation>
1698 </xs:annotation>
1699 </xs:attribute>
1700 </xs:complexType>
1701 </xs:element>
1702 <xs:element name="ContainerRef">
1703 <xs:annotation>
1704 <xs:documentation>Create a reference to an existing Container element.</xs:documentation>
1705 <xs:appinfo>
1706 <xse:seeAlso ref="Container" />
1707 </xs:appinfo>
1708 </xs:annotation>
1709 <xs:complexType>
1710 <xs:attribute name="Id" type="xs:string" use="required">
1711 <xs:annotation>
1712 <xs:documentation>The identifier of Container element to reference.</xs:documentation>
1713 </xs:annotation>
1714 </xs:attribute>
1715 </xs:complexType>
1716 </xs:element>
1717 <xs:element name="ArpEntry">
1718 <xs:annotation>
1719 <xs:documentation>
1720 Information about the Add/Remove Programs entry that is installed by the package.
1721 ArpEntry may not be specified with DetectCondition or UninstallArguments.
1722 </xs:documentation>
1723 </xs:annotation>
1724 <xs:complexType>
1725 <xs:attribute name="Id" type="xs:string" use="required">
1726 <xs:annotation>
1727 <xs:documentation>
1728 The id of the ARP entry.
1729 </xs:documentation>
1730 </xs:annotation>
1731 </xs:attribute>
1732 <xs:attribute name="Win64" type="YesNoTypeUnion" use="required">
1733 <xs:annotation>
1734 <xs:documentation>
1735 Whether the ARP entry is 64-bit.
1736 </xs:documentation>
1737 </xs:annotation>
1738 </xs:attribute>
1739 <xs:attribute name="Version" type="xs:string" use="required">
1740 <xs:annotation>
1741 <xs:documentation>
1742 The DisplayVersion value of the ARP entry that is installed by this package.
1743 Older or missing versions cause this package to be detected as absent.
1744 Newer versions cause this package to be detected as obsolete.
1745 </xs:documentation>
1746 </xs:annotation>
1747 </xs:attribute>
1748 <xs:attribute name="AdditionalUninstallArguments" type="xs:string">
1749 <xs:annotation>
1750 <xs:documentation>
1751 Additional arguments for the uninstall command line.
1752 </xs:documentation>
1753 </xs:annotation>
1754 </xs:attribute>
1755 <xs:attribute name="UseUninstallString" type="YesNoTypeUnion">
1756 <xs:annotation>
1757 <xs:documentation>
1758 If yes, use the `UninstallString` value instead of the default `QuietUninstallString`.
1759 </xs:documentation>
1760 </xs:annotation>
1761 </xs:attribute>
1762 </xs:complexType>
1763 </xs:element>
1764 <xs:element name="ExitCode">
1765 <xs:annotation>
1766 <xs:documentation>Describes map of exit code returned from executable package to a bootstrapper behavior.</xs:documentation>
1767 </xs:annotation>
1768 <xs:complexType>
1769 <xs:attribute name="Value" type="NegativeInteger">
1770 <xs:annotation>
1771 <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>
1772 </xs:annotation>
1773 </xs:attribute>
1774 <xs:attribute name="Behavior" use="required">
1775 <xs:annotation>
1776 <xs:documentation>Choose one of the supported behaviors error codes: success, error, scheduleReboot, forceReboot, errorScheduleReboot, errorForceReboot.</xs:documentation>
1777 </xs:annotation>
1778 <xs:simpleType>
1779 <xs:restriction base="xs:string">
1780 <xs:enumeration value="success">
1781 <xs:annotation>
1782 <xs:documentation>The process completed successfully.</xs:documentation>
1783 </xs:annotation>
1784 </xs:enumeration>
1785 <xs:enumeration value="error">
1786 <xs:annotation>
1787 <xs:documentation>The process failed.</xs:documentation>
1788 </xs:annotation>
1789 </xs:enumeration>
1790 <xs:enumeration value="scheduleReboot">
1791 <xs:annotation>
1792 <xs:documentation>The process completed successfully and requires the machine to be restarted.</xs:documentation>
1793 </xs:annotation>
1794 </xs:enumeration>
1795 <xs:enumeration value="forceReboot">
1796 <xs:annotation>
1797 <xs:documentation>The process completed successfully and initiated a restart.</xs:documentation>
1798 </xs:annotation>
1799 </xs:enumeration>
1800 <xs:enumeration value="errorScheduleReboot">
1801 <xs:annotation>
1802 <xs:documentation>The process failed and requires the machine to be restarted.</xs:documentation>
1803 </xs:annotation>
1804 </xs:enumeration>
1805 <xs:enumeration value="errorForceReboot">
1806 <xs:annotation>
1807 <xs:documentation>The process failed and initiated a restart.</xs:documentation>
1808 </xs:annotation>
1809 </xs:enumeration>
1810 </xs:restriction>
1811 </xs:simpleType>
1812 </xs:attribute>
1813 </xs:complexType>
1814 </xs:element>
1815 <xs:element name="CommandLine">
1816 <xs:annotation>
1817 <xs:documentation>Describes additional, conditional command-line arguments for an ExePackage or BundlePackage.</xs:documentation>
1818 </xs:annotation>
1819 <xs:complexType>
1820 <xs:attribute name="InstallArgument" type="xs:string">
1821 <xs:annotation>
1822 <xs:documentation>Additional command-line arguments to apply during package installation if Condition is true.</xs:documentation>
1823 </xs:annotation>
1824 </xs:attribute>
1825 <xs:attribute name="UninstallArgument" type="xs:string">
1826 <xs:annotation>
1827 <xs:documentation>Additional command-line arguments to apply during package uninstallation if Condition is true.</xs:documentation>
1828 </xs:annotation>
1829 </xs:attribute>
1830 <xs:attribute name="RepairArgument" type="xs:string">
1831 <xs:annotation>
1832 <xs:documentation>Additional command-line arguments to apply during package repair if Condition is true.</xs:documentation>
1833 </xs:annotation>
1834 </xs:attribute>
1835 <xs:attribute name="Condition" type="xs:string">
1836 <xs:annotation>
1837 <xs:documentation>
1838 The condition that controls whether the command-line arguments specified in the
1839 InstallArgument, UninstallArgument, or RepairArgument attributes are appended to the
1840 command line passed to the package. Which attribute is used depends on the
1841 action being applied to the package. For example, when the package is
1842 being installed, the InstallArgument attribute value is appended to the command
1843 line when the package is executed.
1844 </xs:documentation>
1845 </xs:annotation>
1846 </xs:attribute>
1847 </xs:complexType>
1848 </xs:element>
1849 <xs:element name="Payload">
1850 <xs:annotation>
1851 <xs:documentation>Describes a payload to a bootstrapper.</xs:documentation>
1852 </xs:annotation>
1853 <xs:complexType>
1854 <xs:attribute name="Id" type="xs:string">
1855 <xs:annotation>
1856 <xs:documentation>The identifier of Payload element.</xs:documentation>
1857 </xs:annotation>
1858 </xs:attribute>
1859 <xs:attribute name="CertificatePublicKey" type="xs:string">
1860 <xs:annotation>
1861 <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>
1862 </xs:annotation>
1863 </xs:attribute>
1864 <xs:attribute name="CertificateThumbprint" type="xs:string">
1865 <xs:annotation>
1866 <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>
1867 </xs:annotation>
1868 </xs:attribute>
1869 <xs:attribute name="Compressed" type="YesNoDefaultTypeUnion">
1870 <xs:annotation>
1871 <xs:documentation>Whether the payload should be embedded in a container or left as an external payload.</xs:documentation>
1872 </xs:annotation>
1873 </xs:attribute>
1874 <xs:attribute name="Hash" type="xs:string">
1875 <xs:annotation>
1876 <xs:documentation>Optional SHA256 hash of the payload. Must be provided if the SourceFile attribute is not used.</xs:documentation>
1877 </xs:annotation>
1878 </xs:attribute>
1879 <xs:attribute name="Size" type="Integer">
1880 <xs:annotation>
1881 <xs:documentation>Optional size of the payload in bytes. Required if Hash is specified, otherwise must not be specified.</xs:documentation>
1882 </xs:annotation>
1883 </xs:attribute>
1884 <xs:attribute name="SourceFile" type="xs:string">
1885 <xs:annotation>
1886 <xs:documentation>
1887 Location of the source file.
1888 The default value is the Name attribute, if provided.
1889 At a minimum, the SourceFile or Name attribute must be specified.
1890 </xs:documentation>
1891 </xs:annotation>
1892 </xs:attribute>
1893 <xs:attribute name="Name" type="xs:string">
1894 <xs:annotation>
1895 <xs:documentation>
1896 The destination path and file name for this payload.
1897 The default is the source file name.
1898 At a minimum, the Name or SourceFile attribute must be specified.
1899 This must be a relative path ('\foo' or 'C:\foo' is not allowed).
1900 </xs:documentation>
1901 </xs:annotation>
1902 </xs:attribute>
1903 <xs:attribute name="DownloadUrl" type="xs:string">
1904 <xs:annotation>
1905 <xs:documentation>
1906 <html:p>The URL to use to download the package. The following substitutions are supported:</html:p>
1907 <html:ul>
1908 <html:li>{0} is replaced by the package Id.</html:li>
1909 <html:li>{1} is replaced by the payload Id.</html:li>
1910 <html:li>{2} is replaced by the payload file name.</html:li>
1911 </html:ul>
1912 </xs:documentation>
1913 </xs:annotation>
1914 </xs:attribute>
1915 <xs:anyAttribute namespace="##other" processContents="lax">
1916 <xs:annotation>
1917 <xs:documentation>
1918 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1919 attributes at this point in the schema.
1920 </xs:documentation>
1921 </xs:annotation>
1922 </xs:anyAttribute>
1923 </xs:complexType>
1924 </xs:element>
1925 <xs:element name="PayloadGroup">
1926 <xs:annotation>
1927 <xs:documentation>
1928 Describes a payload group to a bootstrapper. PayloadGroups referenced from within a Bundle are tied to the Bundle.
1929 PayloadGroups referenced from a Fragment are tied to the context of whatever references them such as an ExePackage or MsiPackage.
1930 It is possible to share a PayloadGroup between multiple Packages and/or a Bundle by creating multiple references to it.
1931 </xs:documentation>
1932 </xs:annotation>
1933 <xs:complexType>
1934 <xs:choice minOccurs="0" maxOccurs="unbounded">
1935 <xs:element ref="BundlePackagePayload" />
1936 <xs:element ref="ExePackagePayload" />
1937 <xs:element ref="MsiPackagePayload" />
1938 <xs:element ref="MspPackagePayload" />
1939 <xs:element ref="MsuPackagePayload" />
1940 <xs:element ref="Payload" />
1941 <xs:element ref="PayloadGroupRef" />
1942 <xs:element ref="Payloads" />
1943 </xs:choice>
1944 <xs:attribute name="Id" type="xs:string" use="required">
1945 <xs:annotation>
1946 <xs:documentation>Identifier for payload group.</xs:documentation>
1947 </xs:annotation>
1948 </xs:attribute>
1949 </xs:complexType>
1950 </xs:element>
1951 <xs:element name="PayloadGroupRef">
1952 <xs:annotation>
1953 <xs:documentation>Create a reference to PayloadGroup element that exists inside a Bundle or Fragment element.</xs:documentation>
1954 <xs:appinfo>
1955 <xse:seeAlso ref="PayloadGroup" />
1956 </xs:appinfo>
1957 </xs:annotation>
1958 <xs:complexType>
1959 <xs:attribute name="Id" type="xs:string" use="required">
1960 <xs:annotation>
1961 <xs:documentation>The identifier of the PayloadGroup element to reference.</xs:documentation>
1962 </xs:annotation>
1963 </xs:attribute>
1964 </xs:complexType>
1965 </xs:element>
1966 <xs:element name="BundlePackagePayload">
1967 <xs:annotation>
1968 <xs:documentation>
1969 Describes information about the BundlePackage payload.
1970 Cannot be specified if the owning BundlePackage specified any of SourceFile, Name, DownloadUrl, or Compressed.
1971 </xs:documentation>
1972 </xs:annotation>
1973 <xs:complexType>
1974 <xs:choice minOccurs="0" maxOccurs="unbounded">
1975 <xs:element ref="RemoteBundle" minOccurs="0" maxOccurs="1" />
1976 <xs:any namespace="##other" processContents="lax">
1977 <xs:annotation>
1978 <xs:documentation>
1979 Extensibility point in the WiX XML Schema. Schema extensions can register additional
1980 elements at this point in the schema.
1981 </xs:documentation>
1982 </xs:annotation>
1983 </xs:any>
1984 </xs:choice>
1985 <xs:attribute name="PayloadGeneration">
1986 <xs:annotation>
1987 <xs:documentation>
1988 Choose one of the supported payload generation types: none, externalWithoutDownloadUrl, external, all.
1989 </xs:documentation>
1990 </xs:annotation>
1991 <xs:simpleType>
1992 <xs:restriction base="xs:string">
1993 <xs:enumeration value="none">
1994 <xs:annotation>
1995 <xs:documentation>
1996 None of the bundle's payloads or containers are automatically included as payloads for the package.
1997 </xs:documentation>
1998 </xs:annotation>
1999 </xs:enumeration>
2000 <xs:enumeration value="externalWithoutDownloadUrl">
2001 <xs:annotation>
2002 <xs:documentation>
2003 All detached containers from the bundle that have no download url are included as payloads for the package,
2004 as well as all external payloads from the bundle that have no download url.
2005 </xs:documentation>
2006 </xs:annotation>
2007 </xs:enumeration>
2008 <xs:enumeration value="external">
2009 <xs:annotation>
2010 <xs:documentation>
2011 All detached containers from the bundle are included as payloads for the package,
2012 as well as all external payloads from the bundle.
2013 </xs:documentation>
2014 </xs:annotation>
2015 </xs:enumeration>
2016 <xs:enumeration value="all">
2017 <xs:annotation>
2018 <xs:documentation>
2019 All detached containers from the bundle are included as payloads for the package,
2020 as well as all other payloads that are not compressed into the detached containers.
2021 This option normally requires extra work to use since it requires all attached containers to have been extracted.
2022 </xs:documentation>
2023 </xs:annotation>
2024 </xs:enumeration>
2025 </xs:restriction>
2026 </xs:simpleType>
2027 </xs:attribute>
2028 <xs:attributeGroup ref="ChainPackagePayloadCommonAttributes" />
2029 <xs:attributeGroup ref="RemotePackagePayloadCommonAttributes" />
2030 </xs:complexType>
2031 </xs:element>
2032 <xs:element name="ExePackagePayload">
2033 <xs:annotation>
2034 <xs:documentation>
2035 Describes information about the ExePackage payload.
2036 Cannot be specified if the owning ExePackage specified any of SourceFile, Name, DownloadUrl, or Compressed.
2037 </xs:documentation>
2038 </xs:annotation>
2039 <xs:complexType>
2040 <xs:attributeGroup ref="ChainPackagePayloadCommonAttributes" />
2041 <xs:attributeGroup ref="RemotePackagePayloadCommonAttributes" />
2042 </xs:complexType>
2043 </xs:element>
2044 <xs:element name="MsiPackagePayload">
2045 <xs:annotation>
2046 <xs:documentation>
2047 Describes information about the MsiPackage payload.
2048 Cannot be specified if the owning MsiPackage specified any of SourceFile, Name, DownloadUrl, or Compressed.
2049 </xs:documentation>
2050 </xs:annotation>
2051 <xs:complexType>
2052 <xs:attributeGroup ref="ChainPackagePayloadCommonAttributes" />
2053 <xs:attributeGroup ref="LocalPackagePayloadCommonAttributes" />
2054 </xs:complexType>
2055 </xs:element>
2056 <xs:element name="MspPackagePayload">
2057 <xs:annotation>
2058 <xs:documentation>
2059 Describes information about the MspPackage payload.
2060 Cannot be specified if the owning MspPackage specified any of SourceFile, Name, DownloadUrl, or Compressed.
2061 </xs:documentation>
2062 </xs:annotation>
2063 <xs:complexType>
2064 <xs:attributeGroup ref="ChainPackagePayloadCommonAttributes" />
2065 <xs:attributeGroup ref="LocalPackagePayloadCommonAttributes" />
2066 </xs:complexType>
2067 </xs:element>
2068 <xs:element name="MsuPackagePayload">
2069 <xs:annotation>
2070 <xs:documentation>
2071 Describes information about the MsuPackage payload.
2072 Cannot be specified if the owning MsuPackage specified any of SourceFile, Name, DownloadUrl, or Compressed.
2073 </xs:documentation>
2074 </xs:annotation>
2075 <xs:complexType>
2076 <xs:attributeGroup ref="ChainPackagePayloadCommonAttributes" />
2077 <xs:attributeGroup ref="RemotePackagePayloadCommonAttributes" />
2078 </xs:complexType>
2079 </xs:element>
2080 <xs:attributeGroup name="ChainPackagePayloadCommonAttributes">
2081 <xs:attribute name="Id" type="xs:string">
2082 <xs:annotation>
2083 <xs:documentation>The identifier of the package payload element.</xs:documentation>
2084 </xs:annotation>
2085 </xs:attribute>
2086 <xs:attribute name="DownloadUrl" type="xs:string">
2087 <xs:annotation>
2088 <xs:documentation>
2089 <html:p>The URL to use to download the package. The following substitutions are supported:</html:p>
2090 <html:ul>
2091 <html:li>{0} is replaced by the package Id.</html:li>
2092 <html:li>{1} is replaced by the payload Id.</html:li>
2093 <html:li>{2} is replaced by the payload file name.</html:li>
2094 </html:ul>
2095 </xs:documentation>
2096 </xs:annotation>
2097 </xs:attribute>
2098 <xs:attribute name="Compressed" type="YesNoDefaultTypeUnion">
2099 <xs:annotation>
2100 <xs:documentation>Whether the package payload should be embedded in a container or left as an external payload.</xs:documentation>
2101 </xs:annotation>
2102 </xs:attribute>
2103 <xs:attribute name="Name" type="xs:string">
2104 <xs:annotation>
2105 <xs:documentation>
2106 The destination path and file name for this chain payload.
2107 Use this attribute to rename the chain entry point or extract it into a subfolder.
2108 The default value is the file name from the SourceFile attribute.
2109 At a minimum, the Name or SourceFile attribute must be specified.
2110 This must be a relative path ('\foo' or 'C:\foo' is not allowed).
2111 </xs:documentation>
2112 </xs:annotation>
2113 </xs:attribute>
2114 <xs:anyAttribute namespace="##other" processContents="lax" />
2115 </xs:attributeGroup>
2116 <xs:attributeGroup name="LocalPackagePayloadCommonAttributes">
2117 <xs:attribute name="SourceFile" type="xs:string">
2118 <xs:annotation>
2119 <xs:documentation>
2120 Location of the package to add to the bundle.
2121 The default value is the Name attribute, if provided.
2122 At a minimum, the SourceFile or Name attribute must be specified.
2123 </xs:documentation>
2124 </xs:annotation>
2125 </xs:attribute>
2126 </xs:attributeGroup>
2127 <xs:attributeGroup name="RemotePackagePayloadCommonAttributes">
2128 <xs:attribute name="SourceFile" type="xs:string">
2129 <xs:annotation>
2130 <xs:documentation>
2131 Location of the package to add to the bundle.
2132 The default value is the Name attribute, if provided.
2133 If Hash is specified, must not be specified.
2134 </xs:documentation>
2135 </xs:annotation>
2136 </xs:attribute>
2137 <xs:attribute name="CertificatePublicKey" type="xs:string">
2138 <xs:annotation>
2139 <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>
2140 </xs:annotation>
2141 </xs:attribute>
2142 <xs:attribute name="CertificateThumbprint" type="xs:string">
2143 <xs:annotation>
2144 <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>
2145 </xs:annotation>
2146 </xs:attribute>
2147 <xs:attribute name="Description" type="xs:string">
2148 <xs:annotation>
2149 <xs:documentation>
2150 Description of the file from version resources.
2151 If Hash is not specified, must not be specified.
2152 </xs:documentation>
2153 </xs:annotation>
2154 </xs:attribute>
2155 <xs:attribute name="Hash" type="HexType">
2156 <xs:annotation>
2157 <xs:documentation>
2158 SHA-512 hash of the RemotePayload.
2159 If SourceFile is specified, must not be specified.
2160 If specified then Name, DownloadUrl, and Size are required.
2161 </xs:documentation>
2162 </xs:annotation>
2163 </xs:attribute>
2164 <xs:attribute name="ProductName" type="xs:string">
2165 <xs:annotation>
2166 <xs:documentation>
2167 Product name of the file from version resouces.
2168 If Hash is not specified, must not be specified.
2169 </xs:documentation>
2170 </xs:annotation>
2171 </xs:attribute>
2172 <xs:attribute name="Size" type="Integer">
2173 <xs:annotation>
2174 <xs:documentation>
2175 Size of the remote file in bytes.
2176 Required if Hash is specified, otherwise must not be specified.
2177 </xs:documentation>
2178 </xs:annotation>
2179 </xs:attribute>
2180 <xs:attribute name="Version" type="WixVersionType">
2181 <xs:annotation>
2182 <xs:documentation>
2183 Version of the remote file.
2184 If Hash is not specified, must not be specified.
2185 </xs:documentation>
2186 </xs:annotation>
2187 </xs:attribute>
2188 </xs:attributeGroup>
2189 <xs:element name="RemoteBundle">
2190 <xs:annotation>
2191 <xs:documentation>
2192 Describes information about the referenced Bundle.
2193 </xs:documentation>
2194 </xs:annotation>
2195 <xs:complexType>
2196 <xs:choice minOccurs="0" maxOccurs="unbounded">
2197 <xs:element ref="RemoteRelatedBundle" />
2198 <xs:any namespace="##other" processContents="lax">
2199 <xs:annotation>
2200 <xs:documentation>
2201 Extensibility point in the WiX XML Schema. Schema extensions can register additional
2202 elements at this point in the schema.
2203 </xs:documentation>
2204 </xs:annotation>
2205 </xs:any>
2206 </xs:choice>
2207 <xs:attribute name="BundleId" type="Guid" use="required">
2208 <xs:annotation>
2209 <xs:documentation>
2210 The id of the bundle.
2211 </xs:documentation>
2212 </xs:annotation>
2213 </xs:attribute>
2214 <xs:attribute name="DisplayName" type="xs:string">
2215 <xs:annotation>
2216 <xs:documentation>
2217 The display name of the bundle.
2218 </xs:documentation>
2219 </xs:annotation>
2220 </xs:attribute>
2221 <xs:attribute name="EngineVersion" type="xs:string">
2222 <xs:annotation>
2223 <xs:documentation>
2224 The version of the bundle's engine.
2225 </xs:documentation>
2226 </xs:annotation>
2227 </xs:attribute>
2228 <xs:attribute name="InstallSize" type="xs:string">
2229 <xs:annotation>
2230 <xs:documentation>
2231 The size this bundle will take on disk in bytes after it is installed.
2232 </xs:documentation>
2233 </xs:annotation>
2234 </xs:attribute>
2235 <xs:attribute name="ManifestNamespace" type="xs:string" use="required">
2236 <xs:annotation>
2237 <xs:documentation>
2238 The namespace of the bundle's manifest.
2239 </xs:documentation>
2240 </xs:annotation>
2241 </xs:attribute>
2242 <xs:attribute name="PerMachine" type="YesNoTypeUnion" use="required">
2243 <xs:annotation>
2244 <xs:documentation>
2245 Whether the bundle is per-machine.
2246 </xs:documentation>
2247 </xs:annotation>
2248 </xs:attribute>
2249 <xs:attribute name="ProtocolVersion" type="Integer" use="required">
2250 <xs:annotation>
2251 <xs:documentation>
2252 The protocol version of the related bundle.
2253 </xs:documentation>
2254 </xs:annotation>
2255 </xs:attribute>
2256 <xs:attribute name="ProviderKey" type="xs:string" use="required">
2257 <xs:annotation>
2258 <xs:documentation>
2259 The provider key of the bundle.
2260 </xs:documentation>
2261 </xs:annotation>
2262 </xs:attribute>
2263 <xs:attribute name="UpgradeCode" type="Guid" use="required">
2264 <xs:annotation>
2265 <xs:documentation>
2266 An upgrade code of the bundle.
2267 </xs:documentation>
2268 </xs:annotation>
2269 </xs:attribute>
2270 <xs:attribute name="Version" type="xs:string" use="required">
2271 <xs:annotation>
2272 <xs:documentation>
2273 The version of the bundle.
2274 </xs:documentation>
2275 </xs:annotation>
2276 </xs:attribute>
2277 <xs:attribute name="Win64" type="YesNoTypeUnion" use="required">
2278 <xs:annotation>
2279 <xs:documentation>
2280 Whether the bundle is 64-bit.
2281 </xs:documentation>
2282 </xs:annotation>
2283 </xs:attribute>
2284 <xs:anyAttribute namespace="##other" processContents="lax">
2285 <xs:annotation>
2286 <xs:documentation>
2287 Extensibility point in the WiX XML Schema. Schema extensions can register additional
2288 attributes at this point in the schema.
2289 </xs:documentation>
2290 </xs:annotation>
2291 </xs:anyAttribute>
2292 </xs:complexType>
2293 </xs:element>
2294 <xs:element name="RemoteRelatedBundle">
2295 <xs:annotation>
2296 <xs:documentation>
2297 Defines a related bundle for the parent RemoteBundle.
2298 </xs:documentation>
2299 </xs:annotation>
2300 <xs:complexType>
2301 <xs:choice minOccurs="0" maxOccurs="unbounded">
2302 <xs:any namespace="##other" processContents="lax">
2303 <xs:annotation>
2304 <xs:documentation>
2305 Extensibility point in the WiX XML Schema. Schema extensions can register additional
2306 elements at this point in the schema.
2307 </xs:documentation>
2308 </xs:annotation>
2309 </xs:any>
2310 </xs:choice>
2311 <xs:attribute name="Id" type="Guid" use="required">
2312 <xs:annotation>
2313 <xs:documentation>The identifier of the RelatedBundle group.</xs:documentation>
2314 </xs:annotation>
2315 </xs:attribute>
2316 <xs:attribute name="Action" use="required">
2317 <xs:annotation>
2318 <xs:documentation>The action to take on bundles related to this one.</xs:documentation>
2319 </xs:annotation>
2320 <xs:simpleType>
2321 <xs:restriction base="xs:string">
2322 <xs:enumeration value="detect" />
2323 <xs:enumeration value="upgrade" />
2324 <xs:enumeration value="addon" />
2325 <xs:enumeration value="patch" />
2326 </xs:restriction>
2327 </xs:simpleType>
2328 </xs:attribute>
2329 <xs:anyAttribute namespace="##other" processContents="lax">
2330 <xs:annotation>
2331 <xs:documentation>
2332 Extensibility point in the WiX XML Schema. Schema extensions can register additional
2333 attributes at this point in the schema.
2334 </xs:documentation>
2335 </xs:annotation>
2336 </xs:anyAttribute>
2337 </xs:complexType>
2338 </xs:element>
2339 <xs:element name="RelatedBundle">
2340 <xs:annotation>
2341 <xs:documentation>Defines a related bundle for the parent Bundle.</xs:documentation>
2342 </xs:annotation>
2343 <xs:complexType>
2344 <xs:choice minOccurs="0" maxOccurs="unbounded">
2345 <xs:any namespace="##other" processContents="lax">
2346 <xs:annotation>
2347 <xs:documentation>
2348 Extensibility point in the WiX XML Schema. Schema extensions can register additional
2349 elements at this point in the schema.
2350 </xs:documentation>
2351 </xs:annotation>
2352 </xs:any>
2353 </xs:choice>
2354 <xs:attribute name="Id" type="Guid">
2355 <xs:annotation>
2356 <xs:appinfo>
2357 <xse:deprecated ref="Code" />
2358 </xs:appinfo>
2359 </xs:annotation>
2360 </xs:attribute>
2361 <xs:attribute name="Code" type="Guid" use="required">
2362 <xs:annotation>
2363 <xs:documentation>The identifier of the RelatedBundle group.</xs:documentation>
2364 </xs:annotation>
2365 </xs:attribute>
2366 <xs:attribute name="Action" use="optional">
2367 <xs:annotation>
2368 <xs:documentation>The action to take on bundles related to this one. Detect is the default.</xs:documentation>
2369 </xs:annotation>
2370 <xs:simpleType>
2371 <xs:restriction base="xs:string">
2372 <xs:enumeration value="detect" />
2373 <xs:enumeration value="upgrade" />
2374 <xs:enumeration value="addon" />
2375 <xs:enumeration value="patch" />
2376 </xs:restriction>
2377 </xs:simpleType>
2378 </xs:attribute>
2379 <xs:anyAttribute namespace="##other" processContents="lax">
2380 <xs:annotation>
2381 <xs:documentation>
2382 Extensibility point in the WiX XML Schema. Schema extensions can register additional
2383 attributes at this point in the schema.
2384 </xs:documentation>
2385 </xs:annotation>
2386 </xs:anyAttribute>
2387 </xs:complexType>
2388 </xs:element>
2389 <xs:element name="Update">
2390 <xs:annotation>
2391 <xs:documentation>Defines the update for a Bundle.</xs:documentation>
2392 </xs:annotation>
2393 <xs:complexType>
2394 <xs:attribute name="Location" type="xs:string" use="required">
2395 <xs:annotation>
2396 <xs:documentation>
2397 The absolute path or URL to check for an update bundle. Currently the engine provides this value
2398 in the IBootstrapperApplication::OnDetectUpdateBegin() and otherwise ignores the value. In the
2399 future the engine will be able to acquire an update bundle from the location and determine if it
2400 is newer than the current executing bundle.
2401 </xs:documentation>
2402 </xs:annotation>
2403 </xs:attribute>
2404 </xs:complexType>
2405 </xs:element>
2406 <xs:element name="Package">
2407 <xs:annotation>
2408 <xs:documentation>
2409 The Package element is analogous to the main function in a C program. When linking, only one Package section
2410 can be given to the build to produce a successful result. Using this element creates an MSI file which often
2411 referred to as a Product.
2412 </xs:documentation>
2413 <xs:appinfo>
2414 <xse:remarks>
2415 <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>
2416 </xse:remarks>
2417 </xs:appinfo>
2418 </xs:annotation>
2419 <xs:complexType>
2420 <xs:choice minOccurs="0" maxOccurs="unbounded">
2421 <xs:element ref="AdminExecuteSequence" />
2422 <xs:element ref="AdminUISequence" />
2423 <xs:element ref="AdvertiseExecuteSequence" />
2424 <xs:element ref="AppId" />
2425 <xs:element ref="Binary" />
2426 <xs:element ref="ComplianceCheck" />
2427 <xs:element ref="Component" />
2428 <xs:element ref="ComponentRef" />
2429 <xs:element ref="ComponentGroup" />
2430 <xs:element ref="ComponentGroupRef" />
2431 <xs:element ref="CustomAction" />
2432 <xs:element ref="CustomActionRef" />
2433 <xs:element ref="CustomTable" />
2434 <xs:element ref="CustomTableRef" />
2435 <xs:element ref="Directory" />
2436 <xs:element ref="DirectoryRef" />
2437 <xs:element ref="EmbeddedChainer" />
2438 <xs:element ref="EmbeddedChainerRef" />
2439 <xs:element ref="EnsureTable" />
2440 <xs:element ref="Feature" />
2441 <xs:element ref="FeatureRef" />
2442 <xs:element ref="FeatureGroupRef" />
2443 <xs:element ref="File" />
2444 <xs:element ref="Files" />
2445 <xs:element ref="Icon" />
2446 <xs:element ref="InstallExecuteSequence" />
2447 <xs:element ref="InstallUISequence" />
2448 <xs:element ref="InstanceTransforms" />
2449 <xs:element ref="Launch" />
2450 <xs:element ref="MajorUpgrade" />
2451 <xs:element ref="Media" />
2452 <xs:element ref="MediaTemplate" />
2453 <xs:element ref="PackageCertificates" />
2454 <xs:element ref="PatchCertificates" />
2455 <xs:element ref="Property" />
2456 <xs:element ref="PropertyRef" />
2457 <xs:element ref="Requires" />
2458 <xs:element ref="SetDirectory" />
2459 <xs:element ref="SetProperty" />
2460 <xs:element ref="SFPCatalog" />
2461 <xs:element ref="SoftwareTag" />
2462 <xs:element ref="StandardDirectory" />
2463 <xs:element ref="SummaryInformation" />
2464 <xs:element ref="SymbolPath" />
2465 <xs:element ref="UI" />
2466 <xs:element ref="UIRef" />
2467 <xs:element ref="Upgrade" />
2468 <xs:element ref="WixVariable" />
2469 <xs:any namespace="##other" processContents="lax">
2470 <xs:annotation>
2471 <xs:documentation>
2472 Extensibility point in the WiX XML Schema. Schema extensions can register additional
2473 elements at this point in the schema.
2474 </xs:documentation>
2475 </xs:annotation>
2476 </xs:any>
2477 </xs:choice>
2478 <xs:attribute name="Codepage" type="xs:string">
2479 <xs:annotation>
2480 <xs:documentation>
2481 The code page integer value or web name for the resulting MSI. See remarks for more information.
2482 The default codepage is 65001 (UTF-8).
2483 </xs:documentation>
2484 </xs:annotation>
2485 </xs:attribute>
2486 <xs:attribute name="Compressed" type="YesNoTypeUnion">
2487 <xs:annotation>
2488 <xs:documentation>Indicates whether the package files are compressed. Default is compressed packages.</xs:documentation>
2489 </xs:annotation>
2490 </xs:attribute>
2491 <xs:attribute name="Id" type="xs:string">
2492 <xs:annotation>
2493 <xs:documentation>
2494 _New in WiX v6: WiX v6 adds this attribute to the `Package` element._
2495 A globally unique identiifer for the package in the world. It is recommended to use a prefix such as "CompanyName." to
2496 create a namespace of sorts. By default, higher versioned upgrade lower versioned packages with the same Id. Use this
2497 attibute instead of the UpgradeCode attribute in new development.
2498 </xs:documentation>
2499 </xs:annotation>
2500 </xs:attribute>
2501 <xs:attribute name="InstallerVersion" type="Integer">
2502 <xs:annotation>
2503 <xs:documentation>
2504 The minimum version of the Windows Installer required to install this package. Take the major version of the required Windows Installer
2505 and multiply by a 100 then add the minor version of the Windows Installer. For example, "200" would represent Windows Installer 2.0 and
2506 "405" would represent Windows Installer 4.5. This value is defaulted to "500" which is the latest version of the Windows Installer and
2507 present in Windows 7 and later.
2508 </xs:documentation>
2509 </xs:annotation>
2510 </xs:attribute>
2511 <xs:attribute name="Language" type="LocalizableInteger">
2512 <xs:annotation>
2513 <xs:documentation>The decimal language ID (LCID) for the product. Sets the ProductLanguage property.</xs:documentation>
2514 </xs:annotation>
2515 </xs:attribute>
2516 <xs:attribute name="Manufacturer" type="xs:string" use="required">
2517 <xs:annotation>
2518 <xs:documentation>The manufacturer of the package. Sets the Manufacturer property.</xs:documentation>
2519 </xs:annotation>
2520 </xs:attribute>
2521 <xs:attribute name="Name" type="xs:string" use="required">
2522 <xs:annotation>
2523 <xs:documentation>The descriptive name of the product. Sets the ProductName property.</xs:documentation>
2524 </xs:annotation>
2525 </xs:attribute>
2526 <xs:attribute name="ProductCode" type="AutogenGuid">
2527 <xs:annotation>
2528 <xs:documentation>
2529 Optional ProductCode GUID for the package. By default, a new ProductCode property will be
2530 generated with every build enabling major upgrades.
2531 </xs:documentation>
2532 </xs:annotation>
2533 </xs:attribute>
2534 <xs:attribute name="Scope" type="PackageScopeTypeUnion">
2535 <xs:annotation>
2536 <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>
2537 </xs:annotation>
2538 </xs:attribute>
2539 <xs:attribute name="ShortNames" type="YesNoTypeUnion">
2540 <xs:annotation>
2541 <xs:documentation>Indicates whether the package files are installed using 8.3 filenames. The default is no.</xs:documentation>
2542 </xs:annotation>
2543 </xs:attribute>
2544 <xs:attribute name="UpgradeCode" type="Guid">
2545 <xs:annotation>
2546 <xs:documentation>
2547 For new packages, it is recommended to use the Id attribute instead. This attribute exists for
2548 backwards compatibility scenarios. Use this attribute to provide a specific upgrade code GUID
2549 for a MSI package. See <html:a href="https://learn.microsoft.com/en-us/windows/win32/msi/upgradecode">UpgradeCode</html:a>
2550 for more information.
2551 </xs:documentation>
2552 </xs:annotation>
2553 </xs:attribute>
2554 <xs:attribute name="UpgradeStrategy" type="UpgradeStrategyTypeUnion">
2555 <xs:annotation>
2556 <xs:documentation>
2557 _New in WiX v5: WiX v5 adds this attribute to the `Package` element._
2558 The upgrade strategy for the package. If "none," no major upgrade is expected.
2559 If "majorUpgrade," the UpgradeCode attribute is required and a major upgrade is expected.
2560 The default is "majorUpgrade."
2561 A default major upgrade is automatically provided if none is authored.
2562 </xs:documentation>
2563 </xs:annotation>
2564 </xs:attribute>
2565 <xs:attribute name="Version" type="xs:string" use="required">
2566 <xs:annotation>
2567 <xs:documentation>The product's version string. Sets the ProductVersion property.</xs:documentation>
2568 </xs:annotation>
2569 </xs:attribute>
2570 <xs:anyAttribute namespace="##other" processContents="lax">
2571 <xs:annotation>
2572 <xs:documentation>
2573 Extensibility point in the WiX XML Schema. Schema extensions can register additional
2574 attributes at this point in the schema.
2575 </xs:documentation>
2576 </xs:annotation>
2577 </xs:anyAttribute>
2578 </xs:complexType>
2579 </xs:element>
2580 <xs:element name="Module">
2581 <xs:annotation>
2582 <xs:documentation>
2583 The Module element is analogous to the main function in a C program. When linking, only
2584 one Module section can be given to the linker to produce a successful result. Using this
2585 element creates an msm file.
2586 </xs:documentation>
2587 </xs:annotation>
2588 <xs:complexType>
2589 <xs:choice minOccurs="0" maxOccurs="unbounded">
2590 <xs:element ref="AppId" />
2591 <xs:element ref="Binary" />
2592 <xs:element ref="Component" />
2593 <xs:element ref="ComponentGroupRef" />
2594 <xs:element ref="ComponentRef" />
2595 <xs:element ref="Configuration" />
2596 <xs:element ref="CustomAction" />
2597 <xs:element ref="CustomActionRef" />
2598 <xs:element ref="CustomTable" />
2599 <xs:element ref="CustomTableRef" />
2600 <xs:element ref="Dependency" />
2601 <xs:element ref="Directory" />
2602 <xs:element ref="DirectoryRef" />
2603 <xs:element ref="EmbeddedChainer" />
2604 <xs:element ref="EmbeddedChainerRef" />
2605 <xs:element ref="EnsureTable" />
2606 <xs:element ref="Exclusion" />
2607 <xs:element ref="File" />
2608 <xs:element ref="Files" />
2609 <xs:element ref="Icon" />
2610 <xs:element ref="IgnoreTable" />
2611 <xs:element ref="Property" />
2612 <xs:element ref="PropertyRef" />
2613 <xs:element ref="Requires" />
2614 <xs:element ref="SetDirectory" />
2615 <xs:element ref="SetProperty" />
2616 <xs:element ref="SFPCatalog" />
2617 <xs:element ref="StandardDirectory" />
2618 <xs:element ref="Substitution" />
2619 <xs:element ref="SummaryInformation" />
2620 <xs:element ref="UI" />
2621 <xs:element ref="UIRef" />
2622 <xs:element ref="WixVariable" />
2623 <xs:element ref="InstallExecuteSequence" />
2624 <xs:element ref="InstallUISequence" />
2625 <xs:element ref="AdminExecuteSequence" />
2626 <xs:element ref="AdminUISequence" />
2627 <xs:element ref="AdvertiseExecuteSequence" />
2628 <xs:any namespace="##other" processContents="lax">
2629 <xs:annotation>
2630 <xs:documentation>
2631 Extensibility point in the WiX XML Schema. Schema extensions can register additional
2632 elements at this point in the schema.
2633 </xs:documentation>
2634 </xs:annotation>
2635 </xs:any>
2636 </xs:choice>
2637 <xs:attribute name="Id" type="xs:string" use="required">
2638 <xs:annotation>
2639 <xs:documentation>The name of the merge module (not the file name).</xs:documentation>
2640 </xs:annotation>
2641 </xs:attribute>
2642 <xs:attribute name="Codepage" type="xs:string">
2643 <xs:annotation>
2644 <xs:documentation>
2645 The code page integer value or web name for the resulting MSM. You can specify any valid Windows
2646 code by by integer like 1252, or by web name like Windows-1252. See [Code pages](../../../tools/codepage/)
2647 for more information.
2648 </xs:documentation>
2649 </xs:annotation>
2650 </xs:attribute>
2651 <xs:attribute name="Guid" type="Guid">
2652 <xs:annotation>
2653 <xs:documentation>The GUID of the Merge Module that will be appended to primary keys in the database.</xs:documentation>
2654 </xs:annotation>
2655 </xs:attribute>
2656 <xs:attribute name="InstallerVersion" type="Integer">
2657 <xs:annotation>
2658 <xs:documentation>
2659 The minimum version of the Windows Installer required to install this package. Take the major version of the required Windows Installer
2660 and multiply by a 100 then add the minor version of the Windows Installer. For example, "200" would represent Windows Installer 2.0 and
2661 "405" would represent Windows Installer 4.5. This value is defaulted to "500" which is the latest version of the Windows Installer and
2662 present in Windows 7 and later.
2663 </xs:documentation>
2664 </xs:annotation>
2665 </xs:attribute>
2666 <xs:attribute name="Language" type="LocalizableInteger" use="required">
2667 <xs:annotation>
2668 <xs:documentation>The decimal language ID (LCID) of the merge module.</xs:documentation>
2669 </xs:annotation>
2670 </xs:attribute>
2671 <xs:attribute name="Version" type="xs:string" use="required">
2672 <xs:annotation>
2673 <xs:documentation>The major and minor versions of the merge module.</xs:documentation>
2674 </xs:annotation>
2675 </xs:attribute>
2676 </xs:complexType>
2677 </xs:element>
2678 <xs:element name="Dependency">
2679 <xs:annotation>
2680 <xs:documentation>Declares a dependency on another merge module.</xs:documentation>
2681 </xs:annotation>
2682 <xs:complexType>
2683 <xs:attribute name="RequiredId" type="xs:string" use="required">
2684 <xs:annotation>
2685 <xs:documentation>Identifier of the merge module required by the merge module.</xs:documentation>
2686 </xs:annotation>
2687 </xs:attribute>
2688 <xs:attribute name="RequiredLanguage" type="Integer" use="required">
2689 <xs:annotation>
2690 <xs:documentation>Numeric language ID of the merge module in RequiredID.</xs:documentation>
2691 </xs:annotation>
2692 </xs:attribute>
2693 <xs:attribute name="RequiredVersion" type="xs:string">
2694 <xs:annotation>
2695 <xs:documentation>Version of the merge module in RequiredID.</xs:documentation>
2696 </xs:annotation>
2697 </xs:attribute>
2698 </xs:complexType>
2699 </xs:element>
2700 <xs:element name="Exclusion">
2701 <xs:annotation>
2702 <xs:documentation>Declares a merge module with which this merge module is incompatible.</xs:documentation>
2703 </xs:annotation>
2704 <xs:complexType>
2705 <xs:attribute name="ExcludedId" type="xs:string" use="required">
2706 <xs:annotation>
2707 <xs:documentation>Identifier of the merge module that is incompatible.</xs:documentation>
2708 </xs:annotation>
2709 </xs:attribute>
2710 <xs:attribute name="ExcludeExceptLanguage" type="Integer">
2711 <xs:annotation>
2712 <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>
2713 </xs:annotation>
2714 </xs:attribute>
2715 <xs:attribute name="ExcludeLanguage" type="Integer">
2716 <xs:annotation>
2717 <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>
2718 </xs:annotation>
2719 </xs:attribute>
2720 <xs:attribute name="ExcludedMinVersion" type="xs:string">
2721 <xs:annotation>
2722 <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>
2723 </xs:annotation>
2724 </xs:attribute>
2725 <xs:attribute name="ExcludedMaxVersion" type="xs:string">
2726 <xs:annotation>
2727 <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>
2728 </xs:annotation>
2729 </xs:attribute>
2730 </xs:complexType>
2731 </xs:element>
2732 <xs:element name="Configuration">
2733 <xs:annotation>
2734 <xs:documentation>Defines the configurable attributes of merge module.</xs:documentation>
2735 </xs:annotation>
2736 <xs:complexType>
2737 <xs:attribute name="Name" type="xs:string" use="required">
2738 <xs:annotation>
2739 <xs:documentation>Defines the name of the configurable item.</xs:documentation>
2740 </xs:annotation>
2741 </xs:attribute>
2742 <xs:attribute name="Format" use="required">
2743 <xs:annotation>
2744 <xs:documentation>Specifies the format of the data being changed.</xs:documentation>
2745 </xs:annotation>
2746 <xs:simpleType>
2747 <xs:restriction base="xs:string">
2748 <xs:enumeration value="Text" />
2749 <xs:enumeration value="Key" />
2750 <xs:enumeration value="Integer" />
2751 <xs:enumeration value="Bitfield" />
2752 </xs:restriction>
2753 </xs:simpleType>
2754 </xs:attribute>
2755 <xs:attribute name="Type" type="xs:string">
2756 <xs:annotation>
2757 <xs:documentation>Specifies the type of the data being changed.</xs:documentation>
2758 </xs:annotation>
2759 </xs:attribute>
2760 <xs:attribute name="ContextData" type="xs:string">
2761 <xs:annotation>
2762 <xs:documentation>Specifies a semantic context for the requested data.</xs:documentation>
2763 </xs:annotation>
2764 </xs:attribute>
2765 <xs:attribute name="DefaultValue" type="xs:string">
2766 <xs:annotation>
2767 <xs:documentation>Specifies a default value for the item in this record if the merge tool declines to provide a value.</xs:documentation>
2768 </xs:annotation>
2769 </xs:attribute>
2770 <xs:attribute name="KeyNoOrphan" type="YesNoTypeUnion">
2771 <xs:annotation>
2772 <xs:documentation>Does not merge rule according to rules in MSI SDK.</xs:documentation>
2773 </xs:annotation>
2774 </xs:attribute>
2775 <xs:attribute name="NonNullable" type="YesNoTypeUnion">
2776 <xs:annotation>
2777 <xs:documentation>If yes, null is not a valid entry.</xs:documentation>
2778 </xs:annotation>
2779 </xs:attribute>
2780 <xs:attribute name="DisplayName" type="xs:string">
2781 <xs:annotation>
2782 <xs:documentation>Display name for authoring.</xs:documentation>
2783 </xs:annotation>
2784 </xs:attribute>
2785 <xs:attribute name="Description" type="xs:string">
2786 <xs:annotation>
2787 <xs:documentation>Description for authoring.</xs:documentation>
2788 </xs:annotation>
2789 </xs:attribute>
2790 <xs:attribute name="HelpLocation" type="xs:string">
2791 <xs:annotation>
2792 <xs:documentation>Location of chm file for authoring.</xs:documentation>
2793 </xs:annotation>
2794 </xs:attribute>
2795 <xs:attribute name="HelpKeyword" type="xs:string">
2796 <xs:annotation>
2797 <xs:documentation>Keyword into chm file for authoring.</xs:documentation>
2798 </xs:annotation>
2799 </xs:attribute>
2800 </xs:complexType>
2801 </xs:element>
2802 <xs:element name="Substitution">
2803 <xs:annotation>
2804 <xs:documentation>Specifies the configurable fields of a module database and provides a template for the configuration of each field.</xs:documentation>
2805 </xs:annotation>
2806 <xs:complexType>
2807 <xs:attribute name="Table" type="xs:string" use="required">
2808 <xs:annotation>
2809 <xs:documentation>Specifies the name of the table being modified in the module database.</xs:documentation>
2810 </xs:annotation>
2811 </xs:attribute>
2812 <xs:attribute name="Row" type="xs:string" use="required">
2813 <xs:annotation>
2814 <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>
2815 </xs:annotation>
2816 </xs:attribute>
2817 <xs:attribute name="Column" type="xs:string" use="required">
2818 <xs:annotation>
2819 <xs:documentation>Specifies the target column in the row named in the Row column.</xs:documentation>
2820 </xs:annotation>
2821 </xs:attribute>
2822 <xs:attribute name="Value" type="xs:string">
2823 <xs:annotation>
2824 <xs:documentation>Provides a formatting template for the data being substituted into the target field specified by Table, Row, and Column.</xs:documentation>
2825 </xs:annotation>
2826 </xs:attribute>
2827 </xs:complexType>
2828 </xs:element>
2829 <xs:element name="IgnoreTable">
2830 <xs:annotation>
2831 <xs:documentation>
2832 Specifies a table from the merge module that is not merged into an .msi file.
2833 If the table already exists in an .msi file, it is not modified by the merge.
2834 The specified table can therefore contain data that is unneeded after the merge.
2835 To minimize the size of the .msm file, it is recommended that developers remove
2836 unused tables from modules intended for redistribution rather than creating
2837 IgnoreTable elements for those tables.
2838 </xs:documentation>
2839 </xs:annotation>
2840 <xs:complexType>
2841 <xs:attribute name="Id" type="xs:string" use="required">
2842 <xs:annotation>
2843 <xs:documentation>
2844 The name of the table in the merge module that is not to be merged into the .msi file.
2845 </xs:documentation>
2846 </xs:annotation>
2847 </xs:attribute>
2848 </xs:complexType>
2849 </xs:element>
2850 <xs:element name="Fragment">
2851 <xs:annotation>
2852 <xs:documentation>
2853 The Fragment element is the building block of creating an installer database in WiX. Once defined,
2854 the Fragment becomes an immutable, atomic unit which can either be completely included or excluded
2855 from a product. The contents of a Fragment element can be linked into a product by utilizing one
2856 of the many *Ref elements. When linking in a Fragment, it will be necessary to link in all of its
2857 individual units. For instance, if a given Fragment contains two Component elements, you must link
2858 both under features using ComponentRef for each linked Component. Otherwise, you will get a linker
2859 warning and have a floating Component that does not appear under any Feature.
2860 </xs:documentation>
2861 </xs:annotation>
2862 <xs:complexType>
2863 <xs:choice minOccurs="0" maxOccurs="unbounded">
2864 <xs:element ref="AdminExecuteSequence" />
2865 <xs:element ref="AdminUISequence" />
2866 <xs:element ref="AdvertiseExecuteSequence" />
2867 <xs:element ref="AppId" />
2868 <xs:element ref="Binary" />
2869 <xs:element ref="BootstrapperApplication" />
2870 <xs:element ref="BootstrapperApplicationRef" />
2871 <xs:element ref="BootstrapperExtension" />
2872 <xs:element ref="BootstrapperExtensionRef" />
2873 <xs:element ref="BundleCustomData" />
2874 <xs:element ref="BundleCustomDataRef" />
2875 <xs:element ref="BundleExtension" />
2876 <xs:element ref="BundleExtensionRef" />
2877 <xs:element ref="ComplianceCheck" />
2878 <xs:element ref="Component" />
2879 <xs:element ref="ComponentGroup" />
2880 <xs:element ref="Container" />
2881 <xs:element ref="CustomAction" />
2882 <xs:element ref="CustomActionRef" />
2883 <xs:element ref="CustomTable" />
2884 <xs:element ref="CustomTableRef" />
2885 <xs:element ref="Directory" />
2886 <xs:element ref="DirectoryRef" />
2887 <xs:element ref="EmbeddedChainer" />
2888 <xs:element ref="EmbeddedChainerRef" />
2889 <xs:element ref="EnsureTable" />
2890 <xs:element ref="Feature" />
2891 <xs:element ref="FeatureGroup" />
2892 <xs:element ref="FeatureRef" />
2893 <xs:element ref="File" />
2894 <xs:element ref="Files" />
2895 <xs:element ref="Icon" />
2896 <xs:element ref="InstallExecuteSequence" />
2897 <xs:element ref="InstallUISequence" />
2898 <xs:element ref="Launch" />
2899 <xs:element ref="Media" />
2900 <xs:element ref="MediaTemplate" />
2901 <xs:element ref="PackageGroup" />
2902 <xs:element ref="PackageCertificates" />
2903 <xs:element ref="PatchCertificates" />
2904 <xs:element ref="PatchFamily" />
2905 <xs:element ref="PatchFamilyGroup"/>
2906 <xs:element ref="PatchFamilyGroupRef"/>
2907 <xs:element ref="PayloadGroup" />
2908 <xs:element ref="Property" />
2909 <xs:element ref="PropertyRef" />
2910 <xs:element ref="RelatedBundle" />
2911 <xs:element ref="Requires" />
2912 <xs:element ref="SetDirectory" />
2913 <xs:element ref="SetProperty" />
2914 <xs:element ref="SetVariable" />
2915 <xs:element ref="SetVariableRef" />
2916 <xs:element ref="SFPCatalog" />
2917 <xs:element ref="StandardDirectory" />
2918 <xs:element ref="UI" />
2919 <xs:element ref="UIRef" />
2920 <xs:element ref="Upgrade" />
2921 <xs:element ref="Variable" />
2922 <xs:element ref="WixVariable" />
2923 <xs:any namespace="##other" processContents="lax">
2924 <xs:annotation>
2925 <xs:documentation>
2926 Extensibility point in the WiX XML Schema. Schema extensions can register additional
2927 elements at this point in the schema.
2928 </xs:documentation>
2929 </xs:annotation>
2930 </xs:any>
2931 </xs:choice>
2932 <xs:attribute name="Id" type="xs:string">
2933 <xs:annotation>
2934 <xs:documentation>
2935 Optional identifier for a Fragment. Should only be set by advanced users to tag sections.
2936 </xs:documentation>
2937 </xs:annotation>
2938 </xs:attribute>
2939 </xs:complexType>
2940 </xs:element>
2941 <xs:element name="Patch">
2942 <xs:annotation>
2943 <xs:documentation>
2944 The Patch element is analogous to the main function in a C program. When linking, only one Patch section
2945 can be given to the linker to produce a successful result. Using this element creates an MSP file.
2946 </xs:documentation>
2947 <xs:appinfo>
2948 <xse:remarks>
2949 <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>
2950 <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>
2951 <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>
2952 <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>
2953 </xse:remarks>
2954 </xs:appinfo>
2955 </xs:annotation>
2956 <xs:complexType>
2957 <xs:sequence>
2958 <xs:choice minOccurs="0" maxOccurs="unbounded">
2959 <xs:element ref="PatchInformation" minOccurs="0" maxOccurs="1">
2960 <xs:annotation>
2961 <xs:documentation>Optional element that allows overriding summary information properties.</xs:documentation>
2962 </xs:annotation>
2963 </xs:element>
2964 <xs:element ref="Media" minOccurs="1" maxOccurs="unbounded" />
2965 <xs:element ref="OptimizeCustomActions" minOccurs="0" maxOccurs="1">
2966 <xs:annotation>
2967 <xs:documentation>Indicates whether custom actions can be skipped when applying the patch.</xs:documentation>
2968 </xs:annotation>
2969 </xs:element>
2970 <xs:element ref="PatchFamily" minOccurs="1" maxOccurs="unbounded" />
2971 <xs:element ref="PatchFamilyRef" minOccurs="0" maxOccurs="unbounded" />
2972 <xs:element ref="PatchFamilyGroup" minOccurs="1" maxOccurs="unbounded"/>
2973 <xs:element ref="PatchFamilyGroupRef" minOccurs="0" maxOccurs="unbounded"/>
2974 <xs:element ref="PatchProperty" />
2975 <xs:element ref="TargetProductCodes" />
2976 <xs:any namespace="##other" processContents="lax">
2977 <xs:annotation>
2978 <xs:documentation>
2979 Extensibility point in the WiX XML Schema. Schema extensions can register additional
2980 elements at this point in the schema.
2981 </xs:documentation>
2982 </xs:annotation>
2983 </xs:any>
2984 </xs:choice>
2985 </xs:sequence>
2986 <xs:attribute name="Id" type="AutogenGuid">
2987 <xs:annotation>
2988 <xs:documentation>Patch code for this patch.</xs:documentation>
2989 </xs:annotation>
2990 </xs:attribute>
2991 <xs:attribute name="Codepage" type="xs:string">
2992 <xs:annotation>
2993 <xs:documentation>The code page integer value or web name for the resulting MSP. See remarks for more information.</xs:documentation>
2994 </xs:annotation>
2995 </xs:attribute>
2996 <xs:attribute name="AllowRemoval" type="YesNoTypeUnion">
2997 <xs:annotation>
2998 <xs:documentation>Whether this is an uninstallable patch.</xs:documentation>
2999 </xs:annotation>
3000 </xs:attribute>
3001 <xs:attribute name="Classification" type="xs:string" use="required">
3002 <xs:annotation>
3003 <xs:documentation>Category of updates. Recommended values are Critical Update, Hotfix, Security Rollup, Security Update, Service Pack, Update, Update Rollup.</xs:documentation>
3004 </xs:annotation>
3005 </xs:attribute>
3006 <xs:attribute name="ClientPatchId" type="xs:string">
3007 <xs:annotation>
3008 <xs:documentation>An easily referenced identity unique to a patch that can be used in product authoring. See remarks for more information.</xs:documentation>
3009 </xs:annotation>
3010 </xs:attribute>
3011 <xs:attribute name="ApiPatchingSymbolNoImagehlpFlag" type="YesNoTypeUnion">
3012 <xs:annotation>
3013 <xs:documentation>Flag used when creating a binary file patch. Default is "no". Don't use imagehlp.dll.</xs:documentation>
3014 </xs:annotation>
3015 </xs:attribute>
3016 <xs:attribute name="ApiPatchingSymbolNoFailuresFlag" type="YesNoTypeUnion">
3017 <xs:annotation>
3018 <xs:documentation>Flag used when creating a binary file patch. Default is "no". Don't fail patch due to imagehlp failures.</xs:documentation>
3019 </xs:annotation>
3020 </xs:attribute>
3021 <xs:attribute name="ApiPatchingSymbolUndecoratedTooFlag" type="YesNoTypeUnion">
3022 <xs:annotation>
3023 <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>
3024 </xs:annotation>
3025 </xs:attribute>
3026 <xs:attribute name="Description" type="xs:string" use="required">
3027 <xs:annotation>
3028 <xs:documentation>Description of the patch.</xs:documentation>
3029 </xs:annotation>
3030 </xs:attribute>
3031 <xs:attribute name="DisplayName" type="xs:string" use="required">
3032 <xs:annotation>
3033 <xs:documentation>A title for the patch that is suitable for public display. In Add/Remove Programs from XP SP2 on.</xs:documentation>
3034 </xs:annotation>
3035 </xs:attribute>
3036 <xs:attribute name="Comments" type="xs:string">
3037 <xs:annotation>
3038 <xs:documentation>Optional comments for browsing.</xs:documentation>
3039 </xs:annotation>
3040 </xs:attribute>
3041 <xs:attribute name="Manufacturer" type="xs:string">
3042 <xs:annotation>
3043 <xs:documentation>Vendor releasing the package</xs:documentation>
3044 </xs:annotation>
3045 </xs:attribute>
3046 <xs:attribute name="MinorUpdateTargetRTM" type="YesNoTypeUnion">
3047 <xs:annotation>
3048 <xs:documentation>
3049 Indicates that the patch targets the RTM version of the product or the most recent major
3050 upgrade patch. Author this optional property in minor update patches that contain sequencing
3051 information to indicate that the patch removes all patches up to the RTM version of the
3052 product, or up to the most recent major upgrade patch. This property is available beginning
3053 with Windows Installer 3.1.
3054 </xs:documentation>
3055 </xs:annotation>
3056 </xs:attribute>
3057 <xs:attribute name="MoreInfoURL" type="xs:string">
3058 <xs:annotation>
3059 <xs:documentation>A URL that provides information specific to this patch. In Add/Remove Programs from XP SP2 on.</xs:documentation>
3060 </xs:annotation>
3061 </xs:attribute>
3062 <xs:attribute name="OptimizedInstallMode" type="YesNoTypeUnion">
3063 <xs:annotation>
3064 <xs:documentation>
3065 If this attribute is set to 'yes' in all the patches to be applied in a transaction, the
3066 application of the patch is optimized if possible. Available beginning with Windows Installer 3.1.
3067 </xs:documentation>
3068 </xs:annotation>
3069 </xs:attribute>
3070 <xs:attribute name="TargetProductName" type="xs:string">
3071 <xs:annotation>
3072 <xs:documentation>Name of the application or target product suite.</xs:documentation>
3073 </xs:annotation>
3074 </xs:attribute>
3075 <xs:attribute name="OptimizePatchSizeForLargeFiles" type="YesNoTypeUnion">
3076 <xs:annotation>
3077 <xs:documentation>When this attribute is set, patches for files greater than approximately 4 MB in size may be made smaller.</xs:documentation>
3078 </xs:annotation>
3079 </xs:attribute>
3080 </xs:complexType>
3081 </xs:element>
3082 <xs:element name="Validate">
3083 <xs:annotation>
3084 <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>
3085 <xs:appinfo>
3086 <xse:remarks>
3087 <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>
3088 <html:ul>
3089 <html:li>ProductCode</html:li>
3090 <html:li>ProductLanguage</html:li>
3091 <html:li>ProductVersion</html:li>
3092 <html:li>UpgradeCode</html:li>
3093 </html:ul>
3094 <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>
3095 <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>
3096 </xse:remarks>
3097 </xs:appinfo>
3098 </xs:annotation>
3099 <xs:complexType>
3100 <xs:attribute name="ProductId" type="YesNoTypeUnion" default="yes">
3101 <xs:annotation>
3102 <xs:documentation>Requires that the installed ProductCode match the target ProductCode used to create the transform. The default is 'yes'.</xs:documentation>
3103 </xs:annotation>
3104 </xs:attribute>
3105 <xs:attribute name="ProductLanguage" type="YesNoTypeUnion" default="no">
3106 <xs:annotation>
3107 <xs:documentation>Requires that the installed ProductLanguage match the target ProductLanguage used to create the transform. The default is 'no'.</xs:documentation>
3108 </xs:annotation>
3109 </xs:attribute>
3110 <xs:attribute name="ProductVersion" default="Update">
3111 <xs:annotation>
3112 <xs:documentation>Determines how many fields of the installed ProductVersion to compare. See remarks for more information. The default is 'Update'.</xs:documentation>
3113 </xs:annotation>
3114 <xs:simpleType>
3115 <xs:restriction base="xs:NMTOKEN">
3116 <xs:enumeration value="Major">
3117 <xs:annotation>
3118 <xs:documentation>Checks the major version.</xs:documentation>
3119 </xs:annotation>
3120 </xs:enumeration>
3121 <xs:enumeration value="Minor">
3122 <xs:annotation>
3123 <xs:documentation>Checks the major and minor versions.</xs:documentation>
3124 </xs:annotation>
3125 </xs:enumeration>
3126 <xs:enumeration value="Update">
3127 <xs:annotation>
3128 <xs:documentation>Checks the major, minor, and update versions.</xs:documentation>
3129 </xs:annotation>
3130 </xs:enumeration>
3131 </xs:restriction>
3132 </xs:simpleType>
3133 </xs:attribute>
3134 <xs:attribute name="ProductVersionOperator" default="Equal">
3135 <xs:annotation>
3136 <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>
3137 </xs:annotation>
3138 <xs:simpleType>
3139 <xs:restriction base="xs:NMTOKEN">
3140 <xs:enumeration value="Lesser">
3141 <xs:annotation>
3142 <xs:documentation>Installed ProductVersion &lt; target ProductVersion.</xs:documentation>
3143 </xs:annotation>
3144 </xs:enumeration>
3145 <xs:enumeration value="LesserOrEqual">
3146 <xs:annotation>
3147 <xs:documentation>Installed ProductVersion &lt;= target ProductVersion.</xs:documentation>
3148 </xs:annotation>
3149 </xs:enumeration>
3150 <xs:enumeration value="Equal">
3151 <xs:annotation>
3152 <xs:documentation>Installed ProductVersion = target ProductVersion.</xs:documentation>
3153 </xs:annotation>
3154 </xs:enumeration>
3155 <xs:enumeration value="GreaterOrEqual">
3156 <xs:annotation>
3157 <xs:documentation>Installed ProductVersion &gt;= target ProductVersion.</xs:documentation>
3158 </xs:annotation>
3159 </xs:enumeration>
3160 <xs:enumeration value="Greater">
3161 <xs:annotation>
3162 <xs:documentation>Installed ProductVersion &gt; target ProductVersion.</xs:documentation>
3163 </xs:annotation>
3164 </xs:enumeration>
3165 </xs:restriction>
3166 </xs:simpleType>
3167 </xs:attribute>
3168 <xs:attribute name="UpgradeCode" type="YesNoTypeUnion" default="yes">
3169 <xs:annotation>
3170 <xs:documentation>Requires that the installed UpgradeCode match the target UpgradeCode used to create the transform. The default is 'yes'.</xs:documentation>
3171 </xs:annotation>
3172 </xs:attribute>
3173 <xs:attribute name="IgnoreAddExistingRow" type="YesNoTypeUnion" default="yes">
3174 <xs:annotation>
3175 <xs:documentation>Ignore errors when adding existing rows. The default is 'yes'.</xs:documentation>
3176 </xs:annotation>
3177 </xs:attribute>
3178 <xs:attribute name="IgnoreAddExistingTable" type="YesNoTypeUnion" default="yes">
3179 <xs:annotation>
3180 <xs:documentation>Ignore errors when adding existing tables. The default is 'yes'.</xs:documentation>
3181 </xs:annotation>
3182 </xs:attribute>
3183 <xs:attribute name="IgnoreDeleteMissingRow" type="YesNoTypeUnion" default="yes">
3184 <xs:annotation>
3185 <xs:documentation>Ignore errors when deleting missing rows. The default is 'yes'.</xs:documentation>
3186 </xs:annotation>
3187 </xs:attribute>
3188 <xs:attribute name="IgnoreDeleteMissingTable" type="YesNoTypeUnion" default="yes">
3189 <xs:annotation>
3190 <xs:documentation>Ignore errors when deleting missing tables. The default is 'yes'.</xs:documentation>
3191 </xs:annotation>
3192 </xs:attribute>
3193 <xs:attribute name="IgnoreUpdateMissingRow" type="YesNoTypeUnion" default="yes">
3194 <xs:annotation>
3195 <xs:documentation>Ignore errors when updating missing rows. The default is 'yes'.</xs:documentation>
3196 </xs:annotation>
3197 </xs:attribute>
3198 <xs:attribute name="IgnoreChangingCodePage" type="YesNoTypeUnion" default="no">
3199 <xs:annotation>
3200 <xs:documentation>Ignore errors when changing the database code page. The default is 'no'.</xs:documentation>
3201 </xs:annotation>
3202 </xs:attribute>
3203 </xs:complexType>
3204 </xs:element>
3205 <xs:element name="OptimizeCustomActions">
3206 <xs:annotation>
3207 <xs:documentation>Indicates whether custom actions can be skipped when applying the patch.</xs:documentation>
3208 <xs:appinfo>
3209 <xse:msiRef table="MsiPatchMetadata" href="http://msdn.microsoft.com/library/aa370344.aspx" />
3210 </xs:appinfo>
3211 </xs:annotation>
3212 <xs:complexType>
3213 <xs:attribute name="SkipAssignment" type="YesNoTypeUnion">
3214 <xs:annotation>
3215 <xs:documentation>Skip property (type 51) and directory (type 35) assignment custom actions.</xs:documentation>
3216 </xs:annotation>
3217 </xs:attribute>
3218 <xs:attribute name="SkipImmediate" type="YesNoTypeUnion">
3219 <xs:annotation>
3220 <xs:documentation>Skip immediate custom actions that are not property or directory assignment custom actions.</xs:documentation>
3221 </xs:annotation>
3222 </xs:attribute>
3223 <xs:attribute name="SkipDeferred" type="YesNoTypeUnion">
3224 <xs:annotation>
3225 <xs:documentation>Skip custom actions that run within the script.</xs:documentation>
3226 </xs:annotation>
3227 </xs:attribute>
3228 </xs:complexType>
3229 </xs:element>
3230 <xs:element name="PatchBaseline">
3231 <xs:annotation>
3232 <xs:documentation>Identifies a set of product versions.</xs:documentation>
3233 </xs:annotation>
3234 <xs:complexType>
3235 <xs:choice minOccurs="0">
3236 <xs:element ref="Validate" minOccurs="0" />
3237 </xs:choice>
3238 <xs:attribute name="Id" type="xs:string" use="required">
3239 <xs:annotation>
3240 <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>
3241 </xs:annotation>
3242 </xs:attribute>
3243 <xs:attribute name="BaselineFile" type="xs:string" use="required">
3244 <xs:annotation>
3245 <xs:documentation>Path to baseline MSI for patch.</xs:documentation>
3246 </xs:annotation>
3247 </xs:attribute>
3248 <xs:attribute name="UpdateFile" type="xs:string" use="required">
3249 <xs:annotation>
3250 <xs:documentation>Path to updated MSI for patch.</xs:documentation>
3251 </xs:annotation>
3252 </xs:attribute>
3253 <xs:attribute name="DiskId" type="Integer">
3254 <xs:annotation>
3255 <xs:documentation>Optional id for cabinet to place patched files in.</xs:documentation>
3256 </xs:annotation>
3257 </xs:attribute>
3258 </xs:complexType>
3259 </xs:element>
3260 <xs:element name="PatchFamily">
3261 <xs:annotation>
3262 <xs:documentation>Collection of items that should be kept from the differences between two products.</xs:documentation>
3263 </xs:annotation>
3264 <xs:complexType>
3265 <xs:choice minOccurs="0" maxOccurs="unbounded">
3266 <xs:element ref="All" minOccurs="0" />
3267 <xs:element ref="BinaryRef" minOccurs="0" maxOccurs="unbounded" />
3268 <xs:element ref="ComponentRef" minOccurs="0" maxOccurs="unbounded" />
3269 <xs:element ref="CustomActionRef" minOccurs="0" maxOccurs="unbounded" />
3270 <xs:element ref="DigitalCertificateRef" minOccurs="0" maxOccurs="unbounded" />
3271 <xs:element ref="DirectoryRef" minOccurs="0" maxOccurs="unbounded" />
3272 <xs:element ref="FeatureRef" minOccurs="0" maxOccurs="unbounded" />
3273 <xs:element ref="IconRef" minOccurs="0" maxOccurs="unbounded" />
3274 <xs:element ref="PropertyRef" minOccurs="0" maxOccurs="unbounded" />
3275 <xs:element ref="SoftwareTagRef" minOccurs="0" maxOccurs="unbounded" />
3276 <xs:element ref="UIRef" minOccurs="0" maxOccurs="unbounded" />
3277 <xs:any namespace="##other" processContents="lax">
3278 <xs:annotation>
3279 <xs:documentation>
3280 Extensibility point in the WiX XML Schema. Schema extensions can register additional
3281 elements at this point in the schema.
3282 </xs:documentation>
3283 </xs:annotation>
3284 </xs:any>
3285 </xs:choice>
3286 <xs:attribute name="Id" type="xs:string" use="required">
3287 <xs:annotation>
3288 <xs:documentation>Identifier which indicates a sequence family to which this patch belongs.</xs:documentation>
3289 </xs:annotation>
3290 </xs:attribute>
3291 <xs:attribute name="ProductCode" type="Guid">
3292 <xs:annotation>
3293 <xs:documentation>
3294 Specifies the ProductCode of the product that this family applies to.
3295 </xs:documentation>
3296 </xs:annotation>
3297 </xs:attribute>
3298 <xs:attribute name="Version" type="xs:string" use="required">
3299 <xs:annotation>
3300 <xs:documentation>
3301 Used to populate the sequence column of the MsiPatchSequence table in the final MSP file.
3302 Specified in x.x.x.x format. See documentation for Sequence column of MsiPatchSequence table in MSI SDK.
3303 </xs:documentation>
3304 </xs:annotation>
3305 </xs:attribute>
3306 <xs:attribute name="Supersede" type="YesNoTypeUnion">
3307 <xs:annotation>
3308 <xs:documentation>
3309 Set this value to 'yes' to indicate that this patch will supersede all previous patches in this patch family.
3310 The default value is 'no'.
3311 </xs:documentation>
3312 </xs:annotation>
3313 </xs:attribute>
3314 <xs:anyAttribute namespace="##other" processContents="lax">
3315 <xs:annotation>
3316 <xs:documentation>
3317 Extensibility point in the WiX XML Schema. Schema extensions can register additional
3318 attributes at this point in the schema.
3319 </xs:documentation>
3320 </xs:annotation>
3321 </xs:anyAttribute>
3322 </xs:complexType>
3323 </xs:element>
3324 <xs:element name="PatchFamilyGroup">
3325 <xs:annotation>
3326 <xs:documentation>
3327 Groups together multiple patch families to be used in other locations.
3328 </xs:documentation>
3329 <xs:appinfo>
3330 <xse:seeAlso ref="PatchFamilyGroupRef"/>
3331 </xs:appinfo>
3332 </xs:annotation>
3333 <xs:complexType>
3334 <xs:choice minOccurs="0" maxOccurs="unbounded">
3335 <xs:element ref="PatchFamily"/>
3336 <xs:element ref="PatchFamilyRef"/>
3337 <xs:element ref="PatchFamilyGroupRef"/>
3338 <xs:any namespace="##other" processContents="lax">
3339 <xs:annotation>
3340 <xs:documentation>
3341 Extensibility point in the WiX XML Schema. Schema extensions can register additional
3342 elements at this point in the schema.
3343 </xs:documentation>
3344 </xs:annotation>
3345 </xs:any>
3346 </xs:choice>
3347 <xs:attribute name="Id" type="xs:string" use="required">
3348 <xs:annotation>
3349 <xs:documentation>Identifier for the PatchFamilyGroup.</xs:documentation>
3350 </xs:annotation>
3351 </xs:attribute>
3352 <xs:anyAttribute namespace="##other" processContents="lax">
3353 <xs:annotation>
3354 <xs:documentation>
3355 Extensibility point in the WiX XML Schema. Schema extensions can register additional
3356 attributes at this point in the schema.
3357 </xs:documentation>
3358 </xs:annotation>
3359 </xs:anyAttribute>
3360 </xs:complexType>
3361</xs:element>
3362<xs:element name="PatchFamilyGroupRef">
3363 <xs:annotation>
3364 <xs:documentation>Create a reference to a PatchFamilyGroup in another Fragment.</xs:documentation>
3365 <xs:appinfo>
3366 <xse:seeAlso ref="PatchFamilyGroup" />
3367 </xs:appinfo>
3368 </xs:annotation>
3369 <xs:complexType>
3370 <xs:attribute name="Id" type="xs:string" use="required">
3371 <xs:annotation>
3372 <xs:documentation>The identifier of the PatchFamilyGroup to reference.</xs:documentation>
3373 </xs:annotation>
3374 </xs:attribute>
3375 <xs:anyAttribute namespace="##other" processContents="lax">
3376 <xs:annotation>
3377 <xs:documentation>
3378 Extensibility point in the WiX XML Schema. Schema extensions can register additional
3379 attributes at this point in the schema.
3380 </xs:documentation>
3381 </xs:annotation>
3382 </xs:anyAttribute>
3383 </xs:complexType>
3384</xs:element>
3385 <xs:element name="PatchCreation">
3386 <xs:annotation>
3387 <xs:documentation>
3388 The PatchCreation element is analogous to the main function in a C program. When linking, only one PatchCreation section
3389 can be given to the linker to produce a successful result. Using this element creates a pcp file.
3390 </xs:documentation>
3391 <xs:appinfo>
3392 <xse:remarks>
3393 <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>
3394 </xse:remarks>
3395 </xs:appinfo>
3396 </xs:annotation>
3397 <xs:complexType>
3398 <xs:sequence>
3399 <xs:element ref="PatchInformation" />
3400 <xs:element ref="PatchMetadata" minOccurs="0" />
3401 <xs:element ref="Family" maxOccurs="unbounded" />
3402 <xs:choice minOccurs="0" maxOccurs="unbounded">
3403 <xs:element ref="PatchProperty" />
3404 <xs:element ref="PatchSequence" />
3405 <xs:element ref="ReplacePatch" />
3406 <xs:element ref="TargetProductCode" />
3407 </xs:choice>
3408 </xs:sequence>
3409 <xs:attribute name="Id" type="Guid" use="required">
3410 <xs:annotation>
3411 <xs:documentation>PatchCreation identifier; this is the primary key for identifying patches.</xs:documentation>
3412 </xs:annotation>
3413 </xs:attribute>
3414 <xs:attribute name="AllowMajorVersionMismatches" type="YesNoTypeUnion">
3415 <xs:annotation>
3416 <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>
3417 </xs:annotation>
3418 </xs:attribute>
3419 <xs:attribute name="AllowProductCodeMismatches" type="YesNoTypeUnion">
3420 <xs:annotation>
3421 <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>
3422 </xs:annotation>
3423 </xs:attribute>
3424 <xs:attribute name="CleanWorkingFolder" type="YesNoTypeUnion">
3425 <xs:annotation>
3426 <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>
3427 </xs:annotation>
3428 </xs:attribute>
3429 <xs:attribute name="Codepage" type="xs:string">
3430 <xs:annotation>
3431 <xs:documentation>The code page integer value or web name for the resulting PCP. See remarks for more information.</xs:documentation>
3432 </xs:annotation>
3433 </xs:attribute>
3434 <xs:attribute name="OutputPath" type="xs:string">
3435 <xs:annotation>
3436 <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>
3437 </xs:annotation>
3438 </xs:attribute>
3439 <xs:attribute name="SourceList" type="xs:string">
3440 <xs:annotation>
3441 <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>
3442 </xs:annotation>
3443 </xs:attribute>
3444 <xs:attribute name="SymbolFlags" type="xs:int">
3445 <xs:annotation>
3446 <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>
3447 </xs:annotation>
3448 </xs:attribute>
3449 <xs:attribute name="WholeFilesOnly" type="YesNoTypeUnion">
3450 <xs:annotation>
3451 <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>
3452 </xs:annotation>
3453 </xs:attribute>
3454 </xs:complexType>
3455 </xs:element>
3456 <xs:element name="PatchInformation">
3457 <xs:annotation>
3458 <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>
3459 <xs:appinfo>
3460 <xse:remarks>
3461 <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>
3462 </xse:remarks>
3463 </xs:appinfo>
3464 </xs:annotation>
3465 <xs:complexType>
3466 <xs:attribute name="Description" type="xs:string">
3467 <xs:annotation>
3468 <xs:documentation>A short description of the patch that includes the name of the product.</xs:documentation>
3469 </xs:annotation>
3470 </xs:attribute>
3471 <xs:attribute name="Platforms" type="xs:string">
3472 <xs:annotation>
3473 <xs:appinfo>
3474 <xse:deprecated />
3475 </xs:appinfo>
3476 </xs:annotation>
3477 </xs:attribute>
3478 <xs:attribute name="Languages" type="xs:string">
3479 <xs:annotation>
3480 <xs:appinfo>
3481 <xse:deprecated />
3482 </xs:appinfo>
3483 </xs:annotation>
3484 </xs:attribute>
3485 <xs:attribute name="Manufacturer" type="xs:string">
3486 <xs:annotation>
3487 <xs:documentation>The name of the manufacturer of the patch package.</xs:documentation>
3488 </xs:annotation>
3489 </xs:attribute>
3490 <xs:attribute name="Keywords" type="xs:string">
3491 <xs:annotation>
3492 <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>
3493 </xs:annotation>
3494 </xs:attribute>
3495 <xs:attribute name="Comments" type="xs:string">
3496 <xs:annotation>
3497 <xs:documentation>General purpose of the patch package. For example, "This patch contains the logic and data required to install _product_."</xs:documentation>
3498 </xs:annotation>
3499 </xs:attribute>
3500 <xs:attribute name="ReadOnly" type="YesNoDefaultTypeUnion">
3501 <xs:annotation>
3502 <xs:documentation>
3503 The value of this attribute conveys whether the package should be opened as read-only.
3504 A database editing tool should not modify a read-only enforced database and should
3505 issue a warning at attempts to modify a read-only recommended database.
3506 </xs:documentation>
3507 </xs:annotation>
3508 </xs:attribute>
3509 <xs:attribute name="SummaryCodepage" type="xs:string">
3510 <xs:annotation>
3511 <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>
3512 </xs:annotation>
3513 </xs:attribute>
3514 <xs:attribute name="ShortNames" type="YesNoTypeUnion">
3515 <xs:annotation>
3516 <xs:appinfo>
3517 <xse:deprecated />
3518 </xs:appinfo>
3519 </xs:annotation>
3520 </xs:attribute>
3521 <xs:attribute name="Compressed" type="YesNoTypeUnion">
3522 <xs:annotation>
3523 <xs:appinfo>
3524 <xse:deprecated />
3525 </xs:appinfo>
3526 </xs:annotation>
3527 </xs:attribute>
3528 <xs:attribute name="AdminImage" type="YesNoTypeUnion">
3529 <xs:annotation>
3530 <xs:appinfo>
3531 <xse:deprecated />
3532 </xs:appinfo>
3533 </xs:annotation>
3534 </xs:attribute>
3535 </xs:complexType>
3536 </xs:element>
3537 <xs:element name="PatchMetadata">
3538 <xs:annotation>
3539 <xs:documentation>Properties about the patch to be placed in the PatchMetadata table.</xs:documentation>
3540 <xs:appinfo>
3541 <xse:msiRef table="MsiPatchMetadata" href="http://msdn.microsoft.com/library/aa370344.aspx" />
3542 </xs:appinfo>
3543 </xs:annotation>
3544 <xs:complexType>
3545 <xs:sequence>
3546 <xs:choice minOccurs="0" maxOccurs="unbounded">
3547 <xs:element ref="CustomProperty" minOccurs="0">
3548 <xs:annotation>
3549 <xs:documentation>A custom property that extends the standard set.</xs:documentation>
3550 </xs:annotation>
3551 </xs:element>
3552 <xs:element ref="OptimizeCustomActions" minOccurs="0" maxOccurs="1">
3553 <xs:annotation>
3554 <xs:documentation>Indicates whether custom actions can be skipped when applying the patch.</xs:documentation>
3555 </xs:annotation>
3556 </xs:element>
3557 </xs:choice>
3558 </xs:sequence>
3559 <xs:attribute name="AllowRemoval" type="YesNoTypeUnion" use="required">
3560 <xs:annotation>
3561 <xs:documentation>Whether this is an uninstallable patch.</xs:documentation>
3562 </xs:annotation>
3563 </xs:attribute>
3564 <xs:attribute name="Classification" type="xs:string" use="required">
3565 <xs:annotation>
3566 <xs:documentation>Category of updates. Recommended values are Critical Update, Hotfix, Security Rollup, Security Update, Service Pack, Update, Update Rollup.</xs:documentation>
3567 </xs:annotation>
3568 </xs:attribute>
3569 <xs:attribute name="CreationTimeUTC" type="xs:string">
3570 <xs:annotation>
3571 <xs:documentation>Creation time of the .msp file in the form mm-dd-yy HH:MM (month-day-year hour:minute).</xs:documentation>
3572 </xs:annotation>
3573 </xs:attribute>
3574 <xs:attribute name="Description" type="xs:string" use="required">
3575 <xs:annotation>
3576 <xs:documentation>Description of the patch.</xs:documentation>
3577 </xs:annotation>
3578 </xs:attribute>
3579 <xs:attribute name="DisplayName" type="xs:string" use="required">
3580 <xs:annotation>
3581 <xs:documentation>A title for the patch that is suitable for public display. In Add/Remove Programs from XP SP2 on.</xs:documentation>
3582 </xs:annotation>
3583 </xs:attribute>
3584 <xs:attribute name="ManufacturerName" type="xs:string" use="required">
3585 <xs:annotation>
3586 <xs:documentation>Name of the manufacturer.</xs:documentation>
3587 </xs:annotation>
3588 </xs:attribute>
3589 <xs:attribute name="MinorUpdateTargetRTM" type="xs:string">
3590 <xs:annotation>
3591 <xs:documentation>
3592 Indicates that the patch targets the RTM version of the product or the most recent major
3593 upgrade patch. Author this optional property in minor update patches that contain sequencing
3594 information to indicate that the patch removes all patches up to the RTM version of the
3595 product, or up to the most recent major upgrade patch. This property is available beginning
3596 with Windows Installer 3.1.
3597 </xs:documentation>
3598 </xs:annotation>
3599 </xs:attribute>
3600 <xs:attribute name="MoreInfoURL" type="xs:string" use="required">
3601 <xs:annotation>
3602 <xs:documentation>A URL that provides information specific to this patch. In Add/Remove Programs from XP SP2 on.</xs:documentation>
3603 </xs:annotation>
3604 </xs:attribute>
3605 <xs:attribute name="OptimizedInstallMode" type="YesNoTypeUnion">
3606 <xs:annotation>
3607 <xs:documentation>
3608 If this attribute is set to 'yes' in all the patches to be applied in a transaction, the
3609 application of the patch is optimized if possible. Available beginning with Windows Installer 3.1.
3610 </xs:documentation>
3611 </xs:annotation>
3612 </xs:attribute>
3613 <xs:attribute name="TargetProductName" type="xs:string" use="required">
3614 <xs:annotation>
3615 <xs:documentation>Name of the application or target product suite.</xs:documentation>
3616 </xs:annotation>
3617 </xs:attribute>
3618 </xs:complexType>
3619 </xs:element>
3620 <xs:element name="CustomProperty">
3621 <xs:annotation>
3622 <xs:documentation>A custom property for the PatchMetadata table.</xs:documentation>
3623 </xs:annotation>
3624 <xs:complexType>
3625 <xs:attribute name="Company" type="xs:string" use="required">
3626 <xs:annotation>
3627 <xs:documentation>The name of the company.</xs:documentation>
3628 </xs:annotation>
3629 </xs:attribute>
3630 <xs:attribute name="Property" type="xs:string" use="required">
3631 <xs:annotation>
3632 <xs:documentation>The name of the metadata property.</xs:documentation>
3633 </xs:annotation>
3634 </xs:attribute>
3635 <xs:attribute name="Value" type="xs:string" use="required">
3636 <xs:annotation>
3637 <xs:documentation>Value of the metadata property.</xs:documentation>
3638 </xs:annotation>
3639 </xs:attribute>
3640 </xs:complexType>
3641 </xs:element>
3642 <xs:element name="ReplacePatch">
3643 <xs:annotation>
3644 <xs:documentation>A patch that is deprecated by this patch.</xs:documentation>
3645 </xs:annotation>
3646 <xs:complexType>
3647 <xs:attribute name="Id" type="Guid" use="required">
3648 <xs:annotation>
3649 <xs:documentation>Patch GUID to be unregistered if it exists on the machine targeted by this patch.</xs:documentation>
3650 </xs:annotation>
3651 </xs:attribute>
3652 </xs:complexType>
3653 </xs:element>
3654 <xs:element name="TargetProductCodes">
3655 <xs:annotation>
3656 <xs:documentation>
3657 The product codes for products that can accept the patch.
3658 </xs:documentation>
3659 </xs:annotation>
3660 <xs:complexType>
3661 <xs:choice maxOccurs="unbounded">
3662 <xs:element ref="TargetProductCode" />
3663 </xs:choice>
3664 <xs:attribute name="Replace" type="YesNoTypeUnion">
3665 <xs:annotation>
3666 <xs:documentation>Whether to replace the product codes that can accept the patch from the target packages with the child elements.</xs:documentation>
3667 </xs:annotation>
3668 </xs:attribute>
3669 </xs:complexType>
3670 </xs:element>
3671 <xs:element name="TargetProductCode">
3672 <xs:annotation>
3673 <xs:documentation>
3674 A product code for a product that can accept the patch.
3675 </xs:documentation>
3676 <xs:appinfo>
3677 <xse:remarks>
3678 <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>
3679 <html:p>When using the Patch element, the Id attribute value must not be '*'. Use the TargetProductCodes/@Replace attribute instead.</html:p>
3680 </xse:remarks>
3681 </xs:appinfo>
3682 </xs:annotation>
3683 <xs:complexType>
3684 <xs:attribute name="Id" type="xs:string" use="required">
3685 <xs:annotation>
3686 <xs:documentation>
3687 The product code for a product that can accept the patch. This can be '*'. See remarks for more information.
3688 </xs:documentation>
3689 </xs:annotation>
3690 </xs:attribute>
3691 </xs:complexType>
3692 </xs:element>
3693 <xs:element name="PatchProperty">
3694 <xs:annotation>
3695 <xs:documentation>A property for this patch database.</xs:documentation>
3696 <xs:appinfo>
3697 <xse:msiRef table="MsiPatchMetadata" href="http://msdn.microsoft.com/library/aa370344.aspx" />
3698 <xse:remarks>
3699 <html:p>When authored under the Patch element, the PatchProperty defines entries in the MsiPatchMetadata table.</html:p>
3700 </xse:remarks>
3701 </xs:appinfo>
3702 </xs:annotation>
3703 <xs:complexType>
3704 <xs:attribute name="Company" type="xs:string">
3705 <xs:annotation>
3706 <xs:documentation>Name of the company for a custom metadata property.</xs:documentation>
3707 </xs:annotation>
3708 </xs:attribute>
3709 <xs:attribute name="Name" type="xs:string" use="required">
3710 <xs:annotation>
3711 <xs:documentation>Name of the patch property.</xs:documentation>
3712 </xs:annotation>
3713 </xs:attribute>
3714 <xs:attribute name="Value" type="xs:string" use="required">
3715 <xs:annotation>
3716 <xs:documentation>Value of the patch property.</xs:documentation>
3717 </xs:annotation>
3718 </xs:attribute>
3719 </xs:complexType>
3720 </xs:element>
3721 <xs:element name="PatchSequence">
3722 <xs:annotation>
3723 <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>
3724 <xs:appinfo>
3725 <xse:msiRef table="MsiPatchSequence" href="http://msdn.microsoft.com/library/aa370350.aspx" />
3726 </xs:appinfo>
3727 </xs:annotation>
3728 <xs:complexType>
3729 <xs:attribute name="PatchFamily" type="xs:string" use="required">
3730 <xs:annotation>
3731 <xs:documentation>Identifier which indicates a sequence family to which this patch belongs.</xs:documentation>
3732 </xs:annotation>
3733 </xs:attribute>
3734 <xs:attribute name="ProductCode" type="Guid">
3735 <xs:annotation>
3736 <xs:documentation>
3737 Specifies the ProductCode of the product that this family applies to.
3738 This attribute cannot the specified if the TargetImage attribute is specified.
3739 </xs:documentation>
3740 </xs:annotation>
3741 </xs:attribute>
3742 <xs:attribute name="Sequence" type="xs:string">
3743 <xs:annotation>
3744 <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>
3745 </xs:annotation>
3746 </xs:attribute>
3747 <xs:attribute name="Supersede" type="YesNoTypeUnion">
3748 <xs:annotation>
3749 <xs:documentation>
3750 Set this value to 'yes' to indicate that this patch will supersede all previous patches in this patch family.
3751 The default value is 'no'.
3752 </xs:documentation>
3753 </xs:annotation>
3754 </xs:attribute>
3755 <xs:attribute name="Target" type="xs:string">
3756 <xs:annotation>
3757 <xs:appinfo>
3758 <xse:deprecated ref="TargetImage" />
3759 </xs:appinfo>
3760 </xs:annotation>
3761 </xs:attribute>
3762 <xs:attribute name="TargetImage" type="xs:string">
3763 <xs:annotation>
3764 <xs:documentation>
3765 Specifies the TargetImage that this family applies to.
3766 This attribute cannot the specified if the ProductCode attribute is specified.
3767 </xs:documentation>
3768 </xs:annotation>
3769 </xs:attribute>
3770 </xs:complexType>
3771 </xs:element>
3772 <xs:element name="Family">
3773 <xs:annotation>
3774 <xs:documentation>Group of one or more upgraded images of a product.</xs:documentation>
3775 </xs:annotation>
3776 <xs:complexType>
3777 <xs:sequence>
3778 <xs:element ref="UpgradeImage" maxOccurs="unbounded" />
3779 <xs:choice minOccurs="0" maxOccurs="unbounded">
3780 <xs:element ref="ExternalFile" />
3781 <xs:element ref="ProtectFile" />
3782 </xs:choice>
3783 </xs:sequence>
3784 <xs:attribute name="DiskId" type="DiskIdType">
3785 <xs:annotation>
3786 <xs:documentation>Entered into the DiskId field of the new Media table record.</xs:documentation>
3787 </xs:annotation>
3788 </xs:attribute>
3789 <xs:attribute name="DiskPrompt" type="xs:string">
3790 <xs:annotation>
3791 <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>
3792 </xs:annotation>
3793 </xs:attribute>
3794 <xs:attribute name="MediaSrcProp" type="xs:string">
3795 <xs:annotation>
3796 <xs:documentation>Entered into the Source field of the new Media table entry of the upgraded image.</xs:documentation>
3797 </xs:annotation>
3798 </xs:attribute>
3799 <xs:attribute name="Name" type="xs:string" use="required">
3800 <xs:annotation>
3801 <xs:documentation>Identifier for the family.</xs:documentation>
3802 </xs:annotation>
3803 </xs:attribute>
3804 <xs:attribute name="SequenceStart" type="xs:int">
3805 <xs:annotation>
3806 <xs:documentation>Sequence number for the starting file.</xs:documentation>
3807 </xs:annotation>
3808 </xs:attribute>
3809 <xs:attribute name="VolumeLabel" type="xs:string">
3810 <xs:annotation>
3811 <xs:documentation>Entered into the VolumeLabel field of the new Media table record.</xs:documentation>
3812 </xs:annotation>
3813 </xs:attribute>
3814 </xs:complexType>
3815 </xs:element>
3816 <xs:element name="UpgradeImage">
3817 <xs:annotation>
3818 <xs:documentation>Contains information about the upgraded images of the product.</xs:documentation>
3819 </xs:annotation>
3820 <xs:complexType>
3821 <xs:sequence>
3822 <xs:element ref="TargetImage" maxOccurs="unbounded" />
3823 <xs:choice minOccurs="0" maxOccurs="unbounded">
3824 <xs:element ref="SymbolPath" />
3825 <xs:element ref="UpgradeFile" />
3826 </xs:choice>
3827 </xs:sequence>
3828 <xs:attribute name="Id" type="xs:string" use="required">
3829 <xs:annotation>
3830 <xs:documentation>Identifier to connect target images with upgraded image.</xs:documentation>
3831 </xs:annotation>
3832 </xs:attribute>
3833 <xs:attribute name="SourceFile" type="xs:string">
3834 <xs:annotation>
3835 <xs:documentation>Full path to location of msi file for upgraded image.</xs:documentation>
3836 </xs:annotation>
3837 </xs:attribute>
3838 <xs:attribute name="SourcePatch" type="xs:string">
3839 <xs:annotation>
3840 <xs:documentation>Modified copy of the upgraded installation database that contains additional authoring specific to patching.</xs:documentation>
3841 </xs:annotation>
3842 </xs:attribute>
3843 </xs:complexType>
3844 </xs:element>
3845 <xs:element name="TargetImage">
3846 <xs:annotation>
3847 <xs:documentation>Contains information about the target images of the product.</xs:documentation>
3848 </xs:annotation>
3849 <xs:complexType>
3850 <xs:choice minOccurs="0" maxOccurs="unbounded">
3851 <xs:element ref="SymbolPath" />
3852 <xs:element ref="TargetFile" />
3853 </xs:choice>
3854 <xs:attribute name="Id" type="xs:string" use="required">
3855 <xs:annotation>
3856 <xs:documentation>Identifier for the target image.</xs:documentation>
3857 </xs:annotation>
3858 </xs:attribute>
3859 <xs:attribute name="SourceFile" type="xs:string">
3860 <xs:annotation>
3861 <xs:documentation>Full path to the location of the msi file for the target image.</xs:documentation>
3862 </xs:annotation>
3863 </xs:attribute>
3864 <xs:attribute name="Order" type="xs:int" use="required">
3865 <xs:annotation>
3866 <xs:documentation>Relative order of the target image.</xs:documentation>
3867 </xs:annotation>
3868 </xs:attribute>
3869 <xs:attribute name="Validation" type="xs:string">
3870 <xs:annotation>
3871 <xs:documentation>Product checking to avoid applying irrelevant transforms.</xs:documentation>
3872 </xs:annotation>
3873 </xs:attribute>
3874 <xs:attribute name="IgnoreMissingFiles" type="YesNoTypeUnion">
3875 <xs:annotation>
3876 <xs:documentation>Files missing from the target image are ignored by the installer.</xs:documentation>
3877 </xs:annotation>
3878 </xs:attribute>
3879 </xs:complexType>
3880 </xs:element>
3881 <xs:element name="TargetFile">
3882 <xs:annotation>
3883 <xs:documentation>Information about specific files in a target image.</xs:documentation>
3884 </xs:annotation>
3885 <xs:complexType>
3886 <xs:sequence>
3887 <xs:element ref="SymbolPath" minOccurs="0" />
3888 <xs:choice minOccurs="0" maxOccurs="unbounded">
3889 <xs:element ref="IgnoreRange" />
3890 <xs:element ref="ProtectRange" />
3891 </xs:choice>
3892 </xs:sequence>
3893 <xs:attribute name="Id" type="xs:string" use="required">
3894 <xs:annotation>
3895 <xs:documentation>Foreign key into the File table.</xs:documentation>
3896 </xs:annotation>
3897 </xs:attribute>
3898 </xs:complexType>
3899 </xs:element>
3900 <xs:element name="IgnoreRange">
3901 <xs:annotation>
3902 <xs:documentation>Specifies part of a file that is to be ignored 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="ProtectRange">
3918 <xs:annotation>
3919 <xs:documentation>Specifies part of a file that cannot be overwritten during patching.</xs:documentation>
3920 </xs:annotation>
3921 <xs:complexType>
3922 <xs:attribute name="Offset" type="xs:int" use="required">
3923 <xs:annotation>
3924 <xs:documentation>Offset of the start of the range.</xs:documentation>
3925 </xs:annotation>
3926 </xs:attribute>
3927 <xs:attribute name="Length" type="xs:int" use="required">
3928 <xs:annotation>
3929 <xs:documentation>Length of the range.</xs:documentation>
3930 </xs:annotation>
3931 </xs:attribute>
3932 </xs:complexType>
3933 </xs:element>
3934 <xs:element name="ProtectFile">
3935 <xs:annotation>
3936 <xs:documentation>Specifies a file to be protected.</xs:documentation>
3937 </xs:annotation>
3938 <xs:complexType>
3939 <xs:choice maxOccurs="unbounded">
3940 <xs:element ref="ProtectRange" />
3941 </xs:choice>
3942 <xs:attribute name="File" type="xs:string" use="required">
3943 <xs:annotation>
3944 <xs:documentation>Foreign key into the File table.</xs:documentation>
3945 </xs:annotation>
3946 </xs:attribute>
3947 </xs:complexType>
3948 </xs:element>
3949 <xs:element name="ExternalFile">
3950 <xs:annotation>
3951 <xs:documentation>Contains information about specific files that are not part of a regular target image.</xs:documentation>
3952 </xs:annotation>
3953 <xs:complexType>
3954 <xs:sequence>
3955 <xs:element ref="ProtectRange" maxOccurs="unbounded" />
3956 <xs:element ref="SymbolPath" maxOccurs="unbounded" />
3957 <xs:choice minOccurs="0" maxOccurs="unbounded">
3958 <xs:element ref="IgnoreRange" />
3959 </xs:choice>
3960 </xs:sequence>
3961 <xs:attribute name="File" type="xs:string" use="required">
3962 <xs:annotation>
3963 <xs:documentation>Foreign key into the File table.</xs:documentation>
3964 </xs:annotation>
3965 </xs:attribute>
3966 <xs:attribute name="Source" type="xs:string">
3967 <xs:annotation>
3968 <xs:documentation>Full path of the external file.</xs:documentation>
3969 </xs:annotation>
3970 </xs:attribute>
3971 <xs:attribute name="Order" type="xs:int" use="required">
3972 <xs:annotation>
3973 <xs:documentation>Specifies the order of the external files to use when creating the patch.</xs:documentation>
3974 </xs:annotation>
3975 </xs:attribute>
3976 </xs:complexType>
3977 </xs:element>
3978 <xs:element name="UpgradeFile">
3979 <xs:annotation>
3980 <xs:documentation>Specifies files to either ignore or to specify optional data about a file.</xs:documentation>
3981 </xs:annotation>
3982 <xs:complexType>
3983 <xs:choice minOccurs="0" maxOccurs="unbounded">
3984 <xs:element ref="SymbolPath" />
3985 </xs:choice>
3986 <xs:attribute name="File" type="xs:string" use="required">
3987 <xs:annotation>
3988 <xs:documentation>Foreign key into the File table.</xs:documentation>
3989 </xs:annotation>
3990 </xs:attribute>
3991 <xs:attribute name="Ignore" type="YesNoTypeUnion" use="required">
3992 <xs:annotation>
3993 <xs:documentation>If yes, the file is ignored during patching, and the next two attributes are ignored.</xs:documentation>
3994 </xs:annotation>
3995 </xs:attribute>
3996 <xs:attribute name="AllowIgnoreOnError" type="YesNoTypeUnion">
3997 <xs:annotation>
3998 <xs:documentation>Specifies whether patching this file is vital.</xs:documentation>
3999 </xs:annotation>
4000 </xs:attribute>
4001 <xs:attribute name="WholeFile" type="YesNoTypeUnion">
4002 <xs:annotation>
4003 <xs:documentation>Whether the whole file should be installed, rather than creating a binary patch.</xs:documentation>
4004 </xs:annotation>
4005 </xs:attribute>
4006 </xs:complexType>
4007 </xs:element>
4008 <xs:element name="SymbolPath">
4009 <xs:annotation>
4010 <xs:documentation>A path to symbols.</xs:documentation>
4011 </xs:annotation>
4012 <xs:complexType>
4013 <xs:attribute name="Path" type="xs:string" use="required">
4014 <xs:annotation>
4015 <xs:documentation>The path.</xs:documentation>
4016 </xs:annotation>
4017 </xs:attribute>
4018 </xs:complexType>
4019 </xs:element>
4020 <xs:element name="SummaryInformation">
4021 <xs:annotation>
4022 <xs:documentation>
4023 Properties about the package to be placed in the Summary Information Stream. These are
4024 visible from COM through the IStream interface, and these properties can be seen on the package in Explorer.
4025 </xs:documentation>
4026 <xs:appinfo>
4027 <xse:remarks>
4028 <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>
4029 </xse:remarks>
4030 </xs:appinfo>
4031 </xs:annotation>
4032 <xs:complexType>
4033 <xs:attribute name="Codepage" type="xs:string">
4034 <xs:annotation>
4035 <xs:documentation>The code page integer value or web name for summary info strings only. See remarks for more information.</xs:documentation>
4036 </xs:annotation>
4037 </xs:attribute>
4038 <xs:attribute name="Comments" type="xs:string">
4039 <xs:annotation>
4040 <xs:documentation>Optional comments for browsing. _New in WiX v5: WiX v5 adds this attribute to the `SummaryInformation` element._</xs:documentation>
4041 </xs:annotation>
4042 </xs:attribute>
4043 <xs:attribute name="Description" type="xs:string">
4044 <xs:annotation>
4045 <xs:documentation>The product full name or description.</xs:documentation>
4046 </xs:annotation>
4047 </xs:attribute>
4048 <xs:attribute name="Keywords" type="xs:string">
4049 <xs:annotation>
4050 <xs:documentation>Optional keywords for browsing.</xs:documentation>
4051 </xs:annotation>
4052 </xs:attribute>
4053 <xs:attribute name="Manufacturer" type="xs:string">
4054 <xs:annotation>
4055 <xs:documentation>The vendor releasing the package. Defaults to the Package/@Manufacturer attribute's value.</xs:documentation>
4056 </xs:annotation>
4057 </xs:attribute>
4058 </xs:complexType>
4059 </xs:element>
4060 <xs:element name="AssemblyName">
4061 <xs:annotation>
4062 <xs:documentation>
4063 The MsiAssemblyName table specifies the schema for the elements of a strong assembly cache name for a .NET Framework or Win32 assembly.
4064 Consider using the Assembly attribute on File element to have the toolset populate these entries automatically.
4065 </xs:documentation>
4066 <xs:appinfo>
4067 <xse:msiRef table="MsiAssemblyName" href="http://msdn.microsoft.com/library/aa370062.aspx" />
4068 </xs:appinfo>
4069 </xs:annotation>
4070 <xs:complexType>
4071 <xs:attribute name="Id" use="required" type="xs:string">
4072 <xs:annotation>
4073 <xs:documentation>Name of the attribute associated with the value specified in the Value column.</xs:documentation>
4074 </xs:annotation>
4075 </xs:attribute>
4076 <xs:attribute name="Value" type="xs:string">
4077 <xs:annotation>
4078 <xs:documentation>Value associated with the name specified in the Name column.</xs:documentation>
4079 </xs:annotation>
4080 </xs:attribute>
4081 </xs:complexType>
4082 </xs:element>
4083 <xs:element name="PatchCertificates">
4084 <xs:annotation>
4085 <xs:documentation>
4086 Identifies the possible signer certificates used to digitally sign patches.
4087 </xs:documentation>
4088 <xs:appinfo>
4089 <xse:msiRef table="MsiPatchCertificate" href="http://msdn.microsoft.com/library/aa370342.aspx" />
4090 </xs:appinfo>
4091 </xs:annotation>
4092 <xs:complexType>
4093 <xs:choice maxOccurs="unbounded">
4094 <xs:element ref="DigitalCertificate" />
4095 </xs:choice>
4096 </xs:complexType>
4097 </xs:element>
4098 <xs:element name="PackageCertificates">
4099 <xs:annotation>
4100 <xs:documentation>
4101 Digital signatures that identify installation packages in a multi-product transaction.
4102 </xs:documentation>
4103 <xs:appinfo>
4104 <xse:msiRef table="MsiPackageCertificate" href="http://msdn.microsoft.com/library/cc542575.aspx" />
4105 </xs:appinfo>
4106 </xs:annotation>
4107 <xs:complexType>
4108 <xs:choice maxOccurs="unbounded">
4109 <xs:element ref="DigitalCertificate" />
4110 </xs:choice>
4111 </xs:complexType>
4112 </xs:element>
4113 <xs:element name="DigitalCertificate">
4114 <xs:annotation>
4115 <xs:documentation>
4116 Adds a digital certificate.
4117 </xs:documentation>
4118 <xs:appinfo>
4119 <xse:msiRef table="MsiDigitalCertificate" href="http://msdn.microsoft.com/library/aa370086.aspx" />
4120 </xs:appinfo>
4121 </xs:annotation>
4122 <xs:complexType>
4123 <xs:attribute name="Id" type="xs:string" use="required">
4124 <xs:annotation>
4125 <xs:documentation>Identifier for a certificate file.</xs:documentation>
4126 </xs:annotation>
4127 </xs:attribute>
4128 <xs:attribute name="SourceFile" type="xs:string" use="required">
4129 <xs:annotation>
4130 <xs:documentation>The path to the certificate file.</xs:documentation>
4131 </xs:annotation>
4132 </xs:attribute>
4133 </xs:complexType>
4134 </xs:element>
4135 <xs:element name="DigitalCertificateRef">
4136 <xs:annotation>
4137 <xs:documentation>
4138 Reference to a DigitalCertificate element. This will force the entire referenced Fragment's contents
4139 to be included in the installer database. This is only used for references when patching.
4140 </xs:documentation>
4141 </xs:annotation>
4142 <xs:complexType>
4143 <xs:attribute name="Id" type="xs:string" use="required" />
4144 <xs:anyAttribute namespace="##other" processContents="lax">
4145 <xs:annotation>
4146 <xs:documentation>
4147 Extensibility point in the WiX XML Schema. Schema extensions can register additional
4148 attributes at this point in the schema.
4149 </xs:documentation>
4150 </xs:annotation>
4151 </xs:anyAttribute>
4152 </xs:complexType>
4153 </xs:element>
4154 <xs:element name="DigitalSignature">
4155 <xs:annotation>
4156 <xs:documentation>
4157 Adds a digital signature.
4158 </xs:documentation>
4159 <xs:appinfo>
4160 <xse:msiRef table="MsiDigitalSignature" href="http://msdn.microsoft.com/library/aa370087.aspx" />
4161 </xs:appinfo>
4162 </xs:annotation>
4163 <xs:complexType>
4164 <xs:choice>
4165 <xs:element ref="DigitalCertificate" />
4166 </xs:choice>
4167 <xs:attribute name="SourceFile" type="xs:string">
4168 <xs:annotation>
4169 <xs:documentation>The path to signature's optional hash file.</xs:documentation>
4170 </xs:annotation>
4171 </xs:attribute>
4172 </xs:complexType>
4173 </xs:element>
4174 <xs:element name="SFPCatalog">
4175 <xs:annotation>
4176 <xs:documentation>
4177 Adds a system file protection update catalog file
4178 </xs:documentation>
4179 <xs:appinfo>
4180 <xse:msiRef table="SFPCatalog" href="http://msdn.microsoft.com/library/aa371833.aspx" />
4181 </xs:appinfo>
4182 </xs:annotation>
4183 <xs:complexType>
4184 <xs:choice minOccurs="0" maxOccurs="unbounded">
4185 <xs:element ref="SFPCatalog" minOccurs="0" maxOccurs="unbounded" />
4186 <xs:element ref="SFPFile" minOccurs="0" maxOccurs="unbounded">
4187 <xs:annotation>
4188 <xs:documentation>Primary Key to File Table.</xs:documentation>
4189 </xs:annotation>
4190 </xs:element>
4191 </xs:choice>
4192 <xs:attribute name="Name" type="xs:string">
4193 <xs:annotation>
4194 <xs:documentation>Filename for catalog file when installed.</xs:documentation>
4195 </xs:annotation>
4196 </xs:attribute>
4197 <xs:attribute name="Dependency" type="xs:string">
4198 <xs:annotation>
4199 <xs:documentation>Used to define dependency outside of the package.</xs:documentation>
4200 </xs:annotation>
4201 </xs:attribute>
4202 <xs:attribute name="SourceFile" type="xs:string">
4203 <xs:annotation>
4204 <xs:documentation>Path to catalog file in binary.</xs:documentation>
4205 </xs:annotation>
4206 </xs:attribute>
4207 </xs:complexType>
4208 </xs:element>
4209 <xs:element name="SFPFile">
4210 <xs:annotation>
4211 <xs:documentation>
4212 Provides a many-to-many mapping from the SFPCatalog table to the File table
4213 </xs:documentation>
4214 <xs:appinfo>
4215 <xse:msiRef table="FileSFPCatalog" href="http://msdn.microsoft.com/library/aa368591.aspx" />
4216 </xs:appinfo>
4217 </xs:annotation>
4218 <xs:complexType>
4219 <xs:attribute name="Id" use="required" type="xs:string">
4220 <xs:annotation>
4221 <xs:documentation>Primary Key to File Table.</xs:documentation>
4222 </xs:annotation>
4223 </xs:attribute>
4224 </xs:complexType>
4225 </xs:element>
4226 <xs:element name="IniFile">
4227 <xs:annotation>
4228 <xs:documentation>
4229 Adds or removes .ini file entries.
4230 </xs:documentation>
4231 <xs:appinfo>
4232 <xse:msiRef table="IniFile" href="https://learn.microsoft.com/en-us/windows/win32/msi/inifile-table" />
4233 <xse:msiRef table="RemoveIniFile" href="https://learn.microsoft.com/en-us/windows/win32/msi/removeinifile-table" />
4234 </xs:appinfo>
4235 </xs:annotation>
4236 <xs:complexType>
4237 <xs:attribute name="Id" type="xs:string">
4238 <xs:annotation>
4239 <xs:documentation>Identifier for ini file. If one is not specified a stable identifier will be generated.</xs:documentation>
4240 </xs:annotation>
4241 </xs:attribute>
4242 <xs:attribute name="Action" use="required">
4243 <xs:annotation>
4244 <xs:documentation>The type of modification to be made.</xs:documentation>
4245 </xs:annotation>
4246 <xs:simpleType>
4247 <xs:restriction base="xs:NMTOKEN">
4248 <xs:enumeration value="addLine">
4249 <xs:annotation>
4250 <xs:documentation>Creates or updates an .ini entry.</xs:documentation>
4251 </xs:annotation>
4252 </xs:enumeration>
4253 <xs:enumeration value="addTag">
4254 <xs:annotation>
4255 <xs:documentation>Creates a new entry or appends a new comma-separated value to an existing entry.</xs:documentation>
4256 </xs:annotation>
4257 </xs:enumeration>
4258 <xs:enumeration value="createLine">
4259 <xs:annotation>
4260 <xs:documentation>Creates an .ini entry only if the entry does no already exist.</xs:documentation>
4261 </xs:annotation>
4262 </xs:enumeration>
4263 <xs:enumeration value="removeLine">
4264 <xs:annotation>
4265 <xs:documentation>Removes an .ini entry.</xs:documentation>
4266 </xs:annotation>
4267 </xs:enumeration>
4268 <xs:enumeration value="removeTag">
4269 <xs:annotation>
4270 <xs:documentation>Removes a tag from an .ini entry.</xs:documentation>
4271 </xs:annotation>
4272 </xs:enumeration>
4273 </xs:restriction>
4274 </xs:simpleType>
4275 </xs:attribute>
4276 <xs:attribute name="Directory" type="xs:string">
4277 <xs:annotation>
4278 <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>
4279 </xs:annotation>
4280 </xs:attribute>
4281 <xs:attribute name="Key" use="required" type="xs:string">
4282 <xs:annotation>
4283 <xs:documentation>The localizable .ini file key within the section.</xs:documentation>
4284 </xs:annotation>
4285 </xs:attribute>
4286 <xs:attribute name="Name" type="LongFileNameType" use="required">
4287 <xs:annotation>
4288 <xs:documentation>
4289 In prior versions of the WiX toolset, this attribute specified the short name.
4290 This attribute's value may now be either a short or long name.
4291 If a short name is specified, the ShortName attribute may not be specified.
4292 Also, if this value is a long name, the ShortName attribute may be omitted to
4293 allow WiX to attempt to generate a unique short name.
4294 However, if this name collides with another file or you wish to manually specify
4295 the short name, then the ShortName attribute may be specified.
4296 </xs:documentation>
4297 </xs:annotation>
4298 </xs:attribute>
4299 <xs:attribute name="Section" use="required" type="xs:string">
4300 <xs:annotation>
4301 <xs:documentation>The localizable .ini file section.</xs:documentation>
4302 </xs:annotation>
4303 </xs:attribute>
4304 <xs:attribute name="ShortName" type="ShortFileNameType">
4305 <xs:annotation>
4306 <xs:documentation>
4307 The short name of the in 8.3 format.
4308 This attribute should only be set if there is a conflict between generated short names
4309 or the user wants to manually specify the short name.
4310 </xs:documentation>
4311 </xs:annotation>
4312 </xs:attribute>
4313 <xs:attribute name="Value" type="xs:string">
4314 <xs:annotation>
4315 <xs:documentation>
4316 The localizable value to be written or deleted. This attribute must be set if
4317 the Action attribute's value is "addLine", "addTag", or "createLine".
4318 </xs:documentation>
4319 </xs:annotation>
4320 </xs:attribute>
4321 </xs:complexType>
4322 </xs:element>
4323 <xs:element name="ODBCDataSource">
4324 <xs:annotation>
4325 <xs:documentation>
4326 ODBCDataSource for a Component
4327 </xs:documentation>
4328 <xs:appinfo>
4329 <xse:msiRef table="ODBCDataSource" href="http://msdn.microsoft.com/library/aa370546.aspx" />
4330 </xs:appinfo>
4331 </xs:annotation>
4332 <xs:complexType>
4333 <xs:choice minOccurs="0" maxOccurs="unbounded">
4334 <xs:element ref="Property">
4335 <xs:annotation>
4336 <xs:documentation>Translates into ODBCSourceAttributes</xs:documentation>
4337 </xs:annotation>
4338 </xs:element>
4339 </xs:choice>
4340 <xs:attribute name="Id" use="required" type="xs:string">
4341 <xs:annotation>
4342 <xs:documentation>Identifier of the data source.</xs:documentation>
4343 </xs:annotation>
4344 </xs:attribute>
4345 <xs:attribute name="Name" use="required" type="xs:string">
4346 <xs:annotation>
4347 <xs:documentation>Name for the data source.</xs:documentation>
4348 </xs:annotation>
4349 </xs:attribute>
4350 <xs:attribute name="DriverName" type="xs:string">
4351 <xs:annotation>
4352 <xs:documentation>Required if not found as child of ODBCDriver element</xs:documentation>
4353 </xs:annotation>
4354 </xs:attribute>
4355 <xs:attribute name="Registration" use="required">
4356 <xs:annotation>
4357 <xs:documentation>Scope for which the data source should be registered.</xs:documentation>
4358 </xs:annotation>
4359 <xs:simpleType>
4360 <xs:restriction base="xs:NMTOKEN">
4361 <xs:enumeration value="machine">
4362 <xs:annotation>
4363 <xs:documentation>
4364 Data source is registered per machine.
4365 </xs:documentation>
4366 </xs:annotation>
4367 </xs:enumeration>
4368 <xs:enumeration value="user">
4369 <xs:annotation>
4370 <xs:documentation>
4371 Data source is registered per user.
4372 </xs:documentation>
4373 </xs:annotation>
4374 </xs:enumeration>
4375 </xs:restriction>
4376 </xs:simpleType>
4377 </xs:attribute>
4378 <xs:attribute name="KeyPath" type="YesNoTypeUnion">
4379 <xs:annotation>
4380 <xs:documentation>Set 'yes' to force this file to be key path for parent Component</xs:documentation>
4381 </xs:annotation>
4382 </xs:attribute>
4383 </xs:complexType>
4384 </xs:element>
4385 <xs:element name="ODBCDriver">
4386 <xs:annotation>
4387 <xs:documentation>
4388 ODBCDriver for a Component
4389 </xs:documentation>
4390 <xs:appinfo>
4391 <xse:msiRef table="ODBCDriver" href="http://msdn.microsoft.com/library/aa370547.aspx" />
4392 </xs:appinfo>
4393 </xs:annotation>
4394 <xs:complexType>
4395 <xs:choice minOccurs="0" maxOccurs="unbounded">
4396 <xs:element ref="Property">
4397 <xs:annotation>
4398 <xs:documentation>Translates into ODBCSourceAttributes</xs:documentation>
4399 </xs:annotation>
4400 </xs:element>
4401 <xs:element ref="ODBCDataSource" />
4402 </xs:choice>
4403 <xs:attribute name="Id" use="required" type="xs:string">
4404 <xs:annotation>
4405 <xs:documentation>Identifier for the driver.</xs:documentation>
4406 </xs:annotation>
4407 </xs:attribute>
4408 <xs:attribute name="Name" use="required" type="xs:string">
4409 <xs:annotation>
4410 <xs:documentation>Name for the driver.</xs:documentation>
4411 </xs:annotation>
4412 </xs:attribute>
4413 <xs:attribute name="File" type="xs:string">
4414 <xs:annotation>
4415 <xs:documentation>Required if not found as child of File element</xs:documentation>
4416 </xs:annotation>
4417 </xs:attribute>
4418 <xs:attribute name="SetupFile" type="xs:string">
4419 <xs:annotation>
4420 <xs:documentation>Required if not found as child of File element or different from File attribute above</xs:documentation>
4421 </xs:annotation>
4422 </xs:attribute>
4423 </xs:complexType>
4424 </xs:element>
4425 <xs:element name="ODBCTranslator">
4426 <xs:annotation>
4427 <xs:documentation>
4428 ODBCTranslator for a Component
4429 </xs:documentation>
4430 <xs:appinfo>
4431 <xse:msiRef table="ODBCTranslator" href="http://msdn.microsoft.com/library/aa370549.aspx" />
4432 </xs:appinfo>
4433 </xs:annotation>
4434 <xs:complexType>
4435 <xs:attribute name="Id" use="required" type="xs:string">
4436 <xs:annotation>
4437 <xs:documentation>Identifier for the translator.</xs:documentation>
4438 </xs:annotation>
4439 </xs:attribute>
4440 <xs:attribute name="Name" use="required" type="xs:string">
4441 <xs:annotation>
4442 <xs:documentation>Name for the translator.</xs:documentation>
4443 </xs:annotation>
4444 </xs:attribute>
4445 <xs:attribute name="File" type="xs:string">
4446 <xs:annotation>
4447 <xs:documentation>Required if not found as child of File element</xs:documentation>
4448 </xs:annotation>
4449 </xs:attribute>
4450 <xs:attribute name="SetupFile" type="xs:string">
4451 <xs:annotation>
4452 <xs:documentation>Required if not found as child of File element or different from File attribute above</xs:documentation>
4453 </xs:annotation>
4454 </xs:attribute>
4455 </xs:complexType>
4456 </xs:element>
4457 <xs:element name="FileSearch">
4458 <xs:annotation>
4459 <xs:appinfo>
4460 <xse:seeAlso ref="ComponentSearch" />
4461 <xse:seeAlso ref="DirectorySearch" />
4462 <xse:seeAlso ref="DirectorySearchRef" />
4463 <xse:seeAlso ref="FileSearchRef" />
4464 <xse:seeAlso ref="IniFileSearch" />
4465 <xse:seeAlso ref="RegistrySearch" />
4466 <xse:msiRef table="DrLocator" href="http://msdn.microsoft.com/library/aa368331.aspx" />
4467 <xse:msiRef table="Signature" href="https://docs.microsoft.com/en-us/windows/win32/msi/signature-table" />
4468 <xse:howtoRef href="files_and_registry/check_the_version_number.html">How To: Check the version number of a file during installation</xse:howtoRef>
4469 <xse:remarks>
4470 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'.
4471 </xse:remarks>
4472 </xs:appinfo>
4473 <xs:documentation>Searches for file and assigns to fullpath value of parent Property</xs:documentation>
4474 </xs:annotation>
4475 <xs:complexType>
4476 <xs:attribute name="Id" type="xs:string">
4477 <xs:annotation>
4478 <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>
4479 </xs:annotation>
4480 </xs:attribute>
4481 <xs:attribute name="Name" type="LongFileNameType">
4482 <xs:annotation>
4483 <xs:documentation>
4484 In prior versions of the WiX toolset, this attribute specified the short file name.
4485 This attribute's value may now be either a short or long file name.
4486 If a short file name is specified, the ShortName attribute may not be specified.
4487 If you wish to manually specify the short file name, then the ShortName
4488 attribute may be specified.
4489 </xs:documentation>
4490 </xs:annotation>
4491 </xs:attribute>
4492 <xs:attribute name="ShortName" type="ShortFileNameType">
4493 <xs:annotation>
4494 <xs:documentation>
4495 The short file name of the file in 8.3 format.
4496 There is a Windows Installer bug which prevents the FileSearch functionality from working
4497 if both a short and long file name are specified. Since the Name attribute allows either
4498 a short or long name to be specified, it is the only attribute related to file names which
4499 should be specified.
4500 </xs:documentation>
4501 </xs:annotation>
4502 </xs:attribute>
4503 <xs:attribute name="MinSize" type="xs:int">
4504 <xs:annotation>
4505 <xs:documentation>The minimum size of the file.</xs:documentation>
4506 </xs:annotation>
4507 </xs:attribute>
4508 <xs:attribute name="MaxSize" type="xs:int">
4509 <xs:annotation>
4510 <xs:documentation>The maximum size of the file.</xs:documentation>
4511 </xs:annotation>
4512 </xs:attribute>
4513 <xs:attribute name="MinVersion" type="xs:string">
4514 <xs:annotation>
4515 <xs:documentation>The minimum version of the file.</xs:documentation>
4516 </xs:annotation>
4517 </xs:attribute>
4518 <xs:attribute name="MaxVersion" type="xs:string">
4519 <xs:annotation>
4520 <xs:documentation>The maximum version of the file.</xs:documentation>
4521 </xs:annotation>
4522 </xs:attribute>
4523 <xs:attribute name="MinDate" type="xs:dateTime">
4524 <xs:annotation>
4525 <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>
4526 </xs:annotation>
4527 </xs:attribute>
4528 <xs:attribute name="MaxDate" type="xs:dateTime">
4529 <xs:annotation>
4530 <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>
4531 </xs:annotation>
4532 </xs:attribute>
4533 <xs:attribute name="Languages" type="xs:string">
4534 <xs:annotation>
4535 <xs:documentation>The languages supported by the file.</xs:documentation>
4536 </xs:annotation>
4537 </xs:attribute>
4538 </xs:complexType>
4539 </xs:element>
4540 <xs:element name="FileSearchRef">
4541 <xs:annotation>
4542 <xs:appinfo>
4543 <xse:seeAlso ref="FileSearch" />
4544 <xse:remarks>
4545 <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>
4546 </xse:remarks>
4547 </xs:appinfo>
4548 <xs:documentation>References an existing FileSearch element.</xs:documentation>
4549 </xs:annotation>
4550 <xs:complexType>
4551 <xs:attribute name="Id" use="required" type="xs:string">
4552 <xs:annotation>
4553 <xs:documentation>Specify the Id to the FileSearch to reference.</xs:documentation>
4554 </xs:annotation>
4555 </xs:attribute>
4556 </xs:complexType>
4557 </xs:element>
4558 <xs:element name="DirectorySearch">
4559 <xs:annotation>
4560 <xs:appinfo>
4561 <xse:seeAlso ref="ComponentSearch" />
4562 <xse:seeAlso ref="IniFileSearch" />
4563 <xse:seeAlso ref="RegistrySearch" />
4564 <xse:msiRef table="DrLocator" href="http://msdn.microsoft.com/library/aa368331.aspx" />
4565 <xse:msiRef table="Signature" href="https://docs.microsoft.com/en-us/windows/win32/msi/signature-table" />
4566 <xse:howtoRef href="files_and_registry/check_the_version_number.html">How To: Check the version number of a file during installation</xse:howtoRef>
4567 <xse:howtoRef href="files_and_registry/directorysearchref.html">How To: Reference another DirectorySearch element</xse:howtoRef>
4568 <xse:howtoRef href="files_and_registry/parentdirectorysearch.html">How To: Get the parent directory of a file search</xse:howtoRef>
4569 <xse:remarks>
4570 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.
4571 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'.
4572 </xse:remarks>
4573 </xs:appinfo>
4574 <xs:documentation>Searches for directory and assigns to value of parent Property.</xs:documentation>
4575 </xs:annotation>
4576 <xs:complexType>
4577 <xs:choice minOccurs="0">
4578 <xs:element ref="DirectorySearch" />
4579 <xs:element ref="DirectorySearchRef" />
4580 <xs:element ref="FileSearch" />
4581 <xs:element ref="FileSearchRef" />
4582 </xs:choice>
4583 <xs:attribute name="Id" use="required" type="xs:string">
4584 <xs:annotation>
4585 <xs:documentation>Unique identifier for the directory search.</xs:documentation>
4586 </xs:annotation>
4587 </xs:attribute>
4588 <xs:attribute name="Path" type="xs:string">
4589 <xs:annotation>
4590 <xs:documentation>Path on the user's system. Either absolute, or relative to containing directories.</xs:documentation>
4591 </xs:annotation>
4592 </xs:attribute>
4593 <xs:attribute name="Depth" type="Integer">
4594 <xs:annotation>
4595 <xs:documentation>
4596 Depth below the path that the installer searches for the file or directory specified by the search. See remarks for more information.
4597 </xs:documentation>
4598 </xs:annotation>
4599 </xs:attribute>
4600 <xs:attribute name="AssignToProperty" type="YesNoTypeUnion">
4601 <xs:annotation>
4602 <xs:documentation>Set the value of the outer Property to the result of this search. See remarks for more information.</xs:documentation>
4603 </xs:annotation>
4604 </xs:attribute>
4605 </xs:complexType>
4606 </xs:element>
4607 <xs:element name="DirectorySearchRef">
4608 <xs:annotation>
4609 <xs:appinfo>
4610 <xse:seeAlso ref="ComponentSearch" />
4611 <xse:seeAlso ref="IniFileSearch" />
4612 <xse:seeAlso ref="RegistrySearch" />
4613 <xse:howtoRef href="files_and_registry/directorysearchref.html">How To: Reference another DirectorySearch element</xse:howtoRef>
4614 <xse:remarks>
4615 <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>
4616 </xse:remarks>
4617 </xs:appinfo>
4618 <xs:documentation>References an existing DirectorySearch element.</xs:documentation>
4619 </xs:annotation>
4620 <xs:complexType>
4621 <xs:choice minOccurs="0">
4622 <xs:element ref="DirectorySearch" />
4623 <xs:element ref="DirectorySearchRef" />
4624 <xs:element ref="FileSearch" />
4625 <xs:element ref="FileSearchRef" />
4626 </xs:choice>
4627 <xs:attribute name="Id" use="required" type="xs:string">
4628 <xs:annotation>
4629 <xs:documentation>Id of the search being referred to.</xs:documentation>
4630 </xs:annotation>
4631 </xs:attribute>
4632 <xs:attribute name="Parent" type="xs:string">
4633 <xs:annotation>
4634 <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>
4635 </xs:annotation>
4636 </xs:attribute>
4637 <xs:attribute name="Path" type="xs:string">
4638 <xs:annotation>
4639 <xs:documentation>Path on the user's system. Either absolute, or relative to containing directories.</xs:documentation>
4640 </xs:annotation>
4641 </xs:attribute>
4642 </xs:complexType>
4643 </xs:element>
4644 <xs:element name="ComponentSearch">
4645 <xs:annotation>
4646 <xs:appinfo>
4647 <xse:seeAlso ref="IniFileSearch" />
4648 <xse:seeAlso ref="RegistrySearch" />
4649 <xse:msiRef table="CompLocator" href="http://msdn.microsoft.com/library/aa368001.aspx" />
4650 <xse:msiRef table="Signature" href="https://docs.microsoft.com/en-us/windows/win32/msi/signature-table" />
4651 </xs:appinfo>
4652 <xs:documentation>Searches for file or directory and assigns to value of parent Property.</xs:documentation>
4653 </xs:annotation>
4654 <xs:complexType>
4655 <xs:choice minOccurs="0">
4656 <xs:element ref="DirectorySearch" />
4657 <xs:element ref="DirectorySearchRef" />
4658 <xs:element ref="FileSearch" />
4659 <xs:element ref="FileSearchRef" />
4660 </xs:choice>
4661 <xs:attribute name="Id" use="required" type="xs:string" />
4662 <xs:attribute name="Guid" type="Guid">
4663 <xs:annotation>
4664 <xs:documentation>The component ID of the component whose key path is to be used for the search.</xs:documentation>
4665 </xs:annotation>
4666 </xs:attribute>
4667 <xs:attribute name="Type">
4668 <xs:annotation>
4669 <xs:documentation>Must be file if last child is FileSearch element and must be directory if last child is DirectorySearch element.</xs:documentation>
4670 </xs:annotation>
4671 <xs:simpleType>
4672 <xs:restriction base="xs:NMTOKEN">
4673 <xs:enumeration value="directory">
4674 <xs:annotation>
4675 <xs:documentation>
4676 The key path of the component is a directory.
4677 </xs:documentation>
4678 </xs:annotation>
4679 </xs:enumeration>
4680 <xs:enumeration value="file">
4681 <xs:annotation>
4682 <xs:documentation>
4683 The key path of the component is a file. This is the default value.
4684 </xs:documentation>
4685 </xs:annotation>
4686 </xs:enumeration>
4687 </xs:restriction>
4688 </xs:simpleType>
4689 </xs:attribute>
4690 </xs:complexType>
4691 </xs:element>
4692 <xs:element name="IniFileSearch">
4693 <xs:annotation>
4694 <xs:appinfo>
4695 <xse:seeAlso ref="ComponentSearch" />
4696 <xse:seeAlso ref="RegistrySearch" />
4697 <xse:msiRef table="IniLocator" href="http://msdn.microsoft.com/library/aa369283.aspx" />
4698 <xse:msiRef table="Signature" href="https://docs.microsoft.com/en-us/windows/win32/msi/signature-table" />
4699 </xs:appinfo>
4700 <xs:documentation>Searches for file, directory or registry key and assigns to value of parent Property</xs:documentation>
4701 </xs:annotation>
4702 <xs:complexType>
4703 <xs:choice minOccurs="0">
4704 <xs:element ref="DirectorySearch" />
4705 <xs:element ref="DirectorySearchRef" />
4706 <xs:element ref="FileSearch" />
4707 <xs:element ref="FileSearchRef" />
4708 </xs:choice>
4709 <xs:attribute name="Id" use="required" type="xs:string">
4710 <xs:annotation>
4711 <xs:documentation>External key into the Signature table.</xs:documentation>
4712 </xs:annotation>
4713 </xs:attribute>
4714 <xs:attribute name="Field" type="Integer">
4715 <xs:annotation>
4716 <xs:documentation>The field in the .ini line. If field is Null or 0, the entire line is read.</xs:documentation>
4717 </xs:annotation>
4718 </xs:attribute>
4719 <xs:attribute name="Key" use="required" type="xs:string">
4720 <xs:annotation>
4721 <xs:documentation>The key value within the section.</xs:documentation>
4722 </xs:annotation>
4723 </xs:attribute>
4724 <xs:attribute name="Name" type="LongFileNameType" use="required">
4725 <xs:annotation>
4726 <xs:documentation>
4727 In prior versions of the WiX toolset, this attribute specified the short name.
4728 This attribute's value may now be either a short or long name.
4729 If a short name is specified, the ShortName attribute may not be specified.
4730 Also, if this value is a long name, the ShortName attribute may be omitted to
4731 allow WiX to attempt to generate a unique short name.
4732 However, if you wish to manually specify the short name, then the ShortName
4733 attribute may be specified.
4734 </xs:documentation>
4735 </xs:annotation>
4736 </xs:attribute>
4737 <xs:attribute name="Section" use="required" type="xs:string">
4738 <xs:annotation>
4739 <xs:documentation>The localizable .ini file section.</xs:documentation>
4740 </xs:annotation>
4741 </xs:attribute>
4742 <xs:attribute name="ShortName" type="ShortFileNameType">
4743 <xs:annotation>
4744 <xs:documentation>
4745 The short name of the file in 8.3 format.
4746 This attribute should only be set if the user wants to manually specify the short name.
4747 </xs:documentation>
4748 </xs:annotation>
4749 </xs:attribute>
4750 <xs:attribute name="Type">
4751 <xs:annotation>
4752 <xs:documentation>Must be file if last child is FileSearch element and must be directory if last child is DirectorySearch element.</xs:documentation>
4753 </xs:annotation>
4754 <xs:simpleType>
4755 <xs:restriction base="xs:NMTOKEN">
4756 <xs:enumeration value="directory">
4757 <xs:annotation>
4758 <xs:documentation>A directory location.</xs:documentation>
4759 </xs:annotation>
4760 </xs:enumeration>
4761 <xs:enumeration value="file">
4762 <xs:annotation>
4763 <xs:documentation>A file location. This is the default value.</xs:documentation>
4764 </xs:annotation>
4765 </xs:enumeration>
4766 <xs:enumeration value="raw">
4767 <xs:annotation>
4768 <xs:documentation>A raw .ini value.</xs:documentation>
4769 </xs:annotation>
4770 </xs:enumeration>
4771 </xs:restriction>
4772 </xs:simpleType>
4773 </xs:attribute>
4774 </xs:complexType>
4775 </xs:element>
4776 <xs:element name="RegistrySearch">
4777 <xs:annotation>
4778 <xs:appinfo>
4779 <xse:seeAlso ref="ComponentSearch" />
4780 <xse:seeAlso ref="IniFileSearch" />
4781 <xse:msiRef table="RegLocator" href="http://msdn.microsoft.com/library/aa371171.aspx" />
4782 <xse:msiRef table="Signature" href="https://docs.microsoft.com/en-us/windows/win32/msi/signature-table" />
4783 <xse:howtoRef href="files_and_registry/read_a_registry_entry.html">How To: Read a registry entry during installation</xse:howtoRef>
4784 <xse:remarks>
4785 <html:p>
4786 When the Type attribute value is 'directory' the registry value must specify the path to a directory excluding the file name.
4787 When the Type attribute value is 'file' the registry value must specify the path to a file including the file name;
4788 however, if there is no child FileSearch element the parent directory of the file is returned. The FileSearch element requires
4789 that you author the name of the file you are searching for. If you do not know the file name
4790 you must set the Type attribute to 'raw' to return the full file path including the file name.
4791 </html:p>
4792 </xse:remarks>
4793 </xs:appinfo>
4794 <xs:documentation>Searches for file, directory or registry key and assigns to value of parent Property</xs:documentation>
4795 </xs:annotation>
4796 <xs:complexType>
4797 <xs:choice minOccurs="0">
4798 <xs:element ref="DirectorySearch" />
4799 <xs:element ref="DirectorySearchRef" />
4800 <xs:element ref="FileSearch" />
4801 <xs:element ref="FileSearchRef" />
4802 </xs:choice>
4803 <xs:attribute name="Id" type="xs:string">
4804 <xs:annotation>
4805 <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>
4806 </xs:annotation>
4807 </xs:attribute>
4808 <xs:attribute name="Bitness" type="BitnessTypeUnion">
4809 <xs:annotation>
4810 <xs:documentation>
4811 Overrides the default registry to search. The value `always64` will force
4812 the search to look in the 64-bit registry even when building for 32-bit.
4813 Simliarly, the value `always32` will force the search to look in the 32-bit
4814 registry even when building for 64-bit.
4815 The default value is `default` where the search will look in the same registry
4816 as the bitness of the package.
4817 </xs:documentation>
4818 </xs:annotation>
4819 </xs:attribute>
4820 <xs:attribute name="Root" use="required">
4821 <xs:annotation>
4822 <xs:documentation>Root key for the registry value.</xs:documentation>
4823 </xs:annotation>
4824 <xs:simpleType>
4825 <xs:restriction base="xs:NMTOKEN">
4826 <xs:enumeration value="HKCR">
4827 <xs:annotation>
4828 <xs:documentation>
4829 HKEY_CLASSES_ROOT
4830 </xs:documentation>
4831 </xs:annotation>
4832 </xs:enumeration>
4833 <xs:enumeration value="HKCU">
4834 <xs:annotation>
4835 <xs:documentation>
4836 HKEY_CURRENT_USER
4837 </xs:documentation>
4838 </xs:annotation>
4839 </xs:enumeration>
4840 <xs:enumeration value="HKLM">
4841 <xs:annotation>
4842 <xs:documentation>
4843 HKEY_LOCAL_MACHINE
4844 </xs:documentation>
4845 </xs:annotation>
4846 </xs:enumeration>
4847 <xs:enumeration value="HKU">
4848 <xs:annotation>
4849 <xs:documentation>
4850 HKEY_USERS
4851 </xs:documentation>
4852 </xs:annotation>
4853 </xs:enumeration>
4854 </xs:restriction>
4855 </xs:simpleType>
4856 </xs:attribute>
4857 <xs:attribute name="Key" use="required" type="xs:string">
4858 <xs:annotation>
4859 <xs:documentation>Key for the registry value.</xs:documentation>
4860 </xs:annotation>
4861 </xs:attribute>
4862 <xs:attribute name="Name" type="xs:string">
4863 <xs:annotation>
4864 <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>
4865 </xs:annotation>
4866 </xs:attribute>
4867 <xs:attribute name="Type" use="required">
4868 <xs:annotation>
4869 <xs:documentation>
4870 The value must be 'file' if the child is a FileSearch element, and must be 'directory' if child is a DirectorySearch element.
4871 </xs:documentation>
4872 </xs:annotation>
4873 <xs:simpleType>
4874 <xs:restriction base="xs:NMTOKEN">
4875 <xs:enumeration value="directory">
4876 <xs:annotation>
4877 <xs:documentation>
4878 The registry value contains the path to a directory.
4879 </xs:documentation>
4880 </xs:annotation>
4881 </xs:enumeration>
4882 <xs:enumeration value="file">
4883 <xs:annotation>
4884 <xs:documentation>
4885 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.
4886 </xs:documentation>
4887 </xs:annotation>
4888 </xs:enumeration>
4889 <xs:enumeration value="raw">
4890 <xs:annotation>
4891 <xs:documentation>
4892 Sets the raw value from the registry value. Please note that this value will contain a prefix as follows:
4893
4894 - DWORD: Starts with `#` optionally followed by `+` or `-`.
4895 - REG_BINARY: Starts with `#x` and the installer converts and saves each hexadecimal digit (nibble) as an ASCII character prefixed by `#x`.
4896 - REG_EXPAND_SZ: Starts with `#%`.
4897 - REG_MULTI_SZ: Starts with `[~]` and ends with `[~]`.
4898 - REG_SZ: No prefix, but if the first character of the registry value is `#`, the installer escapes the character by prefixing it with another `#`.
4899 </xs:documentation>
4900 </xs:annotation>
4901 </xs:enumeration>
4902 </xs:restriction>
4903 </xs:simpleType>
4904 </xs:attribute>
4905 </xs:complexType>
4906 </xs:element>
4907 <xs:element name="RegistrySearchRef">
4908 <xs:annotation>
4909 <xs:appinfo>
4910 <xse:seeAlso ref="RegistrySearch" />
4911 </xs:appinfo>
4912 <xs:documentation>References an existing RegistrySearch element.</xs:documentation>
4913 </xs:annotation>
4914 <xs:complexType>
4915 <xs:attribute name="Id" type="xs:string" use="required">
4916 <xs:annotation>
4917 <xs:documentation>Specify the Id of the RegistrySearch to reference.</xs:documentation>
4918 </xs:annotation>
4919 </xs:attribute>
4920 </xs:complexType>
4921 </xs:element>
4922 <xs:element name="ComplianceDrive">
4923 <xs:annotation>
4924 <xs:documentation>Sets the parent of a nested DirectorySearch element to CCP_DRIVE.</xs:documentation>
4925 </xs:annotation>
4926 <xs:complexType>
4927 <xs:choice>
4928 <xs:element ref="DirectorySearch" />
4929 <xs:element ref="DirectorySearchRef" />
4930 </xs:choice>
4931 </xs:complexType>
4932 </xs:element>
4933 <xs:element name="ComplianceCheck">
4934 <xs:annotation>
4935 <xs:appinfo>
4936 <xse:seeAlso ref="Property" />
4937 <xse:msiRef table="CCPSearch" href="https://docs.microsoft.com/en-us/windows/win32/msi/ccpsearch-table" />
4938 <xse:msiRef table="Signature" href="https://docs.microsoft.com/en-us/windows/win32/msi/signature-table" />
4939 </xs:appinfo>
4940 <xs:documentation>Adds a row to the CCPSearch table.</xs:documentation>
4941 </xs:annotation>
4942 <xs:complexType>
4943 <xs:choice minOccurs="0" maxOccurs="unbounded">
4944 <xs:sequence>
4945 <xs:element ref="ComplianceDrive" minOccurs="0">
4946 <xs:annotation>
4947 <xs:documentation>Starts searches from the CCP_DRIVE.</xs:documentation>
4948 </xs:annotation>
4949 </xs:element>
4950 <xs:element ref="ComponentSearch" minOccurs="0" maxOccurs="unbounded" />
4951 <xs:element ref="RegistrySearch" minOccurs="0" maxOccurs="unbounded" />
4952 <xs:element ref="IniFileSearch" minOccurs="0" maxOccurs="unbounded" />
4953 <xs:element ref="DirectorySearch" minOccurs="0" maxOccurs="unbounded" />
4954 <xs:any namespace="##other" processContents="lax">
4955 <xs:annotation>
4956 <xs:documentation>
4957 Extensibility point in the WiX XML Schema. Schema extensions can register additional
4958 elements at this point in the schema.
4959 </xs:documentation>
4960 </xs:annotation>
4961 </xs:any>
4962 </xs:sequence>
4963 </xs:choice>
4964 <xs:anyAttribute namespace="##other" processContents="lax">
4965 <xs:annotation>
4966 <xs:documentation>
4967 Extensibility point in the WiX XML Schema. Schema extensions can register additional
4968 attributes at this point in the schema.
4969 </xs:documentation>
4970 </xs:annotation>
4971 </xs:anyAttribute>
4972 </xs:complexType>
4973 </xs:element>
4974 <xs:element name="Property">
4975 <xs:annotation>
4976 <xs:appinfo>
4977 <xse:seeAlso ref="PropertyRef" />
4978 <xse:msiRef table="Property" href="http://msdn.microsoft.com/library/aa370908.aspx" />
4979 <xse:howtoRef href="files_and_registry/check_the_version_number.html">How To: Check the version number of a file during installation</xse:howtoRef>
4980 </xs:appinfo>
4981 <xs:documentation>Property value for a Package or Module.</xs:documentation>
4982 </xs:annotation>
4983 <xs:complexType>
4984 <xs:choice minOccurs="0" maxOccurs="unbounded">
4985 <xs:element ref="ComplianceDrive" />
4986 <xs:element ref="ComponentSearch"/>
4987 <xs:element ref="RegistrySearch"/>
4988 <xs:element ref="RegistrySearchRef"/>
4989 <xs:element ref="IniFileSearch"/>
4990 <xs:element ref="DirectorySearch"/>
4991 <xs:element ref="DirectorySearchRef"/>
4992 <xs:element ref="ProductSearch"/>
4993 <xs:any namespace="##other" processContents="lax">
4994 <xs:annotation>
4995 <xs:documentation>
4996 Extensibility point in the WiX XML Schema. Schema extensions can register additional
4997 elements at this point in the schema.
4998 </xs:documentation>
4999 </xs:annotation>
5000 </xs:any>
5001 </xs:choice>
5002 <xs:attribute name="Id" type="xs:string" use="required">
5003 <xs:annotation>
5004 <xs:documentation>Unique identifier for Property.</xs:documentation>
5005 </xs:annotation>
5006 </xs:attribute>
5007 <xs:attribute name="Value" type="xs:string">
5008 <xs:annotation>
5009 <xs:documentation>Sets a default value for the property. The value will be overwritten if the Property is used for a search.</xs:documentation>
5010 </xs:annotation>
5011 </xs:attribute>
5012 <xs:attribute name="ComplianceCheck" type="YesNoTypeUnion">
5013 <xs:annotation>
5014 <xs:documentation>Adds a row to the CCPSearch table. This attribute is only valid when this Property contains a search element.</xs:documentation>
5015 </xs:annotation>
5016 </xs:attribute>
5017 <xs:attribute name="Admin" type="YesNoTypeUnion">
5018 <xs:annotation>
5019 <xs:documentation>
5020 Denotes that the property is saved during [administrative installations](https://learn.microsoft.com/en-us/windows/win32/msi/administrative-installation).
5021 Adds the property name to the [AdminProperties property](https://learn.microsoft.com/en-us/windows/win32/msi/adminproperties).
5022 </xs:documentation>
5023 </xs:annotation>
5024 </xs:attribute>
5025 <xs:attribute name="Secure" type="YesNoTypeUnion">
5026 <xs:annotation>
5027 <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>
5028 </xs:annotation>
5029 </xs:attribute>
5030 <xs:attribute name="Hidden" type="YesNoTypeUnion">
5031 <xs:annotation>
5032 <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>
5033 </xs:annotation>
5034 </xs:attribute>
5035 <xs:attribute name="SuppressModularization" type="YesNoTypeUnion">
5036 <xs:annotation>
5037 <xs:documentation>
5038 Use to suppress modularization of this property identifier in merge modules.
5039 Using this functionality is strongly discouraged; it should only be
5040 necessary as a workaround of last resort in rare scenarios.
5041 </xs:documentation>
5042 </xs:annotation>
5043 </xs:attribute>
5044 <xs:anyAttribute namespace="##other" processContents="lax">
5045 <xs:annotation>
5046 <xs:documentation>
5047 Extensibility point in the WiX XML Schema. Schema extensions can register additional
5048 attributes at this point in the schema.
5049 </xs:documentation>
5050 </xs:annotation>
5051 </xs:anyAttribute>
5052 </xs:complexType>
5053 </xs:element>
5054 <xs:element name="PropertyRef">
5055 <xs:annotation>
5056 <xs:appinfo>
5057 <xse:seeAlso ref="Property" />
5058 <xse:howtoRef href="redistributables_and_install_checks/check_for_dotnet.html">How To: Check for .NET Framework versions</xse:howtoRef>
5059 </xs:appinfo>
5060 <xs:documentation>Reference to a Property value.</xs:documentation>
5061 </xs:annotation>
5062 <xs:complexType>
5063 <xs:choice minOccurs="0" maxOccurs="unbounded">
5064 <xs:any namespace="##other" processContents="lax">
5065 <xs:annotation>
5066 <xs:documentation>
5067 Extensibility point in the WiX XML Schema. Schema extensions can register additional
5068 elements at this point in the schema.
5069 </xs:documentation>
5070 </xs:annotation>
5071 </xs:any>
5072 </xs:choice>
5073 <xs:attribute name="Id" type="xs:string" use="required">
5074 <xs:annotation>
5075 <xs:documentation>Identifier of Property to reference.</xs:documentation>
5076 </xs:annotation>
5077 </xs:attribute>
5078 <xs:anyAttribute namespace="##other" processContents="lax">
5079 <xs:annotation>
5080 <xs:documentation>
5081 Extensibility point in the WiX XML Schema. Schema extensions can register additional
5082 attributes at this point in the schema.
5083 </xs:documentation>
5084 </xs:annotation>
5085 </xs:anyAttribute>
5086 </xs:complexType>
5087 </xs:element>
5088 <xs:element name="SoftwareTagRef">
5089 <xs:annotation>
5090 <xs:documentation>Reference to a SoftwareTag by Regid.</xs:documentation>
5091 </xs:annotation>
5092 <xs:complexType>
5093 <xs:choice minOccurs="0" maxOccurs="unbounded">
5094 <xs:any namespace="##other" processContents="lax">
5095 <xs:annotation>
5096 <xs:documentation>
5097 Extensibility point in the WiX XML Schema. Schema extensions can register additional
5098 elements at this point in the schema.
5099 </xs:documentation>
5100 </xs:annotation>
5101 </xs:any>
5102 </xs:choice>
5103 <xs:attribute name="Regid" type="xs:string" use="required">
5104 <xs:annotation>
5105 <xs:documentation>Regid of SoftwareTag to reference.</xs:documentation>
5106 </xs:annotation>
5107 </xs:attribute>
5108 <xs:anyAttribute namespace="##other" processContents="lax">
5109 <xs:annotation>
5110 <xs:documentation>
5111 Extensibility point in the WiX XML Schema. Schema extensions can register additional
5112 attributes at this point in the schema.
5113 </xs:documentation>
5114 </xs:annotation>
5115 </xs:anyAttribute>
5116 </xs:complexType>
5117 </xs:element>
5118 <xs:element name="Shortcut">
5119 <xs:annotation>
5120 <xs:documentation>
5121 Shortcut, default target is parent File, CreateFolder, or Component's Directory
5122 </xs:documentation>
5123 <xs:appinfo>
5124 <xse:msiRef table="Shortcut" href="http://msdn.microsoft.com/library/aa371847.aspx" />
5125 <xse:howtoRef href="files_and_registry/create_start_menu_shortcut.html">How To: Create a shortcut on the Start Menu</xse:howtoRef>
5126 </xs:appinfo>
5127 </xs:annotation>
5128 <xs:complexType>
5129 <xs:choice minOccurs="0" maxOccurs="unbounded">
5130 <xs:element ref="Icon" minOccurs="0" />
5131 <xs:element ref="ShortcutProperty" minOccurs="0" />
5132 </xs:choice>
5133 <xs:attribute name="Id" type="xs:string">
5134 <xs:annotation>
5135 <xs:documentation>Unique identifier for the shortcut. This value will serve as the primary key for the row.</xs:documentation>
5136 </xs:annotation>
5137 </xs:attribute>
5138 <xs:attribute name="Directory" type="xs:string">
5139 <xs:annotation>
5140 <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>
5141 </xs:annotation>
5142 </xs:attribute>
5143 <xs:attribute name="Name" type="LongFileNameType" use="required">
5144 <xs:annotation>
5145 <xs:documentation>
5146 If a short name is specified, the ShortName attribute may not be specified.
5147 If this value is a long name, the ShortName attribute may be omitted to
5148 allow WiX to attempt to generate a unique short name.
5149 However, if this name collides with another shortcut or you wish to manually specify
5150 the short name, then the ShortName attribute may be specified.
5151 </xs:documentation>
5152 </xs:annotation>
5153 </xs:attribute>
5154 <xs:attribute name="ShortName" type="ShortFileNameType">
5155 <xs:annotation>
5156 <xs:documentation>
5157 The short name of the shortcut in 8.3 format.
5158 This attribute should only be set if there is a conflict between generated short names
5159 or the user wants to manually specify the short name.
5160 </xs:documentation>
5161 </xs:annotation>
5162 </xs:attribute>
5163 <xs:attribute name="Target" type="xs:string">
5164 <xs:annotation>
5165 <xs:documentation>
5166 This attribute can only be set if this Shortcut element is nested under a Component element.
5167 When nested under a Component element, this attribute's value will default to the parent directory.
5168 This attribute's value is the target for a non-advertised shortcut.
5169 This attribute is not valid for advertised shortcuts.
5170 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.
5171 </xs:documentation>
5172 </xs:annotation>
5173 </xs:attribute>
5174 <xs:attribute name="Description" type="xs:string">
5175 <xs:annotation>
5176 <xs:documentation>The localizable description for the shortcut.</xs:documentation>
5177 </xs:annotation>
5178 </xs:attribute>
5179 <xs:attribute name="Arguments" type="xs:string">
5180 <xs:annotation>
5181 <xs:documentation>
5182 The command-line arguments for the shortcut. Note that the resolution of properties
5183 in the Arguments field is limited. A property formatted as [Property] in this field can only be resolved if the
5184 property already has the intended value when the component owning the shortcut is installed. For example, for the
5185 argument "[#MyDoc.doc]" to resolve to the correct value, the same process must be installing the file MyDoc.doc and
5186 the component that owns the shortcut.
5187 </xs:documentation>
5188 </xs:annotation>
5189 </xs:attribute>
5190 <xs:attribute name="Hotkey" type="Integer">
5191 <xs:annotation>
5192 <xs:documentation>
5193 The hotkey for the shortcut. The low-order byte contains the virtual-key code for
5194 the key, and the high-order byte contains modifier flags. This must be a non-negative number. Authors of
5195 installation packages are generally recommend not to set this option, because this can add duplicate hotkeys to a
5196 users desktop. In addition, the practice of assigning hotkeys to shortcuts can be problematic for users using hotkeys
5197 for accessibility.
5198 </xs:documentation>
5199 </xs:annotation>
5200 </xs:attribute>
5201 <xs:attribute name="Icon" type="xs:string">
5202 <xs:annotation>
5203 <xs:documentation>
5204 Identifier reference to Icon element. The Icon identifier should have the same extension
5205 as the file that it points at. For example, a shortcut to an executable (e.g. "my.exe") should reference an Icon with identifier
5206 like "MyIcon.exe"
5207 </xs:documentation>
5208 </xs:annotation>
5209 </xs:attribute>
5210 <xs:attribute name="IconIndex" type="Integer">
5211 <xs:annotation>
5212 <xs:documentation>Identifier reference to Icon element.</xs:documentation>
5213 </xs:annotation>
5214 </xs:attribute>
5215 <xs:attribute name="Show">
5216 <xs:simpleType>
5217 <xs:restriction base="xs:NMTOKEN">
5218 <xs:enumeration value="normal">
5219 <xs:annotation>
5220 <xs:documentation>
5221 The shortcut target will be displayed using the SW_SHOWNORMAL attribute.
5222 </xs:documentation>
5223 </xs:annotation>
5224 </xs:enumeration>
5225 <xs:enumeration value="minimized">
5226 <xs:annotation>
5227 <xs:documentation>
5228 The shortcut target will be displayed using the SW_SHOWMINNOACTIVE attribute.
5229 </xs:documentation>
5230 </xs:annotation>
5231 </xs:enumeration>
5232 <xs:enumeration value="maximized">
5233 <xs:annotation>
5234 <xs:documentation>
5235 The shortcut target will be displayed using the SW_SHOWMAXIMIZED attribute.
5236 </xs:documentation>
5237 </xs:annotation>
5238 </xs:enumeration>
5239 </xs:restriction>
5240 </xs:simpleType>
5241 </xs:attribute>
5242 <xs:attribute name="Subdirectory" type="xs:string">
5243 <xs:annotation>
5244 <xs:documentation>
5245 This attribute defines one or more directories below the directory referenced by the Directory attribute
5246 where the shortcut will be installed.
5247 </xs:documentation>
5248 </xs:annotation>
5249 </xs:attribute>
5250 <xs:attribute name="WorkingDirectory" type="xs:string">
5251 <xs:annotation>
5252 <xs:documentation>
5253 Directory identifier (or Property identifier that resolves to a directory) that resolves
5254 to the path of the working directory for the shortcut.
5255 </xs:documentation>
5256 </xs:annotation>
5257 </xs:attribute>
5258 <xs:attribute name="WorkingSubdirectory" type="xs:string">
5259 <xs:annotation>
5260 <xs:documentation>
5261 This attribute defines one or more directories below the directory referenced by the WorkingDirectory attribute
5262 for the shortcut's working directory.
5263 </xs:documentation>
5264 </xs:annotation>
5265 </xs:attribute>
5266 <xs:attribute name="Advertise" type="YesNoTypeUnion">
5267 <xs:annotation>
5268 <xs:documentation>
5269 Specifies if the shortcut should be advertised or not. Note that advertised shortcuts
5270 always point at a particular application, identified by a ProductCode, and should not be shared between applications.
5271 Advertised shortcuts only work for the most recently installed application, and are removed when that application is
5272 removed. The default value is 'no'.
5273 </xs:documentation>
5274 </xs:annotation>
5275 </xs:attribute>
5276 <xs:attribute name="DisplayResourceDll" type="xs:string">
5277 <xs:annotation>
5278 <xs:documentation>
5279 The Formatted string providing the full path to the language neutral file containing the MUI Manifest. Generally
5280 authored using [#filekey] form. When this attribute is specified, the DisplayResourceId attribute must also
5281 be provided.
5282
5283 This attribute is only used on Windows Vista and above. If this attribute is not populated and the install
5284 is running on Vista and above, the value in the Name attribute is used. If this attribute is populated and
5285 the install is running on Vista and above, the value in the Name attribute is ignored.
5286 </xs:documentation>
5287 </xs:annotation>
5288 </xs:attribute>
5289 <xs:attribute name="DisplayResourceId" type="Integer">
5290 <xs:annotation>
5291 <xs:documentation>
5292 The display name index for the shortcut. This must be a non-negative number. When this attribute is specified, the
5293 DisplayResourceDll attribute must also be provided.
5294
5295 This attribute is only used on Windows Vista and above. If this attribute is not specified and the install
5296 is running on Vista and above, the value in the Name attribute is used. If this attribute is specified and
5297 the install is running on Vista and above, the value in the Name attribute is ignored.
5298 </xs:documentation>
5299 </xs:annotation>
5300 </xs:attribute>
5301 <xs:attribute name="DescriptionResourceDll" type="xs:string">
5302 <xs:annotation>
5303 <xs:documentation>
5304 The Formatted string providing the full path to the language neutral file containing the MUI Manifest. Generally
5305 authored using [#filekey] form. When this attribute is specified, the DescriptionResourceId attribute must also
5306 be provided.
5307
5308 This attribute is only used on Windows Vista and above. If this attribute is not specified and the install
5309 is running on Vista and above, the value in the Name attribute is used. If this attribute is provided and
5310 the install is running on Vista and above, the value in the Name attribute is ignored.
5311 </xs:documentation>
5312 </xs:annotation>
5313 </xs:attribute>
5314 <xs:attribute name="DescriptionResourceId" type="Integer">
5315 <xs:annotation>
5316 <xs:documentation>
5317 The description name index for the shortcut. This must be a non-negative number. When this attribute is specified,
5318 the DescriptionResourceDll attribute must also be populated.
5319
5320 This attribute is only used on Windows Vista and above. If this attribute is not specified and the install
5321 is running on Vista and above, the value in the Name attribute is used. If this attribute is populated and the
5322 install is running on Vista and above, the value in the Name attribute is ignored.
5323 </xs:documentation>
5324 </xs:annotation>
5325 </xs:attribute>
5326 </xs:complexType>
5327 </xs:element>
5328 <xs:element name="ShortcutProperty">
5329 <xs:annotation>
5330 <xs:appinfo>
5331 <xse:seeAlso ref="Shortcut" />
5332 <xse:msiRef table="MsiShortcutProperty" />
5333 </xs:appinfo>
5334 <xs:documentation>Property values for a shortcut. This element's functionality is available starting with MSI 5.0.</xs:documentation>
5335 </xs:annotation>
5336 <xs:complexType>
5337 <xs:attribute name="Id" type="xs:string">
5338 <xs:annotation>
5339 <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>
5340 </xs:annotation>
5341 </xs:attribute>
5342 <xs:attribute name="Key" type="xs:string" use="required">
5343 <xs:annotation>
5344 <xs:documentation>A formatted string identifying the property to be set.</xs:documentation>
5345 </xs:annotation>
5346 </xs:attribute>
5347 <xs:attribute name="Value" type="xs:string">
5348 <xs:annotation>
5349 <xs:documentation>A formatted string supplying the value of the property.</xs:documentation>
5350 </xs:annotation>
5351 </xs:attribute>
5352 </xs:complexType>
5353 </xs:element>
5354 <xs:element name="Permission">
5355 <xs:annotation>
5356 <xs:documentation>
5357 Sets ACLs on File, Registry, or CreateFolder. When under a Registry element, this cannot be used
5358 if the Action attribute's value is remove or removeKeyOnInstall. This element has no Id attribute.
5359 The table and key are taken from the parent element.
5360 </xs:documentation>
5361 <xs:appinfo>
5362 <xse:msiRef table="LockPermissions" href="http://msdn.microsoft.com/library/aa369774.aspx" />
5363 </xs:appinfo>
5364 </xs:annotation>
5365 <xs:complexType>
5366 <xs:attribute name="Domain" type="xs:string"></xs:attribute>
5367 <xs:attribute name="User" use="required" type="xs:string"></xs:attribute>
5368 <!-- Common ACLs -->
5369 <xs:attribute name="Read" type="YesNoTypeUnion"></xs:attribute>
5370 <xs:attribute name="Delete" type="YesNoTypeUnion"></xs:attribute>
5371 <xs:attribute name="ReadPermission" type="YesNoTypeUnion"></xs:attribute>
5372 <xs:attribute name="ChangePermission" type="YesNoTypeUnion"></xs:attribute>
5373 <xs:attribute name="TakeOwnership" type="YesNoTypeUnion"></xs:attribute>
5374 <xs:attribute name="SpecificRightsAll" type="YesNoTypeUnion">
5375 <xs:annotation>
5376 <xs:documentation>Bit mask for SPECIFIC_RIGHTS_ALL from WinNT.h (0x0000FFFF).</xs:documentation>
5377 </xs:annotation>
5378 </xs:attribute>
5379 <!-- Folder and File ACLs -->
5380 <xs:attribute name="ReadAttributes" type="YesNoTypeUnion"></xs:attribute>
5381 <xs:attribute name="WriteAttributes" type="YesNoTypeUnion"></xs:attribute>
5382 <xs:attribute name="ReadExtendedAttributes" type="YesNoTypeUnion"></xs:attribute>
5383 <xs:attribute name="WriteExtendedAttributes" type="YesNoTypeUnion"></xs:attribute>
5384 <xs:attribute name="Synchronize" type="YesNoTypeUnion"></xs:attribute>
5385 <!-- Folder only ACLs -->
5386 <xs:attribute name="CreateFile" type="YesNoTypeUnion">
5387 <xs:annotation>
5388 <xs:documentation>For a directory, the right to create a file in the directory. Only valid under a 'CreateFolder' parent.</xs:documentation>
5389 </xs:annotation>
5390 </xs:attribute>
5391 <xs:attribute name="CreateChild" type="YesNoTypeUnion">
5392 <xs:annotation>
5393 <xs:documentation>For a directory, the right to create a subdirectory. Only valid under a 'CreateFolder' parent.</xs:documentation>
5394 </xs:annotation>
5395 </xs:attribute>
5396 <xs:attribute name="DeleteChild" type="YesNoTypeUnion">
5397 <xs:annotation>
5398 <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>
5399 </xs:annotation>
5400 </xs:attribute>
5401 <xs:attribute name="Traverse" type="YesNoTypeUnion">
5402 <xs:annotation>
5403 <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>
5404 </xs:annotation>
5405 </xs:attribute>
5406 <!-- File only ACLs -->
5407 <xs:attribute name="Append" type="YesNoTypeUnion"></xs:attribute>
5408 <xs:attribute name="Execute" type="YesNoTypeUnion"></xs:attribute>
5409 <xs:attribute name="FileAllRights" type="YesNoTypeUnion">
5410 <xs:annotation>
5411 <xs:documentation>Bit mask for FILE_ALL_ACCESS from WinNT.h (0x001F01FF).</xs:documentation>
5412 </xs:annotation>
5413 </xs:attribute>
5414 <!-- File and Registry ACLs -->
5415 <xs:attribute name="Write" type="YesNoTypeUnion"></xs:attribute>
5416 <!-- Registry only ACLs -->
5417 <xs:attribute name="CreateSubkeys" type="YesNoTypeUnion"></xs:attribute>
5418 <xs:attribute name="EnumerateSubkeys" type="YesNoTypeUnion"></xs:attribute>
5419 <xs:attribute name="Notify" type="YesNoTypeUnion"></xs:attribute>
5420 <xs:attribute name="CreateLink" type="YesNoTypeUnion"></xs:attribute>
5421 <!-- Generic ACLs, mapped by system to appropriate permissions -->
5422 <xs:attribute name="GenericAll" type="YesNoTypeUnion"></xs:attribute>
5423 <xs:attribute name="GenericExecute" type="YesNoTypeUnion"></xs:attribute>
5424 <xs:attribute name="GenericWrite" type="YesNoTypeUnion"></xs:attribute>
5425 <xs:attribute name="GenericRead" type="YesNoTypeUnion">
5426 <xs:annotation>
5427 <xs:documentation>specifying this will fail to grant read access</xs:documentation>
5428 </xs:annotation>
5429 </xs:attribute>
5430 </xs:complexType>
5431 </xs:element>
5432 <xs:element name="PermissionEx">
5433 <xs:annotation>
5434 <xs:documentation>
5435 Sets ACLs on File, Registry, or CreateFolder. When under a Registry element, this cannot be used
5436 if the Action attribute's value is remove or removeKeyOnInstall. This element is only available
5437 when installing with MSI 5.0. For downlevel support, see the PermissionEx element from the
5438 WixUtilExtension.
5439 </xs:documentation>
5440 <xs:appinfo>
5441 <xse:msiRef table="MsiLockPermissionsEx" href="http://msdn.microsoft.com/library/aa369774.aspx" />
5442 </xs:appinfo>
5443 </xs:annotation>
5444 <xs:complexType>
5445 <xs:attribute name="Id" type="xs:string">
5446 <xs:annotation>
5447 <xs:documentation>
5448 Primary key used to identify this particular entry. If this is not specified the parent element's Id attribute
5449 will be used instead.
5450 </xs:documentation>
5451 </xs:annotation>
5452 </xs:attribute>
5453 <xs:attribute name="Condition" type="xs:string">
5454 <xs:annotation>
5455 <xs:documentation>
5456 Optional condition that controls whether the permissions are applied.
5457 </xs:documentation>
5458 </xs:annotation>
5459 </xs:attribute>
5460 <xs:attribute name="Sddl" type="xs:string" use="required">
5461 <xs:annotation>
5462 <xs:documentation>
5463 Security descriptor to apply to parent object.
5464 </xs:documentation>
5465 </xs:annotation>
5466 </xs:attribute>
5467 </xs:complexType>
5468 </xs:element>
5469 <xs:element name="CopyFile">
5470 <xs:annotation>
5471 <xs:appinfo>
5472 <xse:seeAlso ref="RemoveFile" />
5473 <xse:msiRef table="DuplicateFile" href="http://msdn.microsoft.com/library/aa368335.aspx" />
5474 <xse:msiRef table="MoveFile" href="http://msdn.microsoft.com/library/aa370055.aspx" />
5475 </xs:appinfo>
5476 <xs:documentation>
5477 Copy or move an existing file on the target machine, or copy a file that is being installed, to another destination. When
5478 this element is nested under a File element, the parent file will be installed, then copied to the specified destination
5479 if the parent component of the file is selected for installation or removal. When this element is nested under
5480 a Component element and no FileId attribute is specified, the file to copy or move must already be on the target machine.
5481 When this element is nested under a Component element and the FileId attribute is specified, the specified file is installed,
5482 then copied to the specified destination if the parent component is selected for installation or removal (use
5483 this option to control the copy of a file in a different component by the parent component's installation state). If the
5484 specified destination directory is the same as the directory containing the original file and the name for the proposed source
5485 file is the same as the original, then no action takes place.
5486 </xs:documentation>
5487 </xs:annotation>
5488 <xs:complexType>
5489 <xs:attribute name="Id" type="xs:string" use="required">
5490 <xs:annotation>
5491 <xs:documentation>Primary key used to identify this particular entry.</xs:documentation>
5492 </xs:annotation>
5493 </xs:attribute>
5494 <xs:attribute name="FileId" type="xs:string">
5495 <xs:annotation>
5496 <xs:documentation>
5497 This attribute cannot be specified if the element is nested under a File element. Set this attribute's value to the identifier
5498 of a file from a different component to copy it based on the install state of the parent component.
5499 </xs:documentation>
5500 </xs:annotation>
5501 </xs:attribute>
5502 <xs:attribute name="SourceDirectory" type="xs:string">
5503 <xs:annotation>
5504 <xs:documentation>
5505 This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set
5506 this value to the source directory from which to copy or move an existing file on the target machine. This Directory must
5507 exist in the installer database at creation time. This attribute cannot be specified in conjunction with SourceProperty.
5508 </xs:documentation>
5509 </xs:annotation>
5510 </xs:attribute>
5511 <xs:attribute name="SourceProperty" type="xs:string">
5512 <xs:annotation>
5513 <xs:documentation>
5514 This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set
5515 this value to a property that will have a value that resolves to the full path of the source directory (or full path
5516 including file name if SourceName is not specified). The property does not have to exist in the installer database at
5517 creation time; it could be created at installation time by a custom action, on the command line, etc. This attribute
5518 cannot be specified in conjunction with SourceDirectory.
5519 </xs:documentation>
5520 </xs:annotation>
5521 </xs:attribute>
5522 <xs:attribute name="SourceName" type="WildCardLongFileNameType">
5523 <xs:annotation>
5524 <xs:documentation>
5525 This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set
5526 this value to the localizable name of the file(s) to be copied or moved. All of the files that
5527 match the wild card will be removed from the specified directory. The value is a filename that may also
5528 contain the wild card characters "?" for any single character or "*" for zero or more occurrences of any character. If this
5529 attribute is not specified (and this element is not nested under a File element or specify a FileId attribute) then the
5530 SourceProperty attribute should be set to the name of a property that will resolve to the full path of the source filename.
5531 If the value of this attribute contains a "*" wildcard and the DestinationName attribute is specified, all moved or copied
5532 files retain the file names from their sources.
5533 </xs:documentation>
5534 </xs:annotation>
5535 </xs:attribute>
5536 <xs:attribute name="DestinationDirectory" type="xs:string">
5537 <xs:annotation>
5538 <xs:documentation>
5539 Set this value to the destination directory where an existing file on the target machine should be moved or copied to. This
5540 Directory must exist in the installer database at creation time. This attribute cannot be specified in conjunction with
5541 DestinationProperty.
5542 </xs:documentation>
5543 </xs:annotation>
5544 </xs:attribute>
5545 <xs:attribute name="DestinationProperty" type="xs:string">
5546 <xs:annotation>
5547 <xs:documentation>
5548 Set this value to a property that will have a value that resolves to the full path of the destination directory. The property
5549 does not have to exist in the installer database at creation time; it could be created at installation time by a custom
5550 action, on the command line, etc. This attribute cannot be specified in conjunction with DestinationDirectory.
5551 </xs:documentation>
5552 </xs:annotation>
5553 </xs:attribute>
5554 <xs:attribute name="DestinationName" type="LongFileNameType">
5555 <xs:annotation>
5556 <xs:documentation>
5557 In prior versions of the WiX toolset, this attribute specified the short file name.
5558 Now set this value to the localizable name to be given to the original file after it is moved or copied.
5559 If this attribute is not specified, then the destination file is given the same name as the source file.
5560 If a short file name is specified, the DestinationShortName attribute may not be specified.
5561 Also, if this value is a long file name, the DestinationShortName attribute may be omitted to
5562 allow WiX to attempt to generate a unique short file name.
5563 However, if this name collides with another file or you wish to manually specify
5564 the short file name, then the DestinationShortName attribute may be specified.
5565 </xs:documentation>
5566 </xs:annotation>
5567 </xs:attribute>
5568 <xs:attribute name="DestinationShortName" type="ShortFileNameType">
5569 <xs:annotation>
5570 <xs:documentation>
5571 The short file name of the file in 8.3 format.
5572 This attribute should only be set if there is a conflict between generated short file names
5573 or you wish to manually specify the short file name.
5574 </xs:documentation>
5575 </xs:annotation>
5576 </xs:attribute>
5577 <xs:attribute name="Delete" type="YesNoTypeUnion">
5578 <xs:annotation>
5579 <xs:documentation>
5580 This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. In other
5581 cases, if the attribute is not specified, the default value is "no" and the file is copied, not moved. Set the value to "yes"
5582 in order to move the file (thus deleting the source file) instead of copying it.
5583 </xs:documentation>
5584 </xs:annotation>
5585 </xs:attribute>
5586 </xs:complexType>
5587 </xs:element>
5588 <xs:element name="File">
5589 <xs:annotation>
5590 <xs:documentation>
5591 Defines a file to be installed by the package.
5592 </xs:documentation>
5593 <xs:appinfo>
5594 <xse:msiRef table="File" href="https://learn.microsoft.com/en-us/windows/win32/msi/file-table" />
5595 <xse:howtoRef href="files_and_registry/add_a_file.html">How To: Add a file to your installer</xse:howtoRef>
5596 </xs:appinfo>
5597 </xs:annotation>
5598 <xs:complexType>
5599 <xs:choice minOccurs="0" maxOccurs="unbounded">
5600 <xs:element ref="AssemblyName" />
5601 <xs:element ref="Permission">
5602 <xs:annotation>
5603 <xs:documentation>Used to configure the ACLs for this file.</xs:documentation>
5604 </xs:annotation>
5605 </xs:element>
5606 <xs:element ref="PermissionEx">
5607 <xs:annotation>
5608 <xs:documentation>Can also configure the ACLs for this file.</xs:documentation>
5609 </xs:annotation>
5610 </xs:element>
5611 <xs:element ref="CopyFile">
5612 <xs:annotation>
5613 <xs:documentation>Used to create a duplicate of this file elsewhere.</xs:documentation>
5614 </xs:annotation>
5615 </xs:element>
5616 <xs:element ref="Shortcut">
5617 <xs:annotation>
5618 <xs:documentation>Target of the shortcut will be set to this file.</xs:documentation>
5619 </xs:annotation>
5620 </xs:element>
5621 <xs:element ref="ODBCDriver" />
5622 <xs:element ref="ODBCTranslator" />
5623 <xs:element ref="SymbolPath" />
5624 <xs:element ref="Class" />
5625 <xs:element ref="AppId" />
5626 <xs:element ref="TypeLib" />
5627 <xs:any namespace="##other" processContents="lax">
5628 <xs:annotation>
5629 <xs:documentation>
5630 Extensibility point in the WiX XML Schema. Schema extensions can register additional
5631 elements at this point in the schema.
5632 </xs:documentation>
5633 </xs:annotation>
5634 </xs:any>
5635 </xs:choice>
5636 <xs:attribute name="Id" type="xs:string">
5637 <xs:annotation>
5638 <xs:documentation>
5639 The unique identifier for this File element. If you omit Id, a stable identifier is generated for you.
5640 </xs:documentation>
5641 </xs:annotation>
5642 </xs:attribute>
5643 <xs:attribute name="Bitness" type="BitnessTypeUnion">
5644 <xs:annotation>
5645 <xs:documentation>
5646 [WiX v5] Only valid when the File element is not a child of the Component element.
5647 Overrides the default File bitness. Only a 64-bit File can install to 64-bit locations such
5648 as `ProgramFiles64Folder` and the 64-bit registry. The value `always64` will force the File
5649 bitness to be 64-bit and cannot be included in 32-bit packages.
5650 Simliarly, the value `always32` will force the File bitness to 32-bit and can be included in
5651 32-bit or 64-bit packages.
5652 The default value is `default` where the File will be installed using the
5653 same bitness as the package.
5654 </xs:documentation>
5655 </xs:annotation>
5656 </xs:attribute>
5657 <xs:attribute name="CompanionFile" type="xs:string">
5658 <xs:annotation>
5659 <xs:documentation>
5660 Set this attribute to make this file a companion child of another file. The installation
5661 state of a companion file depends not on its own file versioning information, but on the versioning of its
5662 companion parent. A file that is the key path for its component can not be a companion file (that means
5663 this attribute cannot be set if KeyPath="yes" for this file). The Version attribute cannot be set along
5664 with this attribute since companion files are not installed based on their own version.</xs:documentation>
5665 </xs:annotation>
5666 </xs:attribute>
5667 <xs:attribute name="Condition" 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 The condition expression to be evaluated at install time. When false the File will not be installed.
5672 </xs:documentation>
5673 </xs:annotation>
5674 </xs:attribute>
5675 <xs:attribute name="Directory" type="xs:string">
5676 <xs:annotation>
5677 <xs:documentation>
5678 [WiX v5] Only valid when the File element is not a child of the Component element.
5679 This attribute specifies a reference to a Directory element with matching Id attribute containing a directory path.
5680 If not provided, the value will default to "INSTALLFOLDER".
5681 </xs:documentation>
5682 </xs:annotation>
5683 </xs:attribute>
5684 <xs:attribute name="Subdirectory" type="xs:string">
5685 <xs:annotation>
5686 <xs:documentation>
5687 [WiX v5] Only valid when the File element is not a child of the Component element.
5688 This attribute defines one or more directories below the directory referenced by the Directory attribute.
5689 </xs:documentation>
5690 </xs:annotation>
5691 </xs:attribute>
5692 <xs:attribute name="Name" type="LongFileNameType">
5693 <xs:annotation>
5694 <xs:documentation>
5695 Specifies the name of the installed file. If this attribute is omitted, then
5696 its default value is the file name portion of the Source attribute. If the
5697 Source attribute is omitted, you must specify a Name attribute. For more
5698 information, see [Specifying source files](../../../tools/payloads/).
5699 </xs:documentation>
5700 </xs:annotation>
5701 </xs:attribute>
5702 <xs:attribute name="KeyPath" type="YesNoTypeUnion">
5703 <xs:annotation>
5704 <xs:documentation>Set to yes in order to force this file to be the key path for the parent component.</xs:documentation>
5705 </xs:annotation>
5706 </xs:attribute>
5707 <xs:attribute name="ShortName" type="ShortFileNameType">
5708 <xs:annotation>
5709 <xs:documentation>
5710 The short file name of the file in 8.3 format.
5711 This attribute should only be set if there is a conflict between generated short file names
5712 or the user wants to manually specify the short file name.
5713 </xs:documentation>
5714 </xs:annotation>
5715 </xs:attribute>
5716 <xs:attribute name="ReadOnly" type="YesNoTypeUnion">
5717 <xs:annotation>
5718 <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>
5719 </xs:annotation>
5720 </xs:attribute>
5721 <xs:attribute name="Hidden" type="YesNoTypeUnion">
5722 <xs:annotation>
5723 <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>
5724 </xs:annotation>
5725 </xs:attribute>
5726 <xs:attribute name="System" type="YesNoTypeUnion">
5727 <xs:annotation>
5728 <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>
5729 </xs:annotation>
5730 </xs:attribute>
5731 <xs:attribute name="Vital" type="YesNoTypeUnion">
5732 <xs:annotation>
5733 <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>
5734 </xs:annotation>
5735 </xs:attribute>
5736 <xs:attribute name="Checksum" type="YesNoTypeUnion">
5737 <xs:annotation>
5738 <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>
5739 </xs:annotation>
5740 </xs:attribute>
5741 <xs:attribute name="Compressed" type="YesNoDefaultTypeUnion">
5742 <xs:annotation>
5743 <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>
5744 </xs:annotation>
5745 </xs:attribute>
5746 <xs:attribute name="BindPath" type="xs:string">
5747 <xs:annotation>
5748 <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>
5749 </xs:annotation>
5750 </xs:attribute>
5751 <xs:attribute name="SelfRegCost" type="Integer">
5752 <xs:annotation>
5753 <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>
5754 </xs:annotation>
5755 </xs:attribute>
5756 <xs:attribute name="TrueType" type="YesNoTypeUnion">
5757 <xs:annotation>
5758 <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>
5759 </xs:annotation>
5760 </xs:attribute>
5761 <xs:attribute name="FontTitle" type="xs:string">
5762 <xs:annotation>
5763 <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>
5764 </xs:annotation>
5765 </xs:attribute>
5766 <xs:attribute name="DefaultLanguage" type="xs:string">
5767 <xs:annotation>
5768 <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>
5769 </xs:annotation>
5770 </xs:attribute>
5771 <xs:attribute name="DefaultSize" type="Integer">
5772 <xs:annotation>
5773 <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>
5774 </xs:annotation>
5775 </xs:attribute>
5776 <xs:attribute name="DefaultVersion" type="xs:string">
5777 <xs:annotation>
5778 <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>
5779 </xs:annotation>
5780 </xs:attribute>
5781 <xs:attribute name="Assembly">
5782 <xs:annotation>
5783 <xs:documentation>
5784 Specifies if this File is a Win32 Assembly or .NET Assembly that needs to be installed into the
5785 Global Assembly Cache (GAC). If the value is '.net' or 'win32', this file must also be the key path of the Component.
5786 </xs:documentation>
5787 </xs:annotation>
5788 <xs:simpleType>
5789 <xs:restriction base="xs:NMTOKEN">
5790 <xs:enumeration value=".net">
5791 <xs:annotation>
5792 <xs:documentation>
5793 The file is a .NET Framework assembly.
5794 </xs:documentation>
5795 </xs:annotation>
5796 </xs:enumeration>
5797 <xs:enumeration value="no">
5798 <xs:annotation>
5799 <xs:documentation>
5800 The file is not a .NET Framework or Win32 assembly. This is the default value.
5801 </xs:documentation>
5802 </xs:annotation>
5803 </xs:enumeration>
5804 <xs:enumeration value="win32">
5805 <xs:annotation>
5806 <xs:documentation>
5807 The file is a Win32 assembly.
5808 </xs:documentation>
5809 </xs:annotation>
5810 </xs:enumeration>
5811 </xs:restriction>
5812 </xs:simpleType>
5813 </xs:attribute>
5814 <xs:attribute name="AssemblyManifest" type="xs:string">
5815 <xs:annotation>
5816 <xs:documentation>
5817 Specifies the file identifier of the manifest file that describes this assembly.
5818 The manifest file should be in the same component as the assembly it describes.
5819 This attribute may only be specified if the Assembly attribute is set to '.net' or 'win32'.
5820 </xs:documentation>
5821 </xs:annotation>
5822 </xs:attribute>
5823 <xs:attribute name="AssemblyApplication" type="xs:string">
5824 <xs:annotation>
5825 <xs:documentation>
5826 Specifies the file identifier of the application file. This assembly will be isolated
5827 to the same directory as the application file.
5828 If this attribute is absent, the assembly will be installed to the Global Assembly Cache (GAC).
5829 This attribute may only be specified if the Assembly attribute is set to '.net' or 'win32'.
5830 </xs:documentation>
5831 </xs:annotation>
5832 </xs:attribute>
5833 <xs:attribute name="ProcessorArchitecture">
5834 <xs:annotation>
5835 <xs:documentation>Specifies the architecture for this assembly. This attribute should only be used on .NET Framework 2.0 or higher assemblies.</xs:documentation>
5836 </xs:annotation>
5837 <xs:simpleType>
5838 <xs:restriction base="xs:NMTOKEN">
5839 <xs:enumeration value="msil">
5840 <xs:annotation>
5841 <xs:documentation>
5842 The file is a .NET Framework assembly that is processor-neutral.
5843 </xs:documentation>
5844 </xs:annotation>
5845 </xs:enumeration>
5846 <xs:enumeration value="x86">
5847 <xs:annotation>
5848 <xs:documentation>
5849 The file is a .NET Framework assembly for the x86 processor.
5850 </xs:documentation>
5851 </xs:annotation>
5852 </xs:enumeration>
5853 <xs:enumeration value="x64">
5854 <xs:annotation>
5855 <xs:documentation>
5856 The file is a .NET Framework assembly for the x64 processor.
5857 </xs:documentation>
5858 </xs:annotation>
5859 </xs:enumeration>
5860 <xs:enumeration value="ia64">
5861 <xs:annotation>
5862 <xs:documentation>
5863 The file is a .NET Framework assembly for the ia64 processor.
5864 </xs:documentation>
5865 </xs:annotation>
5866 </xs:enumeration>
5867 </xs:restriction>
5868 </xs:simpleType>
5869 </xs:attribute>
5870 <xs:attribute name="DiskId" type="DiskIdType">
5871 <xs:annotation>
5872 <xs:documentation>
5873 The value of this attribute should correspond to the Id attribute of a Media
5874 element authored elsewhere. By creating this connection between a file and
5875 its media, you set the packaging options to the values specified in the Media
5876 element (values such as compression level, cab embedding, etc...). Specifying
5877 the DiskId attribute on the File element overrides the default DiskId attribute
5878 from the parent Component element. If no DiskId attribute is specified,
5879 the default is "1". This DiskId attribute is ignored when creating a merge module
5880 because merge modules do not have media.
5881 </xs:documentation>
5882 </xs:annotation>
5883 </xs:attribute>
5884 <xs:attribute name="Source" type="xs:string">
5885 <xs:annotation>
5886 <xs:documentation>
5887 Specifies the path to the file in the build process. Overrides default source
5888 path set by parent directories and Name attribute. This attribute must be set
5889 if no source information can be gathered from parent directories. For more
5890 information, see [Specifying source files](../../../tools/payloads/).
5891 </xs:documentation>
5892 </xs:annotation>
5893 </xs:attribute>
5894 <xs:attribute name="PatchGroup" type="Integer">
5895 <xs:annotation>
5896 <xs:documentation>
5897 This attribute must be set for patch-added files. Each patch should be assigned a different patch group number. Patch groups
5898 numbers must be greater 0 and should be assigned consecutively. For example, the first patch should use PatchGroup='1', the
5899 second patch will have PatchGroup='2', etc...
5900 </xs:documentation>
5901 </xs:annotation>
5902 </xs:attribute>
5903 <xs:attribute name="PatchIgnore" type="YesNoTypeUnion">
5904 <xs:annotation>
5905 <xs:documentation>Prevents the updating of the file that is in fact changed in the upgraded image relative to the target images.</xs:documentation>
5906 </xs:annotation>
5907 </xs:attribute>
5908 <xs:attribute name="PatchAllowIgnoreOnError" type="YesNoTypeUnion">
5909 <xs:annotation>
5910 <xs:documentation>Set to indicate that the patch is non-vital.</xs:documentation>
5911 </xs:annotation>
5912 </xs:attribute>
5913 <xs:attribute name="PatchWholeFile" type="YesNoTypeUnion">
5914 <xs:annotation>
5915 <xs:documentation>Set if the entire file should be installed rather than creating a binary patch.</xs:documentation>
5916 </xs:annotation>
5917 </xs:attribute>
5918 <xs:anyAttribute namespace="##other" processContents="lax">
5919 <xs:annotation>
5920 <xs:documentation>
5921 Extensibility point in the WiX XML Schema. Schema extensions can register additional
5922 attributes at this point in the schema.
5923 </xs:documentation>
5924 </xs:annotation>
5925 </xs:anyAttribute>
5926 </xs:complexType>
5927 </xs:element>
5928 <xs:element name="MultiString">
5929 <xs:annotation>
5930 <xs:documentation>
5931 Use several of these elements to specify each registry value in a multiString registry value. This element
5932 cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'.
5933 </xs:documentation>
5934 <xs:appinfo>
5935 <xse:msiRef table="Registry" href="https://learn.microsoft.com/en-us/windows/win32/msi/registry-table" />
5936 </xs:appinfo>
5937 </xs:annotation>
5938 <xs:complexType>
5939 <xs:attribute name="Value" type="xs:string">
5940 <xs:annotation>
5941 <xs:documentation>
5942 The multi-string value.
5943 </xs:documentation>
5944 </xs:annotation>
5945 </xs:attribute>
5946 </xs:complexType>
5947 </xs:element>
5948 <xs:element name="MultiStringValue">
5949 <xs:annotation>
5950 <xs:documentation>
5951 Use several of these elements to specify each registry value in a multiString registry value. This element
5952 cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'.
5953
5954 Consider using the MultiString element instead.
5955 </xs:documentation>
5956 <xs:appinfo>
5957 <xse:seeAlso ref="MultiString" />
5958 <xse:msiRef table="Registry" href="https://learn.microsoft.com/en-us/windows/win32/msi/registry-table" />
5959 </xs:appinfo>
5960 </xs:annotation>
5961 <xs:complexType>
5962 <xs:attribute name="Value" type="xs:string">
5963 <xs:annotation>
5964 <xs:documentation>The multi-string value.</xs:documentation>
5965 </xs:annotation>
5966 </xs:attribute>
5967 </xs:complexType>
5968 </xs:element>
5969 <xs:element name="RegistryKey">
5970 <xs:annotation>
5971 <xs:documentation>
5972 Used for organization of child RegistryValue elements or to create a registry key
5973 (and optionally remove it during uninstallation).
5974 </xs:documentation>
5975 <xs:appinfo>
5976 <xse:msiRef table="Registry" href="https://learn.microsoft.com/en-us/windows/win32/msi/registry-table" />
5977 <xse:howtoRef href="files_and_registry/read_a_registry_entry.html">How To: Read a registry entry during installation</xse:howtoRef>
5978 <xse:howtoRef href="files_and_registry/write_a_registry_entry.html">How To: Write a registry entry during installation</xse:howtoRef>
5979 </xs:appinfo>
5980 </xs:annotation>
5981 <xs:complexType>
5982 <xs:choice minOccurs="0" maxOccurs="unbounded">
5983 <xs:element ref="RegistryKey" />
5984 <xs:element ref="RegistryValue" />
5985 <xs:element ref="Permission" minOccurs="0" maxOccurs="unbounded">
5986 <xs:annotation>
5987 <xs:documentation>ACL permission</xs:documentation>
5988 </xs:annotation>
5989 </xs:element>
5990 <xs:element ref="PermissionEx">
5991 <xs:annotation>
5992 <xs:documentation>Can also configure the ACLs for this registry key.</xs:documentation>
5993 </xs:annotation>
5994 </xs:element>
5995 <xs:any namespace="##other" processContents="lax">
5996 <xs:annotation>
5997 <xs:documentation>
5998 Extensibility point in the WiX XML Schema. Schema extensions can register additional
5999 elements at this point in the schema.
6000 </xs:documentation>
6001 </xs:annotation>
6002 </xs:any>
6003 </xs:choice>
6004 <xs:attribute name="Id" type="xs:string">
6005 <xs:annotation>
6006 <xs:documentation>
6007 Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be
6008 generated.
6009 </xs:documentation>
6010 </xs:annotation>
6011 </xs:attribute>
6012 <xs:attribute name="Action">
6013 <xs:annotation>
6014 <xs:documentation>
6015 The Action attribute has been deprecated. In most cases, you can simply omit @Action. If you need to force Windows Installer
6016 to create an empty key or recursively delete the key, use the ForceCreateOnInstall or ForceDeleteOnUninstall attributes instead.
6017 </xs:documentation>
6018 </xs:annotation>
6019 <xs:simpleType>
6020 <xs:restriction base="xs:NMTOKEN">
6021 <xs:enumeration value="create">
6022 <xs:annotation>
6023 <xs:documentation>
6024 Creates the key, if absent, when the parent component is installed.
6025 </xs:documentation>
6026 </xs:annotation>
6027 </xs:enumeration>
6028 <xs:enumeration value="createAndRemoveOnUninstall">
6029 <xs:annotation>
6030 <xs:documentation>
6031 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.
6032 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
6033 removes all values and subkeys that it creates, so this option just adds additional overhead to uninstall.
6034 </xs:documentation>
6035 </xs:annotation>
6036 </xs:enumeration>
6037 <xs:enumeration value="none">
6038 <xs:annotation>
6039 <xs:documentation>
6040 Does nothing; this element is used merely in WiX authoring for organization and does nothing to the final output.
6041 This is the default value.
6042 </xs:documentation>
6043 </xs:annotation>
6044 </xs:enumeration>
6045 </xs:restriction>
6046 </xs:simpleType>
6047 </xs:attribute>
6048 <xs:attribute name="ForceCreateOnInstall" type="YesNoTypeUnion">
6049 <xs:annotation>
6050 <xs:documentation>
6051 Set this attribute to 'yes' to create an empty key, if absent, when the parent component is installed.
6052 This value is needed only to create an empty key with no subkeys or values. Windows Installer creates
6053 keys as needed to store subkeys and values. The default is "no".
6054 </xs:documentation>
6055 </xs:annotation>
6056 </xs:attribute>
6057 <xs:attribute name="ForceDeleteOnUninstall" type="YesNoTypeUnion">
6058 <xs:annotation>
6059 <xs:documentation>
6060 Set this attribute to 'yes' to remove the key with all its values and subkeys when the parent component is uninstalled.
6061 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
6062 removes all values and subkeys that it creates, so this option just adds additional overhead to uninstall.
6063 The default is "no".
6064 </xs:documentation>
6065 </xs:annotation>
6066 </xs:attribute>
6067 <xs:attribute name="Key" type="xs:string">
6068 <xs:annotation>
6069 <xs:documentation>
6070 The localizable key for the registry value.
6071 If the parent element is a RegistryKey, this value may be omitted to use the
6072 path of the parent, or if its specified it will be appended to the path of the parent.
6073 </xs:documentation>
6074 </xs:annotation>
6075 </xs:attribute>
6076 <xs:attribute name="Root" type="RegistryRootType">
6077 <xs:annotation>
6078 <xs:documentation>
6079 The predefined root key for the registry value.
6080 </xs:documentation>
6081 </xs:annotation>
6082 </xs:attribute>
6083 <xs:anyAttribute namespace="##other" processContents="lax">
6084 <xs:annotation>
6085 <xs:documentation>
6086 Extensibility point in the WiX XML Schema. Schema extensions can register additional
6087 attributes at this point in the schema.
6088 </xs:documentation>
6089 </xs:annotation>
6090 </xs:anyAttribute>
6091 </xs:complexType>
6092 </xs:element>
6093 <xs:element name="RegistryValue">
6094 <xs:annotation>
6095 <xs:documentation>
6096 Used to create a registry value. For multi-string values, this can be used to prepend or append values.
6097
6098 For legacy authoring: Use several of these elements to specify each registry value in a multiString registry value. This element
6099 cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'.
6100 </xs:documentation>
6101 <xs:appinfo>
6102 <xse:msiRef table="Registry" href="https://learn.microsoft.com/en-us/windows/win32/msi/registry-table" />
6103 <xse:howtoRef href="files_and_registry/write_a_registry_entry.html">How To: Write a registry entry during installation</xse:howtoRef>
6104 </xs:appinfo>
6105 </xs:annotation>
6106 <xs:complexType>
6107 <xs:choice minOccurs="0" maxOccurs="unbounded">
6108 <xs:element ref="Permission" />
6109 <xs:element ref="PermissionEx">
6110 <xs:annotation>
6111 <xs:documentation>Can also configure the ACLs for this registry value.</xs:documentation>
6112 </xs:annotation>
6113 </xs:element>
6114 <xs:element ref="MultiString" />
6115 <xs:element ref="MultiStringValue" />
6116 <xs:any namespace="##other" processContents="lax">
6117 <xs:annotation>
6118 <xs:documentation>
6119 Extensibility point in the WiX XML Schema. Schema extensions can register additional
6120 elements at this point in the schema.
6121 </xs:documentation>
6122 </xs:annotation>
6123 </xs:any>
6124 </xs:choice>
6125 <xs:attribute name="Id" type="xs:string">
6126 <xs:annotation>
6127 <xs:documentation>
6128 Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be
6129 generated by hashing the parent Component identifier, Root, Key, and Name.
6130 </xs:documentation>
6131 </xs:annotation>
6132 </xs:attribute>
6133 <xs:attribute name="Root" type="RegistryRootType">
6134 <xs:annotation>
6135 <xs:documentation>
6136 The predefined root key for the registry value.
6137 </xs:documentation>
6138 </xs:annotation>
6139 </xs:attribute>
6140 <xs:attribute name="Key" type="xs:string">
6141 <xs:annotation>
6142 <xs:documentation>
6143 The localizable key for the registry value.
6144 If the parent element is a RegistryKey, this value may be omitted to use the
6145 path of the parent, or if its specified it will be appended to the path of the parent.
6146 </xs:documentation>
6147 </xs:annotation>
6148 </xs:attribute>
6149 <xs:attribute name="Name" type="xs:string">
6150 <xs:annotation>
6151 <xs:documentation>
6152 The localizable registry value name. If this attribute is not provided the default value for the registry key will
6153 be set instead. The Windows Installer allows several special values to be set for this attribute. You should not
6154 use them in WiX. Instead use appropriate values in the Action attribute to get the desired behavior.
6155 </xs:documentation>
6156 </xs:annotation>
6157 </xs:attribute>
6158 <xs:attribute name="Value" type="xs:string">
6159 <xs:annotation>
6160 <xs:documentation>
6161 Set this attribute to the localizable registry value. This value is formatted. The Windows Installer allows
6162 several special values to be set for this attribute. You should not use them in WiX. Instead use appropriate
6163 values in the Type attribute to get the desired behavior.
6164 </xs:documentation>
6165 </xs:annotation>
6166 </xs:attribute>
6167 <xs:attribute name="Type">
6168 <xs:annotation>
6169 <xs:documentation>
6170 Set this attribute to the type of the desired registry key. This attribute must be specified whenever the Value
6171 attribute or a child RegistryValue element is specified. This attribute
6172 should only be set when the value of the Action attribute does not include the word 'remove'.
6173 </xs:documentation>
6174 </xs:annotation>
6175 <xs:simpleType>
6176 <xs:restriction base="xs:NMTOKEN">
6177 <xs:enumeration value="string">
6178 <xs:annotation>
6179 <xs:documentation>
6180 The value is interpreted and stored as a string (REG_SZ).
6181 </xs:documentation>
6182 </xs:annotation>
6183 </xs:enumeration>
6184 <xs:enumeration value="integer">
6185 <xs:annotation>
6186 <xs:documentation>
6187 The value is interpreted and stored as an integer (REG_DWORD).
6188 </xs:documentation>
6189 </xs:annotation>
6190 </xs:enumeration>
6191 <xs:enumeration value="binary">
6192 <xs:annotation>
6193 <xs:documentation>
6194 The value is interpreted and stored as a hexadecimal value (REG_BINARY).
6195 </xs:documentation>
6196 </xs:annotation>
6197 </xs:enumeration>
6198 <xs:enumeration value="expandable">
6199 <xs:annotation>
6200 <xs:documentation>
6201 The value is interpreted and stored as an expandable string (REG_EXPAND_SZ).
6202 </xs:documentation>
6203 </xs:annotation>
6204 </xs:enumeration>
6205 <xs:enumeration value="multiString">
6206 <xs:annotation>
6207 <xs:documentation>
6208 The value is interpreted and stored as a multiple strings (REG_MULTI_SZ).
6209 Please note that this value will only result in a multi-string value if there is more than one registry value
6210 or the Action attribute's value is 'append' or 'prepend'. Otherwise a string value will be created.
6211 </xs:documentation>
6212 </xs:annotation>
6213 </xs:enumeration>
6214 </xs:restriction>
6215 </xs:simpleType>
6216 </xs:attribute>
6217 <xs:attribute name="Action">
6218 <xs:annotation>
6219 <xs:documentation>
6220 This is the action that will be taken for this registry value.
6221 </xs:documentation>
6222 </xs:annotation>
6223 <xs:simpleType>
6224 <xs:restriction base="xs:NMTOKEN">
6225 <xs:enumeration value="append">
6226 <xs:annotation>
6227 <xs:documentation>
6228 Appends the specified value(s) to a multiString registry value.
6229 </xs:documentation>
6230 </xs:annotation>
6231 </xs:enumeration>
6232 <xs:enumeration value="prepend">
6233 <xs:annotation>
6234 <xs:documentation>
6235 Prepends the specified value(s) to a multiString registry value.
6236 </xs:documentation>
6237 </xs:annotation>
6238 </xs:enumeration>
6239 <xs:enumeration value="write">
6240 <xs:annotation>
6241 <xs:documentation>
6242 Writes a registry value. This is the default value.
6243 </xs:documentation>
6244 </xs:annotation>
6245 </xs:enumeration>
6246 </xs:restriction>
6247 </xs:simpleType>
6248 </xs:attribute>
6249 <xs:attribute name="KeyPath" type="YesNoTypeUnion">
6250 <xs:annotation>
6251 <xs:documentation>
6252 Set this attribute to 'yes' to make this registry key the KeyPath of the parent component.
6253 Only one resource (registry, file, etc) can be the KeyPath of a component.
6254 </xs:documentation>
6255 </xs:annotation>
6256 </xs:attribute>
6257 <xs:anyAttribute namespace="##other" processContents="lax">
6258 <xs:annotation>
6259 <xs:documentation>
6260 Extensibility point in the WiX XML Schema. Schema extensions can register additional
6261 attributes at this point in the schema.
6262 </xs:documentation>
6263 </xs:annotation>
6264 </xs:anyAttribute>
6265 </xs:complexType>
6266 </xs:element>
6267 <xs:element name="RemoveRegistryKey">
6268 <xs:annotation>
6269 <xs:documentation>
6270 Used for removing registry keys and all child keys during install or uninstall.
6271 </xs:documentation>
6272 <xs:appinfo>
6273 <xse:msiRef table="Registry" href="https://learn.microsoft.com/en-us/windows/win32/msi/registry-table" />
6274 <xse:msiRef table="RemoveRegistry" href="http://msdn.microsoft.com/library/aa371208.aspx" />
6275 </xs:appinfo>
6276 </xs:annotation>
6277 <xs:complexType>
6278 <xs:attribute name="Id" type="xs:string">
6279 <xs:annotation>
6280 <xs:documentation>
6281 Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be
6282 generated by hashing the parent Component identifier, Root, Key, and Name.
6283 </xs:documentation>
6284 </xs:annotation>
6285 </xs:attribute>
6286 <xs:attribute name="Action">
6287 <xs:annotation>
6288 <xs:documentation>
6289 This is the action that will be taken for this registry value.
6290 </xs:documentation>
6291 </xs:annotation>
6292 <xs:simpleType>
6293 <xs:restriction base="xs:NMTOKEN">
6294 <xs:enumeration value="removeOnInstall">
6295 <xs:annotation>
6296 <xs:documentation>
6297 Removes a key with all its values and subkeys when the parent component is installed.
6298 </xs:documentation>
6299 </xs:annotation>
6300 </xs:enumeration>
6301 <xs:enumeration value="removeOnUninstall">
6302 <xs:annotation>
6303 <xs:documentation>
6304 Removes a key with all its values and subkeys when the parent component is uninstalled.
6305 </xs:documentation>
6306 </xs:annotation>
6307 </xs:enumeration>
6308 </xs:restriction>
6309 </xs:simpleType>
6310 </xs:attribute>
6311 <xs:attribute name="Key" type="xs:string">
6312 <xs:annotation>
6313 <xs:documentation>
6314 The localizable key for the registry value.
6315 </xs:documentation>
6316 </xs:annotation>
6317 </xs:attribute>
6318 <xs:attribute name="Root" type="RegistryRootType">
6319 <xs:annotation>
6320 <xs:documentation>
6321 The predefined root key for the registry value.
6322 </xs:documentation>
6323 </xs:annotation>
6324 </xs:attribute>
6325 <xs:anyAttribute namespace="##other" processContents="lax">
6326 <xs:annotation>
6327 <xs:documentation>
6328 Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema.
6329 </xs:documentation>
6330 </xs:annotation>
6331 </xs:anyAttribute>
6332 </xs:complexType>
6333 </xs:element>
6334 <xs:element name="RemoveRegistryValue">
6335 <xs:annotation>
6336 <xs:documentation>
6337 Used to remove a registry value during installation.
6338 There is no standard way to remove a single registry value during uninstall (but you can remove an entire key with RemoveRegistryKey).
6339 </xs:documentation>
6340 <xs:appinfo>
6341 <xse:msiRef table="RemoveRegistry" href="https://docs.microsoft.com/en-us/windows/win32/msi/removeregistry-table" />
6342 </xs:appinfo>
6343 </xs:annotation>
6344 <xs:complexType>
6345 <xs:choice minOccurs="0" maxOccurs="unbounded">
6346 <xs:any namespace="##other" processContents="lax">
6347 <xs:annotation>
6348 <xs:documentation>
6349 Extensibility point in the WiX XML Schema. Schema extensions can register additional
6350 elements at this point in the schema.
6351 </xs:documentation>
6352 </xs:annotation>
6353 </xs:any>
6354 </xs:choice>
6355 <xs:attribute name="Id" type="xs:string">
6356 <xs:annotation>
6357 <xs:documentation>
6358 Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be
6359 generated by hashing the parent Component identifier, Root, Key, and Name.
6360 </xs:documentation>
6361 </xs:annotation>
6362 </xs:attribute>
6363 <xs:attribute name="Key" type="xs:string">
6364 <xs:annotation>
6365 <xs:documentation>
6366 The localizable key for the registry value.
6367 </xs:documentation>
6368 </xs:annotation>
6369 </xs:attribute>
6370 <xs:attribute name="Name" type="xs:string">
6371 <xs:annotation>
6372 <xs:documentation>
6373 The localizable registry value name. If this attribute is not provided the default value for the registry key will
6374 be set instead. The Windows Installer allows several special values to be set for this attribute. You should not
6375 use them in WiX. Instead use appropriate values in the Action attribute to get the desired behavior.
6376 </xs:documentation>
6377 </xs:annotation>
6378 </xs:attribute>
6379 <xs:attribute name="Root" type="RegistryRootType">
6380 <xs:annotation>
6381 <xs:documentation>
6382 The predefined root key for the registry value.
6383 </xs:documentation>
6384 </xs:annotation>
6385 </xs:attribute>
6386 <xs:anyAttribute namespace="##other" processContents="lax">
6387 <xs:annotation>
6388 <xs:documentation>
6389 Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema.
6390 </xs:documentation>
6391 </xs:annotation>
6392 </xs:anyAttribute>
6393 </xs:complexType>
6394 </xs:element>
6395 <xs:element name="RemoveFile">
6396 <xs:annotation>
6397 <xs:appinfo>
6398 <xse:seeAlso ref="CopyFile" />
6399 <xse:msiRef table="RemoveFile" href="https://learn.microsoft.com/en-us/windows/win32/msi/removefile-table" />
6400 </xs:appinfo>
6401 <xs:documentation>
6402 Remove a file(s) if the parent component is selected for installation or removal. Multiple files can be removed
6403 by specifying a wildcard for the value of the Name attribute. By default, the source
6404 directory of the file is the directory of the parent component. This can be overridden by specifying the
6405 Directory attribute with a value corresponding to the Id of the source directory, or by specifying the Property
6406 attribute with a value corresponding to a property that will have a value that resolves to the full path
6407 to the source directory.
6408 </xs:documentation>
6409 </xs:annotation>
6410 <xs:complexType>
6411 <xs:choice minOccurs="0" maxOccurs="unbounded">
6412 <xs:any namespace="##other" processContents="lax">
6413 <xs:annotation>
6414 <xs:documentation>
6415 Extensibility point in the WiX XML Schema. Schema extensions can register additional
6416 elements at this point in the schema.
6417 </xs:documentation>
6418 </xs:annotation>
6419 </xs:any>
6420 </xs:choice>
6421 <xs:attribute name="Id" type="xs:string">
6422 <xs:annotation>
6423 <xs:documentation>Primary key used to identify this particular entry.</xs:documentation>
6424 </xs:annotation>
6425 </xs:attribute>
6426 <xs:attribute name="Directory" type="xs:string">
6427 <xs:annotation>
6428 <xs:documentation>
6429 Overrides the directory of the parent component with a specific Directory. This Directory must exist in the
6430 installer database at creation time. This attribute cannot be specified in conjunction with the Property attribute.
6431 </xs:documentation>
6432 </xs:annotation>
6433 </xs:attribute>
6434 <xs:attribute name="Property" type="xs:string">
6435 <xs:annotation>
6436 <xs:documentation>
6437 Overrides the directory of the parent component with the value of the specified property. The property
6438 should have a value that resolves to the full path of the source directory. The property does not have
6439 to exist in the installer database at creation time; it could be created at installation time by a custom
6440 action, on the command line, etc. This attribute cannot be specified in conjunction with the Directory attribute.
6441 </xs:documentation>
6442 </xs:annotation>
6443 </xs:attribute>
6444 <xs:attribute name="Name" type="WildCardLongFileNameType" use="required">
6445 <xs:annotation>
6446 <xs:documentation>
6447 This value should be set to the localizable name of the file(s) to be removed. All of the files that
6448 match the wild card will be removed from the specified directory. The value is a filename that may also
6449 contain the wild card characters "?" for any single character or "*" for zero or more occurrences of any character.
6450 In prior versions of the WiX toolset, this attribute specified the short file name.
6451 This attribute's value may now be either a short or long file name.
6452 If a short file name is specified, the ShortName attribute may not be specified.
6453 Also, if this value is a long file name, the ShortName attribute may be omitted to
6454 allow WiX to attempt to generate a unique short file name.
6455 However, if you wish to manually specify the short file name, then the ShortName attribute may be specified.
6456 </xs:documentation>
6457 </xs:annotation>
6458 </xs:attribute>
6459 <xs:attribute name="ShortName" type="WildCardShortFileNameType">
6460 <xs:annotation>
6461 <xs:documentation>
6462 The short file name of the file in 8.3 format.
6463 This attribute should only be set if you want to manually specify the short file name.
6464 </xs:documentation>
6465 </xs:annotation>
6466 </xs:attribute>
6467 <xs:attribute name="On" type="InstallUninstallType" use="required">
6468 <xs:annotation>
6469 <xs:documentation>
6470 This value determines the time at which the file(s) may be removed. For 'install', the file will
6471 be removed only when the parent component is being installed (msiInstallStateLocal or
6472 msiInstallStateSource); for 'uninstall', the file will be removed only when the parent component
6473 is being removed (msiInstallStateAbsent); for 'both', the file will be removed in both cases.
6474 </xs:documentation>
6475 </xs:annotation>
6476 </xs:attribute>
6477 <xs:attribute name="Subdirectory" type="xs:string">
6478 <xs:annotation>
6479 <xs:documentation>
6480 This attribute defines one or more directories below the directory referenced by the Directory attribute or parent
6481 Directory reference for the file to be removed.
6482 </xs:documentation>
6483 </xs:annotation>
6484 </xs:attribute>
6485 <xs:anyAttribute namespace="##other" processContents="lax">
6486 <xs:annotation>
6487 <xs:documentation>
6488 Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema.
6489 </xs:documentation>
6490 </xs:annotation>
6491 </xs:anyAttribute>
6492 </xs:complexType>
6493 </xs:element>
6494 <xs:element name="RemoveFolder">
6495 <xs:annotation>
6496 <xs:appinfo>
6497 <xse:seeAlso ref="CreateFolder" />
6498 <xse:msiRef table="RemoveFile" href="https://learn.microsoft.com/en-us/windows/win32/msi/removefile-table" />
6499 </xs:appinfo>
6500 <xs:documentation>
6501 Remove an empty folder if the parent component is selected for installation or removal. By default, the folder
6502 is the directory of the parent component. This can be overridden by specifying the Directory attribute
6503 with a value corresponding to the Id of the directory, or by specifying the Property attribute with a value
6504 corresponding to a property that will have a value that resolves to the full path of the folder.
6505 </xs:documentation>
6506 </xs:annotation>
6507 <xs:complexType>
6508 <xs:choice minOccurs="0" maxOccurs="unbounded">
6509 <xs:any namespace="##other" processContents="lax">
6510 <xs:annotation>
6511 <xs:documentation>
6512 Extensibility point in the WiX XML Schema. Schema extensions can register additional
6513 elements at this point in the schema.
6514 </xs:documentation>
6515 </xs:annotation>
6516 </xs:any>
6517 </xs:choice>
6518 <xs:attribute name="Id" type="xs:string">
6519 <xs:annotation>
6520 <xs:documentation>Primary key used to identify this particular entry.</xs:documentation>
6521 </xs:annotation>
6522 </xs:attribute>
6523 <xs:attribute name="Directory" type="xs:string">
6524 <xs:annotation>
6525 <xs:documentation>
6526 Overrides the directory of the parent component with a specific Directory. This Directory must exist in the
6527 installer database at creation time. This attribute cannot be specified in conjunction with the Property attribute.
6528 </xs:documentation>
6529 </xs:annotation>
6530 </xs:attribute>
6531 <xs:attribute name="Property" type="xs:string">
6532 <xs:annotation>
6533 <xs:documentation>
6534 Overrides the directory of the parent component with the value of the specified property. The property
6535 should have a value that resolves to the full path of the source directory. The property does not have
6536 to exist in the installer database at creation time; it could be created at installation time by a custom
6537 action, on the command line, etc. This attribute cannot be specified in conjunction with the Directory attribute.
6538 </xs:documentation>
6539 </xs:annotation>
6540 </xs:attribute>
6541 <xs:attribute name="On" type="InstallUninstallType" use="required">
6542 <xs:annotation>
6543 <xs:documentation>
6544 This value determines the time at which the folder may be removed, based on the install/uninstall of the parent component.
6545 For 'install', the folder will be removed only when the parent component is being installed (msiInstallStateLocal or
6546 msiInstallStateSource); for 'uninstall', the folder will be removed only when the parent component
6547 is being removed (msiInstallStateAbsent); for 'both', the folder will be removed in both cases.
6548 </xs:documentation>
6549 </xs:annotation>
6550 </xs:attribute>
6551 <xs:attribute name="Subdirectory" type="xs:string">
6552 <xs:annotation>
6553 <xs:documentation>
6554 This attribute defines one or more directories below the directory referenced by the Directory attribute or parent
6555 Directory reference for the folder to be removed.
6556 </xs:documentation>
6557 </xs:annotation>
6558 </xs:attribute>
6559 <xs:anyAttribute namespace="##other" processContents="lax">
6560 <xs:annotation>
6561 <xs:documentation>
6562 Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema.
6563 </xs:documentation>
6564 </xs:annotation>
6565 </xs:anyAttribute>
6566 </xs:complexType>
6567 </xs:element>
6568 <xs:element name="CreateFolder">
6569 <xs:annotation>
6570 <xs:appinfo>
6571 <xse:seeAlso ref="RemoveFolder" />
6572 <xse:msiRef table="CreateFolder" href="https://learn.microsoft.com/en-us/windows/win32/msi/createfolder-table" />
6573 </xs:appinfo>
6574 <xs:documentation>Create folder as part of parent Component.</xs:documentation>
6575 </xs:annotation>
6576 <xs:complexType>
6577 <xs:choice minOccurs="0" maxOccurs="unbounded">
6578 <xs:element ref="Shortcut" minOccurs="0" maxOccurs="unbounded">
6579 <xs:annotation>
6580 <xs:documentation>Non-advertised shortcut to this folder, Shortcut Target is preset to the folder</xs:documentation>
6581 </xs:annotation>
6582 </xs:element>
6583 <xs:element ref="Permission" minOccurs="0" maxOccurs="unbounded">
6584 <xs:annotation>
6585 <xs:documentation>ACL permission</xs:documentation>
6586 </xs:annotation>
6587 </xs:element>
6588 <xs:element ref="PermissionEx">
6589 <xs:annotation>
6590 <xs:documentation>Can also configure the ACLs for this folder.</xs:documentation>
6591 </xs:annotation>
6592 </xs:element>
6593 <xs:any namespace="##other" processContents="lax">
6594 <xs:annotation>
6595 <xs:documentation>
6596 Extensibility point in the WiX XML Schema. Schema extensions can register additional
6597 elements at this point in the schema.
6598 </xs:documentation>
6599 </xs:annotation>
6600 </xs:any>
6601 </xs:choice>
6602 <xs:attribute name="Directory" type="xs:string">
6603 <xs:annotation>
6604 <xs:documentation>Identifier of Directory to create. Defaults to Directory of parent Component.</xs:documentation>
6605 </xs:annotation>
6606 </xs:attribute>
6607 <xs:attribute name="Subdirectory" type="xs:string">
6608 <xs:annotation>
6609 <xs:documentation>
6610 This attribute defines one or more directories below the directory referenced by the Directory attribute or parent
6611 Directory reference for the directory to be created.
6612 </xs:documentation>
6613 </xs:annotation>
6614 </xs:attribute>
6615 <xs:anyAttribute namespace="##other" processContents="lax">
6616 <xs:annotation>
6617 <xs:documentation>
6618 Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema.
6619 </xs:documentation>
6620 </xs:annotation>
6621 </xs:anyAttribute>
6622 </xs:complexType>
6623 </xs:element>
6624 <xs:element name="Category">
6625 <xs:annotation>
6626 <xs:documentation>
6627 Qualified published component for parent Component
6628 </xs:documentation>
6629 <xs:appinfo>
6630 <xse:msiRef table="PublishComponent" href="https://learn.microsoft.com/en-us/windows/win32/msi/publishcomponent-table" />
6631 </xs:appinfo>
6632 </xs:annotation>
6633 <xs:complexType>
6634 <xs:choice minOccurs="0" maxOccurs="unbounded">
6635 <xs:any namespace="##other" processContents="lax">
6636 <xs:annotation>
6637 <xs:documentation>
6638 Extensibility point in the WiX XML Schema. Schema extensions can register additional
6639 elements at this point in the schema.
6640 </xs:documentation>
6641 </xs:annotation>
6642 </xs:any>
6643 </xs:choice>
6644 <xs:attribute name="Id" use="required" type="Guid">
6645 <xs:annotation>
6646 <xs:documentation>A string GUID that represents the category of components being grouped together.</xs:documentation>
6647 </xs:annotation>
6648 </xs:attribute>
6649 <xs:attribute name="Qualifier" use="required" type="xs:string">
6650 <xs:annotation>
6651 <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>
6652 </xs:annotation>
6653 </xs:attribute>
6654 <xs:attribute name="AppData" type="xs:string">
6655 <xs:annotation>
6656 <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>
6657 </xs:annotation>
6658 </xs:attribute>
6659 <xs:attribute name="Feature" type="xs:string">
6660 <xs:annotation>
6661 <xs:documentation>Feature that controls the advertisement of the category. Defaults to the primary Feature for the parent Component .</xs:documentation>
6662 </xs:annotation>
6663 </xs:attribute>
6664 <xs:anyAttribute namespace="##other" processContents="lax">
6665 <xs:annotation>
6666 <xs:documentation>
6667 Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema.
6668 </xs:documentation>
6669 </xs:annotation>
6670 </xs:anyAttribute>
6671 </xs:complexType>
6672 </xs:element>
6673 <xs:element name="MIME">
6674 <xs:annotation>
6675 <xs:documentation>
6676 MIME content-type for an Extension
6677 </xs:documentation>
6678 <xs:appinfo>
6679 <xse:msiRef table="MIME" href="http://msdn.microsoft.com/library/aa370035.aspx" />
6680 </xs:appinfo>
6681 </xs:annotation>
6682 <xs:complexType>
6683 <xs:attribute name="Advertise" type="YesNoTypeUnion">
6684 <xs:annotation>
6685 <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>
6686 </xs:annotation>
6687 </xs:attribute>
6688 <xs:attribute name="ContentType" type="xs:string" use="required">
6689 <xs:annotation>
6690 <xs:documentation>This is the identifier for the MIME content. It is commonly written in the form of type/format.</xs:documentation>
6691 </xs:annotation>
6692 </xs:attribute>
6693 <xs:attribute name="Class" type="Guid">
6694 <xs:annotation>
6695 <xs:documentation>Class ID for the COM server that is to be associated with the MIME content.</xs:documentation>
6696 </xs:annotation>
6697 </xs:attribute>
6698 <xs:attribute name="Default" type="YesNoTypeUnion">
6699 <xs:annotation>
6700 <xs:documentation>If 'yes', become the content type for the parent Extension. The default value is 'no'.</xs:documentation>
6701 </xs:annotation>
6702 </xs:attribute>
6703 </xs:complexType>
6704 </xs:element>
6705 <xs:element name="Verb">
6706 <xs:annotation>
6707 <xs:documentation>
6708 Verb definition for an Extension. When advertised, this element creates a row in the
6709 <html:a href="https://learn.microsoft.com/en-us/windows/win32/msi/verb-table">Verb table</html:a>.
6710 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>.
6711 </xs:documentation>
6712 <xs:appinfo>
6713 <xse:msiRef table="Verb" href="https://learn.microsoft.com/en-us/windows/win32/msi/verb-table" />
6714 <xse:msiRef table="Registry" href="https://learn.microsoft.com/en-us/windows/win32/msi/registry-table" />
6715 </xs:appinfo>
6716 </xs:annotation>
6717 <xs:complexType>
6718 <xs:attribute name="Id" type="xs:string" use="required">
6719 <xs:annotation>
6720 <xs:documentation>The verb for the command.</xs:documentation>
6721 </xs:annotation>
6722 </xs:attribute>
6723 <xs:attribute name="Command" type="xs:string">
6724 <xs:annotation>
6725 <xs:documentation>The localized text displayed on the context menu.</xs:documentation>
6726 </xs:annotation>
6727 </xs:attribute>
6728 <xs:attribute name="Argument" type="xs:string">
6729 <xs:annotation>
6730 <xs:documentation>Value for the command arguments. Note that the resolution of properties in the
6731 Argument field is limited. A property formatted as [Property] in this field can only be resolved if the property
6732 already has the intended value when the component owning the verb is installed. For example, for the argument
6733 "[#MyDoc.doc]" to resolve to the correct value, the same process must be installing the file MyDoc.doc and the
6734 component that owns the verb.</xs:documentation>
6735 </xs:annotation>
6736 </xs:attribute>
6737 <xs:attribute name="Sequence" type="Integer">
6738 <xs:annotation>
6739 <xs:documentation>The sequence of the commands. Only verbs for which the Sequence is specified
6740 are used to prepare an ordered list for the default value of the shell key. The Verb with the lowest value in this
6741 column becomes the default verb. Used only for Advertised verbs.</xs:documentation>
6742 </xs:annotation>
6743 </xs:attribute>
6744 <xs:attribute name="TargetFile" type="xs:string">
6745 <xs:annotation>
6746 <xs:documentation>
6747 Either this attribute or the TargetProperty attribute must be specified for a non-advertised verb.
6748 The value should be the identifier of the target file to be executed for the verb.
6749 </xs:documentation>
6750 </xs:annotation>
6751 </xs:attribute>
6752 <xs:attribute name="TargetProperty" type="xs:string">
6753 <xs:annotation>
6754 <xs:documentation>
6755 Either this attribute or the TargetFile attribute must be specified for a non-advertised verb.
6756 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.
6757 </xs:documentation>
6758 </xs:annotation>
6759 </xs:attribute>
6760 </xs:complexType>
6761 </xs:element>
6762 <xs:element name="Extension">
6763 <xs:annotation>
6764 <xs:documentation>
6765 Extension for a Component
6766 </xs:documentation>
6767 <xs:appinfo>
6768 <xse:msiRef table="MIME" href="http://msdn.microsoft.com/library/aa370035.aspx" />
6769 <xse:msiRef table="Verb" href="https://learn.microsoft.com/en-us/windows/win32/msi/verb-table" />
6770 <xse:msiRef table="Registry" href="https://learn.microsoft.com/en-us/windows/win32/msi/registry-table" />
6771 </xs:appinfo>
6772 </xs:annotation>
6773 <xs:complexType>
6774 <xs:choice minOccurs="0" maxOccurs="unbounded">
6775 <xs:annotation>
6776 <xs:documentation>MIME and Verbs can be associated with Extensions</xs:documentation>
6777 </xs:annotation>
6778 <xs:element ref="MIME" />
6779 <xs:element ref="Verb" />
6780 </xs:choice>
6781 <xs:attribute name="Id" type="xs:string" use="required">
6782 <xs:annotation>
6783 <xs:documentation>This is simply the file extension, like "doc" or "xml". Do not include the preceding period.</xs:documentation>
6784 </xs:annotation>
6785 </xs:attribute>
6786 <xs:attribute name="ContentType" type="xs:string">
6787 <xs:annotation>
6788 <xs:documentation>The MIME type that is to be written.</xs:documentation>
6789 </xs:annotation>
6790 </xs:attribute>
6791 <xs:attribute name="Advertise" type="YesNoTypeUnion">
6792 <xs:annotation>
6793 <xs:documentation>Whether this extension is to be advertised. The default is "no".</xs:documentation>
6794 </xs:annotation>
6795 </xs:attribute>
6796 <xs:anyAttribute namespace="##other" processContents="lax">
6797 <xs:annotation>
6798 <xs:documentation>
6799 Extensibility point in the WiX XML Schema. Schema extensions can register additional
6800 attributes at this point in the schema.
6801 </xs:documentation>
6802 </xs:annotation>
6803 </xs:anyAttribute>
6804 </xs:complexType>
6805 </xs:element>
6806 <xs:element name="TypeLib">
6807 <xs:annotation>
6808 <xs:documentation>
6809 Register a type library (TypeLib). Please note that in order to properly use this
6810 non-advertised, you will need use this element with Advertise='no' and also author the
6811 appropriate child Interface elements by extracting them from the type library itself.
6812 </xs:documentation>
6813 <xs:appinfo>
6814 <xse:msiRef table="TypeLib" href="http://msdn.microsoft.com/library/aa372092.aspx" />
6815 <xse:msiRef table="Registry" href="https://learn.microsoft.com/en-us/windows/win32/msi/registry-table" />
6816 </xs:appinfo>
6817 </xs:annotation>
6818 <xs:complexType>
6819 <xs:choice minOccurs="0" maxOccurs="unbounded">
6820 <xs:element ref="AppId" />
6821 <xs:element ref="Class" />
6822 <xs:element ref="Interface" />
6823 </xs:choice>
6824 <xs:attribute name="Id" type="Guid" use="required">
6825 <xs:annotation>
6826 <xs:documentation>The GUID that identifes the type library.</xs:documentation>
6827 </xs:annotation>
6828 </xs:attribute>
6829 <xs:attribute name="Advertise" type="YesNoTypeUnion">
6830 <xs:annotation>
6831 <xs:documentation>
6832 Value of 'yes' will create a row in the TypeLib table.
6833 Value of 'no' will create rows in the Registry table.
6834 The default value is 'no'.
6835 </xs:documentation>
6836 </xs:annotation>
6837 </xs:attribute>
6838 <xs:attribute name="Control" type="YesNoTypeUnion">
6839 <xs:annotation>
6840 <xs:documentation>
6841 Value of 'yes' means the type library describes controls, and should not be displayed in type browsers intended for nonvisual objects.
6842 This attribute can only be set if Advertise='no'.
6843 </xs:documentation>
6844 </xs:annotation>
6845 </xs:attribute>
6846 <xs:attribute name="Cost" type="xs:int">
6847 <xs:annotation>
6848 <xs:documentation>
6849 The cost associated with the registration of the type library in bytes. This attribute cannot be set if Advertise='no'.
6850 </xs:documentation>
6851 </xs:annotation>
6852 </xs:attribute>
6853 <xs:attribute name="Description" type="xs:string">
6854 <xs:annotation>
6855 <xs:documentation>The localizable description of the type library.</xs:documentation>
6856 </xs:annotation>
6857 </xs:attribute>
6858 <xs:attribute name="HasDiskImage" type="YesNoTypeUnion">
6859 <xs:annotation>
6860 <xs:documentation>
6861 Value of 'yes' means the type library exists in a persisted form on disk. This attribute can only be set if Advertise='no'.
6862 </xs:documentation>
6863 </xs:annotation>
6864 </xs:attribute>
6865 <xs:attribute name="HelpDirectory" type="xs:string">
6866 <xs:annotation>
6867 <xs:documentation>The identifier of the Directory element for the help directory.</xs:documentation>
6868 </xs:annotation>
6869 </xs:attribute>
6870 <xs:attribute name="HelpSubirectory" type="xs:string">
6871 <xs:annotation>
6872 <xs:documentation>
6873 This attribute defines one or more directories below the directory referenced by the HelpDirectory attribute
6874 for the typelib's help directory.
6875 </xs:documentation>
6876 </xs:annotation>
6877 </xs:attribute>
6878 <xs:attribute name="Hidden" type="YesNoTypeUnion">
6879 <xs:annotation>
6880 <xs:documentation>
6881 Value of 'yes' means the type library should not be displayed to users, although its use is not restricted.
6882 Should be used by controls. Hosts should create a new type library that wraps the control with extended properties.
6883 This attribute can only be set if Advertise='no'.
6884 </xs:documentation>
6885 </xs:annotation>
6886 </xs:attribute>
6887 <xs:attribute name="Language" use="required" type="Integer">
6888 <xs:annotation>
6889 <xs:documentation>The language of the type library. This must be a non-negative integer.</xs:documentation>
6890 </xs:annotation>
6891 </xs:attribute>
6892 <xs:attribute name="MajorVersion" type="Integer">
6893 <xs:annotation>
6894 <xs:documentation>The major version of the type library. The value should be an integer from 0 - 255.</xs:documentation>
6895 </xs:annotation>
6896 </xs:attribute>
6897 <xs:attribute name="MinorVersion" type="Integer">
6898 <xs:annotation>
6899 <xs:documentation>The minor version of the type library. The value should be an integer from 0 - 255.</xs:documentation>
6900 </xs:annotation>
6901 </xs:attribute>
6902 <xs:attribute name="ResourceId" type="Integer">
6903 <xs:annotation>
6904 <xs:documentation>The resource id of a typelib. The value is appended to the end of the typelib path in the registry.</xs:documentation>
6905 </xs:annotation>
6906 </xs:attribute>
6907 <xs:attribute name="Restricted" type="YesNoTypeUnion">
6908 <xs:annotation>
6909 <xs:documentation>
6910 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'.
6911 </xs:documentation>
6912 </xs:annotation>
6913 </xs:attribute>
6914 </xs:complexType>
6915 </xs:element>
6916 <xs:element name="ProgId">
6917 <xs:annotation>
6918 <xs:documentation>
6919 ProgId registration for parent Component. If ProgId has an associated Class, it must be a child of that element.
6920 </xs:documentation>
6921 <xs:appinfo>
6922 <xse:msiRef table="ProgId" href="http://msdn.microsoft.com/library/aa370879.aspx" />
6923 <xse:msiRef table="Class" href="http://msdn.microsoft.com/library/aa367861.aspx" />
6924 <xse:msiRef table="Registry" href="https://learn.microsoft.com/en-us/windows/win32/msi/registry-table" />
6925 <xse:msiRef table="Icon" href="http://msdn.microsoft.com/library/aa369210.aspx" />
6926 </xs:appinfo>
6927 </xs:annotation>
6928 <xs:complexType>
6929 <xs:sequence>
6930 <xs:element ref="ProgId" minOccurs="0" maxOccurs="unbounded">
6931 <xs:annotation>
6932 <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>
6933 </xs:annotation>
6934 </xs:element>
6935 <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded">
6936 <xs:annotation>
6937 <xs:documentation>Extensions that refer to this ProgId</xs:documentation>
6938 </xs:annotation>
6939 </xs:element>
6940 </xs:sequence>
6941 <xs:attribute name="Id" type="xs:string" use="required" />
6942 <xs:attribute name="Description" type="xs:string" />
6943 <xs:attribute name="Icon" type="xs:string">
6944 <xs:annotation>
6945 <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>
6946 </xs:annotation>
6947 </xs:attribute>
6948 <xs:attribute name="IconIndex" type="Integer" />
6949 <xs:attribute name="Advertise" type="YesNoTypeUnion" />
6950 <xs:attribute name="NoOpen" type="xs:string">
6951 <xs:annotation>
6952 <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>
6953 </xs:annotation>
6954 </xs:attribute>
6955 </xs:complexType>
6956 </xs:element>
6957 <xs:element name="AppId">
6958 <xs:annotation>
6959 <xs:documentation>
6960 Application ID containing DCOM information for the associated application GUID.
6961 If this element is nested under a Fragment, Module, or Package element, it must be
6962 advertised.
6963 </xs:documentation>
6964 <xs:appinfo>
6965 <xse:msiRef table="AppId" href="http://msdn.microsoft.com/library/aa367566.aspx" />
6966 <xse:msiRef table="Registry" href="https://learn.microsoft.com/en-us/windows/win32/msi/registry-table" />
6967 <xse:remarks>
6968 When being used in unadvertised mode, the attributes in the AppId element correspond to registry values
6969 under the `[HKCR\AppID\{Id}]` key, as follows:
6970
6971 - `Id`: [HKCR\AppID\`Id`]
6972 - `ActivateAtStorage`: [HKCR\AppID\`Id`]/ActivateAtStorage="Y"
6973 - `Description`: [HKCR\AppID\`Id`]/@="My AppId Description"
6974 - `DllSurrogate`: [HKCR\AppID\`Id`]/DllSurrogate="C:\surrogate.exe"
6975 - `LocalService`: [HKCR\AppID\`Id`]/LocalService="MyServiceName"
6976 - `RemoteServerName`: [HKCR\AppID\`Id`]/RemoteServerName="MyRemoteServer"
6977 - `RunAsInteractiveUser`: [HKCR\AppID\`Id`]/RunAs="Interactive User"
6978 - `ServiceParameters`: [HKCR\AppID\`Id`]/ServiceParameters="-param"
6979 </xse:remarks>
6980 </xs:appinfo>
6981 </xs:annotation>
6982 <xs:complexType>
6983 <xs:choice minOccurs="0" maxOccurs="unbounded">
6984 <xs:element ref="Class" />
6985 </xs:choice>
6986 <xs:attribute name="ActivateAtStorage" type="YesNoTypeUnion">
6987 <xs:annotation>
6988 <xs:documentation>
6989 Set this value to 'yes' to configure the client to activate on the same system as persistent storage.
6990 </xs:documentation>
6991 </xs:annotation>
6992 </xs:attribute>
6993 <xs:attribute name="Advertise" type="YesNoTypeUnion">
6994 <xs:annotation>
6995 <xs:documentation>
6996 Set this value to 'yes' in order to create a normal AppId table row. Set this value to 'no' in order to
6997 generate Registry rows that perform similar registration (without the often problematic Windows Installer
6998 advertising behavior).
6999 </xs:documentation>
7000 </xs:annotation>
7001 </xs:attribute>
7002 <xs:attribute name="Description" type="xs:string">
7003 <xs:annotation>
7004 <xs:documentation>
7005 Set this value to the description of the AppId. It can only be specified when the AppId is not being advertised.
7006 </xs:documentation>
7007 </xs:annotation>
7008 </xs:attribute>
7009 <xs:attribute name="DllSurrogate" type="xs:string">
7010 <xs:annotation>
7011 <xs:documentation>
7012 Set this value to specify that the class is a DLL that is to be activated in a surrogate EXE
7013 process, and the surrogate process to be used is the path of a surrogate EXE file specified by the value.
7014 </xs:documentation>
7015 </xs:annotation>
7016 </xs:attribute>
7017 <xs:attribute name="Id" type="Guid" use="required">
7018 <xs:annotation>
7019 <xs:documentation>
7020 Set this value to the AppID GUID that corresponds to the named executable.
7021 </xs:documentation>
7022 </xs:annotation>
7023 </xs:attribute>
7024 <xs:attribute name="LocalService" type="xs:string">
7025 <xs:annotation>
7026 <xs:documentation>
7027 Set this value to the name of a service to allow the object to be installed as a Win32 service.
7028 </xs:documentation>
7029 </xs:annotation>
7030 </xs:attribute>
7031 <xs:attribute name="RemoteServerName" type="xs:string">
7032 <xs:annotation>
7033 <xs:documentation>
7034 Set this value to the name of the remote server to configure the client to request the object
7035 be run at a particular machine whenever an activation function is called for which a COSERVERINFO
7036 structure is not specified.
7037 </xs:documentation>
7038 </xs:annotation>
7039 </xs:attribute>
7040 <xs:attribute name="RunAsInteractiveUser" type="YesNoTypeUnion">
7041 <xs:annotation>
7042 <xs:documentation>
7043 Set this value to 'yes' to configure a class to run under the identity of the user currently
7044 logged on and connected to the interactive desktop when activated by a remote client without
7045 being written as a Win32 service.
7046 </xs:documentation>
7047 </xs:annotation>
7048 </xs:attribute>
7049 <xs:attribute name="ServiceParameters" type="xs:string">
7050 <xs:annotation>
7051 <xs:documentation>
7052 Set this value to the parameters to be passed to a LocalService on invocation.
7053 </xs:documentation>
7054 </xs:annotation>
7055 </xs:attribute>
7056 </xs:complexType>
7057 </xs:element>
7058 <xs:element name="Class">
7059 <xs:annotation>
7060 <xs:documentation>COM Class registration for parent Component.</xs:documentation>
7061 <xs:appinfo>
7062 <xse:seeAlso ref="AppId" />
7063 <xse:msiRef table="Class" href="http://msdn.microsoft.com/library/aa367861.aspx" />
7064 <xse:msiRef table="ProgId" href="http://msdn.microsoft.com/library/aa370879.aspx" />
7065 <xse:msiRef table="Registry" href="https://learn.microsoft.com/en-us/windows/win32/msi/registry-table" />
7066 <xse:msiRef table="AppId" href="http://msdn.microsoft.com/library/aa367566.aspx" />
7067 <xse:remarks>
7068 When being used in unadvertised mode, the attributes in the Class element correspond to registry
7069 values under the `[HKCR\CLSID\{Id}]` and `[HKCR\CLSID\{Id}\Context]` keys as follows:
7070
7071 - `Id, Context`: [HKCR\CLSID\{Id}\Context]
7072 - `Server`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32]\@="[!comserv.dll]"
7073 - `ForeignServer`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32]\@="mscoree.dll"
7074 - `AppId`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}]\AppId="{00000000-89AB-0000-0123-000000000000}"
7075 - `Argument`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32]\@="[!comserv.dll] /arg1 /arg2 /arg3"
7076 - `Control`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Control]
7077 - `Description`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}]\@="Description of Example COM Component"
7078 - `Handler`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\InprocHandler32]\@="handler.dll"
7079 - `Insertable`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Insertable]
7080 - `Insertable`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\NotInsertable]
7081 - `Programmable`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Programmable]
7082 - `SafeForInitializing`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}]
7083 - `ThreadingModel`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32]\ThreadingModel="Apartment"
7084 - `TypeLibId`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\TypeLib]\@="{11111111-89AB-1111-0123-111111111111}"
7085 - `Version`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Version]\@="1.0.0.0"
7086 </xse:remarks>
7087 </xs:appinfo>
7088 </xs:annotation>
7089 <xs:complexType>
7090 <xs:choice minOccurs="0" maxOccurs="unbounded">
7091 <xs:element ref="ProgId">
7092 <xs:annotation>
7093 <xs:documentation>A ProgId associated with Class must be a child element of the Class element</xs:documentation>
7094 </xs:annotation>
7095 </xs:element>
7096 <xs:element ref="FileTypeMask" />
7097 <xs:element ref="Interface">
7098 <xs:annotation>
7099 <xs:documentation>These Interfaces will be registered with the parent Class and TypeLib (if present).</xs:documentation>
7100 </xs:annotation>
7101 </xs:element>
7102 </xs:choice>
7103 <xs:attribute name="Id" type="Guid" use="required">
7104 <xs:annotation>
7105 <xs:documentation>The Class identifier (CLSID) of a COM server.</xs:documentation>
7106 </xs:annotation>
7107 </xs:attribute>
7108 <xs:attribute name="Context">
7109 <xs:annotation>
7110 <xs:documentation>
7111 The server context(s) for this COM server. This attribute is optional for VB6 libraries that are marked "PublicNotCreateable".
7112 Class elements marked Advertised must specify at least one server context. It is most common for there to be a single value
7113 for the Context attribute.
7114 </xs:documentation>
7115 </xs:annotation>
7116 <xs:simpleType>
7117 <xs:list>
7118 <xs:simpleType>
7119 <xs:restriction base="xs:NMTOKEN">
7120 <xs:enumeration value="LocalServer">
7121 <xs:annotation>
7122 <xs:documentation>
7123 A 16-bit local server application.
7124 </xs:documentation>
7125 </xs:annotation>
7126 </xs:enumeration>
7127 <xs:enumeration value="LocalServer32">
7128 <xs:annotation>
7129 <xs:documentation>
7130 A 32-bit local server application.
7131 </xs:documentation>
7132 </xs:annotation>
7133 </xs:enumeration>
7134 <xs:enumeration value="InprocServer">
7135 <xs:annotation>
7136 <xs:documentation>
7137 A 16-bit in-process server DLL.
7138 </xs:documentation>
7139 </xs:annotation>
7140 </xs:enumeration>
7141 <xs:enumeration value="InprocServer32">
7142 <xs:annotation>
7143 <xs:documentation>
7144 A 32-bit in-process server DLL.
7145 </xs:documentation>
7146 </xs:annotation>
7147 </xs:enumeration>
7148 </xs:restriction>
7149 </xs:simpleType>
7150 </xs:list>
7151 </xs:simpleType>
7152 </xs:attribute>
7153 <xs:attribute name="Description" type="xs:string">
7154 <xs:annotation>
7155 <xs:documentation>Localized description associated with the Class ID and Program ID.</xs:documentation>
7156 </xs:annotation>
7157 </xs:attribute>
7158 <xs:attribute name="AppId" type="Guid">
7159 <xs:annotation>
7160 <xs:documentation>
7161 This attribute is only allowed when a Class is advertised. Using this attribute will reference an Application ID
7162 containing DCOM information for the associated application GUID. The value must correspond to an AppId/@Id of an
7163 AppId element nested under a Fragment, Module, or Package element. To associate an AppId with a non-advertised
7164 class, nest the class within a parent AppId element.
7165 </xs:documentation>
7166 </xs:annotation>
7167 </xs:attribute>
7168 <xs:attribute name="Icon" type="xs:string">
7169 <xs:annotation>
7170 <xs:documentation>
7171 The file providing the icon associated with this CLSID. Reference to an Icon element
7172 (should match the Id attribute of an Icon element). This is currently not supported if the
7173 value of the Advertise attribute is "no".
7174 </xs:documentation>
7175 </xs:annotation>
7176 </xs:attribute>
7177 <xs:attribute name="IconIndex" type="Integer">
7178 <xs:annotation>
7179 <xs:documentation>Icon index into the icon file.</xs:documentation>
7180 </xs:annotation>
7181 </xs:attribute>
7182 <xs:attribute name="Handler" type="xs:string">
7183 <xs:annotation>
7184 <xs:documentation>
7185 The default inproc handler. May be optionally provided only for Context = LocalServer or
7186 LocalServer32. Value of "1" creates a 16-bit InprocHandler (appearing as the InprocHandler
7187 value). Value of "2" creates a 32-bit InprocHandler (appearing as the InprocHandler32 value).
7188 Value of "3" creates 16-bit as well as 32-bit InprocHandlers. A non-numeric value is treated
7189 as a system file that serves as the 32-bit InprocHandler (appearing as the InprocHandler32 value).
7190 </xs:documentation>
7191 </xs:annotation>
7192 </xs:attribute>
7193 <xs:attribute name="Argument" type="xs:string">
7194 <xs:annotation>
7195 <xs:documentation>
7196 This column is optional only when the Context column is set to "LocalServer"
7197 or "LocalServer32" server context. The text is registered as the argument against
7198 the OLE server and is used by OLE for invoking the server. Note that the resolution
7199 of properties in the Argument field is limited. A property formatted as [Property] in
7200 this field can only be resolved if the property already has the intended value when
7201 the component owning the class is installed. For example, for the argument "[#MyDoc.doc]"
7202 to resolve to the correct value, the same process must be installing the file MyDoc.doc and the
7203 component that owns the class.
7204 </xs:documentation>
7205 </xs:annotation>
7206 </xs:attribute>
7207 <xs:attribute name="RelativePath" type="YesNoTypeUnion">
7208 <xs:annotation>
7209 <xs:documentation>
7210 When the value is "yes", the bare file name can be used for COM servers. The installer
7211 registers the file name only instead of the complete path. This enables the server in
7212 the current directory to take precedence and allows multiple copies of the same component.
7213 </xs:documentation>
7214 </xs:annotation>
7215 </xs:attribute>
7216 <xs:attribute name="Advertise" type="YesNoTypeUnion">
7217 <xs:annotation>
7218 <xs:documentation>
7219 Set this value to "yes" in order to create a normal Class table row. Set this value to
7220 "no" in order to generate Registry rows that perform similar registration (without the
7221 often problematic Windows Installer advertising behavior).
7222 </xs:documentation>
7223 </xs:annotation>
7224 </xs:attribute>
7225 <!-- Following attributes are not advertised, but add the appropriate rows to the Registry table -->
7226 <xs:attribute name="ThreadingModel">
7227 <xs:annotation>
7228 <xs:documentation>
7229 Threading model for the CLSID.
7230 </xs:documentation>
7231 </xs:annotation>
7232 <xs:simpleType>
7233 <xs:restriction base="xs:NMTOKEN">
7234 <xs:enumeration value="apartment" />
7235 <xs:enumeration value="free" />
7236 <xs:enumeration value="both" />
7237 <xs:enumeration value="neutral" />
7238 <xs:enumeration value="single" />
7239 <xs:enumeration value="rental" />
7240 </xs:restriction>
7241 </xs:simpleType>
7242 </xs:attribute>
7243 <xs:attribute name="Version" type="xs:string">
7244 <xs:annotation>
7245 <xs:documentation>
7246 Version for the CLSID.
7247 </xs:documentation>
7248 </xs:annotation>
7249 </xs:attribute>
7250 <xs:attribute name="Insertable" type="YesNoTypeUnion">
7251 <xs:annotation>
7252 <xs:documentation>
7253 Specifies the CLSID may be insertable.
7254 </xs:documentation>
7255 </xs:annotation>
7256 </xs:attribute>
7257 <xs:attribute name="Programmable" type="YesNoTypeUnion">
7258 <xs:annotation>
7259 <xs:documentation>
7260 Specifies the CLSID may be programmable.
7261 </xs:documentation>
7262 </xs:annotation>
7263 </xs:attribute>
7264 <xs:attribute name="ForeignServer" type="xs:string">
7265 <xs:annotation>
7266 <xs:documentation>
7267 May only be specified if the value of the Advertise attribute is "no" and Server has not been specified. In addition, it may only
7268 be used when the Class element is directly under the Component element. The value can be
7269 that of an registry type (REG_SZ). This attribute should be used to specify foreign servers, such as mscoree.dll if needed.
7270 </xs:documentation>
7271 </xs:annotation>
7272 </xs:attribute>
7273 <xs:attribute name="Server" type="xs:string">
7274 <xs:annotation>
7275 <xs:documentation>
7276 May only be specified if the value of the Advertise attribute is "no" and the ForeignServer attribute is not specified. File Id of the
7277 COM server file. If this element is nested under a File element, this value defaults to
7278 the value of the parent File/@Id.
7279 </xs:documentation>
7280 </xs:annotation>
7281 </xs:attribute>
7282 <xs:attribute name="ShortPath" type="YesNoTypeUnion">
7283 <xs:annotation>
7284 <xs:documentation>
7285 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.
7286 </xs:documentation>
7287 </xs:annotation>
7288 </xs:attribute>
7289 <xs:attribute name="SafeForScripting" type="YesNoTypeUnion">
7290 <xs:annotation>
7291 <xs:documentation>
7292 May only be specified if the value of the Advertise attribute is "no".
7293 </xs:documentation>
7294 </xs:annotation>
7295 </xs:attribute>
7296 <xs:attribute name="SafeForInitializing" type="YesNoTypeUnion">
7297 <xs:annotation>
7298 <xs:documentation>
7299 May only be specified if the value of the Advertise attribute is "no".
7300 </xs:documentation>
7301 </xs:annotation>
7302 </xs:attribute>
7303 <xs:attribute name="Control" type="YesNoTypeUnion">
7304 <xs:annotation>
7305 <xs:documentation>
7306 Set this attribute's value to 'yes' to identify an object as an ActiveX Control. The default value is 'no'.
7307 </xs:documentation>
7308 </xs:annotation>
7309 </xs:attribute>
7310 </xs:complexType>
7311 </xs:element>
7312 <xs:element name="Interface">
7313 <xs:annotation>
7314 <xs:documentation>COM Interface registration for parent TypeLib.</xs:documentation>
7315 <xs:appinfo>
7316 <xse:msiRef table="Registry" href="https://learn.microsoft.com/en-us/windows/win32/msi/registry-table" />
7317 </xs:appinfo>
7318 </xs:annotation>
7319 <xs:complexType>
7320 <xs:attribute name="Id" type="Guid" use="required">
7321 <xs:annotation>
7322 <xs:documentation>GUID identifier for COM Interface.</xs:documentation>
7323 </xs:annotation>
7324 </xs:attribute>
7325 <xs:attribute name="Name" type="xs:string" use="required">
7326 <xs:annotation>
7327 <xs:documentation>Name for COM Interface.</xs:documentation>
7328 </xs:annotation>
7329 </xs:attribute>
7330 <xs:attribute name="BaseInterface" type="Guid">
7331 <xs:annotation>
7332 <xs:documentation>Identifies the interface from which the current interface is derived.</xs:documentation>
7333 </xs:annotation>
7334 </xs:attribute>
7335 <xs:attribute name="ProxyStubClassId" type="Guid">
7336 <xs:annotation>
7337 <xs:documentation>GUID CLSID for proxy stub to COM Interface.</xs:documentation>
7338 </xs:annotation>
7339 </xs:attribute>
7340 <xs:attribute name="ProxyStubClassId32" type="Guid">
7341 <xs:annotation>
7342 <xs:documentation>GUID CLSID for 32-bit proxy stub to COM Interface.</xs:documentation>
7343 </xs:annotation>
7344 </xs:attribute>
7345 <xs:attribute name="NumMethods" type="Integer">
7346 <xs:annotation>
7347 <xs:documentation>Number of methods implemented on COM Interface.</xs:documentation>
7348 </xs:annotation>
7349 </xs:attribute>
7350 <xs:attribute name="Versioned" type="YesNoTypeUnion">
7351 <xs:annotation>
7352 <xs:documentation>Determines whether a Typelib version entry should be created with the other COM Interface registry keys. Default is 'yes'.</xs:documentation>
7353 </xs:annotation>
7354 </xs:attribute>
7355 </xs:complexType>
7356 </xs:element>
7357 <xs:element name="FileTypeMask">
7358 <xs:annotation>
7359 <xs:documentation>FileType data for class Id registration.</xs:documentation>
7360 </xs:annotation>
7361 <xs:complexType>
7362 <xs:attribute name="Offset" type="Integer" use="required">
7363 <xs:annotation>
7364 <xs:documentation>Offset into file. If positive, offset is from the beginning; if negative, offset is from the end.</xs:documentation>
7365 </xs:annotation>
7366 </xs:attribute>
7367 <xs:attribute name="Mask" type="HexType" use="required">
7368 <xs:annotation>
7369 <xs:documentation>Hex value that is AND'd against the bytes in the file at Offset.</xs:documentation>
7370 </xs:annotation>
7371 </xs:attribute>
7372 <xs:attribute name="Value" type="HexType" use="required">
7373 <xs:annotation>
7374 <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>
7375 </xs:annotation>
7376 </xs:attribute>
7377 </xs:complexType>
7378 </xs:element>
7379 <xs:element name="ServiceDependency">
7380 <xs:annotation>
7381 <xs:documentation>
7382 Service or group of services that must start before the parent service.
7383 </xs:documentation>
7384 <xs:appinfo>
7385 <xse:msiRef table="ServiceInstall" href="https://docs.microsoft.com/en-us/windows/win32/msi/serviceinstall-table" />
7386 </xs:appinfo>
7387 </xs:annotation>
7388 <xs:complexType>
7389 <xs:attribute name="Id" type="xs:string" use="required">
7390 <xs:annotation>
7391 <xs:documentation>
7392 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'.
7393 </xs:documentation>
7394 </xs:annotation>
7395 </xs:attribute>
7396 <xs:attribute name="Group" type="YesNoTypeUnion">
7397 <xs:annotation>
7398 <xs:documentation>
7399 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.
7400 </xs:documentation>
7401 </xs:annotation>
7402 </xs:attribute>
7403 </xs:complexType>
7404 </xs:element>
7405 <xs:element name="ServiceInstall">
7406 <xs:annotation>
7407 <xs:documentation>
7408 Adds services for parent Component. Use the ServiceControl element to remove services.
7409 </xs:documentation>
7410 <xs:appinfo>
7411 <xse:msiRef table="ServiceInstall" href="https://docs.microsoft.com/en-us/windows/win32/msi/serviceinstall-table" />
7412 <xse:remarks>
7413 The service executable installed will point to the KeyPath for the Component.
7414 Therefore, you must ensure that the correct executable is either the first child
7415 File element under this Component or explicitly mark the appropriate File element
7416 as KeyPath='yes'.
7417 </xse:remarks>
7418 </xs:appinfo>
7419 </xs:annotation>
7420 <xs:complexType>
7421 <xs:choice minOccurs="0" maxOccurs="unbounded">
7422 <xs:element ref="PermissionEx">
7423 <xs:annotation>
7424 <xs:documentation>Configures the ACLs for this service.</xs:documentation>
7425 </xs:annotation>
7426 </xs:element>
7427 <xs:element ref="ServiceDependency">
7428 <xs:annotation>
7429 <xs:documentation>Ordered list of dependencies when installing services.</xs:documentation>
7430 </xs:annotation>
7431 </xs:element>
7432 <xs:element ref="ServiceConfig" />
7433 <xs:element ref="ServiceConfigFailureActions" />
7434 <xs:any namespace="##other" processContents="lax">
7435 <xs:annotation>
7436 <xs:documentation>
7437 Extensibility point in the WiX XML Schema. Schema extensions can register additional
7438 elements at this point in the schema.
7439 </xs:documentation>
7440 </xs:annotation>
7441 </xs:any>
7442 </xs:choice>
7443 <xs:attribute name="Id" type="xs:string">
7444 <xs:annotation>
7445 <xs:documentation>
7446 Unique identifier for this service configuration. This value will default to the Name attribute if not
7447 specified.
7448 </xs:documentation>
7449 </xs:annotation>
7450 </xs:attribute>
7451 <xs:attribute name="Name" type="xs:string" use="required">
7452 <xs:annotation>
7453 <xs:documentation>This column is the string that gives the service name to install.</xs:documentation>
7454 </xs:annotation>
7455 </xs:attribute>
7456 <xs:attribute name="DisplayName" type="xs:string">
7457 <xs:annotation>
7458 <xs:documentation>This column is the localizable string that user interface programs use to identify the service.</xs:documentation>
7459 </xs:annotation>
7460 </xs:attribute>
7461 <xs:attribute name="Type" use="required">
7462 <xs:annotation>
7463 <xs:documentation>The Windows Installer does not currently support kernelDriver or systemDriver.</xs:documentation>
7464 </xs:annotation>
7465 <xs:simpleType>
7466 <xs:restriction base="xs:NMTOKEN">
7467 <xs:enumeration value="ownProcess">
7468 <xs:annotation>
7469 <xs:documentation>
7470 A Win32 service that runs its own process.
7471 </xs:documentation>
7472 </xs:annotation>
7473 </xs:enumeration>
7474 <xs:enumeration value="shareProcess">
7475 <xs:annotation>
7476 <xs:documentation>
7477 A Win32 service that shares a process.
7478 </xs:documentation>
7479 </xs:annotation>
7480 </xs:enumeration>
7481 <xs:enumeration value="kernelDriver">
7482 <xs:annotation>
7483 <xs:documentation>
7484 A kernel driver service. This value is not currently supported by the Windows Installer.
7485 </xs:documentation>
7486 </xs:annotation>
7487 </xs:enumeration>
7488 <xs:enumeration value="systemDriver">
7489 <xs:annotation>
7490 <xs:documentation>
7491 A file system driver service. This value is not currently supported by the Windows Installer.
7492 </xs:documentation>
7493 </xs:annotation>
7494 </xs:enumeration>
7495 </xs:restriction>
7496 </xs:simpleType>
7497 </xs:attribute>
7498 <xs:attribute name="Interactive" type="YesNoTypeUnion">
7499 <xs:annotation>
7500 <xs:documentation>Whether or not the service interacts with the desktop.</xs:documentation>
7501 </xs:annotation>
7502 </xs:attribute>
7503 <xs:attribute name="Start" use="required">
7504 <xs:annotation>
7505 <xs:documentation>Determines when the service should be started. The Windows Installer does not support boot or system.</xs:documentation>
7506 </xs:annotation>
7507 <xs:simpleType>
7508 <xs:restriction base="xs:NMTOKEN">
7509 <xs:enumeration value="auto">
7510 <xs:annotation>
7511 <xs:documentation>
7512 The service will start during startup of the system.
7513 </xs:documentation>
7514 </xs:annotation>
7515 </xs:enumeration>
7516 <xs:enumeration value="demand">
7517 <xs:annotation>
7518 <xs:documentation>
7519 The service will start when the service control manager calls the StartService function.
7520 </xs:documentation>
7521 </xs:annotation>
7522 </xs:enumeration>
7523 <xs:enumeration value="disabled">
7524 <xs:annotation>
7525 <xs:documentation>
7526 The service can no longer be started.
7527 </xs:documentation>
7528 </xs:annotation>
7529 </xs:enumeration>
7530 <xs:enumeration value="boot">
7531 <xs:annotation>
7532 <xs:documentation>
7533 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.
7534 </xs:documentation>
7535 </xs:annotation>
7536 </xs:enumeration>
7537 <xs:enumeration value="system">
7538 <xs:annotation>
7539 <xs:documentation>
7540 The service is a device driver that will be started by the IoInitSystem function. This value is not currently supported by the Windows Installer.
7541 </xs:documentation>
7542 </xs:annotation>
7543 </xs:enumeration>
7544 </xs:restriction>
7545 </xs:simpleType>
7546 </xs:attribute>
7547 <xs:attribute name="ErrorControl" use="required">
7548 <xs:annotation>
7549 <xs:documentation>Determines what action should be taken on an error.</xs:documentation>
7550 </xs:annotation>
7551 <xs:simpleType>
7552 <xs:restriction base="xs:NMTOKEN">
7553 <xs:enumeration value="ignore">
7554 <xs:annotation>
7555 <xs:documentation>
7556 Logs the error and continues with the startup operation.
7557 </xs:documentation>
7558 </xs:annotation>
7559 </xs:enumeration>
7560 <xs:enumeration value="normal">
7561 <xs:annotation>
7562 <xs:documentation>
7563 Logs the error, displays a message box and continues the startup operation.
7564 </xs:documentation>
7565 </xs:annotation>
7566 </xs:enumeration>
7567 <xs:enumeration value="critical">
7568 <xs:annotation>
7569 <xs:documentation>
7570 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.
7571 </xs:documentation>
7572 </xs:annotation>
7573 </xs:enumeration>
7574 </xs:restriction>
7575 </xs:simpleType>
7576 </xs:attribute>
7577 <xs:attribute name="Vital" type="YesNoTypeUnion">
7578 <xs:annotation>
7579 <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>
7580 </xs:annotation>
7581 </xs:attribute>
7582 <xs:attribute name="LoadOrderGroup" type="xs:string">
7583 <xs:annotation>
7584 <xs:documentation>The load ordering group that this service should be a part of.</xs:documentation>
7585 </xs:annotation>
7586 </xs:attribute>
7587 <xs:attribute name="Account" type="xs:string">
7588 <xs:annotation>
7589 <xs:documentation>Fully qualified names must be used even for local accounts, e.g.: ".\LOCAL_ACCOUNT". Valid only when ServiceType is ownProcess.</xs:documentation>
7590 </xs:annotation>
7591 </xs:attribute>
7592 <xs:attribute name="Password" type="xs:string">
7593 <xs:annotation>
7594 <xs:documentation>The password for the account. Valid only when the account has a password.</xs:documentation>
7595 </xs:annotation>
7596 </xs:attribute>
7597 <xs:attribute name="Arguments" type="xs:string">
7598 <xs:annotation>
7599 <xs:documentation>Contains any command line arguments or properties required to run the service.</xs:documentation>
7600 </xs:annotation>
7601 </xs:attribute>
7602 <xs:attribute name="Description" type="xs:string">
7603 <xs:annotation>
7604 <xs:documentation>Sets the description of the service.</xs:documentation>
7605 </xs:annotation>
7606 </xs:attribute>
7607 <xs:attribute name="EraseDescription" type="YesNoTypeUnion">
7608 <xs:annotation>
7609 <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>
7610 </xs:annotation>
7611 </xs:attribute>
7612 </xs:complexType>
7613 </xs:element>
7614 <xs:element name="ServiceArgument" type="xs:string">
7615 <xs:annotation>
7616 <xs:documentation>
7617 Argument used in ServiceControl parent
7618 </xs:documentation>
7619 <xs:appinfo>
7620 <xse:msiRef table="ServiceControl" href="http://msdn.microsoft.com/library/aa371634.aspx" />
7621 </xs:appinfo>
7622 </xs:annotation>
7623 </xs:element>
7624 <xs:element name="ServiceControl">
7625 <xs:annotation>
7626 <xs:documentation>
7627 Starts, stops, and removes services for parent Component. This element is used to control the state
7628 of a service installed by the MSI or MSM file by using the start, stop and remove attributes.
7629 For example, Start='install' Stop='both' Remove='uninstall' would mean: start the service on install,
7630 remove the service when the product is uninstalled, and stop the service both on install and uninstall.
7631 </xs:documentation>
7632 <xs:appinfo>
7633 <xse:msiRef table="ServiceControl" href="http://msdn.microsoft.com/library/aa371634.aspx" />
7634 </xs:appinfo>
7635 </xs:annotation>
7636 <xs:complexType>
7637 <xs:sequence>
7638 <xs:element ref="ServiceArgument" minOccurs="0" maxOccurs="unbounded">
7639 <xs:annotation>
7640 <xs:documentation>Ordered list of arguments used when modifying services.</xs:documentation>
7641 </xs:annotation>
7642 </xs:element>
7643 </xs:sequence>
7644 <xs:attribute name="Id" type="xs:string">
7645 <xs:annotation>
7646 <xs:documentation>
7647 Unique identifier for this service control. This value will default to the Name attribute if not
7648 specified.
7649 </xs:documentation>
7650 </xs:annotation>
7651 </xs:attribute>
7652 <xs:attribute name="Name" type="xs:string" use="required">
7653 <xs:annotation>
7654 <xs:documentation>Name of the service.</xs:documentation>
7655 </xs:annotation>
7656 </xs:attribute>
7657 <xs:attribute name="Start" type="InstallUninstallType">
7658 <xs:annotation>
7659 <xs:documentation>
7660 Specifies whether the service should be started by the StartServices action on install, uninstall or both.
7661 For 'install', the service will be started only when the parent component is being installed (msiInstallStateLocal or
7662 msiInstallStateSource); for 'uninstall', the service will be started only when the parent component
7663 is being removed (msiInstallStateAbsent); for 'both', the service will be started in both cases.
7664 </xs:documentation>
7665 </xs:annotation>
7666 </xs:attribute>
7667 <xs:attribute name="Stop" type="InstallUninstallType">
7668 <xs:annotation>
7669 <xs:documentation>
7670 Specifies whether the service should be stopped by the StopServices action on install, uninstall or both.
7671 For 'install', the service will be stopped only when the parent component is being installed (msiInstallStateLocal or
7672 msiInstallStateSource); for 'uninstall', the service will be stopped only when the parent component
7673 is being removed (msiInstallStateAbsent); for 'both', the service will be stopped in both cases.
7674 </xs:documentation>
7675 </xs:annotation>
7676 </xs:attribute>
7677 <xs:attribute name="Remove" type="InstallUninstallType">
7678 <xs:annotation>
7679 <xs:documentation>
7680 Specifies whether the service should be removed by the DeleteServices action on install, uninstall or both.
7681 For 'install', the service will be removed only when the parent component is being installed (msiInstallStateLocal or
7682 msiInstallStateSource); for 'uninstall', the service will be removed only when the parent component
7683 is being removed (msiInstallStateAbsent); for 'both', the service will be removed in both cases.
7684 </xs:documentation>
7685 </xs:annotation>
7686 </xs:attribute>
7687 <xs:attribute name="Wait" type="YesNoTypeUnion">
7688 <xs:annotation>
7689 <xs:documentation>Specifies whether or not to wait for the service to complete before continuing. The default is 'yes'.</xs:documentation>
7690 </xs:annotation>
7691 </xs:attribute>
7692 </xs:complexType>
7693 </xs:element>
7694 <xs:element name="RequiredPrivilege" type="xs:string">
7695 <xs:annotation>
7696 <xs:documentation>
7697 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
7698 Formatted property that resolves to a privilege constant.
7699 </xs:documentation>
7700 <xs:appinfo>
7701 <xse:msiRef table="MsiServiceConfig" href="https://learn.microsoft.com/en-us/windows/win32/msi/msiserviceconfig-table" />
7702 </xs:appinfo>
7703 </xs:annotation>
7704 </xs:element>
7705 <xs:element name="ServiceConfig">
7706 <xs:annotation>
7707 <xs:documentation>
7708 Configures a service being installed or one that already exists. This element's functionality is available starting with MSI 5.0. However, a
7709 [remark indicating the functionality does not work correctly](https://learn.microsoft.com/en-us/windows/win32/msi/msiconfigureservices-action) was added later.
7710 Consider using the [util:ServiceConfig element](../../schema/util/serviceconfig.md) instead.
7711 </xs:documentation>
7712 <xs:appinfo>
7713 <xse:msiRef table="MsiServiceConfig" href="https://learn.microsoft.com/en-us/windows/win32/msi/msiserviceconfig-table" />
7714 </xs:appinfo>
7715 </xs:annotation>
7716 <xs:complexType>
7717 <xs:choice minOccurs="0" maxOccurs="unbounded">
7718 <xs:element ref="RequiredPrivilege">
7719 <xs:annotation>
7720 <xs:documentation>List of privileges to apply to service.</xs:documentation>
7721 </xs:annotation>
7722 </xs:element>
7723 </xs:choice>
7724 <xs:attribute name="Id" type="xs:string">
7725 <xs:annotation>
7726 <xs:documentation>
7727 Unique identifier for this service configuration. This value will default to the ServiceName attribute if not
7728 specified.
7729 </xs:documentation>
7730 </xs:annotation>
7731 </xs:attribute>
7732 <xs:attribute name="DelayedAutoStart" type="xs:string">
7733 <xs:annotation>
7734 <xs:documentation>
7735 This attribute specifies whether an auto-start service should delay its start until after all other auto-start
7736 services. This attribute only affects auto-start services. Allowed values are "yes", "no" or a Formatted property that
7737 resolves to "1" (for "yes") or "0" (for "no"). If this attribute is not present the setting is not configured.
7738 </xs:documentation>
7739 </xs:annotation>
7740 </xs:attribute>
7741 <xs:attribute name="FailureActionsWhen" type="xs:string">
7742 <xs:annotation>
7743 <xs:documentation>
7744 This attribute specifies when failure actions should be applied. Allowed values are "failedToStop", "failedToStopOrReturnedError"
7745 or a Formatted property that resolves to "1" (for "failedToStopOrReturnedError") or "0" (for "failedToStop"). If this attribute
7746 is not present the setting is not configured.
7747 </xs:documentation>
7748 </xs:annotation>
7749 </xs:attribute>
7750 <xs:attribute name="PreShutdownDelay" type="xs:string">
7751 <xs:annotation>
7752 <xs:documentation>
7753 This attribute specifies time in milliseconds that the Service Control Manager (SCM) waits after notifying the service of a system
7754 shutdown. If this attribute is not present the default value, 3 minutes, is used.
7755 </xs:documentation>
7756 </xs:annotation>
7757 </xs:attribute>
7758 <xs:attribute name="OnInstall" type="YesNoTypeUnion">
7759 <xs:annotation>
7760 <xs:documentation>
7761 Specifies whether to configure the service when the parent Component is installed. This attribute may be combined with OnReinstall
7762 and OnUninstall.
7763 </xs:documentation>
7764 </xs:annotation>
7765 </xs:attribute>
7766 <xs:attribute name="OnReinstall" type="YesNoTypeUnion">
7767 <xs:annotation>
7768 <xs:documentation>
7769 Specifies whether to configure the service when the parent Component is reinstalled. This attribute may be combined with OnInstall
7770 and OnUninstall.
7771 </xs:documentation>
7772 </xs:annotation>
7773 </xs:attribute>
7774 <xs:attribute name="OnUninstall" type="YesNoTypeUnion">
7775 <xs:annotation>
7776 <xs:documentation>
7777 Specifies whether to configure the service when the parent Component is uninstalled. This attribute may be combined with OnInstall
7778 and OnReinstall.
7779 </xs:documentation>
7780 </xs:annotation>
7781 </xs:attribute>
7782 <xs:attribute name="ServiceName" type="xs:string">
7783 <xs:annotation>
7784 <xs:documentation>
7785 Specifies the name of the service to configure. This value will default to the ServiceInstall/@Name attribute when nested under
7786 a ServiceInstall element.
7787 </xs:documentation>
7788 </xs:annotation>
7789 </xs:attribute>
7790 <xs:attribute name="ServiceSid" type="xs:string">
7791 <xs:annotation>
7792 <xs:documentation>
7793 Specifies the service SID to apply to the service. Valid values are "none", "restricted", "unrestricted" or a Formatted property
7794 that resolves to "0" (for "none"), "3" (for "restricted") or "1" (for "unrestricted"). If this attribute is not present the
7795 setting is not configured.
7796 </xs:documentation>
7797 </xs:annotation>
7798 </xs:attribute>
7799 </xs:complexType>
7800 </xs:element>
7801 <xs:element name="Failure">
7802 <xs:annotation>
7803 <xs:documentation>Failure action for a ServiceConfigFailureActions element.</xs:documentation>
7804 </xs:annotation>
7805 <xs:complexType>
7806 <xs:attribute name="Action" type="xs:string" use="required">
7807 <xs:annotation>
7808 <xs:documentation>
7809 Specifies the action to take when the service fails. Valid values are "none", "restartComputer", "restartService", "runCommand" or a Formatted property
7810 that resolves to "0" (for "none"), "1" (for "restartService"), "2" (for "restartComputer") or "3" (for "runCommand").
7811 </xs:documentation>
7812 </xs:annotation>
7813 </xs:attribute>
7814 <xs:attribute name="Delay" type="xs:string" use="required">
7815 <xs:annotation>
7816 <xs:documentation>
7817 Specifies the time in milliseconds to wait before performing the value from the Action attribute.
7818 </xs:documentation>
7819 </xs:annotation>
7820 </xs:attribute>
7821 </xs:complexType>
7822 </xs:element>
7823 <xs:element name="ServiceConfigFailureActions">
7824 <xs:annotation>
7825 <xs:documentation>
7826 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.
7827 </xs:documentation>
7828 <xs:appinfo>
7829 <xse:msiRef table="MsiServiceConfigFailureActions" href="https://learn.microsoft.com/en-us/windows/win32/msi/msiserviceconfigfailureactions-table" />
7830 </xs:appinfo>
7831 </xs:annotation>
7832 <xs:complexType>
7833 <xs:choice minOccurs="0" maxOccurs="unbounded">
7834 <xs:element ref="Failure">
7835 <xs:annotation>
7836 <xs:documentation>Ordered list of failure actions to apply to service.</xs:documentation>
7837 </xs:annotation>
7838 </xs:element>
7839 </xs:choice>
7840 <xs:attribute name="Id" type="xs:string">
7841 <xs:annotation>
7842 <xs:documentation>
7843 Unique identifier for this service configuration. This value will default to the ServiceName attribute if not
7844 specified.
7845 </xs:documentation>
7846 </xs:annotation>
7847 </xs:attribute>
7848 <xs:attribute name="Command" type="xs:string">
7849 <xs:annotation>
7850 <xs:documentation>
7851 This attribute specifies command to execute when a "runCommand" failure action hit. If an empty string is provided it clears
7852 the existing command. If this attribute is not present the setting is not changed.
7853 </xs:documentation>
7854 </xs:annotation>
7855 </xs:attribute>
7856 <xs:attribute name="OnInstall" type="YesNoTypeUnion">
7857 <xs:annotation>
7858 <xs:documentation>
7859 Specifies whether to configure the service when the parent Component is installed. This attribute may be combined with OnReinstall
7860 and OnUninstall.
7861 </xs:documentation>
7862 </xs:annotation>
7863 </xs:attribute>
7864 <xs:attribute name="OnReinstall" type="YesNoTypeUnion">
7865 <xs:annotation>
7866 <xs:documentation>
7867 Specifies whether to configure the service when the parent Component is reinstalled. This attribute may be combined with OnInstall
7868 and OnUninstall.
7869 </xs:documentation>
7870 </xs:annotation>
7871 </xs:attribute>
7872 <xs:attribute name="OnUninstall" type="YesNoTypeUnion">
7873 <xs:annotation>
7874 <xs:documentation>
7875 Specifies whether to configure the service when the parent Component is uninstalled. This attribute may be combined with OnInstall
7876 and OnReinstall.
7877 </xs:documentation>
7878 </xs:annotation>
7879 </xs:attribute>
7880 <xs:attribute name="RebootMessage" type="xs:string">
7881 <xs:annotation>
7882 <xs:documentation>
7883 Specifies the message to show for a reboot failure action. If an empty string is provided it clears any existing reboot message. If this
7884 attribute is not present the setting is not changed.
7885 </xs:documentation>
7886 </xs:annotation>
7887 </xs:attribute>
7888 <xs:attribute name="ResetPeriod" type="Integer">
7889 <xs:annotation>
7890 <xs:documentation>
7891 Specifies the time in seconds to reset the failure count. If this attribute is not present the failure count will not be reset.
7892 </xs:documentation>
7893 </xs:annotation>
7894 </xs:attribute>
7895 <xs:attribute name="ServiceName" type="xs:string">
7896 <xs:annotation>
7897 <xs:documentation>
7898 Specifies the name of the service to configure. This value will default to the ServiceInstall/@Name attribute when nested under
7899 a ServiceInstall element.
7900 </xs:documentation>
7901 </xs:annotation>
7902 </xs:attribute>
7903 </xs:complexType>
7904 </xs:element>
7905 <xs:element name="Environment">
7906 <xs:annotation>
7907 <xs:documentation>
7908 Environment variables added or removed for the parent component.
7909 </xs:documentation>
7910 <xs:appinfo>
7911 <xse:msiRef table="Environment" href="http://msdn.microsoft.com/library/aa368369.aspx" />
7912 </xs:appinfo>
7913 </xs:annotation>
7914 <xs:complexType>
7915 <xs:attribute name="Id" type="xs:string">
7916 <xs:annotation>
7917 <xs:documentation>Unique identifier for environment entry.</xs:documentation>
7918 </xs:annotation>
7919 </xs:attribute>
7920 <xs:attribute name="Name" type="xs:string" use="required">
7921 <xs:annotation>
7922 <xs:documentation>Name of the environment variable.</xs:documentation>
7923 </xs:annotation>
7924 </xs:attribute>
7925 <xs:attribute name="Value" type="xs:string">
7926 <xs:annotation>
7927 <xs:documentation>
7928 The value to set into the environment variable.
7929 If this attribute is not set, the environment variable is removed during installation if it exists on the machine.
7930 </xs:documentation>
7931 </xs:annotation>
7932 </xs:attribute>
7933 <xs:attribute name="Separator" type="xs:string">
7934 <xs:annotation>
7935 <xs:documentation>Optional attribute to change the separator used between values. By default a semicolon is used.</xs:documentation>
7936 </xs:annotation>
7937 </xs:attribute>
7938 <xs:attribute name="Action">
7939 <xs:annotation>
7940 <xs:documentation>Specfies whether the environmental variable should be created, set or removed when the parent component is installed.</xs:documentation>
7941 </xs:annotation>
7942 <xs:simpleType>
7943 <xs:restriction base="xs:NMTOKEN">
7944 <xs:enumeration value="create">
7945 <xs:annotation>
7946 <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>
7947 </xs:annotation>
7948 </xs:enumeration>
7949 <xs:enumeration value="set">
7950 <xs:annotation>
7951 <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>
7952 </xs:annotation>
7953 </xs:enumeration>
7954 <xs:enumeration value="remove">
7955 <xs:annotation>
7956 <xs:documentation>
7957 Removes the environment variable during an installation.
7958 The installer only removes an environment variable during an installation if the name and value
7959 of the variable match the entries in the Name and Value attributes.
7960 If you want to remove an environment variable, regardless of its value, do not set the Value attribute.
7961 </xs:documentation>
7962 </xs:annotation>
7963 </xs:enumeration>
7964 </xs:restriction>
7965 </xs:simpleType>
7966 </xs:attribute>
7967 <xs:attribute name="Part">
7968 <xs:simpleType>
7969 <xs:restriction base="xs:NMTOKEN">
7970 <xs:enumeration value="all">
7971 <xs:annotation>
7972 <xs:documentation>
7973 This value is the entire environmental variable. This is the default.
7974 </xs:documentation>
7975 </xs:annotation>
7976 </xs:enumeration>
7977 <xs:enumeration value="first">
7978 <xs:annotation>
7979 <xs:documentation>
7980 This value is prefixed.
7981 </xs:documentation>
7982 </xs:annotation>
7983 </xs:enumeration>
7984 <xs:enumeration value="last">
7985 <xs:annotation>
7986 <xs:documentation>
7987 This value is appended.
7988 </xs:documentation>
7989 </xs:annotation>
7990 </xs:enumeration>
7991 </xs:restriction>
7992 </xs:simpleType>
7993 </xs:attribute>
7994 <xs:attribute name="Permanent" type="YesNoTypeUnion">
7995 <xs:annotation>
7996 <xs:documentation>Specifies that the environment variable should not be removed on uninstall.</xs:documentation>
7997 </xs:annotation>
7998 </xs:attribute>
7999 <xs:attribute name="System" type="YesNoTypeUnion">
8000 <xs:annotation>
8001 <xs:documentation>
8002 Specifies that the environment variable should be added to the system environment space. The default
8003 is 'no' which indicates the environment variable is added to the user environment space.
8004 </xs:documentation>
8005 </xs:annotation>
8006 </xs:attribute>
8007 </xs:complexType>
8008 </xs:element>
8009 <xs:element name="Launch">
8010 <xs:annotation>
8011 <xs:documentation>
8012 Launch conditions for MSI packages.
8013 </xs:documentation>
8014 <xs:appinfo>
8015 <xse:msiRef table="LaunchCondition" href="https://docs.microsoft.com/en-us/windows/win32/msi/launchcondition-table" />
8016 <xse:howtoRef href="redistributables_and_install_checks/block_install_on_os.html">How To: Block installation based on OS version</xse:howtoRef>
8017 <xse:howtoRef href="files_and_registry/check_the_version_number.html">How To: Check the version number of a file during installation</xse:howtoRef>
8018 </xs:appinfo>
8019 </xs:annotation>
8020 <xs:complexType>
8021 <xs:attribute name="Condition" type="xs:string" use="required">
8022 <xs:annotation>
8023 <xs:documentation>
8024 The condition expression to be evaluated at install time.
8025 </xs:documentation>
8026 </xs:annotation>
8027 </xs:attribute>
8028 <xs:attribute name="Message" type="xs:string" use="required">
8029 <xs:annotation>
8030 <xs:documentation>
8031 Set the value to the text to display when the condition fails and the installation must be terminated.
8032 </xs:documentation>
8033 </xs:annotation>
8034 </xs:attribute>
8035 </xs:complexType>
8036 </xs:element>
8037 <xs:element name="Level">
8038 <xs:annotation>
8039 <xs:documentation>
8040 Feature levels for MSI packages.
8041 </xs:documentation>
8042 <xs:appinfo>
8043 <xse:msiRef table="Condition" href="http://msdn.microsoft.com/library/aa368014.aspx" />
8044 </xs:appinfo>
8045 </xs:annotation>
8046 <xs:complexType>
8047 <xs:attribute name="Condition" type="xs:string" use="required">
8048 <xs:annotation>
8049 <xs:documentation>
8050 The condition expression to be evaluated at install time. When true the Feature level is set to the Value.
8051 </xs:documentation>
8052 </xs:annotation>
8053 </xs:attribute>
8054 <xs:attribute name="Value" type="Integer" use="required">
8055 <xs:annotation>
8056 <xs:documentation>
8057 Allows modifying the level of a Feature based on the result of the condition.
8058 </xs:documentation>
8059 </xs:annotation>
8060 </xs:attribute>
8061 </xs:complexType>
8062 </xs:element>
8063 <xs:element name="IsolateComponent">
8064 <xs:annotation>
8065 <xs:documentation>
8066 Shared Component to be privately replicated in folder of parent Component
8067 </xs:documentation>
8068 <xs:appinfo>
8069 <xse:msiRef table="IsolateComponent" href="http://msdn.microsoft.com/library/aa369730.aspx" />
8070 </xs:appinfo>
8071 </xs:annotation>
8072 <xs:complexType>
8073 <xs:attribute name="Shared" type="xs:string" use="required">
8074 <xs:annotation>
8075 <xs:documentation>Shared Component for this application Component.</xs:documentation>
8076 </xs:annotation>
8077 </xs:attribute>
8078 </xs:complexType>
8079 </xs:element>
8080 <xs:element name="ReserveCost">
8081 <xs:annotation>
8082 <xs:documentation>
8083 Disk cost to reserve in a folder for running locally and/or from source.
8084 </xs:documentation>
8085 <xs:appinfo>
8086 <xse:msiRef table="ReserveCost" href="http://msdn.microsoft.com/library/aa371226.aspx" />
8087 </xs:appinfo>
8088 </xs:annotation>
8089 <xs:complexType>
8090 <xs:attribute name="Id" type="xs:string" use="required">
8091 <xs:annotation>
8092 <xs:documentation>A primary key that uniquely identifies this ReserveCost entry.</xs:documentation>
8093 </xs:annotation>
8094 </xs:attribute>
8095 <xs:attribute name="Directory" type="xs:string">
8096 <xs:annotation>
8097 <xs:documentation>
8098 Adds the amount of disk space specified in RunFromSource or RunLocal to the volume cost of the device containing the directory.
8099 If this attribute is not set, it will default to the directory of parent component.
8100 </xs:documentation>
8101 </xs:annotation>
8102 </xs:attribute>
8103 <xs:attribute name="Subdirectory" type="xs:string">
8104 <xs:annotation>
8105 <xs:documentation>
8106 This attribute defines one or more directories below the directory referenced by the Directory attribute
8107 to add cost to.
8108 </xs:documentation>
8109 </xs:annotation>
8110 </xs:attribute>
8111 <xs:attribute name="RunFromSource" type="Integer" use="required">
8112 <xs:annotation>
8113 <xs:documentation>The number of bytes of disk space to reserve if the component is installed to run from source.</xs:documentation>
8114 </xs:annotation>
8115 </xs:attribute>
8116 <xs:attribute name="RunLocal" type="Integer" use="required">
8117 <xs:annotation>
8118 <xs:documentation>The number of bytes of disk space to reserve if the component is installed to run locally.</xs:documentation>
8119 </xs:annotation>
8120 </xs:attribute>
8121 </xs:complexType>
8122 </xs:element>
8123 <xs:element name="Component">
8124 <xs:annotation>
8125 <xs:documentation>Component for parent Directory</xs:documentation>
8126 <xs:appinfo>
8127 <xse:seeAlso ref="ComponentRef" />
8128 <xse:msiRef table="Component" href="http://msdn.microsoft.com/library/aa368007.aspx" />
8129 <xse:msiRef table="Condition" href="http://msdn.microsoft.com/library/aa368014.aspx" />
8130 <xse:msiRef table="Directory" href="http://msdn.microsoft.com/library/aa368295.aspx" />
8131 <xse:howtoRef href="files_and_registry/add_a_file.html">How To: Add a file to your installer</xse:howtoRef>
8132 </xs:appinfo>
8133 </xs:annotation>
8134 <xs:complexType>
8135 <xs:choice minOccurs="0" maxOccurs="unbounded">
8136 <xs:element ref="AppId" />
8137 <xs:element ref="Category" />
8138 <xs:element ref="Class" />
8139 <xs:element ref="CopyFile" />
8140 <xs:element ref="CreateFolder" />
8141 <xs:element ref="Environment" />
8142 <xs:element ref="Extension" />
8143 <xs:element ref="File" />
8144 <xs:element ref="IniFile" />
8145 <xs:element ref="Interface" />
8146 <xs:element ref="IsolateComponent" />
8147 <xs:element ref="ODBCDataSource" />
8148 <xs:element ref="ODBCDriver" />
8149 <xs:element ref="ODBCTranslator" />
8150 <xs:element ref="ProgId" />
8151 <xs:element ref="Provides" />
8152 <xs:element ref="RegistryKey" />
8153 <xs:element ref="RegistryValue" />
8154 <xs:element ref="RemoveFile" />
8155 <xs:element ref="RemoveFolder" />
8156 <xs:element ref="RemoveRegistryKey" />
8157 <xs:element ref="RemoveRegistryValue" />
8158 <xs:element ref="ReserveCost" />
8159 <xs:element ref="ServiceControl" />
8160 <xs:element ref="ServiceConfig" />
8161 <xs:element ref="ServiceConfigFailureActions" />
8162 <xs:element ref="ServiceInstall" />
8163 <xs:element ref="Shortcut" />
8164 <xs:element ref="SymbolPath" />
8165 <xs:element ref="TypeLib" />
8166 <xs:any namespace="##other" processContents="lax">
8167 <xs:annotation>
8168 <xs:documentation>
8169 Extensibility point in the WiX XML Schema. Schema extensions can register additional
8170 elements at this point in the schema.
8171 </xs:documentation>
8172 </xs:annotation>
8173 </xs:any>
8174 </xs:choice>
8175 <xs:attribute name="Id" type="xs:string">
8176 <xs:annotation>
8177 <xs:documentation>
8178 Component identifier; this is the primary key for identifying components. If omitted,
8179 the compiler defaults the identifier to the identifier of the resource that is the
8180 explicit or default keypath of the component (for example, a child File element).
8181 In WiX v4 and WiX v5, such a default identifier is private to the section where it is
8182 defined. To make it public (and therefore accessible from other sections and usable
8183 in references like ComponentRef), give the component an explicit value for Id.
8184 </xs:documentation>
8185 </xs:annotation>
8186 </xs:attribute>
8187 <xs:attribute name="ComPlusFlags" type="Integer">
8188 <xs:annotation>
8189 <xs:documentation>
8190 Set this attribute to create a ComPlus entry. The value should be the export flags used
8191 during the generation of the .msi file. For more information see the COM+ documentation
8192 in the Platform SDK.
8193 </xs:documentation>
8194 </xs:annotation>
8195 </xs:attribute>
8196 <xs:attribute name="Condition" type="xs:string">
8197 <xs:annotation>
8198 <xs:documentation>
8199 The condition expression to be evaluated at install time. When false the Component will not be installed.
8200 </xs:documentation>
8201 </xs:annotation>
8202 </xs:attribute>
8203 <xs:attribute name="DisableRegistryReflection" type="YesNoTypeUnion">
8204 <xs:annotation>
8205 <xs:documentation>
8206 Set this attribute to 'yes' in order to disable registry reflection on all existing and
8207 new registry keys affected by this component.
8208 When set to 'yes', the Windows Installer calls the RegDisableReflectionKey on each key
8209 being accessed by the component.
8210 This bit is available with Windows Installer version 4.0 and is ignored on 32-bit systems.
8211 </xs:documentation>
8212 </xs:annotation>
8213 </xs:attribute>
8214 <xs:attribute name="Directory" type="xs:string">
8215 <xs:annotation>
8216 <xs:documentation>
8217 Sets the Directory of the Component. If this element is nested under a Directory element,
8218 this value defaults to the value of the parent Directory/@Id.
8219 </xs:documentation>
8220 </xs:annotation>
8221 </xs:attribute>
8222 <xs:attribute name="DiskId" type="DiskIdType">
8223 <xs:annotation>
8224 <xs:documentation>
8225 This attribute provides a default DiskId attribute for all child File elements. Specifying
8226 the DiskId on a Component element will override any DiskId attributes set by parent Directory
8227 or DirectoryRef elements. See the File element's DiskId attribute for more information about
8228 the purpose of the DiskId.
8229 </xs:documentation>
8230 </xs:annotation>
8231 </xs:attribute>
8232 <xs:attribute name="Feature" type="xs:string">
8233 <xs:annotation>
8234 <xs:documentation>
8235 Identifies a feature to which this component belongs, as a shorthand for a child
8236 ComponentRef element of the Feature element. The value of this attribute should
8237 correspond to the Id attribute of a Feature element authored elsewhere. Note that
8238 a single component can belong to multiple features but this attribute allows you
8239 to specify only a single feature.
8240 </xs:documentation>
8241 </xs:annotation>
8242 </xs:attribute>
8243 <xs:attribute name="Guid" type="ComponentGuid">
8244 <xs:annotation>
8245 <xs:documentation>
8246 This value should be a guid that uniquely identifies this component's contents, language, platform, and version.
8247 If omitted, the default value is '*' which indicates that the linker should generate a stable guid.
8248 Generatable guids are supported only for components with a single file as the component's keypath
8249 or no files and a registry value as the keypath.
8250 It's also possible to set the value to an empty string to specify an unmanaged component.
8251 Unmanaged components are a security vulnerability because the component cannot be removed or repaired
8252 by Windows Installer (it is essentially an unpatchable, permanent component). Therefore, a guid should
8253 always be specified for any component which contains resources that may need to be patched in the future.
8254 </xs:documentation>
8255 </xs:annotation>
8256 </xs:attribute>
8257 <xs:attribute name="KeyPath" type="YesNoTypeUnion">
8258 <xs:annotation>
8259 <xs:documentation>
8260 If this attribute's value is set to 'yes', then the Directory of this Component is used
8261 as the KeyPath. To set a Registry value or File as the KeyPath of a component, set the
8262 KeyPath attribute to 'yes' on one of those child elements. If KeyPath is not set to 'yes' for the
8263 Component or for a child Registry value or File, WiX will look at the child elements under the
8264 Component in sequential order and try to automatically select one of them as a key path. Allowing
8265 WiX to automatically select a key path can be dangerous because adding or removing child elements
8266 under the Component can inadvertantly cause the key path to change, which can lead to
8267 installation problems.
8268 </xs:documentation>
8269 </xs:annotation>
8270 </xs:attribute>
8271 <xs:attribute name="Location">
8272 <xs:annotation>
8273 <xs:documentation>
8274 Optional value that specifies the location that the component can be run from.
8275 </xs:documentation>
8276 </xs:annotation>
8277 <xs:simpleType>
8278 <xs:restriction base="xs:NMTOKEN">
8279 <xs:enumeration value="local">
8280 <xs:annotation>
8281 <xs:documentation>
8282 Prevents the component from running from the source or the network (this is the default behavior if this attribute is not set).
8283 </xs:documentation>
8284 </xs:annotation>
8285 </xs:enumeration>
8286 <xs:enumeration value="source">
8287 <xs:annotation>
8288 <xs:documentation>
8289 Enforces that the component can only be run from the source (it cannot be run from the user's computer).
8290 </xs:documentation>
8291 </xs:annotation>
8292 </xs:enumeration>
8293 <xs:enumeration value="either">
8294 <xs:annotation>
8295 <xs:documentation>
8296 Allows the component to run from source or locally.
8297 </xs:documentation>
8298 </xs:annotation>
8299 </xs:enumeration>
8300 </xs:restriction>
8301 </xs:simpleType>
8302 </xs:attribute>
8303 <xs:attribute name="MultiInstance" type="YesNoTypeUnion">
8304 <xs:annotation>
8305 <xs:documentation>
8306 If this attribute is set to 'yes', a new Component/@Guid will be generated for each
8307 instance transform. Ensure that all of the resources contained in a multi-instance
8308 Component will be installed to different paths based on the instance Property; otherwise,
8309 the Component Rules will be violated.
8310 </xs:documentation>
8311 </xs:annotation>
8312 </xs:attribute>
8313 <xs:attribute name="NeverOverwrite" type="YesNoTypeUnion">
8314 <xs:annotation>
8315 <xs:documentation>
8316 If this attribute is set to 'yes', the installer does not install or reinstall the
8317 component if a key path file or a key path registry entry for the component already
8318 exists. The application does register itself as a client of the component. Use this
8319 flag only for components that are being registered by the Registry table. Do not use
8320 this flag for components registered by the AppId, Class, Extension, ProgId, MIME, and
8321 Verb tables.
8322 </xs:documentation>
8323 </xs:annotation>
8324 </xs:attribute>
8325 <xs:attribute name="Permanent" type="YesNoTypeUnion">
8326 <xs:annotation>
8327 <xs:documentation>
8328 If this attribute is set to 'yes', the installer does not remove the component during
8329 an uninstall. The installer registers an extra system client for the component in
8330 the Windows Installer registry settings (which basically just means that at least one
8331 product is always referencing this component). Note that this option differs from the
8332 behavior of not setting a guid because although the component is permanent, it is still
8333 patchable (because Windows Installer still tracks it), it's just not uninstallable.
8334 </xs:documentation>
8335 </xs:annotation>
8336 </xs:attribute>
8337 <xs:attribute name="Shared" type="YesNoTypeUnion">
8338 <xs:annotation>
8339 <xs:documentation>
8340 If this attribute's value is set to 'yes', enables advanced patching semantics for
8341 Components that are shared across multiple MSI packages. Specifically, the Windows Installer
8342 will cache the shared files to improve patch uninstall. This functionality is available
8343 in Windows Installer 4.5 and later.
8344 </xs:documentation>
8345 </xs:annotation>
8346 </xs:attribute>
8347 <xs:attribute name="SharedDllRefCount" type="YesNoTypeUnion">
8348 <xs:annotation>
8349 <xs:documentation>
8350 If this attribute's value is set to 'yes', the installer increments the reference count
8351 in the shared DLL registry of the component's key file. If this bit is not set, the
8352 installer increments the reference count only if the reference count already exists.
8353 </xs:documentation>
8354 </xs:annotation>
8355 </xs:attribute>
8356 <xs:attribute name="Subdirectory" type="xs:string">
8357 <xs:annotation>
8358 <xs:documentation>
8359 This attribute defines one or more directories below the directory referenced by the Directory attribute or parent
8360 Directory reference where the Component will be installed.
8361 </xs:documentation>
8362 </xs:annotation>
8363 </xs:attribute>
8364 <xs:attribute name="Transitive" type="YesNoTypeUnion">
8365 <xs:annotation>
8366 <xs:documentation>
8367 If this attribute is set to 'yes', the installer reevaluates the value of the statement
8368 in the Condition upon a reinstall. If the value was previously False and has changed to
8369 True, the installer installs the component. If the value was previously True and has
8370 changed to False, the installer removes the component even if the component has other
8371 products as clients.
8372 </xs:documentation>
8373 </xs:annotation>
8374 </xs:attribute>
8375 <xs:attribute name="UninstallWhenSuperseded" type="YesNoTypeUnion">
8376 <xs:annotation>
8377 <xs:documentation>
8378 If this attribute is set to 'yes', the installer will uninstall the Component's files
8379 and registry keys when it is superseded by a patch. This functionality is available in
8380 Windows Installer 4.5 and later.
8381 </xs:documentation>
8382 </xs:annotation>
8383 </xs:attribute>
8384 <xs:attribute name="Bitness" type="BitnessTypeUnion">
8385 <xs:annotation>
8386 <xs:documentation>
8387 Overrides the default Component bitness. Only 64-bit Components can install to 64-bit locations such
8388 as `ProgramFiles64Folder` and the 64-bit registry. The value `always64` will force the Component
8389 bitness to be 64-bit and cannot be included in 32-bit packages.
8390 Simliarly, the value `always32` will force the Component bitness to 32-bit and can be included in
8391 32-bit or 64-bit packages.
8392 The default value is `default` where the Component will be installed using the
8393 same bitness as the package.
8394 </xs:documentation>
8395 </xs:annotation>
8396 </xs:attribute>
8397 <xs:anyAttribute namespace="##other" processContents="lax">
8398 <xs:annotation>
8399 <xs:documentation>
8400 Extensibility point in the WiX XML Schema. Schema extensions can register additional
8401 attributes at this point in the schema.
8402 </xs:documentation>
8403 </xs:annotation>
8404 </xs:anyAttribute>
8405 </xs:complexType>
8406 </xs:element>
8407 <xs:element name="ComponentGroup">
8408 <xs:annotation>
8409 <xs:documentation>
8410 Groups together multiple components to be used in other locations.
8411 </xs:documentation>
8412 <xs:appinfo>
8413 <xse:seeAlso ref="ComponentGroupRef" />
8414 </xs:appinfo>
8415 </xs:annotation>
8416 <xs:complexType>
8417 <xs:choice minOccurs="0" maxOccurs="unbounded">
8418 <xs:element ref="Component" />
8419 <xs:element ref="ComponentGroupRef" />
8420 <xs:element ref="ComponentRef" />
8421 <xs:element ref="File" />
8422 <xs:element ref="Files" />
8423 <xs:any namespace="##other" processContents="lax">
8424 <xs:annotation>
8425 <xs:documentation>
8426 Extensibility point in the WiX XML Schema. Schema extensions can register additional
8427 elements at this point in the schema.
8428 </xs:documentation>
8429 </xs:annotation>
8430 </xs:any>
8431 </xs:choice>
8432 <xs:attribute name="Id" type="xs:string" use="required">
8433 <xs:annotation>
8434 <xs:documentation>Identifier for the ComponentGroup.</xs:documentation>
8435 </xs:annotation>
8436 </xs:attribute>
8437 <xs:attribute name="Directory" type="xs:string">
8438 <xs:annotation>
8439 <xs:documentation>
8440 Sets the default directory identifier for child Component elements.
8441 </xs:documentation>
8442 </xs:annotation>
8443 </xs:attribute>
8444 <xs:attribute name="Subdirectory" type="xs:string">
8445 <xs:annotation>
8446 <xs:documentation>
8447 This attribute defines one or more directories below the directory referenced by the Directory attribute or parent
8448 Directory reference where the contained Components will be installed.
8449 </xs:documentation>
8450 </xs:annotation>
8451 </xs:attribute>
8452 <xs:attribute name="Source" type="xs:string">
8453 <xs:annotation>
8454 <xs:documentation>
8455 Used to set the default file system source for child Component elements. For more information, see
8456 [Specifying source files](../../../tools/payloads/).
8457 </xs:documentation>
8458 </xs:annotation>
8459 </xs:attribute>
8460 <xs:anyAttribute namespace="##other" processContents="lax">
8461 <xs:annotation>
8462 <xs:documentation>
8463 Extensibility point in the WiX XML Schema. Schema extensions can register additional
8464 attributes at this point in the schema.
8465 </xs:documentation>
8466 </xs:annotation>
8467 </xs:anyAttribute>
8468 </xs:complexType>
8469 </xs:element>
8470 <xs:element name="ComponentGroupRef">
8471 <xs:annotation>
8472 <xs:documentation>
8473 Create a reference to a ComponentGroup in another Fragment.
8474 _New in WiX v5: Can be a child of the `Package` element._
8475 </xs:documentation>
8476 <xs:appinfo>
8477 <xse:seeAlso ref="ComponentGroup" />
8478 </xs:appinfo>
8479 </xs:annotation>
8480 <xs:complexType>
8481 <xs:attribute name="Id" type="xs:string" use="required">
8482 <xs:annotation>
8483 <xs:documentation>The identifier of the ComponentGroup to reference.</xs:documentation>
8484 </xs:annotation>
8485 </xs:attribute>
8486 <xs:attribute name="Primary" type="YesNoTypeUnion">
8487 <xs:annotation>
8488 <xs:documentation>
8489 Set this attribute to 'yes' in order to make the parent feature of this component
8490 the primary feature for this component. Components may belong to multiple features.
8491 By designating a feature as the primary feature of a component, you ensure that
8492 whenever a component is selected for install-on-demand (IOD), the primary feature
8493 will be the one to install it. This attribute should only be set if a component
8494 actually nests under multiple features. If a component nests under only one feature,
8495 that feature is the primary feature for the component. You cannot set more than one
8496 feature as the primary feature of a given component.
8497 </xs:documentation>
8498 </xs:annotation>
8499 </xs:attribute>
8500 <xs:anyAttribute namespace="##other" processContents="lax">
8501 <xs:annotation>
8502 <xs:documentation>
8503 Extensibility point in the WiX XML Schema. Schema extensions can register additional
8504 attributes at this point in the schema.
8505 </xs:documentation>
8506 </xs:annotation>
8507 </xs:anyAttribute>
8508 </xs:complexType>
8509 </xs:element>
8510 <xs:element name="All">
8511 <xs:annotation>
8512 <xs:documentation>Used only for PatchFamilies to include all changes between the baseline and upgraded packages in a patch.</xs:documentation>
8513 <xs:appinfo>
8514 <xse:remarks>
8515 <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>
8516 <html:p>Because changing the ProductCode is not supported in a patch, the ProductCode property is automatically removed from the transform.</html:p>
8517 </xse:remarks>
8518 </xs:appinfo>
8519 </xs:annotation>
8520 </xs:element>
8521 <xs:element name="BinaryRef">
8522 <xs:annotation>
8523 <xs:documentation>Used only for PatchFamilies to include only a binary table entry in a patch.</xs:documentation>
8524 </xs:annotation>
8525 <xs:complexType>
8526 <xs:attribute name="Id" type="xs:string" use="required">
8527 <xs:annotation>
8528 <xs:documentation>The identifier of the Binary element to reference.</xs:documentation>
8529 </xs:annotation>
8530 </xs:attribute>
8531 <xs:anyAttribute namespace="##other" processContents="lax">
8532 <xs:annotation>
8533 <xs:documentation>
8534 Extensibility point in the WiX XML Schema. Schema extensions can register additional
8535 attributes at this point in the schema.
8536 </xs:documentation>
8537 </xs:annotation>
8538 </xs:anyAttribute>
8539 </xs:complexType>
8540 </xs:element>
8541 <xs:element name="IconRef">
8542 <xs:annotation>
8543 <xs:documentation>Used only for PatchFamilies to include only a icon table entry in a patch.</xs:documentation>
8544 </xs:annotation>
8545 <xs:complexType>
8546 <xs:attribute name="Id" type="xs:string" use="required">
8547 <xs:annotation>
8548 <xs:documentation>The identifier of the Icon element to reference.</xs:documentation>
8549 </xs:annotation>
8550 </xs:attribute>
8551 <xs:anyAttribute namespace="##other" processContents="lax">
8552 <xs:annotation>
8553 <xs:documentation>
8554 Extensibility point in the WiX XML Schema. Schema extensions can register additional
8555 attributes at this point in the schema.
8556 </xs:documentation>
8557 </xs:annotation>
8558 </xs:anyAttribute>
8559 </xs:complexType>
8560 </xs:element>
8561 <xs:element name="ComponentRef">
8562 <xs:annotation>
8563 <xs:documentation>
8564 Create a reference to a Feature element in another Fragment.
8565 _New in WiX v5: Can be a child of the `Package` element._
8566 </xs:documentation>
8567 <xs:appinfo>
8568 <xse:seeAlso ref="Component" />
8569 <xse:howtoRef href="files_and_registry/add_a_file.html">How To: Add a file to your installer</xse:howtoRef>
8570 </xs:appinfo>
8571 </xs:annotation>
8572 <xs:complexType>
8573 <xs:attribute name="Id" type="xs:string" use="required">
8574 <xs:annotation>
8575 <xs:documentation>The identifier of the Component element to reference.</xs:documentation>
8576 </xs:annotation>
8577 </xs:attribute>
8578 <xs:attribute name="Primary" type="YesNoTypeUnion">
8579 <xs:annotation>
8580 <xs:documentation>
8581 Set this attribute to 'yes' in order to make the parent feature of this component
8582 the primary feature for this component. Components may belong to multiple features.
8583 By designating a feature as the primary feature of a component, you ensure that
8584 whenever a component is selected for install-on-demand (IOD), the primary feature
8585 will be the one to install it. This attribute should only be set if a component
8586 actually nests under multiple features. If a component nests under only one feature,
8587 that feature is the primary feature for the component. You cannot set more than one
8588 feature as the primary feature of a given component.
8589 </xs:documentation>
8590 </xs:annotation>
8591 </xs:attribute>
8592 <xs:anyAttribute namespace="##other" processContents="lax">
8593 <xs:annotation>
8594 <xs:documentation>
8595 Extensibility point in the WiX XML Schema. Schema extensions can register additional
8596 attributes at this point in the schema.
8597 </xs:documentation>
8598 </xs:annotation>
8599 </xs:anyAttribute>
8600 </xs:complexType>
8601 </xs:element>
8602 <xs:element name="Merge">
8603 <xs:annotation>
8604 <xs:appinfo>
8605 <xse:seeAlso ref="MergeRef" />
8606 <xse:howtoRef href="redistributables_and_install_checks/install_vcredist.html">How To: Install the Visual C++ Redistributable with your installer</xse:howtoRef>
8607 </xs:appinfo>
8608 <xs:documentation>Merge directive to bring in a merge module that will be redirected to the parent directory.</xs:documentation>
8609 </xs:annotation>
8610 <xs:complexType>
8611 <xs:choice minOccurs="0" maxOccurs="unbounded">
8612 <xs:element ref="ConfigurationData">
8613 <xs:annotation>
8614 <xs:documentation>Data to use as input to a configurable merge module.</xs:documentation>
8615 </xs:annotation>
8616 </xs:element>
8617 </xs:choice>
8618 <xs:attribute name="Id" type="xs:string" use="required">
8619 <xs:annotation>
8620 <xs:documentation>The unique identifier for the Merge element in the source code. Referenced by the MergeRef/@Id.</xs:documentation>
8621 </xs:annotation>
8622 </xs:attribute>
8623 <xs:attribute name="DiskId" type="DiskIdType">
8624 <xs:annotation>
8625 <xs:documentation>The value of this attribute should correspond to the Id attribute of a
8626 Media element authored elsewhere. By creating this connection between the merge module and Media
8627 element, you set the packaging options to the values specified in the Media
8628 element (values such as compression level, cab embedding, etc...).</xs:documentation>
8629 </xs:annotation>
8630 </xs:attribute>
8631 <xs:attribute name="FileCompression" type="YesNoTypeUnion">
8632 <xs:annotation>
8633 <xs:documentation>Specifies if the files in the merge module should be compressed.</xs:documentation>
8634 </xs:annotation>
8635 </xs:attribute>
8636 <xs:attribute name="Language" type="LocalizableInteger" use="required">
8637 <xs:annotation>
8638 <xs:documentation>Specifies the decimal LCID or localization token for the language to merge the Module in as.</xs:documentation>
8639 </xs:annotation>
8640 </xs:attribute>
8641 <xs:attribute name="SourceFile" type="xs:string">
8642 <xs:annotation>
8643 <xs:documentation>Path to the source location of the merge module.</xs:documentation>
8644 </xs:annotation>
8645 </xs:attribute>
8646 </xs:complexType>
8647 </xs:element>
8648 <xs:element name="MergeRef">
8649 <xs:annotation>
8650 <xs:appinfo>
8651 <xse:seeAlso ref="Merge" />
8652 <xse:howtoRef href="redistributables_and_install_checks/install_vcredist.html">How To: Install the Visual C++ Redistributable with your installer</xse:howtoRef>
8653 </xs:appinfo>
8654 <xs:documentation>Merge reference to connect a Merge Module to parent Feature</xs:documentation>
8655 </xs:annotation>
8656 <xs:complexType>
8657 <xs:attribute name="Id" type="xs:string" use="required">
8658 <xs:annotation>
8659 <xs:documentation>The unique identifier for the Merge element to be referenced.</xs:documentation>
8660 </xs:annotation>
8661 </xs:attribute>
8662 <xs:attribute name="Primary" type="YesNoTypeUnion">
8663 <xs:annotation>
8664 <xs:documentation>Specifies whether the feature containing this MergeRef is the primary feature for advertising the merge module's components.</xs:documentation>
8665 </xs:annotation>
8666 </xs:attribute>
8667 <xs:anyAttribute namespace="##other" processContents="lax">
8668 <xs:annotation>
8669 <xs:documentation>
8670 Extensibility point in the WiX XML Schema. Schema extensions can register additional
8671 attributes at this point in the schema.
8672 </xs:documentation>
8673 </xs:annotation>
8674 </xs:anyAttribute>
8675 </xs:complexType>
8676 </xs:element>
8677 <xs:element name="ConfigurationData">
8678 <xs:annotation>
8679 <xs:documentation>Data to use as input to a configurable merge module.</xs:documentation>
8680 </xs:annotation>
8681 <xs:complexType>
8682 <xs:attribute name="Name" type="xs:string" use="required">
8683 <xs:annotation>
8684 <xs:documentation>Name of the item in the ModuleConfiguration table.</xs:documentation>
8685 </xs:annotation>
8686 </xs:attribute>
8687 <xs:attribute name="Value" type="xs:string" use="required">
8688 <xs:annotation>
8689 <xs:documentation>Value to be passed to configurable merge module.</xs:documentation>
8690 </xs:annotation>
8691 </xs:attribute>
8692 </xs:complexType>
8693 </xs:element>
8694 <xs:element name="Directory">
8695 <xs:annotation>
8696 <xs:documentation>Directory layout for the product. Also specifies the mappings between source and target directories.</xs:documentation>
8697 <xs:appinfo>
8698 <xse:seeAlso ref="DirectoryRef" />
8699 <xse:msiRef table="Directory" href="http://msdn.microsoft.com/library/aa368295.aspx" />
8700 <xse:howtoRef href="files_and_registry/add_a_file.html">How To: Add a file to your installer</xse:howtoRef>
8701 </xs:appinfo>
8702 </xs:annotation>
8703 <xs:complexType>
8704 <xs:choice minOccurs="0" maxOccurs="unbounded">
8705 <xs:element ref="Component" />
8706 <xs:element ref="Directory" />
8707 <xs:element ref="File" />
8708 <xs:element ref="Files" />
8709 <xs:element ref="Merge" />
8710 <xs:element ref="SymbolPath" />
8711 <xs:any namespace="##other" processContents="lax">
8712 <xs:annotation>
8713 <xs:documentation>
8714 Extensibility point in the WiX XML Schema. Schema extensions can register additional
8715 elements at this point in the schema.
8716 </xs:documentation>
8717 </xs:annotation>
8718 </xs:any>
8719 </xs:choice>
8720 <xs:attribute name="Id" type="xs:string">
8721 <xs:annotation>
8722 <xs:documentation>
8723 An optional identifier for the directory. If one is not specified,
8724 a private identifier will be generated.
8725 </xs:documentation>
8726 </xs:annotation>
8727 </xs:attribute>
8728 <xs:attribute name="ComponentGuidGenerationSeed" type="Guid">
8729 <xs:annotation>
8730 <xs:documentation>
8731 The Component Guid Generation Seed is a guid that must be used when a Component with the generate guid directive ("*")
8732 is not rooted in a standard Windows Installer directory (for example, ProgramFilesFolder or CommonFilesFolder).
8733 It is recommended that this attribute be avoided and that developers install their Components under standard
8734 directories with unique names instead (for example, "ProgramFilesFolder\Company Name Product Name Version"). It is
8735 important to note that once a directory is assigned a Component Guid Generation Seed the value must not change until
8736 (and must be changed when) the path to that directory, including itself and all parent directories, changes.
8737 </xs:documentation>
8738 </xs:annotation>
8739 </xs:attribute>
8740 <xs:attribute name="DiskId" type="DiskIdType">
8741 <xs:annotation>
8742 <xs:documentation>
8743 Sets the default disk identifier for the files contained in this directory.
8744 This attribute's value may be overridden by a child Component, Directory,
8745 Merge or File element. See the File or Merge elements' DiskId attribute for
8746 more information.
8747 </xs:documentation>
8748 </xs:annotation>
8749 </xs:attribute>
8750 <xs:attribute name="FileSource" type="xs:string">
8751 <xs:annotation>
8752 <xs:documentation>Used to set the file system source for this directory's child elements.
8753 For more information, see [Specifying source files](../../../tools/payloads/).</xs:documentation>
8754 </xs:annotation>
8755 </xs:attribute>
8756 <xs:attribute name="Name" type="xs:string">
8757 <xs:annotation>
8758 <xs:documentation>
8759 The name of the directory.
8760
8761 Do not specify this attribute if this directory represents
8762 the same directory as the parent (see the Windows Installer SDK's
8763 <html:a href="http://msdn.microsoft.com/library/Aa368295.aspx">Directory table</html:a>
8764 topic for more information about the "." operator).
8765
8766 This attribute's value may either a short or long directory name. If a short directory
8767 name is specified, the ShortName attribute may not be specified. If this value is a long
8768 directory name, the ShortName attribute may be omitted to
8769 allow WiX to attempt to generate a unique short directory name.
8770 However, if this name collides with another directory or you wish to manually specify
8771 the short directory name, then the ShortName attribute may be specified.
8772 </xs:documentation>
8773 </xs:annotation>
8774 </xs:attribute>
8775 <xs:attribute name="ShortName" type="ShortFileNameType">
8776 <xs:annotation>
8777 <xs:documentation>
8778 The short name of the directory in 8.3 format.
8779 This attribute should only be set if there is a conflict between generated short directory names
8780 or the user wants to manually specify the short directory name.
8781 </xs:documentation>
8782 </xs:annotation>
8783 </xs:attribute>
8784 <xs:attribute name="ShortSourceName" type="ShortFileNameType">
8785 <xs:annotation>
8786 <xs:documentation>
8787 The short name of the directory on the source media in 8.3 format.
8788 This attribute should only be set if there is a conflict between generated short directory names
8789 or the user wants to manually specify the short source directory name.
8790 </xs:documentation>
8791 </xs:annotation>
8792 </xs:attribute>
8793 <xs:attribute name="SourceName" type="LongFileNameType">
8794 <xs:annotation>
8795 <xs:documentation>
8796 The name of the directory on the source media.
8797 If this attribute is not specified, Windows Installer will default to the Name attribute.
8798
8799 In prior versions of the WiX toolset, this attribute specified the short source directory name.
8800 This attribute's value may now be either a short or long directory name.
8801 If a short directory name is specified, the ShortSourceName attribute may not be specified.
8802 If a long directory name is specified, the LongSource attribute may not be specified.
8803 Also, if this value is a long directory name, the ShortSourceName attribute may be omitted to
8804 allow WiX to attempt to generate a unique short directory name.
8805 However, if this name collides with another directory or you wish to manually specify
8806 the short directory name, then the ShortSourceName attribute may be specified.
8807 </xs:documentation>
8808 </xs:annotation>
8809 </xs:attribute>
8810 <xs:anyAttribute namespace="##other" processContents="lax">
8811 <xs:annotation>
8812 <xs:documentation>
8813 Extensibility point in the WiX XML Schema. Schema extensions can register additional
8814 attributes at this point in the schema.
8815 </xs:documentation>
8816 </xs:annotation>
8817 </xs:anyAttribute>
8818 </xs:complexType>
8819 </xs:element>
8820 <xs:element name="DirectoryRef">
8821 <xs:annotation>
8822 <xs:documentation>Create a reference to a Directory element in another Fragment.</xs:documentation>
8823 <xs:appinfo>
8824 <xse:seeAlso ref="Directory" />
8825 <xse:howtoRef href="files_and_registry/add_a_file.html">How To: Add a file to your installer</xse:howtoRef>
8826 </xs:appinfo>
8827 </xs:annotation>
8828 <xs:complexType>
8829 <xs:choice minOccurs="0" maxOccurs="unbounded">
8830 <xs:element ref="Component" />
8831 <xs:element ref="Directory" />
8832 <xs:element ref="File" />
8833 <xs:element ref="Files" />
8834 <xs:element ref="Merge" />
8835 <xs:any namespace="##other" processContents="lax">
8836 <xs:annotation>
8837 <xs:documentation>
8838 Extensibility point in the WiX XML Schema. Schema extensions can register additional
8839 elements at this point in the schema.
8840 </xs:documentation>
8841 </xs:annotation>
8842 </xs:any>
8843 </xs:choice>
8844 <xs:attribute name="Id" type="xs:string" use="required">
8845 <xs:annotation>
8846 <xs:documentation>The identifier of the Directory element to reference.</xs:documentation>
8847 </xs:annotation>
8848 </xs:attribute>
8849 <xs:attribute name="DiskId" type="DiskIdType">
8850 <xs:annotation>
8851 <xs:documentation>
8852 Sets the default disk identifier for the files contained in this directory.
8853 This attribute's value may be overridden by a child Component, Directory,
8854 Merge or File element. See the File or Merge elements' DiskId attribute for
8855 more information.
8856 </xs:documentation>
8857 </xs:annotation>
8858 </xs:attribute>
8859 <xs:attribute name="FileSource" type="xs:string">
8860 <xs:annotation>
8861 <xs:documentation>Used to set the file system source for this DirectoryRef's child elements.
8862 For more information, see [Specifying source files](../../../tools/payloads/).</xs:documentation>
8863 </xs:annotation>
8864 </xs:attribute>
8865 <xs:anyAttribute namespace="##other" processContents="lax">
8866 <xs:annotation>
8867 <xs:documentation>
8868 Extensibility point in the WiX XML Schema. Schema extensions can register additional
8869 attributes at this point in the schema.
8870 </xs:documentation>
8871 </xs:annotation>
8872 </xs:anyAttribute>
8873 </xs:complexType>
8874 </xs:element>
8875 <xs:element name="SoftwareTag">
8876 <xs:annotation>
8877 <xs:documentation>
8878 This extension implements the ISO/IEC 19770-2:2015 specification. A SWID tag file
8879 will be generated an inserted into the Package or Bundle.
8880 </xs:documentation>
8881 </xs:annotation>
8882 <xs:complexType>
8883 <xs:attribute name="Name" type="xs:string">
8884 <xs:annotation>
8885 <xs:documentation>
8886 Name to use in the filename for the software id tag. By default the filename
8887 uses the Bundle/@Name or Package/@Name. If the bundle name or package name contains
8888 invalid filename characters such as ":" or "?", use this attribute to provide
8889 a valid filename.
8890 </xs:documentation>
8891 </xs:annotation>
8892 </xs:attribute>
8893 <xs:attribute name="Regid" type="xs:string" use="required">
8894 <xs:annotation>
8895 <xs:documentation>
8896 The regid for the software manufacturer. A regid is a URI simplified for the common
8897 case. Namely, if the scheme is "http://", it can be removed. Additionally, the domain
8898 should be minimized as much as possible (for example, remove "www." prefix if unnecessary).
8899
8900 For example, the WiX toolset regid is "wixtoolset.org".
8901 </xs:documentation>
8902 </xs:annotation>
8903 </xs:attribute>
8904 <xs:attribute name="InstallDirectory" type="xs:string">
8905 <xs:annotation>
8906 <xs:documentation>
8907 A reference to an existing Directory/@Id where the software is installed. The SWID tag file will be installed in a "swidtag" folder
8908 under that directory as per the specification. This attribute is required on a SoftwareTag element found under a Package element.
8909 </xs:documentation>
8910 </xs:annotation>
8911 </xs:attribute>
8912 <xs:attribute name="InstallPath" type="xs:string">
8913 <xs:annotation>
8914 <xs:documentation>
8915 The path where the software is installed. The SWID tag file will be installed in a "swidtag" folder.
8916 This is a formatted attribute so it is possible to use Variables as the InstallPath by setting
8917 the value to, for example, "[ProgramFilesFolder]CompanyName\Product Name". This attribute is required
8918 on a SoftwareTag element found under a Bundle element.
8919 </xs:documentation>
8920 </xs:annotation>
8921 </xs:attribute>
8922 <xs:attribute name="Feature" type="xs:string">
8923 <xs:annotation>
8924 <xs:documentation>
8925 Optional attribute to explicitly set the Feature when defining the software id tag
8926 in a Package. By default the software id tag will always be installed by a top-level hidden feature.
8927 It is recommended to <html:strong>not</html:strong> set this attribute.
8928 </xs:documentation>
8929 </xs:annotation>
8930 </xs:attribute>
8931 <xs:attribute name="Bitness" type="BitnessTypeUnion">
8932 <xs:annotation>
8933 <xs:documentation>
8934 This attribute facilitates the installation of packages that install both 32-bit and 64-bit files. Set this attribute to 'always32'
8935 force the software id tag to a 32-bit location (such as "ProgramFilesFolder") or 'always64' to force the tag to be installed to
8936 a 64-bit location (such as "ProgramFiles64Folder").
8937
8938 The default value is `default` where the tag will be installed to the directory that matches the
8939 same bitness as the package.
8940
8941 This attribute is only allowed on a SoftwareTag element found under a Package element.
8942 </xs:documentation>
8943 </xs:annotation>
8944 </xs:attribute>
8945 </xs:complexType>
8946 </xs:element>
8947 <xs:element name="StandardDirectory">
8948 <xs:annotation>
8949 <xs:documentation>References a standard Windows Installer directory, such as ProgramFilesFolder.</xs:documentation>
8950 <xs:appinfo>
8951 <xse:seeAlso ref="Directory" />
8952 <xse:howtoRef href="files_and_registry/add_a_file.html">How To: Add a file to your installer</xse:howtoRef>
8953 </xs:appinfo>
8954 </xs:annotation>
8955 <xs:complexType>
8956 <xs:choice minOccurs="0" maxOccurs="unbounded">
8957 <xs:element ref="Component" />
8958 <xs:element ref="Directory" />
8959 <xs:element ref="File" />
8960 <xs:element ref="Files" />
8961 <xs:element ref="Merge" />
8962 <xs:any namespace="##other" processContents="lax">
8963 <xs:annotation>
8964 <xs:documentation>
8965 Extensibility point in the WiX XML Schema. Schema extensions can register additional
8966 elements at this point in the schema.
8967 </xs:documentation>
8968 </xs:annotation>
8969 </xs:any>
8970 </xs:choice>
8971 <xs:attribute name="Id" type="StandardDirectoryTypeUnion" use="required">
8972 <xs:annotation>
8973 <xs:documentation>The identifier of the standard directory to include in the package.</xs:documentation>
8974 </xs:annotation>
8975 </xs:attribute>
8976 <xs:anyAttribute namespace="##other" processContents="lax">
8977 <xs:annotation>
8978 <xs:documentation>
8979 Extensibility point in the WiX XML Schema. Schema extensions can register additional
8980 attributes at this point in the schema.
8981 </xs:documentation>
8982 </xs:annotation>
8983 </xs:anyAttribute>
8984 </xs:complexType>
8985 </xs:element>
8986 <xs:element name="Payloads">
8987 <xs:annotation>
8988 <xs:documentation>
8989 Authoring to define the set of files to be harvested for inclusion in a bundle.
8990 </xs:documentation>
8991 </xs:annotation>
8992 <xs:complexType>
8993 <xs:choice minOccurs="0" maxOccurs="unbounded">
8994 <xs:element ref="Exclude" />
8995 <xs:any namespace="##other" processContents="lax">
8996 <xs:annotation>
8997 <xs:documentation>
8998 Extensibility point in the WiX XML Schema. Schema extensions can register additional
8999 elements at this point in the schema.
9000 </xs:documentation>
9001 </xs:annotation>
9002 </xs:any>
9003 </xs:choice>
9004 <xs:attribute name="Include" type="xs:string" use="required">
9005 <xs:annotation>
9006 <xs:documentation>
9007 A file-selection pattern that can include directory names, file names, and wildcards.
9008 If a pattern is not an absolute path (via a preprocessor variable, unnamed bind path,
9009 or named bind path), it is interpreted as relative to the directory containing the
9010 source file. Absolute paths via a named bind path are recommended.
9011
9012 Wildcards include typical `*.ext` globs and MSBuild-style `**` globs to indicate
9013 that directories should be recursed. Examples include:
9014
9015 | Pattern | Description |
9016 | ------- | ----------- |
9017 | `!(bindpath.ToBeHarvested)\**` | All files in the parent directory identified by the `ToBeHarvested` bind path and its subdirectories. |
9018 | `$(PayloadFiles)\bin\Release\**` | All files in the `bin\Release` subdirectory in the directory named by the `PayloadFiles` preprocessor variable and its subdirectories. |
9019 | `!(bindpath.arm64)\**.pdb` | All files with `.pdb` extension in the parent directory identified by the `arm64` bind path and its subdirectories. |
9020 | `**` | 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. |
9021 </xs:documentation>
9022 </xs:annotation>
9023 </xs:attribute>
9024 <xs:anyAttribute namespace="##other" processContents="lax">
9025 <xs:annotation>
9026 <xs:documentation>
9027 Extensibility point in the WiX XML Schema. Schema extensions can register additional
9028 attributes at this point in the schema.
9029 </xs:documentation>
9030 </xs:annotation>
9031 </xs:anyAttribute>
9032 </xs:complexType>
9033 </xs:element>
9034 <xs:element name="Files">
9035 <xs:annotation>
9036 <xs:documentation>
9037 Authoring to define the set of files to be harvested for inclusion in a package.
9038 </xs:documentation>
9039 </xs:annotation>
9040 <xs:complexType>
9041 <xs:choice minOccurs="0" maxOccurs="unbounded">
9042 <xs:element ref="Exclude" />
9043 <xs:any namespace="##other" processContents="lax">
9044 <xs:annotation>
9045 <xs:documentation>
9046 Extensibility point in the WiX XML Schema. Schema extensions can register additional
9047 elements at this point in the schema.
9048 </xs:documentation>
9049 </xs:annotation>
9050 </xs:any>
9051 </xs:choice>
9052 <xs:attribute name="Include" type="xs:string" use="required">
9053 <xs:annotation>
9054 <xs:documentation>
9055 A file-selection pattern that can include directory names, file names, and wildcards.
9056
9057 We recommend that patterns be fully-qualified, absolute paths,
9058 preferably via named bind path. You can also use preprocessor
9059 variables or unnamed bind paths to create absolute paths.
9060
9061 If the pattern is a relative path, it is interpreted as relative to either:
9062 - an unnamed bind path, if one or more is specified.
9063 - the source directory of the file containing the `Files` element, if no unnamed bind paths are specified.
9064
9065 Wildcards include typical `*.ext` globs and MSBuild-style `**` globs to indicate
9066 that directories should be recursed. Examples include:
9067
9068 | Pattern | Description |
9069 | ------- | ----------- |
9070 | `!(bindpath.ToBeHarvested)\**` | All files in the parent directory identified by the `ToBeHarvested` bind path and its subdirectories. |
9071 | `$(PayloadFiles)\bin\Release\**` | All files in the `bin\Release` subdirectory in the directory named by the `PayloadFiles` preprocessor variable and its subdirectories. |
9072 | `!(bindpath.arm64)\**.pdb` | All files with `.pdb` extension in the parent directory identified by the `arm64` bind path and its subdirectories. |
9073 | `**` | 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. |
9074 </xs:documentation>
9075 </xs:annotation>
9076 </xs:attribute>
9077 <xs:attribute name="Directory" type="xs:string">
9078 <xs:annotation>
9079 <xs:documentation>
9080 This attribute specifies a reference to a Directory element with matching Id attribute containing a directory path
9081 for the root of the harvested files.
9082 </xs:documentation>
9083 </xs:annotation>
9084 </xs:attribute>
9085 <xs:attribute name="Subdirectory" type="xs:string">
9086 <xs:annotation>
9087 <xs:documentation>
9088 This attribute defines one or more directories below the directory referenced by the Directory attribute.
9089 This attribute is optional but can only be specified when the Directory attribute is also specified.
9090 </xs:documentation>
9091 </xs:annotation>
9092 </xs:attribute>
9093 <xs:anyAttribute namespace="##other" processContents="lax">
9094 <xs:annotation>
9095 <xs:documentation>
9096 Extensibility point in the WiX XML Schema. Schema extensions can register additional
9097 attributes at this point in the schema.
9098 </xs:documentation>
9099 </xs:annotation>
9100 </xs:anyAttribute>
9101 </xs:complexType>
9102 </xs:element>
9103 <xs:element name="Exclude">
9104 <xs:annotation>
9105 <xs:documentation>
9106 Using wildcards, defines the files from a parent `Files` or `Payloads` element that should be excluded from harvesting.
9107 </xs:documentation>
9108 </xs:annotation>
9109 <xs:complexType>
9110 <xs:choice minOccurs="0" maxOccurs="unbounded">
9111 <xs:any namespace="##other" processContents="lax">
9112 <xs:annotation>
9113 <xs:documentation>
9114 Extensibility point in the WiX XML Schema. Schema extensions can register additional
9115 elements at this point in the schema.
9116 </xs:documentation>
9117 </xs:annotation>
9118 </xs:any>
9119 </xs:choice>
9120 <xs:attribute name="Files" type="xs:string" use="required">
9121 <xs:annotation>
9122 <xs:documentation>
9123 Excludes files from the set of files harvested via the parent `Files` or `Payloads` element.
9124 Inclusion and exclusion wildcards must match paths. For example, if you have a
9125 `Files` element with `Include="!(bindpath.ToBeHarvested)\**"` and want to
9126 exclude one of the files, use an `Exclude` element with a `Files` attribute
9127 like `!(bindpath.ToBeHarvested)\notatest.txt` to match the inclusion path.
9128 You can also use the `**` wildcard to match directories, such as
9129 `Files="**\pleasedontincludeme.dat"`.
9130
9131 The file-selection pattern can include directory names, file names, and wildcards.
9132 If a pattern is not an absolute path (via a preprocessor variable, unnamed bind path,
9133 or named bind path), it is interpreted as relative to the directory containing the
9134 source file. Absolute paths via a named bind path are recommended.
9135
9136 Wildcards include typical `*.ext` globs and MSBuild-style `**` globs to indicate
9137 that directories should be recursed. Examples include:
9138
9139 | Pattern | Description |
9140 | ------- | ----------- |
9141 | `!(bindpath.ToBeHarvested)\**` | All files in the parent directory identified by the `ToBeHarvested` bind path and its subdirectories. |
9142 | `$(PayloadFiles)\bin\Release\**` | All files in the `bin\Release` subdirectory in the directory named by the `PayloadFiles` preprocessor variable and its subdirectories. |
9143 | `!(bindpath.arm64)\**.pdb` | All files with `.pdb` extension in the parent directory identified by the `arm64` bind path and its subdirectories. |
9144 | `**` | 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. |
9145 </xs:documentation>
9146 </xs:annotation>
9147 </xs:attribute>
9148 <xs:anyAttribute namespace="##other" processContents="lax">
9149 <xs:annotation>
9150 <xs:documentation>
9151 Extensibility point in the WiX XML Schema. Schema extensions can register additional
9152 attributes at this point in the schema.
9153 </xs:documentation>
9154 </xs:annotation>
9155 </xs:anyAttribute>
9156 </xs:complexType>
9157 </xs:element>
9158 <xs:element name="UpgradeVersion">
9159 <xs:annotation>
9160 <xs:appinfo>
9161 <xse:msiRef table="Upgrade" href="https://learn.microsoft.com/en-us/windows/win32/msi/upgrade-table" />
9162 </xs:appinfo>
9163 </xs:annotation>
9164 <xs:complexType>
9165 <xs:attribute name="Minimum" type="xs:string">
9166 <xs:annotation>
9167 <xs:documentation>Specifies the lower bound on the range of product versions to be detected by FindRelatedProducts.</xs:documentation>
9168 </xs:annotation>
9169 </xs:attribute>
9170 <xs:attribute name="Maximum" type="xs:string">
9171 <xs:annotation>
9172 <xs:documentation>Specifies the upper boundary of the range of product versions detected by FindRelatedProducts.</xs:documentation>
9173 </xs:annotation>
9174 </xs:attribute>
9175 <xs:attribute name="Language" type="xs:string">
9176 <xs:annotation>
9177 <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>
9178 </xs:annotation>
9179 </xs:attribute>
9180 <xs:attribute name="RemoveFeatures" type="xs:string">
9181 <xs:annotation>
9182 <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>
9183 </xs:annotation>
9184 </xs:attribute>
9185 <xs:attribute name="Property" type="xs:string" use="required">
9186 <xs:annotation>
9187 <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>
9188 </xs:annotation>
9189 </xs:attribute>
9190 <xs:attribute name="MigrateFeatures" type="YesNoTypeUnion">
9191 <xs:annotation>
9192 <xs:documentation>Set to "yes" to migrate feature states from upgraded products by enabling the logic in the MigrateFeatureStates action.</xs:documentation>
9193 </xs:annotation>
9194 </xs:attribute>
9195 <xs:attribute name="OnlyDetect" type="YesNoTypeUnion">
9196 <xs:annotation>
9197 <xs:documentation>Set to "yes" to detect products and applications but do not uninstall.</xs:documentation>
9198 </xs:annotation>
9199 </xs:attribute>
9200 <xs:attribute name="IgnoreRemoveFailure" type="YesNoTypeUnion">
9201 <xs:annotation>
9202 <xs:documentation>Set to "yes" to continue installation upon failure to remove a product or application.</xs:documentation>
9203 </xs:annotation>
9204 </xs:attribute>
9205 <xs:attribute name="IncludeMinimum" type="YesNoTypeUnion">
9206 <xs:annotation>
9207 <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>
9208 </xs:annotation>
9209 </xs:attribute>
9210 <xs:attribute name="IncludeMaximum" type="YesNoTypeUnion">
9211 <xs:annotation>
9212 <xs:documentation>Set to "yes" to make the range of versions detected include the value specified in Maximum.</xs:documentation>
9213 </xs:annotation>
9214 </xs:attribute>
9215 <xs:attribute name="ExcludeLanguages" type="YesNoTypeUnion">
9216 <xs:annotation>
9217 <xs:documentation>Set to "yes" to detect all languages, excluding the languages listed in the Language attribute.</xs:documentation>
9218 </xs:annotation>
9219 </xs:attribute>
9220 <xs:anyAttribute namespace="##other" processContents="lax">
9221 <xs:annotation>
9222 <xs:documentation>
9223 Extensibility point in the WiX XML Schema. Schema extensions can register additional
9224 attributes at this point in the schema.
9225 </xs:documentation>
9226 </xs:annotation>
9227 </xs:anyAttribute>
9228 </xs:complexType>
9229 </xs:element>
9230 <xs:element name="Upgrade">
9231 <xs:annotation>
9232 <xs:documentation>
9233 Upgrade info for a particular UpgradeCode
9234 </xs:documentation>
9235 <xs:appinfo>
9236 <xse:msiRef table="Upgrade" href="https://learn.microsoft.com/en-us/windows/win32/msi/upgrade-table" />
9237 </xs:appinfo>
9238 </xs:annotation>
9239 <xs:complexType>
9240 <xs:choice minOccurs="0" maxOccurs="unbounded">
9241 <xs:element ref="UpgradeVersion" />
9242 <xs:element ref="Property">
9243 <xs:annotation>
9244 <xs:documentation>
9245 Nesting a Property element under an Upgrade element has been deprecated.
9246 Please nest Property elements in any of the other supported locations.
9247 </xs:documentation>
9248 </xs:annotation>
9249 </xs:element>
9250 </xs:choice>
9251 <xs:attribute name="Id" type="Guid" use="required">
9252 <xs:annotation>
9253 <xs:documentation>This value specifies the upgrade code for the products that are to be detected by the FindRelatedProducts action.</xs:documentation>
9254 </xs:annotation>
9255 </xs:attribute>
9256 </xs:complexType>
9257 </xs:element>
9258 <xs:element name="Feature">
9259 <xs:annotation>
9260 <xs:documentation>
9261 A feature for the Feature table. Features are the smallest installable unit. See msi.chm for more
9262 detailed information on the myriad installation options for a feature.
9263 </xs:documentation>
9264 <xs:appinfo>
9265 <xse:seeAlso ref="FeatureRef" />
9266 <xse:msiRef table="Feature" href="https://learn.microsoft.com/en-us/windows/win32/msi/feature-table" />
9267 <xse:howtoRef href="files_and_registry/add_a_file.html">How To: Add a file to your installer</xse:howtoRef>
9268 </xs:appinfo>
9269 </xs:annotation>
9270 <xs:complexType>
9271 <xs:choice minOccurs="0" maxOccurs="unbounded">
9272 <xs:element ref="Component" />
9273 <xs:element ref="ComponentGroupRef" />
9274 <xs:element ref="ComponentRef" />
9275 <xs:element ref="File" />
9276 <xs:element ref="Files" />
9277 <xs:element ref="Level" />
9278 <xs:element ref="Feature" />
9279 <xs:element ref="FeatureGroupRef" />
9280 <xs:element ref="FeatureRef" />
9281 <xs:element ref="MergeRef" />
9282 <xs:any namespace="##other" processContents="lax">
9283 <xs:annotation>
9284 <xs:documentation>
9285 Extensibility point in the WiX XML Schema. Schema extensions can register additional
9286 elements at this point in the schema.
9287 </xs:documentation>
9288 </xs:annotation>
9289 </xs:any>
9290 </xs:choice>
9291 <xs:attribute name="Id" type="xs:string" use="required">
9292 <xs:annotation>
9293 <xs:documentation>Unique identifier of the feature. The id must be shorter than 38 characters.</xs:documentation>
9294 </xs:annotation>
9295 </xs:attribute>
9296 <xs:attribute name="AllowAbsent" type="YesNoTypeUnion">
9297 <xs:annotation>
9298 <xs:documentation>
9299 This attribute determines if a user will have the option to set a feature to absent in the user interface.
9300 </xs:documentation>
9301 </xs:annotation>
9302 </xs:attribute>
9303 <xs:attribute name="AllowAdvertise" type="YesNoTypeUnion">
9304 <xs:annotation>
9305 <xs:documentation>
9306 This attribute determines the possible advertise states for this feature. The default is 'yes'.
9307 </xs:documentation>
9308 </xs:annotation>
9309 </xs:attribute>
9310 <xs:attribute name="ConfigurableDirectory" type="xs:string">
9311 <xs:annotation>
9312 <xs:documentation>
9313 Specify the Id of a Directory that can be configured by the user at installation time. This identifier
9314 must be a public property and therefore completely uppercase.
9315 </xs:documentation>
9316 </xs:annotation>
9317 </xs:attribute>
9318 <xs:attribute name="Description" type="xs:string">
9319 <xs:annotation>
9320 <xs:documentation>
9321 Longer string of text describing the feature. This localizable string is displayed by the
9322 Text Control of the Selection Dialog.
9323 </xs:documentation>
9324 </xs:annotation>
9325 </xs:attribute>
9326 <xs:attribute name="Display" type="xs:string">
9327 <xs:annotation>
9328 <xs:documentation>
9329 Determines the initial display of this feature in the feature tree.
9330 This attribute's value should be one of the following:
9331
9332 - `collapse`: Initially shows the feature collapsed. This is the default value.
9333 - `expand`: Initially shows the feature expanded.
9334 - `hidden`: Prevents the feature from displaying in the user interface.
9335 - 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.
9336 </xs:documentation>
9337 </xs:annotation>
9338 </xs:attribute>
9339 <xs:attribute name="InstallDefault">
9340 <xs:annotation>
9341 <xs:documentation>
9342 This attribute determines the default install/run location of a feature. This attribute cannot be specified
9343 if the value of the FollowParent attribute is 'yes' since that would ask the installer to force this feature
9344 to follow the parent installation state and simultaneously favor a particular installation state just for this feature.
9345 </xs:documentation>
9346 </xs:annotation>
9347 <xs:simpleType>
9348 <xs:restriction base="xs:NMTOKEN">
9349 <xs:enumeration value="followParent">
9350 <xs:annotation>
9351 <xs:documentation>
9352 Forces the feature to follow the same installation state as its parent feature.
9353 </xs:documentation>
9354 </xs:annotation>
9355 </xs:enumeration>
9356 <xs:enumeration value="local">
9357 <xs:annotation>
9358 <xs:documentation>
9359 Favors installing this feature locally by setting the msidbFeatureAttributesFavorLocal attribute.
9360 </xs:documentation>
9361 </xs:annotation>
9362 </xs:enumeration>
9363 <xs:enumeration value="source">
9364 <xs:annotation>
9365 <xs:documentation>
9366 Favors running this feature from source by setting the msidbFeatureAttributesFavorSource attribute.
9367 </xs:documentation>
9368 </xs:annotation>
9369 </xs:enumeration>
9370 </xs:restriction>
9371 </xs:simpleType>
9372 </xs:attribute>
9373 <xs:attribute name="Level" type="Integer">
9374 <xs:annotation>
9375 <xs:documentation>
9376 Sets the install level of this feature. A value of 0 will disable the feature. This value
9377 can be modified at install time using the Level element as a child of the Feature.
9378 The default value is "1".
9379 </xs:documentation>
9380 </xs:annotation>
9381 </xs:attribute>
9382 <xs:attribute name="Title" type="xs:string">
9383 <xs:annotation>
9384 <xs:documentation>
9385 Short string of text identifying the feature. This string is listed as an item by the
9386 SelectionTree control of the Selection Dialog.
9387 </xs:documentation>
9388 </xs:annotation>
9389 </xs:attribute>
9390 <xs:attribute name="TypicalDefault">
9391 <xs:annotation>
9392 <xs:documentation>
9393 This attribute determines the default advertise state of the feature.
9394 </xs:documentation>
9395 </xs:annotation>
9396 <xs:simpleType>
9397 <xs:restriction base="xs:NMTOKEN">
9398 <xs:enumeration value="advertise">
9399 <xs:annotation>
9400 <xs:documentation>
9401 Sets the feature to be advertised by setting the msidbFeatureAttributesFavorAdvertise attribute.
9402 This value cannot be set if the value of the AllowAdvertise attribute is 'no' since that would ask the installer to
9403 disallow the advertised state for this feature while at the same time favoring it.
9404 </xs:documentation>
9405 </xs:annotation>
9406 </xs:enumeration>
9407 <xs:enumeration value="install">
9408 <xs:annotation>
9409 <xs:documentation>
9410 Sets the feature to the default non-advertised installation option.
9411 </xs:documentation>
9412 </xs:annotation>
9413 </xs:enumeration>
9414 </xs:restriction>
9415 </xs:simpleType>
9416 </xs:attribute>
9417 <xs:anyAttribute namespace="##other" processContents="lax">
9418 <xs:annotation>
9419 <xs:documentation>
9420 Extensibility point in the WiX XML Schema. Schema extensions can register additional
9421 attributes at this point in the schema.
9422 </xs:documentation>
9423 </xs:annotation>
9424 </xs:anyAttribute>
9425 </xs:complexType>
9426 </xs:element>
9427 <xs:element name="FeatureGroup">
9428 <xs:annotation>
9429 <xs:documentation>
9430 Groups together multiple components, features, and merges to be used in other locations.
9431 </xs:documentation>
9432 <xs:appinfo>
9433 <xse:seeAlso ref="FeatureGroupRef" />
9434 </xs:appinfo>
9435 </xs:annotation>
9436 <xs:complexType>
9437 <xs:choice minOccurs="0" maxOccurs="unbounded">
9438 <xs:element ref="Component" />
9439 <xs:element ref="ComponentGroupRef" />
9440 <xs:element ref="ComponentRef" />
9441 <xs:element ref="Feature" />
9442 <xs:element ref="FeatureGroupRef" />
9443 <xs:element ref="FeatureRef" />
9444 <xs:element ref="File" />
9445 <xs:element ref="Files" />
9446 <xs:element ref="MergeRef" />
9447 <xs:any namespace="##other" processContents="lax">
9448 <xs:annotation>
9449 <xs:documentation>
9450 Extensibility point in the WiX XML Schema. Schema extensions can register additional
9451 elements at this point in the schema.
9452 </xs:documentation>
9453 </xs:annotation>
9454 </xs:any>
9455 </xs:choice>
9456 <xs:attribute name="Id" type="xs:string" use="required">
9457 <xs:annotation>
9458 <xs:documentation>Identifier for the FeatureGroup.</xs:documentation>
9459 </xs:annotation>
9460 </xs:attribute>
9461 <xs:anyAttribute namespace="##other" processContents="lax">
9462 <xs:annotation>
9463 <xs:documentation>
9464 Extensibility point in the WiX XML Schema. Schema extensions can register additional
9465 attributes at this point in the schema.
9466 </xs:documentation>
9467 </xs:annotation>
9468 </xs:anyAttribute>
9469 </xs:complexType>
9470 </xs:element>
9471 <xs:element name="FeatureGroupRef">
9472 <xs:annotation>
9473 <xs:documentation>Create a reference to a FeatureGroup in another Fragment.</xs:documentation>
9474 <xs:appinfo>
9475 <xse:seeAlso ref="FeatureGroup" />
9476 </xs:appinfo>
9477 </xs:annotation>
9478 <xs:complexType>
9479 <xs:attribute name="Id" type="xs:string" use="required">
9480 <xs:annotation>
9481 <xs:documentation>The identifier of the FeatureGroup to reference.</xs:documentation>
9482 </xs:annotation>
9483 </xs:attribute>
9484 <xs:attribute name="IgnoreParent" type="YesNoTypeUnion">
9485 <xs:annotation>
9486 <xs:documentation>
9487 Normally feature group references that end up nested under a parent element create a
9488 connection to that parent. This behavior is undesirable when trying to simply reference
9489 to a FeatureGroup in a different Fragment. Specify 'yes' to have this feature group
9490 reference not create a connection to its parent. The default is 'no'.
9491 </xs:documentation>
9492 </xs:annotation>
9493 </xs:attribute>
9494 <xs:attribute name="Primary" type="YesNoTypeUnion">
9495 <xs:annotation>
9496 <xs:documentation>
9497 Set this attribute to 'yes' in order to make the parent feature of this group
9498 the primary feature for any components and merges contained in the group.
9499 Features may belong to multiple features. By designating a feature as the
9500 primary feature of a component or merge, you ensure that whenever a component is
9501 selected for install-on-demand (IOD), the primary feature will be the one to install
9502 it. This attribute should only be set if a component actually nests under multiple
9503 features. If a component nests under only one feature, that feature is the primary
9504 feature for the component. You cannot set more than one feature as the primary
9505 feature of a given component.
9506 </xs:documentation>
9507 </xs:annotation>
9508 </xs:attribute>
9509 <xs:anyAttribute namespace="##other" processContents="lax">
9510 <xs:annotation>
9511 <xs:documentation>
9512 Extensibility point in the WiX XML Schema. Schema extensions can register additional
9513 attributes at this point in the schema.
9514 </xs:documentation>
9515 </xs:annotation>
9516 </xs:anyAttribute>
9517 </xs:complexType>
9518 </xs:element>
9519 <xs:element name="FeatureRef">
9520 <xs:annotation>
9521 <xs:documentation>Create a reference to a Feature element in another Fragment.</xs:documentation>
9522 <xs:appinfo>
9523 <xse:seeAlso ref="Feature" />
9524 </xs:appinfo>
9525 </xs:annotation>
9526 <xs:complexType>
9527 <xs:choice minOccurs="0" maxOccurs="unbounded">
9528 <xs:element ref="Component" />
9529 <xs:element ref="ComponentGroupRef" />
9530 <xs:element ref="ComponentRef" />
9531 <xs:element ref="Feature" />
9532 <xs:element ref="FeatureRef" />
9533 <xs:element ref="FeatureGroup" />
9534 <xs:element ref="FeatureGroupRef" />
9535 <xs:element ref="File" />
9536 <xs:element ref="Files" />
9537 <xs:element ref="MergeRef" />
9538 <xs:any namespace="##other" processContents="lax">
9539 <xs:annotation>
9540 <xs:documentation>
9541 Extensibility point in the WiX XML Schema. Schema extensions can register additional
9542 elements at this point in the schema.
9543 </xs:documentation>
9544 </xs:annotation>
9545 </xs:any>
9546 </xs:choice>
9547 <xs:attribute name="Id" type="xs:string" use="required">
9548 <xs:annotation>
9549 <xs:documentation>The identifier of the Feature element to reference.</xs:documentation>
9550 </xs:annotation>
9551 </xs:attribute>
9552 <xs:attribute name="IgnoreParent" type="YesNoTypeUnion">
9553 <xs:annotation>
9554 <xs:documentation>
9555 Normally feature references that are nested under a parent element create a connection to that
9556 parent. This behavior is undesirable when trying to simply reference a Feature in a different
9557 Fragment. Specify 'yes' to have this feature reference not create a connection to its parent.
9558 The default is 'no'.
9559 </xs:documentation>
9560 </xs:annotation>
9561 </xs:attribute>
9562 <xs:anyAttribute namespace="##other" processContents="lax">
9563 <xs:annotation>
9564 <xs:documentation>
9565 Extensibility point in the WiX XML Schema. Schema extensions can register additional
9566 attributes at this point in the schema.
9567 </xs:documentation>
9568 </xs:annotation>
9569 </xs:anyAttribute>
9570 </xs:complexType>
9571 </xs:element>
9572 <xs:element name="Media">
9573 <xs:annotation>
9574 <xs:documentation>Media element describes a disk that makes up the source media for the installation.</xs:documentation>
9575 <xs:appinfo>
9576 <xse:msiRef table="Media" href="http://msdn.microsoft.com/library/aa369801.aspx" />
9577 </xs:appinfo>
9578 </xs:annotation>
9579 <xs:complexType>
9580 <xs:sequence>
9581 <xs:choice minOccurs="0" maxOccurs="unbounded">
9582 <xs:element ref="DigitalSignature" minOccurs="0" />
9583 <xs:element ref="PatchBaseline" minOccurs="0" maxOccurs="unbounded" />
9584 <xs:element ref="SymbolPath" />
9585 </xs:choice>
9586 </xs:sequence>
9587 <xs:attribute name="Id" type="DiskIdType" use="required">
9588 <xs:annotation>
9589 <xs:documentation>Disk identifier for Media table. This number must be equal to or greater than 1.</xs:documentation>
9590 </xs:annotation>
9591 </xs:attribute>
9592 <xs:attribute name="Cabinet" type="xs:string">
9593 <xs:annotation>
9594 <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>
9595 </xs:annotation>
9596 </xs:attribute>
9597 <xs:attribute name="CompressionLevel" type="CompressionLevelTypeUnion">
9598 <xs:annotation>
9599 <xs:documentation>
9600 Indicates the compression level for the Media's cabinet. This attribute can
9601 only be used in conjunction with the Cabinet attribute. The default is 'medium'.
9602 </xs:documentation>
9603 </xs:annotation>
9604 </xs:attribute>
9605 <xs:attribute name="DiskPrompt" type="xs:string">
9606 <xs:annotation>
9607 <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>
9608 </xs:annotation>
9609 </xs:attribute>
9610 <xs:attribute name="EmbedCab" type="YesNoTypeUnion">
9611 <xs:annotation>
9612 <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>
9613 </xs:annotation>
9614 </xs:attribute>
9615 <xs:attribute name="Layout" type="xs:string">
9616 <xs:annotation>
9617 <xs:documentation>
9618 This attribute specifies the root directory for the uncompressed files that
9619 are a part of this Media element. By default, the src will be the output
9620 directory for the final image. The default value ensures the binder generates
9621 an installable image. If a relative path is specified in the src attribute,
9622 the value will be appended to the image's output directory. If an absolute
9623 path is provided, that path will be used without modification. The latter two
9624 options are provided to ease the layout of an image onto multiple medias (CDs/DVDs).
9625 </xs:documentation>
9626 </xs:annotation>
9627 </xs:attribute>
9628 <xs:attribute name="VolumeLabel" type="xs:string">
9629 <xs:annotation>
9630 <xs:documentation>
9631 The label attributed to the volume. This is the volume label returned
9632 by the GetVolumeInformation function. If the SourceDir property refers
9633 to a removable (floppy or CD-ROM) volume, then this volume label is
9634 used to verify that the proper disk is in the drive before attempting
9635 to install files. The entry in this column must match the volume label
9636 of the physical media.
9637 </xs:documentation>
9638 </xs:annotation>
9639 </xs:attribute>
9640 <xs:attribute name="Source" type="xs:string">
9641 <xs:annotation>
9642 <xs:documentation>
9643 Optional property that identifies the source of the embedded cabinet.
9644 If a cabinet is specified for a patch, this property should be defined
9645 and unique to each patch so that the embedded cabinet containing patched
9646 and new files can be located in the patch package. If the cabinet is not
9647 embedded - this is not typical - the cabinet can be found in the directory
9648 referenced in this column. If empty, the external cabinet must be located
9649 in the SourceDir directory.
9650 </xs:documentation>
9651 </xs:annotation>
9652 </xs:attribute>
9653 </xs:complexType>
9654 </xs:element>
9655 <xs:element name="MediaTemplate">
9656 <xs:annotation>
9657 <xs:documentation>
9658 MediaTeplate element describes information to automatically assign files to cabinets.
9659 A maximumum number of cabinets created is 999.
9660 </xs:documentation>
9661 </xs:annotation>
9662 <xs:complexType>
9663 <xs:attribute name="CabinetTemplate" type="xs:string">
9664 <xs:annotation>
9665 <xs:documentation>
9666 Templated name of the cabinet if some or all of the files stored on the media are in
9667 a cabinet file. This name must begin with either a letter or an underscore, contain
9668 maximum of five characters and {0} in the cabinet name part and must end three character extension.
9669 The default is cab{0}.cab.
9670 </xs:documentation>
9671 </xs:annotation>
9672 </xs:attribute>
9673 <xs:attribute name="CompressionLevel" type="CompressionLevelTypeUnion">
9674 <xs:annotation>
9675 <xs:documentation>
9676 Indicates the compression level for the Media's cabinet. This attribute can
9677 only be used in conjunction with the Cabinet attribute. The default is 'medium'.
9678 </xs:documentation>
9679 </xs:annotation>
9680 </xs:attribute>
9681 <xs:attribute name="DiskPrompt" type="xs:string">
9682 <xs:annotation>
9683 <xs:documentation>
9684 The disk name, which is usually the visible text printed on the disk. This localizable text is used
9685 to prompt the user when this disk needs to be inserted. This value will be used in the "[1]" of the
9686 DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property.
9687 </xs:documentation>
9688 </xs:annotation>
9689 </xs:attribute>
9690 <xs:attribute name="EmbedCab" type="YesNoTypeUnion">
9691 <xs:annotation>
9692 <xs:documentation>Instructs the binder to embed the cabinets in the product if 'yes'.</xs:documentation>
9693 </xs:annotation>
9694 </xs:attribute>
9695 <xs:attribute name="VolumeLabel" type="xs:string">
9696 <xs:annotation>
9697 <xs:documentation>
9698 The label attributed to the volume. This is the volume label returned
9699 by the GetVolumeInformation function. If the SourceDir property refers
9700 to a removable (floppy or CD-ROM) volume, then this volume label is
9701 used to verify that the proper disk is in the drive before attempting
9702 to install files. The entry in this column must match the volume label
9703 of the physical media.
9704 </xs:documentation>
9705 </xs:annotation>
9706 </xs:attribute>
9707 <xs:attribute name="MaximumUncompressedMediaSize" type="xs:int">
9708 <xs:annotation>
9709 <xs:documentation>
9710 Size of uncompressed files in each cabinet, in megabytes. WIX_MUMS environment variable
9711 can be used to override this value. Default value is 200 MB.
9712 </xs:documentation>
9713 </xs:annotation>
9714 </xs:attribute>
9715 <xs:attribute name="MaximumCabinetSizeForLargeFileSplitting" type="xs:int">
9716 <xs:annotation>
9717 <xs:documentation>
9718 Maximum size of cabinet files in megabytes for large files. This attribute is used for packaging
9719 files that are larger than MaximumUncompressedMediaSize into smaller cabinets. If cabinet size
9720 exceed this value, then setting this attribute will cause the file to be split into multiple
9721 cabinets of this maximum size. For simply controlling cabinet size without file splitting use
9722 MaximumUncompressedMediaSize attribute. Setting this attribute will disable smart cabbing feature
9723 for this Fragment / Package. Setting WIX_MCSLFS environment variable can be used to override this
9724 value. Minimum allowed value of this attribute is 20 MB. Maximum allowed value and the Default
9725 value of this attribute is 2048 MB (2 GB).
9726 </xs:documentation>
9727 </xs:annotation>
9728 </xs:attribute>
9729 </xs:complexType>
9730 </xs:element>
9731 <xs:element name="CustomAction">
9732 <xs:annotation>
9733 <xs:appinfo>
9734 <xse:seeAlso ref="Custom" />
9735 <xse:seeAlso ref="CustomActionRef" />
9736 <xse:msiRef table="CustomAction" href="https://learn.microsoft.com/en-us/windows/win32/msi/customaction-table" />
9737 </xs:appinfo>
9738 <xs:documentation>
9739 Specifies a custom action to be added to the MSI CustomAction table. Various combinations of the attributes for this element
9740 correspond to different custom action types. For more information about custom actions see the
9741 <html:a href="https://learn.microsoft.com/en-us/windows/win32/msi/summary-list-of-all-custom-action-types">
9742 Custom Action Types</html:a> topic on MSDN.
9743 </xs:documentation>
9744 </xs:annotation>
9745 <xs:complexType>
9746 <xs:attribute name="Id" type="xs:string" use="required">
9747 <xs:annotation>
9748 <xs:documentation>
9749 The identifier of the custom action.
9750 </xs:documentation>
9751 </xs:annotation>
9752 </xs:attribute>
9753 <!-- CustomAction Source specification, sets source Attribute bits -->
9754 <xs:attribute name="BinaryRef" type="xs:string">
9755 <xs:annotation>
9756 <xs:documentation>
9757 This attribute is a reference to a Binary element with matching Id attribute. That binary stream contains
9758 the custom action for use during install. The custom action will not be installed into a target directory. This attribute is
9759 typically used with the DllEntry attribute to specify the custom action DLL to use for a type 1 custom action, with the ExeCommand
9760 attribute to specify a type 17 custom action that runs an embedded executable, or with the VBScriptCall or JScriptCall attributes
9761 to specify a type 5 or 6 custom action.
9762 </xs:documentation>
9763 </xs:annotation>
9764 </xs:attribute>
9765 <xs:attribute name="FileRef" type="xs:string">
9766 <xs:annotation>
9767 <xs:documentation>
9768 This attribute specifies a reference to a File element with matching Id attribute that
9769 will execute the custom action code in the file after the file is installed. This
9770 attribute is typically used with the ExeCommand attribute to specify a type 18 custom action
9771 that runs an installed executable, with the DllEntry attribute to specify an installed custom
9772 action DLL to use for a type 17 custom action, or with the VBScriptCall or JScriptCall
9773 attributes to specify a type 21 or 22 custom action.
9774 </xs:documentation>
9775 </xs:annotation>
9776 </xs:attribute>
9777 <xs:attribute name="Property" type="xs:string">
9778 <xs:annotation>
9779 <xs:documentation>
9780 This attribute specifies a reference to a Property element with matching Id attribute that specifies the Property
9781 to be used or updated on execution of this custom action. This attribute is
9782 typically used with the Value attribute to create a type 51 custom action that parses
9783 the text in Value and places it into the specified Property. This attribute is also used with
9784 the ExeCommand attribute to create a type 50 custom action that uses the value of the
9785 given property to specify the path to the executable. Type 51 custom actions are often useful to
9786 pass values to a deferred custom action.
9787 See <html:a href="https://learn.microsoft.com/en-us/windows/win32/msi/obtaining-context-information-for-deferred-execution-custom-actions">
9788 Obtaining Context Information for Deferred Execution Custom Actions</html:a> for more information.
9789 </xs:documentation>
9790 </xs:annotation>
9791 </xs:attribute>
9792 <xs:attribute name="Directory" type="xs:string">
9793 <xs:annotation>
9794 <xs:documentation>
9795 This attribute specifies a reference to a Directory element with matching Id attribute containing a directory path.
9796 This attribute is typically used with the ExeCommand attribute to specify the source executable for a type 34
9797 custom action, or with the Value attribute to specify a formatted string to place in the specified Directory
9798 table entry in a type 35 custom action.
9799 </xs:documentation>
9800 </xs:annotation>
9801 </xs:attribute>
9802 <xs:attribute name="Subdirectory" type="xs:string">
9803 <xs:annotation>
9804 <xs:documentation>
9805 This attribute defines one or more directories below the directory referenced by the Directory attribute.
9806 This attribute is optional but can only be specified when the Directory attribute is also specified.
9807 </xs:documentation>
9808 </xs:annotation>
9809 </xs:attribute>
9810 <!-- CustomAction Target specification, sets target Attribute bits -->
9811 <xs:attribute name="DllEntry" type="xs:string">
9812 <xs:annotation>
9813 <xs:documentation>
9814 This attribute specifies the name of a function in a custom action to execute.
9815 This attribute is used with the BinaryRef attribute to create a type 1 custom
9816 action, or with the FileRef attribute to create a type 17 custom action.
9817 </xs:documentation>
9818 </xs:annotation>
9819 </xs:attribute>
9820 <xs:attribute name="ExeCommand" type="xs:string">
9821 <xs:annotation>
9822 <xs:documentation>
9823 This attribute specifies the command line parameters to supply to an externally
9824 run executable. This attribute is typically used with the BinaryRef attribute for a type 2 custom action,
9825 the FileRef attribute for a type 18 custom action, the Property attribute for a type 50 custom action,
9826 or the Directory attribute for a type 34 custom action that specify the executable to run.
9827 </xs:documentation>
9828 </xs:annotation>
9829 </xs:attribute>
9830 <xs:attribute name="JScriptCall" type="xs:string">
9831 <xs:annotation>
9832 <xs:documentation>
9833 This attribute specifies the name of the JScript function to execute in a script. The script must be
9834 provided in a Binary element identified by the BinaryRef attribute described above. In other words, this
9835 attribute must be specified in conjunction with the BinaryRef attribute.
9836 </xs:documentation>
9837 </xs:annotation>
9838 </xs:attribute>
9839 <xs:attribute name="VBScriptCall" type="xs:string">
9840 <xs:annotation>
9841 <xs:documentation>
9842 This attribute specifies the name of the VBScript Subroutine to execute in a script. The script must be
9843 provided in a Binary element identified by the BinaryRef attribute described above. In other words, this
9844 attribute must be specified in conjunction with the BinaryRef attribute.
9845 </xs:documentation>
9846 </xs:annotation>
9847 </xs:attribute>
9848 <xs:attribute name="Script">
9849 <xs:annotation>
9850 <xs:documentation>
9851 Creates a type 37 or 38 custom action. Specify a path to the script to be embedded in the package in the
9852 `ScriptSourceFile` attribute.
9853 </xs:documentation>
9854 </xs:annotation>
9855 <xs:simpleType>
9856 <xs:restriction base="xs:NMTOKEN">
9857 <xs:enumeration value="jscript" />
9858 <xs:enumeration value="vbscript" />
9859 </xs:restriction>
9860 </xs:simpleType>
9861 </xs:attribute>
9862 <xs:attribute name="ScriptSourceFile" type="xs:string">
9863 <xs:annotation>
9864 <xs:documentation>
9865 Path to the external file containing the script code. Can be used only with the Script attribute.
9866 </xs:documentation>
9867 </xs:annotation>
9868 </xs:attribute>
9869 <xs:attribute name="SuppressModularization" type="YesNoTypeUnion">
9870 <xs:annotation>
9871 <xs:documentation>
9872 Use to suppress modularization of this custom action name in merge modules.
9873 This should only be necessary for table-driven custom actions because the
9874 table name which they interact with cannot be modularized, so there can only
9875 be one instance of the table.
9876 </xs:documentation>
9877 </xs:annotation>
9878 </xs:attribute>
9879 <xs:attribute name="Value" type="xs:string">
9880 <xs:annotation>
9881 <xs:documentation>
9882 This attribute specifies a string value to use in the custom action. This attribute
9883 must be used with the Property attribute to set the property as part of a
9884 type 51 custom action or with the Directory attribute to set a directory path in that
9885 table in a type 35 custom action. The value can be a literal value or derived from a
9886 Property element using the <html:a href="https://learn.microsoft.com/en-us/windows/win32/msi/formatted">Formatted</html:a>
9887 syntax.
9888 </xs:documentation>
9889 </xs:annotation>
9890 </xs:attribute>
9891 <xs:attribute name="Error" type="xs:string">
9892 <xs:annotation>
9893 <xs:documentation>
9894 This attribute specifies an index in the MSI Error table to use as an error message for a
9895 type 19 custom action that displays the error message and aborts a product's installation.
9896 </xs:documentation>
9897 </xs:annotation>
9898 </xs:attribute>
9899 <!-- Other CustomAction type attributes -->
9900 <xs:attribute name="Return">
9901 <xs:annotation>
9902 <xs:documentation>
9903 Set this attribute to set the return behavior of the custom action.
9904 </xs:documentation>
9905 </xs:annotation>
9906 <xs:simpleType>
9907 <xs:restriction base="xs:NMTOKEN">
9908 <xs:enumeration value="asyncNoWait">
9909 <xs:annotation>
9910 <xs:documentation>
9911 Indicates that the custom action will run asyncronously and execution may continue after the installer terminates.
9912 </xs:documentation>
9913 </xs:annotation>
9914 </xs:enumeration>
9915 <xs:enumeration value="asyncWait">
9916 <xs:annotation>
9917 <xs:documentation>
9918 Indicates that the custom action will run asynchronously but the installer will wait for the return code at sequence end.
9919 </xs:documentation>
9920 </xs:annotation>
9921 </xs:enumeration>
9922 <xs:enumeration value="check">
9923 <xs:annotation>
9924 <xs:documentation>
9925 Indicates that the custom action will run synchronously and the return code will be checked for success. This is the default.
9926 </xs:documentation>
9927 </xs:annotation>
9928 </xs:enumeration>
9929 <xs:enumeration value="ignore">
9930 <xs:annotation>
9931 <xs:documentation>
9932 Indicates that the custom action will run synchronously and the return code will not be checked.
9933 </xs:documentation>
9934 </xs:annotation>
9935 </xs:enumeration>
9936 </xs:restriction>
9937 </xs:simpleType>
9938 </xs:attribute>
9939 <xs:attribute name="Execute">
9940 <xs:annotation>
9941 <xs:documentation>
9942 This attribute indicates the scheduling of the custom action.
9943 </xs:documentation>
9944 </xs:annotation>
9945 <xs:simpleType>
9946 <xs:restriction base="xs:NMTOKEN">
9947 <xs:enumeration value="commit">
9948 <xs:annotation>
9949 <xs:documentation>
9950 Indicates that the custom action will run after successful completion of the installation script (at the end of the installation).
9951 </xs:documentation>
9952 </xs:annotation>
9953 </xs:enumeration>
9954 <xs:enumeration value="deferred">
9955 <xs:annotation>
9956 <xs:documentation>
9957 Indicates that the custom action runs in-script (possibly with elevated privileges).
9958 </xs:documentation>
9959 </xs:annotation>
9960 </xs:enumeration>
9961 <xs:enumeration value="firstSequence">
9962 <xs:annotation>
9963 <xs:documentation>
9964 Indicates that the custom action will only run in the first sequence that runs it.
9965 </xs:documentation>
9966 </xs:annotation>
9967 </xs:enumeration>
9968 <xs:enumeration value="immediate">
9969 <xs:annotation>
9970 <xs:documentation>
9971 Indicates that the custom action will run during normal processing time with user privileges. This is the default.
9972 </xs:documentation>
9973 </xs:annotation>
9974 </xs:enumeration>
9975 <xs:enumeration value="oncePerProcess">
9976 <xs:annotation>
9977 <xs:documentation>
9978 Indicates that the custom action will only run in the first sequence that runs it in the same process.
9979 </xs:documentation>
9980 </xs:annotation>
9981 </xs:enumeration>
9982 <xs:enumeration value="rollback">
9983 <xs:annotation>
9984 <xs:documentation>
9985 Indicates that a custom action will run in the rollback sequence when a failure
9986 occurs during installation, usually to undo changes made by a deferred custom action.
9987 </xs:documentation>
9988 </xs:annotation>
9989 </xs:enumeration>
9990 <xs:enumeration value="secondSequence">
9991 <xs:annotation>
9992 <xs:documentation>
9993 Indicates that a custom action should be run a second time if it was previously run in an earlier sequence.
9994 </xs:documentation>
9995 </xs:annotation>
9996 </xs:enumeration>
9997 </xs:restriction>
9998 </xs:simpleType>
9999 </xs:attribute>
10000 <xs:attribute name="Impersonate" type="YesNoTypeUnion">
10001 <xs:annotation>
10002 <xs:documentation>
10003 This attribute specifies whether the Windows Installer, which executes as LocalSystem,
10004 should impersonate the user context of the installing user when executing this custom action.
10005 Typically the value should be 'yes', except when the custom action needs elevated privileges
10006 to apply changes to the machine.
10007 </xs:documentation>
10008 </xs:annotation>
10009 </xs:attribute>
10010 <xs:attribute name="PatchUninstall" type="YesNoTypeUnion">
10011 <xs:annotation>
10012 <xs:documentation>
10013 This attribute specifies that the Windows Installer, execute the custom action only when
10014 a patch is being uninstalled. These custom actions should also be conditioned using the
10015 MSIPATCHREMOVE property to ensure proper down level (less than Windows Installer 4.5)
10016 behavior.
10017 </xs:documentation>
10018 </xs:annotation>
10019 </xs:attribute>
10020 <xs:attribute name="Bitness" type="BitnessTypeUnion">
10021 <xs:annotation>
10022 <xs:documentation>
10023 Valid only when used with the Script, VBScriptCall, and JScriptCall attributes.
10024 Overrides the default scripting host for script custom actions. The value `always64` will force the
10025 script to run in the 64-bit scripting host. Simliarly, the value `always32` will force the script
10026 to run in the 64-bit scripting host.
10027 The default value is `default` where the script will be run in the scripting host that matches the
10028 same bitness as the package.
10029 </xs:documentation>
10030 </xs:annotation>
10031 </xs:attribute>
10032 <xs:attribute name="TerminalServerAware" type="YesNoTypeUnion">
10033 <xs:annotation>
10034 <xs:documentation>
10035 This attribute specifies controls whether the custom action will impersonate the
10036 installing user during per-machine installs on Terminal Server machines.
10037 Deferred execution custom actions that do not specify this attribute, or explicitly set it 'no',
10038 will run with no user impersonation on Terminal Server machines during
10039 per-machine installations. This attribute is only applicable when installing on the
10040 Windows Server 2003 family.
10041 </xs:documentation>
10042 </xs:annotation>
10043 </xs:attribute>
10044 <xs:attribute name="HideTarget" type="YesNoTypeUnion">
10045 <xs:annotation>
10046 <xs:documentation>Ensures the installer does not log the CustomActionData for the deferred custom action.</xs:documentation>
10047 </xs:annotation>
10048 </xs:attribute>
10049 <xs:anyAttribute namespace="##other" processContents="lax">
10050 <xs:annotation>
10051 <xs:documentation>
10052 Extensibility point in the WiX XML Schema. Schema extensions can register additional
10053 attributes at this point in the schema.
10054 </xs:documentation>
10055 </xs:annotation>
10056 </xs:anyAttribute>
10057 </xs:complexType>
10058 </xs:element>
10059 <xs:element name="CustomActionRef">
10060 <xs:annotation>
10061 <xs:appinfo>
10062 <xse:seeAlso ref="CustomAction" />
10063 </xs:appinfo>
10064 <xs:documentation>
10065 This will cause the entire contents of the Fragment containing the referenced CustomAction to be
10066 included in the installer database.
10067 </xs:documentation>
10068 </xs:annotation>
10069 <xs:complexType>
10070 <xs:attribute name="Id" type="xs:string" use="required">
10071 <xs:annotation>
10072 <xs:documentation>The identifier of the CustomAction to reference.</xs:documentation>
10073 </xs:annotation>
10074 </xs:attribute>
10075 <xs:anyAttribute namespace="##other" processContents="lax">
10076 <xs:annotation>
10077 <xs:documentation>
10078 Extensibility point in the WiX XML Schema. Schema extensions can register additional
10079 attributes at this point in the schema.
10080 </xs:documentation>
10081 </xs:annotation>
10082 </xs:anyAttribute>
10083 </xs:complexType>
10084 </xs:element>
10085 <xs:element name="SetDirectory">
10086 <xs:annotation>
10087 <xs:appinfo>
10088 <xse:seeAlso ref="Custom" />
10089 <xse:seeAlso ref="CustomActionRef" />
10090 <xse:seeAlso ref="InstallUISequence" />
10091 <xse:seeAlso ref="InstallExecuteSequence" />
10092 <xse:msiRef table="CustomAction" href="https://learn.microsoft.com/en-us/windows/win32/msi/customaction-table" />
10093 </xs:appinfo>
10094 <xs:documentation>
10095 Sets a Directory to a particular value. This is accomplished by creating a Type 51 custom action that is appropriately scheduled in
10096 the InstallUISequence and InstallExecuteSequence.
10097 </xs:documentation>
10098 </xs:annotation>
10099 <xs:complexType>
10100 <xs:attribute name="Action" type="xs:string">
10101 <xs:annotation>
10102 <xs:documentation>
10103 By default the action is "Set" + Id attribute's value. This optional attribute can override the action name in the case
10104 where multiple SetDirectory elements target the same Id (probably with mutually exclusive conditions).
10105 </xs:documentation>
10106 </xs:annotation>
10107 </xs:attribute>
10108 <xs:attribute name="Condition" type="xs:string">
10109 <xs:annotation>
10110 <xs:documentation>
10111 The condition that determines whether the Directory is set. If the condition evaluates to false, the SetDirectory is skipped.
10112 </xs:documentation>
10113 </xs:annotation>
10114 </xs:attribute>
10115 <xs:attribute name="Id" type="xs:string">
10116 <xs:annotation>
10117 <xs:documentation>
10118 This attribute specifies a reference to a Directory element with matching Id attribute. The path of the Directory will be set to
10119 the Value attribute.
10120 </xs:documentation>
10121 </xs:annotation>
10122 </xs:attribute>
10123 <xs:attribute name="Sequence" type="SequenceType">
10124 <xs:annotation>
10125 <xs:documentation>
10126 Controls which sequences the Directory assignment is sequenced in.
10127 For 'execute', the assignment is scheduled in the InstallExecuteSequence.
10128 For 'ui', the assignment is scheduled in the InstallUISequence.
10129 For 'first', the assignment is scheduled in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped at install time.
10130 For 'both', the assignment is scheduled in both the InstallUISequence and the InstallExecuteSequence.
10131 The default is 'both'.
10132 </xs:documentation>
10133 </xs:annotation>
10134 </xs:attribute>
10135 <xs:attribute name="Value" type="xs:string">
10136 <xs:annotation>
10137 <xs:documentation>
10138 This attribute specifies a string value to assign to the Directory. The value can be a literal value or derived from a
10139 Property element using the <html:a href="https://learn.microsoft.com/en-us/windows/win32/msi/formatted">Formatted</html:a>
10140 syntax.
10141 </xs:documentation>
10142 </xs:annotation>
10143 </xs:attribute>
10144 <xs:anyAttribute namespace="##other" processContents="lax">
10145 <xs:annotation>
10146 <xs:documentation>
10147 Extensibility point in the WiX XML Schema. Schema extensions can register additional
10148 attributes at this point in the schema.
10149 </xs:documentation>
10150 </xs:annotation>
10151 </xs:anyAttribute>
10152 </xs:complexType>
10153 </xs:element>
10154 <xs:element name="SetProperty">
10155 <xs:annotation>
10156 <xs:appinfo>
10157 <xse:seeAlso ref="Custom" />
10158 <xse:seeAlso ref="CustomActionRef" />
10159 <xse:seeAlso ref="InstallUISequence" />
10160 <xse:seeAlso ref="InstallExecuteSequence" />
10161 <xse:msiRef table="CustomAction" href="https://learn.microsoft.com/en-us/windows/win32/msi/customaction-table" />
10162 </xs:appinfo>
10163 <xs:documentation>
10164 Sets a Property to a particular value. This is accomplished by creating a Type 51 custom action that is appropriately scheduled in
10165 the InstallUISequence and InstallExecuteSequence.
10166 </xs:documentation>
10167 </xs:annotation>
10168 <xs:complexType>
10169 <xs:attribute name="Action" type="xs:string">
10170 <xs:annotation>
10171 <xs:documentation>
10172 By default the action is "Set" + Id attribute's value. This optional attribute can override the action name in the case
10173 where multiple SetProperty elements target the same Id (probably with mutually exclusive conditions).
10174 </xs:documentation>
10175 </xs:annotation>
10176 </xs:attribute>
10177 <xs:attribute name="After" type="xs:string">
10178 <xs:annotation>
10179 <xs:documentation>
10180 The name of the standard or custom action after which this action should be performed. Mutually exclusive with
10181 the Before attribute. A Before or After attribute is required when setting a Property.
10182 </xs:documentation>
10183 </xs:annotation>
10184 </xs:attribute>
10185 <xs:attribute name="Before" type="xs:string">
10186 <xs:annotation>
10187 <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>
10188 </xs:annotation>
10189 </xs:attribute>
10190 <xs:attribute name="Condition" type="xs:string">
10191 <xs:annotation>
10192 <xs:documentation>
10193 The condition that determines whether the Property is set. If the condition evaluates to false, the Set is skipped.
10194 </xs:documentation>
10195 </xs:annotation>
10196 </xs:attribute>
10197 <xs:attribute name="Id" type="xs:string">
10198 <xs:annotation>
10199 <xs:documentation>
10200 This attribute specifies the Property to set to the Value.
10201 </xs:documentation>
10202 </xs:annotation>
10203 </xs:attribute>
10204 <xs:attribute name="Sequence" type="SequenceType">
10205 <xs:annotation>
10206 <xs:documentation>
10207 Controls which sequences the Property assignment is sequenced in.
10208 For 'execute', the assignment is scheduled in the InstallExecuteSequence.
10209 For 'ui', the assignment is scheduled in the InstallUISequence.
10210 For 'first', the assignment is scheduled in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped at install time.
10211 For 'both', the assignment is scheduled in both the InstallUISequence and the InstallExecuteSequence.
10212 The default is 'both'.
10213 </xs:documentation>
10214 </xs:annotation>
10215 </xs:attribute>
10216 <xs:attribute name="Value" type="xs:string">
10217 <xs:annotation>
10218 <xs:documentation>
10219 This attribute specifies a string value to assign to the Property. The value can be a literal value or derived from a
10220 Property element using the <html:a href="https://learn.microsoft.com/en-us/windows/win32/msi/formatted">Formatted</html:a>
10221 syntax.
10222 </xs:documentation>
10223 </xs:annotation>
10224 </xs:attribute>
10225 <xs:anyAttribute namespace="##other" processContents="lax">
10226 <xs:annotation>
10227 <xs:documentation>
10228 Extensibility point in the WiX XML Schema. Schema extensions can register additional
10229 attributes at this point in the schema.
10230 </xs:documentation>
10231 </xs:annotation>
10232 </xs:anyAttribute>
10233 </xs:complexType>
10234 </xs:element>
10235 <xs:element name="PatchFamilyRef">
10236 <xs:annotation>
10237 <xs:appinfo>
10238 <xse:seeAlso ref="PatchFamily" />
10239 </xs:appinfo>
10240 <xs:documentation>
10241 This will cause the entire contents of the Fragment containing the referenced PatchFamily to be
10242 used in the process of creating a patch.
10243 </xs:documentation>
10244 </xs:annotation>
10245 <xs:complexType>
10246 <xs:attribute name="Id" type="xs:string" use="required">
10247 <xs:annotation>
10248 <xs:documentation>The identifier of the PatchFamily to reference.</xs:documentation>
10249 </xs:annotation>
10250 </xs:attribute>
10251 <xs:attribute name="ProductCode" type="Guid">
10252 <xs:annotation>
10253 <xs:documentation>Specifies the ProductCode of the product that this family applies to.</xs:documentation>
10254 </xs:annotation>
10255 </xs:attribute>
10256 <xs:anyAttribute namespace="##other" processContents="lax">
10257 <xs:annotation>
10258 <xs:documentation>
10259 Extensibility point in the WiX XML Schema. Schema extensions can register additional
10260 attributes at this point in the schema.
10261 </xs:documentation>
10262 </xs:annotation>
10263 </xs:anyAttribute>
10264 </xs:complexType>
10265 </xs:element>
10266 <!-- - - - - - - - - - - Sequence Table Definitions - - - - - - - - - - - - - - -->
10267 <xs:element name="ValidateProductID" type="ActionSequenceType">
10268 <xs:annotation>
10269 <xs:appinfo>
10270 <xse:msiRef action="ValidateProductID" href="http://msdn.microsoft.com/library/aa372475.aspx" />
10271 </xs:appinfo>
10272 <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>
10273 </xs:annotation>
10274 </xs:element>
10275 <xs:element name="CostInitialize" type="ActionSequenceType">
10276 <xs:annotation>
10277 <xs:appinfo>
10278 <xse:seeAlso ref="FileCost" />
10279 <xse:seeAlso ref="CostFinalize" />
10280 <xse:msiRef action="CostInitialize" href="http://msdn.microsoft.com/library/aa368048.aspx" />
10281 </xs:appinfo>
10282 <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>
10283 </xs:annotation>
10284 </xs:element>
10285 <xs:element name="FileCost" type="ActionSequenceType">
10286 <xs:annotation>
10287 <xs:appinfo>
10288 <xse:seeAlso ref="CostInitialize" />
10289 <xse:seeAlso ref="CostFinalize" />
10290 <xse:msiRef action="FileCost" href="http://msdn.microsoft.com/library/aa368589.aspx" />
10291 </xs:appinfo>
10292 <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>
10293 </xs:annotation>
10294 </xs:element>
10295 <xs:element name="IsolateComponents" type="ActionSequenceType">
10296 <xs:annotation>
10297 <xs:appinfo>
10298 <xse:seeAlso ref="IsolateComponent" />
10299 <xse:msiRef action="IsolateComponents" href="http://msdn.microsoft.com/library/aa369561.aspx" />
10300 </xs:appinfo>
10301 <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>
10302 </xs:annotation>
10303 </xs:element>
10304 <xs:element name="CostFinalize" type="ActionSequenceType">
10305 <xs:annotation>
10306 <xs:appinfo>
10307 <xse:seeAlso ref="CostInitialize" />
10308 <xse:seeAlso ref="FileCost" />
10309 <xse:msiRef action="CostFinalize" href="http://msdn.microsoft.com/library/aa368048.aspx" />
10310 </xs:appinfo>
10311 <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>
10312 </xs:annotation>
10313 </xs:element>
10314 <xs:element name="SetODBCFolders" type="ActionSequenceType">
10315 <xs:annotation>
10316 <xs:appinfo>
10317 <xse:msiRef action="SetODBCFolders" href="http://msdn.microsoft.com/library/aa371691.aspx" />
10318 </xs:appinfo>
10319 <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>
10320 </xs:annotation>
10321 </xs:element>
10322 <xs:element name="MigrateFeatureStates" type="ActionSequenceType">
10323 <xs:annotation>
10324 <xs:appinfo>
10325 <xse:msiRef action="MigrateFeatureStates" href="http://msdn.microsoft.com/library/aa370034.aspx" />
10326 </xs:appinfo>
10327 <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>
10328 </xs:annotation>
10329 </xs:element>
10330 <xs:element name="ExecuteAction" type="ActionSequenceType">
10331 <xs:annotation>
10332 <xs:appinfo>
10333 <xse:msiRef action="ExecuteAction" href="http://msdn.microsoft.com/library/aa368565.aspx" />
10334 </xs:appinfo>
10335 <xs:documentation>Initiates the execution sequence. The condition for this action may be specified in the element's inner text.</xs:documentation>
10336 </xs:annotation>
10337 </xs:element>
10338 <xs:element name="InstallValidate" type="ActionSequenceType">
10339 <xs:annotation>
10340 <xs:appinfo>
10341 <xse:msiRef action="InstallValidate" href="http://msdn.microsoft.com/library/aa369546.aspx" />
10342 </xs:appinfo>
10343 <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>
10344 </xs:annotation>
10345 </xs:element>
10346 <xs:element name="InstallInitialize" type="ActionSequenceType">
10347 <xs:annotation>
10348 <xs:appinfo>
10349 <xse:seeAlso ref="InstallFinalize" />
10350 <xse:msiRef action="InstallInitialize" href="http://msdn.microsoft.com/library/aa369535.aspx" />
10351 </xs:appinfo>
10352 <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>
10353 </xs:annotation>
10354 </xs:element>
10355 <xs:element name="AllocateRegistrySpace" type="ActionSequenceType">
10356 <xs:annotation>
10357 <xs:appinfo>
10358 <xse:msiRef action="AllocateRegistrySpace" href="http://msdn.microsoft.com/library/aa367554.aspx" />
10359 </xs:appinfo>
10360 <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>
10361 </xs:annotation>
10362 </xs:element>
10363 <xs:element name="ProcessComponents" type="ActionSequenceType">
10364 <xs:annotation>
10365 <xs:appinfo>
10366 <xse:msiRef action="ProcessComponents" href="http://msdn.microsoft.com/library/aa370853.aspx" />
10367 </xs:appinfo>
10368 <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>
10369 </xs:annotation>
10370 </xs:element>
10371 <xs:element name="UnpublishComponents" type="ActionSequenceType">
10372 <xs:annotation>
10373 <xs:appinfo>
10374 <xse:msiRef action="UnpublishComponents" href="http://msdn.microsoft.com/library/aa372106.aspx" />
10375 </xs:appinfo>
10376 <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>
10377 </xs:annotation>
10378 </xs:element>
10379 <xs:element name="MsiUnpublishAssemblies" type="ActionSequenceType">
10380 <xs:annotation>
10381 <xs:appinfo>
10382 <xse:msiRef action="MsiUnpublishAssemblies" href="http://msdn.microsoft.com/library/aa370500.aspx" />
10383 </xs:appinfo>
10384 <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>
10385 </xs:annotation>
10386 </xs:element>
10387 <xs:element name="UnpublishFeatures" type="ActionSequenceType">
10388 <xs:annotation>
10389 <xs:appinfo>
10390 <xse:msiRef action="UnpublishFeatures" href="http://msdn.microsoft.com/library/aa372107.aspx" />
10391 </xs:appinfo>
10392 <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>
10393 </xs:annotation>
10394 </xs:element>
10395 <xs:element name="StopServices" type="ActionSequenceType">
10396 <xs:annotation>
10397 <xs:appinfo>
10398 <xse:msiRef action="StopServices" href="http://msdn.microsoft.com/library/aa372028.aspx" />
10399 </xs:appinfo>
10400 <xs:documentation>Stops system services. The condition for this action may be specified in the element's inner text.</xs:documentation>
10401 </xs:annotation>
10402 </xs:element>
10403 <xs:element name="DeleteServices" type="ActionSequenceType">
10404 <xs:annotation>
10405 <xs:appinfo>
10406 <xse:msiRef action="DeleteServices" href="http://msdn.microsoft.com/library/aa368270.aspx" />
10407 </xs:appinfo>
10408 <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>
10409 </xs:annotation>
10410 </xs:element>
10411 <xs:element name="UnregisterComPlus" type="ActionSequenceType">
10412 <xs:annotation>
10413 <xs:appinfo>
10414 <xse:msiRef action="UnregisterComPlus" href="http://msdn.microsoft.com/library/aa372109.aspx" />
10415 </xs:appinfo>
10416 <xs:documentation>Removes COM+ applications from the registry. The condition for this action may be specified in the element's inner text.</xs:documentation>
10417 </xs:annotation>
10418 </xs:element>
10419 <xs:element name="SelfUnregModules" type="ActionSequenceType">
10420 <xs:annotation>
10421 <xs:appinfo>
10422 <xse:msiRef action="SelfUnregModules" href="http://msdn.microsoft.com/library/aa371610.aspx" />
10423 </xs:appinfo>
10424 <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>
10425 </xs:annotation>
10426 </xs:element>
10427 <xs:element name="UnregisterTypeLibraries" type="ActionSequenceType">
10428 <xs:annotation>
10429 <xs:appinfo>
10430 <xse:msiRef action="UnregisterTypeLibraries" href="http://msdn.microsoft.com/library/aa372357.aspx" />
10431 </xs:appinfo>
10432 <xs:documentation>Unregisters type libraries from the system. The condition for this action may be specified in the element's inner text.</xs:documentation>
10433 </xs:annotation>
10434 </xs:element>
10435 <xs:element name="RemoveODBC" type="ActionSequenceType">
10436 <xs:annotation>
10437 <xs:appinfo>
10438 <xse:msiRef action="RemoveODBC" href="http://msdn.microsoft.com/library/aa371206.aspx" />
10439 </xs:appinfo>
10440 <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>
10441 </xs:annotation>
10442 </xs:element>
10443 <xs:element name="UnregisterFonts" type="ActionSequenceType">
10444 <xs:annotation>
10445 <xs:appinfo>
10446 <xse:msiRef action="UnregisterFonts" href="http://msdn.microsoft.com/library/aa372112.aspx" />
10447 </xs:appinfo>
10448 <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>
10449 </xs:annotation>
10450 </xs:element>
10451 <xs:element name="RemoveRegistryValues" type="ActionSequenceType">
10452 <xs:annotation>
10453 <xs:appinfo>
10454 <xse:msiRef action="RemoveRegistryValues" href="http://msdn.microsoft.com/library/aa371207.aspx" />
10455 </xs:appinfo>
10456 <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>
10457 </xs:annotation>
10458 </xs:element>
10459 <xs:element name="UnregisterClassInfo" type="ActionSequenceType">
10460 <xs:annotation>
10461 <xs:appinfo>
10462 <xse:msiRef action="UnregisterClassInfo" href="http://msdn.microsoft.com/library/aa372108.aspx" />
10463 </xs:appinfo>
10464 <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>
10465 </xs:annotation>
10466 </xs:element>
10467 <xs:element name="UnregisterExtensionInfo" type="ActionSequenceType">
10468 <xs:annotation>
10469 <xs:appinfo>
10470 <xse:msiRef action="UnregisterExtensionInfo" href="http://msdn.microsoft.com/library/aa372110.aspx" />
10471 </xs:appinfo>
10472 <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>
10473 </xs:annotation>
10474 </xs:element>
10475 <xs:element name="UnregisterProgIdInfo" type="ActionSequenceType">
10476 <xs:annotation>
10477 <xs:appinfo>
10478 <xse:msiRef action="UnregisterProgIdInfo" href="http://msdn.microsoft.com/library/aa372114.aspx" />
10479 </xs:appinfo>
10480 <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>
10481 </xs:annotation>
10482 </xs:element>
10483 <xs:element name="UnregisterMIMEInfo" type="ActionSequenceType">
10484 <xs:annotation>
10485 <xs:appinfo>
10486 <xse:msiRef action="UnregisterMIMEInfo" href="http://msdn.microsoft.com/library/aa372113.aspx" />
10487 </xs:appinfo>
10488 <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>
10489 </xs:annotation>
10490 </xs:element>
10491 <xs:element name="RemoveIniValues" type="ActionSequenceType">
10492 <xs:annotation>
10493 <xs:appinfo>
10494 <xse:msiRef action="RemoveIniValues" href="http://msdn.microsoft.com/library/aa371205.aspx" />
10495 </xs:appinfo>
10496 <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>
10497 </xs:annotation>
10498 </xs:element>
10499 <xs:element name="RemoveShortcuts" type="ActionSequenceType">
10500 <xs:annotation>
10501 <xs:appinfo>
10502 <xse:msiRef action="RemoveShortcuts" href="http://msdn.microsoft.com/library/aa371209.aspx" />
10503 </xs:appinfo>
10504 <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>
10505 </xs:annotation>
10506 </xs:element>
10507 <xs:element name="RemoveEnvironmentStrings" type="ActionSequenceType">
10508 <xs:annotation>
10509 <xs:appinfo>
10510 <xse:msiRef action="RemoveEnvironmentStrings" href="http://msdn.microsoft.com/library/aa371196.aspx" />
10511 </xs:appinfo>
10512 <xs:documentation>Modifies the values of environment variables. The condition for this action may be specified in the element's inner text.</xs:documentation>
10513 </xs:annotation>
10514 </xs:element>
10515 <xs:element name="RemoveDuplicateFiles" type="ActionSequenceType">
10516 <xs:annotation>
10517 <xs:appinfo>
10518 <xse:msiRef action="RemoveDuplicateFiles" href="http://msdn.microsoft.com/library/aa371195.aspx" />
10519 </xs:appinfo>
10520 <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>
10521 </xs:annotation>
10522 </xs:element>
10523 <xs:element name="RemoveFiles" type="ActionSequenceType">
10524 <xs:annotation>
10525 <xs:appinfo>
10526 <xse:msiRef action="RemoveFiles" href="http://msdn.microsoft.com/library/aa371199.aspx" />
10527 </xs:appinfo>
10528 <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>
10529 </xs:annotation>
10530 </xs:element>
10531 <xs:element name="RemoveFolders" type="ActionSequenceType">
10532 <xs:annotation>
10533 <xs:appinfo>
10534 <xse:msiRef action="RemoveFolders" href="http://msdn.microsoft.com/library/aa371202.aspx" />
10535 </xs:appinfo>
10536 <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>
10537 </xs:annotation>
10538 </xs:element>
10539 <xs:element name="CreateFolders" type="ActionSequenceType">
10540 <xs:annotation>
10541 <xs:appinfo>
10542 <xse:msiRef action="CreateFolders" href="http://msdn.microsoft.com/library/aa368052.aspx" />
10543 </xs:appinfo>
10544 <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>
10545 </xs:annotation>
10546 </xs:element>
10547 <xs:element name="MoveFiles" type="ActionSequenceType">
10548 <xs:annotation>
10549 <xs:appinfo>
10550 <xse:msiRef table="MoveFile" href="http://msdn.microsoft.com/library/aa370055.aspx" />
10551 <xse:msiRef action="MoveFiles" href="http://msdn.microsoft.com/library/aa370054.aspx" />
10552 </xs:appinfo>
10553 <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>
10554 </xs:annotation>
10555 </xs:element>
10556 <xs:element name="InstallAdminPackage" type="ActionSequenceType">
10557 <xs:annotation>
10558 <xs:appinfo>
10559 <xse:msiRef action="InstallAdminPackage" href="http://msdn.microsoft.com/library/aa369287.aspx" />
10560 </xs:appinfo>
10561 <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>
10562 </xs:annotation>
10563 </xs:element>
10564 <xs:element name="InstallFiles" type="ActionSequenceType">
10565 <xs:annotation>
10566 <xs:appinfo>
10567 <xse:msiRef action="InstallFiles" href="http://msdn.microsoft.com/library/aa369503.aspx" />
10568 </xs:appinfo>
10569 <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>
10570 </xs:annotation>
10571 </xs:element>
10572 <xs:element name="DuplicateFiles" type="ActionSequenceType">
10573 <xs:annotation>
10574 <xs:appinfo>
10575 <xse:msiRef action="DuplicateFiles" href="http://msdn.microsoft.com/library/aa368334.aspx" />
10576 </xs:appinfo>
10577 <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>
10578 </xs:annotation>
10579 </xs:element>
10580 <xs:element name="PatchFiles" type="ActionSequenceType">
10581 <xs:annotation>
10582 <xs:appinfo>
10583 <xse:msiRef action="PatchFiles" href="http://msdn.microsoft.com/library/aa370577.aspx" />
10584 </xs:appinfo>
10585 <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>
10586 </xs:annotation>
10587 </xs:element>
10588 <xs:element name="BindImage" type="ActionSequenceType">
10589 <xs:annotation>
10590 <xs:appinfo>
10591 <xse:msiRef table="BindImage" href="http://msdn.microsoft.com/library/aa367828.aspx" />
10592 <xse:msiRef action="BindImage" href="http://msdn.microsoft.com/library/aa367827.aspx" />
10593 </xs:appinfo>
10594 <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>
10595 </xs:annotation>
10596 </xs:element>
10597 <xs:element name="CreateShortcuts" type="ActionSequenceType">
10598 <xs:annotation>
10599 <xs:appinfo>
10600 <xse:msiRef action="CreateShortcuts" href="http://msdn.microsoft.com/library/aa368054.aspx" />
10601 </xs:appinfo>
10602 <xs:documentation>Manages the creation of shortcuts. The condition for this action may be specified in the element's inner text.</xs:documentation>
10603 </xs:annotation>
10604 </xs:element>
10605 <xs:element name="RegisterClassInfo" type="ActionSequenceType">
10606 <xs:annotation>
10607 <xs:appinfo>
10608 <xse:msiRef action="RegisterClassInfo" href="http://msdn.microsoft.com/library/aa371154.aspx" />
10609 </xs:appinfo>
10610 <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>
10611 </xs:annotation>
10612 </xs:element>
10613 <xs:element name="RegisterExtensionInfo" type="ActionSequenceType">
10614 <xs:annotation>
10615 <xs:appinfo>
10616 <xse:msiRef action="RegisterExtensionInfo" href="http://msdn.microsoft.com/library/aa371156.aspx" />
10617 </xs:appinfo>
10618 <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>
10619 </xs:annotation>
10620 </xs:element>
10621 <xs:element name="RegisterProgIdInfo" type="ActionSequenceType">
10622 <xs:annotation>
10623 <xs:appinfo>
10624 <xse:msiRef action="RegisterProgIdInfo" href="http://msdn.microsoft.com/library/aa371164.aspx" />
10625 </xs:appinfo>
10626 <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>
10627 </xs:annotation>
10628 </xs:element>
10629 <xs:element name="RegisterMIMEInfo" type="ActionSequenceType">
10630 <xs:annotation>
10631 <xs:appinfo>
10632 <xse:msiRef action="RegisterMIMEInfo" href="http://msdn.microsoft.com/library/aa371160.aspx" />
10633 </xs:appinfo>
10634 <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>
10635 </xs:annotation>
10636 </xs:element>
10637 <xs:element name="WriteRegistryValues" type="ActionSequenceType">
10638 <xs:annotation>
10639 <xs:appinfo>
10640 <xse:msiRef action="WriteRegistryValues" href="http://msdn.microsoft.com/library/aa372891.aspx" />
10641 </xs:appinfo>
10642 <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>
10643 </xs:annotation>
10644 </xs:element>
10645 <xs:element name="WriteIniValues" type="ActionSequenceType">
10646 <xs:annotation>
10647 <xs:appinfo>
10648 <xse:msiRef action="WriteIniValues" href="http://msdn.microsoft.com/library/aa372884.aspx" />
10649 </xs:appinfo>
10650 <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>
10651 </xs:annotation>
10652 </xs:element>
10653 <xs:element name="WriteEnvironmentStrings" type="ActionSequenceType">
10654 <xs:annotation>
10655 <xs:appinfo>
10656 <xse:msiRef action="WriteEnvironmentStrings" href="http://msdn.microsoft.com/library/aa372883.aspx" />
10657 </xs:appinfo>
10658 <xs:documentation>Modifies the values of environment variables. The condition for this action may be specified in the element's inner text.</xs:documentation>
10659 </xs:annotation>
10660 </xs:element>
10661 <xs:element name="RegisterFonts" type="ActionSequenceType">
10662 <xs:annotation>
10663 <xs:appinfo>
10664 <xse:msiRef action="RegisterFonts" href="http://msdn.microsoft.com/library/aa371158.aspx" />
10665 </xs:appinfo>
10666 <xs:documentation>Registers installed fonts with the system. The condition for this action may be specified in the element's inner text.</xs:documentation>
10667 </xs:annotation>
10668 </xs:element>
10669 <xs:element name="InstallODBC" type="ActionSequenceType">
10670 <xs:annotation>
10671 <xs:appinfo>
10672 <xse:msiRef action="InstallODBC" href="http://msdn.microsoft.com/library/aa369538.aspx" />
10673 </xs:appinfo>
10674 <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>
10675 </xs:annotation>
10676 </xs:element>
10677 <xs:element name="RegisterTypeLibraries" type="ActionSequenceType">
10678 <xs:annotation>
10679 <xs:appinfo>
10680 <xse:msiRef action="RegisterTypeLibraries" href="http://msdn.microsoft.com/library/aa371165.aspx" />
10681 </xs:appinfo>
10682 <xs:documentation>Registers type libraries with the system. The condition for this action may be specified in the element's inner text.</xs:documentation>
10683 </xs:annotation>
10684 </xs:element>
10685 <xs:element name="SelfRegModules" type="ActionSequenceType">
10686 <xs:annotation>
10687 <xs:appinfo>
10688 <xse:msiRef action="SelfRegModules" href="http://msdn.microsoft.com/library/aa371607.aspx" />
10689 </xs:appinfo>
10690 <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>
10691 </xs:annotation>
10692 </xs:element>
10693 <xs:element name="RegisterComPlus" type="ActionSequenceType">
10694 <xs:annotation>
10695 <xs:appinfo>
10696 <xse:msiRef action="RegisterComPlus" href="http://msdn.microsoft.com/library/aa371155.aspx" />
10697 </xs:appinfo>
10698 <xs:documentation>Registers COM+ applications. The condition for this action may be specified in the element's inner text.</xs:documentation>
10699 </xs:annotation>
10700 </xs:element>
10701 <xs:element name="InstallServices" type="ActionSequenceType">
10702 <xs:annotation>
10703 <xs:appinfo>
10704 <xse:msiRef action="InstallServices" href="http://msdn.microsoft.com/library/aa369540.aspx" />
10705 </xs:appinfo>
10706 <xs:documentation>Registers a service for the system. The condition for this action may be specified in the element's inner text.</xs:documentation>
10707 </xs:annotation>
10708 </xs:element>
10709 <xs:element name="StartServices" type="ActionSequenceType">
10710 <xs:annotation>
10711 <xs:appinfo>
10712 <xse:msiRef action="StartServices" href="http://msdn.microsoft.com/library/aa372026.aspx" />
10713 </xs:appinfo>
10714 <xs:documentation>Starts system services. 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="RegisterUser" type="ActionSequenceType">
10718 <xs:annotation>
10719 <xs:appinfo>
10720 <xse:msiRef action="RegisterUser" href="http://msdn.microsoft.com/library/aa371166.aspx" />
10721 </xs:appinfo>
10722 <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>
10723 </xs:annotation>
10724 </xs:element>
10725 <xs:element name="RegisterProduct" type="ActionSequenceType">
10726 <xs:annotation>
10727 <xs:appinfo>
10728 <xse:msiRef action="RegisterProduct" href="http://msdn.microsoft.com/library/aa371162.aspx" />
10729 </xs:appinfo>
10730 <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>
10731 </xs:annotation>
10732 </xs:element>
10733 <xs:element name="PublishComponents" type="ActionSequenceType">
10734 <xs:annotation>
10735 <xs:appinfo>
10736 <xse:msiRef action="PublishComponents" href="http://msdn.microsoft.com/library/aa370918.aspx" />
10737 </xs:appinfo>
10738 <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>
10739 </xs:annotation>
10740 </xs:element>
10741 <xs:element name="MsiPublishAssemblies" type="ActionSequenceType">
10742 <xs:annotation>
10743 <xs:appinfo>
10744 <xse:msiRef action="MsiPublishAssemblies" href="http://msdn.microsoft.com/library/aa370359.aspx" />
10745 </xs:appinfo>
10746 <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>
10747 </xs:annotation>
10748 </xs:element>
10749 <xs:element name="PublishFeatures" type="ActionSequenceType">
10750 <xs:annotation>
10751 <xs:appinfo>
10752 <xse:msiRef action="PublishFeatures" href="http://msdn.microsoft.com/library/aa370923.aspx" />
10753 </xs:appinfo>
10754 <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>
10755 </xs:annotation>
10756 </xs:element>
10757 <xs:element name="PublishProduct" type="ActionSequenceType">
10758 <xs:annotation>
10759 <xs:appinfo>
10760 <xse:msiRef action="PublishProduct" href="http://msdn.microsoft.com/library/aa370932.aspx" />
10761 </xs:appinfo>
10762 <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>
10763 </xs:annotation>
10764 </xs:element>
10765 <xs:element name="InstallFinalize" type="ActionSequenceType">
10766 <xs:annotation>
10767 <xs:appinfo>
10768 <xse:seeAlso ref="InstallInitialize" />
10769 <xse:msiRef action="InstallFinalize" href="http://msdn.microsoft.com/library/aa369505.aspx" />
10770 </xs:appinfo>
10771 <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>
10772 </xs:annotation>
10773 </xs:element>
10774 <xs:element name="AppSearch" type="ActionModuleSequenceType">
10775 <xs:annotation>
10776 <xs:appinfo>
10777 <xse:seeAlso ref="ComponentSearch" />
10778 <xse:seeAlso ref="FileSearch" />
10779 <xse:seeAlso ref="IniFileSearch" />
10780 <xse:seeAlso ref="RegistrySearch" />
10781 <xse:msiRef table="AppSearch" href="http://msdn.microsoft.com/library/aa367579.aspx" />
10782 <xse:msiRef action="AppSearch" href="http://msdn.microsoft.com/library/aa367578.aspx" />
10783 </xs:appinfo>
10784 <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>
10785 </xs:annotation>
10786 </xs:element>
10787 <xs:element name="CCPSearch" type="ActionModuleSequenceType">
10788 <xs:annotation>
10789 <xs:appinfo>
10790 <xse:seeAlso ref="RMCCPSearch" />
10791 <xse:seeAlso ref="ComplianceCheck" />
10792 <xse:msiRef action="CCPSearch" href="http://msdn.microsoft.com/library/aa367845.aspx" />
10793 </xs:appinfo>
10794 <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>
10795 </xs:annotation>
10796 </xs:element>
10797 <xs:element name="RMCCPSearch" type="ActionModuleSequenceType">
10798 <xs:annotation>
10799 <xs:appinfo>
10800 <xse:seeAlso ref="CCPSearch" />
10801 <xse:seeAlso ref="ComplianceCheck" />
10802 <xse:msiRef action="RMCCPSearch" href="http://msdn.microsoft.com/library/aa371364.aspx" />
10803 </xs:appinfo>
10804 <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>
10805 </xs:annotation>
10806 </xs:element>
10807 <xs:element name="LaunchConditions" type="ActionModuleSequenceType">
10808 <xs:annotation>
10809 <xs:appinfo>
10810 <xse:seeAlso ref="Launch" />
10811 <xse:msiRef action="LaunchConditions" href="http://msdn.microsoft.com/library/aa369751.aspx" />
10812 </xs:appinfo>
10813 <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>
10814 </xs:annotation>
10815 </xs:element>
10816 <xs:element name="FindRelatedProducts" type="ActionModuleSequenceType">
10817 <xs:annotation>
10818 <xs:appinfo>
10819 <xse:seeAlso ref="Upgrade" />
10820 <xse:msiRef action="FindRelatedProducts" href="http://msdn.microsoft.com/library/aa368600.aspx" />
10821 </xs:appinfo>
10822 <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>
10823 </xs:annotation>
10824 </xs:element>
10825 <xs:element name="InstallExecute" type="ActionModuleSequenceType">
10826 <xs:annotation>
10827 <xs:appinfo>
10828 <xse:msiRef action="InstallExecute" href="http://msdn.microsoft.com/library/aa369502.aspx" />
10829 </xs:appinfo>
10830 <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>
10831 </xs:annotation>
10832 </xs:element>
10833 <xs:element name="InstallExecuteAgain" type="ActionModuleSequenceType">
10834 <xs:annotation>
10835 <xs:appinfo>
10836 <xse:msiRef action="InstallExecuteAgain" href="http://msdn.microsoft.com/library/aa369497.aspx" />
10837 </xs:appinfo>
10838 <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>
10839 </xs:annotation>
10840 </xs:element>
10841 <xs:element name="DisableRollback" type="ActionModuleSequenceType">
10842 <xs:annotation>
10843 <xs:appinfo>
10844 <xse:msiRef action="DisableRollback" href="http://msdn.microsoft.com/library/aa368308.aspx" />
10845 </xs:appinfo>
10846 <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>
10847 </xs:annotation>
10848 </xs:element>
10849 <xs:element name="RemoveExistingProducts" type="ActionModuleSequenceType">
10850 <xs:annotation>
10851 <xs:appinfo>
10852 <xse:msiRef action="RemoveExistingProducts" href="http://msdn.microsoft.com/library/aa371197.aspx" />
10853 </xs:appinfo>
10854 <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>
10855 </xs:annotation>
10856 </xs:element>
10857 <xs:element name="ScheduleReboot" type="ActionModuleSequenceType">
10858 <xs:annotation>
10859 <xs:appinfo>
10860 <xse:msiRef action="ScheduleReboot" href="http://msdn.microsoft.com/library/aa371527.aspx" />
10861 </xs:appinfo>
10862 <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>
10863 </xs:annotation>
10864 </xs:element>
10865 <xs:element name="ForceReboot" type="ActionModuleSequenceType">
10866 <xs:annotation>
10867 <xs:appinfo>
10868 <xse:msiRef action="ForceReboot" href="http://msdn.microsoft.com/library/aa368607.aspx" />
10869 </xs:appinfo>
10870 <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>
10871 </xs:annotation>
10872 </xs:element>
10873 <xs:element name="ResolveSource" type="ActionModuleSequenceType">
10874 <xs:annotation>
10875 <xs:appinfo>
10876 <xse:msiRef action="ResolveSource" href="http://msdn.microsoft.com/library/aa371232.aspx" />
10877 </xs:appinfo>
10878 <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>
10879 </xs:annotation>
10880 </xs:element>
10881 <!-- CustomActions and Dialogs of course aren't built in and must be specified relative to another action -->
10882 <xs:element name="Custom">
10883 <xs:annotation>
10884 <xs:appinfo>
10885 <xse:seeAlso ref="CustomAction" />
10886 </xs:appinfo>
10887 <xs:documentation>Use to sequence a custom action.</xs:documentation>
10888 </xs:annotation>
10889 <xs:complexType>
10890 <xs:annotation>
10891 <xs:documentation>Text node specifies the condition of the action.</xs:documentation>
10892 </xs:annotation>
10893 <xs:attribute name="Action" type="xs:string" use="required">
10894 <xs:annotation>
10895 <xs:documentation>The CustomAction to which the Custom element applies.</xs:documentation>
10896 </xs:annotation>
10897 </xs:attribute>
10898 <xs:attribute name="Condition" type="xs:string">
10899 <xs:annotation>
10900 <xs:documentation>Optional condition that determines whether the action should be executed.</xs:documentation>
10901 </xs:annotation>
10902 </xs:attribute>
10903 <xs:attribute name="OnExit" type="ExitType">
10904 <xs:annotation>
10905 <xs:documentation>Mutually exclusive with Before, After, and Sequence attributes</xs:documentation>
10906 </xs:annotation>
10907 </xs:attribute>
10908 <xs:attribute name="Before" type="xs:string">
10909 <xs:annotation>
10910 <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>
10911 </xs:annotation>
10912 </xs:attribute>
10913 <xs:attribute name="After" type="xs:string">
10914 <xs:annotation>
10915 <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>
10916 </xs:annotation>
10917 </xs:attribute>
10918 <xs:attribute name="Overridable" type="YesNoTypeUnion">
10919 <xs:annotation>
10920 <xs:documentation>If "yes", the sequencing of this action may be overridden by sequencing elsewhere.</xs:documentation>
10921 </xs:annotation>
10922 </xs:attribute>
10923 <xs:attribute name="Sequence" type="Integer">
10924 <xs:annotation>
10925 <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>
10926 </xs:annotation>
10927 </xs:attribute>
10928 </xs:complexType>
10929 </xs:element>
10930 <xs:element name="Show">
10931 <xs:complexType>
10932 <xs:attribute name="Dialog" type="xs:string" use="required">
10933 <xs:annotation>
10934 <xs:documentation>Reference to dialog to show.</xs:documentation>
10935 </xs:annotation>
10936 </xs:attribute>
10937 <xs:attribute name="Condition" type="xs:string">
10938 <xs:annotation>
10939 <xs:documentation>Optional condition that determines whether the dialog should be displayed.</xs:documentation>
10940 </xs:annotation>
10941 </xs:attribute>
10942 <xs:attribute name="OnExit" type="ExitType">
10943 <xs:annotation>
10944 <xs:documentation>Show the dialog Mutually exclusive with Before, After, and Sequence attributes.</xs:documentation>
10945 </xs:annotation>
10946 </xs:attribute>
10947 <xs:attribute name="Before" type="xs:string">
10948 <xs:annotation>
10949 <xs:documentation>Show the dialog before the specified action. Mutually exclusive with OnExit, After, and Sequence attributes.</xs:documentation>
10950 </xs:annotation>
10951 </xs:attribute>
10952 <xs:attribute name="After" type="xs:string">
10953 <xs:annotation>
10954 <xs:documentation>Show the dialog after the specified action. Mutually exclusive with OnExit, Before, and Sequence attributes.</xs:documentation>
10955 </xs:annotation>
10956 </xs:attribute>
10957 <xs:attribute name="Overridable" type="YesNoTypeUnion">
10958 <xs:annotation>
10959 <xs:documentation>
10960 If "yes", the sequencing of this dialog may be overridden by sequencing elsewhere. The default is "no".
10961 </xs:documentation>
10962 </xs:annotation>
10963 </xs:attribute>
10964 <xs:attribute name="Sequence" type="Integer">
10965 <xs:annotation>
10966 <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>
10967 </xs:annotation>
10968 </xs:attribute>
10969 </xs:complexType>
10970 </xs:element>
10971 <!-- standard sequence table compositions -->
10972 <xs:element name="InstallUISequence">
10973 <xs:annotation>
10974 <xs:appinfo>
10975 <xse:msiRef table="InstallUISequence" href="https://docs.microsoft.com/en-us/windows/win32/msi/installuisequence-table" />
10976 </xs:appinfo>
10977 </xs:annotation>
10978 <xs:complexType>
10979 <xs:choice minOccurs="0" maxOccurs="unbounded">
10980 <xs:element ref="Custom" minOccurs="0" maxOccurs="unbounded">
10981 <xs:annotation>
10982 <xs:documentation>Use to sequence a custom action.</xs:documentation>
10983 </xs:annotation>
10984 </xs:element>
10985 <xs:element ref="Show" minOccurs="0" maxOccurs="unbounded">
10986 <xs:annotation>
10987 <xs:documentation>Displays a Dialog.</xs:documentation>
10988 </xs:annotation>
10989 </xs:element>
10990 <xs:element ref="ScheduleReboot" minOccurs="0">
10991 <xs:annotation>
10992 <xs:documentation>Prompts the user to restart the system at the end of installation. Not fixed sequence.</xs:documentation>
10993 </xs:annotation>
10994 </xs:element>
10995 <xs:element ref="LaunchConditions" minOccurs="0">
10996 <xs:annotation>
10997 <xs:documentation>Queries the LaunchCondition table and evaluates each conditional statement recorded there.</xs:documentation>
10998 </xs:annotation>
10999 </xs:element>
11000 <xs:element ref="FindRelatedProducts" minOccurs="0">
11001 <xs:annotation>
11002 <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>
11003 </xs:annotation>
11004 </xs:element>
11005 <xs:element ref="AppSearch" minOccurs="0">
11006 <xs:annotation>
11007 <xs:documentation>Uses file signatures to search for existing versions of products.</xs:documentation>
11008 </xs:annotation>
11009 </xs:element>
11010 <xs:element ref="CCPSearch" minOccurs="0">
11011 <xs:annotation>
11012 <xs:documentation>Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed.</xs:documentation>
11013 </xs:annotation>
11014 </xs:element>
11015 <xs:element ref="RMCCPSearch" minOccurs="0">
11016 <xs:annotation>
11017 <xs:documentation>Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed.</xs:documentation>
11018 </xs:annotation>
11019 </xs:element>
11020 <xs:element ref="ValidateProductID">
11021 <xs:annotation>
11022 <xs:documentation>Sets the ProductID property to the full product identifier.</xs:documentation>
11023 </xs:annotation>
11024 </xs:element>
11025 <xs:element ref="CostInitialize">
11026 <xs:annotation>
11027 <xs:documentation>Initiates the internal installation costing process.</xs:documentation>
11028 </xs:annotation>
11029 </xs:element>
11030 <xs:element ref="FileCost">
11031 <xs:annotation>
11032 <xs:documentation>Initiates dynamic costing of standard installation actions.</xs:documentation>
11033 </xs:annotation>
11034 </xs:element>
11035 <xs:element ref="IsolateComponents">
11036 <xs:annotation>
11037 <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>
11038 </xs:annotation>
11039 </xs:element>
11040 <xs:element ref="ResolveSource" minOccurs="0">
11041 <xs:annotation>
11042 <xs:documentation>Determines the location of the source and sets the SourceDir property if the source has not been resolved yet.</xs:documentation>
11043 </xs:annotation>
11044 </xs:element>
11045 <xs:element ref="CostFinalize">
11046 <xs:annotation>
11047 <xs:documentation>Ends the internal installation costing process begun by the CostInitialize action.</xs:documentation>
11048 </xs:annotation>
11049 </xs:element>
11050 <xs:element ref="MigrateFeatureStates">
11051 <xs:annotation>
11052 <xs:documentation>Used for upgrading or installing over an existing application.</xs:documentation>
11053 </xs:annotation>
11054 </xs:element>
11055 <xs:element ref="ExecuteAction" minOccurs="0">
11056 <xs:annotation>
11057 <xs:documentation>Initiates the execution sequence.</xs:documentation>
11058 </xs:annotation>
11059 </xs:element>
11060 </xs:choice>
11061 </xs:complexType>
11062 </xs:element>
11063 <xs:element name="InstallExecuteSequence">
11064 <xs:annotation>
11065 <xs:appinfo>
11066 <xse:msiRef table="InstallExecuteSequence" href="https://docs.microsoft.com/en-us/windows/win32/msi/installexecutesequence-table" />
11067 </xs:appinfo>
11068 </xs:annotation>
11069 <xs:complexType>
11070 <xs:choice minOccurs="0" maxOccurs="unbounded">
11071 <xs:element ref="Custom" minOccurs="0" maxOccurs="unbounded">
11072 <xs:annotation>
11073 <xs:documentation>Use to sequence a custom action.</xs:documentation>
11074 </xs:annotation>
11075 </xs:element>
11076 <xs:element ref="ScheduleReboot" minOccurs="0">
11077 <xs:annotation>
11078 <xs:documentation>Prompts the user to restart the system at the end of installation. Not fixed sequence.</xs:documentation>
11079 </xs:annotation>
11080 </xs:element>
11081 <xs:element ref="ForceReboot" minOccurs="0">
11082 <xs:annotation>
11083 <xs:documentation>Prompts the user for a restart of the system during the installation. Not fixed sequence.</xs:documentation>
11084 </xs:annotation>
11085 </xs:element>
11086 <xs:element ref="ResolveSource" minOccurs="0">
11087 <xs:annotation>
11088 <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>
11089 </xs:annotation>
11090 </xs:element>
11091 <xs:element ref="LaunchConditions" minOccurs="0">
11092 <xs:annotation>
11093 <xs:documentation>Queries the LaunchCondition table and evaluates each conditional statement recorded there.</xs:documentation>
11094 </xs:annotation>
11095 </xs:element>
11096 <xs:element ref="FindRelatedProducts" minOccurs="0">
11097 <xs:annotation>
11098 <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>
11099 </xs:annotation>
11100 </xs:element>
11101 <xs:element ref="AppSearch" minOccurs="0">
11102 <xs:annotation>
11103 <xs:documentation>Uses file signatures to search for existing versions of products.</xs:documentation>
11104 </xs:annotation>
11105 </xs:element>
11106 <xs:element ref="CCPSearch">
11107 <xs:annotation>
11108 <xs:documentation>Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed.</xs:documentation>
11109 </xs:annotation>
11110 </xs:element>
11111 <xs:element ref="RMCCPSearch">
11112 <xs:annotation>
11113 <xs:documentation>Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed.</xs:documentation>
11114 </xs:annotation>
11115 </xs:element>
11116 <xs:element ref="ValidateProductID">
11117 <xs:annotation>
11118 <xs:documentation>Sets the ProductID property to the full product identifier.</xs:documentation>
11119 </xs:annotation>
11120 </xs:element>
11121 <xs:element ref="CostInitialize">
11122 <xs:annotation>
11123 <xs:documentation>Initiates the internal installation costing process.</xs:documentation>
11124 </xs:annotation>
11125 </xs:element>
11126 <xs:element ref="FileCost">
11127 <xs:annotation>
11128 <xs:documentation>Initiates dynamic costing of standard installation actions.</xs:documentation>
11129 </xs:annotation>
11130 </xs:element>
11131 <xs:element ref="IsolateComponents">
11132 <xs:annotation>
11133 <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>
11134 </xs:annotation>
11135 </xs:element>
11136 <xs:element ref="CostFinalize">
11137 <xs:annotation>
11138 <xs:documentation>Ends the internal installation costing process begun by the CostInitialize action.</xs:documentation>
11139 </xs:annotation>
11140 </xs:element>
11141 <xs:element ref="SetODBCFolders">
11142 <xs:annotation>
11143 <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>
11144 </xs:annotation>
11145 </xs:element>
11146 <xs:element ref="MigrateFeatureStates">
11147 <xs:annotation>
11148 <xs:documentation>Used for upgrading or installing over an existing application.</xs:documentation>
11149 </xs:annotation>
11150 </xs:element>
11151 <xs:element ref="InstallValidate">
11152 <xs:annotation>
11153 <xs:documentation>Verifies that all costed volumes have enough space for the installation.</xs:documentation>
11154 </xs:annotation>
11155 </xs:element>
11156 <xs:element ref="InstallInitialize">
11157 <xs:annotation>
11158 <xs:documentation>Marks the beginning of a sequence of actions that change the system.</xs:documentation>
11159 </xs:annotation>
11160 </xs:element>
11161 <xs:element ref="AllocateRegistrySpace" minOccurs="0">
11162 <xs:annotation>
11163 <xs:documentation>Ensures the needed amount of space exists in the registry.</xs:documentation>
11164 </xs:annotation>
11165 </xs:element>
11166 <xs:element ref="ProcessComponents">
11167 <xs:annotation>
11168 <xs:documentation>Registers and unregisters components, their key paths, and the component clients.</xs:documentation>
11169 </xs:annotation>
11170 </xs:element>
11171 <xs:element ref="UnpublishComponents" minOccurs="0">
11172 <xs:annotation>
11173 <xs:documentation>Manages the unadvertisement of components listed in the PublishComponent table.</xs:documentation>
11174 </xs:annotation>
11175 </xs:element>
11176 <xs:element ref="UnpublishFeatures" minOccurs="0">
11177 <xs:annotation>
11178 <xs:documentation>Removes selection-state and feature-component mapping information from the registry.</xs:documentation>
11179 </xs:annotation>
11180 </xs:element>
11181 <xs:element ref="StopServices">
11182 <xs:annotation>
11183 <xs:documentation>Stops system services.</xs:documentation>
11184 </xs:annotation>
11185 </xs:element>
11186 <xs:element ref="DeleteServices">
11187 <xs:annotation>
11188 <xs:documentation>Stops a service and removes its registration from the system.</xs:documentation>
11189 </xs:annotation>
11190 </xs:element>
11191 <xs:element ref="UnregisterComPlus">
11192 <xs:annotation>
11193 <xs:documentation>Removes COM+ applications from the registry.</xs:documentation>
11194 </xs:annotation>
11195 </xs:element>
11196 <xs:element ref="SelfUnregModules" minOccurs="0">
11197 <xs:annotation>
11198 <xs:documentation>Unregisters all modules listed in the SelfReg table that are scheduled to be uninstalled.</xs:documentation>
11199 </xs:annotation>
11200 </xs:element>
11201 <xs:element ref="UnregisterTypeLibraries" minOccurs="0">
11202 <xs:annotation>
11203 <xs:documentation>Unregisters type libraries from the system.</xs:documentation>
11204 </xs:annotation>
11205 </xs:element>
11206 <xs:element ref="RemoveODBC">
11207 <xs:annotation>
11208 <xs:documentation>Removes the data sources, translators, and drivers listed for removal during the installation.</xs:documentation>
11209 </xs:annotation>
11210 </xs:element>
11211 <xs:element ref="UnregisterFonts">
11212 <xs:annotation>
11213 <xs:documentation>Removes registration information about installed fonts from the system.</xs:documentation>
11214 </xs:annotation>
11215 </xs:element>
11216 <xs:element ref="RemoveRegistryValues" minOccurs="0">
11217 <xs:annotation>
11218 <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>
11219 </xs:annotation>
11220 </xs:element>
11221 <xs:element ref="UnregisterClassInfo" minOccurs="0">
11222 <xs:annotation>
11223 <xs:documentation>Manages the removal of COM class information from the system registry.</xs:documentation>
11224 </xs:annotation>
11225 </xs:element>
11226 <xs:element ref="UnregisterExtensionInfo">
11227 <xs:annotation>
11228 <xs:documentation>Manages the removal of extension-related information from the system registry.</xs:documentation>
11229 </xs:annotation>
11230 </xs:element>
11231 <xs:element ref="UnregisterProgIdInfo" minOccurs="0">
11232 <xs:annotation>
11233 <xs:documentation>Manages the unregistration of OLE ProgId information with the system.</xs:documentation>
11234 </xs:annotation>
11235 </xs:element>
11236 <xs:element ref="UnregisterMIMEInfo">
11237 <xs:annotation>
11238 <xs:documentation>Unregisters MIME-related registry information from the system.</xs:documentation>
11239 </xs:annotation>
11240 </xs:element>
11241 <xs:element ref="RemoveIniValues">
11242 <xs:annotation>
11243 <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>
11244 </xs:annotation>
11245 </xs:element>
11246 <xs:element ref="RemoveShortcuts" minOccurs="0">
11247 <xs:annotation>
11248 <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>
11249 </xs:annotation>
11250 </xs:element>
11251 <xs:element ref="RemoveEnvironmentStrings">
11252 <xs:annotation>
11253 <xs:documentation>Modifies the values of environment variables.</xs:documentation>
11254 </xs:annotation>
11255 </xs:element>
11256 <xs:element ref="RemoveDuplicateFiles">
11257 <xs:annotation>
11258 <xs:documentation>Deletes files installed by the DuplicateFiles action.</xs:documentation>
11259 </xs:annotation>
11260 </xs:element>
11261 <xs:element ref="RemoveFiles" minOccurs="0">
11262 <xs:annotation>
11263 <xs:documentation>Removes files previously installed by the InstallFiles action.</xs:documentation>
11264 </xs:annotation>
11265 </xs:element>
11266 <xs:element ref="RemoveFolders" minOccurs="0">
11267 <xs:annotation>
11268 <xs:documentation>Removes any folders linked to components set to be removed or run from source.</xs:documentation>
11269 </xs:annotation>
11270 </xs:element>
11271 <xs:element ref="CreateFolders" minOccurs="0">
11272 <xs:annotation>
11273 <xs:documentation>Creates empty folders for components that are set to be installed.</xs:documentation>
11274 </xs:annotation>
11275 </xs:element>
11276 <xs:element ref="MoveFiles">
11277 <xs:annotation>
11278 <xs:documentation>Locates existing files on the system and moves or copies those files to a new location.</xs:documentation>
11279 </xs:annotation>
11280 </xs:element>
11281 <xs:element ref="InstallFiles" minOccurs="0">
11282 <xs:annotation>
11283 <xs:documentation>Copies files specified in the File table from the source directory to the destination directory.</xs:documentation>
11284 </xs:annotation>
11285 </xs:element>
11286 <xs:element ref="DuplicateFiles">
11287 <xs:annotation>
11288 <xs:documentation>Duplicates files installed by the InstallFiles action.</xs:documentation>
11289 </xs:annotation>
11290 </xs:element>
11291 <xs:element ref="PatchFiles">
11292 <xs:annotation>
11293 <xs:documentation>Queries the Patch table to determine which patches are to be applied.</xs:documentation>
11294 </xs:annotation>
11295 </xs:element>
11296 <xs:element ref="BindImage" minOccurs="0">
11297 <xs:annotation>
11298 <xs:documentation>Binds each executable or DLL that must be bound to the DLLs imported by it.</xs:documentation>
11299 </xs:annotation>
11300 </xs:element>
11301 <xs:element ref="CreateShortcuts" minOccurs="0">
11302 <xs:annotation>
11303 <xs:documentation>Manages the creation of shortcuts.</xs:documentation>
11304 </xs:annotation>
11305 </xs:element>
11306 <xs:element ref="RegisterClassInfo" minOccurs="0">
11307 <xs:annotation>
11308 <xs:documentation>Manages the registration of COM class information with the system.</xs:documentation>
11309 </xs:annotation>
11310 </xs:element>
11311 <xs:element ref="RegisterExtensionInfo">
11312 <xs:annotation>
11313 <xs:documentation>Manages the registration of extension related information with the system.</xs:documentation>
11314 </xs:annotation>
11315 </xs:element>
11316 <xs:element ref="RegisterProgIdInfo" minOccurs="0">
11317 <xs:annotation>
11318 <xs:documentation>Manages the registration of OLE ProgId information with the system.</xs:documentation>
11319 </xs:annotation>
11320 </xs:element>
11321 <xs:element ref="RegisterMIMEInfo">
11322 <xs:annotation>
11323 <xs:documentation>Registers MIME-related registry information with the system.</xs:documentation>
11324 </xs:annotation>
11325 </xs:element>
11326 <xs:element ref="WriteRegistryValues" minOccurs="0">
11327 <xs:annotation>
11328 <xs:documentation>Sets up an application's registry information.</xs:documentation>
11329 </xs:annotation>
11330 </xs:element>
11331 <xs:element ref="WriteIniValues">
11332 <xs:annotation>
11333 <xs:documentation>Writes the .ini file information that the application needs written to its .ini files.</xs:documentation>
11334 </xs:annotation>
11335 </xs:element>
11336 <xs:element ref="WriteEnvironmentStrings">
11337 <xs:annotation>
11338 <xs:documentation>Modifies the values of environment variables.</xs:documentation>
11339 </xs:annotation>
11340 </xs:element>
11341 <xs:element ref="RegisterFonts">
11342 <xs:annotation>
11343 <xs:documentation>Registers installed fonts with the system.</xs:documentation>
11344 </xs:annotation>
11345 </xs:element>
11346 <xs:element ref="InstallODBC">
11347 <xs:annotation>
11348 <xs:documentation>Installs the drivers, translators, and data sources in the ODBCDriver table, ODBCTranslator table, and ODBCDataSource table.</xs:documentation>
11349 </xs:annotation>
11350 </xs:element>
11351 <xs:element ref="RegisterTypeLibraries" minOccurs="0">
11352 <xs:annotation>
11353 <xs:documentation>Registers type libraries with the system.</xs:documentation>
11354 </xs:annotation>
11355 </xs:element>
11356 <xs:element ref="SelfRegModules" minOccurs="0">
11357 <xs:annotation>
11358 <xs:documentation>Processes all modules listed in the SelfReg table and registers all installed modules with the system.</xs:documentation>
11359 </xs:annotation>
11360 </xs:element>
11361 <xs:element ref="RegisterComPlus">
11362 <xs:annotation>
11363 <xs:documentation>Registers COM+ applications.</xs:documentation>
11364 </xs:annotation>
11365 </xs:element>
11366 <xs:element ref="InstallServices">
11367 <xs:annotation>
11368 <xs:documentation>Registers a service for the system.</xs:documentation>
11369 </xs:annotation>
11370 </xs:element>
11371 <xs:element ref="StartServices">
11372 <xs:annotation>
11373 <xs:documentation>Starts system services.</xs:documentation>
11374 </xs:annotation>
11375 </xs:element>
11376 <xs:element ref="RegisterUser" minOccurs="0">
11377 <xs:annotation>
11378 <xs:documentation>Registers the user information with the installer to identify the user of a product.</xs:documentation>
11379 </xs:annotation>
11380 </xs:element>
11381 <xs:element ref="RegisterProduct" minOccurs="0">
11382 <xs:annotation>
11383 <xs:documentation>Registers the product information with the installer.</xs:documentation>
11384 </xs:annotation>
11385 </xs:element>
11386 <xs:element ref="PublishComponents" minOccurs="0">
11387 <xs:annotation>
11388 <xs:documentation>Manages the advertisement of the components from the PublishComponent table.</xs:documentation>
11389 </xs:annotation>
11390 </xs:element>
11391 <xs:element ref="PublishFeatures" minOccurs="0">
11392 <xs:annotation>
11393 <xs:documentation>Writes each feature's state into the system registry.</xs:documentation>
11394 </xs:annotation>
11395 </xs:element>
11396 <xs:element ref="PublishProduct" minOccurs="0">
11397 <xs:annotation>
11398 <xs:documentation>Manages the advertisement of the product information with the system.</xs:documentation>
11399 </xs:annotation>
11400 </xs:element>
11401 <xs:element ref="InstallFinalize">
11402 <xs:annotation>
11403 <xs:documentation>Marks the end of a sequence of actions that change the system.</xs:documentation>
11404 </xs:annotation>
11405 </xs:element>
11406 <xs:element ref="RemoveExistingProducts">
11407 <xs:annotation>
11408 <xs:documentation>Goes through the product codes listed in the ActionProperty column of the Upgrade table and removes the products in sequence.</xs:documentation>
11409 </xs:annotation>
11410 </xs:element>
11411 <xs:element ref="DisableRollback" minOccurs="0">
11412 <xs:annotation>
11413 <xs:documentation>Disables rollback for the remainder of the installation.</xs:documentation>
11414 </xs:annotation>
11415 </xs:element>
11416 <xs:element ref="InstallExecute" minOccurs="0">
11417 <xs:annotation>
11418 <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>
11419 </xs:annotation>
11420 </xs:element>
11421 <xs:element ref="InstallExecuteAgain" minOccurs="0">
11422 <xs:annotation>
11423 <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>
11424 </xs:annotation>
11425 </xs:element>
11426 <xs:element ref="MsiPublishAssemblies">
11427 <xs:annotation>
11428 <xs:documentation>Manages the advertisement of CLR and Win32 assemblies.</xs:documentation>
11429 </xs:annotation>
11430 </xs:element>
11431 <xs:element ref="MsiUnpublishAssemblies">
11432 <xs:annotation>
11433 <xs:documentation>Manages the unadvertisement of CLR and Win32 assemblies that are being removed.</xs:documentation>
11434 </xs:annotation>
11435 </xs:element>
11436 </xs:choice>
11437 </xs:complexType>
11438 </xs:element>
11439 <xs:element name="AdminUISequence">
11440 <xs:annotation>
11441 <xs:appinfo>
11442 <xse:msiRef table="AdminUISequence" href="https://docs.microsoft.com/en-us/windows/win32/msi/adminuisequence-table" />
11443 </xs:appinfo>
11444 </xs:annotation>
11445 <xs:complexType>
11446 <xs:choice minOccurs="0" maxOccurs="unbounded">
11447 <xs:element ref="Custom" minOccurs="0" maxOccurs="unbounded">
11448 <xs:annotation>
11449 <xs:documentation>Use to sequence a custom action.</xs:documentation>
11450 </xs:annotation>
11451 </xs:element>
11452 <xs:element ref="Show" minOccurs="0" maxOccurs="unbounded" />
11453 <xs:element ref="CostInitialize">
11454 <xs:annotation>
11455 <xs:documentation>Initiates the internal installation costing process.</xs:documentation>
11456 </xs:annotation>
11457 </xs:element>
11458 <xs:element ref="FileCost">
11459 <xs:annotation>
11460 <xs:documentation>Initiates dynamic costing of standard installation actions.</xs:documentation>
11461 </xs:annotation>
11462 </xs:element>
11463 <xs:element ref="CostFinalize">
11464 <xs:annotation>
11465 <xs:documentation>Ends the internal installation costing process begun by the CostInitialize action.</xs:documentation>
11466 </xs:annotation>
11467 </xs:element>
11468 <xs:element ref="ExecuteAction">
11469 <xs:annotation>
11470 <xs:documentation>Initiates the execution sequence.</xs:documentation>
11471 </xs:annotation>
11472 </xs:element>
11473 <xs:element ref="InstallValidate">
11474 <xs:annotation>
11475 <xs:documentation>Verifies that all costed volumes have enough space for the installation.</xs:documentation>
11476 </xs:annotation>
11477 </xs:element>
11478 <xs:element ref="InstallInitialize">
11479 <xs:annotation>
11480 <xs:documentation>Marks the beginning of a sequence of actions that change the system.</xs:documentation>
11481 </xs:annotation>
11482 </xs:element>
11483 <xs:element ref="InstallAdminPackage">
11484 <xs:annotation>
11485 <xs:documentation>Copies the product database to the administrative installation point.</xs:documentation>
11486 </xs:annotation>
11487 </xs:element>
11488 <xs:element ref="InstallFiles">
11489 <xs:annotation>
11490 <xs:documentation>Copies files specified in the File table from the source directory to the destination directory.</xs:documentation>
11491 </xs:annotation>
11492 </xs:element>
11493 <xs:element ref="InstallFinalize">
11494 <xs:annotation>
11495 <xs:documentation>Marks the end of a sequence of actions that change the system.</xs:documentation>
11496 </xs:annotation>
11497 </xs:element>
11498 <xs:element ref="LaunchConditions">
11499 <xs:annotation>
11500 <xs:documentation>Queries the LaunchCondition table and evaluates each conditional statement recorded there.</xs:documentation>
11501 </xs:annotation>
11502 </xs:element>
11503 </xs:choice>
11504 </xs:complexType>
11505 </xs:element>
11506 <xs:element name="AdminExecuteSequence">
11507 <xs:annotation>
11508 <xs:appinfo>
11509 <xse:msiRef table="AdminExecuteSequence" href="https://docs.microsoft.com/en-us/windows/win32/msi/adminexecutesequence-table" />
11510 </xs:appinfo>
11511 </xs:annotation>
11512 <xs:complexType>
11513 <xs:choice minOccurs="0" maxOccurs="unbounded">
11514 <xs:element ref="Custom" minOccurs="0" maxOccurs="unbounded">
11515 <xs:annotation>
11516 <xs:documentation>Use to sequence a custom action.</xs:documentation>
11517 </xs:annotation>
11518 </xs:element>
11519 <xs:element ref="CostInitialize">
11520 <xs:annotation>
11521 <xs:documentation>Initiates the internal installation costing process.</xs:documentation>
11522 </xs:annotation>
11523 </xs:element>
11524 <xs:element ref="FileCost">
11525 <xs:annotation>
11526 <xs:documentation>Initiates dynamic costing of standard installation actions.</xs:documentation>
11527 </xs:annotation>
11528 </xs:element>
11529 <xs:element ref="CostFinalize">
11530 <xs:annotation>
11531 <xs:documentation>Ends the internal installation costing process begun by the CostInitialize action.</xs:documentation>
11532 </xs:annotation>
11533 </xs:element>
11534 <xs:element ref="InstallValidate">
11535 <xs:annotation>
11536 <xs:documentation>Verifies that all costed volumes have enough space for the installation.</xs:documentation>
11537 </xs:annotation>
11538 </xs:element>
11539 <xs:element ref="InstallInitialize">
11540 <xs:annotation>
11541 <xs:documentation>Marks the beginning of a sequence of actions that change the system.</xs:documentation>
11542 </xs:annotation>
11543 </xs:element>
11544 <xs:element ref="InstallAdminPackage">
11545 <xs:annotation>
11546 <xs:documentation>Copies the product database to the administrative installation point.</xs:documentation>
11547 </xs:annotation>
11548 </xs:element>
11549 <xs:element ref="InstallFiles">
11550 <xs:annotation>
11551 <xs:documentation>Copies files specified in the File table from the source directory to the destination directory.</xs:documentation>
11552 </xs:annotation>
11553 </xs:element>
11554 <xs:element ref="PatchFiles">
11555 <xs:annotation>
11556 <xs:documentation>Queries the Patch table to determine which patches are to be applied.</xs:documentation>
11557 </xs:annotation>
11558 </xs:element>
11559 <xs:element ref="InstallFinalize">
11560 <xs:annotation>
11561 <xs:documentation>Marks the end of a sequence of actions that change the system.</xs:documentation>
11562 </xs:annotation>
11563 </xs:element>
11564 <xs:element ref="LaunchConditions">
11565 <xs:annotation>
11566 <xs:documentation>Queries the LaunchCondition table and evaluates each conditional statement recorded there.</xs:documentation>
11567 </xs:annotation>
11568 </xs:element>
11569 <xs:element ref="ResolveSource" minOccurs="0">
11570 <xs:annotation>
11571 <xs:documentation>Determines the location of the source and sets the SourceDir property if the source has not been resolved yet.</xs:documentation>
11572 </xs:annotation>
11573 </xs:element>
11574 </xs:choice>
11575 </xs:complexType>
11576 </xs:element>
11577 <xs:element name="AdvertiseExecuteSequence">
11578 <xs:annotation>
11579 <xs:appinfo>
11580 <xse:msiRef table="AdvtExecuteSequence" href="https://docs.microsoft.com/en-us/windows/win32/msi/advtexecutesequence-table" />
11581 </xs:appinfo>
11582 </xs:annotation>
11583 <xs:complexType>
11584 <xs:choice minOccurs="0" maxOccurs="unbounded">
11585 <xs:element ref="CostInitialize">
11586 <xs:annotation>
11587 <xs:documentation>Initiates the internal installation costing process.</xs:documentation>
11588 </xs:annotation>
11589 </xs:element>
11590 <xs:element ref="CostFinalize">
11591 <xs:annotation>
11592 <xs:documentation>Ends the internal installation costing process begun by the CostInitialize action.</xs:documentation>
11593 </xs:annotation>
11594 </xs:element>
11595 <xs:element ref="Custom" minOccurs="0" maxOccurs="unbounded">
11596 <xs:annotation>
11597 <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>
11598 </xs:annotation>
11599 </xs:element>
11600 <xs:element ref="InstallValidate">
11601 <xs:annotation>
11602 <xs:documentation>Verifies that all costed volumes have enough space for the installation.</xs:documentation>
11603 </xs:annotation>
11604 </xs:element>
11605 <xs:element ref="InstallInitialize">
11606 <xs:annotation>
11607 <xs:documentation>Marks the beginning of a sequence of actions that change the system.</xs:documentation>
11608 </xs:annotation>
11609 </xs:element>
11610 <xs:element ref="CreateShortcuts">
11611 <xs:annotation>
11612 <xs:documentation>Manages the creation of shortcuts.</xs:documentation>
11613 </xs:annotation>
11614 </xs:element>
11615 <xs:element ref="RegisterClassInfo">
11616 <xs:annotation>
11617 <xs:documentation>Manages the registration of COM class information with the system.</xs:documentation>
11618 </xs:annotation>
11619 </xs:element>
11620 <xs:element ref="RegisterExtensionInfo">
11621 <xs:annotation>
11622 <xs:documentation>Manages the registration of extension related information with the system.</xs:documentation>
11623 </xs:annotation>
11624 </xs:element>
11625 <xs:element ref="RegisterMIMEInfo">
11626 <xs:annotation>
11627 <xs:documentation>Registers MIME-related registry information with the system.</xs:documentation>
11628 </xs:annotation>
11629 </xs:element>
11630 <xs:element ref="RegisterProgIdInfo">
11631 <xs:annotation>
11632 <xs:documentation>Manages the registration of OLE ProgId information with the system.</xs:documentation>
11633 </xs:annotation>
11634 </xs:element>
11635 <xs:element ref="PublishComponents">
11636 <xs:annotation>
11637 <xs:documentation>Manages the advertisement of the components from the PublishComponent table.</xs:documentation>
11638 </xs:annotation>
11639 </xs:element>
11640 <xs:element ref="PublishFeatures">
11641 <xs:annotation>
11642 <xs:documentation>Writes each feature's state into the system registry.</xs:documentation>
11643 </xs:annotation>
11644 </xs:element>
11645 <xs:element ref="PublishProduct">
11646 <xs:annotation>
11647 <xs:documentation>Manages the advertisement of the product information with the system.</xs:documentation>
11648 </xs:annotation>
11649 </xs:element>
11650 <xs:element ref="InstallFinalize">
11651 <xs:annotation>
11652 <xs:documentation>Marks the end of a sequence of actions that change the system.</xs:documentation>
11653 </xs:annotation>
11654 </xs:element>
11655 <xs:element ref="MsiPublishAssemblies">
11656 <xs:annotation>
11657 <xs:documentation>Manages the advertisement of CLR and Win32 assemblies.</xs:documentation>
11658 </xs:annotation>
11659 </xs:element>
11660 </xs:choice>
11661 </xs:complexType>
11662 </xs:element>
11663 <xs:element name="Binary">
11664 <xs:annotation>
11665 <xs:documentation>
11666 Binary data used for CustomAction elements and UI controls.
11667 </xs:documentation>
11668 <xs:appinfo>
11669 <xse:msiRef table="Binary" href="https://learn.microsoft.com/en-us/windows/win32/msi/binary-table" />
11670 </xs:appinfo>
11671 </xs:annotation>
11672 <xs:complexType>
11673 <xs:choice minOccurs="0" maxOccurs="unbounded">
11674 <xs:any namespace="##other" processContents="lax">
11675 <xs:annotation>
11676 <xs:documentation>
11677 Extensibility point in the WiX XML Schema. Schema extensions can register additional
11678 elements at this point in the schema.
11679 </xs:documentation>
11680 </xs:annotation>
11681 </xs:any>
11682 </xs:choice>
11683 <xs:attribute name="Id" type="xs:string" use="required">
11684 <xs:annotation>
11685 <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>
11686 </xs:annotation>
11687 </xs:attribute>
11688 <xs:attribute name="SourceFile" type="xs:string">
11689 <xs:annotation>
11690 <xs:documentation>Path to the binary file.</xs:documentation>
11691 </xs:annotation>
11692 </xs:attribute>
11693 <xs:attribute name="SuppressModularization" type="YesNoTypeUnion">
11694 <xs:annotation>
11695 <xs:documentation>
11696 Use to suppress modularization of this Binary identifier in merge modules.
11697 </xs:documentation>
11698 </xs:annotation>
11699 </xs:attribute>
11700 <xs:anyAttribute namespace="##other" processContents="lax">
11701 <xs:annotation>
11702 <xs:documentation>
11703 Extensibility point in the WiX XML Schema. Schema extensions can register additional
11704 attributes at this point in the schema.
11705 </xs:documentation>
11706 </xs:annotation>
11707 </xs:anyAttribute>
11708 </xs:complexType>
11709 </xs:element>
11710 <xs:element name="Icon">
11711 <xs:annotation>
11712 <xs:documentation>
11713 Icon used for Shortcut, ProgId, or Class elements (but not UI controls).
11714 </xs:documentation>
11715 <xs:appinfo>
11716 <xse:msiRef table="Icon" href="https://learn.microsoft.com/en-us/windows/win32/msi/icon-table" />
11717 <xse:howtoRef href="ui_and_localization/configure_arp_appearance.html">How To: Set your installer's icon in Add/Remove Programs</xse:howtoRef>
11718 <xse:howtoRef href="files_and_registry/create_start_menu_shortcut.html">How To: Create a shortcut on the Start Menu</xse:howtoRef>
11719 </xs:appinfo>
11720 </xs:annotation>
11721 <xs:complexType>
11722 <xs:attribute name="Id" type="xs:string" use="required">
11723 <xs:annotation>
11724 <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>
11725 </xs:annotation>
11726 </xs:attribute>
11727 <xs:attribute name="SourceFile" type="xs:string">
11728 <xs:annotation>
11729 <xs:documentation>Path to the icon file.</xs:documentation>
11730 </xs:annotation>
11731 </xs:attribute>
11732 </xs:complexType>
11733 </xs:element>
11734 <xs:element name="EmbeddedChainer">
11735 <xs:annotation>
11736 <xs:appinfo>
11737 <xse:msiRef table="MsiEmbeddedChainer " href="http://msdn.microsoft.com/library/bb736316.aspx" />
11738 <xse:seeAlso ref="Binary" />
11739 <xse:seeAlso ref="File" />
11740 <xse:seeAlso ref="Property" />
11741 <xse:seeAlso ref="EmbeddedChainerRef" />
11742 </xs:appinfo>
11743 </xs:annotation>
11744 <xs:complexType>
11745 <xs:attribute name="Id" type="xs:string" use="required">
11746 <xs:annotation>
11747 <xs:documentation>Unique identifier for embedded chainer.</xs:documentation>
11748 </xs:annotation>
11749 </xs:attribute>
11750 <xs:attribute name="CommandLine" type="xs:string">
11751 <xs:annotation>
11752 <xs:documentation>Value to append to the transaction handle and passed to the chainer executable.</xs:documentation>
11753 </xs:annotation>
11754 </xs:attribute>
11755 <xs:attribute name="Condition" type="xs:string">
11756 <xs:annotation>
11757 <xs:documentation>
11758 Value is the condition. It is important to note that each EmbeddedChainer element must have a mutually exclusive condition
11759 to ensure that only one embedded chainer will execute at a time. If the conditions are not mutually exclusive the chainer
11760 that executes is undeterministic.
11761 </xs:documentation>
11762 </xs:annotation>
11763 </xs:attribute>
11764 <xs:attribute name="BinarySource" type="xs:string">
11765 <xs:annotation>
11766 <xs:documentation>
11767 Reference to the Binary element that contains the chainer executable. Mutually exclusive with
11768 the FileSource and PropertySource attributes.
11769 </xs:documentation>
11770 </xs:annotation>
11771 </xs:attribute>
11772 <xs:attribute name="FileSource" type="xs:string">
11773 <xs:annotation>
11774 <xs:documentation>
11775 Reference to the File element that is the chainer executable. Mutually exclusive with
11776 the BinarySource and PropertySource attributes.
11777 </xs:documentation>
11778 </xs:annotation>
11779 </xs:attribute>
11780 <xs:attribute name="PropertySource" type="xs:string">
11781 <xs:annotation>
11782 <xs:documentation>
11783 Reference to a Property that resolves to the full path to the chainer executable. Mutually exclusive with
11784 the BinarySource and FileSource attributes.
11785 </xs:documentation>
11786 </xs:annotation>
11787 </xs:attribute>
11788 <xs:anyAttribute namespace="##other" processContents="lax">
11789 <xs:annotation>
11790 <xs:documentation>
11791 Extensibility point in the WiX XML Schema. Schema extensions can register additional
11792 attributes at this point in the schema.
11793 </xs:documentation>
11794 </xs:annotation>
11795 </xs:anyAttribute>
11796 </xs:complexType>
11797 </xs:element>
11798 <xs:element name="EmbeddedChainerRef">
11799 <xs:annotation>
11800 <xs:documentation>
11801 Reference to an EmbeddedChainer element. This will force the entire referenced Fragment's contents
11802 to be included in the installer database.
11803 </xs:documentation>
11804 <xs:appinfo>
11805 <xse:seeAlso ref="EmbeddedChainer" />
11806 </xs:appinfo>
11807 </xs:annotation>
11808 <xs:complexType>
11809 <xs:attribute name="Id" type="xs:string" use="required" />
11810 <xs:anyAttribute namespace="##other" processContents="lax">
11811 <xs:annotation>
11812 <xs:documentation>
11813 Extensibility point in the WiX XML Schema. Schema extensions can register additional
11814 attributes at this point in the schema.
11815 </xs:documentation>
11816 </xs:annotation>
11817 </xs:anyAttribute>
11818 </xs:complexType>
11819 </xs:element>
11820 <!-- - - - - - - - - - - UI Definitions - - - - - - - - - - - - - -->
11821 <xs:element name="EmbeddedUI">
11822 <xs:annotation>
11823 <xs:appinfo>
11824 <xse:msiRef table="MsiEmbeddedUI" href="https://learn.microsoft.com/en-us/windows/win32/msi/msiembeddedui-table" />
11825 </xs:appinfo>
11826 </xs:annotation>
11827 <xs:complexType>
11828 <xs:choice minOccurs="0" maxOccurs="unbounded">
11829 <xs:element ref="EmbeddedUIResource">
11830 <xs:annotation>
11831 <xs:documentation>Specifies extra files to be extracted for use by the embedded UI, such as language resources.</xs:documentation>
11832 </xs:annotation>
11833 </xs:element>
11834 <xs:any namespace="##other" processContents="lax">
11835 <xs:annotation>
11836 <xs:documentation>
11837 Extensibility point in the WiX XML Schema. Schema extensions can register additional
11838 elements at this point in the schema.
11839 </xs:documentation>
11840 </xs:annotation>
11841 </xs:any>
11842 </xs:choice>
11843 <xs:attribute name="Id" type="xs:string">
11844 <xs:annotation>
11845 <xs:documentation>
11846 Unique identifier for embedded UI. If this attribute is not specified the Name attribute or the file name
11847 portion of the SourceFile attribute will be used.
11848 </xs:documentation>
11849 </xs:annotation>
11850 </xs:attribute>
11851 <xs:attribute name="IgnoreFatalExit" type="YesNoTypeUnion">
11852 <xs:annotation>
11853 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_FATALEXIT messages.</xs:documentation>
11854 </xs:annotation>
11855 </xs:attribute>
11856 <xs:attribute name="IgnoreError" type="YesNoTypeUnion">
11857 <xs:annotation>
11858 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_ERROR messages.</xs:documentation>
11859 </xs:annotation>
11860 </xs:attribute>
11861 <xs:attribute name="IgnoreWarning" type="YesNoTypeUnion">
11862 <xs:annotation>
11863 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_WARNING messages.</xs:documentation>
11864 </xs:annotation>
11865 </xs:attribute>
11866 <xs:attribute name="IgnoreUser" type="YesNoTypeUnion">
11867 <xs:annotation>
11868 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_USER messages.</xs:documentation>
11869 </xs:annotation>
11870 </xs:attribute>
11871 <xs:attribute name="IgnoreInfo" type="YesNoTypeUnion">
11872 <xs:annotation>
11873 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_INFO messages.</xs:documentation>
11874 </xs:annotation>
11875 </xs:attribute>
11876 <xs:attribute name="IgnoreFilesInUse" type="YesNoTypeUnion">
11877 <xs:annotation>
11878 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_FILESINUSE messages.</xs:documentation>
11879 </xs:annotation>
11880 </xs:attribute>
11881 <xs:attribute name="IgnoreResolveSource" type="YesNoTypeUnion">
11882 <xs:annotation>
11883 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_RESOLVESOURCE messages.</xs:documentation>
11884 </xs:annotation>
11885 </xs:attribute>
11886 <xs:attribute name="IgnoreOutOfDiskSpace" type="YesNoTypeUnion">
11887 <xs:annotation>
11888 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_OUTOFDISKSPACE messages.</xs:documentation>
11889 </xs:annotation>
11890 </xs:attribute>
11891 <xs:attribute name="IgnoreActionStart" type="YesNoTypeUnion">
11892 <xs:annotation>
11893 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_ACTIONSTART messages.</xs:documentation>
11894 </xs:annotation>
11895 </xs:attribute>
11896 <xs:attribute name="IgnoreActionData" type="YesNoTypeUnion">
11897 <xs:annotation>
11898 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_ACTIONDATA messages.</xs:documentation>
11899 </xs:annotation>
11900 </xs:attribute>
11901 <xs:attribute name="IgnoreProgress" type="YesNoTypeUnion">
11902 <xs:annotation>
11903 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_PROGRESS messages.</xs:documentation>
11904 </xs:annotation>
11905 </xs:attribute>
11906 <xs:attribute name="IgnoreCommonData" type="YesNoTypeUnion">
11907 <xs:annotation>
11908 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_COMMONDATA messages.</xs:documentation>
11909 </xs:annotation>
11910 </xs:attribute>
11911 <xs:attribute name="IgnoreInitialize" type="YesNoTypeUnion">
11912 <xs:annotation>
11913 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_INITIALIZE messages.</xs:documentation>
11914 </xs:annotation>
11915 </xs:attribute>
11916 <xs:attribute name="IgnoreTerminate" type="YesNoTypeUnion">
11917 <xs:annotation>
11918 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_TERMINATE messages.</xs:documentation>
11919 </xs:annotation>
11920 </xs:attribute>
11921 <xs:attribute name="IgnoreShowDialog" type="YesNoTypeUnion">
11922 <xs:annotation>
11923 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_SHOWDIALOG messages.</xs:documentation>
11924 </xs:annotation>
11925 </xs:attribute>
11926 <xs:attribute name="IgnoreRMFilesInUse" type="YesNoTypeUnion">
11927 <xs:annotation>
11928 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_RMFILESINUSE messages.</xs:documentation>
11929 </xs:annotation>
11930 </xs:attribute>
11931 <xs:attribute name="IgnoreInstallStart" type="YesNoTypeUnion">
11932 <xs:annotation>
11933 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_INSTALLSTART messages.</xs:documentation>
11934 </xs:annotation>
11935 </xs:attribute>
11936 <xs:attribute name="IgnoreInstallEnd" type="YesNoTypeUnion">
11937 <xs:annotation>
11938 <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_INSTALLEND messages.</xs:documentation>
11939 </xs:annotation>
11940 </xs:attribute>
11941 <xs:attribute name="Name" type="LongFileNameType">
11942 <xs:annotation>
11943 <xs:documentation>
11944 The name for the embedded UI DLL when it is extracted from the MSI package and executed. (Windows Installer
11945 does not support the typical short filename and long filename combination for embedded UI files as it
11946 does for other kinds of files.) If this attribute is not specified the file name portion of the SourceFile
11947 attribute will be used.
11948 </xs:documentation>
11949 </xs:annotation>
11950 </xs:attribute>
11951 <xs:attribute name="SourceFile" type="xs:string" use="required">
11952 <xs:annotation>
11953 <xs:documentation>
11954 Path to the binary file that is the embedded UI. This must be a DLL that exports the following
11955 three entry points: InitializeEmbeddedUI, EmbeddedUIHandler and ShutdownEmbeddedUI.
11956 </xs:documentation>
11957 </xs:annotation>
11958 </xs:attribute>
11959 <xs:attribute name="SupportBasicUI" type="YesNoTypeUnion">
11960 <xs:annotation>
11961 <xs:documentation>Set yes to allow the Windows Installer to display the embedded UI during basic UI level installation.</xs:documentation>
11962 </xs:annotation>
11963 </xs:attribute>
11964 <xs:anyAttribute namespace="##other" processContents="lax">
11965 <xs:annotation>
11966 <xs:documentation>
11967 Extensibility point in the WiX XML Schema. Schema extensions can register additional
11968 attributes at this point in the schema.
11969 </xs:documentation>
11970 </xs:annotation>
11971 </xs:anyAttribute>
11972 </xs:complexType>
11973 </xs:element>
11974 <xs:element name="EmbeddedUIResource">
11975 <xs:annotation>
11976 <xs:documentation>
11977 Defines a resource for use by the embedded UI.
11978 </xs:documentation>
11979 <xs:appinfo>
11980 <xse:seeAlso ref="EmbeddedUI" />
11981 <xse:msiRef table="MsiEmbeddedUI" href="https://learn.microsoft.com/en-us/windows/win32/msi/msiembeddedui-table" />
11982 </xs:appinfo>
11983 </xs:annotation>
11984 <xs:complexType>
11985 <xs:choice minOccurs="0" maxOccurs="unbounded">
11986 <xs:any namespace="##other" processContents="lax">
11987 <xs:annotation>
11988 <xs:documentation>
11989 Extensibility point in the WiX XML Schema. Schema extensions can register additional
11990 elements at this point in the schema.
11991 </xs:documentation>
11992 </xs:annotation>
11993 </xs:any>
11994 </xs:choice>
11995 <xs:attribute name="Id" type="xs:string" use="required">
11996 <xs:annotation>
11997 <xs:documentation>Identifier for the embedded UI resource.</xs:documentation>
11998 </xs:annotation>
11999 </xs:attribute>
12000 <xs:attribute name="Name" type="LongFileNameType" use="required">
12001 <xs:annotation>
12002 <xs:documentation>
12003 The name for the resource when it is extracted from the MSI package for use by the embedded UI DLL. (Windows
12004 Installer does not support the typical short filename and long filename combination for embedded UI files
12005 as it does for other kinds of files.) If this attribute is not specified the Id attribute will be used.
12006 </xs:documentation>
12007 </xs:annotation>
12008 </xs:attribute>
12009 <xs:attribute name="SourceFile" type="xs:string" use="required">
12010 <xs:annotation>
12011 <xs:documentation>Path to the binary file that is the embedded UI resource.</xs:documentation>
12012 </xs:annotation>
12013 </xs:attribute>
12014 <xs:anyAttribute namespace="##other" processContents="lax">
12015 <xs:annotation>
12016 <xs:documentation>
12017 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12018 attributes at this point in the schema.
12019 </xs:documentation>
12020 </xs:annotation>
12021 </xs:anyAttribute>
12022 </xs:complexType>
12023 </xs:element>
12024 <xs:element name="Error">
12025 <xs:annotation>
12026 <xs:appinfo>
12027 <xse:msiRef table="Error" href="https://learn.microsoft.com/en-us/windows/win32/msi/error-table" />
12028 </xs:appinfo>
12029 </xs:annotation>
12030 <xs:complexType>
12031 <xs:choice minOccurs="0" maxOccurs="unbounded">
12032 <xs:any namespace="##other" processContents="lax">
12033 <xs:annotation>
12034 <xs:documentation>
12035 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12036 elements at this point in the schema.
12037 </xs:documentation>
12038 </xs:annotation>
12039 </xs:any>
12040 </xs:choice>
12041 <xs:attribute name="Id" type="Integer">
12042 <xs:annotation>
12043 <xs:documentation>Number of the error for which a message is being provided. See MSI SDK for error definitions.</xs:documentation>
12044 </xs:annotation>
12045 </xs:attribute>
12046 <xs:attribute name="Message" type="xs:string">
12047 <xs:annotation>
12048 <xs:documentation>Message to display for the specified error number.</xs:documentation>
12049 </xs:annotation>
12050 </xs:attribute>
12051 <xs:anyAttribute namespace="##other" processContents="lax">
12052 <xs:annotation>
12053 <xs:documentation>
12054 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12055 attributes at this point in the schema.
12056 </xs:documentation>
12057 </xs:annotation>
12058 </xs:anyAttribute>
12059 </xs:complexType>
12060 </xs:element>
12061 <xs:element name="Publish">
12062 <xs:annotation>
12063 <xs:appinfo>
12064 <xse:msiRef table="ControlEvent" href="https://learn.microsoft.com/en-us/windows/win32/msi/controlevent-table" />
12065 </xs:appinfo>
12066 </xs:annotation>
12067 <xs:complexType>
12068 <xs:choice minOccurs="0" maxOccurs="unbounded">
12069 <xs:any namespace="##other" processContents="lax">
12070 <xs:annotation>
12071 <xs:documentation>
12072 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12073 elements at this point in the schema.
12074 </xs:documentation>
12075 </xs:annotation>
12076 </xs:any>
12077 </xs:choice>
12078 <xs:attribute name="Condition" type="xs:string">
12079 <xs:annotation>
12080 <xs:documentation>Optional condition that determines whether the control event should be published.</xs:documentation>
12081 </xs:annotation>
12082 </xs:attribute>
12083 <xs:attribute name="Control" type="xs:string">
12084 <xs:annotation>
12085 <xs:documentation>
12086 The parent Control for this Publish element, should only be specified when this element is a child of the UI element.
12087 </xs:documentation>
12088 </xs:annotation>
12089 </xs:attribute>
12090 <xs:attribute name="Dialog" type="xs:string">
12091 <xs:annotation>
12092 <xs:documentation>
12093 The parent Dialog for this Publish element, should only be specified when this element is a child of the UI element.
12094 This attribute will create a reference to the specified Dialog, so an additional DialogRef is not necessary.
12095 </xs:documentation>
12096 </xs:annotation>
12097 </xs:attribute>
12098 <xs:attribute name="Event" type="xs:string">
12099 <xs:annotation>
12100 <xs:documentation>
12101 Set this attribute's value to one of the standard control events to trigger that event.
12102 Either this attribute or the Property attribute must be set, but not both at the same time.
12103 </xs:documentation>
12104 </xs:annotation>
12105 </xs:attribute>
12106 <xs:attribute name="Order" type="xs:string">
12107 <xs:annotation>
12108 <xs:documentation>
12109 This attribute should only need to be set if this element is nested under a UI element in order to
12110 control the order in which this publish event will be started.
12111 If this element is nested under a Control element, the default value will be one greater than any
12112 previous Publish element's order (the first element's default value is 1).
12113 If this element is nested under a UI element, the default value is always 1 (it does not get a
12114 default value based on any previous Publish elements).
12115 </xs:documentation>
12116 </xs:annotation>
12117 </xs:attribute>
12118 <xs:attribute name="Property" type="xs:string">
12119 <xs:annotation>
12120 <xs:documentation>
12121 Set this attribute's value to a property name to set that property.
12122 Either this attribute or the Event attribute must be set, but not both at the same time.
12123 </xs:documentation>
12124 </xs:annotation>
12125 </xs:attribute>
12126 <xs:attribute name="Value" type="xs:string">
12127 <xs:annotation>
12128 <xs:documentation>
12129 If the Property attribute is specified, set the value of this attribute to the new value for the property.
12130 To set a property to null, do not set this attribute (the ControlEvent Argument column will be set to '{}').
12131 Otherwise, this attribute's value should be the argument for the event specified in the Event attribute.
12132 If the event doesn't take an attribute, a common value to use is "0".
12133 </xs:documentation>
12134 </xs:annotation>
12135 </xs:attribute>
12136 <xs:anyAttribute namespace="##other" processContents="lax">
12137 <xs:annotation>
12138 <xs:documentation>
12139 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12140 attributes at this point in the schema.
12141 </xs:documentation>
12142 </xs:annotation>
12143 </xs:anyAttribute>
12144 </xs:complexType>
12145 </xs:element>
12146 <xs:element name="Subscribe">
12147 <xs:annotation>
12148 <xs:documentation>
12149 Sets attributes for events in the EventMapping table
12150 </xs:documentation>
12151 <xs:appinfo>
12152 <xse:msiRef table="EventMapping" href="https://learn.microsoft.com/en-us/windows/win32/msi/eventmapping-table" />
12153 </xs:appinfo>
12154 </xs:annotation>
12155 <xs:complexType>
12156 <xs:choice minOccurs="0" maxOccurs="unbounded">
12157 <xs:any namespace="##other" processContents="lax">
12158 <xs:annotation>
12159 <xs:documentation>
12160 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12161 elements at this point in the schema.
12162 </xs:documentation>
12163 </xs:annotation>
12164 </xs:any>
12165 </xs:choice>
12166 <xs:attribute name="Event" type="xs:string">
12167 <xs:annotation>
12168 <xs:documentation>must be one of the standard control events'</xs:documentation>
12169 </xs:annotation>
12170 </xs:attribute>
12171 <xs:attribute name="Attribute" type="xs:string">
12172 <xs:annotation>
12173 <xs:documentation>if not present can only handle enable, disable, hide, unhide events</xs:documentation>
12174 </xs:annotation>
12175 </xs:attribute>
12176 <xs:anyAttribute namespace="##other" processContents="lax">
12177 <xs:annotation>
12178 <xs:documentation>
12179 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12180 attributes at this point in the schema.
12181 </xs:documentation>
12182 </xs:annotation>
12183 </xs:anyAttribute>
12184 </xs:complexType>
12185 </xs:element>
12186 <xs:element name="Text">
12187 <xs:annotation>
12188 <xs:documentation>
12189 An alternative to using the Text attribute on the Control element.
12190 </xs:documentation>
12191 </xs:annotation>
12192 <xs:complexType>
12193 <xs:attribute name="SourceFile" type="xs:string">
12194 <xs:annotation>
12195 <xs:documentation>
12196 Instructs the text to be imported from a file instead of the element value during the binding process.
12197 Cannot be specified with the Value attribute.
12198 </xs:documentation>
12199 </xs:annotation>
12200 </xs:attribute>
12201 <xs:attribute name="Value" type="xs:string">
12202 <xs:annotation>
12203 <xs:documentation>
12204 The value of the control's text. Cannot be specified with the SourceFile attribute.
12205 </xs:documentation>
12206 </xs:annotation>
12207 </xs:attribute>
12208 <xs:anyAttribute namespace="##other" processContents="lax">
12209 <xs:annotation>
12210 <xs:documentation>
12211 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12212 attributes at this point in the schema.
12213 </xs:documentation>
12214 </xs:annotation>
12215 </xs:anyAttribute>
12216 </xs:complexType>
12217 </xs:element>
12218 <xs:element name="Control">
12219 <xs:annotation>
12220 <xs:appinfo>
12221 <xse:msiRef table="Control" href="https://docs.microsoft.com/en-us/windows/win32/msi/control-table" />
12222 <xse:msiRef table="ComboBox" href="https://docs.microsoft.com/en-us/windows/win32/msi/combobox-table" />
12223 <xse:msiRef table="Dialog" href="https://docs.microsoft.com/en-us/windows/win32/msi/dialog-table" />
12224 <xse:msiRef table="ListBox" href="https://docs.microsoft.com/en-us/windows/win32/msi/listbox-table" />
12225 <xse:msiRef table="ListView" href="https://docs.microsoft.com/en-us/windows/win32/msi/listview-table" />
12226 <xse:msiRef table="RadioButton" href="https://docs.microsoft.com/en-us/windows/win32/msi/radiobutton-table" />
12227 </xs:appinfo>
12228 <xs:documentation>Contains the controls that appear on each dialog.</xs:documentation>
12229 </xs:annotation>
12230 <xs:complexType>
12231 <xs:sequence>
12232 <xs:element ref="Text" minOccurs="0">
12233 <xs:annotation>
12234 <xs:documentation>Alternative to Text attribute.</xs:documentation>
12235 </xs:annotation>
12236 </xs:element>
12237 <xs:element ref="ComboBox" minOccurs="0">
12238 <xs:annotation>
12239 <xs:documentation>ComboBox table with ListItem children</xs:documentation>
12240 </xs:annotation>
12241 </xs:element>
12242 <xs:element ref="ListBox" minOccurs="0">
12243 <xs:annotation>
12244 <xs:documentation>ListBox table with ListItem children</xs:documentation>
12245 </xs:annotation>
12246 </xs:element>
12247 <xs:element ref="ListView" minOccurs="0">
12248 <xs:annotation>
12249 <xs:documentation>ListView table with ListItem children</xs:documentation>
12250 </xs:annotation>
12251 </xs:element>
12252 <xs:element ref="RadioButtonGroup" minOccurs="0">
12253 <xs:annotation>
12254 <xs:documentation>RadioButton table with RadioButton children</xs:documentation>
12255 </xs:annotation>
12256 </xs:element>
12257 <xs:element ref="Property" minOccurs="0">
12258 <xs:annotation>
12259 <xs:documentation>Property table entry for the Property table column associated with this control</xs:documentation>
12260 </xs:annotation>
12261 </xs:element>
12262 <xs:element ref="Binary" minOccurs="0">
12263 <xs:annotation>
12264 <xs:documentation>Icon referenced in icon column of row</xs:documentation>
12265 </xs:annotation>
12266 </xs:element>
12267 <xs:choice minOccurs="0" maxOccurs="unbounded">
12268 <xs:annotation>
12269 <xs:documentation>Child elements affecting operation of this control</xs:documentation>
12270 </xs:annotation>
12271 <xs:element ref="Publish" />
12272 <xs:element ref="Subscribe" />
12273 <xs:any namespace="##other" processContents="lax">
12274 <xs:annotation>
12275 <xs:documentation>
12276 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12277 elements at this point in the schema.
12278 </xs:documentation>
12279 </xs:annotation>
12280 </xs:any>
12281 </xs:choice>
12282 </xs:sequence>
12283 <xs:attribute name="Id" use="required" type="xs:string">
12284 <xs:annotation>
12285 <xs:documentation>Combined with the Dialog Id to make up the primary key of the Control table.</xs:documentation>
12286 </xs:annotation>
12287 </xs:attribute>
12288 <xs:attribute name="Type" use="required" type="xs:string">
12289 <xs:annotation>
12290 <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>
12291 </xs:annotation>
12292 </xs:attribute>
12293 <xs:attribute name="X" use="required" type="LocalizableInteger">
12294 <xs:annotation>
12295 <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>
12296 </xs:annotation>
12297 </xs:attribute>
12298 <xs:attribute name="Y" use="required" type="LocalizableInteger">
12299 <xs:annotation>
12300 <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>
12301 </xs:annotation>
12302 </xs:attribute>
12303 <xs:attribute name="Width" use="required" type="LocalizableInteger">
12304 <xs:annotation>
12305 <xs:documentation>Width of the rectangular boundary of the control. This must be a non-negative number.</xs:documentation>
12306 </xs:annotation>
12307 </xs:attribute>
12308 <xs:attribute name="Height" use="required" type="LocalizableInteger">
12309 <xs:annotation>
12310 <xs:documentation>Height of the rectangular boundary of the control. This must be a non-negative number.</xs:documentation>
12311 </xs:annotation>
12312 </xs:attribute>
12313 <xs:attribute name="Property" type="xs:string">
12314 <xs:annotation>
12315 <xs:documentation>The name of a defined property to be linked to this control. This column is required for active controls.</xs:documentation>
12316 </xs:annotation>
12317 </xs:attribute>
12318 <xs:attribute name="Text" type="xs:string">
12319 <xs:annotation>
12320 <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>
12321 </xs:annotation>
12322 </xs:attribute>
12323 <xs:attribute name="Help" type="xs:string">
12324 <xs:annotation>
12325 <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>
12326 </xs:annotation>
12327 </xs:attribute>
12328 <xs:attribute name="ToolTip" type="xs:string">
12329 <xs:annotation>
12330 <xs:documentation>The string used for the Tooltip.</xs:documentation>
12331 </xs:annotation>
12332 </xs:attribute>
12333 <xs:attribute name="CheckBoxValue" type="xs:string">
12334 <xs:annotation>
12335 <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>
12336 </xs:annotation>
12337 </xs:attribute>
12338 <xs:attribute name="CheckBoxPropertyRef" type="xs:string">
12339 <xs:annotation>
12340 <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>
12341 </xs:annotation>
12342 </xs:attribute>
12343
12344 <xs:attribute name="TabSkip" type="YesNoTypeUnion">
12345 <xs:annotation>
12346 <xs:documentation>Set this attribute to "yes" to cause this Control to be skipped in the tab sequence.</xs:documentation>
12347 </xs:annotation>
12348 </xs:attribute>
12349 <xs:attribute name="Default" type="YesNoTypeUnion">
12350 <xs:annotation>
12351 <xs:documentation>Set this attribute to "yes" to cause this Control to be invoked by the return key.</xs:documentation>
12352 </xs:annotation>
12353 </xs:attribute>
12354 <xs:attribute name="Cancel" type="YesNoTypeUnion">
12355 <xs:annotation>
12356 <xs:documentation>Set this attribute to "yes" to cause this Control to be invoked by the escape key.</xs:documentation>
12357 </xs:annotation>
12358 </xs:attribute>
12359
12360 <xs:attribute name="DefaultCondition">
12361 <xs:annotation>
12362 <xs:documentation>
12363 When the condition expression evaluates to true, set the Control as the default.
12364 </xs:documentation>
12365 </xs:annotation>
12366 </xs:attribute>
12367 <xs:attribute name="EnableCondition">
12368 <xs:annotation>
12369 <xs:documentation>
12370 When the condition expression evaluates to true, enable the Control.
12371 </xs:documentation>
12372 </xs:annotation>
12373 </xs:attribute>
12374 <xs:attribute name="DisableCondition">
12375 <xs:annotation>
12376 <xs:documentation>
12377 When the condition expression evaluates to true, disable the Control.
12378 </xs:documentation>
12379 </xs:annotation>
12380 </xs:attribute>
12381 <xs:attribute name="HideCondition">
12382 <xs:annotation>
12383 <xs:documentation>
12384 When the condition expression evaluates to true, hide the Control.
12385 </xs:documentation>
12386 </xs:annotation>
12387 </xs:attribute>
12388 <xs:attribute name="ShowCondition">
12389 <xs:annotation>
12390 <xs:documentation>
12391 When the condition expression evaluates to true, show the Control.
12392 </xs:documentation>
12393 </xs:annotation>
12394 </xs:attribute>
12395 <xs:attribute name="Hidden" type="YesNoTypeUnion">
12396 <xs:annotation>
12397 <xs:documentation>Set this attribute to "yes" to cause the Control to be hidden.</xs:documentation>
12398 </xs:annotation>
12399 </xs:attribute>
12400 <xs:attribute name="Disabled" type="YesNoTypeUnion">
12401 <xs:annotation>
12402 <xs:documentation>Set this attribute to "yes" to cause the Control to be disabled.</xs:documentation>
12403 </xs:annotation>
12404 </xs:attribute>
12405 <xs:attribute name="Sunken" type="YesNoTypeUnion">
12406 <xs:annotation>
12407 <xs:documentation>Set this attribute to "yes" to cause the Control to be sunken.</xs:documentation>
12408 </xs:annotation>
12409 </xs:attribute>
12410 <xs:attribute name="Indirect" type="YesNoTypeUnion">
12411 <xs:annotation>
12412 <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>
12413 </xs:annotation>
12414 </xs:attribute>
12415 <xs:attribute name="Integer" type="YesNoTypeUnion">
12416 <xs:annotation>
12417 <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>
12418 </xs:annotation>
12419 </xs:attribute>
12420 <xs:attribute name="RightToLeft" type="YesNoTypeUnion">
12421 <xs:annotation>
12422 <xs:documentation>Set this attribute to "yes" to cause the Control to display from right to left.</xs:documentation>
12423 </xs:annotation>
12424 </xs:attribute>
12425 <xs:attribute name="RightAligned" type="YesNoTypeUnion">
12426 <xs:annotation>
12427 <xs:documentation>Set this attribute to "yes" to cause the Control to be right aligned.</xs:documentation>
12428 </xs:annotation>
12429 </xs:attribute>
12430 <xs:attribute name="LeftScroll" type="YesNoTypeUnion">
12431 <xs:annotation>
12432 <xs:documentation>Set this attribute to "yes" to cause the scroll bar to display on the left side of the Control.</xs:documentation>
12433 </xs:annotation>
12434 </xs:attribute>
12435
12436 <xs:attribute name="Transparent" type="YesNoTypeUnion">
12437 <xs:annotation>
12438 <xs:documentation>This attribute is only valid for Text Controls.</xs:documentation>
12439 </xs:annotation>
12440 </xs:attribute>
12441 <xs:attribute name="NoPrefix" type="YesNoTypeUnion">
12442 <xs:annotation>
12443 <xs:documentation>This attribute is only valid for Text Controls.</xs:documentation>
12444 </xs:annotation>
12445 </xs:attribute>
12446 <xs:attribute name="NoWrap" type="YesNoTypeUnion">
12447 <xs:annotation>
12448 <xs:documentation>This attribute is only valid for Text Controls.</xs:documentation>
12449 </xs:annotation>
12450 </xs:attribute>
12451 <xs:attribute name="FormatSize" type="YesNoTypeUnion">
12452 <xs:annotation>
12453 <xs:documentation>This attribute is only valid for Text Controls.</xs:documentation>
12454 </xs:annotation>
12455 </xs:attribute>
12456 <xs:attribute name="UserLanguage" type="YesNoTypeUnion">
12457 <xs:annotation>
12458 <xs:documentation>This attribute is only valid for Text Controls.</xs:documentation>
12459 </xs:annotation>
12460 </xs:attribute>
12461 <xs:attribute name="Multiline" type="YesNoTypeUnion">
12462 <xs:annotation>
12463 <xs:documentation>This attribute is only valid for Edit Controls.</xs:documentation>
12464 </xs:annotation>
12465 </xs:attribute>
12466 <xs:attribute name="Password" type="YesNoTypeUnion">
12467 <xs:annotation>
12468 <xs:documentation>This attribute is only valid for Edit Controls.</xs:documentation>
12469 </xs:annotation>
12470 </xs:attribute>
12471 <xs:attribute name="ProgressBlocks" type="YesNoTypeUnion">
12472 <xs:annotation>
12473 <xs:documentation>This attribute is only valid for ProgressBar Controls.</xs:documentation>
12474 </xs:annotation>
12475 </xs:attribute>
12476 <xs:attribute name="Removable" type="YesNoTypeUnion">
12477 <xs:annotation>
12478 <xs:documentation>This attribute is only valid for Volume and Directory Controls.</xs:documentation>
12479 </xs:annotation>
12480 </xs:attribute>
12481 <xs:attribute name="Fixed" type="YesNoTypeUnion">
12482 <xs:annotation>
12483 <xs:documentation>This attribute is only valid for Volume and Directory Controls.</xs:documentation>
12484 </xs:annotation>
12485 </xs:attribute>
12486 <xs:attribute name="Remote" type="YesNoTypeUnion">
12487 <xs:annotation>
12488 <xs:documentation>This attribute is only valid for Volume and Directory Controls.</xs:documentation>
12489 </xs:annotation>
12490 </xs:attribute>
12491 <xs:attribute name="CDROM" type="YesNoTypeUnion">
12492 <xs:annotation>
12493 <xs:documentation>This attribute is only valid for Volume and Directory Controls.</xs:documentation>
12494 </xs:annotation>
12495 </xs:attribute>
12496 <xs:attribute name="RAMDisk" type="YesNoTypeUnion">
12497 <xs:annotation>
12498 <xs:documentation>This attribute is only valid for Volume and Directory Controls.</xs:documentation>
12499 </xs:annotation>
12500 </xs:attribute>
12501 <xs:attribute name="Floppy" type="YesNoTypeUnion">
12502 <xs:annotation>
12503 <xs:documentation>This attribute is only valid for Volume and Directory Controls.</xs:documentation>
12504 </xs:annotation>
12505 </xs:attribute>
12506 <xs:attribute name="ShowRollbackCost" type="YesNoTypeUnion">
12507 <xs:annotation>
12508 <xs:documentation>This attribute is only valid for VolumeCostList Controls.</xs:documentation>
12509 </xs:annotation>
12510 </xs:attribute>
12511 <xs:attribute name="Sorted" type="YesNoTypeUnion">
12512 <xs:annotation>
12513 <xs:documentation>
12514 This attribute is only valid for ListBox, ListView, and ComboBox Controls. Set
12515 the value of this attribute to "yes" to have entries appear in the order specified under the Control.
12516 If the attribute value is "no" or absent the entries in the control will appear in alphabetical order.
12517 </xs:documentation>
12518 </xs:annotation>
12519 </xs:attribute>
12520 <xs:attribute name="ComboList" type="YesNoTypeUnion">
12521 <xs:annotation>
12522 <xs:documentation>This attribute is only valid for ComboBox Controls.</xs:documentation>
12523 </xs:annotation>
12524 </xs:attribute>
12525 <xs:attribute name="Image" type="YesNoTypeUnion">
12526 <xs:annotation>
12527 <xs:documentation>This attribute is only valid for RadioButton, PushButton, and Icon Controls.</xs:documentation>
12528 </xs:annotation>
12529 </xs:attribute>
12530 <xs:attribute name="IconSize">
12531 <xs:annotation>
12532 <xs:documentation>This attribute is only valid for RadioButton, PushButton, and Icon Controls.</xs:documentation>
12533 </xs:annotation>
12534 <xs:simpleType>
12535 <xs:restriction base="xs:NMTOKEN">
12536 <xs:enumeration value="16" />
12537 <xs:enumeration value="32" />
12538 <xs:enumeration value="48" />
12539 </xs:restriction>
12540 </xs:simpleType>
12541 </xs:attribute>
12542 <xs:attribute name="FixedSize" type="YesNoTypeUnion">
12543 <xs:annotation>
12544 <xs:documentation>This attribute is only valid for RadioButton, PushButton, and Icon Controls.</xs:documentation>
12545 </xs:annotation>
12546 </xs:attribute>
12547 <xs:attribute name="Icon" type="YesNoTypeUnion">
12548 <xs:annotation>
12549 <xs:documentation>This attribute is only valid for RadioButton and PushButton Controls.</xs:documentation>
12550 </xs:annotation>
12551 </xs:attribute>
12552 <xs:attribute name="Bitmap" type="YesNoTypeUnion">
12553 <xs:annotation>
12554 <xs:documentation>This attribute is only valid for RadioButton and PushButton Controls.</xs:documentation>
12555 </xs:annotation>
12556 </xs:attribute>
12557 <xs:attribute name="PushLike" type="YesNoTypeUnion">
12558 <xs:annotation>
12559 <xs:documentation>This attribute is only valid for RadioButton and Checkbox Controls.</xs:documentation>
12560 </xs:annotation>
12561 </xs:attribute>
12562 <xs:attribute name="HasBorder" type="YesNoTypeUnion">
12563 <xs:annotation>
12564 <xs:documentation>This attribute is only valid for RadioButton Controls.</xs:documentation>
12565 </xs:annotation>
12566 </xs:attribute>
12567 <xs:attribute name="ElevationShield" type="YesNoTypeUnion">
12568 <xs:annotation>
12569 <xs:documentation>
12570 This attribute is only valid for PushButton controls.
12571 Set this attribute to "yes" to add the User Account Control (UAC) elevation icon (shield icon) to the PushButton control.
12572 If this attribute's value is "yes" and the installation is not yet running with elevated privileges,
12573 the pushbutton control is created using the User Account Control (UAC) elevation icon (shield icon).
12574 If this attribute's value is "yes" and the installation is already running with elevated privileges,
12575 the pushbutton control is created using the other icon attributes.
12576 Otherwise, the pushbutton control is created using the other icon attributes.
12577 </xs:documentation>
12578 </xs:annotation>
12579 </xs:attribute>
12580 <xs:anyAttribute namespace="##other" processContents="lax">
12581 <xs:annotation>
12582 <xs:documentation>
12583 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12584 attributes at this point in the schema.
12585 </xs:documentation>
12586 </xs:annotation>
12587 </xs:anyAttribute>
12588 </xs:complexType>
12589 </xs:element>
12590 <xs:element name="Billboard">
12591 <xs:annotation>
12592 <xs:documentation>
12593 Billboard to display during install of a Feature
12594 </xs:documentation>
12595 <xs:appinfo>
12596 <xse:msiRef table="Billboard" href="https://learn.microsoft.com/en-us/windows/win32/msi/billboard-table" />
12597 <xse:msiRef table="BBControl" href="https://learn.microsoft.com/en-us/windows/win32/msi/bbcontrol-table" />
12598 </xs:appinfo>
12599 </xs:annotation>
12600 <xs:complexType>
12601 <xs:sequence>
12602 <xs:element ref="Control" minOccurs="0" maxOccurs="unbounded">
12603 <xs:annotation>
12604 <xs:documentation>Only controls of static type such as: Text, Bitmap, Icon, or custom control can be placed on a billboard.</xs:documentation>
12605 </xs:annotation>
12606 </xs:element>
12607 </xs:sequence>
12608 <xs:attribute name="Id" type="xs:string" use="required">
12609 <xs:annotation>
12610 <xs:documentation>Unique identifier for the Billboard.</xs:documentation>
12611 </xs:annotation>
12612 </xs:attribute>
12613 <xs:attribute name="Feature" type="xs:string">
12614 <xs:annotation>
12615 <xs:documentation>Feature whose state determines if the Billboard is shown.</xs:documentation>
12616 </xs:annotation>
12617 </xs:attribute>
12618 <xs:anyAttribute namespace="##other" processContents="lax">
12619 <xs:annotation>
12620 <xs:documentation>
12621 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12622 attributes at this point in the schema.
12623 </xs:documentation>
12624 </xs:annotation>
12625 </xs:anyAttribute>
12626 </xs:complexType>
12627 </xs:element>
12628 <xs:element name="BillboardAction">
12629 <xs:annotation>
12630 <xs:documentation>
12631 Billboard action during which child Billboards are displayed
12632 </xs:documentation>
12633 <xs:appinfo>
12634 <xse:msiRef table="Billboard" href="https://learn.microsoft.com/en-us/windows/win32/msi/billboard-table" />
12635 <xse:msiRef table="BBControl" href="https://learn.microsoft.com/en-us/windows/win32/msi/bbcontrol-table" />
12636 </xs:appinfo>
12637 </xs:annotation>
12638 <xs:complexType>
12639 <xs:sequence>
12640 <xs:element ref="Billboard" maxOccurs="unbounded">
12641 <xs:annotation>
12642 <xs:documentation>Order of Billboard elements determines order of display</xs:documentation>
12643 </xs:annotation>
12644 </xs:element>
12645 </xs:sequence>
12646 <xs:attribute name="Id" type="xs:string" use="required">
12647 <xs:annotation>
12648 <xs:documentation>Action name that determines when the Billboard should be shown.</xs:documentation>
12649 </xs:annotation>
12650 </xs:attribute>
12651 <xs:anyAttribute namespace="##other" processContents="lax">
12652 <xs:annotation>
12653 <xs:documentation>
12654 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12655 attributes at this point in the schema.
12656 </xs:documentation>
12657 </xs:annotation>
12658 </xs:anyAttribute>
12659 </xs:complexType>
12660 </xs:element>
12661 <xs:element name="Dialog">
12662 <xs:annotation>
12663 <xs:appinfo>
12664 <xse:msiRef table="Control" href="https://docs.microsoft.com/en-us/windows/win32/msi/control-table" />
12665 <xse:msiRef table="ComboBox" href="https://docs.microsoft.com/en-us/windows/win32/msi/combobox-table" />
12666 <xse:msiRef table="Dialog" href="https://docs.microsoft.com/en-us/windows/win32/msi/dialog-table" />
12667 <xse:msiRef table="ListBox" href="https://docs.microsoft.com/en-us/windows/win32/msi/listbox-table" />
12668 <xse:msiRef table="ListView" href="https://docs.microsoft.com/en-us/windows/win32/msi/listview-table" />
12669 <xse:msiRef table="RadioButton" href="https://docs.microsoft.com/en-us/windows/win32/msi/radiobutton-table" />
12670 </xs:appinfo>
12671 <xs:documentation>
12672 Defines a dialog box in the Dialog Table.
12673 </xs:documentation>
12674 </xs:annotation>
12675 <xs:complexType>
12676 <xs:choice minOccurs="0" maxOccurs="unbounded">
12677 <xs:element ref="Control">
12678 <xs:annotation>
12679 <xs:documentation>Control elements belonging to this dialog.</xs:documentation>
12680 </xs:annotation>
12681 </xs:element>
12682 <xs:any namespace="##other" processContents="lax">
12683 <xs:annotation>
12684 <xs:documentation>
12685 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12686 elements at this point in the schema.
12687 </xs:documentation>
12688 </xs:annotation>
12689 </xs:any>
12690 </xs:choice>
12691 <xs:attribute name="Id" type="xs:string" use="required">
12692 <xs:annotation>
12693 <xs:documentation>Unique identifier for the dialog.</xs:documentation>
12694 </xs:annotation>
12695 </xs:attribute>
12696 <xs:attribute name="X" type="Integer">
12697 <xs:annotation>
12698 <xs:documentation>Horizontal placement of the dialog box as a percentage of screen width. The default value is 50.</xs:documentation>
12699 </xs:annotation>
12700 </xs:attribute>
12701 <xs:attribute name="Y" type="Integer">
12702 <xs:annotation>
12703 <xs:documentation>Vertical placement of the dialog box as a percentage of screen height. The default value is 50.</xs:documentation>
12704 </xs:annotation>
12705 </xs:attribute>
12706 <xs:attribute name="Width" use="required" type="Integer">
12707 <xs:annotation>
12708 <xs:documentation>The width of the dialog box in dialog units.</xs:documentation>
12709 </xs:annotation>
12710 </xs:attribute>
12711 <xs:attribute name="Height" use="required" type="Integer">
12712 <xs:annotation>
12713 <xs:documentation>The height of the dialog box in dialog units.</xs:documentation>
12714 </xs:annotation>
12715 </xs:attribute>
12716 <xs:attribute name="Title" type="xs:string">
12717 <xs:annotation>
12718 <xs:documentation>The title of the dialog box.</xs:documentation>
12719 </xs:annotation>
12720 </xs:attribute>
12721
12722 <xs:attribute name="Hidden" type="YesNoTypeUnion">
12723 <xs:annotation>
12724 <xs:documentation>Used to hide the dialog.</xs:documentation>
12725 </xs:annotation>
12726 </xs:attribute>
12727 <xs:attribute name="Modeless" type="YesNoTypeUnion">
12728 <xs:annotation>
12729 <xs:documentation>Used to set the dialog as modeless.</xs:documentation>
12730 </xs:annotation>
12731 </xs:attribute>
12732 <xs:attribute name="NoMinimize" type="YesNoTypeUnion">
12733 <xs:annotation>
12734 <xs:documentation>Used to specify if the dialog can be minimized.</xs:documentation>
12735 </xs:annotation>
12736 </xs:attribute>
12737 <xs:attribute name="SystemModal" type="YesNoTypeUnion">
12738 <xs:annotation>
12739 <xs:documentation>Used to set the dialog as system modal.</xs:documentation>
12740 </xs:annotation>
12741 </xs:attribute>
12742 <xs:attribute name="KeepModeless" type="YesNoTypeUnion">
12743 <xs:annotation>
12744 <xs:documentation>Keep modeless dialogs alive when this dialog is created through DoAction.</xs:documentation>
12745 </xs:annotation>
12746 </xs:attribute>
12747 <xs:attribute name="TrackDiskSpace" type="YesNoTypeUnion">
12748 <xs:annotation>
12749 <xs:documentation>Have the dialog periodically call the installer to check if available disk space has changed.</xs:documentation>
12750 </xs:annotation>
12751 </xs:attribute>
12752 <xs:attribute name="CustomPalette" type="YesNoTypeUnion">
12753 <xs:annotation>
12754 <xs:documentation>Used to specify if pictures in the dialog box are rendered with a custom palette.</xs:documentation>
12755 </xs:annotation>
12756 </xs:attribute>
12757 <xs:attribute name="RightToLeft" type="YesNoTypeUnion">
12758 <xs:annotation>
12759 <xs:documentation>Used to specify if the text in the dialog should be displayed in right to left reading order.</xs:documentation>
12760 </xs:annotation>
12761 </xs:attribute>
12762 <xs:attribute name="RightAligned" type="YesNoTypeUnion">
12763 <xs:annotation>
12764 <xs:documentation>Align text on the right.</xs:documentation>
12765 </xs:annotation>
12766 </xs:attribute>
12767 <xs:attribute name="LeftScroll" type="YesNoTypeUnion">
12768 <xs:annotation>
12769 <xs:documentation>Used to align the scroll bar on the left.</xs:documentation>
12770 </xs:annotation>
12771 </xs:attribute>
12772 <xs:attribute name="ErrorDialog" type="YesNoTypeUnion">
12773 <xs:annotation>
12774 <xs:documentation>Specifies this dialog as an error dialog.</xs:documentation>
12775 </xs:annotation>
12776 </xs:attribute>
12777 <xs:anyAttribute namespace="##other" processContents="lax">
12778 <xs:annotation>
12779 <xs:documentation>
12780 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12781 attributes at this point in the schema.
12782 </xs:documentation>
12783 </xs:annotation>
12784 </xs:anyAttribute>
12785 </xs:complexType>
12786 </xs:element>
12787 <xs:element name="DialogRef">
12788 <xs:annotation>
12789 <xs:appinfo>
12790 <xse:seeAlso ref="Dialog" />
12791 </xs:appinfo>
12792 <xs:documentation>
12793 Reference to a Dialog. This will cause the entire referenced section's contents
12794 to be included in the installer database.
12795 </xs:documentation>
12796 </xs:annotation>
12797 <xs:complexType>
12798 <xs:attribute name="Id" type="xs:string" use="required">
12799 <xs:annotation>
12800 <xs:documentation>The identifier of the Dialog to reference.</xs:documentation>
12801 </xs:annotation>
12802 </xs:attribute>
12803 <xs:anyAttribute namespace="##other" processContents="lax">
12804 <xs:annotation>
12805 <xs:documentation>
12806 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12807 attributes at this point in the schema.
12808 </xs:documentation>
12809 </xs:annotation>
12810 </xs:anyAttribute>
12811 </xs:complexType>
12812 </xs:element>
12813 <xs:element name="ProgressText">
12814 <xs:annotation>
12815 <xs:appinfo>
12816 <xse:msiRef table="ActionText" href="https://learn.microsoft.com/en-us/windows/win32/msi/actiontext-table" />
12817 </xs:appinfo>
12818 </xs:annotation>
12819 <xs:complexType>
12820 <xs:attribute name="Action" type="xs:string" use="required" />
12821 <xs:attribute name="Message" type="xs:string">
12822 <xs:annotation>
12823 <xs:documentation>Element value is progress message text for action.</xs:documentation>
12824 </xs:annotation>
12825 </xs:attribute>
12826 <xs:attribute name="Template" type="xs:string">
12827 <xs:annotation>
12828 <xs:documentation>Used to format ActionData messages from action processing</xs:documentation>
12829 </xs:annotation>
12830 </xs:attribute>
12831 </xs:complexType>
12832 </xs:element>
12833 <xs:element name="TextStyle">
12834 <xs:annotation>
12835 <xs:appinfo>
12836 <xse:msiRef table="TextStyle" href="https://docs.microsoft.com/en-us/windows/win32/msi/textstyle-table" />
12837 </xs:appinfo>
12838 </xs:annotation>
12839 <xs:complexType>
12840 <xs:attribute name="Id" type="xs:string">
12841 <xs:annotation>
12842 <xs:documentation>
12843 An optional identifier for the text style in the database. If one is not specified,
12844 one will be generated.
12845 </xs:documentation>
12846 </xs:annotation>
12847 </xs:attribute>
12848 <xs:attribute name="FaceName" use="required" type="xs:string">
12849 <xs:annotation>
12850 <xs:documentation>The face name of the font.</xs:documentation>
12851 </xs:annotation>
12852 </xs:attribute>
12853 <xs:attribute name="Size" use="required" type="xs:string">
12854 <xs:annotation>
12855 <xs:documentation>The font's size.</xs:documentation>
12856 </xs:annotation>
12857 </xs:attribute>
12858 <xs:attribute name="Red" type="Integer">
12859 <xs:annotation>
12860 <xs:documentation>A value from 0 to 255 to indicate the amount of red in the font.</xs:documentation>
12861 </xs:annotation>
12862 </xs:attribute>
12863 <xs:attribute name="Green" type="Integer">
12864 <xs:annotation>
12865 <xs:documentation>A value from 0 to 255 to indicate the amount of green in the font.</xs:documentation>
12866 </xs:annotation>
12867 </xs:attribute>
12868 <xs:attribute name="Blue" type="Integer">
12869 <xs:annotation>
12870 <xs:documentation>A value from 0 to 255 to indicate the amount of blue in the font.</xs:documentation>
12871 </xs:annotation>
12872 </xs:attribute>
12873 <xs:attribute name="Bold" type="YesNoTypeUnion">
12874 <xs:annotation>
12875 <xs:documentation>Indicates whether the font should be bold. Default is 'false'.</xs:documentation>
12876 </xs:annotation>
12877 </xs:attribute>
12878 <xs:attribute name="Italic" type="YesNoTypeUnion">
12879 <xs:annotation>
12880 <xs:documentation>Indicates whether the font should be italic. Default is 'false'.</xs:documentation>
12881 </xs:annotation>
12882 </xs:attribute>
12883 <xs:attribute name="Underline" type="YesNoTypeUnion">
12884 <xs:annotation>
12885 <xs:documentation>Indicates whether the font should be underline. Default is 'false'.</xs:documentation>
12886 </xs:annotation>
12887 </xs:attribute>
12888 <xs:attribute name="Strike" type="YesNoTypeUnion">
12889 <xs:annotation>
12890 <xs:documentation>Indicates whether the font should be strikethrough. Default is 'false'.</xs:documentation>
12891 </xs:annotation>
12892 </xs:attribute>
12893 <xs:anyAttribute namespace="##other" processContents="lax">
12894 <xs:annotation>
12895 <xs:documentation>
12896 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12897 attributes at this point in the schema.
12898 </xs:documentation>
12899 </xs:annotation>
12900 </xs:anyAttribute>
12901 </xs:complexType>
12902 </xs:element>
12903 <xs:element name="ListItem">
12904 <xs:annotation>
12905 <xs:documentation>
12906 The value (and optional text) associated with an item in a ComboBox, ListBox, or ListView.
12907 </xs:documentation>
12908 <xs:appinfo>
12909 <xse:msiRef table="ComboBox" href="https://docs.microsoft.com/en-us/windows/win32/msi/combobox-table" />
12910 <xse:msiRef table="ListBox" href="https://docs.microsoft.com/en-us/windows/win32/msi/listbox-table" />
12911 <xse:msiRef table="ListView" href="https://docs.microsoft.com/en-us/windows/win32/msi/listview-table" />
12912 </xs:appinfo>
12913 </xs:annotation>
12914 <xs:complexType>
12915 <xs:attribute name="Value" type="xs:string" use="required">
12916 <xs:annotation>
12917 <xs:documentation>
12918 The value assigned to the associated ComboBox, ListBox, or ListView property if this item is selected.
12919 </xs:documentation>
12920 </xs:annotation>
12921 </xs:attribute>
12922 <xs:attribute name="Text" type="xs:string">
12923 <xs:annotation>
12924 <xs:documentation>
12925 The localizable, visible text to be assigned to the item.
12926 If not specified, this will default to the value of the Value attribute.
12927 </xs:documentation>
12928 </xs:annotation>
12929 </xs:attribute>
12930 <xs:attribute name="Icon" type="xs:string">
12931 <xs:annotation>
12932 <xs:documentation>
12933 The identifier of the Binary (not Icon) element containing the icon to associate with this item.
12934 This value is only valid when nested under a ListView element.
12935 </xs:documentation>
12936 </xs:annotation>
12937 </xs:attribute>
12938 <xs:anyAttribute namespace="##other" processContents="lax">
12939 <xs:annotation>
12940 <xs:documentation>
12941 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12942 attributes at this point in the schema.
12943 </xs:documentation>
12944 </xs:annotation>
12945 </xs:anyAttribute>
12946 </xs:complexType>
12947 </xs:element>
12948 <xs:element name="ListBox">
12949 <xs:annotation>
12950 <xs:documentation>
12951 Set of items for a particular ListBox control tied to an install Property
12952 </xs:documentation>
12953 <xs:appinfo>
12954 <xse:msiRef table="Control" href="https://docs.microsoft.com/en-us/windows/win32/msi/control-table" />
12955 <xse:msiRef table="Dialog" href="https://docs.microsoft.com/en-us/windows/win32/msi/dialog-table" />
12956 <xse:msiRef table="ListView" href="https://docs.microsoft.com/en-us/windows/win32/msi/listview-table" />
12957 </xs:appinfo>
12958 </xs:annotation>
12959 <xs:complexType>
12960 <xs:choice minOccurs="0" maxOccurs="unbounded">
12961 <xs:element ref="ListItem">
12962 <xs:annotation>
12963 <xs:documentation>entry for ListBox table</xs:documentation>
12964 </xs:annotation>
12965 </xs:element>
12966 </xs:choice>
12967 <xs:attribute name="Property" use="required" type="xs:string">
12968 <xs:annotation>
12969 <xs:documentation>Property tied to this group</xs:documentation>
12970 </xs:annotation>
12971 </xs:attribute>
12972 <xs:anyAttribute namespace="##other" processContents="lax">
12973 <xs:annotation>
12974 <xs:documentation>
12975 Extensibility point in the WiX XML Schema. Schema extensions can register additional
12976 attributes at this point in the schema.
12977 </xs:documentation>
12978 </xs:annotation>
12979 </xs:anyAttribute>
12980 </xs:complexType>
12981 </xs:element>
12982 <xs:element name="ComboBox">
12983 <xs:annotation>
12984 <xs:documentation>
12985 Set of items for a particular ComboBox control tied to an install Property
12986 </xs:documentation>
12987 <xs:appinfo>
12988 <xse:msiRef table="ComboBox" href="https://docs.microsoft.com/en-us/windows/win32/msi/combobox-table" />
12989 <xse:msiRef table="Control" href="https://docs.microsoft.com/en-us/windows/win32/msi/control-table" />
12990 <xse:msiRef table="Dialog" href="https://docs.microsoft.com/en-us/windows/win32/msi/dialog-table" />
12991 </xs:appinfo>
12992 </xs:annotation>
12993 <xs:complexType>
12994 <xs:choice minOccurs="0" maxOccurs="unbounded">
12995 <xs:element ref="ListItem">
12996 <xs:annotation>
12997 <xs:documentation>entry for ComboBox table</xs:documentation>
12998 </xs:annotation>
12999 </xs:element>
13000 </xs:choice>
13001 <xs:attribute name="Property" use="required" type="xs:string">
13002 <xs:annotation>
13003 <xs:documentation>Property tied to this group</xs:documentation>
13004 </xs:annotation>
13005 </xs:attribute>
13006 <xs:anyAttribute namespace="##other" processContents="lax">
13007 <xs:annotation>
13008 <xs:documentation>
13009 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13010 attributes at this point in the schema.
13011 </xs:documentation>
13012 </xs:annotation>
13013 </xs:anyAttribute>
13014 </xs:complexType>
13015 </xs:element>
13016 <xs:element name="ListView">
13017 <xs:annotation>
13018 <xs:documentation>
13019 Set of items for a particular ListView control tied to an install Property
13020 </xs:documentation>
13021 <xs:appinfo>
13022 <xse:msiRef table="ListView" href="https://docs.microsoft.com/en-us/windows/win32/msi/listview-table" />
13023 <xse:msiRef table="Control" href="https://docs.microsoft.com/en-us/windows/win32/msi/control-table" />
13024 <xse:msiRef table="Dialog" href="https://docs.microsoft.com/en-us/windows/win32/msi/dialog-table" />
13025 </xs:appinfo>
13026 </xs:annotation>
13027 <xs:complexType>
13028 <xs:choice minOccurs="0" maxOccurs="unbounded">
13029 <xs:element ref="ListItem">
13030 <xs:annotation>
13031 <xs:documentation>entry for ListView table</xs:documentation>
13032 </xs:annotation>
13033 </xs:element>
13034 </xs:choice>
13035 <xs:attribute name="Property" use="required" type="xs:string">
13036 <xs:annotation>
13037 <xs:documentation>Property tied to this group</xs:documentation>
13038 </xs:annotation>
13039 </xs:attribute>
13040 <xs:anyAttribute namespace="##other" processContents="lax">
13041 <xs:annotation>
13042 <xs:documentation>
13043 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13044 attributes at this point in the schema.
13045 </xs:documentation>
13046 </xs:annotation>
13047 </xs:anyAttribute>
13048 </xs:complexType>
13049 </xs:element>
13050 <xs:element name="RadioButton">
13051 <xs:annotation>
13052 <xs:appinfo>
13053 <xse:seeAlso ref="RadioButtonGroup" />
13054 <xse:msiRef table="RadioButton" href="https://docs.microsoft.com/en-us/windows/win32/msi/radiobutton-table" />
13055 <xse:msiRef table="Control" href="https://docs.microsoft.com/en-us/windows/win32/msi/control-table" />
13056 <xse:msiRef table="Dialog" href="https://docs.microsoft.com/en-us/windows/win32/msi/dialog-table" />
13057 </xs:appinfo>
13058 <xs:documentation>Text or Icon plus Value that is assigned to the Property of the parent Control (RadioButtonGroup).</xs:documentation>
13059 </xs:annotation>
13060 <xs:complexType>
13061 <xs:attribute name="Bitmap" type="xs:string">
13062 <xs:annotation>
13063 <xs:documentation>
13064 This attribute defines the bitmap displayed with the radio button. The value of the attribute creates a reference
13065 to a Binary element that represents the bitmap. This attribute is mutually exclusive with the Icon and Text
13066 attributes.
13067 </xs:documentation>
13068 </xs:annotation>
13069 </xs:attribute>
13070 <xs:attribute name="Height" use="required" type="LocalizableInteger" />
13071 <xs:attribute name="Help" type="xs:string" />
13072 <xs:attribute name="Icon" type="xs:string">
13073 <xs:annotation>
13074 <xs:documentation>
13075 This attribute defines the icon displayed with the radio button. The value of the attribute creates a reference
13076 to a Binary element that represents the icon. This attribute is mutually exclusive with the Bitmap and Text
13077 attributes.
13078 </xs:documentation>
13079 </xs:annotation>
13080 </xs:attribute>
13081 <xs:attribute name="Text" type="xs:string">
13082 <xs:annotation>
13083 <xs:documentation>Text displayed with the radio button. This attribute is mutually exclusive with the Bitmap and Icon attributes.</xs:documentation>
13084 </xs:annotation>
13085 </xs:attribute>
13086 <xs:attribute name="ToolTip" type="xs:string" />
13087 <xs:attribute name="Value" type="xs:string" use="required">
13088 <xs:annotation>
13089 <xs:documentation>Value assigned to the associated control Property when this radio button is selected.</xs:documentation>
13090 </xs:annotation>
13091 </xs:attribute>
13092 <xs:attribute name="Width" use="required" type="LocalizableInteger" />
13093 <xs:attribute name="X" use="required" type="LocalizableInteger" />
13094 <xs:attribute name="Y" use="required" type="LocalizableInteger" />
13095 <xs:anyAttribute namespace="##other" processContents="lax">
13096 <xs:annotation>
13097 <xs:documentation>
13098 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13099 attributes at this point in the schema.
13100 </xs:documentation>
13101 </xs:annotation>
13102 </xs:anyAttribute>
13103 </xs:complexType>
13104 </xs:element>
13105 <xs:element name="RadioButtonGroup">
13106 <xs:annotation>
13107 <xs:documentation>
13108 Set of radio buttons tied to the specified Property
13109 </xs:documentation>
13110 <xs:appinfo>
13111 <xse:msiRef table="RadioButton" href="https://docs.microsoft.com/en-us/windows/win32/msi/radiobutton-table" />
13112 <xse:msiRef table="Control" href="https://docs.microsoft.com/en-us/windows/win32/msi/control-table" />
13113 <xse:msiRef table="Dialog" href="https://docs.microsoft.com/en-us/windows/win32/msi/dialog-table" />
13114 </xs:appinfo>
13115 </xs:annotation>
13116 <xs:complexType>
13117 <xs:sequence>
13118 <xs:element ref="RadioButton" maxOccurs="unbounded" />
13119 </xs:sequence>
13120 <xs:attribute name="Property" use="required" type="xs:string">
13121 <xs:annotation>
13122 <xs:documentation>Property tied to this group.</xs:documentation>
13123 </xs:annotation>
13124 </xs:attribute>
13125 <xs:anyAttribute namespace="##other" processContents="lax">
13126 <xs:annotation>
13127 <xs:documentation>
13128 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13129 attributes at this point in the schema.
13130 </xs:documentation>
13131 </xs:annotation>
13132 </xs:anyAttribute>
13133 </xs:complexType>
13134 </xs:element>
13135 <xs:element name="UIText">
13136 <xs:annotation>
13137 <xs:documentation>
13138 Text associated with certain controls.
13139 </xs:documentation>
13140 <xs:appinfo>
13141 <xse:msiRef table="UIText" href="https://docs.microsoft.com/en-us/windows/win32/msi/uitext-table" />
13142 </xs:appinfo>
13143 </xs:annotation>
13144 <xs:complexType>
13145 <xs:attribute name="Id" type="xs:string">
13146 <xs:annotation>
13147 <xs:documentation>
13148 An optional identifier for the text style in the database. If one is not specified,
13149 one will be generated.
13150 </xs:documentation>
13151 </xs:annotation>
13152 </xs:attribute>
13153 <xs:attribute name="Value" type="xs:string">
13154 <xs:annotation>
13155 <xs:documentation>The UI text.</xs:documentation>
13156 </xs:annotation>
13157 </xs:attribute>
13158 <xs:anyAttribute namespace="##other" processContents="lax">
13159 <xs:annotation>
13160 <xs:documentation>
13161 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13162 attributes at this point in the schema.
13163 </xs:documentation>
13164 </xs:annotation>
13165 </xs:anyAttribute>
13166 </xs:complexType>
13167 </xs:element>
13168 <xs:element name="UIRef">
13169 <xs:annotation>
13170 <xs:documentation>
13171 Reference to a UI element. This will force the entire referenced Fragment's contents
13172 to be included in the installer database.
13173 </xs:documentation>
13174 <xs:appinfo>
13175 <xse:seeAlso ref="UI" />
13176 </xs:appinfo>
13177 </xs:annotation>
13178 <xs:complexType>
13179 <xs:attribute name="Id" type="xs:string" use="required" />
13180 <xs:anyAttribute namespace="##other" processContents="lax">
13181 <xs:annotation>
13182 <xs:documentation>
13183 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13184 attributes at this point in the schema.
13185 </xs:documentation>
13186 </xs:annotation>
13187 </xs:anyAttribute>
13188 </xs:complexType>
13189 </xs:element>
13190 <xs:element name="UI">
13191 <xs:annotation>
13192 <xs:documentation>
13193 Enclosing element to compartmentalize UI specifications.
13194 </xs:documentation>
13195 <xs:appinfo>
13196 <xse:seeAlso ref="UIRef" />
13197 </xs:appinfo>
13198 </xs:annotation>
13199 <xs:complexType>
13200 <xs:choice minOccurs="0" maxOccurs="unbounded">
13201 <xs:element ref="BillboardAction" />
13202 <xs:element ref="ComboBox" />
13203 <xs:element ref="Dialog" />
13204 <xs:element ref="DialogRef" />
13205 <xs:element ref="EmbeddedUI" />
13206 <xs:element ref="Error" />
13207 <xs:element ref="ListBox" />
13208 <xs:element ref="ListView"/>
13209 <xs:element ref="ProgressText"/>
13210 <xs:element ref="Publish" />
13211 <xs:element ref="RadioButtonGroup"/>
13212 <xs:element ref="TextStyle" />
13213 <xs:element ref="UIText"/>
13214 <!--
13215 Elements with identical behavior as under Package/Fragment element, solely to allow grouping with other UI elements
13216 -->
13217 <xs:element ref="AdminUISequence" />
13218 <xs:element ref="InstallUISequence" />
13219 <xs:element ref="Binary" />
13220 <xs:element ref="Property" />
13221 <xs:element ref="PropertyRef" />
13222 <xs:element ref="UIRef" />
13223 <xs:any namespace="##other" processContents="lax">
13224 <xs:annotation>
13225 <xs:documentation>
13226 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13227 elements at this point in the schema.
13228 </xs:documentation>
13229 </xs:annotation>
13230 </xs:any>
13231 </xs:choice>
13232 <xs:attribute name="Id" type="xs:string" />
13233 <xs:anyAttribute namespace="##other" processContents="lax">
13234 <xs:annotation>
13235 <xs:documentation>
13236 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13237 attributes at this point in the schema.
13238 </xs:documentation>
13239 </xs:annotation>
13240 </xs:anyAttribute>
13241 </xs:complexType>
13242 </xs:element>
13243
13244 <xs:element name="CustomTable">
13245 <xs:annotation>
13246 <xs:documentation>Defines a custom table for use from a custom action.</xs:documentation>
13247 </xs:annotation>
13248 <xs:complexType>
13249 <xs:choice maxOccurs="unbounded">
13250 <xs:element ref="Column">
13251 <xs:annotation>
13252 <xs:documentation>Column definition for the custom table.</xs:documentation>
13253 </xs:annotation>
13254 </xs:element>
13255 <xs:element ref="Row">
13256 <xs:annotation>
13257 <xs:documentation>Row definition for the custom table.</xs:documentation>
13258 </xs:annotation>
13259 </xs:element>
13260 <xs:any namespace="##other" processContents="lax">
13261 <xs:annotation>
13262 <xs:documentation>
13263 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13264 elements at this point in the schema.
13265 </xs:documentation>
13266 </xs:annotation>
13267 </xs:any>
13268 </xs:choice>
13269 <xs:attribute name="Id" type="xs:string" use="required">
13270 <xs:annotation>
13271 <xs:documentation>Identifier for the custom table. The id must be less than 31 characters.</xs:documentation>
13272 </xs:annotation>
13273 </xs:attribute>
13274 <xs:attribute name="Unreal" type="YesNoType">
13275 <xs:annotation>
13276 <xs:documentation>Indicates the table is not supposed to be included in the final output.</xs:documentation>
13277 </xs:annotation>
13278 </xs:attribute>
13279 <xs:anyAttribute namespace="##other" processContents="lax">
13280 <xs:annotation>
13281 <xs:documentation>
13282 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13283 attributes at this point in the schema.
13284 </xs:documentation>
13285 </xs:annotation>
13286 </xs:anyAttribute>
13287 </xs:complexType>
13288 </xs:element>
13289 <xs:element name="Column">
13290 <xs:annotation>
13291 <xs:documentation>Column definition for a Custom Table</xs:documentation>
13292 </xs:annotation>
13293 <xs:complexType>
13294 <xs:choice minOccurs="0" maxOccurs="unbounded">
13295 <xs:any namespace="##other" processContents="lax">
13296 <xs:annotation>
13297 <xs:documentation>
13298 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13299 elements at this point in the schema.
13300 </xs:documentation>
13301 </xs:annotation>
13302 </xs:any>
13303 </xs:choice>
13304 <xs:attribute name="Id" type="xs:string" use="required">
13305 <xs:annotation>
13306 <xs:documentation>Identifier for the column.</xs:documentation>
13307 </xs:annotation>
13308 </xs:attribute>
13309 <xs:attribute name="PrimaryKey" type="YesNoTypeUnion">
13310 <xs:annotation>
13311 <xs:documentation>Whether this column is a primary key.</xs:documentation>
13312 </xs:annotation>
13313 </xs:attribute>
13314 <xs:attribute name="Type" use="required">
13315 <xs:annotation>
13316 <xs:documentation>The type of this column.</xs:documentation>
13317 </xs:annotation>
13318 <xs:simpleType>
13319 <xs:restriction base="xs:NMTOKEN">
13320 <xs:enumeration value="binary">
13321 <xs:annotation>
13322 <xs:documentation>
13323 Column contains a path to a file that will be inserted into the column as a binary object.
13324 If this value is set, the Category attribute must also be set with a value of 'Binary' to pass ICE validation.
13325 </xs:documentation>
13326 </xs:annotation>
13327 </xs:enumeration>
13328 <xs:enumeration value="int">
13329 <xs:annotation>
13330 <xs:documentation>
13331 Column contains an integer or datetime value (the MinValue and MaxValue attributes should also be set).
13332 </xs:documentation>
13333 </xs:annotation>
13334 </xs:enumeration>
13335 <xs:enumeration value="string">
13336 <xs:annotation>
13337 <xs:documentation>
13338 Column contains a non-localizable string value.
13339 </xs:documentation>
13340 </xs:annotation>
13341 </xs:enumeration>
13342 </xs:restriction>
13343 </xs:simpleType>
13344 </xs:attribute>
13345 <xs:attribute name="Width" type="Integer">
13346 <xs:annotation>
13347 <xs:documentation>Width of this column.</xs:documentation>
13348 </xs:annotation>
13349 </xs:attribute>
13350 <xs:attribute name="Nullable" type="YesNoTypeUnion">
13351 <xs:annotation>
13352 <xs:documentation>Whether this column can be left null.</xs:documentation>
13353 </xs:annotation>
13354 </xs:attribute>
13355 <xs:attribute name="Localizable" type="YesNoTypeUnion">
13356 <xs:annotation>
13357 <xs:documentation>Whether this column can be localized.</xs:documentation>
13358 </xs:annotation>
13359 </xs:attribute>
13360 <xs:attribute name="MinValue" type="xs:long">
13361 <xs:annotation>
13362 <xs:documentation>Minimum value for a numeric value, date or version in this column.</xs:documentation>
13363 </xs:annotation>
13364 </xs:attribute>
13365 <xs:attribute name="MaxValue" type="xs:long">
13366 <xs:annotation>
13367 <xs:documentation>Maximum value for a numeric value, date or version in this column.</xs:documentation>
13368 </xs:annotation>
13369 </xs:attribute>
13370 <xs:attribute name="KeyTable" type="xs:string">
13371 <xs:annotation>
13372 <xs:documentation>Table in which this column is an external key. Can be semicolon delimited.</xs:documentation>
13373 </xs:annotation>
13374 </xs:attribute>
13375 <xs:attribute name="KeyColumn" type="Integer">
13376 <xs:annotation>
13377 <xs:documentation>Column in the table in KeyTable attribute.</xs:documentation>
13378 </xs:annotation>
13379 </xs:attribute>
13380 <xs:attribute name="Category">
13381 <xs:annotation>
13382 <xs:documentation>
13383 Category of this column.
13384 This attribute must be specified with a value of 'Binary' if the Type attribute's value is 'binary'.
13385 </xs:documentation>
13386 </xs:annotation>
13387 <xs:simpleType>
13388 <xs:restriction base="xs:NMTOKEN">
13389 <xs:enumeration value="text" />
13390 <xs:enumeration value="upperCase" />
13391 <xs:enumeration value="lowerCase" />
13392 <xs:enumeration value="integer" />
13393 <xs:enumeration value="doubleInteger" />
13394 <xs:enumeration value="timeDate" />
13395 <xs:enumeration value="identifier" />
13396 <xs:enumeration value="property" />
13397 <xs:enumeration value="filename" />
13398 <xs:enumeration value="wildCardFilename" />
13399 <xs:enumeration value="path" />
13400 <xs:enumeration value="paths" />
13401 <xs:enumeration value="anyPath" />
13402 <xs:enumeration value="defaultDir" />
13403 <xs:enumeration value="regPath" />
13404 <xs:enumeration value="formatted" />
13405 <xs:enumeration value="formattedSddl" />
13406 <xs:enumeration value="template" />
13407 <xs:enumeration value="condition" />
13408 <xs:enumeration value="guid" />
13409 <xs:enumeration value="version" />
13410 <xs:enumeration value="language" />
13411 <xs:enumeration value="binary" />
13412 <xs:enumeration value="customSource" />
13413 <xs:enumeration value="cabinet" />
13414 <xs:enumeration value="shortcut" />
13415 </xs:restriction>
13416 </xs:simpleType>
13417 </xs:attribute>
13418 <xs:attribute name="Set" type="xs:string">
13419 <xs:annotation>
13420 <xs:documentation>Semicolon delimited list of permissible values.</xs:documentation>
13421 </xs:annotation>
13422 </xs:attribute>
13423 <xs:attribute name="Description" type="xs:string">
13424 <xs:annotation>
13425 <xs:documentation>Description of this column.</xs:documentation>
13426 </xs:annotation>
13427 </xs:attribute>
13428 <xs:attribute name="Modularize">
13429 <xs:annotation>
13430 <xs:documentation>How this column should be modularized, if at all.</xs:documentation>
13431 </xs:annotation>
13432 <xs:simpleType>
13433 <xs:restriction base="xs:NMTOKEN">
13434 <xs:enumeration value="none">
13435 <xs:annotation>
13436 <xs:documentation>
13437 Column should not be modularized. This is the default value.
13438 </xs:documentation>
13439 </xs:annotation>
13440 </xs:enumeration>
13441 <xs:enumeration value="column">
13442 <xs:annotation>
13443 <xs:documentation>
13444 Column should be modularized.
13445 </xs:documentation>
13446 </xs:annotation>
13447 </xs:enumeration>
13448 <xs:enumeration value="condition">
13449 <xs:annotation>
13450 <xs:documentation>
13451 Column is a condition and should be modularized.
13452 </xs:documentation>
13453 </xs:annotation>
13454 </xs:enumeration>
13455 <xs:enumeration value="icon">
13456 <xs:annotation>
13457 <xs:documentation>
13458 When the column is an primary or foreign key to the Icon table it should be modularized special.
13459 </xs:documentation>
13460 </xs:annotation>
13461 </xs:enumeration>
13462 <xs:enumeration value="property">
13463 <xs:annotation>
13464 <xs:documentation>
13465 Any Properties in the column should be modularized.
13466 </xs:documentation>
13467 </xs:annotation>
13468 </xs:enumeration>
13469 <xs:enumeration value="semicolonDelimited">
13470 <xs:annotation>
13471 <xs:documentation>
13472 Semi-colon list of keys, all of which need to be modularized.
13473 </xs:documentation>
13474 </xs:annotation>
13475 </xs:enumeration>
13476 </xs:restriction>
13477 </xs:simpleType>
13478 </xs:attribute>
13479 <xs:anyAttribute namespace="##other" processContents="lax">
13480 <xs:annotation>
13481 <xs:documentation>
13482 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13483 attributes at this point in the schema.
13484 </xs:documentation>
13485 </xs:annotation>
13486 </xs:anyAttribute>
13487 </xs:complexType>
13488 </xs:element>
13489 <xs:element name="Row">
13490 <xs:annotation>
13491 <xs:documentation>Row data for a Custom Table</xs:documentation>
13492 </xs:annotation>
13493 <xs:complexType>
13494 <xs:choice maxOccurs="unbounded">
13495 <xs:element ref="Data"/>
13496 <xs:any namespace="##other" processContents="lax">
13497 <xs:annotation>
13498 <xs:documentation>
13499 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13500 elements at this point in the schema.
13501 </xs:documentation>
13502 </xs:annotation>
13503 </xs:any>
13504 </xs:choice>
13505 <xs:anyAttribute namespace="##other" processContents="lax">
13506 <xs:annotation>
13507 <xs:documentation>
13508 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13509 attributes at this point in the schema.
13510 </xs:documentation>
13511 </xs:annotation>
13512 </xs:anyAttribute>
13513 </xs:complexType>
13514 </xs:element>
13515 <xs:element name="Data">
13516 <xs:annotation>
13517 <xs:documentation>Used for a Custom Table. Specifies the data for the parent Row and specified Column.</xs:documentation>
13518 </xs:annotation>
13519 <xs:complexType>
13520 <xs:attribute name="Column" type="xs:string" use="required">
13521 <xs:annotation>
13522 <xs:documentation>Specifies in which column to insert this data.</xs:documentation>
13523 </xs:annotation>
13524 </xs:attribute>
13525 <xs:attribute name="Value" type="xs:string">
13526 <xs:annotation>
13527 <xs:documentation>Specifies the optional data for this column.</xs:documentation>
13528 </xs:annotation>
13529 </xs:attribute>
13530 <xs:anyAttribute namespace="##other" processContents="lax">
13531 <xs:annotation>
13532 <xs:documentation>
13533 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13534 attributes at this point in the schema.
13535 </xs:documentation>
13536 </xs:annotation>
13537 </xs:anyAttribute>
13538 </xs:complexType>
13539 </xs:element>
13540 <xs:element name="CustomTableRef">
13541 <xs:annotation>
13542 <xs:documentation>Used to reference a CustomTable element and optionally add more data.</xs:documentation>
13543 </xs:annotation>
13544 <xs:complexType>
13545 <xs:sequence>
13546 <xs:element ref="Row" minOccurs="0" maxOccurs="unbounded">
13547 <xs:annotation>
13548 <xs:documentation>Row definition for the custom table.</xs:documentation>
13549 </xs:annotation>
13550 </xs:element>
13551 </xs:sequence>
13552 <xs:attribute name="Id" type="xs:string" use="required">
13553 <xs:annotation>
13554 <xs:documentation>The identifier of the CustomTable element to reference.</xs:documentation>
13555 </xs:annotation>
13556 </xs:attribute>
13557 <xs:anyAttribute namespace="##other" processContents="lax">
13558 <xs:annotation>
13559 <xs:documentation>
13560 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13561 attributes at this point in the schema.
13562 </xs:documentation>
13563 </xs:annotation>
13564 </xs:anyAttribute>
13565 </xs:complexType>
13566 </xs:element>
13567
13568 <xs:element name="EnsureTable">
13569 <xs:annotation>
13570 <xs:documentation>
13571 Use this element to ensure that a table appears in the installer database, even if its empty.
13572 </xs:documentation>
13573 <xs:appinfo>
13574 <xse:remarks>
13575 This element is particularly useful for two problems that may occur while merging merge modules:
13576
13577 * The first likely problem is that in order to properly merge you need to have certain
13578 tables present prior to merging. Using this element is one way to ensure those tables
13579 are present prior to the merging.
13580
13581 * The other common problem is that a merge module has incorrect validation information
13582 about some tables. By ensuring these tables prior to merging, you can avoid this
13583 problem because the correct validation information will go into the installer database
13584 before the merge module has a chance to set it incorrectly.
13585 </xse:remarks>
13586 </xs:appinfo>
13587 </xs:annotation>
13588 <xs:complexType>
13589 <xs:attribute name="Id" use="required" type="xs:string">
13590 <xs:annotation>
13591 <xs:documentation>The name of the table.</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="WixVariable">
13605 <xs:annotation>
13606 <xs:documentation>
13607 This element exposes advanced WiX functionality. Use this element to declare WiX variables
13608 from directly within your authoring. WiX variables are not resolved until the final package
13609 file is actually generated (bind time). WiX variables do not persist into the package file,
13610 so they cannot be used when an MSI file is being installed; it's a WiX-only concept.
13611 </xs:documentation>
13612 </xs:annotation>
13613 <xs:complexType>
13614 <xs:attribute name="Id" type="xs:string" use="required">
13615 <xs:annotation>
13616 <xs:documentation>The name of the variable.</xs:documentation>
13617 </xs:annotation>
13618 </xs:attribute>
13619 <xs:attribute name="Overridable" type="YesNoTypeUnion">
13620 <xs:annotation>
13621 <xs:documentation>
13622 Set this value to 'yes' in order to make the variable's value overridable either by
13623 another WixVariable entry or via the command-line option -d_name_=_value_;
13624 for light.exe. If the same variable is declared overridable in multiple places it
13625 will cause an error (since WiX won't know which value is correct). The default value
13626 is 'no'.
13627 </xs:documentation>
13628 </xs:annotation>
13629 </xs:attribute>
13630 <xs:attribute name="Value" type="xs:string" use="required">
13631 <xs:annotation>
13632 <xs:documentation>
13633 The value of the variable. Note that because values are substituted at bind time,
13634 they skip all the validation done at compile time, which can be more thorough than
13635 validation done at bind time.
13636 </xs:documentation>
13637 </xs:annotation>
13638 </xs:attribute>
13639 <xs:anyAttribute namespace="##other" processContents="lax">
13640 <xs:annotation>
13641 <xs:documentation>
13642 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13643 attributes at this point in the schema.
13644 </xs:documentation>
13645 </xs:annotation>
13646 </xs:anyAttribute>
13647 </xs:complexType>
13648 </xs:element>
13649 <xs:element name="InstanceTransforms">
13650 <xs:annotation>
13651 <xs:documentation>
13652 Use this element to contain definitions for instance transforms.
13653 </xs:documentation>
13654 </xs:annotation>
13655 <xs:complexType>
13656 <xs:choice minOccurs="0" maxOccurs="unbounded">
13657 <xs:element ref="Instance" />
13658 </xs:choice>
13659 <xs:attribute name="Property" type="xs:string" use="required">
13660 <xs:annotation>
13661 <xs:documentation>The Id of the Property who's value should change for each instance.</xs:documentation>
13662 </xs:annotation>
13663 </xs:attribute>
13664 <xs:anyAttribute namespace="##other" processContents="lax">
13665 <xs:annotation>
13666 <xs:documentation>
13667 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13668 attributes at this point in the schema.
13669 </xs:documentation>
13670 </xs:annotation>
13671 </xs:anyAttribute>
13672 </xs:complexType>
13673 </xs:element>
13674 <xs:element name="Instance">
13675 <xs:annotation>
13676 <xs:documentation>
13677 Defines an instance transform for your product.
13678 </xs:documentation>
13679 </xs:annotation>
13680 <xs:complexType>
13681 <xs:attribute name="Id" type="xs:string" use="required">
13682 <xs:annotation>
13683 <xs:documentation>
13684 The identity of the instance transform. This value will define the name by which the instance
13685 should be referred to on the command line. In addition, the value of the this attribute will
13686 determine what the value of the property specified in Property attribute on InstanceTransforms
13687 will change to for each instance.
13688 </xs:documentation>
13689 </xs:annotation>
13690 </xs:attribute>
13691 <xs:attribute name="ProductCode" type="AutogenGuid" use="required">
13692 <xs:annotation>
13693 <xs:documentation>The ProductCode for this instance.</xs:documentation>
13694 </xs:annotation>
13695 </xs:attribute>
13696 <xs:attribute name="ProductName" type="xs:string">
13697 <xs:annotation>
13698 <xs:documentation>The ProductName for this instance.</xs:documentation>
13699 </xs:annotation>
13700 </xs:attribute>
13701 <xs:attribute name="UpgradeCode" type="Guid">
13702 <xs:annotation>
13703 <xs:documentation>The UpgradeCode for this instance.</xs:documentation>
13704 </xs:annotation>
13705 </xs:attribute>
13706 <xs:anyAttribute namespace="##other" processContents="lax">
13707 <xs:annotation>
13708 <xs:documentation>
13709 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13710 attributes at this point in the schema.
13711 </xs:documentation>
13712 </xs:annotation>
13713 </xs:anyAttribute>
13714 </xs:complexType>
13715 </xs:element>
13716 <xs:element name="MajorUpgrade">
13717 <xs:annotation>
13718 <xs:documentation>
13719 Simplifies authoring for major upgrades, including support for preventing downgrades.
13720
13721 The parent Package element must have valid UpgradeCode and Version attributes.
13722
13723 When the FindRelatedProducts action detects a related product installed on the system,
13724 it appends the product code to the property named WIX_UPGRADE_DETECTED. After the
13725 FindRelatedProducts action is run, the value of the WIX_UPGRADE_DETECTED property is a
13726 list of product codes, separated by semicolons (;), detected on the system.
13727 </xs:documentation>
13728 <xs:appinfo>
13729 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Package" />
13730 </xs:appinfo>
13731 </xs:annotation>
13732 <xs:complexType>
13733 <xs:attribute name="AllowDowngrades" type="YesNoTypeUnion">
13734 <xs:annotation>
13735 <xs:documentation>
13736 When set to no (the default), products with lower version numbers are blocked from
13737 installing when a product with a higher version is installed; the DowngradeErrorMessage
13738 attribute must also be specified.
13739
13740 When set to yes, any version can be installed over any other version.
13741 </xs:documentation>
13742 </xs:annotation>
13743 </xs:attribute>
13744 <xs:attribute name="AllowSameVersionUpgrades" type="YesNoTypeUnion">
13745 <xs:annotation>
13746 <xs:documentation>
13747 When set to no (the default), installing a product with the same version and upgrade code
13748 (but different product code) is allowed and treated by MSI as two products. When set to yes,
13749 WiX sets the msidbUpgradeAttributesVersionMaxInclusive attribute, which tells MSI to treat
13750 a product with the same version as a major upgrade.
13751
13752 This is useful when two product versions differ only in the fourth version field. MSI
13753 specifically ignores that field when comparing product versions, so two products that
13754 differ only in the fourth version field are the same product and need this attribute set to
13755 yes to be detected.
13756
13757 Note that because MSI ignores the fourth product version field, setting this attribute to
13758 yes also allows downgrades when the first three product version fields are identical.
13759 For example, product version 1.0.0.1 will "upgrade" 1.0.0.2998 because they're seen as the
13760 same version (1.0.0). That could reintroduce serious bugs so the safest choice is to change
13761 the first three version fields and omit this attribute to get the default of no.
13762
13763 This attribute cannot be "yes" when AllowDowngrades is also "yes" -- AllowDowngrades
13764 already allows two products with the same version number to upgrade each other.
13765 </xs:documentation>
13766 </xs:annotation>
13767 </xs:attribute>
13768 <xs:attribute name="Disallow" type="YesNoTypeUnion">
13769 <xs:annotation>
13770 <xs:documentation>
13771 When set to yes, products with higer version numbers are blocked from
13772 installing when a product with a lower version is installed; the UpgradeErrorMessage
13773 attribute must also be specified.
13774
13775 When set to no (the default), any version can be installed over any lower version.
13776 </xs:documentation>
13777 </xs:annotation>
13778 </xs:attribute>
13779 <xs:attribute name="DowngradeErrorMessage" type="xs:string">
13780 <xs:annotation>
13781 <xs:documentation>
13782 The message displayed if users try to install a product with a lower version number
13783 when a product with a higher version is installed. Used only when AllowDowngrades
13784 is no (the default).
13785 </xs:documentation>
13786 </xs:annotation>
13787 </xs:attribute>
13788 <xs:attribute name="DisallowUpgradeErrorMessage" type="xs:string">
13789 <xs:annotation>
13790 <xs:documentation>
13791 The message displayed if users try to install a product with a higer version number
13792 when a product with a lower version is installed. Used only when Disallow
13793 is yes.
13794 </xs:documentation>
13795 </xs:annotation>
13796 </xs:attribute>
13797 <xs:attribute name="MigrateFeatures" type="YesNoTypeUnion">
13798 <xs:annotation>
13799 <xs:documentation>
13800 When set to yes (the default), the MigrateFeatureStates standard action will set the
13801 feature states of the upgrade product to those of the installed product.
13802
13803 When set to no, the installed features have no effect on the upgrade installation.
13804 </xs:documentation>
13805 </xs:annotation>
13806 </xs:attribute>
13807 <xs:attribute name="IgnoreLanguage" type="YesNoTypeUnion">
13808 <xs:annotation>
13809 <xs:documentation>
13810 When set to yes, the Upgrade table rows will match any product with the same UpgradeCode.
13811
13812 When set to no (the default), the Upgrade table rows will match only products with the
13813 same UpgradeCode and ProductLanguage.
13814 </xs:documentation>
13815 </xs:annotation>
13816 </xs:attribute>
13817 <xs:attribute name="IgnoreRemoveFailure" type="YesNoTypeUnion">
13818 <xs:annotation>
13819 <xs:documentation>
13820 When set to yes, failures removing the installed product during the upgrade will be
13821 ignored.
13822
13823 When set to no (the default), failures removing the installed product during the upgrade
13824 will be considered a failure and, depending on the scheduling, roll back the upgrade.
13825 </xs:documentation>
13826 </xs:annotation>
13827 </xs:attribute>
13828 <xs:attribute name="RemoveFeatures" type="xs:string">
13829 <xs:annotation>
13830 <xs:documentation>
13831 A formatted string that contains the list of features to remove from the installed
13832 product. The default is to remove all features. Note that if you use formatted property
13833 values that evaluate to an empty string, no features will be removed; only omitting
13834 this attribute defaults to removing all features.
13835 </xs:documentation>
13836 </xs:annotation>
13837 </xs:attribute>
13838 <xs:attribute name="Schedule" default="afterInstallValidate">
13839 <xs:annotation>
13840 <xs:documentation>
13841 Determines the scheduling of the RemoveExistingProducts standard action, which is when
13842 the installed product is removed. The default is "afterInstallValidate" which removes
13843 the installed product entirely before installing the upgrade product. It's slowest but
13844 gives the most flexibility in changing components and features in the upgrade product.
13845
13846 For more information, see <html:a href="https://learn.microsoft.com/en-us/windows/win32/msi/removeexistingproducts-action">RemoveExistingProducts</html:a>.
13847 </xs:documentation>
13848 </xs:annotation>
13849 <xs:simpleType>
13850 <xs:restriction base="xs:NMTOKEN">
13851 <xs:enumeration value="afterInstallValidate">
13852 <xs:annotation>
13853 <xs:documentation>
13854 (Default) Schedules RemoveExistingProducts after the InstallValidate standard
13855 action. This scheduling removes the installed product entirely before installing
13856 the upgrade product. It's slowest but gives the most flexibility in changing
13857 components and features in the upgrade product. Note that if the installation
13858 of the upgrade product fails, the machine will have neither version installed.
13859 </xs:documentation>
13860 </xs:annotation>
13861 </xs:enumeration>
13862 <xs:enumeration value="afterInstallInitialize">
13863 <xs:annotation>
13864 <xs:documentation>
13865 Schedules RemoveExistingProducts after the InstallInitialize standard action.
13866 This is similar to the afterInstallValidate scheduling, but if the installation
13867 of the upgrade product fails, Windows Installer also rolls back the removal of
13868 the installed product -- in other words, reinstalls it.
13869 </xs:documentation>
13870 </xs:annotation>
13871 </xs:enumeration>
13872 <xs:enumeration value="afterInstallExecute">
13873 <xs:annotation>
13874 <xs:documentation>
13875 Schedules RemoveExistingProducts between the InstallExecute and InstallFinalize standard actions.
13876 This scheduling installs the upgrade product "on top of" the installed product then lets
13877 RemoveExistingProducts uninstall any components that don't also exist in the upgrade product.
13878 Note that this scheduling requires strict adherence to the component rules because it relies
13879 on component reference counts to be accurate during installation of the upgrade product and
13880 removal of the installed product. For more information, see
13881 <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
13882 also rolls back the removal of the installed product -- in other words, reinstalls it.
13883 </xs:documentation>
13884 </xs:annotation>
13885 </xs:enumeration>
13886 <xs:enumeration value="afterInstallExecuteAgain">
13887 <xs:annotation>
13888 <xs:documentation>
13889 Schedules RemoveExistingProducts between the InstallExecuteAgain and InstallFinalize standard actions.
13890 This is identical to the afterInstallExecute scheduling but after the InstallExecuteAgain standard
13891 action instead of InstallExecute.
13892 </xs:documentation>
13893 </xs:annotation>
13894 </xs:enumeration>
13895 <xs:enumeration value="afterInstallFinalize">
13896 <xs:annotation>
13897 <xs:documentation>
13898 Schedules RemoveExistingProducts after the InstallFinalize standard action. This is similar to the
13899 afterInstallExecute and afterInstallExecuteAgain schedulings but takes place outside the
13900 installation transaction so if installation of the upgrade product fails, Windows Installer does
13901 not roll back the removal of the installed product, so the machine will have both versions
13902 installed.
13903 </xs:documentation>
13904 </xs:annotation>
13905 </xs:enumeration>
13906 </xs:restriction>
13907 </xs:simpleType>
13908 </xs:attribute>
13909 <xs:anyAttribute namespace="##other" processContents="lax">
13910 <xs:annotation>
13911 <xs:documentation>
13912 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13913 attributes at this point in the schema.
13914 </xs:documentation>
13915 </xs:annotation>
13916 </xs:anyAttribute>
13917 </xs:complexType>
13918 </xs:element>
13919 <xs:element name="ProductSearch">
13920 <xs:annotation>
13921 <xs:appinfo>
13922 <xse:msiRef table="Upgrade" href="https://learn.microsoft.com/en-us/windows/win32/msi/upgrade-table" />
13923 </xs:appinfo>
13924 </xs:annotation>
13925 <xs:complexType>
13926 <xs:attribute name="Minimum" type="xs:string">
13927 <xs:annotation>
13928 <xs:documentation>Specifies the lower bound on the range of product versions to be detected by FindRelatedProducts.</xs:documentation>
13929 </xs:annotation>
13930 </xs:attribute>
13931 <xs:attribute name="Maximum" type="xs:string">
13932 <xs:annotation>
13933 <xs:documentation>Specifies the upper boundary of the range of product versions detected by FindRelatedProducts.</xs:documentation>
13934 </xs:annotation>
13935 </xs:attribute>
13936 <xs:attribute name="Language" type="xs:string">
13937 <xs:annotation>
13938 <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>
13939 </xs:annotation>
13940 </xs:attribute>
13941 <xs:attribute name="IncludeMinimum" type="YesNoTypeUnion">
13942 <xs:annotation>
13943 <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>
13944 </xs:annotation>
13945 </xs:attribute>
13946 <xs:attribute name="IncludeMaximum" type="YesNoTypeUnion">
13947 <xs:annotation>
13948 <xs:documentation>Set to "yes" to make the range of versions detected include the value specified in Maximum.</xs:documentation>
13949 </xs:annotation>
13950 </xs:attribute>
13951 <xs:attribute name="ExcludeLanguages" type="YesNoTypeUnion">
13952 <xs:annotation>
13953 <xs:documentation>Set to "yes" to detect all languages, excluding the languages listed in the Language attribute.</xs:documentation>
13954 </xs:annotation>
13955 </xs:attribute>
13956 <xs:attribute name="UpgradeCode" type="Guid" use="required">
13957 <xs:annotation>
13958 <xs:documentation>This value specifies the upgrade code for the products that are to be detected by the FindRelatedProducts action.</xs:documentation>
13959 </xs:annotation>
13960 </xs:attribute>
13961 <xs:anyAttribute namespace="##other" processContents="lax">
13962 <xs:annotation>
13963 <xs:documentation>
13964 Extensibility point in the WiX XML Schema. Schema extensions can register additional
13965 attributes at this point in the schema.
13966 </xs:documentation>
13967 </xs:annotation>
13968 </xs:anyAttribute>
13969 </xs:complexType>
13970 </xs:element>
13971 <!-- - - - - - - - - - - Complex Type Definitions - - - - - - - - - - - -->
13972 <xs:complexType name="ActionModuleSequenceType">
13973 <xs:attribute name="After" type="xs:string">
13974 <xs:annotation>
13975 <xs:documentation>The name of an action that this action should come after.</xs:documentation>
13976 </xs:annotation>
13977 </xs:attribute>
13978 <xs:attribute name="Before" type="xs:string">
13979 <xs:annotation>
13980 <xs:documentation>The name of an action that this action should come before.</xs:documentation>
13981 </xs:annotation>
13982 </xs:attribute>
13983 <xs:attribute name="Condition" type="xs:string">
13984 <xs:annotation>
13985 <xs:documentation>The condition of the action.</xs:documentation>
13986 </xs:annotation>
13987 </xs:attribute>
13988 <xs:attribute name="Overridable" type="YesNoTypeUnion">
13989 <xs:annotation>
13990 <xs:documentation>
13991 If "yes", the sequencing of this action may be overridden by sequencing elsewhere.
13992 </xs:documentation>
13993 </xs:annotation>
13994 </xs:attribute>
13995 <xs:attribute name="Sequence" type="Integer">
13996 <xs:annotation>
13997 <xs:documentation>A value used to indicate the position of this action in a sequence.</xs:documentation>
13998 </xs:annotation>
13999 </xs:attribute>
14000 <xs:attribute name="Suppress" type="YesNoTypeUnion">
14001 <xs:annotation>
14002 <xs:documentation>If yes, this action will not occur.</xs:documentation>
14003 </xs:annotation>
14004 </xs:attribute>
14005 </xs:complexType>
14006 <xs:complexType name="ActionSequenceType">
14007 <xs:attribute name="Condition" type="xs:string">
14008 <xs:annotation>
14009 <xs:documentation>The condition of the action.</xs:documentation>
14010 </xs:annotation>
14011 </xs:attribute>
14012 <xs:attribute name="Sequence" type="Integer">
14013 <xs:annotation>
14014 <xs:documentation>A value used to indicate the position of this action in a sequence.</xs:documentation>
14015 </xs:annotation>
14016 </xs:attribute>
14017 <xs:attribute name="Suppress" type="YesNoTypeUnion">
14018 <xs:annotation>
14019 <xs:documentation>If yes, this action will not occur.</xs:documentation>
14020 </xs:annotation>
14021 </xs:attribute>
14022 </xs:complexType>
14023 <!-- - - - - - - - - - - Simple Type Definitions - - - - - - - - - - - - -->
14024 <xs:simpleType name="Guid">
14025 <xs:annotation>
14026 <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>
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="AutogenGuid">
14033 <xs:annotation>
14034 <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>
14035 </xs:annotation>
14036 <xs:restriction base="xs:string">
14037 <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_\.]*\)|\*" />
14038 </xs:restriction>
14039 </xs:simpleType>
14040 <xs:simpleType name="BitnessTypeUnion">
14041 <xs:annotation>
14042 <xs:documentation>Values of this type will be "default", "always32" or "always64".</xs:documentation>
14043 </xs:annotation>
14044 <xs:union memberTypes="BitnessType PreprocessorVariables"/>
14045 </xs:simpleType>
14046 <xs:simpleType name="BitnessType">
14047 <xs:annotation>
14048 <xs:documentation>Values of this type will be "default", "always32" or "always64".</xs:documentation>
14049 </xs:annotation>
14050 <xs:restriction base="xs:NMTOKEN">
14051 <xs:enumeration value="default" />
14052 <xs:enumeration value="always32" />
14053 <xs:enumeration value="always64" />
14054 </xs:restriction>
14055 </xs:simpleType>
14056 <xs:simpleType name="BurnContainerType">
14057 <xs:annotation>
14058 <xs:documentation>Values of this type will either be "attached" or "detached".</xs:documentation>
14059 </xs:annotation>
14060 <xs:restriction base="xs:NMTOKEN">
14061 <xs:enumeration value="attached" />
14062 <xs:enumeration value="detached" />
14063 </xs:restriction>
14064 </xs:simpleType>
14065 <xs:simpleType name="BurnExeProtocolType">
14066 <xs:annotation>
14067 <xs:documentation>The list of communcation protocols with executable packages Burn supports.
14068 </xs:documentation>
14069 </xs:annotation>
14070 <xs:restriction base="xs:NMTOKEN">
14071 <xs:enumeration value="none">
14072 <xs:annotation>
14073 <xs:documentation>
14074 The executable package does not support a communication protocol.
14075 </xs:documentation>
14076 </xs:annotation>
14077 </xs:enumeration>
14078 <xs:enumeration value="burn">
14079 <xs:annotation>
14080 <xs:documentation>
14081 The executable package implements the Burn communication protocol.
14082 </xs:documentation>
14083 </xs:annotation>
14084 </xs:enumeration>
14085 <xs:enumeration value="netfx4">
14086 <xs:annotation>
14087 <xs:documentation>
14088 The executable package implements the .NET Framework v4.0 communication protocol.
14089 </xs:documentation>
14090 </xs:annotation>
14091 </xs:enumeration>
14092 </xs:restriction>
14093 </xs:simpleType>
14094 <xs:simpleType name="ComponentGuid">
14095 <xs:annotation>
14096 <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>
14097 </xs:annotation>
14098 <xs:restriction base="xs:string">
14099 <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_\.]*\)|\*|^$" />
14100 </xs:restriction>
14101 </xs:simpleType>
14102 <xs:simpleType name="Integer">
14103 <xs:annotation>
14104 <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>
14105 </xs:annotation>
14106 <xs:restriction base="xs:string">
14107 <xs:pattern value="[\d]+|\$\((var\.)?[_A-Za-z]{1}[0-9A-Za-z_\.]*\)" />
14108 </xs:restriction>
14109 </xs:simpleType>
14110 <xs:simpleType name="LocalizableInteger">
14111 <xs:annotation>
14112 <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>
14113 </xs:annotation>
14114 <xs:restriction base="xs:string">
14115 <xs:pattern value="[\d]+|\$\((var\.)?[_A-Za-z]{1}[_A-Za-z0-9\.]*\)|!\((loc|bind)\.[_A-Za-z]{1}[_A-Za-z0-9\.]*\)" />
14116 </xs:restriction>
14117 </xs:simpleType>
14118 <xs:simpleType name="NegativeInteger">
14119 <xs:annotation>
14120 <xs:documentation>Values of this allow negative integer or a preprocessor variable with the format `$(Variable)` or `$(var.Variable).</xs:documentation>
14121 </xs:annotation>
14122 <xs:restriction base="xs:string">
14123 <xs:pattern value="-?[\d]+|\$\((var\.)?[_A-Za-z]{1}[0-9A-Za-z_\.]*\)" />
14124 </xs:restriction>
14125 </xs:simpleType>
14126 <xs:simpleType name="ShortFileNameType">
14127 <xs:annotation>
14128 <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>
14129 </xs:annotation>
14130 <xs:restriction base="xs:string">
14131 <xs:pattern value="[^\\\?|&gt;&lt;:/\*&quot;\+,;=\[\]\. ]{1,8}(\.[^\\\?|&gt;&lt;:/\*&quot;\+,;=\[\]\. ]{0,3})?|([!$])\(loc\.[_A-Za-z]{1}[0-9A-Za-z_\.]*\)" />
14132 </xs:restriction>
14133 </xs:simpleType>
14134 <xs:simpleType name="LongFileNameType">
14135 <xs:annotation>
14136 <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>
14137 </xs:annotation>
14138 <xs:restriction base="xs:string">
14139 <xs:pattern value="[^\\\?|&gt;&lt;:/\*&quot;]{1,259}|([!$])\(loc\.[_A-Za-z]{1}[0-9A-Za-z_\.]*\)" />
14140 </xs:restriction>
14141 </xs:simpleType>
14142 <xs:simpleType name="VersionType">
14143 <xs:annotation>
14144 <xs:documentation>Values of this type will look like: "x.x.x.x" where x is an integer from 0 to 65534.</xs:documentation>
14145 </xs:annotation>
14146 <xs:restriction base="xs:string">
14147 <xs:pattern value="(\d{1,5}\.){3}\d{1,5}" />
14148 </xs:restriction>
14149 </xs:simpleType>
14150 <xs:simpleType name="StrictThreePartVersionType">
14151 <xs:annotation>
14152 <xs:documentation>Values of this type will look exactly like: "x.x.x" where x is an integer.</xs:documentation>
14153 </xs:annotation>
14154 <xs:restriction base="xs:string">
14155 <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_\.]*\)" />
14156 </xs:restriction>
14157 </xs:simpleType>
14158 <xs:simpleType name="WixVersionType">
14159 <xs:annotation>
14160 <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>
14161 </xs:annotation>
14162 <xs:restriction base="xs:string">
14163 <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_\.]*\)" />
14164 </xs:restriction>
14165 </xs:simpleType>
14166 <xs:simpleType name="WildCardShortFileNameType">
14167 <xs:annotation>
14168 <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>
14169 </xs:annotation>
14170 <xs:restriction base="xs:string">
14171 <xs:pattern value="[^\\\|&gt;&lt;:/&quot;\+,;=\[\]\. ]{1,16}(\.[^\\\|&gt;&lt;:/&quot;\+,;=\[\]\. ]{0,6})?|([!$])\(loc\.[_A-Za-z]{1}[0-9A-Za-z_\.]*\)" />
14172 </xs:restriction>
14173 </xs:simpleType>
14174 <xs:simpleType name="WildCardLongFileNameType">
14175 <xs:annotation>
14176 <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>
14177 </xs:annotation>
14178 <xs:restriction base="xs:string">
14179 <xs:pattern value="[^\\\|&gt;&lt;:/&quot;]{1,259}|([!$])\(loc\.[_A-Za-z]{1}[0-9A-Za-z_\.]*\)" />
14180 </xs:restriction>
14181 </xs:simpleType>
14182 <xs:simpleType name="HexType">
14183 <xs:annotation>
14184 <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>
14185 </xs:annotation>
14186 <xs:restriction base="xs:string">
14187 <xs:pattern value="[0-9A-Fa-f]*" />
14188 </xs:restriction>
14189 </xs:simpleType>
14190 <xs:simpleType name="StandardDirectoryTypeUnion">
14191 <xs:annotation>
14192 <xs:documentation>A Windows Installer standard directory.</xs:documentation>
14193 </xs:annotation>
14194 <xs:union memberTypes="StandardDirectoryType PreprocessorVariables"/>
14195 </xs:simpleType>
14196 <xs:simpleType name="StandardDirectoryType">
14197 <xs:annotation>
14198 <xs:documentation>A Windows Installer standard directory.</xs:documentation>
14199 </xs:annotation>
14200 <xs:restriction base="xs:NMTOKEN">
14201 <xs:enumeration value="TARGETDIR" />
14202 <xs:enumeration value="AdminToolsFolder" />
14203 <xs:enumeration value="AppDataFolder" />
14204 <xs:enumeration value="CommonAppDataFolder" />
14205 <xs:enumeration value="CommonFilesFolder" />
14206 <xs:enumeration value="CommonFiles64Folder" />
14207 <xs:enumeration value="CommonFiles6432Folder" />
14208 <xs:enumeration value="DesktopFolder" />
14209 <xs:enumeration value="FavoritesFolder" />
14210 <xs:enumeration value="FontsFolder" />
14211 <xs:enumeration value="LocalAppDataFolder" />
14212 <xs:enumeration value="MyPicturesFolder" />
14213 <xs:enumeration value="NetHoodFolder" />
14214 <xs:enumeration value="PersonalFolder" />
14215 <xs:enumeration value="PrintHoodFolder" />
14216 <xs:enumeration value="ProgramFilesFolder" />
14217 <xs:enumeration value="ProgramFiles64Folder" />
14218 <xs:enumeration value="ProgramFiles6432Folder" />
14219 <xs:enumeration value="ProgramMenuFolder" />
14220 <xs:enumeration value="PerUserProgramFilesFolder" />
14221 <xs:enumeration value="RecentFolder" />
14222 <xs:enumeration value="SendToFolder" />
14223 <xs:enumeration value="StartMenuFolder" />
14224 <xs:enumeration value="StartupFolder" />
14225 <xs:enumeration value="SystemFolder" />
14226 <xs:enumeration value="System16Folder" />
14227 <xs:enumeration value="System64Folder" />
14228 <xs:enumeration value="System6432Folder" />
14229 <xs:enumeration value="TempFolder" />
14230 <xs:enumeration value="TemplateFolder" />
14231 <xs:enumeration value="WindowsFolder" />
14232 </xs:restriction>
14233 </xs:simpleType>
14234 <xs:simpleType name="PackageScopeTypeUnion">
14235 <xs:annotation>
14236 <xs:documentation>Use this attribute to specify the installation scope of this package: per-machine, per-user, or a choice of either.</xs:documentation>
14237 </xs:annotation>
14238 <xs:union memberTypes="PackageScopeType PreprocessorVariables"/>
14239 </xs:simpleType>
14240 <xs:simpleType name="PackageScopeType">
14241 <xs:annotation>
14242 <xs:documentation>Use this attribute to specify the installation scope of this package: per-machine, per-user, or a choice of either.</xs:documentation>
14243 </xs:annotation>
14244 <xs:restriction base="xs:NMTOKEN">
14245 <xs:enumeration value="perMachine">
14246 <xs:annotation>
14247 <xs:documentation>
14248 Set this value to declare that the package is a per-machine installation and requires elevated privileges to install.
14249 Sets the ALLUSERS property to 1.
14250 </xs:documentation>
14251 </xs:annotation>
14252 </xs:enumeration>
14253 <xs:enumeration value="perUser">
14254 <xs:annotation>
14255 <xs:documentation>
14256 Set this value to declare that the package is a per-user installation and does not require elevated privileges to install.
14257 Sets the package's InstallPrivileges attribute to "limited."
14258 </xs:documentation>
14259 </xs:annotation>
14260 </xs:enumeration>
14261 <xs:enumeration value="perUserOrMachine">
14262 <xs:annotation>
14263 <xs:documentation>
14264 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).
14265 Sets the ALLUSERS property to 2 and MSIINSTALLPERUSER property to 1.
14266 </xs:documentation>
14267 </xs:annotation>
14268 </xs:enumeration>
14269 </xs:restriction>
14270 </xs:simpleType>
14271 <xs:simpleType name="UpgradeStrategyTypeUnion">
14272 <xs:annotation>
14273 <xs:documentation>Use this attribute to specify the upgrade strategy of this package: major upgrade or none.</xs:documentation>
14274 </xs:annotation>
14275 <xs:union memberTypes="UpgradeStrategyType PreprocessorVariables"/>
14276 </xs:simpleType>
14277 <xs:simpleType name="UpgradeStrategyType">
14278 <xs:annotation>
14279 <xs:documentation>Use this attribute to specify the installation scope of this package: major upgrade or none.</xs:documentation>
14280 </xs:annotation>
14281 <xs:restriction base="xs:NMTOKEN">
14282 <xs:enumeration value="majorUpgrade">
14283 <xs:annotation>
14284 <xs:documentation>
14285 Set this value to declare that the package will be upgraded via major upgrades.
14286 You can author a major upgrade with your preferred options or a default major
14287 upgrade will be provided if you don't. The UpgradeCode attribute is required.
14288 </xs:documentation>
14289 </xs:annotation>
14290 </xs:enumeration>
14291 <xs:enumeration value="none">
14292 <xs:annotation>
14293 <xs:documentation>
14294 Set this value to declare that the package will not support major upgrades.
14295 This value is _not_ recommended because it means a product cannot be serviced
14296 in the event of major bug or security vulnerability.
14297 </xs:documentation>
14298 </xs:annotation>
14299 </xs:enumeration>
14300 </xs:restriction>
14301 </xs:simpleType>
14302 <xs:simpleType name="YesNoTypeUnion">
14303 <xs:annotation>
14304 <xs:documentation>Values of this type will either be "yes"/"true" or "no"/"false".</xs:documentation>
14305 </xs:annotation>
14306 <xs:union memberTypes="YesNoType PreprocessorVariables"/>
14307 </xs:simpleType>
14308 <xs:simpleType name="YesNoType">
14309 <xs:annotation>
14310 <xs:documentation>Values of this type will either be "yes"/"true" or "no"/"false".</xs:documentation>
14311 </xs:annotation>
14312 <xs:restriction base="xs:NMTOKEN">
14313 <xs:enumeration value="no" />
14314 <xs:enumeration value="false" />
14315 <xs:enumeration value="yes" />
14316 <xs:enumeration value="true" />
14317 </xs:restriction>
14318 </xs:simpleType>
14319 <xs:simpleType name="YesNoButtonTypeUnion">
14320 <xs:annotation>
14321 <xs:documentation>Values of this type will either be "button", "yes"/"true", or "no"/"false".</xs:documentation>
14322 </xs:annotation>
14323 <xs:union memberTypes="YesNoButtonType PreprocessorVariables"/>
14324 </xs:simpleType>
14325 <xs:simpleType name="YesNoButtonType">
14326 <xs:annotation>
14327 <xs:documentation>Values of this type will either be "button", "yes"/"true", or "no"/"false".</xs:documentation>
14328 </xs:annotation>
14329 <xs:restriction base="xs:NMTOKEN">
14330 <xs:enumeration value="no" />
14331 <xs:enumeration value="false" />
14332 <xs:enumeration value="yes" />
14333 <xs:enumeration value="true" />
14334 <xs:enumeration value="button" />
14335 </xs:restriction>
14336 </xs:simpleType>
14337 <xs:simpleType name="YesNoDefaultTypeUnion">
14338 <xs:annotation>
14339 <xs:documentation>Values of this type will either be "default", "yes", or "no".</xs:documentation>
14340 </xs:annotation>
14341 <xs:union memberTypes="YesNoDefaultType PreprocessorVariables"/>
14342 </xs:simpleType>
14343 <xs:simpleType name="YesNoDefaultType">
14344 <xs:annotation>
14345 <xs:documentation>Values of this type will either be "default", "yes", or "no".</xs:documentation>
14346 </xs:annotation>
14347 <xs:restriction base="xs:NMTOKEN">
14348 <xs:enumeration value="default" />
14349 <xs:enumeration value="no" />
14350 <xs:enumeration value="false" />
14351 <xs:enumeration value="yes" />
14352 <xs:enumeration value="true" />
14353 </xs:restriction>
14354 </xs:simpleType>
14355 <xs:simpleType name="KeepRemoveForceTypeUnion">
14356 <xs:annotation>
14357 <xs:documentation>Values of this type will either be "force", "keep", or "remove".</xs:documentation>
14358 </xs:annotation>
14359 <xs:union memberTypes="KeepRemoveForceType PreprocessorVariables"/>
14360 </xs:simpleType>
14361 <xs:simpleType name="KeepRemoveForceType">
14362 <xs:annotation>
14363 <xs:documentation>Values of this type will either be "force", "keep", or "remove".</xs:documentation>
14364 </xs:annotation>
14365 <xs:restriction base="xs:NMTOKEN">
14366 <xs:enumeration value="force">
14367 <xs:annotation>
14368 <xs:documentation>
14369 Always cache the package during Cache, Install, Modify, Repair, and Layout.
14370 </xs:documentation>
14371 </xs:annotation>
14372 </xs:enumeration>
14373 <xs:enumeration value="keep">
14374 <xs:annotation>
14375 <xs:documentation>
14376 Keep the package cached when the package is requested to be present.
14377 </xs:documentation>
14378 </xs:annotation>
14379 </xs:enumeration>
14380 <xs:enumeration value="remove">
14381 <xs:annotation>
14382 <xs:documentation>
14383 Always uncache the package after Cache, Install, Modify, Repair, Uninstall, and Layout.
14384 </xs:documentation>
14385 </xs:annotation>
14386 </xs:enumeration>
14387 </xs:restriction>
14388 </xs:simpleType>
14389 <xs:simpleType name="RegistryRootType">
14390 <xs:annotation>
14391 <xs:documentation>Values of this type represent possible registry roots.</xs:documentation>
14392 </xs:annotation>
14393 <xs:restriction base="xs:NMTOKEN">
14394 <xs:enumeration value="HKMU">
14395 <xs:annotation>
14396 <xs:documentation>
14397 A per-user installation will make the operation occur under HKEY_CURRENT_USER.
14398 A per-machine installation will make the operation occur under HKEY_LOCAL_MACHINE.
14399 </xs:documentation>
14400 </xs:annotation>
14401 </xs:enumeration>
14402 <xs:enumeration value="HKCR">
14403 <xs:annotation>
14404 <xs:documentation>
14405 Operation occurs under HKEY_CLASSES_ROOT. When using Windows 2000 or later, the installer writes or removes the value
14406 from the HKCU\Software\Classes hive during per-user installations. When using Windows 2000 or later operating systems,
14407 the installer writes or removes the value from the HKLM\Software\Classes hive during per-machine installations.
14408 </xs:documentation>
14409 </xs:annotation>
14410 </xs:enumeration>
14411 <xs:enumeration value="HKCU">
14412 <xs:annotation>
14413 <xs:documentation>
14414 Operation occurs under HKEY_CURRENT_USER. It is recommended to set the KeyPath attribute to `yes` when setting this value for writing values
14415 in order to ensure that the installer writes the necessary registry entries when there are multiple users on the same computer.
14416 </xs:documentation>
14417 </xs:annotation>
14418 </xs:enumeration>
14419 <xs:enumeration value="HKLM">
14420 <xs:annotation>
14421 <xs:documentation>
14422 Operation occurs under HKEY_LOCAL_MACHINE.
14423 </xs:documentation>
14424 </xs:annotation>
14425 </xs:enumeration>
14426 <xs:enumeration value="HKU">
14427 <xs:annotation>
14428 <xs:documentation>
14429 Operation occurs under HKEY_USERS.
14430 </xs:documentation>
14431 </xs:annotation>
14432 </xs:enumeration>
14433 </xs:restriction>
14434 </xs:simpleType>
14435 <xs:simpleType name="ExitType">
14436 <xs:annotation>
14437 <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.
14438 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>
14439 </xs:annotation>
14440 <xs:restriction base="xs:NMTOKEN">
14441 <xs:enumeration value="success" />
14442 <xs:enumeration value="cancel" />
14443 <xs:enumeration value="error" />
14444 <xs:enumeration value="suspend" />
14445 </xs:restriction>
14446 </xs:simpleType>
14447 <xs:simpleType name="InstallUninstallType">
14448 <xs:annotation>
14449 <xs:documentation>Specifies whether an action occur on install, uninstall or both.</xs:documentation>
14450 </xs:annotation>
14451 <xs:restriction base="xs:NMTOKEN">
14452 <xs:enumeration value="install">
14453 <xs:annotation>
14454 <xs:documentation>
14455 The action should happen during install (msiInstallStateLocal or msiInstallStateSource).
14456 </xs:documentation>
14457 </xs:annotation>
14458 </xs:enumeration>
14459 <xs:enumeration value="uninstall">
14460 <xs:annotation>
14461 <xs:documentation>
14462 The action should happen during uninstall (msiInstallStateAbsent).
14463 </xs:documentation>
14464 </xs:annotation>
14465 </xs:enumeration>
14466 <xs:enumeration value="both">
14467 <xs:annotation>
14468 <xs:documentation>
14469 The action should happen during both install and uninstall.
14470 </xs:documentation>
14471 </xs:annotation>
14472 </xs:enumeration>
14473 </xs:restriction>
14474 </xs:simpleType>
14475 <xs:simpleType name="SequenceType">
14476 <xs:annotation>
14477 <xs:documentation>
14478 Controls which sequences the item assignment is sequenced in.
14479 </xs:documentation>
14480 </xs:annotation>
14481 <xs:restriction base="xs:NMTOKEN">
14482 <xs:enumeration value="both">
14483 <xs:annotation>
14484 <xs:documentation>
14485 Schedules the assignment in the InstallUISequence and the InstallExecuteSequence.
14486 </xs:documentation>
14487 </xs:annotation>
14488 </xs:enumeration>
14489 <xs:enumeration value="first">
14490 <xs:annotation>
14491 <xs:documentation>
14492 Schedules the assignment to run in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped.
14493 </xs:documentation>
14494 </xs:annotation>
14495 </xs:enumeration>
14496 <xs:enumeration value="execute">
14497 <xs:annotation>
14498 <xs:documentation>
14499 Schedules the assignment only in the the InstallExecuteSequence.
14500 </xs:documentation>
14501 </xs:annotation>
14502 </xs:enumeration>
14503 <xs:enumeration value="ui">
14504 <xs:annotation>
14505 <xs:documentation>
14506 Schedules the assignment only in the the InstallUISequence.
14507 </xs:documentation>
14508 </xs:annotation>
14509 </xs:enumeration>
14510 </xs:restriction>
14511 </xs:simpleType>
14512 <xs:simpleType name="CompressionLevelTypeUnion">
14513 <xs:annotation>
14514 <xs:documentation>
14515 Indicates the compression level for a cabinet.
14516 </xs:documentation>
14517 </xs:annotation>
14518 <xs:union memberTypes="CompressionLevelType PreprocessorVariables"/>
14519 </xs:simpleType>
14520
14521 <xs:simpleType name="CompressionLevelType">
14522 <xs:annotation>
14523 <xs:documentation>
14524 Indicates the compression level for a cabinet.
14525 </xs:documentation>
14526 </xs:annotation>
14527 <xs:restriction base="xs:NMTOKEN">
14528 <xs:enumeration value="high" />
14529 <xs:enumeration value="low" />
14530 <xs:enumeration value="medium" />
14531 <xs:enumeration value="mszip" />
14532 <xs:enumeration value="none" />
14533 </xs:restriction>
14534 </xs:simpleType>
14535 <xs:simpleType name="PreprocessorVariables">
14536 <xs:annotation>
14537 <xs:documentation>A type that represents 1 or more preprocessor variables.</xs:documentation>
14538 </xs:annotation>
14539 <xs:restriction base="xs:string">
14540 <xs:pattern value="(\$\((\w+\.)?(\w[\w()]*)\))+" />
14541 </xs:restriction>
14542 </xs:simpleType>
14543 <xs:simpleType name="DiskIdType">
14544 <xs:annotation>
14545 <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>
14546 </xs:annotation>
14547 <xs:restriction base="xs:string">
14548 <xs:pattern value="((\d+)|(\$\(\w+\.(\w|[.])+\)))+" />
14549 </xs:restriction>
14550 </xs:simpleType>
14551 <xs:simpleType name="VariableType">
14552 <xs:annotation>
14553 <xs:documentation>Indicates the type of a Variable.</xs:documentation>
14554 </xs:annotation>
14555 <xs:restriction base="xs:NMTOKEN">
14556 <xs:enumeration value="string">
14557 <xs:annotation>
14558 <xs:documentation>A literal string.</xs:documentation>
14559 </xs:annotation>
14560 </xs:enumeration>
14561 <xs:enumeration value="formatted">
14562 <xs:annotation>
14563 <xs:documentation>A string that may contain Variables.</xs:documentation>
14564 </xs:annotation>
14565 </xs:enumeration>
14566 <xs:enumeration value="numeric" />
14567 <xs:enumeration value="version" />
14568 </xs:restriction>
14569 </xs:simpleType>
14570
14571 <xs:element name="Provides">
14572 <xs:annotation>
14573 <xs:documentation>
14574 Describes the information for this product or feature that serves as a dependency of other products or features.
14575 </xs:documentation>
14576 <xs:appinfo>
14577 <xse:remarks>
14578 This element is required for any product, feature, or bundle that will use the Dependency feature to properly reference count
14579 other products or features. It should be authored into a component that is always installed and removed with the
14580 product or features that contain it. This guarantees that product dependencies are not removed before those products that
14581 depend on them.
14582
14583 The @Key attribute should identify a version range for your product that you guarantee will be backward compatible.
14584 This key is designed to persist throughout compatible upgrades so that dependent products do not have to be reinstalled
14585 and will not prevent your product from being upgraded. If this attribute is not authored, the value is the ProductCode
14586 and will not automatically support upgrades.
14587
14588 By default this uses the Package/@ProductCode attribute value, which may be automatically generated.
14589 </xse:remarks>
14590 <xse:howtoRef href="author_product_dependencies.html">How To: Author product dependencies</xse:howtoRef>
14591 </xs:appinfo>
14592 </xs:annotation>
14593 <xs:complexType>
14594 <xs:choice minOccurs="0" maxOccurs="unbounded">
14595 <xs:element ref="Requires" />
14596 <xs:element ref="RequiresRef" />
14597 </xs:choice>
14598 <xs:attribute name="Id" type="xs:string">
14599 <xs:annotation>
14600 <xs:documentation>
14601 Dependency provider identity. If this attribute is not specified, an identifier will be generated automatically.
14602 </xs:documentation>
14603 </xs:annotation>
14604 </xs:attribute>
14605 <xs:attribute name="Key" type="xs:string">
14606 <xs:annotation>
14607 <xs:documentation>
14608 Optional unique registry key name that identifies a product version range on which other products can depend.
14609 This attribute is required in package authoring, but optional for components.
14610 </xs:documentation>
14611 </xs:annotation>
14612 </xs:attribute>
14613 <xs:attribute name="Version" type="WixVersionType">
14614 <xs:annotation>
14615 <xs:documentation>
14616 The version of the package. For MSI packages, the ProductVersion will be used by default
14617 and this attribute should not be specified.
14618 </xs:documentation>
14619 </xs:annotation>
14620 </xs:attribute>
14621 <xs:attribute name="DisplayName" type="xs:string">
14622 <xs:annotation>
14623 <xs:documentation>
14624 Optional display name of the package. For MSI packages, the ProductName will be used by default.
14625 </xs:documentation>
14626 </xs:annotation>
14627 </xs:attribute>
14628 <xs:anyAttribute namespace="##other" processContents="lax">
14629 <xs:annotation>
14630 <xs:documentation>
14631 Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema.
14632 </xs:documentation>
14633 </xs:annotation>
14634 </xs:anyAttribute>
14635 </xs:complexType>
14636 </xs:element>
14637 <xs:element name="Requires">
14638 <xs:annotation>
14639 <xs:documentation>
14640 Describes a dependency on a provider for the current component or package.
14641 </xs:documentation>
14642 <xs:appinfo>
14643 <xse:remarks>
14644 <html:p>
14645 This element declares a dependency on any product that uses the Provides element. If that product is uninstalled
14646 before a product that requires it, the uninstall will err or warn the user that other products are installed
14647 which depend on that product. This behavior can be modified by changing the attribute values on the Requires element.
14648 </html:p>
14649 <html:p>
14650 If you do not nest this element under a Provides element, you must specify the @Id attribute
14651 so that it can be referenced by a RequiresRef element nested under a Provides element.
14652 </html:p>
14653 </xse:remarks>
14654 <xse:seeAlso ref="RequiresRef" />
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">
14660 <xs:annotation>
14661 <xs:documentation>
14662 Dependency requirement identity. If this attribute is not specified, an identifier will be generated automatically.
14663 If this element is not authored under a Provides element, this attribute is required.
14664 </xs:documentation>
14665 </xs:annotation>
14666 </xs:attribute>
14667 <xs:attribute name="ProviderKey" type="xs:string" use="required">
14668 <xs:annotation>
14669 <xs:documentation>
14670 The unique registry key name for the dependency provider to require during installation of this product.
14671 </xs:documentation>
14672 </xs:annotation>
14673 </xs:attribute>
14674 <xs:attribute name="Minimum" type="WixVersionType">
14675 <xs:annotation>
14676 <xs:documentation>
14677 The minimum version of the dependency provider required to be installed. The default is unbound.
14678 </xs:documentation>
14679 </xs:annotation>
14680 </xs:attribute>
14681 <xs:attribute name="Maximum" type="WixVersionType">
14682 <xs:annotation>
14683 <xs:documentation>
14684 The maximum version of the dependency provider required to be installed. The default is unbound.
14685 </xs:documentation>
14686 </xs:annotation>
14687 </xs:attribute>
14688 <xs:attribute name="IncludeMinimum" type="YesNoType">
14689 <xs:annotation>
14690 <xs:documentation>
14691 Set to "yes" to make the range of dependency provider versions required include the value specified in Minimum.
14692 </xs:documentation>
14693 </xs:annotation>
14694 </xs:attribute>
14695 <xs:attribute name="IncludeMaximum" type="YesNoType">
14696 <xs:annotation>
14697 <xs:documentation>
14698 Set to "yes" to make the range of dependency provider versions required include the value specified in Maximum.
14699 </xs:documentation>
14700 </xs:annotation>
14701 </xs:attribute>
14702 <xs:anyAttribute namespace="##other" processContents="lax">
14703 <xs:annotation>
14704 <xs:documentation>
14705 Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema.
14706 </xs:documentation>
14707 </xs:annotation>
14708 </xs:anyAttribute>
14709 </xs:complexType>
14710 </xs:element>
14711 <xs:element name="RequiresRef">
14712 <xs:annotation>
14713 <xs:documentation>
14714 References existing authoring for a dependency on a provider for the current component or package.
14715 </xs:documentation>
14716 <xs:appinfo>
14717 <xse:remarks>
14718 <html:p>
14719 This element references a dependency on any product that uses the Provides element. If that product is uninstalled
14720 before a product that requires it, the uninstall will err or warn the user that other products are installed
14721 which depend on that product. This behavior can be modified by changing the attribute values on the Requires element.
14722 </html:p>
14723 </xse:remarks>
14724 <xse:seeAlso ref="Requires" />
14725 <xse:howtoRef href="author_product_dependencies.html">How To: Author product dependencies</xse:howtoRef>
14726 </xs:appinfo>
14727 </xs:annotation>
14728 <xs:complexType>
14729 <xs:attribute name="Id" type="xs:string" use="required">
14730 <xs:annotation>
14731 <xs:documentation>
14732 The identifier of the Requires element to reference.
14733 </xs:documentation>
14734 </xs:annotation>
14735 </xs:attribute>
14736 <xs:anyAttribute namespace="##other" processContents="lax">
14737 <xs:annotation>
14738 <xs:documentation>
14739 Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema.
14740 </xs:documentation>
14741 </xs:annotation>
14742 </xs:anyAttribute>
14743 </xs:complexType>
14744 </xs:element>
14745</xs:schema>