@joebigelow / wix-1 / commits / d672d9e0

Replace BinaryKey with BinaryRef and FileKey with FileRef.

Bob Arnson committed Sep 6, 2020 at 21:24 UTC d672d9e0eaee21f354cbeaa177ddf074edeb665d
5 files changed +2 -13325
src/wixext/UtilCompiler.cs
+2 -2
@@ -2318,7 +2318,7 @@ namespace WixToolset.Util
2318 {
2319 switch (attrib.Name.LocalName)
2320 {
2321 - case "BinaryKey":
2321 + case "BinaryRef":
2322 binaryId = this.ParseHelper.GetAttributeValue(sourceLineNumbers, attrib);
2323 break;
2324 default:
@@ -2336,7 +2336,7 @@ namespace WixToolset.Util
2336
2337 if (null == binaryId)
2338 {
2339 - this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, element.Name.LocalName, "BinaryKey"));
2339 + this.Messaging.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, element.Name.LocalName, "BinaryRef"));
2340 }
2341
2342 if (!this.Messaging.EncounteredError)
src/wixext/WixToolset.Util.wixext.csproj
-1
@@ -15,7 +15,6 @@
15
16 <ItemGroup>
17 <Content Include="$(MSBuildThisFileName).targets" />
18 - <Content Include="util.xsd" PackagePath="tools" />
18 <EmbeddedResource Include="$(OutputPath)..\util.wixlib" />
19 </ItemGroup>
20
src/wixext/WixToolset.Util.wixext.nuspec
-1
@@ -18,7 +18,6 @@
18 <file src="$projectFolder$$id$.targets" target="build" />
19
20 <file src="netstandard2.0\$id$.dll" target="tools" />
21 - <file src="$projectFolder$util.xsd" target="tools" />
21
22 <file src="ARM\*.pdb" target="pdbs\ARM" />
23 <file src="ARM64\*.pdb" target="pdbs\ARM64" />
src/wixext/util.cs deleted
-11463
@@ -1,11463 +0,0 @@
1 -//------------------------------------------------------------------------------
2 -// <auto-generated>
3 -// This code was generated by a tool.
4 -// Runtime Version:4.0.30319.42000
5 -//
6 -// Changes to this file may cause incorrect behavior and will be lost if
7 -// the code is regenerated.
8 -// </auto-generated>
9 -//------------------------------------------------------------------------------
10 -
11 -namespace WixToolset.Util.Serialize
12 -{
13 -#if TODO_CONSIDER_DECOMPILER
14 - using System;
15 - using System.CodeDom.Compiler;
16 - using System.Collections;
17 - using System.Diagnostics.CodeAnalysis;
18 - using System.Globalization;
19 - using System.Xml;
20 - using WixToolset.Data.Serialize;
21 -
22 -
23 - /// <summary>
24 - /// Values of this type will either be "yes" or "no".
25 - /// </summary>
26 - [GeneratedCode("XsdGen", "4.0.0.0")]
27 - public enum YesNoType
28 - {
29 -
30 - IllegalValue = int.MaxValue,
31 -
32 - NotSet = -1,
33 -
34 - no,
35 -
36 - yes,
37 - }
38 -
39 - [GeneratedCode("XsdGen", "4.0.0.0")]
40 - public class Enums
41 - {
42 -
43 - /// <summary>
44 - /// Parses a YesNoType from a string.
45 - /// </summary>
46 - public static YesNoType ParseYesNoType(string value)
47 - {
48 - YesNoType parsedValue;
49 - Enums.TryParseYesNoType(value, out parsedValue);
50 - return parsedValue;
51 - }
52 -
53 - /// <summary>
54 - /// Tries to parse a YesNoType from a string.
55 - /// </summary>
56 - public static bool TryParseYesNoType(string value, out YesNoType parsedValue)
57 - {
58 - parsedValue = YesNoType.NotSet;
59 - if (string.IsNullOrEmpty(value))
60 - {
61 - return false;
62 - }
63 - if (("no" == value))
64 - {
65 - parsedValue = YesNoType.no;
66 - }
67 - else
68 - {
69 - if (("yes" == value))
70 - {
71 - parsedValue = YesNoType.yes;
72 - }
73 - else
74 - {
75 - parsedValue = YesNoType.IllegalValue;
76 - return false;
77 - }
78 - }
79 - return true;
80 - }
81 -
82 - /// <summary>
83 - /// Parses a PerformanceCounterLanguageType from a string.
84 - /// </summary>
85 - public static PerformanceCounterLanguageType ParsePerformanceCounterLanguageType(string value)
86 - {
87 - PerformanceCounterLanguageType parsedValue;
88 - Enums.TryParsePerformanceCounterLanguageType(value, out parsedValue);
89 - return parsedValue;
90 - }
91 -
92 - /// <summary>
93 - /// Tries to parse a PerformanceCounterLanguageType from a string.
94 - /// </summary>
95 - public static bool TryParsePerformanceCounterLanguageType(string value, out PerformanceCounterLanguageType parsedValue)
96 - {
97 - parsedValue = PerformanceCounterLanguageType.NotSet;
98 - if (string.IsNullOrEmpty(value))
99 - {
100 - return false;
101 - }
102 - if (("afrikaans" == value))
103 - {
104 - parsedValue = PerformanceCounterLanguageType.afrikaans;
105 - }
106 - else
107 - {
108 - if (("albanian" == value))
109 - {
110 - parsedValue = PerformanceCounterLanguageType.albanian;
111 - }
112 - else
113 - {
114 - if (("arabic" == value))
115 - {
116 - parsedValue = PerformanceCounterLanguageType.arabic;
117 - }
118 - else
119 - {
120 - if (("armenian" == value))
121 - {
122 - parsedValue = PerformanceCounterLanguageType.armenian;
123 - }
124 - else
125 - {
126 - if (("assamese" == value))
127 - {
128 - parsedValue = PerformanceCounterLanguageType.assamese;
129 - }
130 - else
131 - {
132 - if (("azeri" == value))
133 - {
134 - parsedValue = PerformanceCounterLanguageType.azeri;
135 - }
136 - else
137 - {
138 - if (("basque" == value))
139 - {
140 - parsedValue = PerformanceCounterLanguageType.basque;
141 - }
142 - else
143 - {
144 - if (("belarusian" == value))
145 - {
146 - parsedValue = PerformanceCounterLanguageType.belarusian;
147 - }
148 - else
149 - {
150 - if (("bengali" == value))
151 - {
152 - parsedValue = PerformanceCounterLanguageType.bengali;
153 - }
154 - else
155 - {
156 - if (("bulgarian" == value))
157 - {
158 - parsedValue = PerformanceCounterLanguageType.bulgarian;
159 - }
160 - else
161 - {
162 - if (("catalan" == value))
163 - {
164 - parsedValue = PerformanceCounterLanguageType.catalan;
165 - }
166 - else
167 - {
168 - if (("chinese" == value))
169 - {
170 - parsedValue = PerformanceCounterLanguageType.chinese;
171 - }
172 - else
173 - {
174 - if (("croatian" == value))
175 - {
176 - parsedValue = PerformanceCounterLanguageType.croatian;
177 - }
178 - else
179 - {
180 - if (("czech" == value))
181 - {
182 - parsedValue = PerformanceCounterLanguageType.czech;
183 - }
184 - else
185 - {
186 - if (("danish" == value))
187 - {
188 - parsedValue = PerformanceCounterLanguageType.danish;
189 - }
190 - else
191 - {
192 - if (("divehi" == value))
193 - {
194 - parsedValue = PerformanceCounterLanguageType.divehi;
195 - }
196 - else
197 - {
198 - if (("dutch" == value))
199 - {
200 - parsedValue = PerformanceCounterLanguageType.dutch;
201 - }
202 - else
203 - {
204 - if (("english" == value))
205 - {
206 - parsedValue = PerformanceCounterLanguageType.english;
207 - }
208 - else
209 - {
210 - if (("estonian" == value))
211 - {
212 - parsedValue = PerformanceCounterLanguageType.estonian;
213 - }
214 - else
215 - {
216 - if (("faeroese" == value))
217 - {
218 - parsedValue = PerformanceCounterLanguageType.faeroese;
219 - }
220 - else
221 - {
222 - if (("farsi" == value))
223 - {
224 - parsedValue = PerformanceCounterLanguageType.farsi;
225 - }
226 - else
227 - {
228 - if (("finnish" == value))
229 - {
230 - parsedValue = PerformanceCounterLanguageType.finnish;
231 - }
232 - else
233 - {
234 - if (("french" == value))
235 - {
236 - parsedValue = PerformanceCounterLanguageType.french;
237 - }
238 - else
239 - {
240 - if (("galician" == value))
241 - {
242 - parsedValue = PerformanceCounterLanguageType.galician;
243 - }
244 - else
245 - {
246 - if (("georgian" == value))
247 - {
248 - parsedValue = PerformanceCounterLanguageType.georgian;
249 - }
250 - else
251 - {
252 - if (("german" == value))
253 - {
254 - parsedValue = PerformanceCounterLanguageType.german;
255 - }
256 - else
257 - {
258 - if (("greek" == value))
259 - {
260 - parsedValue = PerformanceCounterLanguageType.greek;
261 - }
262 - else
263 - {
264 - if (("gujarati" == value))
265 - {
266 - parsedValue = PerformanceCounterLanguageType.gujarati;
267 - }
268 - else
269 - {
270 - if (("hebrew" == value))
271 - {
272 - parsedValue = PerformanceCounterLanguageType.hebrew;
273 - }
274 - else
275 - {
276 - if (("hindi" == value))
277 - {
278 - parsedValue = PerformanceCounterLanguageType.hindi;
279 - }
280 - else
281 - {
282 - if (("hungarian" == value))
283 - {
284 - parsedValue = PerformanceCounterLanguageType.hungarian;
285 - }
286 - else
287 - {
288 - if (("icelandic" == value))
289 - {
290 - parsedValue = PerformanceCounterLanguageType.icelandic;
291 - }
292 - else
293 - {
294 - if (("indonesian" == value))
295 - {
296 - parsedValue = PerformanceCounterLanguageType.indonesian;
297 - }
298 - else
299 - {
300 - if (("italian" == value))
301 - {
302 - parsedValue = PerformanceCounterLanguageType.italian;
303 - }
304 - else
305 - {
306 - if (("japanese" == value))
307 - {
308 - parsedValue = PerformanceCounterLanguageType.japanese;
309 - }
310 - else
311 - {
312 - if (("kannada" == value))
313 - {
314 - parsedValue = PerformanceCounterLanguageType.kannada;
315 - }
316 - else
317 - {
318 - if (("kashmiri" == value))
319 - {
320 - parsedValue = PerformanceCounterLanguageType.kashmiri;
321 - }
322 - else
323 - {
324 - if (("kazak" == value))
325 - {
326 - parsedValue = PerformanceCounterLanguageType.kazak;
327 - }
328 - else
329 - {
330 - if (("konkani" == value))
331 - {
332 - parsedValue = PerformanceCounterLanguageType.konkani;
333 - }
334 - else
335 - {
336 - if (("korean" == value))
337 - {
338 - parsedValue = PerformanceCounterLanguageType.korean;
339 - }
340 - else
341 - {
342 - if (("kyrgyz" == value))
343 - {
344 - parsedValue = PerformanceCounterLanguageType.kyrgyz;
345 - }
346 - else
347 - {
348 - if (("latvian" == value))
349 - {
350 - parsedValue = PerformanceCounterLanguageType.latvian;
351 - }
352 - else
353 - {
354 - if (("lithuanian" == value))
355 - {
356 - parsedValue = PerformanceCounterLanguageType.lithuanian;
357 - }
358 - else
359 - {
360 - if (("macedonian" == value))
361 - {
362 - parsedValue = PerformanceCounterLanguageType.macedonian;
363 - }
364 - else
365 - {
366 - if (("malay" == value))
367 - {
368 - parsedValue = PerformanceCounterLanguageType.malay;
369 - }
370 - else
371 - {
372 - if (("malayalam" == value))
373 - {
374 - parsedValue = PerformanceCounterLanguageType.malayalam;
375 - }
376 - else
377 - {
378 - if (("manipuri" == value))
379 - {
380 - parsedValue = PerformanceCounterLanguageType.manipuri;
381 - }
382 - else
383 - {
384 - if (("marathi" == value))
385 - {
386 - parsedValue = PerformanceCounterLanguageType.marathi;
387 - }
388 - else
389 - {
390 - if (("mongolian" == value))
391 - {
392 - parsedValue = PerformanceCounterLanguageType.mongolian;
393 - }
394 - else
395 - {
396 - if (("nepali" == value))
397 - {
398 - parsedValue = PerformanceCounterLanguageType.nepali;
399 - }
400 - else
401 - {
402 - if (("norwegian" == value))
403 - {
404 - parsedValue = PerformanceCounterLanguageType.norwegian;
405 - }
406 - else
407 - {
408 - if (("oriya" == value))
409 - {
410 - parsedValue = PerformanceCounterLanguageType.oriya;
411 - }
412 - else
413 - {
414 - if (("polish" == value))
415 - {
416 - parsedValue = PerformanceCounterLanguageType.polish;
417 - }
418 - else
419 - {
420 - if (("portuguese" == value))
421 - {
422 - parsedValue = PerformanceCounterLanguageType.portuguese;
423 - }
424 - else
425 - {
426 - if (("punjabi" == value))
427 - {
428 - parsedValue = PerformanceCounterLanguageType.punjabi;
429 - }
430 - else
431 - {
432 - if (("romanian" == value))
433 - {
434 - parsedValue = PerformanceCounterLanguageType.romanian;
435 - }
436 - else
437 - {
438 - if (("russian" == value))
439 - {
440 - parsedValue = PerformanceCounterLanguageType.russian;
441 - }
442 - else
443 - {
444 - if (("sanskrit" == value))
445 - {
446 - parsedValue = PerformanceCounterLanguageType.sanskrit;
447 - }
448 - else
449 - {
450 - if (("serbian" == value))
451 - {
452 - parsedValue = PerformanceCounterLanguageType.serbian;
453 - }
454 - else
455 - {
456 - if (("sindhi" == value))
457 - {
458 - parsedValue = PerformanceCounterLanguageType.sindhi;
459 - }
460 - else
461 - {
462 - if (("slovak" == value))
463 - {
464 - parsedValue = PerformanceCounterLanguageType.slovak;
465 - }
466 - else
467 - {
468 - if (("slovenian" == value))
469 - {
470 - parsedValue = PerformanceCounterLanguageType.slovenian;
471 - }
472 - else
473 - {
474 - if (("spanish" == value))
475 - {
476 - parsedValue = PerformanceCounterLanguageType.spanish;
477 - }
478 - else
479 - {
480 - if (("swahili" == value))
481 - {
482 - parsedValue = PerformanceCounterLanguageType.swahili;
483 - }
484 - else
485 - {
486 - if (("swedish" == value))
487 - {
488 - parsedValue = PerformanceCounterLanguageType.swedish;
489 - }
490 - else
491 - {
492 - if (("syriac" == value))
493 - {
494 - parsedValue = PerformanceCounterLanguageType.syriac;
495 - }
496 - else
497 - {
498 - if (("tamil" == value))
499 - {
500 - parsedValue = PerformanceCounterLanguageType.tamil;
501 - }
502 - else
503 - {
504 - if (("tatar" == value))
505 - {
506 - parsedValue = PerformanceCounterLanguageType.tatar;
507 - }
508 - else
509 - {
510 - if (("telugu" == value))
511 - {
512 - parsedValue = PerformanceCounterLanguageType.telugu;
513 - }
514 - else
515 - {
516 - if (("thai" == value))
517 - {
518 - parsedValue = PerformanceCounterLanguageType.thai;
519 - }
520 - else
521 - {
522 - if (("turkish" == value))
523 - {
524 - parsedValue = PerformanceCounterLanguageType.turkish;
525 - }
526 - else
527 - {
528 - if (("ukrainian" == value))
529 - {
530 - parsedValue = PerformanceCounterLanguageType.ukrainian;
531 - }
532 - else
533 - {
534 - if (("urdu" == value))
535 - {
536 - parsedValue = PerformanceCounterLanguageType.urdu;
537 - }
538 - else
539 - {
540 - if (("uzbek" == value))
541 - {
542 - parsedValue = PerformanceCounterLanguageType.uzbek;
543 - }
544 - else
545 - {
546 - if (("vietnamese" == value))
547 - {
548 - parsedValue = PerformanceCounterLanguageType.vietnamese;
549 - }
550 - else
551 - {
552 - parsedValue = PerformanceCounterLanguageType.IllegalValue;
553 - return false;
554 - }
555 - }
556 - }
557 - }
558 - }
559 - }
560 - }
561 - }
562 - }
563 - }
564 - }
565 - }
566 - }
567 - }
568 - }
569 - }
570 - }
571 - }
572 - }
573 - }
574 - }
575 - }
576 - }
577 - }
578 - }
579 - }
580 - }
581 - }
582 - }
583 - }
584 - }
585 - }
586 - }
587 - }
588 - }
589 - }
590 - }
591 - }
592 - }
593 - }
594 - }
595 - }
596 - }
597 - }
598 - }
599 - }
600 - }
601 - }
602 - }
603 - }
604 - }
605 - }
606 - }
607 - }
608 - }
609 - }
610 - }
611 - }
612 - }
613 - }
614 - }
615 - }
616 - }
617 - }
618 - }
619 - }
620 - }
621 - }
622 - }
623 - }
624 - }
625 - }
626 - }
627 - }
628 - }
629 - return true;
630 - }
631 -
632 - /// <summary>
633 - /// Parses a PerformanceCounterTypesType from a string.
634 - /// </summary>
635 - public static PerformanceCounterTypesType ParsePerformanceCounterTypesType(string value)
636 - {
637 - PerformanceCounterTypesType parsedValue;
638 - Enums.TryParsePerformanceCounterTypesType(value, out parsedValue);
639 - return parsedValue;
640 - }
641 -
642 - /// <summary>
643 - /// Tries to parse a PerformanceCounterTypesType from a string.
644 - /// </summary>
645 - public static bool TryParsePerformanceCounterTypesType(string value, out PerformanceCounterTypesType parsedValue)
646 - {
647 - parsedValue = PerformanceCounterTypesType.NotSet;
648 - if (string.IsNullOrEmpty(value))
649 - {
650 - return false;
651 - }
652 - if (("averageBase" == value))
653 - {
654 - parsedValue = PerformanceCounterTypesType.averageBase;
655 - }
656 - else
657 - {
658 - if (("averageCount64" == value))
659 - {
660 - parsedValue = PerformanceCounterTypesType.averageCount64;
661 - }
662 - else
663 - {
664 - if (("averageTimer32" == value))
665 - {
666 - parsedValue = PerformanceCounterTypesType.averageTimer32;
667 - }
668 - else
669 - {
670 - if (("counterDelta32" == value))
671 - {
672 - parsedValue = PerformanceCounterTypesType.counterDelta32;
673 - }
674 - else
675 - {
676 - if (("counterTimerInverse" == value))
677 - {
678 - parsedValue = PerformanceCounterTypesType.counterTimerInverse;
679 - }
680 - else
681 - {
682 - if (("sampleFraction" == value))
683 - {
684 - parsedValue = PerformanceCounterTypesType.sampleFraction;
685 - }
686 - else
687 - {
688 - if (("timer100Ns" == value))
689 - {
690 - parsedValue = PerformanceCounterTypesType.timer100Ns;
691 - }
692 - else
693 - {
694 - if (("counterTimer" == value))
695 - {
696 - parsedValue = PerformanceCounterTypesType.counterTimer;
697 - }
698 - else
699 - {
700 - if (("rawFraction" == value))
701 - {
702 - parsedValue = PerformanceCounterTypesType.rawFraction;
703 - }
704 - else
705 - {
706 - if (("timer100NsInverse" == value))
707 - {
708 - parsedValue = PerformanceCounterTypesType.timer100NsInverse;
709 - }
710 - else
711 - {
712 - if (("counterMultiTimer" == value))
713 - {
714 - parsedValue = PerformanceCounterTypesType.counterMultiTimer;
715 - }
716 - else
717 - {
718 - if (("counterMultiTimer100Ns" == value))
719 - {
720 - parsedValue = PerformanceCounterTypesType.counterMultiTimer100Ns;
721 - }
722 - else
723 - {
724 - if (("counterMultiTimerInverse" == value))
725 - {
726 - parsedValue = PerformanceCounterTypesType.counterMultiTimerInverse;
727 - }
728 - else
729 - {
730 - if (("counterMultiTimer100NsInverse" == value))
731 - {
732 - parsedValue = PerformanceCounterTypesType.counterMultiTimer100NsInverse;
733 - }
734 - else
735 - {
736 - if (("elapsedTime" == value))
737 - {
738 - parsedValue = PerformanceCounterTypesType.elapsedTime;
739 - }
740 - else
741 - {
742 - if (("sampleBase" == value))
743 - {
744 - parsedValue = PerformanceCounterTypesType.sampleBase;
745 - }
746 - else
747 - {
748 - if (("rawBase" == value))
749 - {
750 - parsedValue = PerformanceCounterTypesType.rawBase;
751 - }
752 - else
753 - {
754 - if (("counterMultiBase" == value))
755 - {
756 - parsedValue = PerformanceCounterTypesType.counterMultiBase;
757 - }
758 - else
759 - {
760 - if (("rateOfCountsPerSecond64" == value))
761 - {
762 - parsedValue = PerformanceCounterTypesType.rateOfCountsPerSecond64;
763 - }
764 - else
765 - {
766 - if (("rateOfCountsPerSecond32" == value))
767 - {
768 - parsedValue = PerformanceCounterTypesType.rateOfCountsPerSecond32;
769 - }
770 - else
771 - {
772 - if (("countPerTimeInterval64" == value))
773 - {
774 - parsedValue = PerformanceCounterTypesType.countPerTimeInterval64;
775 - }
776 - else
777 - {
778 - if (("countPerTimeInterval32" == value))
779 - {
780 - parsedValue = PerformanceCounterTypesType.countPerTimeInterval32;
781 - }
782 - else
783 - {
784 - if (("sampleCounter" == value))
785 - {
786 - parsedValue = PerformanceCounterTypesType.sampleCounter;
787 - }
788 - else
789 - {
790 - if (("counterDelta64" == value))
791 - {
792 - parsedValue = PerformanceCounterTypesType.counterDelta64;
793 - }
794 - else
795 - {
796 - if (("numberOfItems64" == value))
797 - {
798 - parsedValue = PerformanceCounterTypesType.numberOfItems64;
799 - }
800 - else
801 - {
802 - if (("numberOfItems32" == value))
803 - {
804 - parsedValue = PerformanceCounterTypesType.numberOfItems32;
805 - }
806 - else
807 - {
808 - if (("numberOfItemsHEX64" == value))
809 - {
810 - parsedValue = PerformanceCounterTypesType.numberOfItemsHEX64;
811 - }
812 - else
813 - {
814 - if (("numberOfItemsHEX32" == value))
815 - {
816 - parsedValue = PerformanceCounterTypesType.numberOfItemsHEX32;
817 - }
818 - else
819 - {
820 - parsedValue = PerformanceCounterTypesType.IllegalValue;
821 - return false;
822 - }
823 - }
824 - }
825 - }
826 - }
827 - }
828 - }
829 - }
830 - }
831 - }
832 - }
833 - }
834 - }
835 - }
836 - }
837 - }
838 - }
839 - }
840 - }
841 - }
842 - }
843 - }
844 - }
845 - }
846 - }
847 - }
848 - }
849 - }
850 - return true;
851 - }
852 - }
853 -
854 - /// <summary>
855 - /// Enumeration of valid languages for performance counters.
856 - /// </summary>
857 - [GeneratedCode("XsdGen", "4.0.0.0")]
858 - public enum PerformanceCounterLanguageType
859 - {
860 -
861 - IllegalValue = int.MaxValue,
862 -
863 - NotSet = -1,
864 -
865 - afrikaans,
866 -
867 - albanian,
868 -
869 - arabic,
870 -
871 - armenian,
872 -
873 - assamese,
874 -
875 - azeri,
876 -
877 - basque,
878 -
879 - belarusian,
880 -
881 - bengali,
882 -
883 - bulgarian,
884 -
885 - catalan,
886 -
887 - chinese,
888 -
889 - croatian,
890 -
891 - czech,
892 -
893 - danish,
894 -
895 - divehi,
896 -
897 - dutch,
898 -
899 - english,
900 -
901 - estonian,
902 -
903 - faeroese,
904 -
905 - farsi,
906 -
907 - finnish,
908 -
909 - french,
910 -
911 - galician,
912 -
913 - georgian,
914 -
915 - german,
916 -
917 - greek,
918 -
919 - gujarati,
920 -
921 - hebrew,
922 -
923 - hindi,
924 -
925 - hungarian,
926 -
927 - icelandic,
928 -
929 - indonesian,
930 -
931 - italian,
932 -
933 - japanese,
934 -
935 - kannada,
936 -
937 - kashmiri,
938 -
939 - kazak,
940 -
941 - konkani,
942 -
943 - korean,
944 -
945 - kyrgyz,
946 -
947 - latvian,
948 -
949 - lithuanian,
950 -
951 - macedonian,
952 -
953 - malay,
954 -
955 - malayalam,
956 -
957 - manipuri,
958 -
959 - marathi,
960 -
961 - mongolian,
962 -
963 - nepali,
964 -
965 - norwegian,
966 -
967 - oriya,
968 -
969 - polish,
970 -
971 - portuguese,
972 -
973 - punjabi,
974 -
975 - romanian,
976 -
977 - russian,
978 -
979 - sanskrit,
980 -
981 - serbian,
982 -
983 - sindhi,
984 -
985 - slovak,
986 -
987 - slovenian,
988 -
989 - spanish,
990 -
991 - swahili,
992 -
993 - swedish,
994 -
995 - syriac,
996 -
997 - tamil,
998 -
999 - tatar,
1000 -
1001 - telugu,
1002 -
1003 - thai,
1004 -
1005 - turkish,
1006 -
1007 - ukrainian,
1008 -
1009 - urdu,
1010 -
1011 - uzbek,
1012 -
1013 - vietnamese,
1014 - }
1015 -
1016 - /// <summary>
1017 - /// Enumeration of valid types for performance counters.
1018 - /// </summary>
1019 - [GeneratedCode("XsdGen", "4.0.0.0")]
1020 - public enum PerformanceCounterTypesType
1021 - {
1022 -
1023 - IllegalValue = int.MaxValue,
1024 -
1025 - NotSet = -1,
1026 -
1027 - averageBase,
1028 -
1029 - averageCount64,
1030 -
1031 - averageTimer32,
1032 -
1033 - counterDelta32,
1034 -
1035 - counterTimerInverse,
1036 -
1037 - sampleFraction,
1038 -
1039 - timer100Ns,
1040 -
1041 - counterTimer,
1042 -
1043 - rawFraction,
1044 -
1045 - timer100NsInverse,
1046 -
1047 - counterMultiTimer,
1048 -
1049 - counterMultiTimer100Ns,
1050 -
1051 - counterMultiTimerInverse,
1052 -
1053 - counterMultiTimer100NsInverse,
1054 -
1055 - elapsedTime,
1056 -
1057 - sampleBase,
1058 -
1059 - rawBase,
1060 -
1061 - counterMultiBase,
1062 -
1063 - rateOfCountsPerSecond64,
1064 -
1065 - rateOfCountsPerSecond32,
1066 -
1067 - countPerTimeInterval64,
1068 -
1069 - countPerTimeInterval32,
1070 -
1071 - sampleCounter,
1072 -
1073 - counterDelta64,
1074 -
1075 - numberOfItems64,
1076 -
1077 - numberOfItems32,
1078 -
1079 - numberOfItemsHEX64,
1080 -
1081 - numberOfItemsHEX32,
1082 - }
1083 -
1084 - /// <summary>
1085 - /// Closes applications or schedules a reboot if application cannot be closed.
1086 - /// </summary>
1087 - [GeneratedCode("XsdGen", "4.0.0.0")]
1088 - public class CloseApplication : ISchemaElement, ISetAttributes
1089 - {
1090 -
1091 - private string idField;
1092 -
1093 - private bool idFieldSet;
1094 -
1095 - private string targetField;
1096 -
1097 - private bool targetFieldSet;
1098 -
1099 - private string descriptionField;
1100 -
1101 - private bool descriptionFieldSet;
1102 -
1103 - private int sequenceField;
1104 -
1105 - private bool sequenceFieldSet;
1106 -
1107 - private YesNoType closeMessageField;
1108 -
1109 - private bool closeMessageFieldSet;
1110 -
1111 - private YesNoType endSessionMessageField;
1112 -
1113 - private bool endSessionMessageFieldSet;
1114 -
1115 - private YesNoType elevatedCloseMessageField;
1116 -
1117 - private bool elevatedCloseMessageFieldSet;
1118 -
1119 - private YesNoType elevatedEndSessionMessageField;
1120 -
1121 - private bool elevatedEndSessionMessageFieldSet;
1122 -
1123 - private YesNoType rebootPromptField;
1124 -
1125 - private bool rebootPromptFieldSet;
1126 -
1127 - private YesNoType promptToContinueField;
1128 -
1129 - private bool promptToContinueFieldSet;
1130 -
1131 - private string propertyField;
1132 -
1133 - private bool propertyFieldSet;
1134 -
1135 - private int terminateProcessField;
1136 -
1137 - private bool terminateProcessFieldSet;
1138 -
1139 - private int timeoutField;
1140 -
1141 - private bool timeoutFieldSet;
1142 -
1143 - private string contentField;
1144 -
1145 - private bool contentFieldSet;
1146 -
1147 - private ISchemaElement parentElement;
1148 -
1149 - /// <summary>
1150 - /// Identifier for the close application (primary key). If the Id is not specified, one will be generated.
1151 - /// </summary>
1152 - public string Id
1153 - {
1154 - get
1155 - {
1156 - return this.idField;
1157 - }
1158 - set
1159 - {
1160 - this.idFieldSet = true;
1161 - this.idField = value;
1162 - }
1163 - }
1164 -
1165 - /// <summary>
1166 - /// Name of the exectuable to be closed. This should only be the file name.
1167 - /// </summary>
1168 - public string Target
1169 - {
1170 - get
1171 - {
1172 - return this.targetField;
1173 - }
1174 - set
1175 - {
1176 - this.targetFieldSet = true;
1177 - this.targetField = value;
1178 - }
1179 - }
1180 -
1181 - /// <summary>
1182 - /// Description to show if application is running and needs to be closed.
1183 - /// </summary>
1184 - public string Description
1185 - {
1186 - get
1187 - {
1188 - return this.descriptionField;
1189 - }
1190 - set
1191 - {
1192 - this.descriptionFieldSet = true;
1193 - this.descriptionField = value;
1194 - }
1195 - }
1196 -
1197 - /// <summary>
1198 - /// Optionally orders the applications to be closed.
1199 - /// </summary>
1200 - public int Sequence
1201 - {
1202 - get
1203 - {
1204 - return this.sequenceField;
1205 - }
1206 - set
1207 - {
1208 - this.sequenceFieldSet = true;
1209 - this.sequenceField = value;
1210 - }
1211 - }
1212 -
1213 - /// <summary>
1214 - /// Optionally sends a close message to the application. Default is no.
1215 - /// </summary>
1216 - public YesNoType CloseMessage
1217 - {
1218 - get
1219 - {
1220 - return this.closeMessageField;
1221 - }
1222 - set
1223 - {
1224 - this.closeMessageFieldSet = true;
1225 - this.closeMessageField = value;
1226 - }
1227 - }
1228 -
1229 - /// <summary>
1230 - /// Sends WM_QUERYENDSESSION then WM_ENDSESSION messages to the application. Default is "no".
1231 - /// </summary>
1232 - public YesNoType EndSessionMessage
1233 - {
1234 - get
1235 - {
1236 - return this.endSessionMessageField;
1237 - }
1238 - set
1239 - {
1240 - this.endSessionMessageFieldSet = true;
1241 - this.endSessionMessageField = value;
1242 - }
1243 - }
1244 -
1245 - /// <summary>
1246 - /// Optionally sends a close message to the application from deffered action without impersonation. Default is no.
1247 - /// </summary>
1248 - public YesNoType ElevatedCloseMessage
1249 - {
1250 - get
1251 - {
1252 - return this.elevatedCloseMessageField;
1253 - }
1254 - set
1255 - {
1256 - this.elevatedCloseMessageFieldSet = true;
1257 - this.elevatedCloseMessageField = value;
1258 - }
1259 - }
1260 -
1261 - /// <summary>
1262 - /// Sends WM_QUERYENDSESSION then WM_ENDSESSION messages to the application from a deffered action without impersonation. Default is "no".
1263 - /// </summary>
1264 - public YesNoType ElevatedEndSessionMessage
1265 - {
1266 - get
1267 - {
1268 - return this.elevatedEndSessionMessageField;
1269 - }
1270 - set
1271 - {
1272 - this.elevatedEndSessionMessageFieldSet = true;
1273 - this.elevatedEndSessionMessageField = value;
1274 - }
1275 - }
1276 -
1277 - /// <summary>
1278 - /// Optionally prompts for reboot if application is still running. The default is "yes". The TerminateProcess attribute must be "no" or not specified if this attribute is "yes".
1279 - /// </summary>
1280 - public YesNoType RebootPrompt
1281 - {
1282 - get
1283 - {
1284 - return this.rebootPromptField;
1285 - }
1286 - set
1287 - {
1288 - this.rebootPromptFieldSet = true;
1289 - this.rebootPromptField = value;
1290 - }
1291 - }
1292 -
1293 - /// <summary>
1294 - /// When this attribute is set to "yes", the user will be prompted when the application is still running. The Description attribute must contain the message to
1295 - /// display in the prompt. The prompt occurs before executing any of the other options and gives the options to "Abort", "Retry", or "Ignore". Abort will cancel
1296 - /// the install. Retry will attempt the check again and if the application is still running, prompt again. "Ignore" will continue and execute any other options
1297 - /// set on the CloseApplication element. The default is "no".
1298 - /// </summary>
1299 - public YesNoType PromptToContinue
1300 - {
1301 - get
1302 - {
1303 - return this.promptToContinueField;
1304 - }
1305 - set
1306 - {
1307 - this.promptToContinueFieldSet = true;
1308 - this.promptToContinueField = value;
1309 - }
1310 - }
1311 -
1312 - /// <summary>
1313 - /// Property to be set if application is still running. Useful for launch conditions or to conditionalize custom UI to ask user to shut down apps.
1314 - /// </summary>
1315 - public string Property
1316 - {
1317 - get
1318 - {
1319 - return this.propertyField;
1320 - }
1321 - set
1322 - {
1323 - this.propertyFieldSet = true;
1324 - this.propertyField = value;
1325 - }
1326 - }
1327 -
1328 - /// <summary>
1329 - /// Attempts to terminates process and return the specified exit code if application is still running after sending any requested close and/or end session messages.
1330 - /// If this attribute is specified, the RebootPrompt attribute must be "no". The default is "no".
1331 - /// </summary>
1332 - public int TerminateProcess
1333 - {
1334 - get
1335 - {
1336 - return this.terminateProcessField;
1337 - }
1338 - set
1339 - {
1340 - this.terminateProcessFieldSet = true;
1341 - this.terminateProcessField = value;
1342 - }
1343 - }
1344 -
1345 - /// <summary>
1346 - /// Optional time in seconds to wait for the application to exit after the close and/or end session messages. If the application is still running after the timeout then
1347 - /// the RebootPrompt or TerminateProcess attributes will be considered. The default value is "5" seconds.
1348 - /// </summary>
1349 - public int Timeout
1350 - {
1351 - get
1352 - {
1353 - return this.timeoutField;
1354 - }
1355 - set
1356 - {
1357 - this.timeoutFieldSet = true;
1358 - this.timeoutField = value;
1359 - }
1360 - }
1361 -
1362 - /// <summary>
1363 - /// Condition that determines if the application should be closed. Must be blank or evaluate to true
1364 - /// for the application to be scheduled for closing.
1365 - /// </summary>
1366 - public string Content
1367 - {
1368 - get
1369 - {
1370 - return this.contentField;
1371 - }
1372 - set
1373 - {
1374 - this.contentFieldSet = true;
1375 - this.contentField = value;
1376 - }
1377 - }
1378 -
1379 - public virtual ISchemaElement ParentElement
1380 - {
1381 - get
1382 - {
1383 - return this.parentElement;
1384 - }
1385 - set
1386 - {
1387 - this.parentElement = value;
1388 - }
1389 - }
1390 -
1391 - /// <summary>
1392 - /// Processes this element and all child elements into an XmlWriter.
1393 - /// </summary>
1394 - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
1395 - public virtual void OutputXml(XmlWriter writer)
1396 - {
1397 - if ((null == writer))
1398 - {
1399 - throw new ArgumentNullException("writer");
1400 - }
1401 - writer.WriteStartElement("CloseApplication", "http://wixtoolset.org/schemas/v4/wxs/util");
1402 - if (this.idFieldSet)
1403 - {
1404 - writer.WriteAttributeString("Id", this.idField);
1405 - }
1406 - if (this.targetFieldSet)
1407 - {
1408 - writer.WriteAttributeString("Target", this.targetField);
1409 - }
1410 - if (this.descriptionFieldSet)
1411 - {
1412 - writer.WriteAttributeString("Description", this.descriptionField);
1413 - }
1414 - if (this.sequenceFieldSet)
1415 - {
1416 - writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture));
1417 - }
1418 - if (this.closeMessageFieldSet)
1419 - {
1420 - if ((this.closeMessageField == YesNoType.no))
1421 - {
1422 - writer.WriteAttributeString("CloseMessage", "no");
1423 - }
1424 - if ((this.closeMessageField == YesNoType.yes))
1425 - {
1426 - writer.WriteAttributeString("CloseMessage", "yes");
1427 - }
1428 - }
1429 - if (this.endSessionMessageFieldSet)
1430 - {
1431 - if ((this.endSessionMessageField == YesNoType.no))
1432 - {
1433 - writer.WriteAttributeString("EndSessionMessage", "no");
1434 - }
1435 - if ((this.endSessionMessageField == YesNoType.yes))
1436 - {
1437 - writer.WriteAttributeString("EndSessionMessage", "yes");
1438 - }
1439 - }
1440 - if (this.elevatedCloseMessageFieldSet)
1441 - {
1442 - if ((this.elevatedCloseMessageField == YesNoType.no))
1443 - {
1444 - writer.WriteAttributeString("ElevatedCloseMessage", "no");
1445 - }
1446 - if ((this.elevatedCloseMessageField == YesNoType.yes))
1447 - {
1448 - writer.WriteAttributeString("ElevatedCloseMessage", "yes");
1449 - }
1450 - }
1451 - if (this.elevatedEndSessionMessageFieldSet)
1452 - {
1453 - if ((this.elevatedEndSessionMessageField == YesNoType.no))
1454 - {
1455 - writer.WriteAttributeString("ElevatedEndSessionMessage", "no");
1456 - }
1457 - if ((this.elevatedEndSessionMessageField == YesNoType.yes))
1458 - {
1459 - writer.WriteAttributeString("ElevatedEndSessionMessage", "yes");
1460 - }
1461 - }
1462 - if (this.rebootPromptFieldSet)
1463 - {
1464 - if ((this.rebootPromptField == YesNoType.no))
1465 - {
1466 - writer.WriteAttributeString("RebootPrompt", "no");
1467 - }
1468 - if ((this.rebootPromptField == YesNoType.yes))
1469 - {
1470 - writer.WriteAttributeString("RebootPrompt", "yes");
1471 - }
1472 - }
1473 - if (this.promptToContinueFieldSet)
1474 - {
1475 - if ((this.promptToContinueField == YesNoType.no))
1476 - {
1477 - writer.WriteAttributeString("PromptToContinue", "no");
1478 - }
1479 - if ((this.promptToContinueField == YesNoType.yes))
1480 - {
1481 - writer.WriteAttributeString("PromptToContinue", "yes");
1482 - }
1483 - }
1484 - if (this.propertyFieldSet)
1485 - {
1486 - writer.WriteAttributeString("Property", this.propertyField);
1487 - }
1488 - if (this.terminateProcessFieldSet)
1489 - {
1490 - writer.WriteAttributeString("TerminateProcess", this.terminateProcessField.ToString(CultureInfo.InvariantCulture));
1491 - }
1492 - if (this.timeoutFieldSet)
1493 - {
1494 - writer.WriteAttributeString("Timeout", this.timeoutField.ToString(CultureInfo.InvariantCulture));
1495 - }
1496 - if (this.contentFieldSet)
1497 - {
1498 - writer.WriteString(this.contentField);
1499 - }
1500 - writer.WriteEndElement();
1501 - }
1502 -
1503 - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
1504 - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
1505 - void ISetAttributes.SetAttribute(string name, string value)
1506 - {
1507 - if (String.IsNullOrEmpty(name))
1508 - {
1509 - throw new ArgumentNullException("name");
1510 - }
1511 - if (("Id" == name))
1512 - {
1513 - this.idField = value;
1514 - this.idFieldSet = true;
1515 - }
1516 - if (("Target" == name))
1517 - {
1518 - this.targetField = value;
1519 - this.targetFieldSet = true;
1520 - }
1521 - if (("Description" == name))
1522 - {
1523 - this.descriptionField = value;
1524 - this.descriptionFieldSet = true;
1525 - }
1526 - if (("Sequence" == name))
1527 - {
1528 - this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
1529 - this.sequenceFieldSet = true;
1530 - }
1531 - if (("CloseMessage" == name))
1532 - {
1533 - this.closeMessageField = Enums.ParseYesNoType(value);
1534 - this.closeMessageFieldSet = true;
1535 - }
1536 - if (("EndSessionMessage" == name))
1537 - {
1538 - this.endSessionMessageField = Enums.ParseYesNoType(value);
1539 - this.endSessionMessageFieldSet = true;
1540 - }
1541 - if (("ElevatedCloseMessage" == name))
1542 - {
1543 - this.elevatedCloseMessageField = Enums.ParseYesNoType(value);
1544 - this.elevatedCloseMessageFieldSet = true;
1545 - }
1546 - if (("ElevatedEndSessionMessage" == name))
1547 - {
1548 - this.elevatedEndSessionMessageField = Enums.ParseYesNoType(value);
1549 - this.elevatedEndSessionMessageFieldSet = true;
1550 - }
1551 - if (("RebootPrompt" == name))
1552 - {
1553 - this.rebootPromptField = Enums.ParseYesNoType(value);
1554 - this.rebootPromptFieldSet = true;
1555 - }
1556 - if (("PromptToContinue" == name))
1557 - {
1558 - this.promptToContinueField = Enums.ParseYesNoType(value);
1559 - this.promptToContinueFieldSet = true;
1560 - }
1561 - if (("Property" == name))
1562 - {
1563 - this.propertyField = value;
1564 - this.propertyFieldSet = true;
1565 - }
1566 - if (("TerminateProcess" == name))
1567 - {
1568 - this.terminateProcessField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
1569 - this.terminateProcessFieldSet = true;
1570 - }
1571 - if (("Timeout" == name))
1572 - {
1573 - this.timeoutField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
1574 - this.timeoutFieldSet = true;
1575 - }
1576 - if (("Content" == name))
1577 - {
1578 - this.contentField = value;
1579 - this.contentFieldSet = true;
1580 - }
1581 - }
1582 - }
1583 -
1584 - /// <summary>
1585 - /// Describes a component search.
1586 - /// </summary>
1587 - [GeneratedCode("XsdGen", "4.0.0.0")]
1588 - public class ComponentSearch : ISchemaElement, ISetAttributes
1589 - {
1590 -
1591 - private string idField;
1592 -
1593 - private bool idFieldSet;
1594 -
1595 - private string variableField;
1596 -
1597 - private bool variableFieldSet;
1598 -
1599 - private string conditionField;
1600 -
1601 - private bool conditionFieldSet;
1602 -
1603 - private string afterField;
1604 -
1605 - private bool afterFieldSet;
1606 -
1607 - private string guidField;
1608 -
1609 - private bool guidFieldSet;
1610 -
1611 - private string productCodeField;
1612 -
1613 - private bool productCodeFieldSet;
1614 -
1615 - private ResultType resultField;
1616 -
1617 - private bool resultFieldSet;
1618 -
1619 - private ISchemaElement parentElement;
1620 -
1621 - /// <summary>
1622 - /// Id of the search for ordering and dependency.
1623 - /// </summary>
1624 - public string Id
1625 - {
1626 - get
1627 - {
1628 - return this.idField;
1629 - }
1630 - set
1631 - {
1632 - this.idFieldSet = true;
1633 - this.idField = value;
1634 - }
1635 - }
1636 -
1637 - /// <summary>
1638 - /// Name of the variable in which to place the result of the search.
1639 - /// </summary>
1640 - public string Variable
1641 - {
1642 - get
1643 - {
1644 - return this.variableField;
1645 - }
1646 - set
1647 - {
1648 - this.variableFieldSet = true;
1649 - this.variableField = value;
1650 - }
1651 - }
1652 -
1653 - /// <summary>
1654 - /// Condition for evaluating the search. If this evaluates to false, the search is not executed at all.
1655 - /// </summary>
1656 - public string Condition
1657 - {
1658 - get
1659 - {
1660 - return this.conditionField;
1661 - }
1662 - set
1663 - {
1664 - this.conditionFieldSet = true;
1665 - this.conditionField = value;
1666 - }
1667 - }
1668 -
1669 - /// <summary>
1670 - /// Id of the search that this one should come after.
1671 - /// </summary>
1672 - public string After
1673 - {
1674 - get
1675 - {
1676 - return this.afterField;
1677 - }
1678 - set
1679 - {
1680 - this.afterFieldSet = true;
1681 - this.afterField = value;
1682 - }
1683 - }
1684 -
1685 - /// <summary>
1686 - /// Component to search for.
1687 - /// </summary>
1688 - public string Guid
1689 - {
1690 - get
1691 - {
1692 - return this.guidField;
1693 - }
1694 - set
1695 - {
1696 - this.guidFieldSet = true;
1697 - this.guidField = value;
1698 - }
1699 - }
1700 -
1701 - /// <summary>
1702 - /// Optional ProductCode to determine if the component is installed.
1703 - /// </summary>
1704 - public string ProductCode
1705 - {
1706 - get
1707 - {
1708 - return this.productCodeField;
1709 - }
1710 - set
1711 - {
1712 - this.productCodeFieldSet = true;
1713 - this.productCodeField = value;
1714 - }
1715 - }
1716 -
1717 - /// <summary>
1718 - /// Rather than saving the matching key path into the variable, a ComponentSearch can save an attribute of the component instead.
1719 - /// </summary>
1720 - public ResultType Result
1721 - {
1722 - get
1723 - {
1724 - return this.resultField;
1725 - }
1726 - set
1727 - {
1728 - this.resultFieldSet = true;
1729 - this.resultField = value;
1730 - }
1731 - }
1732 -
1733 - public virtual ISchemaElement ParentElement
1734 - {
1735 - get
1736 - {
1737 - return this.parentElement;
1738 - }
1739 - set
1740 - {
1741 - this.parentElement = value;
1742 - }
1743 - }
1744 -
1745 - /// <summary>
1746 - /// Parses a ResultType from a string.
1747 - /// </summary>
1748 - public static ResultType ParseResultType(string value)
1749 - {
1750 - ResultType parsedValue;
1751 - ComponentSearch.TryParseResultType(value, out parsedValue);
1752 - return parsedValue;
1753 - }
1754 -
1755 - /// <summary>
1756 - /// Tries to parse a ResultType from a string.
1757 - /// </summary>
1758 - public static bool TryParseResultType(string value, out ResultType parsedValue)
1759 - {
1760 - parsedValue = ResultType.NotSet;
1761 - if (string.IsNullOrEmpty(value))
1762 - {
1763 - return false;
1764 - }
1765 - if (("directory" == value))
1766 - {
1767 - parsedValue = ResultType.directory;
1768 - }
1769 - else
1770 - {
1771 - if (("state" == value))
1772 - {
1773 - parsedValue = ResultType.state;
1774 - }
1775 - else
1776 - {
1777 - if (("keyPath" == value))
1778 - {
1779 - parsedValue = ResultType.keyPath;
1780 - }
1781 - else
1782 - {
1783 - parsedValue = ResultType.IllegalValue;
1784 - return false;
1785 - }
1786 - }
1787 - }
1788 - return true;
1789 - }
1790 -
1791 - /// <summary>
1792 - /// Processes this element and all child elements into an XmlWriter.
1793 - /// </summary>
1794 - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
1795 - public virtual void OutputXml(XmlWriter writer)
1796 - {
1797 - if ((null == writer))
1798 - {
1799 - throw new ArgumentNullException("writer");
1800 - }
1801 - writer.WriteStartElement("ComponentSearch", "http://wixtoolset.org/schemas/v4/wxs/util");
1802 - if (this.idFieldSet)
1803 - {
1804 - writer.WriteAttributeString("Id", this.idField);
1805 - }
1806 - if (this.variableFieldSet)
1807 - {
1808 - writer.WriteAttributeString("Variable", this.variableField);
1809 - }
1810 - if (this.conditionFieldSet)
1811 - {
1812 - writer.WriteAttributeString("Condition", this.conditionField);
1813 - }
1814 - if (this.afterFieldSet)
1815 - {
1816 - writer.WriteAttributeString("After", this.afterField);
1817 - }
1818 - if (this.guidFieldSet)
1819 - {
1820 - writer.WriteAttributeString("Guid", this.guidField);
1821 - }
1822 - if (this.productCodeFieldSet)
1823 - {
1824 - writer.WriteAttributeString("ProductCode", this.productCodeField);
1825 - }
1826 - if (this.resultFieldSet)
1827 - {
1828 - if ((this.resultField == ResultType.directory))
1829 - {
1830 - writer.WriteAttributeString("Result", "directory");
1831 - }
1832 - if ((this.resultField == ResultType.state))
1833 - {
1834 - writer.WriteAttributeString("Result", "state");
1835 - }
1836 - if ((this.resultField == ResultType.keyPath))
1837 - {
1838 - writer.WriteAttributeString("Result", "keyPath");
1839 - }
1840 - }
1841 - writer.WriteEndElement();
1842 - }
1843 -
1844 - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
1845 - void ISetAttributes.SetAttribute(string name, string value)
1846 - {
1847 - if (String.IsNullOrEmpty(name))
1848 - {
1849 - throw new ArgumentNullException("name");
1850 - }
1851 - if (("Id" == name))
1852 - {
1853 - this.idField = value;
1854 - this.idFieldSet = true;
1855 - }
1856 - if (("Variable" == name))
1857 - {
1858 - this.variableField = value;
1859 - this.variableFieldSet = true;
1860 - }
1861 - if (("Condition" == name))
1862 - {
1863 - this.conditionField = value;
1864 - this.conditionFieldSet = true;
1865 - }
1866 - if (("After" == name))
1867 - {
1868 - this.afterField = value;
1869 - this.afterFieldSet = true;
1870 - }
1871 - if (("Guid" == name))
1872 - {
1873 - this.guidField = value;
1874 - this.guidFieldSet = true;
1875 - }
1876 - if (("ProductCode" == name))
1877 - {
1878 - this.productCodeField = value;
1879 - this.productCodeFieldSet = true;
1880 - }
1881 - if (("Result" == name))
1882 - {
1883 - this.resultField = ComponentSearch.ParseResultType(value);
1884 - this.resultFieldSet = true;
1885 - }
1886 - }
1887 -
1888 - [GeneratedCode("XsdGen", "4.0.0.0")]
1889 - public enum ResultType
1890 - {
1891 -
1892 - IllegalValue = int.MaxValue,
1893 -
1894 - NotSet = -1,
1895 -
1896 - /// <summary>
1897 - /// Saves the parent directory for the component's file key path; other types of key path are returned unmodified.
1898 - /// </summary>
1899 - directory,
1900 -
1901 - /// <summary>
1902 - /// Saves the state of the component: absent (2), locally installed (3), will run from source (4), or installed in default location (either local or from source) (5)
1903 - /// </summary>
1904 - state,
1905 -
1906 - /// <summary>
1907 - /// Saves the key path of the component if installed. This is the default.
1908 - /// </summary>
1909 - keyPath,
1910 - }
1911 - }
1912 -
1913 - /// <summary>
1914 - /// References a ComponentSearch.
1915 - /// </summary>
1916 - [GeneratedCode("XsdGen", "4.0.0.0")]
1917 - public class ComponentSearchRef : ISchemaElement, ISetAttributes
1918 - {
1919 -
1920 - private string idField;
1921 -
1922 - private bool idFieldSet;
1923 -
1924 - private ISchemaElement parentElement;
1925 -
1926 - public string Id
1927 - {
1928 - get
1929 - {
1930 - return this.idField;
1931 - }
1932 - set
1933 - {
1934 - this.idFieldSet = true;
1935 - this.idField = value;
1936 - }
1937 - }
1938 -
1939 - public virtual ISchemaElement ParentElement
1940 - {
1941 - get
1942 - {
1943 - return this.parentElement;
1944 - }
1945 - set
1946 - {
1947 - this.parentElement = value;
1948 - }
1949 - }
1950 -
1951 - /// <summary>
1952 - /// Processes this element and all child elements into an XmlWriter.
1953 - /// </summary>
1954 - public virtual void OutputXml(XmlWriter writer)
1955 - {
1956 - if ((null == writer))
1957 - {
1958 - throw new ArgumentNullException("writer");
1959 - }
1960 - writer.WriteStartElement("ComponentSearchRef", "http://wixtoolset.org/schemas/v4/wxs/util");
1961 - if (this.idFieldSet)
1962 - {
1963 - writer.WriteAttributeString("Id", this.idField);
1964 - }
1965 - writer.WriteEndElement();
1966 - }
1967 -
1968 - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
1969 - void ISetAttributes.SetAttribute(string name, string value)
1970 - {
1971 - if (String.IsNullOrEmpty(name))
1972 - {
1973 - throw new ArgumentNullException("name");
1974 - }
1975 - if (("Id" == name))
1976 - {
1977 - this.idField = value;
1978 - this.idFieldSet = true;
1979 - }
1980 - }
1981 - }
1982 -
1983 - /// <summary>
1984 - /// Describes a directory search.
1985 - /// </summary>
1986 - [GeneratedCode("XsdGen", "4.0.0.0")]
1987 - public class DirectorySearch : ISchemaElement, ISetAttributes
1988 - {
1989 -
1990 - private string idField;
1991 -
1992 - private bool idFieldSet;
1993 -
1994 - private string variableField;
1995 -
1996 - private bool variableFieldSet;
1997 -
1998 - private string conditionField;
1999 -
2000 - private bool conditionFieldSet;
2001 -
2002 - private string afterField;
2003 -
2004 - private bool afterFieldSet;
2005 -
2006 - private string pathField;
2007 -
2008 - private bool pathFieldSet;
2009 -
2010 - private ResultType resultField;
2011 -
2012 - private bool resultFieldSet;
2013 -
2014 - private ISchemaElement parentElement;
2015 -
2016 - /// <summary>
2017 - /// Id of the search for ordering and dependency.
2018 - /// </summary>
2019 - public string Id
2020 - {
2021 - get
2022 - {
2023 - return this.idField;
2024 - }
2025 - set
2026 - {
2027 - this.idFieldSet = true;
2028 - this.idField = value;
2029 - }
2030 - }
2031 -
2032 - /// <summary>
2033 - /// Name of the variable in which to place the result of the search.
2034 - /// </summary>
2035 - public string Variable
2036 - {
2037 - get
2038 - {
2039 - return this.variableField;
2040 - }
2041 - set
2042 - {
2043 - this.variableFieldSet = true;
2044 - this.variableField = value;
2045 - }
2046 - }
2047 -
2048 - /// <summary>
2049 - /// Condition for evaluating the search. If this evaluates to false, the search is not executed at all.
2050 - /// </summary>
2051 - public string Condition
2052 - {
2053 - get
2054 - {
2055 - return this.conditionField;
2056 - }
2057 - set
2058 - {
2059 - this.conditionFieldSet = true;
2060 - this.conditionField = value;
2061 - }
2062 - }
2063 -
2064 - /// <summary>
2065 - /// Id of the search that this one should come after.
2066 - /// </summary>
2067 - public string After
2068 - {
2069 - get
2070 - {
2071 - return this.afterField;
2072 - }
2073 - set
2074 - {
2075 - this.afterFieldSet = true;
2076 - this.afterField = value;
2077 - }
2078 - }
2079 -
2080 - /// <summary>
2081 - /// Directory path to search for.
2082 - /// </summary>
2083 - public string Path
2084 - {
2085 - get
2086 - {
2087 - return this.pathField;
2088 - }
2089 - set
2090 - {
2091 - this.pathFieldSet = true;
2092 - this.pathField = value;
2093 - }
2094 - }
2095 -
2096 - /// <summary>
2097 - /// Rather than saving the matching directory path into the variable, a DirectorySearch can save an
2098 - /// attribute of the matching directory instead.
2099 - /// </summary>
2100 - public ResultType Result
2101 - {
2102 - get
2103 - {
2104 - return this.resultField;
2105 - }
2106 - set
2107 - {
2108 - this.resultFieldSet = true;
2109 - this.resultField = value;
2110 - }
2111 - }
2112 -
2113 - public virtual ISchemaElement ParentElement
2114 - {
2115 - get
2116 - {
2117 - return this.parentElement;
2118 - }
2119 - set
2120 - {
2121 - this.parentElement = value;
2122 - }
2123 - }
2124 -
2125 - /// <summary>
2126 - /// Parses a ResultType from a string.
2127 - /// </summary>
2128 - public static ResultType ParseResultType(string value)
2129 - {
2130 - ResultType parsedValue;
2131 - DirectorySearch.TryParseResultType(value, out parsedValue);
2132 - return parsedValue;
2133 - }
2134 -
2135 - /// <summary>
2136 - /// Tries to parse a ResultType from a string.
2137 - /// </summary>
2138 - public static bool TryParseResultType(string value, out ResultType parsedValue)
2139 - {
2140 - parsedValue = ResultType.NotSet;
2141 - if (string.IsNullOrEmpty(value))
2142 - {
2143 - return false;
2144 - }
2145 - if (("exists" == value))
2146 - {
2147 - parsedValue = ResultType.exists;
2148 - }
2149 - else
2150 - {
2151 - parsedValue = ResultType.IllegalValue;
2152 - return false;
2153 - }
2154 - return true;
2155 - }
2156 -
2157 - /// <summary>
2158 - /// Processes this element and all child elements into an XmlWriter.
2159 - /// </summary>
2160 - public virtual void OutputXml(XmlWriter writer)
2161 - {
2162 - if ((null == writer))
2163 - {
2164 - throw new ArgumentNullException("writer");
2165 - }
2166 - writer.WriteStartElement("DirectorySearch", "http://wixtoolset.org/schemas/v4/wxs/util");
2167 - if (this.idFieldSet)
2168 - {
2169 - writer.WriteAttributeString("Id", this.idField);
2170 - }
2171 - if (this.variableFieldSet)
2172 - {
2173 - writer.WriteAttributeString("Variable", this.variableField);
2174 - }
2175 - if (this.conditionFieldSet)
2176 - {
2177 - writer.WriteAttributeString("Condition", this.conditionField);
2178 - }
2179 - if (this.afterFieldSet)
2180 - {
2181 - writer.WriteAttributeString("After", this.afterField);
2182 - }
2183 - if (this.pathFieldSet)
2184 - {
2185 - writer.WriteAttributeString("Path", this.pathField);
2186 - }
2187 - if (this.resultFieldSet)
2188 - {
2189 - if ((this.resultField == ResultType.exists))
2190 - {
2191 - writer.WriteAttributeString("Result", "exists");
2192 - }
2193 - }
2194 - writer.WriteEndElement();
2195 - }
2196 -
2197 - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
2198 - void ISetAttributes.SetAttribute(string name, string value)
2199 - {
2200 - if (String.IsNullOrEmpty(name))
2201 - {
2202 - throw new ArgumentNullException("name");
2203 - }
2204 - if (("Id" == name))
2205 - {
2206 - this.idField = value;
2207 - this.idFieldSet = true;
2208 - }
2209 - if (("Variable" == name))
2210 - {
2211 - this.variableField = value;
2212 - this.variableFieldSet = true;
2213 - }
2214 - if (("Condition" == name))
2215 - {
2216 - this.conditionField = value;
2217 - this.conditionFieldSet = true;
2218 - }
2219 - if (("After" == name))
2220 - {
2221 - this.afterField = value;
2222 - this.afterFieldSet = true;
2223 - }
2224 - if (("Path" == name))
2225 - {
2226 - this.pathField = value;
2227 - this.pathFieldSet = true;
2228 - }
2229 - if (("Result" == name))
2230 - {
2231 - this.resultField = DirectorySearch.ParseResultType(value);
2232 - this.resultFieldSet = true;
2233 - }
2234 - }
2235 -
2236 - [GeneratedCode("XsdGen", "4.0.0.0")]
2237 - public enum ResultType
2238 - {
2239 -
2240 - IllegalValue = int.MaxValue,
2241 -
2242 - NotSet = -1,
2243 -
2244 - /// <summary>
2245 - /// Saves true if a matching directory is found; false otherwise.
2246 - /// </summary>
2247 - exists,
2248 - }
2249 - }
2250 -
2251 - /// <summary>
2252 - /// References a DirectorySearch.
2253 - /// </summary>
2254 - [GeneratedCode("XsdGen", "4.0.0.0")]
2255 - public class DirectorySearchRef : ISchemaElement, ISetAttributes
2256 - {
2257 -
2258 - private string idField;
2259 -
2260 - private bool idFieldSet;
2261 -
2262 - private ISchemaElement parentElement;
2263 -
2264 - public string Id
2265 - {
2266 - get
2267 - {
2268 - return this.idField;
2269 - }
2270 - set
2271 - {
2272 - this.idFieldSet = true;
2273 - this.idField = value;
2274 - }
2275 - }
2276 -
2277 - public virtual ISchemaElement ParentElement
2278 - {
2279 - get
2280 - {
2281 - return this.parentElement;
2282 - }
2283 - set
2284 - {
2285 - this.parentElement = value;
2286 - }
2287 - }
2288 -
2289 - /// <summary>
2290 - /// Processes this element and all child elements into an XmlWriter.
2291 - /// </summary>
2292 - public virtual void OutputXml(XmlWriter writer)
2293 - {
2294 - if ((null == writer))
2295 - {
2296 - throw new ArgumentNullException("writer");
2297 - }
2298 - writer.WriteStartElement("DirectorySearchRef", "http://wixtoolset.org/schemas/v4/wxs/util");
2299 - if (this.idFieldSet)
2300 - {
2301 - writer.WriteAttributeString("Id", this.idField);
2302 - }
2303 - writer.WriteEndElement();
2304 - }
2305 -
2306 - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
2307 - void ISetAttributes.SetAttribute(string name, string value)
2308 - {
2309 - if (String.IsNullOrEmpty(name))
2310 - {
2311 - throw new ArgumentNullException("name");
2312 - }
2313 - if (("Id" == name))
2314 - {
2315 - this.idField = value;
2316 - this.idFieldSet = true;
2317 - }
2318 - }
2319 - }
2320 -
2321 - /// <summary>
2322 - /// Creates an event source.
2323 - /// </summary>
2324 - [GeneratedCode("XsdGen", "4.0.0.0")]
2325 - public class EventSource : ISchemaElement, ISetAttributes
2326 - {
2327 -
2328 - private int categoryCountField;
2329 -
2330 - private bool categoryCountFieldSet;
2331 -
2332 - private string categoryMessageFileField;
2333 -
2334 - private bool categoryMessageFileFieldSet;
2335 -
2336 - private string eventMessageFileField;
2337 -
2338 - private bool eventMessageFileFieldSet;
2339 -
2340 - private YesNoType keyPathField;
2341 -
2342 - private bool keyPathFieldSet;
2343 -
2344 - private string logField;
2345 -
2346 - private bool logFieldSet;
2347 -
2348 - private string nameField;
2349 -
2350 - private bool nameFieldSet;
2351 -
2352 - private string parameterMessageFileField;
2353 -
2354 - private bool parameterMessageFileFieldSet;
2355 -
2356 - private YesNoType supportsErrorsField;
2357 -
2358 - private bool supportsErrorsFieldSet;
2359 -
2360 - private YesNoType supportsFailureAuditsField;
2361 -
2362 - private bool supportsFailureAuditsFieldSet;
2363 -
2364 - private YesNoType supportsInformationalsField;
2365 -
2366 - private bool supportsInformationalsFieldSet;
2367 -
2368 - private YesNoType supportsSuccessAuditsField;
2369 -
2370 - private bool supportsSuccessAuditsFieldSet;
2371 -
2372 - private YesNoType supportsWarningsField;
2373 -
2374 - private bool supportsWarningsFieldSet;
2375 -
2376 - private ISchemaElement parentElement;
2377 -
2378 - /// <summary>
2379 - /// The number of categories in CategoryMessageFile. CategoryMessageFile
2380 - /// must be specified too.
2381 - /// </summary>
2382 - public int CategoryCount
2383 - {
2384 - get
2385 - {
2386 - return this.categoryCountField;
2387 - }
2388 - set
2389 - {
2390 - this.categoryCountFieldSet = true;
2391 - this.categoryCountField = value;
2392 - }
2393 - }
2394 -
2395 - /// <summary>
2396 - /// Name of the category message file. CategoryCount must be specified too.
2397 - /// Note that this is a formatted field, so you can use [#fileId] syntax to
2398 - /// refer to a file being installed. It is also written as a REG_EXPAND_SZ
2399 - /// string, so you can use %environment_variable% syntax to refer to a file
2400 - /// already present on the user's machine.
2401 - /// </summary>
2402 - public string CategoryMessageFile
2403 - {
2404 - get
2405 - {
2406 - return this.categoryMessageFileField;
2407 - }
2408 - set
2409 - {
2410 - this.categoryMessageFileFieldSet = true;
2411 - this.categoryMessageFileField = value;
2412 - }
2413 - }
2414 -
2415 - /// <summary>
2416 - /// Name of the event message file.
2417 - /// Note that this is a formatted field, so you can use [#fileId] syntax to
2418 - /// refer to a file being installed. It is also written as a REG_EXPAND_SZ
2419 - /// string, so you can use %environment_variable% syntax to refer to a file
2420 - /// already present on the user's machine.
2421 - /// </summary>
2422 - public string EventMessageFile
2423 - {
2424 - get
2425 - {
2426 - return this.eventMessageFileField;
2427 - }
2428 - set
2429 - {
2430 - this.eventMessageFileFieldSet = true;
2431 - this.eventMessageFileField = value;
2432 - }
2433 - }
2434 -
2435 - /// <summary>
2436 - /// Marks the EventSource registry as the key path of the component it belongs to.
2437 - /// </summary>
2438 - public YesNoType KeyPath
2439 - {
2440 - get
2441 - {
2442 - return this.keyPathField;
2443 - }
2444 - set
2445 - {
2446 - this.keyPathFieldSet = true;
2447 - this.keyPathField = value;
2448 - }
2449 - }
2450 -
2451 - /// <summary>
2452 - /// Name of the event source's log.
2453 - /// </summary>
2454 - public string Log
2455 - {
2456 - get
2457 - {
2458 - return this.logField;
2459 - }
2460 - set
2461 - {
2462 - this.logFieldSet = true;
2463 - this.logField = value;
2464 - }
2465 - }
2466 -
2467 - /// <summary>
2468 - /// Name of the event source.
2469 - /// </summary>
2470 - public string Name
2471 - {
2472 - get
2473 - {
2474 - return this.nameField;
2475 - }
2476 - set
2477 - {
2478 - this.nameFieldSet = true;
2479 - this.nameField = value;
2480 - }
2481 - }
2482 -
2483 - /// <summary>
2484 - /// Name of the parameter message file.
2485 - /// Note that this is a formatted field, so you can use [#fileId] syntax to
2486 - /// refer to a file being installed. It is also written as a REG_EXPAND_SZ
2487 - /// string, so you can use %environment_variable% syntax to refer to a file
2488 - /// already present on the user's machine.
2489 - /// </summary>
2490 - public string ParameterMessageFile
2491 - {
2492 - get
2493 - {
2494 - return this.parameterMessageFileField;
2495 - }
2496 - set
2497 - {
2498 - this.parameterMessageFileFieldSet = true;
2499 - this.parameterMessageFileField = value;
2500 - }
2501 - }
2502 -
2503 - /// <summary>
2504 - /// Equivalent to EVENTLOG_ERROR_TYPE.
2505 - /// </summary>
2506 - public YesNoType SupportsErrors
2507 - {
2508 - get
2509 - {
2510 - return this.supportsErrorsField;
2511 - }
2512 - set
2513 - {
2514 - this.supportsErrorsFieldSet = true;
2515 - this.supportsErrorsField = value;
2516 - }
2517 - }
2518 -
2519 - /// <summary>
2520 - /// Equivalent to EVENTLOG_AUDIT_FAILURE.
2521 - /// </summary>
2522 - public YesNoType SupportsFailureAudits
2523 - {
2524 - get
2525 - {
2526 - return this.supportsFailureAuditsField;
2527 - }
2528 - set
2529 - {
2530 - this.supportsFailureAuditsFieldSet = true;
2531 - this.supportsFailureAuditsField = value;
2532 - }
2533 - }
2534 -
2535 - /// <summary>
2536 - /// Equivalent to EVENTLOG_INFORMATION_TYPE.
2537 - /// </summary>
2538 - public YesNoType SupportsInformationals
2539 - {
2540 - get
2541 - {
2542 - return this.supportsInformationalsField;
2543 - }
2544 - set
2545 - {
2546 - this.supportsInformationalsFieldSet = true;
2547 - this.supportsInformationalsField = value;
2548 - }
2549 - }
2550 -
2551 - /// <summary>
2552 - /// Equivalent to EVENTLOG_AUDIT_SUCCESS.
2553 - /// </summary>
2554 - public YesNoType SupportsSuccessAudits
2555 - {
2556 - get
2557 - {
2558 - return this.supportsSuccessAuditsField;
2559 - }
2560 - set
2561 - {
2562 - this.supportsSuccessAuditsFieldSet = true;
2563 - this.supportsSuccessAuditsField = value;
2564 - }
2565 - }
2566 -
2567 - /// <summary>
2568 - /// Equivalent to EVENTLOG_WARNING_TYPE.
2569 - /// </summary>
2570 - public YesNoType SupportsWarnings
2571 - {
2572 - get
2573 - {
2574 - return this.supportsWarningsField;
2575 - }
2576 - set
2577 - {
2578 - this.supportsWarningsFieldSet = true;
2579 - this.supportsWarningsField = value;
2580 - }
2581 - }
2582 -
2583 - public virtual ISchemaElement ParentElement
2584 - {
2585 - get
2586 - {
2587 - return this.parentElement;
2588 - }
2589 - set
2590 - {
2591 - this.parentElement = value;
2592 - }
2593 - }
2594 -
2595 - /// <summary>
2596 - /// Processes this element and all child elements into an XmlWriter.
2597 - /// </summary>
2598 - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
2599 - public virtual void OutputXml(XmlWriter writer)
2600 - {
2601 - if ((null == writer))
2602 - {
2603 - throw new ArgumentNullException("writer");
2604 - }
2605 - writer.WriteStartElement("EventSource", "http://wixtoolset.org/schemas/v4/wxs/util");
2606 - if (this.categoryCountFieldSet)
2607 - {
2608 - writer.WriteAttributeString("CategoryCount", this.categoryCountField.ToString(CultureInfo.InvariantCulture));
2609 - }
2610 - if (this.categoryMessageFileFieldSet)
2611 - {
2612 - writer.WriteAttributeString("CategoryMessageFile", this.categoryMessageFileField);
2613 - }
2614 - if (this.eventMessageFileFieldSet)
2615 - {
2616 - writer.WriteAttributeString("EventMessageFile", this.eventMessageFileField);
2617 - }
2618 - if (this.keyPathFieldSet)
2619 - {
2620 - if ((this.keyPathField == YesNoType.no))
2621 - {
2622 - writer.WriteAttributeString("KeyPath", "no");
2623 - }
2624 - if ((this.keyPathField == YesNoType.yes))
2625 - {
2626 - writer.WriteAttributeString("KeyPath", "yes");
2627 - }
2628 - }
2629 - if (this.logFieldSet)
2630 - {
2631 - writer.WriteAttributeString("Log", this.logField);
2632 - }
2633 - if (this.nameFieldSet)
2634 - {
2635 - writer.WriteAttributeString("Name", this.nameField);
2636 - }
2637 - if (this.parameterMessageFileFieldSet)
2638 - {
2639 - writer.WriteAttributeString("ParameterMessageFile", this.parameterMessageFileField);
2640 - }
2641 - if (this.supportsErrorsFieldSet)
2642 - {
2643 - if ((this.supportsErrorsField == YesNoType.no))
2644 - {
2645 - writer.WriteAttributeString("SupportsErrors", "no");
2646 - }
2647 - if ((this.supportsErrorsField == YesNoType.yes))
2648 - {
2649 - writer.WriteAttributeString("SupportsErrors", "yes");
2650 - }
2651 - }
2652 - if (this.supportsFailureAuditsFieldSet)
2653 - {
2654 - if ((this.supportsFailureAuditsField == YesNoType.no))
2655 - {
2656 - writer.WriteAttributeString("SupportsFailureAudits", "no");
2657 - }
2658 - if ((this.supportsFailureAuditsField == YesNoType.yes))
2659 - {
2660 - writer.WriteAttributeString("SupportsFailureAudits", "yes");
2661 - }
2662 - }
2663 - if (this.supportsInformationalsFieldSet)
2664 - {
2665 - if ((this.supportsInformationalsField == YesNoType.no))
2666 - {
2667 - writer.WriteAttributeString("SupportsInformationals", "no");
2668 - }
2669 - if ((this.supportsInformationalsField == YesNoType.yes))
2670 - {
2671 - writer.WriteAttributeString("SupportsInformationals", "yes");
2672 - }
2673 - }
2674 - if (this.supportsSuccessAuditsFieldSet)
2675 - {
2676 - if ((this.supportsSuccessAuditsField == YesNoType.no))
2677 - {
2678 - writer.WriteAttributeString("SupportsSuccessAudits", "no");
2679 - }
2680 - if ((this.supportsSuccessAuditsField == YesNoType.yes))
2681 - {
2682 - writer.WriteAttributeString("SupportsSuccessAudits", "yes");
2683 - }
2684 - }
2685 - if (this.supportsWarningsFieldSet)
2686 - {
2687 - if ((this.supportsWarningsField == YesNoType.no))
2688 - {
2689 - writer.WriteAttributeString("SupportsWarnings", "no");
2690 - }
2691 - if ((this.supportsWarningsField == YesNoType.yes))
2692 - {
2693 - writer.WriteAttributeString("SupportsWarnings", "yes");
2694 - }
2695 - }
2696 - writer.WriteEndElement();
2697 - }
2698 -
2699 - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
2700 - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
2701 - void ISetAttributes.SetAttribute(string name, string value)
2702 - {
2703 - if (String.IsNullOrEmpty(name))
2704 - {
2705 - throw new ArgumentNullException("name");
2706 - }
2707 - if (("CategoryCount" == name))
2708 - {
2709 - this.categoryCountField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
2710 - this.categoryCountFieldSet = true;
2711 - }
2712 - if (("CategoryMessageFile" == name))
2713 - {
2714 - this.categoryMessageFileField = value;
2715 - this.categoryMessageFileFieldSet = true;
2716 - }
2717 - if (("EventMessageFile" == name))
2718 - {
2719 - this.eventMessageFileField = value;
2720 - this.eventMessageFileFieldSet = true;
2721 - }
2722 - if (("KeyPath" == name))
2723 - {
2724 - this.keyPathField = Enums.ParseYesNoType(value);
2725 - this.keyPathFieldSet = true;
2726 - }
2727 - if (("Log" == name))
2728 - {
2729 - this.logField = value;
2730 - this.logFieldSet = true;
2731 - }
2732 - if (("Name" == name))
2733 - {
2734 - this.nameField = value;
2735 - this.nameFieldSet = true;
2736 - }
2737 - if (("ParameterMessageFile" == name))
2738 - {
2739 - this.parameterMessageFileField = value;
2740 - this.parameterMessageFileFieldSet = true;
2741 - }
2742 - if (("SupportsErrors" == name))
2743 - {
2744 - this.supportsErrorsField = Enums.ParseYesNoType(value);
2745 - this.supportsErrorsFieldSet = true;
2746 - }
2747 - if (("SupportsFailureAudits" == name))
2748 - {
2749 - this.supportsFailureAuditsField = Enums.ParseYesNoType(value);
2750 - this.supportsFailureAuditsFieldSet = true;
2751 - }
2752 - if (("SupportsInformationals" == name))
2753 - {
2754 - this.supportsInformationalsField = Enums.ParseYesNoType(value);
2755 - this.supportsInformationalsFieldSet = true;
2756 - }
2757 - if (("SupportsSuccessAudits" == name))
2758 - {
2759 - this.supportsSuccessAuditsField = Enums.ParseYesNoType(value);
2760 - this.supportsSuccessAuditsFieldSet = true;
2761 - }
2762 - if (("SupportsWarnings" == name))
2763 - {
2764 - this.supportsWarningsField = Enums.ParseYesNoType(value);
2765 - this.supportsWarningsFieldSet = true;
2766 - }
2767 - }
2768 - }
2769 -
2770 - /// <summary>
2771 - /// Describes a file search.
2772 - /// </summary>
2773 - [GeneratedCode("XsdGen", "4.0.0.0")]
2774 - public class FileSearch : ISchemaElement, ISetAttributes
2775 - {
2776 -
2777 - private string idField;
2778 -
2779 - private bool idFieldSet;
2780 -
2781 - private string variableField;
2782 -
2783 - private bool variableFieldSet;
2784 -
2785 - private string conditionField;
2786 -
2787 - private bool conditionFieldSet;
2788 -
2789 - private string afterField;
2790 -
2791 - private bool afterFieldSet;
2792 -
2793 - private string pathField;
2794 -
2795 - private bool pathFieldSet;
2796 -
2797 - private ResultType resultField;
2798 -
2799 - private bool resultFieldSet;
2800 -
2801 - private ISchemaElement parentElement;
2802 -
2803 - /// <summary>
2804 - /// Id of the search for ordering and dependency.
2805 - /// </summary>
2806 - public string Id
2807 - {
2808 - get
2809 - {
2810 - return this.idField;
2811 - }
2812 - set
2813 - {
2814 - this.idFieldSet = true;
2815 - this.idField = value;
2816 - }
2817 - }
2818 -
2819 - /// <summary>
2820 - /// Name of the variable in which to place the result of the search.
2821 - /// </summary>
2822 - public string Variable
2823 - {
2824 - get
2825 - {
2826 - return this.variableField;
2827 - }
2828 - set
2829 - {
2830 - this.variableFieldSet = true;
2831 - this.variableField = value;
2832 - }
2833 - }
2834 -
2835 - /// <summary>
2836 - /// Condition for evaluating the search. If this evaluates to false, the search is not executed at all.
2837 - /// </summary>
2838 - public string Condition
2839 - {
2840 - get
2841 - {
2842 - return this.conditionField;
2843 - }
2844 - set
2845 - {
2846 - this.conditionFieldSet = true;
2847 - this.conditionField = value;
2848 - }
2849 - }
2850 -
2851 - /// <summary>
2852 - /// Id of the search that this one should come after.
2853 - /// </summary>
2854 - public string After
2855 - {
2856 - get
2857 - {
2858 - return this.afterField;
2859 - }
2860 - set
2861 - {
2862 - this.afterFieldSet = true;
2863 - this.afterField = value;
2864 - }
2865 - }
2866 -
2867 - /// <summary>
2868 - /// File path to search for.
2869 - /// </summary>
2870 - public string Path
2871 - {
2872 - get
2873 - {
2874 - return this.pathField;
2875 - }
2876 - set
2877 - {
2878 - this.pathFieldSet = true;
2879 - this.pathField = value;
2880 - }
2881 - }
2882 -
2883 - /// <summary>
2884 - /// Rather than saving the matching file path into the variable, a FileSearch can save an attribute of the matching file instead.
2885 - /// </summary>
2886 - public ResultType Result
2887 - {
2888 - get
2889 - {
2890 - return this.resultField;
2891 - }
2892 - set
2893 - {
2894 - this.resultFieldSet = true;
2895 - this.resultField = value;
2896 - }
2897 - }
2898 -
2899 - public virtual ISchemaElement ParentElement
2900 - {
2901 - get
2902 - {
2903 - return this.parentElement;
2904 - }
2905 - set
2906 - {
2907 - this.parentElement = value;
2908 - }
2909 - }
2910 -
2911 - /// <summary>
2912 - /// Parses a ResultType from a string.
2913 - /// </summary>
2914 - public static ResultType ParseResultType(string value)
2915 - {
2916 - ResultType parsedValue;
2917 - FileSearch.TryParseResultType(value, out parsedValue);
2918 - return parsedValue;
2919 - }
2920 -
2921 - /// <summary>
2922 - /// Tries to parse a ResultType from a string.
2923 - /// </summary>
2924 - public static bool TryParseResultType(string value, out ResultType parsedValue)
2925 - {
2926 - parsedValue = ResultType.NotSet;
2927 - if (string.IsNullOrEmpty(value))
2928 - {
2929 - return false;
2930 - }
2931 - if (("exists" == value))
2932 - {
2933 - parsedValue = ResultType.exists;
2934 - }
2935 - else
2936 - {
2937 - if (("version" == value))
2938 - {
2939 - parsedValue = ResultType.version;
2940 - }
2941 - else
2942 - {
2943 - parsedValue = ResultType.IllegalValue;
2944 - return false;
2945 - }
2946 - }
2947 - return true;
2948 - }
2949 -
2950 - /// <summary>
2951 - /// Processes this element and all child elements into an XmlWriter.
2952 - /// </summary>
2953 - public virtual void OutputXml(XmlWriter writer)
2954 - {
2955 - if ((null == writer))
2956 - {
2957 - throw new ArgumentNullException("writer");
2958 - }
2959 - writer.WriteStartElement("FileSearch", "http://wixtoolset.org/schemas/v4/wxs/util");
2960 - if (this.idFieldSet)
2961 - {
2962 - writer.WriteAttributeString("Id", this.idField);
2963 - }
2964 - if (this.variableFieldSet)
2965 - {
2966 - writer.WriteAttributeString("Variable", this.variableField);
2967 - }
2968 - if (this.conditionFieldSet)
2969 - {
2970 - writer.WriteAttributeString("Condition", this.conditionField);
2971 - }
2972 - if (this.afterFieldSet)
2973 - {
2974 - writer.WriteAttributeString("After", this.afterField);
2975 - }
2976 - if (this.pathFieldSet)
2977 - {
2978 - writer.WriteAttributeString("Path", this.pathField);
2979 - }
2980 - if (this.resultFieldSet)
2981 - {
2982 - if ((this.resultField == ResultType.exists))
2983 - {
2984 - writer.WriteAttributeString("Result", "exists");
2985 - }
2986 - if ((this.resultField == ResultType.version))
2987 - {
2988 - writer.WriteAttributeString("Result", "version");
2989 - }
2990 - }
2991 - writer.WriteEndElement();
2992 - }
2993 -
2994 - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
2995 - void ISetAttributes.SetAttribute(string name, string value)
2996 - {
2997 - if (String.IsNullOrEmpty(name))
2998 - {
2999 - throw new ArgumentNullException("name");
3000 - }
3001 - if (("Id" == name))
3002 - {
3003 - this.idField = value;
3004 - this.idFieldSet = true;
3005 - }
3006 - if (("Variable" == name))
3007 - {
3008 - this.variableField = value;
3009 - this.variableFieldSet = true;
3010 - }
3011 - if (("Condition" == name))
3012 - {
3013 - this.conditionField = value;
3014 - this.conditionFieldSet = true;
3015 - }
3016 - if (("After" == name))
3017 - {
3018 - this.afterField = value;
3019 - this.afterFieldSet = true;
3020 - }
3021 - if (("Path" == name))
3022 - {
3023 - this.pathField = value;
3024 - this.pathFieldSet = true;
3025 - }
3026 - if (("Result" == name))
3027 - {
3028 - this.resultField = FileSearch.ParseResultType(value);
3029 - this.resultFieldSet = true;
3030 - }
3031 - }
3032 -
3033 - [GeneratedCode("XsdGen", "4.0.0.0")]
3034 - public enum ResultType
3035 - {
3036 -
3037 - IllegalValue = int.MaxValue,
3038 -
3039 - NotSet = -1,
3040 -
3041 - /// <summary>
3042 - /// Saves true if a matching file is found; false otherwise.
3043 - /// </summary>
3044 - exists,
3045 -
3046 - /// <summary>
3047 - /// Saves the version information for files that have it (.exe, .dll); zero-version (0.0.0.0) otherwise.
3048 - /// </summary>
3049 - version,
3050 - }
3051 - }
3052 -
3053 - /// <summary>
3054 - /// References a FileSearch.
3055 - /// </summary>
3056 - [GeneratedCode("XsdGen", "4.0.0.0")]
3057 - public class FileSearchRef : ISchemaElement, ISetAttributes
3058 - {
3059 -
3060 - private string idField;
3061 -
3062 - private bool idFieldSet;
3063 -
3064 - private ISchemaElement parentElement;
3065 -
3066 - public string Id
3067 - {
3068 - get
3069 - {
3070 - return this.idField;
3071 - }
3072 - set
3073 - {
3074 - this.idFieldSet = true;
3075 - this.idField = value;
3076 - }
3077 - }
3078 -
3079 - public virtual ISchemaElement ParentElement
3080 - {
3081 - get
3082 - {
3083 - return this.parentElement;
3084 - }
3085 - set
3086 - {
3087 - this.parentElement = value;
3088 - }
3089 - }
3090 -
3091 - /// <summary>
3092 - /// Processes this element and all child elements into an XmlWriter.
3093 - /// </summary>
3094 - public virtual void OutputXml(XmlWriter writer)
3095 - {
3096 - if ((null == writer))
3097 - {
3098 - throw new ArgumentNullException("writer");
3099 - }
3100 - writer.WriteStartElement("FileSearchRef", "http://wixtoolset.org/schemas/v4/wxs/util");
3101 - if (this.idFieldSet)
3102 - {
3103 - writer.WriteAttributeString("Id", this.idField);
3104 - }
3105 - writer.WriteEndElement();
3106 - }
3107 -
3108 - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
3109 - void ISetAttributes.SetAttribute(string name, string value)
3110 - {
3111 - if (String.IsNullOrEmpty(name))
3112 - {
3113 - throw new ArgumentNullException("name");
3114 - }
3115 - if (("Id" == name))
3116 - {
3117 - this.idField = value;
3118 - this.idFieldSet = true;
3119 - }
3120 - }
3121 - }
3122 -
3123 - /// <summary>
3124 - /// Creates a file share out of the component's directory.
3125 - /// </summary>
3126 - [GeneratedCode("XsdGen", "4.0.0.0")]
3127 - public class FileShare : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
3128 - {
3129 -
3130 - private ElementCollection children;
3131 -
3132 - private string idField;
3133 -
3134 - private bool idFieldSet;
3135 -
3136 - private string nameField;
3137 -
3138 - private bool nameFieldSet;
3139 -
3140 - private string descriptionField;
3141 -
3142 - private bool descriptionFieldSet;
3143 -
3144 - private ISchemaElement parentElement;
3145 -
3146 - public FileShare()
3147 - {
3148 - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
3149 - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(FileSharePermission)));
3150 - this.children = childCollection0;
3151 - }
3152 -
3153 - public virtual IEnumerable Children
3154 - {
3155 - get
3156 - {
3157 - return this.children;
3158 - }
3159 - }
3160 -
3161 - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
3162 - public virtual IEnumerable this[System.Type childType]
3163 - {
3164 - get
3165 - {
3166 - return this.children.Filter(childType);
3167 - }
3168 - }
3169 -
3170 - /// <summary>
3171 - /// Identifier for the file share (primary key).
3172 - /// </summary>
3173 - public string Id
3174 - {
3175 - get
3176 - {
3177 - return this.idField;
3178 - }
3179 - set
3180 - {
3181 - this.idFieldSet = true;
3182 - this.idField = value;
3183 - }
3184 - }
3185 -
3186 - /// <summary>
3187 - /// Name of the file share.
3188 - /// </summary>
3189 - public string Name
3190 - {
3191 - get
3192 - {
3193 - return this.nameField;
3194 - }
3195 - set
3196 - {
3197 - this.nameFieldSet = true;
3198 - this.nameField = value;
3199 - }
3200 - }
3201 -
3202 - /// <summary>
3203 - /// Description of the file share.
3204 - /// </summary>
3205 - public string Description
3206 - {
3207 - get
3208 - {
3209 - return this.descriptionField;
3210 - }
3211 - set
3212 - {
3213 - this.descriptionFieldSet = true;
3214 - this.descriptionField = value;
3215 - }
3216 - }
3217 -
3218 - public virtual ISchemaElement ParentElement
3219 - {
3220 - get
3221 - {
3222 - return this.parentElement;
3223 - }
3224 - set
3225 - {
3226 - this.parentElement = value;
3227 - }
3228 - }
3229 -
3230 - public virtual void AddChild(ISchemaElement child)
3231 - {
3232 - if ((null == child))
3233 - {
3234 - throw new ArgumentNullException("child");
3235 - }
3236 - this.children.AddElement(child);
3237 - child.ParentElement = this;
3238 - }
3239 -
3240 - public virtual void RemoveChild(ISchemaElement child)
3241 - {
3242 - if ((null == child))
3243 - {
3244 - throw new ArgumentNullException("child");
3245 - }
3246 - this.children.RemoveElement(child);
3247 - child.ParentElement = null;
3248 - }
3249 -
3250 - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
3251 - ISchemaElement ICreateChildren.CreateChild(string childName)
3252 - {
3253 - if (String.IsNullOrEmpty(childName))
3254 - {
3255 - throw new ArgumentNullException("childName");
3256 - }
3257 - ISchemaElement childValue = null;
3258 - if (("FileSharePermission" == childName))
3259 - {
3260 - childValue = new FileSharePermission();
3261 - }
3262 - if ((null == childValue))
3263 - {
3264 - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
3265 - }
3266 - return childValue;
3267 - }
3268 -
3269 - /// <summary>
3270 - /// Processes this element and all child elements into an XmlWriter.
3271 - /// </summary>
3272 - public virtual void OutputXml(XmlWriter writer)
3273 - {
3274 - if ((null == writer))
3275 - {
3276 - throw new ArgumentNullException("writer");
3277 - }
3278 - writer.WriteStartElement("FileShare", "http://wixtoolset.org/schemas/v4/wxs/util");
3279 - if (this.idFieldSet)
3280 - {
3281 - writer.WriteAttributeString("Id", this.idField);
3282 - }
3283 - if (this.nameFieldSet)
3284 - {
3285 - writer.WriteAttributeString("Name", this.nameField);
3286 - }
3287 - if (this.descriptionFieldSet)
3288 - {
3289 - writer.WriteAttributeString("Description", this.descriptionField);
3290 - }
3291 - for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
3292 - {
3293 - ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
3294 - childElement.OutputXml(writer);
3295 - }
3296 - writer.WriteEndElement();
3297 - }
3298 -
3299 - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
3300 - void ISetAttributes.SetAttribute(string name, string value)
3301 - {
3302 - if (String.IsNullOrEmpty(name))
3303 - {
3304 - throw new ArgumentNullException("name");
3305 - }
3306 - if (("Id" == name))
3307 - {
3308 - this.idField = value;
3309 - this.idFieldSet = true;
3310 - }
3311 - if (("Name" == name))
3312 - {
3313 - this.nameField = value;
3314 - this.nameFieldSet = true;
3315 - }
3316 - if (("Description" == name))
3317 - {
3318 - this.descriptionField = value;
3319 - this.descriptionFieldSet = true;
3320 - }
3321 - }
3322 - }
3323 -
3324 - /// <summary>
3325 - /// Sets ACLs on a FileShare. This element has no Id attribute.
3326 - /// The table and key are taken from the parent element.
3327 - /// </summary>
3328 - [GeneratedCode("XsdGen", "4.0.0.0")]
3329 - public class FileSharePermission : ISchemaElement, ISetAttributes
3330 - {
3331 -
3332 - private string userField;
3333 -
3334 - private bool userFieldSet;
3335 -
3336 - private YesNoType readField;
3337 -
3338 - private bool readFieldSet;
3339 -
3340 - private YesNoType deleteField;
3341 -
3342 - private bool deleteFieldSet;
3343 -
3344 - private YesNoType readPermissionField;
3345 -
3346 - private bool readPermissionFieldSet;
3347 -
3348 - private YesNoType changePermissionField;
3349 -
3350 - private bool changePermissionFieldSet;
3351 -
3352 - private YesNoType takeOwnershipField;
3353 -
3354 - private bool takeOwnershipFieldSet;
3355 -
3356 - private YesNoType readAttributesField;
3357 -
3358 - private bool readAttributesFieldSet;
3359 -
3360 - private YesNoType writeAttributesField;
3361 -
3362 - private bool writeAttributesFieldSet;
3363 -
3364 - private YesNoType readExtendedAttributesField;
3365 -
3366 - private bool readExtendedAttributesFieldSet;
3367 -
3368 - private YesNoType writeExtendedAttributesField;
3369 -
3370 - private bool writeExtendedAttributesFieldSet;
3371 -
3372 - private YesNoType synchronizeField;
3373 -
3374 - private bool synchronizeFieldSet;
3375 -
3376 - private YesNoType createFileField;
3377 -
3378 - private bool createFileFieldSet;
3379 -
3380 - private YesNoType createChildField;
3381 -
3382 - private bool createChildFieldSet;
3383 -
3384 - private YesNoType deleteChildField;
3385 -
3386 - private bool deleteChildFieldSet;
3387 -
3388 - private YesNoType traverseField;
3389 -
3390 - private bool traverseFieldSet;
3391 -
3392 - private YesNoType genericAllField;
3393 -
3394 - private bool genericAllFieldSet;
3395 -
3396 - private YesNoType genericExecuteField;
3397 -
3398 - private bool genericExecuteFieldSet;
3399 -
3400 - private YesNoType genericWriteField;
3401 -
3402 - private bool genericWriteFieldSet;
3403 -
3404 - private YesNoType genericReadField;
3405 -
3406 - private bool genericReadFieldSet;
3407 -
3408 - private ISchemaElement parentElement;
3409 -
3410 - public string User
3411 - {
3412 - get
3413 - {
3414 - return this.userField;
3415 - }
3416 - set
3417 - {
3418 - this.userFieldSet = true;
3419 - this.userField = value;
3420 - }
3421 - }
3422 -
3423 - public YesNoType Read
3424 - {
3425 - get
3426 - {
3427 - return this.readField;
3428 - }
3429 - set
3430 - {
3431 - this.readFieldSet = true;
3432 - this.readField = value;
3433 - }
3434 - }
3435 -
3436 - public YesNoType Delete
3437 - {
3438 - get
3439 - {
3440 - return this.deleteField;
3441 - }
3442 - set
3443 - {
3444 - this.deleteFieldSet = true;
3445 - this.deleteField = value;
3446 - }
3447 - }
3448 -
3449 - public YesNoType ReadPermission
3450 - {
3451 - get
3452 - {
3453 - return this.readPermissionField;
3454 - }
3455 - set
3456 - {
3457 - this.readPermissionFieldSet = true;
3458 - this.readPermissionField = value;
3459 - }
3460 - }
3461 -
3462 - public YesNoType ChangePermission
3463 - {
3464 - get
3465 - {
3466 - return this.changePermissionField;
3467 - }
3468 - set
3469 - {
3470 - this.changePermissionFieldSet = true;
3471 - this.changePermissionField = value;
3472 - }
3473 - }
3474 -
3475 - public YesNoType TakeOwnership
3476 - {
3477 - get
3478 - {
3479 - return this.takeOwnershipField;
3480 - }
3481 - set
3482 - {
3483 - this.takeOwnershipFieldSet = true;
3484 - this.takeOwnershipField = value;
3485 - }
3486 - }
3487 -
3488 - public YesNoType ReadAttributes
3489 - {
3490 - get
3491 - {
3492 - return this.readAttributesField;
3493 - }
3494 - set
3495 - {
3496 - this.readAttributesFieldSet = true;
3497 - this.readAttributesField = value;
3498 - }
3499 - }
3500 -
3501 - public YesNoType WriteAttributes
3502 - {
3503 - get
3504 - {
3505 - return this.writeAttributesField;
3506 - }
3507 - set
3508 - {
3509 - this.writeAttributesFieldSet = true;
3510 - this.writeAttributesField = value;
3511 - }
3512 - }
3513 -
3514 - public YesNoType ReadExtendedAttributes
3515 - {
3516 - get
3517 - {
3518 - return this.readExtendedAttributesField;
3519 - }
3520 - set
3521 - {
3522 - this.readExtendedAttributesFieldSet = true;
3523 - this.readExtendedAttributesField = value;
3524 - }
3525 - }
3526 -
3527 - public YesNoType WriteExtendedAttributes
3528 - {
3529 - get
3530 - {
3531 - return this.writeExtendedAttributesField;
3532 - }
3533 - set
3534 - {
3535 - this.writeExtendedAttributesFieldSet = true;
3536 - this.writeExtendedAttributesField = value;
3537 - }
3538 - }
3539 -
3540 - public YesNoType Synchronize
3541 - {
3542 - get
3543 - {
3544 - return this.synchronizeField;
3545 - }
3546 - set
3547 - {
3548 - this.synchronizeFieldSet = true;
3549 - this.synchronizeField = value;
3550 - }
3551 - }
3552 -
3553 - /// <summary>
3554 - /// For a directory, the right to create a file in the directory. Only valid under a 'CreateFolder' parent.
3555 - /// </summary>
3556 - public YesNoType CreateFile
3557 - {
3558 - get
3559 - {
3560 - return this.createFileField;
3561 - }
3562 - set
3563 - {
3564 - this.createFileFieldSet = true;
3565 - this.createFileField = value;
3566 - }
3567 - }
3568 -
3569 - /// <summary>
3570 - /// For a directory, the right to create a subdirectory. Only valid under a 'CreateFolder' parent.
3571 - /// </summary>
3572 - public YesNoType CreateChild
3573 - {
3574 - get
3575 - {
3576 - return this.createChildField;
3577 - }
3578 - set
3579 - {
3580 - this.createChildFieldSet = true;
3581 - this.createChildField = value;
3582 - }
3583 - }
3584 -
3585 - /// <summary>
3586 - /// 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.
3587 - /// </summary>
3588 - public YesNoType DeleteChild
3589 - {
3590 - get
3591 - {
3592 - return this.deleteChildField;
3593 - }
3594 - set
3595 - {
3596 - this.deleteChildFieldSet = true;
3597 - this.deleteChildField = value;
3598 - }
3599 - }
3600 -
3601 - /// <summary>
3602 - /// 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.
3603 - /// </summary>
3604 - public YesNoType Traverse
3605 - {
3606 - get
3607 - {
3608 - return this.traverseField;
3609 - }
3610 - set
3611 - {
3612 - this.traverseFieldSet = true;
3613 - this.traverseField = value;
3614 - }
3615 - }
3616 -
3617 - public YesNoType GenericAll
3618 - {
3619 - get
3620 - {
3621 - return this.genericAllField;
3622 - }
3623 - set
3624 - {
3625 - this.genericAllFieldSet = true;
3626 - this.genericAllField = value;
3627 - }
3628 - }
3629 -
3630 - public YesNoType GenericExecute
3631 - {
3632 - get
3633 - {
3634 - return this.genericExecuteField;
3635 - }
3636 - set
3637 - {
3638 - this.genericExecuteFieldSet = true;
3639 - this.genericExecuteField = value;
3640 - }
3641 - }
3642 -
3643 - public YesNoType GenericWrite
3644 - {
3645 - get
3646 - {
3647 - return this.genericWriteField;
3648 - }
3649 - set
3650 - {
3651 - this.genericWriteFieldSet = true;
3652 - this.genericWriteField = value;
3653 - }
3654 - }
3655 -
3656 - /// <summary>
3657 - /// specifying this will fail to grant read access
3658 - /// </summary>
3659 - public YesNoType GenericRead
3660 - {
3661 - get
3662 - {
3663 - return this.genericReadField;
3664 - }
3665 - set
3666 - {
3667 - this.genericReadFieldSet = true;
3668 - this.genericReadField = value;
3669 - }
3670 - }
3671 -
3672 - public virtual ISchemaElement ParentElement
3673 - {
3674 - get
3675 - {
3676 - return this.parentElement;
3677 - }
3678 - set
3679 - {
3680 - this.parentElement = value;
3681 - }
3682 - }
3683 -
3684 - /// <summary>
3685 - /// Processes this element and all child elements into an XmlWriter.
3686 - /// </summary>
3687 - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
3688 - public virtual void OutputXml(XmlWriter writer)
3689 - {
3690 - if ((null == writer))
3691 - {
3692 - throw new ArgumentNullException("writer");
3693 - }
3694 - writer.WriteStartElement("FileSharePermission", "http://wixtoolset.org/schemas/v4/wxs/util");
3695 - if (this.userFieldSet)
3696 - {
3697 - writer.WriteAttributeString("User", this.userField);
3698 - }
3699 - if (this.readFieldSet)
3700 - {
3701 - if ((this.readField == YesNoType.no))
3702 - {
3703 - writer.WriteAttributeString("Read", "no");
3704 - }
3705 - if ((this.readField == YesNoType.yes))
3706 - {
3707 - writer.WriteAttributeString("Read", "yes");
3708 - }
3709 - }
3710 - if (this.deleteFieldSet)
3711 - {
3712 - if ((this.deleteField == YesNoType.no))
3713 - {
3714 - writer.WriteAttributeString("Delete", "no");
3715 - }
3716 - if ((this.deleteField == YesNoType.yes))
3717 - {
3718 - writer.WriteAttributeString("Delete", "yes");
3719 - }
3720 - }
3721 - if (this.readPermissionFieldSet)
3722 - {
3723 - if ((this.readPermissionField == YesNoType.no))
3724 - {
3725 - writer.WriteAttributeString("ReadPermission", "no");
3726 - }
3727 - if ((this.readPermissionField == YesNoType.yes))
3728 - {
3729 - writer.WriteAttributeString("ReadPermission", "yes");
3730 - }
3731 - }
3732 - if (this.changePermissionFieldSet)
3733 - {
3734 - if ((this.changePermissionField == YesNoType.no))
3735 - {
3736 - writer.WriteAttributeString("ChangePermission", "no");
3737 - }
3738 - if ((this.changePermissionField == YesNoType.yes))
3739 - {
3740 - writer.WriteAttributeString("ChangePermission", "yes");
3741 - }
3742 - }
3743 - if (this.takeOwnershipFieldSet)
3744 - {
3745 - if ((this.takeOwnershipField == YesNoType.no))
3746 - {
3747 - writer.WriteAttributeString("TakeOwnership", "no");
3748 - }
3749 - if ((this.takeOwnershipField == YesNoType.yes))
3750 - {
3751 - writer.WriteAttributeString("TakeOwnership", "yes");
3752 - }
3753 - }
3754 - if (this.readAttributesFieldSet)
3755 - {
3756 - if ((this.readAttributesField == YesNoType.no))
3757 - {
3758 - writer.WriteAttributeString("ReadAttributes", "no");
3759 - }
3760 - if ((this.readAttributesField == YesNoType.yes))
3761 - {
3762 - writer.WriteAttributeString("ReadAttributes", "yes");
3763 - }
3764 - }
3765 - if (this.writeAttributesFieldSet)
3766 - {
3767 - if ((this.writeAttributesField == YesNoType.no))
3768 - {
3769 - writer.WriteAttributeString("WriteAttributes", "no");
3770 - }
3771 - if ((this.writeAttributesField == YesNoType.yes))
3772 - {
3773 - writer.WriteAttributeString("WriteAttributes", "yes");
3774 - }
3775 - }
3776 - if (this.readExtendedAttributesFieldSet)
3777 - {
3778 - if ((this.readExtendedAttributesField == YesNoType.no))
3779 - {
3780 - writer.WriteAttributeString("ReadExtendedAttributes", "no");
3781 - }
3782 - if ((this.readExtendedAttributesField == YesNoType.yes))
3783 - {
3784 - writer.WriteAttributeString("ReadExtendedAttributes", "yes");
3785 - }
3786 - }
3787 - if (this.writeExtendedAttributesFieldSet)
3788 - {
3789 - if ((this.writeExtendedAttributesField == YesNoType.no))
3790 - {
3791 - writer.WriteAttributeString("WriteExtendedAttributes", "no");
3792 - }
3793 - if ((this.writeExtendedAttributesField == YesNoType.yes))
3794 - {
3795 - writer.WriteAttributeString("WriteExtendedAttributes", "yes");
3796 - }
3797 - }
3798 - if (this.synchronizeFieldSet)
3799 - {
3800 - if ((this.synchronizeField == YesNoType.no))
3801 - {
3802 - writer.WriteAttributeString("Synchronize", "no");
3803 - }
3804 - if ((this.synchronizeField == YesNoType.yes))
3805 - {
3806 - writer.WriteAttributeString("Synchronize", "yes");
3807 - }
3808 - }
3809 - if (this.createFileFieldSet)
3810 - {
3811 - if ((this.createFileField == YesNoType.no))
3812 - {
3813 - writer.WriteAttributeString("CreateFile", "no");
3814 - }
3815 - if ((this.createFileField == YesNoType.yes))
3816 - {
3817 - writer.WriteAttributeString("CreateFile", "yes");
3818 - }
3819 - }
3820 - if (this.createChildFieldSet)
3821 - {
3822 - if ((this.createChildField == YesNoType.no))
3823 - {
3824 - writer.WriteAttributeString("CreateChild", "no");
3825 - }
3826 - if ((this.createChildField == YesNoType.yes))
3827 - {
3828 - writer.WriteAttributeString("CreateChild", "yes");
3829 - }
3830 - }
3831 - if (this.deleteChildFieldSet)
3832 - {
3833 - if ((this.deleteChildField == YesNoType.no))
3834 - {
3835 - writer.WriteAttributeString("DeleteChild", "no");
3836 - }
3837 - if ((this.deleteChildField == YesNoType.yes))
3838 - {
3839 - writer.WriteAttributeString("DeleteChild", "yes");
3840 - }
3841 - }
3842 - if (this.traverseFieldSet)
3843 - {
3844 - if ((this.traverseField == YesNoType.no))
3845 - {
3846 - writer.WriteAttributeString("Traverse", "no");
3847 - }
3848 - if ((this.traverseField == YesNoType.yes))
3849 - {
3850 - writer.WriteAttributeString("Traverse", "yes");
3851 - }
3852 - }
3853 - if (this.genericAllFieldSet)
3854 - {
3855 - if ((this.genericAllField == YesNoType.no))
3856 - {
3857 - writer.WriteAttributeString("GenericAll", "no");
3858 - }
3859 - if ((this.genericAllField == YesNoType.yes))
3860 - {
3861 - writer.WriteAttributeString("GenericAll", "yes");
3862 - }
3863 - }
3864 - if (this.genericExecuteFieldSet)
3865 - {
3866 - if ((this.genericExecuteField == YesNoType.no))
3867 - {
3868 - writer.WriteAttributeString("GenericExecute", "no");
3869 - }
3870 - if ((this.genericExecuteField == YesNoType.yes))
3871 - {
3872 - writer.WriteAttributeString("GenericExecute", "yes");
3873 - }
3874 - }
3875 - if (this.genericWriteFieldSet)
3876 - {
3877 - if ((this.genericWriteField == YesNoType.no))
3878 - {
3879 - writer.WriteAttributeString("GenericWrite", "no");
3880 - }
3881 - if ((this.genericWriteField == YesNoType.yes))
3882 - {
3883 - writer.WriteAttributeString("GenericWrite", "yes");
3884 - }
3885 - }
3886 - if (this.genericReadFieldSet)
3887 - {
3888 - if ((this.genericReadField == YesNoType.no))
3889 - {
3890 - writer.WriteAttributeString("GenericRead", "no");
3891 - }
3892 - if ((this.genericReadField == YesNoType.yes))
3893 - {
3894 - writer.WriteAttributeString("GenericRead", "yes");
3895 - }
3896 - }
3897 - writer.WriteEndElement();
3898 - }
3899 -
3900 - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
3901 - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
3902 - void ISetAttributes.SetAttribute(string name, string value)
3903 - {
3904 - if (String.IsNullOrEmpty(name))
3905 - {
3906 - throw new ArgumentNullException("name");
3907 - }
3908 - if (("User" == name))
3909 - {
3910 - this.userField = value;
3911 - this.userFieldSet = true;
3912 - }
3913 - if (("Read" == name))
3914 - {
3915 - this.readField = Enums.ParseYesNoType(value);
3916 - this.readFieldSet = true;
3917 - }
3918 - if (("Delete" == name))
3919 - {
3920 - this.deleteField = Enums.ParseYesNoType(value);
3921 - this.deleteFieldSet = true;
3922 - }
3923 - if (("ReadPermission" == name))
3924 - {
3925 - this.readPermissionField = Enums.ParseYesNoType(value);
3926 - this.readPermissionFieldSet = true;
3927 - }
3928 - if (("ChangePermission" == name))
3929 - {
3930 - this.changePermissionField = Enums.ParseYesNoType(value);
3931 - this.changePermissionFieldSet = true;
3932 - }
3933 - if (("TakeOwnership" == name))
3934 - {
3935 - this.takeOwnershipField = Enums.ParseYesNoType(value);
3936 - this.takeOwnershipFieldSet = true;
3937 - }
3938 - if (("ReadAttributes" == name))
3939 - {
3940 - this.readAttributesField = Enums.ParseYesNoType(value);
3941 - this.readAttributesFieldSet = true;
3942 - }
3943 - if (("WriteAttributes" == name))
3944 - {
3945 - this.writeAttributesField = Enums.ParseYesNoType(value);
3946 - this.writeAttributesFieldSet = true;
3947 - }
3948 - if (("ReadExtendedAttributes" == name))
3949 - {
3950 - this.readExtendedAttributesField = Enums.ParseYesNoType(value);
3951 - this.readExtendedAttributesFieldSet = true;
3952 - }
3953 - if (("WriteExtendedAttributes" == name))
3954 - {
3955 - this.writeExtendedAttributesField = Enums.ParseYesNoType(value);
3956 - this.writeExtendedAttributesFieldSet = true;
3957 - }
3958 - if (("Synchronize" == name))
3959 - {
3960 - this.synchronizeField = Enums.ParseYesNoType(value);
3961 - this.synchronizeFieldSet = true;
3962 - }
3963 - if (("CreateFile" == name))
3964 - {
3965 - this.createFileField = Enums.ParseYesNoType(value);
3966 - this.createFileFieldSet = true;
3967 - }
3968 - if (("CreateChild" == name))
3969 - {
3970 - this.createChildField = Enums.ParseYesNoType(value);
3971 - this.createChildFieldSet = true;
3972 - }
3973 - if (("DeleteChild" == name))
3974 - {
3975 - this.deleteChildField = Enums.ParseYesNoType(value);
3976 - this.deleteChildFieldSet = true;
3977 - }
3978 - if (("Traverse" == name))
3979 - {
3980 - this.traverseField = Enums.ParseYesNoType(value);
3981 - this.traverseFieldSet = true;
3982 - }
3983 - if (("GenericAll" == name))
3984 - {
3985 - this.genericAllField = Enums.ParseYesNoType(value);
3986 - this.genericAllFieldSet = true;
3987 - }
3988 - if (("GenericExecute" == name))
3989 - {
3990 - this.genericExecuteField = Enums.ParseYesNoType(value);
3991 - this.genericExecuteFieldSet = true;
3992 - }
3993 - if (("GenericWrite" == name))
3994 - {
3995 - this.genericWriteField = Enums.ParseYesNoType(value);
3996 - this.genericWriteFieldSet = true;
3997 - }
3998 - if (("GenericRead" == name))
3999 - {
4000 - this.genericReadField = Enums.ParseYesNoType(value);
4001 - this.genericReadFieldSet = true;
4002 - }
4003 - }
4004 - }
4005 -
4006 - /// <summary>
4007 - /// Formats a file's contents at install time. The contents are formatted according to the rules of the
4008 - /// </summary>
4009 - [GeneratedCode("XsdGen", "4.0.0.0")]
4010 - public class FormatFile : ISchemaElement, ISetAttributes
4011 - {
4012 -
4013 - private string binaryKeyField;
4014 -
4015 - private bool binaryKeyFieldSet;
4016 -
4017 - private ISchemaElement parentElement;
4018 -
4019 - /// <summary>
4020 - /// The id of a Binary row that contains a copy of the file. The file in the Binary table overwrites whatever
4021 - /// file is installed by the parent component.
4022 - /// </summary>
4023 - public string BinaryKey
4024 - {
4025 - get
4026 - {
4027 - return this.binaryKeyField;
4028 - }
4029 - set
4030 - {
4031 - this.binaryKeyFieldSet = true;
4032 - this.binaryKeyField = value;
4033 - }
4034 - }
4035 -
4036 - public virtual ISchemaElement ParentElement
4037 - {
4038 - get
4039 - {
4040 - return this.parentElement;
4041 - }
4042 - set
4043 - {
4044 - this.parentElement = value;
4045 - }
4046 - }
4047 -
4048 - /// <summary>
4049 - /// Processes this element and all child elements into an XmlWriter.
4050 - /// </summary>
4051 - public virtual void OutputXml(XmlWriter writer)
4052 - {
4053 - if ((null == writer))
4054 - {
4055 - throw new ArgumentNullException("writer");
4056 - }
4057 - writer.WriteStartElement("FormatFile", "http://wixtoolset.org/schemas/v4/wxs/util");
4058 - if (this.binaryKeyFieldSet)
4059 - {
4060 - writer.WriteAttributeString("BinaryKey", this.binaryKeyField);
4061 - }
4062 - writer.WriteEndElement();
4063 - }
4064 -
4065 - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
4066 - void ISetAttributes.SetAttribute(string name, string value)
4067 - {
4068 - if (String.IsNullOrEmpty(name))
4069 - {
4070 - throw new ArgumentNullException("name");
4071 - }
4072 - if (("BinaryKey" == name))
4073 - {
4074 - this.binaryKeyField = value;
4075 - this.binaryKeyFieldSet = true;
4076 - }
4077 - }
4078 - }
4079 -
4080 - /// <summary>
4081 - /// Finds user groups on the local machine or specified Active Directory domain. The local machine will be
4082 - /// searched for the group first then fallback to looking in Active Directory. This element is not capable
4083 - /// of creating new groups but can be used to add new or existing users to an existing group.
4084 - /// </summary>
4085 - [GeneratedCode("XsdGen", "4.0.0.0")]
4086 - public class Group : ISchemaElement, ISetAttributes
4087 - {
4088 -
4089 - private string idField;
4090 -
4091 - private bool idFieldSet;
4092 -
4093 - private string nameField;
4094 -
4095 - private bool nameFieldSet;
4096 -
4097 - private string domainField;
4098 -
4099 - private bool domainFieldSet;
4100 -
4101 - private ISchemaElement parentElement;
4102 -
4103 - /// <summary>
4104 - /// Unique identifier in your installation package for this group.
4105 - /// </summary>
4106 - public string Id
4107 - {
4108 - get
4109 - {
4110 - return this.idField;
4111 - }
4112 - set
4113 - {
4114 - this.idFieldSet = true;
4115 - this.idField = value;
4116 - }
4117 - }
4118 -
4119 - /// <summary>
4120 - /// A
4121 - /// </summary>
4122 - public string Name
4123 - {
4124 - get
4125 - {
4126 - return this.nameField;
4127 - }
4128 - set
4129 - {
4130 - this.nameFieldSet = true;
4131 - this.nameField = value;
4132 - }
4133 - }
4134 -
4135 - /// <summary>
4136 - /// An optional
4137 - /// </summary>
4138 - public string Domain
4139 - {
4140 - get
4141 - {
4142 - return this.domainField;
4143 - }
4144 - set
4145 - {
4146 - this.domainFieldSet = true;
4147 - this.domainField = value;
4148 - }
4149 - }
4150 -
4151 - public virtual ISchemaElement ParentElement
4152 - {
4153 - get
4154 - {
4155 - return this.parentElement;
4156 - }
4157 - set
4158 - {
4159 - this.parentElement = value;
4160 - }
4161 - }
4162 -
4163 - /// <summary>
4164 - /// Processes this element and all child elements into an XmlWriter.
4165 - /// </summary>
4166 - public virtual void OutputXml(XmlWriter writer)
4167 - {
4168 - if ((null == writer))
4169 - {
4170 - throw new ArgumentNullException("writer");
4171 - }
4172 - writer.WriteStartElement("Group", "http://wixtoolset.org/schemas/v4/wxs/util");
4173 - if (this.idFieldSet)
4174 - {
4175 - writer.WriteAttributeString("Id", this.idField);
4176 - }
4177 - if (this.nameFieldSet)
4178 - {
4179 - writer.WriteAttributeString("Name", this.nameField);
4180 - }
4181 - if (this.domainFieldSet)
4182 - {
4183 - writer.WriteAttributeString("Domain", this.domainField);
4184 - }
4185 - writer.WriteEndElement();
4186 - }
4187 -
4188 - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
4189 - void ISetAttributes.SetAttribute(string name, string value)
4190 - {
4191 - if (String.IsNullOrEmpty(name))
4192 - {
4193 - throw new ArgumentNullException("name");
4194 - }
4195 - if (("Id" == name))
4196 - {
4197 - this.idField = value;
4198 - this.idFieldSet = true;
4199 - }
4200 - if (("Name" == name))
4201 - {
4202 - this.nameField = value;
4203 - this.nameFieldSet = true;
4204 - }
4205 - if (("Domain" == name))
4206 - {
4207 - this.domainField = value;
4208 - this.domainFieldSet = true;
4209 - }
4210 - }
4211 - }
4212 -
4213 - /// <summary>
4214 - /// Used to join a user to a group
4215 - /// </summary>
4216 - [GeneratedCode("XsdGen", "4.0.0.0")]
4217 - public class GroupRef : ISchemaElement, ISetAttributes
4218 - {
4219 -
4220 - private string idField;
4221 -
4222 - private bool idFieldSet;
4223 -
4224 - private ISchemaElement parentElement;
4225 -
4226 - public string Id
4227 - {
4228 - get
4229 - {
4230 - return this.idField;
4231 - }
4232 - set
4233 - {
4234 - this.idFieldSet = true;
4235 - this.idField = value;
4236 - }
4237 - }
4238 -
4239 - public virtual ISchemaElement ParentElement
4240 - {
4241 - get
4242 - {
4243 - return this.parentElement;
4244 - }
4245 - set
4246 - {
4247 - this.parentElement = value;
4248 - }
4249 - }
4250 -
4251 - /// <summary>
4252 - /// Processes this element and all child elements into an XmlWriter.
4253 - /// </summary>
4254 - public virtual void OutputXml(XmlWriter writer)
4255 - {
4256 - if ((null == writer))
4257 - {
4258 - throw new ArgumentNullException("writer");
4259 - }
4260 - writer.WriteStartElement("GroupRef", "http://wixtoolset.org/schemas/v4/wxs/util");
4261 - if (this.idFieldSet)
4262 - {
4263 - writer.WriteAttributeString("Id", this.idField);
4264 - }
4265 - writer.WriteEndElement();
4266 - }
4267 -
4268 - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
4269 - void ISetAttributes.SetAttribute(string name, string value)
4270 - {
4271 - if (String.IsNullOrEmpty(name))
4272 - {
4273 - throw new ArgumentNullException("name");
4274 - }
4275 - if (("Id" == name))
4276 - {
4277 - this.idField = value;
4278 - this.idFieldSet = true;
4279 - }
4280 - }
4281 - }
4282 -
4283 - /// <summary>
4284 - /// Creates a shortcut to a URL.
4285 - /// </summary>
4286 - [GeneratedCode("XsdGen", "4.0.0.0")]
4287 - public class InternetShortcut : ISchemaElement, ISetAttributes
4288 - {
4289 -
4290 - private string idField;
4291 -
4292 - private bool idFieldSet;
4293 -
4294 - private string directoryField;
4295 -
4296 - private bool directoryFieldSet;
4297 -
4298 - private string nameField;
4299 -
4300 - private bool nameFieldSet;
4301 -
4302 - private string targetField;
4303 -
4304 - private bool targetFieldSet;
4305 -
4306 - private TypeType typeField;
4307 -
4308 - private bool typeFieldSet;
4309 -
4310 - private string iconFileField;
4311 -
4312 - private bool iconFileFieldSet;
4313 -
4314 - private int iconIndexField;
4315 -
4316 - private bool iconIndexFieldSet;
4317 -
4318 - private ISchemaElement parentElement;
4319 -
4320 - /// <summary>
4321 - /// Unique identifier in your installation package for this Internet shortcut.
4322 - /// </summary>
4323 - public string Id
4324 - {
4325 - get
4326 - {
4327 - return this.idField;
4328 - }
4329 - set
4330 - {
4331 - this.idFieldSet = true;
4332 - this.idField = value;
4333 - }
4334 - }
4335 -
4336 - /// <summary>
4337 - /// Identifier reference to Directory element where shortcut is to be created. This attribute's value defaults to the parent Component directory.
4338 - /// </summary>
4339 - public string Directory
4340 - {
4341 - get
4342 - {
4343 - return this.directoryField;
4344 - }
4345 - set
4346 - {
4347 - this.directoryFieldSet = true;
4348 - this.directoryField = value;
4349 - }
4350 - }
4351 -
4352 - /// <summary>
4353 - /// The name of the shortcut file, which is visible to the user. (The .lnk
4354 - /// extension is added automatically and by default, is not shown to the user.)
4355 - /// </summary>
4356 - public string Name
4357 - {
4358 - get
4359 - {
4360 - return this.nameField;
4361 - }
4362 - set
4363 - {
4364 - this.nameFieldSet = true;
4365 - this.nameField = value;
4366 - }
4367 - }
4368 -
4369 - /// <summary>
4370 - /// URL that should be opened when the user selects the shortcut. Windows
4371 - /// opens the URL in the appropriate handler for the protocol specified
4372 - /// in the URL. Note that this is a formatted field, so you can use
4373 - /// [#fileId] syntax to refer to a file being installed (using the file:
4374 - /// protocol).
4375 - /// </summary>
4376 - public string Target
4377 - {
4378 - get
4379 - {
4380 - return this.targetField;
4381 - }
4382 - set
4383 - {
4384 - this.targetFieldSet = true;
4385 - this.targetField = value;
4386 - }
4387 - }
4388 -
4389 - /// <summary>
4390 - /// Which type of shortcut should be created.
4391 - /// </summary>
4392 - public TypeType Type
4393 - {
4394 - get
4395 - {
4396 - return this.typeField;
4397 - }
4398 - set
4399 - {
4400 - this.typeFieldSet = true;
4401 - this.typeField = value;
4402 - }
4403 - }
4404 -
4405 - /// <summary>
4406 - /// Icon file that should be displayed. Note that this is a formatted field, so you can use
4407 - /// [#fileId] syntax to refer to a file being installed (using the file:
4408 - /// protocol).
4409 - /// </summary>
4410 - public string IconFile
4411 - {
4412 - get
4413 - {
4414 - return this.iconFileField;
4415 - }
4416 - set
4417 - {
4418 - this.iconFileFieldSet = true;
4419 - this.iconFileField = value;
4420 - }
4421 - }
4422 -
4423 - /// <summary>
4424 - /// Index of the icon being referenced
4425 - /// </summary>
4426 - public int IconIndex
4427 - {
4428 - get
4429 - {
4430 - return this.iconIndexField;
4431 - }
4432 - set
4433 - {
4434 - this.iconIndexFieldSet = true;
4435 - this.iconIndexField = value;
4436 - }
4437 - }
4438 -
4439 - public virtual ISchemaElement ParentElement
4440 - {
4441 - get
4442 - {
4443 - return this.parentElement;
4444 - }
4445 - set
4446 - {
4447 - this.parentElement = value;
4448 - }
4449 - }
4450 -
4451 - /// <summary>
4452 - /// Parses a TypeType from a string.
4453 - /// </summary>
4454 - public static TypeType ParseTypeType(string value)
4455 - {
4456 - TypeType parsedValue;
4457 - InternetShortcut.TryParseTypeType(value, out parsedValue);
4458 - return parsedValue;
4459 - }
4460 -
4461 - /// <summary>
4462 - /// Tries to parse a TypeType from a string.
4463 - /// </summary>
4464 - public static bool TryParseTypeType(string value, out TypeType parsedValue)
4465 - {
4466 - parsedValue = TypeType.NotSet;
4467 - if (string.IsNullOrEmpty(value))
4468 - {
4469 - return false;
4470 - }
4471 - if (("url" == value))
4472 - {
4473 - parsedValue = TypeType.url;
4474 - }
4475 - else
4476 - {
4477 - if (("link" == value))
4478 - {
4479 - parsedValue = TypeType.link;
4480 - }
4481 - else
4482 - {
4483 - parsedValue = TypeType.IllegalValue;
4484 - return false;
4485 - }
4486 - }
4487 - return true;
4488 - }
4489 -
4490 - /// <summary>
4491 - /// Processes this element and all child elements into an XmlWriter.
4492 - /// </summary>
4493 - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
4494 - public virtual void OutputXml(XmlWriter writer)
4495 - {
4496 - if ((null == writer))
4497 - {
4498 - throw new ArgumentNullException("writer");
4499 - }
4500 - writer.WriteStartElement("InternetShortcut", "http://wixtoolset.org/schemas/v4/wxs/util");
4501 - if (this.idFieldSet)
4502 - {
4503 - writer.WriteAttributeString("Id", this.idField);
4504 - }
4505 - if (this.directoryFieldSet)
4506 - {
4507 - writer.WriteAttributeString("Directory", this.directoryField);
4508 - }
4509 - if (this.nameFieldSet)
4510 - {
4511 - writer.WriteAttributeString("Name", this.nameField);
4512 - }
4513 - if (this.targetFieldSet)
4514 - {
4515 - writer.WriteAttributeString("Target", this.targetField);
4516 - }
4517 - if (this.typeFieldSet)
4518 - {
4519 - if ((this.typeField == TypeType.url))
4520 - {
4521 - writer.WriteAttributeString("Type", "url");
4522 - }
4523 - if ((this.typeField == TypeType.link))
4524 - {
4525 - writer.WriteAttributeString("Type", "link");
4526 - }
4527 - }
4528 - if (this.iconFileFieldSet)
4529 - {
4530 - writer.WriteAttributeString("IconFile", this.iconFileField);
4531 - }
4532 - if (this.iconIndexFieldSet)
4533 - {
4534 - writer.WriteAttributeString("IconIndex", this.iconIndexField.ToString(CultureInfo.InvariantCulture));
4535 - }
4536 - writer.WriteEndElement();
4537 - }
4538 -
4539 - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
4540 - void ISetAttributes.SetAttribute(string name, string value)
4541 - {
4542 - if (String.IsNullOrEmpty(name))
4543 - {
4544 - throw new ArgumentNullException("name");
4545 - }
4546 - if (("Id" == name))
4547 - {
4548 - this.idField = value;
4549 - this.idFieldSet = true;
4550 - }
4551 - if (("Directory" == name))
4552 - {
4553 - this.directoryField = value;
4554 - this.directoryFieldSet = true;
4555 - }
4556 - if (("Name" == name))
4557 - {
4558 - this.nameField = value;
4559 - this.nameFieldSet = true;
4560 - }
4561 - if (("Target" == name))
4562 - {
4563 - this.targetField = value;
4564 - this.targetFieldSet = true;
4565 - }
4566 - if (("Type" == name))
4567 - {
4568 - this.typeField = InternetShortcut.ParseTypeType(value);
4569 - this.typeFieldSet = true;
4570 - }
4571 - if (("IconFile" == name))
4572 - {
4573 - this.iconFileField = value;
4574 - this.iconFileFieldSet = true;
4575 - }
4576 - if (("IconIndex" == name))
4577 - {
4578 - this.iconIndexField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
4579 - this.iconIndexFieldSet = true;
4580 - }
4581 - }
4582 -
4583 - [GeneratedCode("XsdGen", "4.0.0.0")]
4584 - public enum TypeType
4585 - {
4586 -
4587 - IllegalValue = int.MaxValue,
4588 -
4589 - NotSet = -1,
4590 -
4591 - /// <summary>
4592 - /// Creates .url files using IUniformResourceLocatorW.
4593 - /// </summary>
4594 - url,
4595 -
4596 - /// <summary>
4597 - /// Creates .lnk files using IShellLinkW (default).
4598 - /// </summary>
4599 - link,
4600 - }
4601 - }
4602 -
4603 - /// <summary>
4604 - /// Used to create performance categories and configure performance counters.
4605 - /// </summary>
4606 - [GeneratedCode("XsdGen", "4.0.0.0")]
4607 - public class PerformanceCategory : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
4608 - {
4609 -
4610 - private ElementCollection children;
4611 -
4612 - private string idField;
4613 -
4614 - private bool idFieldSet;
4615 -
4616 - private string nameField;
4617 -
4618 - private bool nameFieldSet;
4619 -
4620 - private string helpField;
4621 -
4622 - private bool helpFieldSet;
4623 -
4624 - private YesNoType multiInstanceField;
4625 -
4626 - private bool multiInstanceFieldSet;
4627 -
4628 - private string libraryField;
4629 -
4630 - private bool libraryFieldSet;
4631 -
4632 - private string openField;
4633 -
4634 - private bool openFieldSet;
4635 -
4636 - private string closeField;
4637 -
4638 - private bool closeFieldSet;
4639 -
4640 - private string collectField;
4641 -
4642 - private bool collectFieldSet;
4643 -
4644 - private PerformanceCounterLanguageType defaultLanguageField;
4645 -
4646 - private bool defaultLanguageFieldSet;
4647 -
4648 - private ISchemaElement parentElement;
4649 -
4650 - public PerformanceCategory()
4651 - {
4652 - ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
4653 - childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(PerformanceCounter)));
4654 - this.children = childCollection0;
4655 - }
4656 -
4657 - public virtual IEnumerable Children
4658 - {
4659 - get
4660 - {
4661 - return this.children;
4662 - }
4663 - }
4664 -
4665 - [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
4666 - public virtual IEnumerable this[System.Type childType]
4667 - {
4668 - get
4669 - {
4670 - return this.children.Filter(childType);
4671 - }
4672 - }
4673 -
4674 - /// <summary>
4675 - /// Unique identifier in your installation package for this performance counter category.
4676 - /// </summary>
4677 - public string Id
4678 - {
4679 - get
4680 - {
4681 - return this.idField;
4682 - }
4683 - set
4684 - {
4685 - this.idFieldSet = true;
4686 - this.idField = value;
4687 - }
4688 - }
4689 -
4690 - /// <summary>
4691 - /// Name for the performance counter category. If this attribute is not provided the Id attribute is used as the name of the performance counter category.
4692 - /// </summary>
4693 - public string Name
4694 - {
4695 - get
4696 - {
4697 - return this.nameField;
4698 - }
4699 - set
4700 - {
4701 - this.nameFieldSet = true;
4702 - this.nameField = value;
4703 - }
4704 - }
4705 -
4706 - /// <summary>
4707 - /// Optional help text for the performance counter category.
4708 - /// </summary>
4709 - public string Help
4710 - {
4711 - get
4712 - {
4713 - return this.helpField;
4714 - }
4715 - set
4716 - {
4717 - this.helpFieldSet = true;
4718 - this.helpField = value;
4719 - }
4720 - }
4721 -
4722 - /// <summary>
4723 - /// Flag that specifies whether the performance counter category is multi or single instanced. Default is single instance.
4724 - /// </summary>
4725 - public YesNoType MultiInstance
4726 - {
4727 - get
4728 - {
4729 - return this.multiInstanceField;
4730 - }
4731 - set
4732 - {
4733 - this.multiInstanceFieldSet = true;
4734 - this.multiInstanceField = value;
4735 - }
4736 - }
4737 -
4738 - /// <summary>
4739 - /// DLL that contains the performance counter. The default is "netfxperf.dll" which should be used for all managed code performance counters.
4740 - /// </summary>
4741 - public string Library
4742 - {
4743 - get
4744 - {
4745 - return this.libraryField;
4746 - }
4747 - set
4748 - {
4749 - this.libraryFieldSet = true;
4750 - this.libraryField = value;
4751 - }
4752 - }
4753 -
4754 - /// <summary>
4755 - /// Function entry point in to the Library DLL called when opening the performance counter. The default is "OpenPerformanceData" which should be used for all managed code performance counters.
4756 - /// </summary>
4757 - public string Open
4758 - {
4759 - get
4760 - {
4761 - return this.openField;
4762 - }
4763 - set
4764 - {
4765 - this.openFieldSet = true;
4766 - this.openField = value;
4767 - }
4768 - }
4769 -
4770 - /// <summary>
4771 - /// Function entry point in to the Library DLL called when closing the performance counter. The default is "ClosePerformanceData" which should be used for all managed code performance counters.
4772 - /// </summary>
4773 - public string Close
4774 - {
4775 - get
4776 - {
4777 - return this.closeField;
4778 - }
4779 - set
4780 - {
4781 - this.closeFieldSet = true;
4782 - this.closeField = value;
4783 - }
4784 - }
4785 -
4786 - /// <summary>
4787 - /// Function entry point in to the Library DLL called when collecting data from the performance counter. The default is "CollectPerformanceData" which should be used for all managed code performance counters.
4788 - /// </summary>
4789 - public string Collect
4790 - {
4791 - get
4792 - {
4793 - return this.collectField;
4794 - }
4795 - set
4796 - {
4797 - this.collectFieldSet = true;
4798 - this.collectField = value;
4799 - }
4800 - }
4801 -
4802 - /// <summary>
4803 - /// Default language for the performance category and contained counters' names and help text.
4804 - /// </summary>
4805 - public PerformanceCounterLanguageType DefaultLanguage
4806 - {
4807 - get
4808 - {
4809 - return this.defaultLanguageField;
4810 - }
4811 - set
4812 - {
4813 - this.defaultLanguageFieldSet = true;
4814 - this.defaultLanguageField = value;
4815 - }
4816 - }
4817 -
4818 - public virtual ISchemaElement ParentElement
4819 - {
4820 - get
4821 - {
4822 - return this.parentElement;
4823 - }
4824 - set
4825 - {
4826 - this.parentElement = value;
4827 - }
4828 - }
4829 -
4830 - public virtual void AddChild(ISchemaElement child)
4831 - {
4832 - if ((null == child))
4833 - {
4834 - throw new ArgumentNullException("child");
4835 - }
4836 - this.children.AddElement(child);
4837 - child.ParentElement = this;
4838 - }
4839 -
4840 - public virtual void RemoveChild(ISchemaElement child)
4841 - {
4842 - if ((null == child))
4843 - {
4844 - throw new ArgumentNullException("child");
4845 - }
4846 - this.children.RemoveElement(child);
4847 - child.ParentElement = null;
4848 - }
4849 -
4850 - [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
4851 - ISchemaElement ICreateChildren.CreateChild(string childName)
4852 - {
4853 - if (String.IsNullOrEmpty(childName))
4854 - {
4855 - throw new ArgumentNullException("childName");
4856 - }
4857 - ISchemaElement childValue = null;
4858 - if (("PerformanceCounter" == childName))
4859 - {
4860 - childValue = new PerformanceCounter();
4861 - }
4862 - if ((null == childValue))
4863 - {
4864 - throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
4865 - }
4866 - return childValue;
4867 - }
4868 -
4869 - /// <summary>
4870 - /// Processes this element and all child elements into an XmlWriter.
4871 - /// </summary>
4872 - [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
4873 - public virtual void OutputXml(XmlWriter writer)
4874 - {
4875 - if ((null == writer))
4876 - {
4877 - throw new ArgumentNullException("writer");
4878 - }
4879 - writer.WriteStartElement("PerformanceCategory", "http://wixtoolset.org/schemas/v4/wxs/util");
4880 - if (this.idFieldSet)
4881 - {
4882 - writer.WriteAttributeString("Id", this.idField);
4883 - }
4884 - if (this.nameFieldSet)
4885 - {
4886 - writer.WriteAttributeString("Name", this.nameField);
4887 - }
4888 - if (this.helpFieldSet)
4889 - {
4890 - writer.WriteAttributeString("Help", this.helpField);
4891 - }
4892 - if (this.multiInstanceFieldSet)
4893 - {
4894 - if ((this.multiInstanceField == YesNoType.no))
4895 - {
4896 - writer.WriteAttributeString("MultiInstance", "no");
4897 - }
4898 - if ((this.multiInstanceField == YesNoType.yes))
4899 - {
4900 - writer.WriteAttributeString("MultiInstance", "yes");
4901 - }
4902 - }
4903 - if (this.libraryFieldSet)
4904 - {
4905 - writer.WriteAttributeString("Library", this.libraryField);
4906 - }
4907 - if (this.openFieldSet)
4908 - {
4909 - writer.WriteAttributeString("Open", this.openField);
4910 - }
4911 - if (this.closeFieldSet)
4912 - {
4913 - writer.WriteAttributeString("Close", this.closeField);
4914 - }
4915 - if (this.collectFieldSet)
4916 - {
4917 - writer.WriteAttributeString("Collect", this.collectField);
4918 - }
4919 - if (this.defaultLanguageFieldSet)
4920 - {
4921 - if ((this.defaultLanguageField == PerformanceCounterLanguageType.afrikaans))
4922 - {
4923 - writer.WriteAttributeString("DefaultLanguage", "afrikaans");
4924 - }
4925 - if ((this.defaultLanguageField == PerformanceCounterLanguageType.albanian))
4926 - {
4927 - writer.WriteAttributeString("DefaultLanguage", "albanian");
4928 - }
4929 - if ((this.defaultLanguageField == PerformanceCounterLanguageType.arabic))
4930 - {
4931 - writer.WriteAttributeString("DefaultLanguage", "arabic");
4932 - }
4933 - if ((this.defaultLanguageField == PerformanceCounterLanguageType.armenian))
4934 - {
4935 - writer.WriteAttributeString("DefaultLanguage", "armenian");
4936 - }
4937 - if ((this.defaultLanguageField == PerformanceCounterLanguageType.assamese))
4938 - {
4939 - writer.WriteAttributeString("DefaultLanguage", "assamese");
4940 - }
4941 - if ((this.defaultLanguageField == PerformanceCounterLanguageType.azeri))
4942 - {
4943 - writer.WriteAttributeString("DefaultLanguage", "azeri");
4944 - }
4945 - if ((this.defaultLanguageField == PerformanceCounterLanguageType.basque))
4946 - {
4947 - writer.WriteAttributeString("DefaultLanguage", "basque");
4948 - }
4949 - if ((this.defaultLanguageField == PerformanceCounterLanguageType.belarusian))
4950 - {
4951 - writer.WriteAttributeString("DefaultLanguage", "belarusian");
4952 - }
4953 - if ((this.defaultLanguageField == PerformanceCounterLanguageType.bengali))
4954 - {
4955 - writer.WriteAttributeString("DefaultLanguage", "bengali");
4956 - }
4957 - if ((this.defaultLanguageField == PerformanceCounterLanguageType.bulgarian))
4958 - {
4959 - writer.WriteAttributeString("DefaultLanguage", "bulgarian");
4960 - }
4961 - if ((this.defaultLanguageField == PerformanceCounterLanguageType.catalan))
4962 - {
4963 - writer.WriteAttributeString("DefaultLanguage", "catalan");
4964 - }
4965 - if ((this.defaultLanguageField == PerformanceCounterLanguageType.chinese))
4966 - {
4967 - writer.WriteAttributeString("DefaultLanguage", "chinese");
4968 - }
4969 - if ((this.defaultLanguageField == PerformanceCounterLanguageType.croatian))
4970 - {
4971 - writer.WriteAttributeString("DefaultLanguage", "croatian");
4972 - }
4973 - if ((this.defaultLanguageField == PerformanceCounterLanguageType.czech))
4974 - {
4975 - writer.WriteAttributeString("DefaultLanguage", "czech");
4976 - }
4977 - if ((this.defaultLanguageField == PerformanceCounterLanguageType.danish))
4978 - {
4979 - writer.WriteAttributeString("DefaultLanguage", "danish");
4980 - }
4981 - if ((this.defaultLanguageField == PerformanceCounterLanguageType.divehi))
4982 - {
4983 - writer.WriteAttributeString("DefaultLanguage", "divehi");
4984 - }
4985 - if ((this.defaultLanguageField == PerformanceCounterLanguageType.dutch))
4986 - {
4987 - writer.WriteAttributeString("DefaultLanguage", "dutch");
4988 - }
4989 - if ((this.defaultLanguageField == PerformanceCounterLanguageType.english))
4990 - {
4991 - writer.WriteAttributeString("DefaultLanguage", "english");
4992 - }
4993 - if ((this.defaultLanguageField == PerformanceCounterLanguageType.estonian))
4994 - {
4995 - writer.WriteAttributeString("DefaultLanguage", "estonian");
4996 - }
4997 - if ((this.defaultLanguageField == PerformanceCounterLanguageType.faeroese))
4998 - {
4999 - writer.WriteAttributeString("DefaultLanguage", "faeroese");

This file is too large to show in full.

src/wixext/util.xsd deleted
-1858
@@ -1,1858 +0,0 @@
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:html="http://www.w3.org/1999/xhtml"
6 - xmlns:wix="http://wixtoolset.org/schemas/v4/wxs"
7 - xmlns:xs="http://www.w3.org/2001/XMLSchema"
8 - xmlns:xse=" http://wixtoolset.org/schemas/XmlSchemaExtension"
9 - targetNamespace="http://wixtoolset.org/schemas/v4/wxs/util"
10 - xmlns="http://wixtoolset.org/schemas/v4/wxs/util">
11 - <xs:annotation>
12 - <xs:documentation>
13 - The source code schema for the WiX Toolset Utility Extension.
14 - </xs:documentation>
15 - </xs:annotation>
16 - <xs:import namespace="http://wixtoolset.org/schemas/v4/wxs" />
17 - <xs:element name="CloseApplication">
18 - <xs:annotation>
19 - <xs:appinfo>
20 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Product" />
21 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
22 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
23 - </xs:appinfo>
24 - <xs:documentation>Closes applications or schedules a reboot if application cannot be closed.</xs:documentation>
25 - </xs:annotation>
26 - <xs:complexType>
27 - <xs:simpleContent>
28 - <xs:extension base="xs:string">
29 - <xs:attribute name="Id" type="xs:string">
30 - <xs:annotation>
31 - <xs:documentation>Identifier for the close application (primary key). If the Id is not specified, one will be generated.</xs:documentation>
32 - </xs:annotation>
33 - </xs:attribute>
34 - <xs:attribute name="Target" type="xs:string" use="required">
35 - <xs:annotation>
36 - <xs:documentation>Name of the exectuable to be closed. This should only be the file name.</xs:documentation>
37 - </xs:annotation>
38 - </xs:attribute>
39 - <xs:attribute name="Condition" type="xs:string">
40 - <xs:annotation>
41 - <xs:documentation>
42 - Condition that determines if the application should be closed. Must be blank or evaluate to true
43 - for the application to be scheduled for closing.
44 - </xs:documentation>
45 - </xs:annotation>
46 - </xs:attribute>
47 - <xs:attribute name="Description" type="xs:string">
48 - <xs:annotation>
49 - <xs:documentation>Description to show if application is running and needs to be closed.</xs:documentation>
50 - </xs:annotation>
51 - </xs:attribute>
52 - <xs:attribute name="Sequence" type="xs:integer">
53 - <xs:annotation>
54 - <xs:documentation>Optionally orders the applications to be closed.</xs:documentation>
55 - </xs:annotation>
56 - </xs:attribute>
57 - <xs:attribute name="CloseMessage" type="YesNoType">
58 - <xs:annotation>
59 - <xs:documentation>Optionally sends a close message to the application. Default is no.</xs:documentation>
60 - </xs:annotation>
61 - </xs:attribute>
62 - <xs:attribute name="EndSessionMessage" type="YesNoType">
63 - <xs:annotation>
64 - <xs:documentation>Sends WM_QUERYENDSESSION then WM_ENDSESSION messages to the application. Default is "no".</xs:documentation>
65 - </xs:annotation>
66 - </xs:attribute>
67 - <xs:attribute name="ElevatedCloseMessage" type="YesNoType">
68 - <xs:annotation>
69 - <xs:documentation>Optionally sends a close message to the application from deffered action without impersonation. Default is no.</xs:documentation>
70 - </xs:annotation>
71 - </xs:attribute>
72 - <xs:attribute name="ElevatedEndSessionMessage" type="YesNoType">
73 - <xs:annotation>
74 - <xs:documentation>Sends WM_QUERYENDSESSION then WM_ENDSESSION messages to the application from a deffered action without impersonation. Default is "no".</xs:documentation>
75 - </xs:annotation>
76 - </xs:attribute>
77 - <xs:attribute name="RebootPrompt" type="YesNoType">
78 - <xs:annotation>
79 - <xs:documentation>Optionally prompts for reboot if application is still running. The default is "yes". The TerminateProcess attribute must be "no" or not specified if this attribute is "yes".</xs:documentation>
80 - </xs:annotation>
81 - </xs:attribute>
82 - <xs:attribute name="PromptToContinue" type="YesNoType">
83 - <xs:annotation>
84 - <xs:documentation>
85 - When this attribute is set to "yes", the user will be prompted when the application is still running. The Description attribute must contain the message to
86 - display in the prompt. The prompt occurs before executing any of the other options and gives the options to "Abort", "Retry", or "Ignore". Abort will cancel
87 - the install. Retry will attempt the check again and if the application is still running, prompt again. "Ignore" will continue and execute any other options
88 - set on the CloseApplication element. The default is "no".
89 - </xs:documentation>
90 - </xs:annotation>
91 - </xs:attribute>
92 - <xs:attribute name="Property" type="xs:string">
93 - <xs:annotation>
94 - <xs:documentation>Property to be set if application is still running. Useful for launch conditions or to conditionalize custom UI to ask user to shut down apps.</xs:documentation>
95 - </xs:annotation>
96 - </xs:attribute>
97 - <xs:attribute name="TerminateProcess" type="xs:integer">
98 - <xs:annotation>
99 - <xs:documentation>
100 - Attempts to terminates process and return the specified exit code if application is still running after sending any requested close and/or end session messages.
101 - If this attribute is specified, the RebootPrompt attribute must be "no". The default is "no".
102 - </xs:documentation>
103 - </xs:annotation>
104 - </xs:attribute>
105 - <xs:attribute name="Timeout" type="xs:integer">
106 - <xs:annotation>
107 - <xs:documentation>
108 - Optional time in seconds to wait for the application to exit after the close and/or end session messages. If the application is still running after the timeout then
109 - the RebootPrompt or TerminateProcess attributes will be considered. The default value is "5" seconds.
110 - </xs:documentation>
111 - </xs:annotation>
112 - </xs:attribute>
113 - </xs:extension>
114 - </xs:simpleContent>
115 - </xs:complexType>
116 - </xs:element>
117 - <xs:element name="ComponentSearch">
118 - <xs:annotation>
119 - <xs:documentation>Describes a component search.</xs:documentation>
120 - <xs:appinfo>
121 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
122 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
123 - </xs:appinfo>
124 - </xs:annotation>
125 - <xs:complexType>
126 - <xs:attributeGroup ref="SearchCommonAttributes" />
127 - <xs:attribute name="Guid" type="xs:string" use="required">
128 - <xs:annotation>
129 - <xs:documentation>Component to search for.</xs:documentation>
130 - </xs:annotation>
131 - </xs:attribute>
132 - <xs:attribute name="ProductCode" type="xs:string">
133 - <xs:annotation>
134 - <xs:documentation>Optional ProductCode to determine if the component is installed.</xs:documentation>
135 - </xs:annotation>
136 - </xs:attribute>
137 - <xs:attribute name="Result">
138 - <xs:annotation>
139 - <xs:documentation>
140 - Rather than saving the matching key path into the variable, a ComponentSearch can save an attribute of the component instead.
141 - </xs:documentation>
142 - </xs:annotation>
143 - <xs:simpleType>
144 - <xs:restriction base="xs:NMTOKEN">
145 - <xs:enumeration value="directory">
146 - <xs:annotation>
147 - <xs:documentation>Saves the parent directory for the component's file key path; other types of key path are returned unmodified.</xs:documentation>
148 - </xs:annotation>
149 - </xs:enumeration>
150 - <xs:enumeration value="state">
151 - <xs:annotation>
152 - <xs:documentation>Saves the state of the component: absent (2), locally installed (3), will run from source (4), or installed in default location (either local or from source) (5)</xs:documentation>
153 - </xs:annotation>
154 - </xs:enumeration>
155 - <xs:enumeration value="keyPath">
156 - <xs:annotation>
157 - <xs:documentation>Saves the key path of the component if installed. This is the default.</xs:documentation>
158 - </xs:annotation>
159 - </xs:enumeration>
160 - </xs:restriction>
161 - </xs:simpleType>
162 - </xs:attribute>
163 - </xs:complexType>
164 - </xs:element>
165 - <xs:element name="ComponentSearchRef">
166 - <xs:annotation>
167 - <xs:documentation>References a ComponentSearch.</xs:documentation>
168 - <xs:appinfo>
169 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
170 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
171 - </xs:appinfo>
172 - </xs:annotation>
173 - <xs:complexType>
174 - <xs:attribute name="Id" type="xs:string" use="required" />
175 - </xs:complexType>
176 - </xs:element>
177 - <xs:element name="DirectorySearch">
178 - <xs:annotation>
179 - <xs:documentation>Describes a directory search.</xs:documentation>
180 - <xs:appinfo>
181 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
182 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
183 - </xs:appinfo>
184 - </xs:annotation>
185 - <xs:complexType>
186 - <xs:attributeGroup ref="SearchCommonAttributes" />
187 - <xs:attribute name="Path" type="xs:string">
188 - <xs:annotation>
189 - <xs:documentation>Directory path to search for.</xs:documentation>
190 - </xs:annotation>
191 - </xs:attribute>
192 - <xs:attribute name="Result">
193 - <xs:annotation>
194 - <xs:documentation>
195 - Rather than saving the matching directory path into the variable, a DirectorySearch can save an
196 - attribute of the matching directory instead.
197 - </xs:documentation>
198 - </xs:annotation>
199 - <xs:simpleType>
200 - <xs:restriction base="xs:NMTOKEN">
201 - <xs:enumeration value="exists">
202 - <xs:annotation>
203 - <xs:documentation>Saves true if a matching directory is found; false otherwise.</xs:documentation>
204 - </xs:annotation>
205 - </xs:enumeration>
206 - </xs:restriction>
207 - </xs:simpleType>
208 - </xs:attribute>
209 - </xs:complexType>
210 - </xs:element>
211 - <xs:element name="DirectorySearchRef">
212 - <xs:annotation>
213 - <xs:documentation>References a DirectorySearch.</xs:documentation>
214 - <xs:appinfo>
215 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
216 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
217 - </xs:appinfo>
218 - </xs:annotation>
219 - <xs:complexType>
220 - <xs:attribute name="Id" type="xs:string" use="required" />
221 - </xs:complexType>
222 - </xs:element>
223 - <xs:element name="EventSource">
224 - <xs:annotation>
225 - <xs:appinfo>
226 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
227 - </xs:appinfo>
228 - <xs:documentation>Creates an event source.</xs:documentation>
229 - </xs:annotation>
230 - <xs:complexType>
231 - <xs:attribute name="CategoryCount" type="xs:integer">
232 - <xs:annotation>
233 - <xs:documentation>
234 - The number of categories in CategoryMessageFile. CategoryMessageFile
235 - must be specified too.
236 - </xs:documentation>
237 - </xs:annotation>
238 - </xs:attribute>
239 - <xs:attribute name="CategoryMessageFile" type="xs:string">
240 - <xs:annotation>
241 - <xs:documentation>
242 - Name of the category message file. CategoryCount must be specified too.
243 - Note that this is a formatted field, so you can use [#fileId] syntax to
244 - refer to a file being installed. It is also written as a REG_EXPAND_SZ
245 - string, so you can use %environment_variable% syntax to refer to a file
246 - already present on the user's machine.
247 - </xs:documentation>
248 - </xs:annotation>
249 - </xs:attribute>
250 - <xs:attribute name="EventMessageFile" type="xs:string" use="required">
251 - <xs:annotation>
252 - <xs:documentation>
253 - Name of the event message file.
254 - Note that this is a formatted field, so you can use [#fileId] syntax to
255 - refer to a file being installed. It is also written as a REG_EXPAND_SZ
256 - string, so you can use %environment_variable% syntax to refer to a file
257 - already present on the user's machine.
258 - </xs:documentation>
259 - </xs:annotation>
260 - </xs:attribute>
261 - <xs:attribute name="KeyPath" type="YesNoType">
262 - <xs:annotation>
263 - <xs:documentation>
264 - Marks the EventSource registry as the key path of the component it belongs to.
265 - </xs:documentation>
266 - </xs:annotation>
267 - </xs:attribute>
268 - <xs:attribute name="Log" type="xs:string" use="required">
269 - <xs:annotation>
270 - <xs:documentation>Name of the event source's log.</xs:documentation>
271 - </xs:annotation>
272 - </xs:attribute>
273 - <xs:attribute name="Name" type="xs:string" use="required">
274 - <xs:annotation>
275 - <xs:documentation>Name of the event source.</xs:documentation>
276 - </xs:annotation>
277 - </xs:attribute>
278 - <xs:attribute name="ParameterMessageFile" type="xs:string">
279 - <xs:annotation>
280 - <xs:documentation>
281 - Name of the parameter message file.
282 - Note that this is a formatted field, so you can use [#fileId] syntax to
283 - refer to a file being installed. It is also written as a REG_EXPAND_SZ
284 - string, so you can use %environment_variable% syntax to refer to a file
285 - already present on the user's machine.
286 - </xs:documentation>
287 - </xs:annotation>
288 - </xs:attribute>
289 - <xs:attribute name="SupportsErrors" type="YesNoType">
290 - <xs:annotation>
291 - <xs:documentation>
292 - Equivalent to EVENTLOG_ERROR_TYPE.
293 - </xs:documentation>
294 - </xs:annotation>
295 - </xs:attribute>
296 - <xs:attribute name="SupportsFailureAudits" type="YesNoType">
297 - <xs:annotation>
298 - <xs:documentation>
299 - Equivalent to EVENTLOG_AUDIT_FAILURE.
300 - </xs:documentation>
301 - </xs:annotation>
302 - </xs:attribute>
303 - <xs:attribute name="SupportsInformationals" type="YesNoType">
304 - <xs:annotation>
305 - <xs:documentation>
306 - Equivalent to EVENTLOG_INFORMATION_TYPE.
307 - </xs:documentation>
308 - </xs:annotation>
309 - </xs:attribute>
310 - <xs:attribute name="SupportsSuccessAudits" type="YesNoType">
311 - <xs:annotation>
312 - <xs:documentation>
313 - Equivalent to EVENTLOG_AUDIT_SUCCESS.
314 - </xs:documentation>
315 - </xs:annotation>
316 - </xs:attribute>
317 - <xs:attribute name="SupportsWarnings" type="YesNoType">
318 - <xs:annotation>
319 - <xs:documentation>
320 - Equivalent to EVENTLOG_WARNING_TYPE.
321 - </xs:documentation>
322 - </xs:annotation>
323 - </xs:attribute>
324 - </xs:complexType>
325 - </xs:element>
326 - <xs:element name="FileSearch">
327 - <xs:annotation>
328 - <xs:documentation>Describes a file search.</xs:documentation>
329 - <xs:appinfo>
330 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
331 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
332 - </xs:appinfo>
333 - </xs:annotation>
334 - <xs:complexType>
335 - <xs:attributeGroup ref="SearchCommonAttributes" />
336 - <xs:attribute name="Path" type="xs:string">
337 - <xs:annotation>
338 - <xs:documentation>File path to search for.</xs:documentation>
339 - </xs:annotation>
340 - </xs:attribute>
341 - <xs:attribute name="Result">
342 - <xs:annotation>
343 - <xs:documentation>
344 - Rather than saving the matching file path into the variable, a FileSearch can save an attribute of the matching file instead.
345 - </xs:documentation>
346 - </xs:annotation>
347 - <xs:simpleType>
348 - <xs:restriction base="xs:NMTOKEN">
349 - <xs:enumeration value="exists">
350 - <xs:annotation>
351 - <xs:documentation>Saves true if a matching file is found; false otherwise.</xs:documentation>
352 - </xs:annotation>
353 - </xs:enumeration>
354 - <xs:enumeration value="version">
355 - <xs:annotation>
356 - <xs:documentation>Saves the version information for files that have it (.exe, .dll); zero-version (0.0.0.0) otherwise.</xs:documentation>
357 - </xs:annotation>
358 - </xs:enumeration>
359 - </xs:restriction>
360 - </xs:simpleType>
361 - </xs:attribute>
362 - </xs:complexType>
363 - </xs:element>
364 - <xs:element name="FileSearchRef">
365 - <xs:annotation>
366 - <xs:documentation>References a FileSearch.</xs:documentation>
367 - <xs:appinfo>
368 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
369 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
370 - </xs:appinfo>
371 - </xs:annotation>
372 - <xs:complexType>
373 - <xs:attribute name="Id" type="xs:string" use="required" />
374 - </xs:complexType>
375 - </xs:element>
376 - <xs:element name="FileShare">
377 - <xs:annotation>
378 - <xs:appinfo>
379 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
380 - </xs:appinfo>
381 - <xs:documentation>Creates a file share out of the component's directory.</xs:documentation>
382 - </xs:annotation>
383 - <xs:complexType>
384 - <xs:sequence>
385 - <xs:element ref="FileSharePermission" minOccurs="1" maxOccurs="unbounded">
386 - <xs:annotation>
387 - <xs:documentation>ACL permission</xs:documentation>
388 - </xs:annotation>
389 - </xs:element>
390 - </xs:sequence>
391 - <xs:attribute name="Id" type="xs:string" use="required">
392 - <xs:annotation>
393 - <xs:documentation>Identifier for the file share (primary key).</xs:documentation>
394 - </xs:annotation>
395 - </xs:attribute>
396 - <xs:attribute name="Name" type="xs:string" use="required">
397 - <xs:annotation>
398 - <xs:documentation>Name of the file share.</xs:documentation>
399 - </xs:annotation>
400 - </xs:attribute>
401 - <xs:attribute name="Description" type="xs:string">
402 - <xs:annotation>
403 - <xs:documentation>Description of the file share.</xs:documentation>
404 - </xs:annotation>
405 - </xs:attribute>
406 - </xs:complexType>
407 - </xs:element>
408 - <xs:element name="FileSharePermission">
409 - <xs:annotation>
410 - <xs:documentation>
411 - Sets ACLs on a FileShare. This element has no Id attribute.
412 - The table and key are taken from the parent element.
413 - </xs:documentation>
414 - </xs:annotation>
415 - <xs:complexType>
416 - <xs:attribute name="User" use="required" type="xs:string"></xs:attribute>
417 - <!-- Common ACLs -->
418 - <xs:attribute name="Read" type="YesNoType"></xs:attribute>
419 - <xs:attribute name="Delete" type="YesNoType"></xs:attribute>
420 - <xs:attribute name="ReadPermission" type="YesNoType"></xs:attribute>
421 - <xs:attribute name="ChangePermission" type="YesNoType"></xs:attribute>
422 - <xs:attribute name="TakeOwnership" type="YesNoType"></xs:attribute>
423 - <!-- Folder and File ACLs -->
424 - <xs:attribute name="ReadAttributes" type="YesNoType"></xs:attribute>
425 - <xs:attribute name="WriteAttributes" type="YesNoType"></xs:attribute>
426 - <xs:attribute name="ReadExtendedAttributes" type="YesNoType"></xs:attribute>
427 - <xs:attribute name="WriteExtendedAttributes" type="YesNoType"></xs:attribute>
428 - <xs:attribute name="Synchronize" type="YesNoType"></xs:attribute>
429 - <!-- Folder only ACLs -->
430 - <xs:attribute name="CreateFile" type="YesNoType">
431 - <xs:annotation>
432 - <xs:documentation>For a directory, the right to create a file in the directory. Only valid under a 'CreateFolder' parent.</xs:documentation>
433 - </xs:annotation>
434 - </xs:attribute>
435 - <xs:attribute name="CreateChild" type="YesNoType">
436 - <xs:annotation>
437 - <xs:documentation>For a directory, the right to create a subdirectory. Only valid under a 'CreateFolder' parent.</xs:documentation>
438 - </xs:annotation>
439 - </xs:attribute>
440 - <xs:attribute name="DeleteChild" type="YesNoType">
441 - <xs:annotation>
442 - <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>
443 - </xs:annotation>
444 - </xs:attribute>
445 - <xs:attribute name="Traverse" type="YesNoType">
446 - <xs:annotation>
447 - <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>
448 - </xs:annotation>
449 - </xs:attribute>
450 - <!-- Generic ACLs, mapped by system to appropriate permissions -->
451 - <xs:attribute name="GenericAll" type="YesNoType"></xs:attribute>
452 - <xs:attribute name="GenericExecute" type="YesNoType"></xs:attribute>
453 - <xs:attribute name="GenericWrite" type="YesNoType"></xs:attribute>
454 - <xs:attribute name="GenericRead" type="YesNoType">
455 - <xs:annotation>
456 - <xs:documentation>specifying this will fail to grant read access</xs:documentation>
457 - </xs:annotation>
458 - </xs:attribute>
459 - </xs:complexType>
460 - </xs:element>
461 - <xs:element name="FormatFile">
462 - <xs:annotation>
463 - <xs:appinfo>
464 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="File" />
465 - </xs:appinfo>
466 - <xs:documentation>
467 - Formats a file's contents at install time. The contents are formatted according to the rules of the
468 - <html:a href="http://msdn.microsoft.com/library/aa368609.aspx" target="_blank">Formatted</html:a> data type.
469 - </xs:documentation>
470 - </xs:annotation>
471 - <xs:complexType>
472 - <xs:attribute name="BinaryKey" type="xs:string" use="required">
473 - <xs:annotation>
474 - <xs:documentation>
475 - The id of a Binary row that contains a copy of the file. The file in the Binary table overwrites whatever
476 - file is installed by the parent component.
477 - </xs:documentation>
478 - </xs:annotation>
479 - </xs:attribute>
480 - </xs:complexType>
481 - </xs:element>
482 - <xs:element name="Group">
483 - <xs:annotation>
484 - <xs:appinfo>
485 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
486 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
487 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Product" />
488 - </xs:appinfo>
489 - <xs:documentation>
490 - Finds user groups on the local machine or specified Active Directory domain. The local machine will be
491 - searched for the group first then fallback to looking in Active Directory. This element is not capable
492 - of creating new groups but can be used to add new or existing users to an existing group.
493 - </xs:documentation>
494 - </xs:annotation>
495 - <xs:complexType>
496 - <xs:attribute name="Id" type="xs:string" use="required">
497 - <xs:annotation>
498 - <xs:documentation>Unique identifier in your installation package for this group.</xs:documentation>
499 - </xs:annotation>
500 - </xs:attribute>
501 - <xs:attribute name="Name" type="xs:string" use="required">
502 - <xs:annotation>
503 - <xs:documentation>A <html:a href="http://msdn.microsoft.com/library/aa368609.aspx" target="_blank">Formatted</html:a> string that contains the name of the group to be found.</xs:documentation>
504 - </xs:annotation>
505 - </xs:attribute>
506 - <xs:attribute name="Domain" type="xs:string">
507 - <xs:annotation>
508 - <xs:documentation>An optional <html:a href="http://msdn.microsoft.com/library/aa368609.aspx" target="_blank">Formatted</html:a> string that specifies the domain for the group.</xs:documentation>
509 - </xs:annotation>
510 - </xs:attribute>
511 - </xs:complexType>
512 - </xs:element>
513 - <xs:element name="GroupRef">
514 - <xs:annotation>
515 - <xs:documentation>Used to join a user to a group</xs:documentation>
516 - </xs:annotation>
517 - <xs:complexType>
518 - <xs:attribute name="Id" type="xs:string" use="required" />
519 - </xs:complexType>
520 - </xs:element>
521 - <xs:element name="InternetShortcut">
522 - <xs:annotation>
523 - <xs:appinfo>
524 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
525 - <xse:howtoRef href="files_and_registry/create_internet_shortcut.html">How To: Create a shortcut to a webpage</xse:howtoRef>
526 - </xs:appinfo>
527 - <xs:documentation>Creates a shortcut to a URL.</xs:documentation>
528 - </xs:annotation>
529 - <xs:complexType>
530 - <xs:attribute name="Id" type="xs:string" use="required">
531 - <xs:annotation>
532 - <xs:documentation>Unique identifier in your installation package for this Internet shortcut.</xs:documentation>
533 - </xs:annotation>
534 - </xs:attribute>
535 - <xs:attribute name="Directory" type="xs:string">
536 - <xs:annotation>
537 - <xs:documentation>Identifier reference to Directory element where shortcut is to be created. This attribute's value defaults to the parent Component directory.</xs:documentation>
538 - </xs:annotation>
539 - </xs:attribute>
540 - <xs:attribute name="Name" type="xs:string" use="required">
541 - <xs:annotation>
542 - <xs:documentation>
543 - The name of the shortcut file, which is visible to the user. (The .lnk
544 - extension is added automatically and by default, is not shown to the user.)
545 - </xs:documentation>
546 - </xs:annotation>
547 - </xs:attribute>
548 - <xs:attribute name="Target" type="xs:string" use="required">
549 - <xs:annotation>
550 - <xs:documentation>
551 - URL that should be opened when the user selects the shortcut. Windows
552 - opens the URL in the appropriate handler for the protocol specified
553 - in the URL. Note that this is a formatted field, so you can use
554 - [#fileId] syntax to refer to a file being installed (using the file:
555 - protocol).
556 - </xs:documentation>
557 - </xs:annotation>
558 - </xs:attribute>
559 - <xs:attribute name="Type">
560 - <xs:annotation>
561 - <xs:documentation>Which type of shortcut should be created.</xs:documentation>
562 - </xs:annotation>
563 - <xs:simpleType>
564 - <xs:restriction base="xs:NMTOKEN">
565 - <xs:enumeration value="url">
566 - <xs:annotation>
567 - <xs:documentation>Creates .url files using IUniformResourceLocatorW.</xs:documentation>
568 - </xs:annotation>
569 - </xs:enumeration>
570 - <xs:enumeration value="link">
571 - <xs:annotation>
572 - <xs:documentation>Creates .lnk files using IShellLinkW (default).</xs:documentation>
573 - </xs:annotation>
574 - </xs:enumeration>
575 - </xs:restriction>
576 - </xs:simpleType>
577 - </xs:attribute>
578 - <xs:attribute name="IconFile" type="xs:string" use="optional">
579 - <xs:annotation>
580 - <xs:documentation>
581 - Icon file that should be displayed. Note that this is a formatted field, so you can use
582 - [#fileId] syntax to refer to a file being installed (using the file:
583 - protocol).
584 - </xs:documentation>
585 - </xs:annotation>
586 - </xs:attribute>
587 - <xs:attribute name="IconIndex" type="xs:integer" use="optional">
588 - <xs:annotation>
589 - <xs:documentation>
590 - Index of the icon being referenced
591 - </xs:documentation>
592 - </xs:annotation>
593 - </xs:attribute>
594 - </xs:complexType>
595 - </xs:element>
596 - <xs:element name="PerformanceCategory">
597 - <xs:annotation>
598 - <xs:appinfo>
599 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
600 - </xs:appinfo>
601 - <xs:documentation>Used to create performance categories and configure performance counters.</xs:documentation>
602 - </xs:annotation>
603 - <xs:complexType>
604 - <xs:sequence>
605 - <xs:element ref="PerformanceCounter" minOccurs="0" maxOccurs="unbounded" />
606 - </xs:sequence>
607 - <xs:attribute name="Id" type="xs:string">
608 - <xs:annotation>
609 - <xs:documentation>Unique identifier in your installation package for this performance counter category.</xs:documentation>
610 - </xs:annotation>
611 - </xs:attribute>
612 - <xs:attribute name="Name" type="xs:string" use="optional">
613 - <xs:annotation>
614 - <xs:documentation>Name for the performance counter category. If this attribute is not provided the Id attribute is used as the name of the performance counter category.</xs:documentation>
615 - </xs:annotation>
616 - </xs:attribute>
617 - <xs:attribute name="Help" type="xs:string" use="optional">
618 - <xs:annotation>
619 - <xs:documentation>Optional help text for the performance counter category.</xs:documentation>
620 - </xs:annotation>
621 - </xs:attribute>
622 - <xs:attribute name="MultiInstance" type="YesNoType" use="optional">
623 - <xs:annotation>
624 - <xs:documentation>Flag that specifies whether the performance counter category is multi or single instanced. Default is single instance.</xs:documentation>
625 - </xs:annotation>
626 - </xs:attribute>
627 - <xs:attribute name="Library" type="xs:string" use="optional">
628 - <xs:annotation>
629 - <xs:documentation>DLL that contains the performance counter. The default is "netfxperf.dll" which should be used for all managed code performance counters.</xs:documentation>
630 - </xs:annotation>
631 - </xs:attribute>
632 - <xs:attribute name="Open" type="xs:string" use="optional">
633 - <xs:annotation>
634 - <xs:documentation>Function entry point in to the Library DLL called when opening the performance counter. The default is "OpenPerformanceData" which should be used for all managed code performance counters.</xs:documentation>
635 - </xs:annotation>
636 - </xs:attribute>
637 - <xs:attribute name="Close" type="xs:string" use="optional">
638 - <xs:annotation>
639 - <xs:documentation>Function entry point in to the Library DLL called when closing the performance counter. The default is "ClosePerformanceData" which should be used for all managed code performance counters.</xs:documentation>
640 - </xs:annotation>
641 - </xs:attribute>
642 - <xs:attribute name="Collect" type="xs:string" use="optional">
643 - <xs:annotation>
644 - <xs:documentation>Function entry point in to the Library DLL called when collecting data from the performance counter. The default is "CollectPerformanceData" which should be used for all managed code performance counters.</xs:documentation>
645 - </xs:annotation>
646 - </xs:attribute>
647 - <xs:attribute name="DefaultLanguage" type="PerformanceCounterLanguageType">
648 - <xs:annotation>
649 - <xs:documentation>Default language for the performance category and contained counters' names and help text.</xs:documentation>
650 - </xs:annotation>
651 - </xs:attribute>
652 - </xs:complexType>
653 - </xs:element>
654 - <xs:element name="PerformanceCounter">
655 - <xs:annotation>
656 - <xs:documentation>Creates a performance counter in a performance category.</xs:documentation>
657 - </xs:annotation>
658 - <xs:complexType>
659 - <xs:attribute name="Name" type="xs:string">
660 - <xs:annotation>
661 - <xs:documentation>Name for the performance counter.</xs:documentation>
662 - </xs:annotation>
663 - </xs:attribute>
664 - <xs:attribute name="Help" type="xs:string" use="optional">
665 - <xs:annotation>
666 - <xs:documentation>Optional help text for the performance counter.</xs:documentation>
667 - </xs:annotation>
668 - </xs:attribute>
669 - <xs:attribute name="Type" type="PerformanceCounterTypesType">
670 - <xs:annotation>
671 - <xs:documentation>Type of the performance counter.</xs:documentation>
672 - </xs:annotation>
673 - </xs:attribute>
674 - <xs:attribute name="Language" type="PerformanceCounterLanguageType" use="optional">
675 - <xs:annotation>
676 - <xs:documentation>Language for the peformance counter name and help. The default is to use the parent PerformanceCategory element's DefaultLanguage attribute.</xs:documentation>
677 - </xs:annotation>
678 - </xs:attribute>
679 - </xs:complexType>
680 - </xs:element>
681 - <xs:element name="PerfCounter">
682 - <xs:annotation>
683 - <xs:appinfo>
684 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="File" />
685 - <xse:deprecated ref="PerformanceCounter" />
686 - </xs:appinfo>
687 - <xs:documentation>Used to install Perfmon counters.</xs:documentation>
688 - </xs:annotation>
689 - <xs:complexType>
690 - <xs:attribute name="Name" type="xs:string" />
691 - </xs:complexType>
692 - </xs:element>
693 - <xs:element name="PerfCounterManifest">
694 - <xs:annotation>
695 - <xs:appinfo>
696 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="File" />
697 - </xs:appinfo>
698 - <xs:documentation>
699 - Used to install Perfmon Counter Manifests.
700 - Note that this functionality cannot be used with major upgrades that are scheduled after the InstallExecute,
701 - InstallExecuteAgain, or InstallFinalize actions. For more information on major upgrade scheduling, see
702 - <html:a href="http://msdn.microsoft.com/en-us/library/aa371197.aspx">RemoveExistingProducts Action</html:a>.
703 - </xs:documentation>
704 - </xs:annotation>
705 - <xs:complexType>
706 - <xs:attribute name="ResourceFileDirectory" type="xs:string" use="optional">
707 - <xs:annotation>
708 - <xs:documentation>The directory that holds the resource file of the providers in the perfmon counter manifest. Often the resource file path cannot be determined until setup time. Put the directory here and during perfmon manifest registrtion the path will be updated in the registry. If not specified, Perfmon will look for the resource file in the same directory of the perfmon counter manifest file.</xs:documentation>
709 - </xs:annotation>
710 - </xs:attribute>
711 - </xs:complexType>
712 - </xs:element>
713 - <xs:element name="EventManifest">
714 - <xs:annotation>
715 - <xs:appinfo>
716 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="File" />
717 - </xs:appinfo>
718 - <xs:documentation>Used to install Event Manifests.</xs:documentation>
719 - </xs:annotation>
720 - <xs:complexType>
721 - <xs:attribute name="MessageFile" type="xs:string" use="optional">
722 - <xs:annotation>
723 - <xs:documentation>The message file (including path) of all the providers in the event manifest. Often the message file path cannot be determined until setup time. Put your MessageFile here and the messageFileName attribute of the all the providers in the manifest will be updated with the path before it is registered. </xs:documentation>
724 - </xs:annotation>
725 - </xs:attribute>
726 - <xs:attribute name="ParameterFile" type="xs:string" use="optional">
727 - <xs:annotation>
728 - <xs:documentation>The parameter file (including path) of all the providers in the event manifest. Often the parameter file path cannot be determined until setup time. Put your ParameterFile here and the parameterFileName attribute of the all the providers in the manifest will be updated with the path before it is registered. </xs:documentation>
729 - </xs:annotation>
730 - </xs:attribute>
731 - <xs:attribute name="ResourceFile" type="xs:string" use="optional">
732 - <xs:annotation>
733 - <xs:documentation>The resource file (including path) of all the providers in the event manifest. Often the resource file path cannot be determined until setup time. Put your ResourceFile here and the resourceFileName attribute of the all the providers in the manifest will be updated with the path before it is registered. </xs:documentation>
734 - </xs:annotation>
735 - </xs:attribute>
736 - </xs:complexType>
737 - </xs:element>
738 - <xs:element name="PermissionEx">
739 - <xs:annotation>
740 - <xs:documentation>
741 - Sets ACLs on File, Registry, CreateFolder, or ServiceInstall. When under a Registry element, this cannot be used
742 - if the Action attribute's value is remove or removeKeyOnInstall. This element has no Id attribute.
743 - The table and key are taken from the parent element.
744 - </xs:documentation>
745 - <xs:appinfo>
746 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="CreateFolder" />
747 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="File" />
748 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Registry" />
749 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="RegistryKey" />
750 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="RegistryValue" />
751 - </xs:appinfo>
752 - </xs:annotation>
753 - <xs:complexType>
754 - <xs:attribute name="Domain" type="xs:string"></xs:attribute>
755 - <xs:attribute name="User" use="required" type="xs:string"></xs:attribute>
756 - <xs:attribute name="Inheritable" type="xs:YesNoType">
757 - <xs:annotation>
758 - <xs:documentation>Whether the permissions are inheritable. The default is "yes".</xs:documentation>
759 - </xs:annotation>
760 - </xs:attribute>
761 - <!-- Common ACLs -->
762 - <xs:attribute name="Read" type="YesNoType"></xs:attribute>
763 - <xs:attribute name="Delete" type="YesNoType"></xs:attribute>
764 - <xs:attribute name="ReadPermission" type="YesNoType"></xs:attribute>
765 - <xs:attribute name="ChangePermission" type="YesNoType"></xs:attribute>
766 - <xs:attribute name="TakeOwnership" type="YesNoType"></xs:attribute>
767 - <!-- Folder and File ACLs -->
768 - <xs:attribute name="ReadAttributes" type="YesNoType"></xs:attribute>
769 - <xs:attribute name="WriteAttributes" type="YesNoType"></xs:attribute>
770 - <xs:attribute name="ReadExtendedAttributes" type="YesNoType"></xs:attribute>
771 - <xs:attribute name="WriteExtendedAttributes" type="YesNoType"></xs:attribute>
772 - <xs:attribute name="Synchronize" type="YesNoType"></xs:attribute>
773 - <!-- Folder only ACLs -->
774 - <xs:attribute name="CreateFile" type="YesNoType">
775 - <xs:annotation>
776 - <xs:documentation>For a directory, the right to create a file in the directory. Only valid under a 'CreateFolder' parent.</xs:documentation>
777 - </xs:annotation>
778 - </xs:attribute>
779 - <xs:attribute name="CreateChild" type="YesNoType">
780 - <xs:annotation>
781 - <xs:documentation>For a directory, the right to create a subdirectory. Only valid under a 'CreateFolder' parent.</xs:documentation>
782 - </xs:annotation>
783 - </xs:attribute>
784 - <xs:attribute name="DeleteChild" type="YesNoType">
785 - <xs:annotation>
786 - <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>
787 - </xs:annotation>
788 - </xs:attribute>
789 - <xs:attribute name="Traverse" type="YesNoType">
790 - <xs:annotation>
791 - <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>
792 - </xs:annotation>
793 - </xs:attribute>
794 - <!-- File only ACLs -->
795 - <xs:attribute name="Append" type="YesNoType"></xs:attribute>
796 - <xs:attribute name="Execute" type="YesNoType"></xs:attribute>
797 - <!-- File and Registry ACLs -->
798 - <xs:attribute name="Write" type="YesNoType"></xs:attribute>
799 - <!-- Registry only ACLs -->
800 - <xs:attribute name="CreateSubkeys" type="YesNoType"></xs:attribute>
801 - <xs:attribute name="EnumerateSubkeys" type="YesNoType"></xs:attribute>
802 - <xs:attribute name="Notify" type="YesNoType"></xs:attribute>
803 - <xs:attribute name="CreateLink" type="YesNoType"></xs:attribute>
804 - <!-- Generic ACLs, mapped by system to appropriate permissions -->
805 - <xs:attribute name="GenericAll" type="YesNoType"></xs:attribute>
806 - <xs:attribute name="GenericExecute" type="YesNoType"></xs:attribute>
807 - <xs:attribute name="GenericWrite" type="YesNoType"></xs:attribute>
808 - <xs:attribute name="GenericRead" type="YesNoType">
809 - <xs:annotation>
810 - <xs:documentation>specifying this will fail to grant read access</xs:documentation>
811 - </xs:annotation>
812 - </xs:attribute>
813 - <!-- Service only ACLs -->
814 - <xs:attribute name="ServiceQueryConfig" type="YesNoType">
815 - <xs:annotation>
816 - <xs:documentation>Required to call the QueryServiceConfig and QueryServiceConfig2 functions to query the service configuration. Only valid under a 'ServiceInstall' parent.</xs:documentation>
817 - </xs:annotation>
818 - </xs:attribute>
819 - <xs:attribute name="ServiceChangeConfig" type="YesNoType">
820 - <xs:annotation>
821 - <xs:documentation>Required to call the ChangeServiceConfig or ChangeServiceConfig2 function to change the service configuration. Only valid under a 'ServiceInstall' parent.</xs:documentation>
822 - </xs:annotation>
823 - </xs:attribute>
824 - <xs:attribute name="ServiceQueryStatus" type="YesNoType">
825 - <xs:annotation>
826 - <xs:documentation>Required to call the QueryServiceStatus function to ask the service control manager about the status of the service. Only valid under a 'ServiceInstall' parent.</xs:documentation>
827 - </xs:annotation>
828 - </xs:attribute>
829 - <xs:attribute name="ServiceEnumerateDependents" type="YesNoType">
830 - <xs:annotation>
831 - <xs:documentation>Required to call the EnumDependentServices function to enumerate all the services dependent on the service. Only valid under a 'ServiceInstall' parent.</xs:documentation>
832 - </xs:annotation>
833 - </xs:attribute>
834 - <xs:attribute name="ServiceStart" type="YesNoType">
835 - <xs:annotation>
836 - <xs:documentation>Required to call the StartService function to start the service. Only valid under a 'ServiceInstall' parent.</xs:documentation>
837 - </xs:annotation>
838 - </xs:attribute>
839 - <xs:attribute name="ServiceStop" type="YesNoType">
840 - <xs:annotation>
841 - <xs:documentation>Required to call the ControlService function to stop the service. Only valid under a 'ServiceInstall' parent.</xs:documentation>
842 - </xs:annotation>
843 - </xs:attribute>
844 - <xs:attribute name="ServicePauseContinue" type="YesNoType">
845 - <xs:annotation>
846 - <xs:documentation>Required to call the ControlService function to pause or continue the service. Only valid under a 'ServiceInstall' parent.</xs:documentation>
847 - </xs:annotation>
848 - </xs:attribute>
849 - <xs:attribute name="ServiceInterrogate" type="YesNoType">
850 - <xs:annotation>
851 - <xs:documentation>Required to call the ControlService function to ask the service to report its status immediately. Only valid under a 'ServiceInstall' parent.</xs:documentation>
852 - </xs:annotation>
853 - </xs:attribute>
854 - <xs:attribute name="ServiceUserDefinedControl" type="YesNoType">
855 - <xs:annotation>
856 - <xs:documentation>Required to call the ControlService function to specify a user-defined control code. Only valid under a 'ServiceInstall' parent.</xs:documentation>
857 - </xs:annotation>
858 - </xs:attribute>
859 - </xs:complexType>
860 - </xs:element>
861 - <xs:element name="ProductSearch">
862 - <xs:annotation>
863 - <xs:documentation>Describes a product search.</xs:documentation>
864 - <xs:appinfo>
865 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
866 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
867 - </xs:appinfo>
868 - </xs:annotation>
869 - <xs:complexType>
870 - <xs:attributeGroup ref="SearchCommonAttributes" />
871 - <xs:attribute name="Guid" type="xs:string">
872 - <xs:annotation>
873 - <xs:documentation>The Guid attribute has been deprecated; use the ProductCode or UpgradeCode attribute instead. If this attribute is used, it is assumed to be a ProductCode.</xs:documentation>
874 - </xs:annotation>
875 - </xs:attribute>
876 - <xs:attribute name="ProductCode" type="xs:string">
877 - <xs:annotation>
878 - <xs:documentation>The ProductCode to use for the search. This attribute must be omitted if UpgradeCode is specified.</xs:documentation>
879 - </xs:annotation>
880 - </xs:attribute>
881 - <xs:attribute name="UpgradeCode" type="xs:string">
882 - <xs:annotation>
883 - <xs:documentation>The UpgradeCode to use for the search. This attribute must be omitted if ProductCode is specified. Note that if multiple products are found, the highest versioned product will be used for the result.</xs:documentation>
884 - </xs:annotation>
885 - </xs:attribute>
886 - <xs:attribute name="Result">
887 - <xs:annotation>
888 - <xs:documentation>
889 - Rather than saving the product version into the variable, a ProductSearch can save another attribute of the matching product instead.
890 - </xs:documentation>
891 - </xs:annotation>
892 - <xs:simpleType>
893 - <xs:restriction base="xs:NMTOKEN">
894 - <xs:enumeration value="version">
895 - <xs:annotation>
896 - <xs:documentation>Saves the version of a matching product if found; 0.0.0.0 otherwise. This is the default.</xs:documentation>
897 - </xs:annotation>
898 - </xs:enumeration>
899 - <xs:enumeration value="language">
900 - <xs:annotation>
901 - <xs:documentation>Saves the language of a matching product if found; empty otherwise.</xs:documentation>
902 - </xs:annotation>
903 - </xs:enumeration>
904 - <xs:enumeration value="state">
905 - <xs:annotation>
906 - <xs:documentation>Saves the state of the product: advertised (1), absent (2), or locally installed (5).</xs:documentation>
907 - </xs:annotation>
908 - </xs:enumeration>
909 - <xs:enumeration value="assignment">
910 - <xs:annotation>
911 - <xs:documentation>Saves the assignment type of the product: per-user (0), or per-machine (1).</xs:documentation>
912 - </xs:annotation>
913 - </xs:enumeration>
914 - </xs:restriction>
915 - </xs:simpleType>
916 - </xs:attribute>
917 - </xs:complexType>
918 - </xs:element>
919 - <xs:element name="ProductSearchRef">
920 - <xs:annotation>
921 - <xs:documentation>References a ProductSearch.</xs:documentation>
922 - <xs:appinfo>
923 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
924 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
925 - </xs:appinfo>
926 - </xs:annotation>
927 - <xs:complexType>
928 - <xs:attribute name="Id" type="xs:string" use="required" />
929 - </xs:complexType>
930 - </xs:element>
931 - <xs:element name="RemoveFolderEx">
932 - <xs:annotation>
933 - <xs:appinfo>
934 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
935 - <xse:msiRef table="RemoveFile" href="http://msdn.microsoft.com/library/aa371201.aspx"/>
936 - <xse:remarks>
937 - <html:p>The custom action that implements RemoveFolderEx does so by writing temporary rows to the RemoveFile table
938 - for each subfolder of the root folder you specify. Because it might dramatically affect Windows Installer's
939 - <html:a href="http://msdn.microsoft.com/en-us/library/aa368593.aspx">File Costing</html:a>,
940 - the temporary rows must be written before the CostInitialize standard action. Unfortunately, MSI doesn't
941 - create properties for the Directory hierarchy in your package until later, in the CostFinalize action.</html:p>
942 - <html:p>An easy workaround for a typical use case of removing a folder during uninstall is to write the directory
943 - path to the registry and to load it during uninstall. See
944 - <html:a href="http://robmensching.com/blog/posts/2010/5/2/the-wix-toolsets-remember-property-pattern">The WiX toolset's "Remember Property" pattern</html:a>
945 - for an example.</html:p>
946 - <html:p>If you use custom actions to set properties, ensure that they are scheduled before the WixRemoveFoldersEx custom action.</html:p>
947 - </xse:remarks>
948 - </xs:appinfo>
949 - <xs:documentation>
950 - Remove a folder and all contained files and folders if the parent component is selected for installation or removal.
951 - The folder must be specified in the Property attribute as the name of a property that will have a value that resolves
952 - to the full path of the folder before the CostInitialize action. Note that Directory ids cannot be used.
953 - For more details, see the Remarks.
954 - </xs:documentation>
955 - </xs:annotation>
956 - <xs:complexType>
957 - <xs:attribute name="Id" type="xs:string">
958 - <xs:annotation>
959 - <xs:documentation>Primary key used to identify this particular entry. If this is not specified, a stable identifier
960 - will be generated at compile time based on the other attributes.</xs:documentation>
961 - </xs:annotation>
962 - </xs:attribute>
963 - <xs:attribute name="Property" type="xs:string">
964 - <xs:annotation>
965 - <xs:documentation>
966 - The id of a property that resolves to the full path of the source directory. The property does not have
967 - to exist in the installer database at creation time; it could be created at installation time by a custom
968 - action, on the command line, etc. The property value can contain environment variables surrounded by
969 - percent signs such as from a REG_EXPAND_SZ registry value; environment variables will be expanded before
970 - being evaluated for a full path.
971 - </xs:documentation>
972 - </xs:annotation>
973 - </xs:attribute>
974 - <xs:attribute name="On">
975 - <xs:annotation>
976 - <xs:documentation>
977 - This value determines when the folder may be removed.
978 - </xs:documentation>
979 - </xs:annotation>
980 - <xs:simpleType>
981 - <xs:restriction base="xs:NMTOKEN">
982 - <xs:enumeration value="install">
983 - <xs:annotation>
984 - <xs:documentation>
985 - Removes the folder only when the parent component is being installed (msiInstallStateLocal or msiInstallStateSource).
986 - </xs:documentation>
987 - </xs:annotation>
988 - </xs:enumeration>
989 - <xs:enumeration value="uninstall">
990 - <xs:annotation>
991 - <xs:documentation>
992 - Default: Removes the folder only when the parent component is being removed (msiInstallStateAbsent).
993 - </xs:documentation>
994 - </xs:annotation>
995 - </xs:enumeration>
996 - <xs:enumeration value="both">
997 - <xs:annotation>
998 - <xs:documentation>
999 - Removes the folder when the parent component is being installed or removed.
1000 - </xs:documentation>
1001 - </xs:annotation>
1002 - </xs:enumeration>
1003 - </xs:restriction>
1004 - </xs:simpleType>
1005 - </xs:attribute>
1006 - </xs:complexType>
1007 - </xs:element>
1008 - <xs:element name="RestartResource">
1009 - <xs:annotation>
1010 - <xs:documentation>Registers a resource with the Restart Manager.</xs:documentation>
1011 - <xs:appinfo>
1012 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
1013 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1014 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
1015 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Product" />
1016 - </xs:appinfo>
1017 - </xs:annotation>
1018 - <xs:complexType>
1019 - <xs:attribute name="Id" type="xs:string">
1020 - <xs:annotation>
1021 - <xs:documentation>The unique identifier for this resource. A unique identifier will
1022 - be generated automatically if not specified.</xs:documentation>
1023 - </xs:annotation>
1024 - </xs:attribute>
1025 - <xs:attribute name="Path" type="xs:string">
1026 - <xs:annotation>
1027 - <xs:documentation>The full path to the process module to register with the Restart Manager.
1028 - This can be a formatted value that resolves to a full path.</xs:documentation>
1029 - </xs:annotation>
1030 - </xs:attribute>
1031 - <xs:attribute name="ProcessName" type="xs:string">
1032 - <xs:annotation>
1033 - <xs:documentation>The name of a process to register with the Restart Manager.
1034 - This can be a formatted value that resolves to a process name.</xs:documentation>
1035 - </xs:annotation>
1036 - </xs:attribute>
1037 - <xs:attribute name="ServiceName" type="xs:string">
1038 - <xs:annotation>
1039 - <xs:documentation>The name of a Windows service to register with the Restart Manager.
1040 - This can be a formatted value that resolves to a service name.</xs:documentation>
1041 - </xs:annotation>
1042 - </xs:attribute>
1043 - </xs:complexType>
1044 - </xs:element>
1045 - <xs:element name="RegistrySearch">
1046 - <xs:annotation>
1047 - <xs:documentation>Describes a registry search.</xs:documentation>
1048 - <xs:appinfo>
1049 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
1050 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1051 - </xs:appinfo>
1052 - </xs:annotation>
1053 - <xs:complexType>
1054 - <xs:attributeGroup ref="SearchCommonAttributes" />
1055 - <xs:attribute name="Root" use="required">
1056 - <xs:annotation>
1057 - <xs:documentation>Registry root hive to search under.</xs:documentation>
1058 - </xs:annotation>
1059 - <xs:simpleType>
1060 - <xs:restriction base="xs:NMTOKEN">
1061 - <xs:enumeration value="HKLM">
1062 - <xs:annotation>
1063 - <xs:documentation>HKEY_LOCAL_MACHINE</xs:documentation>
1064 - </xs:annotation>
1065 - </xs:enumeration>
1066 - <xs:enumeration value="HKCU">
1067 - <xs:annotation>
1068 - <xs:documentation>HKEY_CURRENT_USER</xs:documentation>
1069 - </xs:annotation>
1070 - </xs:enumeration>
1071 - <xs:enumeration value="HKCR">
1072 - <xs:annotation>
1073 - <xs:documentation>HKEY_CLASSES_ROOT</xs:documentation>
1074 - </xs:annotation>
1075 - </xs:enumeration>
1076 - <xs:enumeration value="HKU">
1077 - <xs:annotation>
1078 - <xs:documentation>HKEY_USERS</xs:documentation>
1079 - </xs:annotation>
1080 - </xs:enumeration>
1081 - </xs:restriction>
1082 - </xs:simpleType>
1083 - </xs:attribute>
1084 - <xs:attribute name="Key" type="xs:string" use="required">
1085 - <xs:annotation>
1086 - <xs:documentation>Key to search for.</xs:documentation>
1087 - </xs:annotation>
1088 - </xs:attribute>
1089 - <xs:attribute name="Value" type="xs:string">
1090 - <xs:annotation>
1091 - <xs:documentation>Optional value to search for under the given Key.</xs:documentation>
1092 - </xs:annotation>
1093 - </xs:attribute>
1094 - <xs:attribute name="Format">
1095 - <xs:annotation>
1096 - <xs:documentation>What format to return the value in.</xs:documentation>
1097 - </xs:annotation>
1098 - <xs:simpleType>
1099 - <xs:restriction base="xs:NMTOKEN">
1100 - <xs:enumeration value="raw">
1101 - <xs:annotation>
1102 - <xs:documentation>Returns the unformatted value directly from the registry. For example, a REG_DWORD value of '1' is returned as '1', not '#1'.</xs:documentation>
1103 - </xs:annotation>
1104 - </xs:enumeration>
1105 - <xs:enumeration value="compatible">
1106 - <xs:annotation>
1107 - <xs:documentation>Returns the value formatted as Windows Installer would. For example, a REG_DWORD value of '1' is returned as '#1', not '1'.</xs:documentation>
1108 - </xs:annotation>
1109 - </xs:enumeration>
1110 - </xs:restriction>
1111 - </xs:simpleType>
1112 - </xs:attribute>
1113 - <xs:attribute name="ExpandEnvironmentVariables" type="YesNoType">
1114 - <xs:annotation>
1115 - <xs:documentation>Whether to expand any environment variables in REG_SZ, REG_EXPAND_SZ, or REG_MULTI_SZ values.</xs:documentation>
1116 - </xs:annotation>
1117 - </xs:attribute>
1118 - <xs:attribute name="Result">
1119 - <xs:annotation>
1120 - <xs:documentation>
1121 - Rather than saving the matching registry value into the variable, a RegistrySearch can save an attribute of the matching entry instead.
1122 - </xs:documentation>
1123 - </xs:annotation>
1124 - <xs:simpleType>
1125 - <xs:restriction base="xs:NMTOKEN">
1126 - <xs:enumeration value="exists">
1127 - <xs:annotation>
1128 - <xs:documentation>Saves true if a matching registry entry is found; false otherwise.</xs:documentation>
1129 - </xs:annotation>
1130 - </xs:enumeration>
1131 - <xs:enumeration value="value">
1132 - <xs:annotation>
1133 - <xs:documentation>Saves the value of the registry key in the variable. This is the default.</xs:documentation>
1134 - </xs:annotation>
1135 - </xs:enumeration>
1136 - </xs:restriction>
1137 - </xs:simpleType>
1138 - </xs:attribute>
1139 - <xs:attribute name="Win64" type="YesNoType">
1140 - <xs:annotation>
1141 - <xs:documentation>Instructs the search to look in the 64-bit registry when the value is 'yes'. When the value is 'no', the search looks in the 32-bit registry. The default value is 'no'.</xs:documentation>
1142 - </xs:annotation>
1143 - </xs:attribute>
1144 - </xs:complexType>
1145 - </xs:element>
1146 - <xs:element name="RegistrySearchRef">
1147 - <xs:annotation>
1148 - <xs:documentation>References a RegistrySearch.</xs:documentation>
1149 - <xs:appinfo>
1150 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
1151 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1152 - </xs:appinfo>
1153 - </xs:annotation>
1154 - <xs:complexType>
1155 - <xs:attribute name="Id" type="xs:string" use="required" />
1156 - </xs:complexType>
1157 - </xs:element>
1158 - <xs:element name="ServiceConfig">
1159 - <xs:annotation>
1160 - <xs:documentation>Service configuration information for failure actions.</xs:documentation>
1161 - <xs:appinfo>
1162 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
1163 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="ServiceInstall" />
1164 - <xse:remarks>
1165 - <html:dl>
1166 - <html:dd>Nesting a ServiceConfig element under a ServiceInstall element will result in the service being installed to be configured.</html:dd>
1167 - <html:dd>Nesting a ServiceConfig element under a component element will result in an already installed service to be configured. If the service does not exist prior to the install of the MSI package, the install will fail.</html:dd>
1168 - </html:dl>
1169 - </xse:remarks>
1170 - </xs:appinfo>
1171 - </xs:annotation>
1172 - <xs:complexType>
1173 - <xs:attribute name="ServiceName" type="xs:string">
1174 - <xs:annotation>
1175 - <xs:documentation>Required if not under a ServiceInstall element.</xs:documentation>
1176 - </xs:annotation>
1177 - </xs:attribute>
1178 - <xs:attribute name="FirstFailureActionType" use="required">
1179 - <xs:annotation>
1180 - <xs:documentation>Action to take on the first failure of the service.</xs:documentation>
1181 - </xs:annotation>
1182 - <xs:simpleType>
1183 - <xs:restriction base="xs:NMTOKEN">
1184 - <xs:enumeration value="none" />
1185 - <xs:enumeration value="reboot" />
1186 - <xs:enumeration value="restart" />
1187 - <xs:enumeration value="runCommand" />
1188 - </xs:restriction>
1189 - </xs:simpleType>
1190 - </xs:attribute>
1191 - <xs:attribute name="SecondFailureActionType" use="required">
1192 - <xs:annotation>
1193 - <xs:documentation>Action to take on the second failure of the service.</xs:documentation>
1194 - </xs:annotation>
1195 - <xs:simpleType>
1196 - <xs:restriction base="xs:NMTOKEN">
1197 - <xs:enumeration value="none" />
1198 - <xs:enumeration value="reboot" />
1199 - <xs:enumeration value="restart" />
1200 - <xs:enumeration value="runCommand" />
1201 - </xs:restriction>
1202 - </xs:simpleType>
1203 - </xs:attribute>
1204 - <xs:attribute name="ThirdFailureActionType" use="required">
1205 - <xs:annotation>
1206 - <xs:documentation>Action to take on the third failure of the service.</xs:documentation>
1207 - </xs:annotation>
1208 - <xs:simpleType>
1209 - <xs:restriction base="xs:NMTOKEN">
1210 - <xs:enumeration value="none" />
1211 - <xs:enumeration value="reboot" />
1212 - <xs:enumeration value="restart" />
1213 - <xs:enumeration value="runCommand" />
1214 - </xs:restriction>
1215 - </xs:simpleType>
1216 - </xs:attribute>
1217 - <xs:attribute name="ResetPeriodInDays" type="xs:integer">
1218 - <xs:annotation>
1219 - <xs:documentation>Number of days after which to reset the failure count to zero if there are no failures.</xs:documentation>
1220 - </xs:annotation>
1221 - </xs:attribute>
1222 - <xs:attribute name="RestartServiceDelayInSeconds" type="xs:integer">
1223 - <xs:annotation>
1224 - <xs:documentation>If any of the three *ActionType attributes is "restart", this specifies the number of seconds to wait before doing so.</xs:documentation>
1225 - </xs:annotation>
1226 - </xs:attribute>
1227 - <xs:attribute name="ProgramCommandLine" type="xs:string">
1228 - <xs:annotation>
1229 - <xs:documentation>If any of the three *ActionType attributes is "runCommand", this specifies the command to run when doing so. This value is formatted.</xs:documentation>
1230 - </xs:annotation>
1231 - </xs:attribute>
1232 - <xs:attribute name="RebootMessage" type="xs:string">
1233 - <xs:annotation>
1234 - <xs:documentation>If any of the three *ActionType attributes is "reboot", this specifies the message to broadcast to server users before doing so.</xs:documentation>
1235 - </xs:annotation>
1236 - </xs:attribute>
1237 - </xs:complexType>
1238 - </xs:element>
1239 - <xs:element name="TouchFile">
1240 - <xs:annotation>
1241 - <xs:documentation>Updates the last modified date/time of a file.</xs:documentation>
1242 - <xs:appinfo>
1243 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
1244 - </xs:appinfo>
1245 - </xs:annotation>
1246 - <xs:complexType>
1247 - <xs:attribute name="Id" type="xs:string">
1248 - <xs:annotation>
1249 - <xs:documentation>Identifier for the touch file operation. If the identifier is not specified it will be generated.</xs:documentation>
1250 - </xs:annotation>
1251 - </xs:attribute>
1252 - <xs:attribute name="Path" use="required" type="xs:string">
1253 - <xs:annotation>
1254 - <xs:documentation>Path of the file to update. This value is formatted.</xs:documentation>
1255 - </xs:annotation>
1256 - </xs:attribute>
1257 - <xs:attribute name="OnInstall" type="YesNoType">
1258 - <xs:annotation>
1259 - <xs:documentation>Specifies whether or not the modified time of the file should be updated on install. If the OnInstall, OnReinstall and OnUninstall attributes are all absent the default is 'yes'.</xs:documentation>
1260 - </xs:annotation>
1261 - </xs:attribute>
1262 - <xs:attribute name="OnReinstall" type="YesNoType">
1263 - <xs:annotation>
1264 - <xs:documentation>Specifies whether or not the modified time of the file should be updated on reinstall. If the OnInstall, OnReinstall and OnUninstall attributes are all absent the default is 'yes'.</xs:documentation>
1265 - </xs:annotation>
1266 - </xs:attribute>
1267 - <xs:attribute name="OnUninstall" type="YesNoType">
1268 - <xs:annotation>
1269 - <xs:documentation>Specifies whether or not the modified time of the file should be updated on uninstall. If the OnInstall, OnReinstall and OnUninstall attributes are all absent the default is 'no'.</xs:documentation>
1270 - </xs:annotation>
1271 - </xs:attribute>
1272 - <xs:attribute name="Nonvital" type="YesNoType">
1273 - <xs:annotation>
1274 - <xs:documentation>Indicates the installation will succeed even if the modified time of the file cannot be updated. The default is 'no'.</xs:documentation>
1275 - </xs:annotation>
1276 - </xs:attribute>
1277 - </xs:complexType>
1278 - </xs:element>
1279 - <xs:element name="User">
1280 - <xs:annotation>
1281 - <xs:documentation>User for all kinds of things. When it is not nested under a component it is included in the MSI so it can be referenced by other elements such as the User attribute in the AppPool element. When it is nested under a Component element, the User will be created on install and can also be used for reference.</xs:documentation>
1282 - <xs:appinfo>
1283 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
1284 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1285 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
1286 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Product" />
1287 - <xse:seeAlso ref="Group" />
1288 - <xse:seeAlso ref="GroupRef" />
1289 - </xs:appinfo>
1290 - </xs:annotation>
1291 - <xs:complexType>
1292 - <xs:sequence>
1293 - <xs:element ref="GroupRef" minOccurs="0" maxOccurs="unbounded" />
1294 - </xs:sequence>
1295 - <xs:attribute name="Id" type="xs:string" use="required" />
1296 - <xs:attribute name="Name" use="required" type="xs:string">
1297 - <xs:annotation>
1298 - <xs:documentation>A <a href="http://msdn.microsoft.com/library/aa368609.aspx" target="_blank">Formatted</a> string that contains the name of the user account.</xs:documentation>
1299 - </xs:annotation>
1300 - </xs:attribute>
1301 - <xs:attribute name="Domain" type="xs:string">
1302 - <xs:annotation>
1303 - <xs:documentation>A <a href="http://msdn.microsoft.com/library/aa368609.aspx" target="_blank">Formatted</a> string that contains the local machine or Active Directory domain for the user.</xs:documentation>
1304 - </xs:annotation>
1305 - </xs:attribute>
1306 - <xs:attribute name="Password" type="xs:string">
1307 - <xs:annotation>
1308 - <xs:documentation>Usually a Property that is passed in on the command-line to keep it more secure.</xs:documentation>
1309 - </xs:annotation>
1310 - </xs:attribute>
1311 - <xs:attribute name="PasswordNeverExpires" type="YesNoType">
1312 - <xs:annotation>
1313 - <xs:documentation>The account's password never expires. Equivalent to UF_DONT_EXPIRE_PASSWD.</xs:documentation>
1314 - </xs:annotation>
1315 - </xs:attribute>
1316 - <xs:attribute name="CanNotChangePassword" type="YesNoType">
1317 - <xs:annotation>
1318 - <xs:documentation>The user cannot change the account's password. Equivalent to UF_PASSWD_CANT_CHANGE.</xs:documentation>
1319 - </xs:annotation>
1320 - </xs:attribute>
1321 - <xs:attribute name="RemoveOnUninstall" type="YesNoType">
1322 - <xs:annotation>
1323 - <xs:documentation>Indicates whether the user account should be removed or left behind on uninstall.</xs:documentation>
1324 - </xs:annotation>
1325 - </xs:attribute>
1326 - <xs:attribute name="FailIfExists" type="YesNoType">
1327 - <xs:annotation>
1328 - <xs:documentation>Indicates if the install should fail if the user already exists.</xs:documentation>
1329 - </xs:annotation>
1330 - </xs:attribute>
1331 - <xs:attribute name="LogonAsService" type="YesNoType">
1332 - <xs:annotation>
1333 - <xs:documentation>Indicates whether or not the user can logon as a serivce. User creation can be skipped if all that is desired is to set this access right on the user.</xs:documentation>
1334 - </xs:annotation>
1335 - </xs:attribute>
1336 - <xs:attribute name="LogonAsBatchJob" type="YesNoType">
1337 - <xs:annotation>
1338 - <xs:documentation>Indicates whether or not the user can logon as a batch job. User creation can be skipped if all that is desired is to set this access right on the user.</xs:documentation>
1339 - </xs:annotation>
1340 - </xs:attribute>
1341 - <xs:attribute name="UpdateIfExists" type="YesNoType">
1342 - <xs:annotation>
1343 - <xs:documentation>Indicates if the user account properties should be updated if the user already exists.</xs:documentation>
1344 - </xs:annotation>
1345 - </xs:attribute>
1346 - <xs:attribute name="PasswordExpired" type="YesNoType">
1347 - <xs:annotation>
1348 - <xs:documentation>Indicates whether the user must change their password on their first login.</xs:documentation>
1349 - </xs:annotation>
1350 - </xs:attribute>
1351 - <xs:attribute name="Disabled" type="YesNoType">
1352 - <xs:annotation>
1353 - <xs:documentation>The account is disabled. Equivalent to UF_ACCOUNTDISABLE.</xs:documentation>
1354 - </xs:annotation>
1355 - </xs:attribute>
1356 - <xs:attribute name="CreateUser" type="YesNoType">
1357 - <xs:annotation>
1358 - <xs:documentation>Indicates whether or not to create the user. User creation can be skipped if all that is desired is to join a user to groups.</xs:documentation>
1359 - </xs:annotation>
1360 - </xs:attribute>
1361 - <xs:attribute name="Vital" type="YesNoType" default="yes">
1362 - <xs:annotation>
1363 - <xs:documentation>Indicates whether failure to create the user or add the user to a group fails the installation. The default value is "yes".</xs:documentation>
1364 - </xs:annotation>
1365 - </xs:attribute>
1366 - </xs:complexType>
1367 - </xs:element>
1368 - <xs:element name="WindowsFeatureSearch">
1369 - <xs:annotation>
1370 - <xs:documentation>Detects the existence of a Windows feature.</xs:documentation>
1371 - <xs:appinfo>
1372 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
1373 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1374 - </xs:appinfo>
1375 - </xs:annotation>
1376 - <xs:complexType>
1377 - <xs:attributeGroup ref="SearchCommonAttributes" />
1378 - <xs:attribute name="Feature" use="required">
1379 - <xs:annotation>
1380 - <xs:documentation>The feature to detect.</xs:documentation>
1381 - </xs:annotation>
1382 - <xs:simpleType>
1383 - <xs:restriction base="xs:NMTOKEN">
1384 - <xs:enumeration value="sha2CodeSigning">
1385 - <xs:annotation>
1386 - <xs:documentation>The oldest OS with this feature is Win7 SP1 with KB3033929.</xs:documentation>
1387 - </xs:annotation>
1388 - </xs:enumeration>
1389 - </xs:restriction>
1390 - </xs:simpleType>
1391 - </xs:attribute>
1392 - </xs:complexType>
1393 - </xs:element>
1394 - <xs:element name="WindowsFeatureSearchRef">
1395 - <xs:annotation>
1396 - <xs:documentation>References a WindowsFeatureSearch.</xs:documentation>
1397 - <xs:appinfo>
1398 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" />
1399 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1400 - </xs:appinfo>
1401 - </xs:annotation>
1402 - <xs:complexType>
1403 - <xs:attribute name="Id" type="xs:string" use="required" />
1404 - </xs:complexType>
1405 - </xs:element>
1406 - <xs:element name="XmlFile">
1407 - <xs:annotation>
1408 - <xs:documentation>
1409 - Adds or removes .xml file entries. If you use the XmlFile element you must reference WixUtilExtension.dll as it contains the XmlFile custom actions.
1410 - </xs:documentation>
1411 - <xs:appinfo>
1412 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
1413 - </xs:appinfo>
1414 - </xs:annotation>
1415 - <xs:complexType>
1416 - <xs:attribute name="Id" use="required" type="xs:string">
1417 - <xs:annotation>
1418 - <xs:documentation>Identifier for xml file modification.</xs:documentation>
1419 - </xs:annotation>
1420 - </xs:attribute>
1421 - <xs:attribute name="ElementPath" use="required" type="xs:string">
1422 - <xs:annotation>
1423 - <xs:documentation>The XPath of the element to be modified. Note that this is a formatted field and therefore, square brackets in the XPath must be escaped. In addition, XPaths allow backslashes to be used to escape characters, so if you intend to include literal backslashes, you must escape them as well by doubling them in this attribute. The string is formatted by MSI first, and the result is consumed as the XPath.</xs:documentation>
1424 - </xs:annotation>
1425 - </xs:attribute>
1426 - <xs:attribute name="File" use="required" type="xs:string">
1427 - <xs:annotation>
1428 - <xs:documentation>Path of the .xml file to configure.</xs:documentation>
1429 - </xs:annotation>
1430 - </xs:attribute>
1431 - <xs:attribute name="Name" type="xs:string">
1432 - <xs:annotation>
1433 - <xs:documentation>Name of XML node to set/add to the specified element. Not setting this attribute causes the element's text value to be set. Otherwise this specified the attribute name that is set.</xs:documentation>
1434 - </xs:annotation>
1435 - </xs:attribute>
1436 - <xs:attribute name="Value" type="xs:string">
1437 - <xs:annotation>
1438 - <xs:documentation>
1439 - The value to be written. See the <html:a href="http://msdn.microsoft.com/library/aa368609(VS.85).aspx" target="_blank">Formatted topic</html:a> for information how to escape square brackets in the value.
1440 - </xs:documentation>
1441 - </xs:annotation>
1442 - </xs:attribute>
1443 - <xs:attribute name="Action" use="required">
1444 - <xs:annotation>
1445 - <xs:documentation>The type of modification to be made to the XML file when the component is installed.</xs:documentation>
1446 - </xs:annotation>
1447 - <xs:simpleType>
1448 - <xs:restriction base="xs:NMTOKEN">
1449 - <xs:enumeration value="createElement">
1450 - <xs:annotation>
1451 - <xs:documentation>Creates a new element under the element specified in ElementPath. The Name attribute is required in this case and specifies the name of the new element. The Value attribute is not necessary when createElement is specified as the action. If the Value attribute is set, it will cause the new element's text value to be set.</xs:documentation>
1452 - </xs:annotation>
1453 - </xs:enumeration>
1454 - <xs:enumeration value="deleteValue">
1455 - <xs:annotation>
1456 - <xs:documentation>Deletes a value from the element specified in the ElementPath. If Name is specified, the attribute with that name is deleted. If Name is not specified, the text value of the element specified in the ElementPath is deleted. The Value attribute is ignored if deleteValue is the action specified.</xs:documentation>
1457 - </xs:annotation>
1458 - </xs:enumeration>
1459 - <xs:enumeration value="setValue">
1460 - <xs:annotation>
1461 - <xs:documentation>Sets a value in the element specified in the ElementPath. If Name is specified, and attribute with that name is set to the value specified in Value. If Name is not specified, the text value of the element is set. Value is a required attribute if setValue is the action specified.</xs:documentation>
1462 - </xs:annotation>
1463 - </xs:enumeration>
1464 - <xs:enumeration value="bulkSetValue">
1465 - <xs:annotation>
1466 - <xs:documentation>Sets all the values in the elements that match the ElementPath. If Name is specified, attributes with that name are set to the same value specified in Value. If Name is not specified, the text values of the elements are set. Value is a required attribute if setBulkValue is the action specified.</xs:documentation>
1467 - </xs:annotation>
1468 - </xs:enumeration>
1469 - </xs:restriction>
1470 - </xs:simpleType>
1471 - </xs:attribute>
1472 - <xs:attribute name="Permanent" type="YesNoType">
1473 - <xs:annotation>
1474 - <xs:documentation>Specifies whether or not the modification should be removed on uninstall. This has no effect on uninstall if the action was deleteValue.</xs:documentation>
1475 - </xs:annotation>
1476 - </xs:attribute>
1477 - <xs:attribute name="PreserveModifiedDate" type="YesNoType">
1478 - <xs:annotation>
1479 - <xs:documentation>Specifies wheter or not the modification should preserve the modified date. Preserving the modified date will allow the file to be patched if no other modifications have been made.</xs:documentation>
1480 - </xs:annotation>
1481 - </xs:attribute>
1482 - <xs:attribute name="Sequence" use="optional" type="xs:integer">
1483 - <xs:annotation>
1484 - <xs:documentation>Specifies the order in which the modification is to be attempted on the XML file. It is important to ensure that new elements are created before you attempt to add an attribute to them.</xs:documentation>
1485 - </xs:annotation>
1486 - </xs:attribute>
1487 - <xs:attribute name="SelectionLanguage">
1488 - <xs:annotation>
1489 - <xs:documentation>
1490 - Specify whether the DOM object should use XPath language or the old XSLPattern language (default) as the query language.
1491 - </xs:documentation>
1492 - </xs:annotation>
1493 - <xs:simpleType>
1494 - <xs:restriction base="xs:NMTOKEN">
1495 - <xs:enumeration value="XPath" />
1496 - <xs:enumeration value="XSLPattern" />
1497 - </xs:restriction>
1498 - </xs:simpleType>
1499 - </xs:attribute>
1500 - </xs:complexType>
1501 - </xs:element>
1502 - <xs:element name="XmlConfig">
1503 - <xs:annotation>
1504 - <xs:documentation>
1505 - Adds or removes .xml file entries. If you use the XmlConfig element you must reference WixUtilExtension.dll as it contains the XmlConfig custom actions.
1506 - </xs:documentation>
1507 - <xs:appinfo>
1508 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Component" />
1509 - </xs:appinfo>
1510 - </xs:annotation>
1511 - <xs:complexType>
1512 - <xs:sequence>
1513 - <xs:element ref="XmlConfig" minOccurs="0" maxOccurs="unbounded" />
1514 - </xs:sequence>
1515 - <xs:attribute name="Id" use="required" type="xs:string">
1516 - <xs:annotation>
1517 - <xs:documentation>Identifier for xml file modification.</xs:documentation>
1518 - </xs:annotation>
1519 - </xs:attribute>
1520 - <xs:attribute name="Action">
1521 - <xs:simpleType>
1522 - <xs:restriction base="xs:NMTOKEN">
1523 - <xs:enumeration value="create" />
1524 - <xs:enumeration value="delete" />
1525 - </xs:restriction>
1526 - </xs:simpleType>
1527 - </xs:attribute>
1528 - <xs:attribute name="ElementId" type="xs:string">
1529 - <xs:annotation>
1530 - <xs:documentation>The Id of another XmlConfig to add attributes to. In this case, the 'ElementPath', 'Action', 'Node', and 'On' attributes must be omitted.</xs:documentation>
1531 - </xs:annotation>
1532 - </xs:attribute>
1533 - <xs:attribute name="ElementPath" type="xs:string">
1534 - <xs:annotation>
1535 - <xs:documentation>The XPath of the parent element being modified. Note that this is a formatted field and therefore, square brackets in the XPath must be escaped. In addition, XPaths allow backslashes to be used to escape characters, so if you intend to include literal backslashes, you must escape them as well by doubling them in this attribute. The string is formatted by MSI first, and the result is consumed as the XPath.</xs:documentation>
1536 - </xs:annotation>
1537 - </xs:attribute>
1538 - <xs:attribute name="File" use="required" type="xs:string">
1539 - <xs:annotation>
1540 - <xs:documentation>Path of the .xml file to configure.</xs:documentation>
1541 - </xs:annotation>
1542 - </xs:attribute>
1543 - <xs:attribute name="Name" type="xs:string">
1544 - <xs:annotation>
1545 - <xs:documentation>Name of XML node to set/add to the specified element. Not setting this attribute causes the element's text value to be set. Otherwise this specified the attribute name that is set.</xs:documentation>
1546 - </xs:annotation>
1547 - </xs:attribute>
1548 - <xs:attribute name="Node">
1549 - <xs:simpleType>
1550 - <xs:restriction base="xs:NMTOKEN">
1551 - <xs:enumeration value="element" />
1552 - <xs:enumeration value="value" />
1553 - <xs:enumeration value="document" />
1554 - </xs:restriction>
1555 - </xs:simpleType>
1556 - </xs:attribute>
1557 - <xs:attribute name="On">
1558 - <xs:simpleType>
1559 - <xs:restriction base="xs:NMTOKEN">
1560 - <xs:enumeration value="install" />
1561 - <xs:enumeration value="uninstall" />
1562 - </xs:restriction>
1563 - </xs:simpleType>
1564 - </xs:attribute>
1565 - <xs:attribute name="PreserveModifiedDate" type="YesNoType">
1566 - <xs:annotation>
1567 - <xs:documentation>Specifies wheter or not the modification should preserve the modified date. Preserving the modified date will allow the file to be patched if no other modifications have been made.</xs:documentation>
1568 - </xs:annotation>
1569 - </xs:attribute>
1570 - <xs:attribute name="Sequence" use="optional" type="xs:integer">
1571 - <xs:annotation>
1572 - <xs:documentation>Specifies the order in which the modification is to be attempted on the XML file. It is important to ensure that new elements are created before you attempt to add an attribute to them.</xs:documentation>
1573 - </xs:annotation>
1574 - </xs:attribute>
1575 - <xs:attribute name="Value" type="xs:string">
1576 - <xs:annotation>
1577 - <xs:documentation>
1578 - The value to be written. See the <html:a href="https://docs.microsoft.com/en-us/windows/win32/msi/formatted" target="_blank">Formatted topic</html:a> for information how to escape square brackets in the value.
1579 - </xs:documentation>
1580 - </xs:annotation>
1581 - </xs:attribute>
1582 - <xs:attribute name="VerifyPath" type="xs:string">
1583 - <xs:annotation>
1584 - <xs:documentation>The XPath to the element being modified. This is required for 'delete' actions. For 'create' actions, VerifyPath is used to decide if the element already exists. Note that this is a formatted field and therefore, square brackets in the XPath must be escaped. In addition, XPaths allow backslashes to be used to escape characters, so if you intend to include literal backslashes, you must escape them as well by doubling them in this attribute. The string is formatted by MSI first, and the result is consumed as the XPath.</xs:documentation>
1585 - </xs:annotation>
1586 - </xs:attribute>
1587 - </xs:complexType>
1588 - </xs:element>
1589 - <xs:element name="BroadcastEnvironmentChange">
1590 - <xs:annotation>
1591 - <xs:documentation>Schedules the BroadcastEnvironmentChange custom action for the current platform.</xs:documentation>
1592 - <xs:appinfo>
1593 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Product" />
1594 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
1595 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1596 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
1597 - </xs:appinfo>
1598 - </xs:annotation>
1599 - </xs:element>
1600 - <xs:element name="BroadcastSettingChange">
1601 - <xs:annotation>
1602 - <xs:documentation>Schedules the BroadcastSettingChange custom action for the current platform.</xs:documentation>
1603 - <xs:appinfo>
1604 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Product" />
1605 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
1606 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1607 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
1608 - </xs:appinfo>
1609 - </xs:annotation>
1610 - </xs:element>
1611 - <xs:element name="CheckRebootRequired">
1612 - <xs:annotation>
1613 - <xs:documentation>Schedules the CheckRebootRequired custom action for the current platform.</xs:documentation>
1614 - <xs:appinfo>
1615 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Product" />
1616 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
1617 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1618 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
1619 - </xs:appinfo>
1620 - </xs:annotation>
1621 - </xs:element>
1622 - <xs:element name="ExitEarlyWithSuccess">
1623 - <xs:annotation>
1624 - <xs:documentation>Schedules the ExitEarlyWithSuccess custom action for the current platform.</xs:documentation>
1625 - <xs:appinfo>
1626 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Product" />
1627 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
1628 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1629 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
1630 - </xs:appinfo>
1631 - </xs:annotation>
1632 - </xs:element>
1633 - <xs:element name="FailWhenDeferred">
1634 - <xs:annotation>
1635 - <xs:documentation>Schedules the FailWhenDeferred custom action for the current platform.</xs:documentation>
1636 - <xs:appinfo>
1637 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Product" />
1638 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
1639 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1640 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
1641 - </xs:appinfo>
1642 - </xs:annotation>
1643 - <xs:element name="WaitForEvent">
1644 - <xs:annotation>
1645 - <xs:documentation>Schedules the WaitForEvent custom action for the current platform.</xs:documentation>
1646 - <xs:appinfo>
1647 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Product" />
1648 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
1649 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1650 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
1651 - </xs:appinfo>
1652 - </xs:annotation>
1653 - </xs:element>
1654 - <xs:element name="WaitForEventDeferred">
1655 - <xs:annotation>
1656 - <xs:documentation>Schedules the WaitForEventDeferred custom action for the current platform.</xs:documentation>
1657 - <xs:appinfo>
1658 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Product" />
1659 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
1660 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1661 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
1662 - </xs:appinfo>
1663 - </xs:annotation>
1664 - </xs:element>
1665 - <xs:element name="QueryWindowsDirectories">
1666 - <xs:annotation>
1667 - <xs:documentation>Schedules the QueryOsDirs custom action for the current platform.</xs:documentation>
1668 - <xs:appinfo>
1669 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Product" />
1670 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
1671 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1672 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
1673 - </xs:appinfo>
1674 - </xs:annotation>
1675 - </xs:element>
1676 - <xs:element name="QueryWindowsDriverInfo">
1677 - <xs:annotation>
1678 - <xs:documentation>Schedules the QueryOsDriverInfo custom action for the current platform.</xs:documentation>
1679 - <xs:appinfo>
1680 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Product" />
1681 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
1682 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1683 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
1684 - </xs:appinfo>
1685 - </xs:annotation>
1686 - </xs:element>
1687 - <xs:element name="QueryWindowsSuiteInfo">
1688 - <xs:annotation>
1689 - <xs:documentation>Schedules the QueryOsInfo custom action for the current platform.</xs:documentation>
1690 - <xs:appinfo>
1691 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Product" />
1692 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
1693 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1694 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
1695 - </xs:appinfo>
1696 - </xs:annotation>
1697 - </xs:element>
1698 - <xs:element name="QueryWindowsWellKnownSIDs">
1699 - <xs:annotation>
1700 - <xs:documentation>Schedules the QueryOsWellKnownSID custom action for the current platform.</xs:documentation>
1701 - <xs:appinfo>
1702 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Product" />
1703 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
1704 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1705 - <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
1706 - </xs:appinfo>
1707 - </xs:annotation>
1708 - </xs:element>
1709 -
1710 - <xs:attributeGroup name="SearchCommonAttributes">
1711 - <xs:attribute name="Id" type="xs:string">
1712 - <xs:annotation>
1713 - <xs:documentation>Id of the search for ordering and dependency.</xs:documentation>
1714 - </xs:annotation>
1715 - </xs:attribute>
1716 - <xs:attribute name="Variable" type="xs:string" use="required">
1717 - <xs:annotation>
1718 - <xs:documentation>Name of the variable in which to place the result of the search.</xs:documentation>
1719 - </xs:annotation>
1720 - </xs:attribute>
1721 - <xs:attribute name="Condition" type="xs:string">
1722 - <xs:annotation>
1723 - <xs:documentation>Condition for evaluating the search. If this evaluates to false, the search is not executed at all.</xs:documentation>
1724 - </xs:annotation>
1725 - </xs:attribute>
1726 - <xs:attribute name="After" type="xs:string">
1727 - <xs:annotation>
1728 - <xs:documentation>Id of the search that this one should come after.</xs:documentation>
1729 - </xs:annotation>
1730 - </xs:attribute>
1731 - </xs:attributeGroup>
1732 - <xs:simpleType name="YesNoType">
1733 - <xs:annotation>
1734 - <xs:documentation>Values of this type will either be "yes" or "no".</xs:documentation>
1735 - </xs:annotation>
1736 - <xs:restriction base="xs:NMTOKEN">
1737 - <xs:enumeration value="no" />
1738 - <xs:enumeration value="yes" />
1739 - </xs:restriction>
1740 - </xs:simpleType>
1741 - <xs:simpleType name="PerformanceCounterLanguageType">
1742 - <xs:annotation>
1743 - <xs:documentation>Enumeration of valid languages for performance counters.</xs:documentation>
1744 - </xs:annotation>
1745 - <xs:restriction base="xs:NMTOKEN">
1746 - <xs:enumeration value="afrikaans" />
1747 - <xs:enumeration value="albanian" />
1748 - <xs:enumeration value="arabic" />
1749 - <xs:enumeration value="armenian" />
1750 - <xs:enumeration value="assamese" />
1751 - <xs:enumeration value="azeri" />
1752 - <xs:enumeration value="basque" />
1753 - <xs:enumeration value="belarusian" />
1754 - <xs:enumeration value="bengali" />
1755 - <xs:enumeration value="bulgarian" />
1756 - <xs:enumeration value="catalan" />
1757 - <xs:enumeration value="chinese" />
1758 - <xs:enumeration value="croatian" />
1759 - <xs:enumeration value="czech" />
1760 - <xs:enumeration value="danish" />
1761 - <xs:enumeration value="divehi" />
1762 - <xs:enumeration value="dutch" />
1763 - <xs:enumeration value="english" />
1764 - <xs:enumeration value="estonian" />
1765 - <xs:enumeration value="faeroese" />
1766 - <xs:enumeration value="farsi" />
1767 - <xs:enumeration value="finnish" />
1768 - <xs:enumeration value="french" />
1769 - <xs:enumeration value="galician" />
1770 - <xs:enumeration value="georgian" />
1771 - <xs:enumeration value="german" />
1772 - <xs:enumeration value="greek" />
1773 - <xs:enumeration value="gujarati" />
1774 - <xs:enumeration value="hebrew" />
1775 - <xs:enumeration value="hindi" />
1776 - <xs:enumeration value="hungarian" />
1777 - <xs:enumeration value="icelandic" />
1778 - <xs:enumeration value="indonesian" />
1779 - <xs:enumeration value="italian" />
1780 - <xs:enumeration value="japanese" />
1781 - <xs:enumeration value="kannada" />
1782 - <xs:enumeration value="kashmiri" />
1783 - <xs:enumeration value="kazak" />
1784 - <xs:enumeration value="konkani" />
1785 - <xs:enumeration value="korean" />
1786 - <xs:enumeration value="kyrgyz" />
1787 - <xs:enumeration value="latvian" />
1788 - <xs:enumeration value="lithuanian" />
1789 - <xs:enumeration value="macedonian" />
1790 - <xs:enumeration value="malay" />
1791 - <xs:enumeration value="malayalam" />
1792 - <xs:enumeration value="manipuri" />
1793 - <xs:enumeration value="marathi" />
1794 - <xs:enumeration value="mongolian" />
1795 - <xs:enumeration value="nepali" />
1796 - <xs:enumeration value="norwegian" />
1797 - <xs:enumeration value="oriya" />
1798 - <xs:enumeration value="polish" />
1799 - <xs:enumeration value="portuguese" />
1800 - <xs:enumeration value="punjabi" />
1801 - <xs:enumeration value="romanian" />
1802 - <xs:enumeration value="russian" />
1803 - <xs:enumeration value="sanskrit" />
1804 - <xs:enumeration value="serbian" />
1805 - <xs:enumeration value="sindhi" />
1806 - <xs:enumeration value="slovak" />
1807 - <xs:enumeration value="slovenian" />
1808 - <xs:enumeration value="spanish" />
1809 - <xs:enumeration value="swahili" />
1810 - <xs:enumeration value="swedish" />
1811 - <xs:enumeration value="syriac" />
1812 - <xs:enumeration value="tamil" />
1813 - <xs:enumeration value="tatar" />
1814 - <xs:enumeration value="telugu" />
1815 - <xs:enumeration value="thai" />
1816 - <xs:enumeration value="turkish" />
1817 - <xs:enumeration value="ukrainian" />
1818 - <xs:enumeration value="urdu" />
1819 - <xs:enumeration value="uzbek" />
1820 - <xs:enumeration value="vietnamese" />
1821 - </xs:restriction>
1822 - </xs:simpleType>
1823 - <xs:simpleType name="PerformanceCounterTypesType">
1824 - <xs:annotation>
1825 - <xs:documentation>Enumeration of valid types for performance counters.</xs:documentation>
1826 - </xs:annotation>
1827 - <xs:restriction base="xs:NMTOKEN">
1828 - <xs:enumeration value="averageBase" />
1829 - <xs:enumeration value="averageCount64" />
1830 - <xs:enumeration value="averageTimer32" />
1831 - <xs:enumeration value="counterDelta32" />
1832 - <xs:enumeration value="counterTimerInverse" />
1833 - <xs:enumeration value="sampleFraction" />
1834 - <xs:enumeration value="timer100Ns" />
1835 - <xs:enumeration value="counterTimer" />
1836 - <xs:enumeration value="rawFraction" />
1837 - <xs:enumeration value="timer100NsInverse" />
1838 - <xs:enumeration value="counterMultiTimer" />
1839 - <xs:enumeration value="counterMultiTimer100Ns" />
1840 - <xs:enumeration value="counterMultiTimerInverse" />
1841 - <xs:enumeration value="counterMultiTimer100NsInverse" />
1842 - <xs:enumeration value="elapsedTime" />
1843 - <xs:enumeration value="sampleBase" />
1844 - <xs:enumeration value="rawBase" />
1845 - <xs:enumeration value="counterMultiBase" />
1846 - <xs:enumeration value="rateOfCountsPerSecond64" />
1847 - <xs:enumeration value="rateOfCountsPerSecond32" />
1848 - <xs:enumeration value="countPerTimeInterval64" />
1849 - <xs:enumeration value="countPerTimeInterval32" />
1850 - <xs:enumeration value="sampleCounter" />
1851 - <xs:enumeration value="counterDelta64" />
1852 - <xs:enumeration value="numberOfItems64" />
1853 - <xs:enumeration value="numberOfItems32" />
1854 - <xs:enumeration value="numberOfItemsHEX64" />
1855 - <xs:enumeration value="numberOfItemsHEX32" />
1856 - </xs:restriction>
1857 - </xs:simpleType>
1858 -</xs:schema>