aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2017-10-18 15:14:03 -0700
committerRob Mensching <rob@firegiant.com>2017-10-18 15:14:03 -0700
commita8656a87887d6cb2c54f4bbeacee37f7074f1032 (patch)
treecc09d228656cb411bb4f5a5d337491a2c980a9a7
parentd0d48599caf5b5f018b9fdd4ea8f6064d76d2e8b (diff)
downloadwix-a8656a87887d6cb2c54f4bbeacee37f7074f1032.tar.gz
wix-a8656a87887d6cb2c54f4bbeacee37f7074f1032.tar.bz2
wix-a8656a87887d6cb2c54f4bbeacee37f7074f1032.zip
Commit generated message and schema classes one way to better system
Generating messages and schema classes from XML is a bit cool but is fraught with issues when there is a build failure anywhere. This commits those generated files until a better process is in place.
Diffstat (limited to '')
-rw-r--r--src/WixToolset.Data/Data/WixToolset.Data.Data.messages.resourcesbin0 -> 3589 bytes
-rw-r--r--src/WixToolset.Data/Data/WixToolset.Data.WixDataStrings.resourcesbin0 -> 3481 bytes
-rw-r--r--src/WixToolset.Data/Data/Xsd/wix.cs57860
-rw-r--r--src/WixToolset.Data/Data/messages.cs118
-rw-r--r--src/WixToolset.Data/Data/messages.xml.old (renamed from src/WixToolset.Data/Data/messages.xml)12
-rw-r--r--src/WixToolset.Data/WixToolset.Data.csproj167
6 files changed, 57991 insertions, 166 deletions
diff --git a/src/WixToolset.Data/Data/WixToolset.Data.Data.messages.resources b/src/WixToolset.Data/Data/WixToolset.Data.Data.messages.resources
new file mode 100644
index 00000000..1d986cdf
--- /dev/null
+++ b/src/WixToolset.Data/Data/WixToolset.Data.Data.messages.resources
Binary files differ
diff --git a/src/WixToolset.Data/Data/WixToolset.Data.WixDataStrings.resources b/src/WixToolset.Data/Data/WixToolset.Data.WixDataStrings.resources
new file mode 100644
index 00000000..2463303e
--- /dev/null
+++ b/src/WixToolset.Data/Data/WixToolset.Data.WixDataStrings.resources
Binary files differ
diff --git a/src/WixToolset.Data/Data/Xsd/wix.cs b/src/WixToolset.Data/Data/Xsd/wix.cs
new file mode 100644
index 00000000..3ff83699
--- /dev/null
+++ b/src/WixToolset.Data/Data/Xsd/wix.cs
@@ -0,0 +1,57860 @@
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
11namespace WixToolset.Data.Serialize
12{
13 using System;
14 using System.CodeDom.Compiler;
15 using System.Collections;
16 using System.Diagnostics.CodeAnalysis;
17 using System.Globalization;
18 using System.Xml;
19
20
21 /// <summary>
22 /// Values of this type will either be "attached" or "detached".
23 /// </summary>
24 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
25 public enum BurnContainerType
26 {
27
28 IllegalValue = int.MaxValue,
29
30 NotSet = -1,
31
32 attached,
33
34 detached,
35 }
36
37 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
38 public class Enums
39 {
40
41 /// <summary>
42 /// Parses a BurnContainerType from a string.
43 /// </summary>
44 public static BurnContainerType ParseBurnContainerType(string value)
45 {
46 BurnContainerType parsedValue;
47 Enums.TryParseBurnContainerType(value, out parsedValue);
48 return parsedValue;
49 }
50
51 /// <summary>
52 /// Tries to parse a BurnContainerType from a string.
53 /// </summary>
54 public static bool TryParseBurnContainerType(string value, out BurnContainerType parsedValue)
55 {
56 parsedValue = BurnContainerType.NotSet;
57 if (string.IsNullOrEmpty(value))
58 {
59 return false;
60 }
61 if (("attached" == value))
62 {
63 parsedValue = BurnContainerType.attached;
64 }
65 else
66 {
67 if (("detached" == value))
68 {
69 parsedValue = BurnContainerType.detached;
70 }
71 else
72 {
73 parsedValue = BurnContainerType.IllegalValue;
74 return false;
75 }
76 }
77 return true;
78 }
79
80 /// <summary>
81 /// Parses a BurnExeProtocolType from a string.
82 /// </summary>
83 public static BurnExeProtocolType ParseBurnExeProtocolType(string value)
84 {
85 BurnExeProtocolType parsedValue;
86 Enums.TryParseBurnExeProtocolType(value, out parsedValue);
87 return parsedValue;
88 }
89
90 /// <summary>
91 /// Tries to parse a BurnExeProtocolType from a string.
92 /// </summary>
93 public static bool TryParseBurnExeProtocolType(string value, out BurnExeProtocolType parsedValue)
94 {
95 parsedValue = BurnExeProtocolType.NotSet;
96 if (string.IsNullOrEmpty(value))
97 {
98 return false;
99 }
100 if (("none" == value))
101 {
102 parsedValue = BurnExeProtocolType.none;
103 }
104 else
105 {
106 if (("burn" == value))
107 {
108 parsedValue = BurnExeProtocolType.burn;
109 }
110 else
111 {
112 if (("netfx4" == value))
113 {
114 parsedValue = BurnExeProtocolType.netfx4;
115 }
116 else
117 {
118 parsedValue = BurnExeProtocolType.IllegalValue;
119 return false;
120 }
121 }
122 }
123 return true;
124 }
125
126 /// <summary>
127 /// Parses a YesNoType from a string.
128 /// </summary>
129 public static YesNoType ParseYesNoType(string value)
130 {
131 YesNoType parsedValue;
132 Enums.TryParseYesNoType(value, out parsedValue);
133 return parsedValue;
134 }
135
136 /// <summary>
137 /// Tries to parse a YesNoType from a string.
138 /// </summary>
139 public static bool TryParseYesNoType(string value, out YesNoType parsedValue)
140 {
141 parsedValue = YesNoType.NotSet;
142 if (string.IsNullOrEmpty(value))
143 {
144 return false;
145 }
146 if (("no" == value))
147 {
148 parsedValue = YesNoType.no;
149 }
150 else
151 {
152 if (("yes" == value))
153 {
154 parsedValue = YesNoType.yes;
155 }
156 else
157 {
158 parsedValue = YesNoType.IllegalValue;
159 return false;
160 }
161 }
162 return true;
163 }
164
165 /// <summary>
166 /// Parses a YesNoButtonType from a string.
167 /// </summary>
168 public static YesNoButtonType ParseYesNoButtonType(string value)
169 {
170 YesNoButtonType parsedValue;
171 Enums.TryParseYesNoButtonType(value, out parsedValue);
172 return parsedValue;
173 }
174
175 /// <summary>
176 /// Tries to parse a YesNoButtonType from a string.
177 /// </summary>
178 public static bool TryParseYesNoButtonType(string value, out YesNoButtonType parsedValue)
179 {
180 parsedValue = YesNoButtonType.NotSet;
181 if (string.IsNullOrEmpty(value))
182 {
183 return false;
184 }
185 if (("no" == value))
186 {
187 parsedValue = YesNoButtonType.no;
188 }
189 else
190 {
191 if (("yes" == value))
192 {
193 parsedValue = YesNoButtonType.yes;
194 }
195 else
196 {
197 if (("button" == value))
198 {
199 parsedValue = YesNoButtonType.button;
200 }
201 else
202 {
203 parsedValue = YesNoButtonType.IllegalValue;
204 return false;
205 }
206 }
207 }
208 return true;
209 }
210
211 /// <summary>
212 /// Parses a YesNoDefaultType from a string.
213 /// </summary>
214 public static YesNoDefaultType ParseYesNoDefaultType(string value)
215 {
216 YesNoDefaultType parsedValue;
217 Enums.TryParseYesNoDefaultType(value, out parsedValue);
218 return parsedValue;
219 }
220
221 /// <summary>
222 /// Tries to parse a YesNoDefaultType from a string.
223 /// </summary>
224 public static bool TryParseYesNoDefaultType(string value, out YesNoDefaultType parsedValue)
225 {
226 parsedValue = YesNoDefaultType.NotSet;
227 if (string.IsNullOrEmpty(value))
228 {
229 return false;
230 }
231 if (("default" == value))
232 {
233 parsedValue = YesNoDefaultType.@default;
234 }
235 else
236 {
237 if (("no" == value))
238 {
239 parsedValue = YesNoDefaultType.no;
240 }
241 else
242 {
243 if (("yes" == value))
244 {
245 parsedValue = YesNoDefaultType.yes;
246 }
247 else
248 {
249 parsedValue = YesNoDefaultType.IllegalValue;
250 return false;
251 }
252 }
253 }
254 return true;
255 }
256
257 /// <summary>
258 /// Parses a YesNoAlwaysType from a string.
259 /// </summary>
260 public static YesNoAlwaysType ParseYesNoAlwaysType(string value)
261 {
262 YesNoAlwaysType parsedValue;
263 Enums.TryParseYesNoAlwaysType(value, out parsedValue);
264 return parsedValue;
265 }
266
267 /// <summary>
268 /// Tries to parse a YesNoAlwaysType from a string.
269 /// </summary>
270 public static bool TryParseYesNoAlwaysType(string value, out YesNoAlwaysType parsedValue)
271 {
272 parsedValue = YesNoAlwaysType.NotSet;
273 if (string.IsNullOrEmpty(value))
274 {
275 return false;
276 }
277 if (("always" == value))
278 {
279 parsedValue = YesNoAlwaysType.always;
280 }
281 else
282 {
283 if (("no" == value))
284 {
285 parsedValue = YesNoAlwaysType.no;
286 }
287 else
288 {
289 if (("yes" == value))
290 {
291 parsedValue = YesNoAlwaysType.yes;
292 }
293 else
294 {
295 parsedValue = YesNoAlwaysType.IllegalValue;
296 return false;
297 }
298 }
299 }
300 return true;
301 }
302
303 /// <summary>
304 /// Parses a RegistryRootType from a string.
305 /// </summary>
306 public static RegistryRootType ParseRegistryRootType(string value)
307 {
308 RegistryRootType parsedValue;
309 Enums.TryParseRegistryRootType(value, out parsedValue);
310 return parsedValue;
311 }
312
313 /// <summary>
314 /// Tries to parse a RegistryRootType from a string.
315 /// </summary>
316 public static bool TryParseRegistryRootType(string value, out RegistryRootType parsedValue)
317 {
318 parsedValue = RegistryRootType.NotSet;
319 if (string.IsNullOrEmpty(value))
320 {
321 return false;
322 }
323 if (("HKMU" == value))
324 {
325 parsedValue = RegistryRootType.HKMU;
326 }
327 else
328 {
329 if (("HKCR" == value))
330 {
331 parsedValue = RegistryRootType.HKCR;
332 }
333 else
334 {
335 if (("HKCU" == value))
336 {
337 parsedValue = RegistryRootType.HKCU;
338 }
339 else
340 {
341 if (("HKLM" == value))
342 {
343 parsedValue = RegistryRootType.HKLM;
344 }
345 else
346 {
347 if (("HKU" == value))
348 {
349 parsedValue = RegistryRootType.HKU;
350 }
351 else
352 {
353 parsedValue = RegistryRootType.IllegalValue;
354 return false;
355 }
356 }
357 }
358 }
359 }
360 return true;
361 }
362
363 /// <summary>
364 /// Parses a ExitType from a string.
365 /// </summary>
366 public static ExitType ParseExitType(string value)
367 {
368 ExitType parsedValue;
369 Enums.TryParseExitType(value, out parsedValue);
370 return parsedValue;
371 }
372
373 /// <summary>
374 /// Tries to parse a ExitType from a string.
375 /// </summary>
376 public static bool TryParseExitType(string value, out ExitType parsedValue)
377 {
378 parsedValue = ExitType.NotSet;
379 if (string.IsNullOrEmpty(value))
380 {
381 return false;
382 }
383 if (("success" == value))
384 {
385 parsedValue = ExitType.success;
386 }
387 else
388 {
389 if (("cancel" == value))
390 {
391 parsedValue = ExitType.cancel;
392 }
393 else
394 {
395 if (("error" == value))
396 {
397 parsedValue = ExitType.error;
398 }
399 else
400 {
401 if (("suspend" == value))
402 {
403 parsedValue = ExitType.suspend;
404 }
405 else
406 {
407 parsedValue = ExitType.IllegalValue;
408 return false;
409 }
410 }
411 }
412 }
413 return true;
414 }
415
416 /// <summary>
417 /// Parses a InstallUninstallType from a string.
418 /// </summary>
419 public static InstallUninstallType ParseInstallUninstallType(string value)
420 {
421 InstallUninstallType parsedValue;
422 Enums.TryParseInstallUninstallType(value, out parsedValue);
423 return parsedValue;
424 }
425
426 /// <summary>
427 /// Tries to parse a InstallUninstallType from a string.
428 /// </summary>
429 public static bool TryParseInstallUninstallType(string value, out InstallUninstallType parsedValue)
430 {
431 parsedValue = InstallUninstallType.NotSet;
432 if (string.IsNullOrEmpty(value))
433 {
434 return false;
435 }
436 if (("install" == value))
437 {
438 parsedValue = InstallUninstallType.install;
439 }
440 else
441 {
442 if (("uninstall" == value))
443 {
444 parsedValue = InstallUninstallType.uninstall;
445 }
446 else
447 {
448 if (("both" == value))
449 {
450 parsedValue = InstallUninstallType.both;
451 }
452 else
453 {
454 parsedValue = InstallUninstallType.IllegalValue;
455 return false;
456 }
457 }
458 }
459 return true;
460 }
461
462 /// <summary>
463 /// Parses a SequenceType from a string.
464 /// </summary>
465 public static SequenceType ParseSequenceType(string value)
466 {
467 SequenceType parsedValue;
468 Enums.TryParseSequenceType(value, out parsedValue);
469 return parsedValue;
470 }
471
472 /// <summary>
473 /// Tries to parse a SequenceType from a string.
474 /// </summary>
475 public static bool TryParseSequenceType(string value, out SequenceType parsedValue)
476 {
477 parsedValue = SequenceType.NotSet;
478 if (string.IsNullOrEmpty(value))
479 {
480 return false;
481 }
482 if (("both" == value))
483 {
484 parsedValue = SequenceType.both;
485 }
486 else
487 {
488 if (("first" == value))
489 {
490 parsedValue = SequenceType.first;
491 }
492 else
493 {
494 if (("execute" == value))
495 {
496 parsedValue = SequenceType.execute;
497 }
498 else
499 {
500 if (("ui" == value))
501 {
502 parsedValue = SequenceType.ui;
503 }
504 else
505 {
506 parsedValue = SequenceType.IllegalValue;
507 return false;
508 }
509 }
510 }
511 }
512 return true;
513 }
514
515 /// <summary>
516 /// Parses a CompressionLevelType from a string.
517 /// </summary>
518 public static CompressionLevelType ParseCompressionLevelType(string value)
519 {
520 CompressionLevelType parsedValue;
521 Enums.TryParseCompressionLevelType(value, out parsedValue);
522 return parsedValue;
523 }
524
525 /// <summary>
526 /// Tries to parse a CompressionLevelType from a string.
527 /// </summary>
528 public static bool TryParseCompressionLevelType(string value, out CompressionLevelType parsedValue)
529 {
530 parsedValue = CompressionLevelType.NotSet;
531 if (string.IsNullOrEmpty(value))
532 {
533 return false;
534 }
535 if (("high" == value))
536 {
537 parsedValue = CompressionLevelType.high;
538 }
539 else
540 {
541 if (("low" == value))
542 {
543 parsedValue = CompressionLevelType.low;
544 }
545 else
546 {
547 if (("medium" == value))
548 {
549 parsedValue = CompressionLevelType.medium;
550 }
551 else
552 {
553 if (("mszip" == value))
554 {
555 parsedValue = CompressionLevelType.mszip;
556 }
557 else
558 {
559 if (("none" == value))
560 {
561 parsedValue = CompressionLevelType.none;
562 }
563 else
564 {
565 parsedValue = CompressionLevelType.IllegalValue;
566 return false;
567 }
568 }
569 }
570 }
571 }
572 return true;
573 }
574 }
575
576 /// <summary>
577 /// The list of communcation protocols with executable packages Burn supports.
578 /// </summary>
579 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
580 public enum BurnExeProtocolType
581 {
582
583 IllegalValue = int.MaxValue,
584
585 NotSet = -1,
586
587 /// <summary>
588 /// The executable package does not support a communication protocol.
589 /// </summary>
590 none,
591
592 /// <summary>
593 /// The executable package is another Burn bundle and supports the Burn communication protocol.
594 /// </summary>
595 burn,
596
597 /// <summary>
598 /// The executable package implements the .NET Framework v4.0 communication protocol.
599 /// </summary>
600 netfx4,
601 }
602
603 /// <summary>
604 /// Values of this type will either be "yes" or "no".
605 /// </summary>
606 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
607 public enum YesNoType
608 {
609
610 IllegalValue = int.MaxValue,
611
612 NotSet = -1,
613
614 no,
615
616 yes,
617 }
618
619 /// <summary>
620 /// Values of this type will either be "button", "yes" or "no".
621 /// </summary>
622 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
623 public enum YesNoButtonType
624 {
625
626 IllegalValue = int.MaxValue,
627
628 NotSet = -1,
629
630 no,
631
632 yes,
633
634 button,
635 }
636
637 /// <summary>
638 /// Values of this type will either be "default", "yes", or "no".
639 /// </summary>
640 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
641 public enum YesNoDefaultType
642 {
643
644 IllegalValue = int.MaxValue,
645
646 NotSet = -1,
647
648 @default,
649
650 no,
651
652 yes,
653 }
654
655 /// <summary>
656 /// Values of this type will either be "always", "yes", or "no".
657 /// </summary>
658 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
659 public enum YesNoAlwaysType
660 {
661
662 IllegalValue = int.MaxValue,
663
664 NotSet = -1,
665
666 always,
667
668 no,
669
670 yes,
671 }
672
673 /// <summary>
674 /// Values of this type represent possible registry roots.
675 /// </summary>
676 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
677 public enum RegistryRootType
678 {
679
680 IllegalValue = int.MaxValue,
681
682 NotSet = -1,
683
684 /// <summary>
685 /// A per-user installation will make the operation occur under HKEY_CURRENT_USER.
686 /// A per-machine installation will make the operation occur under HKEY_LOCAL_MACHINE.
687 /// </summary>
688 HKMU,
689
690 /// <summary>
691 /// Operation occurs under HKEY_CLASSES_ROOT. When using Windows 2000 or later, the installer writes or removes the value
692 /// from the HKCU\Software\Classes hive during per-user installations. When using Windows 2000 or later operating systems,
693 /// the installer writes or removes the value from the HKLM\Software\Classes hive during per-machine installations.
694 /// </summary>
695 HKCR,
696
697 /// <summary>
698 /// Operation occurs under HKEY_CURRENT_USER. It is recommended to set the KeyPath='yes' attribute when setting this value for writing values
699 /// in order to ensure that the installer writes the necessary registry entries when there are multiple users on the same computer.
700 /// </summary>
701 HKCU,
702
703 /// <summary>
704 /// Operation occurs under HKEY_LOCAL_MACHINE.
705 /// </summary>
706 HKLM,
707
708 /// <summary>
709 /// Operation occurs under HKEY_USERS.
710 /// </summary>
711 HKU,
712 }
713
714 /// <summary>
715 /// Value indicates that this action is executed if the installer returns the associated exit type. Each exit type can be used with no more than one action.
716 /// Multiple actions can have exit types assigned, but every action and exit type must be different. Exit types are typically used with dialog boxes.
717 /// </summary>
718 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
719 public enum ExitType
720 {
721
722 IllegalValue = int.MaxValue,
723
724 NotSet = -1,
725
726 success,
727
728 cancel,
729
730 error,
731
732 suspend,
733 }
734
735 /// <summary>
736 /// Specifies whether an action occur on install, uninstall or both.
737 /// </summary>
738 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
739 public enum InstallUninstallType
740 {
741
742 IllegalValue = int.MaxValue,
743
744 NotSet = -1,
745
746 /// <summary>
747 /// The action should happen during install (msiInstallStateLocal or msiInstallStateSource).
748 /// </summary>
749 install,
750
751 /// <summary>
752 /// The action should happen during uninstall (msiInstallStateAbsent).
753 /// </summary>
754 uninstall,
755
756 /// <summary>
757 /// The action should happen during both install and uninstall.
758 /// </summary>
759 both,
760 }
761
762 /// <summary>
763 /// Controls which sequences the item assignment is sequenced in.
764 /// </summary>
765 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
766 public enum SequenceType
767 {
768
769 IllegalValue = int.MaxValue,
770
771 NotSet = -1,
772
773 /// <summary>
774 /// Schedules the assignment in the InstallUISequence and the InstallExecuteSequence.
775 /// </summary>
776 both,
777
778 /// <summary>
779 /// Schedules the assignment to run in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped.
780 /// </summary>
781 first,
782
783 /// <summary>
784 /// Schedules the assignment only in the the InstallExecuteSequence.
785 /// </summary>
786 execute,
787
788 /// <summary>
789 /// Schedules the assignment only in the the InstallUISequence.
790 /// </summary>
791 ui,
792 }
793
794 /// <summary>
795 /// Indicates the compression level for a cabinet.
796 /// </summary>
797 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
798 public enum CompressionLevelType
799 {
800
801 IllegalValue = int.MaxValue,
802
803 NotSet = -1,
804
805 high,
806
807 low,
808
809 medium,
810
811 mszip,
812
813 none,
814 }
815
816 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
817 public abstract class ActionModuleSequenceType : ISchemaElement, ISetAttributes
818 {
819
820 private string afterField;
821
822 private bool afterFieldSet;
823
824 private string beforeField;
825
826 private bool beforeFieldSet;
827
828 private YesNoType overridableField;
829
830 private bool overridableFieldSet;
831
832 private int sequenceField;
833
834 private bool sequenceFieldSet;
835
836 private YesNoType suppressField;
837
838 private bool suppressFieldSet;
839
840 private string contentField;
841
842 private bool contentFieldSet;
843
844 private ISchemaElement parentElement;
845
846 /// <summary>
847 /// The name of an action that this action should come after.
848 /// </summary>
849 public string After
850 {
851 get
852 {
853 return this.afterField;
854 }
855 set
856 {
857 this.afterFieldSet = true;
858 this.afterField = value;
859 }
860 }
861
862 /// <summary>
863 /// The name of an action that this action should come before.
864 /// </summary>
865 public string Before
866 {
867 get
868 {
869 return this.beforeField;
870 }
871 set
872 {
873 this.beforeFieldSet = true;
874 this.beforeField = value;
875 }
876 }
877
878 /// <summary>
879 /// If "yes", the sequencing of this action may be overridden by sequencing elsewhere.
880 /// </summary>
881 public YesNoType Overridable
882 {
883 get
884 {
885 return this.overridableField;
886 }
887 set
888 {
889 this.overridableFieldSet = true;
890 this.overridableField = value;
891 }
892 }
893
894 /// <summary>
895 /// A value used to indicate the position of this action in a sequence.
896 /// </summary>
897 public int Sequence
898 {
899 get
900 {
901 return this.sequenceField;
902 }
903 set
904 {
905 this.sequenceFieldSet = true;
906 this.sequenceField = value;
907 }
908 }
909
910 /// <summary>
911 /// If yes, this action will not occur.
912 /// </summary>
913 public YesNoType Suppress
914 {
915 get
916 {
917 return this.suppressField;
918 }
919 set
920 {
921 this.suppressFieldSet = true;
922 this.suppressField = value;
923 }
924 }
925
926 /// <summary>
927 /// Text node specifies the condition of the action.
928 /// </summary>
929 public string Content
930 {
931 get
932 {
933 return this.contentField;
934 }
935 set
936 {
937 this.contentFieldSet = true;
938 this.contentField = value;
939 }
940 }
941
942 public virtual ISchemaElement ParentElement
943 {
944 get
945 {
946 return this.parentElement;
947 }
948 set
949 {
950 this.parentElement = value;
951 }
952 }
953
954 /// <summary>
955 /// Processes this element and all child elements into an XmlWriter.
956 /// </summary>
957 public virtual void OutputXml(XmlWriter writer)
958 {
959 if ((null == writer))
960 {
961 throw new ArgumentNullException("writer");
962 }
963 if (this.afterFieldSet)
964 {
965 writer.WriteAttributeString("After", this.afterField);
966 }
967 if (this.beforeFieldSet)
968 {
969 writer.WriteAttributeString("Before", this.beforeField);
970 }
971 if (this.overridableFieldSet)
972 {
973 if ((this.overridableField == YesNoType.no))
974 {
975 writer.WriteAttributeString("Overridable", "no");
976 }
977 if ((this.overridableField == YesNoType.yes))
978 {
979 writer.WriteAttributeString("Overridable", "yes");
980 }
981 }
982 if (this.sequenceFieldSet)
983 {
984 writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture));
985 }
986 if (this.suppressFieldSet)
987 {
988 if ((this.suppressField == YesNoType.no))
989 {
990 writer.WriteAttributeString("Suppress", "no");
991 }
992 if ((this.suppressField == YesNoType.yes))
993 {
994 writer.WriteAttributeString("Suppress", "yes");
995 }
996 }
997 if (this.contentFieldSet)
998 {
999 writer.WriteString(this.contentField);
1000 }
1001 }
1002
1003 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
1004 void ISetAttributes.SetAttribute(string name, string value)
1005 {
1006 if (String.IsNullOrEmpty(name))
1007 {
1008 throw new ArgumentNullException("name");
1009 }
1010 if (("After" == name))
1011 {
1012 this.afterField = value;
1013 this.afterFieldSet = true;
1014 }
1015 if (("Before" == name))
1016 {
1017 this.beforeField = value;
1018 this.beforeFieldSet = true;
1019 }
1020 if (("Overridable" == name))
1021 {
1022 this.overridableField = Enums.ParseYesNoType(value);
1023 this.overridableFieldSet = true;
1024 }
1025 if (("Sequence" == name))
1026 {
1027 this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
1028 this.sequenceFieldSet = true;
1029 }
1030 if (("Suppress" == name))
1031 {
1032 this.suppressField = Enums.ParseYesNoType(value);
1033 this.suppressFieldSet = true;
1034 }
1035 if (("Content" == name))
1036 {
1037 this.contentField = value;
1038 this.contentFieldSet = true;
1039 }
1040 }
1041 }
1042
1043 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
1044 public abstract class ActionSequenceType : ISchemaElement, ISetAttributes
1045 {
1046
1047 private int sequenceField;
1048
1049 private bool sequenceFieldSet;
1050
1051 private YesNoType suppressField;
1052
1053 private bool suppressFieldSet;
1054
1055 private string contentField;
1056
1057 private bool contentFieldSet;
1058
1059 private ISchemaElement parentElement;
1060
1061 /// <summary>
1062 /// A value used to indicate the position of this action in a sequence.
1063 /// </summary>
1064 public int Sequence
1065 {
1066 get
1067 {
1068 return this.sequenceField;
1069 }
1070 set
1071 {
1072 this.sequenceFieldSet = true;
1073 this.sequenceField = value;
1074 }
1075 }
1076
1077 /// <summary>
1078 /// If yes, this action will not occur.
1079 /// </summary>
1080 public YesNoType Suppress
1081 {
1082 get
1083 {
1084 return this.suppressField;
1085 }
1086 set
1087 {
1088 this.suppressFieldSet = true;
1089 this.suppressField = value;
1090 }
1091 }
1092
1093 public string Content
1094 {
1095 get
1096 {
1097 return this.contentField;
1098 }
1099 set
1100 {
1101 this.contentFieldSet = true;
1102 this.contentField = value;
1103 }
1104 }
1105
1106 public virtual ISchemaElement ParentElement
1107 {
1108 get
1109 {
1110 return this.parentElement;
1111 }
1112 set
1113 {
1114 this.parentElement = value;
1115 }
1116 }
1117
1118 /// <summary>
1119 /// Processes this element and all child elements into an XmlWriter.
1120 /// </summary>
1121 public virtual void OutputXml(XmlWriter writer)
1122 {
1123 if ((null == writer))
1124 {
1125 throw new ArgumentNullException("writer");
1126 }
1127 if (this.sequenceFieldSet)
1128 {
1129 writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture));
1130 }
1131 if (this.suppressFieldSet)
1132 {
1133 if ((this.suppressField == YesNoType.no))
1134 {
1135 writer.WriteAttributeString("Suppress", "no");
1136 }
1137 if ((this.suppressField == YesNoType.yes))
1138 {
1139 writer.WriteAttributeString("Suppress", "yes");
1140 }
1141 }
1142 if (this.contentFieldSet)
1143 {
1144 writer.WriteString(this.contentField);
1145 }
1146 }
1147
1148 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
1149 void ISetAttributes.SetAttribute(string name, string value)
1150 {
1151 if (String.IsNullOrEmpty(name))
1152 {
1153 throw new ArgumentNullException("name");
1154 }
1155 if (("Sequence" == name))
1156 {
1157 this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
1158 this.sequenceFieldSet = true;
1159 }
1160 if (("Suppress" == name))
1161 {
1162 this.suppressField = Enums.ParseYesNoType(value);
1163 this.suppressFieldSet = true;
1164 }
1165 if (("Content" == name))
1166 {
1167 this.contentField = value;
1168 this.contentFieldSet = true;
1169 }
1170 }
1171 }
1172
1173 /// <summary>
1174 /// This is the top-level container element for every wxs file. Among the possible children,
1175 /// the Bundle, Product, Module, Patch, and PatchCreation elements are analogous to the main function in a C program.
1176 /// There can only be one of these present when linking occurs. Product compiles into an msi file,
1177 /// Module compiles into an msm file, PatchCreation compiles into a pcp file. The Fragment element
1178 /// is an atomic unit which ultimately links into either a Product, Module, or PatchCreation. The
1179 /// Fragment can either be completely included or excluded during linking.
1180 /// </summary>
1181 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
1182 public class Wix : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
1183 {
1184
1185 private ElementCollection children;
1186
1187 private string requiredVersionField;
1188
1189 private bool requiredVersionFieldSet;
1190
1191 private ISchemaElement parentElement;
1192
1193 public Wix()
1194 {
1195 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
1196 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Sequence);
1197 ElementCollection childCollection2 = new ElementCollection(ElementCollection.CollectionType.Choice);
1198 childCollection2.AddItem(new ElementCollection.ChoiceItem(typeof(Bundle)));
1199 childCollection2.AddItem(new ElementCollection.ChoiceItem(typeof(Product)));
1200 childCollection2.AddItem(new ElementCollection.ChoiceItem(typeof(Module)));
1201 childCollection2.AddItem(new ElementCollection.ChoiceItem(typeof(Patch)));
1202 childCollection1.AddCollection(childCollection2);
1203 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(Fragment)));
1204 childCollection0.AddCollection(childCollection1);
1205 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchCreation)));
1206 this.children = childCollection0;
1207 }
1208
1209 public virtual IEnumerable Children
1210 {
1211 get
1212 {
1213 return this.children;
1214 }
1215 }
1216
1217 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
1218 public virtual IEnumerable this[System.Type childType]
1219 {
1220 get
1221 {
1222 return this.children.Filter(childType);
1223 }
1224 }
1225
1226 /// <summary>
1227 /// Required version of the WiX toolset to compile this input file.
1228 /// </summary>
1229 public string RequiredVersion
1230 {
1231 get
1232 {
1233 return this.requiredVersionField;
1234 }
1235 set
1236 {
1237 this.requiredVersionFieldSet = true;
1238 this.requiredVersionField = value;
1239 }
1240 }
1241
1242 public virtual ISchemaElement ParentElement
1243 {
1244 get
1245 {
1246 return this.parentElement;
1247 }
1248 set
1249 {
1250 this.parentElement = value;
1251 }
1252 }
1253
1254 public virtual void AddChild(ISchemaElement child)
1255 {
1256 if ((null == child))
1257 {
1258 throw new ArgumentNullException("child");
1259 }
1260 this.children.AddElement(child);
1261 child.ParentElement = this;
1262 }
1263
1264 public virtual void RemoveChild(ISchemaElement child)
1265 {
1266 if ((null == child))
1267 {
1268 throw new ArgumentNullException("child");
1269 }
1270 this.children.RemoveElement(child);
1271 child.ParentElement = null;
1272 }
1273
1274 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
1275 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
1276 ISchemaElement ICreateChildren.CreateChild(string childName)
1277 {
1278 if (String.IsNullOrEmpty(childName))
1279 {
1280 throw new ArgumentNullException("childName");
1281 }
1282 ISchemaElement childValue = null;
1283 if (("Bundle" == childName))
1284 {
1285 childValue = new Bundle();
1286 }
1287 if (("Product" == childName))
1288 {
1289 childValue = new Product();
1290 }
1291 if (("Module" == childName))
1292 {
1293 childValue = new Module();
1294 }
1295 if (("Patch" == childName))
1296 {
1297 childValue = new Patch();
1298 }
1299 if (("Fragment" == childName))
1300 {
1301 childValue = new Fragment();
1302 }
1303 if (("PatchCreation" == childName))
1304 {
1305 childValue = new PatchCreation();
1306 }
1307 if ((null == childValue))
1308 {
1309 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
1310 }
1311 return childValue;
1312 }
1313
1314 /// <summary>
1315 /// Processes this element and all child elements into an XmlWriter.
1316 /// </summary>
1317 public virtual void OutputXml(XmlWriter writer)
1318 {
1319 if ((null == writer))
1320 {
1321 throw new ArgumentNullException("writer");
1322 }
1323 writer.WriteStartElement("Wix", "http://wixtoolset.org/schemas/v4/wxs");
1324 if (this.requiredVersionFieldSet)
1325 {
1326 writer.WriteAttributeString("RequiredVersion", this.requiredVersionField);
1327 }
1328 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
1329 {
1330 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
1331 childElement.OutputXml(writer);
1332 }
1333 writer.WriteEndElement();
1334 }
1335
1336 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
1337 void ISetAttributes.SetAttribute(string name, string value)
1338 {
1339 if (String.IsNullOrEmpty(name))
1340 {
1341 throw new ArgumentNullException("name");
1342 }
1343 if (("RequiredVersion" == name))
1344 {
1345 this.requiredVersionField = value;
1346 this.requiredVersionFieldSet = true;
1347 }
1348 }
1349 }
1350
1351 /// <summary>
1352 /// This is the top-level container element for every wxi file.
1353 /// </summary>
1354 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
1355 public class Include : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
1356 {
1357
1358 private ElementCollection children;
1359
1360 private ISchemaElement parentElement;
1361
1362 public Include()
1363 {
1364 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
1365 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
1366 this.children = childCollection0;
1367 }
1368
1369 public virtual IEnumerable Children
1370 {
1371 get
1372 {
1373 return this.children;
1374 }
1375 }
1376
1377 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
1378 public virtual IEnumerable this[System.Type childType]
1379 {
1380 get
1381 {
1382 return this.children.Filter(childType);
1383 }
1384 }
1385
1386 public virtual ISchemaElement ParentElement
1387 {
1388 get
1389 {
1390 return this.parentElement;
1391 }
1392 set
1393 {
1394 this.parentElement = value;
1395 }
1396 }
1397
1398 public virtual void AddChild(ISchemaElement child)
1399 {
1400 if ((null == child))
1401 {
1402 throw new ArgumentNullException("child");
1403 }
1404 this.children.AddElement(child);
1405 child.ParentElement = this;
1406 }
1407
1408 public virtual void RemoveChild(ISchemaElement child)
1409 {
1410 if ((null == child))
1411 {
1412 throw new ArgumentNullException("child");
1413 }
1414 this.children.RemoveElement(child);
1415 child.ParentElement = null;
1416 }
1417
1418 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
1419 ISchemaElement ICreateChildren.CreateChild(string childName)
1420 {
1421 if (String.IsNullOrEmpty(childName))
1422 {
1423 throw new ArgumentNullException("childName");
1424 }
1425 ISchemaElement childValue = null;
1426 if ((null == childValue))
1427 {
1428 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
1429 }
1430 return childValue;
1431 }
1432
1433 /// <summary>
1434 /// Processes this element and all child elements into an XmlWriter.
1435 /// </summary>
1436 public virtual void OutputXml(XmlWriter writer)
1437 {
1438 if ((null == writer))
1439 {
1440 throw new ArgumentNullException("writer");
1441 }
1442 writer.WriteStartElement("Include", "http://wixtoolset.org/schemas/v4/wxs");
1443 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
1444 {
1445 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
1446 childElement.OutputXml(writer);
1447 }
1448 writer.WriteEndElement();
1449 }
1450
1451 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
1452 void ISetAttributes.SetAttribute(string name, string value)
1453 {
1454 if (String.IsNullOrEmpty(name))
1455 {
1456 throw new ArgumentNullException("name");
1457 }
1458 }
1459 }
1460
1461 /// <summary>
1462 /// The root element for creating bundled packages.
1463 /// </summary>
1464 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
1465 public class Bundle : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
1466 {
1467
1468 private ElementCollection children;
1469
1470 private string aboutUrlField;
1471
1472 private bool aboutUrlFieldSet;
1473
1474 private string copyrightField;
1475
1476 private bool copyrightFieldSet;
1477
1478 private YesNoDefaultType compressedField;
1479
1480 private bool compressedFieldSet;
1481
1482 private YesNoButtonType disableModifyField;
1483
1484 private bool disableModifyFieldSet;
1485
1486 private YesNoType disableRemoveField;
1487
1488 private bool disableRemoveFieldSet;
1489
1490 private YesNoType disableRepairField;
1491
1492 private bool disableRepairFieldSet;
1493
1494 private string helpTelephoneField;
1495
1496 private bool helpTelephoneFieldSet;
1497
1498 private string helpUrlField;
1499
1500 private bool helpUrlFieldSet;
1501
1502 private string iconSourceFileField;
1503
1504 private bool iconSourceFileFieldSet;
1505
1506 private string manufacturerField;
1507
1508 private bool manufacturerFieldSet;
1509
1510 private string nameField;
1511
1512 private bool nameFieldSet;
1513
1514 private string parentNameField;
1515
1516 private bool parentNameFieldSet;
1517
1518 private string splashScreenSourceFileField;
1519
1520 private bool splashScreenSourceFileFieldSet;
1521
1522 private string tagField;
1523
1524 private bool tagFieldSet;
1525
1526 private string updateUrlField;
1527
1528 private bool updateUrlFieldSet;
1529
1530 private string upgradeCodeField;
1531
1532 private bool upgradeCodeFieldSet;
1533
1534 private string versionField;
1535
1536 private bool versionFieldSet;
1537
1538 private string conditionField;
1539
1540 private bool conditionFieldSet;
1541
1542 private ISchemaElement parentElement;
1543
1544 public Bundle()
1545 {
1546 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
1547 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ApprovedExeForElevation)));
1548 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Log)));
1549 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Catalog)));
1550 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BootstrapperApplication)));
1551 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BootstrapperApplicationRef)));
1552 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(OptionalUpdateRegistration)));
1553 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Chain)));
1554 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Container)));
1555 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ContainerRef)));
1556 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroup)));
1557 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef)));
1558 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RelatedBundle)));
1559 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Update)));
1560 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Variable)));
1561 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WixVariable)));
1562 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
1563 this.children = childCollection0;
1564 }
1565
1566 public virtual IEnumerable Children
1567 {
1568 get
1569 {
1570 return this.children;
1571 }
1572 }
1573
1574 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
1575 public virtual IEnumerable this[System.Type childType]
1576 {
1577 get
1578 {
1579 return this.children.Filter(childType);
1580 }
1581 }
1582
1583 /// <summary>
1584 /// A URL for more information about the bundle to display in Programs and Features (also
1585 /// known as Add/Remove Programs).
1586 /// </summary>
1587 public string AboutUrl
1588 {
1589 get
1590 {
1591 return this.aboutUrlField;
1592 }
1593 set
1594 {
1595 this.aboutUrlFieldSet = true;
1596 this.aboutUrlField = value;
1597 }
1598 }
1599
1600 /// <summary>
1601 /// The legal copyright found in the version resources of final bundle executable. If
1602 /// this attribute is not provided the copyright will be set to "Copyright (c) [Bundle/@Manufacturer]. All rights reserved.".
1603 /// </summary>
1604 public string Copyright
1605 {
1606 get
1607 {
1608 return this.copyrightField;
1609 }
1610 set
1611 {
1612 this.copyrightFieldSet = true;
1613 this.copyrightField = value;
1614 }
1615 }
1616
1617 /// <summary>
1618 /// Whether Packages and Payloads not assigned to a container should be added to the default attached container or if they should be external. The default is yes.
1619 /// </summary>
1620 public YesNoDefaultType Compressed
1621 {
1622 get
1623 {
1624 return this.compressedField;
1625 }
1626 set
1627 {
1628 this.compressedFieldSet = true;
1629 this.compressedField = value;
1630 }
1631 }
1632
1633 /// <summary>
1634 /// Determines whether the bundle can be modified via the Programs and Features (also known as
1635 /// Add/Remove Programs). If the value is "button" then Programs and Features will show a single
1636 /// "Uninstall/Change" button. If the value is "yes" then Programs and Features will only show
1637 /// the "Uninstall" button". If the value is "no", the default, then a "Change" button is shown.
1638 /// See the DisableRemove attribute for information how to not display the bundle in Programs
1639 /// and Features.
1640 /// </summary>
1641 public YesNoButtonType DisableModify
1642 {
1643 get
1644 {
1645 return this.disableModifyField;
1646 }
1647 set
1648 {
1649 this.disableModifyFieldSet = true;
1650 this.disableModifyField = value;
1651 }
1652 }
1653
1654 /// <summary>
1655 /// Determines whether the bundle can be removed via the Programs and Features (also
1656 /// known as Add/Remove Programs). If the value is "yes" then the "Uninstall" button will
1657 /// not be displayed. The default is "no" which ensures there is an "Uninstall" button to
1658 /// remove the bundle. If the "DisableModify" attribute is also "yes" or "button" then the
1659 /// bundle will not be displayed in Progams and Features and another mechanism (such as
1660 /// registering as a related bundle addon) must be used to ensure the bundle can be removed.
1661 /// </summary>
1662 public YesNoType DisableRemove
1663 {
1664 get
1665 {
1666 return this.disableRemoveField;
1667 }
1668 set
1669 {
1670 this.disableRemoveFieldSet = true;
1671 this.disableRemoveField = value;
1672 }
1673 }
1674
1675 public YesNoType DisableRepair
1676 {
1677 get
1678 {
1679 return this.disableRepairField;
1680 }
1681 set
1682 {
1683 this.disableRepairFieldSet = true;
1684 this.disableRepairField = value;
1685 }
1686 }
1687
1688 /// <summary>
1689 /// A telephone number for help to display in Programs and Features (also known as
1690 /// Add/Remove Programs).
1691 /// </summary>
1692 public string HelpTelephone
1693 {
1694 get
1695 {
1696 return this.helpTelephoneField;
1697 }
1698 set
1699 {
1700 this.helpTelephoneFieldSet = true;
1701 this.helpTelephoneField = value;
1702 }
1703 }
1704
1705 /// <summary>
1706 /// A URL to the help for the bundle to display in Programs and Features (also known as
1707 /// Add/Remove Programs).
1708 /// </summary>
1709 public string HelpUrl
1710 {
1711 get
1712 {
1713 return this.helpUrlField;
1714 }
1715 set
1716 {
1717 this.helpUrlFieldSet = true;
1718 this.helpUrlField = value;
1719 }
1720 }
1721
1722 /// <summary>
1723 /// Path to an icon that will replace the default icon in the final Bundle executable.
1724 /// This icon will also be displayed in Programs and Features (also known as Add/Remove
1725 /// Programs).
1726 /// </summary>
1727 public string IconSourceFile
1728 {
1729 get
1730 {
1731 return this.iconSourceFileField;
1732 }
1733 set
1734 {
1735 this.iconSourceFileFieldSet = true;
1736 this.iconSourceFileField = value;
1737 }
1738 }
1739
1740 /// <summary>
1741 /// The publisher of the bundle to display in Programs and Features (also known as
1742 /// Add/Remove Programs).
1743 /// </summary>
1744 public string Manufacturer
1745 {
1746 get
1747 {
1748 return this.manufacturerField;
1749 }
1750 set
1751 {
1752 this.manufacturerFieldSet = true;
1753 this.manufacturerField = value;
1754 }
1755 }
1756
1757 /// <summary>
1758 /// The name of the bundle to display in Programs and Features (also known as Add/Remove
1759 /// Programs). This name can be accessed and overwritten by a BootstrapperApplication
1760 /// using the WixBundleName bundle variable.
1761 /// </summary>
1762 public string Name
1763 {
1764 get
1765 {
1766 return this.nameField;
1767 }
1768 set
1769 {
1770 this.nameFieldSet = true;
1771 this.nameField = value;
1772 }
1773 }
1774
1775 /// <summary>
1776 /// The name of the parent bundle to display in Installed Updates (also known as Add/Remove
1777 /// Programs). This name is used to nest or group bundles that will appear as updates.
1778 /// If the parent name does not actually exist, a virtual parent is created automatically.
1779 /// </summary>
1780 public string ParentName
1781 {
1782 get
1783 {
1784 return this.parentNameField;
1785 }
1786 set
1787 {
1788 this.parentNameFieldSet = true;
1789 this.parentNameField = value;
1790 }
1791 }
1792
1793 /// <summary>
1794 /// Path to a bitmap that will be shown as the bootstrapper application is being loaded. If this attribute is not specified, no splash screen will be displayed.
1795 /// </summary>
1796 public string SplashScreenSourceFile
1797 {
1798 get
1799 {
1800 return this.splashScreenSourceFileField;
1801 }
1802 set
1803 {
1804 this.splashScreenSourceFileFieldSet = true;
1805 this.splashScreenSourceFileField = value;
1806 }
1807 }
1808
1809 /// <summary>
1810 /// Set this string to uniquely identify this bundle to its own BA, and to related bundles. The value of this string only matters to the BA, and its value has no direct effect on engine functionality.
1811 /// </summary>
1812 public string Tag
1813 {
1814 get
1815 {
1816 return this.tagField;
1817 }
1818 set
1819 {
1820 this.tagFieldSet = true;
1821 this.tagField = value;
1822 }
1823 }
1824
1825 /// <summary>
1826 /// A URL for updates of the bundle to display in Programs and Features (also
1827 /// known as Add/Remove Programs).
1828 /// </summary>
1829 public string UpdateUrl
1830 {
1831 get
1832 {
1833 return this.updateUrlField;
1834 }
1835 set
1836 {
1837 this.updateUrlFieldSet = true;
1838 this.updateUrlField = value;
1839 }
1840 }
1841
1842 /// <summary>
1843 /// Unique identifier for a family of bundles. If two bundles have the same UpgradeCode the
1844 /// bundle with the highest version will be installed.
1845 /// </summary>
1846 public string UpgradeCode
1847 {
1848 get
1849 {
1850 return this.upgradeCodeField;
1851 }
1852 set
1853 {
1854 this.upgradeCodeFieldSet = true;
1855 this.upgradeCodeField = value;
1856 }
1857 }
1858
1859 /// <summary>
1860 /// The version of the bundle. Newer versions upgrade earlier versions of the bundles
1861 /// with matching UpgradeCodes. If the bundle is registered in Programs and Features
1862 /// then this attribute will be displayed in the Programs and Features user interface.
1863 /// </summary>
1864 public string Version
1865 {
1866 get
1867 {
1868 return this.versionField;
1869 }
1870 set
1871 {
1872 this.versionFieldSet = true;
1873 this.versionField = value;
1874 }
1875 }
1876
1877 /// <summary>
1878 /// The condition of the bundle. If the condition is not met, the bundle will
1879 /// refuse to run. Conditions are checked before the bootstrapper application is loaded
1880 /// (before detect), and thus can only reference built-in variables such as
1881 /// variables which indicate the version of the OS.
1882 /// </summary>
1883 public string Condition
1884 {
1885 get
1886 {
1887 return this.conditionField;
1888 }
1889 set
1890 {
1891 this.conditionFieldSet = true;
1892 this.conditionField = value;
1893 }
1894 }
1895
1896 public virtual ISchemaElement ParentElement
1897 {
1898 get
1899 {
1900 return this.parentElement;
1901 }
1902 set
1903 {
1904 this.parentElement = value;
1905 }
1906 }
1907
1908 public virtual void AddChild(ISchemaElement child)
1909 {
1910 if ((null == child))
1911 {
1912 throw new ArgumentNullException("child");
1913 }
1914 this.children.AddElement(child);
1915 child.ParentElement = this;
1916 }
1917
1918 public virtual void RemoveChild(ISchemaElement child)
1919 {
1920 if ((null == child))
1921 {
1922 throw new ArgumentNullException("child");
1923 }
1924 this.children.RemoveElement(child);
1925 child.ParentElement = null;
1926 }
1927
1928 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
1929 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
1930 ISchemaElement ICreateChildren.CreateChild(string childName)
1931 {
1932 if (String.IsNullOrEmpty(childName))
1933 {
1934 throw new ArgumentNullException("childName");
1935 }
1936 ISchemaElement childValue = null;
1937 if (("ApprovedExeForElevation" == childName))
1938 {
1939 childValue = new ApprovedExeForElevation();
1940 }
1941 if (("Log" == childName))
1942 {
1943 childValue = new Log();
1944 }
1945 if (("Catalog" == childName))
1946 {
1947 childValue = new Catalog();
1948 }
1949 if (("BootstrapperApplication" == childName))
1950 {
1951 childValue = new BootstrapperApplication();
1952 }
1953 if (("BootstrapperApplicationRef" == childName))
1954 {
1955 childValue = new BootstrapperApplicationRef();
1956 }
1957 if (("OptionalUpdateRegistration" == childName))
1958 {
1959 childValue = new OptionalUpdateRegistration();
1960 }
1961 if (("Chain" == childName))
1962 {
1963 childValue = new Chain();
1964 }
1965 if (("Container" == childName))
1966 {
1967 childValue = new Container();
1968 }
1969 if (("ContainerRef" == childName))
1970 {
1971 childValue = new ContainerRef();
1972 }
1973 if (("PayloadGroup" == childName))
1974 {
1975 childValue = new PayloadGroup();
1976 }
1977 if (("PayloadGroupRef" == childName))
1978 {
1979 childValue = new PayloadGroupRef();
1980 }
1981 if (("RelatedBundle" == childName))
1982 {
1983 childValue = new RelatedBundle();
1984 }
1985 if (("Update" == childName))
1986 {
1987 childValue = new Update();
1988 }
1989 if (("Variable" == childName))
1990 {
1991 childValue = new Variable();
1992 }
1993 if (("WixVariable" == childName))
1994 {
1995 childValue = new WixVariable();
1996 }
1997 if ((null == childValue))
1998 {
1999 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
2000 }
2001 return childValue;
2002 }
2003
2004 /// <summary>
2005 /// Processes this element and all child elements into an XmlWriter.
2006 /// </summary>
2007 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
2008 public virtual void OutputXml(XmlWriter writer)
2009 {
2010 if ((null == writer))
2011 {
2012 throw new ArgumentNullException("writer");
2013 }
2014 writer.WriteStartElement("Bundle", "http://wixtoolset.org/schemas/v4/wxs");
2015 if (this.aboutUrlFieldSet)
2016 {
2017 writer.WriteAttributeString("AboutUrl", this.aboutUrlField);
2018 }
2019 if (this.copyrightFieldSet)
2020 {
2021 writer.WriteAttributeString("Copyright", this.copyrightField);
2022 }
2023 if (this.compressedFieldSet)
2024 {
2025 if ((this.compressedField == YesNoDefaultType.@default))
2026 {
2027 writer.WriteAttributeString("Compressed", "default");
2028 }
2029 if ((this.compressedField == YesNoDefaultType.no))
2030 {
2031 writer.WriteAttributeString("Compressed", "no");
2032 }
2033 if ((this.compressedField == YesNoDefaultType.yes))
2034 {
2035 writer.WriteAttributeString("Compressed", "yes");
2036 }
2037 }
2038 if (this.disableModifyFieldSet)
2039 {
2040 if ((this.disableModifyField == YesNoButtonType.no))
2041 {
2042 writer.WriteAttributeString("DisableModify", "no");
2043 }
2044 if ((this.disableModifyField == YesNoButtonType.yes))
2045 {
2046 writer.WriteAttributeString("DisableModify", "yes");
2047 }
2048 if ((this.disableModifyField == YesNoButtonType.button))
2049 {
2050 writer.WriteAttributeString("DisableModify", "button");
2051 }
2052 }
2053 if (this.disableRemoveFieldSet)
2054 {
2055 if ((this.disableRemoveField == YesNoType.no))
2056 {
2057 writer.WriteAttributeString("DisableRemove", "no");
2058 }
2059 if ((this.disableRemoveField == YesNoType.yes))
2060 {
2061 writer.WriteAttributeString("DisableRemove", "yes");
2062 }
2063 }
2064 if (this.disableRepairFieldSet)
2065 {
2066 if ((this.disableRepairField == YesNoType.no))
2067 {
2068 writer.WriteAttributeString("DisableRepair", "no");
2069 }
2070 if ((this.disableRepairField == YesNoType.yes))
2071 {
2072 writer.WriteAttributeString("DisableRepair", "yes");
2073 }
2074 }
2075 if (this.helpTelephoneFieldSet)
2076 {
2077 writer.WriteAttributeString("HelpTelephone", this.helpTelephoneField);
2078 }
2079 if (this.helpUrlFieldSet)
2080 {
2081 writer.WriteAttributeString("HelpUrl", this.helpUrlField);
2082 }
2083 if (this.iconSourceFileFieldSet)
2084 {
2085 writer.WriteAttributeString("IconSourceFile", this.iconSourceFileField);
2086 }
2087 if (this.manufacturerFieldSet)
2088 {
2089 writer.WriteAttributeString("Manufacturer", this.manufacturerField);
2090 }
2091 if (this.nameFieldSet)
2092 {
2093 writer.WriteAttributeString("Name", this.nameField);
2094 }
2095 if (this.parentNameFieldSet)
2096 {
2097 writer.WriteAttributeString("ParentName", this.parentNameField);
2098 }
2099 if (this.splashScreenSourceFileFieldSet)
2100 {
2101 writer.WriteAttributeString("SplashScreenSourceFile", this.splashScreenSourceFileField);
2102 }
2103 if (this.tagFieldSet)
2104 {
2105 writer.WriteAttributeString("Tag", this.tagField);
2106 }
2107 if (this.updateUrlFieldSet)
2108 {
2109 writer.WriteAttributeString("UpdateUrl", this.updateUrlField);
2110 }
2111 if (this.upgradeCodeFieldSet)
2112 {
2113 writer.WriteAttributeString("UpgradeCode", this.upgradeCodeField);
2114 }
2115 if (this.versionFieldSet)
2116 {
2117 writer.WriteAttributeString("Version", this.versionField);
2118 }
2119 if (this.conditionFieldSet)
2120 {
2121 writer.WriteAttributeString("Condition", this.conditionField);
2122 }
2123 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
2124 {
2125 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
2126 childElement.OutputXml(writer);
2127 }
2128 writer.WriteEndElement();
2129 }
2130
2131 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
2132 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
2133 void ISetAttributes.SetAttribute(string name, string value)
2134 {
2135 if (String.IsNullOrEmpty(name))
2136 {
2137 throw new ArgumentNullException("name");
2138 }
2139 if (("AboutUrl" == name))
2140 {
2141 this.aboutUrlField = value;
2142 this.aboutUrlFieldSet = true;
2143 }
2144 if (("Copyright" == name))
2145 {
2146 this.copyrightField = value;
2147 this.copyrightFieldSet = true;
2148 }
2149 if (("Compressed" == name))
2150 {
2151 this.compressedField = Enums.ParseYesNoDefaultType(value);
2152 this.compressedFieldSet = true;
2153 }
2154 if (("DisableModify" == name))
2155 {
2156 this.disableModifyField = Enums.ParseYesNoButtonType(value);
2157 this.disableModifyFieldSet = true;
2158 }
2159 if (("DisableRemove" == name))
2160 {
2161 this.disableRemoveField = Enums.ParseYesNoType(value);
2162 this.disableRemoveFieldSet = true;
2163 }
2164 if (("DisableRepair" == name))
2165 {
2166 this.disableRepairField = Enums.ParseYesNoType(value);
2167 this.disableRepairFieldSet = true;
2168 }
2169 if (("HelpTelephone" == name))
2170 {
2171 this.helpTelephoneField = value;
2172 this.helpTelephoneFieldSet = true;
2173 }
2174 if (("HelpUrl" == name))
2175 {
2176 this.helpUrlField = value;
2177 this.helpUrlFieldSet = true;
2178 }
2179 if (("IconSourceFile" == name))
2180 {
2181 this.iconSourceFileField = value;
2182 this.iconSourceFileFieldSet = true;
2183 }
2184 if (("Manufacturer" == name))
2185 {
2186 this.manufacturerField = value;
2187 this.manufacturerFieldSet = true;
2188 }
2189 if (("Name" == name))
2190 {
2191 this.nameField = value;
2192 this.nameFieldSet = true;
2193 }
2194 if (("ParentName" == name))
2195 {
2196 this.parentNameField = value;
2197 this.parentNameFieldSet = true;
2198 }
2199 if (("SplashScreenSourceFile" == name))
2200 {
2201 this.splashScreenSourceFileField = value;
2202 this.splashScreenSourceFileFieldSet = true;
2203 }
2204 if (("Tag" == name))
2205 {
2206 this.tagField = value;
2207 this.tagFieldSet = true;
2208 }
2209 if (("UpdateUrl" == name))
2210 {
2211 this.updateUrlField = value;
2212 this.updateUrlFieldSet = true;
2213 }
2214 if (("UpgradeCode" == name))
2215 {
2216 this.upgradeCodeField = value;
2217 this.upgradeCodeFieldSet = true;
2218 }
2219 if (("Version" == name))
2220 {
2221 this.versionField = value;
2222 this.versionFieldSet = true;
2223 }
2224 if (("Condition" == name))
2225 {
2226 this.conditionField = value;
2227 this.conditionFieldSet = true;
2228 }
2229 }
2230 }
2231
2232 /// <summary>
2233 /// Provides information about an .exe so that the BA can request the engine to run it elevated from any secure location.
2234 /// </summary>
2235 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
2236 public class ApprovedExeForElevation : ISchemaElement, ISetAttributes
2237 {
2238
2239 private string idField;
2240
2241 private bool idFieldSet;
2242
2243 private string keyField;
2244
2245 private bool keyFieldSet;
2246
2247 private string valueField;
2248
2249 private bool valueFieldSet;
2250
2251 private YesNoType win64Field;
2252
2253 private bool win64FieldSet;
2254
2255 private ISchemaElement parentElement;
2256
2257 /// <summary>
2258 /// The identifier of the ApprovedExeForElevation element.
2259 /// </summary>
2260 public string Id
2261 {
2262 get
2263 {
2264 return this.idField;
2265 }
2266 set
2267 {
2268 this.idFieldSet = true;
2269 this.idField = value;
2270 }
2271 }
2272
2273 /// <summary>
2274 /// The key path.
2275 /// For security purposes, the root key will be HKLM and Variables are not supported.
2276 /// </summary>
2277 public string Key
2278 {
2279 get
2280 {
2281 return this.keyField;
2282 }
2283 set
2284 {
2285 this.keyFieldSet = true;
2286 this.keyField = value;
2287 }
2288 }
2289
2290 /// <summary>
2291 /// The value name.
2292 /// For security purposes, Variables are not supported.
2293 /// </summary>
2294 public string Value
2295 {
2296 get
2297 {
2298 return this.valueField;
2299 }
2300 set
2301 {
2302 this.valueFieldSet = true;
2303 this.valueField = value;
2304 }
2305 }
2306
2307 /// <summary>
2308 /// Instructs the search to look in the 64-bit registry when the value is 'yes'.
2309 /// When the value is 'no', the search looks in the 32-bit registry.
2310 /// The default value is 'no'.
2311 /// </summary>
2312 public YesNoType Win64
2313 {
2314 get
2315 {
2316 return this.win64Field;
2317 }
2318 set
2319 {
2320 this.win64FieldSet = true;
2321 this.win64Field = value;
2322 }
2323 }
2324
2325 public virtual ISchemaElement ParentElement
2326 {
2327 get
2328 {
2329 return this.parentElement;
2330 }
2331 set
2332 {
2333 this.parentElement = value;
2334 }
2335 }
2336
2337 /// <summary>
2338 /// Processes this element and all child elements into an XmlWriter.
2339 /// </summary>
2340 public virtual void OutputXml(XmlWriter writer)
2341 {
2342 if ((null == writer))
2343 {
2344 throw new ArgumentNullException("writer");
2345 }
2346 writer.WriteStartElement("ApprovedExeForElevation", "http://wixtoolset.org/schemas/v4/wxs");
2347 if (this.idFieldSet)
2348 {
2349 writer.WriteAttributeString("Id", this.idField);
2350 }
2351 if (this.keyFieldSet)
2352 {
2353 writer.WriteAttributeString("Key", this.keyField);
2354 }
2355 if (this.valueFieldSet)
2356 {
2357 writer.WriteAttributeString("Value", this.valueField);
2358 }
2359 if (this.win64FieldSet)
2360 {
2361 if ((this.win64Field == YesNoType.no))
2362 {
2363 writer.WriteAttributeString("Win64", "no");
2364 }
2365 if ((this.win64Field == YesNoType.yes))
2366 {
2367 writer.WriteAttributeString("Win64", "yes");
2368 }
2369 }
2370 writer.WriteEndElement();
2371 }
2372
2373 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
2374 void ISetAttributes.SetAttribute(string name, string value)
2375 {
2376 if (String.IsNullOrEmpty(name))
2377 {
2378 throw new ArgumentNullException("name");
2379 }
2380 if (("Id" == name))
2381 {
2382 this.idField = value;
2383 this.idFieldSet = true;
2384 }
2385 if (("Key" == name))
2386 {
2387 this.keyField = value;
2388 this.keyFieldSet = true;
2389 }
2390 if (("Value" == name))
2391 {
2392 this.valueField = value;
2393 this.valueFieldSet = true;
2394 }
2395 if (("Win64" == name))
2396 {
2397 this.win64Field = Enums.ParseYesNoType(value);
2398 this.win64FieldSet = true;
2399 }
2400 }
2401 }
2402
2403 /// <summary>
2404 /// Overrides the default log settings for a bundle.
2405 /// </summary>
2406 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
2407 public class Log : ISchemaElement, ISetAttributes
2408 {
2409
2410 private YesNoType disableField;
2411
2412 private bool disableFieldSet;
2413
2414 private string pathVariableField;
2415
2416 private bool pathVariableFieldSet;
2417
2418 private string prefixField;
2419
2420 private bool prefixFieldSet;
2421
2422 private string extensionField;
2423
2424 private bool extensionFieldSet;
2425
2426 private ISchemaElement parentElement;
2427
2428 /// <summary>
2429 /// Disables the default logging in the Bundle. The end user can still generate a
2430 /// log file by specifying the "-l" command-line argument when installing the
2431 /// Bundle.
2432 /// </summary>
2433 public YesNoType Disable
2434 {
2435 get
2436 {
2437 return this.disableField;
2438 }
2439 set
2440 {
2441 this.disableFieldSet = true;
2442 this.disableField = value;
2443 }
2444 }
2445
2446 /// <summary>
2447 /// Name of a Variable that will hold the path to the log file. An empty value
2448 /// will cause the variable to not be set. The default is "WixBundleLog".
2449 /// </summary>
2450 public string PathVariable
2451 {
2452 get
2453 {
2454 return this.pathVariableField;
2455 }
2456 set
2457 {
2458 this.pathVariableFieldSet = true;
2459 this.pathVariableField = value;
2460 }
2461 }
2462
2463 /// <summary>
2464 /// File name and optionally a relative path to use as the prefix for the log file. The
2465 /// default is to use the Bundle/@Name or, if Bundle/@Name is not specified, the value
2466 /// "Setup".
2467 /// </summary>
2468 public string Prefix
2469 {
2470 get
2471 {
2472 return this.prefixField;
2473 }
2474 set
2475 {
2476 this.prefixFieldSet = true;
2477 this.prefixField = value;
2478 }
2479 }
2480
2481 /// <summary>
2482 /// The extension to use for the log. The default is ".log".
2483 /// </summary>
2484 public string Extension
2485 {
2486 get
2487 {
2488 return this.extensionField;
2489 }
2490 set
2491 {
2492 this.extensionFieldSet = true;
2493 this.extensionField = value;
2494 }
2495 }
2496
2497 public virtual ISchemaElement ParentElement
2498 {
2499 get
2500 {
2501 return this.parentElement;
2502 }
2503 set
2504 {
2505 this.parentElement = value;
2506 }
2507 }
2508
2509 /// <summary>
2510 /// Processes this element and all child elements into an XmlWriter.
2511 /// </summary>
2512 public virtual void OutputXml(XmlWriter writer)
2513 {
2514 if ((null == writer))
2515 {
2516 throw new ArgumentNullException("writer");
2517 }
2518 writer.WriteStartElement("Log", "http://wixtoolset.org/schemas/v4/wxs");
2519 if (this.disableFieldSet)
2520 {
2521 if ((this.disableField == YesNoType.no))
2522 {
2523 writer.WriteAttributeString("Disable", "no");
2524 }
2525 if ((this.disableField == YesNoType.yes))
2526 {
2527 writer.WriteAttributeString("Disable", "yes");
2528 }
2529 }
2530 if (this.pathVariableFieldSet)
2531 {
2532 writer.WriteAttributeString("PathVariable", this.pathVariableField);
2533 }
2534 if (this.prefixFieldSet)
2535 {
2536 writer.WriteAttributeString("Prefix", this.prefixField);
2537 }
2538 if (this.extensionFieldSet)
2539 {
2540 writer.WriteAttributeString("Extension", this.extensionField);
2541 }
2542 writer.WriteEndElement();
2543 }
2544
2545 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
2546 void ISetAttributes.SetAttribute(string name, string value)
2547 {
2548 if (String.IsNullOrEmpty(name))
2549 {
2550 throw new ArgumentNullException("name");
2551 }
2552 if (("Disable" == name))
2553 {
2554 this.disableField = Enums.ParseYesNoType(value);
2555 this.disableFieldSet = true;
2556 }
2557 if (("PathVariable" == name))
2558 {
2559 this.pathVariableField = value;
2560 this.pathVariableFieldSet = true;
2561 }
2562 if (("Prefix" == name))
2563 {
2564 this.prefixField = value;
2565 this.prefixFieldSet = true;
2566 }
2567 if (("Extension" == name))
2568 {
2569 this.extensionField = value;
2570 this.extensionFieldSet = true;
2571 }
2572 }
2573 }
2574
2575 /// <summary>
2576 /// Specify one or more catalog files that will be used to verify the contents of the bundle.
2577 /// </summary>
2578 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
2579 public class Catalog : ISchemaElement, ISetAttributes
2580 {
2581
2582 private string idField;
2583
2584 private bool idFieldSet;
2585
2586 private string sourceFileField;
2587
2588 private bool sourceFileFieldSet;
2589
2590 private ISchemaElement parentElement;
2591
2592 /// <summary>
2593 /// The identifier of the catalog element.
2594 /// </summary>
2595 public string Id
2596 {
2597 get
2598 {
2599 return this.idField;
2600 }
2601 set
2602 {
2603 this.idFieldSet = true;
2604 this.idField = value;
2605 }
2606 }
2607
2608 /// <summary>
2609 /// The catalog file
2610 /// </summary>
2611 public string SourceFile
2612 {
2613 get
2614 {
2615 return this.sourceFileField;
2616 }
2617 set
2618 {
2619 this.sourceFileFieldSet = true;
2620 this.sourceFileField = value;
2621 }
2622 }
2623
2624 public virtual ISchemaElement ParentElement
2625 {
2626 get
2627 {
2628 return this.parentElement;
2629 }
2630 set
2631 {
2632 this.parentElement = value;
2633 }
2634 }
2635
2636 /// <summary>
2637 /// Processes this element and all child elements into an XmlWriter.
2638 /// </summary>
2639 public virtual void OutputXml(XmlWriter writer)
2640 {
2641 if ((null == writer))
2642 {
2643 throw new ArgumentNullException("writer");
2644 }
2645 writer.WriteStartElement("Catalog", "http://wixtoolset.org/schemas/v4/wxs");
2646 if (this.idFieldSet)
2647 {
2648 writer.WriteAttributeString("Id", this.idField);
2649 }
2650 if (this.sourceFileFieldSet)
2651 {
2652 writer.WriteAttributeString("SourceFile", this.sourceFileField);
2653 }
2654 writer.WriteEndElement();
2655 }
2656
2657 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
2658 void ISetAttributes.SetAttribute(string name, string value)
2659 {
2660 if (String.IsNullOrEmpty(name))
2661 {
2662 throw new ArgumentNullException("name");
2663 }
2664 if (("Id" == name))
2665 {
2666 this.idField = value;
2667 this.idFieldSet = true;
2668 }
2669 if (("SourceFile" == name))
2670 {
2671 this.sourceFileField = value;
2672 this.sourceFileFieldSet = true;
2673 }
2674 }
2675 }
2676
2677 /// <summary>
2678 /// Contains all the relevant information about the setup UI.
2679 /// </summary>
2680 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
2681 public class BootstrapperApplication : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
2682 {
2683
2684 private ElementCollection children;
2685
2686 private string idField;
2687
2688 private bool idFieldSet;
2689
2690 private string sourceFileField;
2691
2692 private bool sourceFileFieldSet;
2693
2694 private string nameField;
2695
2696 private bool nameFieldSet;
2697
2698 private ISchemaElement parentElement;
2699
2700 public BootstrapperApplication()
2701 {
2702 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
2703 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload)));
2704 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef)));
2705 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
2706 this.children = childCollection0;
2707 }
2708
2709 public virtual IEnumerable Children
2710 {
2711 get
2712 {
2713 return this.children;
2714 }
2715 }
2716
2717 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
2718 public virtual IEnumerable this[System.Type childType]
2719 {
2720 get
2721 {
2722 return this.children.Filter(childType);
2723 }
2724 }
2725
2726 /// <summary>
2727 /// The identifier of the BootstrapperApplication element. Only required if you want to reference this element using a BootstrapperApplicationRef element.
2728 /// </summary>
2729 public string Id
2730 {
2731 get
2732 {
2733 return this.idField;
2734 }
2735 set
2736 {
2737 this.idFieldSet = true;
2738 this.idField = value;
2739 }
2740 }
2741
2742 /// <summary>
2743 /// The DLL with the bootstrapper application entry function.
2744 /// </summary>
2745 public string SourceFile
2746 {
2747 get
2748 {
2749 return this.sourceFileField;
2750 }
2751 set
2752 {
2753 this.sourceFileFieldSet = true;
2754 this.sourceFileField = value;
2755 }
2756 }
2757
2758 /// <summary>
2759 /// The relative destination path and file name for the bootstrapper application DLL. The default is the source file name. Use this attribute to rename the bootstrapper application DLL or extract it into a subfolder. The use of '..' directories is not allowed.
2760 /// </summary>
2761 public string Name
2762 {
2763 get
2764 {
2765 return this.nameField;
2766 }
2767 set
2768 {
2769 this.nameFieldSet = true;
2770 this.nameField = value;
2771 }
2772 }
2773
2774 public virtual ISchemaElement ParentElement
2775 {
2776 get
2777 {
2778 return this.parentElement;
2779 }
2780 set
2781 {
2782 this.parentElement = value;
2783 }
2784 }
2785
2786 public virtual void AddChild(ISchemaElement child)
2787 {
2788 if ((null == child))
2789 {
2790 throw new ArgumentNullException("child");
2791 }
2792 this.children.AddElement(child);
2793 child.ParentElement = this;
2794 }
2795
2796 public virtual void RemoveChild(ISchemaElement child)
2797 {
2798 if ((null == child))
2799 {
2800 throw new ArgumentNullException("child");
2801 }
2802 this.children.RemoveElement(child);
2803 child.ParentElement = null;
2804 }
2805
2806 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
2807 ISchemaElement ICreateChildren.CreateChild(string childName)
2808 {
2809 if (String.IsNullOrEmpty(childName))
2810 {
2811 throw new ArgumentNullException("childName");
2812 }
2813 ISchemaElement childValue = null;
2814 if (("Payload" == childName))
2815 {
2816 childValue = new Payload();
2817 }
2818 if (("PayloadGroupRef" == childName))
2819 {
2820 childValue = new PayloadGroupRef();
2821 }
2822 if ((null == childValue))
2823 {
2824 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
2825 }
2826 return childValue;
2827 }
2828
2829 /// <summary>
2830 /// Processes this element and all child elements into an XmlWriter.
2831 /// </summary>
2832 public virtual void OutputXml(XmlWriter writer)
2833 {
2834 if ((null == writer))
2835 {
2836 throw new ArgumentNullException("writer");
2837 }
2838 writer.WriteStartElement("BootstrapperApplication", "http://wixtoolset.org/schemas/v4/wxs");
2839 if (this.idFieldSet)
2840 {
2841 writer.WriteAttributeString("Id", this.idField);
2842 }
2843 if (this.sourceFileFieldSet)
2844 {
2845 writer.WriteAttributeString("SourceFile", this.sourceFileField);
2846 }
2847 if (this.nameFieldSet)
2848 {
2849 writer.WriteAttributeString("Name", this.nameField);
2850 }
2851 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
2852 {
2853 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
2854 childElement.OutputXml(writer);
2855 }
2856 writer.WriteEndElement();
2857 }
2858
2859 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
2860 void ISetAttributes.SetAttribute(string name, string value)
2861 {
2862 if (String.IsNullOrEmpty(name))
2863 {
2864 throw new ArgumentNullException("name");
2865 }
2866 if (("Id" == name))
2867 {
2868 this.idField = value;
2869 this.idFieldSet = true;
2870 }
2871 if (("SourceFile" == name))
2872 {
2873 this.sourceFileField = value;
2874 this.sourceFileFieldSet = true;
2875 }
2876 if (("Name" == name))
2877 {
2878 this.nameField = value;
2879 this.nameFieldSet = true;
2880 }
2881 }
2882 }
2883
2884 /// <summary>
2885 /// Used to reference a BootstrapperApplication element and optionally add additional payloads to the bootstrapper application.
2886 /// </summary>
2887 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
2888 public class BootstrapperApplicationRef : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
2889 {
2890
2891 private ElementCollection children;
2892
2893 private string idField;
2894
2895 private bool idFieldSet;
2896
2897 private ISchemaElement parentElement;
2898
2899 public BootstrapperApplicationRef()
2900 {
2901 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
2902 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload)));
2903 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef)));
2904 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
2905 this.children = childCollection0;
2906 }
2907
2908 public virtual IEnumerable Children
2909 {
2910 get
2911 {
2912 return this.children;
2913 }
2914 }
2915
2916 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
2917 public virtual IEnumerable this[System.Type childType]
2918 {
2919 get
2920 {
2921 return this.children.Filter(childType);
2922 }
2923 }
2924
2925 /// <summary>
2926 /// The identifier of the BootstrapperApplication element to reference.
2927 /// </summary>
2928 public string Id
2929 {
2930 get
2931 {
2932 return this.idField;
2933 }
2934 set
2935 {
2936 this.idFieldSet = true;
2937 this.idField = value;
2938 }
2939 }
2940
2941 public virtual ISchemaElement ParentElement
2942 {
2943 get
2944 {
2945 return this.parentElement;
2946 }
2947 set
2948 {
2949 this.parentElement = value;
2950 }
2951 }
2952
2953 public virtual void AddChild(ISchemaElement child)
2954 {
2955 if ((null == child))
2956 {
2957 throw new ArgumentNullException("child");
2958 }
2959 this.children.AddElement(child);
2960 child.ParentElement = this;
2961 }
2962
2963 public virtual void RemoveChild(ISchemaElement child)
2964 {
2965 if ((null == child))
2966 {
2967 throw new ArgumentNullException("child");
2968 }
2969 this.children.RemoveElement(child);
2970 child.ParentElement = null;
2971 }
2972
2973 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
2974 ISchemaElement ICreateChildren.CreateChild(string childName)
2975 {
2976 if (String.IsNullOrEmpty(childName))
2977 {
2978 throw new ArgumentNullException("childName");
2979 }
2980 ISchemaElement childValue = null;
2981 if (("Payload" == childName))
2982 {
2983 childValue = new Payload();
2984 }
2985 if (("PayloadGroupRef" == childName))
2986 {
2987 childValue = new PayloadGroupRef();
2988 }
2989 if ((null == childValue))
2990 {
2991 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
2992 }
2993 return childValue;
2994 }
2995
2996 /// <summary>
2997 /// Processes this element and all child elements into an XmlWriter.
2998 /// </summary>
2999 public virtual void OutputXml(XmlWriter writer)
3000 {
3001 if ((null == writer))
3002 {
3003 throw new ArgumentNullException("writer");
3004 }
3005 writer.WriteStartElement("BootstrapperApplicationRef", "http://wixtoolset.org/schemas/v4/wxs");
3006 if (this.idFieldSet)
3007 {
3008 writer.WriteAttributeString("Id", this.idField);
3009 }
3010 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
3011 {
3012 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
3013 childElement.OutputXml(writer);
3014 }
3015 writer.WriteEndElement();
3016 }
3017
3018 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
3019 void ISetAttributes.SetAttribute(string name, string value)
3020 {
3021 if (String.IsNullOrEmpty(name))
3022 {
3023 throw new ArgumentNullException("name");
3024 }
3025 if (("Id" == name))
3026 {
3027 this.idField = value;
3028 this.idFieldSet = true;
3029 }
3030 }
3031 }
3032
3033 /// <summary>
3034 /// This element has been deprecated. Use the BootstrapperApplication element instead.
3035 /// </summary>
3036 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
3037 public class UX : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
3038 {
3039
3040 private ElementCollection children;
3041
3042 private string sourceFileField;
3043
3044 private bool sourceFileFieldSet;
3045
3046 private string nameField;
3047
3048 private bool nameFieldSet;
3049
3050 private string splashScreenSourceFileField;
3051
3052 private bool splashScreenSourceFileFieldSet;
3053
3054 private ISchemaElement parentElement;
3055
3056 public UX()
3057 {
3058 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
3059 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload)));
3060 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef)));
3061 this.children = childCollection0;
3062 }
3063
3064 public virtual IEnumerable Children
3065 {
3066 get
3067 {
3068 return this.children;
3069 }
3070 }
3071
3072 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
3073 public virtual IEnumerable this[System.Type childType]
3074 {
3075 get
3076 {
3077 return this.children.Filter(childType);
3078 }
3079 }
3080
3081 /// <summary>
3082 /// See the BootstrapperApplication instead.
3083 /// </summary>
3084 public string SourceFile
3085 {
3086 get
3087 {
3088 return this.sourceFileField;
3089 }
3090 set
3091 {
3092 this.sourceFileFieldSet = true;
3093 this.sourceFileField = value;
3094 }
3095 }
3096
3097 /// <summary>
3098 /// See the BootstrapperApplication instead.
3099 /// </summary>
3100 public string Name
3101 {
3102 get
3103 {
3104 return this.nameField;
3105 }
3106 set
3107 {
3108 this.nameFieldSet = true;
3109 this.nameField = value;
3110 }
3111 }
3112
3113 /// <summary>
3114 /// See the BootstrapperApplication instead.
3115 /// </summary>
3116 public string SplashScreenSourceFile
3117 {
3118 get
3119 {
3120 return this.splashScreenSourceFileField;
3121 }
3122 set
3123 {
3124 this.splashScreenSourceFileFieldSet = true;
3125 this.splashScreenSourceFileField = value;
3126 }
3127 }
3128
3129 public virtual ISchemaElement ParentElement
3130 {
3131 get
3132 {
3133 return this.parentElement;
3134 }
3135 set
3136 {
3137 this.parentElement = value;
3138 }
3139 }
3140
3141 public virtual void AddChild(ISchemaElement child)
3142 {
3143 if ((null == child))
3144 {
3145 throw new ArgumentNullException("child");
3146 }
3147 this.children.AddElement(child);
3148 child.ParentElement = this;
3149 }
3150
3151 public virtual void RemoveChild(ISchemaElement child)
3152 {
3153 if ((null == child))
3154 {
3155 throw new ArgumentNullException("child");
3156 }
3157 this.children.RemoveElement(child);
3158 child.ParentElement = null;
3159 }
3160
3161 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
3162 ISchemaElement ICreateChildren.CreateChild(string childName)
3163 {
3164 if (String.IsNullOrEmpty(childName))
3165 {
3166 throw new ArgumentNullException("childName");
3167 }
3168 ISchemaElement childValue = null;
3169 if (("Payload" == childName))
3170 {
3171 childValue = new Payload();
3172 }
3173 if (("PayloadGroupRef" == childName))
3174 {
3175 childValue = new PayloadGroupRef();
3176 }
3177 if ((null == childValue))
3178 {
3179 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
3180 }
3181 return childValue;
3182 }
3183
3184 /// <summary>
3185 /// Processes this element and all child elements into an XmlWriter.
3186 /// </summary>
3187 public virtual void OutputXml(XmlWriter writer)
3188 {
3189 if ((null == writer))
3190 {
3191 throw new ArgumentNullException("writer");
3192 }
3193 writer.WriteStartElement("UX", "http://wixtoolset.org/schemas/v4/wxs");
3194 if (this.sourceFileFieldSet)
3195 {
3196 writer.WriteAttributeString("SourceFile", this.sourceFileField);
3197 }
3198 if (this.nameFieldSet)
3199 {
3200 writer.WriteAttributeString("Name", this.nameField);
3201 }
3202 if (this.splashScreenSourceFileFieldSet)
3203 {
3204 writer.WriteAttributeString("SplashScreenSourceFile", this.splashScreenSourceFileField);
3205 }
3206 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
3207 {
3208 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
3209 childElement.OutputXml(writer);
3210 }
3211 writer.WriteEndElement();
3212 }
3213
3214 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
3215 void ISetAttributes.SetAttribute(string name, string value)
3216 {
3217 if (String.IsNullOrEmpty(name))
3218 {
3219 throw new ArgumentNullException("name");
3220 }
3221 if (("SourceFile" == name))
3222 {
3223 this.sourceFileField = value;
3224 this.sourceFileFieldSet = true;
3225 }
3226 if (("Name" == name))
3227 {
3228 this.nameField = value;
3229 this.nameFieldSet = true;
3230 }
3231 if (("SplashScreenSourceFile" == name))
3232 {
3233 this.splashScreenSourceFileField = value;
3234 this.splashScreenSourceFileFieldSet = true;
3235 }
3236 }
3237 }
3238
3239 /// <summary>
3240 /// Writes additional information to the Windows registry that can be used to detect the bundle.
3241 /// This registration is intended primarily for update to an existing product.
3242 /// </summary>
3243 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
3244 public class OptionalUpdateRegistration : ISchemaElement, ISetAttributes
3245 {
3246
3247 private string manufacturerField;
3248
3249 private bool manufacturerFieldSet;
3250
3251 private string departmentField;
3252
3253 private bool departmentFieldSet;
3254
3255 private string productFamilyField;
3256
3257 private bool productFamilyFieldSet;
3258
3259 private string nameField;
3260
3261 private bool nameFieldSet;
3262
3263 private string classificationField;
3264
3265 private bool classificationFieldSet;
3266
3267 private ISchemaElement parentElement;
3268
3269 /// <summary>
3270 /// The name of the manufacturer. The default is the Bundle/@Manufacturer attribute,
3271 /// but may also be a short form, ex: Acme instead of Acme Corporation.
3272 /// An error is generated at build time if neither attribute is specified.
3273 /// </summary>
3274 public string Manufacturer
3275 {
3276 get
3277 {
3278 return this.manufacturerField;
3279 }
3280 set
3281 {
3282 this.manufacturerFieldSet = true;
3283 this.manufacturerField = value;
3284 }
3285 }
3286
3287 /// <summary>
3288 /// The name of the department or division publishing the update bundle.
3289 /// The PublishingGroup registry value is not written if this attribute is not specified.
3290 /// </summary>
3291 public string Department
3292 {
3293 get
3294 {
3295 return this.departmentField;
3296 }
3297 set
3298 {
3299 this.departmentFieldSet = true;
3300 this.departmentField = value;
3301 }
3302 }
3303
3304 /// <summary>
3305 /// The name of the family of products being updated. The default is the Bundle/@ParentName attribute.
3306 /// The corresponding registry key is not created if neither attribute is specified.
3307 /// </summary>
3308 public string ProductFamily
3309 {
3310 get
3311 {
3312 return this.productFamilyField;
3313 }
3314 set
3315 {
3316 this.productFamilyFieldSet = true;
3317 this.productFamilyField = value;
3318 }
3319 }
3320
3321 /// <summary>
3322 /// The name of the bundle. The default is the Bundle/@Name attribute,
3323 /// but may also be a short form, ex: KB12345 instead of Update to Product (KB12345).
3324 /// An error is generated at build time if neither attribute is specified.
3325 /// </summary>
3326 public string Name
3327 {
3328 get
3329 {
3330 return this.nameField;
3331 }
3332 set
3333 {
3334 this.nameFieldSet = true;
3335 this.nameField = value;
3336 }
3337 }
3338
3339 /// <summary>
3340 /// The release type of the update bundle, such as Update, Security Update, Service Pack, etc.
3341 /// The default value is Update.
3342 /// </summary>
3343 public string Classification
3344 {
3345 get
3346 {
3347 return this.classificationField;
3348 }
3349 set
3350 {
3351 this.classificationFieldSet = true;
3352 this.classificationField = value;
3353 }
3354 }
3355
3356 public virtual ISchemaElement ParentElement
3357 {
3358 get
3359 {
3360 return this.parentElement;
3361 }
3362 set
3363 {
3364 this.parentElement = value;
3365 }
3366 }
3367
3368 /// <summary>
3369 /// Processes this element and all child elements into an XmlWriter.
3370 /// </summary>
3371 public virtual void OutputXml(XmlWriter writer)
3372 {
3373 if ((null == writer))
3374 {
3375 throw new ArgumentNullException("writer");
3376 }
3377 writer.WriteStartElement("OptionalUpdateRegistration", "http://wixtoolset.org/schemas/v4/wxs");
3378 if (this.manufacturerFieldSet)
3379 {
3380 writer.WriteAttributeString("Manufacturer", this.manufacturerField);
3381 }
3382 if (this.departmentFieldSet)
3383 {
3384 writer.WriteAttributeString("Department", this.departmentField);
3385 }
3386 if (this.productFamilyFieldSet)
3387 {
3388 writer.WriteAttributeString("ProductFamily", this.productFamilyField);
3389 }
3390 if (this.nameFieldSet)
3391 {
3392 writer.WriteAttributeString("Name", this.nameField);
3393 }
3394 if (this.classificationFieldSet)
3395 {
3396 writer.WriteAttributeString("Classification", this.classificationField);
3397 }
3398 writer.WriteEndElement();
3399 }
3400
3401 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
3402 void ISetAttributes.SetAttribute(string name, string value)
3403 {
3404 if (String.IsNullOrEmpty(name))
3405 {
3406 throw new ArgumentNullException("name");
3407 }
3408 if (("Manufacturer" == name))
3409 {
3410 this.manufacturerField = value;
3411 this.manufacturerFieldSet = true;
3412 }
3413 if (("Department" == name))
3414 {
3415 this.departmentField = value;
3416 this.departmentFieldSet = true;
3417 }
3418 if (("ProductFamily" == name))
3419 {
3420 this.productFamilyField = value;
3421 this.productFamilyFieldSet = true;
3422 }
3423 if (("Name" == name))
3424 {
3425 this.nameField = value;
3426 this.nameFieldSet = true;
3427 }
3428 if (("Classification" == name))
3429 {
3430 this.classificationField = value;
3431 this.classificationFieldSet = true;
3432 }
3433 }
3434 }
3435
3436 /// <summary>
3437 /// Contains the chain of packages to install.
3438 /// </summary>
3439 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
3440 public class Chain : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
3441 {
3442
3443 private ElementCollection children;
3444
3445 private YesNoType disableRollbackField;
3446
3447 private bool disableRollbackFieldSet;
3448
3449 private YesNoType disableSystemRestoreField;
3450
3451 private bool disableSystemRestoreFieldSet;
3452
3453 private YesNoType parallelCacheField;
3454
3455 private bool parallelCacheFieldSet;
3456
3457 private ISchemaElement parentElement;
3458
3459 public Chain()
3460 {
3461 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
3462 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiPackage)));
3463 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MspPackage)));
3464 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsuPackage)));
3465 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ExePackage)));
3466 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RollbackBoundary)));
3467 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageGroupRef)));
3468 this.children = childCollection0;
3469 }
3470
3471 public virtual IEnumerable Children
3472 {
3473 get
3474 {
3475 return this.children;
3476 }
3477 }
3478
3479 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
3480 public virtual IEnumerable this[System.Type childType]
3481 {
3482 get
3483 {
3484 return this.children.Filter(childType);
3485 }
3486 }
3487
3488 /// <summary>
3489 /// Specifies whether the bundle will attempt to rollback packages
3490 /// executed in the chain. If "yes" is specified then when a vital
3491 /// package fails to install only that package will rollback and the
3492 /// chain will stop with the error. The default is "no" which
3493 /// indicates all packages executed during the chain will be
3494 /// rolledback to their previous state when a vital package fails.
3495 /// </summary>
3496 public YesNoType DisableRollback
3497 {
3498 get
3499 {
3500 return this.disableRollbackField;
3501 }
3502 set
3503 {
3504 this.disableRollbackFieldSet = true;
3505 this.disableRollbackField = value;
3506 }
3507 }
3508
3509 /// <summary>
3510 /// Specifies whether the bundle will attempt to create a system
3511 /// restore point when executing the chain. If "yes" is specified then
3512 /// a system restore point will not be created. The default is "no" which
3513 /// indicates a system restore point will be created when the bundle is
3514 /// installed, uninstalled, repaired, modified, etc. If the system restore
3515 /// point cannot be created, the bundle will log the issue and continue.
3516 /// </summary>
3517 public YesNoType DisableSystemRestore
3518 {
3519 get
3520 {
3521 return this.disableSystemRestoreField;
3522 }
3523 set
3524 {
3525 this.disableSystemRestoreFieldSet = true;
3526 this.disableSystemRestoreField = value;
3527 }
3528 }
3529
3530 /// <summary>
3531 /// Specifies whether the bundle will start installing packages
3532 /// while other packages are still being cached. If "yes",
3533 /// packages will start executing when a rollback boundary is
3534 /// encountered. The default is "no" which dictates all packages
3535 /// must be cached before any packages will start to be installed.
3536 /// </summary>
3537 public YesNoType ParallelCache
3538 {
3539 get
3540 {
3541 return this.parallelCacheField;
3542 }
3543 set
3544 {
3545 this.parallelCacheFieldSet = true;
3546 this.parallelCacheField = value;
3547 }
3548 }
3549
3550 public virtual ISchemaElement ParentElement
3551 {
3552 get
3553 {
3554 return this.parentElement;
3555 }
3556 set
3557 {
3558 this.parentElement = value;
3559 }
3560 }
3561
3562 public virtual void AddChild(ISchemaElement child)
3563 {
3564 if ((null == child))
3565 {
3566 throw new ArgumentNullException("child");
3567 }
3568 this.children.AddElement(child);
3569 child.ParentElement = this;
3570 }
3571
3572 public virtual void RemoveChild(ISchemaElement child)
3573 {
3574 if ((null == child))
3575 {
3576 throw new ArgumentNullException("child");
3577 }
3578 this.children.RemoveElement(child);
3579 child.ParentElement = null;
3580 }
3581
3582 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
3583 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
3584 ISchemaElement ICreateChildren.CreateChild(string childName)
3585 {
3586 if (String.IsNullOrEmpty(childName))
3587 {
3588 throw new ArgumentNullException("childName");
3589 }
3590 ISchemaElement childValue = null;
3591 if (("MsiPackage" == childName))
3592 {
3593 childValue = new MsiPackage();
3594 }
3595 if (("MspPackage" == childName))
3596 {
3597 childValue = new MspPackage();
3598 }
3599 if (("MsuPackage" == childName))
3600 {
3601 childValue = new MsuPackage();
3602 }
3603 if (("ExePackage" == childName))
3604 {
3605 childValue = new ExePackage();
3606 }
3607 if (("RollbackBoundary" == childName))
3608 {
3609 childValue = new RollbackBoundary();
3610 }
3611 if (("PackageGroupRef" == childName))
3612 {
3613 childValue = new PackageGroupRef();
3614 }
3615 if ((null == childValue))
3616 {
3617 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
3618 }
3619 return childValue;
3620 }
3621
3622 /// <summary>
3623 /// Processes this element and all child elements into an XmlWriter.
3624 /// </summary>
3625 public virtual void OutputXml(XmlWriter writer)
3626 {
3627 if ((null == writer))
3628 {
3629 throw new ArgumentNullException("writer");
3630 }
3631 writer.WriteStartElement("Chain", "http://wixtoolset.org/schemas/v4/wxs");
3632 if (this.disableRollbackFieldSet)
3633 {
3634 if ((this.disableRollbackField == YesNoType.no))
3635 {
3636 writer.WriteAttributeString("DisableRollback", "no");
3637 }
3638 if ((this.disableRollbackField == YesNoType.yes))
3639 {
3640 writer.WriteAttributeString("DisableRollback", "yes");
3641 }
3642 }
3643 if (this.disableSystemRestoreFieldSet)
3644 {
3645 if ((this.disableSystemRestoreField == YesNoType.no))
3646 {
3647 writer.WriteAttributeString("DisableSystemRestore", "no");
3648 }
3649 if ((this.disableSystemRestoreField == YesNoType.yes))
3650 {
3651 writer.WriteAttributeString("DisableSystemRestore", "yes");
3652 }
3653 }
3654 if (this.parallelCacheFieldSet)
3655 {
3656 if ((this.parallelCacheField == YesNoType.no))
3657 {
3658 writer.WriteAttributeString("ParallelCache", "no");
3659 }
3660 if ((this.parallelCacheField == YesNoType.yes))
3661 {
3662 writer.WriteAttributeString("ParallelCache", "yes");
3663 }
3664 }
3665 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
3666 {
3667 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
3668 childElement.OutputXml(writer);
3669 }
3670 writer.WriteEndElement();
3671 }
3672
3673 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
3674 void ISetAttributes.SetAttribute(string name, string value)
3675 {
3676 if (String.IsNullOrEmpty(name))
3677 {
3678 throw new ArgumentNullException("name");
3679 }
3680 if (("DisableRollback" == name))
3681 {
3682 this.disableRollbackField = Enums.ParseYesNoType(value);
3683 this.disableRollbackFieldSet = true;
3684 }
3685 if (("DisableSystemRestore" == name))
3686 {
3687 this.disableSystemRestoreField = Enums.ParseYesNoType(value);
3688 this.disableSystemRestoreFieldSet = true;
3689 }
3690 if (("ParallelCache" == name))
3691 {
3692 this.parallelCacheField = Enums.ParseYesNoType(value);
3693 this.parallelCacheFieldSet = true;
3694 }
3695 }
3696 }
3697
3698 /// <summary>
3699 /// Describes a single msi package to install.
3700 /// </summary>
3701 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
3702 public class MsiPackage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
3703 {
3704
3705 private ElementCollection children;
3706
3707 private string sourceFileField;
3708
3709 private bool sourceFileFieldSet;
3710
3711 private string nameField;
3712
3713 private bool nameFieldSet;
3714
3715 private string downloadUrlField;
3716
3717 private bool downloadUrlFieldSet;
3718
3719 private string idField;
3720
3721 private bool idFieldSet;
3722
3723 private string afterField;
3724
3725 private bool afterFieldSet;
3726
3727 private string installSizeField;
3728
3729 private bool installSizeFieldSet;
3730
3731 private string installConditionField;
3732
3733 private bool installConditionFieldSet;
3734
3735 private YesNoAlwaysType cacheField;
3736
3737 private bool cacheFieldSet;
3738
3739 private string cacheIdField;
3740
3741 private bool cacheIdFieldSet;
3742
3743 private string displayNameField;
3744
3745 private bool displayNameFieldSet;
3746
3747 private string descriptionField;
3748
3749 private bool descriptionFieldSet;
3750
3751 private string logPathVariableField;
3752
3753 private bool logPathVariableFieldSet;
3754
3755 private string rollbackLogPathVariableField;
3756
3757 private bool rollbackLogPathVariableFieldSet;
3758
3759 private YesNoType permanentField;
3760
3761 private bool permanentFieldSet;
3762
3763 private YesNoType vitalField;
3764
3765 private bool vitalFieldSet;
3766
3767 private YesNoDefaultType compressedField;
3768
3769 private bool compressedFieldSet;
3770
3771 private YesNoType enableSignatureVerificationField;
3772
3773 private bool enableSignatureVerificationFieldSet;
3774
3775 private YesNoType displayInternalUIField;
3776
3777 private bool displayInternalUIFieldSet;
3778
3779 private YesNoType enableFeatureSelectionField;
3780
3781 private bool enableFeatureSelectionFieldSet;
3782
3783 private YesNoType forcePerMachineField;
3784
3785 private bool forcePerMachineFieldSet;
3786
3787 private YesNoType suppressLooseFilePayloadGenerationField;
3788
3789 private bool suppressLooseFilePayloadGenerationFieldSet;
3790
3791 private YesNoType visibleField;
3792
3793 private bool visibleFieldSet;
3794
3795 private ISchemaElement parentElement;
3796
3797 public MsiPackage()
3798 {
3799 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
3800 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiProperty)));
3801 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SlipstreamMsp)));
3802 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload)));
3803 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef)));
3804 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
3805 this.children = childCollection0;
3806 }
3807
3808 public virtual IEnumerable Children
3809 {
3810 get
3811 {
3812 return this.children;
3813 }
3814 }
3815
3816 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
3817 public virtual IEnumerable this[System.Type childType]
3818 {
3819 get
3820 {
3821 return this.children.Filter(childType);
3822 }
3823 }
3824
3825 /// <summary>
3826 /// Location of the package to add to the bundle. The default value is the Name attribute, if provided.
3827 /// At a minimum, the SourceFile or Name attribute must be specified.
3828 /// </summary>
3829 public string SourceFile
3830 {
3831 get
3832 {
3833 return this.sourceFileField;
3834 }
3835 set
3836 {
3837 this.sourceFileFieldSet = true;
3838 this.sourceFileField = value;
3839 }
3840 }
3841
3842 /// <summary>
3843 /// The destination path and file name for this chain payload. Use this attribute to rename the
3844 /// chain entry point or extract it into a subfolder. The default value is the file name from the
3845 /// SourceFile attribute, if provided. At a minimum, the Name or SourceFile attribute must be specified.
3846 /// The use of '..' directories is not allowed.
3847 /// </summary>
3848 public string Name
3849 {
3850 get
3851 {
3852 return this.nameField;
3853 }
3854 set
3855 {
3856 this.nameFieldSet = true;
3857 this.nameField = value;
3858 }
3859 }
3860
3861 public string DownloadUrl
3862 {
3863 get
3864 {
3865 return this.downloadUrlField;
3866 }
3867 set
3868 {
3869 this.downloadUrlFieldSet = true;
3870 this.downloadUrlField = value;
3871 }
3872 }
3873
3874 /// <summary>
3875 /// Identifier for this package, for ordering and cross-referencing. The default is the Name attribute
3876 /// modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores).
3877 /// </summary>
3878 public string Id
3879 {
3880 get
3881 {
3882 return this.idField;
3883 }
3884 set
3885 {
3886 this.idFieldSet = true;
3887 this.idField = value;
3888 }
3889 }
3890
3891 /// <summary>
3892 /// The identifier of another package that this one should be installed after. By default the After
3893 /// attribute is set to the previous sibling package in the Chain or PackageGroup element. If this
3894 /// attribute is specified ensure that a cycle is not created explicitly or implicitly.
3895 /// </summary>
3896 public string After
3897 {
3898 get
3899 {
3900 return this.afterField;
3901 }
3902 set
3903 {
3904 this.afterFieldSet = true;
3905 this.afterField = value;
3906 }
3907 }
3908
3909 /// <summary>
3910 /// The size this package will take on disk in bytes after it is installed. By default, the binder will
3911 /// calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs)
3912 /// and use the total for the install size of the package.
3913 /// </summary>
3914 public string InstallSize
3915 {
3916 get
3917 {
3918 return this.installSizeField;
3919 }
3920 set
3921 {
3922 this.installSizeFieldSet = true;
3923 this.installSizeField = value;
3924 }
3925 }
3926
3927 /// <summary>
3928 /// A condition to evaluate before installing the package. The package will only be installed if the condition evaluates to true. If the condition evaluates to false and the bundle is being installed, repaired, or modified, the package will be uninstalled.
3929 /// </summary>
3930 public string InstallCondition
3931 {
3932 get
3933 {
3934 return this.installConditionField;
3935 }
3936 set
3937 {
3938 this.installConditionFieldSet = true;
3939 this.installConditionField = value;
3940 }
3941 }
3942
3943 /// <summary>
3944 /// Whether to cache the package. The default is "yes".
3945 /// </summary>
3946 public YesNoAlwaysType Cache
3947 {
3948 get
3949 {
3950 return this.cacheField;
3951 }
3952 set
3953 {
3954 this.cacheFieldSet = true;
3955 this.cacheField = value;
3956 }
3957 }
3958
3959 /// <summary>
3960 /// The identifier to use when caching the package.
3961 /// </summary>
3962 public string CacheId
3963 {
3964 get
3965 {
3966 return this.cacheIdField;
3967 }
3968 set
3969 {
3970 this.cacheIdFieldSet = true;
3971 this.cacheIdField = value;
3972 }
3973 }
3974
3975 /// <summary>
3976 /// Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages
3977 /// use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use
3978 /// the DisplayName patch metadata property. Other package types must use this attribute to define a display name in the
3979 /// bootstrapper application data manifest.
3980 /// </summary>
3981 public string DisplayName
3982 {
3983 get
3984 {
3985 return this.displayNameField;
3986 }
3987 set
3988 {
3989 this.displayNameFieldSet = true;
3990 this.displayNameField = value;
3991 }
3992 }
3993
3994 /// <summary>
3995 /// Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages
3996 /// use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use
3997 /// the Description patch metadata property. Other package types must use this attribute to define a description in the
3998 /// bootstrapper application data manifest.
3999 /// </summary>
4000 public string Description
4001 {
4002 get
4003 {
4004 return this.descriptionField;
4005 }
4006 set
4007 {
4008 this.descriptionFieldSet = true;
4009 this.descriptionField = value;
4010 }
4011 }
4012
4013 /// <summary>
4014 /// Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not
4015 /// be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging.
4016 /// </summary>
4017 public string LogPathVariable
4018 {
4019 get
4020 {
4021 return this.logPathVariableField;
4022 }
4023 set
4024 {
4025 this.logPathVariableFieldSet = true;
4026 this.logPathVariableField = value;
4027 }
4028 }
4029
4030 /// <summary>
4031 /// Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause
4032 /// the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which
4033 /// default to no logging.
4034 /// </summary>
4035 public string RollbackLogPathVariable
4036 {
4037 get
4038 {
4039 return this.rollbackLogPathVariableField;
4040 }
4041 set
4042 {
4043 this.rollbackLogPathVariableFieldSet = true;
4044 this.rollbackLogPathVariableField = value;
4045 }
4046 }
4047
4048 /// <summary>
4049 /// Specifies whether the package can be uninstalled. The default is "no".
4050 /// </summary>
4051 public YesNoType Permanent
4052 {
4053 get
4054 {
4055 return this.permanentField;
4056 }
4057 set
4058 {
4059 this.permanentFieldSet = true;
4060 this.permanentField = value;
4061 }
4062 }
4063
4064 /// <summary>
4065 /// Specifies whether the package must succeed for the chain to continue. The default "yes"
4066 /// indicates that if the package fails then the chain will fail and rollback or stop. If
4067 /// "no" is specified then the chain will continue even if the package reports failure.
4068 /// </summary>
4069 public YesNoType Vital
4070 {
4071 get
4072 {
4073 return this.vitalField;
4074 }
4075 set
4076 {
4077 this.vitalFieldSet = true;
4078 this.vitalField = value;
4079 }
4080 }
4081
4082 /// <summary>
4083 /// Whether the package payload should be embedded in a container or left as an external payload.
4084 /// </summary>
4085 public YesNoDefaultType Compressed
4086 {
4087 get
4088 {
4089 return this.compressedField;
4090 }
4091 set
4092 {
4093 this.compressedFieldSet = true;
4094 this.compressedField = value;
4095 }
4096 }
4097
4098 /// <summary>
4099 /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes"
4100 /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the
4101 /// signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures.
4102 /// Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no".
4103 /// </summary>
4104 public YesNoType EnableSignatureVerification
4105 {
4106 get
4107 {
4108 return this.enableSignatureVerificationField;
4109 }
4110 set
4111 {
4112 this.enableSignatureVerificationFieldSet = true;
4113 this.enableSignatureVerificationField = value;
4114 }
4115 }
4116
4117 /// <summary>
4118 /// Specifies whether the bundle will show the UI authored into the msi package. The default is "no"
4119 /// which means all information is routed to the bootstrapper application to provide a unified installation
4120 /// experience. If "yes" is specified the UI authored into the msi package will be displayed on top of
4121 /// any bootstrapper application UI.
4122 /// </summary>
4123 public YesNoType DisplayInternalUI
4124 {
4125 get
4126 {
4127 return this.displayInternalUIField;
4128 }
4129 set
4130 {
4131 this.displayInternalUIFieldSet = true;
4132 this.displayInternalUIField = value;
4133 }
4134 }
4135
4136 /// <summary>
4137 /// Specifies whether the bundle will allow individual control over the installation state of Features inside
4138 /// the msi package. Managing feature selection requires special care to ensure the install, modify, update and
4139 /// uninstall behavior of the package is always correct. The default is "no".
4140 /// </summary>
4141 public YesNoType EnableFeatureSelection
4142 {
4143 get
4144 {
4145 return this.enableFeatureSelectionField;
4146 }
4147 set
4148 {
4149 this.enableFeatureSelectionFieldSet = true;
4150 this.enableFeatureSelectionField = value;
4151 }
4152 }
4153
4154 /// <summary>
4155 /// Override the automatic per-machine detection of MSI packages and force the package to be per-machine.
4156 /// The default is "no", which allows the tools to detect the expected value.
4157 /// </summary>
4158 public YesNoType ForcePerMachine
4159 {
4160 get
4161 {
4162 return this.forcePerMachineField;
4163 }
4164 set
4165 {
4166 this.forcePerMachineFieldSet = true;
4167 this.forcePerMachineField = value;
4168 }
4169 }
4170
4171 /// <summary>
4172 /// This attribute has been deprecated. When the value is "yes", the Binder will not read the MSI package
4173 /// to detect uncompressed files that would otherwise be automatically included in the Bundle as Payloads.
4174 /// The resulting Bundle may not be able to install the MSI package correctly. The default is "no".
4175 /// </summary>
4176 public YesNoType SuppressLooseFilePayloadGeneration
4177 {
4178 get
4179 {
4180 return this.suppressLooseFilePayloadGenerationField;
4181 }
4182 set
4183 {
4184 this.suppressLooseFilePayloadGenerationFieldSet = true;
4185 this.suppressLooseFilePayloadGenerationField = value;
4186 }
4187 }
4188
4189 /// <summary>
4190 /// Specifies whether the MSI will be displayed in Programs and Features (also known as Add/Remove Programs). If "yes" is
4191 /// specified the MSI package information will be displayed in Programs and Features. The default "no" indicates the MSI
4192 /// will not be displayed.
4193 /// </summary>
4194 public YesNoType Visible
4195 {
4196 get
4197 {
4198 return this.visibleField;
4199 }
4200 set
4201 {
4202 this.visibleFieldSet = true;
4203 this.visibleField = value;
4204 }
4205 }
4206
4207 public virtual ISchemaElement ParentElement
4208 {
4209 get
4210 {
4211 return this.parentElement;
4212 }
4213 set
4214 {
4215 this.parentElement = value;
4216 }
4217 }
4218
4219 public virtual void AddChild(ISchemaElement child)
4220 {
4221 if ((null == child))
4222 {
4223 throw new ArgumentNullException("child");
4224 }
4225 this.children.AddElement(child);
4226 child.ParentElement = this;
4227 }
4228
4229 public virtual void RemoveChild(ISchemaElement child)
4230 {
4231 if ((null == child))
4232 {
4233 throw new ArgumentNullException("child");
4234 }
4235 this.children.RemoveElement(child);
4236 child.ParentElement = null;
4237 }
4238
4239 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
4240 ISchemaElement ICreateChildren.CreateChild(string childName)
4241 {
4242 if (String.IsNullOrEmpty(childName))
4243 {
4244 throw new ArgumentNullException("childName");
4245 }
4246 ISchemaElement childValue = null;
4247 if (("MsiProperty" == childName))
4248 {
4249 childValue = new MsiProperty();
4250 }
4251 if (("SlipstreamMsp" == childName))
4252 {
4253 childValue = new SlipstreamMsp();
4254 }
4255 if (("Payload" == childName))
4256 {
4257 childValue = new Payload();
4258 }
4259 if (("PayloadGroupRef" == childName))
4260 {
4261 childValue = new PayloadGroupRef();
4262 }
4263 if ((null == childValue))
4264 {
4265 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
4266 }
4267 return childValue;
4268 }
4269
4270 /// <summary>
4271 /// Processes this element and all child elements into an XmlWriter.
4272 /// </summary>
4273 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
4274 public virtual void OutputXml(XmlWriter writer)
4275 {
4276 if ((null == writer))
4277 {
4278 throw new ArgumentNullException("writer");
4279 }
4280 writer.WriteStartElement("MsiPackage", "http://wixtoolset.org/schemas/v4/wxs");
4281 if (this.sourceFileFieldSet)
4282 {
4283 writer.WriteAttributeString("SourceFile", this.sourceFileField);
4284 }
4285 if (this.nameFieldSet)
4286 {
4287 writer.WriteAttributeString("Name", this.nameField);
4288 }
4289 if (this.downloadUrlFieldSet)
4290 {
4291 writer.WriteAttributeString("DownloadUrl", this.downloadUrlField);
4292 }
4293 if (this.idFieldSet)
4294 {
4295 writer.WriteAttributeString("Id", this.idField);
4296 }
4297 if (this.afterFieldSet)
4298 {
4299 writer.WriteAttributeString("After", this.afterField);
4300 }
4301 if (this.installSizeFieldSet)
4302 {
4303 writer.WriteAttributeString("InstallSize", this.installSizeField);
4304 }
4305 if (this.installConditionFieldSet)
4306 {
4307 writer.WriteAttributeString("InstallCondition", this.installConditionField);
4308 }
4309 if (this.cacheFieldSet)
4310 {
4311 if ((this.cacheField == YesNoAlwaysType.always))
4312 {
4313 writer.WriteAttributeString("Cache", "always");
4314 }
4315 if ((this.cacheField == YesNoAlwaysType.no))
4316 {
4317 writer.WriteAttributeString("Cache", "no");
4318 }
4319 if ((this.cacheField == YesNoAlwaysType.yes))
4320 {
4321 writer.WriteAttributeString("Cache", "yes");
4322 }
4323 }
4324 if (this.cacheIdFieldSet)
4325 {
4326 writer.WriteAttributeString("CacheId", this.cacheIdField);
4327 }
4328 if (this.displayNameFieldSet)
4329 {
4330 writer.WriteAttributeString("DisplayName", this.displayNameField);
4331 }
4332 if (this.descriptionFieldSet)
4333 {
4334 writer.WriteAttributeString("Description", this.descriptionField);
4335 }
4336 if (this.logPathVariableFieldSet)
4337 {
4338 writer.WriteAttributeString("LogPathVariable", this.logPathVariableField);
4339 }
4340 if (this.rollbackLogPathVariableFieldSet)
4341 {
4342 writer.WriteAttributeString("RollbackLogPathVariable", this.rollbackLogPathVariableField);
4343 }
4344 if (this.permanentFieldSet)
4345 {
4346 if ((this.permanentField == YesNoType.no))
4347 {
4348 writer.WriteAttributeString("Permanent", "no");
4349 }
4350 if ((this.permanentField == YesNoType.yes))
4351 {
4352 writer.WriteAttributeString("Permanent", "yes");
4353 }
4354 }
4355 if (this.vitalFieldSet)
4356 {
4357 if ((this.vitalField == YesNoType.no))
4358 {
4359 writer.WriteAttributeString("Vital", "no");
4360 }
4361 if ((this.vitalField == YesNoType.yes))
4362 {
4363 writer.WriteAttributeString("Vital", "yes");
4364 }
4365 }
4366 if (this.compressedFieldSet)
4367 {
4368 if ((this.compressedField == YesNoDefaultType.@default))
4369 {
4370 writer.WriteAttributeString("Compressed", "default");
4371 }
4372 if ((this.compressedField == YesNoDefaultType.no))
4373 {
4374 writer.WriteAttributeString("Compressed", "no");
4375 }
4376 if ((this.compressedField == YesNoDefaultType.yes))
4377 {
4378 writer.WriteAttributeString("Compressed", "yes");
4379 }
4380 }
4381 if (this.enableSignatureVerificationFieldSet)
4382 {
4383 if ((this.enableSignatureVerificationField == YesNoType.no))
4384 {
4385 writer.WriteAttributeString("EnableSignatureVerification", "no");
4386 }
4387 if ((this.enableSignatureVerificationField == YesNoType.yes))
4388 {
4389 writer.WriteAttributeString("EnableSignatureVerification", "yes");
4390 }
4391 }
4392 if (this.displayInternalUIFieldSet)
4393 {
4394 if ((this.displayInternalUIField == YesNoType.no))
4395 {
4396 writer.WriteAttributeString("DisplayInternalUI", "no");
4397 }
4398 if ((this.displayInternalUIField == YesNoType.yes))
4399 {
4400 writer.WriteAttributeString("DisplayInternalUI", "yes");
4401 }
4402 }
4403 if (this.enableFeatureSelectionFieldSet)
4404 {
4405 if ((this.enableFeatureSelectionField == YesNoType.no))
4406 {
4407 writer.WriteAttributeString("EnableFeatureSelection", "no");
4408 }
4409 if ((this.enableFeatureSelectionField == YesNoType.yes))
4410 {
4411 writer.WriteAttributeString("EnableFeatureSelection", "yes");
4412 }
4413 }
4414 if (this.forcePerMachineFieldSet)
4415 {
4416 if ((this.forcePerMachineField == YesNoType.no))
4417 {
4418 writer.WriteAttributeString("ForcePerMachine", "no");
4419 }
4420 if ((this.forcePerMachineField == YesNoType.yes))
4421 {
4422 writer.WriteAttributeString("ForcePerMachine", "yes");
4423 }
4424 }
4425 if (this.suppressLooseFilePayloadGenerationFieldSet)
4426 {
4427 if ((this.suppressLooseFilePayloadGenerationField == YesNoType.no))
4428 {
4429 writer.WriteAttributeString("SuppressLooseFilePayloadGeneration", "no");
4430 }
4431 if ((this.suppressLooseFilePayloadGenerationField == YesNoType.yes))
4432 {
4433 writer.WriteAttributeString("SuppressLooseFilePayloadGeneration", "yes");
4434 }
4435 }
4436 if (this.visibleFieldSet)
4437 {
4438 if ((this.visibleField == YesNoType.no))
4439 {
4440 writer.WriteAttributeString("Visible", "no");
4441 }
4442 if ((this.visibleField == YesNoType.yes))
4443 {
4444 writer.WriteAttributeString("Visible", "yes");
4445 }
4446 }
4447 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
4448 {
4449 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
4450 childElement.OutputXml(writer);
4451 }
4452 writer.WriteEndElement();
4453 }
4454
4455 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
4456 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
4457 void ISetAttributes.SetAttribute(string name, string value)
4458 {
4459 if (String.IsNullOrEmpty(name))
4460 {
4461 throw new ArgumentNullException("name");
4462 }
4463 if (("SourceFile" == name))
4464 {
4465 this.sourceFileField = value;
4466 this.sourceFileFieldSet = true;
4467 }
4468 if (("Name" == name))
4469 {
4470 this.nameField = value;
4471 this.nameFieldSet = true;
4472 }
4473 if (("DownloadUrl" == name))
4474 {
4475 this.downloadUrlField = value;
4476 this.downloadUrlFieldSet = true;
4477 }
4478 if (("Id" == name))
4479 {
4480 this.idField = value;
4481 this.idFieldSet = true;
4482 }
4483 if (("After" == name))
4484 {
4485 this.afterField = value;
4486 this.afterFieldSet = true;
4487 }
4488 if (("InstallSize" == name))
4489 {
4490 this.installSizeField = value;
4491 this.installSizeFieldSet = true;
4492 }
4493 if (("InstallCondition" == name))
4494 {
4495 this.installConditionField = value;
4496 this.installConditionFieldSet = true;
4497 }
4498 if (("Cache" == name))
4499 {
4500 this.cacheField = Enums.ParseYesNoAlwaysType(value);
4501 this.cacheFieldSet = true;
4502 }
4503 if (("CacheId" == name))
4504 {
4505 this.cacheIdField = value;
4506 this.cacheIdFieldSet = true;
4507 }
4508 if (("DisplayName" == name))
4509 {
4510 this.displayNameField = value;
4511 this.displayNameFieldSet = true;
4512 }
4513 if (("Description" == name))
4514 {
4515 this.descriptionField = value;
4516 this.descriptionFieldSet = true;
4517 }
4518 if (("LogPathVariable" == name))
4519 {
4520 this.logPathVariableField = value;
4521 this.logPathVariableFieldSet = true;
4522 }
4523 if (("RollbackLogPathVariable" == name))
4524 {
4525 this.rollbackLogPathVariableField = value;
4526 this.rollbackLogPathVariableFieldSet = true;
4527 }
4528 if (("Permanent" == name))
4529 {
4530 this.permanentField = Enums.ParseYesNoType(value);
4531 this.permanentFieldSet = true;
4532 }
4533 if (("Vital" == name))
4534 {
4535 this.vitalField = Enums.ParseYesNoType(value);
4536 this.vitalFieldSet = true;
4537 }
4538 if (("Compressed" == name))
4539 {
4540 this.compressedField = Enums.ParseYesNoDefaultType(value);
4541 this.compressedFieldSet = true;
4542 }
4543 if (("EnableSignatureVerification" == name))
4544 {
4545 this.enableSignatureVerificationField = Enums.ParseYesNoType(value);
4546 this.enableSignatureVerificationFieldSet = true;
4547 }
4548 if (("DisplayInternalUI" == name))
4549 {
4550 this.displayInternalUIField = Enums.ParseYesNoType(value);
4551 this.displayInternalUIFieldSet = true;
4552 }
4553 if (("EnableFeatureSelection" == name))
4554 {
4555 this.enableFeatureSelectionField = Enums.ParseYesNoType(value);
4556 this.enableFeatureSelectionFieldSet = true;
4557 }
4558 if (("ForcePerMachine" == name))
4559 {
4560 this.forcePerMachineField = Enums.ParseYesNoType(value);
4561 this.forcePerMachineFieldSet = true;
4562 }
4563 if (("SuppressLooseFilePayloadGeneration" == name))
4564 {
4565 this.suppressLooseFilePayloadGenerationField = Enums.ParseYesNoType(value);
4566 this.suppressLooseFilePayloadGenerationFieldSet = true;
4567 }
4568 if (("Visible" == name))
4569 {
4570 this.visibleField = Enums.ParseYesNoType(value);
4571 this.visibleFieldSet = true;
4572 }
4573 }
4574 }
4575
4576 /// <summary>
4577 /// Describes a single msp package to install.
4578 /// </summary>
4579 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
4580 public class MspPackage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
4581 {
4582
4583 private ElementCollection children;
4584
4585 private string sourceFileField;
4586
4587 private bool sourceFileFieldSet;
4588
4589 private string nameField;
4590
4591 private bool nameFieldSet;
4592
4593 private string downloadUrlField;
4594
4595 private bool downloadUrlFieldSet;
4596
4597 private string idField;
4598
4599 private bool idFieldSet;
4600
4601 private string afterField;
4602
4603 private bool afterFieldSet;
4604
4605 private string installSizeField;
4606
4607 private bool installSizeFieldSet;
4608
4609 private string installConditionField;
4610
4611 private bool installConditionFieldSet;
4612
4613 private YesNoAlwaysType cacheField;
4614
4615 private bool cacheFieldSet;
4616
4617 private string cacheIdField;
4618
4619 private bool cacheIdFieldSet;
4620
4621 private string displayNameField;
4622
4623 private bool displayNameFieldSet;
4624
4625 private string descriptionField;
4626
4627 private bool descriptionFieldSet;
4628
4629 private string logPathVariableField;
4630
4631 private bool logPathVariableFieldSet;
4632
4633 private string rollbackLogPathVariableField;
4634
4635 private bool rollbackLogPathVariableFieldSet;
4636
4637 private YesNoType permanentField;
4638
4639 private bool permanentFieldSet;
4640
4641 private YesNoType vitalField;
4642
4643 private bool vitalFieldSet;
4644
4645 private YesNoDefaultType compressedField;
4646
4647 private bool compressedFieldSet;
4648
4649 private YesNoType enableSignatureVerificationField;
4650
4651 private bool enableSignatureVerificationFieldSet;
4652
4653 private YesNoType displayInternalUIField;
4654
4655 private bool displayInternalUIFieldSet;
4656
4657 private YesNoDefaultType perMachineField;
4658
4659 private bool perMachineFieldSet;
4660
4661 private YesNoType slipstreamField;
4662
4663 private bool slipstreamFieldSet;
4664
4665 private ISchemaElement parentElement;
4666
4667 public MspPackage()
4668 {
4669 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
4670 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiProperty)));
4671 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload)));
4672 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef)));
4673 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
4674 this.children = childCollection0;
4675 }
4676
4677 public virtual IEnumerable Children
4678 {
4679 get
4680 {
4681 return this.children;
4682 }
4683 }
4684
4685 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
4686 public virtual IEnumerable this[System.Type childType]
4687 {
4688 get
4689 {
4690 return this.children.Filter(childType);
4691 }
4692 }
4693
4694 /// <summary>
4695 /// Location of the package to add to the bundle. The default value is the Name attribute, if provided.
4696 /// At a minimum, the SourceFile or Name attribute must be specified.
4697 /// </summary>
4698 public string SourceFile
4699 {
4700 get
4701 {
4702 return this.sourceFileField;
4703 }
4704 set
4705 {
4706 this.sourceFileFieldSet = true;
4707 this.sourceFileField = value;
4708 }
4709 }
4710
4711 /// <summary>
4712 /// The destination path and file name for this chain payload. Use this attribute to rename the
4713 /// chain entry point or extract it into a subfolder. The default value is the file name from the
4714 /// SourceFile attribute, if provided. At a minimum, the Name or SourceFile attribute must be specified.
4715 /// The use of '..' directories is not allowed.
4716 /// </summary>
4717 public string Name
4718 {
4719 get
4720 {
4721 return this.nameField;
4722 }
4723 set
4724 {
4725 this.nameFieldSet = true;
4726 this.nameField = value;
4727 }
4728 }
4729
4730 public string DownloadUrl
4731 {
4732 get
4733 {
4734 return this.downloadUrlField;
4735 }
4736 set
4737 {
4738 this.downloadUrlFieldSet = true;
4739 this.downloadUrlField = value;
4740 }
4741 }
4742
4743 /// <summary>
4744 /// Identifier for this package, for ordering and cross-referencing. The default is the Name attribute
4745 /// modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores).
4746 /// </summary>
4747 public string Id
4748 {
4749 get
4750 {
4751 return this.idField;
4752 }
4753 set
4754 {
4755 this.idFieldSet = true;
4756 this.idField = value;
4757 }
4758 }
4759
4760 /// <summary>
4761 /// The identifier of another package that this one should be installed after. By default the After
4762 /// attribute is set to the previous sibling package in the Chain or PackageGroup element. If this
4763 /// attribute is specified ensure that a cycle is not created explicitly or implicitly.
4764 /// </summary>
4765 public string After
4766 {
4767 get
4768 {
4769 return this.afterField;
4770 }
4771 set
4772 {
4773 this.afterFieldSet = true;
4774 this.afterField = value;
4775 }
4776 }
4777
4778 /// <summary>
4779 /// The size this package will take on disk in bytes after it is installed. By default, the binder will
4780 /// calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs)
4781 /// and use the total for the install size of the package.
4782 /// </summary>
4783 public string InstallSize
4784 {
4785 get
4786 {
4787 return this.installSizeField;
4788 }
4789 set
4790 {
4791 this.installSizeFieldSet = true;
4792 this.installSizeField = value;
4793 }
4794 }
4795
4796 /// <summary>
4797 /// A condition to evaluate before installing the package. The package will only be installed if the condition evaluates to true. If the condition evaluates to false and the bundle is being installed, repaired, or modified, the package will be uninstalled.
4798 /// </summary>
4799 public string InstallCondition
4800 {
4801 get
4802 {
4803 return this.installConditionField;
4804 }
4805 set
4806 {
4807 this.installConditionFieldSet = true;
4808 this.installConditionField = value;
4809 }
4810 }
4811
4812 /// <summary>
4813 /// Whether to cache the package. The default is "yes".
4814 /// </summary>
4815 public YesNoAlwaysType Cache
4816 {
4817 get
4818 {
4819 return this.cacheField;
4820 }
4821 set
4822 {
4823 this.cacheFieldSet = true;
4824 this.cacheField = value;
4825 }
4826 }
4827
4828 /// <summary>
4829 /// The identifier to use when caching the package.
4830 /// </summary>
4831 public string CacheId
4832 {
4833 get
4834 {
4835 return this.cacheIdField;
4836 }
4837 set
4838 {
4839 this.cacheIdFieldSet = true;
4840 this.cacheIdField = value;
4841 }
4842 }
4843
4844 /// <summary>
4845 /// Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages
4846 /// use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use
4847 /// the DisplayName patch metadata property. Other package types must use this attribute to define a display name in the
4848 /// bootstrapper application data manifest.
4849 /// </summary>
4850 public string DisplayName
4851 {
4852 get
4853 {
4854 return this.displayNameField;
4855 }
4856 set
4857 {
4858 this.displayNameFieldSet = true;
4859 this.displayNameField = value;
4860 }
4861 }
4862
4863 /// <summary>
4864 /// Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages
4865 /// use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use
4866 /// the Description patch metadata property. Other package types must use this attribute to define a description in the
4867 /// bootstrapper application data manifest.
4868 /// </summary>
4869 public string Description
4870 {
4871 get
4872 {
4873 return this.descriptionField;
4874 }
4875 set
4876 {
4877 this.descriptionFieldSet = true;
4878 this.descriptionField = value;
4879 }
4880 }
4881
4882 /// <summary>
4883 /// Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not
4884 /// be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging.
4885 /// </summary>
4886 public string LogPathVariable
4887 {
4888 get
4889 {
4890 return this.logPathVariableField;
4891 }
4892 set
4893 {
4894 this.logPathVariableFieldSet = true;
4895 this.logPathVariableField = value;
4896 }
4897 }
4898
4899 /// <summary>
4900 /// Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause
4901 /// the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which
4902 /// default to no logging.
4903 /// </summary>
4904 public string RollbackLogPathVariable
4905 {
4906 get
4907 {
4908 return this.rollbackLogPathVariableField;
4909 }
4910 set
4911 {
4912 this.rollbackLogPathVariableFieldSet = true;
4913 this.rollbackLogPathVariableField = value;
4914 }
4915 }
4916
4917 /// <summary>
4918 /// Specifies whether the package can be uninstalled. The default is "no".
4919 /// </summary>
4920 public YesNoType Permanent
4921 {
4922 get
4923 {
4924 return this.permanentField;
4925 }
4926 set
4927 {
4928 this.permanentFieldSet = true;
4929 this.permanentField = value;
4930 }
4931 }
4932
4933 /// <summary>
4934 /// Specifies whether the package must succeed for the chain to continue. The default "yes"
4935 /// indicates that if the package fails then the chain will fail and rollback or stop. If
4936 /// "no" is specified then the chain will continue even if the package reports failure.
4937 /// </summary>
4938 public YesNoType Vital
4939 {
4940 get
4941 {
4942 return this.vitalField;
4943 }
4944 set
4945 {
4946 this.vitalFieldSet = true;
4947 this.vitalField = value;
4948 }
4949 }
4950
4951 /// <summary>
4952 /// Whether the package payload should be embedded in a container or left as an external payload.
4953 /// </summary>
4954 public YesNoDefaultType Compressed
4955 {
4956 get
4957 {
4958 return this.compressedField;
4959 }
4960 set
4961 {
4962 this.compressedFieldSet = true;
4963 this.compressedField = value;
4964 }
4965 }
4966
4967 /// <summary>
4968 /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes"
4969 /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the
4970 /// signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures.
4971 /// Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no".
4972 /// </summary>
4973 public YesNoType EnableSignatureVerification
4974 {
4975 get
4976 {
4977 return this.enableSignatureVerificationField;
4978 }
4979 set
4980 {
4981 this.enableSignatureVerificationFieldSet = true;
4982 this.enableSignatureVerificationField = value;
4983 }
4984 }
4985
4986 /// <summary>
4987 /// Specifies whether the bundle will show the UI authored into the msp package. The default is "no"
4988 /// which means all information is routed to the bootstrapper application to provide a unified installation
4989 /// experience. If "yes" is specified the UI authored into the msp package will be displayed on top of
4990 /// any bootstrapper application UI.
4991 /// </summary>
4992 public YesNoType DisplayInternalUI
4993 {
4994 get
4995 {
4996 return this.displayInternalUIField;
4997 }
4998 set
4999 {
5000 this.displayInternalUIFieldSet = true;
5001 this.displayInternalUIField = value;
5002 }
5003 }
5004
5005 /// <summary>
5006 /// Indicates the package must be executed elevated. The default is "no".
5007 /// </summary>
5008 public YesNoDefaultType PerMachine
5009 {
5010 get
5011 {
5012 return this.perMachineField;
5013 }
5014 set
5015 {
5016 this.perMachineFieldSet = true;
5017 this.perMachineField = value;
5018 }
5019 }
5020
5021 /// <summary>
5022 /// Specifies whether to automatically slipstream the patch for any target msi packages in the chain. The default is "no".
5023 /// Even when the value is "no", you can still author the SlipstreamMsp element under MsiPackage elements as desired.
5024 /// </summary>
5025 public YesNoType Slipstream
5026 {
5027 get
5028 {
5029 return this.slipstreamField;
5030 }
5031 set
5032 {
5033 this.slipstreamFieldSet = true;
5034 this.slipstreamField = value;
5035 }
5036 }
5037
5038 public virtual ISchemaElement ParentElement
5039 {
5040 get
5041 {
5042 return this.parentElement;
5043 }
5044 set
5045 {
5046 this.parentElement = value;
5047 }
5048 }
5049
5050 public virtual void AddChild(ISchemaElement child)
5051 {
5052 if ((null == child))
5053 {
5054 throw new ArgumentNullException("child");
5055 }
5056 this.children.AddElement(child);
5057 child.ParentElement = this;
5058 }
5059
5060 public virtual void RemoveChild(ISchemaElement child)
5061 {
5062 if ((null == child))
5063 {
5064 throw new ArgumentNullException("child");
5065 }
5066 this.children.RemoveElement(child);
5067 child.ParentElement = null;
5068 }
5069
5070 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
5071 ISchemaElement ICreateChildren.CreateChild(string childName)
5072 {
5073 if (String.IsNullOrEmpty(childName))
5074 {
5075 throw new ArgumentNullException("childName");
5076 }
5077 ISchemaElement childValue = null;
5078 if (("MsiProperty" == childName))
5079 {
5080 childValue = new MsiProperty();
5081 }
5082 if (("Payload" == childName))
5083 {
5084 childValue = new Payload();
5085 }
5086 if (("PayloadGroupRef" == childName))
5087 {
5088 childValue = new PayloadGroupRef();
5089 }
5090 if ((null == childValue))
5091 {
5092 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
5093 }
5094 return childValue;
5095 }
5096
5097 /// <summary>
5098 /// Processes this element and all child elements into an XmlWriter.
5099 /// </summary>
5100 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
5101 public virtual void OutputXml(XmlWriter writer)
5102 {
5103 if ((null == writer))
5104 {
5105 throw new ArgumentNullException("writer");
5106 }
5107 writer.WriteStartElement("MspPackage", "http://wixtoolset.org/schemas/v4/wxs");
5108 if (this.sourceFileFieldSet)
5109 {
5110 writer.WriteAttributeString("SourceFile", this.sourceFileField);
5111 }
5112 if (this.nameFieldSet)
5113 {
5114 writer.WriteAttributeString("Name", this.nameField);
5115 }
5116 if (this.downloadUrlFieldSet)
5117 {
5118 writer.WriteAttributeString("DownloadUrl", this.downloadUrlField);
5119 }
5120 if (this.idFieldSet)
5121 {
5122 writer.WriteAttributeString("Id", this.idField);
5123 }
5124 if (this.afterFieldSet)
5125 {
5126 writer.WriteAttributeString("After", this.afterField);
5127 }
5128 if (this.installSizeFieldSet)
5129 {
5130 writer.WriteAttributeString("InstallSize", this.installSizeField);
5131 }
5132 if (this.installConditionFieldSet)
5133 {
5134 writer.WriteAttributeString("InstallCondition", this.installConditionField);
5135 }
5136 if (this.cacheFieldSet)
5137 {
5138 if ((this.cacheField == YesNoAlwaysType.always))
5139 {
5140 writer.WriteAttributeString("Cache", "always");
5141 }
5142 if ((this.cacheField == YesNoAlwaysType.no))
5143 {
5144 writer.WriteAttributeString("Cache", "no");
5145 }
5146 if ((this.cacheField == YesNoAlwaysType.yes))
5147 {
5148 writer.WriteAttributeString("Cache", "yes");
5149 }
5150 }
5151 if (this.cacheIdFieldSet)
5152 {
5153 writer.WriteAttributeString("CacheId", this.cacheIdField);
5154 }
5155 if (this.displayNameFieldSet)
5156 {
5157 writer.WriteAttributeString("DisplayName", this.displayNameField);
5158 }
5159 if (this.descriptionFieldSet)
5160 {
5161 writer.WriteAttributeString("Description", this.descriptionField);
5162 }
5163 if (this.logPathVariableFieldSet)
5164 {
5165 writer.WriteAttributeString("LogPathVariable", this.logPathVariableField);
5166 }
5167 if (this.rollbackLogPathVariableFieldSet)
5168 {
5169 writer.WriteAttributeString("RollbackLogPathVariable", this.rollbackLogPathVariableField);
5170 }
5171 if (this.permanentFieldSet)
5172 {
5173 if ((this.permanentField == YesNoType.no))
5174 {
5175 writer.WriteAttributeString("Permanent", "no");
5176 }
5177 if ((this.permanentField == YesNoType.yes))
5178 {
5179 writer.WriteAttributeString("Permanent", "yes");
5180 }
5181 }
5182 if (this.vitalFieldSet)
5183 {
5184 if ((this.vitalField == YesNoType.no))
5185 {
5186 writer.WriteAttributeString("Vital", "no");
5187 }
5188 if ((this.vitalField == YesNoType.yes))
5189 {
5190 writer.WriteAttributeString("Vital", "yes");
5191 }
5192 }
5193 if (this.compressedFieldSet)
5194 {
5195 if ((this.compressedField == YesNoDefaultType.@default))
5196 {
5197 writer.WriteAttributeString("Compressed", "default");
5198 }
5199 if ((this.compressedField == YesNoDefaultType.no))
5200 {
5201 writer.WriteAttributeString("Compressed", "no");
5202 }
5203 if ((this.compressedField == YesNoDefaultType.yes))
5204 {
5205 writer.WriteAttributeString("Compressed", "yes");
5206 }
5207 }
5208 if (this.enableSignatureVerificationFieldSet)
5209 {
5210 if ((this.enableSignatureVerificationField == YesNoType.no))
5211 {
5212 writer.WriteAttributeString("EnableSignatureVerification", "no");
5213 }
5214 if ((this.enableSignatureVerificationField == YesNoType.yes))
5215 {
5216 writer.WriteAttributeString("EnableSignatureVerification", "yes");
5217 }
5218 }
5219 if (this.displayInternalUIFieldSet)
5220 {
5221 if ((this.displayInternalUIField == YesNoType.no))
5222 {
5223 writer.WriteAttributeString("DisplayInternalUI", "no");
5224 }
5225 if ((this.displayInternalUIField == YesNoType.yes))
5226 {
5227 writer.WriteAttributeString("DisplayInternalUI", "yes");
5228 }
5229 }
5230 if (this.perMachineFieldSet)
5231 {
5232 if ((this.perMachineField == YesNoDefaultType.@default))
5233 {
5234 writer.WriteAttributeString("PerMachine", "default");
5235 }
5236 if ((this.perMachineField == YesNoDefaultType.no))
5237 {
5238 writer.WriteAttributeString("PerMachine", "no");
5239 }
5240 if ((this.perMachineField == YesNoDefaultType.yes))
5241 {
5242 writer.WriteAttributeString("PerMachine", "yes");
5243 }
5244 }
5245 if (this.slipstreamFieldSet)
5246 {
5247 if ((this.slipstreamField == YesNoType.no))
5248 {
5249 writer.WriteAttributeString("Slipstream", "no");
5250 }
5251 if ((this.slipstreamField == YesNoType.yes))
5252 {
5253 writer.WriteAttributeString("Slipstream", "yes");
5254 }
5255 }
5256 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
5257 {
5258 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
5259 childElement.OutputXml(writer);
5260 }
5261 writer.WriteEndElement();
5262 }
5263
5264 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
5265 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
5266 void ISetAttributes.SetAttribute(string name, string value)
5267 {
5268 if (String.IsNullOrEmpty(name))
5269 {
5270 throw new ArgumentNullException("name");
5271 }
5272 if (("SourceFile" == name))
5273 {
5274 this.sourceFileField = value;
5275 this.sourceFileFieldSet = true;
5276 }
5277 if (("Name" == name))
5278 {
5279 this.nameField = value;
5280 this.nameFieldSet = true;
5281 }
5282 if (("DownloadUrl" == name))
5283 {
5284 this.downloadUrlField = value;
5285 this.downloadUrlFieldSet = true;
5286 }
5287 if (("Id" == name))
5288 {
5289 this.idField = value;
5290 this.idFieldSet = true;
5291 }
5292 if (("After" == name))
5293 {
5294 this.afterField = value;
5295 this.afterFieldSet = true;
5296 }
5297 if (("InstallSize" == name))
5298 {
5299 this.installSizeField = value;
5300 this.installSizeFieldSet = true;
5301 }
5302 if (("InstallCondition" == name))
5303 {
5304 this.installConditionField = value;
5305 this.installConditionFieldSet = true;
5306 }
5307 if (("Cache" == name))
5308 {
5309 this.cacheField = Enums.ParseYesNoAlwaysType(value);
5310 this.cacheFieldSet = true;
5311 }
5312 if (("CacheId" == name))
5313 {
5314 this.cacheIdField = value;
5315 this.cacheIdFieldSet = true;
5316 }
5317 if (("DisplayName" == name))
5318 {
5319 this.displayNameField = value;
5320 this.displayNameFieldSet = true;
5321 }
5322 if (("Description" == name))
5323 {
5324 this.descriptionField = value;
5325 this.descriptionFieldSet = true;
5326 }
5327 if (("LogPathVariable" == name))
5328 {
5329 this.logPathVariableField = value;
5330 this.logPathVariableFieldSet = true;
5331 }
5332 if (("RollbackLogPathVariable" == name))
5333 {
5334 this.rollbackLogPathVariableField = value;
5335 this.rollbackLogPathVariableFieldSet = true;
5336 }
5337 if (("Permanent" == name))
5338 {
5339 this.permanentField = Enums.ParseYesNoType(value);
5340 this.permanentFieldSet = true;
5341 }
5342 if (("Vital" == name))
5343 {
5344 this.vitalField = Enums.ParseYesNoType(value);
5345 this.vitalFieldSet = true;
5346 }
5347 if (("Compressed" == name))
5348 {
5349 this.compressedField = Enums.ParseYesNoDefaultType(value);
5350 this.compressedFieldSet = true;
5351 }
5352 if (("EnableSignatureVerification" == name))
5353 {
5354 this.enableSignatureVerificationField = Enums.ParseYesNoType(value);
5355 this.enableSignatureVerificationFieldSet = true;
5356 }
5357 if (("DisplayInternalUI" == name))
5358 {
5359 this.displayInternalUIField = Enums.ParseYesNoType(value);
5360 this.displayInternalUIFieldSet = true;
5361 }
5362 if (("PerMachine" == name))
5363 {
5364 this.perMachineField = Enums.ParseYesNoDefaultType(value);
5365 this.perMachineFieldSet = true;
5366 }
5367 if (("Slipstream" == name))
5368 {
5369 this.slipstreamField = Enums.ParseYesNoType(value);
5370 this.slipstreamFieldSet = true;
5371 }
5372 }
5373 }
5374
5375 /// <summary>
5376 /// Describes a single msu package to install.
5377 /// </summary>
5378 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
5379 public class MsuPackage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
5380 {
5381
5382 private ElementCollection children;
5383
5384 private string sourceFileField;
5385
5386 private bool sourceFileFieldSet;
5387
5388 private string nameField;
5389
5390 private bool nameFieldSet;
5391
5392 private string downloadUrlField;
5393
5394 private bool downloadUrlFieldSet;
5395
5396 private string idField;
5397
5398 private bool idFieldSet;
5399
5400 private string afterField;
5401
5402 private bool afterFieldSet;
5403
5404 private string installSizeField;
5405
5406 private bool installSizeFieldSet;
5407
5408 private string installConditionField;
5409
5410 private bool installConditionFieldSet;
5411
5412 private YesNoAlwaysType cacheField;
5413
5414 private bool cacheFieldSet;
5415
5416 private string cacheIdField;
5417
5418 private bool cacheIdFieldSet;
5419
5420 private string displayNameField;
5421
5422 private bool displayNameFieldSet;
5423
5424 private string descriptionField;
5425
5426 private bool descriptionFieldSet;
5427
5428 private string logPathVariableField;
5429
5430 private bool logPathVariableFieldSet;
5431
5432 private string rollbackLogPathVariableField;
5433
5434 private bool rollbackLogPathVariableFieldSet;
5435
5436 private YesNoType permanentField;
5437
5438 private bool permanentFieldSet;
5439
5440 private YesNoType vitalField;
5441
5442 private bool vitalFieldSet;
5443
5444 private YesNoDefaultType compressedField;
5445
5446 private bool compressedFieldSet;
5447
5448 private YesNoType enableSignatureVerificationField;
5449
5450 private bool enableSignatureVerificationFieldSet;
5451
5452 private string detectConditionField;
5453
5454 private bool detectConditionFieldSet;
5455
5456 private string kBField;
5457
5458 private bool kBFieldSet;
5459
5460 private ISchemaElement parentElement;
5461
5462 public MsuPackage()
5463 {
5464 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
5465 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload)));
5466 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef)));
5467 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemotePayload)));
5468 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
5469 this.children = childCollection0;
5470 }
5471
5472 public virtual IEnumerable Children
5473 {
5474 get
5475 {
5476 return this.children;
5477 }
5478 }
5479
5480 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
5481 public virtual IEnumerable this[System.Type childType]
5482 {
5483 get
5484 {
5485 return this.children.Filter(childType);
5486 }
5487 }
5488
5489 /// <summary>
5490 /// Location of the package to add to the bundle. The default value is the Name attribute, if provided.
5491 /// At a minimum, the SourceFile or Name attribute must be specified.
5492 /// </summary>
5493 public string SourceFile
5494 {
5495 get
5496 {
5497 return this.sourceFileField;
5498 }
5499 set
5500 {
5501 this.sourceFileFieldSet = true;
5502 this.sourceFileField = value;
5503 }
5504 }
5505
5506 /// <summary>
5507 /// The destination path and file name for this chain payload. Use this attribute to rename the
5508 /// chain entry point or extract it into a subfolder. The default value is the file name from the
5509 /// SourceFile attribute, if provided. At a minimum, the Name or SourceFile attribute must be specified.
5510 /// The use of '..' directories is not allowed.
5511 /// </summary>
5512 public string Name
5513 {
5514 get
5515 {
5516 return this.nameField;
5517 }
5518 set
5519 {
5520 this.nameFieldSet = true;
5521 this.nameField = value;
5522 }
5523 }
5524
5525 public string DownloadUrl
5526 {
5527 get
5528 {
5529 return this.downloadUrlField;
5530 }
5531 set
5532 {
5533 this.downloadUrlFieldSet = true;
5534 this.downloadUrlField = value;
5535 }
5536 }
5537
5538 /// <summary>
5539 /// Identifier for this package, for ordering and cross-referencing. The default is the Name attribute
5540 /// modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores).
5541 /// </summary>
5542 public string Id
5543 {
5544 get
5545 {
5546 return this.idField;
5547 }
5548 set
5549 {
5550 this.idFieldSet = true;
5551 this.idField = value;
5552 }
5553 }
5554
5555 /// <summary>
5556 /// The identifier of another package that this one should be installed after. By default the After
5557 /// attribute is set to the previous sibling package in the Chain or PackageGroup element. If this
5558 /// attribute is specified ensure that a cycle is not created explicitly or implicitly.
5559 /// </summary>
5560 public string After
5561 {
5562 get
5563 {
5564 return this.afterField;
5565 }
5566 set
5567 {
5568 this.afterFieldSet = true;
5569 this.afterField = value;
5570 }
5571 }
5572
5573 /// <summary>
5574 /// The size this package will take on disk in bytes after it is installed. By default, the binder will
5575 /// calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs)
5576 /// and use the total for the install size of the package.
5577 /// </summary>
5578 public string InstallSize
5579 {
5580 get
5581 {
5582 return this.installSizeField;
5583 }
5584 set
5585 {
5586 this.installSizeFieldSet = true;
5587 this.installSizeField = value;
5588 }
5589 }
5590
5591 /// <summary>
5592 /// A condition to evaluate before installing the package. The package will only be installed if the condition evaluates to true. If the condition evaluates to false and the bundle is being installed, repaired, or modified, the package will be uninstalled.
5593 /// </summary>
5594 public string InstallCondition
5595 {
5596 get
5597 {
5598 return this.installConditionField;
5599 }
5600 set
5601 {
5602 this.installConditionFieldSet = true;
5603 this.installConditionField = value;
5604 }
5605 }
5606
5607 /// <summary>
5608 /// Whether to cache the package. The default is "yes".
5609 /// </summary>
5610 public YesNoAlwaysType Cache
5611 {
5612 get
5613 {
5614 return this.cacheField;
5615 }
5616 set
5617 {
5618 this.cacheFieldSet = true;
5619 this.cacheField = value;
5620 }
5621 }
5622
5623 /// <summary>
5624 /// The identifier to use when caching the package.
5625 /// </summary>
5626 public string CacheId
5627 {
5628 get
5629 {
5630 return this.cacheIdField;
5631 }
5632 set
5633 {
5634 this.cacheIdFieldSet = true;
5635 this.cacheIdField = value;
5636 }
5637 }
5638
5639 /// <summary>
5640 /// Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages
5641 /// use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use
5642 /// the DisplayName patch metadata property. Other package types must use this attribute to define a display name in the
5643 /// bootstrapper application data manifest.
5644 /// </summary>
5645 public string DisplayName
5646 {
5647 get
5648 {
5649 return this.displayNameField;
5650 }
5651 set
5652 {
5653 this.displayNameFieldSet = true;
5654 this.displayNameField = value;
5655 }
5656 }
5657
5658 /// <summary>
5659 /// Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages
5660 /// use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use
5661 /// the Description patch metadata property. Other package types must use this attribute to define a description in the
5662 /// bootstrapper application data manifest.
5663 /// </summary>
5664 public string Description
5665 {
5666 get
5667 {
5668 return this.descriptionField;
5669 }
5670 set
5671 {
5672 this.descriptionFieldSet = true;
5673 this.descriptionField = value;
5674 }
5675 }
5676
5677 /// <summary>
5678 /// Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not
5679 /// be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging.
5680 /// </summary>
5681 public string LogPathVariable
5682 {
5683 get
5684 {
5685 return this.logPathVariableField;
5686 }
5687 set
5688 {
5689 this.logPathVariableFieldSet = true;
5690 this.logPathVariableField = value;
5691 }
5692 }
5693
5694 /// <summary>
5695 /// Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause
5696 /// the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which
5697 /// default to no logging.
5698 /// </summary>
5699 public string RollbackLogPathVariable
5700 {
5701 get
5702 {
5703 return this.rollbackLogPathVariableField;
5704 }
5705 set
5706 {
5707 this.rollbackLogPathVariableFieldSet = true;
5708 this.rollbackLogPathVariableField = value;
5709 }
5710 }
5711
5712 /// <summary>
5713 /// Specifies whether the package can be uninstalled. The default is "no".
5714 /// </summary>
5715 public YesNoType Permanent
5716 {
5717 get
5718 {
5719 return this.permanentField;
5720 }
5721 set
5722 {
5723 this.permanentFieldSet = true;
5724 this.permanentField = value;
5725 }
5726 }
5727
5728 /// <summary>
5729 /// Specifies whether the package must succeed for the chain to continue. The default "yes"
5730 /// indicates that if the package fails then the chain will fail and rollback or stop. If
5731 /// "no" is specified then the chain will continue even if the package reports failure.
5732 /// </summary>
5733 public YesNoType Vital
5734 {
5735 get
5736 {
5737 return this.vitalField;
5738 }
5739 set
5740 {
5741 this.vitalFieldSet = true;
5742 this.vitalField = value;
5743 }
5744 }
5745
5746 /// <summary>
5747 /// Whether the package payload should be embedded in a container or left as an external payload.
5748 /// </summary>
5749 public YesNoDefaultType Compressed
5750 {
5751 get
5752 {
5753 return this.compressedField;
5754 }
5755 set
5756 {
5757 this.compressedFieldSet = true;
5758 this.compressedField = value;
5759 }
5760 }
5761
5762 /// <summary>
5763 /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes"
5764 /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the
5765 /// signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures.
5766 /// Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no".
5767 /// </summary>
5768 public YesNoType EnableSignatureVerification
5769 {
5770 get
5771 {
5772 return this.enableSignatureVerificationField;
5773 }
5774 set
5775 {
5776 this.enableSignatureVerificationFieldSet = true;
5777 this.enableSignatureVerificationField = value;
5778 }
5779 }
5780
5781 /// <summary>
5782 /// A condition that determines if the package is present on the target system. This condition can use built-in
5783 /// variables and variables returned by searches. This condition is necessary because Windows doesn't provide a
5784 /// method to detect the presence of an MsuPackage. Burn uses this condition to determine how to treat this
5785 /// package during a bundle action; for example, if this condition is false or omitted and the bundle is being
5786 /// installed, Burn will install this package.
5787 /// </summary>
5788 public string DetectCondition
5789 {
5790 get
5791 {
5792 return this.detectConditionField;
5793 }
5794 set
5795 {
5796 this.detectConditionFieldSet = true;
5797 this.detectConditionField = value;
5798 }
5799 }
5800
5801 /// <summary>
5802 /// The knowledge base identifier for the MSU. The KB attribute must be specified to enable the MSU package to
5803 /// be uninstalled. Even then MSU uninstallation is only supported on Windows 7 and later. When the KB attribute
5804 /// is specified, the Permanent attribute will the control whether the package is uninstalled.
5805 /// </summary>
5806 public string KB
5807 {
5808 get
5809 {
5810 return this.kBField;
5811 }
5812 set
5813 {
5814 this.kBFieldSet = true;
5815 this.kBField = value;
5816 }
5817 }
5818
5819 public virtual ISchemaElement ParentElement
5820 {
5821 get
5822 {
5823 return this.parentElement;
5824 }
5825 set
5826 {
5827 this.parentElement = value;
5828 }
5829 }
5830
5831 public virtual void AddChild(ISchemaElement child)
5832 {
5833 if ((null == child))
5834 {
5835 throw new ArgumentNullException("child");
5836 }
5837 this.children.AddElement(child);
5838 child.ParentElement = this;
5839 }
5840
5841 public virtual void RemoveChild(ISchemaElement child)
5842 {
5843 if ((null == child))
5844 {
5845 throw new ArgumentNullException("child");
5846 }
5847 this.children.RemoveElement(child);
5848 child.ParentElement = null;
5849 }
5850
5851 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
5852 ISchemaElement ICreateChildren.CreateChild(string childName)
5853 {
5854 if (String.IsNullOrEmpty(childName))
5855 {
5856 throw new ArgumentNullException("childName");
5857 }
5858 ISchemaElement childValue = null;
5859 if (("Payload" == childName))
5860 {
5861 childValue = new Payload();
5862 }
5863 if (("PayloadGroupRef" == childName))
5864 {
5865 childValue = new PayloadGroupRef();
5866 }
5867 if (("RemotePayload" == childName))
5868 {
5869 childValue = new RemotePayload();
5870 }
5871 if ((null == childValue))
5872 {
5873 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
5874 }
5875 return childValue;
5876 }
5877
5878 /// <summary>
5879 /// Processes this element and all child elements into an XmlWriter.
5880 /// </summary>
5881 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
5882 public virtual void OutputXml(XmlWriter writer)
5883 {
5884 if ((null == writer))
5885 {
5886 throw new ArgumentNullException("writer");
5887 }
5888 writer.WriteStartElement("MsuPackage", "http://wixtoolset.org/schemas/v4/wxs");
5889 if (this.sourceFileFieldSet)
5890 {
5891 writer.WriteAttributeString("SourceFile", this.sourceFileField);
5892 }
5893 if (this.nameFieldSet)
5894 {
5895 writer.WriteAttributeString("Name", this.nameField);
5896 }
5897 if (this.downloadUrlFieldSet)
5898 {
5899 writer.WriteAttributeString("DownloadUrl", this.downloadUrlField);
5900 }
5901 if (this.idFieldSet)
5902 {
5903 writer.WriteAttributeString("Id", this.idField);
5904 }
5905 if (this.afterFieldSet)
5906 {
5907 writer.WriteAttributeString("After", this.afterField);
5908 }
5909 if (this.installSizeFieldSet)
5910 {
5911 writer.WriteAttributeString("InstallSize", this.installSizeField);
5912 }
5913 if (this.installConditionFieldSet)
5914 {
5915 writer.WriteAttributeString("InstallCondition", this.installConditionField);
5916 }
5917 if (this.cacheFieldSet)
5918 {
5919 if ((this.cacheField == YesNoAlwaysType.always))
5920 {
5921 writer.WriteAttributeString("Cache", "always");
5922 }
5923 if ((this.cacheField == YesNoAlwaysType.no))
5924 {
5925 writer.WriteAttributeString("Cache", "no");
5926 }
5927 if ((this.cacheField == YesNoAlwaysType.yes))
5928 {
5929 writer.WriteAttributeString("Cache", "yes");
5930 }
5931 }
5932 if (this.cacheIdFieldSet)
5933 {
5934 writer.WriteAttributeString("CacheId", this.cacheIdField);
5935 }
5936 if (this.displayNameFieldSet)
5937 {
5938 writer.WriteAttributeString("DisplayName", this.displayNameField);
5939 }
5940 if (this.descriptionFieldSet)
5941 {
5942 writer.WriteAttributeString("Description", this.descriptionField);
5943 }
5944 if (this.logPathVariableFieldSet)
5945 {
5946 writer.WriteAttributeString("LogPathVariable", this.logPathVariableField);
5947 }
5948 if (this.rollbackLogPathVariableFieldSet)
5949 {
5950 writer.WriteAttributeString("RollbackLogPathVariable", this.rollbackLogPathVariableField);
5951 }
5952 if (this.permanentFieldSet)
5953 {
5954 if ((this.permanentField == YesNoType.no))
5955 {
5956 writer.WriteAttributeString("Permanent", "no");
5957 }
5958 if ((this.permanentField == YesNoType.yes))
5959 {
5960 writer.WriteAttributeString("Permanent", "yes");
5961 }
5962 }
5963 if (this.vitalFieldSet)
5964 {
5965 if ((this.vitalField == YesNoType.no))
5966 {
5967 writer.WriteAttributeString("Vital", "no");
5968 }
5969 if ((this.vitalField == YesNoType.yes))
5970 {
5971 writer.WriteAttributeString("Vital", "yes");
5972 }
5973 }
5974 if (this.compressedFieldSet)
5975 {
5976 if ((this.compressedField == YesNoDefaultType.@default))
5977 {
5978 writer.WriteAttributeString("Compressed", "default");
5979 }
5980 if ((this.compressedField == YesNoDefaultType.no))
5981 {
5982 writer.WriteAttributeString("Compressed", "no");
5983 }
5984 if ((this.compressedField == YesNoDefaultType.yes))
5985 {
5986 writer.WriteAttributeString("Compressed", "yes");
5987 }
5988 }
5989 if (this.enableSignatureVerificationFieldSet)
5990 {
5991 if ((this.enableSignatureVerificationField == YesNoType.no))
5992 {
5993 writer.WriteAttributeString("EnableSignatureVerification", "no");
5994 }
5995 if ((this.enableSignatureVerificationField == YesNoType.yes))
5996 {
5997 writer.WriteAttributeString("EnableSignatureVerification", "yes");
5998 }
5999 }
6000 if (this.detectConditionFieldSet)
6001 {
6002 writer.WriteAttributeString("DetectCondition", this.detectConditionField);
6003 }
6004 if (this.kBFieldSet)
6005 {
6006 writer.WriteAttributeString("KB", this.kBField);
6007 }
6008 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
6009 {
6010 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
6011 childElement.OutputXml(writer);
6012 }
6013 writer.WriteEndElement();
6014 }
6015
6016 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
6017 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
6018 void ISetAttributes.SetAttribute(string name, string value)
6019 {
6020 if (String.IsNullOrEmpty(name))
6021 {
6022 throw new ArgumentNullException("name");
6023 }
6024 if (("SourceFile" == name))
6025 {
6026 this.sourceFileField = value;
6027 this.sourceFileFieldSet = true;
6028 }
6029 if (("Name" == name))
6030 {
6031 this.nameField = value;
6032 this.nameFieldSet = true;
6033 }
6034 if (("DownloadUrl" == name))
6035 {
6036 this.downloadUrlField = value;
6037 this.downloadUrlFieldSet = true;
6038 }
6039 if (("Id" == name))
6040 {
6041 this.idField = value;
6042 this.idFieldSet = true;
6043 }
6044 if (("After" == name))
6045 {
6046 this.afterField = value;
6047 this.afterFieldSet = true;
6048 }
6049 if (("InstallSize" == name))
6050 {
6051 this.installSizeField = value;
6052 this.installSizeFieldSet = true;
6053 }
6054 if (("InstallCondition" == name))
6055 {
6056 this.installConditionField = value;
6057 this.installConditionFieldSet = true;
6058 }
6059 if (("Cache" == name))
6060 {
6061 this.cacheField = Enums.ParseYesNoAlwaysType(value);
6062 this.cacheFieldSet = true;
6063 }
6064 if (("CacheId" == name))
6065 {
6066 this.cacheIdField = value;
6067 this.cacheIdFieldSet = true;
6068 }
6069 if (("DisplayName" == name))
6070 {
6071 this.displayNameField = value;
6072 this.displayNameFieldSet = true;
6073 }
6074 if (("Description" == name))
6075 {
6076 this.descriptionField = value;
6077 this.descriptionFieldSet = true;
6078 }
6079 if (("LogPathVariable" == name))
6080 {
6081 this.logPathVariableField = value;
6082 this.logPathVariableFieldSet = true;
6083 }
6084 if (("RollbackLogPathVariable" == name))
6085 {
6086 this.rollbackLogPathVariableField = value;
6087 this.rollbackLogPathVariableFieldSet = true;
6088 }
6089 if (("Permanent" == name))
6090 {
6091 this.permanentField = Enums.ParseYesNoType(value);
6092 this.permanentFieldSet = true;
6093 }
6094 if (("Vital" == name))
6095 {
6096 this.vitalField = Enums.ParseYesNoType(value);
6097 this.vitalFieldSet = true;
6098 }
6099 if (("Compressed" == name))
6100 {
6101 this.compressedField = Enums.ParseYesNoDefaultType(value);
6102 this.compressedFieldSet = true;
6103 }
6104 if (("EnableSignatureVerification" == name))
6105 {
6106 this.enableSignatureVerificationField = Enums.ParseYesNoType(value);
6107 this.enableSignatureVerificationFieldSet = true;
6108 }
6109 if (("DetectCondition" == name))
6110 {
6111 this.detectConditionField = value;
6112 this.detectConditionFieldSet = true;
6113 }
6114 if (("KB" == name))
6115 {
6116 this.kBField = value;
6117 this.kBFieldSet = true;
6118 }
6119 }
6120 }
6121
6122 /// <summary>
6123 /// Describes a single exe package to install.
6124 /// </summary>
6125 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
6126 public class ExePackage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
6127 {
6128
6129 private ElementCollection children;
6130
6131 private string sourceFileField;
6132
6133 private bool sourceFileFieldSet;
6134
6135 private string nameField;
6136
6137 private bool nameFieldSet;
6138
6139 private string downloadUrlField;
6140
6141 private bool downloadUrlFieldSet;
6142
6143 private string idField;
6144
6145 private bool idFieldSet;
6146
6147 private string afterField;
6148
6149 private bool afterFieldSet;
6150
6151 private string installSizeField;
6152
6153 private bool installSizeFieldSet;
6154
6155 private string installConditionField;
6156
6157 private bool installConditionFieldSet;
6158
6159 private YesNoAlwaysType cacheField;
6160
6161 private bool cacheFieldSet;
6162
6163 private string cacheIdField;
6164
6165 private bool cacheIdFieldSet;
6166
6167 private string displayNameField;
6168
6169 private bool displayNameFieldSet;
6170
6171 private string descriptionField;
6172
6173 private bool descriptionFieldSet;
6174
6175 private string logPathVariableField;
6176
6177 private bool logPathVariableFieldSet;
6178
6179 private string rollbackLogPathVariableField;
6180
6181 private bool rollbackLogPathVariableFieldSet;
6182
6183 private YesNoType permanentField;
6184
6185 private bool permanentFieldSet;
6186
6187 private YesNoType vitalField;
6188
6189 private bool vitalFieldSet;
6190
6191 private YesNoDefaultType compressedField;
6192
6193 private bool compressedFieldSet;
6194
6195 private YesNoType enableSignatureVerificationField;
6196
6197 private bool enableSignatureVerificationFieldSet;
6198
6199 private string detectConditionField;
6200
6201 private bool detectConditionFieldSet;
6202
6203 private string installCommandField;
6204
6205 private bool installCommandFieldSet;
6206
6207 private string repairCommandField;
6208
6209 private bool repairCommandFieldSet;
6210
6211 private string uninstallCommandField;
6212
6213 private bool uninstallCommandFieldSet;
6214
6215 private YesNoDefaultType perMachineField;
6216
6217 private bool perMachineFieldSet;
6218
6219 private BurnExeProtocolType protocolField;
6220
6221 private bool protocolFieldSet;
6222
6223 private ISchemaElement parentElement;
6224
6225 public ExePackage()
6226 {
6227 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
6228 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload)));
6229 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef)));
6230 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemotePayload)));
6231 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ExitCode)));
6232 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CommandLine)));
6233 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
6234 this.children = childCollection0;
6235 }
6236
6237 public virtual IEnumerable Children
6238 {
6239 get
6240 {
6241 return this.children;
6242 }
6243 }
6244
6245 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
6246 public virtual IEnumerable this[System.Type childType]
6247 {
6248 get
6249 {
6250 return this.children.Filter(childType);
6251 }
6252 }
6253
6254 /// <summary>
6255 /// Location of the package to add to the bundle. The default value is the Name attribute, if provided.
6256 /// At a minimum, the SourceFile or Name attribute must be specified.
6257 /// </summary>
6258 public string SourceFile
6259 {
6260 get
6261 {
6262 return this.sourceFileField;
6263 }
6264 set
6265 {
6266 this.sourceFileFieldSet = true;
6267 this.sourceFileField = value;
6268 }
6269 }
6270
6271 /// <summary>
6272 /// The destination path and file name for this chain payload. Use this attribute to rename the
6273 /// chain entry point or extract it into a subfolder. The default value is the file name from the
6274 /// SourceFile attribute, if provided. At a minimum, the Name or SourceFile attribute must be specified.
6275 /// The use of '..' directories is not allowed.
6276 /// </summary>
6277 public string Name
6278 {
6279 get
6280 {
6281 return this.nameField;
6282 }
6283 set
6284 {
6285 this.nameFieldSet = true;
6286 this.nameField = value;
6287 }
6288 }
6289
6290 public string DownloadUrl
6291 {
6292 get
6293 {
6294 return this.downloadUrlField;
6295 }
6296 set
6297 {
6298 this.downloadUrlFieldSet = true;
6299 this.downloadUrlField = value;
6300 }
6301 }
6302
6303 /// <summary>
6304 /// Identifier for this package, for ordering and cross-referencing. The default is the Name attribute
6305 /// modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores).
6306 /// </summary>
6307 public string Id
6308 {
6309 get
6310 {
6311 return this.idField;
6312 }
6313 set
6314 {
6315 this.idFieldSet = true;
6316 this.idField = value;
6317 }
6318 }
6319
6320 /// <summary>
6321 /// The identifier of another package that this one should be installed after. By default the After
6322 /// attribute is set to the previous sibling package in the Chain or PackageGroup element. If this
6323 /// attribute is specified ensure that a cycle is not created explicitly or implicitly.
6324 /// </summary>
6325 public string After
6326 {
6327 get
6328 {
6329 return this.afterField;
6330 }
6331 set
6332 {
6333 this.afterFieldSet = true;
6334 this.afterField = value;
6335 }
6336 }
6337
6338 /// <summary>
6339 /// The size this package will take on disk in bytes after it is installed. By default, the binder will
6340 /// calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs)
6341 /// and use the total for the install size of the package.
6342 /// </summary>
6343 public string InstallSize
6344 {
6345 get
6346 {
6347 return this.installSizeField;
6348 }
6349 set
6350 {
6351 this.installSizeFieldSet = true;
6352 this.installSizeField = value;
6353 }
6354 }
6355
6356 /// <summary>
6357 /// A condition to evaluate before installing the package. The package will only be installed if the condition evaluates to true. If the condition evaluates to false and the bundle is being installed, repaired, or modified, the package will be uninstalled.
6358 /// </summary>
6359 public string InstallCondition
6360 {
6361 get
6362 {
6363 return this.installConditionField;
6364 }
6365 set
6366 {
6367 this.installConditionFieldSet = true;
6368 this.installConditionField = value;
6369 }
6370 }
6371
6372 /// <summary>
6373 /// Whether to cache the package. The default is "yes".
6374 /// </summary>
6375 public YesNoAlwaysType Cache
6376 {
6377 get
6378 {
6379 return this.cacheField;
6380 }
6381 set
6382 {
6383 this.cacheFieldSet = true;
6384 this.cacheField = value;
6385 }
6386 }
6387
6388 /// <summary>
6389 /// The identifier to use when caching the package.
6390 /// </summary>
6391 public string CacheId
6392 {
6393 get
6394 {
6395 return this.cacheIdField;
6396 }
6397 set
6398 {
6399 this.cacheIdFieldSet = true;
6400 this.cacheIdField = value;
6401 }
6402 }
6403
6404 /// <summary>
6405 /// Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages
6406 /// use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use
6407 /// the DisplayName patch metadata property. Other package types must use this attribute to define a display name in the
6408 /// bootstrapper application data manifest.
6409 /// </summary>
6410 public string DisplayName
6411 {
6412 get
6413 {
6414 return this.displayNameField;
6415 }
6416 set
6417 {
6418 this.displayNameFieldSet = true;
6419 this.displayNameField = value;
6420 }
6421 }
6422
6423 /// <summary>
6424 /// Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages
6425 /// use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use
6426 /// the Description patch metadata property. Other package types must use this attribute to define a description in the
6427 /// bootstrapper application data manifest.
6428 /// </summary>
6429 public string Description
6430 {
6431 get
6432 {
6433 return this.descriptionField;
6434 }
6435 set
6436 {
6437 this.descriptionFieldSet = true;
6438 this.descriptionField = value;
6439 }
6440 }
6441
6442 /// <summary>
6443 /// Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not
6444 /// be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging.
6445 /// </summary>
6446 public string LogPathVariable
6447 {
6448 get
6449 {
6450 return this.logPathVariableField;
6451 }
6452 set
6453 {
6454 this.logPathVariableFieldSet = true;
6455 this.logPathVariableField = value;
6456 }
6457 }
6458
6459 /// <summary>
6460 /// Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause
6461 /// the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which
6462 /// default to no logging.
6463 /// </summary>
6464 public string RollbackLogPathVariable
6465 {
6466 get
6467 {
6468 return this.rollbackLogPathVariableField;
6469 }
6470 set
6471 {
6472 this.rollbackLogPathVariableFieldSet = true;
6473 this.rollbackLogPathVariableField = value;
6474 }
6475 }
6476
6477 /// <summary>
6478 /// Specifies whether the package can be uninstalled. The default is "no".
6479 /// </summary>
6480 public YesNoType Permanent
6481 {
6482 get
6483 {
6484 return this.permanentField;
6485 }
6486 set
6487 {
6488 this.permanentFieldSet = true;
6489 this.permanentField = value;
6490 }
6491 }
6492
6493 /// <summary>
6494 /// Specifies whether the package must succeed for the chain to continue. The default "yes"
6495 /// indicates that if the package fails then the chain will fail and rollback or stop. If
6496 /// "no" is specified then the chain will continue even if the package reports failure.
6497 /// </summary>
6498 public YesNoType Vital
6499 {
6500 get
6501 {
6502 return this.vitalField;
6503 }
6504 set
6505 {
6506 this.vitalFieldSet = true;
6507 this.vitalField = value;
6508 }
6509 }
6510
6511 /// <summary>
6512 /// Whether the package payload should be embedded in a container or left as an external payload.
6513 /// </summary>
6514 public YesNoDefaultType Compressed
6515 {
6516 get
6517 {
6518 return this.compressedField;
6519 }
6520 set
6521 {
6522 this.compressedFieldSet = true;
6523 this.compressedField = value;
6524 }
6525 }
6526
6527 /// <summary>
6528 /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes"
6529 /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the
6530 /// signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures.
6531 /// Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no".
6532 /// </summary>
6533 public YesNoType EnableSignatureVerification
6534 {
6535 get
6536 {
6537 return this.enableSignatureVerificationField;
6538 }
6539 set
6540 {
6541 this.enableSignatureVerificationFieldSet = true;
6542 this.enableSignatureVerificationField = value;
6543 }
6544 }
6545
6546 /// <summary>
6547 /// A condition that determines if the package is present on the target system. This condition can use built-in
6548 /// variables and variables returned by searches. This condition is necessary because Windows doesn't provide a
6549 /// method to detect the presence of an ExePackage. Burn uses this condition to determine how to treat this
6550 /// package during a bundle action; for example, if this condition is false or omitted and the bundle is being
6551 /// installed, Burn will install this package.
6552 /// </summary>
6553 public string DetectCondition
6554 {
6555 get
6556 {
6557 return this.detectConditionField;
6558 }
6559 set
6560 {
6561 this.detectConditionFieldSet = true;
6562 this.detectConditionField = value;
6563 }
6564 }
6565
6566 /// <summary>
6567 /// The command-line arguments provided to the ExePackage during install. If this attribute is absent the executable will be launched with no command-line arguments.
6568 /// </summary>
6569 public string InstallCommand
6570 {
6571 get
6572 {
6573 return this.installCommandField;
6574 }
6575 set
6576 {
6577 this.installCommandFieldSet = true;
6578 this.installCommandField = value;
6579 }
6580 }
6581
6582 /// <summary>
6583 /// The command-line arguments to specify to indicate a repair. If the executable package can be repaired but
6584 /// does not require any special command-line arguments to do so then set the attribute's value to blank. To
6585 /// indicate that the package does not support repair, omit this attribute.
6586 /// </summary>
6587 public string RepairCommand
6588 {
6589 get
6590 {
6591 return this.repairCommandField;
6592 }
6593 set
6594 {
6595 this.repairCommandFieldSet = true;
6596 this.repairCommandField = value;
6597 }
6598 }
6599
6600 /// <summary>
6601 /// The command-line arguments provided to the ExePackage during uninstall. If this attribute is absent the executable will be launched with no command-line arguments. To prevent an ExePackage from being uninstalled set the Permanent attribute to "yes".
6602 /// </summary>
6603 public string UninstallCommand
6604 {
6605 get
6606 {
6607 return this.uninstallCommandField;
6608 }
6609 set
6610 {
6611 this.uninstallCommandFieldSet = true;
6612 this.uninstallCommandField = value;
6613 }
6614 }
6615
6616 /// <summary>
6617 /// Indicates the package must be executed elevated. The default is "no".
6618 /// </summary>
6619 public YesNoDefaultType PerMachine
6620 {
6621 get
6622 {
6623 return this.perMachineField;
6624 }
6625 set
6626 {
6627 this.perMachineFieldSet = true;
6628 this.perMachineField = value;
6629 }
6630 }
6631
6632 /// <summary>
6633 /// Indicates the communication protocol the package supports for extended progress and error reporting. The default is "none".
6634 /// </summary>
6635 public BurnExeProtocolType Protocol
6636 {
6637 get
6638 {
6639 return this.protocolField;
6640 }
6641 set
6642 {
6643 this.protocolFieldSet = true;
6644 this.protocolField = value;
6645 }
6646 }
6647
6648 public virtual ISchemaElement ParentElement
6649 {
6650 get
6651 {
6652 return this.parentElement;
6653 }
6654 set
6655 {
6656 this.parentElement = value;
6657 }
6658 }
6659
6660 public virtual void AddChild(ISchemaElement child)
6661 {
6662 if ((null == child))
6663 {
6664 throw new ArgumentNullException("child");
6665 }
6666 this.children.AddElement(child);
6667 child.ParentElement = this;
6668 }
6669
6670 public virtual void RemoveChild(ISchemaElement child)
6671 {
6672 if ((null == child))
6673 {
6674 throw new ArgumentNullException("child");
6675 }
6676 this.children.RemoveElement(child);
6677 child.ParentElement = null;
6678 }
6679
6680 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
6681 ISchemaElement ICreateChildren.CreateChild(string childName)
6682 {
6683 if (String.IsNullOrEmpty(childName))
6684 {
6685 throw new ArgumentNullException("childName");
6686 }
6687 ISchemaElement childValue = null;
6688 if (("Payload" == childName))
6689 {
6690 childValue = new Payload();
6691 }
6692 if (("PayloadGroupRef" == childName))
6693 {
6694 childValue = new PayloadGroupRef();
6695 }
6696 if (("RemotePayload" == childName))
6697 {
6698 childValue = new RemotePayload();
6699 }
6700 if (("ExitCode" == childName))
6701 {
6702 childValue = new ExitCode();
6703 }
6704 if (("CommandLine" == childName))
6705 {
6706 childValue = new CommandLine();
6707 }
6708 if ((null == childValue))
6709 {
6710 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
6711 }
6712 return childValue;
6713 }
6714
6715 /// <summary>
6716 /// Processes this element and all child elements into an XmlWriter.
6717 /// </summary>
6718 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
6719 public virtual void OutputXml(XmlWriter writer)
6720 {
6721 if ((null == writer))
6722 {
6723 throw new ArgumentNullException("writer");
6724 }
6725 writer.WriteStartElement("ExePackage", "http://wixtoolset.org/schemas/v4/wxs");
6726 if (this.sourceFileFieldSet)
6727 {
6728 writer.WriteAttributeString("SourceFile", this.sourceFileField);
6729 }
6730 if (this.nameFieldSet)
6731 {
6732 writer.WriteAttributeString("Name", this.nameField);
6733 }
6734 if (this.downloadUrlFieldSet)
6735 {
6736 writer.WriteAttributeString("DownloadUrl", this.downloadUrlField);
6737 }
6738 if (this.idFieldSet)
6739 {
6740 writer.WriteAttributeString("Id", this.idField);
6741 }
6742 if (this.afterFieldSet)
6743 {
6744 writer.WriteAttributeString("After", this.afterField);
6745 }
6746 if (this.installSizeFieldSet)
6747 {
6748 writer.WriteAttributeString("InstallSize", this.installSizeField);
6749 }
6750 if (this.installConditionFieldSet)
6751 {
6752 writer.WriteAttributeString("InstallCondition", this.installConditionField);
6753 }
6754 if (this.cacheFieldSet)
6755 {
6756 if ((this.cacheField == YesNoAlwaysType.always))
6757 {
6758 writer.WriteAttributeString("Cache", "always");
6759 }
6760 if ((this.cacheField == YesNoAlwaysType.no))
6761 {
6762 writer.WriteAttributeString("Cache", "no");
6763 }
6764 if ((this.cacheField == YesNoAlwaysType.yes))
6765 {
6766 writer.WriteAttributeString("Cache", "yes");
6767 }
6768 }
6769 if (this.cacheIdFieldSet)
6770 {
6771 writer.WriteAttributeString("CacheId", this.cacheIdField);
6772 }
6773 if (this.displayNameFieldSet)
6774 {
6775 writer.WriteAttributeString("DisplayName", this.displayNameField);
6776 }
6777 if (this.descriptionFieldSet)
6778 {
6779 writer.WriteAttributeString("Description", this.descriptionField);
6780 }
6781 if (this.logPathVariableFieldSet)
6782 {
6783 writer.WriteAttributeString("LogPathVariable", this.logPathVariableField);
6784 }
6785 if (this.rollbackLogPathVariableFieldSet)
6786 {
6787 writer.WriteAttributeString("RollbackLogPathVariable", this.rollbackLogPathVariableField);
6788 }
6789 if (this.permanentFieldSet)
6790 {
6791 if ((this.permanentField == YesNoType.no))
6792 {
6793 writer.WriteAttributeString("Permanent", "no");
6794 }
6795 if ((this.permanentField == YesNoType.yes))
6796 {
6797 writer.WriteAttributeString("Permanent", "yes");
6798 }
6799 }
6800 if (this.vitalFieldSet)
6801 {
6802 if ((this.vitalField == YesNoType.no))
6803 {
6804 writer.WriteAttributeString("Vital", "no");
6805 }
6806 if ((this.vitalField == YesNoType.yes))
6807 {
6808 writer.WriteAttributeString("Vital", "yes");
6809 }
6810 }
6811 if (this.compressedFieldSet)
6812 {
6813 if ((this.compressedField == YesNoDefaultType.@default))
6814 {
6815 writer.WriteAttributeString("Compressed", "default");
6816 }
6817 if ((this.compressedField == YesNoDefaultType.no))
6818 {
6819 writer.WriteAttributeString("Compressed", "no");
6820 }
6821 if ((this.compressedField == YesNoDefaultType.yes))
6822 {
6823 writer.WriteAttributeString("Compressed", "yes");
6824 }
6825 }
6826 if (this.enableSignatureVerificationFieldSet)
6827 {
6828 if ((this.enableSignatureVerificationField == YesNoType.no))
6829 {
6830 writer.WriteAttributeString("EnableSignatureVerification", "no");
6831 }
6832 if ((this.enableSignatureVerificationField == YesNoType.yes))
6833 {
6834 writer.WriteAttributeString("EnableSignatureVerification", "yes");
6835 }
6836 }
6837 if (this.detectConditionFieldSet)
6838 {
6839 writer.WriteAttributeString("DetectCondition", this.detectConditionField);
6840 }
6841 if (this.installCommandFieldSet)
6842 {
6843 writer.WriteAttributeString("InstallCommand", this.installCommandField);
6844 }
6845 if (this.repairCommandFieldSet)
6846 {
6847 writer.WriteAttributeString("RepairCommand", this.repairCommandField);
6848 }
6849 if (this.uninstallCommandFieldSet)
6850 {
6851 writer.WriteAttributeString("UninstallCommand", this.uninstallCommandField);
6852 }
6853 if (this.perMachineFieldSet)
6854 {
6855 if ((this.perMachineField == YesNoDefaultType.@default))
6856 {
6857 writer.WriteAttributeString("PerMachine", "default");
6858 }
6859 if ((this.perMachineField == YesNoDefaultType.no))
6860 {
6861 writer.WriteAttributeString("PerMachine", "no");
6862 }
6863 if ((this.perMachineField == YesNoDefaultType.yes))
6864 {
6865 writer.WriteAttributeString("PerMachine", "yes");
6866 }
6867 }
6868 if (this.protocolFieldSet)
6869 {
6870 if ((this.protocolField == BurnExeProtocolType.none))
6871 {
6872 writer.WriteAttributeString("Protocol", "none");
6873 }
6874 if ((this.protocolField == BurnExeProtocolType.burn))
6875 {
6876 writer.WriteAttributeString("Protocol", "burn");
6877 }
6878 if ((this.protocolField == BurnExeProtocolType.netfx4))
6879 {
6880 writer.WriteAttributeString("Protocol", "netfx4");
6881 }
6882 }
6883 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
6884 {
6885 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
6886 childElement.OutputXml(writer);
6887 }
6888 writer.WriteEndElement();
6889 }
6890
6891 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
6892 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
6893 void ISetAttributes.SetAttribute(string name, string value)
6894 {
6895 if (String.IsNullOrEmpty(name))
6896 {
6897 throw new ArgumentNullException("name");
6898 }
6899 if (("SourceFile" == name))
6900 {
6901 this.sourceFileField = value;
6902 this.sourceFileFieldSet = true;
6903 }
6904 if (("Name" == name))
6905 {
6906 this.nameField = value;
6907 this.nameFieldSet = true;
6908 }
6909 if (("DownloadUrl" == name))
6910 {
6911 this.downloadUrlField = value;
6912 this.downloadUrlFieldSet = true;
6913 }
6914 if (("Id" == name))
6915 {
6916 this.idField = value;
6917 this.idFieldSet = true;
6918 }
6919 if (("After" == name))
6920 {
6921 this.afterField = value;
6922 this.afterFieldSet = true;
6923 }
6924 if (("InstallSize" == name))
6925 {
6926 this.installSizeField = value;
6927 this.installSizeFieldSet = true;
6928 }
6929 if (("InstallCondition" == name))
6930 {
6931 this.installConditionField = value;
6932 this.installConditionFieldSet = true;
6933 }
6934 if (("Cache" == name))
6935 {
6936 this.cacheField = Enums.ParseYesNoAlwaysType(value);
6937 this.cacheFieldSet = true;
6938 }
6939 if (("CacheId" == name))
6940 {
6941 this.cacheIdField = value;
6942 this.cacheIdFieldSet = true;
6943 }
6944 if (("DisplayName" == name))
6945 {
6946 this.displayNameField = value;
6947 this.displayNameFieldSet = true;
6948 }
6949 if (("Description" == name))
6950 {
6951 this.descriptionField = value;
6952 this.descriptionFieldSet = true;
6953 }
6954 if (("LogPathVariable" == name))
6955 {
6956 this.logPathVariableField = value;
6957 this.logPathVariableFieldSet = true;
6958 }
6959 if (("RollbackLogPathVariable" == name))
6960 {
6961 this.rollbackLogPathVariableField = value;
6962 this.rollbackLogPathVariableFieldSet = true;
6963 }
6964 if (("Permanent" == name))
6965 {
6966 this.permanentField = Enums.ParseYesNoType(value);
6967 this.permanentFieldSet = true;
6968 }
6969 if (("Vital" == name))
6970 {
6971 this.vitalField = Enums.ParseYesNoType(value);
6972 this.vitalFieldSet = true;
6973 }
6974 if (("Compressed" == name))
6975 {
6976 this.compressedField = Enums.ParseYesNoDefaultType(value);
6977 this.compressedFieldSet = true;
6978 }
6979 if (("EnableSignatureVerification" == name))
6980 {
6981 this.enableSignatureVerificationField = Enums.ParseYesNoType(value);
6982 this.enableSignatureVerificationFieldSet = true;
6983 }
6984 if (("DetectCondition" == name))
6985 {
6986 this.detectConditionField = value;
6987 this.detectConditionFieldSet = true;
6988 }
6989 if (("InstallCommand" == name))
6990 {
6991 this.installCommandField = value;
6992 this.installCommandFieldSet = true;
6993 }
6994 if (("RepairCommand" == name))
6995 {
6996 this.repairCommandField = value;
6997 this.repairCommandFieldSet = true;
6998 }
6999 if (("UninstallCommand" == name))
7000 {
7001 this.uninstallCommandField = value;
7002 this.uninstallCommandFieldSet = true;
7003 }
7004 if (("PerMachine" == name))
7005 {
7006 this.perMachineField = Enums.ParseYesNoDefaultType(value);
7007 this.perMachineFieldSet = true;
7008 }
7009 if (("Protocol" == name))
7010 {
7011 this.protocolField = Enums.ParseBurnExeProtocolType(value);
7012 this.protocolFieldSet = true;
7013 }
7014 }
7015 }
7016
7017 /// <summary>
7018 /// Describes a rollback boundary in the chain.
7019 /// </summary>
7020 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
7021 public class RollbackBoundary : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
7022 {
7023
7024 private ElementCollection children;
7025
7026 private string idField;
7027
7028 private bool idFieldSet;
7029
7030 private YesNoType vitalField;
7031
7032 private bool vitalFieldSet;
7033
7034 private YesNoType transactionField;
7035
7036 private bool transactionFieldSet;
7037
7038 private ISchemaElement parentElement;
7039
7040 public RollbackBoundary()
7041 {
7042 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
7043 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
7044 this.children = childCollection0;
7045 }
7046
7047 public virtual IEnumerable Children
7048 {
7049 get
7050 {
7051 return this.children;
7052 }
7053 }
7054
7055 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
7056 public virtual IEnumerable this[System.Type childType]
7057 {
7058 get
7059 {
7060 return this.children.Filter(childType);
7061 }
7062 }
7063
7064 /// <summary>
7065 /// Identifier for this rollback boundary, for ordering and cross-referencing. If this attribute is
7066 /// not provided a stable identifier will be generated.
7067 /// </summary>
7068 public string Id
7069 {
7070 get
7071 {
7072 return this.idField;
7073 }
7074 set
7075 {
7076 this.idFieldSet = true;
7077 this.idField = value;
7078 }
7079 }
7080
7081 /// <summary>
7082 /// Specifies whether the rollback boundary aborts the chain. The default "yes" indicates that if
7083 /// the rollback boundary is encountered then the chain will fail and rollback or stop. If "no"
7084 /// is specified then the chain should continue successfuly at the next rollback boundary.
7085 /// </summary>
7086 public YesNoType Vital
7087 {
7088 get
7089 {
7090 return this.vitalField;
7091 }
7092 set
7093 {
7094 this.vitalFieldSet = true;
7095 this.vitalField = value;
7096 }
7097 }
7098
7099 /// <summary>
7100 /// Specifies whether the rollback boundary is wrapped in an MSI transaction. The default is "no"
7101 /// </summary>
7102 public YesNoType Transaction
7103 {
7104 get
7105 {
7106 return this.transactionField;
7107 }
7108 set
7109 {
7110 this.transactionFieldSet = true;
7111 this.transactionField = value;
7112 }
7113 }
7114
7115 public virtual ISchemaElement ParentElement
7116 {
7117 get
7118 {
7119 return this.parentElement;
7120 }
7121 set
7122 {
7123 this.parentElement = value;
7124 }
7125 }
7126
7127 public virtual void AddChild(ISchemaElement child)
7128 {
7129 if ((null == child))
7130 {
7131 throw new ArgumentNullException("child");
7132 }
7133 this.children.AddElement(child);
7134 child.ParentElement = this;
7135 }
7136
7137 public virtual void RemoveChild(ISchemaElement child)
7138 {
7139 if ((null == child))
7140 {
7141 throw new ArgumentNullException("child");
7142 }
7143 this.children.RemoveElement(child);
7144 child.ParentElement = null;
7145 }
7146
7147 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
7148 ISchemaElement ICreateChildren.CreateChild(string childName)
7149 {
7150 if (String.IsNullOrEmpty(childName))
7151 {
7152 throw new ArgumentNullException("childName");
7153 }
7154 ISchemaElement childValue = null;
7155 if ((null == childValue))
7156 {
7157 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
7158 }
7159 return childValue;
7160 }
7161
7162 /// <summary>
7163 /// Processes this element and all child elements into an XmlWriter.
7164 /// </summary>
7165 public virtual void OutputXml(XmlWriter writer)
7166 {
7167 if ((null == writer))
7168 {
7169 throw new ArgumentNullException("writer");
7170 }
7171 writer.WriteStartElement("RollbackBoundary", "http://wixtoolset.org/schemas/v4/wxs");
7172 if (this.idFieldSet)
7173 {
7174 writer.WriteAttributeString("Id", this.idField);
7175 }
7176 if (this.vitalFieldSet)
7177 {
7178 if ((this.vitalField == YesNoType.no))
7179 {
7180 writer.WriteAttributeString("Vital", "no");
7181 }
7182 if ((this.vitalField == YesNoType.yes))
7183 {
7184 writer.WriteAttributeString("Vital", "yes");
7185 }
7186 }
7187 if (this.transactionFieldSet)
7188 {
7189 if ((this.transactionField == YesNoType.no))
7190 {
7191 writer.WriteAttributeString("Transaction", "no");
7192 }
7193 if ((this.transactionField == YesNoType.yes))
7194 {
7195 writer.WriteAttributeString("Transaction", "yes");
7196 }
7197 }
7198 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
7199 {
7200 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
7201 childElement.OutputXml(writer);
7202 }
7203 writer.WriteEndElement();
7204 }
7205
7206 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
7207 void ISetAttributes.SetAttribute(string name, string value)
7208 {
7209 if (String.IsNullOrEmpty(name))
7210 {
7211 throw new ArgumentNullException("name");
7212 }
7213 if (("Id" == name))
7214 {
7215 this.idField = value;
7216 this.idFieldSet = true;
7217 }
7218 if (("Vital" == name))
7219 {
7220 this.vitalField = Enums.ParseYesNoType(value);
7221 this.vitalFieldSet = true;
7222 }
7223 if (("Transaction" == name))
7224 {
7225 this.transactionField = Enums.ParseYesNoType(value);
7226 this.transactionFieldSet = true;
7227 }
7228 }
7229 }
7230
7231 /// <summary>
7232 /// Describes a package group to a bootstrapper.
7233 /// </summary>
7234 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
7235 public class PackageGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
7236 {
7237
7238 private ElementCollection children;
7239
7240 private string idField;
7241
7242 private bool idFieldSet;
7243
7244 private ISchemaElement parentElement;
7245
7246 public PackageGroup()
7247 {
7248 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
7249 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiPackage)));
7250 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MspPackage)));
7251 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsuPackage)));
7252 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ExePackage)));
7253 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RollbackBoundary)));
7254 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageGroupRef)));
7255 this.children = childCollection0;
7256 }
7257
7258 public virtual IEnumerable Children
7259 {
7260 get
7261 {
7262 return this.children;
7263 }
7264 }
7265
7266 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
7267 public virtual IEnumerable this[System.Type childType]
7268 {
7269 get
7270 {
7271 return this.children.Filter(childType);
7272 }
7273 }
7274
7275 /// <summary>
7276 /// Identifier for package group.
7277 /// </summary>
7278 public string Id
7279 {
7280 get
7281 {
7282 return this.idField;
7283 }
7284 set
7285 {
7286 this.idFieldSet = true;
7287 this.idField = value;
7288 }
7289 }
7290
7291 public virtual ISchemaElement ParentElement
7292 {
7293 get
7294 {
7295 return this.parentElement;
7296 }
7297 set
7298 {
7299 this.parentElement = value;
7300 }
7301 }
7302
7303 public virtual void AddChild(ISchemaElement child)
7304 {
7305 if ((null == child))
7306 {
7307 throw new ArgumentNullException("child");
7308 }
7309 this.children.AddElement(child);
7310 child.ParentElement = this;
7311 }
7312
7313 public virtual void RemoveChild(ISchemaElement child)
7314 {
7315 if ((null == child))
7316 {
7317 throw new ArgumentNullException("child");
7318 }
7319 this.children.RemoveElement(child);
7320 child.ParentElement = null;
7321 }
7322
7323 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
7324 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
7325 ISchemaElement ICreateChildren.CreateChild(string childName)
7326 {
7327 if (String.IsNullOrEmpty(childName))
7328 {
7329 throw new ArgumentNullException("childName");
7330 }
7331 ISchemaElement childValue = null;
7332 if (("MsiPackage" == childName))
7333 {
7334 childValue = new MsiPackage();
7335 }
7336 if (("MspPackage" == childName))
7337 {
7338 childValue = new MspPackage();
7339 }
7340 if (("MsuPackage" == childName))
7341 {
7342 childValue = new MsuPackage();
7343 }
7344 if (("ExePackage" == childName))
7345 {
7346 childValue = new ExePackage();
7347 }
7348 if (("RollbackBoundary" == childName))
7349 {
7350 childValue = new RollbackBoundary();
7351 }
7352 if (("PackageGroupRef" == childName))
7353 {
7354 childValue = new PackageGroupRef();
7355 }
7356 if ((null == childValue))
7357 {
7358 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
7359 }
7360 return childValue;
7361 }
7362
7363 /// <summary>
7364 /// Processes this element and all child elements into an XmlWriter.
7365 /// </summary>
7366 public virtual void OutputXml(XmlWriter writer)
7367 {
7368 if ((null == writer))
7369 {
7370 throw new ArgumentNullException("writer");
7371 }
7372 writer.WriteStartElement("PackageGroup", "http://wixtoolset.org/schemas/v4/wxs");
7373 if (this.idFieldSet)
7374 {
7375 writer.WriteAttributeString("Id", this.idField);
7376 }
7377 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
7378 {
7379 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
7380 childElement.OutputXml(writer);
7381 }
7382 writer.WriteEndElement();
7383 }
7384
7385 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
7386 void ISetAttributes.SetAttribute(string name, string value)
7387 {
7388 if (String.IsNullOrEmpty(name))
7389 {
7390 throw new ArgumentNullException("name");
7391 }
7392 if (("Id" == name))
7393 {
7394 this.idField = value;
7395 this.idFieldSet = true;
7396 }
7397 }
7398 }
7399
7400 /// <summary>
7401 /// Create a reference to PackageGroup element that exists inside a Bundle or Fragment element.
7402 /// </summary>
7403 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
7404 public class PackageGroupRef : ISchemaElement, ISetAttributes
7405 {
7406
7407 private string idField;
7408
7409 private bool idFieldSet;
7410
7411 private string afterField;
7412
7413 private bool afterFieldSet;
7414
7415 private ISchemaElement parentElement;
7416
7417 /// <summary>
7418 /// The identifier of the PackageGroup element to reference.
7419 /// </summary>
7420 public string Id
7421 {
7422 get
7423 {
7424 return this.idField;
7425 }
7426 set
7427 {
7428 this.idFieldSet = true;
7429 this.idField = value;
7430 }
7431 }
7432
7433 /// <summary>
7434 /// The identifier of a package that this group should be installed after.
7435 /// </summary>
7436 public string After
7437 {
7438 get
7439 {
7440 return this.afterField;
7441 }
7442 set
7443 {
7444 this.afterFieldSet = true;
7445 this.afterField = value;
7446 }
7447 }
7448
7449 public virtual ISchemaElement ParentElement
7450 {
7451 get
7452 {
7453 return this.parentElement;
7454 }
7455 set
7456 {
7457 this.parentElement = value;
7458 }
7459 }
7460
7461 /// <summary>
7462 /// Processes this element and all child elements into an XmlWriter.
7463 /// </summary>
7464 public virtual void OutputXml(XmlWriter writer)
7465 {
7466 if ((null == writer))
7467 {
7468 throw new ArgumentNullException("writer");
7469 }
7470 writer.WriteStartElement("PackageGroupRef", "http://wixtoolset.org/schemas/v4/wxs");
7471 if (this.idFieldSet)
7472 {
7473 writer.WriteAttributeString("Id", this.idField);
7474 }
7475 if (this.afterFieldSet)
7476 {
7477 writer.WriteAttributeString("After", this.afterField);
7478 }
7479 writer.WriteEndElement();
7480 }
7481
7482 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
7483 void ISetAttributes.SetAttribute(string name, string value)
7484 {
7485 if (String.IsNullOrEmpty(name))
7486 {
7487 throw new ArgumentNullException("name");
7488 }
7489 if (("Id" == name))
7490 {
7491 this.idField = value;
7492 this.idFieldSet = true;
7493 }
7494 if (("After" == name))
7495 {
7496 this.afterField = value;
7497 this.afterFieldSet = true;
7498 }
7499 }
7500 }
7501
7502 /// <summary>
7503 /// Allows an MSI property to be set based on the value of a burn engine expression.
7504 /// </summary>
7505 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
7506 public class MsiProperty : ISchemaElement, ISetAttributes
7507 {
7508
7509 private string nameField;
7510
7511 private bool nameFieldSet;
7512
7513 private string valueField;
7514
7515 private bool valueFieldSet;
7516
7517 private ISchemaElement parentElement;
7518
7519 /// <summary>
7520 /// The name of the MSI property to set. Burn controls the follow MSI properties so they cannot be set with MsiProperty: ACTION, ALLUSERS, REBOOT, REINSTALL, REINSTALLMODE
7521 /// </summary>
7522 public string Name
7523 {
7524 get
7525 {
7526 return this.nameField;
7527 }
7528 set
7529 {
7530 this.nameFieldSet = true;
7531 this.nameField = value;
7532 }
7533 }
7534
7535 /// <summary>
7536 /// The value to set the property to. This string is evaluated by the burn engine and can be as simple as a burn engine variable reference or as complex as a full expression.
7537 /// </summary>
7538 public string Value
7539 {
7540 get
7541 {
7542 return this.valueField;
7543 }
7544 set
7545 {
7546 this.valueFieldSet = true;
7547 this.valueField = value;
7548 }
7549 }
7550
7551 public virtual ISchemaElement ParentElement
7552 {
7553 get
7554 {
7555 return this.parentElement;
7556 }
7557 set
7558 {
7559 this.parentElement = value;
7560 }
7561 }
7562
7563 /// <summary>
7564 /// Processes this element and all child elements into an XmlWriter.
7565 /// </summary>
7566 public virtual void OutputXml(XmlWriter writer)
7567 {
7568 if ((null == writer))
7569 {
7570 throw new ArgumentNullException("writer");
7571 }
7572 writer.WriteStartElement("MsiProperty", "http://wixtoolset.org/schemas/v4/wxs");
7573 if (this.nameFieldSet)
7574 {
7575 writer.WriteAttributeString("Name", this.nameField);
7576 }
7577 if (this.valueFieldSet)
7578 {
7579 writer.WriteAttributeString("Value", this.valueField);
7580 }
7581 writer.WriteEndElement();
7582 }
7583
7584 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
7585 void ISetAttributes.SetAttribute(string name, string value)
7586 {
7587 if (String.IsNullOrEmpty(name))
7588 {
7589 throw new ArgumentNullException("name");
7590 }
7591 if (("Name" == name))
7592 {
7593 this.nameField = value;
7594 this.nameFieldSet = true;
7595 }
7596 if (("Value" == name))
7597 {
7598 this.valueField = value;
7599 this.valueFieldSet = true;
7600 }
7601 }
7602 }
7603
7604 /// <summary>
7605 /// Specifies a patch included in the same bundle that is installed when the parent MSI package is installed.
7606 /// </summary>
7607 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
7608 public class SlipstreamMsp : ISchemaElement, ISetAttributes
7609 {
7610
7611 private string idField;
7612
7613 private bool idFieldSet;
7614
7615 private ISchemaElement parentElement;
7616
7617 /// <summary>
7618 /// The identifier for a MspPackage in the bundle.
7619 /// </summary>
7620 public string Id
7621 {
7622 get
7623 {
7624 return this.idField;
7625 }
7626 set
7627 {
7628 this.idFieldSet = true;
7629 this.idField = value;
7630 }
7631 }
7632
7633 public virtual ISchemaElement ParentElement
7634 {
7635 get
7636 {
7637 return this.parentElement;
7638 }
7639 set
7640 {
7641 this.parentElement = value;
7642 }
7643 }
7644
7645 /// <summary>
7646 /// Processes this element and all child elements into an XmlWriter.
7647 /// </summary>
7648 public virtual void OutputXml(XmlWriter writer)
7649 {
7650 if ((null == writer))
7651 {
7652 throw new ArgumentNullException("writer");
7653 }
7654 writer.WriteStartElement("SlipstreamMsp", "http://wixtoolset.org/schemas/v4/wxs");
7655 if (this.idFieldSet)
7656 {
7657 writer.WriteAttributeString("Id", this.idField);
7658 }
7659 writer.WriteEndElement();
7660 }
7661
7662 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
7663 void ISetAttributes.SetAttribute(string name, string value)
7664 {
7665 if (String.IsNullOrEmpty(name))
7666 {
7667 throw new ArgumentNullException("name");
7668 }
7669 if (("Id" == name))
7670 {
7671 this.idField = value;
7672 this.idFieldSet = true;
7673 }
7674 }
7675 }
7676
7677 /// <summary>
7678 /// Describes a burn engine variable to define.
7679 /// </summary>
7680 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
7681 public class Variable : ISchemaElement, ISetAttributes
7682 {
7683
7684 private YesNoType hiddenField;
7685
7686 private bool hiddenFieldSet;
7687
7688 private string nameField;
7689
7690 private bool nameFieldSet;
7691
7692 private YesNoType persistedField;
7693
7694 private bool persistedFieldSet;
7695
7696 private string valueField;
7697
7698 private bool valueFieldSet;
7699
7700 private TypeType typeField;
7701
7702 private bool typeFieldSet;
7703
7704 private ISchemaElement parentElement;
7705
7706 /// <summary>
7707 /// Whether the value of the variable should be hidden.
7708 /// </summary>
7709 public YesNoType Hidden
7710 {
7711 get
7712 {
7713 return this.hiddenField;
7714 }
7715 set
7716 {
7717 this.hiddenFieldSet = true;
7718 this.hiddenField = value;
7719 }
7720 }
7721
7722 /// <summary>
7723 /// The name for the variable.
7724 /// </summary>
7725 public string Name
7726 {
7727 get
7728 {
7729 return this.nameField;
7730 }
7731 set
7732 {
7733 this.nameFieldSet = true;
7734 this.nameField = value;
7735 }
7736 }
7737
7738 /// <summary>
7739 /// Whether the variable should be persisted.
7740 /// </summary>
7741 public YesNoType Persisted
7742 {
7743 get
7744 {
7745 return this.persistedField;
7746 }
7747 set
7748 {
7749 this.persistedFieldSet = true;
7750 this.persistedField = value;
7751 }
7752 }
7753
7754 /// <summary>
7755 /// Starting value for the variable.
7756 /// </summary>
7757 public string Value
7758 {
7759 get
7760 {
7761 return this.valueField;
7762 }
7763 set
7764 {
7765 this.valueFieldSet = true;
7766 this.valueField = value;
7767 }
7768 }
7769
7770 /// <summary>
7771 /// Type of the variable, inferred from the value if not specified.
7772 /// </summary>
7773 public TypeType Type
7774 {
7775 get
7776 {
7777 return this.typeField;
7778 }
7779 set
7780 {
7781 this.typeFieldSet = true;
7782 this.typeField = value;
7783 }
7784 }
7785
7786 public virtual ISchemaElement ParentElement
7787 {
7788 get
7789 {
7790 return this.parentElement;
7791 }
7792 set
7793 {
7794 this.parentElement = value;
7795 }
7796 }
7797
7798 /// <summary>
7799 /// Parses a TypeType from a string.
7800 /// </summary>
7801 public static TypeType ParseTypeType(string value)
7802 {
7803 TypeType parsedValue;
7804 Variable.TryParseTypeType(value, out parsedValue);
7805 return parsedValue;
7806 }
7807
7808 /// <summary>
7809 /// Tries to parse a TypeType from a string.
7810 /// </summary>
7811 public static bool TryParseTypeType(string value, out TypeType parsedValue)
7812 {
7813 parsedValue = TypeType.NotSet;
7814 if (string.IsNullOrEmpty(value))
7815 {
7816 return false;
7817 }
7818 if (("string" == value))
7819 {
7820 parsedValue = TypeType.@string;
7821 }
7822 else
7823 {
7824 if (("numeric" == value))
7825 {
7826 parsedValue = TypeType.numeric;
7827 }
7828 else
7829 {
7830 if (("version" == value))
7831 {
7832 parsedValue = TypeType.version;
7833 }
7834 else
7835 {
7836 parsedValue = TypeType.IllegalValue;
7837 return false;
7838 }
7839 }
7840 }
7841 return true;
7842 }
7843
7844 /// <summary>
7845 /// Processes this element and all child elements into an XmlWriter.
7846 /// </summary>
7847 public virtual void OutputXml(XmlWriter writer)
7848 {
7849 if ((null == writer))
7850 {
7851 throw new ArgumentNullException("writer");
7852 }
7853 writer.WriteStartElement("Variable", "http://wixtoolset.org/schemas/v4/wxs");
7854 if (this.hiddenFieldSet)
7855 {
7856 if ((this.hiddenField == YesNoType.no))
7857 {
7858 writer.WriteAttributeString("Hidden", "no");
7859 }
7860 if ((this.hiddenField == YesNoType.yes))
7861 {
7862 writer.WriteAttributeString("Hidden", "yes");
7863 }
7864 }
7865 if (this.nameFieldSet)
7866 {
7867 writer.WriteAttributeString("Name", this.nameField);
7868 }
7869 if (this.persistedFieldSet)
7870 {
7871 if ((this.persistedField == YesNoType.no))
7872 {
7873 writer.WriteAttributeString("Persisted", "no");
7874 }
7875 if ((this.persistedField == YesNoType.yes))
7876 {
7877 writer.WriteAttributeString("Persisted", "yes");
7878 }
7879 }
7880 if (this.valueFieldSet)
7881 {
7882 writer.WriteAttributeString("Value", this.valueField);
7883 }
7884 if (this.typeFieldSet)
7885 {
7886 if ((this.typeField == TypeType.@string))
7887 {
7888 writer.WriteAttributeString("Type", "string");
7889 }
7890 if ((this.typeField == TypeType.numeric))
7891 {
7892 writer.WriteAttributeString("Type", "numeric");
7893 }
7894 if ((this.typeField == TypeType.version))
7895 {
7896 writer.WriteAttributeString("Type", "version");
7897 }
7898 }
7899 writer.WriteEndElement();
7900 }
7901
7902 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
7903 void ISetAttributes.SetAttribute(string name, string value)
7904 {
7905 if (String.IsNullOrEmpty(name))
7906 {
7907 throw new ArgumentNullException("name");
7908 }
7909 if (("Hidden" == name))
7910 {
7911 this.hiddenField = Enums.ParseYesNoType(value);
7912 this.hiddenFieldSet = true;
7913 }
7914 if (("Name" == name))
7915 {
7916 this.nameField = value;
7917 this.nameFieldSet = true;
7918 }
7919 if (("Persisted" == name))
7920 {
7921 this.persistedField = Enums.ParseYesNoType(value);
7922 this.persistedFieldSet = true;
7923 }
7924 if (("Value" == name))
7925 {
7926 this.valueField = value;
7927 this.valueFieldSet = true;
7928 }
7929 if (("Type" == name))
7930 {
7931 this.typeField = Variable.ParseTypeType(value);
7932 this.typeFieldSet = true;
7933 }
7934 }
7935
7936 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
7937 public enum TypeType
7938 {
7939
7940 IllegalValue = int.MaxValue,
7941
7942 NotSet = -1,
7943
7944 @string,
7945
7946 numeric,
7947
7948 version,
7949 }
7950 }
7951
7952 /// <summary>
7953 /// Representation of a file that contains one or more files.
7954 /// </summary>
7955 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
7956 public class Container : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
7957 {
7958
7959 private ElementCollection children;
7960
7961 private string downloadUrlField;
7962
7963 private bool downloadUrlFieldSet;
7964
7965 private string idField;
7966
7967 private bool idFieldSet;
7968
7969 private string nameField;
7970
7971 private bool nameFieldSet;
7972
7973 private BurnContainerType typeField;
7974
7975 private bool typeFieldSet;
7976
7977 private ISchemaElement parentElement;
7978
7979 public Container()
7980 {
7981 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
7982 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageGroupRef)));
7983 this.children = childCollection0;
7984 }
7985
7986 public virtual IEnumerable Children
7987 {
7988 get
7989 {
7990 return this.children;
7991 }
7992 }
7993
7994 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
7995 public virtual IEnumerable this[System.Type childType]
7996 {
7997 get
7998 {
7999 return this.children.Filter(childType);
8000 }
8001 }
8002
8003 public string DownloadUrl
8004 {
8005 get
8006 {
8007 return this.downloadUrlField;
8008 }
8009 set
8010 {
8011 this.downloadUrlFieldSet = true;
8012 this.downloadUrlField = value;
8013 }
8014 }
8015
8016 /// <summary>
8017 /// The unique identifier for the container. If this attribute is not specified the Name attribute will be used.
8018 /// </summary>
8019 public string Id
8020 {
8021 get
8022 {
8023 return this.idField;
8024 }
8025 set
8026 {
8027 this.idFieldSet = true;
8028 this.idField = value;
8029 }
8030 }
8031
8032 /// <summary>
8033 /// The file name for this container. A relative path may be provided to place the container in a sub-folder of the bundle.
8034 /// </summary>
8035 public string Name
8036 {
8037 get
8038 {
8039 return this.nameField;
8040 }
8041 set
8042 {
8043 this.nameFieldSet = true;
8044 this.nameField = value;
8045 }
8046 }
8047
8048 /// <summary>
8049 /// Indicates whether the container is "attached" to the bundle executable or placed external to the bundle extecutable as "detached". If
8050 /// this attribute is not specified, the default is to create a detached container.
8051 /// </summary>
8052 public BurnContainerType Type
8053 {
8054 get
8055 {
8056 return this.typeField;
8057 }
8058 set
8059 {
8060 this.typeFieldSet = true;
8061 this.typeField = value;
8062 }
8063 }
8064
8065 public virtual ISchemaElement ParentElement
8066 {
8067 get
8068 {
8069 return this.parentElement;
8070 }
8071 set
8072 {
8073 this.parentElement = value;
8074 }
8075 }
8076
8077 public virtual void AddChild(ISchemaElement child)
8078 {
8079 if ((null == child))
8080 {
8081 throw new ArgumentNullException("child");
8082 }
8083 this.children.AddElement(child);
8084 child.ParentElement = this;
8085 }
8086
8087 public virtual void RemoveChild(ISchemaElement child)
8088 {
8089 if ((null == child))
8090 {
8091 throw new ArgumentNullException("child");
8092 }
8093 this.children.RemoveElement(child);
8094 child.ParentElement = null;
8095 }
8096
8097 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
8098 ISchemaElement ICreateChildren.CreateChild(string childName)
8099 {
8100 if (String.IsNullOrEmpty(childName))
8101 {
8102 throw new ArgumentNullException("childName");
8103 }
8104 ISchemaElement childValue = null;
8105 if (("PackageGroupRef" == childName))
8106 {
8107 childValue = new PackageGroupRef();
8108 }
8109 if ((null == childValue))
8110 {
8111 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
8112 }
8113 return childValue;
8114 }
8115
8116 /// <summary>
8117 /// Processes this element and all child elements into an XmlWriter.
8118 /// </summary>
8119 public virtual void OutputXml(XmlWriter writer)
8120 {
8121 if ((null == writer))
8122 {
8123 throw new ArgumentNullException("writer");
8124 }
8125 writer.WriteStartElement("Container", "http://wixtoolset.org/schemas/v4/wxs");
8126 if (this.downloadUrlFieldSet)
8127 {
8128 writer.WriteAttributeString("DownloadUrl", this.downloadUrlField);
8129 }
8130 if (this.idFieldSet)
8131 {
8132 writer.WriteAttributeString("Id", this.idField);
8133 }
8134 if (this.nameFieldSet)
8135 {
8136 writer.WriteAttributeString("Name", this.nameField);
8137 }
8138 if (this.typeFieldSet)
8139 {
8140 if ((this.typeField == BurnContainerType.attached))
8141 {
8142 writer.WriteAttributeString("Type", "attached");
8143 }
8144 if ((this.typeField == BurnContainerType.detached))
8145 {
8146 writer.WriteAttributeString("Type", "detached");
8147 }
8148 }
8149 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
8150 {
8151 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
8152 childElement.OutputXml(writer);
8153 }
8154 writer.WriteEndElement();
8155 }
8156
8157 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
8158 void ISetAttributes.SetAttribute(string name, string value)
8159 {
8160 if (String.IsNullOrEmpty(name))
8161 {
8162 throw new ArgumentNullException("name");
8163 }
8164 if (("DownloadUrl" == name))
8165 {
8166 this.downloadUrlField = value;
8167 this.downloadUrlFieldSet = true;
8168 }
8169 if (("Id" == name))
8170 {
8171 this.idField = value;
8172 this.idFieldSet = true;
8173 }
8174 if (("Name" == name))
8175 {
8176 this.nameField = value;
8177 this.nameFieldSet = true;
8178 }
8179 if (("Type" == name))
8180 {
8181 this.typeField = Enums.ParseBurnContainerType(value);
8182 this.typeFieldSet = true;
8183 }
8184 }
8185 }
8186
8187 /// <summary>
8188 /// Create a reference to an existing Container element.
8189 /// </summary>
8190 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
8191 public class ContainerRef : ISchemaElement, ISetAttributes
8192 {
8193
8194 private string idField;
8195
8196 private bool idFieldSet;
8197
8198 private ISchemaElement parentElement;
8199
8200 /// <summary>
8201 /// The identifier of Container element to reference.
8202 /// </summary>
8203 public string Id
8204 {
8205 get
8206 {
8207 return this.idField;
8208 }
8209 set
8210 {
8211 this.idFieldSet = true;
8212 this.idField = value;
8213 }
8214 }
8215
8216 public virtual ISchemaElement ParentElement
8217 {
8218 get
8219 {
8220 return this.parentElement;
8221 }
8222 set
8223 {
8224 this.parentElement = value;
8225 }
8226 }
8227
8228 /// <summary>
8229 /// Processes this element and all child elements into an XmlWriter.
8230 /// </summary>
8231 public virtual void OutputXml(XmlWriter writer)
8232 {
8233 if ((null == writer))
8234 {
8235 throw new ArgumentNullException("writer");
8236 }
8237 writer.WriteStartElement("ContainerRef", "http://wixtoolset.org/schemas/v4/wxs");
8238 if (this.idFieldSet)
8239 {
8240 writer.WriteAttributeString("Id", this.idField);
8241 }
8242 writer.WriteEndElement();
8243 }
8244
8245 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
8246 void ISetAttributes.SetAttribute(string name, string value)
8247 {
8248 if (String.IsNullOrEmpty(name))
8249 {
8250 throw new ArgumentNullException("name");
8251 }
8252 if (("Id" == name))
8253 {
8254 this.idField = value;
8255 this.idFieldSet = true;
8256 }
8257 }
8258 }
8259
8260 /// <summary>
8261 /// Describes map of exit code returned from executable package to a bootstrapper behavior.
8262 /// </summary>
8263 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
8264 public class ExitCode : ISchemaElement, ISetAttributes
8265 {
8266
8267 private int valueField;
8268
8269 private bool valueFieldSet;
8270
8271 private BehaviorType behaviorField;
8272
8273 private bool behaviorFieldSet;
8274
8275 private ISchemaElement parentElement;
8276
8277 /// <summary>
8278 /// Exit code returned from executable package. If no value is provided it means all values not explicitly set default to this behavior.
8279 /// </summary>
8280 public int Value
8281 {
8282 get
8283 {
8284 return this.valueField;
8285 }
8286 set
8287 {
8288 this.valueFieldSet = true;
8289 this.valueField = value;
8290 }
8291 }
8292
8293 /// <summary>
8294 /// Choose one of the supported behaviors error codes: success, error, scheduleReboot, forceReboot.
8295 /// </summary>
8296 public BehaviorType Behavior
8297 {
8298 get
8299 {
8300 return this.behaviorField;
8301 }
8302 set
8303 {
8304 this.behaviorFieldSet = true;
8305 this.behaviorField = value;
8306 }
8307 }
8308
8309 public virtual ISchemaElement ParentElement
8310 {
8311 get
8312 {
8313 return this.parentElement;
8314 }
8315 set
8316 {
8317 this.parentElement = value;
8318 }
8319 }
8320
8321 /// <summary>
8322 /// Parses a BehaviorType from a string.
8323 /// </summary>
8324 public static BehaviorType ParseBehaviorType(string value)
8325 {
8326 BehaviorType parsedValue;
8327 ExitCode.TryParseBehaviorType(value, out parsedValue);
8328 return parsedValue;
8329 }
8330
8331 /// <summary>
8332 /// Tries to parse a BehaviorType from a string.
8333 /// </summary>
8334 public static bool TryParseBehaviorType(string value, out BehaviorType parsedValue)
8335 {
8336 parsedValue = BehaviorType.NotSet;
8337 if (string.IsNullOrEmpty(value))
8338 {
8339 return false;
8340 }
8341 if (("success" == value))
8342 {
8343 parsedValue = BehaviorType.success;
8344 }
8345 else
8346 {
8347 if (("error" == value))
8348 {
8349 parsedValue = BehaviorType.error;
8350 }
8351 else
8352 {
8353 if (("scheduleReboot" == value))
8354 {
8355 parsedValue = BehaviorType.scheduleReboot;
8356 }
8357 else
8358 {
8359 if (("forceReboot" == value))
8360 {
8361 parsedValue = BehaviorType.forceReboot;
8362 }
8363 else
8364 {
8365 parsedValue = BehaviorType.IllegalValue;
8366 return false;
8367 }
8368 }
8369 }
8370 }
8371 return true;
8372 }
8373
8374 /// <summary>
8375 /// Processes this element and all child elements into an XmlWriter.
8376 /// </summary>
8377 public virtual void OutputXml(XmlWriter writer)
8378 {
8379 if ((null == writer))
8380 {
8381 throw new ArgumentNullException("writer");
8382 }
8383 writer.WriteStartElement("ExitCode", "http://wixtoolset.org/schemas/v4/wxs");
8384 if (this.valueFieldSet)
8385 {
8386 writer.WriteAttributeString("Value", this.valueField.ToString(CultureInfo.InvariantCulture));
8387 }
8388 if (this.behaviorFieldSet)
8389 {
8390 if ((this.behaviorField == BehaviorType.success))
8391 {
8392 writer.WriteAttributeString("Behavior", "success");
8393 }
8394 if ((this.behaviorField == BehaviorType.error))
8395 {
8396 writer.WriteAttributeString("Behavior", "error");
8397 }
8398 if ((this.behaviorField == BehaviorType.scheduleReboot))
8399 {
8400 writer.WriteAttributeString("Behavior", "scheduleReboot");
8401 }
8402 if ((this.behaviorField == BehaviorType.forceReboot))
8403 {
8404 writer.WriteAttributeString("Behavior", "forceReboot");
8405 }
8406 }
8407 writer.WriteEndElement();
8408 }
8409
8410 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
8411 void ISetAttributes.SetAttribute(string name, string value)
8412 {
8413 if (String.IsNullOrEmpty(name))
8414 {
8415 throw new ArgumentNullException("name");
8416 }
8417 if (("Value" == name))
8418 {
8419 this.valueField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
8420 this.valueFieldSet = true;
8421 }
8422 if (("Behavior" == name))
8423 {
8424 this.behaviorField = ExitCode.ParseBehaviorType(value);
8425 this.behaviorFieldSet = true;
8426 }
8427 }
8428
8429 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
8430 public enum BehaviorType
8431 {
8432
8433 IllegalValue = int.MaxValue,
8434
8435 NotSet = -1,
8436
8437 success,
8438
8439 error,
8440
8441 scheduleReboot,
8442
8443 forceReboot,
8444 }
8445 }
8446
8447 /// <summary>
8448 /// Describes additional, conditional command-line arguments for an ExePackage.
8449 /// </summary>
8450 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
8451 public class CommandLine : ISchemaElement, ISetAttributes
8452 {
8453
8454 private string installArgumentField;
8455
8456 private bool installArgumentFieldSet;
8457
8458 private string uninstallArgumentField;
8459
8460 private bool uninstallArgumentFieldSet;
8461
8462 private string repairArgumentField;
8463
8464 private bool repairArgumentFieldSet;
8465
8466 private string conditionField;
8467
8468 private bool conditionFieldSet;
8469
8470 private ISchemaElement parentElement;
8471
8472 /// <summary>
8473 /// Additional command-line arguments to apply during package installation if Condition is true.
8474 /// </summary>
8475 public string InstallArgument
8476 {
8477 get
8478 {
8479 return this.installArgumentField;
8480 }
8481 set
8482 {
8483 this.installArgumentFieldSet = true;
8484 this.installArgumentField = value;
8485 }
8486 }
8487
8488 /// <summary>
8489 /// Additional command-line arguments to apply during package uninstallation if Condition is true.
8490 /// </summary>
8491 public string UninstallArgument
8492 {
8493 get
8494 {
8495 return this.uninstallArgumentField;
8496 }
8497 set
8498 {
8499 this.uninstallArgumentFieldSet = true;
8500 this.uninstallArgumentField = value;
8501 }
8502 }
8503
8504 /// <summary>
8505 /// Additional command-line arguments to apply during package repair if Condition is true.
8506 /// </summary>
8507 public string RepairArgument
8508 {
8509 get
8510 {
8511 return this.repairArgumentField;
8512 }
8513 set
8514 {
8515 this.repairArgumentFieldSet = true;
8516 this.repairArgumentField = value;
8517 }
8518 }
8519
8520 /// <summary>
8521 /// The condition that controls whether the command-line arguments specified in the
8522 /// InstallArgument, UninstallArgument, or RepairArgument attributes are appended to the
8523 /// command line passed to the ExePackage. Which attribute is used depends on the
8524 /// action being applied to the ExePackage. For example, when the ExePackage is
8525 /// being installed, the InstallArgument attribute value is appended to the command
8526 /// line when the ExePackage is executed.
8527 /// </summary>
8528 public string Condition
8529 {
8530 get
8531 {
8532 return this.conditionField;
8533 }
8534 set
8535 {
8536 this.conditionFieldSet = true;
8537 this.conditionField = value;
8538 }
8539 }
8540
8541 public virtual ISchemaElement ParentElement
8542 {
8543 get
8544 {
8545 return this.parentElement;
8546 }
8547 set
8548 {
8549 this.parentElement = value;
8550 }
8551 }
8552
8553 /// <summary>
8554 /// Processes this element and all child elements into an XmlWriter.
8555 /// </summary>
8556 public virtual void OutputXml(XmlWriter writer)
8557 {
8558 if ((null == writer))
8559 {
8560 throw new ArgumentNullException("writer");
8561 }
8562 writer.WriteStartElement("CommandLine", "http://wixtoolset.org/schemas/v4/wxs");
8563 if (this.installArgumentFieldSet)
8564 {
8565 writer.WriteAttributeString("InstallArgument", this.installArgumentField);
8566 }
8567 if (this.uninstallArgumentFieldSet)
8568 {
8569 writer.WriteAttributeString("UninstallArgument", this.uninstallArgumentField);
8570 }
8571 if (this.repairArgumentFieldSet)
8572 {
8573 writer.WriteAttributeString("RepairArgument", this.repairArgumentField);
8574 }
8575 if (this.conditionFieldSet)
8576 {
8577 writer.WriteAttributeString("Condition", this.conditionField);
8578 }
8579 writer.WriteEndElement();
8580 }
8581
8582 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
8583 void ISetAttributes.SetAttribute(string name, string value)
8584 {
8585 if (String.IsNullOrEmpty(name))
8586 {
8587 throw new ArgumentNullException("name");
8588 }
8589 if (("InstallArgument" == name))
8590 {
8591 this.installArgumentField = value;
8592 this.installArgumentFieldSet = true;
8593 }
8594 if (("UninstallArgument" == name))
8595 {
8596 this.uninstallArgumentField = value;
8597 this.uninstallArgumentFieldSet = true;
8598 }
8599 if (("RepairArgument" == name))
8600 {
8601 this.repairArgumentField = value;
8602 this.repairArgumentFieldSet = true;
8603 }
8604 if (("Condition" == name))
8605 {
8606 this.conditionField = value;
8607 this.conditionFieldSet = true;
8608 }
8609 }
8610 }
8611
8612 /// <summary>
8613 /// Describes a payload to a bootstrapper.
8614 /// </summary>
8615 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
8616 public class Payload : ISchemaElement, ISetAttributes
8617 {
8618
8619 private string idField;
8620
8621 private bool idFieldSet;
8622
8623 private YesNoDefaultType compressedField;
8624
8625 private bool compressedFieldSet;
8626
8627 private string sourceFileField;
8628
8629 private bool sourceFileFieldSet;
8630
8631 private string nameField;
8632
8633 private bool nameFieldSet;
8634
8635 private string downloadUrlField;
8636
8637 private bool downloadUrlFieldSet;
8638
8639 private YesNoType enableSignatureVerificationField;
8640
8641 private bool enableSignatureVerificationFieldSet;
8642
8643 private ISchemaElement parentElement;
8644
8645 /// <summary>
8646 /// The identifier of Payload element.
8647 /// </summary>
8648 public string Id
8649 {
8650 get
8651 {
8652 return this.idField;
8653 }
8654 set
8655 {
8656 this.idFieldSet = true;
8657 this.idField = value;
8658 }
8659 }
8660
8661 /// <summary>
8662 /// Whether the payload should be embedded in a container or left as an external payload.
8663 /// </summary>
8664 public YesNoDefaultType Compressed
8665 {
8666 get
8667 {
8668 return this.compressedField;
8669 }
8670 set
8671 {
8672 this.compressedFieldSet = true;
8673 this.compressedField = value;
8674 }
8675 }
8676
8677 /// <summary>
8678 /// Location of the source file.
8679 /// </summary>
8680 public string SourceFile
8681 {
8682 get
8683 {
8684 return this.sourceFileField;
8685 }
8686 set
8687 {
8688 this.sourceFileFieldSet = true;
8689 this.sourceFileField = value;
8690 }
8691 }
8692
8693 /// <summary>
8694 /// The destination path and file name for this payload. The default is the source file name. The use of '..' directories is not allowed.
8695 /// </summary>
8696 public string Name
8697 {
8698 get
8699 {
8700 return this.nameField;
8701 }
8702 set
8703 {
8704 this.nameFieldSet = true;
8705 this.nameField = value;
8706 }
8707 }
8708
8709 public string DownloadUrl
8710 {
8711 get
8712 {
8713 return this.downloadUrlField;
8714 }
8715 set
8716 {
8717 this.downloadUrlFieldSet = true;
8718 this.downloadUrlField = value;
8719 }
8720 }
8721
8722 /// <summary>
8723 /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes"
8724 /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the
8725 /// signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures.
8726 /// Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no".
8727 /// </summary>
8728 public YesNoType EnableSignatureVerification
8729 {
8730 get
8731 {
8732 return this.enableSignatureVerificationField;
8733 }
8734 set
8735 {
8736 this.enableSignatureVerificationFieldSet = true;
8737 this.enableSignatureVerificationField = value;
8738 }
8739 }
8740
8741 public virtual ISchemaElement ParentElement
8742 {
8743 get
8744 {
8745 return this.parentElement;
8746 }
8747 set
8748 {
8749 this.parentElement = value;
8750 }
8751 }
8752
8753 /// <summary>
8754 /// Processes this element and all child elements into an XmlWriter.
8755 /// </summary>
8756 public virtual void OutputXml(XmlWriter writer)
8757 {
8758 if ((null == writer))
8759 {
8760 throw new ArgumentNullException("writer");
8761 }
8762 writer.WriteStartElement("Payload", "http://wixtoolset.org/schemas/v4/wxs");
8763 if (this.idFieldSet)
8764 {
8765 writer.WriteAttributeString("Id", this.idField);
8766 }
8767 if (this.compressedFieldSet)
8768 {
8769 if ((this.compressedField == YesNoDefaultType.@default))
8770 {
8771 writer.WriteAttributeString("Compressed", "default");
8772 }
8773 if ((this.compressedField == YesNoDefaultType.no))
8774 {
8775 writer.WriteAttributeString("Compressed", "no");
8776 }
8777 if ((this.compressedField == YesNoDefaultType.yes))
8778 {
8779 writer.WriteAttributeString("Compressed", "yes");
8780 }
8781 }
8782 if (this.sourceFileFieldSet)
8783 {
8784 writer.WriteAttributeString("SourceFile", this.sourceFileField);
8785 }
8786 if (this.nameFieldSet)
8787 {
8788 writer.WriteAttributeString("Name", this.nameField);
8789 }
8790 if (this.downloadUrlFieldSet)
8791 {
8792 writer.WriteAttributeString("DownloadUrl", this.downloadUrlField);
8793 }
8794 if (this.enableSignatureVerificationFieldSet)
8795 {
8796 if ((this.enableSignatureVerificationField == YesNoType.no))
8797 {
8798 writer.WriteAttributeString("EnableSignatureVerification", "no");
8799 }
8800 if ((this.enableSignatureVerificationField == YesNoType.yes))
8801 {
8802 writer.WriteAttributeString("EnableSignatureVerification", "yes");
8803 }
8804 }
8805 writer.WriteEndElement();
8806 }
8807
8808 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
8809 void ISetAttributes.SetAttribute(string name, string value)
8810 {
8811 if (String.IsNullOrEmpty(name))
8812 {
8813 throw new ArgumentNullException("name");
8814 }
8815 if (("Id" == name))
8816 {
8817 this.idField = value;
8818 this.idFieldSet = true;
8819 }
8820 if (("Compressed" == name))
8821 {
8822 this.compressedField = Enums.ParseYesNoDefaultType(value);
8823 this.compressedFieldSet = true;
8824 }
8825 if (("SourceFile" == name))
8826 {
8827 this.sourceFileField = value;
8828 this.sourceFileFieldSet = true;
8829 }
8830 if (("Name" == name))
8831 {
8832 this.nameField = value;
8833 this.nameFieldSet = true;
8834 }
8835 if (("DownloadUrl" == name))
8836 {
8837 this.downloadUrlField = value;
8838 this.downloadUrlFieldSet = true;
8839 }
8840 if (("EnableSignatureVerification" == name))
8841 {
8842 this.enableSignatureVerificationField = Enums.ParseYesNoType(value);
8843 this.enableSignatureVerificationFieldSet = true;
8844 }
8845 }
8846 }
8847
8848 /// <summary>
8849 /// Describes a payload group to a bootstrapper. PayloadGroups referenced from within a Bundle are tied to the Bundle.
8850 /// PayloadGroups referenced from a Fragment are tied to the context of whatever references them such as an ExePackage or MsiPackage.
8851 /// It is possible to share a PayloadGroup between multiple Packages and/or a Bundle by creating multiple references to it.
8852 /// </summary>
8853 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
8854 public class PayloadGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
8855 {
8856
8857 private ElementCollection children;
8858
8859 private string idField;
8860
8861 private bool idFieldSet;
8862
8863 private ISchemaElement parentElement;
8864
8865 public PayloadGroup()
8866 {
8867 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
8868 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload)));
8869 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef)));
8870 this.children = childCollection0;
8871 }
8872
8873 public virtual IEnumerable Children
8874 {
8875 get
8876 {
8877 return this.children;
8878 }
8879 }
8880
8881 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
8882 public virtual IEnumerable this[System.Type childType]
8883 {
8884 get
8885 {
8886 return this.children.Filter(childType);
8887 }
8888 }
8889
8890 /// <summary>
8891 /// Identifier for payload group.
8892 /// </summary>
8893 public string Id
8894 {
8895 get
8896 {
8897 return this.idField;
8898 }
8899 set
8900 {
8901 this.idFieldSet = true;
8902 this.idField = value;
8903 }
8904 }
8905
8906 public virtual ISchemaElement ParentElement
8907 {
8908 get
8909 {
8910 return this.parentElement;
8911 }
8912 set
8913 {
8914 this.parentElement = value;
8915 }
8916 }
8917
8918 public virtual void AddChild(ISchemaElement child)
8919 {
8920 if ((null == child))
8921 {
8922 throw new ArgumentNullException("child");
8923 }
8924 this.children.AddElement(child);
8925 child.ParentElement = this;
8926 }
8927
8928 public virtual void RemoveChild(ISchemaElement child)
8929 {
8930 if ((null == child))
8931 {
8932 throw new ArgumentNullException("child");
8933 }
8934 this.children.RemoveElement(child);
8935 child.ParentElement = null;
8936 }
8937
8938 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
8939 ISchemaElement ICreateChildren.CreateChild(string childName)
8940 {
8941 if (String.IsNullOrEmpty(childName))
8942 {
8943 throw new ArgumentNullException("childName");
8944 }
8945 ISchemaElement childValue = null;
8946 if (("Payload" == childName))
8947 {
8948 childValue = new Payload();
8949 }
8950 if (("PayloadGroupRef" == childName))
8951 {
8952 childValue = new PayloadGroupRef();
8953 }
8954 if ((null == childValue))
8955 {
8956 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
8957 }
8958 return childValue;
8959 }
8960
8961 /// <summary>
8962 /// Processes this element and all child elements into an XmlWriter.
8963 /// </summary>
8964 public virtual void OutputXml(XmlWriter writer)
8965 {
8966 if ((null == writer))
8967 {
8968 throw new ArgumentNullException("writer");
8969 }
8970 writer.WriteStartElement("PayloadGroup", "http://wixtoolset.org/schemas/v4/wxs");
8971 if (this.idFieldSet)
8972 {
8973 writer.WriteAttributeString("Id", this.idField);
8974 }
8975 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
8976 {
8977 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
8978 childElement.OutputXml(writer);
8979 }
8980 writer.WriteEndElement();
8981 }
8982
8983 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
8984 void ISetAttributes.SetAttribute(string name, string value)
8985 {
8986 if (String.IsNullOrEmpty(name))
8987 {
8988 throw new ArgumentNullException("name");
8989 }
8990 if (("Id" == name))
8991 {
8992 this.idField = value;
8993 this.idFieldSet = true;
8994 }
8995 }
8996 }
8997
8998 /// <summary>
8999 /// Create a reference to PayloadGroup element that exists inside a Bundle or Fragment element.
9000 /// </summary>
9001 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
9002 public class PayloadGroupRef : ISchemaElement, ISetAttributes
9003 {
9004
9005 private string idField;
9006
9007 private bool idFieldSet;
9008
9009 private ISchemaElement parentElement;
9010
9011 /// <summary>
9012 /// The identifier of the PayloadGroup element to reference.
9013 /// </summary>
9014 public string Id
9015 {
9016 get
9017 {
9018 return this.idField;
9019 }
9020 set
9021 {
9022 this.idFieldSet = true;
9023 this.idField = value;
9024 }
9025 }
9026
9027 public virtual ISchemaElement ParentElement
9028 {
9029 get
9030 {
9031 return this.parentElement;
9032 }
9033 set
9034 {
9035 this.parentElement = value;
9036 }
9037 }
9038
9039 /// <summary>
9040 /// Processes this element and all child elements into an XmlWriter.
9041 /// </summary>
9042 public virtual void OutputXml(XmlWriter writer)
9043 {
9044 if ((null == writer))
9045 {
9046 throw new ArgumentNullException("writer");
9047 }
9048 writer.WriteStartElement("PayloadGroupRef", "http://wixtoolset.org/schemas/v4/wxs");
9049 if (this.idFieldSet)
9050 {
9051 writer.WriteAttributeString("Id", this.idField);
9052 }
9053 writer.WriteEndElement();
9054 }
9055
9056 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
9057 void ISetAttributes.SetAttribute(string name, string value)
9058 {
9059 if (String.IsNullOrEmpty(name))
9060 {
9061 throw new ArgumentNullException("name");
9062 }
9063 if (("Id" == name))
9064 {
9065 this.idField = value;
9066 this.idFieldSet = true;
9067 }
9068 }
9069 }
9070
9071 /// <summary>
9072 /// Describes information about a remote file payload that is not available at the time of building the bundle.
9073 /// The parent must specify DownloadUrl and must not specify SourceFile when using this element.
9074 /// </summary>
9075 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
9076 public class RemotePayload : ISchemaElement, ISetAttributes
9077 {
9078
9079 private string certificatePublicKeyField;
9080
9081 private bool certificatePublicKeyFieldSet;
9082
9083 private string certificateThumbprintField;
9084
9085 private bool certificateThumbprintFieldSet;
9086
9087 private string descriptionField;
9088
9089 private bool descriptionFieldSet;
9090
9091 private string hashField;
9092
9093 private bool hashFieldSet;
9094
9095 private string productNameField;
9096
9097 private bool productNameFieldSet;
9098
9099 private int sizeField;
9100
9101 private bool sizeFieldSet;
9102
9103 private string versionField;
9104
9105 private bool versionFieldSet;
9106
9107 private ISchemaElement parentElement;
9108
9109 /// <summary>
9110 /// Public key of the authenticode certificate used to sign the RemotePayload. Include this attribute if the remote file is signed.
9111 /// </summary>
9112 public string CertificatePublicKey
9113 {
9114 get
9115 {
9116 return this.certificatePublicKeyField;
9117 }
9118 set
9119 {
9120 this.certificatePublicKeyFieldSet = true;
9121 this.certificatePublicKeyField = value;
9122 }
9123 }
9124
9125 /// <summary>
9126 /// Thumbprint of the authenticode certificate used to sign the RemotePayload. Include this attribute if the remote file is signed.
9127 /// </summary>
9128 public string CertificateThumbprint
9129 {
9130 get
9131 {
9132 return this.certificateThumbprintField;
9133 }
9134 set
9135 {
9136 this.certificateThumbprintFieldSet = true;
9137 this.certificateThumbprintField = value;
9138 }
9139 }
9140
9141 /// <summary>
9142 /// Description of the file from version resources.
9143 /// </summary>
9144 public string Description
9145 {
9146 get
9147 {
9148 return this.descriptionField;
9149 }
9150 set
9151 {
9152 this.descriptionFieldSet = true;
9153 this.descriptionField = value;
9154 }
9155 }
9156
9157 /// <summary>
9158 /// SHA-1 hash of the RemotePayload. Include this attribute if the remote file is unsigned or SuppressSignatureVerification is set to Yes.
9159 /// </summary>
9160 public string Hash
9161 {
9162 get
9163 {
9164 return this.hashField;
9165 }
9166 set
9167 {
9168 this.hashFieldSet = true;
9169 this.hashField = value;
9170 }
9171 }
9172
9173 /// <summary>
9174 /// Product name of the file from version resouces.
9175 /// </summary>
9176 public string ProductName
9177 {
9178 get
9179 {
9180 return this.productNameField;
9181 }
9182 set
9183 {
9184 this.productNameFieldSet = true;
9185 this.productNameField = value;
9186 }
9187 }
9188
9189 /// <summary>
9190 /// Size of the remote file in bytes.
9191 /// </summary>
9192 public int Size
9193 {
9194 get
9195 {
9196 return this.sizeField;
9197 }
9198 set
9199 {
9200 this.sizeFieldSet = true;
9201 this.sizeField = value;
9202 }
9203 }
9204
9205 /// <summary>
9206 /// Version of the remote file
9207 /// </summary>
9208 public string Version
9209 {
9210 get
9211 {
9212 return this.versionField;
9213 }
9214 set
9215 {
9216 this.versionFieldSet = true;
9217 this.versionField = value;
9218 }
9219 }
9220
9221 public virtual ISchemaElement ParentElement
9222 {
9223 get
9224 {
9225 return this.parentElement;
9226 }
9227 set
9228 {
9229 this.parentElement = value;
9230 }
9231 }
9232
9233 /// <summary>
9234 /// Processes this element and all child elements into an XmlWriter.
9235 /// </summary>
9236 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
9237 public virtual void OutputXml(XmlWriter writer)
9238 {
9239 if ((null == writer))
9240 {
9241 throw new ArgumentNullException("writer");
9242 }
9243 writer.WriteStartElement("RemotePayload", "http://wixtoolset.org/schemas/v4/wxs");
9244 if (this.certificatePublicKeyFieldSet)
9245 {
9246 writer.WriteAttributeString("CertificatePublicKey", this.certificatePublicKeyField);
9247 }
9248 if (this.certificateThumbprintFieldSet)
9249 {
9250 writer.WriteAttributeString("CertificateThumbprint", this.certificateThumbprintField);
9251 }
9252 if (this.descriptionFieldSet)
9253 {
9254 writer.WriteAttributeString("Description", this.descriptionField);
9255 }
9256 if (this.hashFieldSet)
9257 {
9258 writer.WriteAttributeString("Hash", this.hashField);
9259 }
9260 if (this.productNameFieldSet)
9261 {
9262 writer.WriteAttributeString("ProductName", this.productNameField);
9263 }
9264 if (this.sizeFieldSet)
9265 {
9266 writer.WriteAttributeString("Size", this.sizeField.ToString(CultureInfo.InvariantCulture));
9267 }
9268 if (this.versionFieldSet)
9269 {
9270 writer.WriteAttributeString("Version", this.versionField);
9271 }
9272 writer.WriteEndElement();
9273 }
9274
9275 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
9276 void ISetAttributes.SetAttribute(string name, string value)
9277 {
9278 if (String.IsNullOrEmpty(name))
9279 {
9280 throw new ArgumentNullException("name");
9281 }
9282 if (("CertificatePublicKey" == name))
9283 {
9284 this.certificatePublicKeyField = value;
9285 this.certificatePublicKeyFieldSet = true;
9286 }
9287 if (("CertificateThumbprint" == name))
9288 {
9289 this.certificateThumbprintField = value;
9290 this.certificateThumbprintFieldSet = true;
9291 }
9292 if (("Description" == name))
9293 {
9294 this.descriptionField = value;
9295 this.descriptionFieldSet = true;
9296 }
9297 if (("Hash" == name))
9298 {
9299 this.hashField = value;
9300 this.hashFieldSet = true;
9301 }
9302 if (("ProductName" == name))
9303 {
9304 this.productNameField = value;
9305 this.productNameFieldSet = true;
9306 }
9307 if (("Size" == name))
9308 {
9309 this.sizeField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
9310 this.sizeFieldSet = true;
9311 }
9312 if (("Version" == name))
9313 {
9314 this.versionField = value;
9315 this.versionFieldSet = true;
9316 }
9317 }
9318 }
9319
9320 /// <summary>
9321 /// Create a RelatedBundle element.
9322 /// </summary>
9323 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
9324 public class RelatedBundle : ISchemaElement, ISetAttributes
9325 {
9326
9327 private string idField;
9328
9329 private bool idFieldSet;
9330
9331 private ActionType actionField;
9332
9333 private bool actionFieldSet;
9334
9335 private ISchemaElement parentElement;
9336
9337 /// <summary>
9338 /// The identifier of the RelatedBundle group.
9339 /// </summary>
9340 public string Id
9341 {
9342 get
9343 {
9344 return this.idField;
9345 }
9346 set
9347 {
9348 this.idFieldSet = true;
9349 this.idField = value;
9350 }
9351 }
9352
9353 /// <summary>
9354 /// The action to take on bundles related to this one. Detect is the default.
9355 /// </summary>
9356 public ActionType Action
9357 {
9358 get
9359 {
9360 return this.actionField;
9361 }
9362 set
9363 {
9364 this.actionFieldSet = true;
9365 this.actionField = value;
9366 }
9367 }
9368
9369 public virtual ISchemaElement ParentElement
9370 {
9371 get
9372 {
9373 return this.parentElement;
9374 }
9375 set
9376 {
9377 this.parentElement = value;
9378 }
9379 }
9380
9381 /// <summary>
9382 /// Parses a ActionType from a string.
9383 /// </summary>
9384 public static ActionType ParseActionType(string value)
9385 {
9386 ActionType parsedValue;
9387 RelatedBundle.TryParseActionType(value, out parsedValue);
9388 return parsedValue;
9389 }
9390
9391 /// <summary>
9392 /// Tries to parse a ActionType from a string.
9393 /// </summary>
9394 public static bool TryParseActionType(string value, out ActionType parsedValue)
9395 {
9396 parsedValue = ActionType.NotSet;
9397 if (string.IsNullOrEmpty(value))
9398 {
9399 return false;
9400 }
9401 if (("Detect" == value))
9402 {
9403 parsedValue = ActionType.Detect;
9404 }
9405 else
9406 {
9407 if (("Upgrade" == value))
9408 {
9409 parsedValue = ActionType.Upgrade;
9410 }
9411 else
9412 {
9413 if (("Addon" == value))
9414 {
9415 parsedValue = ActionType.Addon;
9416 }
9417 else
9418 {
9419 if (("Patch" == value))
9420 {
9421 parsedValue = ActionType.Patch;
9422 }
9423 else
9424 {
9425 parsedValue = ActionType.IllegalValue;
9426 return false;
9427 }
9428 }
9429 }
9430 }
9431 return true;
9432 }
9433
9434 /// <summary>
9435 /// Processes this element and all child elements into an XmlWriter.
9436 /// </summary>
9437 public virtual void OutputXml(XmlWriter writer)
9438 {
9439 if ((null == writer))
9440 {
9441 throw new ArgumentNullException("writer");
9442 }
9443 writer.WriteStartElement("RelatedBundle", "http://wixtoolset.org/schemas/v4/wxs");
9444 if (this.idFieldSet)
9445 {
9446 writer.WriteAttributeString("Id", this.idField);
9447 }
9448 if (this.actionFieldSet)
9449 {
9450 if ((this.actionField == ActionType.Detect))
9451 {
9452 writer.WriteAttributeString("Action", "Detect");
9453 }
9454 if ((this.actionField == ActionType.Upgrade))
9455 {
9456 writer.WriteAttributeString("Action", "Upgrade");
9457 }
9458 if ((this.actionField == ActionType.Addon))
9459 {
9460 writer.WriteAttributeString("Action", "Addon");
9461 }
9462 if ((this.actionField == ActionType.Patch))
9463 {
9464 writer.WriteAttributeString("Action", "Patch");
9465 }
9466 }
9467 writer.WriteEndElement();
9468 }
9469
9470 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
9471 void ISetAttributes.SetAttribute(string name, string value)
9472 {
9473 if (String.IsNullOrEmpty(name))
9474 {
9475 throw new ArgumentNullException("name");
9476 }
9477 if (("Id" == name))
9478 {
9479 this.idField = value;
9480 this.idFieldSet = true;
9481 }
9482 if (("Action" == name))
9483 {
9484 this.actionField = RelatedBundle.ParseActionType(value);
9485 this.actionFieldSet = true;
9486 }
9487 }
9488
9489 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
9490 public enum ActionType
9491 {
9492
9493 IllegalValue = int.MaxValue,
9494
9495 NotSet = -1,
9496
9497 Detect,
9498
9499 Upgrade,
9500
9501 Addon,
9502
9503 Patch,
9504 }
9505 }
9506
9507 /// <summary>
9508 /// Defines the update for a Bundle.
9509 /// </summary>
9510 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
9511 public class Update : ISchemaElement, ISetAttributes
9512 {
9513
9514 private string locationField;
9515
9516 private bool locationFieldSet;
9517
9518 private ISchemaElement parentElement;
9519
9520 /// <summary>
9521 /// The absolute path or URL to check for an update bundle. Currently the engine provides this value
9522 /// in the IBootstrapperApplication::OnDetectUpdateBegin() and otherwise ignores the value. In the
9523 /// future the engine will be able to acquire an update bundle from the location and determine if it
9524 /// is newer than the current executing bundle.
9525 /// </summary>
9526 public string Location
9527 {
9528 get
9529 {
9530 return this.locationField;
9531 }
9532 set
9533 {
9534 this.locationFieldSet = true;
9535 this.locationField = value;
9536 }
9537 }
9538
9539 public virtual ISchemaElement ParentElement
9540 {
9541 get
9542 {
9543 return this.parentElement;
9544 }
9545 set
9546 {
9547 this.parentElement = value;
9548 }
9549 }
9550
9551 /// <summary>
9552 /// Processes this element and all child elements into an XmlWriter.
9553 /// </summary>
9554 public virtual void OutputXml(XmlWriter writer)
9555 {
9556 if ((null == writer))
9557 {
9558 throw new ArgumentNullException("writer");
9559 }
9560 writer.WriteStartElement("Update", "http://wixtoolset.org/schemas/v4/wxs");
9561 if (this.locationFieldSet)
9562 {
9563 writer.WriteAttributeString("Location", this.locationField);
9564 }
9565 writer.WriteEndElement();
9566 }
9567
9568 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
9569 void ISetAttributes.SetAttribute(string name, string value)
9570 {
9571 if (String.IsNullOrEmpty(name))
9572 {
9573 throw new ArgumentNullException("name");
9574 }
9575 if (("Location" == name))
9576 {
9577 this.locationField = value;
9578 this.locationFieldSet = true;
9579 }
9580 }
9581 }
9582
9583 /// <summary>
9584 /// The Product element is analogous to the main function in a C program. When linking, only one Product section
9585 /// can be given to the linker to produce a successful result. Using this element creates an msi file.
9586 /// </summary>
9587 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
9588 public class Product : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
9589 {
9590
9591 private ElementCollection children;
9592
9593 private string idField;
9594
9595 private bool idFieldSet;
9596
9597 private string codepageField;
9598
9599 private bool codepageFieldSet;
9600
9601 private string languageField;
9602
9603 private bool languageFieldSet;
9604
9605 private string manufacturerField;
9606
9607 private bool manufacturerFieldSet;
9608
9609 private string nameField;
9610
9611 private bool nameFieldSet;
9612
9613 private string upgradeCodeField;
9614
9615 private bool upgradeCodeFieldSet;
9616
9617 private string versionField;
9618
9619 private bool versionFieldSet;
9620
9621 private ISchemaElement parentElement;
9622
9623 public Product()
9624 {
9625 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
9626 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Package)));
9627 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice);
9628 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(AppId)));
9629 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Binary)));
9630 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ComplianceCheck)));
9631 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Component)));
9632 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroup)));
9633 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Condition)));
9634 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomAction)));
9635 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomActionRef)));
9636 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomTable)));
9637 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Directory)));
9638 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(DirectoryRef)));
9639 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainer)));
9640 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainerRef)));
9641 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EnsureTable)));
9642 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Feature)));
9643 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef)));
9644 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroupRef)));
9645 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Icon)));
9646 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(InstanceTransforms)));
9647 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(MajorUpgrade)));
9648 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Media)));
9649 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(MediaTemplate)));
9650 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PackageCertificates)));
9651 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchCertificates)));
9652 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Property)));
9653 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PropertyRef)));
9654 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SetDirectory)));
9655 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SetProperty)));
9656 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SFPCatalog)));
9657 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath)));
9658 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UI)));
9659 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UIRef)));
9660 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Upgrade)));
9661 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(WixVariable)));
9662 ElementCollection childCollection2 = new ElementCollection(ElementCollection.CollectionType.Sequence);
9663 childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(InstallExecuteSequence)));
9664 childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(InstallUISequence)));
9665 childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdminExecuteSequence)));
9666 childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdminUISequence)));
9667 childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdvertiseExecuteSequence)));
9668 childCollection1.AddCollection(childCollection2);
9669 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
9670 childCollection0.AddCollection(childCollection1);
9671 this.children = childCollection0;
9672 }
9673
9674 public virtual IEnumerable Children
9675 {
9676 get
9677 {
9678 return this.children;
9679 }
9680 }
9681
9682 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
9683 public virtual IEnumerable this[System.Type childType]
9684 {
9685 get
9686 {
9687 return this.children.Filter(childType);
9688 }
9689 }
9690
9691 /// <summary>
9692 /// The product code GUID for the product.
9693 /// </summary>
9694 public string Id
9695 {
9696 get
9697 {
9698 return this.idField;
9699 }
9700 set
9701 {
9702 this.idFieldSet = true;
9703 this.idField = value;
9704 }
9705 }
9706
9707 /// <summary>
9708 /// The code page integer value or web name for the resulting MSI. See remarks for more information.
9709 /// </summary>
9710 public string Codepage
9711 {
9712 get
9713 {
9714 return this.codepageField;
9715 }
9716 set
9717 {
9718 this.codepageFieldSet = true;
9719 this.codepageField = value;
9720 }
9721 }
9722
9723 /// <summary>
9724 /// The decimal language ID (LCID) for the product.
9725 /// </summary>
9726 public string Language
9727 {
9728 get
9729 {
9730 return this.languageField;
9731 }
9732 set
9733 {
9734 this.languageFieldSet = true;
9735 this.languageField = value;
9736 }
9737 }
9738
9739 /// <summary>
9740 /// The manufacturer of the product.
9741 /// </summary>
9742 public string Manufacturer
9743 {
9744 get
9745 {
9746 return this.manufacturerField;
9747 }
9748 set
9749 {
9750 this.manufacturerFieldSet = true;
9751 this.manufacturerField = value;
9752 }
9753 }
9754
9755 /// <summary>
9756 /// The descriptive name of the product.
9757 /// </summary>
9758 public string Name
9759 {
9760 get
9761 {
9762 return this.nameField;
9763 }
9764 set
9765 {
9766 this.nameFieldSet = true;
9767 this.nameField = value;
9768 }
9769 }
9770
9771 /// <summary>
9772 /// The upgrade code GUID for the product.
9773 /// </summary>
9774 public string UpgradeCode
9775 {
9776 get
9777 {
9778 return this.upgradeCodeField;
9779 }
9780 set
9781 {
9782 this.upgradeCodeFieldSet = true;
9783 this.upgradeCodeField = value;
9784 }
9785 }
9786
9787 /// <summary>
9788 /// The product's version string.
9789 /// </summary>
9790 public string Version
9791 {
9792 get
9793 {
9794 return this.versionField;
9795 }
9796 set
9797 {
9798 this.versionFieldSet = true;
9799 this.versionField = value;
9800 }
9801 }
9802
9803 public virtual ISchemaElement ParentElement
9804 {
9805 get
9806 {
9807 return this.parentElement;
9808 }
9809 set
9810 {
9811 this.parentElement = value;
9812 }
9813 }
9814
9815 public virtual void AddChild(ISchemaElement child)
9816 {
9817 if ((null == child))
9818 {
9819 throw new ArgumentNullException("child");
9820 }
9821 this.children.AddElement(child);
9822 child.ParentElement = this;
9823 }
9824
9825 public virtual void RemoveChild(ISchemaElement child)
9826 {
9827 if ((null == child))
9828 {
9829 throw new ArgumentNullException("child");
9830 }
9831 this.children.RemoveElement(child);
9832 child.ParentElement = null;
9833 }
9834
9835 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
9836 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
9837 ISchemaElement ICreateChildren.CreateChild(string childName)
9838 {
9839 if (String.IsNullOrEmpty(childName))
9840 {
9841 throw new ArgumentNullException("childName");
9842 }
9843 ISchemaElement childValue = null;
9844 if (("Package" == childName))
9845 {
9846 childValue = new Package();
9847 }
9848 if (("AppId" == childName))
9849 {
9850 childValue = new AppId();
9851 }
9852 if (("Binary" == childName))
9853 {
9854 childValue = new Binary();
9855 }
9856 if (("ComplianceCheck" == childName))
9857 {
9858 childValue = new ComplianceCheck();
9859 }
9860 if (("Component" == childName))
9861 {
9862 childValue = new Component();
9863 }
9864 if (("ComponentGroup" == childName))
9865 {
9866 childValue = new ComponentGroup();
9867 }
9868 if (("Condition" == childName))
9869 {
9870 childValue = new Condition();
9871 }
9872 if (("CustomAction" == childName))
9873 {
9874 childValue = new CustomAction();
9875 }
9876 if (("CustomActionRef" == childName))
9877 {
9878 childValue = new CustomActionRef();
9879 }
9880 if (("CustomTable" == childName))
9881 {
9882 childValue = new CustomTable();
9883 }
9884 if (("Directory" == childName))
9885 {
9886 childValue = new Directory();
9887 }
9888 if (("DirectoryRef" == childName))
9889 {
9890 childValue = new DirectoryRef();
9891 }
9892 if (("EmbeddedChainer" == childName))
9893 {
9894 childValue = new EmbeddedChainer();
9895 }
9896 if (("EmbeddedChainerRef" == childName))
9897 {
9898 childValue = new EmbeddedChainerRef();
9899 }
9900 if (("EnsureTable" == childName))
9901 {
9902 childValue = new EnsureTable();
9903 }
9904 if (("Feature" == childName))
9905 {
9906 childValue = new Feature();
9907 }
9908 if (("FeatureRef" == childName))
9909 {
9910 childValue = new FeatureRef();
9911 }
9912 if (("FeatureGroupRef" == childName))
9913 {
9914 childValue = new FeatureGroupRef();
9915 }
9916 if (("Icon" == childName))
9917 {
9918 childValue = new Icon();
9919 }
9920 if (("InstanceTransforms" == childName))
9921 {
9922 childValue = new InstanceTransforms();
9923 }
9924 if (("MajorUpgrade" == childName))
9925 {
9926 childValue = new MajorUpgrade();
9927 }
9928 if (("Media" == childName))
9929 {
9930 childValue = new Media();
9931 }
9932 if (("MediaTemplate" == childName))
9933 {
9934 childValue = new MediaTemplate();
9935 }
9936 if (("PackageCertificates" == childName))
9937 {
9938 childValue = new PackageCertificates();
9939 }
9940 if (("PatchCertificates" == childName))
9941 {
9942 childValue = new PatchCertificates();
9943 }
9944 if (("Property" == childName))
9945 {
9946 childValue = new Property();
9947 }
9948 if (("PropertyRef" == childName))
9949 {
9950 childValue = new PropertyRef();
9951 }
9952 if (("SetDirectory" == childName))
9953 {
9954 childValue = new SetDirectory();
9955 }
9956 if (("SetProperty" == childName))
9957 {
9958 childValue = new SetProperty();
9959 }
9960 if (("SFPCatalog" == childName))
9961 {
9962 childValue = new SFPCatalog();
9963 }
9964 if (("SymbolPath" == childName))
9965 {
9966 childValue = new SymbolPath();
9967 }
9968 if (("UI" == childName))
9969 {
9970 childValue = new UI();
9971 }
9972 if (("UIRef" == childName))
9973 {
9974 childValue = new UIRef();
9975 }
9976 if (("Upgrade" == childName))
9977 {
9978 childValue = new Upgrade();
9979 }
9980 if (("WixVariable" == childName))
9981 {
9982 childValue = new WixVariable();
9983 }
9984 if (("InstallExecuteSequence" == childName))
9985 {
9986 childValue = new InstallExecuteSequence();
9987 }
9988 if (("InstallUISequence" == childName))
9989 {
9990 childValue = new InstallUISequence();
9991 }
9992 if (("AdminExecuteSequence" == childName))
9993 {
9994 childValue = new AdminExecuteSequence();
9995 }
9996 if (("AdminUISequence" == childName))
9997 {
9998 childValue = new AdminUISequence();
9999 }
10000 if (("AdvertiseExecuteSequence" == childName))
10001 {
10002 childValue = new AdvertiseExecuteSequence();
10003 }
10004 if ((null == childValue))
10005 {
10006 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
10007 }
10008 return childValue;
10009 }
10010
10011 /// <summary>
10012 /// Processes this element and all child elements into an XmlWriter.
10013 /// </summary>
10014 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
10015 public virtual void OutputXml(XmlWriter writer)
10016 {
10017 if ((null == writer))
10018 {
10019 throw new ArgumentNullException("writer");
10020 }
10021 writer.WriteStartElement("Product", "http://wixtoolset.org/schemas/v4/wxs");
10022 if (this.idFieldSet)
10023 {
10024 writer.WriteAttributeString("Id", this.idField);
10025 }
10026 if (this.codepageFieldSet)
10027 {
10028 writer.WriteAttributeString("Codepage", this.codepageField);
10029 }
10030 if (this.languageFieldSet)
10031 {
10032 writer.WriteAttributeString("Language", this.languageField);
10033 }
10034 if (this.manufacturerFieldSet)
10035 {
10036 writer.WriteAttributeString("Manufacturer", this.manufacturerField);
10037 }
10038 if (this.nameFieldSet)
10039 {
10040 writer.WriteAttributeString("Name", this.nameField);
10041 }
10042 if (this.upgradeCodeFieldSet)
10043 {
10044 writer.WriteAttributeString("UpgradeCode", this.upgradeCodeField);
10045 }
10046 if (this.versionFieldSet)
10047 {
10048 writer.WriteAttributeString("Version", this.versionField);
10049 }
10050 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
10051 {
10052 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
10053 childElement.OutputXml(writer);
10054 }
10055 writer.WriteEndElement();
10056 }
10057
10058 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
10059 void ISetAttributes.SetAttribute(string name, string value)
10060 {
10061 if (String.IsNullOrEmpty(name))
10062 {
10063 throw new ArgumentNullException("name");
10064 }
10065 if (("Id" == name))
10066 {
10067 this.idField = value;
10068 this.idFieldSet = true;
10069 }
10070 if (("Codepage" == name))
10071 {
10072 this.codepageField = value;
10073 this.codepageFieldSet = true;
10074 }
10075 if (("Language" == name))
10076 {
10077 this.languageField = value;
10078 this.languageFieldSet = true;
10079 }
10080 if (("Manufacturer" == name))
10081 {
10082 this.manufacturerField = value;
10083 this.manufacturerFieldSet = true;
10084 }
10085 if (("Name" == name))
10086 {
10087 this.nameField = value;
10088 this.nameFieldSet = true;
10089 }
10090 if (("UpgradeCode" == name))
10091 {
10092 this.upgradeCodeField = value;
10093 this.upgradeCodeFieldSet = true;
10094 }
10095 if (("Version" == name))
10096 {
10097 this.versionField = value;
10098 this.versionFieldSet = true;
10099 }
10100 }
10101 }
10102
10103 /// <summary>
10104 /// The Module element is analogous to the main function in a C program. When linking, only
10105 /// one Module section can be given to the linker to produce a successful result. Using this
10106 /// element creates an msm file.
10107 /// </summary>
10108 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
10109 public class Module : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
10110 {
10111
10112 private ElementCollection children;
10113
10114 private string idField;
10115
10116 private bool idFieldSet;
10117
10118 private string codepageField;
10119
10120 private bool codepageFieldSet;
10121
10122 private string guidField;
10123
10124 private bool guidFieldSet;
10125
10126 private string languageField;
10127
10128 private bool languageFieldSet;
10129
10130 private string versionField;
10131
10132 private bool versionFieldSet;
10133
10134 private ISchemaElement parentElement;
10135
10136 public Module()
10137 {
10138 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
10139 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Package)));
10140 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice);
10141 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(AppId)));
10142 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Binary)));
10143 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Component)));
10144 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroupRef)));
10145 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef)));
10146 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Configuration)));
10147 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomAction)));
10148 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomActionRef)));
10149 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomTable)));
10150 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Dependency)));
10151 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Directory)));
10152 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(DirectoryRef)));
10153 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainer)));
10154 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainerRef)));
10155 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EnsureTable)));
10156 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Exclusion)));
10157 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Icon)));
10158 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(IgnoreModularization)));
10159 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(IgnoreTable)));
10160 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Property)));
10161 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PropertyRef)));
10162 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SetDirectory)));
10163 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SetProperty)));
10164 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SFPCatalog)));
10165 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Substitution)));
10166 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UI)));
10167 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UIRef)));
10168 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(WixVariable)));
10169 ElementCollection childCollection2 = new ElementCollection(ElementCollection.CollectionType.Sequence);
10170 childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(InstallExecuteSequence)));
10171 childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(InstallUISequence)));
10172 childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdminExecuteSequence)));
10173 childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdminUISequence)));
10174 childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdvertiseExecuteSequence)));
10175 childCollection1.AddCollection(childCollection2);
10176 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
10177 childCollection0.AddCollection(childCollection1);
10178 this.children = childCollection0;
10179 }
10180
10181 public virtual IEnumerable Children
10182 {
10183 get
10184 {
10185 return this.children;
10186 }
10187 }
10188
10189 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
10190 public virtual IEnumerable this[System.Type childType]
10191 {
10192 get
10193 {
10194 return this.children.Filter(childType);
10195 }
10196 }
10197
10198 /// <summary>
10199 /// The name of the merge module (not the file name).
10200 /// </summary>
10201 public string Id
10202 {
10203 get
10204 {
10205 return this.idField;
10206 }
10207 set
10208 {
10209 this.idFieldSet = true;
10210 this.idField = value;
10211 }
10212 }
10213
10214 /// <summary>
10215 /// The code page integer value or web name for the resulting MSM. See remarks for more information.
10216 /// </summary>
10217 public string Codepage
10218 {
10219 get
10220 {
10221 return this.codepageField;
10222 }
10223 set
10224 {
10225 this.codepageFieldSet = true;
10226 this.codepageField = value;
10227 }
10228 }
10229
10230 /// <summary>
10231 /// This attribute is deprecated. Use the Package/@Id attribute instead.
10232 /// </summary>
10233 public string Guid
10234 {
10235 get
10236 {
10237 return this.guidField;
10238 }
10239 set
10240 {
10241 this.guidFieldSet = true;
10242 this.guidField = value;
10243 }
10244 }
10245
10246 /// <summary>
10247 /// The decimal language ID (LCID) of the merge module.
10248 /// </summary>
10249 public string Language
10250 {
10251 get
10252 {
10253 return this.languageField;
10254 }
10255 set
10256 {
10257 this.languageFieldSet = true;
10258 this.languageField = value;
10259 }
10260 }
10261
10262 /// <summary>
10263 /// The major and minor versions of the merge module.
10264 /// </summary>
10265 public string Version
10266 {
10267 get
10268 {
10269 return this.versionField;
10270 }
10271 set
10272 {
10273 this.versionFieldSet = true;
10274 this.versionField = value;
10275 }
10276 }
10277
10278 public virtual ISchemaElement ParentElement
10279 {
10280 get
10281 {
10282 return this.parentElement;
10283 }
10284 set
10285 {
10286 this.parentElement = value;
10287 }
10288 }
10289
10290 public virtual void AddChild(ISchemaElement child)
10291 {
10292 if ((null == child))
10293 {
10294 throw new ArgumentNullException("child");
10295 }
10296 this.children.AddElement(child);
10297 child.ParentElement = this;
10298 }
10299
10300 public virtual void RemoveChild(ISchemaElement child)
10301 {
10302 if ((null == child))
10303 {
10304 throw new ArgumentNullException("child");
10305 }
10306 this.children.RemoveElement(child);
10307 child.ParentElement = null;
10308 }
10309
10310 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
10311 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
10312 ISchemaElement ICreateChildren.CreateChild(string childName)
10313 {
10314 if (String.IsNullOrEmpty(childName))
10315 {
10316 throw new ArgumentNullException("childName");
10317 }
10318 ISchemaElement childValue = null;
10319 if (("Package" == childName))
10320 {
10321 childValue = new Package();
10322 }
10323 if (("AppId" == childName))
10324 {
10325 childValue = new AppId();
10326 }
10327 if (("Binary" == childName))
10328 {
10329 childValue = new Binary();
10330 }
10331 if (("Component" == childName))
10332 {
10333 childValue = new Component();
10334 }
10335 if (("ComponentGroupRef" == childName))
10336 {
10337 childValue = new ComponentGroupRef();
10338 }
10339 if (("ComponentRef" == childName))
10340 {
10341 childValue = new ComponentRef();
10342 }
10343 if (("Configuration" == childName))
10344 {
10345 childValue = new Configuration();
10346 }
10347 if (("CustomAction" == childName))
10348 {
10349 childValue = new CustomAction();
10350 }
10351 if (("CustomActionRef" == childName))
10352 {
10353 childValue = new CustomActionRef();
10354 }
10355 if (("CustomTable" == childName))
10356 {
10357 childValue = new CustomTable();
10358 }
10359 if (("Dependency" == childName))
10360 {
10361 childValue = new Dependency();
10362 }
10363 if (("Directory" == childName))
10364 {
10365 childValue = new Directory();
10366 }
10367 if (("DirectoryRef" == childName))
10368 {
10369 childValue = new DirectoryRef();
10370 }
10371 if (("EmbeddedChainer" == childName))
10372 {
10373 childValue = new EmbeddedChainer();
10374 }
10375 if (("EmbeddedChainerRef" == childName))
10376 {
10377 childValue = new EmbeddedChainerRef();
10378 }
10379 if (("EnsureTable" == childName))
10380 {
10381 childValue = new EnsureTable();
10382 }
10383 if (("Exclusion" == childName))
10384 {
10385 childValue = new Exclusion();
10386 }
10387 if (("Icon" == childName))
10388 {
10389 childValue = new Icon();
10390 }
10391 if (("IgnoreModularization" == childName))
10392 {
10393 childValue = new IgnoreModularization();
10394 }
10395 if (("IgnoreTable" == childName))
10396 {
10397 childValue = new IgnoreTable();
10398 }
10399 if (("Property" == childName))
10400 {
10401 childValue = new Property();
10402 }
10403 if (("PropertyRef" == childName))
10404 {
10405 childValue = new PropertyRef();
10406 }
10407 if (("SetDirectory" == childName))
10408 {
10409 childValue = new SetDirectory();
10410 }
10411 if (("SetProperty" == childName))
10412 {
10413 childValue = new SetProperty();
10414 }
10415 if (("SFPCatalog" == childName))
10416 {
10417 childValue = new SFPCatalog();
10418 }
10419 if (("Substitution" == childName))
10420 {
10421 childValue = new Substitution();
10422 }
10423 if (("UI" == childName))
10424 {
10425 childValue = new UI();
10426 }
10427 if (("UIRef" == childName))
10428 {
10429 childValue = new UIRef();
10430 }
10431 if (("WixVariable" == childName))
10432 {
10433 childValue = new WixVariable();
10434 }
10435 if (("InstallExecuteSequence" == childName))
10436 {
10437 childValue = new InstallExecuteSequence();
10438 }
10439 if (("InstallUISequence" == childName))
10440 {
10441 childValue = new InstallUISequence();
10442 }
10443 if (("AdminExecuteSequence" == childName))
10444 {
10445 childValue = new AdminExecuteSequence();
10446 }
10447 if (("AdminUISequence" == childName))
10448 {
10449 childValue = new AdminUISequence();
10450 }
10451 if (("AdvertiseExecuteSequence" == childName))
10452 {
10453 childValue = new AdvertiseExecuteSequence();
10454 }
10455 if ((null == childValue))
10456 {
10457 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
10458 }
10459 return childValue;
10460 }
10461
10462 /// <summary>
10463 /// Processes this element and all child elements into an XmlWriter.
10464 /// </summary>
10465 public virtual void OutputXml(XmlWriter writer)
10466 {
10467 if ((null == writer))
10468 {
10469 throw new ArgumentNullException("writer");
10470 }
10471 writer.WriteStartElement("Module", "http://wixtoolset.org/schemas/v4/wxs");
10472 if (this.idFieldSet)
10473 {
10474 writer.WriteAttributeString("Id", this.idField);
10475 }
10476 if (this.codepageFieldSet)
10477 {
10478 writer.WriteAttributeString("Codepage", this.codepageField);
10479 }
10480 if (this.guidFieldSet)
10481 {
10482 writer.WriteAttributeString("Guid", this.guidField);
10483 }
10484 if (this.languageFieldSet)
10485 {
10486 writer.WriteAttributeString("Language", this.languageField);
10487 }
10488 if (this.versionFieldSet)
10489 {
10490 writer.WriteAttributeString("Version", this.versionField);
10491 }
10492 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
10493 {
10494 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
10495 childElement.OutputXml(writer);
10496 }
10497 writer.WriteEndElement();
10498 }
10499
10500 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
10501 void ISetAttributes.SetAttribute(string name, string value)
10502 {
10503 if (String.IsNullOrEmpty(name))
10504 {
10505 throw new ArgumentNullException("name");
10506 }
10507 if (("Id" == name))
10508 {
10509 this.idField = value;
10510 this.idFieldSet = true;
10511 }
10512 if (("Codepage" == name))
10513 {
10514 this.codepageField = value;
10515 this.codepageFieldSet = true;
10516 }
10517 if (("Guid" == name))
10518 {
10519 this.guidField = value;
10520 this.guidFieldSet = true;
10521 }
10522 if (("Language" == name))
10523 {
10524 this.languageField = value;
10525 this.languageFieldSet = true;
10526 }
10527 if (("Version" == name))
10528 {
10529 this.versionField = value;
10530 this.versionFieldSet = true;
10531 }
10532 }
10533 }
10534
10535 /// <summary>
10536 /// Declares a dependency on another merge module.
10537 /// </summary>
10538 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
10539 public class Dependency : ISchemaElement, ISetAttributes
10540 {
10541
10542 private string requiredIdField;
10543
10544 private bool requiredIdFieldSet;
10545
10546 private int requiredLanguageField;
10547
10548 private bool requiredLanguageFieldSet;
10549
10550 private string requiredVersionField;
10551
10552 private bool requiredVersionFieldSet;
10553
10554 private ISchemaElement parentElement;
10555
10556 /// <summary>
10557 /// Identifier of the merge module required by the merge module.
10558 /// </summary>
10559 public string RequiredId
10560 {
10561 get
10562 {
10563 return this.requiredIdField;
10564 }
10565 set
10566 {
10567 this.requiredIdFieldSet = true;
10568 this.requiredIdField = value;
10569 }
10570 }
10571
10572 /// <summary>
10573 /// Numeric language ID of the merge module in RequiredID.
10574 /// </summary>
10575 public int RequiredLanguage
10576 {
10577 get
10578 {
10579 return this.requiredLanguageField;
10580 }
10581 set
10582 {
10583 this.requiredLanguageFieldSet = true;
10584 this.requiredLanguageField = value;
10585 }
10586 }
10587
10588 /// <summary>
10589 /// Version of the merge module in RequiredID.
10590 /// </summary>
10591 public string RequiredVersion
10592 {
10593 get
10594 {
10595 return this.requiredVersionField;
10596 }
10597 set
10598 {
10599 this.requiredVersionFieldSet = true;
10600 this.requiredVersionField = value;
10601 }
10602 }
10603
10604 public virtual ISchemaElement ParentElement
10605 {
10606 get
10607 {
10608 return this.parentElement;
10609 }
10610 set
10611 {
10612 this.parentElement = value;
10613 }
10614 }
10615
10616 /// <summary>
10617 /// Processes this element and all child elements into an XmlWriter.
10618 /// </summary>
10619 public virtual void OutputXml(XmlWriter writer)
10620 {
10621 if ((null == writer))
10622 {
10623 throw new ArgumentNullException("writer");
10624 }
10625 writer.WriteStartElement("Dependency", "http://wixtoolset.org/schemas/v4/wxs");
10626 if (this.requiredIdFieldSet)
10627 {
10628 writer.WriteAttributeString("RequiredId", this.requiredIdField);
10629 }
10630 if (this.requiredLanguageFieldSet)
10631 {
10632 writer.WriteAttributeString("RequiredLanguage", this.requiredLanguageField.ToString(CultureInfo.InvariantCulture));
10633 }
10634 if (this.requiredVersionFieldSet)
10635 {
10636 writer.WriteAttributeString("RequiredVersion", this.requiredVersionField);
10637 }
10638 writer.WriteEndElement();
10639 }
10640
10641 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
10642 void ISetAttributes.SetAttribute(string name, string value)
10643 {
10644 if (String.IsNullOrEmpty(name))
10645 {
10646 throw new ArgumentNullException("name");
10647 }
10648 if (("RequiredId" == name))
10649 {
10650 this.requiredIdField = value;
10651 this.requiredIdFieldSet = true;
10652 }
10653 if (("RequiredLanguage" == name))
10654 {
10655 this.requiredLanguageField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
10656 this.requiredLanguageFieldSet = true;
10657 }
10658 if (("RequiredVersion" == name))
10659 {
10660 this.requiredVersionField = value;
10661 this.requiredVersionFieldSet = true;
10662 }
10663 }
10664 }
10665
10666 /// <summary>
10667 /// Declares a merge module with which this merge module is incompatible.
10668 /// </summary>
10669 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
10670 public class Exclusion : ISchemaElement, ISetAttributes
10671 {
10672
10673 private string excludedIdField;
10674
10675 private bool excludedIdFieldSet;
10676
10677 private int excludeExceptLanguageField;
10678
10679 private bool excludeExceptLanguageFieldSet;
10680
10681 private int excludeLanguageField;
10682
10683 private bool excludeLanguageFieldSet;
10684
10685 private string excludedMinVersionField;
10686
10687 private bool excludedMinVersionFieldSet;
10688
10689 private string excludedMaxVersionField;
10690
10691 private bool excludedMaxVersionFieldSet;
10692
10693 private ISchemaElement parentElement;
10694
10695 /// <summary>
10696 /// Identifier of the merge module that is incompatible.
10697 /// </summary>
10698 public string ExcludedId
10699 {
10700 get
10701 {
10702 return this.excludedIdField;
10703 }
10704 set
10705 {
10706 this.excludedIdFieldSet = true;
10707 this.excludedIdField = value;
10708 }
10709 }
10710
10711 /// <summary>
10712 /// Numeric language ID of the merge module in ExcludedID. All except this language will be excluded. Only one of ExcludeExceptLanguage and ExcludeLanguage may be specified.
10713 /// </summary>
10714 public int ExcludeExceptLanguage
10715 {
10716 get
10717 {
10718 return this.excludeExceptLanguageField;
10719 }
10720 set
10721 {
10722 this.excludeExceptLanguageFieldSet = true;
10723 this.excludeExceptLanguageField = value;
10724 }
10725 }
10726
10727 /// <summary>
10728 /// Numeric language ID of the merge module in ExcludedID. The specified language will be excluded. Only one of ExcludeExceptLanguage and ExcludeLanguage may be specified.
10729 /// </summary>
10730 public int ExcludeLanguage
10731 {
10732 get
10733 {
10734 return this.excludeLanguageField;
10735 }
10736 set
10737 {
10738 this.excludeLanguageFieldSet = true;
10739 this.excludeLanguageField = value;
10740 }
10741 }
10742
10743 /// <summary>
10744 /// Minimum version excluded from a range. If not set, all versions before max are excluded. If neither max nor min, no exclusion based on version.
10745 /// </summary>
10746 public string ExcludedMinVersion
10747 {
10748 get
10749 {
10750 return this.excludedMinVersionField;
10751 }
10752 set
10753 {
10754 this.excludedMinVersionFieldSet = true;
10755 this.excludedMinVersionField = value;
10756 }
10757 }
10758
10759 /// <summary>
10760 /// Maximum version excluded from a range. If not set, all versions after min are excluded. If neither max nor min, no exclusion based on version.
10761 /// </summary>
10762 public string ExcludedMaxVersion
10763 {
10764 get
10765 {
10766 return this.excludedMaxVersionField;
10767 }
10768 set
10769 {
10770 this.excludedMaxVersionFieldSet = true;
10771 this.excludedMaxVersionField = value;
10772 }
10773 }
10774
10775 public virtual ISchemaElement ParentElement
10776 {
10777 get
10778 {
10779 return this.parentElement;
10780 }
10781 set
10782 {
10783 this.parentElement = value;
10784 }
10785 }
10786
10787 /// <summary>
10788 /// Processes this element and all child elements into an XmlWriter.
10789 /// </summary>
10790 public virtual void OutputXml(XmlWriter writer)
10791 {
10792 if ((null == writer))
10793 {
10794 throw new ArgumentNullException("writer");
10795 }
10796 writer.WriteStartElement("Exclusion", "http://wixtoolset.org/schemas/v4/wxs");
10797 if (this.excludedIdFieldSet)
10798 {
10799 writer.WriteAttributeString("ExcludedId", this.excludedIdField);
10800 }
10801 if (this.excludeExceptLanguageFieldSet)
10802 {
10803 writer.WriteAttributeString("ExcludeExceptLanguage", this.excludeExceptLanguageField.ToString(CultureInfo.InvariantCulture));
10804 }
10805 if (this.excludeLanguageFieldSet)
10806 {
10807 writer.WriteAttributeString("ExcludeLanguage", this.excludeLanguageField.ToString(CultureInfo.InvariantCulture));
10808 }
10809 if (this.excludedMinVersionFieldSet)
10810 {
10811 writer.WriteAttributeString("ExcludedMinVersion", this.excludedMinVersionField);
10812 }
10813 if (this.excludedMaxVersionFieldSet)
10814 {
10815 writer.WriteAttributeString("ExcludedMaxVersion", this.excludedMaxVersionField);
10816 }
10817 writer.WriteEndElement();
10818 }
10819
10820 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
10821 void ISetAttributes.SetAttribute(string name, string value)
10822 {
10823 if (String.IsNullOrEmpty(name))
10824 {
10825 throw new ArgumentNullException("name");
10826 }
10827 if (("ExcludedId" == name))
10828 {
10829 this.excludedIdField = value;
10830 this.excludedIdFieldSet = true;
10831 }
10832 if (("ExcludeExceptLanguage" == name))
10833 {
10834 this.excludeExceptLanguageField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
10835 this.excludeExceptLanguageFieldSet = true;
10836 }
10837 if (("ExcludeLanguage" == name))
10838 {
10839 this.excludeLanguageField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
10840 this.excludeLanguageFieldSet = true;
10841 }
10842 if (("ExcludedMinVersion" == name))
10843 {
10844 this.excludedMinVersionField = value;
10845 this.excludedMinVersionFieldSet = true;
10846 }
10847 if (("ExcludedMaxVersion" == name))
10848 {
10849 this.excludedMaxVersionField = value;
10850 this.excludedMaxVersionFieldSet = true;
10851 }
10852 }
10853 }
10854
10855 /// <summary>
10856 /// Defines the configurable attributes of merge module.
10857 /// </summary>
10858 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
10859 public class Configuration : ISchemaElement, ISetAttributes
10860 {
10861
10862 private string nameField;
10863
10864 private bool nameFieldSet;
10865
10866 private FormatType formatField;
10867
10868 private bool formatFieldSet;
10869
10870 private string typeField;
10871
10872 private bool typeFieldSet;
10873
10874 private string contextDataField;
10875
10876 private bool contextDataFieldSet;
10877
10878 private string defaultValueField;
10879
10880 private bool defaultValueFieldSet;
10881
10882 private YesNoType keyNoOrphanField;
10883
10884 private bool keyNoOrphanFieldSet;
10885
10886 private YesNoType nonNullableField;
10887
10888 private bool nonNullableFieldSet;
10889
10890 private string displayNameField;
10891
10892 private bool displayNameFieldSet;
10893
10894 private string descriptionField;
10895
10896 private bool descriptionFieldSet;
10897
10898 private string helpLocationField;
10899
10900 private bool helpLocationFieldSet;
10901
10902 private string helpKeywordField;
10903
10904 private bool helpKeywordFieldSet;
10905
10906 private ISchemaElement parentElement;
10907
10908 /// <summary>
10909 /// Defines the name of the configurable item.
10910 /// </summary>
10911 public string Name
10912 {
10913 get
10914 {
10915 return this.nameField;
10916 }
10917 set
10918 {
10919 this.nameFieldSet = true;
10920 this.nameField = value;
10921 }
10922 }
10923
10924 /// <summary>
10925 /// Specifies the format of the data being changed.
10926 /// </summary>
10927 public FormatType Format
10928 {
10929 get
10930 {
10931 return this.formatField;
10932 }
10933 set
10934 {
10935 this.formatFieldSet = true;
10936 this.formatField = value;
10937 }
10938 }
10939
10940 /// <summary>
10941 /// Specifies the type of the data being changed.
10942 /// </summary>
10943 public string Type
10944 {
10945 get
10946 {
10947 return this.typeField;
10948 }
10949 set
10950 {
10951 this.typeFieldSet = true;
10952 this.typeField = value;
10953 }
10954 }
10955
10956 /// <summary>
10957 /// Specifies a semantic context for the requested data.
10958 /// </summary>
10959 public string ContextData
10960 {
10961 get
10962 {
10963 return this.contextDataField;
10964 }
10965 set
10966 {
10967 this.contextDataFieldSet = true;
10968 this.contextDataField = value;
10969 }
10970 }
10971
10972 /// <summary>
10973 /// Specifies a default value for the item in this record if the merge tool declines to provide a value.
10974 /// </summary>
10975 public string DefaultValue
10976 {
10977 get
10978 {
10979 return this.defaultValueField;
10980 }
10981 set
10982 {
10983 this.defaultValueFieldSet = true;
10984 this.defaultValueField = value;
10985 }
10986 }
10987
10988 /// <summary>
10989 /// Does not merge rule according to rules in MSI SDK.
10990 /// </summary>
10991 public YesNoType KeyNoOrphan
10992 {
10993 get
10994 {
10995 return this.keyNoOrphanField;
10996 }
10997 set
10998 {
10999 this.keyNoOrphanFieldSet = true;
11000 this.keyNoOrphanField = value;
11001 }
11002 }
11003
11004 /// <summary>
11005 /// If yes, null is not a valid entry.
11006 /// </summary>
11007 public YesNoType NonNullable
11008 {
11009 get
11010 {
11011 return this.nonNullableField;
11012 }
11013 set
11014 {
11015 this.nonNullableFieldSet = true;
11016 this.nonNullableField = value;
11017 }
11018 }
11019
11020 /// <summary>
11021 /// Display name for authoring.
11022 /// </summary>
11023 public string DisplayName
11024 {
11025 get
11026 {
11027 return this.displayNameField;
11028 }
11029 set
11030 {
11031 this.displayNameFieldSet = true;
11032 this.displayNameField = value;
11033 }
11034 }
11035
11036 /// <summary>
11037 /// Description for authoring.
11038 /// </summary>
11039 public string Description
11040 {
11041 get
11042 {
11043 return this.descriptionField;
11044 }
11045 set
11046 {
11047 this.descriptionFieldSet = true;
11048 this.descriptionField = value;
11049 }
11050 }
11051
11052 /// <summary>
11053 /// Location of chm file for authoring.
11054 /// </summary>
11055 public string HelpLocation
11056 {
11057 get
11058 {
11059 return this.helpLocationField;
11060 }
11061 set
11062 {
11063 this.helpLocationFieldSet = true;
11064 this.helpLocationField = value;
11065 }
11066 }
11067
11068 /// <summary>
11069 /// Keyword into chm file for authoring.
11070 /// </summary>
11071 public string HelpKeyword
11072 {
11073 get
11074 {
11075 return this.helpKeywordField;
11076 }
11077 set
11078 {
11079 this.helpKeywordFieldSet = true;
11080 this.helpKeywordField = value;
11081 }
11082 }
11083
11084 public virtual ISchemaElement ParentElement
11085 {
11086 get
11087 {
11088 return this.parentElement;
11089 }
11090 set
11091 {
11092 this.parentElement = value;
11093 }
11094 }
11095
11096 /// <summary>
11097 /// Parses a FormatType from a string.
11098 /// </summary>
11099 public static FormatType ParseFormatType(string value)
11100 {
11101 FormatType parsedValue;
11102 Configuration.TryParseFormatType(value, out parsedValue);
11103 return parsedValue;
11104 }
11105
11106 /// <summary>
11107 /// Tries to parse a FormatType from a string.
11108 /// </summary>
11109 public static bool TryParseFormatType(string value, out FormatType parsedValue)
11110 {
11111 parsedValue = FormatType.NotSet;
11112 if (string.IsNullOrEmpty(value))
11113 {
11114 return false;
11115 }
11116 if (("Text" == value))
11117 {
11118 parsedValue = FormatType.Text;
11119 }
11120 else
11121 {
11122 if (("Key" == value))
11123 {
11124 parsedValue = FormatType.Key;
11125 }
11126 else
11127 {
11128 if (("Integer" == value))
11129 {
11130 parsedValue = FormatType.Integer;
11131 }
11132 else
11133 {
11134 if (("Bitfield" == value))
11135 {
11136 parsedValue = FormatType.Bitfield;
11137 }
11138 else
11139 {
11140 parsedValue = FormatType.IllegalValue;
11141 return false;
11142 }
11143 }
11144 }
11145 }
11146 return true;
11147 }
11148
11149 /// <summary>
11150 /// Processes this element and all child elements into an XmlWriter.
11151 /// </summary>
11152 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
11153 public virtual void OutputXml(XmlWriter writer)
11154 {
11155 if ((null == writer))
11156 {
11157 throw new ArgumentNullException("writer");
11158 }
11159 writer.WriteStartElement("Configuration", "http://wixtoolset.org/schemas/v4/wxs");
11160 if (this.nameFieldSet)
11161 {
11162 writer.WriteAttributeString("Name", this.nameField);
11163 }
11164 if (this.formatFieldSet)
11165 {
11166 if ((this.formatField == FormatType.Text))
11167 {
11168 writer.WriteAttributeString("Format", "Text");
11169 }
11170 if ((this.formatField == FormatType.Key))
11171 {
11172 writer.WriteAttributeString("Format", "Key");
11173 }
11174 if ((this.formatField == FormatType.Integer))
11175 {
11176 writer.WriteAttributeString("Format", "Integer");
11177 }
11178 if ((this.formatField == FormatType.Bitfield))
11179 {
11180 writer.WriteAttributeString("Format", "Bitfield");
11181 }
11182 }
11183 if (this.typeFieldSet)
11184 {
11185 writer.WriteAttributeString("Type", this.typeField);
11186 }
11187 if (this.contextDataFieldSet)
11188 {
11189 writer.WriteAttributeString("ContextData", this.contextDataField);
11190 }
11191 if (this.defaultValueFieldSet)
11192 {
11193 writer.WriteAttributeString("DefaultValue", this.defaultValueField);
11194 }
11195 if (this.keyNoOrphanFieldSet)
11196 {
11197 if ((this.keyNoOrphanField == YesNoType.no))
11198 {
11199 writer.WriteAttributeString("KeyNoOrphan", "no");
11200 }
11201 if ((this.keyNoOrphanField == YesNoType.yes))
11202 {
11203 writer.WriteAttributeString("KeyNoOrphan", "yes");
11204 }
11205 }
11206 if (this.nonNullableFieldSet)
11207 {
11208 if ((this.nonNullableField == YesNoType.no))
11209 {
11210 writer.WriteAttributeString("NonNullable", "no");
11211 }
11212 if ((this.nonNullableField == YesNoType.yes))
11213 {
11214 writer.WriteAttributeString("NonNullable", "yes");
11215 }
11216 }
11217 if (this.displayNameFieldSet)
11218 {
11219 writer.WriteAttributeString("DisplayName", this.displayNameField);
11220 }
11221 if (this.descriptionFieldSet)
11222 {
11223 writer.WriteAttributeString("Description", this.descriptionField);
11224 }
11225 if (this.helpLocationFieldSet)
11226 {
11227 writer.WriteAttributeString("HelpLocation", this.helpLocationField);
11228 }
11229 if (this.helpKeywordFieldSet)
11230 {
11231 writer.WriteAttributeString("HelpKeyword", this.helpKeywordField);
11232 }
11233 writer.WriteEndElement();
11234 }
11235
11236 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
11237 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
11238 void ISetAttributes.SetAttribute(string name, string value)
11239 {
11240 if (String.IsNullOrEmpty(name))
11241 {
11242 throw new ArgumentNullException("name");
11243 }
11244 if (("Name" == name))
11245 {
11246 this.nameField = value;
11247 this.nameFieldSet = true;
11248 }
11249 if (("Format" == name))
11250 {
11251 this.formatField = Configuration.ParseFormatType(value);
11252 this.formatFieldSet = true;
11253 }
11254 if (("Type" == name))
11255 {
11256 this.typeField = value;
11257 this.typeFieldSet = true;
11258 }
11259 if (("ContextData" == name))
11260 {
11261 this.contextDataField = value;
11262 this.contextDataFieldSet = true;
11263 }
11264 if (("DefaultValue" == name))
11265 {
11266 this.defaultValueField = value;
11267 this.defaultValueFieldSet = true;
11268 }
11269 if (("KeyNoOrphan" == name))
11270 {
11271 this.keyNoOrphanField = Enums.ParseYesNoType(value);
11272 this.keyNoOrphanFieldSet = true;
11273 }
11274 if (("NonNullable" == name))
11275 {
11276 this.nonNullableField = Enums.ParseYesNoType(value);
11277 this.nonNullableFieldSet = true;
11278 }
11279 if (("DisplayName" == name))
11280 {
11281 this.displayNameField = value;
11282 this.displayNameFieldSet = true;
11283 }
11284 if (("Description" == name))
11285 {
11286 this.descriptionField = value;
11287 this.descriptionFieldSet = true;
11288 }
11289 if (("HelpLocation" == name))
11290 {
11291 this.helpLocationField = value;
11292 this.helpLocationFieldSet = true;
11293 }
11294 if (("HelpKeyword" == name))
11295 {
11296 this.helpKeywordField = value;
11297 this.helpKeywordFieldSet = true;
11298 }
11299 }
11300
11301 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
11302 public enum FormatType
11303 {
11304
11305 IllegalValue = int.MaxValue,
11306
11307 NotSet = -1,
11308
11309 Text,
11310
11311 Key,
11312
11313 Integer,
11314
11315 Bitfield,
11316 }
11317 }
11318
11319 /// <summary>
11320 /// Specifies the configurable fields of a module database and provides a template for the configuration of each field.
11321 /// </summary>
11322 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
11323 public class Substitution : ISchemaElement, ISetAttributes
11324 {
11325
11326 private string tableField;
11327
11328 private bool tableFieldSet;
11329
11330 private string rowField;
11331
11332 private bool rowFieldSet;
11333
11334 private string columnField;
11335
11336 private bool columnFieldSet;
11337
11338 private string valueField;
11339
11340 private bool valueFieldSet;
11341
11342 private ISchemaElement parentElement;
11343
11344 /// <summary>
11345 /// Specifies the name of the table being modified in the module database.
11346 /// </summary>
11347 public string Table
11348 {
11349 get
11350 {
11351 return this.tableField;
11352 }
11353 set
11354 {
11355 this.tableFieldSet = true;
11356 this.tableField = value;
11357 }
11358 }
11359
11360 /// <summary>
11361 /// Specifies the primary keys of the target row in the table named in the Table column. If multiple keys, separated by semicolons.
11362 /// </summary>
11363 public string Row
11364 {
11365 get
11366 {
11367 return this.rowField;
11368 }
11369 set
11370 {
11371 this.rowFieldSet = true;
11372 this.rowField = value;
11373 }
11374 }
11375
11376 /// <summary>
11377 /// Specifies the target column in the row named in the Row column.
11378 /// </summary>
11379 public string Column
11380 {
11381 get
11382 {
11383 return this.columnField;
11384 }
11385 set
11386 {
11387 this.columnFieldSet = true;
11388 this.columnField = value;
11389 }
11390 }
11391
11392 /// <summary>
11393 /// Provides a formatting template for the data being substituted into the target field specified by Table, Row, and Column.
11394 /// </summary>
11395 public string Value
11396 {
11397 get
11398 {
11399 return this.valueField;
11400 }
11401 set
11402 {
11403 this.valueFieldSet = true;
11404 this.valueField = value;
11405 }
11406 }
11407
11408 public virtual ISchemaElement ParentElement
11409 {
11410 get
11411 {
11412 return this.parentElement;
11413 }
11414 set
11415 {
11416 this.parentElement = value;
11417 }
11418 }
11419
11420 /// <summary>
11421 /// Processes this element and all child elements into an XmlWriter.
11422 /// </summary>
11423 public virtual void OutputXml(XmlWriter writer)
11424 {
11425 if ((null == writer))
11426 {
11427 throw new ArgumentNullException("writer");
11428 }
11429 writer.WriteStartElement("Substitution", "http://wixtoolset.org/schemas/v4/wxs");
11430 if (this.tableFieldSet)
11431 {
11432 writer.WriteAttributeString("Table", this.tableField);
11433 }
11434 if (this.rowFieldSet)
11435 {
11436 writer.WriteAttributeString("Row", this.rowField);
11437 }
11438 if (this.columnFieldSet)
11439 {
11440 writer.WriteAttributeString("Column", this.columnField);
11441 }
11442 if (this.valueFieldSet)
11443 {
11444 writer.WriteAttributeString("Value", this.valueField);
11445 }
11446 writer.WriteEndElement();
11447 }
11448
11449 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
11450 void ISetAttributes.SetAttribute(string name, string value)
11451 {
11452 if (String.IsNullOrEmpty(name))
11453 {
11454 throw new ArgumentNullException("name");
11455 }
11456 if (("Table" == name))
11457 {
11458 this.tableField = value;
11459 this.tableFieldSet = true;
11460 }
11461 if (("Row" == name))
11462 {
11463 this.rowField = value;
11464 this.rowFieldSet = true;
11465 }
11466 if (("Column" == name))
11467 {
11468 this.columnField = value;
11469 this.columnFieldSet = true;
11470 }
11471 if (("Value" == name))
11472 {
11473 this.valueField = value;
11474 this.valueFieldSet = true;
11475 }
11476 }
11477 }
11478
11479 /// <summary>
11480 /// Specifies a table from the merge module that is not merged into an .msi file.
11481 /// If the table already exists in an .msi file, it is not modified by the merge.
11482 /// The specified table can therefore contain data that is unneeded after the merge.
11483 /// To minimize the size of the .msm file, it is recommended that developers remove
11484 /// unused tables from modules intended for redistribution rather than creating
11485 /// IgnoreTable elements for those tables.
11486 /// </summary>
11487 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
11488 public class IgnoreTable : ISchemaElement, ISetAttributes
11489 {
11490
11491 private string idField;
11492
11493 private bool idFieldSet;
11494
11495 private ISchemaElement parentElement;
11496
11497 /// <summary>
11498 /// The name of the table in the merge module that is not to be merged into the .msi file.
11499 /// </summary>
11500 public string Id
11501 {
11502 get
11503 {
11504 return this.idField;
11505 }
11506 set
11507 {
11508 this.idFieldSet = true;
11509 this.idField = value;
11510 }
11511 }
11512
11513 public virtual ISchemaElement ParentElement
11514 {
11515 get
11516 {
11517 return this.parentElement;
11518 }
11519 set
11520 {
11521 this.parentElement = value;
11522 }
11523 }
11524
11525 /// <summary>
11526 /// Processes this element and all child elements into an XmlWriter.
11527 /// </summary>
11528 public virtual void OutputXml(XmlWriter writer)
11529 {
11530 if ((null == writer))
11531 {
11532 throw new ArgumentNullException("writer");
11533 }
11534 writer.WriteStartElement("IgnoreTable", "http://wixtoolset.org/schemas/v4/wxs");
11535 if (this.idFieldSet)
11536 {
11537 writer.WriteAttributeString("Id", this.idField);
11538 }
11539 writer.WriteEndElement();
11540 }
11541
11542 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
11543 void ISetAttributes.SetAttribute(string name, string value)
11544 {
11545 if (String.IsNullOrEmpty(name))
11546 {
11547 throw new ArgumentNullException("name");
11548 }
11549 if (("Id" == name))
11550 {
11551 this.idField = value;
11552 this.idFieldSet = true;
11553 }
11554 }
11555 }
11556
11557 /// <summary>
11558 /// The Fragment element is the building block of creating an installer database in WiX. Once defined,
11559 /// the Fragment becomes an immutable, atomic unit which can either be completely included or excluded
11560 /// from a product. The contents of a Fragment element can be linked into a product by utilizing one
11561 /// of the many *Ref elements. When linking in a Fragment, it will be necessary to link in all of its
11562 /// individual units. For instance, if a given Fragment contains two Component elements, you must link
11563 /// both under features using ComponentRef for each linked Component. Otherwise, you will get a linker
11564 /// warning and have a floating Component that does not appear under any Feature.
11565 /// </summary>
11566 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
11567 public class Fragment : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
11568 {
11569
11570 private ElementCollection children;
11571
11572 private string idField;
11573
11574 private bool idFieldSet;
11575
11576 private ISchemaElement parentElement;
11577
11578 public Fragment()
11579 {
11580 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
11581 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppId)));
11582 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Binary)));
11583 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BootstrapperApplication)));
11584 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BootstrapperApplicationRef)));
11585 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComplianceCheck)));
11586 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component)));
11587 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroup)));
11588 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Condition)));
11589 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Container)));
11590 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CustomAction)));
11591 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CustomActionRef)));
11592 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CustomTable)));
11593 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Directory)));
11594 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectoryRef)));
11595 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainer)));
11596 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainerRef)));
11597 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(EnsureTable)));
11598 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Feature)));
11599 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroup)));
11600 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef)));
11601 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Icon)));
11602 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(IgnoreModularization)));
11603 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Media)));
11604 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MediaTemplate)));
11605 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageGroup)));
11606 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageCertificates)));
11607 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchCertificates)));
11608 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamily)));
11609 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyGroup)));
11610 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroup)));
11611 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Property)));
11612 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PropertyRef)));
11613 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RelatedBundle)));
11614 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SetDirectory)));
11615 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SetProperty)));
11616 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SFPCatalog)));
11617 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UI)));
11618 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UIRef)));
11619 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Upgrade)));
11620 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Variable)));
11621 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WixVariable)));
11622 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Sequence);
11623 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(InstallExecuteSequence)));
11624 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(InstallUISequence)));
11625 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(AdminExecuteSequence)));
11626 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(AdminUISequence)));
11627 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(AdvertiseExecuteSequence)));
11628 childCollection0.AddCollection(childCollection1);
11629 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
11630 this.children = childCollection0;
11631 }
11632
11633 public virtual IEnumerable Children
11634 {
11635 get
11636 {
11637 return this.children;
11638 }
11639 }
11640
11641 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
11642 public virtual IEnumerable this[System.Type childType]
11643 {
11644 get
11645 {
11646 return this.children.Filter(childType);
11647 }
11648 }
11649
11650 /// <summary>
11651 /// Optional identifier for a Fragment. Should only be set by advanced users to tag sections.
11652 /// </summary>
11653 public string Id
11654 {
11655 get
11656 {
11657 return this.idField;
11658 }
11659 set
11660 {
11661 this.idFieldSet = true;
11662 this.idField = value;
11663 }
11664 }
11665
11666 public virtual ISchemaElement ParentElement
11667 {
11668 get
11669 {
11670 return this.parentElement;
11671 }
11672 set
11673 {
11674 this.parentElement = value;
11675 }
11676 }
11677
11678 public virtual void AddChild(ISchemaElement child)
11679 {
11680 if ((null == child))
11681 {
11682 throw new ArgumentNullException("child");
11683 }
11684 this.children.AddElement(child);
11685 child.ParentElement = this;
11686 }
11687
11688 public virtual void RemoveChild(ISchemaElement child)
11689 {
11690 if ((null == child))
11691 {
11692 throw new ArgumentNullException("child");
11693 }
11694 this.children.RemoveElement(child);
11695 child.ParentElement = null;
11696 }
11697
11698 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
11699 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
11700 ISchemaElement ICreateChildren.CreateChild(string childName)
11701 {
11702 if (String.IsNullOrEmpty(childName))
11703 {
11704 throw new ArgumentNullException("childName");
11705 }
11706 ISchemaElement childValue = null;
11707 if (("AppId" == childName))
11708 {
11709 childValue = new AppId();
11710 }
11711 if (("Binary" == childName))
11712 {
11713 childValue = new Binary();
11714 }
11715 if (("BootstrapperApplication" == childName))
11716 {
11717 childValue = new BootstrapperApplication();
11718 }
11719 if (("BootstrapperApplicationRef" == childName))
11720 {
11721 childValue = new BootstrapperApplicationRef();
11722 }
11723 if (("ComplianceCheck" == childName))
11724 {
11725 childValue = new ComplianceCheck();
11726 }
11727 if (("Component" == childName))
11728 {
11729 childValue = new Component();
11730 }
11731 if (("ComponentGroup" == childName))
11732 {
11733 childValue = new ComponentGroup();
11734 }
11735 if (("Condition" == childName))
11736 {
11737 childValue = new Condition();
11738 }
11739 if (("Container" == childName))
11740 {
11741 childValue = new Container();
11742 }
11743 if (("CustomAction" == childName))
11744 {
11745 childValue = new CustomAction();
11746 }
11747 if (("CustomActionRef" == childName))
11748 {
11749 childValue = new CustomActionRef();
11750 }
11751 if (("CustomTable" == childName))
11752 {
11753 childValue = new CustomTable();
11754 }
11755 if (("Directory" == childName))
11756 {
11757 childValue = new Directory();
11758 }
11759 if (("DirectoryRef" == childName))
11760 {
11761 childValue = new DirectoryRef();
11762 }
11763 if (("EmbeddedChainer" == childName))
11764 {
11765 childValue = new EmbeddedChainer();
11766 }
11767 if (("EmbeddedChainerRef" == childName))
11768 {
11769 childValue = new EmbeddedChainerRef();
11770 }
11771 if (("EnsureTable" == childName))
11772 {
11773 childValue = new EnsureTable();
11774 }
11775 if (("Feature" == childName))
11776 {
11777 childValue = new Feature();
11778 }
11779 if (("FeatureGroup" == childName))
11780 {
11781 childValue = new FeatureGroup();
11782 }
11783 if (("FeatureRef" == childName))
11784 {
11785 childValue = new FeatureRef();
11786 }
11787 if (("Icon" == childName))
11788 {
11789 childValue = new Icon();
11790 }
11791 if (("IgnoreModularization" == childName))
11792 {
11793 childValue = new IgnoreModularization();
11794 }
11795 if (("Media" == childName))
11796 {
11797 childValue = new Media();
11798 }
11799 if (("MediaTemplate" == childName))
11800 {
11801 childValue = new MediaTemplate();
11802 }
11803 if (("PackageGroup" == childName))
11804 {
11805 childValue = new PackageGroup();
11806 }
11807 if (("PackageCertificates" == childName))
11808 {
11809 childValue = new PackageCertificates();
11810 }
11811 if (("PatchCertificates" == childName))
11812 {
11813 childValue = new PatchCertificates();
11814 }
11815 if (("PatchFamily" == childName))
11816 {
11817 childValue = new PatchFamily();
11818 }
11819 if (("PatchFamilyGroup" == childName))
11820 {
11821 childValue = new PatchFamilyGroup();
11822 }
11823 if (("PayloadGroup" == childName))
11824 {
11825 childValue = new PayloadGroup();
11826 }
11827 if (("Property" == childName))
11828 {
11829 childValue = new Property();
11830 }
11831 if (("PropertyRef" == childName))
11832 {
11833 childValue = new PropertyRef();
11834 }
11835 if (("RelatedBundle" == childName))
11836 {
11837 childValue = new RelatedBundle();
11838 }
11839 if (("SetDirectory" == childName))
11840 {
11841 childValue = new SetDirectory();
11842 }
11843 if (("SetProperty" == childName))
11844 {
11845 childValue = new SetProperty();
11846 }
11847 if (("SFPCatalog" == childName))
11848 {
11849 childValue = new SFPCatalog();
11850 }
11851 if (("UI" == childName))
11852 {
11853 childValue = new UI();
11854 }
11855 if (("UIRef" == childName))
11856 {
11857 childValue = new UIRef();
11858 }
11859 if (("Upgrade" == childName))
11860 {
11861 childValue = new Upgrade();
11862 }
11863 if (("Variable" == childName))
11864 {
11865 childValue = new Variable();
11866 }
11867 if (("WixVariable" == childName))
11868 {
11869 childValue = new WixVariable();
11870 }
11871 if (("InstallExecuteSequence" == childName))
11872 {
11873 childValue = new InstallExecuteSequence();
11874 }
11875 if (("InstallUISequence" == childName))
11876 {
11877 childValue = new InstallUISequence();
11878 }
11879 if (("AdminExecuteSequence" == childName))
11880 {
11881 childValue = new AdminExecuteSequence();
11882 }
11883 if (("AdminUISequence" == childName))
11884 {
11885 childValue = new AdminUISequence();
11886 }
11887 if (("AdvertiseExecuteSequence" == childName))
11888 {
11889 childValue = new AdvertiseExecuteSequence();
11890 }
11891 if ((null == childValue))
11892 {
11893 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
11894 }
11895 return childValue;
11896 }
11897
11898 /// <summary>
11899 /// Processes this element and all child elements into an XmlWriter.
11900 /// </summary>
11901 public virtual void OutputXml(XmlWriter writer)
11902 {
11903 if ((null == writer))
11904 {
11905 throw new ArgumentNullException("writer");
11906 }
11907 writer.WriteStartElement("Fragment", "http://wixtoolset.org/schemas/v4/wxs");
11908 if (this.idFieldSet)
11909 {
11910 writer.WriteAttributeString("Id", this.idField);
11911 }
11912 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
11913 {
11914 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
11915 childElement.OutputXml(writer);
11916 }
11917 writer.WriteEndElement();
11918 }
11919
11920 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
11921 void ISetAttributes.SetAttribute(string name, string value)
11922 {
11923 if (String.IsNullOrEmpty(name))
11924 {
11925 throw new ArgumentNullException("name");
11926 }
11927 if (("Id" == name))
11928 {
11929 this.idField = value;
11930 this.idFieldSet = true;
11931 }
11932 }
11933 }
11934
11935 /// <summary>
11936 /// The Patch element is analogous to the main function in a C program. When linking, only one Patch section
11937 /// can be given to the linker to produce a successful result. Using this element creates an MSP file.
11938 /// </summary>
11939 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
11940 public class Patch : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
11941 {
11942
11943 private ElementCollection children;
11944
11945 private string idField;
11946
11947 private bool idFieldSet;
11948
11949 private string codepageField;
11950
11951 private bool codepageFieldSet;
11952
11953 private YesNoType allowRemovalField;
11954
11955 private bool allowRemovalFieldSet;
11956
11957 private string classificationField;
11958
11959 private bool classificationFieldSet;
11960
11961 private string clientPatchIdField;
11962
11963 private bool clientPatchIdFieldSet;
11964
11965 private YesNoType apiPatchingSymbolNoImagehlpFlagField;
11966
11967 private bool apiPatchingSymbolNoImagehlpFlagFieldSet;
11968
11969 private YesNoType apiPatchingSymbolNoFailuresFlagField;
11970
11971 private bool apiPatchingSymbolNoFailuresFlagFieldSet;
11972
11973 private YesNoType apiPatchingSymbolUndecoratedTooFlagField;
11974
11975 private bool apiPatchingSymbolUndecoratedTooFlagFieldSet;
11976
11977 private string descriptionField;
11978
11979 private bool descriptionFieldSet;
11980
11981 private string displayNameField;
11982
11983 private bool displayNameFieldSet;
11984
11985 private string commentsField;
11986
11987 private bool commentsFieldSet;
11988
11989 private string manufacturerField;
11990
11991 private bool manufacturerFieldSet;
11992
11993 private YesNoType minorUpdateTargetRTMField;
11994
11995 private bool minorUpdateTargetRTMFieldSet;
11996
11997 private string moreInfoURLField;
11998
11999 private bool moreInfoURLFieldSet;
12000
12001 private YesNoType optimizedInstallModeField;
12002
12003 private bool optimizedInstallModeFieldSet;
12004
12005 private string targetProductNameField;
12006
12007 private bool targetProductNameFieldSet;
12008
12009 private YesNoType optimizePatchSizeForLargeFilesField;
12010
12011 private bool optimizePatchSizeForLargeFilesFieldSet;
12012
12013 private ISchemaElement parentElement;
12014
12015 public Patch()
12016 {
12017 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
12018 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice);
12019 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchInformation)));
12020 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Media)));
12021 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(OptimizeCustomActions)));
12022 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamily)));
12023 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyRef)));
12024 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyGroup)));
12025 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyGroupRef)));
12026 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchProperty)));
12027 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(TargetProductCodes)));
12028 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
12029 childCollection0.AddCollection(childCollection1);
12030 this.children = childCollection0;
12031 }
12032
12033 public virtual IEnumerable Children
12034 {
12035 get
12036 {
12037 return this.children;
12038 }
12039 }
12040
12041 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
12042 public virtual IEnumerable this[System.Type childType]
12043 {
12044 get
12045 {
12046 return this.children.Filter(childType);
12047 }
12048 }
12049
12050 /// <summary>
12051 /// Patch code for this patch.
12052 /// </summary>
12053 public string Id
12054 {
12055 get
12056 {
12057 return this.idField;
12058 }
12059 set
12060 {
12061 this.idFieldSet = true;
12062 this.idField = value;
12063 }
12064 }
12065
12066 /// <summary>
12067 /// The code page integer value or web name for the resulting MSP. See remarks for more information.
12068 /// </summary>
12069 public string Codepage
12070 {
12071 get
12072 {
12073 return this.codepageField;
12074 }
12075 set
12076 {
12077 this.codepageFieldSet = true;
12078 this.codepageField = value;
12079 }
12080 }
12081
12082 /// <summary>
12083 /// Whether this is an uninstallable patch.
12084 /// </summary>
12085 public YesNoType AllowRemoval
12086 {
12087 get
12088 {
12089 return this.allowRemovalField;
12090 }
12091 set
12092 {
12093 this.allowRemovalFieldSet = true;
12094 this.allowRemovalField = value;
12095 }
12096 }
12097
12098 /// <summary>
12099 /// Category of updates. Recommended values are Critical Update, Hotfix, Security Rollup, Security Update, Service Pack, Update, Update Rollup.
12100 /// </summary>
12101 public string Classification
12102 {
12103 get
12104 {
12105 return this.classificationField;
12106 }
12107 set
12108 {
12109 this.classificationFieldSet = true;
12110 this.classificationField = value;
12111 }
12112 }
12113
12114 /// <summary>
12115 /// An easily referenced identity unique to a patch that can be used in product authoring. See remarks for more information.
12116 /// </summary>
12117 public string ClientPatchId
12118 {
12119 get
12120 {
12121 return this.clientPatchIdField;
12122 }
12123 set
12124 {
12125 this.clientPatchIdFieldSet = true;
12126 this.clientPatchIdField = value;
12127 }
12128 }
12129
12130 /// <summary>
12131 /// Flag used when creating a binary file patch. Default is "no". Don't use imagehlp.dll.
12132 /// </summary>
12133 public YesNoType ApiPatchingSymbolNoImagehlpFlag
12134 {
12135 get
12136 {
12137 return this.apiPatchingSymbolNoImagehlpFlagField;
12138 }
12139 set
12140 {
12141 this.apiPatchingSymbolNoImagehlpFlagFieldSet = true;
12142 this.apiPatchingSymbolNoImagehlpFlagField = value;
12143 }
12144 }
12145
12146 /// <summary>
12147 /// Flag used when creating a binary file patch. Default is "no". Don't fail patch due to imagehlp failures.
12148 /// </summary>
12149 public YesNoType ApiPatchingSymbolNoFailuresFlag
12150 {
12151 get
12152 {
12153 return this.apiPatchingSymbolNoFailuresFlagField;
12154 }
12155 set
12156 {
12157 this.apiPatchingSymbolNoFailuresFlagFieldSet = true;
12158 this.apiPatchingSymbolNoFailuresFlagField = value;
12159 }
12160 }
12161
12162 /// <summary>
12163 /// Flag used when creating a binary file patch. Default is "no". After matching decorated symbols, try to match remaining by undecorated names.
12164 /// </summary>
12165 public YesNoType ApiPatchingSymbolUndecoratedTooFlag
12166 {
12167 get
12168 {
12169 return this.apiPatchingSymbolUndecoratedTooFlagField;
12170 }
12171 set
12172 {
12173 this.apiPatchingSymbolUndecoratedTooFlagFieldSet = true;
12174 this.apiPatchingSymbolUndecoratedTooFlagField = value;
12175 }
12176 }
12177
12178 /// <summary>
12179 /// Description of the patch.
12180 /// </summary>
12181 public string Description
12182 {
12183 get
12184 {
12185 return this.descriptionField;
12186 }
12187 set
12188 {
12189 this.descriptionFieldSet = true;
12190 this.descriptionField = value;
12191 }
12192 }
12193
12194 /// <summary>
12195 /// A title for the patch that is suitable for public display. In Add/Remove Programs from XP SP2 on.
12196 /// </summary>
12197 public string DisplayName
12198 {
12199 get
12200 {
12201 return this.displayNameField;
12202 }
12203 set
12204 {
12205 this.displayNameFieldSet = true;
12206 this.displayNameField = value;
12207 }
12208 }
12209
12210 /// <summary>
12211 /// Optional comments for browsing.
12212 /// </summary>
12213 public string Comments
12214 {
12215 get
12216 {
12217 return this.commentsField;
12218 }
12219 set
12220 {
12221 this.commentsFieldSet = true;
12222 this.commentsField = value;
12223 }
12224 }
12225
12226 /// <summary>
12227 /// Vendor releasing the package
12228 /// </summary>
12229 public string Manufacturer
12230 {
12231 get
12232 {
12233 return this.manufacturerField;
12234 }
12235 set
12236 {
12237 this.manufacturerFieldSet = true;
12238 this.manufacturerField = value;
12239 }
12240 }
12241
12242 /// <summary>
12243 /// Indicates that the patch targets the RTM version of the product or the most recent major
12244 /// upgrade patch. Author this optional property in minor update patches that contain sequencing
12245 /// information to indicate that the patch removes all patches up to the RTM version of the
12246 /// product, or up to the most recent major upgrade patch. This property is available beginning
12247 /// with Windows Installer 3.1.
12248 /// </summary>
12249 [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")]
12250 public YesNoType MinorUpdateTargetRTM
12251 {
12252 get
12253 {
12254 return this.minorUpdateTargetRTMField;
12255 }
12256 set
12257 {
12258 this.minorUpdateTargetRTMFieldSet = true;
12259 this.minorUpdateTargetRTMField = value;
12260 }
12261 }
12262
12263 /// <summary>
12264 /// A URL that provides information specific to this patch. In Add/Remove Programs from XP SP2 on.
12265 /// </summary>
12266 [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")]
12267 public string MoreInfoURL
12268 {
12269 get
12270 {
12271 return this.moreInfoURLField;
12272 }
12273 set
12274 {
12275 this.moreInfoURLFieldSet = true;
12276 this.moreInfoURLField = value;
12277 }
12278 }
12279
12280 /// <summary>
12281 /// If this attribute is set to 'yes' in all the patches to be applied in a transaction, the
12282 /// application of the patch is optimized if possible. Available beginning with Windows Installer 3.1.
12283 /// </summary>
12284 public YesNoType OptimizedInstallMode
12285 {
12286 get
12287 {
12288 return this.optimizedInstallModeField;
12289 }
12290 set
12291 {
12292 this.optimizedInstallModeFieldSet = true;
12293 this.optimizedInstallModeField = value;
12294 }
12295 }
12296
12297 /// <summary>
12298 /// Name of the application or target product suite.
12299 /// </summary>
12300 public string TargetProductName
12301 {
12302 get
12303 {
12304 return this.targetProductNameField;
12305 }
12306 set
12307 {
12308 this.targetProductNameFieldSet = true;
12309 this.targetProductNameField = value;
12310 }
12311 }
12312
12313 /// <summary>
12314 /// When this attribute is set, patches for files greater than approximately 4 MB in size may be made smaller.
12315 /// </summary>
12316 public YesNoType OptimizePatchSizeForLargeFiles
12317 {
12318 get
12319 {
12320 return this.optimizePatchSizeForLargeFilesField;
12321 }
12322 set
12323 {
12324 this.optimizePatchSizeForLargeFilesFieldSet = true;
12325 this.optimizePatchSizeForLargeFilesField = value;
12326 }
12327 }
12328
12329 public virtual ISchemaElement ParentElement
12330 {
12331 get
12332 {
12333 return this.parentElement;
12334 }
12335 set
12336 {
12337 this.parentElement = value;
12338 }
12339 }
12340
12341 public virtual void AddChild(ISchemaElement child)
12342 {
12343 if ((null == child))
12344 {
12345 throw new ArgumentNullException("child");
12346 }
12347 this.children.AddElement(child);
12348 child.ParentElement = this;
12349 }
12350
12351 public virtual void RemoveChild(ISchemaElement child)
12352 {
12353 if ((null == child))
12354 {
12355 throw new ArgumentNullException("child");
12356 }
12357 this.children.RemoveElement(child);
12358 child.ParentElement = null;
12359 }
12360
12361 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
12362 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
12363 ISchemaElement ICreateChildren.CreateChild(string childName)
12364 {
12365 if (String.IsNullOrEmpty(childName))
12366 {
12367 throw new ArgumentNullException("childName");
12368 }
12369 ISchemaElement childValue = null;
12370 if (("PatchInformation" == childName))
12371 {
12372 childValue = new PatchInformation();
12373 }
12374 if (("Media" == childName))
12375 {
12376 childValue = new Media();
12377 }
12378 if (("OptimizeCustomActions" == childName))
12379 {
12380 childValue = new OptimizeCustomActions();
12381 }
12382 if (("PatchFamily" == childName))
12383 {
12384 childValue = new PatchFamily();
12385 }
12386 if (("PatchFamilyRef" == childName))
12387 {
12388 childValue = new PatchFamilyRef();
12389 }
12390 if (("PatchFamilyGroup" == childName))
12391 {
12392 childValue = new PatchFamilyGroup();
12393 }
12394 if (("PatchFamilyGroupRef" == childName))
12395 {
12396 childValue = new PatchFamilyGroupRef();
12397 }
12398 if (("PatchProperty" == childName))
12399 {
12400 childValue = new PatchProperty();
12401 }
12402 if (("TargetProductCodes" == childName))
12403 {
12404 childValue = new TargetProductCodes();
12405 }
12406 if ((null == childValue))
12407 {
12408 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
12409 }
12410 return childValue;
12411 }
12412
12413 /// <summary>
12414 /// Processes this element and all child elements into an XmlWriter.
12415 /// </summary>
12416 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
12417 public virtual void OutputXml(XmlWriter writer)
12418 {
12419 if ((null == writer))
12420 {
12421 throw new ArgumentNullException("writer");
12422 }
12423 writer.WriteStartElement("Patch", "http://wixtoolset.org/schemas/v4/wxs");
12424 if (this.idFieldSet)
12425 {
12426 writer.WriteAttributeString("Id", this.idField);
12427 }
12428 if (this.codepageFieldSet)
12429 {
12430 writer.WriteAttributeString("Codepage", this.codepageField);
12431 }
12432 if (this.allowRemovalFieldSet)
12433 {
12434 if ((this.allowRemovalField == YesNoType.no))
12435 {
12436 writer.WriteAttributeString("AllowRemoval", "no");
12437 }
12438 if ((this.allowRemovalField == YesNoType.yes))
12439 {
12440 writer.WriteAttributeString("AllowRemoval", "yes");
12441 }
12442 }
12443 if (this.classificationFieldSet)
12444 {
12445 writer.WriteAttributeString("Classification", this.classificationField);
12446 }
12447 if (this.clientPatchIdFieldSet)
12448 {
12449 writer.WriteAttributeString("ClientPatchId", this.clientPatchIdField);
12450 }
12451 if (this.apiPatchingSymbolNoImagehlpFlagFieldSet)
12452 {
12453 if ((this.apiPatchingSymbolNoImagehlpFlagField == YesNoType.no))
12454 {
12455 writer.WriteAttributeString("ApiPatchingSymbolNoImagehlpFlag", "no");
12456 }
12457 if ((this.apiPatchingSymbolNoImagehlpFlagField == YesNoType.yes))
12458 {
12459 writer.WriteAttributeString("ApiPatchingSymbolNoImagehlpFlag", "yes");
12460 }
12461 }
12462 if (this.apiPatchingSymbolNoFailuresFlagFieldSet)
12463 {
12464 if ((this.apiPatchingSymbolNoFailuresFlagField == YesNoType.no))
12465 {
12466 writer.WriteAttributeString("ApiPatchingSymbolNoFailuresFlag", "no");
12467 }
12468 if ((this.apiPatchingSymbolNoFailuresFlagField == YesNoType.yes))
12469 {
12470 writer.WriteAttributeString("ApiPatchingSymbolNoFailuresFlag", "yes");
12471 }
12472 }
12473 if (this.apiPatchingSymbolUndecoratedTooFlagFieldSet)
12474 {
12475 if ((this.apiPatchingSymbolUndecoratedTooFlagField == YesNoType.no))
12476 {
12477 writer.WriteAttributeString("ApiPatchingSymbolUndecoratedTooFlag", "no");
12478 }
12479 if ((this.apiPatchingSymbolUndecoratedTooFlagField == YesNoType.yes))
12480 {
12481 writer.WriteAttributeString("ApiPatchingSymbolUndecoratedTooFlag", "yes");
12482 }
12483 }
12484 if (this.descriptionFieldSet)
12485 {
12486 writer.WriteAttributeString("Description", this.descriptionField);
12487 }
12488 if (this.displayNameFieldSet)
12489 {
12490 writer.WriteAttributeString("DisplayName", this.displayNameField);
12491 }
12492 if (this.commentsFieldSet)
12493 {
12494 writer.WriteAttributeString("Comments", this.commentsField);
12495 }
12496 if (this.manufacturerFieldSet)
12497 {
12498 writer.WriteAttributeString("Manufacturer", this.manufacturerField);
12499 }
12500 if (this.minorUpdateTargetRTMFieldSet)
12501 {
12502 if ((this.minorUpdateTargetRTMField == YesNoType.no))
12503 {
12504 writer.WriteAttributeString("MinorUpdateTargetRTM", "no");
12505 }
12506 if ((this.minorUpdateTargetRTMField == YesNoType.yes))
12507 {
12508 writer.WriteAttributeString("MinorUpdateTargetRTM", "yes");
12509 }
12510 }
12511 if (this.moreInfoURLFieldSet)
12512 {
12513 writer.WriteAttributeString("MoreInfoURL", this.moreInfoURLField);
12514 }
12515 if (this.optimizedInstallModeFieldSet)
12516 {
12517 if ((this.optimizedInstallModeField == YesNoType.no))
12518 {
12519 writer.WriteAttributeString("OptimizedInstallMode", "no");
12520 }
12521 if ((this.optimizedInstallModeField == YesNoType.yes))
12522 {
12523 writer.WriteAttributeString("OptimizedInstallMode", "yes");
12524 }
12525 }
12526 if (this.targetProductNameFieldSet)
12527 {
12528 writer.WriteAttributeString("TargetProductName", this.targetProductNameField);
12529 }
12530 if (this.optimizePatchSizeForLargeFilesFieldSet)
12531 {
12532 if ((this.optimizePatchSizeForLargeFilesField == YesNoType.no))
12533 {
12534 writer.WriteAttributeString("OptimizePatchSizeForLargeFiles", "no");
12535 }
12536 if ((this.optimizePatchSizeForLargeFilesField == YesNoType.yes))
12537 {
12538 writer.WriteAttributeString("OptimizePatchSizeForLargeFiles", "yes");
12539 }
12540 }
12541 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
12542 {
12543 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
12544 childElement.OutputXml(writer);
12545 }
12546 writer.WriteEndElement();
12547 }
12548
12549 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
12550 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
12551 void ISetAttributes.SetAttribute(string name, string value)
12552 {
12553 if (String.IsNullOrEmpty(name))
12554 {
12555 throw new ArgumentNullException("name");
12556 }
12557 if (("Id" == name))
12558 {
12559 this.idField = value;
12560 this.idFieldSet = true;
12561 }
12562 if (("Codepage" == name))
12563 {
12564 this.codepageField = value;
12565 this.codepageFieldSet = true;
12566 }
12567 if (("AllowRemoval" == name))
12568 {
12569 this.allowRemovalField = Enums.ParseYesNoType(value);
12570 this.allowRemovalFieldSet = true;
12571 }
12572 if (("Classification" == name))
12573 {
12574 this.classificationField = value;
12575 this.classificationFieldSet = true;
12576 }
12577 if (("ClientPatchId" == name))
12578 {
12579 this.clientPatchIdField = value;
12580 this.clientPatchIdFieldSet = true;
12581 }
12582 if (("ApiPatchingSymbolNoImagehlpFlag" == name))
12583 {
12584 this.apiPatchingSymbolNoImagehlpFlagField = Enums.ParseYesNoType(value);
12585 this.apiPatchingSymbolNoImagehlpFlagFieldSet = true;
12586 }
12587 if (("ApiPatchingSymbolNoFailuresFlag" == name))
12588 {
12589 this.apiPatchingSymbolNoFailuresFlagField = Enums.ParseYesNoType(value);
12590 this.apiPatchingSymbolNoFailuresFlagFieldSet = true;
12591 }
12592 if (("ApiPatchingSymbolUndecoratedTooFlag" == name))
12593 {
12594 this.apiPatchingSymbolUndecoratedTooFlagField = Enums.ParseYesNoType(value);
12595 this.apiPatchingSymbolUndecoratedTooFlagFieldSet = true;
12596 }
12597 if (("Description" == name))
12598 {
12599 this.descriptionField = value;
12600 this.descriptionFieldSet = true;
12601 }
12602 if (("DisplayName" == name))
12603 {
12604 this.displayNameField = value;
12605 this.displayNameFieldSet = true;
12606 }
12607 if (("Comments" == name))
12608 {
12609 this.commentsField = value;
12610 this.commentsFieldSet = true;
12611 }
12612 if (("Manufacturer" == name))
12613 {
12614 this.manufacturerField = value;
12615 this.manufacturerFieldSet = true;
12616 }
12617 if (("MinorUpdateTargetRTM" == name))
12618 {
12619 this.minorUpdateTargetRTMField = Enums.ParseYesNoType(value);
12620 this.minorUpdateTargetRTMFieldSet = true;
12621 }
12622 if (("MoreInfoURL" == name))
12623 {
12624 this.moreInfoURLField = value;
12625 this.moreInfoURLFieldSet = true;
12626 }
12627 if (("OptimizedInstallMode" == name))
12628 {
12629 this.optimizedInstallModeField = Enums.ParseYesNoType(value);
12630 this.optimizedInstallModeFieldSet = true;
12631 }
12632 if (("TargetProductName" == name))
12633 {
12634 this.targetProductNameField = value;
12635 this.targetProductNameFieldSet = true;
12636 }
12637 if (("OptimizePatchSizeForLargeFiles" == name))
12638 {
12639 this.optimizePatchSizeForLargeFilesField = Enums.ParseYesNoType(value);
12640 this.optimizePatchSizeForLargeFilesFieldSet = true;
12641 }
12642 }
12643 }
12644
12645 /// <summary>
12646 /// Sets information in the patch transform that determines if the transform applies to an installed product and what errors should be ignored when applying the patch transform.
12647 /// </summary>
12648 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
12649 public class Validate : ISchemaElement, ISetAttributes
12650 {
12651
12652 private YesNoType productIdField;
12653
12654 private bool productIdFieldSet;
12655
12656 private YesNoType productLanguageField;
12657
12658 private bool productLanguageFieldSet;
12659
12660 private ProductVersionType productVersionField;
12661
12662 private bool productVersionFieldSet;
12663
12664 private ProductVersionOperatorType productVersionOperatorField;
12665
12666 private bool productVersionOperatorFieldSet;
12667
12668 private YesNoType upgradeCodeField;
12669
12670 private bool upgradeCodeFieldSet;
12671
12672 private YesNoType ignoreAddExistingRowField;
12673
12674 private bool ignoreAddExistingRowFieldSet;
12675
12676 private YesNoType ignoreAddExistingTableField;
12677
12678 private bool ignoreAddExistingTableFieldSet;
12679
12680 private YesNoType ignoreDeleteMissingRowField;
12681
12682 private bool ignoreDeleteMissingRowFieldSet;
12683
12684 private YesNoType ignoreDeleteMissingTableField;
12685
12686 private bool ignoreDeleteMissingTableFieldSet;
12687
12688 private YesNoType ignoreUpdateMissingRowField;
12689
12690 private bool ignoreUpdateMissingRowFieldSet;
12691
12692 private YesNoType ignoreChangingCodePageField;
12693
12694 private bool ignoreChangingCodePageFieldSet;
12695
12696 private ISchemaElement parentElement;
12697
12698 /// <summary>
12699 /// Requires that the installed ProductCode match the target ProductCode used to create the transform. The default is 'yes'.
12700 /// </summary>
12701 public YesNoType ProductId
12702 {
12703 get
12704 {
12705 return this.productIdField;
12706 }
12707 set
12708 {
12709 this.productIdFieldSet = true;
12710 this.productIdField = value;
12711 }
12712 }
12713
12714 /// <summary>
12715 /// Requires that the installed ProductLanguage match the target ProductLanguage used to create the transform. The default is 'no'.
12716 /// </summary>
12717 public YesNoType ProductLanguage
12718 {
12719 get
12720 {
12721 return this.productLanguageField;
12722 }
12723 set
12724 {
12725 this.productLanguageFieldSet = true;
12726 this.productLanguageField = value;
12727 }
12728 }
12729
12730 /// <summary>
12731 /// Determines how many fields of the installed ProductVersion to compare. See remarks for more information. The default is 'Update'.
12732 /// </summary>
12733 public ProductVersionType ProductVersion
12734 {
12735 get
12736 {
12737 return this.productVersionField;
12738 }
12739 set
12740 {
12741 this.productVersionFieldSet = true;
12742 this.productVersionField = value;
12743 }
12744 }
12745
12746 /// <summary>
12747 /// Determines how the installed ProductVersion is compared to the target ProductVersion used to create the transform. See remarks for more information. The default is 'Equal'.
12748 /// </summary>
12749 public ProductVersionOperatorType ProductVersionOperator
12750 {
12751 get
12752 {
12753 return this.productVersionOperatorField;
12754 }
12755 set
12756 {
12757 this.productVersionOperatorFieldSet = true;
12758 this.productVersionOperatorField = value;
12759 }
12760 }
12761
12762 /// <summary>
12763 /// Requires that the installed UpgradeCode match the target UpgradeCode used to create the transform. The default is 'yes'.
12764 /// </summary>
12765 public YesNoType UpgradeCode
12766 {
12767 get
12768 {
12769 return this.upgradeCodeField;
12770 }
12771 set
12772 {
12773 this.upgradeCodeFieldSet = true;
12774 this.upgradeCodeField = value;
12775 }
12776 }
12777
12778 /// <summary>
12779 /// Ignore errors when adding existing rows. The default is 'yes'.
12780 /// </summary>
12781 public YesNoType IgnoreAddExistingRow
12782 {
12783 get
12784 {
12785 return this.ignoreAddExistingRowField;
12786 }
12787 set
12788 {
12789 this.ignoreAddExistingRowFieldSet = true;
12790 this.ignoreAddExistingRowField = value;
12791 }
12792 }
12793
12794 /// <summary>
12795 /// Ignore errors when adding existing tables. The default is 'yes'.
12796 /// </summary>
12797 public YesNoType IgnoreAddExistingTable
12798 {
12799 get
12800 {
12801 return this.ignoreAddExistingTableField;
12802 }
12803 set
12804 {
12805 this.ignoreAddExistingTableFieldSet = true;
12806 this.ignoreAddExistingTableField = value;
12807 }
12808 }
12809
12810 /// <summary>
12811 /// Ignore errors when deleting missing rows. The default is 'yes'.
12812 /// </summary>
12813 public YesNoType IgnoreDeleteMissingRow
12814 {
12815 get
12816 {
12817 return this.ignoreDeleteMissingRowField;
12818 }
12819 set
12820 {
12821 this.ignoreDeleteMissingRowFieldSet = true;
12822 this.ignoreDeleteMissingRowField = value;
12823 }
12824 }
12825
12826 /// <summary>
12827 /// Ignore errors when deleting missing tables. The default is 'yes'.
12828 /// </summary>
12829 public YesNoType IgnoreDeleteMissingTable
12830 {
12831 get
12832 {
12833 return this.ignoreDeleteMissingTableField;
12834 }
12835 set
12836 {
12837 this.ignoreDeleteMissingTableFieldSet = true;
12838 this.ignoreDeleteMissingTableField = value;
12839 }
12840 }
12841
12842 /// <summary>
12843 /// Ignore errors when updating missing rows. The default is 'yes'.
12844 /// </summary>
12845 public YesNoType IgnoreUpdateMissingRow
12846 {
12847 get
12848 {
12849 return this.ignoreUpdateMissingRowField;
12850 }
12851 set
12852 {
12853 this.ignoreUpdateMissingRowFieldSet = true;
12854 this.ignoreUpdateMissingRowField = value;
12855 }
12856 }
12857
12858 /// <summary>
12859 /// Ignore errors when changing the database code page. The default is 'no'.
12860 /// </summary>
12861 public YesNoType IgnoreChangingCodePage
12862 {
12863 get
12864 {
12865 return this.ignoreChangingCodePageField;
12866 }
12867 set
12868 {
12869 this.ignoreChangingCodePageFieldSet = true;
12870 this.ignoreChangingCodePageField = value;
12871 }
12872 }
12873
12874 public virtual ISchemaElement ParentElement
12875 {
12876 get
12877 {
12878 return this.parentElement;
12879 }
12880 set
12881 {
12882 this.parentElement = value;
12883 }
12884 }
12885
12886 /// <summary>
12887 /// Parses a ProductVersionType from a string.
12888 /// </summary>
12889 public static ProductVersionType ParseProductVersionType(string value)
12890 {
12891 ProductVersionType parsedValue;
12892 Validate.TryParseProductVersionType(value, out parsedValue);
12893 return parsedValue;
12894 }
12895
12896 /// <summary>
12897 /// Tries to parse a ProductVersionType from a string.
12898 /// </summary>
12899 public static bool TryParseProductVersionType(string value, out ProductVersionType parsedValue)
12900 {
12901 parsedValue = ProductVersionType.NotSet;
12902 if (string.IsNullOrEmpty(value))
12903 {
12904 return false;
12905 }
12906 if (("Major" == value))
12907 {
12908 parsedValue = ProductVersionType.Major;
12909 }
12910 else
12911 {
12912 if (("Minor" == value))
12913 {
12914 parsedValue = ProductVersionType.Minor;
12915 }
12916 else
12917 {
12918 if (("Update" == value))
12919 {
12920 parsedValue = ProductVersionType.Update;
12921 }
12922 else
12923 {
12924 parsedValue = ProductVersionType.IllegalValue;
12925 return false;
12926 }
12927 }
12928 }
12929 return true;
12930 }
12931
12932 /// <summary>
12933 /// Parses a ProductVersionOperatorType from a string.
12934 /// </summary>
12935 public static ProductVersionOperatorType ParseProductVersionOperatorType(string value)
12936 {
12937 ProductVersionOperatorType parsedValue;
12938 Validate.TryParseProductVersionOperatorType(value, out parsedValue);
12939 return parsedValue;
12940 }
12941
12942 /// <summary>
12943 /// Tries to parse a ProductVersionOperatorType from a string.
12944 /// </summary>
12945 public static bool TryParseProductVersionOperatorType(string value, out ProductVersionOperatorType parsedValue)
12946 {
12947 parsedValue = ProductVersionOperatorType.NotSet;
12948 if (string.IsNullOrEmpty(value))
12949 {
12950 return false;
12951 }
12952 if (("Lesser" == value))
12953 {
12954 parsedValue = ProductVersionOperatorType.Lesser;
12955 }
12956 else
12957 {
12958 if (("LesserOrEqual" == value))
12959 {
12960 parsedValue = ProductVersionOperatorType.LesserOrEqual;
12961 }
12962 else
12963 {
12964 if (("Equal" == value))
12965 {
12966 parsedValue = ProductVersionOperatorType.Equal;
12967 }
12968 else
12969 {
12970 if (("GreaterOrEqual" == value))
12971 {
12972 parsedValue = ProductVersionOperatorType.GreaterOrEqual;
12973 }
12974 else
12975 {
12976 if (("Greater" == value))
12977 {
12978 parsedValue = ProductVersionOperatorType.Greater;
12979 }
12980 else
12981 {
12982 parsedValue = ProductVersionOperatorType.IllegalValue;
12983 return false;
12984 }
12985 }
12986 }
12987 }
12988 }
12989 return true;
12990 }
12991
12992 /// <summary>
12993 /// Processes this element and all child elements into an XmlWriter.
12994 /// </summary>
12995 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
12996 public virtual void OutputXml(XmlWriter writer)
12997 {
12998 if ((null == writer))
12999 {
13000 throw new ArgumentNullException("writer");
13001 }
13002 writer.WriteStartElement("Validate", "http://wixtoolset.org/schemas/v4/wxs");
13003 if (this.productIdFieldSet)
13004 {
13005 if ((this.productIdField == YesNoType.no))
13006 {
13007 writer.WriteAttributeString("ProductId", "no");
13008 }
13009 if ((this.productIdField == YesNoType.yes))
13010 {
13011 writer.WriteAttributeString("ProductId", "yes");
13012 }
13013 }
13014 if (this.productLanguageFieldSet)
13015 {
13016 if ((this.productLanguageField == YesNoType.no))
13017 {
13018 writer.WriteAttributeString("ProductLanguage", "no");
13019 }
13020 if ((this.productLanguageField == YesNoType.yes))
13021 {
13022 writer.WriteAttributeString("ProductLanguage", "yes");
13023 }
13024 }
13025 if (this.productVersionFieldSet)
13026 {
13027 if ((this.productVersionField == ProductVersionType.Major))
13028 {
13029 writer.WriteAttributeString("ProductVersion", "Major");
13030 }
13031 if ((this.productVersionField == ProductVersionType.Minor))
13032 {
13033 writer.WriteAttributeString("ProductVersion", "Minor");
13034 }
13035 if ((this.productVersionField == ProductVersionType.Update))
13036 {
13037 writer.WriteAttributeString("ProductVersion", "Update");
13038 }
13039 }
13040 if (this.productVersionOperatorFieldSet)
13041 {
13042 if ((this.productVersionOperatorField == ProductVersionOperatorType.Lesser))
13043 {
13044 writer.WriteAttributeString("ProductVersionOperator", "Lesser");
13045 }
13046 if ((this.productVersionOperatorField == ProductVersionOperatorType.LesserOrEqual))
13047 {
13048 writer.WriteAttributeString("ProductVersionOperator", "LesserOrEqual");
13049 }
13050 if ((this.productVersionOperatorField == ProductVersionOperatorType.Equal))
13051 {
13052 writer.WriteAttributeString("ProductVersionOperator", "Equal");
13053 }
13054 if ((this.productVersionOperatorField == ProductVersionOperatorType.GreaterOrEqual))
13055 {
13056 writer.WriteAttributeString("ProductVersionOperator", "GreaterOrEqual");
13057 }
13058 if ((this.productVersionOperatorField == ProductVersionOperatorType.Greater))
13059 {
13060 writer.WriteAttributeString("ProductVersionOperator", "Greater");
13061 }
13062 }
13063 if (this.upgradeCodeFieldSet)
13064 {
13065 if ((this.upgradeCodeField == YesNoType.no))
13066 {
13067 writer.WriteAttributeString("UpgradeCode", "no");
13068 }
13069 if ((this.upgradeCodeField == YesNoType.yes))
13070 {
13071 writer.WriteAttributeString("UpgradeCode", "yes");
13072 }
13073 }
13074 if (this.ignoreAddExistingRowFieldSet)
13075 {
13076 if ((this.ignoreAddExistingRowField == YesNoType.no))
13077 {
13078 writer.WriteAttributeString("IgnoreAddExistingRow", "no");
13079 }
13080 if ((this.ignoreAddExistingRowField == YesNoType.yes))
13081 {
13082 writer.WriteAttributeString("IgnoreAddExistingRow", "yes");
13083 }
13084 }
13085 if (this.ignoreAddExistingTableFieldSet)
13086 {
13087 if ((this.ignoreAddExistingTableField == YesNoType.no))
13088 {
13089 writer.WriteAttributeString("IgnoreAddExistingTable", "no");
13090 }
13091 if ((this.ignoreAddExistingTableField == YesNoType.yes))
13092 {
13093 writer.WriteAttributeString("IgnoreAddExistingTable", "yes");
13094 }
13095 }
13096 if (this.ignoreDeleteMissingRowFieldSet)
13097 {
13098 if ((this.ignoreDeleteMissingRowField == YesNoType.no))
13099 {
13100 writer.WriteAttributeString("IgnoreDeleteMissingRow", "no");
13101 }
13102 if ((this.ignoreDeleteMissingRowField == YesNoType.yes))
13103 {
13104 writer.WriteAttributeString("IgnoreDeleteMissingRow", "yes");
13105 }
13106 }
13107 if (this.ignoreDeleteMissingTableFieldSet)
13108 {
13109 if ((this.ignoreDeleteMissingTableField == YesNoType.no))
13110 {
13111 writer.WriteAttributeString("IgnoreDeleteMissingTable", "no");
13112 }
13113 if ((this.ignoreDeleteMissingTableField == YesNoType.yes))
13114 {
13115 writer.WriteAttributeString("IgnoreDeleteMissingTable", "yes");
13116 }
13117 }
13118 if (this.ignoreUpdateMissingRowFieldSet)
13119 {
13120 if ((this.ignoreUpdateMissingRowField == YesNoType.no))
13121 {
13122 writer.WriteAttributeString("IgnoreUpdateMissingRow", "no");
13123 }
13124 if ((this.ignoreUpdateMissingRowField == YesNoType.yes))
13125 {
13126 writer.WriteAttributeString("IgnoreUpdateMissingRow", "yes");
13127 }
13128 }
13129 if (this.ignoreChangingCodePageFieldSet)
13130 {
13131 if ((this.ignoreChangingCodePageField == YesNoType.no))
13132 {
13133 writer.WriteAttributeString("IgnoreChangingCodePage", "no");
13134 }
13135 if ((this.ignoreChangingCodePageField == YesNoType.yes))
13136 {
13137 writer.WriteAttributeString("IgnoreChangingCodePage", "yes");
13138 }
13139 }
13140 writer.WriteEndElement();
13141 }
13142
13143 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
13144 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
13145 void ISetAttributes.SetAttribute(string name, string value)
13146 {
13147 if (String.IsNullOrEmpty(name))
13148 {
13149 throw new ArgumentNullException("name");
13150 }
13151 if (("ProductId" == name))
13152 {
13153 this.productIdField = Enums.ParseYesNoType(value);
13154 this.productIdFieldSet = true;
13155 }
13156 if (("ProductLanguage" == name))
13157 {
13158 this.productLanguageField = Enums.ParseYesNoType(value);
13159 this.productLanguageFieldSet = true;
13160 }
13161 if (("ProductVersion" == name))
13162 {
13163 this.productVersionField = Validate.ParseProductVersionType(value);
13164 this.productVersionFieldSet = true;
13165 }
13166 if (("ProductVersionOperator" == name))
13167 {
13168 this.productVersionOperatorField = Validate.ParseProductVersionOperatorType(value);
13169 this.productVersionOperatorFieldSet = true;
13170 }
13171 if (("UpgradeCode" == name))
13172 {
13173 this.upgradeCodeField = Enums.ParseYesNoType(value);
13174 this.upgradeCodeFieldSet = true;
13175 }
13176 if (("IgnoreAddExistingRow" == name))
13177 {
13178 this.ignoreAddExistingRowField = Enums.ParseYesNoType(value);
13179 this.ignoreAddExistingRowFieldSet = true;
13180 }
13181 if (("IgnoreAddExistingTable" == name))
13182 {
13183 this.ignoreAddExistingTableField = Enums.ParseYesNoType(value);
13184 this.ignoreAddExistingTableFieldSet = true;
13185 }
13186 if (("IgnoreDeleteMissingRow" == name))
13187 {
13188 this.ignoreDeleteMissingRowField = Enums.ParseYesNoType(value);
13189 this.ignoreDeleteMissingRowFieldSet = true;
13190 }
13191 if (("IgnoreDeleteMissingTable" == name))
13192 {
13193 this.ignoreDeleteMissingTableField = Enums.ParseYesNoType(value);
13194 this.ignoreDeleteMissingTableFieldSet = true;
13195 }
13196 if (("IgnoreUpdateMissingRow" == name))
13197 {
13198 this.ignoreUpdateMissingRowField = Enums.ParseYesNoType(value);
13199 this.ignoreUpdateMissingRowFieldSet = true;
13200 }
13201 if (("IgnoreChangingCodePage" == name))
13202 {
13203 this.ignoreChangingCodePageField = Enums.ParseYesNoType(value);
13204 this.ignoreChangingCodePageFieldSet = true;
13205 }
13206 }
13207
13208 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
13209 public enum ProductVersionType
13210 {
13211
13212 IllegalValue = int.MaxValue,
13213
13214 NotSet = -1,
13215
13216 /// <summary>
13217 /// Checks the major version.
13218 /// </summary>
13219 Major,
13220
13221 /// <summary>
13222 /// Checks the major and minor versions.
13223 /// </summary>
13224 Minor,
13225
13226 /// <summary>
13227 /// Checks the major, minor, and update versions.
13228 /// </summary>
13229 Update,
13230 }
13231
13232 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
13233 public enum ProductVersionOperatorType
13234 {
13235
13236 IllegalValue = int.MaxValue,
13237
13238 NotSet = -1,
13239
13240 /// <summary>
13241 /// Installed ProductVersion &lt; target ProductVersion.
13242 /// </summary>
13243 Lesser,
13244
13245 /// <summary>
13246 /// Installed ProductVersion &lt;= target ProductVersion.
13247 /// </summary>
13248 LesserOrEqual,
13249
13250 /// <summary>
13251 /// Installed ProductVersion = target ProductVersion.
13252 /// </summary>
13253 Equal,
13254
13255 /// <summary>
13256 /// Installed ProductVersion &gt;= target ProductVersion.
13257 /// </summary>
13258 GreaterOrEqual,
13259
13260 /// <summary>
13261 /// Installed ProductVersion &gt; target ProductVersion.
13262 /// </summary>
13263 Greater,
13264 }
13265 }
13266
13267 /// <summary>
13268 /// Indicates whether custom actions can be skipped when applying the patch.
13269 /// </summary>
13270 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
13271 public class OptimizeCustomActions : ISchemaElement, ISetAttributes
13272 {
13273
13274 private YesNoType skipAssignmentField;
13275
13276 private bool skipAssignmentFieldSet;
13277
13278 private YesNoType skipImmediateField;
13279
13280 private bool skipImmediateFieldSet;
13281
13282 private YesNoType skipDeferredField;
13283
13284 private bool skipDeferredFieldSet;
13285
13286 private ISchemaElement parentElement;
13287
13288 /// <summary>
13289 /// Skip property (type 51) and directory (type 35) assignment custom actions.
13290 /// </summary>
13291 public YesNoType SkipAssignment
13292 {
13293 get
13294 {
13295 return this.skipAssignmentField;
13296 }
13297 set
13298 {
13299 this.skipAssignmentFieldSet = true;
13300 this.skipAssignmentField = value;
13301 }
13302 }
13303
13304 /// <summary>
13305 /// Skip immediate custom actions that are not property or directory assignment custom actions.
13306 /// </summary>
13307 public YesNoType SkipImmediate
13308 {
13309 get
13310 {
13311 return this.skipImmediateField;
13312 }
13313 set
13314 {
13315 this.skipImmediateFieldSet = true;
13316 this.skipImmediateField = value;
13317 }
13318 }
13319
13320 /// <summary>
13321 /// Skip custom actions that run within the script.
13322 /// </summary>
13323 public YesNoType SkipDeferred
13324 {
13325 get
13326 {
13327 return this.skipDeferredField;
13328 }
13329 set
13330 {
13331 this.skipDeferredFieldSet = true;
13332 this.skipDeferredField = value;
13333 }
13334 }
13335
13336 public virtual ISchemaElement ParentElement
13337 {
13338 get
13339 {
13340 return this.parentElement;
13341 }
13342 set
13343 {
13344 this.parentElement = value;
13345 }
13346 }
13347
13348 /// <summary>
13349 /// Processes this element and all child elements into an XmlWriter.
13350 /// </summary>
13351 public virtual void OutputXml(XmlWriter writer)
13352 {
13353 if ((null == writer))
13354 {
13355 throw new ArgumentNullException("writer");
13356 }
13357 writer.WriteStartElement("OptimizeCustomActions", "http://wixtoolset.org/schemas/v4/wxs");
13358 if (this.skipAssignmentFieldSet)
13359 {
13360 if ((this.skipAssignmentField == YesNoType.no))
13361 {
13362 writer.WriteAttributeString("SkipAssignment", "no");
13363 }
13364 if ((this.skipAssignmentField == YesNoType.yes))
13365 {
13366 writer.WriteAttributeString("SkipAssignment", "yes");
13367 }
13368 }
13369 if (this.skipImmediateFieldSet)
13370 {
13371 if ((this.skipImmediateField == YesNoType.no))
13372 {
13373 writer.WriteAttributeString("SkipImmediate", "no");
13374 }
13375 if ((this.skipImmediateField == YesNoType.yes))
13376 {
13377 writer.WriteAttributeString("SkipImmediate", "yes");
13378 }
13379 }
13380 if (this.skipDeferredFieldSet)
13381 {
13382 if ((this.skipDeferredField == YesNoType.no))
13383 {
13384 writer.WriteAttributeString("SkipDeferred", "no");
13385 }
13386 if ((this.skipDeferredField == YesNoType.yes))
13387 {
13388 writer.WriteAttributeString("SkipDeferred", "yes");
13389 }
13390 }
13391 writer.WriteEndElement();
13392 }
13393
13394 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
13395 void ISetAttributes.SetAttribute(string name, string value)
13396 {
13397 if (String.IsNullOrEmpty(name))
13398 {
13399 throw new ArgumentNullException("name");
13400 }
13401 if (("SkipAssignment" == name))
13402 {
13403 this.skipAssignmentField = Enums.ParseYesNoType(value);
13404 this.skipAssignmentFieldSet = true;
13405 }
13406 if (("SkipImmediate" == name))
13407 {
13408 this.skipImmediateField = Enums.ParseYesNoType(value);
13409 this.skipImmediateFieldSet = true;
13410 }
13411 if (("SkipDeferred" == name))
13412 {
13413 this.skipDeferredField = Enums.ParseYesNoType(value);
13414 this.skipDeferredFieldSet = true;
13415 }
13416 }
13417 }
13418
13419 /// <summary>
13420 /// Identifies a set of product versions.
13421 /// </summary>
13422 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
13423 public class PatchBaseline : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
13424 {
13425
13426 private ElementCollection children;
13427
13428 private string idField;
13429
13430 private bool idFieldSet;
13431
13432 private ISchemaElement parentElement;
13433
13434 public PatchBaseline()
13435 {
13436 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
13437 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Validate)));
13438 this.children = childCollection0;
13439 }
13440
13441 public virtual IEnumerable Children
13442 {
13443 get
13444 {
13445 return this.children;
13446 }
13447 }
13448
13449 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
13450 public virtual IEnumerable this[System.Type childType]
13451 {
13452 get
13453 {
13454 return this.children.Filter(childType);
13455 }
13456 }
13457
13458 /// <summary>
13459 /// Identifier for a set of product versions.
13460 /// </summary>
13461 public string Id
13462 {
13463 get
13464 {
13465 return this.idField;
13466 }
13467 set
13468 {
13469 this.idFieldSet = true;
13470 this.idField = value;
13471 }
13472 }
13473
13474 public virtual ISchemaElement ParentElement
13475 {
13476 get
13477 {
13478 return this.parentElement;
13479 }
13480 set
13481 {
13482 this.parentElement = value;
13483 }
13484 }
13485
13486 public virtual void AddChild(ISchemaElement child)
13487 {
13488 if ((null == child))
13489 {
13490 throw new ArgumentNullException("child");
13491 }
13492 this.children.AddElement(child);
13493 child.ParentElement = this;
13494 }
13495
13496 public virtual void RemoveChild(ISchemaElement child)
13497 {
13498 if ((null == child))
13499 {
13500 throw new ArgumentNullException("child");
13501 }
13502 this.children.RemoveElement(child);
13503 child.ParentElement = null;
13504 }
13505
13506 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
13507 ISchemaElement ICreateChildren.CreateChild(string childName)
13508 {
13509 if (String.IsNullOrEmpty(childName))
13510 {
13511 throw new ArgumentNullException("childName");
13512 }
13513 ISchemaElement childValue = null;
13514 if (("Validate" == childName))
13515 {
13516 childValue = new Validate();
13517 }
13518 if ((null == childValue))
13519 {
13520 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
13521 }
13522 return childValue;
13523 }
13524
13525 /// <summary>
13526 /// Processes this element and all child elements into an XmlWriter.
13527 /// </summary>
13528 public virtual void OutputXml(XmlWriter writer)
13529 {
13530 if ((null == writer))
13531 {
13532 throw new ArgumentNullException("writer");
13533 }
13534 writer.WriteStartElement("PatchBaseline", "http://wixtoolset.org/schemas/v4/wxs");
13535 if (this.idFieldSet)
13536 {
13537 writer.WriteAttributeString("Id", this.idField);
13538 }
13539 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
13540 {
13541 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
13542 childElement.OutputXml(writer);
13543 }
13544 writer.WriteEndElement();
13545 }
13546
13547 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
13548 void ISetAttributes.SetAttribute(string name, string value)
13549 {
13550 if (String.IsNullOrEmpty(name))
13551 {
13552 throw new ArgumentNullException("name");
13553 }
13554 if (("Id" == name))
13555 {
13556 this.idField = value;
13557 this.idFieldSet = true;
13558 }
13559 }
13560 }
13561
13562 /// <summary>
13563 /// Collection of items that should be kept from the differences between two products.
13564 /// </summary>
13565 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
13566 public class PatchFamily : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
13567 {
13568
13569 private ElementCollection children;
13570
13571 private string idField;
13572
13573 private bool idFieldSet;
13574
13575 private string productCodeField;
13576
13577 private bool productCodeFieldSet;
13578
13579 private string versionField;
13580
13581 private bool versionFieldSet;
13582
13583 private YesNoType supersedeField;
13584
13585 private bool supersedeFieldSet;
13586
13587 private ISchemaElement parentElement;
13588
13589 public PatchFamily()
13590 {
13591 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
13592 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice);
13593 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(All)));
13594 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(BinaryRef)));
13595 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef)));
13596 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomActionRef)));
13597 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(DigitalCertificateRef)));
13598 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(DirectoryRef)));
13599 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef)));
13600 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(IconRef)));
13601 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PropertyRef)));
13602 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UIRef)));
13603 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
13604 childCollection0.AddCollection(childCollection1);
13605 this.children = childCollection0;
13606 }
13607
13608 public virtual IEnumerable Children
13609 {
13610 get
13611 {
13612 return this.children;
13613 }
13614 }
13615
13616 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
13617 public virtual IEnumerable this[System.Type childType]
13618 {
13619 get
13620 {
13621 return this.children.Filter(childType);
13622 }
13623 }
13624
13625 /// <summary>
13626 /// Identifier which indicates a sequence family to which this patch belongs.
13627 /// </summary>
13628 public string Id
13629 {
13630 get
13631 {
13632 return this.idField;
13633 }
13634 set
13635 {
13636 this.idFieldSet = true;
13637 this.idField = value;
13638 }
13639 }
13640
13641 /// <summary>
13642 /// Specifies the ProductCode of the product that this family applies to.
13643 /// </summary>
13644 public string ProductCode
13645 {
13646 get
13647 {
13648 return this.productCodeField;
13649 }
13650 set
13651 {
13652 this.productCodeFieldSet = true;
13653 this.productCodeField = value;
13654 }
13655 }
13656
13657 /// <summary>
13658 /// Used to populate the sequence column of the MsiPatchSequence table in the final MSP file. Specified in x.x.x.x format. See documentation for Sequence column of MsiPatchSequence table in MSI SDK.
13659 /// </summary>
13660 public string Version
13661 {
13662 get
13663 {
13664 return this.versionField;
13665 }
13666 set
13667 {
13668 this.versionFieldSet = true;
13669 this.versionField = value;
13670 }
13671 }
13672
13673 /// <summary>
13674 /// Set this value to 'yes' to indicate that this patch will supersede all previous patches in this patch family.
13675 /// The default value is 'no'.
13676 /// </summary>
13677 public YesNoType Supersede
13678 {
13679 get
13680 {
13681 return this.supersedeField;
13682 }
13683 set
13684 {
13685 this.supersedeFieldSet = true;
13686 this.supersedeField = value;
13687 }
13688 }
13689
13690 public virtual ISchemaElement ParentElement
13691 {
13692 get
13693 {
13694 return this.parentElement;
13695 }
13696 set
13697 {
13698 this.parentElement = value;
13699 }
13700 }
13701
13702 public virtual void AddChild(ISchemaElement child)
13703 {
13704 if ((null == child))
13705 {
13706 throw new ArgumentNullException("child");
13707 }
13708 this.children.AddElement(child);
13709 child.ParentElement = this;
13710 }
13711
13712 public virtual void RemoveChild(ISchemaElement child)
13713 {
13714 if ((null == child))
13715 {
13716 throw new ArgumentNullException("child");
13717 }
13718 this.children.RemoveElement(child);
13719 child.ParentElement = null;
13720 }
13721
13722 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
13723 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
13724 ISchemaElement ICreateChildren.CreateChild(string childName)
13725 {
13726 if (String.IsNullOrEmpty(childName))
13727 {
13728 throw new ArgumentNullException("childName");
13729 }
13730 ISchemaElement childValue = null;
13731 if (("All" == childName))
13732 {
13733 childValue = new All();
13734 }
13735 if (("BinaryRef" == childName))
13736 {
13737 childValue = new BinaryRef();
13738 }
13739 if (("ComponentRef" == childName))
13740 {
13741 childValue = new ComponentRef();
13742 }
13743 if (("CustomActionRef" == childName))
13744 {
13745 childValue = new CustomActionRef();
13746 }
13747 if (("DigitalCertificateRef" == childName))
13748 {
13749 childValue = new DigitalCertificateRef();
13750 }
13751 if (("DirectoryRef" == childName))
13752 {
13753 childValue = new DirectoryRef();
13754 }
13755 if (("FeatureRef" == childName))
13756 {
13757 childValue = new FeatureRef();
13758 }
13759 if (("IconRef" == childName))
13760 {
13761 childValue = new IconRef();
13762 }
13763 if (("PropertyRef" == childName))
13764 {
13765 childValue = new PropertyRef();
13766 }
13767 if (("UIRef" == childName))
13768 {
13769 childValue = new UIRef();
13770 }
13771 if ((null == childValue))
13772 {
13773 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
13774 }
13775 return childValue;
13776 }
13777
13778 /// <summary>
13779 /// Processes this element and all child elements into an XmlWriter.
13780 /// </summary>
13781 public virtual void OutputXml(XmlWriter writer)
13782 {
13783 if ((null == writer))
13784 {
13785 throw new ArgumentNullException("writer");
13786 }
13787 writer.WriteStartElement("PatchFamily", "http://wixtoolset.org/schemas/v4/wxs");
13788 if (this.idFieldSet)
13789 {
13790 writer.WriteAttributeString("Id", this.idField);
13791 }
13792 if (this.productCodeFieldSet)
13793 {
13794 writer.WriteAttributeString("ProductCode", this.productCodeField);
13795 }
13796 if (this.versionFieldSet)
13797 {
13798 writer.WriteAttributeString("Version", this.versionField);
13799 }
13800 if (this.supersedeFieldSet)
13801 {
13802 if ((this.supersedeField == YesNoType.no))
13803 {
13804 writer.WriteAttributeString("Supersede", "no");
13805 }
13806 if ((this.supersedeField == YesNoType.yes))
13807 {
13808 writer.WriteAttributeString("Supersede", "yes");
13809 }
13810 }
13811 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
13812 {
13813 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
13814 childElement.OutputXml(writer);
13815 }
13816 writer.WriteEndElement();
13817 }
13818
13819 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
13820 void ISetAttributes.SetAttribute(string name, string value)
13821 {
13822 if (String.IsNullOrEmpty(name))
13823 {
13824 throw new ArgumentNullException("name");
13825 }
13826 if (("Id" == name))
13827 {
13828 this.idField = value;
13829 this.idFieldSet = true;
13830 }
13831 if (("ProductCode" == name))
13832 {
13833 this.productCodeField = value;
13834 this.productCodeFieldSet = true;
13835 }
13836 if (("Version" == name))
13837 {
13838 this.versionField = value;
13839 this.versionFieldSet = true;
13840 }
13841 if (("Supersede" == name))
13842 {
13843 this.supersedeField = Enums.ParseYesNoType(value);
13844 this.supersedeFieldSet = true;
13845 }
13846 }
13847 }
13848
13849 /// <summary>
13850 /// Groups together multiple patch families to be used in other locations.
13851 /// </summary>
13852 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
13853 public class PatchFamilyGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
13854 {
13855
13856 private ElementCollection children;
13857
13858 private string idField;
13859
13860 private bool idFieldSet;
13861
13862 private ISchemaElement parentElement;
13863
13864 public PatchFamilyGroup()
13865 {
13866 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
13867 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamily)));
13868 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyRef)));
13869 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyGroupRef)));
13870 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
13871 this.children = childCollection0;
13872 }
13873
13874 public virtual IEnumerable Children
13875 {
13876 get
13877 {
13878 return this.children;
13879 }
13880 }
13881
13882 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
13883 public virtual IEnumerable this[System.Type childType]
13884 {
13885 get
13886 {
13887 return this.children.Filter(childType);
13888 }
13889 }
13890
13891 /// <summary>
13892 /// Identifier for the PatchFamilyGroup.
13893 /// </summary>
13894 public string Id
13895 {
13896 get
13897 {
13898 return this.idField;
13899 }
13900 set
13901 {
13902 this.idFieldSet = true;
13903 this.idField = value;
13904 }
13905 }
13906
13907 public virtual ISchemaElement ParentElement
13908 {
13909 get
13910 {
13911 return this.parentElement;
13912 }
13913 set
13914 {
13915 this.parentElement = value;
13916 }
13917 }
13918
13919 public virtual void AddChild(ISchemaElement child)
13920 {
13921 if ((null == child))
13922 {
13923 throw new ArgumentNullException("child");
13924 }
13925 this.children.AddElement(child);
13926 child.ParentElement = this;
13927 }
13928
13929 public virtual void RemoveChild(ISchemaElement child)
13930 {
13931 if ((null == child))
13932 {
13933 throw new ArgumentNullException("child");
13934 }
13935 this.children.RemoveElement(child);
13936 child.ParentElement = null;
13937 }
13938
13939 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
13940 ISchemaElement ICreateChildren.CreateChild(string childName)
13941 {
13942 if (String.IsNullOrEmpty(childName))
13943 {
13944 throw new ArgumentNullException("childName");
13945 }
13946 ISchemaElement childValue = null;
13947 if (("PatchFamily" == childName))
13948 {
13949 childValue = new PatchFamily();
13950 }
13951 if (("PatchFamilyRef" == childName))
13952 {
13953 childValue = new PatchFamilyRef();
13954 }
13955 if (("PatchFamilyGroupRef" == childName))
13956 {
13957 childValue = new PatchFamilyGroupRef();
13958 }
13959 if ((null == childValue))
13960 {
13961 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
13962 }
13963 return childValue;
13964 }
13965
13966 /// <summary>
13967 /// Processes this element and all child elements into an XmlWriter.
13968 /// </summary>
13969 public virtual void OutputXml(XmlWriter writer)
13970 {
13971 if ((null == writer))
13972 {
13973 throw new ArgumentNullException("writer");
13974 }
13975 writer.WriteStartElement("PatchFamilyGroup", "http://wixtoolset.org/schemas/v4/wxs");
13976 if (this.idFieldSet)
13977 {
13978 writer.WriteAttributeString("Id", this.idField);
13979 }
13980 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
13981 {
13982 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
13983 childElement.OutputXml(writer);
13984 }
13985 writer.WriteEndElement();
13986 }
13987
13988 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
13989 void ISetAttributes.SetAttribute(string name, string value)
13990 {
13991 if (String.IsNullOrEmpty(name))
13992 {
13993 throw new ArgumentNullException("name");
13994 }
13995 if (("Id" == name))
13996 {
13997 this.idField = value;
13998 this.idFieldSet = true;
13999 }
14000 }
14001 }
14002
14003 /// <summary>
14004 /// Create a reference to a PatchFamilyGroup in another Fragment.
14005 /// </summary>
14006 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
14007 public class PatchFamilyGroupRef : ISchemaElement, ISetAttributes
14008 {
14009
14010 private string idField;
14011
14012 private bool idFieldSet;
14013
14014 private ISchemaElement parentElement;
14015
14016 /// <summary>
14017 /// The identifier of the PatchFamilyGroup to reference.
14018 /// </summary>
14019 public string Id
14020 {
14021 get
14022 {
14023 return this.idField;
14024 }
14025 set
14026 {
14027 this.idFieldSet = true;
14028 this.idField = value;
14029 }
14030 }
14031
14032 public virtual ISchemaElement ParentElement
14033 {
14034 get
14035 {
14036 return this.parentElement;
14037 }
14038 set
14039 {
14040 this.parentElement = value;
14041 }
14042 }
14043
14044 /// <summary>
14045 /// Processes this element and all child elements into an XmlWriter.
14046 /// </summary>
14047 public virtual void OutputXml(XmlWriter writer)
14048 {
14049 if ((null == writer))
14050 {
14051 throw new ArgumentNullException("writer");
14052 }
14053 writer.WriteStartElement("PatchFamilyGroupRef", "http://wixtoolset.org/schemas/v4/wxs");
14054 if (this.idFieldSet)
14055 {
14056 writer.WriteAttributeString("Id", this.idField);
14057 }
14058 writer.WriteEndElement();
14059 }
14060
14061 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
14062 void ISetAttributes.SetAttribute(string name, string value)
14063 {
14064 if (String.IsNullOrEmpty(name))
14065 {
14066 throw new ArgumentNullException("name");
14067 }
14068 if (("Id" == name))
14069 {
14070 this.idField = value;
14071 this.idFieldSet = true;
14072 }
14073 }
14074 }
14075
14076 /// <summary>
14077 /// The PatchCreation element is analogous to the main function in a C program. When linking, only one PatchCreation section
14078 /// can be given to the linker to produce a successful result. Using this element creates a pcp file.
14079 /// </summary>
14080 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
14081 public class PatchCreation : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
14082 {
14083
14084 private ElementCollection children;
14085
14086 private string idField;
14087
14088 private bool idFieldSet;
14089
14090 private YesNoType allowMajorVersionMismatchesField;
14091
14092 private bool allowMajorVersionMismatchesFieldSet;
14093
14094 private YesNoType allowProductCodeMismatchesField;
14095
14096 private bool allowProductCodeMismatchesFieldSet;
14097
14098 private YesNoType cleanWorkingFolderField;
14099
14100 private bool cleanWorkingFolderFieldSet;
14101
14102 private string codepageField;
14103
14104 private bool codepageFieldSet;
14105
14106 private string outputPathField;
14107
14108 private bool outputPathFieldSet;
14109
14110 private string sourceListField;
14111
14112 private bool sourceListFieldSet;
14113
14114 private int symbolFlagsField;
14115
14116 private bool symbolFlagsFieldSet;
14117
14118 private YesNoType wholeFilesOnlyField;
14119
14120 private bool wholeFilesOnlyFieldSet;
14121
14122 private ISchemaElement parentElement;
14123
14124 public PatchCreation()
14125 {
14126 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
14127 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(PatchInformation)));
14128 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(PatchMetadata)));
14129 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Family)));
14130 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice);
14131 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchProperty)));
14132 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchSequence)));
14133 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ReplacePatch)));
14134 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(TargetProductCode)));
14135 childCollection0.AddCollection(childCollection1);
14136 this.children = childCollection0;
14137 }
14138
14139 public virtual IEnumerable Children
14140 {
14141 get
14142 {
14143 return this.children;
14144 }
14145 }
14146
14147 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
14148 public virtual IEnumerable this[System.Type childType]
14149 {
14150 get
14151 {
14152 return this.children.Filter(childType);
14153 }
14154 }
14155
14156 /// <summary>
14157 /// PatchCreation identifier; this is the primary key for identifying patches.
14158 /// </summary>
14159 public string Id
14160 {
14161 get
14162 {
14163 return this.idField;
14164 }
14165 set
14166 {
14167 this.idFieldSet = true;
14168 this.idField = value;
14169 }
14170 }
14171
14172 /// <summary>
14173 /// Use this to set whether the major versions between the upgrade and target images match. See
14174 /// </summary>
14175 public YesNoType AllowMajorVersionMismatches
14176 {
14177 get
14178 {
14179 return this.allowMajorVersionMismatchesField;
14180 }
14181 set
14182 {
14183 this.allowMajorVersionMismatchesFieldSet = true;
14184 this.allowMajorVersionMismatchesField = value;
14185 }
14186 }
14187
14188 /// <summary>
14189 /// Use this to set whether the product code between the upgrade and target images match. See
14190 /// </summary>
14191 public YesNoType AllowProductCodeMismatches
14192 {
14193 get
14194 {
14195 return this.allowProductCodeMismatchesField;
14196 }
14197 set
14198 {
14199 this.allowProductCodeMismatchesFieldSet = true;
14200 this.allowProductCodeMismatchesField = value;
14201 }
14202 }
14203
14204 /// <summary>
14205 /// Use this to set whether Patchwiz should clean the temp folder when finished. See
14206 /// </summary>
14207 public YesNoType CleanWorkingFolder
14208 {
14209 get
14210 {
14211 return this.cleanWorkingFolderField;
14212 }
14213 set
14214 {
14215 this.cleanWorkingFolderFieldSet = true;
14216 this.cleanWorkingFolderField = value;
14217 }
14218 }
14219
14220 /// <summary>
14221 /// The code page integer value or web name for the resulting PCP. See remarks for more information.
14222 /// </summary>
14223 public string Codepage
14224 {
14225 get
14226 {
14227 return this.codepageField;
14228 }
14229 set
14230 {
14231 this.codepageFieldSet = true;
14232 this.codepageField = value;
14233 }
14234 }
14235
14236 /// <summary>
14237 /// The full path, including file name, of the patch package file that is to be generated. See
14238 /// </summary>
14239 public string OutputPath
14240 {
14241 get
14242 {
14243 return this.outputPathField;
14244 }
14245 set
14246 {
14247 this.outputPathFieldSet = true;
14248 this.outputPathField = value;
14249 }
14250 }
14251
14252 /// <summary>
14253 /// Used to locate the .msp file for the patch if the cached copy is unavailable. See
14254 /// </summary>
14255 public string SourceList
14256 {
14257 get
14258 {
14259 return this.sourceListField;
14260 }
14261 set
14262 {
14263 this.sourceListFieldSet = true;
14264 this.sourceListField = value;
14265 }
14266 }
14267
14268 /// <summary>
14269 /// An 8-digit hex integer representing the combination of patch symbol usage flags to use when creating a binary file patch. See
14270 /// </summary>
14271 public int SymbolFlags
14272 {
14273 get
14274 {
14275 return this.symbolFlagsField;
14276 }
14277 set
14278 {
14279 this.symbolFlagsFieldSet = true;
14280 this.symbolFlagsField = value;
14281 }
14282 }
14283
14284 /// <summary>
14285 /// Use this to set whether changing files should be included in their entirety. See
14286 /// </summary>
14287 public YesNoType WholeFilesOnly
14288 {
14289 get
14290 {
14291 return this.wholeFilesOnlyField;
14292 }
14293 set
14294 {
14295 this.wholeFilesOnlyFieldSet = true;
14296 this.wholeFilesOnlyField = value;
14297 }
14298 }
14299
14300 public virtual ISchemaElement ParentElement
14301 {
14302 get
14303 {
14304 return this.parentElement;
14305 }
14306 set
14307 {
14308 this.parentElement = value;
14309 }
14310 }
14311
14312 public virtual void AddChild(ISchemaElement child)
14313 {
14314 if ((null == child))
14315 {
14316 throw new ArgumentNullException("child");
14317 }
14318 this.children.AddElement(child);
14319 child.ParentElement = this;
14320 }
14321
14322 public virtual void RemoveChild(ISchemaElement child)
14323 {
14324 if ((null == child))
14325 {
14326 throw new ArgumentNullException("child");
14327 }
14328 this.children.RemoveElement(child);
14329 child.ParentElement = null;
14330 }
14331
14332 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
14333 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
14334 ISchemaElement ICreateChildren.CreateChild(string childName)
14335 {
14336 if (String.IsNullOrEmpty(childName))
14337 {
14338 throw new ArgumentNullException("childName");
14339 }
14340 ISchemaElement childValue = null;
14341 if (("PatchInformation" == childName))
14342 {
14343 childValue = new PatchInformation();
14344 }
14345 if (("PatchMetadata" == childName))
14346 {
14347 childValue = new PatchMetadata();
14348 }
14349 if (("Family" == childName))
14350 {
14351 childValue = new Family();
14352 }
14353 if (("PatchProperty" == childName))
14354 {
14355 childValue = new PatchProperty();
14356 }
14357 if (("PatchSequence" == childName))
14358 {
14359 childValue = new PatchSequence();
14360 }
14361 if (("ReplacePatch" == childName))
14362 {
14363 childValue = new ReplacePatch();
14364 }
14365 if (("TargetProductCode" == childName))
14366 {
14367 childValue = new TargetProductCode();
14368 }
14369 if ((null == childValue))
14370 {
14371 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
14372 }
14373 return childValue;
14374 }
14375
14376 /// <summary>
14377 /// Processes this element and all child elements into an XmlWriter.
14378 /// </summary>
14379 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
14380 public virtual void OutputXml(XmlWriter writer)
14381 {
14382 if ((null == writer))
14383 {
14384 throw new ArgumentNullException("writer");
14385 }
14386 writer.WriteStartElement("PatchCreation", "http://wixtoolset.org/schemas/v4/wxs");
14387 if (this.idFieldSet)
14388 {
14389 writer.WriteAttributeString("Id", this.idField);
14390 }
14391 if (this.allowMajorVersionMismatchesFieldSet)
14392 {
14393 if ((this.allowMajorVersionMismatchesField == YesNoType.no))
14394 {
14395 writer.WriteAttributeString("AllowMajorVersionMismatches", "no");
14396 }
14397 if ((this.allowMajorVersionMismatchesField == YesNoType.yes))
14398 {
14399 writer.WriteAttributeString("AllowMajorVersionMismatches", "yes");
14400 }
14401 }
14402 if (this.allowProductCodeMismatchesFieldSet)
14403 {
14404 if ((this.allowProductCodeMismatchesField == YesNoType.no))
14405 {
14406 writer.WriteAttributeString("AllowProductCodeMismatches", "no");
14407 }
14408 if ((this.allowProductCodeMismatchesField == YesNoType.yes))
14409 {
14410 writer.WriteAttributeString("AllowProductCodeMismatches", "yes");
14411 }
14412 }
14413 if (this.cleanWorkingFolderFieldSet)
14414 {
14415 if ((this.cleanWorkingFolderField == YesNoType.no))
14416 {
14417 writer.WriteAttributeString("CleanWorkingFolder", "no");
14418 }
14419 if ((this.cleanWorkingFolderField == YesNoType.yes))
14420 {
14421 writer.WriteAttributeString("CleanWorkingFolder", "yes");
14422 }
14423 }
14424 if (this.codepageFieldSet)
14425 {
14426 writer.WriteAttributeString("Codepage", this.codepageField);
14427 }
14428 if (this.outputPathFieldSet)
14429 {
14430 writer.WriteAttributeString("OutputPath", this.outputPathField);
14431 }
14432 if (this.sourceListFieldSet)
14433 {
14434 writer.WriteAttributeString("SourceList", this.sourceListField);
14435 }
14436 if (this.symbolFlagsFieldSet)
14437 {
14438 writer.WriteAttributeString("SymbolFlags", this.symbolFlagsField.ToString(CultureInfo.InvariantCulture));
14439 }
14440 if (this.wholeFilesOnlyFieldSet)
14441 {
14442 if ((this.wholeFilesOnlyField == YesNoType.no))
14443 {
14444 writer.WriteAttributeString("WholeFilesOnly", "no");
14445 }
14446 if ((this.wholeFilesOnlyField == YesNoType.yes))
14447 {
14448 writer.WriteAttributeString("WholeFilesOnly", "yes");
14449 }
14450 }
14451 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
14452 {
14453 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
14454 childElement.OutputXml(writer);
14455 }
14456 writer.WriteEndElement();
14457 }
14458
14459 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
14460 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
14461 void ISetAttributes.SetAttribute(string name, string value)
14462 {
14463 if (String.IsNullOrEmpty(name))
14464 {
14465 throw new ArgumentNullException("name");
14466 }
14467 if (("Id" == name))
14468 {
14469 this.idField = value;
14470 this.idFieldSet = true;
14471 }
14472 if (("AllowMajorVersionMismatches" == name))
14473 {
14474 this.allowMajorVersionMismatchesField = Enums.ParseYesNoType(value);
14475 this.allowMajorVersionMismatchesFieldSet = true;
14476 }
14477 if (("AllowProductCodeMismatches" == name))
14478 {
14479 this.allowProductCodeMismatchesField = Enums.ParseYesNoType(value);
14480 this.allowProductCodeMismatchesFieldSet = true;
14481 }
14482 if (("CleanWorkingFolder" == name))
14483 {
14484 this.cleanWorkingFolderField = Enums.ParseYesNoType(value);
14485 this.cleanWorkingFolderFieldSet = true;
14486 }
14487 if (("Codepage" == name))
14488 {
14489 this.codepageField = value;
14490 this.codepageFieldSet = true;
14491 }
14492 if (("OutputPath" == name))
14493 {
14494 this.outputPathField = value;
14495 this.outputPathFieldSet = true;
14496 }
14497 if (("SourceList" == name))
14498 {
14499 this.sourceListField = value;
14500 this.sourceListFieldSet = true;
14501 }
14502 if (("SymbolFlags" == name))
14503 {
14504 this.symbolFlagsField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
14505 this.symbolFlagsFieldSet = true;
14506 }
14507 if (("WholeFilesOnly" == name))
14508 {
14509 this.wholeFilesOnlyField = Enums.ParseYesNoType(value);
14510 this.wholeFilesOnlyFieldSet = true;
14511 }
14512 }
14513 }
14514
14515 /// <summary>
14516 /// Properties about the patch to be placed in the Summary Information Stream. These are visible from COM through the IStream interface, and these properties can be seen on the package in Explorer.
14517 /// </summary>
14518 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
14519 public class PatchInformation : ISchemaElement, ISetAttributes
14520 {
14521
14522 private string descriptionField;
14523
14524 private bool descriptionFieldSet;
14525
14526 private string platformsField;
14527
14528 private bool platformsFieldSet;
14529
14530 private string languagesField;
14531
14532 private bool languagesFieldSet;
14533
14534 private string manufacturerField;
14535
14536 private bool manufacturerFieldSet;
14537
14538 private string keywordsField;
14539
14540 private bool keywordsFieldSet;
14541
14542 private string commentsField;
14543
14544 private bool commentsFieldSet;
14545
14546 private YesNoDefaultType readOnlyField;
14547
14548 private bool readOnlyFieldSet;
14549
14550 private string summaryCodepageField;
14551
14552 private bool summaryCodepageFieldSet;
14553
14554 private YesNoType shortNamesField;
14555
14556 private bool shortNamesFieldSet;
14557
14558 private YesNoType compressedField;
14559
14560 private bool compressedFieldSet;
14561
14562 private YesNoType adminImageField;
14563
14564 private bool adminImageFieldSet;
14565
14566 private ISchemaElement parentElement;
14567
14568 /// <summary>
14569 /// A short description of the patch that includes the name of the product.
14570 /// </summary>
14571 public string Description
14572 {
14573 get
14574 {
14575 return this.descriptionField;
14576 }
14577 set
14578 {
14579 this.descriptionFieldSet = true;
14580 this.descriptionField = value;
14581 }
14582 }
14583
14584 public string Platforms
14585 {
14586 get
14587 {
14588 return this.platformsField;
14589 }
14590 set
14591 {
14592 this.platformsFieldSet = true;
14593 this.platformsField = value;
14594 }
14595 }
14596
14597 public string Languages
14598 {
14599 get
14600 {
14601 return this.languagesField;
14602 }
14603 set
14604 {
14605 this.languagesFieldSet = true;
14606 this.languagesField = value;
14607 }
14608 }
14609
14610 /// <summary>
14611 /// The name of the manufacturer of the patch package.
14612 /// </summary>
14613 public string Manufacturer
14614 {
14615 get
14616 {
14617 return this.manufacturerField;
14618 }
14619 set
14620 {
14621 this.manufacturerFieldSet = true;
14622 this.manufacturerField = value;
14623 }
14624 }
14625
14626 /// <summary>
14627 /// A semicolon-delimited list of network or URL locations for alternate sources of the patch. The default is "Installer,Patching,PCP,Database".
14628 /// </summary>
14629 public string Keywords
14630 {
14631 get
14632 {
14633 return this.keywordsField;
14634 }
14635 set
14636 {
14637 this.keywordsFieldSet = true;
14638 this.keywordsField = value;
14639 }
14640 }
14641
14642 /// <summary>
14643 /// General purpose of the patch package. For example, "This patch contains the logic and data required to install
14644 /// </summary>
14645 public string Comments
14646 {
14647 get
14648 {
14649 return this.commentsField;
14650 }
14651 set
14652 {
14653 this.commentsFieldSet = true;
14654 this.commentsField = value;
14655 }
14656 }
14657
14658 /// <summary>
14659 /// The value of this attribute conveys whether the package should be opened as read-only.
14660 /// A database editing tool should not modify a read-only enforced database and should
14661 /// issue a warning at attempts to modify a read-only recommended database.
14662 /// </summary>
14663 public YesNoDefaultType ReadOnly
14664 {
14665 get
14666 {
14667 return this.readOnlyField;
14668 }
14669 set
14670 {
14671 this.readOnlyFieldSet = true;
14672 this.readOnlyField = value;
14673 }
14674 }
14675
14676 /// <summary>
14677 /// The code page integer value or web name for summary info strings only. The default is 1252. See remarks for more information.
14678 /// </summary>
14679 public string SummaryCodepage
14680 {
14681 get
14682 {
14683 return this.summaryCodepageField;
14684 }
14685 set
14686 {
14687 this.summaryCodepageFieldSet = true;
14688 this.summaryCodepageField = value;
14689 }
14690 }
14691
14692 public YesNoType ShortNames
14693 {
14694 get
14695 {
14696 return this.shortNamesField;
14697 }
14698 set
14699 {
14700 this.shortNamesFieldSet = true;
14701 this.shortNamesField = value;
14702 }
14703 }
14704
14705 public YesNoType Compressed
14706 {
14707 get
14708 {
14709 return this.compressedField;
14710 }
14711 set
14712 {
14713 this.compressedFieldSet = true;
14714 this.compressedField = value;
14715 }
14716 }
14717
14718 public YesNoType AdminImage
14719 {
14720 get
14721 {
14722 return this.adminImageField;
14723 }
14724 set
14725 {
14726 this.adminImageFieldSet = true;
14727 this.adminImageField = value;
14728 }
14729 }
14730
14731 public virtual ISchemaElement ParentElement
14732 {
14733 get
14734 {
14735 return this.parentElement;
14736 }
14737 set
14738 {
14739 this.parentElement = value;
14740 }
14741 }
14742
14743 /// <summary>
14744 /// Processes this element and all child elements into an XmlWriter.
14745 /// </summary>
14746 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
14747 public virtual void OutputXml(XmlWriter writer)
14748 {
14749 if ((null == writer))
14750 {
14751 throw new ArgumentNullException("writer");
14752 }
14753 writer.WriteStartElement("PatchInformation", "http://wixtoolset.org/schemas/v4/wxs");
14754 if (this.descriptionFieldSet)
14755 {
14756 writer.WriteAttributeString("Description", this.descriptionField);
14757 }
14758 if (this.platformsFieldSet)
14759 {
14760 writer.WriteAttributeString("Platforms", this.platformsField);
14761 }
14762 if (this.languagesFieldSet)
14763 {
14764 writer.WriteAttributeString("Languages", this.languagesField);
14765 }
14766 if (this.manufacturerFieldSet)
14767 {
14768 writer.WriteAttributeString("Manufacturer", this.manufacturerField);
14769 }
14770 if (this.keywordsFieldSet)
14771 {
14772 writer.WriteAttributeString("Keywords", this.keywordsField);
14773 }
14774 if (this.commentsFieldSet)
14775 {
14776 writer.WriteAttributeString("Comments", this.commentsField);
14777 }
14778 if (this.readOnlyFieldSet)
14779 {
14780 if ((this.readOnlyField == YesNoDefaultType.@default))
14781 {
14782 writer.WriteAttributeString("ReadOnly", "default");
14783 }
14784 if ((this.readOnlyField == YesNoDefaultType.no))
14785 {
14786 writer.WriteAttributeString("ReadOnly", "no");
14787 }
14788 if ((this.readOnlyField == YesNoDefaultType.yes))
14789 {
14790 writer.WriteAttributeString("ReadOnly", "yes");
14791 }
14792 }
14793 if (this.summaryCodepageFieldSet)
14794 {
14795 writer.WriteAttributeString("SummaryCodepage", this.summaryCodepageField);
14796 }
14797 if (this.shortNamesFieldSet)
14798 {
14799 if ((this.shortNamesField == YesNoType.no))
14800 {
14801 writer.WriteAttributeString("ShortNames", "no");
14802 }
14803 if ((this.shortNamesField == YesNoType.yes))
14804 {
14805 writer.WriteAttributeString("ShortNames", "yes");
14806 }
14807 }
14808 if (this.compressedFieldSet)
14809 {
14810 if ((this.compressedField == YesNoType.no))
14811 {
14812 writer.WriteAttributeString("Compressed", "no");
14813 }
14814 if ((this.compressedField == YesNoType.yes))
14815 {
14816 writer.WriteAttributeString("Compressed", "yes");
14817 }
14818 }
14819 if (this.adminImageFieldSet)
14820 {
14821 if ((this.adminImageField == YesNoType.no))
14822 {
14823 writer.WriteAttributeString("AdminImage", "no");
14824 }
14825 if ((this.adminImageField == YesNoType.yes))
14826 {
14827 writer.WriteAttributeString("AdminImage", "yes");
14828 }
14829 }
14830 writer.WriteEndElement();
14831 }
14832
14833 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
14834 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
14835 void ISetAttributes.SetAttribute(string name, string value)
14836 {
14837 if (String.IsNullOrEmpty(name))
14838 {
14839 throw new ArgumentNullException("name");
14840 }
14841 if (("Description" == name))
14842 {
14843 this.descriptionField = value;
14844 this.descriptionFieldSet = true;
14845 }
14846 if (("Platforms" == name))
14847 {
14848 this.platformsField = value;
14849 this.platformsFieldSet = true;
14850 }
14851 if (("Languages" == name))
14852 {
14853 this.languagesField = value;
14854 this.languagesFieldSet = true;
14855 }
14856 if (("Manufacturer" == name))
14857 {
14858 this.manufacturerField = value;
14859 this.manufacturerFieldSet = true;
14860 }
14861 if (("Keywords" == name))
14862 {
14863 this.keywordsField = value;
14864 this.keywordsFieldSet = true;
14865 }
14866 if (("Comments" == name))
14867 {
14868 this.commentsField = value;
14869 this.commentsFieldSet = true;
14870 }
14871 if (("ReadOnly" == name))
14872 {
14873 this.readOnlyField = Enums.ParseYesNoDefaultType(value);
14874 this.readOnlyFieldSet = true;
14875 }
14876 if (("SummaryCodepage" == name))
14877 {
14878 this.summaryCodepageField = value;
14879 this.summaryCodepageFieldSet = true;
14880 }
14881 if (("ShortNames" == name))
14882 {
14883 this.shortNamesField = Enums.ParseYesNoType(value);
14884 this.shortNamesFieldSet = true;
14885 }
14886 if (("Compressed" == name))
14887 {
14888 this.compressedField = Enums.ParseYesNoType(value);
14889 this.compressedFieldSet = true;
14890 }
14891 if (("AdminImage" == name))
14892 {
14893 this.adminImageField = Enums.ParseYesNoType(value);
14894 this.adminImageFieldSet = true;
14895 }
14896 }
14897 }
14898
14899 /// <summary>
14900 /// Properties about the patch to be placed in the PatchMetadata table.
14901 /// </summary>
14902 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
14903 public class PatchMetadata : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
14904 {
14905
14906 private ElementCollection children;
14907
14908 private YesNoType allowRemovalField;
14909
14910 private bool allowRemovalFieldSet;
14911
14912 private string classificationField;
14913
14914 private bool classificationFieldSet;
14915
14916 private string creationTimeUTCField;
14917
14918 private bool creationTimeUTCFieldSet;
14919
14920 private string descriptionField;
14921
14922 private bool descriptionFieldSet;
14923
14924 private string displayNameField;
14925
14926 private bool displayNameFieldSet;
14927
14928 private string manufacturerNameField;
14929
14930 private bool manufacturerNameFieldSet;
14931
14932 private string minorUpdateTargetRTMField;
14933
14934 private bool minorUpdateTargetRTMFieldSet;
14935
14936 private string moreInfoURLField;
14937
14938 private bool moreInfoURLFieldSet;
14939
14940 private YesNoType optimizedInstallModeField;
14941
14942 private bool optimizedInstallModeFieldSet;
14943
14944 private string targetProductNameField;
14945
14946 private bool targetProductNameFieldSet;
14947
14948 private ISchemaElement parentElement;
14949
14950 public PatchMetadata()
14951 {
14952 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
14953 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice);
14954 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomProperty)));
14955 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(OptimizeCustomActions)));
14956 childCollection0.AddCollection(childCollection1);
14957 this.children = childCollection0;
14958 }
14959
14960 public virtual IEnumerable Children
14961 {
14962 get
14963 {
14964 return this.children;
14965 }
14966 }
14967
14968 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
14969 public virtual IEnumerable this[System.Type childType]
14970 {
14971 get
14972 {
14973 return this.children.Filter(childType);
14974 }
14975 }
14976
14977 /// <summary>
14978 /// Whether this is an uninstallable patch.
14979 /// </summary>
14980 public YesNoType AllowRemoval
14981 {
14982 get
14983 {
14984 return this.allowRemovalField;
14985 }
14986 set
14987 {
14988 this.allowRemovalFieldSet = true;
14989 this.allowRemovalField = value;
14990 }
14991 }
14992
14993 /// <summary>
14994 /// Category of updates. Recommended values are Critical Update, Hotfix, Security Rollup, Security Update, Service Pack, Update, Update Rollup.
14995 /// </summary>
14996 public string Classification
14997 {
14998 get
14999 {
15000 return this.classificationField;
15001 }
15002 set
15003 {
15004 this.classificationFieldSet = true;
15005 this.classificationField = value;
15006 }
15007 }
15008
15009 /// <summary>
15010 /// Creation time of the .msp file in the form mm-dd-yy HH:MM (month-day-year hour:minute).
15011 /// </summary>
15012 [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")]
15013 public string CreationTimeUTC
15014 {
15015 get
15016 {
15017 return this.creationTimeUTCField;
15018 }
15019 set
15020 {
15021 this.creationTimeUTCFieldSet = true;
15022 this.creationTimeUTCField = value;
15023 }
15024 }
15025
15026 /// <summary>
15027 /// Description of the patch.
15028 /// </summary>
15029 public string Description
15030 {
15031 get
15032 {
15033 return this.descriptionField;
15034 }
15035 set
15036 {
15037 this.descriptionFieldSet = true;
15038 this.descriptionField = value;
15039 }
15040 }
15041
15042 /// <summary>
15043 /// A title for the patch that is suitable for public display. In Add/Remove Programs from XP SP2 on.
15044 /// </summary>
15045 public string DisplayName
15046 {
15047 get
15048 {
15049 return this.displayNameField;
15050 }
15051 set
15052 {
15053 this.displayNameFieldSet = true;
15054 this.displayNameField = value;
15055 }
15056 }
15057
15058 /// <summary>
15059 /// Name of the manufacturer.
15060 /// </summary>
15061 public string ManufacturerName
15062 {
15063 get
15064 {
15065 return this.manufacturerNameField;
15066 }
15067 set
15068 {
15069 this.manufacturerNameFieldSet = true;
15070 this.manufacturerNameField = value;
15071 }
15072 }
15073
15074 /// <summary>
15075 /// Indicates that the patch targets the RTM version of the product or the most recent major
15076 /// upgrade patch. Author this optional property in minor update patches that contain sequencing
15077 /// information to indicate that the patch removes all patches up to the RTM version of the
15078 /// product, or up to the most recent major upgrade patch. This property is available beginning
15079 /// with Windows Installer 3.1.
15080 /// </summary>
15081 [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")]
15082 public string MinorUpdateTargetRTM
15083 {
15084 get
15085 {
15086 return this.minorUpdateTargetRTMField;
15087 }
15088 set
15089 {
15090 this.minorUpdateTargetRTMFieldSet = true;
15091 this.minorUpdateTargetRTMField = value;
15092 }
15093 }
15094
15095 /// <summary>
15096 /// A URL that provides information specific to this patch. In Add/Remove Programs from XP SP2 on.
15097 /// </summary>
15098 [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")]
15099 public string MoreInfoURL
15100 {
15101 get
15102 {
15103 return this.moreInfoURLField;
15104 }
15105 set
15106 {
15107 this.moreInfoURLFieldSet = true;
15108 this.moreInfoURLField = value;
15109 }
15110 }
15111
15112 /// <summary>
15113 /// If this attribute is set to 'yes' in all the patches to be applied in a transaction, the
15114 /// application of the patch is optimized if possible. Available beginning with Windows Installer 3.1.
15115 /// </summary>
15116 public YesNoType OptimizedInstallMode
15117 {
15118 get
15119 {
15120 return this.optimizedInstallModeField;
15121 }
15122 set
15123 {
15124 this.optimizedInstallModeFieldSet = true;
15125 this.optimizedInstallModeField = value;
15126 }
15127 }
15128
15129 /// <summary>
15130 /// Name of the application or target product suite.
15131 /// </summary>
15132 public string TargetProductName
15133 {
15134 get
15135 {
15136 return this.targetProductNameField;
15137 }
15138 set
15139 {
15140 this.targetProductNameFieldSet = true;
15141 this.targetProductNameField = value;
15142 }
15143 }
15144
15145 public virtual ISchemaElement ParentElement
15146 {
15147 get
15148 {
15149 return this.parentElement;
15150 }
15151 set
15152 {
15153 this.parentElement = value;
15154 }
15155 }
15156
15157 public virtual void AddChild(ISchemaElement child)
15158 {
15159 if ((null == child))
15160 {
15161 throw new ArgumentNullException("child");
15162 }
15163 this.children.AddElement(child);
15164 child.ParentElement = this;
15165 }
15166
15167 public virtual void RemoveChild(ISchemaElement child)
15168 {
15169 if ((null == child))
15170 {
15171 throw new ArgumentNullException("child");
15172 }
15173 this.children.RemoveElement(child);
15174 child.ParentElement = null;
15175 }
15176
15177 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
15178 ISchemaElement ICreateChildren.CreateChild(string childName)
15179 {
15180 if (String.IsNullOrEmpty(childName))
15181 {
15182 throw new ArgumentNullException("childName");
15183 }
15184 ISchemaElement childValue = null;
15185 if (("CustomProperty" == childName))
15186 {
15187 childValue = new CustomProperty();
15188 }
15189 if (("OptimizeCustomActions" == childName))
15190 {
15191 childValue = new OptimizeCustomActions();
15192 }
15193 if ((null == childValue))
15194 {
15195 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
15196 }
15197 return childValue;
15198 }
15199
15200 /// <summary>
15201 /// Processes this element and all child elements into an XmlWriter.
15202 /// </summary>
15203 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
15204 public virtual void OutputXml(XmlWriter writer)
15205 {
15206 if ((null == writer))
15207 {
15208 throw new ArgumentNullException("writer");
15209 }
15210 writer.WriteStartElement("PatchMetadata", "http://wixtoolset.org/schemas/v4/wxs");
15211 if (this.allowRemovalFieldSet)
15212 {
15213 if ((this.allowRemovalField == YesNoType.no))
15214 {
15215 writer.WriteAttributeString("AllowRemoval", "no");
15216 }
15217 if ((this.allowRemovalField == YesNoType.yes))
15218 {
15219 writer.WriteAttributeString("AllowRemoval", "yes");
15220 }
15221 }
15222 if (this.classificationFieldSet)
15223 {
15224 writer.WriteAttributeString("Classification", this.classificationField);
15225 }
15226 if (this.creationTimeUTCFieldSet)
15227 {
15228 writer.WriteAttributeString("CreationTimeUTC", this.creationTimeUTCField);
15229 }
15230 if (this.descriptionFieldSet)
15231 {
15232 writer.WriteAttributeString("Description", this.descriptionField);
15233 }
15234 if (this.displayNameFieldSet)
15235 {
15236 writer.WriteAttributeString("DisplayName", this.displayNameField);
15237 }
15238 if (this.manufacturerNameFieldSet)
15239 {
15240 writer.WriteAttributeString("ManufacturerName", this.manufacturerNameField);
15241 }
15242 if (this.minorUpdateTargetRTMFieldSet)
15243 {
15244 writer.WriteAttributeString("MinorUpdateTargetRTM", this.minorUpdateTargetRTMField);
15245 }
15246 if (this.moreInfoURLFieldSet)
15247 {
15248 writer.WriteAttributeString("MoreInfoURL", this.moreInfoURLField);
15249 }
15250 if (this.optimizedInstallModeFieldSet)
15251 {
15252 if ((this.optimizedInstallModeField == YesNoType.no))
15253 {
15254 writer.WriteAttributeString("OptimizedInstallMode", "no");
15255 }
15256 if ((this.optimizedInstallModeField == YesNoType.yes))
15257 {
15258 writer.WriteAttributeString("OptimizedInstallMode", "yes");
15259 }
15260 }
15261 if (this.targetProductNameFieldSet)
15262 {
15263 writer.WriteAttributeString("TargetProductName", this.targetProductNameField);
15264 }
15265 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
15266 {
15267 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
15268 childElement.OutputXml(writer);
15269 }
15270 writer.WriteEndElement();
15271 }
15272
15273 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
15274 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
15275 void ISetAttributes.SetAttribute(string name, string value)
15276 {
15277 if (String.IsNullOrEmpty(name))
15278 {
15279 throw new ArgumentNullException("name");
15280 }
15281 if (("AllowRemoval" == name))
15282 {
15283 this.allowRemovalField = Enums.ParseYesNoType(value);
15284 this.allowRemovalFieldSet = true;
15285 }
15286 if (("Classification" == name))
15287 {
15288 this.classificationField = value;
15289 this.classificationFieldSet = true;
15290 }
15291 if (("CreationTimeUTC" == name))
15292 {
15293 this.creationTimeUTCField = value;
15294 this.creationTimeUTCFieldSet = true;
15295 }
15296 if (("Description" == name))
15297 {
15298 this.descriptionField = value;
15299 this.descriptionFieldSet = true;
15300 }
15301 if (("DisplayName" == name))
15302 {
15303 this.displayNameField = value;
15304 this.displayNameFieldSet = true;
15305 }
15306 if (("ManufacturerName" == name))
15307 {
15308 this.manufacturerNameField = value;
15309 this.manufacturerNameFieldSet = true;
15310 }
15311 if (("MinorUpdateTargetRTM" == name))
15312 {
15313 this.minorUpdateTargetRTMField = value;
15314 this.minorUpdateTargetRTMFieldSet = true;
15315 }
15316 if (("MoreInfoURL" == name))
15317 {
15318 this.moreInfoURLField = value;
15319 this.moreInfoURLFieldSet = true;
15320 }
15321 if (("OptimizedInstallMode" == name))
15322 {
15323 this.optimizedInstallModeField = Enums.ParseYesNoType(value);
15324 this.optimizedInstallModeFieldSet = true;
15325 }
15326 if (("TargetProductName" == name))
15327 {
15328 this.targetProductNameField = value;
15329 this.targetProductNameFieldSet = true;
15330 }
15331 }
15332 }
15333
15334 /// <summary>
15335 /// A custom property for the PatchMetadata table.
15336 /// </summary>
15337 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
15338 public class CustomProperty : ISchemaElement, ISetAttributes
15339 {
15340
15341 private string companyField;
15342
15343 private bool companyFieldSet;
15344
15345 private string propertyField;
15346
15347 private bool propertyFieldSet;
15348
15349 private string valueField;
15350
15351 private bool valueFieldSet;
15352
15353 private ISchemaElement parentElement;
15354
15355 /// <summary>
15356 /// The name of the company.
15357 /// </summary>
15358 public string Company
15359 {
15360 get
15361 {
15362 return this.companyField;
15363 }
15364 set
15365 {
15366 this.companyFieldSet = true;
15367 this.companyField = value;
15368 }
15369 }
15370
15371 /// <summary>
15372 /// The name of the metadata property.
15373 /// </summary>
15374 public string Property
15375 {
15376 get
15377 {
15378 return this.propertyField;
15379 }
15380 set
15381 {
15382 this.propertyFieldSet = true;
15383 this.propertyField = value;
15384 }
15385 }
15386
15387 /// <summary>
15388 /// Value of the metadata property.
15389 /// </summary>
15390 public string Value
15391 {
15392 get
15393 {
15394 return this.valueField;
15395 }
15396 set
15397 {
15398 this.valueFieldSet = true;
15399 this.valueField = value;
15400 }
15401 }
15402
15403 public virtual ISchemaElement ParentElement
15404 {
15405 get
15406 {
15407 return this.parentElement;
15408 }
15409 set
15410 {
15411 this.parentElement = value;
15412 }
15413 }
15414
15415 /// <summary>
15416 /// Processes this element and all child elements into an XmlWriter.
15417 /// </summary>
15418 public virtual void OutputXml(XmlWriter writer)
15419 {
15420 if ((null == writer))
15421 {
15422 throw new ArgumentNullException("writer");
15423 }
15424 writer.WriteStartElement("CustomProperty", "http://wixtoolset.org/schemas/v4/wxs");
15425 if (this.companyFieldSet)
15426 {
15427 writer.WriteAttributeString("Company", this.companyField);
15428 }
15429 if (this.propertyFieldSet)
15430 {
15431 writer.WriteAttributeString("Property", this.propertyField);
15432 }
15433 if (this.valueFieldSet)
15434 {
15435 writer.WriteAttributeString("Value", this.valueField);
15436 }
15437 writer.WriteEndElement();
15438 }
15439
15440 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
15441 void ISetAttributes.SetAttribute(string name, string value)
15442 {
15443 if (String.IsNullOrEmpty(name))
15444 {
15445 throw new ArgumentNullException("name");
15446 }
15447 if (("Company" == name))
15448 {
15449 this.companyField = value;
15450 this.companyFieldSet = true;
15451 }
15452 if (("Property" == name))
15453 {
15454 this.propertyField = value;
15455 this.propertyFieldSet = true;
15456 }
15457 if (("Value" == name))
15458 {
15459 this.valueField = value;
15460 this.valueFieldSet = true;
15461 }
15462 }
15463 }
15464
15465 /// <summary>
15466 /// A patch that is deprecated by this patch.
15467 /// </summary>
15468 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
15469 public class ReplacePatch : ISchemaElement, ISetAttributes
15470 {
15471
15472 private string idField;
15473
15474 private bool idFieldSet;
15475
15476 private ISchemaElement parentElement;
15477
15478 /// <summary>
15479 /// Patch GUID to be unregistered if it exists on the machine targeted by this patch.
15480 /// </summary>
15481 public string Id
15482 {
15483 get
15484 {
15485 return this.idField;
15486 }
15487 set
15488 {
15489 this.idFieldSet = true;
15490 this.idField = value;
15491 }
15492 }
15493
15494 public virtual ISchemaElement ParentElement
15495 {
15496 get
15497 {
15498 return this.parentElement;
15499 }
15500 set
15501 {
15502 this.parentElement = value;
15503 }
15504 }
15505
15506 /// <summary>
15507 /// Processes this element and all child elements into an XmlWriter.
15508 /// </summary>
15509 public virtual void OutputXml(XmlWriter writer)
15510 {
15511 if ((null == writer))
15512 {
15513 throw new ArgumentNullException("writer");
15514 }
15515 writer.WriteStartElement("ReplacePatch", "http://wixtoolset.org/schemas/v4/wxs");
15516 if (this.idFieldSet)
15517 {
15518 writer.WriteAttributeString("Id", this.idField);
15519 }
15520 writer.WriteEndElement();
15521 }
15522
15523 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
15524 void ISetAttributes.SetAttribute(string name, string value)
15525 {
15526 if (String.IsNullOrEmpty(name))
15527 {
15528 throw new ArgumentNullException("name");
15529 }
15530 if (("Id" == name))
15531 {
15532 this.idField = value;
15533 this.idFieldSet = true;
15534 }
15535 }
15536 }
15537
15538 /// <summary>
15539 /// The product codes for products that can accept the patch.
15540 /// </summary>
15541 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
15542 public class TargetProductCodes : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
15543 {
15544
15545 private ElementCollection children;
15546
15547 private YesNoType replaceField;
15548
15549 private bool replaceFieldSet;
15550
15551 private ISchemaElement parentElement;
15552
15553 public TargetProductCodes()
15554 {
15555 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
15556 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(TargetProductCode)));
15557 this.children = childCollection0;
15558 }
15559
15560 public virtual IEnumerable Children
15561 {
15562 get
15563 {
15564 return this.children;
15565 }
15566 }
15567
15568 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
15569 public virtual IEnumerable this[System.Type childType]
15570 {
15571 get
15572 {
15573 return this.children.Filter(childType);
15574 }
15575 }
15576
15577 /// <summary>
15578 /// Whether to replace the product codes that can accept the patch from the target packages with the child elements.
15579 /// </summary>
15580 public YesNoType Replace
15581 {
15582 get
15583 {
15584 return this.replaceField;
15585 }
15586 set
15587 {
15588 this.replaceFieldSet = true;
15589 this.replaceField = value;
15590 }
15591 }
15592
15593 public virtual ISchemaElement ParentElement
15594 {
15595 get
15596 {
15597 return this.parentElement;
15598 }
15599 set
15600 {
15601 this.parentElement = value;
15602 }
15603 }
15604
15605 public virtual void AddChild(ISchemaElement child)
15606 {
15607 if ((null == child))
15608 {
15609 throw new ArgumentNullException("child");
15610 }
15611 this.children.AddElement(child);
15612 child.ParentElement = this;
15613 }
15614
15615 public virtual void RemoveChild(ISchemaElement child)
15616 {
15617 if ((null == child))
15618 {
15619 throw new ArgumentNullException("child");
15620 }
15621 this.children.RemoveElement(child);
15622 child.ParentElement = null;
15623 }
15624
15625 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
15626 ISchemaElement ICreateChildren.CreateChild(string childName)
15627 {
15628 if (String.IsNullOrEmpty(childName))
15629 {
15630 throw new ArgumentNullException("childName");
15631 }
15632 ISchemaElement childValue = null;
15633 if (("TargetProductCode" == childName))
15634 {
15635 childValue = new TargetProductCode();
15636 }
15637 if ((null == childValue))
15638 {
15639 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
15640 }
15641 return childValue;
15642 }
15643
15644 /// <summary>
15645 /// Processes this element and all child elements into an XmlWriter.
15646 /// </summary>
15647 public virtual void OutputXml(XmlWriter writer)
15648 {
15649 if ((null == writer))
15650 {
15651 throw new ArgumentNullException("writer");
15652 }
15653 writer.WriteStartElement("TargetProductCodes", "http://wixtoolset.org/schemas/v4/wxs");
15654 if (this.replaceFieldSet)
15655 {
15656 if ((this.replaceField == YesNoType.no))
15657 {
15658 writer.WriteAttributeString("Replace", "no");
15659 }
15660 if ((this.replaceField == YesNoType.yes))
15661 {
15662 writer.WriteAttributeString("Replace", "yes");
15663 }
15664 }
15665 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
15666 {
15667 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
15668 childElement.OutputXml(writer);
15669 }
15670 writer.WriteEndElement();
15671 }
15672
15673 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
15674 void ISetAttributes.SetAttribute(string name, string value)
15675 {
15676 if (String.IsNullOrEmpty(name))
15677 {
15678 throw new ArgumentNullException("name");
15679 }
15680 if (("Replace" == name))
15681 {
15682 this.replaceField = Enums.ParseYesNoType(value);
15683 this.replaceFieldSet = true;
15684 }
15685 }
15686 }
15687
15688 /// <summary>
15689 /// A product code for a product that can accept the patch.
15690 /// </summary>
15691 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
15692 public class TargetProductCode : ISchemaElement, ISetAttributes
15693 {
15694
15695 private string idField;
15696
15697 private bool idFieldSet;
15698
15699 private ISchemaElement parentElement;
15700
15701 /// <summary>
15702 /// The product code for a product that can accept the patch. This can be '*'. See remarks for more information.
15703 /// </summary>
15704 public string Id
15705 {
15706 get
15707 {
15708 return this.idField;
15709 }
15710 set
15711 {
15712 this.idFieldSet = true;
15713 this.idField = value;
15714 }
15715 }
15716
15717 public virtual ISchemaElement ParentElement
15718 {
15719 get
15720 {
15721 return this.parentElement;
15722 }
15723 set
15724 {
15725 this.parentElement = value;
15726 }
15727 }
15728
15729 /// <summary>
15730 /// Processes this element and all child elements into an XmlWriter.
15731 /// </summary>
15732 public virtual void OutputXml(XmlWriter writer)
15733 {
15734 if ((null == writer))
15735 {
15736 throw new ArgumentNullException("writer");
15737 }
15738 writer.WriteStartElement("TargetProductCode", "http://wixtoolset.org/schemas/v4/wxs");
15739 if (this.idFieldSet)
15740 {
15741 writer.WriteAttributeString("Id", this.idField);
15742 }
15743 writer.WriteEndElement();
15744 }
15745
15746 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
15747 void ISetAttributes.SetAttribute(string name, string value)
15748 {
15749 if (String.IsNullOrEmpty(name))
15750 {
15751 throw new ArgumentNullException("name");
15752 }
15753 if (("Id" == name))
15754 {
15755 this.idField = value;
15756 this.idFieldSet = true;
15757 }
15758 }
15759 }
15760
15761 /// <summary>
15762 /// A property for this patch database.
15763 /// </summary>
15764 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
15765 public class PatchProperty : ISchemaElement, ISetAttributes
15766 {
15767
15768 private string companyField;
15769
15770 private bool companyFieldSet;
15771
15772 private string nameField;
15773
15774 private bool nameFieldSet;
15775
15776 private string valueField;
15777
15778 private bool valueFieldSet;
15779
15780 private ISchemaElement parentElement;
15781
15782 /// <summary>
15783 /// Name of the company for a custom metadata property.
15784 /// </summary>
15785 public string Company
15786 {
15787 get
15788 {
15789 return this.companyField;
15790 }
15791 set
15792 {
15793 this.companyFieldSet = true;
15794 this.companyField = value;
15795 }
15796 }
15797
15798 /// <summary>
15799 /// Name of the patch property.
15800 /// </summary>
15801 public string Name
15802 {
15803 get
15804 {
15805 return this.nameField;
15806 }
15807 set
15808 {
15809 this.nameFieldSet = true;
15810 this.nameField = value;
15811 }
15812 }
15813
15814 /// <summary>
15815 /// Value of the patch property.
15816 /// </summary>
15817 public string Value
15818 {
15819 get
15820 {
15821 return this.valueField;
15822 }
15823 set
15824 {
15825 this.valueFieldSet = true;
15826 this.valueField = value;
15827 }
15828 }
15829
15830 public virtual ISchemaElement ParentElement
15831 {
15832 get
15833 {
15834 return this.parentElement;
15835 }
15836 set
15837 {
15838 this.parentElement = value;
15839 }
15840 }
15841
15842 /// <summary>
15843 /// Processes this element and all child elements into an XmlWriter.
15844 /// </summary>
15845 public virtual void OutputXml(XmlWriter writer)
15846 {
15847 if ((null == writer))
15848 {
15849 throw new ArgumentNullException("writer");
15850 }
15851 writer.WriteStartElement("PatchProperty", "http://wixtoolset.org/schemas/v4/wxs");
15852 if (this.companyFieldSet)
15853 {
15854 writer.WriteAttributeString("Company", this.companyField);
15855 }
15856 if (this.nameFieldSet)
15857 {
15858 writer.WriteAttributeString("Name", this.nameField);
15859 }
15860 if (this.valueFieldSet)
15861 {
15862 writer.WriteAttributeString("Value", this.valueField);
15863 }
15864 writer.WriteEndElement();
15865 }
15866
15867 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
15868 void ISetAttributes.SetAttribute(string name, string value)
15869 {
15870 if (String.IsNullOrEmpty(name))
15871 {
15872 throw new ArgumentNullException("name");
15873 }
15874 if (("Company" == name))
15875 {
15876 this.companyField = value;
15877 this.companyFieldSet = true;
15878 }
15879 if (("Name" == name))
15880 {
15881 this.nameField = value;
15882 this.nameFieldSet = true;
15883 }
15884 if (("Value" == name))
15885 {
15886 this.valueField = value;
15887 this.valueFieldSet = true;
15888 }
15889 }
15890 }
15891
15892 /// <summary>
15893 /// Sequence information for this patch database. Sequence information is generated automatically in most cases, and rarely needs to be set explicitly.
15894 /// </summary>
15895 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
15896 public class PatchSequence : ISchemaElement, ISetAttributes
15897 {
15898
15899 private string patchFamilyField;
15900
15901 private bool patchFamilyFieldSet;
15902
15903 private string productCodeField;
15904
15905 private bool productCodeFieldSet;
15906
15907 private string sequenceField;
15908
15909 private bool sequenceFieldSet;
15910
15911 private YesNoType supersedeField;
15912
15913 private bool supersedeFieldSet;
15914
15915 private string targetField;
15916
15917 private bool targetFieldSet;
15918
15919 private string targetImageField;
15920
15921 private bool targetImageFieldSet;
15922
15923 private ISchemaElement parentElement;
15924
15925 /// <summary>
15926 /// Identifier which indicates a sequence family to which this patch belongs.
15927 /// </summary>
15928 public string PatchFamily
15929 {
15930 get
15931 {
15932 return this.patchFamilyField;
15933 }
15934 set
15935 {
15936 this.patchFamilyFieldSet = true;
15937 this.patchFamilyField = value;
15938 }
15939 }
15940
15941 /// <summary>
15942 /// Specifies the ProductCode of the product that this family applies to.
15943 /// This attribute cannot the specified if the TargetImage attribute is specified.
15944 /// </summary>
15945 public string ProductCode
15946 {
15947 get
15948 {
15949 return this.productCodeField;
15950 }
15951 set
15952 {
15953 this.productCodeFieldSet = true;
15954 this.productCodeField = value;
15955 }
15956 }
15957
15958 /// <summary>
15959 /// Used to populate the sequence column of the MsiPatchSequence table in the final MSP file. Specified in x.x.x.x format. See documentation for Sequence column of MsiPatchSequence table in MSI SDK.
15960 /// </summary>
15961 public string Sequence
15962 {
15963 get
15964 {
15965 return this.sequenceField;
15966 }
15967 set
15968 {
15969 this.sequenceFieldSet = true;
15970 this.sequenceField = value;
15971 }
15972 }
15973
15974 /// <summary>
15975 /// Set this value to 'yes' to indicate that this patch will supersede all previous patches in this patch family.
15976 /// The default value is 'no'.
15977 /// </summary>
15978 public YesNoType Supersede
15979 {
15980 get
15981 {
15982 return this.supersedeField;
15983 }
15984 set
15985 {
15986 this.supersedeFieldSet = true;
15987 this.supersedeField = value;
15988 }
15989 }
15990
15991 public string Target
15992 {
15993 get
15994 {
15995 return this.targetField;
15996 }
15997 set
15998 {
15999 this.targetFieldSet = true;
16000 this.targetField = value;
16001 }
16002 }
16003
16004 /// <summary>
16005 /// Specifies the TargetImage that this family applies to.
16006 /// This attribute cannot the specified if the ProductCode attribute is specified.
16007 /// </summary>
16008 public string TargetImage
16009 {
16010 get
16011 {
16012 return this.targetImageField;
16013 }
16014 set
16015 {
16016 this.targetImageFieldSet = true;
16017 this.targetImageField = value;
16018 }
16019 }
16020
16021 public virtual ISchemaElement ParentElement
16022 {
16023 get
16024 {
16025 return this.parentElement;
16026 }
16027 set
16028 {
16029 this.parentElement = value;
16030 }
16031 }
16032
16033 /// <summary>
16034 /// Processes this element and all child elements into an XmlWriter.
16035 /// </summary>
16036 public virtual void OutputXml(XmlWriter writer)
16037 {
16038 if ((null == writer))
16039 {
16040 throw new ArgumentNullException("writer");
16041 }
16042 writer.WriteStartElement("PatchSequence", "http://wixtoolset.org/schemas/v4/wxs");
16043 if (this.patchFamilyFieldSet)
16044 {
16045 writer.WriteAttributeString("PatchFamily", this.patchFamilyField);
16046 }
16047 if (this.productCodeFieldSet)
16048 {
16049 writer.WriteAttributeString("ProductCode", this.productCodeField);
16050 }
16051 if (this.sequenceFieldSet)
16052 {
16053 writer.WriteAttributeString("Sequence", this.sequenceField);
16054 }
16055 if (this.supersedeFieldSet)
16056 {
16057 if ((this.supersedeField == YesNoType.no))
16058 {
16059 writer.WriteAttributeString("Supersede", "no");
16060 }
16061 if ((this.supersedeField == YesNoType.yes))
16062 {
16063 writer.WriteAttributeString("Supersede", "yes");
16064 }
16065 }
16066 if (this.targetFieldSet)
16067 {
16068 writer.WriteAttributeString("Target", this.targetField);
16069 }
16070 if (this.targetImageFieldSet)
16071 {
16072 writer.WriteAttributeString("TargetImage", this.targetImageField);
16073 }
16074 writer.WriteEndElement();
16075 }
16076
16077 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
16078 void ISetAttributes.SetAttribute(string name, string value)
16079 {
16080 if (String.IsNullOrEmpty(name))
16081 {
16082 throw new ArgumentNullException("name");
16083 }
16084 if (("PatchFamily" == name))
16085 {
16086 this.patchFamilyField = value;
16087 this.patchFamilyFieldSet = true;
16088 }
16089 if (("ProductCode" == name))
16090 {
16091 this.productCodeField = value;
16092 this.productCodeFieldSet = true;
16093 }
16094 if (("Sequence" == name))
16095 {
16096 this.sequenceField = value;
16097 this.sequenceFieldSet = true;
16098 }
16099 if (("Supersede" == name))
16100 {
16101 this.supersedeField = Enums.ParseYesNoType(value);
16102 this.supersedeFieldSet = true;
16103 }
16104 if (("Target" == name))
16105 {
16106 this.targetField = value;
16107 this.targetFieldSet = true;
16108 }
16109 if (("TargetImage" == name))
16110 {
16111 this.targetImageField = value;
16112 this.targetImageFieldSet = true;
16113 }
16114 }
16115 }
16116
16117 /// <summary>
16118 /// Group of one or more upgraded images of a product.
16119 /// </summary>
16120 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
16121 public class Family : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
16122 {
16123
16124 private ElementCollection children;
16125
16126 private string diskIdField;
16127
16128 private bool diskIdFieldSet;
16129
16130 private string diskPromptField;
16131
16132 private bool diskPromptFieldSet;
16133
16134 private string mediaSrcPropField;
16135
16136 private bool mediaSrcPropFieldSet;
16137
16138 private string nameField;
16139
16140 private bool nameFieldSet;
16141
16142 private int sequenceStartField;
16143
16144 private bool sequenceStartFieldSet;
16145
16146 private string volumeLabelField;
16147
16148 private bool volumeLabelFieldSet;
16149
16150 private ISchemaElement parentElement;
16151
16152 public Family()
16153 {
16154 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
16155 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(UpgradeImage)));
16156 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice);
16157 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ExternalFile)));
16158 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ProtectFile)));
16159 childCollection0.AddCollection(childCollection1);
16160 this.children = childCollection0;
16161 }
16162
16163 public virtual IEnumerable Children
16164 {
16165 get
16166 {
16167 return this.children;
16168 }
16169 }
16170
16171 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
16172 public virtual IEnumerable this[System.Type childType]
16173 {
16174 get
16175 {
16176 return this.children.Filter(childType);
16177 }
16178 }
16179
16180 /// <summary>
16181 /// Entered into the DiskId field of the new Media table record.
16182 /// </summary>
16183 public string DiskId
16184 {
16185 get
16186 {
16187 return this.diskIdField;
16188 }
16189 set
16190 {
16191 this.diskIdFieldSet = true;
16192 this.diskIdField = value;
16193 }
16194 }
16195
16196 /// <summary>
16197 /// Value to display in the "[1]" of the DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property.
16198 /// </summary>
16199 public string DiskPrompt
16200 {
16201 get
16202 {
16203 return this.diskPromptField;
16204 }
16205 set
16206 {
16207 this.diskPromptFieldSet = true;
16208 this.diskPromptField = value;
16209 }
16210 }
16211
16212 /// <summary>
16213 /// Entered into the Source field of the new Media table entry of the upgraded image.
16214 /// </summary>
16215 public string MediaSrcProp
16216 {
16217 get
16218 {
16219 return this.mediaSrcPropField;
16220 }
16221 set
16222 {
16223 this.mediaSrcPropFieldSet = true;
16224 this.mediaSrcPropField = value;
16225 }
16226 }
16227
16228 /// <summary>
16229 /// Identifier for the family.
16230 /// </summary>
16231 public string Name
16232 {
16233 get
16234 {
16235 return this.nameField;
16236 }
16237 set
16238 {
16239 this.nameFieldSet = true;
16240 this.nameField = value;
16241 }
16242 }
16243
16244 /// <summary>
16245 /// Sequence number for the starting file.
16246 /// </summary>
16247 public int SequenceStart
16248 {
16249 get
16250 {
16251 return this.sequenceStartField;
16252 }
16253 set
16254 {
16255 this.sequenceStartFieldSet = true;
16256 this.sequenceStartField = value;
16257 }
16258 }
16259
16260 /// <summary>
16261 /// Entered into the VolumeLabel field of the new Media table record.
16262 /// </summary>
16263 public string VolumeLabel
16264 {
16265 get
16266 {
16267 return this.volumeLabelField;
16268 }
16269 set
16270 {
16271 this.volumeLabelFieldSet = true;
16272 this.volumeLabelField = value;
16273 }
16274 }
16275
16276 public virtual ISchemaElement ParentElement
16277 {
16278 get
16279 {
16280 return this.parentElement;
16281 }
16282 set
16283 {
16284 this.parentElement = value;
16285 }
16286 }
16287
16288 public virtual void AddChild(ISchemaElement child)
16289 {
16290 if ((null == child))
16291 {
16292 throw new ArgumentNullException("child");
16293 }
16294 this.children.AddElement(child);
16295 child.ParentElement = this;
16296 }
16297
16298 public virtual void RemoveChild(ISchemaElement child)
16299 {
16300 if ((null == child))
16301 {
16302 throw new ArgumentNullException("child");
16303 }
16304 this.children.RemoveElement(child);
16305 child.ParentElement = null;
16306 }
16307
16308 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
16309 ISchemaElement ICreateChildren.CreateChild(string childName)
16310 {
16311 if (String.IsNullOrEmpty(childName))
16312 {
16313 throw new ArgumentNullException("childName");
16314 }
16315 ISchemaElement childValue = null;
16316 if (("UpgradeImage" == childName))
16317 {
16318 childValue = new UpgradeImage();
16319 }
16320 if (("ExternalFile" == childName))
16321 {
16322 childValue = new ExternalFile();
16323 }
16324 if (("ProtectFile" == childName))
16325 {
16326 childValue = new ProtectFile();
16327 }
16328 if ((null == childValue))
16329 {
16330 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
16331 }
16332 return childValue;
16333 }
16334
16335 /// <summary>
16336 /// Processes this element and all child elements into an XmlWriter.
16337 /// </summary>
16338 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
16339 public virtual void OutputXml(XmlWriter writer)
16340 {
16341 if ((null == writer))
16342 {
16343 throw new ArgumentNullException("writer");
16344 }
16345 writer.WriteStartElement("Family", "http://wixtoolset.org/schemas/v4/wxs");
16346 if (this.diskIdFieldSet)
16347 {
16348 writer.WriteAttributeString("DiskId", this.diskIdField);
16349 }
16350 if (this.diskPromptFieldSet)
16351 {
16352 writer.WriteAttributeString("DiskPrompt", this.diskPromptField);
16353 }
16354 if (this.mediaSrcPropFieldSet)
16355 {
16356 writer.WriteAttributeString("MediaSrcProp", this.mediaSrcPropField);
16357 }
16358 if (this.nameFieldSet)
16359 {
16360 writer.WriteAttributeString("Name", this.nameField);
16361 }
16362 if (this.sequenceStartFieldSet)
16363 {
16364 writer.WriteAttributeString("SequenceStart", this.sequenceStartField.ToString(CultureInfo.InvariantCulture));
16365 }
16366 if (this.volumeLabelFieldSet)
16367 {
16368 writer.WriteAttributeString("VolumeLabel", this.volumeLabelField);
16369 }
16370 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
16371 {
16372 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
16373 childElement.OutputXml(writer);
16374 }
16375 writer.WriteEndElement();
16376 }
16377
16378 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
16379 void ISetAttributes.SetAttribute(string name, string value)
16380 {
16381 if (String.IsNullOrEmpty(name))
16382 {
16383 throw new ArgumentNullException("name");
16384 }
16385 if (("DiskId" == name))
16386 {
16387 this.diskIdField = value;
16388 this.diskIdFieldSet = true;
16389 }
16390 if (("DiskPrompt" == name))
16391 {
16392 this.diskPromptField = value;
16393 this.diskPromptFieldSet = true;
16394 }
16395 if (("MediaSrcProp" == name))
16396 {
16397 this.mediaSrcPropField = value;
16398 this.mediaSrcPropFieldSet = true;
16399 }
16400 if (("Name" == name))
16401 {
16402 this.nameField = value;
16403 this.nameFieldSet = true;
16404 }
16405 if (("SequenceStart" == name))
16406 {
16407 this.sequenceStartField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
16408 this.sequenceStartFieldSet = true;
16409 }
16410 if (("VolumeLabel" == name))
16411 {
16412 this.volumeLabelField = value;
16413 this.volumeLabelFieldSet = true;
16414 }
16415 }
16416 }
16417
16418 /// <summary>
16419 /// Contains information about the upgraded images of the product.
16420 /// </summary>
16421 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
16422 public class UpgradeImage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
16423 {
16424
16425 private ElementCollection children;
16426
16427 private string idField;
16428
16429 private bool idFieldSet;
16430
16431 private string sourceFileField;
16432
16433 private bool sourceFileFieldSet;
16434
16435 private string srcField;
16436
16437 private bool srcFieldSet;
16438
16439 private string sourcePatchField;
16440
16441 private bool sourcePatchFieldSet;
16442
16443 private string srcPatchField;
16444
16445 private bool srcPatchFieldSet;
16446
16447 private ISchemaElement parentElement;
16448
16449 public UpgradeImage()
16450 {
16451 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
16452 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(TargetImage)));
16453 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice);
16454 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath)));
16455 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UpgradeFile)));
16456 childCollection0.AddCollection(childCollection1);
16457 this.children = childCollection0;
16458 }
16459
16460 public virtual IEnumerable Children
16461 {
16462 get
16463 {
16464 return this.children;
16465 }
16466 }
16467
16468 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
16469 public virtual IEnumerable this[System.Type childType]
16470 {
16471 get
16472 {
16473 return this.children.Filter(childType);
16474 }
16475 }
16476
16477 /// <summary>
16478 /// Identifier to connect target images with upgraded image.
16479 /// </summary>
16480 public string Id
16481 {
16482 get
16483 {
16484 return this.idField;
16485 }
16486 set
16487 {
16488 this.idFieldSet = true;
16489 this.idField = value;
16490 }
16491 }
16492
16493 /// <summary>
16494 /// Full path to location of msi file for upgraded image.
16495 /// </summary>
16496 public string SourceFile
16497 {
16498 get
16499 {
16500 return this.sourceFileField;
16501 }
16502 set
16503 {
16504 this.sourceFileFieldSet = true;
16505 this.sourceFileField = value;
16506 }
16507 }
16508
16509 [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
16510 public string src
16511 {
16512 get
16513 {
16514 return this.srcField;
16515 }
16516 set
16517 {
16518 this.srcFieldSet = true;
16519 this.srcField = value;
16520 }
16521 }
16522
16523 /// <summary>
16524 /// Modified copy of the upgraded installation database that contains additional authoring specific to patching.
16525 /// </summary>
16526 public string SourcePatch
16527 {
16528 get
16529 {
16530 return this.sourcePatchField;
16531 }
16532 set
16533 {
16534 this.sourcePatchFieldSet = true;
16535 this.sourcePatchField = value;
16536 }
16537 }
16538
16539 [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
16540 public string srcPatch
16541 {
16542 get
16543 {
16544 return this.srcPatchField;
16545 }
16546 set
16547 {
16548 this.srcPatchFieldSet = true;
16549 this.srcPatchField = value;
16550 }
16551 }
16552
16553 public virtual ISchemaElement ParentElement
16554 {
16555 get
16556 {
16557 return this.parentElement;
16558 }
16559 set
16560 {
16561 this.parentElement = value;
16562 }
16563 }
16564
16565 public virtual void AddChild(ISchemaElement child)
16566 {
16567 if ((null == child))
16568 {
16569 throw new ArgumentNullException("child");
16570 }
16571 this.children.AddElement(child);
16572 child.ParentElement = this;
16573 }
16574
16575 public virtual void RemoveChild(ISchemaElement child)
16576 {
16577 if ((null == child))
16578 {
16579 throw new ArgumentNullException("child");
16580 }
16581 this.children.RemoveElement(child);
16582 child.ParentElement = null;
16583 }
16584
16585 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
16586 ISchemaElement ICreateChildren.CreateChild(string childName)
16587 {
16588 if (String.IsNullOrEmpty(childName))
16589 {
16590 throw new ArgumentNullException("childName");
16591 }
16592 ISchemaElement childValue = null;
16593 if (("TargetImage" == childName))
16594 {
16595 childValue = new TargetImage();
16596 }
16597 if (("SymbolPath" == childName))
16598 {
16599 childValue = new SymbolPath();
16600 }
16601 if (("UpgradeFile" == childName))
16602 {
16603 childValue = new UpgradeFile();
16604 }
16605 if ((null == childValue))
16606 {
16607 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
16608 }
16609 return childValue;
16610 }
16611
16612 /// <summary>
16613 /// Processes this element and all child elements into an XmlWriter.
16614 /// </summary>
16615 public virtual void OutputXml(XmlWriter writer)
16616 {
16617 if ((null == writer))
16618 {
16619 throw new ArgumentNullException("writer");
16620 }
16621 writer.WriteStartElement("UpgradeImage", "http://wixtoolset.org/schemas/v4/wxs");
16622 if (this.idFieldSet)
16623 {
16624 writer.WriteAttributeString("Id", this.idField);
16625 }
16626 if (this.sourceFileFieldSet)
16627 {
16628 writer.WriteAttributeString("SourceFile", this.sourceFileField);
16629 }
16630 if (this.srcFieldSet)
16631 {
16632 writer.WriteAttributeString("src", this.srcField);
16633 }
16634 if (this.sourcePatchFieldSet)
16635 {
16636 writer.WriteAttributeString("SourcePatch", this.sourcePatchField);
16637 }
16638 if (this.srcPatchFieldSet)
16639 {
16640 writer.WriteAttributeString("srcPatch", this.srcPatchField);
16641 }
16642 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
16643 {
16644 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
16645 childElement.OutputXml(writer);
16646 }
16647 writer.WriteEndElement();
16648 }
16649
16650 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
16651 void ISetAttributes.SetAttribute(string name, string value)
16652 {
16653 if (String.IsNullOrEmpty(name))
16654 {
16655 throw new ArgumentNullException("name");
16656 }
16657 if (("Id" == name))
16658 {
16659 this.idField = value;
16660 this.idFieldSet = true;
16661 }
16662 if (("SourceFile" == name))
16663 {
16664 this.sourceFileField = value;
16665 this.sourceFileFieldSet = true;
16666 }
16667 if (("src" == name))
16668 {
16669 this.srcField = value;
16670 this.srcFieldSet = true;
16671 }
16672 if (("SourcePatch" == name))
16673 {
16674 this.sourcePatchField = value;
16675 this.sourcePatchFieldSet = true;
16676 }
16677 if (("srcPatch" == name))
16678 {
16679 this.srcPatchField = value;
16680 this.srcPatchFieldSet = true;
16681 }
16682 }
16683 }
16684
16685 /// <summary>
16686 /// Contains information about the target images of the product.
16687 /// </summary>
16688 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
16689 public class TargetImage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
16690 {
16691
16692 private ElementCollection children;
16693
16694 private string idField;
16695
16696 private bool idFieldSet;
16697
16698 private string sourceFileField;
16699
16700 private bool sourceFileFieldSet;
16701
16702 private string srcField;
16703
16704 private bool srcFieldSet;
16705
16706 private int orderField;
16707
16708 private bool orderFieldSet;
16709
16710 private string validationField;
16711
16712 private bool validationFieldSet;
16713
16714 private YesNoType ignoreMissingFilesField;
16715
16716 private bool ignoreMissingFilesFieldSet;
16717
16718 private ISchemaElement parentElement;
16719
16720 public TargetImage()
16721 {
16722 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
16723 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath)));
16724 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(TargetFile)));
16725 this.children = childCollection0;
16726 }
16727
16728 public virtual IEnumerable Children
16729 {
16730 get
16731 {
16732 return this.children;
16733 }
16734 }
16735
16736 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
16737 public virtual IEnumerable this[System.Type childType]
16738 {
16739 get
16740 {
16741 return this.children.Filter(childType);
16742 }
16743 }
16744
16745 /// <summary>
16746 /// Identifier for the target image.
16747 /// </summary>
16748 public string Id
16749 {
16750 get
16751 {
16752 return this.idField;
16753 }
16754 set
16755 {
16756 this.idFieldSet = true;
16757 this.idField = value;
16758 }
16759 }
16760
16761 /// <summary>
16762 /// Full path to the location of the msi file for the target image.
16763 /// </summary>
16764 public string SourceFile
16765 {
16766 get
16767 {
16768 return this.sourceFileField;
16769 }
16770 set
16771 {
16772 this.sourceFileFieldSet = true;
16773 this.sourceFileField = value;
16774 }
16775 }
16776
16777 [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
16778 public string src
16779 {
16780 get
16781 {
16782 return this.srcField;
16783 }
16784 set
16785 {
16786 this.srcFieldSet = true;
16787 this.srcField = value;
16788 }
16789 }
16790
16791 /// <summary>
16792 /// Relative order of the target image.
16793 /// </summary>
16794 public int Order
16795 {
16796 get
16797 {
16798 return this.orderField;
16799 }
16800 set
16801 {
16802 this.orderFieldSet = true;
16803 this.orderField = value;
16804 }
16805 }
16806
16807 /// <summary>
16808 /// Product checking to avoid applying irrelevant transforms.
16809 /// </summary>
16810 public string Validation
16811 {
16812 get
16813 {
16814 return this.validationField;
16815 }
16816 set
16817 {
16818 this.validationFieldSet = true;
16819 this.validationField = value;
16820 }
16821 }
16822
16823 /// <summary>
16824 /// Files missing from the target image are ignored by the installer.
16825 /// </summary>
16826 public YesNoType IgnoreMissingFiles
16827 {
16828 get
16829 {
16830 return this.ignoreMissingFilesField;
16831 }
16832 set
16833 {
16834 this.ignoreMissingFilesFieldSet = true;
16835 this.ignoreMissingFilesField = value;
16836 }
16837 }
16838
16839 public virtual ISchemaElement ParentElement
16840 {
16841 get
16842 {
16843 return this.parentElement;
16844 }
16845 set
16846 {
16847 this.parentElement = value;
16848 }
16849 }
16850
16851 public virtual void AddChild(ISchemaElement child)
16852 {
16853 if ((null == child))
16854 {
16855 throw new ArgumentNullException("child");
16856 }
16857 this.children.AddElement(child);
16858 child.ParentElement = this;
16859 }
16860
16861 public virtual void RemoveChild(ISchemaElement child)
16862 {
16863 if ((null == child))
16864 {
16865 throw new ArgumentNullException("child");
16866 }
16867 this.children.RemoveElement(child);
16868 child.ParentElement = null;
16869 }
16870
16871 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
16872 ISchemaElement ICreateChildren.CreateChild(string childName)
16873 {
16874 if (String.IsNullOrEmpty(childName))
16875 {
16876 throw new ArgumentNullException("childName");
16877 }
16878 ISchemaElement childValue = null;
16879 if (("SymbolPath" == childName))
16880 {
16881 childValue = new SymbolPath();
16882 }
16883 if (("TargetFile" == childName))
16884 {
16885 childValue = new TargetFile();
16886 }
16887 if ((null == childValue))
16888 {
16889 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
16890 }
16891 return childValue;
16892 }
16893
16894 /// <summary>
16895 /// Processes this element and all child elements into an XmlWriter.
16896 /// </summary>
16897 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
16898 public virtual void OutputXml(XmlWriter writer)
16899 {
16900 if ((null == writer))
16901 {
16902 throw new ArgumentNullException("writer");
16903 }
16904 writer.WriteStartElement("TargetImage", "http://wixtoolset.org/schemas/v4/wxs");
16905 if (this.idFieldSet)
16906 {
16907 writer.WriteAttributeString("Id", this.idField);
16908 }
16909 if (this.sourceFileFieldSet)
16910 {
16911 writer.WriteAttributeString("SourceFile", this.sourceFileField);
16912 }
16913 if (this.srcFieldSet)
16914 {
16915 writer.WriteAttributeString("src", this.srcField);
16916 }
16917 if (this.orderFieldSet)
16918 {
16919 writer.WriteAttributeString("Order", this.orderField.ToString(CultureInfo.InvariantCulture));
16920 }
16921 if (this.validationFieldSet)
16922 {
16923 writer.WriteAttributeString("Validation", this.validationField);
16924 }
16925 if (this.ignoreMissingFilesFieldSet)
16926 {
16927 if ((this.ignoreMissingFilesField == YesNoType.no))
16928 {
16929 writer.WriteAttributeString("IgnoreMissingFiles", "no");
16930 }
16931 if ((this.ignoreMissingFilesField == YesNoType.yes))
16932 {
16933 writer.WriteAttributeString("IgnoreMissingFiles", "yes");
16934 }
16935 }
16936 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
16937 {
16938 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
16939 childElement.OutputXml(writer);
16940 }
16941 writer.WriteEndElement();
16942 }
16943
16944 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
16945 void ISetAttributes.SetAttribute(string name, string value)
16946 {
16947 if (String.IsNullOrEmpty(name))
16948 {
16949 throw new ArgumentNullException("name");
16950 }
16951 if (("Id" == name))
16952 {
16953 this.idField = value;
16954 this.idFieldSet = true;
16955 }
16956 if (("SourceFile" == name))
16957 {
16958 this.sourceFileField = value;
16959 this.sourceFileFieldSet = true;
16960 }
16961 if (("src" == name))
16962 {
16963 this.srcField = value;
16964 this.srcFieldSet = true;
16965 }
16966 if (("Order" == name))
16967 {
16968 this.orderField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
16969 this.orderFieldSet = true;
16970 }
16971 if (("Validation" == name))
16972 {
16973 this.validationField = value;
16974 this.validationFieldSet = true;
16975 }
16976 if (("IgnoreMissingFiles" == name))
16977 {
16978 this.ignoreMissingFilesField = Enums.ParseYesNoType(value);
16979 this.ignoreMissingFilesFieldSet = true;
16980 }
16981 }
16982 }
16983
16984 /// <summary>
16985 /// Information about specific files in a target image.
16986 /// </summary>
16987 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
16988 public class TargetFile : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
16989 {
16990
16991 private ElementCollection children;
16992
16993 private string idField;
16994
16995 private bool idFieldSet;
16996
16997 private ISchemaElement parentElement;
16998
16999 public TargetFile()
17000 {
17001 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
17002 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(SymbolPath)));
17003 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice);
17004 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(IgnoreRange)));
17005 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ProtectRange)));
17006 childCollection0.AddCollection(childCollection1);
17007 this.children = childCollection0;
17008 }
17009
17010 public virtual IEnumerable Children
17011 {
17012 get
17013 {
17014 return this.children;
17015 }
17016 }
17017
17018 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
17019 public virtual IEnumerable this[System.Type childType]
17020 {
17021 get
17022 {
17023 return this.children.Filter(childType);
17024 }
17025 }
17026
17027 /// <summary>
17028 /// Foreign key into the File table.
17029 /// </summary>
17030 public string Id
17031 {
17032 get
17033 {
17034 return this.idField;
17035 }
17036 set
17037 {
17038 this.idFieldSet = true;
17039 this.idField = value;
17040 }
17041 }
17042
17043 public virtual ISchemaElement ParentElement
17044 {
17045 get
17046 {
17047 return this.parentElement;
17048 }
17049 set
17050 {
17051 this.parentElement = value;
17052 }
17053 }
17054
17055 public virtual void AddChild(ISchemaElement child)
17056 {
17057 if ((null == child))
17058 {
17059 throw new ArgumentNullException("child");
17060 }
17061 this.children.AddElement(child);
17062 child.ParentElement = this;
17063 }
17064
17065 public virtual void RemoveChild(ISchemaElement child)
17066 {
17067 if ((null == child))
17068 {
17069 throw new ArgumentNullException("child");
17070 }
17071 this.children.RemoveElement(child);
17072 child.ParentElement = null;
17073 }
17074
17075 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
17076 ISchemaElement ICreateChildren.CreateChild(string childName)
17077 {
17078 if (String.IsNullOrEmpty(childName))
17079 {
17080 throw new ArgumentNullException("childName");
17081 }
17082 ISchemaElement childValue = null;
17083 if (("SymbolPath" == childName))
17084 {
17085 childValue = new SymbolPath();
17086 }
17087 if (("IgnoreRange" == childName))
17088 {
17089 childValue = new IgnoreRange();
17090 }
17091 if (("ProtectRange" == childName))
17092 {
17093 childValue = new ProtectRange();
17094 }
17095 if ((null == childValue))
17096 {
17097 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
17098 }
17099 return childValue;
17100 }
17101
17102 /// <summary>
17103 /// Processes this element and all child elements into an XmlWriter.
17104 /// </summary>
17105 public virtual void OutputXml(XmlWriter writer)
17106 {
17107 if ((null == writer))
17108 {
17109 throw new ArgumentNullException("writer");
17110 }
17111 writer.WriteStartElement("TargetFile", "http://wixtoolset.org/schemas/v4/wxs");
17112 if (this.idFieldSet)
17113 {
17114 writer.WriteAttributeString("Id", this.idField);
17115 }
17116 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
17117 {
17118 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
17119 childElement.OutputXml(writer);
17120 }
17121 writer.WriteEndElement();
17122 }
17123
17124 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
17125 void ISetAttributes.SetAttribute(string name, string value)
17126 {
17127 if (String.IsNullOrEmpty(name))
17128 {
17129 throw new ArgumentNullException("name");
17130 }
17131 if (("Id" == name))
17132 {
17133 this.idField = value;
17134 this.idFieldSet = true;
17135 }
17136 }
17137 }
17138
17139 /// <summary>
17140 /// Specifies part of a file that is to be ignored during patching.
17141 /// </summary>
17142 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
17143 public class IgnoreRange : ISchemaElement, ISetAttributes
17144 {
17145
17146 private int offsetField;
17147
17148 private bool offsetFieldSet;
17149
17150 private int lengthField;
17151
17152 private bool lengthFieldSet;
17153
17154 private ISchemaElement parentElement;
17155
17156 /// <summary>
17157 /// Offset of the start of the range.
17158 /// </summary>
17159 public int Offset
17160 {
17161 get
17162 {
17163 return this.offsetField;
17164 }
17165 set
17166 {
17167 this.offsetFieldSet = true;
17168 this.offsetField = value;
17169 }
17170 }
17171
17172 /// <summary>
17173 /// Length of the range.
17174 /// </summary>
17175 public int Length
17176 {
17177 get
17178 {
17179 return this.lengthField;
17180 }
17181 set
17182 {
17183 this.lengthFieldSet = true;
17184 this.lengthField = value;
17185 }
17186 }
17187
17188 public virtual ISchemaElement ParentElement
17189 {
17190 get
17191 {
17192 return this.parentElement;
17193 }
17194 set
17195 {
17196 this.parentElement = value;
17197 }
17198 }
17199
17200 /// <summary>
17201 /// Processes this element and all child elements into an XmlWriter.
17202 /// </summary>
17203 public virtual void OutputXml(XmlWriter writer)
17204 {
17205 if ((null == writer))
17206 {
17207 throw new ArgumentNullException("writer");
17208 }
17209 writer.WriteStartElement("IgnoreRange", "http://wixtoolset.org/schemas/v4/wxs");
17210 if (this.offsetFieldSet)
17211 {
17212 writer.WriteAttributeString("Offset", this.offsetField.ToString(CultureInfo.InvariantCulture));
17213 }
17214 if (this.lengthFieldSet)
17215 {
17216 writer.WriteAttributeString("Length", this.lengthField.ToString(CultureInfo.InvariantCulture));
17217 }
17218 writer.WriteEndElement();
17219 }
17220
17221 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
17222 void ISetAttributes.SetAttribute(string name, string value)
17223 {
17224 if (String.IsNullOrEmpty(name))
17225 {
17226 throw new ArgumentNullException("name");
17227 }
17228 if (("Offset" == name))
17229 {
17230 this.offsetField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
17231 this.offsetFieldSet = true;
17232 }
17233 if (("Length" == name))
17234 {
17235 this.lengthField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
17236 this.lengthFieldSet = true;
17237 }
17238 }
17239 }
17240
17241 /// <summary>
17242 /// Specifies part of a file that cannot be overwritten during patching.
17243 /// </summary>
17244 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
17245 public class ProtectRange : ISchemaElement, ISetAttributes
17246 {
17247
17248 private int offsetField;
17249
17250 private bool offsetFieldSet;
17251
17252 private int lengthField;
17253
17254 private bool lengthFieldSet;
17255
17256 private ISchemaElement parentElement;
17257
17258 /// <summary>
17259 /// Offset of the start of the range.
17260 /// </summary>
17261 public int Offset
17262 {
17263 get
17264 {
17265 return this.offsetField;
17266 }
17267 set
17268 {
17269 this.offsetFieldSet = true;
17270 this.offsetField = value;
17271 }
17272 }
17273
17274 /// <summary>
17275 /// Length of the range.
17276 /// </summary>
17277 public int Length
17278 {
17279 get
17280 {
17281 return this.lengthField;
17282 }
17283 set
17284 {
17285 this.lengthFieldSet = true;
17286 this.lengthField = value;
17287 }
17288 }
17289
17290 public virtual ISchemaElement ParentElement
17291 {
17292 get
17293 {
17294 return this.parentElement;
17295 }
17296 set
17297 {
17298 this.parentElement = value;
17299 }
17300 }
17301
17302 /// <summary>
17303 /// Processes this element and all child elements into an XmlWriter.
17304 /// </summary>
17305 public virtual void OutputXml(XmlWriter writer)
17306 {
17307 if ((null == writer))
17308 {
17309 throw new ArgumentNullException("writer");
17310 }
17311 writer.WriteStartElement("ProtectRange", "http://wixtoolset.org/schemas/v4/wxs");
17312 if (this.offsetFieldSet)
17313 {
17314 writer.WriteAttributeString("Offset", this.offsetField.ToString(CultureInfo.InvariantCulture));
17315 }
17316 if (this.lengthFieldSet)
17317 {
17318 writer.WriteAttributeString("Length", this.lengthField.ToString(CultureInfo.InvariantCulture));
17319 }
17320 writer.WriteEndElement();
17321 }
17322
17323 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
17324 void ISetAttributes.SetAttribute(string name, string value)
17325 {
17326 if (String.IsNullOrEmpty(name))
17327 {
17328 throw new ArgumentNullException("name");
17329 }
17330 if (("Offset" == name))
17331 {
17332 this.offsetField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
17333 this.offsetFieldSet = true;
17334 }
17335 if (("Length" == name))
17336 {
17337 this.lengthField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
17338 this.lengthFieldSet = true;
17339 }
17340 }
17341 }
17342
17343 /// <summary>
17344 /// Specifies a file to be protected.
17345 /// </summary>
17346 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
17347 public class ProtectFile : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
17348 {
17349
17350 private ElementCollection children;
17351
17352 private string fileField;
17353
17354 private bool fileFieldSet;
17355
17356 private ISchemaElement parentElement;
17357
17358 public ProtectFile()
17359 {
17360 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
17361 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ProtectRange)));
17362 this.children = childCollection0;
17363 }
17364
17365 public virtual IEnumerable Children
17366 {
17367 get
17368 {
17369 return this.children;
17370 }
17371 }
17372
17373 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
17374 public virtual IEnumerable this[System.Type childType]
17375 {
17376 get
17377 {
17378 return this.children.Filter(childType);
17379 }
17380 }
17381
17382 /// <summary>
17383 /// Foreign key into the File table.
17384 /// </summary>
17385 public string File
17386 {
17387 get
17388 {
17389 return this.fileField;
17390 }
17391 set
17392 {
17393 this.fileFieldSet = true;
17394 this.fileField = value;
17395 }
17396 }
17397
17398 public virtual ISchemaElement ParentElement
17399 {
17400 get
17401 {
17402 return this.parentElement;
17403 }
17404 set
17405 {
17406 this.parentElement = value;
17407 }
17408 }
17409
17410 public virtual void AddChild(ISchemaElement child)
17411 {
17412 if ((null == child))
17413 {
17414 throw new ArgumentNullException("child");
17415 }
17416 this.children.AddElement(child);
17417 child.ParentElement = this;
17418 }
17419
17420 public virtual void RemoveChild(ISchemaElement child)
17421 {
17422 if ((null == child))
17423 {
17424 throw new ArgumentNullException("child");
17425 }
17426 this.children.RemoveElement(child);
17427 child.ParentElement = null;
17428 }
17429
17430 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
17431 ISchemaElement ICreateChildren.CreateChild(string childName)
17432 {
17433 if (String.IsNullOrEmpty(childName))
17434 {
17435 throw new ArgumentNullException("childName");
17436 }
17437 ISchemaElement childValue = null;
17438 if (("ProtectRange" == childName))
17439 {
17440 childValue = new ProtectRange();
17441 }
17442 if ((null == childValue))
17443 {
17444 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
17445 }
17446 return childValue;
17447 }
17448
17449 /// <summary>
17450 /// Processes this element and all child elements into an XmlWriter.
17451 /// </summary>
17452 public virtual void OutputXml(XmlWriter writer)
17453 {
17454 if ((null == writer))
17455 {
17456 throw new ArgumentNullException("writer");
17457 }
17458 writer.WriteStartElement("ProtectFile", "http://wixtoolset.org/schemas/v4/wxs");
17459 if (this.fileFieldSet)
17460 {
17461 writer.WriteAttributeString("File", this.fileField);
17462 }
17463 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
17464 {
17465 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
17466 childElement.OutputXml(writer);
17467 }
17468 writer.WriteEndElement();
17469 }
17470
17471 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
17472 void ISetAttributes.SetAttribute(string name, string value)
17473 {
17474 if (String.IsNullOrEmpty(name))
17475 {
17476 throw new ArgumentNullException("name");
17477 }
17478 if (("File" == name))
17479 {
17480 this.fileField = value;
17481 this.fileFieldSet = true;
17482 }
17483 }
17484 }
17485
17486 /// <summary>
17487 /// Contains information about specific files that are not part of a regular target image.
17488 /// </summary>
17489 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
17490 public class ExternalFile : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
17491 {
17492
17493 private ElementCollection children;
17494
17495 private string fileField;
17496
17497 private bool fileFieldSet;
17498
17499 private string sourceField;
17500
17501 private bool sourceFieldSet;
17502
17503 private string srcField;
17504
17505 private bool srcFieldSet;
17506
17507 private int orderField;
17508
17509 private bool orderFieldSet;
17510
17511 private ISchemaElement parentElement;
17512
17513 public ExternalFile()
17514 {
17515 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
17516 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ProtectRange)));
17517 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(SymbolPath)));
17518 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice);
17519 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(IgnoreRange)));
17520 childCollection0.AddCollection(childCollection1);
17521 this.children = childCollection0;
17522 }
17523
17524 public virtual IEnumerable Children
17525 {
17526 get
17527 {
17528 return this.children;
17529 }
17530 }
17531
17532 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
17533 public virtual IEnumerable this[System.Type childType]
17534 {
17535 get
17536 {
17537 return this.children.Filter(childType);
17538 }
17539 }
17540
17541 /// <summary>
17542 /// Foreign key into the File table.
17543 /// </summary>
17544 public string File
17545 {
17546 get
17547 {
17548 return this.fileField;
17549 }
17550 set
17551 {
17552 this.fileFieldSet = true;
17553 this.fileField = value;
17554 }
17555 }
17556
17557 /// <summary>
17558 /// Full path of the external file.
17559 /// </summary>
17560 public string Source
17561 {
17562 get
17563 {
17564 return this.sourceField;
17565 }
17566 set
17567 {
17568 this.sourceFieldSet = true;
17569 this.sourceField = value;
17570 }
17571 }
17572
17573 [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
17574 public string src
17575 {
17576 get
17577 {
17578 return this.srcField;
17579 }
17580 set
17581 {
17582 this.srcFieldSet = true;
17583 this.srcField = value;
17584 }
17585 }
17586
17587 /// <summary>
17588 /// Specifies the order of the external files to use when creating the patch.
17589 /// </summary>
17590 public int Order
17591 {
17592 get
17593 {
17594 return this.orderField;
17595 }
17596 set
17597 {
17598 this.orderFieldSet = true;
17599 this.orderField = value;
17600 }
17601 }
17602
17603 public virtual ISchemaElement ParentElement
17604 {
17605 get
17606 {
17607 return this.parentElement;
17608 }
17609 set
17610 {
17611 this.parentElement = value;
17612 }
17613 }
17614
17615 public virtual void AddChild(ISchemaElement child)
17616 {
17617 if ((null == child))
17618 {
17619 throw new ArgumentNullException("child");
17620 }
17621 this.children.AddElement(child);
17622 child.ParentElement = this;
17623 }
17624
17625 public virtual void RemoveChild(ISchemaElement child)
17626 {
17627 if ((null == child))
17628 {
17629 throw new ArgumentNullException("child");
17630 }
17631 this.children.RemoveElement(child);
17632 child.ParentElement = null;
17633 }
17634
17635 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
17636 ISchemaElement ICreateChildren.CreateChild(string childName)
17637 {
17638 if (String.IsNullOrEmpty(childName))
17639 {
17640 throw new ArgumentNullException("childName");
17641 }
17642 ISchemaElement childValue = null;
17643 if (("ProtectRange" == childName))
17644 {
17645 childValue = new ProtectRange();
17646 }
17647 if (("SymbolPath" == childName))
17648 {
17649 childValue = new SymbolPath();
17650 }
17651 if (("IgnoreRange" == childName))
17652 {
17653 childValue = new IgnoreRange();
17654 }
17655 if ((null == childValue))
17656 {
17657 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
17658 }
17659 return childValue;
17660 }
17661
17662 /// <summary>
17663 /// Processes this element and all child elements into an XmlWriter.
17664 /// </summary>
17665 public virtual void OutputXml(XmlWriter writer)
17666 {
17667 if ((null == writer))
17668 {
17669 throw new ArgumentNullException("writer");
17670 }
17671 writer.WriteStartElement("ExternalFile", "http://wixtoolset.org/schemas/v4/wxs");
17672 if (this.fileFieldSet)
17673 {
17674 writer.WriteAttributeString("File", this.fileField);
17675 }
17676 if (this.sourceFieldSet)
17677 {
17678 writer.WriteAttributeString("Source", this.sourceField);
17679 }
17680 if (this.srcFieldSet)
17681 {
17682 writer.WriteAttributeString("src", this.srcField);
17683 }
17684 if (this.orderFieldSet)
17685 {
17686 writer.WriteAttributeString("Order", this.orderField.ToString(CultureInfo.InvariantCulture));
17687 }
17688 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
17689 {
17690 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
17691 childElement.OutputXml(writer);
17692 }
17693 writer.WriteEndElement();
17694 }
17695
17696 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
17697 void ISetAttributes.SetAttribute(string name, string value)
17698 {
17699 if (String.IsNullOrEmpty(name))
17700 {
17701 throw new ArgumentNullException("name");
17702 }
17703 if (("File" == name))
17704 {
17705 this.fileField = value;
17706 this.fileFieldSet = true;
17707 }
17708 if (("Source" == name))
17709 {
17710 this.sourceField = value;
17711 this.sourceFieldSet = true;
17712 }
17713 if (("src" == name))
17714 {
17715 this.srcField = value;
17716 this.srcFieldSet = true;
17717 }
17718 if (("Order" == name))
17719 {
17720 this.orderField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
17721 this.orderFieldSet = true;
17722 }
17723 }
17724 }
17725
17726 /// <summary>
17727 /// Specifies files to either ignore or to specify optional data about a file.
17728 /// </summary>
17729 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
17730 public class UpgradeFile : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
17731 {
17732
17733 private ElementCollection children;
17734
17735 private string fileField;
17736
17737 private bool fileFieldSet;
17738
17739 private YesNoType ignoreField;
17740
17741 private bool ignoreFieldSet;
17742
17743 private YesNoType allowIgnoreOnErrorField;
17744
17745 private bool allowIgnoreOnErrorFieldSet;
17746
17747 private YesNoType wholeFileField;
17748
17749 private bool wholeFileFieldSet;
17750
17751 private ISchemaElement parentElement;
17752
17753 public UpgradeFile()
17754 {
17755 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
17756 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath)));
17757 this.children = childCollection0;
17758 }
17759
17760 public virtual IEnumerable Children
17761 {
17762 get
17763 {
17764 return this.children;
17765 }
17766 }
17767
17768 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
17769 public virtual IEnumerable this[System.Type childType]
17770 {
17771 get
17772 {
17773 return this.children.Filter(childType);
17774 }
17775 }
17776
17777 /// <summary>
17778 /// Foreign key into the File table.
17779 /// </summary>
17780 public string File
17781 {
17782 get
17783 {
17784 return this.fileField;
17785 }
17786 set
17787 {
17788 this.fileFieldSet = true;
17789 this.fileField = value;
17790 }
17791 }
17792
17793 /// <summary>
17794 /// If yes, the file is ignored during patching, and the next two attributes are ignored.
17795 /// </summary>
17796 public YesNoType Ignore
17797 {
17798 get
17799 {
17800 return this.ignoreField;
17801 }
17802 set
17803 {
17804 this.ignoreFieldSet = true;
17805 this.ignoreField = value;
17806 }
17807 }
17808
17809 /// <summary>
17810 /// Specifies whether patching this file is vital.
17811 /// </summary>
17812 public YesNoType AllowIgnoreOnError
17813 {
17814 get
17815 {
17816 return this.allowIgnoreOnErrorField;
17817 }
17818 set
17819 {
17820 this.allowIgnoreOnErrorFieldSet = true;
17821 this.allowIgnoreOnErrorField = value;
17822 }
17823 }
17824
17825 /// <summary>
17826 /// Whether the whole file should be installed, rather than creating a binary patch.
17827 /// </summary>
17828 public YesNoType WholeFile
17829 {
17830 get
17831 {
17832 return this.wholeFileField;
17833 }
17834 set
17835 {
17836 this.wholeFileFieldSet = true;
17837 this.wholeFileField = value;
17838 }
17839 }
17840
17841 public virtual ISchemaElement ParentElement
17842 {
17843 get
17844 {
17845 return this.parentElement;
17846 }
17847 set
17848 {
17849 this.parentElement = value;
17850 }
17851 }
17852
17853 public virtual void AddChild(ISchemaElement child)
17854 {
17855 if ((null == child))
17856 {
17857 throw new ArgumentNullException("child");
17858 }
17859 this.children.AddElement(child);
17860 child.ParentElement = this;
17861 }
17862
17863 public virtual void RemoveChild(ISchemaElement child)
17864 {
17865 if ((null == child))
17866 {
17867 throw new ArgumentNullException("child");
17868 }
17869 this.children.RemoveElement(child);
17870 child.ParentElement = null;
17871 }
17872
17873 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
17874 ISchemaElement ICreateChildren.CreateChild(string childName)
17875 {
17876 if (String.IsNullOrEmpty(childName))
17877 {
17878 throw new ArgumentNullException("childName");
17879 }
17880 ISchemaElement childValue = null;
17881 if (("SymbolPath" == childName))
17882 {
17883 childValue = new SymbolPath();
17884 }
17885 if ((null == childValue))
17886 {
17887 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
17888 }
17889 return childValue;
17890 }
17891
17892 /// <summary>
17893 /// Processes this element and all child elements into an XmlWriter.
17894 /// </summary>
17895 public virtual void OutputXml(XmlWriter writer)
17896 {
17897 if ((null == writer))
17898 {
17899 throw new ArgumentNullException("writer");
17900 }
17901 writer.WriteStartElement("UpgradeFile", "http://wixtoolset.org/schemas/v4/wxs");
17902 if (this.fileFieldSet)
17903 {
17904 writer.WriteAttributeString("File", this.fileField);
17905 }
17906 if (this.ignoreFieldSet)
17907 {
17908 if ((this.ignoreField == YesNoType.no))
17909 {
17910 writer.WriteAttributeString("Ignore", "no");
17911 }
17912 if ((this.ignoreField == YesNoType.yes))
17913 {
17914 writer.WriteAttributeString("Ignore", "yes");
17915 }
17916 }
17917 if (this.allowIgnoreOnErrorFieldSet)
17918 {
17919 if ((this.allowIgnoreOnErrorField == YesNoType.no))
17920 {
17921 writer.WriteAttributeString("AllowIgnoreOnError", "no");
17922 }
17923 if ((this.allowIgnoreOnErrorField == YesNoType.yes))
17924 {
17925 writer.WriteAttributeString("AllowIgnoreOnError", "yes");
17926 }
17927 }
17928 if (this.wholeFileFieldSet)
17929 {
17930 if ((this.wholeFileField == YesNoType.no))
17931 {
17932 writer.WriteAttributeString("WholeFile", "no");
17933 }
17934 if ((this.wholeFileField == YesNoType.yes))
17935 {
17936 writer.WriteAttributeString("WholeFile", "yes");
17937 }
17938 }
17939 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
17940 {
17941 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
17942 childElement.OutputXml(writer);
17943 }
17944 writer.WriteEndElement();
17945 }
17946
17947 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
17948 void ISetAttributes.SetAttribute(string name, string value)
17949 {
17950 if (String.IsNullOrEmpty(name))
17951 {
17952 throw new ArgumentNullException("name");
17953 }
17954 if (("File" == name))
17955 {
17956 this.fileField = value;
17957 this.fileFieldSet = true;
17958 }
17959 if (("Ignore" == name))
17960 {
17961 this.ignoreField = Enums.ParseYesNoType(value);
17962 this.ignoreFieldSet = true;
17963 }
17964 if (("AllowIgnoreOnError" == name))
17965 {
17966 this.allowIgnoreOnErrorField = Enums.ParseYesNoType(value);
17967 this.allowIgnoreOnErrorFieldSet = true;
17968 }
17969 if (("WholeFile" == name))
17970 {
17971 this.wholeFileField = Enums.ParseYesNoType(value);
17972 this.wholeFileFieldSet = true;
17973 }
17974 }
17975 }
17976
17977 /// <summary>
17978 /// A path to symbols.
17979 /// </summary>
17980 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
17981 public class SymbolPath : ISchemaElement, ISetAttributes
17982 {
17983
17984 private string pathField;
17985
17986 private bool pathFieldSet;
17987
17988 private ISchemaElement parentElement;
17989
17990 /// <summary>
17991 /// The path.
17992 /// </summary>
17993 public string Path
17994 {
17995 get
17996 {
17997 return this.pathField;
17998 }
17999 set
18000 {
18001 this.pathFieldSet = true;
18002 this.pathField = value;
18003 }
18004 }
18005
18006 public virtual ISchemaElement ParentElement
18007 {
18008 get
18009 {
18010 return this.parentElement;
18011 }
18012 set
18013 {
18014 this.parentElement = value;
18015 }
18016 }
18017
18018 /// <summary>
18019 /// Processes this element and all child elements into an XmlWriter.
18020 /// </summary>
18021 public virtual void OutputXml(XmlWriter writer)
18022 {
18023 if ((null == writer))
18024 {
18025 throw new ArgumentNullException("writer");
18026 }
18027 writer.WriteStartElement("SymbolPath", "http://wixtoolset.org/schemas/v4/wxs");
18028 if (this.pathFieldSet)
18029 {
18030 writer.WriteAttributeString("Path", this.pathField);
18031 }
18032 writer.WriteEndElement();
18033 }
18034
18035 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
18036 void ISetAttributes.SetAttribute(string name, string value)
18037 {
18038 if (String.IsNullOrEmpty(name))
18039 {
18040 throw new ArgumentNullException("name");
18041 }
18042 if (("Path" == name))
18043 {
18044 this.pathField = value;
18045 this.pathFieldSet = true;
18046 }
18047 }
18048 }
18049
18050 /// <summary>
18051 /// Properties about the package to be placed in the Summary Information Stream. These are
18052 /// visible from COM through the IStream interface, and these properties can be seen on the package in Explorer.
18053 /// </summary>
18054 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
18055 public class Package : ISchemaElement, ISetAttributes
18056 {
18057
18058 private string idField;
18059
18060 private bool idFieldSet;
18061
18062 private YesNoType adminImageField;
18063
18064 private bool adminImageFieldSet;
18065
18066 private string commentsField;
18067
18068 private bool commentsFieldSet;
18069
18070 private YesNoType compressedField;
18071
18072 private bool compressedFieldSet;
18073
18074 private string descriptionField;
18075
18076 private bool descriptionFieldSet;
18077
18078 private InstallPrivilegesType installPrivilegesField;
18079
18080 private bool installPrivilegesFieldSet;
18081
18082 private InstallScopeType installScopeField;
18083
18084 private bool installScopeFieldSet;
18085
18086 private int installerVersionField;
18087
18088 private bool installerVersionFieldSet;
18089
18090 private string keywordsField;
18091
18092 private bool keywordsFieldSet;
18093
18094 private string languagesField;
18095
18096 private bool languagesFieldSet;
18097
18098 private string manufacturerField;
18099
18100 private bool manufacturerFieldSet;
18101
18102 private string platformsField;
18103
18104 private bool platformsFieldSet;
18105
18106 private PlatformType platformField;
18107
18108 private bool platformFieldSet;
18109
18110 private YesNoDefaultType readOnlyField;
18111
18112 private bool readOnlyFieldSet;
18113
18114 private YesNoType shortNamesField;
18115
18116 private bool shortNamesFieldSet;
18117
18118 private string summaryCodepageField;
18119
18120 private bool summaryCodepageFieldSet;
18121
18122 private ISchemaElement parentElement;
18123
18124 /// <summary>
18125 /// The package code GUID for a product or merge module.
18126 /// When compiling a product, this attribute should not be set in order to allow the package
18127 /// code to be generated for each build.
18128 /// When compiling a merge module, this attribute must be set to the modularization guid.
18129 /// </summary>
18130 public string Id
18131 {
18132 get
18133 {
18134 return this.idField;
18135 }
18136 set
18137 {
18138 this.idFieldSet = true;
18139 this.idField = value;
18140 }
18141 }
18142
18143 /// <summary>
18144 /// Set to 'yes' if the source is an admin image.
18145 /// </summary>
18146 public YesNoType AdminImage
18147 {
18148 get
18149 {
18150 return this.adminImageField;
18151 }
18152 set
18153 {
18154 this.adminImageFieldSet = true;
18155 this.adminImageField = value;
18156 }
18157 }
18158
18159 /// <summary>
18160 /// Optional comments for browsing.
18161 /// </summary>
18162 public string Comments
18163 {
18164 get
18165 {
18166 return this.commentsField;
18167 }
18168 set
18169 {
18170 this.commentsFieldSet = true;
18171 this.commentsField = value;
18172 }
18173 }
18174
18175 /// <summary>
18176 /// Set to 'yes' to have compressed files in the source.
18177 /// This attribute cannot be set for merge modules.
18178 /// </summary>
18179 public YesNoType Compressed
18180 {
18181 get
18182 {
18183 return this.compressedField;
18184 }
18185 set
18186 {
18187 this.compressedFieldSet = true;
18188 this.compressedField = value;
18189 }
18190 }
18191
18192 /// <summary>
18193 /// The product full name or description.
18194 /// </summary>
18195 public string Description
18196 {
18197 get
18198 {
18199 return this.descriptionField;
18200 }
18201 set
18202 {
18203 this.descriptionFieldSet = true;
18204 this.descriptionField = value;
18205 }
18206 }
18207
18208 /// <summary>
18209 /// Use this attribute to specify the priviliges required to install the package on Windows Vista and above.
18210 /// </summary>
18211 public InstallPrivilegesType InstallPrivileges
18212 {
18213 get
18214 {
18215 return this.installPrivilegesField;
18216 }
18217 set
18218 {
18219 this.installPrivilegesFieldSet = true;
18220 this.installPrivilegesField = value;
18221 }
18222 }
18223
18224 /// <summary>
18225 /// Use this attribute to specify the installation scope of this package: per-machine or per-user.
18226 /// </summary>
18227 public InstallScopeType InstallScope
18228 {
18229 get
18230 {
18231 return this.installScopeField;
18232 }
18233 set
18234 {
18235 this.installScopeFieldSet = true;
18236 this.installScopeField = value;
18237 }
18238 }
18239
18240 /// <summary>
18241 /// The minimum version of the Windows Installer required to install this package. Take the major version of the required Windows Installer
18242 /// and multiply by a 100 then add the minor version of the Windows Installer. For example, "200" would represent Windows Installer 2.0 and
18243 /// "405" would represent Windows Installer 4.5. For 64-bit Windows Installer packages, this property is set to 200 by default as
18244 /// Windows Installer 2.0 was the first version to support 64-bit packages.
18245 /// </summary>
18246 public int InstallerVersion
18247 {
18248 get
18249 {
18250 return this.installerVersionField;
18251 }
18252 set
18253 {
18254 this.installerVersionFieldSet = true;
18255 this.installerVersionField = value;
18256 }
18257 }
18258
18259 /// <summary>
18260 /// Optional keywords for browsing.
18261 /// </summary>
18262 public string Keywords
18263 {
18264 get
18265 {
18266 return this.keywordsField;
18267 }
18268 set
18269 {
18270 this.keywordsFieldSet = true;
18271 this.keywordsField = value;
18272 }
18273 }
18274
18275 /// <summary>
18276 /// The list of language IDs (LCIDs) supported in the package.
18277 /// </summary>
18278 public string Languages
18279 {
18280 get
18281 {
18282 return this.languagesField;
18283 }
18284 set
18285 {
18286 this.languagesFieldSet = true;
18287 this.languagesField = value;
18288 }
18289 }
18290
18291 /// <summary>
18292 /// The vendor releasing the package.
18293 /// </summary>
18294 public string Manufacturer
18295 {
18296 get
18297 {
18298 return this.manufacturerField;
18299 }
18300 set
18301 {
18302 this.manufacturerFieldSet = true;
18303 this.manufacturerField = value;
18304 }
18305 }
18306
18307 /// <summary>
18308 /// The list of platforms supported by the package. This attribute has been deprecated.
18309 /// Specify the -arch switch at the candle.exe command line or the InstallerPlatform
18310 /// property in a .wixproj MSBuild project.
18311 /// </summary>
18312 public string Platforms
18313 {
18314 get
18315 {
18316 return this.platformsField;
18317 }
18318 set
18319 {
18320 this.platformsFieldSet = true;
18321 this.platformsField = value;
18322 }
18323 }
18324
18325 /// <summary>
18326 /// The platform supported by the package. Use of this attribute is discouraged; instead,
18327 /// specify the -arch switch at the candle.exe command line or the InstallerPlatform
18328 /// property in a .wixproj MSBuild project.
18329 /// </summary>
18330 public PlatformType Platform
18331 {
18332 get
18333 {
18334 return this.platformField;
18335 }
18336 set
18337 {
18338 this.platformFieldSet = true;
18339 this.platformField = value;
18340 }
18341 }
18342
18343 /// <summary>
18344 /// The value of this attribute conveys whether the package should be opened as read-only.
18345 /// A database editing tool should not modify a read-only enforced database and should
18346 /// issue a warning at attempts to modify a read-only recommended database.
18347 /// </summary>
18348 public YesNoDefaultType ReadOnly
18349 {
18350 get
18351 {
18352 return this.readOnlyField;
18353 }
18354 set
18355 {
18356 this.readOnlyFieldSet = true;
18357 this.readOnlyField = value;
18358 }
18359 }
18360
18361 /// <summary>
18362 /// Set to 'yes' to have short filenames in the source.
18363 /// </summary>
18364 public YesNoType ShortNames
18365 {
18366 get
18367 {
18368 return this.shortNamesField;
18369 }
18370 set
18371 {
18372 this.shortNamesFieldSet = true;
18373 this.shortNamesField = value;
18374 }
18375 }
18376
18377 /// <summary>
18378 /// The code page integer value or web name for summary info strings only. See remarks for more information.
18379 /// </summary>
18380 public string SummaryCodepage
18381 {
18382 get
18383 {
18384 return this.summaryCodepageField;
18385 }
18386 set
18387 {
18388 this.summaryCodepageFieldSet = true;
18389 this.summaryCodepageField = value;
18390 }
18391 }
18392
18393 public virtual ISchemaElement ParentElement
18394 {
18395 get
18396 {
18397 return this.parentElement;
18398 }
18399 set
18400 {
18401 this.parentElement = value;
18402 }
18403 }
18404
18405 /// <summary>
18406 /// Parses a InstallPrivilegesType from a string.
18407 /// </summary>
18408 public static InstallPrivilegesType ParseInstallPrivilegesType(string value)
18409 {
18410 InstallPrivilegesType parsedValue;
18411 Package.TryParseInstallPrivilegesType(value, out parsedValue);
18412 return parsedValue;
18413 }
18414
18415 /// <summary>
18416 /// Tries to parse a InstallPrivilegesType from a string.
18417 /// </summary>
18418 public static bool TryParseInstallPrivilegesType(string value, out InstallPrivilegesType parsedValue)
18419 {
18420 parsedValue = InstallPrivilegesType.NotSet;
18421 if (string.IsNullOrEmpty(value))
18422 {
18423 return false;
18424 }
18425 if (("limited" == value))
18426 {
18427 parsedValue = InstallPrivilegesType.limited;
18428 }
18429 else
18430 {
18431 if (("elevated" == value))
18432 {
18433 parsedValue = InstallPrivilegesType.elevated;
18434 }
18435 else
18436 {
18437 parsedValue = InstallPrivilegesType.IllegalValue;
18438 return false;
18439 }
18440 }
18441 return true;
18442 }
18443
18444 /// <summary>
18445 /// Parses a InstallScopeType from a string.
18446 /// </summary>
18447 public static InstallScopeType ParseInstallScopeType(string value)
18448 {
18449 InstallScopeType parsedValue;
18450 Package.TryParseInstallScopeType(value, out parsedValue);
18451 return parsedValue;
18452 }
18453
18454 /// <summary>
18455 /// Tries to parse a InstallScopeType from a string.
18456 /// </summary>
18457 public static bool TryParseInstallScopeType(string value, out InstallScopeType parsedValue)
18458 {
18459 parsedValue = InstallScopeType.NotSet;
18460 if (string.IsNullOrEmpty(value))
18461 {
18462 return false;
18463 }
18464 if (("perMachine" == value))
18465 {
18466 parsedValue = InstallScopeType.perMachine;
18467 }
18468 else
18469 {
18470 if (("perUser" == value))
18471 {
18472 parsedValue = InstallScopeType.perUser;
18473 }
18474 else
18475 {
18476 parsedValue = InstallScopeType.IllegalValue;
18477 return false;
18478 }
18479 }
18480 return true;
18481 }
18482
18483 /// <summary>
18484 /// Parses a PlatformType from a string.
18485 /// </summary>
18486 public static PlatformType ParsePlatformType(string value)
18487 {
18488 PlatformType parsedValue;
18489 Package.TryParsePlatformType(value, out parsedValue);
18490 return parsedValue;
18491 }
18492
18493 /// <summary>
18494 /// Tries to parse a PlatformType from a string.
18495 /// </summary>
18496 public static bool TryParsePlatformType(string value, out PlatformType parsedValue)
18497 {
18498 parsedValue = PlatformType.NotSet;
18499 if (string.IsNullOrEmpty(value))
18500 {
18501 return false;
18502 }
18503 if (("x86" == value))
18504 {
18505 parsedValue = PlatformType.x86;
18506 }
18507 else
18508 {
18509 if (("ia64" == value))
18510 {
18511 parsedValue = PlatformType.ia64;
18512 }
18513 else
18514 {
18515 if (("x64" == value))
18516 {
18517 parsedValue = PlatformType.x64;
18518 }
18519 else
18520 {
18521 if (("arm" == value))
18522 {
18523 parsedValue = PlatformType.arm;
18524 }
18525 else
18526 {
18527 if (("intel" == value))
18528 {
18529 parsedValue = PlatformType.intel;
18530 }
18531 else
18532 {
18533 if (("intel64" == value))
18534 {
18535 parsedValue = PlatformType.intel64;
18536 }
18537 else
18538 {
18539 parsedValue = PlatformType.IllegalValue;
18540 return false;
18541 }
18542 }
18543 }
18544 }
18545 }
18546 }
18547 return true;
18548 }
18549
18550 /// <summary>
18551 /// Processes this element and all child elements into an XmlWriter.
18552 /// </summary>
18553 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
18554 public virtual void OutputXml(XmlWriter writer)
18555 {
18556 if ((null == writer))
18557 {
18558 throw new ArgumentNullException("writer");
18559 }
18560 writer.WriteStartElement("Package", "http://wixtoolset.org/schemas/v4/wxs");
18561 if (this.idFieldSet)
18562 {
18563 writer.WriteAttributeString("Id", this.idField);
18564 }
18565 if (this.adminImageFieldSet)
18566 {
18567 if ((this.adminImageField == YesNoType.no))
18568 {
18569 writer.WriteAttributeString("AdminImage", "no");
18570 }
18571 if ((this.adminImageField == YesNoType.yes))
18572 {
18573 writer.WriteAttributeString("AdminImage", "yes");
18574 }
18575 }
18576 if (this.commentsFieldSet)
18577 {
18578 writer.WriteAttributeString("Comments", this.commentsField);
18579 }
18580 if (this.compressedFieldSet)
18581 {
18582 if ((this.compressedField == YesNoType.no))
18583 {
18584 writer.WriteAttributeString("Compressed", "no");
18585 }
18586 if ((this.compressedField == YesNoType.yes))
18587 {
18588 writer.WriteAttributeString("Compressed", "yes");
18589 }
18590 }
18591 if (this.descriptionFieldSet)
18592 {
18593 writer.WriteAttributeString("Description", this.descriptionField);
18594 }
18595 if (this.installPrivilegesFieldSet)
18596 {
18597 if ((this.installPrivilegesField == InstallPrivilegesType.limited))
18598 {
18599 writer.WriteAttributeString("InstallPrivileges", "limited");
18600 }
18601 if ((this.installPrivilegesField == InstallPrivilegesType.elevated))
18602 {
18603 writer.WriteAttributeString("InstallPrivileges", "elevated");
18604 }
18605 }
18606 if (this.installScopeFieldSet)
18607 {
18608 if ((this.installScopeField == InstallScopeType.perMachine))
18609 {
18610 writer.WriteAttributeString("InstallScope", "perMachine");
18611 }
18612 if ((this.installScopeField == InstallScopeType.perUser))
18613 {
18614 writer.WriteAttributeString("InstallScope", "perUser");
18615 }
18616 }
18617 if (this.installerVersionFieldSet)
18618 {
18619 writer.WriteAttributeString("InstallerVersion", this.installerVersionField.ToString(CultureInfo.InvariantCulture));
18620 }
18621 if (this.keywordsFieldSet)
18622 {
18623 writer.WriteAttributeString("Keywords", this.keywordsField);
18624 }
18625 if (this.languagesFieldSet)
18626 {
18627 writer.WriteAttributeString("Languages", this.languagesField);
18628 }
18629 if (this.manufacturerFieldSet)
18630 {
18631 writer.WriteAttributeString("Manufacturer", this.manufacturerField);
18632 }
18633 if (this.platformsFieldSet)
18634 {
18635 writer.WriteAttributeString("Platforms", this.platformsField);
18636 }
18637 if (this.platformFieldSet)
18638 {
18639 if ((this.platformField == PlatformType.x86))
18640 {
18641 writer.WriteAttributeString("Platform", "x86");
18642 }
18643 if ((this.platformField == PlatformType.ia64))
18644 {
18645 writer.WriteAttributeString("Platform", "ia64");
18646 }
18647 if ((this.platformField == PlatformType.x64))
18648 {
18649 writer.WriteAttributeString("Platform", "x64");
18650 }
18651 if ((this.platformField == PlatformType.arm))
18652 {
18653 writer.WriteAttributeString("Platform", "arm");
18654 }
18655 if ((this.platformField == PlatformType.intel))
18656 {
18657 writer.WriteAttributeString("Platform", "intel");
18658 }
18659 if ((this.platformField == PlatformType.intel64))
18660 {
18661 writer.WriteAttributeString("Platform", "intel64");
18662 }
18663 }
18664 if (this.readOnlyFieldSet)
18665 {
18666 if ((this.readOnlyField == YesNoDefaultType.@default))
18667 {
18668 writer.WriteAttributeString("ReadOnly", "default");
18669 }
18670 if ((this.readOnlyField == YesNoDefaultType.no))
18671 {
18672 writer.WriteAttributeString("ReadOnly", "no");
18673 }
18674 if ((this.readOnlyField == YesNoDefaultType.yes))
18675 {
18676 writer.WriteAttributeString("ReadOnly", "yes");
18677 }
18678 }
18679 if (this.shortNamesFieldSet)
18680 {
18681 if ((this.shortNamesField == YesNoType.no))
18682 {
18683 writer.WriteAttributeString("ShortNames", "no");
18684 }
18685 if ((this.shortNamesField == YesNoType.yes))
18686 {
18687 writer.WriteAttributeString("ShortNames", "yes");
18688 }
18689 }
18690 if (this.summaryCodepageFieldSet)
18691 {
18692 writer.WriteAttributeString("SummaryCodepage", this.summaryCodepageField);
18693 }
18694 writer.WriteEndElement();
18695 }
18696
18697 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
18698 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
18699 void ISetAttributes.SetAttribute(string name, string value)
18700 {
18701 if (String.IsNullOrEmpty(name))
18702 {
18703 throw new ArgumentNullException("name");
18704 }
18705 if (("Id" == name))
18706 {
18707 this.idField = value;
18708 this.idFieldSet = true;
18709 }
18710 if (("AdminImage" == name))
18711 {
18712 this.adminImageField = Enums.ParseYesNoType(value);
18713 this.adminImageFieldSet = true;
18714 }
18715 if (("Comments" == name))
18716 {
18717 this.commentsField = value;
18718 this.commentsFieldSet = true;
18719 }
18720 if (("Compressed" == name))
18721 {
18722 this.compressedField = Enums.ParseYesNoType(value);
18723 this.compressedFieldSet = true;
18724 }
18725 if (("Description" == name))
18726 {
18727 this.descriptionField = value;
18728 this.descriptionFieldSet = true;
18729 }
18730 if (("InstallPrivileges" == name))
18731 {
18732 this.installPrivilegesField = Package.ParseInstallPrivilegesType(value);
18733 this.installPrivilegesFieldSet = true;
18734 }
18735 if (("InstallScope" == name))
18736 {
18737 this.installScopeField = Package.ParseInstallScopeType(value);
18738 this.installScopeFieldSet = true;
18739 }
18740 if (("InstallerVersion" == name))
18741 {
18742 this.installerVersionField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
18743 this.installerVersionFieldSet = true;
18744 }
18745 if (("Keywords" == name))
18746 {
18747 this.keywordsField = value;
18748 this.keywordsFieldSet = true;
18749 }
18750 if (("Languages" == name))
18751 {
18752 this.languagesField = value;
18753 this.languagesFieldSet = true;
18754 }
18755 if (("Manufacturer" == name))
18756 {
18757 this.manufacturerField = value;
18758 this.manufacturerFieldSet = true;
18759 }
18760 if (("Platforms" == name))
18761 {
18762 this.platformsField = value;
18763 this.platformsFieldSet = true;
18764 }
18765 if (("Platform" == name))
18766 {
18767 this.platformField = Package.ParsePlatformType(value);
18768 this.platformFieldSet = true;
18769 }
18770 if (("ReadOnly" == name))
18771 {
18772 this.readOnlyField = Enums.ParseYesNoDefaultType(value);
18773 this.readOnlyFieldSet = true;
18774 }
18775 if (("ShortNames" == name))
18776 {
18777 this.shortNamesField = Enums.ParseYesNoType(value);
18778 this.shortNamesFieldSet = true;
18779 }
18780 if (("SummaryCodepage" == name))
18781 {
18782 this.summaryCodepageField = value;
18783 this.summaryCodepageFieldSet = true;
18784 }
18785 }
18786
18787 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
18788 public enum InstallPrivilegesType
18789 {
18790
18791 IllegalValue = int.MaxValue,
18792
18793 NotSet = -1,
18794
18795 /// <summary>
18796 /// Set this value to declare that the package does not require elevated privileges to install.
18797 /// </summary>
18798 limited,
18799
18800 /// <summary>
18801 /// Set this value to declare that the package requires elevated privileges to install.
18802 /// This is the default value.
18803 /// </summary>
18804 elevated,
18805 }
18806
18807 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
18808 public enum InstallScopeType
18809 {
18810
18811 IllegalValue = int.MaxValue,
18812
18813 NotSet = -1,
18814
18815 /// <summary>
18816 /// Set this value to declare that the package is a per-machine installation and requires elevated privileges to install.
18817 /// Sets the ALLUSERS property to 1.
18818 /// </summary>
18819 perMachine,
18820
18821 /// <summary>
18822 /// Set this value to declare that the package is a per-user installation and does not require elevated privileges to install.
18823 /// Sets the package's InstallPrivileges attribute to "limited."
18824 /// </summary>
18825 perUser,
18826 }
18827
18828 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
18829 public enum PlatformType
18830 {
18831
18832 IllegalValue = int.MaxValue,
18833
18834 NotSet = -1,
18835
18836 /// <summary>
18837 /// Set this value to declare that the package is an x86 package.
18838 /// </summary>
18839 x86,
18840
18841 /// <summary>
18842 /// Set this value to declare that the package is an ia64 package.
18843 /// This value requires that the InstallerVersion property be set to 200 or greater.
18844 /// </summary>
18845 ia64,
18846
18847 /// <summary>
18848 /// Set this value to declare that the package is an x64 package.
18849 /// This value requires that the InstallerVersion property be set to 200 or greater.
18850 /// </summary>
18851 x64,
18852
18853 /// <summary>
18854 /// Set this value to declare that the package is an arm package.
18855 /// This value requires that the InstallerVersion property be set to 500 or greater.
18856 /// </summary>
18857 arm,
18858
18859 /// <summary>
18860 /// This value has been deprecated. Use "x86" instead.
18861 /// </summary>
18862 intel,
18863
18864 /// <summary>
18865 /// This value has been deprecated. Use "ia64" instead.
18866 /// </summary>
18867 intel64,
18868 }
18869 }
18870
18871 /// <summary>
18872 /// The MsiAssemblyName table specifies the schema for the elements of a strong assembly cache name for a .NET Framework or Win32 assembly.
18873 /// Consider using the Assembly attribute on File element to have the toolset populate these entries automatically.
18874 /// </summary>
18875 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
18876 public class AssemblyName : ISchemaElement, ISetAttributes
18877 {
18878
18879 private string idField;
18880
18881 private bool idFieldSet;
18882
18883 private string valueField;
18884
18885 private bool valueFieldSet;
18886
18887 private ISchemaElement parentElement;
18888
18889 /// <summary>
18890 /// Name of the attribute associated with the value specified in the Value column.
18891 /// </summary>
18892 public string Id
18893 {
18894 get
18895 {
18896 return this.idField;
18897 }
18898 set
18899 {
18900 this.idFieldSet = true;
18901 this.idField = value;
18902 }
18903 }
18904
18905 /// <summary>
18906 /// Value associated with the name specified in the Name column.
18907 /// </summary>
18908 public string Value
18909 {
18910 get
18911 {
18912 return this.valueField;
18913 }
18914 set
18915 {
18916 this.valueFieldSet = true;
18917 this.valueField = value;
18918 }
18919 }
18920
18921 public virtual ISchemaElement ParentElement
18922 {
18923 get
18924 {
18925 return this.parentElement;
18926 }
18927 set
18928 {
18929 this.parentElement = value;
18930 }
18931 }
18932
18933 /// <summary>
18934 /// Processes this element and all child elements into an XmlWriter.
18935 /// </summary>
18936 public virtual void OutputXml(XmlWriter writer)
18937 {
18938 if ((null == writer))
18939 {
18940 throw new ArgumentNullException("writer");
18941 }
18942 writer.WriteStartElement("AssemblyName", "http://wixtoolset.org/schemas/v4/wxs");
18943 if (this.idFieldSet)
18944 {
18945 writer.WriteAttributeString("Id", this.idField);
18946 }
18947 if (this.valueFieldSet)
18948 {
18949 writer.WriteAttributeString("Value", this.valueField);
18950 }
18951 writer.WriteEndElement();
18952 }
18953
18954 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
18955 void ISetAttributes.SetAttribute(string name, string value)
18956 {
18957 if (String.IsNullOrEmpty(name))
18958 {
18959 throw new ArgumentNullException("name");
18960 }
18961 if (("Id" == name))
18962 {
18963 this.idField = value;
18964 this.idFieldSet = true;
18965 }
18966 if (("Value" == name))
18967 {
18968 this.valueField = value;
18969 this.valueFieldSet = true;
18970 }
18971 }
18972 }
18973
18974 /// <summary>
18975 /// Identifies the possible signer certificates used to digitally sign patches.
18976 /// </summary>
18977 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
18978 public class PatchCertificates : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
18979 {
18980
18981 private ElementCollection children;
18982
18983 private ISchemaElement parentElement;
18984
18985 public PatchCertificates()
18986 {
18987 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
18988 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DigitalCertificate)));
18989 this.children = childCollection0;
18990 }
18991
18992 public virtual IEnumerable Children
18993 {
18994 get
18995 {
18996 return this.children;
18997 }
18998 }
18999
19000 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
19001 public virtual IEnumerable this[System.Type childType]
19002 {
19003 get
19004 {
19005 return this.children.Filter(childType);
19006 }
19007 }
19008
19009 public virtual ISchemaElement ParentElement
19010 {
19011 get
19012 {
19013 return this.parentElement;
19014 }
19015 set
19016 {
19017 this.parentElement = value;
19018 }
19019 }
19020
19021 public virtual void AddChild(ISchemaElement child)
19022 {
19023 if ((null == child))
19024 {
19025 throw new ArgumentNullException("child");
19026 }
19027 this.children.AddElement(child);
19028 child.ParentElement = this;
19029 }
19030
19031 public virtual void RemoveChild(ISchemaElement child)
19032 {
19033 if ((null == child))
19034 {
19035 throw new ArgumentNullException("child");
19036 }
19037 this.children.RemoveElement(child);
19038 child.ParentElement = null;
19039 }
19040
19041 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
19042 ISchemaElement ICreateChildren.CreateChild(string childName)
19043 {
19044 if (String.IsNullOrEmpty(childName))
19045 {
19046 throw new ArgumentNullException("childName");
19047 }
19048 ISchemaElement childValue = null;
19049 if (("DigitalCertificate" == childName))
19050 {
19051 childValue = new DigitalCertificate();
19052 }
19053 if ((null == childValue))
19054 {
19055 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
19056 }
19057 return childValue;
19058 }
19059
19060 /// <summary>
19061 /// Processes this element and all child elements into an XmlWriter.
19062 /// </summary>
19063 public virtual void OutputXml(XmlWriter writer)
19064 {
19065 if ((null == writer))
19066 {
19067 throw new ArgumentNullException("writer");
19068 }
19069 writer.WriteStartElement("PatchCertificates", "http://wixtoolset.org/schemas/v4/wxs");
19070 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
19071 {
19072 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
19073 childElement.OutputXml(writer);
19074 }
19075 writer.WriteEndElement();
19076 }
19077
19078 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
19079 void ISetAttributes.SetAttribute(string name, string value)
19080 {
19081 if (String.IsNullOrEmpty(name))
19082 {
19083 throw new ArgumentNullException("name");
19084 }
19085 }
19086 }
19087
19088 /// <summary>
19089 /// Digital signatures that identify installation packages in a multi-product transaction.
19090 /// </summary>
19091 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
19092 public class PackageCertificates : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
19093 {
19094
19095 private ElementCollection children;
19096
19097 private ISchemaElement parentElement;
19098
19099 public PackageCertificates()
19100 {
19101 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
19102 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DigitalCertificate)));
19103 this.children = childCollection0;
19104 }
19105
19106 public virtual IEnumerable Children
19107 {
19108 get
19109 {
19110 return this.children;
19111 }
19112 }
19113
19114 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
19115 public virtual IEnumerable this[System.Type childType]
19116 {
19117 get
19118 {
19119 return this.children.Filter(childType);
19120 }
19121 }
19122
19123 public virtual ISchemaElement ParentElement
19124 {
19125 get
19126 {
19127 return this.parentElement;
19128 }
19129 set
19130 {
19131 this.parentElement = value;
19132 }
19133 }
19134
19135 public virtual void AddChild(ISchemaElement child)
19136 {
19137 if ((null == child))
19138 {
19139 throw new ArgumentNullException("child");
19140 }
19141 this.children.AddElement(child);
19142 child.ParentElement = this;
19143 }
19144
19145 public virtual void RemoveChild(ISchemaElement child)
19146 {
19147 if ((null == child))
19148 {
19149 throw new ArgumentNullException("child");
19150 }
19151 this.children.RemoveElement(child);
19152 child.ParentElement = null;
19153 }
19154
19155 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
19156 ISchemaElement ICreateChildren.CreateChild(string childName)
19157 {
19158 if (String.IsNullOrEmpty(childName))
19159 {
19160 throw new ArgumentNullException("childName");
19161 }
19162 ISchemaElement childValue = null;
19163 if (("DigitalCertificate" == childName))
19164 {
19165 childValue = new DigitalCertificate();
19166 }
19167 if ((null == childValue))
19168 {
19169 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
19170 }
19171 return childValue;
19172 }
19173
19174 /// <summary>
19175 /// Processes this element and all child elements into an XmlWriter.
19176 /// </summary>
19177 public virtual void OutputXml(XmlWriter writer)
19178 {
19179 if ((null == writer))
19180 {
19181 throw new ArgumentNullException("writer");
19182 }
19183 writer.WriteStartElement("PackageCertificates", "http://wixtoolset.org/schemas/v4/wxs");
19184 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
19185 {
19186 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
19187 childElement.OutputXml(writer);
19188 }
19189 writer.WriteEndElement();
19190 }
19191
19192 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
19193 void ISetAttributes.SetAttribute(string name, string value)
19194 {
19195 if (String.IsNullOrEmpty(name))
19196 {
19197 throw new ArgumentNullException("name");
19198 }
19199 }
19200 }
19201
19202 /// <summary>
19203 /// Adds a digital certificate.
19204 /// </summary>
19205 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
19206 public class DigitalCertificate : ISchemaElement, ISetAttributes
19207 {
19208
19209 private string idField;
19210
19211 private bool idFieldSet;
19212
19213 private string sourceFileField;
19214
19215 private bool sourceFileFieldSet;
19216
19217 private ISchemaElement parentElement;
19218
19219 /// <summary>
19220 /// Identifier for a certificate file.
19221 /// </summary>
19222 public string Id
19223 {
19224 get
19225 {
19226 return this.idField;
19227 }
19228 set
19229 {
19230 this.idFieldSet = true;
19231 this.idField = value;
19232 }
19233 }
19234
19235 /// <summary>
19236 /// The path to the certificate file.
19237 /// </summary>
19238 public string SourceFile
19239 {
19240 get
19241 {
19242 return this.sourceFileField;
19243 }
19244 set
19245 {
19246 this.sourceFileFieldSet = true;
19247 this.sourceFileField = value;
19248 }
19249 }
19250
19251 public virtual ISchemaElement ParentElement
19252 {
19253 get
19254 {
19255 return this.parentElement;
19256 }
19257 set
19258 {
19259 this.parentElement = value;
19260 }
19261 }
19262
19263 /// <summary>
19264 /// Processes this element and all child elements into an XmlWriter.
19265 /// </summary>
19266 public virtual void OutputXml(XmlWriter writer)
19267 {
19268 if ((null == writer))
19269 {
19270 throw new ArgumentNullException("writer");
19271 }
19272 writer.WriteStartElement("DigitalCertificate", "http://wixtoolset.org/schemas/v4/wxs");
19273 if (this.idFieldSet)
19274 {
19275 writer.WriteAttributeString("Id", this.idField);
19276 }
19277 if (this.sourceFileFieldSet)
19278 {
19279 writer.WriteAttributeString("SourceFile", this.sourceFileField);
19280 }
19281 writer.WriteEndElement();
19282 }
19283
19284 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
19285 void ISetAttributes.SetAttribute(string name, string value)
19286 {
19287 if (String.IsNullOrEmpty(name))
19288 {
19289 throw new ArgumentNullException("name");
19290 }
19291 if (("Id" == name))
19292 {
19293 this.idField = value;
19294 this.idFieldSet = true;
19295 }
19296 if (("SourceFile" == name))
19297 {
19298 this.sourceFileField = value;
19299 this.sourceFileFieldSet = true;
19300 }
19301 }
19302 }
19303
19304 /// <summary>
19305 /// Reference to a DigitalCertificate element. This will force the entire referenced Fragment's contents
19306 /// to be included in the installer database. This is only used for references when patching.
19307 /// </summary>
19308 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
19309 public class DigitalCertificateRef : ISchemaElement, ISetAttributes
19310 {
19311
19312 private string idField;
19313
19314 private bool idFieldSet;
19315
19316 private ISchemaElement parentElement;
19317
19318 public string Id
19319 {
19320 get
19321 {
19322 return this.idField;
19323 }
19324 set
19325 {
19326 this.idFieldSet = true;
19327 this.idField = value;
19328 }
19329 }
19330
19331 public virtual ISchemaElement ParentElement
19332 {
19333 get
19334 {
19335 return this.parentElement;
19336 }
19337 set
19338 {
19339 this.parentElement = value;
19340 }
19341 }
19342
19343 /// <summary>
19344 /// Processes this element and all child elements into an XmlWriter.
19345 /// </summary>
19346 public virtual void OutputXml(XmlWriter writer)
19347 {
19348 if ((null == writer))
19349 {
19350 throw new ArgumentNullException("writer");
19351 }
19352 writer.WriteStartElement("DigitalCertificateRef", "http://wixtoolset.org/schemas/v4/wxs");
19353 if (this.idFieldSet)
19354 {
19355 writer.WriteAttributeString("Id", this.idField);
19356 }
19357 writer.WriteEndElement();
19358 }
19359
19360 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
19361 void ISetAttributes.SetAttribute(string name, string value)
19362 {
19363 if (String.IsNullOrEmpty(name))
19364 {
19365 throw new ArgumentNullException("name");
19366 }
19367 if (("Id" == name))
19368 {
19369 this.idField = value;
19370 this.idFieldSet = true;
19371 }
19372 }
19373 }
19374
19375 /// <summary>
19376 /// Adds a digital signature.
19377 /// </summary>
19378 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
19379 public class DigitalSignature : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
19380 {
19381
19382 private ElementCollection children;
19383
19384 private string sourceFileField;
19385
19386 private bool sourceFileFieldSet;
19387
19388 private ISchemaElement parentElement;
19389
19390 public DigitalSignature()
19391 {
19392 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
19393 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DigitalCertificate)));
19394 this.children = childCollection0;
19395 }
19396
19397 public virtual IEnumerable Children
19398 {
19399 get
19400 {
19401 return this.children;
19402 }
19403 }
19404
19405 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
19406 public virtual IEnumerable this[System.Type childType]
19407 {
19408 get
19409 {
19410 return this.children.Filter(childType);
19411 }
19412 }
19413
19414 /// <summary>
19415 /// The path to signature's optional hash file.
19416 /// </summary>
19417 public string SourceFile
19418 {
19419 get
19420 {
19421 return this.sourceFileField;
19422 }
19423 set
19424 {
19425 this.sourceFileFieldSet = true;
19426 this.sourceFileField = value;
19427 }
19428 }
19429
19430 public virtual ISchemaElement ParentElement
19431 {
19432 get
19433 {
19434 return this.parentElement;
19435 }
19436 set
19437 {
19438 this.parentElement = value;
19439 }
19440 }
19441
19442 public virtual void AddChild(ISchemaElement child)
19443 {
19444 if ((null == child))
19445 {
19446 throw new ArgumentNullException("child");
19447 }
19448 this.children.AddElement(child);
19449 child.ParentElement = this;
19450 }
19451
19452 public virtual void RemoveChild(ISchemaElement child)
19453 {
19454 if ((null == child))
19455 {
19456 throw new ArgumentNullException("child");
19457 }
19458 this.children.RemoveElement(child);
19459 child.ParentElement = null;
19460 }
19461
19462 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
19463 ISchemaElement ICreateChildren.CreateChild(string childName)
19464 {
19465 if (String.IsNullOrEmpty(childName))
19466 {
19467 throw new ArgumentNullException("childName");
19468 }
19469 ISchemaElement childValue = null;
19470 if (("DigitalCertificate" == childName))
19471 {
19472 childValue = new DigitalCertificate();
19473 }
19474 if ((null == childValue))
19475 {
19476 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
19477 }
19478 return childValue;
19479 }
19480
19481 /// <summary>
19482 /// Processes this element and all child elements into an XmlWriter.
19483 /// </summary>
19484 public virtual void OutputXml(XmlWriter writer)
19485 {
19486 if ((null == writer))
19487 {
19488 throw new ArgumentNullException("writer");
19489 }
19490 writer.WriteStartElement("DigitalSignature", "http://wixtoolset.org/schemas/v4/wxs");
19491 if (this.sourceFileFieldSet)
19492 {
19493 writer.WriteAttributeString("SourceFile", this.sourceFileField);
19494 }
19495 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
19496 {
19497 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
19498 childElement.OutputXml(writer);
19499 }
19500 writer.WriteEndElement();
19501 }
19502
19503 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
19504 void ISetAttributes.SetAttribute(string name, string value)
19505 {
19506 if (String.IsNullOrEmpty(name))
19507 {
19508 throw new ArgumentNullException("name");
19509 }
19510 if (("SourceFile" == name))
19511 {
19512 this.sourceFileField = value;
19513 this.sourceFileFieldSet = true;
19514 }
19515 }
19516 }
19517
19518 /// <summary>
19519 /// Adds a system file protection update catalog file
19520 /// </summary>
19521 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
19522 public class SFPCatalog : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
19523 {
19524
19525 private ElementCollection children;
19526
19527 private string nameField;
19528
19529 private bool nameFieldSet;
19530
19531 private string dependencyField;
19532
19533 private bool dependencyFieldSet;
19534
19535 private string sourceFileField;
19536
19537 private bool sourceFileFieldSet;
19538
19539 private ISchemaElement parentElement;
19540
19541 public SFPCatalog()
19542 {
19543 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
19544 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SFPCatalog)));
19545 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SFPFile)));
19546 this.children = childCollection0;
19547 }
19548
19549 public virtual IEnumerable Children
19550 {
19551 get
19552 {
19553 return this.children;
19554 }
19555 }
19556
19557 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
19558 public virtual IEnumerable this[System.Type childType]
19559 {
19560 get
19561 {
19562 return this.children.Filter(childType);
19563 }
19564 }
19565
19566 /// <summary>
19567 /// Filename for catalog file when installed.
19568 /// </summary>
19569 public string Name
19570 {
19571 get
19572 {
19573 return this.nameField;
19574 }
19575 set
19576 {
19577 this.nameFieldSet = true;
19578 this.nameField = value;
19579 }
19580 }
19581
19582 /// <summary>
19583 /// Used to define dependency outside of the package.
19584 /// </summary>
19585 public string Dependency
19586 {
19587 get
19588 {
19589 return this.dependencyField;
19590 }
19591 set
19592 {
19593 this.dependencyFieldSet = true;
19594 this.dependencyField = value;
19595 }
19596 }
19597
19598 /// <summary>
19599 /// Path to catalog file in binary.
19600 /// </summary>
19601 public string SourceFile
19602 {
19603 get
19604 {
19605 return this.sourceFileField;
19606 }
19607 set
19608 {
19609 this.sourceFileFieldSet = true;
19610 this.sourceFileField = value;
19611 }
19612 }
19613
19614 public virtual ISchemaElement ParentElement
19615 {
19616 get
19617 {
19618 return this.parentElement;
19619 }
19620 set
19621 {
19622 this.parentElement = value;
19623 }
19624 }
19625
19626 public virtual void AddChild(ISchemaElement child)
19627 {
19628 if ((null == child))
19629 {
19630 throw new ArgumentNullException("child");
19631 }
19632 this.children.AddElement(child);
19633 child.ParentElement = this;
19634 }
19635
19636 public virtual void RemoveChild(ISchemaElement child)
19637 {
19638 if ((null == child))
19639 {
19640 throw new ArgumentNullException("child");
19641 }
19642 this.children.RemoveElement(child);
19643 child.ParentElement = null;
19644 }
19645
19646 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
19647 ISchemaElement ICreateChildren.CreateChild(string childName)
19648 {
19649 if (String.IsNullOrEmpty(childName))
19650 {
19651 throw new ArgumentNullException("childName");
19652 }
19653 ISchemaElement childValue = null;
19654 if (("SFPCatalog" == childName))
19655 {
19656 childValue = new SFPCatalog();
19657 }
19658 if (("SFPFile" == childName))
19659 {
19660 childValue = new SFPFile();
19661 }
19662 if ((null == childValue))
19663 {
19664 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
19665 }
19666 return childValue;
19667 }
19668
19669 /// <summary>
19670 /// Processes this element and all child elements into an XmlWriter.
19671 /// </summary>
19672 public virtual void OutputXml(XmlWriter writer)
19673 {
19674 if ((null == writer))
19675 {
19676 throw new ArgumentNullException("writer");
19677 }
19678 writer.WriteStartElement("SFPCatalog", "http://wixtoolset.org/schemas/v4/wxs");
19679 if (this.nameFieldSet)
19680 {
19681 writer.WriteAttributeString("Name", this.nameField);
19682 }
19683 if (this.dependencyFieldSet)
19684 {
19685 writer.WriteAttributeString("Dependency", this.dependencyField);
19686 }
19687 if (this.sourceFileFieldSet)
19688 {
19689 writer.WriteAttributeString("SourceFile", this.sourceFileField);
19690 }
19691 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
19692 {
19693 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
19694 childElement.OutputXml(writer);
19695 }
19696 writer.WriteEndElement();
19697 }
19698
19699 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
19700 void ISetAttributes.SetAttribute(string name, string value)
19701 {
19702 if (String.IsNullOrEmpty(name))
19703 {
19704 throw new ArgumentNullException("name");
19705 }
19706 if (("Name" == name))
19707 {
19708 this.nameField = value;
19709 this.nameFieldSet = true;
19710 }
19711 if (("Dependency" == name))
19712 {
19713 this.dependencyField = value;
19714 this.dependencyFieldSet = true;
19715 }
19716 if (("SourceFile" == name))
19717 {
19718 this.sourceFileField = value;
19719 this.sourceFileFieldSet = true;
19720 }
19721 }
19722 }
19723
19724 /// <summary>
19725 /// Provides a many-to-many mapping from the SFPCatalog table to the File table
19726 /// </summary>
19727 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
19728 public class SFPFile : ISchemaElement, ISetAttributes
19729 {
19730
19731 private string idField;
19732
19733 private bool idFieldSet;
19734
19735 private ISchemaElement parentElement;
19736
19737 /// <summary>
19738 /// Primary Key to File Table.
19739 /// </summary>
19740 public string Id
19741 {
19742 get
19743 {
19744 return this.idField;
19745 }
19746 set
19747 {
19748 this.idFieldSet = true;
19749 this.idField = value;
19750 }
19751 }
19752
19753 public virtual ISchemaElement ParentElement
19754 {
19755 get
19756 {
19757 return this.parentElement;
19758 }
19759 set
19760 {
19761 this.parentElement = value;
19762 }
19763 }
19764
19765 /// <summary>
19766 /// Processes this element and all child elements into an XmlWriter.
19767 /// </summary>
19768 public virtual void OutputXml(XmlWriter writer)
19769 {
19770 if ((null == writer))
19771 {
19772 throw new ArgumentNullException("writer");
19773 }
19774 writer.WriteStartElement("SFPFile", "http://wixtoolset.org/schemas/v4/wxs");
19775 if (this.idFieldSet)
19776 {
19777 writer.WriteAttributeString("Id", this.idField);
19778 }
19779 writer.WriteEndElement();
19780 }
19781
19782 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
19783 void ISetAttributes.SetAttribute(string name, string value)
19784 {
19785 if (String.IsNullOrEmpty(name))
19786 {
19787 throw new ArgumentNullException("name");
19788 }
19789 if (("Id" == name))
19790 {
19791 this.idField = value;
19792 this.idFieldSet = true;
19793 }
19794 }
19795 }
19796
19797 /// <summary>
19798 /// Adds or removes .ini file entries.
19799 /// </summary>
19800 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
19801 public class IniFile : ISchemaElement, ISetAttributes
19802 {
19803
19804 private string idField;
19805
19806 private bool idFieldSet;
19807
19808 private ActionType actionField;
19809
19810 private bool actionFieldSet;
19811
19812 private string directoryField;
19813
19814 private bool directoryFieldSet;
19815
19816 private string keyField;
19817
19818 private bool keyFieldSet;
19819
19820 private string nameField;
19821
19822 private bool nameFieldSet;
19823
19824 private string sectionField;
19825
19826 private bool sectionFieldSet;
19827
19828 private string shortNameField;
19829
19830 private bool shortNameFieldSet;
19831
19832 private string valueField;
19833
19834 private bool valueFieldSet;
19835
19836 private ISchemaElement parentElement;
19837
19838 /// <summary>
19839 /// Identifier for ini file.
19840 /// </summary>
19841 public string Id
19842 {
19843 get
19844 {
19845 return this.idField;
19846 }
19847 set
19848 {
19849 this.idFieldSet = true;
19850 this.idField = value;
19851 }
19852 }
19853
19854 /// <summary>
19855 /// The type of modification to be made.
19856 /// </summary>
19857 public ActionType Action
19858 {
19859 get
19860 {
19861 return this.actionField;
19862 }
19863 set
19864 {
19865 this.actionFieldSet = true;
19866 this.actionField = value;
19867 }
19868 }
19869
19870 /// <summary>
19871 /// Name of a property, the value of which is the full path of the folder containing the .ini file. Can be name of a directory in the Directory table, a property set by the AppSearch table, or any other property representing a full path.
19872 /// </summary>
19873 public string Directory
19874 {
19875 get
19876 {
19877 return this.directoryField;
19878 }
19879 set
19880 {
19881 this.directoryFieldSet = true;
19882 this.directoryField = value;
19883 }
19884 }
19885
19886 /// <summary>
19887 /// The localizable .ini file key within the section.
19888 /// </summary>
19889 public string Key
19890 {
19891 get
19892 {
19893 return this.keyField;
19894 }
19895 set
19896 {
19897 this.keyFieldSet = true;
19898 this.keyField = value;
19899 }
19900 }
19901
19902 /// <summary>
19903 /// In prior versions of the WiX toolset, this attribute specified the short name.
19904 /// This attribute's value may now be either a short or long name.
19905 /// If a short name is specified, the ShortName attribute may not be specified.
19906 /// Also, if this value is a long name, the ShortName attribute may be omitted to
19907 /// allow WiX to attempt to generate a unique short name.
19908 /// However, if this name collides with another file or you wish to manually specify
19909 /// the short name, then the ShortName attribute may be specified.
19910 /// </summary>
19911 public string Name
19912 {
19913 get
19914 {
19915 return this.nameField;
19916 }
19917 set
19918 {
19919 this.nameFieldSet = true;
19920 this.nameField = value;
19921 }
19922 }
19923
19924 /// <summary>
19925 /// The localizable .ini file section.
19926 /// </summary>
19927 public string Section
19928 {
19929 get
19930 {
19931 return this.sectionField;
19932 }
19933 set
19934 {
19935 this.sectionFieldSet = true;
19936 this.sectionField = value;
19937 }
19938 }
19939
19940 /// <summary>
19941 /// The short name of the in 8.3 format.
19942 /// This attribute should only be set if there is a conflict between generated short names
19943 /// or the user wants to manually specify the short name.
19944 /// </summary>
19945 public string ShortName
19946 {
19947 get
19948 {
19949 return this.shortNameField;
19950 }
19951 set
19952 {
19953 this.shortNameFieldSet = true;
19954 this.shortNameField = value;
19955 }
19956 }
19957
19958 /// <summary>
19959 /// The localizable value to be written or deleted. This attribute must be set if
19960 /// the Action attribute's value is "addLine", "addTag", or "createLine".
19961 /// </summary>
19962 public string Value
19963 {
19964 get
19965 {
19966 return this.valueField;
19967 }
19968 set
19969 {
19970 this.valueFieldSet = true;
19971 this.valueField = value;
19972 }
19973 }
19974
19975 public virtual ISchemaElement ParentElement
19976 {
19977 get
19978 {
19979 return this.parentElement;
19980 }
19981 set
19982 {
19983 this.parentElement = value;
19984 }
19985 }
19986
19987 /// <summary>
19988 /// Parses a ActionType from a string.
19989 /// </summary>
19990 public static ActionType ParseActionType(string value)
19991 {
19992 ActionType parsedValue;
19993 IniFile.TryParseActionType(value, out parsedValue);
19994 return parsedValue;
19995 }
19996
19997 /// <summary>
19998 /// Tries to parse a ActionType from a string.
19999 /// </summary>
20000 public static bool TryParseActionType(string value, out ActionType parsedValue)
20001 {
20002 parsedValue = ActionType.NotSet;
20003 if (string.IsNullOrEmpty(value))
20004 {
20005 return false;
20006 }
20007 if (("addLine" == value))
20008 {
20009 parsedValue = ActionType.addLine;
20010 }
20011 else
20012 {
20013 if (("addTag" == value))
20014 {
20015 parsedValue = ActionType.addTag;
20016 }
20017 else
20018 {
20019 if (("createLine" == value))
20020 {
20021 parsedValue = ActionType.createLine;
20022 }
20023 else
20024 {
20025 if (("removeLine" == value))
20026 {
20027 parsedValue = ActionType.removeLine;
20028 }
20029 else
20030 {
20031 if (("removeTag" == value))
20032 {
20033 parsedValue = ActionType.removeTag;
20034 }
20035 else
20036 {
20037 parsedValue = ActionType.IllegalValue;
20038 return false;
20039 }
20040 }
20041 }
20042 }
20043 }
20044 return true;
20045 }
20046
20047 /// <summary>
20048 /// Processes this element and all child elements into an XmlWriter.
20049 /// </summary>
20050 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
20051 public virtual void OutputXml(XmlWriter writer)
20052 {
20053 if ((null == writer))
20054 {
20055 throw new ArgumentNullException("writer");
20056 }
20057 writer.WriteStartElement("IniFile", "http://wixtoolset.org/schemas/v4/wxs");
20058 if (this.idFieldSet)
20059 {
20060 writer.WriteAttributeString("Id", this.idField);
20061 }
20062 if (this.actionFieldSet)
20063 {
20064 if ((this.actionField == ActionType.addLine))
20065 {
20066 writer.WriteAttributeString("Action", "addLine");
20067 }
20068 if ((this.actionField == ActionType.addTag))
20069 {
20070 writer.WriteAttributeString("Action", "addTag");
20071 }
20072 if ((this.actionField == ActionType.createLine))
20073 {
20074 writer.WriteAttributeString("Action", "createLine");
20075 }
20076 if ((this.actionField == ActionType.removeLine))
20077 {
20078 writer.WriteAttributeString("Action", "removeLine");
20079 }
20080 if ((this.actionField == ActionType.removeTag))
20081 {
20082 writer.WriteAttributeString("Action", "removeTag");
20083 }
20084 }
20085 if (this.directoryFieldSet)
20086 {
20087 writer.WriteAttributeString("Directory", this.directoryField);
20088 }
20089 if (this.keyFieldSet)
20090 {
20091 writer.WriteAttributeString("Key", this.keyField);
20092 }
20093 if (this.nameFieldSet)
20094 {
20095 writer.WriteAttributeString("Name", this.nameField);
20096 }
20097 if (this.sectionFieldSet)
20098 {
20099 writer.WriteAttributeString("Section", this.sectionField);
20100 }
20101 if (this.shortNameFieldSet)
20102 {
20103 writer.WriteAttributeString("ShortName", this.shortNameField);
20104 }
20105 if (this.valueFieldSet)
20106 {
20107 writer.WriteAttributeString("Value", this.valueField);
20108 }
20109 writer.WriteEndElement();
20110 }
20111
20112 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
20113 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
20114 void ISetAttributes.SetAttribute(string name, string value)
20115 {
20116 if (String.IsNullOrEmpty(name))
20117 {
20118 throw new ArgumentNullException("name");
20119 }
20120 if (("Id" == name))
20121 {
20122 this.idField = value;
20123 this.idFieldSet = true;
20124 }
20125 if (("Action" == name))
20126 {
20127 this.actionField = IniFile.ParseActionType(value);
20128 this.actionFieldSet = true;
20129 }
20130 if (("Directory" == name))
20131 {
20132 this.directoryField = value;
20133 this.directoryFieldSet = true;
20134 }
20135 if (("Key" == name))
20136 {
20137 this.keyField = value;
20138 this.keyFieldSet = true;
20139 }
20140 if (("Name" == name))
20141 {
20142 this.nameField = value;
20143 this.nameFieldSet = true;
20144 }
20145 if (("Section" == name))
20146 {
20147 this.sectionField = value;
20148 this.sectionFieldSet = true;
20149 }
20150 if (("ShortName" == name))
20151 {
20152 this.shortNameField = value;
20153 this.shortNameFieldSet = true;
20154 }
20155 if (("Value" == name))
20156 {
20157 this.valueField = value;
20158 this.valueFieldSet = true;
20159 }
20160 }
20161
20162 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
20163 public enum ActionType
20164 {
20165
20166 IllegalValue = int.MaxValue,
20167
20168 NotSet = -1,
20169
20170 /// <summary>
20171 /// Creates or updates an .ini entry.
20172 /// </summary>
20173 addLine,
20174
20175 /// <summary>
20176 /// Creates a new entry or appends a new comma-separated value to an existing entry.
20177 /// </summary>
20178 addTag,
20179
20180 /// <summary>
20181 /// Creates an .ini entry only if the entry does no already exist.
20182 /// </summary>
20183 createLine,
20184
20185 /// <summary>
20186 /// Removes an .ini entry.
20187 /// </summary>
20188 removeLine,
20189
20190 /// <summary>
20191 /// Removes a tag from an .ini entry.
20192 /// </summary>
20193 removeTag,
20194 }
20195 }
20196
20197 /// <summary>
20198 /// ODBCDataSource for a Component
20199 /// </summary>
20200 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
20201 public class ODBCDataSource : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
20202 {
20203
20204 private ElementCollection children;
20205
20206 private string idField;
20207
20208 private bool idFieldSet;
20209
20210 private string nameField;
20211
20212 private bool nameFieldSet;
20213
20214 private string driverNameField;
20215
20216 private bool driverNameFieldSet;
20217
20218 private RegistrationType registrationField;
20219
20220 private bool registrationFieldSet;
20221
20222 private YesNoType keyPathField;
20223
20224 private bool keyPathFieldSet;
20225
20226 private ISchemaElement parentElement;
20227
20228 public ODBCDataSource()
20229 {
20230 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
20231 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Property)));
20232 this.children = childCollection0;
20233 }
20234
20235 public virtual IEnumerable Children
20236 {
20237 get
20238 {
20239 return this.children;
20240 }
20241 }
20242
20243 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
20244 public virtual IEnumerable this[System.Type childType]
20245 {
20246 get
20247 {
20248 return this.children.Filter(childType);
20249 }
20250 }
20251
20252 /// <summary>
20253 /// Identifier of the data source.
20254 /// </summary>
20255 public string Id
20256 {
20257 get
20258 {
20259 return this.idField;
20260 }
20261 set
20262 {
20263 this.idFieldSet = true;
20264 this.idField = value;
20265 }
20266 }
20267
20268 /// <summary>
20269 /// Name for the data source.
20270 /// </summary>
20271 public string Name
20272 {
20273 get
20274 {
20275 return this.nameField;
20276 }
20277 set
20278 {
20279 this.nameFieldSet = true;
20280 this.nameField = value;
20281 }
20282 }
20283
20284 /// <summary>
20285 /// Required if not found as child of ODBCDriver element
20286 /// </summary>
20287 public string DriverName
20288 {
20289 get
20290 {
20291 return this.driverNameField;
20292 }
20293 set
20294 {
20295 this.driverNameFieldSet = true;
20296 this.driverNameField = value;
20297 }
20298 }
20299
20300 /// <summary>
20301 /// Scope for which the data source should be registered.
20302 /// </summary>
20303 public RegistrationType Registration
20304 {
20305 get
20306 {
20307 return this.registrationField;
20308 }
20309 set
20310 {
20311 this.registrationFieldSet = true;
20312 this.registrationField = value;
20313 }
20314 }
20315
20316 /// <summary>
20317 /// Set 'yes' to force this file to be key path for parent Component
20318 /// </summary>
20319 public YesNoType KeyPath
20320 {
20321 get
20322 {
20323 return this.keyPathField;
20324 }
20325 set
20326 {
20327 this.keyPathFieldSet = true;
20328 this.keyPathField = value;
20329 }
20330 }
20331
20332 public virtual ISchemaElement ParentElement
20333 {
20334 get
20335 {
20336 return this.parentElement;
20337 }
20338 set
20339 {
20340 this.parentElement = value;
20341 }
20342 }
20343
20344 public virtual void AddChild(ISchemaElement child)
20345 {
20346 if ((null == child))
20347 {
20348 throw new ArgumentNullException("child");
20349 }
20350 this.children.AddElement(child);
20351 child.ParentElement = this;
20352 }
20353
20354 public virtual void RemoveChild(ISchemaElement child)
20355 {
20356 if ((null == child))
20357 {
20358 throw new ArgumentNullException("child");
20359 }
20360 this.children.RemoveElement(child);
20361 child.ParentElement = null;
20362 }
20363
20364 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
20365 ISchemaElement ICreateChildren.CreateChild(string childName)
20366 {
20367 if (String.IsNullOrEmpty(childName))
20368 {
20369 throw new ArgumentNullException("childName");
20370 }
20371 ISchemaElement childValue = null;
20372 if (("Property" == childName))
20373 {
20374 childValue = new Property();
20375 }
20376 if ((null == childValue))
20377 {
20378 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
20379 }
20380 return childValue;
20381 }
20382
20383 /// <summary>
20384 /// Parses a RegistrationType from a string.
20385 /// </summary>
20386 public static RegistrationType ParseRegistrationType(string value)
20387 {
20388 RegistrationType parsedValue;
20389 ODBCDataSource.TryParseRegistrationType(value, out parsedValue);
20390 return parsedValue;
20391 }
20392
20393 /// <summary>
20394 /// Tries to parse a RegistrationType from a string.
20395 /// </summary>
20396 public static bool TryParseRegistrationType(string value, out RegistrationType parsedValue)
20397 {
20398 parsedValue = RegistrationType.NotSet;
20399 if (string.IsNullOrEmpty(value))
20400 {
20401 return false;
20402 }
20403 if (("machine" == value))
20404 {
20405 parsedValue = RegistrationType.machine;
20406 }
20407 else
20408 {
20409 if (("user" == value))
20410 {
20411 parsedValue = RegistrationType.user;
20412 }
20413 else
20414 {
20415 parsedValue = RegistrationType.IllegalValue;
20416 return false;
20417 }
20418 }
20419 return true;
20420 }
20421
20422 /// <summary>
20423 /// Processes this element and all child elements into an XmlWriter.
20424 /// </summary>
20425 public virtual void OutputXml(XmlWriter writer)
20426 {
20427 if ((null == writer))
20428 {
20429 throw new ArgumentNullException("writer");
20430 }
20431 writer.WriteStartElement("ODBCDataSource", "http://wixtoolset.org/schemas/v4/wxs");
20432 if (this.idFieldSet)
20433 {
20434 writer.WriteAttributeString("Id", this.idField);
20435 }
20436 if (this.nameFieldSet)
20437 {
20438 writer.WriteAttributeString("Name", this.nameField);
20439 }
20440 if (this.driverNameFieldSet)
20441 {
20442 writer.WriteAttributeString("DriverName", this.driverNameField);
20443 }
20444 if (this.registrationFieldSet)
20445 {
20446 if ((this.registrationField == RegistrationType.machine))
20447 {
20448 writer.WriteAttributeString("Registration", "machine");
20449 }
20450 if ((this.registrationField == RegistrationType.user))
20451 {
20452 writer.WriteAttributeString("Registration", "user");
20453 }
20454 }
20455 if (this.keyPathFieldSet)
20456 {
20457 if ((this.keyPathField == YesNoType.no))
20458 {
20459 writer.WriteAttributeString("KeyPath", "no");
20460 }
20461 if ((this.keyPathField == YesNoType.yes))
20462 {
20463 writer.WriteAttributeString("KeyPath", "yes");
20464 }
20465 }
20466 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
20467 {
20468 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
20469 childElement.OutputXml(writer);
20470 }
20471 writer.WriteEndElement();
20472 }
20473
20474 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
20475 void ISetAttributes.SetAttribute(string name, string value)
20476 {
20477 if (String.IsNullOrEmpty(name))
20478 {
20479 throw new ArgumentNullException("name");
20480 }
20481 if (("Id" == name))
20482 {
20483 this.idField = value;
20484 this.idFieldSet = true;
20485 }
20486 if (("Name" == name))
20487 {
20488 this.nameField = value;
20489 this.nameFieldSet = true;
20490 }
20491 if (("DriverName" == name))
20492 {
20493 this.driverNameField = value;
20494 this.driverNameFieldSet = true;
20495 }
20496 if (("Registration" == name))
20497 {
20498 this.registrationField = ODBCDataSource.ParseRegistrationType(value);
20499 this.registrationFieldSet = true;
20500 }
20501 if (("KeyPath" == name))
20502 {
20503 this.keyPathField = Enums.ParseYesNoType(value);
20504 this.keyPathFieldSet = true;
20505 }
20506 }
20507
20508 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
20509 public enum RegistrationType
20510 {
20511
20512 IllegalValue = int.MaxValue,
20513
20514 NotSet = -1,
20515
20516 /// <summary>
20517 /// Data source is registered per machine.
20518 /// </summary>
20519 machine,
20520
20521 /// <summary>
20522 /// Data source is registered per user.
20523 /// </summary>
20524 user,
20525 }
20526 }
20527
20528 /// <summary>
20529 /// ODBCDriver for a Component
20530 /// </summary>
20531 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
20532 public class ODBCDriver : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
20533 {
20534
20535 private ElementCollection children;
20536
20537 private string idField;
20538
20539 private bool idFieldSet;
20540
20541 private string nameField;
20542
20543 private bool nameFieldSet;
20544
20545 private string fileField;
20546
20547 private bool fileFieldSet;
20548
20549 private string setupFileField;
20550
20551 private bool setupFileFieldSet;
20552
20553 private ISchemaElement parentElement;
20554
20555 public ODBCDriver()
20556 {
20557 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
20558 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Property)));
20559 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ODBCDataSource)));
20560 this.children = childCollection0;
20561 }
20562
20563 public virtual IEnumerable Children
20564 {
20565 get
20566 {
20567 return this.children;
20568 }
20569 }
20570
20571 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
20572 public virtual IEnumerable this[System.Type childType]
20573 {
20574 get
20575 {
20576 return this.children.Filter(childType);
20577 }
20578 }
20579
20580 /// <summary>
20581 /// Identifier for the driver.
20582 /// </summary>
20583 public string Id
20584 {
20585 get
20586 {
20587 return this.idField;
20588 }
20589 set
20590 {
20591 this.idFieldSet = true;
20592 this.idField = value;
20593 }
20594 }
20595
20596 /// <summary>
20597 /// Name for the driver.
20598 /// </summary>
20599 public string Name
20600 {
20601 get
20602 {
20603 return this.nameField;
20604 }
20605 set
20606 {
20607 this.nameFieldSet = true;
20608 this.nameField = value;
20609 }
20610 }
20611
20612 /// <summary>
20613 /// Required if not found as child of File element
20614 /// </summary>
20615 public string File
20616 {
20617 get
20618 {
20619 return this.fileField;
20620 }
20621 set
20622 {
20623 this.fileFieldSet = true;
20624 this.fileField = value;
20625 }
20626 }
20627
20628 /// <summary>
20629 /// Required if not found as child of File element or different from File attribute above
20630 /// </summary>
20631 public string SetupFile
20632 {
20633 get
20634 {
20635 return this.setupFileField;
20636 }
20637 set
20638 {
20639 this.setupFileFieldSet = true;
20640 this.setupFileField = value;
20641 }
20642 }
20643
20644 public virtual ISchemaElement ParentElement
20645 {
20646 get
20647 {
20648 return this.parentElement;
20649 }
20650 set
20651 {
20652 this.parentElement = value;
20653 }
20654 }
20655
20656 public virtual void AddChild(ISchemaElement child)
20657 {
20658 if ((null == child))
20659 {
20660 throw new ArgumentNullException("child");
20661 }
20662 this.children.AddElement(child);
20663 child.ParentElement = this;
20664 }
20665
20666 public virtual void RemoveChild(ISchemaElement child)
20667 {
20668 if ((null == child))
20669 {
20670 throw new ArgumentNullException("child");
20671 }
20672 this.children.RemoveElement(child);
20673 child.ParentElement = null;
20674 }
20675
20676 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
20677 ISchemaElement ICreateChildren.CreateChild(string childName)
20678 {
20679 if (String.IsNullOrEmpty(childName))
20680 {
20681 throw new ArgumentNullException("childName");
20682 }
20683 ISchemaElement childValue = null;
20684 if (("Property" == childName))
20685 {
20686 childValue = new Property();
20687 }
20688 if (("ODBCDataSource" == childName))
20689 {
20690 childValue = new ODBCDataSource();
20691 }
20692 if ((null == childValue))
20693 {
20694 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
20695 }
20696 return childValue;
20697 }
20698
20699 /// <summary>
20700 /// Processes this element and all child elements into an XmlWriter.
20701 /// </summary>
20702 public virtual void OutputXml(XmlWriter writer)
20703 {
20704 if ((null == writer))
20705 {
20706 throw new ArgumentNullException("writer");
20707 }
20708 writer.WriteStartElement("ODBCDriver", "http://wixtoolset.org/schemas/v4/wxs");
20709 if (this.idFieldSet)
20710 {
20711 writer.WriteAttributeString("Id", this.idField);
20712 }
20713 if (this.nameFieldSet)
20714 {
20715 writer.WriteAttributeString("Name", this.nameField);
20716 }
20717 if (this.fileFieldSet)
20718 {
20719 writer.WriteAttributeString("File", this.fileField);
20720 }
20721 if (this.setupFileFieldSet)
20722 {
20723 writer.WriteAttributeString("SetupFile", this.setupFileField);
20724 }
20725 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
20726 {
20727 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
20728 childElement.OutputXml(writer);
20729 }
20730 writer.WriteEndElement();
20731 }
20732
20733 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
20734 void ISetAttributes.SetAttribute(string name, string value)
20735 {
20736 if (String.IsNullOrEmpty(name))
20737 {
20738 throw new ArgumentNullException("name");
20739 }
20740 if (("Id" == name))
20741 {
20742 this.idField = value;
20743 this.idFieldSet = true;
20744 }
20745 if (("Name" == name))
20746 {
20747 this.nameField = value;
20748 this.nameFieldSet = true;
20749 }
20750 if (("File" == name))
20751 {
20752 this.fileField = value;
20753 this.fileFieldSet = true;
20754 }
20755 if (("SetupFile" == name))
20756 {
20757 this.setupFileField = value;
20758 this.setupFileFieldSet = true;
20759 }
20760 }
20761 }
20762
20763 /// <summary>
20764 /// ODBCTranslator for a Component
20765 /// </summary>
20766 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
20767 public class ODBCTranslator : ISchemaElement, ISetAttributes
20768 {
20769
20770 private string idField;
20771
20772 private bool idFieldSet;
20773
20774 private string nameField;
20775
20776 private bool nameFieldSet;
20777
20778 private string fileField;
20779
20780 private bool fileFieldSet;
20781
20782 private string setupFileField;
20783
20784 private bool setupFileFieldSet;
20785
20786 private ISchemaElement parentElement;
20787
20788 /// <summary>
20789 /// Identifier for the translator.
20790 /// </summary>
20791 public string Id
20792 {
20793 get
20794 {
20795 return this.idField;
20796 }
20797 set
20798 {
20799 this.idFieldSet = true;
20800 this.idField = value;
20801 }
20802 }
20803
20804 /// <summary>
20805 /// Name for the translator.
20806 /// </summary>
20807 public string Name
20808 {
20809 get
20810 {
20811 return this.nameField;
20812 }
20813 set
20814 {
20815 this.nameFieldSet = true;
20816 this.nameField = value;
20817 }
20818 }
20819
20820 /// <summary>
20821 /// Required if not found as child of File element
20822 /// </summary>
20823 public string File
20824 {
20825 get
20826 {
20827 return this.fileField;
20828 }
20829 set
20830 {
20831 this.fileFieldSet = true;
20832 this.fileField = value;
20833 }
20834 }
20835
20836 /// <summary>
20837 /// Required if not found as child of File element or different from File attribute above
20838 /// </summary>
20839 public string SetupFile
20840 {
20841 get
20842 {
20843 return this.setupFileField;
20844 }
20845 set
20846 {
20847 this.setupFileFieldSet = true;
20848 this.setupFileField = value;
20849 }
20850 }
20851
20852 public virtual ISchemaElement ParentElement
20853 {
20854 get
20855 {
20856 return this.parentElement;
20857 }
20858 set
20859 {
20860 this.parentElement = value;
20861 }
20862 }
20863
20864 /// <summary>
20865 /// Processes this element and all child elements into an XmlWriter.
20866 /// </summary>
20867 public virtual void OutputXml(XmlWriter writer)
20868 {
20869 if ((null == writer))
20870 {
20871 throw new ArgumentNullException("writer");
20872 }
20873 writer.WriteStartElement("ODBCTranslator", "http://wixtoolset.org/schemas/v4/wxs");
20874 if (this.idFieldSet)
20875 {
20876 writer.WriteAttributeString("Id", this.idField);
20877 }
20878 if (this.nameFieldSet)
20879 {
20880 writer.WriteAttributeString("Name", this.nameField);
20881 }
20882 if (this.fileFieldSet)
20883 {
20884 writer.WriteAttributeString("File", this.fileField);
20885 }
20886 if (this.setupFileFieldSet)
20887 {
20888 writer.WriteAttributeString("SetupFile", this.setupFileField);
20889 }
20890 writer.WriteEndElement();
20891 }
20892
20893 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
20894 void ISetAttributes.SetAttribute(string name, string value)
20895 {
20896 if (String.IsNullOrEmpty(name))
20897 {
20898 throw new ArgumentNullException("name");
20899 }
20900 if (("Id" == name))
20901 {
20902 this.idField = value;
20903 this.idFieldSet = true;
20904 }
20905 if (("Name" == name))
20906 {
20907 this.nameField = value;
20908 this.nameFieldSet = true;
20909 }
20910 if (("File" == name))
20911 {
20912 this.fileField = value;
20913 this.fileFieldSet = true;
20914 }
20915 if (("SetupFile" == name))
20916 {
20917 this.setupFileField = value;
20918 this.setupFileFieldSet = true;
20919 }
20920 }
20921 }
20922
20923 /// <summary>
20924 /// Searches for file and assigns to fullpath value of parent Property
20925 /// </summary>
20926 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
20927 public class FileSearch : ISchemaElement, ISetAttributes
20928 {
20929
20930 private string idField;
20931
20932 private bool idFieldSet;
20933
20934 private string nameField;
20935
20936 private bool nameFieldSet;
20937
20938 private string shortNameField;
20939
20940 private bool shortNameFieldSet;
20941
20942 private int minSizeField;
20943
20944 private bool minSizeFieldSet;
20945
20946 private int maxSizeField;
20947
20948 private bool maxSizeFieldSet;
20949
20950 private string minVersionField;
20951
20952 private bool minVersionFieldSet;
20953
20954 private string maxVersionField;
20955
20956 private bool maxVersionFieldSet;
20957
20958 private DateTime minDateField;
20959
20960 private bool minDateFieldSet;
20961
20962 private DateTime maxDateField;
20963
20964 private bool maxDateFieldSet;
20965
20966 private string languagesField;
20967
20968 private bool languagesFieldSet;
20969
20970 private ISchemaElement parentElement;
20971
20972 /// <summary>
20973 /// Unique identifier for the file search and external key into the Signature table. If this attribute value is not set then the parent element's @Id attribute is used.
20974 /// </summary>
20975 public string Id
20976 {
20977 get
20978 {
20979 return this.idField;
20980 }
20981 set
20982 {
20983 this.idFieldSet = true;
20984 this.idField = value;
20985 }
20986 }
20987
20988 /// <summary>
20989 /// In prior versions of the WiX toolset, this attribute specified the short file name.
20990 /// This attribute's value may now be either a short or long file name.
20991 /// If a short file name is specified, the ShortName attribute may not be specified.
20992 /// If you wish to manually specify the short file name, then the ShortName
20993 /// attribute may be specified.
20994 /// </summary>
20995 public string Name
20996 {
20997 get
20998 {
20999 return this.nameField;
21000 }
21001 set
21002 {
21003 this.nameFieldSet = true;
21004 this.nameField = value;
21005 }
21006 }
21007
21008 /// <summary>
21009 /// The short file name of the file in 8.3 format.
21010 /// There is a Windows Installer bug which prevents the FileSearch functionality from working
21011 /// if both a short and long file name are specified. Since the Name attribute allows either
21012 /// a short or long name to be specified, it is the only attribute related to file names which
21013 /// should be specified.
21014 /// </summary>
21015 public string ShortName
21016 {
21017 get
21018 {
21019 return this.shortNameField;
21020 }
21021 set
21022 {
21023 this.shortNameFieldSet = true;
21024 this.shortNameField = value;
21025 }
21026 }
21027
21028 /// <summary>
21029 /// The minimum size of the file.
21030 /// </summary>
21031 public int MinSize
21032 {
21033 get
21034 {
21035 return this.minSizeField;
21036 }
21037 set
21038 {
21039 this.minSizeFieldSet = true;
21040 this.minSizeField = value;
21041 }
21042 }
21043
21044 /// <summary>
21045 /// The maximum size of the file.
21046 /// </summary>
21047 public int MaxSize
21048 {
21049 get
21050 {
21051 return this.maxSizeField;
21052 }
21053 set
21054 {
21055 this.maxSizeFieldSet = true;
21056 this.maxSizeField = value;
21057 }
21058 }
21059
21060 /// <summary>
21061 /// The minimum version of the file.
21062 /// </summary>
21063 public string MinVersion
21064 {
21065 get
21066 {
21067 return this.minVersionField;
21068 }
21069 set
21070 {
21071 this.minVersionFieldSet = true;
21072 this.minVersionField = value;
21073 }
21074 }
21075
21076 /// <summary>
21077 /// The maximum version of the file.
21078 /// </summary>
21079 public string MaxVersion
21080 {
21081 get
21082 {
21083 return this.maxVersionField;
21084 }
21085 set
21086 {
21087 this.maxVersionFieldSet = true;
21088 this.maxVersionField = value;
21089 }
21090 }
21091
21092 /// <summary>
21093 /// The minimum modification date and time of the file. Formatted as YYYY-MM-DDTHH:mm:ss, where YYYY is the year, MM is month, DD is day, 'T' is literal, HH is hour, mm is minute and ss is second.
21094 /// </summary>
21095 public DateTime MinDate
21096 {
21097 get
21098 {
21099 return this.minDateField;
21100 }
21101 set
21102 {
21103 this.minDateFieldSet = true;
21104 this.minDateField = value;
21105 }
21106 }
21107
21108 /// <summary>
21109 /// The maximum modification date and time of the file. Formatted as YYYY-MM-DDTHH:mm:ss, where YYYY is the year, MM is month, DD is day, 'T' is literal, HH is hour, mm is minute and ss is second.
21110 /// </summary>
21111 public DateTime MaxDate
21112 {
21113 get
21114 {
21115 return this.maxDateField;
21116 }
21117 set
21118 {
21119 this.maxDateFieldSet = true;
21120 this.maxDateField = value;
21121 }
21122 }
21123
21124 /// <summary>
21125 /// The languages supported by the file.
21126 /// </summary>
21127 public string Languages
21128 {
21129 get
21130 {
21131 return this.languagesField;
21132 }
21133 set
21134 {
21135 this.languagesFieldSet = true;
21136 this.languagesField = value;
21137 }
21138 }
21139
21140 public virtual ISchemaElement ParentElement
21141 {
21142 get
21143 {
21144 return this.parentElement;
21145 }
21146 set
21147 {
21148 this.parentElement = value;
21149 }
21150 }
21151
21152 /// <summary>
21153 /// Processes this element and all child elements into an XmlWriter.
21154 /// </summary>
21155 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
21156 public virtual void OutputXml(XmlWriter writer)
21157 {
21158 if ((null == writer))
21159 {
21160 throw new ArgumentNullException("writer");
21161 }
21162 writer.WriteStartElement("FileSearch", "http://wixtoolset.org/schemas/v4/wxs");
21163 if (this.idFieldSet)
21164 {
21165 writer.WriteAttributeString("Id", this.idField);
21166 }
21167 if (this.nameFieldSet)
21168 {
21169 writer.WriteAttributeString("Name", this.nameField);
21170 }
21171 if (this.shortNameFieldSet)
21172 {
21173 writer.WriteAttributeString("ShortName", this.shortNameField);
21174 }
21175 if (this.minSizeFieldSet)
21176 {
21177 writer.WriteAttributeString("MinSize", this.minSizeField.ToString(CultureInfo.InvariantCulture));
21178 }
21179 if (this.maxSizeFieldSet)
21180 {
21181 writer.WriteAttributeString("MaxSize", this.maxSizeField.ToString(CultureInfo.InvariantCulture));
21182 }
21183 if (this.minVersionFieldSet)
21184 {
21185 writer.WriteAttributeString("MinVersion", this.minVersionField);
21186 }
21187 if (this.maxVersionFieldSet)
21188 {
21189 writer.WriteAttributeString("MaxVersion", this.maxVersionField);
21190 }
21191 if (this.minDateFieldSet)
21192 {
21193 writer.WriteAttributeString("MinDate", this.minDateField.ToString("yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture.DateTimeFormat));
21194 }
21195 if (this.maxDateFieldSet)
21196 {
21197 writer.WriteAttributeString("MaxDate", this.maxDateField.ToString("yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture.DateTimeFormat));
21198 }
21199 if (this.languagesFieldSet)
21200 {
21201 writer.WriteAttributeString("Languages", this.languagesField);
21202 }
21203 writer.WriteEndElement();
21204 }
21205
21206 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
21207 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
21208 void ISetAttributes.SetAttribute(string name, string value)
21209 {
21210 if (String.IsNullOrEmpty(name))
21211 {
21212 throw new ArgumentNullException("name");
21213 }
21214 if (("Id" == name))
21215 {
21216 this.idField = value;
21217 this.idFieldSet = true;
21218 }
21219 if (("Name" == name))
21220 {
21221 this.nameField = value;
21222 this.nameFieldSet = true;
21223 }
21224 if (("ShortName" == name))
21225 {
21226 this.shortNameField = value;
21227 this.shortNameFieldSet = true;
21228 }
21229 if (("MinSize" == name))
21230 {
21231 this.minSizeField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
21232 this.minSizeFieldSet = true;
21233 }
21234 if (("MaxSize" == name))
21235 {
21236 this.maxSizeField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
21237 this.maxSizeFieldSet = true;
21238 }
21239 if (("MinVersion" == name))
21240 {
21241 this.minVersionField = value;
21242 this.minVersionFieldSet = true;
21243 }
21244 if (("MaxVersion" == name))
21245 {
21246 this.maxVersionField = value;
21247 this.maxVersionFieldSet = true;
21248 }
21249 if (("MinDate" == name))
21250 {
21251 this.minDateField = Convert.ToDateTime(value, CultureInfo.InvariantCulture);
21252 this.minDateFieldSet = true;
21253 }
21254 if (("MaxDate" == name))
21255 {
21256 this.maxDateField = Convert.ToDateTime(value, CultureInfo.InvariantCulture);
21257 this.maxDateFieldSet = true;
21258 }
21259 if (("Languages" == name))
21260 {
21261 this.languagesField = value;
21262 this.languagesFieldSet = true;
21263 }
21264 }
21265 }
21266
21267 /// <summary>
21268 /// References an existing FileSearch element.
21269 /// </summary>
21270 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
21271 public class FileSearchRef : ISchemaElement, ISetAttributes
21272 {
21273
21274 private string idField;
21275
21276 private bool idFieldSet;
21277
21278 private ISchemaElement parentElement;
21279
21280 /// <summary>
21281 /// Specify the Id to the FileSearch to reference.
21282 /// </summary>
21283 public string Id
21284 {
21285 get
21286 {
21287 return this.idField;
21288 }
21289 set
21290 {
21291 this.idFieldSet = true;
21292 this.idField = value;
21293 }
21294 }
21295
21296 public virtual ISchemaElement ParentElement
21297 {
21298 get
21299 {
21300 return this.parentElement;
21301 }
21302 set
21303 {
21304 this.parentElement = value;
21305 }
21306 }
21307
21308 /// <summary>
21309 /// Processes this element and all child elements into an XmlWriter.
21310 /// </summary>
21311 public virtual void OutputXml(XmlWriter writer)
21312 {
21313 if ((null == writer))
21314 {
21315 throw new ArgumentNullException("writer");
21316 }
21317 writer.WriteStartElement("FileSearchRef", "http://wixtoolset.org/schemas/v4/wxs");
21318 if (this.idFieldSet)
21319 {
21320 writer.WriteAttributeString("Id", this.idField);
21321 }
21322 writer.WriteEndElement();
21323 }
21324
21325 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
21326 void ISetAttributes.SetAttribute(string name, string value)
21327 {
21328 if (String.IsNullOrEmpty(name))
21329 {
21330 throw new ArgumentNullException("name");
21331 }
21332 if (("Id" == name))
21333 {
21334 this.idField = value;
21335 this.idFieldSet = true;
21336 }
21337 }
21338 }
21339
21340 /// <summary>
21341 /// Searches for directory and assigns to value of parent Property.
21342 /// </summary>
21343 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
21344 public class DirectorySearch : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
21345 {
21346
21347 private ElementCollection children;
21348
21349 private string idField;
21350
21351 private bool idFieldSet;
21352
21353 private string pathField;
21354
21355 private bool pathFieldSet;
21356
21357 private int depthField;
21358
21359 private bool depthFieldSet;
21360
21361 private YesNoType assignToPropertyField;
21362
21363 private bool assignToPropertyFieldSet;
21364
21365 private ISchemaElement parentElement;
21366
21367 public DirectorySearch()
21368 {
21369 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
21370 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch)));
21371 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef)));
21372 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearch)));
21373 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearchRef)));
21374 this.children = childCollection0;
21375 }
21376
21377 public virtual IEnumerable Children
21378 {
21379 get
21380 {
21381 return this.children;
21382 }
21383 }
21384
21385 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
21386 public virtual IEnumerable this[System.Type childType]
21387 {
21388 get
21389 {
21390 return this.children.Filter(childType);
21391 }
21392 }
21393
21394 /// <summary>
21395 /// Unique identifier for the directory search.
21396 /// </summary>
21397 public string Id
21398 {
21399 get
21400 {
21401 return this.idField;
21402 }
21403 set
21404 {
21405 this.idFieldSet = true;
21406 this.idField = value;
21407 }
21408 }
21409
21410 /// <summary>
21411 /// Path on the user's system. Either absolute, or relative to containing directories.
21412 /// </summary>
21413 public string Path
21414 {
21415 get
21416 {
21417 return this.pathField;
21418 }
21419 set
21420 {
21421 this.pathFieldSet = true;
21422 this.pathField = value;
21423 }
21424 }
21425
21426 /// <summary>
21427 /// Depth below the path that the installer searches for the file or directory specified by the search. See remarks for more information.
21428 /// </summary>
21429 public int Depth
21430 {
21431 get
21432 {
21433 return this.depthField;
21434 }
21435 set
21436 {
21437 this.depthFieldSet = true;
21438 this.depthField = value;
21439 }
21440 }
21441
21442 /// <summary>
21443 /// Set the value of the outer Property to the result of this search. See remarks for more information.
21444 /// </summary>
21445 public YesNoType AssignToProperty
21446 {
21447 get
21448 {
21449 return this.assignToPropertyField;
21450 }
21451 set
21452 {
21453 this.assignToPropertyFieldSet = true;
21454 this.assignToPropertyField = value;
21455 }
21456 }
21457
21458 public virtual ISchemaElement ParentElement
21459 {
21460 get
21461 {
21462 return this.parentElement;
21463 }
21464 set
21465 {
21466 this.parentElement = value;
21467 }
21468 }
21469
21470 public virtual void AddChild(ISchemaElement child)
21471 {
21472 if ((null == child))
21473 {
21474 throw new ArgumentNullException("child");
21475 }
21476 this.children.AddElement(child);
21477 child.ParentElement = this;
21478 }
21479
21480 public virtual void RemoveChild(ISchemaElement child)
21481 {
21482 if ((null == child))
21483 {
21484 throw new ArgumentNullException("child");
21485 }
21486 this.children.RemoveElement(child);
21487 child.ParentElement = null;
21488 }
21489
21490 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
21491 ISchemaElement ICreateChildren.CreateChild(string childName)
21492 {
21493 if (String.IsNullOrEmpty(childName))
21494 {
21495 throw new ArgumentNullException("childName");
21496 }
21497 ISchemaElement childValue = null;
21498 if (("DirectorySearch" == childName))
21499 {
21500 childValue = new DirectorySearch();
21501 }
21502 if (("DirectorySearchRef" == childName))
21503 {
21504 childValue = new DirectorySearchRef();
21505 }
21506 if (("FileSearch" == childName))
21507 {
21508 childValue = new FileSearch();
21509 }
21510 if (("FileSearchRef" == childName))
21511 {
21512 childValue = new FileSearchRef();
21513 }
21514 if ((null == childValue))
21515 {
21516 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
21517 }
21518 return childValue;
21519 }
21520
21521 /// <summary>
21522 /// Processes this element and all child elements into an XmlWriter.
21523 /// </summary>
21524 public virtual void OutputXml(XmlWriter writer)
21525 {
21526 if ((null == writer))
21527 {
21528 throw new ArgumentNullException("writer");
21529 }
21530 writer.WriteStartElement("DirectorySearch", "http://wixtoolset.org/schemas/v4/wxs");
21531 if (this.idFieldSet)
21532 {
21533 writer.WriteAttributeString("Id", this.idField);
21534 }
21535 if (this.pathFieldSet)
21536 {
21537 writer.WriteAttributeString("Path", this.pathField);
21538 }
21539 if (this.depthFieldSet)
21540 {
21541 writer.WriteAttributeString("Depth", this.depthField.ToString(CultureInfo.InvariantCulture));
21542 }
21543 if (this.assignToPropertyFieldSet)
21544 {
21545 if ((this.assignToPropertyField == YesNoType.no))
21546 {
21547 writer.WriteAttributeString("AssignToProperty", "no");
21548 }
21549 if ((this.assignToPropertyField == YesNoType.yes))
21550 {
21551 writer.WriteAttributeString("AssignToProperty", "yes");
21552 }
21553 }
21554 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
21555 {
21556 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
21557 childElement.OutputXml(writer);
21558 }
21559 writer.WriteEndElement();
21560 }
21561
21562 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
21563 void ISetAttributes.SetAttribute(string name, string value)
21564 {
21565 if (String.IsNullOrEmpty(name))
21566 {
21567 throw new ArgumentNullException("name");
21568 }
21569 if (("Id" == name))
21570 {
21571 this.idField = value;
21572 this.idFieldSet = true;
21573 }
21574 if (("Path" == name))
21575 {
21576 this.pathField = value;
21577 this.pathFieldSet = true;
21578 }
21579 if (("Depth" == name))
21580 {
21581 this.depthField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
21582 this.depthFieldSet = true;
21583 }
21584 if (("AssignToProperty" == name))
21585 {
21586 this.assignToPropertyField = Enums.ParseYesNoType(value);
21587 this.assignToPropertyFieldSet = true;
21588 }
21589 }
21590 }
21591
21592 /// <summary>
21593 /// References an existing DirectorySearch element.
21594 /// </summary>
21595 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
21596 public class DirectorySearchRef : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
21597 {
21598
21599 private ElementCollection children;
21600
21601 private string idField;
21602
21603 private bool idFieldSet;
21604
21605 private string parentField;
21606
21607 private bool parentFieldSet;
21608
21609 private string pathField;
21610
21611 private bool pathFieldSet;
21612
21613 private ISchemaElement parentElement;
21614
21615 public DirectorySearchRef()
21616 {
21617 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
21618 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch)));
21619 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef)));
21620 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearch)));
21621 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearchRef)));
21622 this.children = childCollection0;
21623 }
21624
21625 public virtual IEnumerable Children
21626 {
21627 get
21628 {
21629 return this.children;
21630 }
21631 }
21632
21633 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
21634 public virtual IEnumerable this[System.Type childType]
21635 {
21636 get
21637 {
21638 return this.children.Filter(childType);
21639 }
21640 }
21641
21642 /// <summary>
21643 /// Id of the search being referred to.
21644 /// </summary>
21645 public string Id
21646 {
21647 get
21648 {
21649 return this.idField;
21650 }
21651 set
21652 {
21653 this.idFieldSet = true;
21654 this.idField = value;
21655 }
21656 }
21657
21658 /// <summary>
21659 /// This attribute is the signature of the parent directory of the file or directory in the Signature_ column. If this field is null, and the Path column does not expand to a full path, then all the fixed drives of the user's system are searched by using the Path. This field is a key into one of the following tables: the RegLocator, the IniLocator, the CompLocator, or the DrLocator tables.
21660 /// </summary>
21661 public string Parent
21662 {
21663 get
21664 {
21665 return this.parentField;
21666 }
21667 set
21668 {
21669 this.parentFieldSet = true;
21670 this.parentField = value;
21671 }
21672 }
21673
21674 /// <summary>
21675 /// Path on the user's system. Either absolute, or relative to containing directories.
21676 /// </summary>
21677 public string Path
21678 {
21679 get
21680 {
21681 return this.pathField;
21682 }
21683 set
21684 {
21685 this.pathFieldSet = true;
21686 this.pathField = value;
21687 }
21688 }
21689
21690 public virtual ISchemaElement ParentElement
21691 {
21692 get
21693 {
21694 return this.parentElement;
21695 }
21696 set
21697 {
21698 this.parentElement = value;
21699 }
21700 }
21701
21702 public virtual void AddChild(ISchemaElement child)
21703 {
21704 if ((null == child))
21705 {
21706 throw new ArgumentNullException("child");
21707 }
21708 this.children.AddElement(child);
21709 child.ParentElement = this;
21710 }
21711
21712 public virtual void RemoveChild(ISchemaElement child)
21713 {
21714 if ((null == child))
21715 {
21716 throw new ArgumentNullException("child");
21717 }
21718 this.children.RemoveElement(child);
21719 child.ParentElement = null;
21720 }
21721
21722 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
21723 ISchemaElement ICreateChildren.CreateChild(string childName)
21724 {
21725 if (String.IsNullOrEmpty(childName))
21726 {
21727 throw new ArgumentNullException("childName");
21728 }
21729 ISchemaElement childValue = null;
21730 if (("DirectorySearch" == childName))
21731 {
21732 childValue = new DirectorySearch();
21733 }
21734 if (("DirectorySearchRef" == childName))
21735 {
21736 childValue = new DirectorySearchRef();
21737 }
21738 if (("FileSearch" == childName))
21739 {
21740 childValue = new FileSearch();
21741 }
21742 if (("FileSearchRef" == childName))
21743 {
21744 childValue = new FileSearchRef();
21745 }
21746 if ((null == childValue))
21747 {
21748 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
21749 }
21750 return childValue;
21751 }
21752
21753 /// <summary>
21754 /// Processes this element and all child elements into an XmlWriter.
21755 /// </summary>
21756 public virtual void OutputXml(XmlWriter writer)
21757 {
21758 if ((null == writer))
21759 {
21760 throw new ArgumentNullException("writer");
21761 }
21762 writer.WriteStartElement("DirectorySearchRef", "http://wixtoolset.org/schemas/v4/wxs");
21763 if (this.idFieldSet)
21764 {
21765 writer.WriteAttributeString("Id", this.idField);
21766 }
21767 if (this.parentFieldSet)
21768 {
21769 writer.WriteAttributeString("Parent", this.parentField);
21770 }
21771 if (this.pathFieldSet)
21772 {
21773 writer.WriteAttributeString("Path", this.pathField);
21774 }
21775 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
21776 {
21777 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
21778 childElement.OutputXml(writer);
21779 }
21780 writer.WriteEndElement();
21781 }
21782
21783 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
21784 void ISetAttributes.SetAttribute(string name, string value)
21785 {
21786 if (String.IsNullOrEmpty(name))
21787 {
21788 throw new ArgumentNullException("name");
21789 }
21790 if (("Id" == name))
21791 {
21792 this.idField = value;
21793 this.idFieldSet = true;
21794 }
21795 if (("Parent" == name))
21796 {
21797 this.parentField = value;
21798 this.parentFieldSet = true;
21799 }
21800 if (("Path" == name))
21801 {
21802 this.pathField = value;
21803 this.pathFieldSet = true;
21804 }
21805 }
21806 }
21807
21808 /// <summary>
21809 /// Searches for file or directory and assigns to value of parent Property.
21810 /// </summary>
21811 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
21812 public class ComponentSearch : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
21813 {
21814
21815 private ElementCollection children;
21816
21817 private string idField;
21818
21819 private bool idFieldSet;
21820
21821 private string guidField;
21822
21823 private bool guidFieldSet;
21824
21825 private TypeType typeField;
21826
21827 private bool typeFieldSet;
21828
21829 private ISchemaElement parentElement;
21830
21831 public ComponentSearch()
21832 {
21833 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
21834 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch)));
21835 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef)));
21836 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearch)));
21837 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearchRef)));
21838 this.children = childCollection0;
21839 }
21840
21841 public virtual IEnumerable Children
21842 {
21843 get
21844 {
21845 return this.children;
21846 }
21847 }
21848
21849 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
21850 public virtual IEnumerable this[System.Type childType]
21851 {
21852 get
21853 {
21854 return this.children.Filter(childType);
21855 }
21856 }
21857
21858 public string Id
21859 {
21860 get
21861 {
21862 return this.idField;
21863 }
21864 set
21865 {
21866 this.idFieldSet = true;
21867 this.idField = value;
21868 }
21869 }
21870
21871 /// <summary>
21872 /// The component ID of the component whose key path is to be used for the search.
21873 /// </summary>
21874 public string Guid
21875 {
21876 get
21877 {
21878 return this.guidField;
21879 }
21880 set
21881 {
21882 this.guidFieldSet = true;
21883 this.guidField = value;
21884 }
21885 }
21886
21887 /// <summary>
21888 /// Must be file if last child is FileSearch element and must be directory if last child is DirectorySearch element.
21889 /// </summary>
21890 public TypeType Type
21891 {
21892 get
21893 {
21894 return this.typeField;
21895 }
21896 set
21897 {
21898 this.typeFieldSet = true;
21899 this.typeField = value;
21900 }
21901 }
21902
21903 public virtual ISchemaElement ParentElement
21904 {
21905 get
21906 {
21907 return this.parentElement;
21908 }
21909 set
21910 {
21911 this.parentElement = value;
21912 }
21913 }
21914
21915 public virtual void AddChild(ISchemaElement child)
21916 {
21917 if ((null == child))
21918 {
21919 throw new ArgumentNullException("child");
21920 }
21921 this.children.AddElement(child);
21922 child.ParentElement = this;
21923 }
21924
21925 public virtual void RemoveChild(ISchemaElement child)
21926 {
21927 if ((null == child))
21928 {
21929 throw new ArgumentNullException("child");
21930 }
21931 this.children.RemoveElement(child);
21932 child.ParentElement = null;
21933 }
21934
21935 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
21936 ISchemaElement ICreateChildren.CreateChild(string childName)
21937 {
21938 if (String.IsNullOrEmpty(childName))
21939 {
21940 throw new ArgumentNullException("childName");
21941 }
21942 ISchemaElement childValue = null;
21943 if (("DirectorySearch" == childName))
21944 {
21945 childValue = new DirectorySearch();
21946 }
21947 if (("DirectorySearchRef" == childName))
21948 {
21949 childValue = new DirectorySearchRef();
21950 }
21951 if (("FileSearch" == childName))
21952 {
21953 childValue = new FileSearch();
21954 }
21955 if (("FileSearchRef" == childName))
21956 {
21957 childValue = new FileSearchRef();
21958 }
21959 if ((null == childValue))
21960 {
21961 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
21962 }
21963 return childValue;
21964 }
21965
21966 /// <summary>
21967 /// Parses a TypeType from a string.
21968 /// </summary>
21969 public static TypeType ParseTypeType(string value)
21970 {
21971 TypeType parsedValue;
21972 ComponentSearch.TryParseTypeType(value, out parsedValue);
21973 return parsedValue;
21974 }
21975
21976 /// <summary>
21977 /// Tries to parse a TypeType from a string.
21978 /// </summary>
21979 public static bool TryParseTypeType(string value, out TypeType parsedValue)
21980 {
21981 parsedValue = TypeType.NotSet;
21982 if (string.IsNullOrEmpty(value))
21983 {
21984 return false;
21985 }
21986 if (("directory" == value))
21987 {
21988 parsedValue = TypeType.directory;
21989 }
21990 else
21991 {
21992 if (("file" == value))
21993 {
21994 parsedValue = TypeType.file;
21995 }
21996 else
21997 {
21998 parsedValue = TypeType.IllegalValue;
21999 return false;
22000 }
22001 }
22002 return true;
22003 }
22004
22005 /// <summary>
22006 /// Processes this element and all child elements into an XmlWriter.
22007 /// </summary>
22008 public virtual void OutputXml(XmlWriter writer)
22009 {
22010 if ((null == writer))
22011 {
22012 throw new ArgumentNullException("writer");
22013 }
22014 writer.WriteStartElement("ComponentSearch", "http://wixtoolset.org/schemas/v4/wxs");
22015 if (this.idFieldSet)
22016 {
22017 writer.WriteAttributeString("Id", this.idField);
22018 }
22019 if (this.guidFieldSet)
22020 {
22021 writer.WriteAttributeString("Guid", this.guidField);
22022 }
22023 if (this.typeFieldSet)
22024 {
22025 if ((this.typeField == TypeType.directory))
22026 {
22027 writer.WriteAttributeString("Type", "directory");
22028 }
22029 if ((this.typeField == TypeType.file))
22030 {
22031 writer.WriteAttributeString("Type", "file");
22032 }
22033 }
22034 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
22035 {
22036 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
22037 childElement.OutputXml(writer);
22038 }
22039 writer.WriteEndElement();
22040 }
22041
22042 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
22043 void ISetAttributes.SetAttribute(string name, string value)
22044 {
22045 if (String.IsNullOrEmpty(name))
22046 {
22047 throw new ArgumentNullException("name");
22048 }
22049 if (("Id" == name))
22050 {
22051 this.idField = value;
22052 this.idFieldSet = true;
22053 }
22054 if (("Guid" == name))
22055 {
22056 this.guidField = value;
22057 this.guidFieldSet = true;
22058 }
22059 if (("Type" == name))
22060 {
22061 this.typeField = ComponentSearch.ParseTypeType(value);
22062 this.typeFieldSet = true;
22063 }
22064 }
22065
22066 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
22067 public enum TypeType
22068 {
22069
22070 IllegalValue = int.MaxValue,
22071
22072 NotSet = -1,
22073
22074 /// <summary>
22075 /// The key path of the component is a directory.
22076 /// </summary>
22077 directory,
22078
22079 /// <summary>
22080 /// The key path of the component is a file. This is the default value.
22081 /// </summary>
22082 file,
22083 }
22084 }
22085
22086 /// <summary>
22087 /// Searches for file, directory or registry key and assigns to value of parent Property
22088 /// </summary>
22089 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
22090 public class IniFileSearch : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
22091 {
22092
22093 private ElementCollection children;
22094
22095 private string idField;
22096
22097 private bool idFieldSet;
22098
22099 private int fieldField;
22100
22101 private bool fieldFieldSet;
22102
22103 private string keyField;
22104
22105 private bool keyFieldSet;
22106
22107 private string nameField;
22108
22109 private bool nameFieldSet;
22110
22111 private string sectionField;
22112
22113 private bool sectionFieldSet;
22114
22115 private string shortNameField;
22116
22117 private bool shortNameFieldSet;
22118
22119 private TypeType typeField;
22120
22121 private bool typeFieldSet;
22122
22123 private ISchemaElement parentElement;
22124
22125 public IniFileSearch()
22126 {
22127 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
22128 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch)));
22129 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef)));
22130 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearch)));
22131 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearchRef)));
22132 this.children = childCollection0;
22133 }
22134
22135 public virtual IEnumerable Children
22136 {
22137 get
22138 {
22139 return this.children;
22140 }
22141 }
22142
22143 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
22144 public virtual IEnumerable this[System.Type childType]
22145 {
22146 get
22147 {
22148 return this.children.Filter(childType);
22149 }
22150 }
22151
22152 /// <summary>
22153 /// External key into the Signature table.
22154 /// </summary>
22155 public string Id
22156 {
22157 get
22158 {
22159 return this.idField;
22160 }
22161 set
22162 {
22163 this.idFieldSet = true;
22164 this.idField = value;
22165 }
22166 }
22167
22168 /// <summary>
22169 /// The field in the .ini line. If field is Null or 0, the entire line is read.
22170 /// </summary>
22171 public int Field
22172 {
22173 get
22174 {
22175 return this.fieldField;
22176 }
22177 set
22178 {
22179 this.fieldFieldSet = true;
22180 this.fieldField = value;
22181 }
22182 }
22183
22184 /// <summary>
22185 /// The key value within the section.
22186 /// </summary>
22187 public string Key
22188 {
22189 get
22190 {
22191 return this.keyField;
22192 }
22193 set
22194 {
22195 this.keyFieldSet = true;
22196 this.keyField = value;
22197 }
22198 }
22199
22200 /// <summary>
22201 /// In prior versions of the WiX toolset, this attribute specified the short name.
22202 /// This attribute's value may now be either a short or long name.
22203 /// If a short name is specified, the ShortName attribute may not be specified.
22204 /// Also, if this value is a long name, the ShortName attribute may be omitted to
22205 /// allow WiX to attempt to generate a unique short name.
22206 /// However, if you wish to manually specify the short name, then the ShortName
22207 /// attribute may be specified.
22208 /// </summary>
22209 public string Name
22210 {
22211 get
22212 {
22213 return this.nameField;
22214 }
22215 set
22216 {
22217 this.nameFieldSet = true;
22218 this.nameField = value;
22219 }
22220 }
22221
22222 /// <summary>
22223 /// The localizable .ini file section.
22224 /// </summary>
22225 public string Section
22226 {
22227 get
22228 {
22229 return this.sectionField;
22230 }
22231 set
22232 {
22233 this.sectionFieldSet = true;
22234 this.sectionField = value;
22235 }
22236 }
22237
22238 /// <summary>
22239 /// The short name of the file in 8.3 format.
22240 /// This attribute should only be set if the user wants to manually specify the short name.
22241 /// </summary>
22242 public string ShortName
22243 {
22244 get
22245 {
22246 return this.shortNameField;
22247 }
22248 set
22249 {
22250 this.shortNameFieldSet = true;
22251 this.shortNameField = value;
22252 }
22253 }
22254
22255 /// <summary>
22256 /// Must be file if last child is FileSearch element and must be directory if last child is DirectorySearch element.
22257 /// </summary>
22258 public TypeType Type
22259 {
22260 get
22261 {
22262 return this.typeField;
22263 }
22264 set
22265 {
22266 this.typeFieldSet = true;
22267 this.typeField = value;
22268 }
22269 }
22270
22271 public virtual ISchemaElement ParentElement
22272 {
22273 get
22274 {
22275 return this.parentElement;
22276 }
22277 set
22278 {
22279 this.parentElement = value;
22280 }
22281 }
22282
22283 public virtual void AddChild(ISchemaElement child)
22284 {
22285 if ((null == child))
22286 {
22287 throw new ArgumentNullException("child");
22288 }
22289 this.children.AddElement(child);
22290 child.ParentElement = this;
22291 }
22292
22293 public virtual void RemoveChild(ISchemaElement child)
22294 {
22295 if ((null == child))
22296 {
22297 throw new ArgumentNullException("child");
22298 }
22299 this.children.RemoveElement(child);
22300 child.ParentElement = null;
22301 }
22302
22303 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
22304 ISchemaElement ICreateChildren.CreateChild(string childName)
22305 {
22306 if (String.IsNullOrEmpty(childName))
22307 {
22308 throw new ArgumentNullException("childName");
22309 }
22310 ISchemaElement childValue = null;
22311 if (("DirectorySearch" == childName))
22312 {
22313 childValue = new DirectorySearch();
22314 }
22315 if (("DirectorySearchRef" == childName))
22316 {
22317 childValue = new DirectorySearchRef();
22318 }
22319 if (("FileSearch" == childName))
22320 {
22321 childValue = new FileSearch();
22322 }
22323 if (("FileSearchRef" == childName))
22324 {
22325 childValue = new FileSearchRef();
22326 }
22327 if ((null == childValue))
22328 {
22329 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
22330 }
22331 return childValue;
22332 }
22333
22334 /// <summary>
22335 /// Parses a TypeType from a string.
22336 /// </summary>
22337 public static TypeType ParseTypeType(string value)
22338 {
22339 TypeType parsedValue;
22340 IniFileSearch.TryParseTypeType(value, out parsedValue);
22341 return parsedValue;
22342 }
22343
22344 /// <summary>
22345 /// Tries to parse a TypeType from a string.
22346 /// </summary>
22347 public static bool TryParseTypeType(string value, out TypeType parsedValue)
22348 {
22349 parsedValue = TypeType.NotSet;
22350 if (string.IsNullOrEmpty(value))
22351 {
22352 return false;
22353 }
22354 if (("directory" == value))
22355 {
22356 parsedValue = TypeType.directory;
22357 }
22358 else
22359 {
22360 if (("file" == value))
22361 {
22362 parsedValue = TypeType.file;
22363 }
22364 else
22365 {
22366 if (("raw" == value))
22367 {
22368 parsedValue = TypeType.raw;
22369 }
22370 else
22371 {
22372 parsedValue = TypeType.IllegalValue;
22373 return false;
22374 }
22375 }
22376 }
22377 return true;
22378 }
22379
22380 /// <summary>
22381 /// Processes this element and all child elements into an XmlWriter.
22382 /// </summary>
22383 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
22384 public virtual void OutputXml(XmlWriter writer)
22385 {
22386 if ((null == writer))
22387 {
22388 throw new ArgumentNullException("writer");
22389 }
22390 writer.WriteStartElement("IniFileSearch", "http://wixtoolset.org/schemas/v4/wxs");
22391 if (this.idFieldSet)
22392 {
22393 writer.WriteAttributeString("Id", this.idField);
22394 }
22395 if (this.fieldFieldSet)
22396 {
22397 writer.WriteAttributeString("Field", this.fieldField.ToString(CultureInfo.InvariantCulture));
22398 }
22399 if (this.keyFieldSet)
22400 {
22401 writer.WriteAttributeString("Key", this.keyField);
22402 }
22403 if (this.nameFieldSet)
22404 {
22405 writer.WriteAttributeString("Name", this.nameField);
22406 }
22407 if (this.sectionFieldSet)
22408 {
22409 writer.WriteAttributeString("Section", this.sectionField);
22410 }
22411 if (this.shortNameFieldSet)
22412 {
22413 writer.WriteAttributeString("ShortName", this.shortNameField);
22414 }
22415 if (this.typeFieldSet)
22416 {
22417 if ((this.typeField == TypeType.directory))
22418 {
22419 writer.WriteAttributeString("Type", "directory");
22420 }
22421 if ((this.typeField == TypeType.file))
22422 {
22423 writer.WriteAttributeString("Type", "file");
22424 }
22425 if ((this.typeField == TypeType.raw))
22426 {
22427 writer.WriteAttributeString("Type", "raw");
22428 }
22429 }
22430 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
22431 {
22432 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
22433 childElement.OutputXml(writer);
22434 }
22435 writer.WriteEndElement();
22436 }
22437
22438 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
22439 void ISetAttributes.SetAttribute(string name, string value)
22440 {
22441 if (String.IsNullOrEmpty(name))
22442 {
22443 throw new ArgumentNullException("name");
22444 }
22445 if (("Id" == name))
22446 {
22447 this.idField = value;
22448 this.idFieldSet = true;
22449 }
22450 if (("Field" == name))
22451 {
22452 this.fieldField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
22453 this.fieldFieldSet = true;
22454 }
22455 if (("Key" == name))
22456 {
22457 this.keyField = value;
22458 this.keyFieldSet = true;
22459 }
22460 if (("Name" == name))
22461 {
22462 this.nameField = value;
22463 this.nameFieldSet = true;
22464 }
22465 if (("Section" == name))
22466 {
22467 this.sectionField = value;
22468 this.sectionFieldSet = true;
22469 }
22470 if (("ShortName" == name))
22471 {
22472 this.shortNameField = value;
22473 this.shortNameFieldSet = true;
22474 }
22475 if (("Type" == name))
22476 {
22477 this.typeField = IniFileSearch.ParseTypeType(value);
22478 this.typeFieldSet = true;
22479 }
22480 }
22481
22482 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
22483 public enum TypeType
22484 {
22485
22486 IllegalValue = int.MaxValue,
22487
22488 NotSet = -1,
22489
22490 /// <summary>
22491 /// A directory location.
22492 /// </summary>
22493 directory,
22494
22495 /// <summary>
22496 /// A file location. This is the default value.
22497 /// </summary>
22498 file,
22499
22500 /// <summary>
22501 /// A raw .ini value.
22502 /// </summary>
22503 raw,
22504 }
22505 }
22506
22507 /// <summary>
22508 /// Searches for file, directory or registry key and assigns to value of parent Property
22509 /// </summary>
22510 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
22511 public class RegistrySearch : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
22512 {
22513
22514 private ElementCollection children;
22515
22516 private string idField;
22517
22518 private bool idFieldSet;
22519
22520 private RootType rootField;
22521
22522 private bool rootFieldSet;
22523
22524 private string keyField;
22525
22526 private bool keyFieldSet;
22527
22528 private string nameField;
22529
22530 private bool nameFieldSet;
22531
22532 private TypeType typeField;
22533
22534 private bool typeFieldSet;
22535
22536 private YesNoType win64Field;
22537
22538 private bool win64FieldSet;
22539
22540 private ISchemaElement parentElement;
22541
22542 public RegistrySearch()
22543 {
22544 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
22545 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch)));
22546 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef)));
22547 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearch)));
22548 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearchRef)));
22549 this.children = childCollection0;
22550 }
22551
22552 public virtual IEnumerable Children
22553 {
22554 get
22555 {
22556 return this.children;
22557 }
22558 }
22559
22560 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
22561 public virtual IEnumerable this[System.Type childType]
22562 {
22563 get
22564 {
22565 return this.children.Filter(childType);
22566 }
22567 }
22568
22569 /// <summary>
22570 /// Signature to be used for the file, directory or registry key being searched for.
22571 /// </summary>
22572 public string Id
22573 {
22574 get
22575 {
22576 return this.idField;
22577 }
22578 set
22579 {
22580 this.idFieldSet = true;
22581 this.idField = value;
22582 }
22583 }
22584
22585 /// <summary>
22586 /// Root key for the registry value.
22587 /// </summary>
22588 public RootType Root
22589 {
22590 get
22591 {
22592 return this.rootField;
22593 }
22594 set
22595 {
22596 this.rootFieldSet = true;
22597 this.rootField = value;
22598 }
22599 }
22600
22601 /// <summary>
22602 /// Key for the registry value.
22603 /// </summary>
22604 public string Key
22605 {
22606 get
22607 {
22608 return this.keyField;
22609 }
22610 set
22611 {
22612 this.keyFieldSet = true;
22613 this.keyField = value;
22614 }
22615 }
22616
22617 /// <summary>
22618 /// Registry value name. If this value is null, then the value from the key's unnamed or default value, if any, is retrieved.
22619 /// </summary>
22620 public string Name
22621 {
22622 get
22623 {
22624 return this.nameField;
22625 }
22626 set
22627 {
22628 this.nameFieldSet = true;
22629 this.nameField = value;
22630 }
22631 }
22632
22633 /// <summary>
22634 /// The value must be 'file' if the child is a FileSearch element, and must be 'directory' if child is a DirectorySearch element.
22635 /// </summary>
22636 public TypeType Type
22637 {
22638 get
22639 {
22640 return this.typeField;
22641 }
22642 set
22643 {
22644 this.typeFieldSet = true;
22645 this.typeField = value;
22646 }
22647 }
22648
22649 /// <summary>
22650 /// 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.
22651 /// The default value is based on the platform set by the -arch switch to candle.exe
22652 /// or the InstallerPlatform property in a .wixproj MSBuild project:
22653 /// For x86 and ARM, the default value is 'no'.
22654 /// For x64 and IA64, the default value is 'yes'.
22655 /// </summary>
22656 public YesNoType Win64
22657 {
22658 get
22659 {
22660 return this.win64Field;
22661 }
22662 set
22663 {
22664 this.win64FieldSet = true;
22665 this.win64Field = value;
22666 }
22667 }
22668
22669 public virtual ISchemaElement ParentElement
22670 {
22671 get
22672 {
22673 return this.parentElement;
22674 }
22675 set
22676 {
22677 this.parentElement = value;
22678 }
22679 }
22680
22681 public virtual void AddChild(ISchemaElement child)
22682 {
22683 if ((null == child))
22684 {
22685 throw new ArgumentNullException("child");
22686 }
22687 this.children.AddElement(child);
22688 child.ParentElement = this;
22689 }
22690
22691 public virtual void RemoveChild(ISchemaElement child)
22692 {
22693 if ((null == child))
22694 {
22695 throw new ArgumentNullException("child");
22696 }
22697 this.children.RemoveElement(child);
22698 child.ParentElement = null;
22699 }
22700
22701 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
22702 ISchemaElement ICreateChildren.CreateChild(string childName)
22703 {
22704 if (String.IsNullOrEmpty(childName))
22705 {
22706 throw new ArgumentNullException("childName");
22707 }
22708 ISchemaElement childValue = null;
22709 if (("DirectorySearch" == childName))
22710 {
22711 childValue = new DirectorySearch();
22712 }
22713 if (("DirectorySearchRef" == childName))
22714 {
22715 childValue = new DirectorySearchRef();
22716 }
22717 if (("FileSearch" == childName))
22718 {
22719 childValue = new FileSearch();
22720 }
22721 if (("FileSearchRef" == childName))
22722 {
22723 childValue = new FileSearchRef();
22724 }
22725 if ((null == childValue))
22726 {
22727 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
22728 }
22729 return childValue;
22730 }
22731
22732 /// <summary>
22733 /// Parses a RootType from a string.
22734 /// </summary>
22735 public static RootType ParseRootType(string value)
22736 {
22737 RootType parsedValue;
22738 RegistrySearch.TryParseRootType(value, out parsedValue);
22739 return parsedValue;
22740 }
22741
22742 /// <summary>
22743 /// Tries to parse a RootType from a string.
22744 /// </summary>
22745 public static bool TryParseRootType(string value, out RootType parsedValue)
22746 {
22747 parsedValue = RootType.NotSet;
22748 if (string.IsNullOrEmpty(value))
22749 {
22750 return false;
22751 }
22752 if (("HKCR" == value))
22753 {
22754 parsedValue = RootType.HKCR;
22755 }
22756 else
22757 {
22758 if (("HKCU" == value))
22759 {
22760 parsedValue = RootType.HKCU;
22761 }
22762 else
22763 {
22764 if (("HKLM" == value))
22765 {
22766 parsedValue = RootType.HKLM;
22767 }
22768 else
22769 {
22770 if (("HKU" == value))
22771 {
22772 parsedValue = RootType.HKU;
22773 }
22774 else
22775 {
22776 parsedValue = RootType.IllegalValue;
22777 return false;
22778 }
22779 }
22780 }
22781 }
22782 return true;
22783 }
22784
22785 /// <summary>
22786 /// Parses a TypeType from a string.
22787 /// </summary>
22788 public static TypeType ParseTypeType(string value)
22789 {
22790 TypeType parsedValue;
22791 RegistrySearch.TryParseTypeType(value, out parsedValue);
22792 return parsedValue;
22793 }
22794
22795 /// <summary>
22796 /// Tries to parse a TypeType from a string.
22797 /// </summary>
22798 public static bool TryParseTypeType(string value, out TypeType parsedValue)
22799 {
22800 parsedValue = TypeType.NotSet;
22801 if (string.IsNullOrEmpty(value))
22802 {
22803 return false;
22804 }
22805 if (("directory" == value))
22806 {
22807 parsedValue = TypeType.directory;
22808 }
22809 else
22810 {
22811 if (("file" == value))
22812 {
22813 parsedValue = TypeType.file;
22814 }
22815 else
22816 {
22817 if (("raw" == value))
22818 {
22819 parsedValue = TypeType.raw;
22820 }
22821 else
22822 {
22823 parsedValue = TypeType.IllegalValue;
22824 return false;
22825 }
22826 }
22827 }
22828 return true;
22829 }
22830
22831 /// <summary>
22832 /// Processes this element and all child elements into an XmlWriter.
22833 /// </summary>
22834 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
22835 public virtual void OutputXml(XmlWriter writer)
22836 {
22837 if ((null == writer))
22838 {
22839 throw new ArgumentNullException("writer");
22840 }
22841 writer.WriteStartElement("RegistrySearch", "http://wixtoolset.org/schemas/v4/wxs");
22842 if (this.idFieldSet)
22843 {
22844 writer.WriteAttributeString("Id", this.idField);
22845 }
22846 if (this.rootFieldSet)
22847 {
22848 if ((this.rootField == RootType.HKCR))
22849 {
22850 writer.WriteAttributeString("Root", "HKCR");
22851 }
22852 if ((this.rootField == RootType.HKCU))
22853 {
22854 writer.WriteAttributeString("Root", "HKCU");
22855 }
22856 if ((this.rootField == RootType.HKLM))
22857 {
22858 writer.WriteAttributeString("Root", "HKLM");
22859 }
22860 if ((this.rootField == RootType.HKU))
22861 {
22862 writer.WriteAttributeString("Root", "HKU");
22863 }
22864 }
22865 if (this.keyFieldSet)
22866 {
22867 writer.WriteAttributeString("Key", this.keyField);
22868 }
22869 if (this.nameFieldSet)
22870 {
22871 writer.WriteAttributeString("Name", this.nameField);
22872 }
22873 if (this.typeFieldSet)
22874 {
22875 if ((this.typeField == TypeType.directory))
22876 {
22877 writer.WriteAttributeString("Type", "directory");
22878 }
22879 if ((this.typeField == TypeType.file))
22880 {
22881 writer.WriteAttributeString("Type", "file");
22882 }
22883 if ((this.typeField == TypeType.raw))
22884 {
22885 writer.WriteAttributeString("Type", "raw");
22886 }
22887 }
22888 if (this.win64FieldSet)
22889 {
22890 if ((this.win64Field == YesNoType.no))
22891 {
22892 writer.WriteAttributeString("Win64", "no");
22893 }
22894 if ((this.win64Field == YesNoType.yes))
22895 {
22896 writer.WriteAttributeString("Win64", "yes");
22897 }
22898 }
22899 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
22900 {
22901 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
22902 childElement.OutputXml(writer);
22903 }
22904 writer.WriteEndElement();
22905 }
22906
22907 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
22908 void ISetAttributes.SetAttribute(string name, string value)
22909 {
22910 if (String.IsNullOrEmpty(name))
22911 {
22912 throw new ArgumentNullException("name");
22913 }
22914 if (("Id" == name))
22915 {
22916 this.idField = value;
22917 this.idFieldSet = true;
22918 }
22919 if (("Root" == name))
22920 {
22921 this.rootField = RegistrySearch.ParseRootType(value);
22922 this.rootFieldSet = true;
22923 }
22924 if (("Key" == name))
22925 {
22926 this.keyField = value;
22927 this.keyFieldSet = true;
22928 }
22929 if (("Name" == name))
22930 {
22931 this.nameField = value;
22932 this.nameFieldSet = true;
22933 }
22934 if (("Type" == name))
22935 {
22936 this.typeField = RegistrySearch.ParseTypeType(value);
22937 this.typeFieldSet = true;
22938 }
22939 if (("Win64" == name))
22940 {
22941 this.win64Field = Enums.ParseYesNoType(value);
22942 this.win64FieldSet = true;
22943 }
22944 }
22945
22946 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
22947 public enum RootType
22948 {
22949
22950 IllegalValue = int.MaxValue,
22951
22952 NotSet = -1,
22953
22954 /// <summary>
22955 /// HKEY_CLASSES_ROOT
22956 /// </summary>
22957 HKCR,
22958
22959 /// <summary>
22960 /// HKEY_CURRENT_USER
22961 /// </summary>
22962 HKCU,
22963
22964 /// <summary>
22965 /// HKEY_LOCAL_MACHINE
22966 /// </summary>
22967 HKLM,
22968
22969 /// <summary>
22970 /// HKEY_USERS
22971 /// </summary>
22972 HKU,
22973 }
22974
22975 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
22976 public enum TypeType
22977 {
22978
22979 IllegalValue = int.MaxValue,
22980
22981 NotSet = -1,
22982
22983 /// <summary>
22984 /// The registry value contains the path to a directory.
22985 /// </summary>
22986 directory,
22987
22988 /// <summary>
22989 /// The registry value contains the path to a file. To return the full file path you must add a FileSearch element as a child of this element; otherwise, the parent directory of the file path is returned.
22990 /// </summary>
22991 file,
22992
22993 /// <summary>
22994 /// Sets the raw value from the registry value. Please note that this value will contain a prefix as follows:
22995 /// </summary>
22996 raw,
22997 }
22998 }
22999
23000 /// <summary>
23001 /// References an existing RegistrySearch element.
23002 /// </summary>
23003 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
23004 public class RegistrySearchRef : ISchemaElement, ISetAttributes
23005 {
23006
23007 private string idField;
23008
23009 private bool idFieldSet;
23010
23011 private ISchemaElement parentElement;
23012
23013 /// <summary>
23014 /// Specify the Id of the RegistrySearch to reference.
23015 /// </summary>
23016 public string Id
23017 {
23018 get
23019 {
23020 return this.idField;
23021 }
23022 set
23023 {
23024 this.idFieldSet = true;
23025 this.idField = value;
23026 }
23027 }
23028
23029 public virtual ISchemaElement ParentElement
23030 {
23031 get
23032 {
23033 return this.parentElement;
23034 }
23035 set
23036 {
23037 this.parentElement = value;
23038 }
23039 }
23040
23041 /// <summary>
23042 /// Processes this element and all child elements into an XmlWriter.
23043 /// </summary>
23044 public virtual void OutputXml(XmlWriter writer)
23045 {
23046 if ((null == writer))
23047 {
23048 throw new ArgumentNullException("writer");
23049 }
23050 writer.WriteStartElement("RegistrySearchRef", "http://wixtoolset.org/schemas/v4/wxs");
23051 if (this.idFieldSet)
23052 {
23053 writer.WriteAttributeString("Id", this.idField);
23054 }
23055 writer.WriteEndElement();
23056 }
23057
23058 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
23059 void ISetAttributes.SetAttribute(string name, string value)
23060 {
23061 if (String.IsNullOrEmpty(name))
23062 {
23063 throw new ArgumentNullException("name");
23064 }
23065 if (("Id" == name))
23066 {
23067 this.idField = value;
23068 this.idFieldSet = true;
23069 }
23070 }
23071 }
23072
23073 /// <summary>
23074 /// Sets the parent of a nested DirectorySearch element to CCP_DRIVE.
23075 /// </summary>
23076 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
23077 public class ComplianceDrive : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
23078 {
23079
23080 private ElementCollection children;
23081
23082 private ISchemaElement parentElement;
23083
23084 public ComplianceDrive()
23085 {
23086 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
23087 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch)));
23088 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef)));
23089 this.children = childCollection0;
23090 }
23091
23092 public virtual IEnumerable Children
23093 {
23094 get
23095 {
23096 return this.children;
23097 }
23098 }
23099
23100 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
23101 public virtual IEnumerable this[System.Type childType]
23102 {
23103 get
23104 {
23105 return this.children.Filter(childType);
23106 }
23107 }
23108
23109 public virtual ISchemaElement ParentElement
23110 {
23111 get
23112 {
23113 return this.parentElement;
23114 }
23115 set
23116 {
23117 this.parentElement = value;
23118 }
23119 }
23120
23121 public virtual void AddChild(ISchemaElement child)
23122 {
23123 if ((null == child))
23124 {
23125 throw new ArgumentNullException("child");
23126 }
23127 this.children.AddElement(child);
23128 child.ParentElement = this;
23129 }
23130
23131 public virtual void RemoveChild(ISchemaElement child)
23132 {
23133 if ((null == child))
23134 {
23135 throw new ArgumentNullException("child");
23136 }
23137 this.children.RemoveElement(child);
23138 child.ParentElement = null;
23139 }
23140
23141 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
23142 ISchemaElement ICreateChildren.CreateChild(string childName)
23143 {
23144 if (String.IsNullOrEmpty(childName))
23145 {
23146 throw new ArgumentNullException("childName");
23147 }
23148 ISchemaElement childValue = null;
23149 if (("DirectorySearch" == childName))
23150 {
23151 childValue = new DirectorySearch();
23152 }
23153 if (("DirectorySearchRef" == childName))
23154 {
23155 childValue = new DirectorySearchRef();
23156 }
23157 if ((null == childValue))
23158 {
23159 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
23160 }
23161 return childValue;
23162 }
23163
23164 /// <summary>
23165 /// Processes this element and all child elements into an XmlWriter.
23166 /// </summary>
23167 public virtual void OutputXml(XmlWriter writer)
23168 {
23169 if ((null == writer))
23170 {
23171 throw new ArgumentNullException("writer");
23172 }
23173 writer.WriteStartElement("ComplianceDrive", "http://wixtoolset.org/schemas/v4/wxs");
23174 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
23175 {
23176 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
23177 childElement.OutputXml(writer);
23178 }
23179 writer.WriteEndElement();
23180 }
23181
23182 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
23183 void ISetAttributes.SetAttribute(string name, string value)
23184 {
23185 if (String.IsNullOrEmpty(name))
23186 {
23187 throw new ArgumentNullException("name");
23188 }
23189 }
23190 }
23191
23192 /// <summary>
23193 /// Adds a row to the CCPSearch table.
23194 /// </summary>
23195 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
23196 public class ComplianceCheck : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
23197 {
23198
23199 private ElementCollection children;
23200
23201 private ISchemaElement parentElement;
23202
23203 public ComplianceCheck()
23204 {
23205 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
23206 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Sequence);
23207 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(ComplianceDrive)));
23208 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(ComponentSearch)));
23209 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(RegistrySearch)));
23210 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(IniFileSearch)));
23211 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(DirectorySearch)));
23212 childCollection0.AddCollection(childCollection1);
23213 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
23214 this.children = childCollection0;
23215 }
23216
23217 public virtual IEnumerable Children
23218 {
23219 get
23220 {
23221 return this.children;
23222 }
23223 }
23224
23225 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
23226 public virtual IEnumerable this[System.Type childType]
23227 {
23228 get
23229 {
23230 return this.children.Filter(childType);
23231 }
23232 }
23233
23234 public virtual ISchemaElement ParentElement
23235 {
23236 get
23237 {
23238 return this.parentElement;
23239 }
23240 set
23241 {
23242 this.parentElement = value;
23243 }
23244 }
23245
23246 public virtual void AddChild(ISchemaElement child)
23247 {
23248 if ((null == child))
23249 {
23250 throw new ArgumentNullException("child");
23251 }
23252 this.children.AddElement(child);
23253 child.ParentElement = this;
23254 }
23255
23256 public virtual void RemoveChild(ISchemaElement child)
23257 {
23258 if ((null == child))
23259 {
23260 throw new ArgumentNullException("child");
23261 }
23262 this.children.RemoveElement(child);
23263 child.ParentElement = null;
23264 }
23265
23266 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
23267 ISchemaElement ICreateChildren.CreateChild(string childName)
23268 {
23269 if (String.IsNullOrEmpty(childName))
23270 {
23271 throw new ArgumentNullException("childName");
23272 }
23273 ISchemaElement childValue = null;
23274 if (("ComplianceDrive" == childName))
23275 {
23276 childValue = new ComplianceDrive();
23277 }
23278 if (("ComponentSearch" == childName))
23279 {
23280 childValue = new ComponentSearch();
23281 }
23282 if (("RegistrySearch" == childName))
23283 {
23284 childValue = new RegistrySearch();
23285 }
23286 if (("IniFileSearch" == childName))
23287 {
23288 childValue = new IniFileSearch();
23289 }
23290 if (("DirectorySearch" == childName))
23291 {
23292 childValue = new DirectorySearch();
23293 }
23294 if ((null == childValue))
23295 {
23296 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
23297 }
23298 return childValue;
23299 }
23300
23301 /// <summary>
23302 /// Processes this element and all child elements into an XmlWriter.
23303 /// </summary>
23304 public virtual void OutputXml(XmlWriter writer)
23305 {
23306 if ((null == writer))
23307 {
23308 throw new ArgumentNullException("writer");
23309 }
23310 writer.WriteStartElement("ComplianceCheck", "http://wixtoolset.org/schemas/v4/wxs");
23311 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
23312 {
23313 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
23314 childElement.OutputXml(writer);
23315 }
23316 writer.WriteEndElement();
23317 }
23318
23319 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
23320 void ISetAttributes.SetAttribute(string name, string value)
23321 {
23322 if (String.IsNullOrEmpty(name))
23323 {
23324 throw new ArgumentNullException("name");
23325 }
23326 }
23327 }
23328
23329 /// <summary>
23330 /// Property value for a Product or Module.
23331 /// </summary>
23332 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
23333 public class Property : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
23334 {
23335
23336 private ElementCollection children;
23337
23338 private string idField;
23339
23340 private bool idFieldSet;
23341
23342 private string valueField;
23343
23344 private bool valueFieldSet;
23345
23346 private YesNoType complianceCheckField;
23347
23348 private bool complianceCheckFieldSet;
23349
23350 private YesNoType adminField;
23351
23352 private bool adminFieldSet;
23353
23354 private YesNoType secureField;
23355
23356 private bool secureFieldSet;
23357
23358 private YesNoType hiddenField;
23359
23360 private bool hiddenFieldSet;
23361
23362 private YesNoType suppressModularizationField;
23363
23364 private bool suppressModularizationFieldSet;
23365
23366 private ISchemaElement parentElement;
23367
23368 public Property()
23369 {
23370 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
23371 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Sequence);
23372 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(ComplianceDrive)));
23373 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(ComponentSearch)));
23374 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(RegistrySearch)));
23375 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(RegistrySearchRef)));
23376 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(IniFileSearch)));
23377 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(DirectorySearch)));
23378 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(DirectorySearchRef)));
23379 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(ProductSearch)));
23380 childCollection0.AddCollection(childCollection1);
23381 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
23382 this.children = childCollection0;
23383 }
23384
23385 public virtual IEnumerable Children
23386 {
23387 get
23388 {
23389 return this.children;
23390 }
23391 }
23392
23393 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
23394 public virtual IEnumerable this[System.Type childType]
23395 {
23396 get
23397 {
23398 return this.children.Filter(childType);
23399 }
23400 }
23401
23402 /// <summary>
23403 /// Unique identifier for Property.
23404 /// </summary>
23405 public string Id
23406 {
23407 get
23408 {
23409 return this.idField;
23410 }
23411 set
23412 {
23413 this.idFieldSet = true;
23414 this.idField = value;
23415 }
23416 }
23417
23418 /// <summary>
23419 /// Sets a default value for the property. The value will be overwritten if the Property is used for a search.
23420 /// </summary>
23421 public string Value
23422 {
23423 get
23424 {
23425 return this.valueField;
23426 }
23427 set
23428 {
23429 this.valueFieldSet = true;
23430 this.valueField = value;
23431 }
23432 }
23433
23434 /// <summary>
23435 /// Adds a row to the CCPSearch table. This attribute is only valid when this Property contains a search element.
23436 /// </summary>
23437 public YesNoType ComplianceCheck
23438 {
23439 get
23440 {
23441 return this.complianceCheckField;
23442 }
23443 set
23444 {
23445 this.complianceCheckFieldSet = true;
23446 this.complianceCheckField = value;
23447 }
23448 }
23449
23450 /// <summary>
23451 /// Denotes that the Property is saved during
23452 /// </summary>
23453 public YesNoType Admin
23454 {
23455 get
23456 {
23457 return this.adminField;
23458 }
23459 set
23460 {
23461 this.adminFieldSet = true;
23462 this.adminField = value;
23463 }
23464 }
23465
23466 /// <summary>
23467 /// Denotes that the Property can be passed to the server side when doing a managed installation with elevated privileges. See the
23468 /// </summary>
23469 public YesNoType Secure
23470 {
23471 get
23472 {
23473 return this.secureField;
23474 }
23475 set
23476 {
23477 this.secureFieldSet = true;
23478 this.secureField = value;
23479 }
23480 }
23481
23482 /// <summary>
23483 /// Denotes that the Property is not logged during installation. See the
23484 /// </summary>
23485 public YesNoType Hidden
23486 {
23487 get
23488 {
23489 return this.hiddenField;
23490 }
23491 set
23492 {
23493 this.hiddenFieldSet = true;
23494 this.hiddenField = value;
23495 }
23496 }
23497
23498 /// <summary>
23499 /// Use to suppress modularization of this property identifier in merge modules.
23500 /// Using this functionality is strongly discouraged; it should only be
23501 /// necessary as a workaround of last resort in rare scenarios.
23502 /// </summary>
23503 public YesNoType SuppressModularization
23504 {
23505 get
23506 {
23507 return this.suppressModularizationField;
23508 }
23509 set
23510 {
23511 this.suppressModularizationFieldSet = true;
23512 this.suppressModularizationField = value;
23513 }
23514 }
23515
23516 public virtual ISchemaElement ParentElement
23517 {
23518 get
23519 {
23520 return this.parentElement;
23521 }
23522 set
23523 {
23524 this.parentElement = value;
23525 }
23526 }
23527
23528 public virtual void AddChild(ISchemaElement child)
23529 {
23530 if ((null == child))
23531 {
23532 throw new ArgumentNullException("child");
23533 }
23534 this.children.AddElement(child);
23535 child.ParentElement = this;
23536 }
23537
23538 public virtual void RemoveChild(ISchemaElement child)
23539 {
23540 if ((null == child))
23541 {
23542 throw new ArgumentNullException("child");
23543 }
23544 this.children.RemoveElement(child);
23545 child.ParentElement = null;
23546 }
23547
23548 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
23549 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
23550 ISchemaElement ICreateChildren.CreateChild(string childName)
23551 {
23552 if (String.IsNullOrEmpty(childName))
23553 {
23554 throw new ArgumentNullException("childName");
23555 }
23556 ISchemaElement childValue = null;
23557 if (("ComplianceDrive" == childName))
23558 {
23559 childValue = new ComplianceDrive();
23560 }
23561 if (("ComponentSearch" == childName))
23562 {
23563 childValue = new ComponentSearch();
23564 }
23565 if (("RegistrySearch" == childName))
23566 {
23567 childValue = new RegistrySearch();
23568 }
23569 if (("RegistrySearchRef" == childName))
23570 {
23571 childValue = new RegistrySearchRef();
23572 }
23573 if (("IniFileSearch" == childName))
23574 {
23575 childValue = new IniFileSearch();
23576 }
23577 if (("DirectorySearch" == childName))
23578 {
23579 childValue = new DirectorySearch();
23580 }
23581 if (("DirectorySearchRef" == childName))
23582 {
23583 childValue = new DirectorySearchRef();
23584 }
23585 if (("ProductSearch" == childName))
23586 {
23587 childValue = new ProductSearch();
23588 }
23589 if ((null == childValue))
23590 {
23591 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
23592 }
23593 return childValue;
23594 }
23595
23596 /// <summary>
23597 /// Processes this element and all child elements into an XmlWriter.
23598 /// </summary>
23599 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
23600 public virtual void OutputXml(XmlWriter writer)
23601 {
23602 if ((null == writer))
23603 {
23604 throw new ArgumentNullException("writer");
23605 }
23606 writer.WriteStartElement("Property", "http://wixtoolset.org/schemas/v4/wxs");
23607 if (this.idFieldSet)
23608 {
23609 writer.WriteAttributeString("Id", this.idField);
23610 }
23611 if (this.valueFieldSet)
23612 {
23613 writer.WriteAttributeString("Value", this.valueField);
23614 }
23615 if (this.complianceCheckFieldSet)
23616 {
23617 if ((this.complianceCheckField == YesNoType.no))
23618 {
23619 writer.WriteAttributeString("ComplianceCheck", "no");
23620 }
23621 if ((this.complianceCheckField == YesNoType.yes))
23622 {
23623 writer.WriteAttributeString("ComplianceCheck", "yes");
23624 }
23625 }
23626 if (this.adminFieldSet)
23627 {
23628 if ((this.adminField == YesNoType.no))
23629 {
23630 writer.WriteAttributeString("Admin", "no");
23631 }
23632 if ((this.adminField == YesNoType.yes))
23633 {
23634 writer.WriteAttributeString("Admin", "yes");
23635 }
23636 }
23637 if (this.secureFieldSet)
23638 {
23639 if ((this.secureField == YesNoType.no))
23640 {
23641 writer.WriteAttributeString("Secure", "no");
23642 }
23643 if ((this.secureField == YesNoType.yes))
23644 {
23645 writer.WriteAttributeString("Secure", "yes");
23646 }
23647 }
23648 if (this.hiddenFieldSet)
23649 {
23650 if ((this.hiddenField == YesNoType.no))
23651 {
23652 writer.WriteAttributeString("Hidden", "no");
23653 }
23654 if ((this.hiddenField == YesNoType.yes))
23655 {
23656 writer.WriteAttributeString("Hidden", "yes");
23657 }
23658 }
23659 if (this.suppressModularizationFieldSet)
23660 {
23661 if ((this.suppressModularizationField == YesNoType.no))
23662 {
23663 writer.WriteAttributeString("SuppressModularization", "no");
23664 }
23665 if ((this.suppressModularizationField == YesNoType.yes))
23666 {
23667 writer.WriteAttributeString("SuppressModularization", "yes");
23668 }
23669 }
23670 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
23671 {
23672 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
23673 childElement.OutputXml(writer);
23674 }
23675 writer.WriteEndElement();
23676 }
23677
23678 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
23679 void ISetAttributes.SetAttribute(string name, string value)
23680 {
23681 if (String.IsNullOrEmpty(name))
23682 {
23683 throw new ArgumentNullException("name");
23684 }
23685 if (("Id" == name))
23686 {
23687 this.idField = value;
23688 this.idFieldSet = true;
23689 }
23690 if (("Value" == name))
23691 {
23692 this.valueField = value;
23693 this.valueFieldSet = true;
23694 }
23695 if (("ComplianceCheck" == name))
23696 {
23697 this.complianceCheckField = Enums.ParseYesNoType(value);
23698 this.complianceCheckFieldSet = true;
23699 }
23700 if (("Admin" == name))
23701 {
23702 this.adminField = Enums.ParseYesNoType(value);
23703 this.adminFieldSet = true;
23704 }
23705 if (("Secure" == name))
23706 {
23707 this.secureField = Enums.ParseYesNoType(value);
23708 this.secureFieldSet = true;
23709 }
23710 if (("Hidden" == name))
23711 {
23712 this.hiddenField = Enums.ParseYesNoType(value);
23713 this.hiddenFieldSet = true;
23714 }
23715 if (("SuppressModularization" == name))
23716 {
23717 this.suppressModularizationField = Enums.ParseYesNoType(value);
23718 this.suppressModularizationFieldSet = true;
23719 }
23720 }
23721 }
23722
23723 /// <summary>
23724 /// Reference to a Property value.
23725 /// </summary>
23726 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
23727 public class PropertyRef : ISchemaElement, ISetAttributes
23728 {
23729
23730 private string idField;
23731
23732 private bool idFieldSet;
23733
23734 private ISchemaElement parentElement;
23735
23736 /// <summary>
23737 /// Identifier of Property to reference.
23738 /// </summary>
23739 public string Id
23740 {
23741 get
23742 {
23743 return this.idField;
23744 }
23745 set
23746 {
23747 this.idFieldSet = true;
23748 this.idField = value;
23749 }
23750 }
23751
23752 public virtual ISchemaElement ParentElement
23753 {
23754 get
23755 {
23756 return this.parentElement;
23757 }
23758 set
23759 {
23760 this.parentElement = value;
23761 }
23762 }
23763
23764 /// <summary>
23765 /// Processes this element and all child elements into an XmlWriter.
23766 /// </summary>
23767 public virtual void OutputXml(XmlWriter writer)
23768 {
23769 if ((null == writer))
23770 {
23771 throw new ArgumentNullException("writer");
23772 }
23773 writer.WriteStartElement("PropertyRef", "http://wixtoolset.org/schemas/v4/wxs");
23774 if (this.idFieldSet)
23775 {
23776 writer.WriteAttributeString("Id", this.idField);
23777 }
23778 writer.WriteEndElement();
23779 }
23780
23781 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
23782 void ISetAttributes.SetAttribute(string name, string value)
23783 {
23784 if (String.IsNullOrEmpty(name))
23785 {
23786 throw new ArgumentNullException("name");
23787 }
23788 if (("Id" == name))
23789 {
23790 this.idField = value;
23791 this.idFieldSet = true;
23792 }
23793 }
23794 }
23795
23796 /// <summary>
23797 /// Shortcut, default target is parent File, CreateFolder, or Component's Directory
23798 /// </summary>
23799 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
23800 public class Shortcut : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
23801 {
23802
23803 private ElementCollection children;
23804
23805 private string idField;
23806
23807 private bool idFieldSet;
23808
23809 private string directoryField;
23810
23811 private bool directoryFieldSet;
23812
23813 private string nameField;
23814
23815 private bool nameFieldSet;
23816
23817 private string shortNameField;
23818
23819 private bool shortNameFieldSet;
23820
23821 private string targetField;
23822
23823 private bool targetFieldSet;
23824
23825 private string descriptionField;
23826
23827 private bool descriptionFieldSet;
23828
23829 private string argumentsField;
23830
23831 private bool argumentsFieldSet;
23832
23833 private int hotkeyField;
23834
23835 private bool hotkeyFieldSet;
23836
23837 private string iconField;
23838
23839 private bool iconFieldSet;
23840
23841 private int iconIndexField;
23842
23843 private bool iconIndexFieldSet;
23844
23845 private ShowType showField;
23846
23847 private bool showFieldSet;
23848
23849 private string workingDirectoryField;
23850
23851 private bool workingDirectoryFieldSet;
23852
23853 private YesNoType advertiseField;
23854
23855 private bool advertiseFieldSet;
23856
23857 private string displayResourceDllField;
23858
23859 private bool displayResourceDllFieldSet;
23860
23861 private int displayResourceIdField;
23862
23863 private bool displayResourceIdFieldSet;
23864
23865 private string descriptionResourceDllField;
23866
23867 private bool descriptionResourceDllFieldSet;
23868
23869 private int descriptionResourceIdField;
23870
23871 private bool descriptionResourceIdFieldSet;
23872
23873 private ISchemaElement parentElement;
23874
23875 public Shortcut()
23876 {
23877 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
23878 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Icon)));
23879 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ShortcutProperty)));
23880 this.children = childCollection0;
23881 }
23882
23883 public virtual IEnumerable Children
23884 {
23885 get
23886 {
23887 return this.children;
23888 }
23889 }
23890
23891 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
23892 public virtual IEnumerable this[System.Type childType]
23893 {
23894 get
23895 {
23896 return this.children.Filter(childType);
23897 }
23898 }
23899
23900 /// <summary>
23901 /// Unique identifier for the shortcut. This value will serve as the primary key for the row.
23902 /// </summary>
23903 public string Id
23904 {
23905 get
23906 {
23907 return this.idField;
23908 }
23909 set
23910 {
23911 this.idFieldSet = true;
23912 this.idField = value;
23913 }
23914 }
23915
23916 /// <summary>
23917 /// Identifier reference to Directory element where shortcut is to be created. When nested under a Component element, this attribute's value will default to the parent directory. Otherwise, this attribute is required.
23918 /// </summary>
23919 public string Directory
23920 {
23921 get
23922 {
23923 return this.directoryField;
23924 }
23925 set
23926 {
23927 this.directoryFieldSet = true;
23928 this.directoryField = value;
23929 }
23930 }
23931
23932 /// <summary>
23933 /// In prior versions of the WiX toolset, this attribute specified the short name.
23934 /// This attribute's value may now be either a short or long name.
23935 /// If a short name is specified, the ShortName attribute may not be specified.
23936 /// Also, if this value is a long name, the ShortName attribute may be omitted to
23937 /// allow WiX to attempt to generate a unique short name.
23938 /// However, if this name collides with another shortcut or you wish to manually specify
23939 /// the short name, then the ShortName attribute may be specified.
23940 /// </summary>
23941 public string Name
23942 {
23943 get
23944 {
23945 return this.nameField;
23946 }
23947 set
23948 {
23949 this.nameFieldSet = true;
23950 this.nameField = value;
23951 }
23952 }
23953
23954 /// <summary>
23955 /// The short name of the shortcut in 8.3 format.
23956 /// This attribute should only be set if there is a conflict between generated short names
23957 /// or the user wants to manually specify the short name.
23958 /// </summary>
23959 public string ShortName
23960 {
23961 get
23962 {
23963 return this.shortNameField;
23964 }
23965 set
23966 {
23967 this.shortNameFieldSet = true;
23968 this.shortNameField = value;
23969 }
23970 }
23971
23972 /// <summary>
23973 /// This attribute can only be set if this Shortcut element is nested under a Component element.
23974 /// When nested under a Component element, this attribute's value will default to the parent directory.
23975 /// This attribute's value is the target for a non-advertised shortcut.
23976 /// This attribute is not valid for advertised shortcuts.
23977 /// If you specify this value, its value should be a property identifier enclosed by square brackets ([ ]), that is expanded into the file or a folder pointed to by the shortcut.
23978 /// </summary>
23979 public string Target
23980 {
23981 get
23982 {
23983 return this.targetField;
23984 }
23985 set
23986 {
23987 this.targetFieldSet = true;
23988 this.targetField = value;
23989 }
23990 }
23991
23992 /// <summary>
23993 /// The localizable description for the shortcut.
23994 /// </summary>
23995 public string Description
23996 {
23997 get
23998 {
23999 return this.descriptionField;
24000 }
24001 set
24002 {
24003 this.descriptionFieldSet = true;
24004 this.descriptionField = value;
24005 }
24006 }
24007
24008 /// <summary>
24009 /// The command-line arguments for the shortcut. Note that the resolution of properties
24010 /// in the Arguments field is limited. A property formatted as [Property] in this field can only be resolved if the
24011 /// property already has the intended value when the component owning the shortcut is installed. For example, for the
24012 /// argument "[#MyDoc.doc]" to resolve to the correct value, the same process must be installing the file MyDoc.doc and
24013 /// the component that owns the shortcut.
24014 /// </summary>
24015 public string Arguments
24016 {
24017 get
24018 {
24019 return this.argumentsField;
24020 }
24021 set
24022 {
24023 this.argumentsFieldSet = true;
24024 this.argumentsField = value;
24025 }
24026 }
24027
24028 /// <summary>
24029 /// The hotkey for the shortcut. The low-order byte contains the virtual-key code for
24030 /// the key, and the high-order byte contains modifier flags. This must be a non-negative number. Authors of
24031 /// installation packages are generally recommend not to set this option, because this can add duplicate hotkeys to a
24032 /// users desktop. In addition, the practice of assigning hotkeys to shortcuts can be problematic for users using hotkeys
24033 /// for accessibility.
24034 /// </summary>
24035 public int Hotkey
24036 {
24037 get
24038 {
24039 return this.hotkeyField;
24040 }
24041 set
24042 {
24043 this.hotkeyFieldSet = true;
24044 this.hotkeyField = value;
24045 }
24046 }
24047
24048 /// <summary>
24049 /// Identifier reference to Icon element. The Icon identifier should have the same extension
24050 /// as the file that it points at. For example, a shortcut to an executable (e.g. "my.exe") should reference an Icon with identifier
24051 /// like "MyIcon.exe"
24052 /// </summary>
24053 public string Icon
24054 {
24055 get
24056 {
24057 return this.iconField;
24058 }
24059 set
24060 {
24061 this.iconFieldSet = true;
24062 this.iconField = value;
24063 }
24064 }
24065
24066 /// <summary>
24067 /// Identifier reference to Icon element.
24068 /// </summary>
24069 public int IconIndex
24070 {
24071 get
24072 {
24073 return this.iconIndexField;
24074 }
24075 set
24076 {
24077 this.iconIndexFieldSet = true;
24078 this.iconIndexField = value;
24079 }
24080 }
24081
24082 public ShowType Show
24083 {
24084 get
24085 {
24086 return this.showField;
24087 }
24088 set
24089 {
24090 this.showFieldSet = true;
24091 this.showField = value;
24092 }
24093 }
24094
24095 /// <summary>
24096 /// Directory identifier (or Property identifier that resolves to a directory) that resolves
24097 /// to the path of the working directory for the shortcut.
24098 /// </summary>
24099 public string WorkingDirectory
24100 {
24101 get
24102 {
24103 return this.workingDirectoryField;
24104 }
24105 set
24106 {
24107 this.workingDirectoryFieldSet = true;
24108 this.workingDirectoryField = value;
24109 }
24110 }
24111
24112 /// <summary>
24113 /// Specifies if the shortcut should be advertised or not. Note that advertised shortcuts
24114 /// always point at a particular application, identified by a ProductCode, and should not be shared between applications.
24115 /// Advertised shortcuts only work for the most recently installed application, and are removed when that application is
24116 /// removed. The default value is 'no'.
24117 /// </summary>
24118 public YesNoType Advertise
24119 {
24120 get
24121 {
24122 return this.advertiseField;
24123 }
24124 set
24125 {
24126 this.advertiseFieldSet = true;
24127 this.advertiseField = value;
24128 }
24129 }
24130
24131 /// <summary>
24132 /// The Formatted string providing the full path to the language neutral file containing the MUI Manifest. Generally
24133 /// authored using [#filekey] form. When this attribute is specified, the DisplayResourceId attribute must also
24134 /// be provided.
24135 ///
24136 /// This attribute is only used on Windows Vista and above. If this attribute is not populated and the install
24137 /// is running on Vista and above, the value in the Name attribute is used. If this attribute is populated and
24138 /// the install is running on Vista and above, the value in the Name attribute is ignored.
24139 /// </summary>
24140 public string DisplayResourceDll
24141 {
24142 get
24143 {
24144 return this.displayResourceDllField;
24145 }
24146 set
24147 {
24148 this.displayResourceDllFieldSet = true;
24149 this.displayResourceDllField = value;
24150 }
24151 }
24152
24153 /// <summary>
24154 /// The display name index for the shortcut. This must be a non-negative number. When this attribute is specified, the
24155 /// DisplayResourceDll attribute must also be provided.
24156 ///
24157 /// This attribute is only used on Windows Vista and above. If this attribute is not specified and the install
24158 /// is running on Vista and above, the value in the Name attribute is used. If this attribute is specified and
24159 /// the install is running on Vista and above, the value in the Name attribute is ignored.
24160 /// </summary>
24161 public int DisplayResourceId
24162 {
24163 get
24164 {
24165 return this.displayResourceIdField;
24166 }
24167 set
24168 {
24169 this.displayResourceIdFieldSet = true;
24170 this.displayResourceIdField = value;
24171 }
24172 }
24173
24174 /// <summary>
24175 /// The Formatted string providing the full path to the language neutral file containing the MUI Manifest. Generally
24176 /// authored using [#filekey] form. When this attribute is specified, the DescriptionResourceId attribute must also
24177 /// be provided.
24178 ///
24179 /// This attribute is only used on Windows Vista and above. If this attribute is not specified and the install
24180 /// is running on Vista and above, the value in the Name attribute is used. If this attribute is provided and
24181 /// the install is running on Vista and above, the value in the Name attribute is ignored.
24182 /// </summary>
24183 public string DescriptionResourceDll
24184 {
24185 get
24186 {
24187 return this.descriptionResourceDllField;
24188 }
24189 set
24190 {
24191 this.descriptionResourceDllFieldSet = true;
24192 this.descriptionResourceDllField = value;
24193 }
24194 }
24195
24196 /// <summary>
24197 /// The description name index for the shortcut. This must be a non-negative number. When this attribute is specified,
24198 /// the DescriptionResourceDll attribute must also be populated.
24199 ///
24200 /// This attribute is only used on Windows Vista and above. If this attribute is not specified and the install
24201 /// is running on Vista and above, the value in the Name attribute is used. If this attribute is populated and the
24202 /// install is running on Vista and above, the value in the Name attribute is ignored.
24203 /// </summary>
24204 public int DescriptionResourceId
24205 {
24206 get
24207 {
24208 return this.descriptionResourceIdField;
24209 }
24210 set
24211 {
24212 this.descriptionResourceIdFieldSet = true;
24213 this.descriptionResourceIdField = value;
24214 }
24215 }
24216
24217 public virtual ISchemaElement ParentElement
24218 {
24219 get
24220 {
24221 return this.parentElement;
24222 }
24223 set
24224 {
24225 this.parentElement = value;
24226 }
24227 }
24228
24229 public virtual void AddChild(ISchemaElement child)
24230 {
24231 if ((null == child))
24232 {
24233 throw new ArgumentNullException("child");
24234 }
24235 this.children.AddElement(child);
24236 child.ParentElement = this;
24237 }
24238
24239 public virtual void RemoveChild(ISchemaElement child)
24240 {
24241 if ((null == child))
24242 {
24243 throw new ArgumentNullException("child");
24244 }
24245 this.children.RemoveElement(child);
24246 child.ParentElement = null;
24247 }
24248
24249 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
24250 ISchemaElement ICreateChildren.CreateChild(string childName)
24251 {
24252 if (String.IsNullOrEmpty(childName))
24253 {
24254 throw new ArgumentNullException("childName");
24255 }
24256 ISchemaElement childValue = null;
24257 if (("Icon" == childName))
24258 {
24259 childValue = new Icon();
24260 }
24261 if (("ShortcutProperty" == childName))
24262 {
24263 childValue = new ShortcutProperty();
24264 }
24265 if ((null == childValue))
24266 {
24267 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
24268 }
24269 return childValue;
24270 }
24271
24272 /// <summary>
24273 /// Parses a ShowType from a string.
24274 /// </summary>
24275 public static ShowType ParseShowType(string value)
24276 {
24277 ShowType parsedValue;
24278 Shortcut.TryParseShowType(value, out parsedValue);
24279 return parsedValue;
24280 }
24281
24282 /// <summary>
24283 /// Tries to parse a ShowType from a string.
24284 /// </summary>
24285 public static bool TryParseShowType(string value, out ShowType parsedValue)
24286 {
24287 parsedValue = ShowType.NotSet;
24288 if (string.IsNullOrEmpty(value))
24289 {
24290 return false;
24291 }
24292 if (("normal" == value))
24293 {
24294 parsedValue = ShowType.normal;
24295 }
24296 else
24297 {
24298 if (("minimized" == value))
24299 {
24300 parsedValue = ShowType.minimized;
24301 }
24302 else
24303 {
24304 if (("maximized" == value))
24305 {
24306 parsedValue = ShowType.maximized;
24307 }
24308 else
24309 {
24310 parsedValue = ShowType.IllegalValue;
24311 return false;
24312 }
24313 }
24314 }
24315 return true;
24316 }
24317
24318 /// <summary>
24319 /// Processes this element and all child elements into an XmlWriter.
24320 /// </summary>
24321 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
24322 public virtual void OutputXml(XmlWriter writer)
24323 {
24324 if ((null == writer))
24325 {
24326 throw new ArgumentNullException("writer");
24327 }
24328 writer.WriteStartElement("Shortcut", "http://wixtoolset.org/schemas/v4/wxs");
24329 if (this.idFieldSet)
24330 {
24331 writer.WriteAttributeString("Id", this.idField);
24332 }
24333 if (this.directoryFieldSet)
24334 {
24335 writer.WriteAttributeString("Directory", this.directoryField);
24336 }
24337 if (this.nameFieldSet)
24338 {
24339 writer.WriteAttributeString("Name", this.nameField);
24340 }
24341 if (this.shortNameFieldSet)
24342 {
24343 writer.WriteAttributeString("ShortName", this.shortNameField);
24344 }
24345 if (this.targetFieldSet)
24346 {
24347 writer.WriteAttributeString("Target", this.targetField);
24348 }
24349 if (this.descriptionFieldSet)
24350 {
24351 writer.WriteAttributeString("Description", this.descriptionField);
24352 }
24353 if (this.argumentsFieldSet)
24354 {
24355 writer.WriteAttributeString("Arguments", this.argumentsField);
24356 }
24357 if (this.hotkeyFieldSet)
24358 {
24359 writer.WriteAttributeString("Hotkey", this.hotkeyField.ToString(CultureInfo.InvariantCulture));
24360 }
24361 if (this.iconFieldSet)
24362 {
24363 writer.WriteAttributeString("Icon", this.iconField);
24364 }
24365 if (this.iconIndexFieldSet)
24366 {
24367 writer.WriteAttributeString("IconIndex", this.iconIndexField.ToString(CultureInfo.InvariantCulture));
24368 }
24369 if (this.showFieldSet)
24370 {
24371 if ((this.showField == ShowType.normal))
24372 {
24373 writer.WriteAttributeString("Show", "normal");
24374 }
24375 if ((this.showField == ShowType.minimized))
24376 {
24377 writer.WriteAttributeString("Show", "minimized");
24378 }
24379 if ((this.showField == ShowType.maximized))
24380 {
24381 writer.WriteAttributeString("Show", "maximized");
24382 }
24383 }
24384 if (this.workingDirectoryFieldSet)
24385 {
24386 writer.WriteAttributeString("WorkingDirectory", this.workingDirectoryField);
24387 }
24388 if (this.advertiseFieldSet)
24389 {
24390 if ((this.advertiseField == YesNoType.no))
24391 {
24392 writer.WriteAttributeString("Advertise", "no");
24393 }
24394 if ((this.advertiseField == YesNoType.yes))
24395 {
24396 writer.WriteAttributeString("Advertise", "yes");
24397 }
24398 }
24399 if (this.displayResourceDllFieldSet)
24400 {
24401 writer.WriteAttributeString("DisplayResourceDll", this.displayResourceDllField);
24402 }
24403 if (this.displayResourceIdFieldSet)
24404 {
24405 writer.WriteAttributeString("DisplayResourceId", this.displayResourceIdField.ToString(CultureInfo.InvariantCulture));
24406 }
24407 if (this.descriptionResourceDllFieldSet)
24408 {
24409 writer.WriteAttributeString("DescriptionResourceDll", this.descriptionResourceDllField);
24410 }
24411 if (this.descriptionResourceIdFieldSet)
24412 {
24413 writer.WriteAttributeString("DescriptionResourceId", this.descriptionResourceIdField.ToString(CultureInfo.InvariantCulture));
24414 }
24415 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
24416 {
24417 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
24418 childElement.OutputXml(writer);
24419 }
24420 writer.WriteEndElement();
24421 }
24422
24423 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
24424 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
24425 void ISetAttributes.SetAttribute(string name, string value)
24426 {
24427 if (String.IsNullOrEmpty(name))
24428 {
24429 throw new ArgumentNullException("name");
24430 }
24431 if (("Id" == name))
24432 {
24433 this.idField = value;
24434 this.idFieldSet = true;
24435 }
24436 if (("Directory" == name))
24437 {
24438 this.directoryField = value;
24439 this.directoryFieldSet = true;
24440 }
24441 if (("Name" == name))
24442 {
24443 this.nameField = value;
24444 this.nameFieldSet = true;
24445 }
24446 if (("ShortName" == name))
24447 {
24448 this.shortNameField = value;
24449 this.shortNameFieldSet = true;
24450 }
24451 if (("Target" == name))
24452 {
24453 this.targetField = value;
24454 this.targetFieldSet = true;
24455 }
24456 if (("Description" == name))
24457 {
24458 this.descriptionField = value;
24459 this.descriptionFieldSet = true;
24460 }
24461 if (("Arguments" == name))
24462 {
24463 this.argumentsField = value;
24464 this.argumentsFieldSet = true;
24465 }
24466 if (("Hotkey" == name))
24467 {
24468 this.hotkeyField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
24469 this.hotkeyFieldSet = true;
24470 }
24471 if (("Icon" == name))
24472 {
24473 this.iconField = value;
24474 this.iconFieldSet = true;
24475 }
24476 if (("IconIndex" == name))
24477 {
24478 this.iconIndexField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
24479 this.iconIndexFieldSet = true;
24480 }
24481 if (("Show" == name))
24482 {
24483 this.showField = Shortcut.ParseShowType(value);
24484 this.showFieldSet = true;
24485 }
24486 if (("WorkingDirectory" == name))
24487 {
24488 this.workingDirectoryField = value;
24489 this.workingDirectoryFieldSet = true;
24490 }
24491 if (("Advertise" == name))
24492 {
24493 this.advertiseField = Enums.ParseYesNoType(value);
24494 this.advertiseFieldSet = true;
24495 }
24496 if (("DisplayResourceDll" == name))
24497 {
24498 this.displayResourceDllField = value;
24499 this.displayResourceDllFieldSet = true;
24500 }
24501 if (("DisplayResourceId" == name))
24502 {
24503 this.displayResourceIdField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
24504 this.displayResourceIdFieldSet = true;
24505 }
24506 if (("DescriptionResourceDll" == name))
24507 {
24508 this.descriptionResourceDllField = value;
24509 this.descriptionResourceDllFieldSet = true;
24510 }
24511 if (("DescriptionResourceId" == name))
24512 {
24513 this.descriptionResourceIdField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
24514 this.descriptionResourceIdFieldSet = true;
24515 }
24516 }
24517
24518 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
24519 public enum ShowType
24520 {
24521
24522 IllegalValue = int.MaxValue,
24523
24524 NotSet = -1,
24525
24526 /// <summary>
24527 /// The shortcut target will be displayed using the SW_SHOWNORMAL attribute.
24528 /// </summary>
24529 normal,
24530
24531 /// <summary>
24532 /// The shortcut target will be displayed using the SW_SHOWMINNOACTIVE attribute.
24533 /// </summary>
24534 minimized,
24535
24536 /// <summary>
24537 /// The shortcut target will be displayed using the SW_SHOWMAXIMIZED attribute.
24538 /// </summary>
24539 maximized,
24540 }
24541 }
24542
24543 /// <summary>
24544 /// Property values for a shortcut. This element's functionality is available starting with MSI 5.0.
24545 /// </summary>
24546 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
24547 public class ShortcutProperty : ISchemaElement, ISetAttributes
24548 {
24549
24550 private string idField;
24551
24552 private bool idFieldSet;
24553
24554 private string keyField;
24555
24556 private bool keyFieldSet;
24557
24558 private string valueField;
24559
24560 private bool valueFieldSet;
24561
24562 private ISchemaElement parentElement;
24563
24564 /// <summary>
24565 /// Unique identifier for MsiShortcutProperty table. If omitted, a stable identifier will be generated from the parent shortcut identifier and Key value.
24566 /// </summary>
24567 public string Id
24568 {
24569 get
24570 {
24571 return this.idField;
24572 }
24573 set
24574 {
24575 this.idFieldSet = true;
24576 this.idField = value;
24577 }
24578 }
24579
24580 /// <summary>
24581 /// A formatted string identifying the property to be set.
24582 /// </summary>
24583 public string Key
24584 {
24585 get
24586 {
24587 return this.keyField;
24588 }
24589 set
24590 {
24591 this.keyFieldSet = true;
24592 this.keyField = value;
24593 }
24594 }
24595
24596 /// <summary>
24597 /// A formatted string supplying the value of the property.
24598 /// </summary>
24599 public string Value
24600 {
24601 get
24602 {
24603 return this.valueField;
24604 }
24605 set
24606 {
24607 this.valueFieldSet = true;
24608 this.valueField = value;
24609 }
24610 }
24611
24612 public virtual ISchemaElement ParentElement
24613 {
24614 get
24615 {
24616 return this.parentElement;
24617 }
24618 set
24619 {
24620 this.parentElement = value;
24621 }
24622 }
24623
24624 /// <summary>
24625 /// Processes this element and all child elements into an XmlWriter.
24626 /// </summary>
24627 public virtual void OutputXml(XmlWriter writer)
24628 {
24629 if ((null == writer))
24630 {
24631 throw new ArgumentNullException("writer");
24632 }
24633 writer.WriteStartElement("ShortcutProperty", "http://wixtoolset.org/schemas/v4/wxs");
24634 if (this.idFieldSet)
24635 {
24636 writer.WriteAttributeString("Id", this.idField);
24637 }
24638 if (this.keyFieldSet)
24639 {
24640 writer.WriteAttributeString("Key", this.keyField);
24641 }
24642 if (this.valueFieldSet)
24643 {
24644 writer.WriteAttributeString("Value", this.valueField);
24645 }
24646 writer.WriteEndElement();
24647 }
24648
24649 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
24650 void ISetAttributes.SetAttribute(string name, string value)
24651 {
24652 if (String.IsNullOrEmpty(name))
24653 {
24654 throw new ArgumentNullException("name");
24655 }
24656 if (("Id" == name))
24657 {
24658 this.idField = value;
24659 this.idFieldSet = true;
24660 }
24661 if (("Key" == name))
24662 {
24663 this.keyField = value;
24664 this.keyFieldSet = true;
24665 }
24666 if (("Value" == name))
24667 {
24668 this.valueField = value;
24669 this.valueFieldSet = true;
24670 }
24671 }
24672 }
24673
24674 /// <summary>
24675 /// Sets ACLs on File, Registry, or CreateFolder. When under a Registry element, this cannot be used
24676 /// if the Action attribute's value is remove or removeKeyOnInstall. This element has no Id attribute.
24677 /// The table and key are taken from the parent element.
24678 /// </summary>
24679 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
24680 public class Permission : ISchemaElement, ISetAttributes
24681 {
24682
24683 private string domainField;
24684
24685 private bool domainFieldSet;
24686
24687 private string userField;
24688
24689 private bool userFieldSet;
24690
24691 private YesNoType readField;
24692
24693 private bool readFieldSet;
24694
24695 private YesNoType deleteField;
24696
24697 private bool deleteFieldSet;
24698
24699 private YesNoType readPermissionField;
24700
24701 private bool readPermissionFieldSet;
24702
24703 private YesNoType changePermissionField;
24704
24705 private bool changePermissionFieldSet;
24706
24707 private YesNoType takeOwnershipField;
24708
24709 private bool takeOwnershipFieldSet;
24710
24711 private YesNoType specificRightsAllField;
24712
24713 private bool specificRightsAllFieldSet;
24714
24715 private YesNoType readAttributesField;
24716
24717 private bool readAttributesFieldSet;
24718
24719 private YesNoType writeAttributesField;
24720
24721 private bool writeAttributesFieldSet;
24722
24723 private YesNoType readExtendedAttributesField;
24724
24725 private bool readExtendedAttributesFieldSet;
24726
24727 private YesNoType writeExtendedAttributesField;
24728
24729 private bool writeExtendedAttributesFieldSet;
24730
24731 private YesNoType synchronizeField;
24732
24733 private bool synchronizeFieldSet;
24734
24735 private YesNoType createFileField;
24736
24737 private bool createFileFieldSet;
24738
24739 private YesNoType createChildField;
24740
24741 private bool createChildFieldSet;
24742
24743 private YesNoType deleteChildField;
24744
24745 private bool deleteChildFieldSet;
24746
24747 private YesNoType traverseField;
24748
24749 private bool traverseFieldSet;
24750
24751 private YesNoType appendField;
24752
24753 private bool appendFieldSet;
24754
24755 private YesNoType executeField;
24756
24757 private bool executeFieldSet;
24758
24759 private YesNoType fileAllRightsField;
24760
24761 private bool fileAllRightsFieldSet;
24762
24763 private YesNoType writeField;
24764
24765 private bool writeFieldSet;
24766
24767 private YesNoType createSubkeysField;
24768
24769 private bool createSubkeysFieldSet;
24770
24771 private YesNoType enumerateSubkeysField;
24772
24773 private bool enumerateSubkeysFieldSet;
24774
24775 private YesNoType notifyField;
24776
24777 private bool notifyFieldSet;
24778
24779 private YesNoType createLinkField;
24780
24781 private bool createLinkFieldSet;
24782
24783 private YesNoType genericAllField;
24784
24785 private bool genericAllFieldSet;
24786
24787 private YesNoType genericExecuteField;
24788
24789 private bool genericExecuteFieldSet;
24790
24791 private YesNoType genericWriteField;
24792
24793 private bool genericWriteFieldSet;
24794
24795 private YesNoType genericReadField;
24796
24797 private bool genericReadFieldSet;
24798
24799 private ISchemaElement parentElement;
24800
24801 public string Domain
24802 {
24803 get
24804 {
24805 return this.domainField;
24806 }
24807 set
24808 {
24809 this.domainFieldSet = true;
24810 this.domainField = value;
24811 }
24812 }
24813
24814 public string User
24815 {
24816 get
24817 {
24818 return this.userField;
24819 }
24820 set
24821 {
24822 this.userFieldSet = true;
24823 this.userField = value;
24824 }
24825 }
24826
24827 public YesNoType Read
24828 {
24829 get
24830 {
24831 return this.readField;
24832 }
24833 set
24834 {
24835 this.readFieldSet = true;
24836 this.readField = value;
24837 }
24838 }
24839
24840 public YesNoType Delete
24841 {
24842 get
24843 {
24844 return this.deleteField;
24845 }
24846 set
24847 {
24848 this.deleteFieldSet = true;
24849 this.deleteField = value;
24850 }
24851 }
24852
24853 public YesNoType ReadPermission
24854 {
24855 get
24856 {
24857 return this.readPermissionField;
24858 }
24859 set
24860 {
24861 this.readPermissionFieldSet = true;
24862 this.readPermissionField = value;
24863 }
24864 }
24865
24866 public YesNoType ChangePermission
24867 {
24868 get
24869 {
24870 return this.changePermissionField;
24871 }
24872 set
24873 {
24874 this.changePermissionFieldSet = true;
24875 this.changePermissionField = value;
24876 }
24877 }
24878
24879 public YesNoType TakeOwnership
24880 {
24881 get
24882 {
24883 return this.takeOwnershipField;
24884 }
24885 set
24886 {
24887 this.takeOwnershipFieldSet = true;
24888 this.takeOwnershipField = value;
24889 }
24890 }
24891
24892 /// <summary>
24893 /// Bit mask for SPECIFIC_RIGHTS_ALL from WinNT.h (0x0000FFFF).
24894 /// </summary>
24895 public YesNoType SpecificRightsAll
24896 {
24897 get
24898 {
24899 return this.specificRightsAllField;
24900 }
24901 set
24902 {
24903 this.specificRightsAllFieldSet = true;
24904 this.specificRightsAllField = value;
24905 }
24906 }
24907
24908 public YesNoType ReadAttributes
24909 {
24910 get
24911 {
24912 return this.readAttributesField;
24913 }
24914 set
24915 {
24916 this.readAttributesFieldSet = true;
24917 this.readAttributesField = value;
24918 }
24919 }
24920
24921 public YesNoType WriteAttributes
24922 {
24923 get
24924 {
24925 return this.writeAttributesField;
24926 }
24927 set
24928 {
24929 this.writeAttributesFieldSet = true;
24930 this.writeAttributesField = value;
24931 }
24932 }
24933
24934 public YesNoType ReadExtendedAttributes
24935 {
24936 get
24937 {
24938 return this.readExtendedAttributesField;
24939 }
24940 set
24941 {
24942 this.readExtendedAttributesFieldSet = true;
24943 this.readExtendedAttributesField = value;
24944 }
24945 }
24946
24947 public YesNoType WriteExtendedAttributes
24948 {
24949 get
24950 {
24951 return this.writeExtendedAttributesField;
24952 }
24953 set
24954 {
24955 this.writeExtendedAttributesFieldSet = true;
24956 this.writeExtendedAttributesField = value;
24957 }
24958 }
24959
24960 public YesNoType Synchronize
24961 {
24962 get
24963 {
24964 return this.synchronizeField;
24965 }
24966 set
24967 {
24968 this.synchronizeFieldSet = true;
24969 this.synchronizeField = value;
24970 }
24971 }
24972
24973 /// <summary>
24974 /// For a directory, the right to create a file in the directory. Only valid under a 'CreateFolder' parent.
24975 /// </summary>
24976 public YesNoType CreateFile
24977 {
24978 get
24979 {
24980 return this.createFileField;
24981 }
24982 set
24983 {
24984 this.createFileFieldSet = true;
24985 this.createFileField = value;
24986 }
24987 }
24988
24989 /// <summary>
24990 /// For a directory, the right to create a subdirectory. Only valid under a 'CreateFolder' parent.
24991 /// </summary>
24992 public YesNoType CreateChild
24993 {
24994 get
24995 {
24996 return this.createChildField;
24997 }
24998 set
24999 {
25000 this.createChildFieldSet = true;
25001 this.createChildField = value;
25002 }
25003 }
25004
25005 /// <summary>
25006 /// 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.
25007 /// </summary>
25008 public YesNoType DeleteChild
25009 {
25010 get
25011 {
25012 return this.deleteChildField;
25013 }
25014 set
25015 {
25016 this.deleteChildFieldSet = true;
25017 this.deleteChildField = value;
25018 }
25019 }
25020
25021 /// <summary>
25022 /// 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.
25023 /// </summary>
25024 public YesNoType Traverse
25025 {
25026 get
25027 {
25028 return this.traverseField;
25029 }
25030 set
25031 {
25032 this.traverseFieldSet = true;
25033 this.traverseField = value;
25034 }
25035 }
25036
25037 public YesNoType Append
25038 {
25039 get
25040 {
25041 return this.appendField;
25042 }
25043 set
25044 {
25045 this.appendFieldSet = true;
25046 this.appendField = value;
25047 }
25048 }
25049
25050 public YesNoType Execute
25051 {
25052 get
25053 {
25054 return this.executeField;
25055 }
25056 set
25057 {
25058 this.executeFieldSet = true;
25059 this.executeField = value;
25060 }
25061 }
25062
25063 /// <summary>
25064 /// Bit mask for FILE_ALL_ACCESS from WinNT.h (0x001F01FF).
25065 /// </summary>
25066 public YesNoType FileAllRights
25067 {
25068 get
25069 {
25070 return this.fileAllRightsField;
25071 }
25072 set
25073 {
25074 this.fileAllRightsFieldSet = true;
25075 this.fileAllRightsField = value;
25076 }
25077 }
25078
25079 public YesNoType Write
25080 {
25081 get
25082 {
25083 return this.writeField;
25084 }
25085 set
25086 {
25087 this.writeFieldSet = true;
25088 this.writeField = value;
25089 }
25090 }
25091
25092 public YesNoType CreateSubkeys
25093 {
25094 get
25095 {
25096 return this.createSubkeysField;
25097 }
25098 set
25099 {
25100 this.createSubkeysFieldSet = true;
25101 this.createSubkeysField = value;
25102 }
25103 }
25104
25105 public YesNoType EnumerateSubkeys
25106 {
25107 get
25108 {
25109 return this.enumerateSubkeysField;
25110 }
25111 set
25112 {
25113 this.enumerateSubkeysFieldSet = true;
25114 this.enumerateSubkeysField = value;
25115 }
25116 }
25117
25118 public YesNoType Notify
25119 {
25120 get
25121 {
25122 return this.notifyField;
25123 }
25124 set
25125 {
25126 this.notifyFieldSet = true;
25127 this.notifyField = value;
25128 }
25129 }
25130
25131 public YesNoType CreateLink
25132 {
25133 get
25134 {
25135 return this.createLinkField;
25136 }
25137 set
25138 {
25139 this.createLinkFieldSet = true;
25140 this.createLinkField = value;
25141 }
25142 }
25143
25144 public YesNoType GenericAll
25145 {
25146 get
25147 {
25148 return this.genericAllField;
25149 }
25150 set
25151 {
25152 this.genericAllFieldSet = true;
25153 this.genericAllField = value;
25154 }
25155 }
25156
25157 public YesNoType GenericExecute
25158 {
25159 get
25160 {
25161 return this.genericExecuteField;
25162 }
25163 set
25164 {
25165 this.genericExecuteFieldSet = true;
25166 this.genericExecuteField = value;
25167 }
25168 }
25169
25170 public YesNoType GenericWrite
25171 {
25172 get
25173 {
25174 return this.genericWriteField;
25175 }
25176 set
25177 {
25178 this.genericWriteFieldSet = true;
25179 this.genericWriteField = value;
25180 }
25181 }
25182
25183 /// <summary>
25184 /// specifying this will fail to grant read access
25185 /// </summary>
25186 public YesNoType GenericRead
25187 {
25188 get
25189 {
25190 return this.genericReadField;
25191 }
25192 set
25193 {
25194 this.genericReadFieldSet = true;
25195 this.genericReadField = value;
25196 }
25197 }
25198
25199 public virtual ISchemaElement ParentElement
25200 {
25201 get
25202 {
25203 return this.parentElement;
25204 }
25205 set
25206 {
25207 this.parentElement = value;
25208 }
25209 }
25210
25211 /// <summary>
25212 /// Processes this element and all child elements into an XmlWriter.
25213 /// </summary>
25214 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
25215 public virtual void OutputXml(XmlWriter writer)
25216 {
25217 if ((null == writer))
25218 {
25219 throw new ArgumentNullException("writer");
25220 }
25221 writer.WriteStartElement("Permission", "http://wixtoolset.org/schemas/v4/wxs");
25222 if (this.domainFieldSet)
25223 {
25224 writer.WriteAttributeString("Domain", this.domainField);
25225 }
25226 if (this.userFieldSet)
25227 {
25228 writer.WriteAttributeString("User", this.userField);
25229 }
25230 if (this.readFieldSet)
25231 {
25232 if ((this.readField == YesNoType.no))
25233 {
25234 writer.WriteAttributeString("Read", "no");
25235 }
25236 if ((this.readField == YesNoType.yes))
25237 {
25238 writer.WriteAttributeString("Read", "yes");
25239 }
25240 }
25241 if (this.deleteFieldSet)
25242 {
25243 if ((this.deleteField == YesNoType.no))
25244 {
25245 writer.WriteAttributeString("Delete", "no");
25246 }
25247 if ((this.deleteField == YesNoType.yes))
25248 {
25249 writer.WriteAttributeString("Delete", "yes");
25250 }
25251 }
25252 if (this.readPermissionFieldSet)
25253 {
25254 if ((this.readPermissionField == YesNoType.no))
25255 {
25256 writer.WriteAttributeString("ReadPermission", "no");
25257 }
25258 if ((this.readPermissionField == YesNoType.yes))
25259 {
25260 writer.WriteAttributeString("ReadPermission", "yes");
25261 }
25262 }
25263 if (this.changePermissionFieldSet)
25264 {
25265 if ((this.changePermissionField == YesNoType.no))
25266 {
25267 writer.WriteAttributeString("ChangePermission", "no");
25268 }
25269 if ((this.changePermissionField == YesNoType.yes))
25270 {
25271 writer.WriteAttributeString("ChangePermission", "yes");
25272 }
25273 }
25274 if (this.takeOwnershipFieldSet)
25275 {
25276 if ((this.takeOwnershipField == YesNoType.no))
25277 {
25278 writer.WriteAttributeString("TakeOwnership", "no");
25279 }
25280 if ((this.takeOwnershipField == YesNoType.yes))
25281 {
25282 writer.WriteAttributeString("TakeOwnership", "yes");
25283 }
25284 }
25285 if (this.specificRightsAllFieldSet)
25286 {
25287 if ((this.specificRightsAllField == YesNoType.no))
25288 {
25289 writer.WriteAttributeString("SpecificRightsAll", "no");
25290 }
25291 if ((this.specificRightsAllField == YesNoType.yes))
25292 {
25293 writer.WriteAttributeString("SpecificRightsAll", "yes");
25294 }
25295 }
25296 if (this.readAttributesFieldSet)
25297 {
25298 if ((this.readAttributesField == YesNoType.no))
25299 {
25300 writer.WriteAttributeString("ReadAttributes", "no");
25301 }
25302 if ((this.readAttributesField == YesNoType.yes))
25303 {
25304 writer.WriteAttributeString("ReadAttributes", "yes");
25305 }
25306 }
25307 if (this.writeAttributesFieldSet)
25308 {
25309 if ((this.writeAttributesField == YesNoType.no))
25310 {
25311 writer.WriteAttributeString("WriteAttributes", "no");
25312 }
25313 if ((this.writeAttributesField == YesNoType.yes))
25314 {
25315 writer.WriteAttributeString("WriteAttributes", "yes");
25316 }
25317 }
25318 if (this.readExtendedAttributesFieldSet)
25319 {
25320 if ((this.readExtendedAttributesField == YesNoType.no))
25321 {
25322 writer.WriteAttributeString("ReadExtendedAttributes", "no");
25323 }
25324 if ((this.readExtendedAttributesField == YesNoType.yes))
25325 {
25326 writer.WriteAttributeString("ReadExtendedAttributes", "yes");
25327 }
25328 }
25329 if (this.writeExtendedAttributesFieldSet)
25330 {
25331 if ((this.writeExtendedAttributesField == YesNoType.no))
25332 {
25333 writer.WriteAttributeString("WriteExtendedAttributes", "no");
25334 }
25335 if ((this.writeExtendedAttributesField == YesNoType.yes))
25336 {
25337 writer.WriteAttributeString("WriteExtendedAttributes", "yes");
25338 }
25339 }
25340 if (this.synchronizeFieldSet)
25341 {
25342 if ((this.synchronizeField == YesNoType.no))
25343 {
25344 writer.WriteAttributeString("Synchronize", "no");
25345 }
25346 if ((this.synchronizeField == YesNoType.yes))
25347 {
25348 writer.WriteAttributeString("Synchronize", "yes");
25349 }
25350 }
25351 if (this.createFileFieldSet)
25352 {
25353 if ((this.createFileField == YesNoType.no))
25354 {
25355 writer.WriteAttributeString("CreateFile", "no");
25356 }
25357 if ((this.createFileField == YesNoType.yes))
25358 {
25359 writer.WriteAttributeString("CreateFile", "yes");
25360 }
25361 }
25362 if (this.createChildFieldSet)
25363 {
25364 if ((this.createChildField == YesNoType.no))
25365 {
25366 writer.WriteAttributeString("CreateChild", "no");
25367 }
25368 if ((this.createChildField == YesNoType.yes))
25369 {
25370 writer.WriteAttributeString("CreateChild", "yes");
25371 }
25372 }
25373 if (this.deleteChildFieldSet)
25374 {
25375 if ((this.deleteChildField == YesNoType.no))
25376 {
25377 writer.WriteAttributeString("DeleteChild", "no");
25378 }
25379 if ((this.deleteChildField == YesNoType.yes))
25380 {
25381 writer.WriteAttributeString("DeleteChild", "yes");
25382 }
25383 }
25384 if (this.traverseFieldSet)
25385 {
25386 if ((this.traverseField == YesNoType.no))
25387 {
25388 writer.WriteAttributeString("Traverse", "no");
25389 }
25390 if ((this.traverseField == YesNoType.yes))
25391 {
25392 writer.WriteAttributeString("Traverse", "yes");
25393 }
25394 }
25395 if (this.appendFieldSet)
25396 {
25397 if ((this.appendField == YesNoType.no))
25398 {
25399 writer.WriteAttributeString("Append", "no");
25400 }
25401 if ((this.appendField == YesNoType.yes))
25402 {
25403 writer.WriteAttributeString("Append", "yes");
25404 }
25405 }
25406 if (this.executeFieldSet)
25407 {
25408 if ((this.executeField == YesNoType.no))
25409 {
25410 writer.WriteAttributeString("Execute", "no");
25411 }
25412 if ((this.executeField == YesNoType.yes))
25413 {
25414 writer.WriteAttributeString("Execute", "yes");
25415 }
25416 }
25417 if (this.fileAllRightsFieldSet)
25418 {
25419 if ((this.fileAllRightsField == YesNoType.no))
25420 {
25421 writer.WriteAttributeString("FileAllRights", "no");
25422 }
25423 if ((this.fileAllRightsField == YesNoType.yes))
25424 {
25425 writer.WriteAttributeString("FileAllRights", "yes");
25426 }
25427 }
25428 if (this.writeFieldSet)
25429 {
25430 if ((this.writeField == YesNoType.no))
25431 {
25432 writer.WriteAttributeString("Write", "no");
25433 }
25434 if ((this.writeField == YesNoType.yes))
25435 {
25436 writer.WriteAttributeString("Write", "yes");
25437 }
25438 }
25439 if (this.createSubkeysFieldSet)
25440 {
25441 if ((this.createSubkeysField == YesNoType.no))
25442 {
25443 writer.WriteAttributeString("CreateSubkeys", "no");
25444 }
25445 if ((this.createSubkeysField == YesNoType.yes))
25446 {
25447 writer.WriteAttributeString("CreateSubkeys", "yes");
25448 }
25449 }
25450 if (this.enumerateSubkeysFieldSet)
25451 {
25452 if ((this.enumerateSubkeysField == YesNoType.no))
25453 {
25454 writer.WriteAttributeString("EnumerateSubkeys", "no");
25455 }
25456 if ((this.enumerateSubkeysField == YesNoType.yes))
25457 {
25458 writer.WriteAttributeString("EnumerateSubkeys", "yes");
25459 }
25460 }
25461 if (this.notifyFieldSet)
25462 {
25463 if ((this.notifyField == YesNoType.no))
25464 {
25465 writer.WriteAttributeString("Notify", "no");
25466 }
25467 if ((this.notifyField == YesNoType.yes))
25468 {
25469 writer.WriteAttributeString("Notify", "yes");
25470 }
25471 }
25472 if (this.createLinkFieldSet)
25473 {
25474 if ((this.createLinkField == YesNoType.no))
25475 {
25476 writer.WriteAttributeString("CreateLink", "no");
25477 }
25478 if ((this.createLinkField == YesNoType.yes))
25479 {
25480 writer.WriteAttributeString("CreateLink", "yes");
25481 }
25482 }
25483 if (this.genericAllFieldSet)
25484 {
25485 if ((this.genericAllField == YesNoType.no))
25486 {
25487 writer.WriteAttributeString("GenericAll", "no");
25488 }
25489 if ((this.genericAllField == YesNoType.yes))
25490 {
25491 writer.WriteAttributeString("GenericAll", "yes");
25492 }
25493 }
25494 if (this.genericExecuteFieldSet)
25495 {
25496 if ((this.genericExecuteField == YesNoType.no))
25497 {
25498 writer.WriteAttributeString("GenericExecute", "no");
25499 }
25500 if ((this.genericExecuteField == YesNoType.yes))
25501 {
25502 writer.WriteAttributeString("GenericExecute", "yes");
25503 }
25504 }
25505 if (this.genericWriteFieldSet)
25506 {
25507 if ((this.genericWriteField == YesNoType.no))
25508 {
25509 writer.WriteAttributeString("GenericWrite", "no");
25510 }
25511 if ((this.genericWriteField == YesNoType.yes))
25512 {
25513 writer.WriteAttributeString("GenericWrite", "yes");
25514 }
25515 }
25516 if (this.genericReadFieldSet)
25517 {
25518 if ((this.genericReadField == YesNoType.no))
25519 {
25520 writer.WriteAttributeString("GenericRead", "no");
25521 }
25522 if ((this.genericReadField == YesNoType.yes))
25523 {
25524 writer.WriteAttributeString("GenericRead", "yes");
25525 }
25526 }
25527 writer.WriteEndElement();
25528 }
25529
25530 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
25531 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
25532 void ISetAttributes.SetAttribute(string name, string value)
25533 {
25534 if (String.IsNullOrEmpty(name))
25535 {
25536 throw new ArgumentNullException("name");
25537 }
25538 if (("Domain" == name))
25539 {
25540 this.domainField = value;
25541 this.domainFieldSet = true;
25542 }
25543 if (("User" == name))
25544 {
25545 this.userField = value;
25546 this.userFieldSet = true;
25547 }
25548 if (("Read" == name))
25549 {
25550 this.readField = Enums.ParseYesNoType(value);
25551 this.readFieldSet = true;
25552 }
25553 if (("Delete" == name))
25554 {
25555 this.deleteField = Enums.ParseYesNoType(value);
25556 this.deleteFieldSet = true;
25557 }
25558 if (("ReadPermission" == name))
25559 {
25560 this.readPermissionField = Enums.ParseYesNoType(value);
25561 this.readPermissionFieldSet = true;
25562 }
25563 if (("ChangePermission" == name))
25564 {
25565 this.changePermissionField = Enums.ParseYesNoType(value);
25566 this.changePermissionFieldSet = true;
25567 }
25568 if (("TakeOwnership" == name))
25569 {
25570 this.takeOwnershipField = Enums.ParseYesNoType(value);
25571 this.takeOwnershipFieldSet = true;
25572 }
25573 if (("SpecificRightsAll" == name))
25574 {
25575 this.specificRightsAllField = Enums.ParseYesNoType(value);
25576 this.specificRightsAllFieldSet = true;
25577 }
25578 if (("ReadAttributes" == name))
25579 {
25580 this.readAttributesField = Enums.ParseYesNoType(value);
25581 this.readAttributesFieldSet = true;
25582 }
25583 if (("WriteAttributes" == name))
25584 {
25585 this.writeAttributesField = Enums.ParseYesNoType(value);
25586 this.writeAttributesFieldSet = true;
25587 }
25588 if (("ReadExtendedAttributes" == name))
25589 {
25590 this.readExtendedAttributesField = Enums.ParseYesNoType(value);
25591 this.readExtendedAttributesFieldSet = true;
25592 }
25593 if (("WriteExtendedAttributes" == name))
25594 {
25595 this.writeExtendedAttributesField = Enums.ParseYesNoType(value);
25596 this.writeExtendedAttributesFieldSet = true;
25597 }
25598 if (("Synchronize" == name))
25599 {
25600 this.synchronizeField = Enums.ParseYesNoType(value);
25601 this.synchronizeFieldSet = true;
25602 }
25603 if (("CreateFile" == name))
25604 {
25605 this.createFileField = Enums.ParseYesNoType(value);
25606 this.createFileFieldSet = true;
25607 }
25608 if (("CreateChild" == name))
25609 {
25610 this.createChildField = Enums.ParseYesNoType(value);
25611 this.createChildFieldSet = true;
25612 }
25613 if (("DeleteChild" == name))
25614 {
25615 this.deleteChildField = Enums.ParseYesNoType(value);
25616 this.deleteChildFieldSet = true;
25617 }
25618 if (("Traverse" == name))
25619 {
25620 this.traverseField = Enums.ParseYesNoType(value);
25621 this.traverseFieldSet = true;
25622 }
25623 if (("Append" == name))
25624 {
25625 this.appendField = Enums.ParseYesNoType(value);
25626 this.appendFieldSet = true;
25627 }
25628 if (("Execute" == name))
25629 {
25630 this.executeField = Enums.ParseYesNoType(value);
25631 this.executeFieldSet = true;
25632 }
25633 if (("FileAllRights" == name))
25634 {
25635 this.fileAllRightsField = Enums.ParseYesNoType(value);
25636 this.fileAllRightsFieldSet = true;
25637 }
25638 if (("Write" == name))
25639 {
25640 this.writeField = Enums.ParseYesNoType(value);
25641 this.writeFieldSet = true;
25642 }
25643 if (("CreateSubkeys" == name))
25644 {
25645 this.createSubkeysField = Enums.ParseYesNoType(value);
25646 this.createSubkeysFieldSet = true;
25647 }
25648 if (("EnumerateSubkeys" == name))
25649 {
25650 this.enumerateSubkeysField = Enums.ParseYesNoType(value);
25651 this.enumerateSubkeysFieldSet = true;
25652 }
25653 if (("Notify" == name))
25654 {
25655 this.notifyField = Enums.ParseYesNoType(value);
25656 this.notifyFieldSet = true;
25657 }
25658 if (("CreateLink" == name))
25659 {
25660 this.createLinkField = Enums.ParseYesNoType(value);
25661 this.createLinkFieldSet = true;
25662 }
25663 if (("GenericAll" == name))
25664 {
25665 this.genericAllField = Enums.ParseYesNoType(value);
25666 this.genericAllFieldSet = true;
25667 }
25668 if (("GenericExecute" == name))
25669 {
25670 this.genericExecuteField = Enums.ParseYesNoType(value);
25671 this.genericExecuteFieldSet = true;
25672 }
25673 if (("GenericWrite" == name))
25674 {
25675 this.genericWriteField = Enums.ParseYesNoType(value);
25676 this.genericWriteFieldSet = true;
25677 }
25678 if (("GenericRead" == name))
25679 {
25680 this.genericReadField = Enums.ParseYesNoType(value);
25681 this.genericReadFieldSet = true;
25682 }
25683 }
25684 }
25685
25686 /// <summary>
25687 /// Sets ACLs on File, Registry, or CreateFolder. When under a Registry element, this cannot be used
25688 /// if the Action attribute's value is remove or removeKeyOnInstall. This element is only available
25689 /// when installing with MSI 5.0. For downlevel support, see the PermissionEx element from the
25690 /// WixUtilExtension.
25691 /// </summary>
25692 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
25693 public class PermissionEx : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
25694 {
25695
25696 private ElementCollection children;
25697
25698 private string idField;
25699
25700 private bool idFieldSet;
25701
25702 private string sddlField;
25703
25704 private bool sddlFieldSet;
25705
25706 private ISchemaElement parentElement;
25707
25708 public PermissionEx()
25709 {
25710 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
25711 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Condition)));
25712 this.children = childCollection0;
25713 }
25714
25715 public virtual IEnumerable Children
25716 {
25717 get
25718 {
25719 return this.children;
25720 }
25721 }
25722
25723 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
25724 public virtual IEnumerable this[System.Type childType]
25725 {
25726 get
25727 {
25728 return this.children.Filter(childType);
25729 }
25730 }
25731
25732 /// <summary>
25733 /// Primary key used to identify this particular entry. If this is not specified the parent element's Id attribute
25734 /// will be used instead.
25735 /// </summary>
25736 public string Id
25737 {
25738 get
25739 {
25740 return this.idField;
25741 }
25742 set
25743 {
25744 this.idFieldSet = true;
25745 this.idField = value;
25746 }
25747 }
25748
25749 /// <summary>
25750 /// Security descriptor to apply to parent object.
25751 /// </summary>
25752 public string Sddl
25753 {
25754 get
25755 {
25756 return this.sddlField;
25757 }
25758 set
25759 {
25760 this.sddlFieldSet = true;
25761 this.sddlField = value;
25762 }
25763 }
25764
25765 public virtual ISchemaElement ParentElement
25766 {
25767 get
25768 {
25769 return this.parentElement;
25770 }
25771 set
25772 {
25773 this.parentElement = value;
25774 }
25775 }
25776
25777 public virtual void AddChild(ISchemaElement child)
25778 {
25779 if ((null == child))
25780 {
25781 throw new ArgumentNullException("child");
25782 }
25783 this.children.AddElement(child);
25784 child.ParentElement = this;
25785 }
25786
25787 public virtual void RemoveChild(ISchemaElement child)
25788 {
25789 if ((null == child))
25790 {
25791 throw new ArgumentNullException("child");
25792 }
25793 this.children.RemoveElement(child);
25794 child.ParentElement = null;
25795 }
25796
25797 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
25798 ISchemaElement ICreateChildren.CreateChild(string childName)
25799 {
25800 if (String.IsNullOrEmpty(childName))
25801 {
25802 throw new ArgumentNullException("childName");
25803 }
25804 ISchemaElement childValue = null;
25805 if (("Condition" == childName))
25806 {
25807 childValue = new Condition();
25808 }
25809 if ((null == childValue))
25810 {
25811 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
25812 }
25813 return childValue;
25814 }
25815
25816 /// <summary>
25817 /// Processes this element and all child elements into an XmlWriter.
25818 /// </summary>
25819 public virtual void OutputXml(XmlWriter writer)
25820 {
25821 if ((null == writer))
25822 {
25823 throw new ArgumentNullException("writer");
25824 }
25825 writer.WriteStartElement("PermissionEx", "http://wixtoolset.org/schemas/v4/wxs");
25826 if (this.idFieldSet)
25827 {
25828 writer.WriteAttributeString("Id", this.idField);
25829 }
25830 if (this.sddlFieldSet)
25831 {
25832 writer.WriteAttributeString("Sddl", this.sddlField);
25833 }
25834 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
25835 {
25836 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
25837 childElement.OutputXml(writer);
25838 }
25839 writer.WriteEndElement();
25840 }
25841
25842 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
25843 void ISetAttributes.SetAttribute(string name, string value)
25844 {
25845 if (String.IsNullOrEmpty(name))
25846 {
25847 throw new ArgumentNullException("name");
25848 }
25849 if (("Id" == name))
25850 {
25851 this.idField = value;
25852 this.idFieldSet = true;
25853 }
25854 if (("Sddl" == name))
25855 {
25856 this.sddlField = value;
25857 this.sddlFieldSet = true;
25858 }
25859 }
25860 }
25861
25862 /// <summary>
25863 /// Copy or move an existing file on the target machine, or copy a file that is being installed, to another destination. When
25864 /// this element is nested under a File element, the parent file will be installed, then copied to the specified destination
25865 /// if the parent component of the file is selected for installation or removal. When this element is nested under
25866 /// a Component element and no FileId attribute is specified, the file to copy or move must already be on the target machine.
25867 /// When this element is nested under a Component element and the FileId attribute is specified, the specified file is installed,
25868 /// then copied to the specified destination if the parent component is selected for installation or removal (use
25869 /// this option to control the copy of a file in a different component by the parent component's installation state). If the
25870 /// specified destination directory is the same as the directory containing the original file and the name for the proposed source
25871 /// file is the same as the original, then no action takes place.
25872 /// </summary>
25873 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
25874 public class CopyFile : ISchemaElement, ISetAttributes
25875 {
25876
25877 private string idField;
25878
25879 private bool idFieldSet;
25880
25881 private string fileIdField;
25882
25883 private bool fileIdFieldSet;
25884
25885 private string sourceDirectoryField;
25886
25887 private bool sourceDirectoryFieldSet;
25888
25889 private string sourcePropertyField;
25890
25891 private bool sourcePropertyFieldSet;
25892
25893 private string sourceNameField;
25894
25895 private bool sourceNameFieldSet;
25896
25897 private string destinationDirectoryField;
25898
25899 private bool destinationDirectoryFieldSet;
25900
25901 private string destinationPropertyField;
25902
25903 private bool destinationPropertyFieldSet;
25904
25905 private string destinationNameField;
25906
25907 private bool destinationNameFieldSet;
25908
25909 private string destinationShortNameField;
25910
25911 private bool destinationShortNameFieldSet;
25912
25913 private YesNoType deleteField;
25914
25915 private bool deleteFieldSet;
25916
25917 private ISchemaElement parentElement;
25918
25919 /// <summary>
25920 /// Primary key used to identify this particular entry.
25921 /// </summary>
25922 public string Id
25923 {
25924 get
25925 {
25926 return this.idField;
25927 }
25928 set
25929 {
25930 this.idFieldSet = true;
25931 this.idField = value;
25932 }
25933 }
25934
25935 /// <summary>
25936 /// This attribute cannot be specified if the element is nested under a File element. Set this attribute's value to the identifier
25937 /// of a file from a different component to copy it based on the install state of the parent component.
25938 /// </summary>
25939 public string FileId
25940 {
25941 get
25942 {
25943 return this.fileIdField;
25944 }
25945 set
25946 {
25947 this.fileIdFieldSet = true;
25948 this.fileIdField = value;
25949 }
25950 }
25951
25952 /// <summary>
25953 /// This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set
25954 /// this value to the source directory from which to copy or move an existing file on the target machine. This Directory must
25955 /// exist in the installer database at creation time. This attribute cannot be specified in conjunction with SourceProperty.
25956 /// </summary>
25957 public string SourceDirectory
25958 {
25959 get
25960 {
25961 return this.sourceDirectoryField;
25962 }
25963 set
25964 {
25965 this.sourceDirectoryFieldSet = true;
25966 this.sourceDirectoryField = value;
25967 }
25968 }
25969
25970 /// <summary>
25971 /// This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set
25972 /// this value to a property that will have a value that resolves to the full path of the source directory (or full path
25973 /// including file name if SourceName is not specified). The property does not have to exist in the installer database at
25974 /// creation time; it could be created at installation time by a custom action, on the command line, etc. This attribute
25975 /// cannot be specified in conjunction with SourceDirectory.
25976 /// </summary>
25977 public string SourceProperty
25978 {
25979 get
25980 {
25981 return this.sourcePropertyField;
25982 }
25983 set
25984 {
25985 this.sourcePropertyFieldSet = true;
25986 this.sourcePropertyField = value;
25987 }
25988 }
25989
25990 /// <summary>
25991 /// This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set
25992 /// this value to the localizable name of the file(s) to be copied or moved. All of the files that
25993 /// match the wild card will be removed from the specified directory. The value is a filename that may also
25994 /// contain the wild card characters "?" for any single character or "*" for zero or more occurrences of any character. If this
25995 /// attribute is not specified (and this element is not nested under a File element or specify a FileId attribute) then the
25996 /// SourceProperty attribute should be set to the name of a property that will resolve to the full path of the source filename.
25997 /// If the value of this attribute contains a "*" wildcard and the DestinationName attribute is specified, all moved or copied
25998 /// files retain the file names from their sources.
25999 /// </summary>
26000 public string SourceName
26001 {
26002 get
26003 {
26004 return this.sourceNameField;
26005 }
26006 set
26007 {
26008 this.sourceNameFieldSet = true;
26009 this.sourceNameField = value;
26010 }
26011 }
26012
26013 /// <summary>
26014 /// Set this value to the destination directory where an existing file on the target machine should be moved or copied to. This
26015 /// Directory must exist in the installer database at creation time. This attribute cannot be specified in conjunction with
26016 /// DestinationProperty.
26017 /// </summary>
26018 public string DestinationDirectory
26019 {
26020 get
26021 {
26022 return this.destinationDirectoryField;
26023 }
26024 set
26025 {
26026 this.destinationDirectoryFieldSet = true;
26027 this.destinationDirectoryField = value;
26028 }
26029 }
26030
26031 /// <summary>
26032 /// Set this value to a property that will have a value that resolves to the full path of the destination directory. The property
26033 /// does not have to exist in the installer database at creation time; it could be created at installation time by a custom
26034 /// action, on the command line, etc. This attribute cannot be specified in conjunction with DestinationDirectory.
26035 /// </summary>
26036 public string DestinationProperty
26037 {
26038 get
26039 {
26040 return this.destinationPropertyField;
26041 }
26042 set
26043 {
26044 this.destinationPropertyFieldSet = true;
26045 this.destinationPropertyField = value;
26046 }
26047 }
26048
26049 /// <summary>
26050 /// In prior versions of the WiX toolset, this attribute specified the short file name.
26051 /// Now set this value to the localizable name to be given to the original file after it is moved or copied.
26052 /// If this attribute is not specified, then the destination file is given the same name as the source file.
26053 /// If a short file name is specified, the DestinationShortName attribute may not be specified.
26054 /// Also, if this value is a long file name, the DestinationShortName attribute may be omitted to
26055 /// allow WiX to attempt to generate a unique short file name.
26056 /// However, if this name collides with another file or you wish to manually specify
26057 /// the short file name, then the DestinationShortName attribute may be specified.
26058 /// </summary>
26059 public string DestinationName
26060 {
26061 get
26062 {
26063 return this.destinationNameField;
26064 }
26065 set
26066 {
26067 this.destinationNameFieldSet = true;
26068 this.destinationNameField = value;
26069 }
26070 }
26071
26072 /// <summary>
26073 /// The short file name of the file in 8.3 format.
26074 /// This attribute should only be set if there is a conflict between generated short file names
26075 /// or you wish to manually specify the short file name.
26076 /// </summary>
26077 public string DestinationShortName
26078 {
26079 get
26080 {
26081 return this.destinationShortNameField;
26082 }
26083 set
26084 {
26085 this.destinationShortNameFieldSet = true;
26086 this.destinationShortNameField = value;
26087 }
26088 }
26089
26090 /// <summary>
26091 /// This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. In other
26092 /// cases, if the attribute is not specified, the default value is "no" and the file is copied, not moved. Set the value to "yes"
26093 /// in order to move the file (thus deleting the source file) instead of copying it.
26094 /// </summary>
26095 public YesNoType Delete
26096 {
26097 get
26098 {
26099 return this.deleteField;
26100 }
26101 set
26102 {
26103 this.deleteFieldSet = true;
26104 this.deleteField = value;
26105 }
26106 }
26107
26108 public virtual ISchemaElement ParentElement
26109 {
26110 get
26111 {
26112 return this.parentElement;
26113 }
26114 set
26115 {
26116 this.parentElement = value;
26117 }
26118 }
26119
26120 /// <summary>
26121 /// Processes this element and all child elements into an XmlWriter.
26122 /// </summary>
26123 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
26124 public virtual void OutputXml(XmlWriter writer)
26125 {
26126 if ((null == writer))
26127 {
26128 throw new ArgumentNullException("writer");
26129 }
26130 writer.WriteStartElement("CopyFile", "http://wixtoolset.org/schemas/v4/wxs");
26131 if (this.idFieldSet)
26132 {
26133 writer.WriteAttributeString("Id", this.idField);
26134 }
26135 if (this.fileIdFieldSet)
26136 {
26137 writer.WriteAttributeString("FileId", this.fileIdField);
26138 }
26139 if (this.sourceDirectoryFieldSet)
26140 {
26141 writer.WriteAttributeString("SourceDirectory", this.sourceDirectoryField);
26142 }
26143 if (this.sourcePropertyFieldSet)
26144 {
26145 writer.WriteAttributeString("SourceProperty", this.sourcePropertyField);
26146 }
26147 if (this.sourceNameFieldSet)
26148 {
26149 writer.WriteAttributeString("SourceName", this.sourceNameField);
26150 }
26151 if (this.destinationDirectoryFieldSet)
26152 {
26153 writer.WriteAttributeString("DestinationDirectory", this.destinationDirectoryField);
26154 }
26155 if (this.destinationPropertyFieldSet)
26156 {
26157 writer.WriteAttributeString("DestinationProperty", this.destinationPropertyField);
26158 }
26159 if (this.destinationNameFieldSet)
26160 {
26161 writer.WriteAttributeString("DestinationName", this.destinationNameField);
26162 }
26163 if (this.destinationShortNameFieldSet)
26164 {
26165 writer.WriteAttributeString("DestinationShortName", this.destinationShortNameField);
26166 }
26167 if (this.deleteFieldSet)
26168 {
26169 if ((this.deleteField == YesNoType.no))
26170 {
26171 writer.WriteAttributeString("Delete", "no");
26172 }
26173 if ((this.deleteField == YesNoType.yes))
26174 {
26175 writer.WriteAttributeString("Delete", "yes");
26176 }
26177 }
26178 writer.WriteEndElement();
26179 }
26180
26181 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
26182 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
26183 void ISetAttributes.SetAttribute(string name, string value)
26184 {
26185 if (String.IsNullOrEmpty(name))
26186 {
26187 throw new ArgumentNullException("name");
26188 }
26189 if (("Id" == name))
26190 {
26191 this.idField = value;
26192 this.idFieldSet = true;
26193 }
26194 if (("FileId" == name))
26195 {
26196 this.fileIdField = value;
26197 this.fileIdFieldSet = true;
26198 }
26199 if (("SourceDirectory" == name))
26200 {
26201 this.sourceDirectoryField = value;
26202 this.sourceDirectoryFieldSet = true;
26203 }
26204 if (("SourceProperty" == name))
26205 {
26206 this.sourcePropertyField = value;
26207 this.sourcePropertyFieldSet = true;
26208 }
26209 if (("SourceName" == name))
26210 {
26211 this.sourceNameField = value;
26212 this.sourceNameFieldSet = true;
26213 }
26214 if (("DestinationDirectory" == name))
26215 {
26216 this.destinationDirectoryField = value;
26217 this.destinationDirectoryFieldSet = true;
26218 }
26219 if (("DestinationProperty" == name))
26220 {
26221 this.destinationPropertyField = value;
26222 this.destinationPropertyFieldSet = true;
26223 }
26224 if (("DestinationName" == name))
26225 {
26226 this.destinationNameField = value;
26227 this.destinationNameFieldSet = true;
26228 }
26229 if (("DestinationShortName" == name))
26230 {
26231 this.destinationShortNameField = value;
26232 this.destinationShortNameFieldSet = true;
26233 }
26234 if (("Delete" == name))
26235 {
26236 this.deleteField = Enums.ParseYesNoType(value);
26237 this.deleteFieldSet = true;
26238 }
26239 }
26240 }
26241
26242 /// <summary>
26243 /// File specification for File table, must be child node of Component.
26244 /// </summary>
26245 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
26246 public class File : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
26247 {
26248
26249 private ElementCollection children;
26250
26251 private string idField;
26252
26253 private bool idFieldSet;
26254
26255 private string companionFileField;
26256
26257 private bool companionFileFieldSet;
26258
26259 private string nameField;
26260
26261 private bool nameFieldSet;
26262
26263 private YesNoType keyPathField;
26264
26265 private bool keyPathFieldSet;
26266
26267 private string shortNameField;
26268
26269 private bool shortNameFieldSet;
26270
26271 private YesNoType readOnlyField;
26272
26273 private bool readOnlyFieldSet;
26274
26275 private YesNoType hiddenField;
26276
26277 private bool hiddenFieldSet;
26278
26279 private YesNoType systemField;
26280
26281 private bool systemFieldSet;
26282
26283 private YesNoType vitalField;
26284
26285 private bool vitalFieldSet;
26286
26287 private YesNoType checksumField;
26288
26289 private bool checksumFieldSet;
26290
26291 private YesNoDefaultType compressedField;
26292
26293 private bool compressedFieldSet;
26294
26295 private string bindPathField;
26296
26297 private bool bindPathFieldSet;
26298
26299 private int selfRegCostField;
26300
26301 private bool selfRegCostFieldSet;
26302
26303 private YesNoType trueTypeField;
26304
26305 private bool trueTypeFieldSet;
26306
26307 private string fontTitleField;
26308
26309 private bool fontTitleFieldSet;
26310
26311 private string defaultLanguageField;
26312
26313 private bool defaultLanguageFieldSet;
26314
26315 private int defaultSizeField;
26316
26317 private bool defaultSizeFieldSet;
26318
26319 private string defaultVersionField;
26320
26321 private bool defaultVersionFieldSet;
26322
26323 private AssemblyType assemblyField;
26324
26325 private bool assemblyFieldSet;
26326
26327 private string assemblyManifestField;
26328
26329 private bool assemblyManifestFieldSet;
26330
26331 private string assemblyApplicationField;
26332
26333 private bool assemblyApplicationFieldSet;
26334
26335 private ProcessorArchitectureType processorArchitectureField;
26336
26337 private bool processorArchitectureFieldSet;
26338
26339 private string diskIdField;
26340
26341 private bool diskIdFieldSet;
26342
26343 private string sourceField;
26344
26345 private bool sourceFieldSet;
26346
26347 private string srcField;
26348
26349 private bool srcFieldSet;
26350
26351 private int patchGroupField;
26352
26353 private bool patchGroupFieldSet;
26354
26355 private YesNoType patchIgnoreField;
26356
26357 private bool patchIgnoreFieldSet;
26358
26359 private YesNoType patchAllowIgnoreOnErrorField;
26360
26361 private bool patchAllowIgnoreOnErrorFieldSet;
26362
26363 private YesNoType patchWholeFileField;
26364
26365 private bool patchWholeFileFieldSet;
26366
26367 private ISchemaElement parentElement;
26368
26369 public File()
26370 {
26371 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
26372 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AssemblyName)));
26373 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Permission)));
26374 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx)));
26375 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CopyFile)));
26376 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Shortcut)));
26377 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ODBCDriver)));
26378 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ODBCTranslator)));
26379 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath)));
26380 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Class)));
26381 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppId)));
26382 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(TypeLib)));
26383 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
26384 this.children = childCollection0;
26385 }
26386
26387 public virtual IEnumerable Children
26388 {
26389 get
26390 {
26391 return this.children;
26392 }
26393 }
26394
26395 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
26396 public virtual IEnumerable this[System.Type childType]
26397 {
26398 get
26399 {
26400 return this.children.Filter(childType);
26401 }
26402 }
26403
26404 /// <summary>
26405 /// The unique identifier for this File element. If you omit Id, it defaults to the file name portion of the Source attribute, if specified. May be referenced as a Property by specifying [#value].
26406 /// </summary>
26407 public string Id
26408 {
26409 get
26410 {
26411 return this.idField;
26412 }
26413 set
26414 {
26415 this.idFieldSet = true;
26416 this.idField = value;
26417 }
26418 }
26419
26420 /// <summary>
26421 /// Set this attribute to make this file a companion child of another file. The installation
26422 /// state of a companion file depends not on its own file versioning information, but on the versioning of its
26423 /// companion parent. A file that is the key path for its component can not be a companion file (that means
26424 /// this attribute cannot be set if KeyPath="yes" for this file). The Version attribute cannot be set along
26425 /// with this attribute since companion files are not installed based on their own version.
26426 /// </summary>
26427 public string CompanionFile
26428 {
26429 get
26430 {
26431 return this.companionFileField;
26432 }
26433 set
26434 {
26435 this.companionFileFieldSet = true;
26436 this.companionFileField = value;
26437 }
26438 }
26439
26440 /// <summary>
26441 /// In prior versions of the WiX toolset, this attribute specified the short file name.
26442 /// This attribute's value may now be either a short or long file name.
26443 /// If a short file name is specified, the ShortName attribute may not be specified.
26444 /// Also, if this value is a long file name, the ShortName attribute may be omitted to
26445 /// allow WiX to attempt to generate a unique short file name.
26446 /// However, if this name collides with another file or you wish to manually specify
26447 /// the short file name, then the ShortName attribute may be specified.
26448 /// Finally, if this attribute is omitted then its default value is the file name portion
26449 /// of the Source attribute, if one is specified, or the value of the Id attribute, if
26450 /// the Source attribute is omitted or doesn't contain a file name.
26451 /// </summary>
26452 public string Name
26453 {
26454 get
26455 {
26456 return this.nameField;
26457 }
26458 set
26459 {
26460 this.nameFieldSet = true;
26461 this.nameField = value;
26462 }
26463 }
26464
26465 /// <summary>
26466 /// Set to yes in order to force this file to be the key path for the parent component.
26467 /// </summary>
26468 public YesNoType KeyPath
26469 {
26470 get
26471 {
26472 return this.keyPathField;
26473 }
26474 set
26475 {
26476 this.keyPathFieldSet = true;
26477 this.keyPathField = value;
26478 }
26479 }
26480
26481 /// <summary>
26482 /// The short file name of the file in 8.3 format.
26483 /// This attribute should only be set if there is a conflict between generated short file names
26484 /// or the user wants to manually specify the short file name.
26485 /// </summary>
26486 public string ShortName
26487 {
26488 get
26489 {
26490 return this.shortNameField;
26491 }
26492 set
26493 {
26494 this.shortNameFieldSet = true;
26495 this.shortNameField = value;
26496 }
26497 }
26498
26499 /// <summary>
26500 /// Set to yes in order to have the file's read-only attribute set when it is installed on the target machine.
26501 /// </summary>
26502 public YesNoType ReadOnly
26503 {
26504 get
26505 {
26506 return this.readOnlyField;
26507 }
26508 set
26509 {
26510 this.readOnlyFieldSet = true;
26511 this.readOnlyField = value;
26512 }
26513 }
26514
26515 /// <summary>
26516 /// Set to yes in order to have the file's hidden attribute set when it is installed on the target machine.
26517 /// </summary>
26518 public YesNoType Hidden
26519 {
26520 get
26521 {
26522 return this.hiddenField;
26523 }
26524 set
26525 {
26526 this.hiddenFieldSet = true;
26527 this.hiddenField = value;
26528 }
26529 }
26530
26531 /// <summary>
26532 /// Set to yes in order to have the file's system attribute set when it is installed on the target machine.
26533 /// </summary>
26534 public YesNoType System
26535 {
26536 get
26537 {
26538 return this.systemField;
26539 }
26540 set
26541 {
26542 this.systemFieldSet = true;
26543 this.systemField = value;
26544 }
26545 }
26546
26547 /// <summary>
26548 /// If a file is vital, then installation cannot proceed unless the file is successfully installed. The user will have no option to ignore an error installing this file. If an error occurs, they can merely retry to install the file or abort the installation. The default is "yes," unless the -sfdvital switch (candle.exe) or SuppressFileDefaultVital property (.wixproj) is used.
26549 /// </summary>
26550 public YesNoType Vital
26551 {
26552 get
26553 {
26554 return this.vitalField;
26555 }
26556 set
26557 {
26558 this.vitalFieldSet = true;
26559 this.vitalField = value;
26560 }
26561 }
26562
26563 /// <summary>
26564 /// This attribute should be set to "yes" for every executable file in the installation that has a valid checksum stored in the Portable Executable (PE) file header. Only those files that have this attribute set will be verified for valid checksum during a reinstall.
26565 /// </summary>
26566 public YesNoType Checksum
26567 {
26568 get
26569 {
26570 return this.checksumField;
26571 }
26572 set
26573 {
26574 this.checksumFieldSet = true;
26575 this.checksumField = value;
26576 }
26577 }
26578
26579 /// <summary>
26580 /// Sets the file's source type compression. A setting of "yes" or "no" will override the setting in the Word Count Summary Property.
26581 /// </summary>
26582 public YesNoDefaultType Compressed
26583 {
26584 get
26585 {
26586 return this.compressedField;
26587 }
26588 set
26589 {
26590 this.compressedFieldSet = true;
26591 this.compressedField = value;
26592 }
26593 }
26594
26595 /// <summary>
26596 /// A list of paths, separated by semicolons, that represent the paths to be searched to find the imported DLLs. The list is usually a list of properties, with each property enclosed inside square brackets. The value may be set to an empty string. Including this attribute will cause an entry to be generated for the file in the BindImage table.
26597 /// </summary>
26598 public string BindPath
26599 {
26600 get
26601 {
26602 return this.bindPathField;
26603 }
26604 set
26605 {
26606 this.bindPathFieldSet = true;
26607 this.bindPathField = value;
26608 }
26609 }
26610
26611 /// <summary>
26612 /// The cost of registering the file in bytes. This must be a non-negative number. Including this attribute will cause an entry to be generated for the file in the SelfReg table.
26613 /// </summary>
26614 public int SelfRegCost
26615 {
26616 get
26617 {
26618 return this.selfRegCostField;
26619 }
26620 set
26621 {
26622 this.selfRegCostFieldSet = true;
26623 this.selfRegCostField = value;
26624 }
26625 }
26626
26627 /// <summary>
26628 /// Causes an entry to be generated for the file in the Font table with no FontTitle specified. This attribute is intended to be used to register the file as a TrueType font.
26629 /// </summary>
26630 public YesNoType TrueType
26631 {
26632 get
26633 {
26634 return this.trueTypeField;
26635 }
26636 set
26637 {
26638 this.trueTypeFieldSet = true;
26639 this.trueTypeField = value;
26640 }
26641 }
26642
26643 /// <summary>
26644 /// Causes an entry to be generated for the file in the Font table with the specified FontTitle. This attribute is intended to be used to register the file as a non-TrueType font.
26645 /// </summary>
26646 public string FontTitle
26647 {
26648 get
26649 {
26650 return this.fontTitleField;
26651 }
26652 set
26653 {
26654 this.fontTitleFieldSet = true;
26655 this.fontTitleField = value;
26656 }
26657 }
26658
26659 /// <summary>
26660 /// This is the default language of this file. The linker will replace this value from the value in the file if the suppress files option is not used.
26661 /// </summary>
26662 public string DefaultLanguage
26663 {
26664 get
26665 {
26666 return this.defaultLanguageField;
26667 }
26668 set
26669 {
26670 this.defaultLanguageFieldSet = true;
26671 this.defaultLanguageField = value;
26672 }
26673 }
26674
26675 /// <summary>
26676 /// This is the default size of this file. The linker will replace this value from the value in the file if the suppress files option is not used.
26677 /// </summary>
26678 public int DefaultSize
26679 {
26680 get
26681 {
26682 return this.defaultSizeField;
26683 }
26684 set
26685 {
26686 this.defaultSizeFieldSet = true;
26687 this.defaultSizeField = value;
26688 }
26689 }
26690
26691 /// <summary>
26692 /// This is the default version of this file. The linker will replace this value from the value in the file if the suppress files option is not used.
26693 /// </summary>
26694 public string DefaultVersion
26695 {
26696 get
26697 {
26698 return this.defaultVersionField;
26699 }
26700 set
26701 {
26702 this.defaultVersionFieldSet = true;
26703 this.defaultVersionField = value;
26704 }
26705 }
26706
26707 /// <summary>
26708 /// Specifies if this File is a Win32 Assembly or .NET Assembly that needs to be installed into the
26709 /// Global Assembly Cache (GAC). If the value is '.net' or 'win32', this file must also be the key path of the Component.
26710 /// </summary>
26711 public AssemblyType Assembly
26712 {
26713 get
26714 {
26715 return this.assemblyField;
26716 }
26717 set
26718 {
26719 this.assemblyFieldSet = true;
26720 this.assemblyField = value;
26721 }
26722 }
26723
26724 /// <summary>
26725 /// Specifies the file identifier of the manifest file that describes this assembly.
26726 /// The manifest file should be in the same component as the assembly it describes.
26727 /// This attribute may only be specified if the Assembly attribute is set to '.net' or 'win32'.
26728 /// </summary>
26729 public string AssemblyManifest
26730 {
26731 get
26732 {
26733 return this.assemblyManifestField;
26734 }
26735 set
26736 {
26737 this.assemblyManifestFieldSet = true;
26738 this.assemblyManifestField = value;
26739 }
26740 }
26741
26742 /// <summary>
26743 /// Specifies the file identifier of the application file. This assembly will be isolated
26744 /// to the same directory as the application file.
26745 /// If this attribute is absent, the assembly will be installed to the Global Assembly Cache (GAC).
26746 /// This attribute may only be specified if the Assembly attribute is set to '.net' or 'win32'.
26747 /// </summary>
26748 public string AssemblyApplication
26749 {
26750 get
26751 {
26752 return this.assemblyApplicationField;
26753 }
26754 set
26755 {
26756 this.assemblyApplicationFieldSet = true;
26757 this.assemblyApplicationField = value;
26758 }
26759 }
26760
26761 /// <summary>
26762 /// Specifies the architecture for this assembly. This attribute should only be used on .NET Framework 2.0 or higher assemblies.
26763 /// </summary>
26764 public ProcessorArchitectureType ProcessorArchitecture
26765 {
26766 get
26767 {
26768 return this.processorArchitectureField;
26769 }
26770 set
26771 {
26772 this.processorArchitectureFieldSet = true;
26773 this.processorArchitectureField = value;
26774 }
26775 }
26776
26777 /// <summary>
26778 /// The value of this attribute should correspond to the Id attribute of a Media
26779 /// element authored elsewhere. By creating this connection between a file and
26780 /// its media, you set the packaging options to the values specified in the Media
26781 /// element (values such as compression level, cab embedding, etc...). Specifying
26782 /// the DiskId attribute on the File element overrides the default DiskId attribute
26783 /// from the parent Component element. If no DiskId attribute is specified,
26784 /// the default is "1". This DiskId attribute is ignored when creating a merge module
26785 /// because merge modules do not have media.
26786 /// </summary>
26787 public string DiskId
26788 {
26789 get
26790 {
26791 return this.diskIdField;
26792 }
26793 set
26794 {
26795 this.diskIdFieldSet = true;
26796 this.diskIdField = value;
26797 }
26798 }
26799
26800 /// <summary>
26801 /// Specifies the path to the File in the build process. Overrides default source path set by parent directories and Name attribute. This attribute must be set if no source information can be gathered from parent directories. For more information, see
26802 /// </summary>
26803 public string Source
26804 {
26805 get
26806 {
26807 return this.sourceField;
26808 }
26809 set
26810 {
26811 this.sourceFieldSet = true;
26812 this.sourceField = value;
26813 }
26814 }
26815
26816 [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
26817 public string src
26818 {
26819 get
26820 {
26821 return this.srcField;
26822 }
26823 set
26824 {
26825 this.srcFieldSet = true;
26826 this.srcField = value;
26827 }
26828 }
26829
26830 /// <summary>
26831 /// This attribute must be set for patch-added files. Each patch should be assigned a different patch group number. Patch groups
26832 /// numbers must be greater 0 and should be assigned consecutively. For example, the first patch should use PatchGroup='1', the
26833 /// second patch will have PatchGroup='2', etc...
26834 /// </summary>
26835 public int PatchGroup
26836 {
26837 get
26838 {
26839 return this.patchGroupField;
26840 }
26841 set
26842 {
26843 this.patchGroupFieldSet = true;
26844 this.patchGroupField = value;
26845 }
26846 }
26847
26848 /// <summary>
26849 /// Prevents the updating of the file that is in fact changed in the upgraded image relative to the target images.
26850 /// </summary>
26851 public YesNoType PatchIgnore
26852 {
26853 get
26854 {
26855 return this.patchIgnoreField;
26856 }
26857 set
26858 {
26859 this.patchIgnoreFieldSet = true;
26860 this.patchIgnoreField = value;
26861 }
26862 }
26863
26864 /// <summary>
26865 /// Set to indicate that the patch is non-vital.
26866 /// </summary>
26867 public YesNoType PatchAllowIgnoreOnError
26868 {
26869 get
26870 {
26871 return this.patchAllowIgnoreOnErrorField;
26872 }
26873 set
26874 {
26875 this.patchAllowIgnoreOnErrorFieldSet = true;
26876 this.patchAllowIgnoreOnErrorField = value;
26877 }
26878 }
26879
26880 /// <summary>
26881 /// Set if the entire file should be installed rather than creating a binary patch.
26882 /// </summary>
26883 public YesNoType PatchWholeFile
26884 {
26885 get
26886 {
26887 return this.patchWholeFileField;
26888 }
26889 set
26890 {
26891 this.patchWholeFileFieldSet = true;
26892 this.patchWholeFileField = value;
26893 }
26894 }
26895
26896 public virtual ISchemaElement ParentElement
26897 {
26898 get
26899 {
26900 return this.parentElement;
26901 }
26902 set
26903 {
26904 this.parentElement = value;
26905 }
26906 }
26907
26908 public virtual void AddChild(ISchemaElement child)
26909 {
26910 if ((null == child))
26911 {
26912 throw new ArgumentNullException("child");
26913 }
26914 this.children.AddElement(child);
26915 child.ParentElement = this;
26916 }
26917
26918 public virtual void RemoveChild(ISchemaElement child)
26919 {
26920 if ((null == child))
26921 {
26922 throw new ArgumentNullException("child");
26923 }
26924 this.children.RemoveElement(child);
26925 child.ParentElement = null;
26926 }
26927
26928 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
26929 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
26930 ISchemaElement ICreateChildren.CreateChild(string childName)
26931 {
26932 if (String.IsNullOrEmpty(childName))
26933 {
26934 throw new ArgumentNullException("childName");
26935 }
26936 ISchemaElement childValue = null;
26937 if (("AssemblyName" == childName))
26938 {
26939 childValue = new AssemblyName();
26940 }
26941 if (("Permission" == childName))
26942 {
26943 childValue = new Permission();
26944 }
26945 if (("PermissionEx" == childName))
26946 {
26947 childValue = new PermissionEx();
26948 }
26949 if (("CopyFile" == childName))
26950 {
26951 childValue = new CopyFile();
26952 }
26953 if (("Shortcut" == childName))
26954 {
26955 childValue = new Shortcut();
26956 }
26957 if (("ODBCDriver" == childName))
26958 {
26959 childValue = new ODBCDriver();
26960 }
26961 if (("ODBCTranslator" == childName))
26962 {
26963 childValue = new ODBCTranslator();
26964 }
26965 if (("SymbolPath" == childName))
26966 {
26967 childValue = new SymbolPath();
26968 }
26969 if (("Class" == childName))
26970 {
26971 childValue = new Class();
26972 }
26973 if (("AppId" == childName))
26974 {
26975 childValue = new AppId();
26976 }
26977 if (("TypeLib" == childName))
26978 {
26979 childValue = new TypeLib();
26980 }
26981 if ((null == childValue))
26982 {
26983 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
26984 }
26985 return childValue;
26986 }
26987
26988 /// <summary>
26989 /// Parses a AssemblyType from a string.
26990 /// </summary>
26991 public static AssemblyType ParseAssemblyType(string value)
26992 {
26993 AssemblyType parsedValue;
26994 File.TryParseAssemblyType(value, out parsedValue);
26995 return parsedValue;
26996 }
26997
26998 /// <summary>
26999 /// Tries to parse a AssemblyType from a string.
27000 /// </summary>
27001 public static bool TryParseAssemblyType(string value, out AssemblyType parsedValue)
27002 {
27003 parsedValue = AssemblyType.NotSet;
27004 if (string.IsNullOrEmpty(value))
27005 {
27006 return false;
27007 }
27008 if ((".net" == value))
27009 {
27010 parsedValue = AssemblyType.net;
27011 }
27012 else
27013 {
27014 if (("no" == value))
27015 {
27016 parsedValue = AssemblyType.no;
27017 }
27018 else
27019 {
27020 if (("win32" == value))
27021 {
27022 parsedValue = AssemblyType.win32;
27023 }
27024 else
27025 {
27026 parsedValue = AssemblyType.IllegalValue;
27027 return false;
27028 }
27029 }
27030 }
27031 return true;
27032 }
27033
27034 /// <summary>
27035 /// Parses a ProcessorArchitectureType from a string.
27036 /// </summary>
27037 public static ProcessorArchitectureType ParseProcessorArchitectureType(string value)
27038 {
27039 ProcessorArchitectureType parsedValue;
27040 File.TryParseProcessorArchitectureType(value, out parsedValue);
27041 return parsedValue;
27042 }
27043
27044 /// <summary>
27045 /// Tries to parse a ProcessorArchitectureType from a string.
27046 /// </summary>
27047 public static bool TryParseProcessorArchitectureType(string value, out ProcessorArchitectureType parsedValue)
27048 {
27049 parsedValue = ProcessorArchitectureType.NotSet;
27050 if (string.IsNullOrEmpty(value))
27051 {
27052 return false;
27053 }
27054 if (("msil" == value))
27055 {
27056 parsedValue = ProcessorArchitectureType.msil;
27057 }
27058 else
27059 {
27060 if (("x86" == value))
27061 {
27062 parsedValue = ProcessorArchitectureType.x86;
27063 }
27064 else
27065 {
27066 if (("x64" == value))
27067 {
27068 parsedValue = ProcessorArchitectureType.x64;
27069 }
27070 else
27071 {
27072 if (("ia64" == value))
27073 {
27074 parsedValue = ProcessorArchitectureType.ia64;
27075 }
27076 else
27077 {
27078 parsedValue = ProcessorArchitectureType.IllegalValue;
27079 return false;
27080 }
27081 }
27082 }
27083 }
27084 return true;
27085 }
27086
27087 /// <summary>
27088 /// Processes this element and all child elements into an XmlWriter.
27089 /// </summary>
27090 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
27091 public virtual void OutputXml(XmlWriter writer)
27092 {
27093 if ((null == writer))
27094 {
27095 throw new ArgumentNullException("writer");
27096 }
27097 writer.WriteStartElement("File", "http://wixtoolset.org/schemas/v4/wxs");
27098 if (this.idFieldSet)
27099 {
27100 writer.WriteAttributeString("Id", this.idField);
27101 }
27102 if (this.companionFileFieldSet)
27103 {
27104 writer.WriteAttributeString("CompanionFile", this.companionFileField);
27105 }
27106 if (this.nameFieldSet)
27107 {
27108 writer.WriteAttributeString("Name", this.nameField);
27109 }
27110 if (this.keyPathFieldSet)
27111 {
27112 if ((this.keyPathField == YesNoType.no))
27113 {
27114 writer.WriteAttributeString("KeyPath", "no");
27115 }
27116 if ((this.keyPathField == YesNoType.yes))
27117 {
27118 writer.WriteAttributeString("KeyPath", "yes");
27119 }
27120 }
27121 if (this.shortNameFieldSet)
27122 {
27123 writer.WriteAttributeString("ShortName", this.shortNameField);
27124 }
27125 if (this.readOnlyFieldSet)
27126 {
27127 if ((this.readOnlyField == YesNoType.no))
27128 {
27129 writer.WriteAttributeString("ReadOnly", "no");
27130 }
27131 if ((this.readOnlyField == YesNoType.yes))
27132 {
27133 writer.WriteAttributeString("ReadOnly", "yes");
27134 }
27135 }
27136 if (this.hiddenFieldSet)
27137 {
27138 if ((this.hiddenField == YesNoType.no))
27139 {
27140 writer.WriteAttributeString("Hidden", "no");
27141 }
27142 if ((this.hiddenField == YesNoType.yes))
27143 {
27144 writer.WriteAttributeString("Hidden", "yes");
27145 }
27146 }
27147 if (this.systemFieldSet)
27148 {
27149 if ((this.systemField == YesNoType.no))
27150 {
27151 writer.WriteAttributeString("System", "no");
27152 }
27153 if ((this.systemField == YesNoType.yes))
27154 {
27155 writer.WriteAttributeString("System", "yes");
27156 }
27157 }
27158 if (this.vitalFieldSet)
27159 {
27160 if ((this.vitalField == YesNoType.no))
27161 {
27162 writer.WriteAttributeString("Vital", "no");
27163 }
27164 if ((this.vitalField == YesNoType.yes))
27165 {
27166 writer.WriteAttributeString("Vital", "yes");
27167 }
27168 }
27169 if (this.checksumFieldSet)
27170 {
27171 if ((this.checksumField == YesNoType.no))
27172 {
27173 writer.WriteAttributeString("Checksum", "no");
27174 }
27175 if ((this.checksumField == YesNoType.yes))
27176 {
27177 writer.WriteAttributeString("Checksum", "yes");
27178 }
27179 }
27180 if (this.compressedFieldSet)
27181 {
27182 if ((this.compressedField == YesNoDefaultType.@default))
27183 {
27184 writer.WriteAttributeString("Compressed", "default");
27185 }
27186 if ((this.compressedField == YesNoDefaultType.no))
27187 {
27188 writer.WriteAttributeString("Compressed", "no");
27189 }
27190 if ((this.compressedField == YesNoDefaultType.yes))
27191 {
27192 writer.WriteAttributeString("Compressed", "yes");
27193 }
27194 }
27195 if (this.bindPathFieldSet)
27196 {
27197 writer.WriteAttributeString("BindPath", this.bindPathField);
27198 }
27199 if (this.selfRegCostFieldSet)
27200 {
27201 writer.WriteAttributeString("SelfRegCost", this.selfRegCostField.ToString(CultureInfo.InvariantCulture));
27202 }
27203 if (this.trueTypeFieldSet)
27204 {
27205 if ((this.trueTypeField == YesNoType.no))
27206 {
27207 writer.WriteAttributeString("TrueType", "no");
27208 }
27209 if ((this.trueTypeField == YesNoType.yes))
27210 {
27211 writer.WriteAttributeString("TrueType", "yes");
27212 }
27213 }
27214 if (this.fontTitleFieldSet)
27215 {
27216 writer.WriteAttributeString("FontTitle", this.fontTitleField);
27217 }
27218 if (this.defaultLanguageFieldSet)
27219 {
27220 writer.WriteAttributeString("DefaultLanguage", this.defaultLanguageField);
27221 }
27222 if (this.defaultSizeFieldSet)
27223 {
27224 writer.WriteAttributeString("DefaultSize", this.defaultSizeField.ToString(CultureInfo.InvariantCulture));
27225 }
27226 if (this.defaultVersionFieldSet)
27227 {
27228 writer.WriteAttributeString("DefaultVersion", this.defaultVersionField);
27229 }
27230 if (this.assemblyFieldSet)
27231 {
27232 if ((this.assemblyField == AssemblyType.net))
27233 {
27234 writer.WriteAttributeString("Assembly", ".net");
27235 }
27236 if ((this.assemblyField == AssemblyType.no))
27237 {
27238 writer.WriteAttributeString("Assembly", "no");
27239 }
27240 if ((this.assemblyField == AssemblyType.win32))
27241 {
27242 writer.WriteAttributeString("Assembly", "win32");
27243 }
27244 }
27245 if (this.assemblyManifestFieldSet)
27246 {
27247 writer.WriteAttributeString("AssemblyManifest", this.assemblyManifestField);
27248 }
27249 if (this.assemblyApplicationFieldSet)
27250 {
27251 writer.WriteAttributeString("AssemblyApplication", this.assemblyApplicationField);
27252 }
27253 if (this.processorArchitectureFieldSet)
27254 {
27255 if ((this.processorArchitectureField == ProcessorArchitectureType.msil))
27256 {
27257 writer.WriteAttributeString("ProcessorArchitecture", "msil");
27258 }
27259 if ((this.processorArchitectureField == ProcessorArchitectureType.x86))
27260 {
27261 writer.WriteAttributeString("ProcessorArchitecture", "x86");
27262 }
27263 if ((this.processorArchitectureField == ProcessorArchitectureType.x64))
27264 {
27265 writer.WriteAttributeString("ProcessorArchitecture", "x64");
27266 }
27267 if ((this.processorArchitectureField == ProcessorArchitectureType.ia64))
27268 {
27269 writer.WriteAttributeString("ProcessorArchitecture", "ia64");
27270 }
27271 }
27272 if (this.diskIdFieldSet)
27273 {
27274 writer.WriteAttributeString("DiskId", this.diskIdField);
27275 }
27276 if (this.sourceFieldSet)
27277 {
27278 writer.WriteAttributeString("Source", this.sourceField);
27279 }
27280 if (this.srcFieldSet)
27281 {
27282 writer.WriteAttributeString("src", this.srcField);
27283 }
27284 if (this.patchGroupFieldSet)
27285 {
27286 writer.WriteAttributeString("PatchGroup", this.patchGroupField.ToString(CultureInfo.InvariantCulture));
27287 }
27288 if (this.patchIgnoreFieldSet)
27289 {
27290 if ((this.patchIgnoreField == YesNoType.no))
27291 {
27292 writer.WriteAttributeString("PatchIgnore", "no");
27293 }
27294 if ((this.patchIgnoreField == YesNoType.yes))
27295 {
27296 writer.WriteAttributeString("PatchIgnore", "yes");
27297 }
27298 }
27299 if (this.patchAllowIgnoreOnErrorFieldSet)
27300 {
27301 if ((this.patchAllowIgnoreOnErrorField == YesNoType.no))
27302 {
27303 writer.WriteAttributeString("PatchAllowIgnoreOnError", "no");
27304 }
27305 if ((this.patchAllowIgnoreOnErrorField == YesNoType.yes))
27306 {
27307 writer.WriteAttributeString("PatchAllowIgnoreOnError", "yes");
27308 }
27309 }
27310 if (this.patchWholeFileFieldSet)
27311 {
27312 if ((this.patchWholeFileField == YesNoType.no))
27313 {
27314 writer.WriteAttributeString("PatchWholeFile", "no");
27315 }
27316 if ((this.patchWholeFileField == YesNoType.yes))
27317 {
27318 writer.WriteAttributeString("PatchWholeFile", "yes");
27319 }
27320 }
27321 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
27322 {
27323 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
27324 childElement.OutputXml(writer);
27325 }
27326 writer.WriteEndElement();
27327 }
27328
27329 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
27330 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
27331 void ISetAttributes.SetAttribute(string name, string value)
27332 {
27333 if (String.IsNullOrEmpty(name))
27334 {
27335 throw new ArgumentNullException("name");
27336 }
27337 if (("Id" == name))
27338 {
27339 this.idField = value;
27340 this.idFieldSet = true;
27341 }
27342 if (("CompanionFile" == name))
27343 {
27344 this.companionFileField = value;
27345 this.companionFileFieldSet = true;
27346 }
27347 if (("Name" == name))
27348 {
27349 this.nameField = value;
27350 this.nameFieldSet = true;
27351 }
27352 if (("KeyPath" == name))
27353 {
27354 this.keyPathField = Enums.ParseYesNoType(value);
27355 this.keyPathFieldSet = true;
27356 }
27357 if (("ShortName" == name))
27358 {
27359 this.shortNameField = value;
27360 this.shortNameFieldSet = true;
27361 }
27362 if (("ReadOnly" == name))
27363 {
27364 this.readOnlyField = Enums.ParseYesNoType(value);
27365 this.readOnlyFieldSet = true;
27366 }
27367 if (("Hidden" == name))
27368 {
27369 this.hiddenField = Enums.ParseYesNoType(value);
27370 this.hiddenFieldSet = true;
27371 }
27372 if (("System" == name))
27373 {
27374 this.systemField = Enums.ParseYesNoType(value);
27375 this.systemFieldSet = true;
27376 }
27377 if (("Vital" == name))
27378 {
27379 this.vitalField = Enums.ParseYesNoType(value);
27380 this.vitalFieldSet = true;
27381 }
27382 if (("Checksum" == name))
27383 {
27384 this.checksumField = Enums.ParseYesNoType(value);
27385 this.checksumFieldSet = true;
27386 }
27387 if (("Compressed" == name))
27388 {
27389 this.compressedField = Enums.ParseYesNoDefaultType(value);
27390 this.compressedFieldSet = true;
27391 }
27392 if (("BindPath" == name))
27393 {
27394 this.bindPathField = value;
27395 this.bindPathFieldSet = true;
27396 }
27397 if (("SelfRegCost" == name))
27398 {
27399 this.selfRegCostField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
27400 this.selfRegCostFieldSet = true;
27401 }
27402 if (("TrueType" == name))
27403 {
27404 this.trueTypeField = Enums.ParseYesNoType(value);
27405 this.trueTypeFieldSet = true;
27406 }
27407 if (("FontTitle" == name))
27408 {
27409 this.fontTitleField = value;
27410 this.fontTitleFieldSet = true;
27411 }
27412 if (("DefaultLanguage" == name))
27413 {
27414 this.defaultLanguageField = value;
27415 this.defaultLanguageFieldSet = true;
27416 }
27417 if (("DefaultSize" == name))
27418 {
27419 this.defaultSizeField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
27420 this.defaultSizeFieldSet = true;
27421 }
27422 if (("DefaultVersion" == name))
27423 {
27424 this.defaultVersionField = value;
27425 this.defaultVersionFieldSet = true;
27426 }
27427 if (("Assembly" == name))
27428 {
27429 this.assemblyField = File.ParseAssemblyType(value);
27430 this.assemblyFieldSet = true;
27431 }
27432 if (("AssemblyManifest" == name))
27433 {
27434 this.assemblyManifestField = value;
27435 this.assemblyManifestFieldSet = true;
27436 }
27437 if (("AssemblyApplication" == name))
27438 {
27439 this.assemblyApplicationField = value;
27440 this.assemblyApplicationFieldSet = true;
27441 }
27442 if (("ProcessorArchitecture" == name))
27443 {
27444 this.processorArchitectureField = File.ParseProcessorArchitectureType(value);
27445 this.processorArchitectureFieldSet = true;
27446 }
27447 if (("DiskId" == name))
27448 {
27449 this.diskIdField = value;
27450 this.diskIdFieldSet = true;
27451 }
27452 if (("Source" == name))
27453 {
27454 this.sourceField = value;
27455 this.sourceFieldSet = true;
27456 }
27457 if (("src" == name))
27458 {
27459 this.srcField = value;
27460 this.srcFieldSet = true;
27461 }
27462 if (("PatchGroup" == name))
27463 {
27464 this.patchGroupField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
27465 this.patchGroupFieldSet = true;
27466 }
27467 if (("PatchIgnore" == name))
27468 {
27469 this.patchIgnoreField = Enums.ParseYesNoType(value);
27470 this.patchIgnoreFieldSet = true;
27471 }
27472 if (("PatchAllowIgnoreOnError" == name))
27473 {
27474 this.patchAllowIgnoreOnErrorField = Enums.ParseYesNoType(value);
27475 this.patchAllowIgnoreOnErrorFieldSet = true;
27476 }
27477 if (("PatchWholeFile" == name))
27478 {
27479 this.patchWholeFileField = Enums.ParseYesNoType(value);
27480 this.patchWholeFileFieldSet = true;
27481 }
27482 }
27483
27484 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
27485 public enum AssemblyType
27486 {
27487
27488 IllegalValue = int.MaxValue,
27489
27490 NotSet = -1,
27491
27492 /// <summary>
27493 /// The file is a .NET Framework assembly.
27494 /// </summary>
27495 net,
27496
27497 /// <summary>
27498 /// The file is not a .NET Framework or Win32 assembly. This is the default value.
27499 /// </summary>
27500 no,
27501
27502 /// <summary>
27503 /// The file is a Win32 assembly.
27504 /// </summary>
27505 win32,
27506 }
27507
27508 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
27509 public enum ProcessorArchitectureType
27510 {
27511
27512 IllegalValue = int.MaxValue,
27513
27514 NotSet = -1,
27515
27516 /// <summary>
27517 /// The file is a .NET Framework assembly that is processor-neutral.
27518 /// </summary>
27519 msil,
27520
27521 /// <summary>
27522 /// The file is a .NET Framework assembly for the x86 processor.
27523 /// </summary>
27524 x86,
27525
27526 /// <summary>
27527 /// The file is a .NET Framework assembly for the x64 processor.
27528 /// </summary>
27529 x64,
27530
27531 /// <summary>
27532 /// The file is a .NET Framework assembly for the ia64 processor.
27533 /// </summary>
27534 ia64,
27535 }
27536 }
27537
27538 /// <summary>
27539 /// Use several of these elements to specify each registry value in a multiString registry value. This element
27540 /// cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'. The
27541 /// values should go in the text area of the MultiStringValue element.
27542 /// </summary>
27543 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
27544 public class MultiStringValue : ISetAttributes, ISchemaElement
27545 {
27546
27547 private ISchemaElement parentElement;
27548
27549 private string contentField;
27550
27551 private bool contentFieldSet;
27552
27553 public virtual ISchemaElement ParentElement
27554 {
27555 get
27556 {
27557 return this.parentElement;
27558 }
27559 set
27560 {
27561 this.parentElement = value;
27562 }
27563 }
27564
27565 /// <summary>
27566 /// Use several of these elements to specify each registry value in a multiString registry value. This element
27567 /// cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'. The
27568 /// values should go in the text area of the MultiStringValue element.
27569 /// </summary>
27570 public string Content
27571 {
27572 get
27573 {
27574 return this.contentField;
27575 }
27576 set
27577 {
27578 this.contentFieldSet = true;
27579 this.contentField = value;
27580 }
27581 }
27582
27583 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
27584 void ISetAttributes.SetAttribute(string name, string value)
27585 {
27586 if (String.IsNullOrEmpty(name))
27587 {
27588 throw new ArgumentNullException("name");
27589 }
27590 if (("Content" == name))
27591 {
27592 this.contentField = value;
27593 this.contentFieldSet = true;
27594 }
27595 }
27596
27597 /// <summary>
27598 /// Processes this element and all child elements into an XmlWriter.
27599 /// </summary>
27600 public virtual void OutputXml(XmlWriter writer)
27601 {
27602 if ((null == writer))
27603 {
27604 throw new ArgumentNullException("writer");
27605 }
27606 writer.WriteStartElement("MultiStringValue", "http://wixtoolset.org/schemas/v4/wxs");
27607 if (this.contentFieldSet)
27608 {
27609 writer.WriteString(this.contentField);
27610 }
27611 writer.WriteEndElement();
27612 }
27613 }
27614
27615 /// <summary>
27616 /// Used for organization of child RegistryValue elements or to create a registry key
27617 /// (and optionally remove it during uninstallation).
27618 /// </summary>
27619 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
27620 public class RegistryKey : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
27621 {
27622
27623 private ElementCollection children;
27624
27625 private string idField;
27626
27627 private bool idFieldSet;
27628
27629 private ActionType actionField;
27630
27631 private bool actionFieldSet;
27632
27633 private YesNoType forceCreateOnInstallField;
27634
27635 private bool forceCreateOnInstallFieldSet;
27636
27637 private YesNoType forceDeleteOnUninstallField;
27638
27639 private bool forceDeleteOnUninstallFieldSet;
27640
27641 private string keyField;
27642
27643 private bool keyFieldSet;
27644
27645 private RegistryRootType rootField;
27646
27647 private bool rootFieldSet;
27648
27649 private ISchemaElement parentElement;
27650
27651 public RegistryKey()
27652 {
27653 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
27654 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegistryKey)));
27655 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegistryValue)));
27656 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Permission)));
27657 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx)));
27658 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
27659 this.children = childCollection0;
27660 }
27661
27662 public virtual IEnumerable Children
27663 {
27664 get
27665 {
27666 return this.children;
27667 }
27668 }
27669
27670 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
27671 public virtual IEnumerable this[System.Type childType]
27672 {
27673 get
27674 {
27675 return this.children.Filter(childType);
27676 }
27677 }
27678
27679 /// <summary>
27680 /// Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be
27681 /// generated by hashing the parent Component identifier, Root, Key, and Name.
27682 /// </summary>
27683 public string Id
27684 {
27685 get
27686 {
27687 return this.idField;
27688 }
27689 set
27690 {
27691 this.idFieldSet = true;
27692 this.idField = value;
27693 }
27694 }
27695
27696 /// <summary>
27697 /// The Action attribute has been deprecated. In most cases, you can simply omit @Action. If you need to force Windows Installer
27698 /// to create an empty key or recursively delete the key, use the ForceCreateOnInstall or ForceDeleteOnUninstall attributes instead.
27699 /// </summary>
27700 public ActionType Action
27701 {
27702 get
27703 {
27704 return this.actionField;
27705 }
27706 set
27707 {
27708 this.actionFieldSet = true;
27709 this.actionField = value;
27710 }
27711 }
27712
27713 /// <summary>
27714 /// Set this attribute to 'yes' to create an empty key, if absent, when the parent component is installed.
27715 /// This value is needed only to create an empty key with no subkeys or values. Windows Installer creates
27716 /// keys as needed to store subkeys and values. The default is "no".
27717 /// </summary>
27718 public YesNoType ForceCreateOnInstall
27719 {
27720 get
27721 {
27722 return this.forceCreateOnInstallField;
27723 }
27724 set
27725 {
27726 this.forceCreateOnInstallFieldSet = true;
27727 this.forceCreateOnInstallField = value;
27728 }
27729 }
27730
27731 /// <summary>
27732 /// Set this attribute to 'yes' to remove the key with all its values and subkeys when the parent component is uninstalled.
27733 /// Note that this value is useful only if your program creates additional values or subkeys under this key and you want an uninstall to remove them. MSI already
27734 /// removes all values and subkeys that it creates, so this option just adds additional overhead to uninstall.
27735 /// The default is "no".
27736 /// </summary>
27737 public YesNoType ForceDeleteOnUninstall
27738 {
27739 get
27740 {
27741 return this.forceDeleteOnUninstallField;
27742 }
27743 set
27744 {
27745 this.forceDeleteOnUninstallFieldSet = true;
27746 this.forceDeleteOnUninstallField = value;
27747 }
27748 }
27749
27750 /// <summary>
27751 /// The localizable key for the registry value.
27752 /// If the parent element is a RegistryKey, this value may be omitted to use the
27753 /// path of the parent, or if its specified it will be appended to the path of the parent.
27754 /// </summary>
27755 public string Key
27756 {
27757 get
27758 {
27759 return this.keyField;
27760 }
27761 set
27762 {
27763 this.keyFieldSet = true;
27764 this.keyField = value;
27765 }
27766 }
27767
27768 /// <summary>
27769 /// The predefined root key for the registry value.
27770 /// </summary>
27771 public RegistryRootType Root
27772 {
27773 get
27774 {
27775 return this.rootField;
27776 }
27777 set
27778 {
27779 this.rootFieldSet = true;
27780 this.rootField = value;
27781 }
27782 }
27783
27784 public virtual ISchemaElement ParentElement
27785 {
27786 get
27787 {
27788 return this.parentElement;
27789 }
27790 set
27791 {
27792 this.parentElement = value;
27793 }
27794 }
27795
27796 public virtual void AddChild(ISchemaElement child)
27797 {
27798 if ((null == child))
27799 {
27800 throw new ArgumentNullException("child");
27801 }
27802 this.children.AddElement(child);
27803 child.ParentElement = this;
27804 }
27805
27806 public virtual void RemoveChild(ISchemaElement child)
27807 {
27808 if ((null == child))
27809 {
27810 throw new ArgumentNullException("child");
27811 }
27812 this.children.RemoveElement(child);
27813 child.ParentElement = null;
27814 }
27815
27816 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
27817 ISchemaElement ICreateChildren.CreateChild(string childName)
27818 {
27819 if (String.IsNullOrEmpty(childName))
27820 {
27821 throw new ArgumentNullException("childName");
27822 }
27823 ISchemaElement childValue = null;
27824 if (("RegistryKey" == childName))
27825 {
27826 childValue = new RegistryKey();
27827 }
27828 if (("RegistryValue" == childName))
27829 {
27830 childValue = new RegistryValue();
27831 }
27832 if (("Permission" == childName))
27833 {
27834 childValue = new Permission();
27835 }
27836 if (("PermissionEx" == childName))
27837 {
27838 childValue = new PermissionEx();
27839 }
27840 if ((null == childValue))
27841 {
27842 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
27843 }
27844 return childValue;
27845 }
27846
27847 /// <summary>
27848 /// Parses a ActionType from a string.
27849 /// </summary>
27850 public static ActionType ParseActionType(string value)
27851 {
27852 ActionType parsedValue;
27853 RegistryKey.TryParseActionType(value, out parsedValue);
27854 return parsedValue;
27855 }
27856
27857 /// <summary>
27858 /// Tries to parse a ActionType from a string.
27859 /// </summary>
27860 public static bool TryParseActionType(string value, out ActionType parsedValue)
27861 {
27862 parsedValue = ActionType.NotSet;
27863 if (string.IsNullOrEmpty(value))
27864 {
27865 return false;
27866 }
27867 if (("create" == value))
27868 {
27869 parsedValue = ActionType.create;
27870 }
27871 else
27872 {
27873 if (("createAndRemoveOnUninstall" == value))
27874 {
27875 parsedValue = ActionType.createAndRemoveOnUninstall;
27876 }
27877 else
27878 {
27879 if (("none" == value))
27880 {
27881 parsedValue = ActionType.none;
27882 }
27883 else
27884 {
27885 parsedValue = ActionType.IllegalValue;
27886 return false;
27887 }
27888 }
27889 }
27890 return true;
27891 }
27892
27893 /// <summary>
27894 /// Processes this element and all child elements into an XmlWriter.
27895 /// </summary>
27896 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
27897 public virtual void OutputXml(XmlWriter writer)
27898 {
27899 if ((null == writer))
27900 {
27901 throw new ArgumentNullException("writer");
27902 }
27903 writer.WriteStartElement("RegistryKey", "http://wixtoolset.org/schemas/v4/wxs");
27904 if (this.idFieldSet)
27905 {
27906 writer.WriteAttributeString("Id", this.idField);
27907 }
27908 if (this.actionFieldSet)
27909 {
27910 if ((this.actionField == ActionType.create))
27911 {
27912 writer.WriteAttributeString("Action", "create");
27913 }
27914 if ((this.actionField == ActionType.createAndRemoveOnUninstall))
27915 {
27916 writer.WriteAttributeString("Action", "createAndRemoveOnUninstall");
27917 }
27918 if ((this.actionField == ActionType.none))
27919 {
27920 writer.WriteAttributeString("Action", "none");
27921 }
27922 }
27923 if (this.forceCreateOnInstallFieldSet)
27924 {
27925 if ((this.forceCreateOnInstallField == YesNoType.no))
27926 {
27927 writer.WriteAttributeString("ForceCreateOnInstall", "no");
27928 }
27929 if ((this.forceCreateOnInstallField == YesNoType.yes))
27930 {
27931 writer.WriteAttributeString("ForceCreateOnInstall", "yes");
27932 }
27933 }
27934 if (this.forceDeleteOnUninstallFieldSet)
27935 {
27936 if ((this.forceDeleteOnUninstallField == YesNoType.no))
27937 {
27938 writer.WriteAttributeString("ForceDeleteOnUninstall", "no");
27939 }
27940 if ((this.forceDeleteOnUninstallField == YesNoType.yes))
27941 {
27942 writer.WriteAttributeString("ForceDeleteOnUninstall", "yes");
27943 }
27944 }
27945 if (this.keyFieldSet)
27946 {
27947 writer.WriteAttributeString("Key", this.keyField);
27948 }
27949 if (this.rootFieldSet)
27950 {
27951 if ((this.rootField == RegistryRootType.HKMU))
27952 {
27953 writer.WriteAttributeString("Root", "HKMU");
27954 }
27955 if ((this.rootField == RegistryRootType.HKCR))
27956 {
27957 writer.WriteAttributeString("Root", "HKCR");
27958 }
27959 if ((this.rootField == RegistryRootType.HKCU))
27960 {
27961 writer.WriteAttributeString("Root", "HKCU");
27962 }
27963 if ((this.rootField == RegistryRootType.HKLM))
27964 {
27965 writer.WriteAttributeString("Root", "HKLM");
27966 }
27967 if ((this.rootField == RegistryRootType.HKU))
27968 {
27969 writer.WriteAttributeString("Root", "HKU");
27970 }
27971 }
27972 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
27973 {
27974 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
27975 childElement.OutputXml(writer);
27976 }
27977 writer.WriteEndElement();
27978 }
27979
27980 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
27981 void ISetAttributes.SetAttribute(string name, string value)
27982 {
27983 if (String.IsNullOrEmpty(name))
27984 {
27985 throw new ArgumentNullException("name");
27986 }
27987 if (("Id" == name))
27988 {
27989 this.idField = value;
27990 this.idFieldSet = true;
27991 }
27992 if (("Action" == name))
27993 {
27994 this.actionField = RegistryKey.ParseActionType(value);
27995 this.actionFieldSet = true;
27996 }
27997 if (("ForceCreateOnInstall" == name))
27998 {
27999 this.forceCreateOnInstallField = Enums.ParseYesNoType(value);
28000 this.forceCreateOnInstallFieldSet = true;
28001 }
28002 if (("ForceDeleteOnUninstall" == name))
28003 {
28004 this.forceDeleteOnUninstallField = Enums.ParseYesNoType(value);
28005 this.forceDeleteOnUninstallFieldSet = true;
28006 }
28007 if (("Key" == name))
28008 {
28009 this.keyField = value;
28010 this.keyFieldSet = true;
28011 }
28012 if (("Root" == name))
28013 {
28014 this.rootField = Enums.ParseRegistryRootType(value);
28015 this.rootFieldSet = true;
28016 }
28017 }
28018
28019 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
28020 public enum ActionType
28021 {
28022
28023 IllegalValue = int.MaxValue,
28024
28025 NotSet = -1,
28026
28027 /// <summary>
28028 /// Creates the key, if absent, when the parent component is installed.
28029 /// </summary>
28030 create,
28031
28032 /// <summary>
28033 /// Creates the key, if absent, when the parent component is installed then remove the key with all its values and subkeys when the parent component is uninstalled.
28034 /// Note that this value is useful only if your program creates additional values or subkeys under this key and you want an uninstall to remove them. MSI already
28035 /// removes all values and subkeys that it creates, so this option just adds additional overhead to uninstall.
28036 /// </summary>
28037 createAndRemoveOnUninstall,
28038
28039 /// <summary>
28040 /// Does nothing; this element is used merely in WiX authoring for organization and does nothing to the final output.
28041 /// This is the default value.
28042 /// </summary>
28043 none,
28044 }
28045 }
28046
28047 /// <summary>
28048 /// Used to create a registry value. For multi-string values, this can be used to prepend or append values.
28049 ///
28050 /// For legacy authoring: Use several of these elements to specify each registry value in a multiString registry value. This element
28051 /// cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'. The
28052 /// values should go in the text area of the RegistryValue element.
28053 /// </summary>
28054 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
28055 public class RegistryValue : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
28056 {
28057
28058 private ElementCollection children;
28059
28060 private string idField;
28061
28062 private bool idFieldSet;
28063
28064 private RegistryRootType rootField;
28065
28066 private bool rootFieldSet;
28067
28068 private string keyField;
28069
28070 private bool keyFieldSet;
28071
28072 private string nameField;
28073
28074 private bool nameFieldSet;
28075
28076 private string valueField;
28077
28078 private bool valueFieldSet;
28079
28080 private TypeType typeField;
28081
28082 private bool typeFieldSet;
28083
28084 private ActionType actionField;
28085
28086 private bool actionFieldSet;
28087
28088 private YesNoType keyPathField;
28089
28090 private bool keyPathFieldSet;
28091
28092 private ISchemaElement parentElement;
28093
28094 public RegistryValue()
28095 {
28096 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
28097 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Permission)));
28098 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx)));
28099 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MultiStringValue)));
28100 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
28101 this.children = childCollection0;
28102 }
28103
28104 public virtual IEnumerable Children
28105 {
28106 get
28107 {
28108 return this.children;
28109 }
28110 }
28111
28112 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
28113 public virtual IEnumerable this[System.Type childType]
28114 {
28115 get
28116 {
28117 return this.children.Filter(childType);
28118 }
28119 }
28120
28121 /// <summary>
28122 /// Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be
28123 /// generated by hashing the parent Component identifier, Root, Key, and Name.
28124 /// </summary>
28125 public string Id
28126 {
28127 get
28128 {
28129 return this.idField;
28130 }
28131 set
28132 {
28133 this.idFieldSet = true;
28134 this.idField = value;
28135 }
28136 }
28137
28138 /// <summary>
28139 /// The predefined root key for the registry value.
28140 /// </summary>
28141 public RegistryRootType Root
28142 {
28143 get
28144 {
28145 return this.rootField;
28146 }
28147 set
28148 {
28149 this.rootFieldSet = true;
28150 this.rootField = value;
28151 }
28152 }
28153
28154 /// <summary>
28155 /// The localizable key for the registry value.
28156 /// If the parent element is a RegistryKey, this value may be omitted to use the
28157 /// path of the parent, or if its specified it will be appended to the path of the parent.
28158 /// </summary>
28159 public string Key
28160 {
28161 get
28162 {
28163 return this.keyField;
28164 }
28165 set
28166 {
28167 this.keyFieldSet = true;
28168 this.keyField = value;
28169 }
28170 }
28171
28172 /// <summary>
28173 /// The localizable registry value name. If this attribute is not provided the default value for the registry key will
28174 /// be set instead. The Windows Installer allows several special values to be set for this attribute. You should not
28175 /// use them in WiX. Instead use appropriate values in the Action attribute to get the desired behavior.
28176 /// </summary>
28177 public string Name
28178 {
28179 get
28180 {
28181 return this.nameField;
28182 }
28183 set
28184 {
28185 this.nameFieldSet = true;
28186 this.nameField = value;
28187 }
28188 }
28189
28190 /// <summary>
28191 /// Set this attribute to the localizable registry value. This value is formatted. The Windows Installer allows
28192 /// several special values to be set for this attribute. You should not use them in WiX. Instead use appropriate
28193 /// values in the Type attribute to get the desired behavior.
28194 /// </summary>
28195 public string Value
28196 {
28197 get
28198 {
28199 return this.valueField;
28200 }
28201 set
28202 {
28203 this.valueFieldSet = true;
28204 this.valueField = value;
28205 }
28206 }
28207
28208 /// <summary>
28209 /// Set this attribute to the type of the desired registry key. This attribute must be specified whenever the Value
28210 /// attribute or a child RegistryValue element is specified. This attribute
28211 /// should only be set when the value of the Action attribute does not include the word 'remove'.
28212 /// </summary>
28213 public TypeType Type
28214 {
28215 get
28216 {
28217 return this.typeField;
28218 }
28219 set
28220 {
28221 this.typeFieldSet = true;
28222 this.typeField = value;
28223 }
28224 }
28225
28226 /// <summary>
28227 /// This is the action that will be taken for this registry value.
28228 /// </summary>
28229 public ActionType Action
28230 {
28231 get
28232 {
28233 return this.actionField;
28234 }
28235 set
28236 {
28237 this.actionFieldSet = true;
28238 this.actionField = value;
28239 }
28240 }
28241
28242 /// <summary>
28243 /// Set this attribute to 'yes' to make this registry key the KeyPath of the parent component.
28244 /// Only one resource (registry, file, etc) can be the KeyPath of a component.
28245 /// </summary>
28246 public YesNoType KeyPath
28247 {
28248 get
28249 {
28250 return this.keyPathField;
28251 }
28252 set
28253 {
28254 this.keyPathFieldSet = true;
28255 this.keyPathField = value;
28256 }
28257 }
28258
28259 public virtual ISchemaElement ParentElement
28260 {
28261 get
28262 {
28263 return this.parentElement;
28264 }
28265 set
28266 {
28267 this.parentElement = value;
28268 }
28269 }
28270
28271 public virtual void AddChild(ISchemaElement child)
28272 {
28273 if ((null == child))
28274 {
28275 throw new ArgumentNullException("child");
28276 }
28277 this.children.AddElement(child);
28278 child.ParentElement = this;
28279 }
28280
28281 public virtual void RemoveChild(ISchemaElement child)
28282 {
28283 if ((null == child))
28284 {
28285 throw new ArgumentNullException("child");
28286 }
28287 this.children.RemoveElement(child);
28288 child.ParentElement = null;
28289 }
28290
28291 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
28292 ISchemaElement ICreateChildren.CreateChild(string childName)
28293 {
28294 if (String.IsNullOrEmpty(childName))
28295 {
28296 throw new ArgumentNullException("childName");
28297 }
28298 ISchemaElement childValue = null;
28299 if (("Permission" == childName))
28300 {
28301 childValue = new Permission();
28302 }
28303 if (("PermissionEx" == childName))
28304 {
28305 childValue = new PermissionEx();
28306 }
28307 if (("MultiStringValue" == childName))
28308 {
28309 childValue = new MultiStringValue();
28310 }
28311 if ((null == childValue))
28312 {
28313 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
28314 }
28315 return childValue;
28316 }
28317
28318 /// <summary>
28319 /// Parses a TypeType from a string.
28320 /// </summary>
28321 public static TypeType ParseTypeType(string value)
28322 {
28323 TypeType parsedValue;
28324 RegistryValue.TryParseTypeType(value, out parsedValue);
28325 return parsedValue;
28326 }
28327
28328 /// <summary>
28329 /// Tries to parse a TypeType from a string.
28330 /// </summary>
28331 public static bool TryParseTypeType(string value, out TypeType parsedValue)
28332 {
28333 parsedValue = TypeType.NotSet;
28334 if (string.IsNullOrEmpty(value))
28335 {
28336 return false;
28337 }
28338 if (("string" == value))
28339 {
28340 parsedValue = TypeType.@string;
28341 }
28342 else
28343 {
28344 if (("integer" == value))
28345 {
28346 parsedValue = TypeType.integer;
28347 }
28348 else
28349 {
28350 if (("binary" == value))
28351 {
28352 parsedValue = TypeType.binary;
28353 }
28354 else
28355 {
28356 if (("expandable" == value))
28357 {
28358 parsedValue = TypeType.expandable;
28359 }
28360 else
28361 {
28362 if (("multiString" == value))
28363 {
28364 parsedValue = TypeType.multiString;
28365 }
28366 else
28367 {
28368 parsedValue = TypeType.IllegalValue;
28369 return false;
28370 }
28371 }
28372 }
28373 }
28374 }
28375 return true;
28376 }
28377
28378 /// <summary>
28379 /// Parses a ActionType from a string.
28380 /// </summary>
28381 public static ActionType ParseActionType(string value)
28382 {
28383 ActionType parsedValue;
28384 RegistryValue.TryParseActionType(value, out parsedValue);
28385 return parsedValue;
28386 }
28387
28388 /// <summary>
28389 /// Tries to parse a ActionType from a string.
28390 /// </summary>
28391 public static bool TryParseActionType(string value, out ActionType parsedValue)
28392 {
28393 parsedValue = ActionType.NotSet;
28394 if (string.IsNullOrEmpty(value))
28395 {
28396 return false;
28397 }
28398 if (("append" == value))
28399 {
28400 parsedValue = ActionType.append;
28401 }
28402 else
28403 {
28404 if (("prepend" == value))
28405 {
28406 parsedValue = ActionType.prepend;
28407 }
28408 else
28409 {
28410 if (("write" == value))
28411 {
28412 parsedValue = ActionType.write;
28413 }
28414 else
28415 {
28416 parsedValue = ActionType.IllegalValue;
28417 return false;
28418 }
28419 }
28420 }
28421 return true;
28422 }
28423
28424 /// <summary>
28425 /// Processes this element and all child elements into an XmlWriter.
28426 /// </summary>
28427 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
28428 public virtual void OutputXml(XmlWriter writer)
28429 {
28430 if ((null == writer))
28431 {
28432 throw new ArgumentNullException("writer");
28433 }
28434 writer.WriteStartElement("RegistryValue", "http://wixtoolset.org/schemas/v4/wxs");
28435 if (this.idFieldSet)
28436 {
28437 writer.WriteAttributeString("Id", this.idField);
28438 }
28439 if (this.rootFieldSet)
28440 {
28441 if ((this.rootField == RegistryRootType.HKMU))
28442 {
28443 writer.WriteAttributeString("Root", "HKMU");
28444 }
28445 if ((this.rootField == RegistryRootType.HKCR))
28446 {
28447 writer.WriteAttributeString("Root", "HKCR");
28448 }
28449 if ((this.rootField == RegistryRootType.HKCU))
28450 {
28451 writer.WriteAttributeString("Root", "HKCU");
28452 }
28453 if ((this.rootField == RegistryRootType.HKLM))
28454 {
28455 writer.WriteAttributeString("Root", "HKLM");
28456 }
28457 if ((this.rootField == RegistryRootType.HKU))
28458 {
28459 writer.WriteAttributeString("Root", "HKU");
28460 }
28461 }
28462 if (this.keyFieldSet)
28463 {
28464 writer.WriteAttributeString("Key", this.keyField);
28465 }
28466 if (this.nameFieldSet)
28467 {
28468 writer.WriteAttributeString("Name", this.nameField);
28469 }
28470 if (this.valueFieldSet)
28471 {
28472 writer.WriteAttributeString("Value", this.valueField);
28473 }
28474 if (this.typeFieldSet)
28475 {
28476 if ((this.typeField == TypeType.@string))
28477 {
28478 writer.WriteAttributeString("Type", "string");
28479 }
28480 if ((this.typeField == TypeType.integer))
28481 {
28482 writer.WriteAttributeString("Type", "integer");
28483 }
28484 if ((this.typeField == TypeType.binary))
28485 {
28486 writer.WriteAttributeString("Type", "binary");
28487 }
28488 if ((this.typeField == TypeType.expandable))
28489 {
28490 writer.WriteAttributeString("Type", "expandable");
28491 }
28492 if ((this.typeField == TypeType.multiString))
28493 {
28494 writer.WriteAttributeString("Type", "multiString");
28495 }
28496 }
28497 if (this.actionFieldSet)
28498 {
28499 if ((this.actionField == ActionType.append))
28500 {
28501 writer.WriteAttributeString("Action", "append");
28502 }
28503 if ((this.actionField == ActionType.prepend))
28504 {
28505 writer.WriteAttributeString("Action", "prepend");
28506 }
28507 if ((this.actionField == ActionType.write))
28508 {
28509 writer.WriteAttributeString("Action", "write");
28510 }
28511 }
28512 if (this.keyPathFieldSet)
28513 {
28514 if ((this.keyPathField == YesNoType.no))
28515 {
28516 writer.WriteAttributeString("KeyPath", "no");
28517 }
28518 if ((this.keyPathField == YesNoType.yes))
28519 {
28520 writer.WriteAttributeString("KeyPath", "yes");
28521 }
28522 }
28523 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
28524 {
28525 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
28526 childElement.OutputXml(writer);
28527 }
28528 writer.WriteEndElement();
28529 }
28530
28531 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
28532 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
28533 void ISetAttributes.SetAttribute(string name, string value)
28534 {
28535 if (String.IsNullOrEmpty(name))
28536 {
28537 throw new ArgumentNullException("name");
28538 }
28539 if (("Id" == name))
28540 {
28541 this.idField = value;
28542 this.idFieldSet = true;
28543 }
28544 if (("Root" == name))
28545 {
28546 this.rootField = Enums.ParseRegistryRootType(value);
28547 this.rootFieldSet = true;
28548 }
28549 if (("Key" == name))
28550 {
28551 this.keyField = value;
28552 this.keyFieldSet = true;
28553 }
28554 if (("Name" == name))
28555 {
28556 this.nameField = value;
28557 this.nameFieldSet = true;
28558 }
28559 if (("Value" == name))
28560 {
28561 this.valueField = value;
28562 this.valueFieldSet = true;
28563 }
28564 if (("Type" == name))
28565 {
28566 this.typeField = RegistryValue.ParseTypeType(value);
28567 this.typeFieldSet = true;
28568 }
28569 if (("Action" == name))
28570 {
28571 this.actionField = RegistryValue.ParseActionType(value);
28572 this.actionFieldSet = true;
28573 }
28574 if (("KeyPath" == name))
28575 {
28576 this.keyPathField = Enums.ParseYesNoType(value);
28577 this.keyPathFieldSet = true;
28578 }
28579 }
28580
28581 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
28582 public enum TypeType
28583 {
28584
28585 IllegalValue = int.MaxValue,
28586
28587 NotSet = -1,
28588
28589 /// <summary>
28590 /// The value is interpreted and stored as a string (REG_SZ).
28591 /// </summary>
28592 @string,
28593
28594 /// <summary>
28595 /// The value is interpreted and stored as an integer (REG_DWORD).
28596 /// </summary>
28597 integer,
28598
28599 /// <summary>
28600 /// The value is interpreted and stored as a hexadecimal value (REG_BINARY).
28601 /// </summary>
28602 binary,
28603
28604 /// <summary>
28605 /// The value is interpreted and stored as an expandable string (REG_EXPAND_SZ).
28606 /// </summary>
28607 expandable,
28608
28609 /// <summary>
28610 /// The value is interpreted and stored as a multiple strings (REG_MULTI_SZ).
28611 /// Please note that this value will only result in a multi-string value if there is more than one registry value
28612 /// or the Action attribute's value is 'append' or 'prepend'. Otherwise a string value will be created.
28613 /// </summary>
28614 multiString,
28615 }
28616
28617 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
28618 public enum ActionType
28619 {
28620
28621 IllegalValue = int.MaxValue,
28622
28623 NotSet = -1,
28624
28625 /// <summary>
28626 /// Appends the specified value(s) to a multiString registry value.
28627 /// </summary>
28628 append,
28629
28630 /// <summary>
28631 /// Prepends the specified value(s) to a multiString registry value.
28632 /// </summary>
28633 prepend,
28634
28635 /// <summary>
28636 /// Writes a registry value. This is the default value.
28637 /// </summary>
28638 write,
28639 }
28640 }
28641
28642 /// <summary>
28643 /// Used for removing registry keys and all child keys either during install or uninstall.
28644 /// </summary>
28645 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
28646 public class RemoveRegistryKey : ISchemaElement, ISetAttributes
28647 {
28648
28649 private string idField;
28650
28651 private bool idFieldSet;
28652
28653 private ActionType actionField;
28654
28655 private bool actionFieldSet;
28656
28657 private string keyField;
28658
28659 private bool keyFieldSet;
28660
28661 private RegistryRootType rootField;
28662
28663 private bool rootFieldSet;
28664
28665 private ISchemaElement parentElement;
28666
28667 /// <summary>
28668 /// Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be
28669 /// generated by hashing the parent Component identifier, Root, Key, and Name.
28670 /// </summary>
28671 public string Id
28672 {
28673 get
28674 {
28675 return this.idField;
28676 }
28677 set
28678 {
28679 this.idFieldSet = true;
28680 this.idField = value;
28681 }
28682 }
28683
28684 /// <summary>
28685 /// This is the action that will be taken for this registry value.
28686 /// </summary>
28687 public ActionType Action
28688 {
28689 get
28690 {
28691 return this.actionField;
28692 }
28693 set
28694 {
28695 this.actionFieldSet = true;
28696 this.actionField = value;
28697 }
28698 }
28699
28700 /// <summary>
28701 /// The localizable key for the registry value.
28702 /// </summary>
28703 public string Key
28704 {
28705 get
28706 {
28707 return this.keyField;
28708 }
28709 set
28710 {
28711 this.keyFieldSet = true;
28712 this.keyField = value;
28713 }
28714 }
28715
28716 /// <summary>
28717 /// The predefined root key for the registry value.
28718 /// </summary>
28719 public RegistryRootType Root
28720 {
28721 get
28722 {
28723 return this.rootField;
28724 }
28725 set
28726 {
28727 this.rootFieldSet = true;
28728 this.rootField = value;
28729 }
28730 }
28731
28732 public virtual ISchemaElement ParentElement
28733 {
28734 get
28735 {
28736 return this.parentElement;
28737 }
28738 set
28739 {
28740 this.parentElement = value;
28741 }
28742 }
28743
28744 /// <summary>
28745 /// Parses a ActionType from a string.
28746 /// </summary>
28747 public static ActionType ParseActionType(string value)
28748 {
28749 ActionType parsedValue;
28750 RemoveRegistryKey.TryParseActionType(value, out parsedValue);
28751 return parsedValue;
28752 }
28753
28754 /// <summary>
28755 /// Tries to parse a ActionType from a string.
28756 /// </summary>
28757 public static bool TryParseActionType(string value, out ActionType parsedValue)
28758 {
28759 parsedValue = ActionType.NotSet;
28760 if (string.IsNullOrEmpty(value))
28761 {
28762 return false;
28763 }
28764 if (("removeOnInstall" == value))
28765 {
28766 parsedValue = ActionType.removeOnInstall;
28767 }
28768 else
28769 {
28770 if (("removeOnUninstall" == value))
28771 {
28772 parsedValue = ActionType.removeOnUninstall;
28773 }
28774 else
28775 {
28776 parsedValue = ActionType.IllegalValue;
28777 return false;
28778 }
28779 }
28780 return true;
28781 }
28782
28783 /// <summary>
28784 /// Processes this element and all child elements into an XmlWriter.
28785 /// </summary>
28786 public virtual void OutputXml(XmlWriter writer)
28787 {
28788 if ((null == writer))
28789 {
28790 throw new ArgumentNullException("writer");
28791 }
28792 writer.WriteStartElement("RemoveRegistryKey", "http://wixtoolset.org/schemas/v4/wxs");
28793 if (this.idFieldSet)
28794 {
28795 writer.WriteAttributeString("Id", this.idField);
28796 }
28797 if (this.actionFieldSet)
28798 {
28799 if ((this.actionField == ActionType.removeOnInstall))
28800 {
28801 writer.WriteAttributeString("Action", "removeOnInstall");
28802 }
28803 if ((this.actionField == ActionType.removeOnUninstall))
28804 {
28805 writer.WriteAttributeString("Action", "removeOnUninstall");
28806 }
28807 }
28808 if (this.keyFieldSet)
28809 {
28810 writer.WriteAttributeString("Key", this.keyField);
28811 }
28812 if (this.rootFieldSet)
28813 {
28814 if ((this.rootField == RegistryRootType.HKMU))
28815 {
28816 writer.WriteAttributeString("Root", "HKMU");
28817 }
28818 if ((this.rootField == RegistryRootType.HKCR))
28819 {
28820 writer.WriteAttributeString("Root", "HKCR");
28821 }
28822 if ((this.rootField == RegistryRootType.HKCU))
28823 {
28824 writer.WriteAttributeString("Root", "HKCU");
28825 }
28826 if ((this.rootField == RegistryRootType.HKLM))
28827 {
28828 writer.WriteAttributeString("Root", "HKLM");
28829 }
28830 if ((this.rootField == RegistryRootType.HKU))
28831 {
28832 writer.WriteAttributeString("Root", "HKU");
28833 }
28834 }
28835 writer.WriteEndElement();
28836 }
28837
28838 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
28839 void ISetAttributes.SetAttribute(string name, string value)
28840 {
28841 if (String.IsNullOrEmpty(name))
28842 {
28843 throw new ArgumentNullException("name");
28844 }
28845 if (("Id" == name))
28846 {
28847 this.idField = value;
28848 this.idFieldSet = true;
28849 }
28850 if (("Action" == name))
28851 {
28852 this.actionField = RemoveRegistryKey.ParseActionType(value);
28853 this.actionFieldSet = true;
28854 }
28855 if (("Key" == name))
28856 {
28857 this.keyField = value;
28858 this.keyFieldSet = true;
28859 }
28860 if (("Root" == name))
28861 {
28862 this.rootField = Enums.ParseRegistryRootType(value);
28863 this.rootFieldSet = true;
28864 }
28865 }
28866
28867 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
28868 public enum ActionType
28869 {
28870
28871 IllegalValue = int.MaxValue,
28872
28873 NotSet = -1,
28874
28875 /// <summary>
28876 /// Removes a key with all its values and subkeys when the parent component is installed.
28877 /// </summary>
28878 removeOnInstall,
28879
28880 /// <summary>
28881 /// Removes a key with all its values and subkeys when the parent component is uninstalled.
28882 /// </summary>
28883 removeOnUninstall,
28884 }
28885 }
28886
28887 /// <summary>
28888 /// Used to remove a registry value during installation.
28889 /// There is no standard way to remove a single registry value during uninstall (but you can remove an entire key with RemoveRegistryKey).
28890 /// </summary>
28891 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
28892 public class RemoveRegistryValue : ISchemaElement, ISetAttributes
28893 {
28894
28895 private string idField;
28896
28897 private bool idFieldSet;
28898
28899 private string keyField;
28900
28901 private bool keyFieldSet;
28902
28903 private string nameField;
28904
28905 private bool nameFieldSet;
28906
28907 private RegistryRootType rootField;
28908
28909 private bool rootFieldSet;
28910
28911 private ISchemaElement parentElement;
28912
28913 /// <summary>
28914 /// Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be
28915 /// generated by hashing the parent Component identifier, Root, Key, and Name.
28916 /// </summary>
28917 public string Id
28918 {
28919 get
28920 {
28921 return this.idField;
28922 }
28923 set
28924 {
28925 this.idFieldSet = true;
28926 this.idField = value;
28927 }
28928 }
28929
28930 /// <summary>
28931 /// The localizable key for the registry value.
28932 /// If the parent element is a RegistryKey, this value may be omitted to use the
28933 /// path of the parent, or if its specified it will be appended to the path of the parent.
28934 /// </summary>
28935 public string Key
28936 {
28937 get
28938 {
28939 return this.keyField;
28940 }
28941 set
28942 {
28943 this.keyFieldSet = true;
28944 this.keyField = value;
28945 }
28946 }
28947
28948 /// <summary>
28949 /// The localizable registry value name. If this attribute is not provided the default value for the registry key will
28950 /// be set instead. The Windows Installer allows several special values to be set for this attribute. You should not
28951 /// use them in WiX. Instead use appropriate values in the Action attribute to get the desired behavior.
28952 /// </summary>
28953 public string Name
28954 {
28955 get
28956 {
28957 return this.nameField;
28958 }
28959 set
28960 {
28961 this.nameFieldSet = true;
28962 this.nameField = value;
28963 }
28964 }
28965
28966 /// <summary>
28967 /// The predefined root key for the registry value.
28968 /// </summary>
28969 public RegistryRootType Root
28970 {
28971 get
28972 {
28973 return this.rootField;
28974 }
28975 set
28976 {
28977 this.rootFieldSet = true;
28978 this.rootField = value;
28979 }
28980 }
28981
28982 public virtual ISchemaElement ParentElement
28983 {
28984 get
28985 {
28986 return this.parentElement;
28987 }
28988 set
28989 {
28990 this.parentElement = value;
28991 }
28992 }
28993
28994 /// <summary>
28995 /// Processes this element and all child elements into an XmlWriter.
28996 /// </summary>
28997 public virtual void OutputXml(XmlWriter writer)
28998 {
28999 if ((null == writer))
29000 {
29001 throw new ArgumentNullException("writer");
29002 }
29003 writer.WriteStartElement("RemoveRegistryValue", "http://wixtoolset.org/schemas/v4/wxs");
29004 if (this.idFieldSet)
29005 {
29006 writer.WriteAttributeString("Id", this.idField);
29007 }
29008 if (this.keyFieldSet)
29009 {
29010 writer.WriteAttributeString("Key", this.keyField);
29011 }
29012 if (this.nameFieldSet)
29013 {
29014 writer.WriteAttributeString("Name", this.nameField);
29015 }
29016 if (this.rootFieldSet)
29017 {
29018 if ((this.rootField == RegistryRootType.HKMU))
29019 {
29020 writer.WriteAttributeString("Root", "HKMU");
29021 }
29022 if ((this.rootField == RegistryRootType.HKCR))
29023 {
29024 writer.WriteAttributeString("Root", "HKCR");
29025 }
29026 if ((this.rootField == RegistryRootType.HKCU))
29027 {
29028 writer.WriteAttributeString("Root", "HKCU");
29029 }
29030 if ((this.rootField == RegistryRootType.HKLM))
29031 {
29032 writer.WriteAttributeString("Root", "HKLM");
29033 }
29034 if ((this.rootField == RegistryRootType.HKU))
29035 {
29036 writer.WriteAttributeString("Root", "HKU");
29037 }
29038 }
29039 writer.WriteEndElement();
29040 }
29041
29042 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
29043 void ISetAttributes.SetAttribute(string name, string value)
29044 {
29045 if (String.IsNullOrEmpty(name))
29046 {
29047 throw new ArgumentNullException("name");
29048 }
29049 if (("Id" == name))
29050 {
29051 this.idField = value;
29052 this.idFieldSet = true;
29053 }
29054 if (("Key" == name))
29055 {
29056 this.keyField = value;
29057 this.keyFieldSet = true;
29058 }
29059 if (("Name" == name))
29060 {
29061 this.nameField = value;
29062 this.nameFieldSet = true;
29063 }
29064 if (("Root" == name))
29065 {
29066 this.rootField = Enums.ParseRegistryRootType(value);
29067 this.rootFieldSet = true;
29068 }
29069 }
29070 }
29071
29072 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
29073 public class Registry : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
29074 {
29075
29076 private ElementCollection children;
29077
29078 private string idField;
29079
29080 private bool idFieldSet;
29081
29082 private ActionType actionField;
29083
29084 private bool actionFieldSet;
29085
29086 private string keyField;
29087
29088 private bool keyFieldSet;
29089
29090 private YesNoType keyPathField;
29091
29092 private bool keyPathFieldSet;
29093
29094 private string nameField;
29095
29096 private bool nameFieldSet;
29097
29098 private RegistryRootType rootField;
29099
29100 private bool rootFieldSet;
29101
29102 private TypeType typeField;
29103
29104 private bool typeFieldSet;
29105
29106 private string valueField;
29107
29108 private bool valueFieldSet;
29109
29110 private ISchemaElement parentElement;
29111
29112 public Registry()
29113 {
29114 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
29115 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Permission)));
29116 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx)));
29117 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegistryValue)));
29118 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Registry)));
29119 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
29120 this.children = childCollection0;
29121 }
29122
29123 public virtual IEnumerable Children
29124 {
29125 get
29126 {
29127 return this.children;
29128 }
29129 }
29130
29131 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
29132 public virtual IEnumerable this[System.Type childType]
29133 {
29134 get
29135 {
29136 return this.children.Filter(childType);
29137 }
29138 }
29139
29140 /// <summary>
29141 /// Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be
29142 /// generated by hashing the parent Component identifier, Root, Key, and Name.
29143 /// </summary>
29144 public string Id
29145 {
29146 get
29147 {
29148 return this.idField;
29149 }
29150 set
29151 {
29152 this.idFieldSet = true;
29153 this.idField = value;
29154 }
29155 }
29156
29157 /// <summary>
29158 /// This is the action that will be taken for this registry key.
29159 /// </summary>
29160 public ActionType Action
29161 {
29162 get
29163 {
29164 return this.actionField;
29165 }
29166 set
29167 {
29168 this.actionFieldSet = true;
29169 this.actionField = value;
29170 }
29171 }
29172
29173 /// <summary>
29174 /// The localizable key for the registry value.
29175 /// </summary>
29176 public string Key
29177 {
29178 get
29179 {
29180 return this.keyField;
29181 }
29182 set
29183 {
29184 this.keyFieldSet = true;
29185 this.keyField = value;
29186 }
29187 }
29188
29189 /// <summary>
29190 /// Set this attribute to 'yes' to make this registry key the KeyPath of the parent component. Only one resource (registry,
29191 /// file, etc) can be the KeyPath of a component.
29192 /// </summary>
29193 public YesNoType KeyPath
29194 {
29195 get
29196 {
29197 return this.keyPathField;
29198 }
29199 set
29200 {
29201 this.keyPathFieldSet = true;
29202 this.keyPathField = value;
29203 }
29204 }
29205
29206 /// <summary>
29207 /// The localizable registry value name. If this attribute is not provided the default value for the registry key will
29208 /// be set instead. The Windows Installer allows several special values to be set for this attribute. You should not
29209 /// use them in WiX. Instead use appropriate values in the Action attribute to get the desired behavior.
29210 /// </summary>
29211 public string Name
29212 {
29213 get
29214 {
29215 return this.nameField;
29216 }
29217 set
29218 {
29219 this.nameFieldSet = true;
29220 this.nameField = value;
29221 }
29222 }
29223
29224 /// <summary>
29225 /// The predefined root key for the registry value.
29226 /// </summary>
29227 public RegistryRootType Root
29228 {
29229 get
29230 {
29231 return this.rootField;
29232 }
29233 set
29234 {
29235 this.rootFieldSet = true;
29236 this.rootField = value;
29237 }
29238 }
29239
29240 /// <summary>
29241 /// Set this attribute to the type of the desired registry key. This attribute must be specified whenever the Value
29242 /// attribute or a child RegistryValue element is specified. This attribute
29243 /// should only be set when the value of the Action attribute does not include the word 'remove'.
29244 /// </summary>
29245 public TypeType Type
29246 {
29247 get
29248 {
29249 return this.typeField;
29250 }
29251 set
29252 {
29253 this.typeFieldSet = true;
29254 this.typeField = value;
29255 }
29256 }
29257
29258 /// <summary>
29259 /// Set this attribute to the localizable registry value. This value is formatted. The Windows Installer allows
29260 /// several special values to be set for this attribute. You should not use them in WiX. Instead use appropriate
29261 /// values in the Type attribute to get the desired behavior. This attribute cannot be specified if the Action
29262 /// attribute's value contains the word 'remove'.
29263 /// </summary>
29264 public string Value
29265 {
29266 get
29267 {
29268 return this.valueField;
29269 }
29270 set
29271 {
29272 this.valueFieldSet = true;
29273 this.valueField = value;
29274 }
29275 }
29276
29277 public virtual ISchemaElement ParentElement
29278 {
29279 get
29280 {
29281 return this.parentElement;
29282 }
29283 set
29284 {
29285 this.parentElement = value;
29286 }
29287 }
29288
29289 public virtual void AddChild(ISchemaElement child)
29290 {
29291 if ((null == child))
29292 {
29293 throw new ArgumentNullException("child");
29294 }
29295 this.children.AddElement(child);
29296 child.ParentElement = this;
29297 }
29298
29299 public virtual void RemoveChild(ISchemaElement child)
29300 {
29301 if ((null == child))
29302 {
29303 throw new ArgumentNullException("child");
29304 }
29305 this.children.RemoveElement(child);
29306 child.ParentElement = null;
29307 }
29308
29309 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
29310 ISchemaElement ICreateChildren.CreateChild(string childName)
29311 {
29312 if (String.IsNullOrEmpty(childName))
29313 {
29314 throw new ArgumentNullException("childName");
29315 }
29316 ISchemaElement childValue = null;
29317 if (("Permission" == childName))
29318 {
29319 childValue = new Permission();
29320 }
29321 if (("PermissionEx" == childName))
29322 {
29323 childValue = new PermissionEx();
29324 }
29325 if (("RegistryValue" == childName))
29326 {
29327 childValue = new RegistryValue();
29328 }
29329 if (("Registry" == childName))
29330 {
29331 childValue = new Registry();
29332 }
29333 if ((null == childValue))
29334 {
29335 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
29336 }
29337 return childValue;
29338 }
29339
29340 /// <summary>
29341 /// Parses a ActionType from a string.
29342 /// </summary>
29343 public static ActionType ParseActionType(string value)
29344 {
29345 ActionType parsedValue;
29346 Registry.TryParseActionType(value, out parsedValue);
29347 return parsedValue;
29348 }
29349
29350 /// <summary>
29351 /// Tries to parse a ActionType from a string.
29352 /// </summary>
29353 public static bool TryParseActionType(string value, out ActionType parsedValue)
29354 {
29355 parsedValue = ActionType.NotSet;
29356 if (string.IsNullOrEmpty(value))
29357 {
29358 return false;
29359 }
29360 if (("append" == value))
29361 {
29362 parsedValue = ActionType.append;
29363 }
29364 else
29365 {
29366 if (("createKey" == value))
29367 {
29368 parsedValue = ActionType.createKey;
29369 }
29370 else
29371 {
29372 if (("createKeyAndRemoveKeyOnUninstall" == value))
29373 {
29374 parsedValue = ActionType.createKeyAndRemoveKeyOnUninstall;
29375 }
29376 else
29377 {
29378 if (("prepend" == value))
29379 {
29380 parsedValue = ActionType.prepend;
29381 }
29382 else
29383 {
29384 if (("remove" == value))
29385 {
29386 parsedValue = ActionType.remove;
29387 }
29388 else
29389 {
29390 if (("removeKeyOnInstall" == value))
29391 {
29392 parsedValue = ActionType.removeKeyOnInstall;
29393 }
29394 else
29395 {
29396 if (("removeKeyOnUninstall" == value))
29397 {
29398 parsedValue = ActionType.removeKeyOnUninstall;
29399 }
29400 else
29401 {
29402 if (("write" == value))
29403 {
29404 parsedValue = ActionType.write;
29405 }
29406 else
29407 {
29408 parsedValue = ActionType.IllegalValue;
29409 return false;
29410 }
29411 }
29412 }
29413 }
29414 }
29415 }
29416 }
29417 }
29418 return true;
29419 }
29420
29421 /// <summary>
29422 /// Parses a TypeType from a string.
29423 /// </summary>
29424 public static TypeType ParseTypeType(string value)
29425 {
29426 TypeType parsedValue;
29427 Registry.TryParseTypeType(value, out parsedValue);
29428 return parsedValue;
29429 }
29430
29431 /// <summary>
29432 /// Tries to parse a TypeType from a string.
29433 /// </summary>
29434 public static bool TryParseTypeType(string value, out TypeType parsedValue)
29435 {
29436 parsedValue = TypeType.NotSet;
29437 if (string.IsNullOrEmpty(value))
29438 {
29439 return false;
29440 }
29441 if (("string" == value))
29442 {
29443 parsedValue = TypeType.@string;
29444 }
29445 else
29446 {
29447 if (("integer" == value))
29448 {
29449 parsedValue = TypeType.integer;
29450 }
29451 else
29452 {
29453 if (("binary" == value))
29454 {
29455 parsedValue = TypeType.binary;
29456 }
29457 else
29458 {
29459 if (("expandable" == value))
29460 {
29461 parsedValue = TypeType.expandable;
29462 }
29463 else
29464 {
29465 if (("multiString" == value))
29466 {
29467 parsedValue = TypeType.multiString;
29468 }
29469 else
29470 {
29471 parsedValue = TypeType.IllegalValue;
29472 return false;
29473 }
29474 }
29475 }
29476 }
29477 }
29478 return true;
29479 }
29480
29481 /// <summary>
29482 /// Processes this element and all child elements into an XmlWriter.
29483 /// </summary>
29484 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
29485 public virtual void OutputXml(XmlWriter writer)
29486 {
29487 if ((null == writer))
29488 {
29489 throw new ArgumentNullException("writer");
29490 }
29491 writer.WriteStartElement("Registry", "http://wixtoolset.org/schemas/v4/wxs");
29492 if (this.idFieldSet)
29493 {
29494 writer.WriteAttributeString("Id", this.idField);
29495 }
29496 if (this.actionFieldSet)
29497 {
29498 if ((this.actionField == ActionType.append))
29499 {
29500 writer.WriteAttributeString("Action", "append");
29501 }
29502 if ((this.actionField == ActionType.createKey))
29503 {
29504 writer.WriteAttributeString("Action", "createKey");
29505 }
29506 if ((this.actionField == ActionType.createKeyAndRemoveKeyOnUninstall))
29507 {
29508 writer.WriteAttributeString("Action", "createKeyAndRemoveKeyOnUninstall");
29509 }
29510 if ((this.actionField == ActionType.prepend))
29511 {
29512 writer.WriteAttributeString("Action", "prepend");
29513 }
29514 if ((this.actionField == ActionType.remove))
29515 {
29516 writer.WriteAttributeString("Action", "remove");
29517 }
29518 if ((this.actionField == ActionType.removeKeyOnInstall))
29519 {
29520 writer.WriteAttributeString("Action", "removeKeyOnInstall");
29521 }
29522 if ((this.actionField == ActionType.removeKeyOnUninstall))
29523 {
29524 writer.WriteAttributeString("Action", "removeKeyOnUninstall");
29525 }
29526 if ((this.actionField == ActionType.write))
29527 {
29528 writer.WriteAttributeString("Action", "write");
29529 }
29530 }
29531 if (this.keyFieldSet)
29532 {
29533 writer.WriteAttributeString("Key", this.keyField);
29534 }
29535 if (this.keyPathFieldSet)
29536 {
29537 if ((this.keyPathField == YesNoType.no))
29538 {
29539 writer.WriteAttributeString("KeyPath", "no");
29540 }
29541 if ((this.keyPathField == YesNoType.yes))
29542 {
29543 writer.WriteAttributeString("KeyPath", "yes");
29544 }
29545 }
29546 if (this.nameFieldSet)
29547 {
29548 writer.WriteAttributeString("Name", this.nameField);
29549 }
29550 if (this.rootFieldSet)
29551 {
29552 if ((this.rootField == RegistryRootType.HKMU))
29553 {
29554 writer.WriteAttributeString("Root", "HKMU");
29555 }
29556 if ((this.rootField == RegistryRootType.HKCR))
29557 {
29558 writer.WriteAttributeString("Root", "HKCR");
29559 }
29560 if ((this.rootField == RegistryRootType.HKCU))
29561 {
29562 writer.WriteAttributeString("Root", "HKCU");
29563 }
29564 if ((this.rootField == RegistryRootType.HKLM))
29565 {
29566 writer.WriteAttributeString("Root", "HKLM");
29567 }
29568 if ((this.rootField == RegistryRootType.HKU))
29569 {
29570 writer.WriteAttributeString("Root", "HKU");
29571 }
29572 }
29573 if (this.typeFieldSet)
29574 {
29575 if ((this.typeField == TypeType.@string))
29576 {
29577 writer.WriteAttributeString("Type", "string");
29578 }
29579 if ((this.typeField == TypeType.integer))
29580 {
29581 writer.WriteAttributeString("Type", "integer");
29582 }
29583 if ((this.typeField == TypeType.binary))
29584 {
29585 writer.WriteAttributeString("Type", "binary");
29586 }
29587 if ((this.typeField == TypeType.expandable))
29588 {
29589 writer.WriteAttributeString("Type", "expandable");
29590 }
29591 if ((this.typeField == TypeType.multiString))
29592 {
29593 writer.WriteAttributeString("Type", "multiString");
29594 }
29595 }
29596 if (this.valueFieldSet)
29597 {
29598 writer.WriteAttributeString("Value", this.valueField);
29599 }
29600 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
29601 {
29602 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
29603 childElement.OutputXml(writer);
29604 }
29605 writer.WriteEndElement();
29606 }
29607
29608 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
29609 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
29610 void ISetAttributes.SetAttribute(string name, string value)
29611 {
29612 if (String.IsNullOrEmpty(name))
29613 {
29614 throw new ArgumentNullException("name");
29615 }
29616 if (("Id" == name))
29617 {
29618 this.idField = value;
29619 this.idFieldSet = true;
29620 }
29621 if (("Action" == name))
29622 {
29623 this.actionField = Registry.ParseActionType(value);
29624 this.actionFieldSet = true;
29625 }
29626 if (("Key" == name))
29627 {
29628 this.keyField = value;
29629 this.keyFieldSet = true;
29630 }
29631 if (("KeyPath" == name))
29632 {
29633 this.keyPathField = Enums.ParseYesNoType(value);
29634 this.keyPathFieldSet = true;
29635 }
29636 if (("Name" == name))
29637 {
29638 this.nameField = value;
29639 this.nameFieldSet = true;
29640 }
29641 if (("Root" == name))
29642 {
29643 this.rootField = Enums.ParseRegistryRootType(value);
29644 this.rootFieldSet = true;
29645 }
29646 if (("Type" == name))
29647 {
29648 this.typeField = Registry.ParseTypeType(value);
29649 this.typeFieldSet = true;
29650 }
29651 if (("Value" == name))
29652 {
29653 this.valueField = value;
29654 this.valueFieldSet = true;
29655 }
29656 }
29657
29658 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
29659 public enum ActionType
29660 {
29661
29662 IllegalValue = int.MaxValue,
29663
29664 NotSet = -1,
29665
29666 /// <summary>
29667 /// Appends the specified value(s) to a multiString registry key.
29668 /// </summary>
29669 append,
29670
29671 /// <summary>
29672 /// Creates the key, if absent, when the parent component is installed.
29673 /// </summary>
29674 createKey,
29675
29676 /// <summary>
29677 /// Creates the key, if absent, when the parent component is installed then remove the key with all its values and subkeys when the parent component is uninstalled.
29678 /// </summary>
29679 createKeyAndRemoveKeyOnUninstall,
29680
29681 /// <summary>
29682 /// Prepends the specified value(s) to a multiString registry key.
29683 /// </summary>
29684 prepend,
29685
29686 /// <summary>
29687 /// Removes a registry name when the parent component is installed.
29688 /// </summary>
29689 remove,
29690
29691 /// <summary>
29692 /// Removes a key with all its values and subkeys when the parent component is installed.
29693 /// </summary>
29694 removeKeyOnInstall,
29695
29696 /// <summary>
29697 /// Removes a key with all its values and subkeys when the parent component is uninstalled.
29698 /// </summary>
29699 removeKeyOnUninstall,
29700
29701 /// <summary>
29702 /// Writes a registry value.
29703 /// </summary>
29704 write,
29705 }
29706
29707 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
29708 public enum TypeType
29709 {
29710
29711 IllegalValue = int.MaxValue,
29712
29713 NotSet = -1,
29714
29715 /// <summary>
29716 /// The value is interpreted and stored as a string (REG_SZ).
29717 /// </summary>
29718 @string,
29719
29720 /// <summary>
29721 /// The value is interpreted and stored as an integer (REG_DWORD).
29722 /// </summary>
29723 integer,
29724
29725 /// <summary>
29726 /// The value is interpreted and stored as a hexadecimal value (REG_BINARY).
29727 /// </summary>
29728 binary,
29729
29730 /// <summary>
29731 /// The value is interpreted and stored as an expandable string (REG_EXPAND_SZ).
29732 /// </summary>
29733 expandable,
29734
29735 /// <summary>
29736 /// The value is interpreted and stored as a multiple strings (REG_MULTI_SZ).
29737 /// Please note that this value will only result in a multi-string value if there is more than one registry value
29738 /// or the Action attribute's value is 'append' or 'prepend'. Otherwise a string value will be created.
29739 /// </summary>
29740 multiString,
29741 }
29742 }
29743
29744 /// <summary>
29745 /// Remove a file(s) if the parent component is selected for installation or removal. Multiple files can be removed
29746 /// by specifying a wildcard for the value of the Name attribute. By default, the source
29747 /// directory of the file is the directory of the parent component. This can be overridden by specifying the
29748 /// Directory attribute with a value corresponding to the Id of the source directory, or by specifying the Property
29749 /// attribute with a value corresponding to a property that will have a value that resolves to the full path
29750 /// to the source directory.
29751 /// </summary>
29752 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
29753 public class RemoveFile : ISchemaElement, ISetAttributes
29754 {
29755
29756 private string idField;
29757
29758 private bool idFieldSet;
29759
29760 private string directoryField;
29761
29762 private bool directoryFieldSet;
29763
29764 private string propertyField;
29765
29766 private bool propertyFieldSet;
29767
29768 private string nameField;
29769
29770 private bool nameFieldSet;
29771
29772 private string shortNameField;
29773
29774 private bool shortNameFieldSet;
29775
29776 private InstallUninstallType onField;
29777
29778 private bool onFieldSet;
29779
29780 private ISchemaElement parentElement;
29781
29782 /// <summary>
29783 /// Primary key used to identify this particular entry.
29784 /// </summary>
29785 public string Id
29786 {
29787 get
29788 {
29789 return this.idField;
29790 }
29791 set
29792 {
29793 this.idFieldSet = true;
29794 this.idField = value;
29795 }
29796 }
29797
29798 /// <summary>
29799 /// Overrides the directory of the parent component with a specific Directory. This Directory must exist in the
29800 /// installer database at creation time. This attribute cannot be specified in conjunction with the Property attribute.
29801 /// </summary>
29802 public string Directory
29803 {
29804 get
29805 {
29806 return this.directoryField;
29807 }
29808 set
29809 {
29810 this.directoryFieldSet = true;
29811 this.directoryField = value;
29812 }
29813 }
29814
29815 /// <summary>
29816 /// Overrides the directory of the parent component with the value of the specified property. The property
29817 /// should have a value that resolves to the full path of the source directory. The property does not have
29818 /// to exist in the installer database at creation time; it could be created at installation time by a custom
29819 /// action, on the command line, etc. This attribute cannot be specified in conjunction with the Directory attribute.
29820 /// </summary>
29821 public string Property
29822 {
29823 get
29824 {
29825 return this.propertyField;
29826 }
29827 set
29828 {
29829 this.propertyFieldSet = true;
29830 this.propertyField = value;
29831 }
29832 }
29833
29834 /// <summary>
29835 /// This value should be set to the localizable name of the file(s) to be removed. All of the files that
29836 /// match the wild card will be removed from the specified directory. The value is a filename that may also
29837 /// contain the wild card characters "?" for any single character or "*" for zero or more occurrences of any character.
29838 /// In prior versions of the WiX toolset, this attribute specified the short file name.
29839 /// This attribute's value may now be either a short or long file name.
29840 /// If a short file name is specified, the ShortName attribute may not be specified.
29841 /// Also, if this value is a long file name, the ShortName attribute may be omitted to
29842 /// allow WiX to attempt to generate a unique short file name.
29843 /// However, if you wish to manually specify the short file name, then the ShortName attribute may be specified.
29844 /// </summary>
29845 public string Name
29846 {
29847 get
29848 {
29849 return this.nameField;
29850 }
29851 set
29852 {
29853 this.nameFieldSet = true;
29854 this.nameField = value;
29855 }
29856 }
29857
29858 /// <summary>
29859 /// The short file name of the file in 8.3 format.
29860 /// This attribute should only be set if you want to manually specify the short file name.
29861 /// </summary>
29862 public string ShortName
29863 {
29864 get
29865 {
29866 return this.shortNameField;
29867 }
29868 set
29869 {
29870 this.shortNameFieldSet = true;
29871 this.shortNameField = value;
29872 }
29873 }
29874
29875 /// <summary>
29876 /// This value determines the time at which the file(s) may be removed. For 'install', the file will
29877 /// be removed only when the parent component is being installed (msiInstallStateLocal or
29878 /// msiInstallStateSource); for 'uninstall', the file will be removed only when the parent component
29879 /// is being removed (msiInstallStateAbsent); for 'both', the file will be removed in both cases.
29880 /// </summary>
29881 public InstallUninstallType On
29882 {
29883 get
29884 {
29885 return this.onField;
29886 }
29887 set
29888 {
29889 this.onFieldSet = true;
29890 this.onField = value;
29891 }
29892 }
29893
29894 public virtual ISchemaElement ParentElement
29895 {
29896 get
29897 {
29898 return this.parentElement;
29899 }
29900 set
29901 {
29902 this.parentElement = value;
29903 }
29904 }
29905
29906 /// <summary>
29907 /// Processes this element and all child elements into an XmlWriter.
29908 /// </summary>
29909 public virtual void OutputXml(XmlWriter writer)
29910 {
29911 if ((null == writer))
29912 {
29913 throw new ArgumentNullException("writer");
29914 }
29915 writer.WriteStartElement("RemoveFile", "http://wixtoolset.org/schemas/v4/wxs");
29916 if (this.idFieldSet)
29917 {
29918 writer.WriteAttributeString("Id", this.idField);
29919 }
29920 if (this.directoryFieldSet)
29921 {
29922 writer.WriteAttributeString("Directory", this.directoryField);
29923 }
29924 if (this.propertyFieldSet)
29925 {
29926 writer.WriteAttributeString("Property", this.propertyField);
29927 }
29928 if (this.nameFieldSet)
29929 {
29930 writer.WriteAttributeString("Name", this.nameField);
29931 }
29932 if (this.shortNameFieldSet)
29933 {
29934 writer.WriteAttributeString("ShortName", this.shortNameField);
29935 }
29936 if (this.onFieldSet)
29937 {
29938 if ((this.onField == InstallUninstallType.install))
29939 {
29940 writer.WriteAttributeString("On", "install");
29941 }
29942 if ((this.onField == InstallUninstallType.uninstall))
29943 {
29944 writer.WriteAttributeString("On", "uninstall");
29945 }
29946 if ((this.onField == InstallUninstallType.both))
29947 {
29948 writer.WriteAttributeString("On", "both");
29949 }
29950 }
29951 writer.WriteEndElement();
29952 }
29953
29954 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
29955 void ISetAttributes.SetAttribute(string name, string value)
29956 {
29957 if (String.IsNullOrEmpty(name))
29958 {
29959 throw new ArgumentNullException("name");
29960 }
29961 if (("Id" == name))
29962 {
29963 this.idField = value;
29964 this.idFieldSet = true;
29965 }
29966 if (("Directory" == name))
29967 {
29968 this.directoryField = value;
29969 this.directoryFieldSet = true;
29970 }
29971 if (("Property" == name))
29972 {
29973 this.propertyField = value;
29974 this.propertyFieldSet = true;
29975 }
29976 if (("Name" == name))
29977 {
29978 this.nameField = value;
29979 this.nameFieldSet = true;
29980 }
29981 if (("ShortName" == name))
29982 {
29983 this.shortNameField = value;
29984 this.shortNameFieldSet = true;
29985 }
29986 if (("On" == name))
29987 {
29988 this.onField = Enums.ParseInstallUninstallType(value);
29989 this.onFieldSet = true;
29990 }
29991 }
29992 }
29993
29994 /// <summary>
29995 /// Remove an empty folder if the parent component is selected for installation or removal. By default, the folder
29996 /// is the directory of the parent component. This can be overridden by specifying the Directory attribute
29997 /// with a value corresponding to the Id of the directory, or by specifying the Property attribute with a value
29998 /// corresponding to a property that will have a value that resolves to the full path of the folder.
29999 /// </summary>
30000 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
30001 public class RemoveFolder : ISchemaElement, ISetAttributes
30002 {
30003
30004 private string idField;
30005
30006 private bool idFieldSet;
30007
30008 private string directoryField;
30009
30010 private bool directoryFieldSet;
30011
30012 private string propertyField;
30013
30014 private bool propertyFieldSet;
30015
30016 private InstallUninstallType onField;
30017
30018 private bool onFieldSet;
30019
30020 private ISchemaElement parentElement;
30021
30022 /// <summary>
30023 /// Primary key used to identify this particular entry.
30024 /// </summary>
30025 public string Id
30026 {
30027 get
30028 {
30029 return this.idField;
30030 }
30031 set
30032 {
30033 this.idFieldSet = true;
30034 this.idField = value;
30035 }
30036 }
30037
30038 /// <summary>
30039 /// Overrides the directory of the parent component with a specific Directory. This Directory must exist in the
30040 /// installer database at creation time. This attribute cannot be specified in conjunction with the Property attribute.
30041 /// </summary>
30042 public string Directory
30043 {
30044 get
30045 {
30046 return this.directoryField;
30047 }
30048 set
30049 {
30050 this.directoryFieldSet = true;
30051 this.directoryField = value;
30052 }
30053 }
30054
30055 /// <summary>
30056 /// Overrides the directory of the parent component with the value of the specified property. The property
30057 /// should have a value that resolves to the full path of the source directory. The property does not have
30058 /// to exist in the installer database at creation time; it could be created at installation time by a custom
30059 /// action, on the command line, etc. This attribute cannot be specified in conjunction with the Directory attribute.
30060 /// </summary>
30061 public string Property
30062 {
30063 get
30064 {
30065 return this.propertyField;
30066 }
30067 set
30068 {
30069 this.propertyFieldSet = true;
30070 this.propertyField = value;
30071 }
30072 }
30073
30074 /// <summary>
30075 /// This value determines the time at which the folder may be removed, based on the install/uninstall of the parent component.
30076 /// For 'install', the folder will be removed only when the parent component is being installed (msiInstallStateLocal or
30077 /// msiInstallStateSource); for 'uninstall', the folder will be removed only when the parent component
30078 /// is being removed (msiInstallStateAbsent); for 'both', the folder will be removed in both cases.
30079 /// </summary>
30080 public InstallUninstallType On
30081 {
30082 get
30083 {
30084 return this.onField;
30085 }
30086 set
30087 {
30088 this.onFieldSet = true;
30089 this.onField = value;
30090 }
30091 }
30092
30093 public virtual ISchemaElement ParentElement
30094 {
30095 get
30096 {
30097 return this.parentElement;
30098 }
30099 set
30100 {
30101 this.parentElement = value;
30102 }
30103 }
30104
30105 /// <summary>
30106 /// Processes this element and all child elements into an XmlWriter.
30107 /// </summary>
30108 public virtual void OutputXml(XmlWriter writer)
30109 {
30110 if ((null == writer))
30111 {
30112 throw new ArgumentNullException("writer");
30113 }
30114 writer.WriteStartElement("RemoveFolder", "http://wixtoolset.org/schemas/v4/wxs");
30115 if (this.idFieldSet)
30116 {
30117 writer.WriteAttributeString("Id", this.idField);
30118 }
30119 if (this.directoryFieldSet)
30120 {
30121 writer.WriteAttributeString("Directory", this.directoryField);
30122 }
30123 if (this.propertyFieldSet)
30124 {
30125 writer.WriteAttributeString("Property", this.propertyField);
30126 }
30127 if (this.onFieldSet)
30128 {
30129 if ((this.onField == InstallUninstallType.install))
30130 {
30131 writer.WriteAttributeString("On", "install");
30132 }
30133 if ((this.onField == InstallUninstallType.uninstall))
30134 {
30135 writer.WriteAttributeString("On", "uninstall");
30136 }
30137 if ((this.onField == InstallUninstallType.both))
30138 {
30139 writer.WriteAttributeString("On", "both");
30140 }
30141 }
30142 writer.WriteEndElement();
30143 }
30144
30145 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
30146 void ISetAttributes.SetAttribute(string name, string value)
30147 {
30148 if (String.IsNullOrEmpty(name))
30149 {
30150 throw new ArgumentNullException("name");
30151 }
30152 if (("Id" == name))
30153 {
30154 this.idField = value;
30155 this.idFieldSet = true;
30156 }
30157 if (("Directory" == name))
30158 {
30159 this.directoryField = value;
30160 this.directoryFieldSet = true;
30161 }
30162 if (("Property" == name))
30163 {
30164 this.propertyField = value;
30165 this.propertyFieldSet = true;
30166 }
30167 if (("On" == name))
30168 {
30169 this.onField = Enums.ParseInstallUninstallType(value);
30170 this.onFieldSet = true;
30171 }
30172 }
30173 }
30174
30175 /// <summary>
30176 /// Create folder as part of parent Component.
30177 /// </summary>
30178 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
30179 public class CreateFolder : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
30180 {
30181
30182 private ElementCollection children;
30183
30184 private string directoryField;
30185
30186 private bool directoryFieldSet;
30187
30188 private ISchemaElement parentElement;
30189
30190 public CreateFolder()
30191 {
30192 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
30193 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Shortcut)));
30194 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Permission)));
30195 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx)));
30196 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
30197 this.children = childCollection0;
30198 }
30199
30200 public virtual IEnumerable Children
30201 {
30202 get
30203 {
30204 return this.children;
30205 }
30206 }
30207
30208 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
30209 public virtual IEnumerable this[System.Type childType]
30210 {
30211 get
30212 {
30213 return this.children.Filter(childType);
30214 }
30215 }
30216
30217 /// <summary>
30218 /// Identifier of Directory to create. Defaults to Directory of parent Component.
30219 /// </summary>
30220 public string Directory
30221 {
30222 get
30223 {
30224 return this.directoryField;
30225 }
30226 set
30227 {
30228 this.directoryFieldSet = true;
30229 this.directoryField = value;
30230 }
30231 }
30232
30233 public virtual ISchemaElement ParentElement
30234 {
30235 get
30236 {
30237 return this.parentElement;
30238 }
30239 set
30240 {
30241 this.parentElement = value;
30242 }
30243 }
30244
30245 public virtual void AddChild(ISchemaElement child)
30246 {
30247 if ((null == child))
30248 {
30249 throw new ArgumentNullException("child");
30250 }
30251 this.children.AddElement(child);
30252 child.ParentElement = this;
30253 }
30254
30255 public virtual void RemoveChild(ISchemaElement child)
30256 {
30257 if ((null == child))
30258 {
30259 throw new ArgumentNullException("child");
30260 }
30261 this.children.RemoveElement(child);
30262 child.ParentElement = null;
30263 }
30264
30265 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
30266 ISchemaElement ICreateChildren.CreateChild(string childName)
30267 {
30268 if (String.IsNullOrEmpty(childName))
30269 {
30270 throw new ArgumentNullException("childName");
30271 }
30272 ISchemaElement childValue = null;
30273 if (("Shortcut" == childName))
30274 {
30275 childValue = new Shortcut();
30276 }
30277 if (("Permission" == childName))
30278 {
30279 childValue = new Permission();
30280 }
30281 if (("PermissionEx" == childName))
30282 {
30283 childValue = new PermissionEx();
30284 }
30285 if ((null == childValue))
30286 {
30287 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
30288 }
30289 return childValue;
30290 }
30291
30292 /// <summary>
30293 /// Processes this element and all child elements into an XmlWriter.
30294 /// </summary>
30295 public virtual void OutputXml(XmlWriter writer)
30296 {
30297 if ((null == writer))
30298 {
30299 throw new ArgumentNullException("writer");
30300 }
30301 writer.WriteStartElement("CreateFolder", "http://wixtoolset.org/schemas/v4/wxs");
30302 if (this.directoryFieldSet)
30303 {
30304 writer.WriteAttributeString("Directory", this.directoryField);
30305 }
30306 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
30307 {
30308 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
30309 childElement.OutputXml(writer);
30310 }
30311 writer.WriteEndElement();
30312 }
30313
30314 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
30315 void ISetAttributes.SetAttribute(string name, string value)
30316 {
30317 if (String.IsNullOrEmpty(name))
30318 {
30319 throw new ArgumentNullException("name");
30320 }
30321 if (("Directory" == name))
30322 {
30323 this.directoryField = value;
30324 this.directoryFieldSet = true;
30325 }
30326 }
30327 }
30328
30329 /// <summary>
30330 /// Optional way for defining AppData, generally used for complex CDATA.
30331 /// </summary>
30332 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
30333 public class AppData : ISetAttributes, ISchemaElement
30334 {
30335
30336 private ISchemaElement parentElement;
30337
30338 private string contentField;
30339
30340 private bool contentFieldSet;
30341
30342 public virtual ISchemaElement ParentElement
30343 {
30344 get
30345 {
30346 return this.parentElement;
30347 }
30348 set
30349 {
30350 this.parentElement = value;
30351 }
30352 }
30353
30354 /// <summary>
30355 /// Optional way for defining AppData, generally used for complex CDATA.
30356 /// </summary>
30357 public string Content
30358 {
30359 get
30360 {
30361 return this.contentField;
30362 }
30363 set
30364 {
30365 this.contentFieldSet = true;
30366 this.contentField = value;
30367 }
30368 }
30369
30370 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
30371 void ISetAttributes.SetAttribute(string name, string value)
30372 {
30373 if (String.IsNullOrEmpty(name))
30374 {
30375 throw new ArgumentNullException("name");
30376 }
30377 if (("Content" == name))
30378 {
30379 this.contentField = value;
30380 this.contentFieldSet = true;
30381 }
30382 }
30383
30384 /// <summary>
30385 /// Processes this element and all child elements into an XmlWriter.
30386 /// </summary>
30387 public virtual void OutputXml(XmlWriter writer)
30388 {
30389 if ((null == writer))
30390 {
30391 throw new ArgumentNullException("writer");
30392 }
30393 writer.WriteStartElement("AppData", "http://wixtoolset.org/schemas/v4/wxs");
30394 if (this.contentFieldSet)
30395 {
30396 writer.WriteString(this.contentField);
30397 }
30398 writer.WriteEndElement();
30399 }
30400 }
30401
30402 /// <summary>
30403 /// Qualified published component for parent Component
30404 /// </summary>
30405 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
30406 public class Category : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
30407 {
30408
30409 private ElementCollection children;
30410
30411 private string idField;
30412
30413 private bool idFieldSet;
30414
30415 private string qualifierField;
30416
30417 private bool qualifierFieldSet;
30418
30419 private string appDataField;
30420
30421 private bool appDataFieldSet;
30422
30423 private string featureField;
30424
30425 private bool featureFieldSet;
30426
30427 private ISchemaElement parentElement;
30428
30429 public Category()
30430 {
30431 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
30432 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(AppData)));
30433 this.children = childCollection0;
30434 }
30435
30436 public virtual IEnumerable Children
30437 {
30438 get
30439 {
30440 return this.children;
30441 }
30442 }
30443
30444 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
30445 public virtual IEnumerable this[System.Type childType]
30446 {
30447 get
30448 {
30449 return this.children.Filter(childType);
30450 }
30451 }
30452
30453 /// <summary>
30454 /// A string GUID that represents the category of components being grouped together.
30455 /// </summary>
30456 public string Id
30457 {
30458 get
30459 {
30460 return this.idField;
30461 }
30462 set
30463 {
30464 this.idFieldSet = true;
30465 this.idField = value;
30466 }
30467 }
30468
30469 /// <summary>
30470 /// A text string that qualifies the value in the Id attribute. A qualifier is used to distinguish multiple forms of the same Component, such as a Component that is implemented in multiple languages.
30471 /// </summary>
30472 public string Qualifier
30473 {
30474 get
30475 {
30476 return this.qualifierField;
30477 }
30478 set
30479 {
30480 this.qualifierFieldSet = true;
30481 this.qualifierField = value;
30482 }
30483 }
30484
30485 /// <summary>
30486 /// An optional localizable text describing the category. The string is commonly parsed by the application and can be displayed to the user. It should describe the category.
30487 /// </summary>
30488 public string AppData
30489 {
30490 get
30491 {
30492 return this.appDataField;
30493 }
30494 set
30495 {
30496 this.appDataFieldSet = true;
30497 this.appDataField = value;
30498 }
30499 }
30500
30501 /// <summary>
30502 /// Feature that controls the advertisement of the category. Defaults to the primary Feature for the parent Component .
30503 /// </summary>
30504 public string Feature
30505 {
30506 get
30507 {
30508 return this.featureField;
30509 }
30510 set
30511 {
30512 this.featureFieldSet = true;
30513 this.featureField = value;
30514 }
30515 }
30516
30517 public virtual ISchemaElement ParentElement
30518 {
30519 get
30520 {
30521 return this.parentElement;
30522 }
30523 set
30524 {
30525 this.parentElement = value;
30526 }
30527 }
30528
30529 public virtual void AddChild(ISchemaElement child)
30530 {
30531 if ((null == child))
30532 {
30533 throw new ArgumentNullException("child");
30534 }
30535 this.children.AddElement(child);
30536 child.ParentElement = this;
30537 }
30538
30539 public virtual void RemoveChild(ISchemaElement child)
30540 {
30541 if ((null == child))
30542 {
30543 throw new ArgumentNullException("child");
30544 }
30545 this.children.RemoveElement(child);
30546 child.ParentElement = null;
30547 }
30548
30549 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
30550 ISchemaElement ICreateChildren.CreateChild(string childName)
30551 {
30552 if (String.IsNullOrEmpty(childName))
30553 {
30554 throw new ArgumentNullException("childName");
30555 }
30556 ISchemaElement childValue = null;
30557 if (("AppData" == childName))
30558 {
30559 childValue = new AppData();
30560 }
30561 if ((null == childValue))
30562 {
30563 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
30564 }
30565 return childValue;
30566 }
30567
30568 /// <summary>
30569 /// Processes this element and all child elements into an XmlWriter.
30570 /// </summary>
30571 public virtual void OutputXml(XmlWriter writer)
30572 {
30573 if ((null == writer))
30574 {
30575 throw new ArgumentNullException("writer");
30576 }
30577 writer.WriteStartElement("Category", "http://wixtoolset.org/schemas/v4/wxs");
30578 if (this.idFieldSet)
30579 {
30580 writer.WriteAttributeString("Id", this.idField);
30581 }
30582 if (this.qualifierFieldSet)
30583 {
30584 writer.WriteAttributeString("Qualifier", this.qualifierField);
30585 }
30586 if (this.appDataFieldSet)
30587 {
30588 writer.WriteAttributeString("AppData", this.appDataField);
30589 }
30590 if (this.featureFieldSet)
30591 {
30592 writer.WriteAttributeString("Feature", this.featureField);
30593 }
30594 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
30595 {
30596 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
30597 childElement.OutputXml(writer);
30598 }
30599 writer.WriteEndElement();
30600 }
30601
30602 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
30603 void ISetAttributes.SetAttribute(string name, string value)
30604 {
30605 if (String.IsNullOrEmpty(name))
30606 {
30607 throw new ArgumentNullException("name");
30608 }
30609 if (("Id" == name))
30610 {
30611 this.idField = value;
30612 this.idFieldSet = true;
30613 }
30614 if (("Qualifier" == name))
30615 {
30616 this.qualifierField = value;
30617 this.qualifierFieldSet = true;
30618 }
30619 if (("AppData" == name))
30620 {
30621 this.appDataField = value;
30622 this.appDataFieldSet = true;
30623 }
30624 if (("Feature" == name))
30625 {
30626 this.featureField = value;
30627 this.featureFieldSet = true;
30628 }
30629 }
30630 }
30631
30632 /// <summary>
30633 /// MIME content-type for an Extension
30634 /// </summary>
30635 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
30636 public class MIME : ISchemaElement, ISetAttributes
30637 {
30638
30639 private YesNoType advertiseField;
30640
30641 private bool advertiseFieldSet;
30642
30643 private string contentTypeField;
30644
30645 private bool contentTypeFieldSet;
30646
30647 private string classField;
30648
30649 private bool classFieldSet;
30650
30651 private YesNoType defaultField;
30652
30653 private bool defaultFieldSet;
30654
30655 private ISchemaElement parentElement;
30656
30657 /// <summary>
30658 /// Whether this MIME is to be advertised. The default is to match whatever the parent extension element uses. If the parent element is not advertised, then this element cannot be advertised either.
30659 /// </summary>
30660 public YesNoType Advertise
30661 {
30662 get
30663 {
30664 return this.advertiseField;
30665 }
30666 set
30667 {
30668 this.advertiseFieldSet = true;
30669 this.advertiseField = value;
30670 }
30671 }
30672
30673 /// <summary>
30674 /// This is the identifier for the MIME content. It is commonly written in the form of type/format.
30675 /// </summary>
30676 public string ContentType
30677 {
30678 get
30679 {
30680 return this.contentTypeField;
30681 }
30682 set
30683 {
30684 this.contentTypeFieldSet = true;
30685 this.contentTypeField = value;
30686 }
30687 }
30688
30689 /// <summary>
30690 /// Class ID for the COM server that is to be associated with the MIME content.
30691 /// </summary>
30692 public string Class
30693 {
30694 get
30695 {
30696 return this.classField;
30697 }
30698 set
30699 {
30700 this.classFieldSet = true;
30701 this.classField = value;
30702 }
30703 }
30704
30705 /// <summary>
30706 /// If 'yes', become the content type for the parent Extension. The default value is 'no'.
30707 /// </summary>
30708 public YesNoType Default
30709 {
30710 get
30711 {
30712 return this.defaultField;
30713 }
30714 set
30715 {
30716 this.defaultFieldSet = true;
30717 this.defaultField = value;
30718 }
30719 }
30720
30721 public virtual ISchemaElement ParentElement
30722 {
30723 get
30724 {
30725 return this.parentElement;
30726 }
30727 set
30728 {
30729 this.parentElement = value;
30730 }
30731 }
30732
30733 /// <summary>
30734 /// Processes this element and all child elements into an XmlWriter.
30735 /// </summary>
30736 public virtual void OutputXml(XmlWriter writer)
30737 {
30738 if ((null == writer))
30739 {
30740 throw new ArgumentNullException("writer");
30741 }
30742 writer.WriteStartElement("MIME", "http://wixtoolset.org/schemas/v4/wxs");
30743 if (this.advertiseFieldSet)
30744 {
30745 if ((this.advertiseField == YesNoType.no))
30746 {
30747 writer.WriteAttributeString("Advertise", "no");
30748 }
30749 if ((this.advertiseField == YesNoType.yes))
30750 {
30751 writer.WriteAttributeString("Advertise", "yes");
30752 }
30753 }
30754 if (this.contentTypeFieldSet)
30755 {
30756 writer.WriteAttributeString("ContentType", this.contentTypeField);
30757 }
30758 if (this.classFieldSet)
30759 {
30760 writer.WriteAttributeString("Class", this.classField);
30761 }
30762 if (this.defaultFieldSet)
30763 {
30764 if ((this.defaultField == YesNoType.no))
30765 {
30766 writer.WriteAttributeString("Default", "no");
30767 }
30768 if ((this.defaultField == YesNoType.yes))
30769 {
30770 writer.WriteAttributeString("Default", "yes");
30771 }
30772 }
30773 writer.WriteEndElement();
30774 }
30775
30776 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
30777 void ISetAttributes.SetAttribute(string name, string value)
30778 {
30779 if (String.IsNullOrEmpty(name))
30780 {
30781 throw new ArgumentNullException("name");
30782 }
30783 if (("Advertise" == name))
30784 {
30785 this.advertiseField = Enums.ParseYesNoType(value);
30786 this.advertiseFieldSet = true;
30787 }
30788 if (("ContentType" == name))
30789 {
30790 this.contentTypeField = value;
30791 this.contentTypeFieldSet = true;
30792 }
30793 if (("Class" == name))
30794 {
30795 this.classField = value;
30796 this.classFieldSet = true;
30797 }
30798 if (("Default" == name))
30799 {
30800 this.defaultField = Enums.ParseYesNoType(value);
30801 this.defaultFieldSet = true;
30802 }
30803 }
30804 }
30805
30806 /// <summary>
30807 /// Verb definition for an Extension. When advertised, this element creates a row in the
30808 /// </summary>
30809 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
30810 public class Verb : ISchemaElement, ISetAttributes
30811 {
30812
30813 private string idField;
30814
30815 private bool idFieldSet;
30816
30817 private string commandField;
30818
30819 private bool commandFieldSet;
30820
30821 private string argumentField;
30822
30823 private bool argumentFieldSet;
30824
30825 private int sequenceField;
30826
30827 private bool sequenceFieldSet;
30828
30829 private string targetField;
30830
30831 private bool targetFieldSet;
30832
30833 private string targetFileField;
30834
30835 private bool targetFileFieldSet;
30836
30837 private string targetPropertyField;
30838
30839 private bool targetPropertyFieldSet;
30840
30841 private ISchemaElement parentElement;
30842
30843 /// <summary>
30844 /// The verb for the command.
30845 /// </summary>
30846 public string Id
30847 {
30848 get
30849 {
30850 return this.idField;
30851 }
30852 set
30853 {
30854 this.idFieldSet = true;
30855 this.idField = value;
30856 }
30857 }
30858
30859 /// <summary>
30860 /// The localized text displayed on the context menu.
30861 /// </summary>
30862 public string Command
30863 {
30864 get
30865 {
30866 return this.commandField;
30867 }
30868 set
30869 {
30870 this.commandFieldSet = true;
30871 this.commandField = value;
30872 }
30873 }
30874
30875 /// <summary>
30876 /// Value for the command arguments. Note that the resolution of properties in the
30877 /// Argument field is limited. A property formatted as [Property] in this field can only be resolved if the property
30878 /// already has the intended value when the component owning the verb is installed. For example, for the argument
30879 /// "[#MyDoc.doc]" to resolve to the correct value, the same process must be installing the file MyDoc.doc and the
30880 /// component that owns the verb.
30881 /// </summary>
30882 public string Argument
30883 {
30884 get
30885 {
30886 return this.argumentField;
30887 }
30888 set
30889 {
30890 this.argumentFieldSet = true;
30891 this.argumentField = value;
30892 }
30893 }
30894
30895 /// <summary>
30896 /// The sequence of the commands. Only verbs for which the Sequence is specified
30897 /// are used to prepare an ordered list for the default value of the shell key. The Verb with the lowest value in this
30898 /// column becomes the default verb. Used only for Advertised verbs.
30899 /// </summary>
30900 public int Sequence
30901 {
30902 get
30903 {
30904 return this.sequenceField;
30905 }
30906 set
30907 {
30908 this.sequenceFieldSet = true;
30909 this.sequenceField = value;
30910 }
30911 }
30912
30913 public string Target
30914 {
30915 get
30916 {
30917 return this.targetField;
30918 }
30919 set
30920 {
30921 this.targetFieldSet = true;
30922 this.targetField = value;
30923 }
30924 }
30925
30926 /// <summary>
30927 /// Either this attribute or the TargetProperty attribute must be specified for a non-advertised verb.
30928 /// The value should be the identifier of the target file to be executed for the verb.
30929 /// </summary>
30930 public string TargetFile
30931 {
30932 get
30933 {
30934 return this.targetFileField;
30935 }
30936 set
30937 {
30938 this.targetFileFieldSet = true;
30939 this.targetFileField = value;
30940 }
30941 }
30942
30943 /// <summary>
30944 /// Either this attribute or the TargetFile attribute must be specified for a non-advertised verb.
30945 /// The value should be the identifier of the property which will resolve to the path to the target file to be executed for the verb.
30946 /// </summary>
30947 public string TargetProperty
30948 {
30949 get
30950 {
30951 return this.targetPropertyField;
30952 }
30953 set
30954 {
30955 this.targetPropertyFieldSet = true;
30956 this.targetPropertyField = value;
30957 }
30958 }
30959
30960 public virtual ISchemaElement ParentElement
30961 {
30962 get
30963 {
30964 return this.parentElement;
30965 }
30966 set
30967 {
30968 this.parentElement = value;
30969 }
30970 }
30971
30972 /// <summary>
30973 /// Processes this element and all child elements into an XmlWriter.
30974 /// </summary>
30975 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
30976 public virtual void OutputXml(XmlWriter writer)
30977 {
30978 if ((null == writer))
30979 {
30980 throw new ArgumentNullException("writer");
30981 }
30982 writer.WriteStartElement("Verb", "http://wixtoolset.org/schemas/v4/wxs");
30983 if (this.idFieldSet)
30984 {
30985 writer.WriteAttributeString("Id", this.idField);
30986 }
30987 if (this.commandFieldSet)
30988 {
30989 writer.WriteAttributeString("Command", this.commandField);
30990 }
30991 if (this.argumentFieldSet)
30992 {
30993 writer.WriteAttributeString("Argument", this.argumentField);
30994 }
30995 if (this.sequenceFieldSet)
30996 {
30997 writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture));
30998 }
30999 if (this.targetFieldSet)
31000 {
31001 writer.WriteAttributeString("Target", this.targetField);
31002 }
31003 if (this.targetFileFieldSet)
31004 {
31005 writer.WriteAttributeString("TargetFile", this.targetFileField);
31006 }
31007 if (this.targetPropertyFieldSet)
31008 {
31009 writer.WriteAttributeString("TargetProperty", this.targetPropertyField);
31010 }
31011 writer.WriteEndElement();
31012 }
31013
31014 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
31015 void ISetAttributes.SetAttribute(string name, string value)
31016 {
31017 if (String.IsNullOrEmpty(name))
31018 {
31019 throw new ArgumentNullException("name");
31020 }
31021 if (("Id" == name))
31022 {
31023 this.idField = value;
31024 this.idFieldSet = true;
31025 }
31026 if (("Command" == name))
31027 {
31028 this.commandField = value;
31029 this.commandFieldSet = true;
31030 }
31031 if (("Argument" == name))
31032 {
31033 this.argumentField = value;
31034 this.argumentFieldSet = true;
31035 }
31036 if (("Sequence" == name))
31037 {
31038 this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
31039 this.sequenceFieldSet = true;
31040 }
31041 if (("Target" == name))
31042 {
31043 this.targetField = value;
31044 this.targetFieldSet = true;
31045 }
31046 if (("TargetFile" == name))
31047 {
31048 this.targetFileField = value;
31049 this.targetFileFieldSet = true;
31050 }
31051 if (("TargetProperty" == name))
31052 {
31053 this.targetPropertyField = value;
31054 this.targetPropertyFieldSet = true;
31055 }
31056 }
31057 }
31058
31059 /// <summary>
31060 /// Extension for a Component
31061 /// </summary>
31062 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
31063 public class Extension : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
31064 {
31065
31066 private ElementCollection children;
31067
31068 private string idField;
31069
31070 private bool idFieldSet;
31071
31072 private string contentTypeField;
31073
31074 private bool contentTypeFieldSet;
31075
31076 private YesNoType advertiseField;
31077
31078 private bool advertiseFieldSet;
31079
31080 private ISchemaElement parentElement;
31081
31082 public Extension()
31083 {
31084 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
31085 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MIME)));
31086 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Verb)));
31087 this.children = childCollection0;
31088 }
31089
31090 public virtual IEnumerable Children
31091 {
31092 get
31093 {
31094 return this.children;
31095 }
31096 }
31097
31098 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
31099 public virtual IEnumerable this[System.Type childType]
31100 {
31101 get
31102 {
31103 return this.children.Filter(childType);
31104 }
31105 }
31106
31107 /// <summary>
31108 /// This is simply the file extension, like "doc" or "xml". Do not include the preceding period.
31109 /// </summary>
31110 public string Id
31111 {
31112 get
31113 {
31114 return this.idField;
31115 }
31116 set
31117 {
31118 this.idFieldSet = true;
31119 this.idField = value;
31120 }
31121 }
31122
31123 /// <summary>
31124 /// The MIME type that is to be written.
31125 /// </summary>
31126 public string ContentType
31127 {
31128 get
31129 {
31130 return this.contentTypeField;
31131 }
31132 set
31133 {
31134 this.contentTypeFieldSet = true;
31135 this.contentTypeField = value;
31136 }
31137 }
31138
31139 /// <summary>
31140 /// Whether this extension is to be advertised. The default is "no".
31141 /// </summary>
31142 public YesNoType Advertise
31143 {
31144 get
31145 {
31146 return this.advertiseField;
31147 }
31148 set
31149 {
31150 this.advertiseFieldSet = true;
31151 this.advertiseField = value;
31152 }
31153 }
31154
31155 public virtual ISchemaElement ParentElement
31156 {
31157 get
31158 {
31159 return this.parentElement;
31160 }
31161 set
31162 {
31163 this.parentElement = value;
31164 }
31165 }
31166
31167 public virtual void AddChild(ISchemaElement child)
31168 {
31169 if ((null == child))
31170 {
31171 throw new ArgumentNullException("child");
31172 }
31173 this.children.AddElement(child);
31174 child.ParentElement = this;
31175 }
31176
31177 public virtual void RemoveChild(ISchemaElement child)
31178 {
31179 if ((null == child))
31180 {
31181 throw new ArgumentNullException("child");
31182 }
31183 this.children.RemoveElement(child);
31184 child.ParentElement = null;
31185 }
31186
31187 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
31188 ISchemaElement ICreateChildren.CreateChild(string childName)
31189 {
31190 if (String.IsNullOrEmpty(childName))
31191 {
31192 throw new ArgumentNullException("childName");
31193 }
31194 ISchemaElement childValue = null;
31195 if (("MIME" == childName))
31196 {
31197 childValue = new MIME();
31198 }
31199 if (("Verb" == childName))
31200 {
31201 childValue = new Verb();
31202 }
31203 if ((null == childValue))
31204 {
31205 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
31206 }
31207 return childValue;
31208 }
31209
31210 /// <summary>
31211 /// Processes this element and all child elements into an XmlWriter.
31212 /// </summary>
31213 public virtual void OutputXml(XmlWriter writer)
31214 {
31215 if ((null == writer))
31216 {
31217 throw new ArgumentNullException("writer");
31218 }
31219 writer.WriteStartElement("Extension", "http://wixtoolset.org/schemas/v4/wxs");
31220 if (this.idFieldSet)
31221 {
31222 writer.WriteAttributeString("Id", this.idField);
31223 }
31224 if (this.contentTypeFieldSet)
31225 {
31226 writer.WriteAttributeString("ContentType", this.contentTypeField);
31227 }
31228 if (this.advertiseFieldSet)
31229 {
31230 if ((this.advertiseField == YesNoType.no))
31231 {
31232 writer.WriteAttributeString("Advertise", "no");
31233 }
31234 if ((this.advertiseField == YesNoType.yes))
31235 {
31236 writer.WriteAttributeString("Advertise", "yes");
31237 }
31238 }
31239 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
31240 {
31241 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
31242 childElement.OutputXml(writer);
31243 }
31244 writer.WriteEndElement();
31245 }
31246
31247 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
31248 void ISetAttributes.SetAttribute(string name, string value)
31249 {
31250 if (String.IsNullOrEmpty(name))
31251 {
31252 throw new ArgumentNullException("name");
31253 }
31254 if (("Id" == name))
31255 {
31256 this.idField = value;
31257 this.idFieldSet = true;
31258 }
31259 if (("ContentType" == name))
31260 {
31261 this.contentTypeField = value;
31262 this.contentTypeFieldSet = true;
31263 }
31264 if (("Advertise" == name))
31265 {
31266 this.advertiseField = Enums.ParseYesNoType(value);
31267 this.advertiseFieldSet = true;
31268 }
31269 }
31270 }
31271
31272 /// <summary>
31273 /// Register a type library (TypeLib). Please note that in order to properly use this
31274 /// non-advertised, you will need use this element with Advertise='no' and also author the
31275 /// appropriate child Interface elements by extracting them from the type library itself.
31276 /// </summary>
31277 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
31278 public class TypeLib : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
31279 {
31280
31281 private ElementCollection children;
31282
31283 private string idField;
31284
31285 private bool idFieldSet;
31286
31287 private YesNoType advertiseField;
31288
31289 private bool advertiseFieldSet;
31290
31291 private YesNoType controlField;
31292
31293 private bool controlFieldSet;
31294
31295 private int costField;
31296
31297 private bool costFieldSet;
31298
31299 private string descriptionField;
31300
31301 private bool descriptionFieldSet;
31302
31303 private YesNoType hasDiskImageField;
31304
31305 private bool hasDiskImageFieldSet;
31306
31307 private string helpDirectoryField;
31308
31309 private bool helpDirectoryFieldSet;
31310
31311 private YesNoType hiddenField;
31312
31313 private bool hiddenFieldSet;
31314
31315 private int languageField;
31316
31317 private bool languageFieldSet;
31318
31319 private int majorVersionField;
31320
31321 private bool majorVersionFieldSet;
31322
31323 private int minorVersionField;
31324
31325 private bool minorVersionFieldSet;
31326
31327 private int resourceIdField;
31328
31329 private bool resourceIdFieldSet;
31330
31331 private YesNoType restrictedField;
31332
31333 private bool restrictedFieldSet;
31334
31335 private ISchemaElement parentElement;
31336
31337 public TypeLib()
31338 {
31339 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
31340 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppId)));
31341 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Class)));
31342 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Interface)));
31343 this.children = childCollection0;
31344 }
31345
31346 public virtual IEnumerable Children
31347 {
31348 get
31349 {
31350 return this.children;
31351 }
31352 }
31353
31354 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
31355 public virtual IEnumerable this[System.Type childType]
31356 {
31357 get
31358 {
31359 return this.children.Filter(childType);
31360 }
31361 }
31362
31363 /// <summary>
31364 /// The GUID that identifes the type library.
31365 /// </summary>
31366 public string Id
31367 {
31368 get
31369 {
31370 return this.idField;
31371 }
31372 set
31373 {
31374 this.idFieldSet = true;
31375 this.idField = value;
31376 }
31377 }
31378
31379 /// <summary>
31380 /// Value of 'yes' will create a row in the TypeLib table.
31381 /// Value of 'no' will create rows in the Registry table.
31382 /// The default value is 'no'.
31383 /// </summary>
31384 public YesNoType Advertise
31385 {
31386 get
31387 {
31388 return this.advertiseField;
31389 }
31390 set
31391 {
31392 this.advertiseFieldSet = true;
31393 this.advertiseField = value;
31394 }
31395 }
31396
31397 /// <summary>
31398 /// Value of 'yes' means the type library describes controls, and should not be displayed in type browsers intended for nonvisual objects.
31399 /// This attribute can only be set if Advertise='no'.
31400 /// </summary>
31401 public YesNoType Control
31402 {
31403 get
31404 {
31405 return this.controlField;
31406 }
31407 set
31408 {
31409 this.controlFieldSet = true;
31410 this.controlField = value;
31411 }
31412 }
31413
31414 /// <summary>
31415 /// The cost associated with the registration of the type library in bytes. This attribute cannot be set if Advertise='no'.
31416 /// </summary>
31417 public int Cost
31418 {
31419 get
31420 {
31421 return this.costField;
31422 }
31423 set
31424 {
31425 this.costFieldSet = true;
31426 this.costField = value;
31427 }
31428 }
31429
31430 /// <summary>
31431 /// The localizable description of the type library.
31432 /// </summary>
31433 public string Description
31434 {
31435 get
31436 {
31437 return this.descriptionField;
31438 }
31439 set
31440 {
31441 this.descriptionFieldSet = true;
31442 this.descriptionField = value;
31443 }
31444 }
31445
31446 /// <summary>
31447 /// Value of 'yes' means the type library exists in a persisted form on disk. This attribute can only be set if Advertise='no'.
31448 /// </summary>
31449 public YesNoType HasDiskImage
31450 {
31451 get
31452 {
31453 return this.hasDiskImageField;
31454 }
31455 set
31456 {
31457 this.hasDiskImageFieldSet = true;
31458 this.hasDiskImageField = value;
31459 }
31460 }
31461
31462 /// <summary>
31463 /// The identifier of the Directory element for the help directory.
31464 /// </summary>
31465 public string HelpDirectory
31466 {
31467 get
31468 {
31469 return this.helpDirectoryField;
31470 }
31471 set
31472 {
31473 this.helpDirectoryFieldSet = true;
31474 this.helpDirectoryField = value;
31475 }
31476 }
31477
31478 /// <summary>
31479 /// Value of 'yes' means the type library should not be displayed to users, although its use is not restricted.
31480 /// Should be used by controls. Hosts should create a new type library that wraps the control with extended properties.
31481 /// This attribute can only be set if Advertise='no'.
31482 /// </summary>
31483 public YesNoType Hidden
31484 {
31485 get
31486 {
31487 return this.hiddenField;
31488 }
31489 set
31490 {
31491 this.hiddenFieldSet = true;
31492 this.hiddenField = value;
31493 }
31494 }
31495
31496 /// <summary>
31497 /// The language of the type library. This must be a non-negative integer.
31498 /// </summary>
31499 public int Language
31500 {
31501 get
31502 {
31503 return this.languageField;
31504 }
31505 set
31506 {
31507 this.languageFieldSet = true;
31508 this.languageField = value;
31509 }
31510 }
31511
31512 /// <summary>
31513 /// The major version of the type library. The value should be an integer from 0 - 255.
31514 /// </summary>
31515 public int MajorVersion
31516 {
31517 get
31518 {
31519 return this.majorVersionField;
31520 }
31521 set
31522 {
31523 this.majorVersionFieldSet = true;
31524 this.majorVersionField = value;
31525 }
31526 }
31527
31528 /// <summary>
31529 /// The minor version of the type library. The value should be an integer from 0 - 255.
31530 /// </summary>
31531 public int MinorVersion
31532 {
31533 get
31534 {
31535 return this.minorVersionField;
31536 }
31537 set
31538 {
31539 this.minorVersionFieldSet = true;
31540 this.minorVersionField = value;
31541 }
31542 }
31543
31544 /// <summary>
31545 /// The resource id of a typelib. The value is appended to the end of the typelib path in the registry.
31546 /// </summary>
31547 public int ResourceId
31548 {
31549 get
31550 {
31551 return this.resourceIdField;
31552 }
31553 set
31554 {
31555 this.resourceIdFieldSet = true;
31556 this.resourceIdField = value;
31557 }
31558 }
31559
31560 /// <summary>
31561 /// Value of 'yes' means the type library is restricted, and should not be displayed to users. This attribute can only be set if Advertise='no'.
31562 /// </summary>
31563 public YesNoType Restricted
31564 {
31565 get
31566 {
31567 return this.restrictedField;
31568 }
31569 set
31570 {
31571 this.restrictedFieldSet = true;
31572 this.restrictedField = value;
31573 }
31574 }
31575
31576 public virtual ISchemaElement ParentElement
31577 {
31578 get
31579 {
31580 return this.parentElement;
31581 }
31582 set
31583 {
31584 this.parentElement = value;
31585 }
31586 }
31587
31588 public virtual void AddChild(ISchemaElement child)
31589 {
31590 if ((null == child))
31591 {
31592 throw new ArgumentNullException("child");
31593 }
31594 this.children.AddElement(child);
31595 child.ParentElement = this;
31596 }
31597
31598 public virtual void RemoveChild(ISchemaElement child)
31599 {
31600 if ((null == child))
31601 {
31602 throw new ArgumentNullException("child");
31603 }
31604 this.children.RemoveElement(child);
31605 child.ParentElement = null;
31606 }
31607
31608 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
31609 ISchemaElement ICreateChildren.CreateChild(string childName)
31610 {
31611 if (String.IsNullOrEmpty(childName))
31612 {
31613 throw new ArgumentNullException("childName");
31614 }
31615 ISchemaElement childValue = null;
31616 if (("AppId" == childName))
31617 {
31618 childValue = new AppId();
31619 }
31620 if (("Class" == childName))
31621 {
31622 childValue = new Class();
31623 }
31624 if (("Interface" == childName))
31625 {
31626 childValue = new Interface();
31627 }
31628 if ((null == childValue))
31629 {
31630 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
31631 }
31632 return childValue;
31633 }
31634
31635 /// <summary>
31636 /// Processes this element and all child elements into an XmlWriter.
31637 /// </summary>
31638 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
31639 public virtual void OutputXml(XmlWriter writer)
31640 {
31641 if ((null == writer))
31642 {
31643 throw new ArgumentNullException("writer");
31644 }
31645 writer.WriteStartElement("TypeLib", "http://wixtoolset.org/schemas/v4/wxs");
31646 if (this.idFieldSet)
31647 {
31648 writer.WriteAttributeString("Id", this.idField);
31649 }
31650 if (this.advertiseFieldSet)
31651 {
31652 if ((this.advertiseField == YesNoType.no))
31653 {
31654 writer.WriteAttributeString("Advertise", "no");
31655 }
31656 if ((this.advertiseField == YesNoType.yes))
31657 {
31658 writer.WriteAttributeString("Advertise", "yes");
31659 }
31660 }
31661 if (this.controlFieldSet)
31662 {
31663 if ((this.controlField == YesNoType.no))
31664 {
31665 writer.WriteAttributeString("Control", "no");
31666 }
31667 if ((this.controlField == YesNoType.yes))
31668 {
31669 writer.WriteAttributeString("Control", "yes");
31670 }
31671 }
31672 if (this.costFieldSet)
31673 {
31674 writer.WriteAttributeString("Cost", this.costField.ToString(CultureInfo.InvariantCulture));
31675 }
31676 if (this.descriptionFieldSet)
31677 {
31678 writer.WriteAttributeString("Description", this.descriptionField);
31679 }
31680 if (this.hasDiskImageFieldSet)
31681 {
31682 if ((this.hasDiskImageField == YesNoType.no))
31683 {
31684 writer.WriteAttributeString("HasDiskImage", "no");
31685 }
31686 if ((this.hasDiskImageField == YesNoType.yes))
31687 {
31688 writer.WriteAttributeString("HasDiskImage", "yes");
31689 }
31690 }
31691 if (this.helpDirectoryFieldSet)
31692 {
31693 writer.WriteAttributeString("HelpDirectory", this.helpDirectoryField);
31694 }
31695 if (this.hiddenFieldSet)
31696 {
31697 if ((this.hiddenField == YesNoType.no))
31698 {
31699 writer.WriteAttributeString("Hidden", "no");
31700 }
31701 if ((this.hiddenField == YesNoType.yes))
31702 {
31703 writer.WriteAttributeString("Hidden", "yes");
31704 }
31705 }
31706 if (this.languageFieldSet)
31707 {
31708 writer.WriteAttributeString("Language", this.languageField.ToString(CultureInfo.InvariantCulture));
31709 }
31710 if (this.majorVersionFieldSet)
31711 {
31712 writer.WriteAttributeString("MajorVersion", this.majorVersionField.ToString(CultureInfo.InvariantCulture));
31713 }
31714 if (this.minorVersionFieldSet)
31715 {
31716 writer.WriteAttributeString("MinorVersion", this.minorVersionField.ToString(CultureInfo.InvariantCulture));
31717 }
31718 if (this.resourceIdFieldSet)
31719 {
31720 writer.WriteAttributeString("ResourceId", this.resourceIdField.ToString(CultureInfo.InvariantCulture));
31721 }
31722 if (this.restrictedFieldSet)
31723 {
31724 if ((this.restrictedField == YesNoType.no))
31725 {
31726 writer.WriteAttributeString("Restricted", "no");
31727 }
31728 if ((this.restrictedField == YesNoType.yes))
31729 {
31730 writer.WriteAttributeString("Restricted", "yes");
31731 }
31732 }
31733 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
31734 {
31735 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
31736 childElement.OutputXml(writer);
31737 }
31738 writer.WriteEndElement();
31739 }
31740
31741 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
31742 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
31743 void ISetAttributes.SetAttribute(string name, string value)
31744 {
31745 if (String.IsNullOrEmpty(name))
31746 {
31747 throw new ArgumentNullException("name");
31748 }
31749 if (("Id" == name))
31750 {
31751 this.idField = value;
31752 this.idFieldSet = true;
31753 }
31754 if (("Advertise" == name))
31755 {
31756 this.advertiseField = Enums.ParseYesNoType(value);
31757 this.advertiseFieldSet = true;
31758 }
31759 if (("Control" == name))
31760 {
31761 this.controlField = Enums.ParseYesNoType(value);
31762 this.controlFieldSet = true;
31763 }
31764 if (("Cost" == name))
31765 {
31766 this.costField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
31767 this.costFieldSet = true;
31768 }
31769 if (("Description" == name))
31770 {
31771 this.descriptionField = value;
31772 this.descriptionFieldSet = true;
31773 }
31774 if (("HasDiskImage" == name))
31775 {
31776 this.hasDiskImageField = Enums.ParseYesNoType(value);
31777 this.hasDiskImageFieldSet = true;
31778 }
31779 if (("HelpDirectory" == name))
31780 {
31781 this.helpDirectoryField = value;
31782 this.helpDirectoryFieldSet = true;
31783 }
31784 if (("Hidden" == name))
31785 {
31786 this.hiddenField = Enums.ParseYesNoType(value);
31787 this.hiddenFieldSet = true;
31788 }
31789 if (("Language" == name))
31790 {
31791 this.languageField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
31792 this.languageFieldSet = true;
31793 }
31794 if (("MajorVersion" == name))
31795 {
31796 this.majorVersionField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
31797 this.majorVersionFieldSet = true;
31798 }
31799 if (("MinorVersion" == name))
31800 {
31801 this.minorVersionField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
31802 this.minorVersionFieldSet = true;
31803 }
31804 if (("ResourceId" == name))
31805 {
31806 this.resourceIdField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
31807 this.resourceIdFieldSet = true;
31808 }
31809 if (("Restricted" == name))
31810 {
31811 this.restrictedField = Enums.ParseYesNoType(value);
31812 this.restrictedFieldSet = true;
31813 }
31814 }
31815 }
31816
31817 /// <summary>
31818 /// ProgId registration for parent Component. If ProgId has an associated Class, it must be a child of that element.
31819 /// </summary>
31820 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
31821 public class ProgId : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
31822 {
31823
31824 private ElementCollection children;
31825
31826 private string idField;
31827
31828 private bool idFieldSet;
31829
31830 private string descriptionField;
31831
31832 private bool descriptionFieldSet;
31833
31834 private string iconField;
31835
31836 private bool iconFieldSet;
31837
31838 private int iconIndexField;
31839
31840 private bool iconIndexFieldSet;
31841
31842 private YesNoType advertiseField;
31843
31844 private bool advertiseFieldSet;
31845
31846 private string noOpenField;
31847
31848 private bool noOpenFieldSet;
31849
31850 private ISchemaElement parentElement;
31851
31852 public ProgId()
31853 {
31854 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
31855 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ProgId)));
31856 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Extension)));
31857 this.children = childCollection0;
31858 }
31859
31860 public virtual IEnumerable Children
31861 {
31862 get
31863 {
31864 return this.children;
31865 }
31866 }
31867
31868 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
31869 public virtual IEnumerable this[System.Type childType]
31870 {
31871 get
31872 {
31873 return this.children.Filter(childType);
31874 }
31875 }
31876
31877 public string Id
31878 {
31879 get
31880 {
31881 return this.idField;
31882 }
31883 set
31884 {
31885 this.idFieldSet = true;
31886 this.idField = value;
31887 }
31888 }
31889
31890 public string Description
31891 {
31892 get
31893 {
31894 return this.descriptionField;
31895 }
31896 set
31897 {
31898 this.descriptionFieldSet = true;
31899 this.descriptionField = value;
31900 }
31901 }
31902
31903 /// <summary>
31904 /// For an advertised ProgId, the Id of an Icon element. For a non-advertised ProgId, this is the Id of a file containing an icon resource.
31905 /// </summary>
31906 public string Icon
31907 {
31908 get
31909 {
31910 return this.iconField;
31911 }
31912 set
31913 {
31914 this.iconFieldSet = true;
31915 this.iconField = value;
31916 }
31917 }
31918
31919 public int IconIndex
31920 {
31921 get
31922 {
31923 return this.iconIndexField;
31924 }
31925 set
31926 {
31927 this.iconIndexFieldSet = true;
31928 this.iconIndexField = value;
31929 }
31930 }
31931
31932 public YesNoType Advertise
31933 {
31934 get
31935 {
31936 return this.advertiseField;
31937 }
31938 set
31939 {
31940 this.advertiseFieldSet = true;
31941 this.advertiseField = value;
31942 }
31943 }
31944
31945 /// <summary>
31946 /// Specifies that the associated ProgId should not be opened by users. The value is presented as a warning to users. An empty string is also valid for this attribute.
31947 /// </summary>
31948 public string NoOpen
31949 {
31950 get
31951 {
31952 return this.noOpenField;
31953 }
31954 set
31955 {
31956 this.noOpenFieldSet = true;
31957 this.noOpenField = value;
31958 }
31959 }
31960
31961 public virtual ISchemaElement ParentElement
31962 {
31963 get
31964 {
31965 return this.parentElement;
31966 }
31967 set
31968 {
31969 this.parentElement = value;
31970 }
31971 }
31972
31973 public virtual void AddChild(ISchemaElement child)
31974 {
31975 if ((null == child))
31976 {
31977 throw new ArgumentNullException("child");
31978 }
31979 this.children.AddElement(child);
31980 child.ParentElement = this;
31981 }
31982
31983 public virtual void RemoveChild(ISchemaElement child)
31984 {
31985 if ((null == child))
31986 {
31987 throw new ArgumentNullException("child");
31988 }
31989 this.children.RemoveElement(child);
31990 child.ParentElement = null;
31991 }
31992
31993 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
31994 ISchemaElement ICreateChildren.CreateChild(string childName)
31995 {
31996 if (String.IsNullOrEmpty(childName))
31997 {
31998 throw new ArgumentNullException("childName");
31999 }
32000 ISchemaElement childValue = null;
32001 if (("ProgId" == childName))
32002 {
32003 childValue = new ProgId();
32004 }
32005 if (("Extension" == childName))
32006 {
32007 childValue = new Extension();
32008 }
32009 if ((null == childValue))
32010 {
32011 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
32012 }
32013 return childValue;
32014 }
32015
32016 /// <summary>
32017 /// Processes this element and all child elements into an XmlWriter.
32018 /// </summary>
32019 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
32020 public virtual void OutputXml(XmlWriter writer)
32021 {
32022 if ((null == writer))
32023 {
32024 throw new ArgumentNullException("writer");
32025 }
32026 writer.WriteStartElement("ProgId", "http://wixtoolset.org/schemas/v4/wxs");
32027 if (this.idFieldSet)
32028 {
32029 writer.WriteAttributeString("Id", this.idField);
32030 }
32031 if (this.descriptionFieldSet)
32032 {
32033 writer.WriteAttributeString("Description", this.descriptionField);
32034 }
32035 if (this.iconFieldSet)
32036 {
32037 writer.WriteAttributeString("Icon", this.iconField);
32038 }
32039 if (this.iconIndexFieldSet)
32040 {
32041 writer.WriteAttributeString("IconIndex", this.iconIndexField.ToString(CultureInfo.InvariantCulture));
32042 }
32043 if (this.advertiseFieldSet)
32044 {
32045 if ((this.advertiseField == YesNoType.no))
32046 {
32047 writer.WriteAttributeString("Advertise", "no");
32048 }
32049 if ((this.advertiseField == YesNoType.yes))
32050 {
32051 writer.WriteAttributeString("Advertise", "yes");
32052 }
32053 }
32054 if (this.noOpenFieldSet)
32055 {
32056 writer.WriteAttributeString("NoOpen", this.noOpenField);
32057 }
32058 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
32059 {
32060 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
32061 childElement.OutputXml(writer);
32062 }
32063 writer.WriteEndElement();
32064 }
32065
32066 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
32067 void ISetAttributes.SetAttribute(string name, string value)
32068 {
32069 if (String.IsNullOrEmpty(name))
32070 {
32071 throw new ArgumentNullException("name");
32072 }
32073 if (("Id" == name))
32074 {
32075 this.idField = value;
32076 this.idFieldSet = true;
32077 }
32078 if (("Description" == name))
32079 {
32080 this.descriptionField = value;
32081 this.descriptionFieldSet = true;
32082 }
32083 if (("Icon" == name))
32084 {
32085 this.iconField = value;
32086 this.iconFieldSet = true;
32087 }
32088 if (("IconIndex" == name))
32089 {
32090 this.iconIndexField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
32091 this.iconIndexFieldSet = true;
32092 }
32093 if (("Advertise" == name))
32094 {
32095 this.advertiseField = Enums.ParseYesNoType(value);
32096 this.advertiseFieldSet = true;
32097 }
32098 if (("NoOpen" == name))
32099 {
32100 this.noOpenField = value;
32101 this.noOpenFieldSet = true;
32102 }
32103 }
32104 }
32105
32106 /// <summary>
32107 /// Application ID containing DCOM information for the associated application GUID.
32108 /// If this element is nested under a Fragment, Module, or Product element, it must be
32109 /// advertised.
32110 /// </summary>
32111 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
32112 public class AppId : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
32113 {
32114
32115 private ElementCollection children;
32116
32117 private YesNoType activateAtStorageField;
32118
32119 private bool activateAtStorageFieldSet;
32120
32121 private YesNoType advertiseField;
32122
32123 private bool advertiseFieldSet;
32124
32125 private string descriptionField;
32126
32127 private bool descriptionFieldSet;
32128
32129 private string dllSurrogateField;
32130
32131 private bool dllSurrogateFieldSet;
32132
32133 private string idField;
32134
32135 private bool idFieldSet;
32136
32137 private string localServiceField;
32138
32139 private bool localServiceFieldSet;
32140
32141 private string remoteServerNameField;
32142
32143 private bool remoteServerNameFieldSet;
32144
32145 private YesNoType runAsInteractiveUserField;
32146
32147 private bool runAsInteractiveUserFieldSet;
32148
32149 private string serviceParametersField;
32150
32151 private bool serviceParametersFieldSet;
32152
32153 private ISchemaElement parentElement;
32154
32155 public AppId()
32156 {
32157 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
32158 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Class)));
32159 this.children = childCollection0;
32160 }
32161
32162 public virtual IEnumerable Children
32163 {
32164 get
32165 {
32166 return this.children;
32167 }
32168 }
32169
32170 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
32171 public virtual IEnumerable this[System.Type childType]
32172 {
32173 get
32174 {
32175 return this.children.Filter(childType);
32176 }
32177 }
32178
32179 /// <summary>
32180 /// Set this value to 'yes' to configure the client to activate on the same system as persistent storage.
32181 /// </summary>
32182 public YesNoType ActivateAtStorage
32183 {
32184 get
32185 {
32186 return this.activateAtStorageField;
32187 }
32188 set
32189 {
32190 this.activateAtStorageFieldSet = true;
32191 this.activateAtStorageField = value;
32192 }
32193 }
32194
32195 /// <summary>
32196 /// Set this value to 'yes' in order to create a normal AppId table row. Set this value to 'no' in order to
32197 /// generate Registry rows that perform similar registration (without the often problematic Windows Installer
32198 /// advertising behavior).
32199 /// </summary>
32200 public YesNoType Advertise
32201 {
32202 get
32203 {
32204 return this.advertiseField;
32205 }
32206 set
32207 {
32208 this.advertiseFieldSet = true;
32209 this.advertiseField = value;
32210 }
32211 }
32212
32213 /// <summary>
32214 /// Set this value to the description of the AppId. It can only be specified when the AppId is not being advertised.
32215 /// </summary>
32216 public string Description
32217 {
32218 get
32219 {
32220 return this.descriptionField;
32221 }
32222 set
32223 {
32224 this.descriptionFieldSet = true;
32225 this.descriptionField = value;
32226 }
32227 }
32228
32229 /// <summary>
32230 /// Set this value to specify that the class is a DLL that is to be activated in a surrogate EXE
32231 /// process, and the surrogate process to be used is the path of a surrogate EXE file specified by the value.
32232 /// </summary>
32233 public string DllSurrogate
32234 {
32235 get
32236 {
32237 return this.dllSurrogateField;
32238 }
32239 set
32240 {
32241 this.dllSurrogateFieldSet = true;
32242 this.dllSurrogateField = value;
32243 }
32244 }
32245
32246 /// <summary>
32247 /// Set this value to the AppID GUID that corresponds to the named executable.
32248 /// </summary>
32249 public string Id
32250 {
32251 get
32252 {
32253 return this.idField;
32254 }
32255 set
32256 {
32257 this.idFieldSet = true;
32258 this.idField = value;
32259 }
32260 }
32261
32262 /// <summary>
32263 /// Set this value to the name of a service to allow the object to be installed as a Win32 service.
32264 /// </summary>
32265 public string LocalService
32266 {
32267 get
32268 {
32269 return this.localServiceField;
32270 }
32271 set
32272 {
32273 this.localServiceFieldSet = true;
32274 this.localServiceField = value;
32275 }
32276 }
32277
32278 /// <summary>
32279 /// Set this value to the name of the remote server to configure the client to request the object
32280 /// be run at a particular machine whenever an activation function is called for which a COSERVERINFO
32281 /// structure is not specified.
32282 /// </summary>
32283 public string RemoteServerName
32284 {
32285 get
32286 {
32287 return this.remoteServerNameField;
32288 }
32289 set
32290 {
32291 this.remoteServerNameFieldSet = true;
32292 this.remoteServerNameField = value;
32293 }
32294 }
32295
32296 /// <summary>
32297 /// Set this value to 'yes' to configure a class to run under the identity of the user currently
32298 /// logged on and connected to the interactive desktop when activated by a remote client without
32299 /// being written as a Win32 service.
32300 /// </summary>
32301 public YesNoType RunAsInteractiveUser
32302 {
32303 get
32304 {
32305 return this.runAsInteractiveUserField;
32306 }
32307 set
32308 {
32309 this.runAsInteractiveUserFieldSet = true;
32310 this.runAsInteractiveUserField = value;
32311 }
32312 }
32313
32314 /// <summary>
32315 /// Set this value to the parameters to be passed to a LocalService on invocation.
32316 /// </summary>
32317 public string ServiceParameters
32318 {
32319 get
32320 {
32321 return this.serviceParametersField;
32322 }
32323 set
32324 {
32325 this.serviceParametersFieldSet = true;
32326 this.serviceParametersField = value;
32327 }
32328 }
32329
32330 public virtual ISchemaElement ParentElement
32331 {
32332 get
32333 {
32334 return this.parentElement;
32335 }
32336 set
32337 {
32338 this.parentElement = value;
32339 }
32340 }
32341
32342 public virtual void AddChild(ISchemaElement child)
32343 {
32344 if ((null == child))
32345 {
32346 throw new ArgumentNullException("child");
32347 }
32348 this.children.AddElement(child);
32349 child.ParentElement = this;
32350 }
32351
32352 public virtual void RemoveChild(ISchemaElement child)
32353 {
32354 if ((null == child))
32355 {
32356 throw new ArgumentNullException("child");
32357 }
32358 this.children.RemoveElement(child);
32359 child.ParentElement = null;
32360 }
32361
32362 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
32363 ISchemaElement ICreateChildren.CreateChild(string childName)
32364 {
32365 if (String.IsNullOrEmpty(childName))
32366 {
32367 throw new ArgumentNullException("childName");
32368 }
32369 ISchemaElement childValue = null;
32370 if (("Class" == childName))
32371 {
32372 childValue = new Class();
32373 }
32374 if ((null == childValue))
32375 {
32376 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
32377 }
32378 return childValue;
32379 }
32380
32381 /// <summary>
32382 /// Processes this element and all child elements into an XmlWriter.
32383 /// </summary>
32384 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
32385 public virtual void OutputXml(XmlWriter writer)
32386 {
32387 if ((null == writer))
32388 {
32389 throw new ArgumentNullException("writer");
32390 }
32391 writer.WriteStartElement("AppId", "http://wixtoolset.org/schemas/v4/wxs");
32392 if (this.activateAtStorageFieldSet)
32393 {
32394 if ((this.activateAtStorageField == YesNoType.no))
32395 {
32396 writer.WriteAttributeString("ActivateAtStorage", "no");
32397 }
32398 if ((this.activateAtStorageField == YesNoType.yes))
32399 {
32400 writer.WriteAttributeString("ActivateAtStorage", "yes");
32401 }
32402 }
32403 if (this.advertiseFieldSet)
32404 {
32405 if ((this.advertiseField == YesNoType.no))
32406 {
32407 writer.WriteAttributeString("Advertise", "no");
32408 }
32409 if ((this.advertiseField == YesNoType.yes))
32410 {
32411 writer.WriteAttributeString("Advertise", "yes");
32412 }
32413 }
32414 if (this.descriptionFieldSet)
32415 {
32416 writer.WriteAttributeString("Description", this.descriptionField);
32417 }
32418 if (this.dllSurrogateFieldSet)
32419 {
32420 writer.WriteAttributeString("DllSurrogate", this.dllSurrogateField);
32421 }
32422 if (this.idFieldSet)
32423 {
32424 writer.WriteAttributeString("Id", this.idField);
32425 }
32426 if (this.localServiceFieldSet)
32427 {
32428 writer.WriteAttributeString("LocalService", this.localServiceField);
32429 }
32430 if (this.remoteServerNameFieldSet)
32431 {
32432 writer.WriteAttributeString("RemoteServerName", this.remoteServerNameField);
32433 }
32434 if (this.runAsInteractiveUserFieldSet)
32435 {
32436 if ((this.runAsInteractiveUserField == YesNoType.no))
32437 {
32438 writer.WriteAttributeString("RunAsInteractiveUser", "no");
32439 }
32440 if ((this.runAsInteractiveUserField == YesNoType.yes))
32441 {
32442 writer.WriteAttributeString("RunAsInteractiveUser", "yes");
32443 }
32444 }
32445 if (this.serviceParametersFieldSet)
32446 {
32447 writer.WriteAttributeString("ServiceParameters", this.serviceParametersField);
32448 }
32449 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
32450 {
32451 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
32452 childElement.OutputXml(writer);
32453 }
32454 writer.WriteEndElement();
32455 }
32456
32457 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
32458 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
32459 void ISetAttributes.SetAttribute(string name, string value)
32460 {
32461 if (String.IsNullOrEmpty(name))
32462 {
32463 throw new ArgumentNullException("name");
32464 }
32465 if (("ActivateAtStorage" == name))
32466 {
32467 this.activateAtStorageField = Enums.ParseYesNoType(value);
32468 this.activateAtStorageFieldSet = true;
32469 }
32470 if (("Advertise" == name))
32471 {
32472 this.advertiseField = Enums.ParseYesNoType(value);
32473 this.advertiseFieldSet = true;
32474 }
32475 if (("Description" == name))
32476 {
32477 this.descriptionField = value;
32478 this.descriptionFieldSet = true;
32479 }
32480 if (("DllSurrogate" == name))
32481 {
32482 this.dllSurrogateField = value;
32483 this.dllSurrogateFieldSet = true;
32484 }
32485 if (("Id" == name))
32486 {
32487 this.idField = value;
32488 this.idFieldSet = true;
32489 }
32490 if (("LocalService" == name))
32491 {
32492 this.localServiceField = value;
32493 this.localServiceFieldSet = true;
32494 }
32495 if (("RemoteServerName" == name))
32496 {
32497 this.remoteServerNameField = value;
32498 this.remoteServerNameFieldSet = true;
32499 }
32500 if (("RunAsInteractiveUser" == name))
32501 {
32502 this.runAsInteractiveUserField = Enums.ParseYesNoType(value);
32503 this.runAsInteractiveUserFieldSet = true;
32504 }
32505 if (("ServiceParameters" == name))
32506 {
32507 this.serviceParametersField = value;
32508 this.serviceParametersFieldSet = true;
32509 }
32510 }
32511 }
32512
32513 /// <summary>
32514 /// COM Class registration for parent Component.
32515 /// </summary>
32516 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
32517 public class Class : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
32518 {
32519
32520 private ElementCollection children;
32521
32522 private string idField;
32523
32524 private bool idFieldSet;
32525
32526 private ContextType contextField;
32527
32528 private bool contextFieldSet;
32529
32530 private string descriptionField;
32531
32532 private bool descriptionFieldSet;
32533
32534 private string appIdField;
32535
32536 private bool appIdFieldSet;
32537
32538 private string iconField;
32539
32540 private bool iconFieldSet;
32541
32542 private int iconIndexField;
32543
32544 private bool iconIndexFieldSet;
32545
32546 private string handlerField;
32547
32548 private bool handlerFieldSet;
32549
32550 private string argumentField;
32551
32552 private bool argumentFieldSet;
32553
32554 private YesNoType relativePathField;
32555
32556 private bool relativePathFieldSet;
32557
32558 private YesNoType advertiseField;
32559
32560 private bool advertiseFieldSet;
32561
32562 private ThreadingModelType threadingModelField;
32563
32564 private bool threadingModelFieldSet;
32565
32566 private string versionField;
32567
32568 private bool versionFieldSet;
32569
32570 private YesNoType insertableField;
32571
32572 private bool insertableFieldSet;
32573
32574 private YesNoType programmableField;
32575
32576 private bool programmableFieldSet;
32577
32578 private string foreignServerField;
32579
32580 private bool foreignServerFieldSet;
32581
32582 private string serverField;
32583
32584 private bool serverFieldSet;
32585
32586 private YesNoType shortPathField;
32587
32588 private bool shortPathFieldSet;
32589
32590 private YesNoType safeForScriptingField;
32591
32592 private bool safeForScriptingFieldSet;
32593
32594 private YesNoType safeForInitializingField;
32595
32596 private bool safeForInitializingFieldSet;
32597
32598 private YesNoType controlField;
32599
32600 private bool controlFieldSet;
32601
32602 private ISchemaElement parentElement;
32603
32604 public Class()
32605 {
32606 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
32607 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ProgId)));
32608 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileTypeMask)));
32609 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Interface)));
32610 this.children = childCollection0;
32611 }
32612
32613 public virtual IEnumerable Children
32614 {
32615 get
32616 {
32617 return this.children;
32618 }
32619 }
32620
32621 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
32622 public virtual IEnumerable this[System.Type childType]
32623 {
32624 get
32625 {
32626 return this.children.Filter(childType);
32627 }
32628 }
32629
32630 /// <summary>
32631 /// The Class identifier (CLSID) of a COM server.
32632 /// </summary>
32633 public string Id
32634 {
32635 get
32636 {
32637 return this.idField;
32638 }
32639 set
32640 {
32641 this.idFieldSet = true;
32642 this.idField = value;
32643 }
32644 }
32645
32646 /// <summary>
32647 /// The server context(s) for this COM server. This attribute is optional for VB6 libraries that are marked "PublicNotCreateable".
32648 /// Class elements marked Advertised must specify at least one server context. It is most common for there to be a single value
32649 /// for the Context attribute.
32650 /// </summary>
32651 public ContextType Context
32652 {
32653 get
32654 {
32655 return this.contextField;
32656 }
32657 set
32658 {
32659 this.contextFieldSet = true;
32660 this.contextField = value;
32661 }
32662 }
32663
32664 /// <summary>
32665 /// Localized description associated with the Class ID and Program ID.
32666 /// </summary>
32667 public string Description
32668 {
32669 get
32670 {
32671 return this.descriptionField;
32672 }
32673 set
32674 {
32675 this.descriptionFieldSet = true;
32676 this.descriptionField = value;
32677 }
32678 }
32679
32680 /// <summary>
32681 /// This attribute is only allowed when a Class is advertised. Using this attribute will reference an Application ID
32682 /// containing DCOM information for the associated application GUID. The value must correspond to an AppId/@Id of an
32683 /// AppId element nested under a Fragment, Module, or Product element. To associate an AppId with a non-advertised
32684 /// class, nest the class within a parent AppId element.
32685 /// </summary>
32686 public string AppId
32687 {
32688 get
32689 {
32690 return this.appIdField;
32691 }
32692 set
32693 {
32694 this.appIdFieldSet = true;
32695 this.appIdField = value;
32696 }
32697 }
32698
32699 /// <summary>
32700 /// The file providing the icon associated with this CLSID. Reference to an Icon element
32701 /// (should match the Id attribute of an Icon element). This is currently not supported if the
32702 /// value of the Advertise attribute is "no".
32703 /// </summary>
32704 public string Icon
32705 {
32706 get
32707 {
32708 return this.iconField;
32709 }
32710 set
32711 {
32712 this.iconFieldSet = true;
32713 this.iconField = value;
32714 }
32715 }
32716
32717 /// <summary>
32718 /// Icon index into the icon file.
32719 /// </summary>
32720 public int IconIndex
32721 {
32722 get
32723 {
32724 return this.iconIndexField;
32725 }
32726 set
32727 {
32728 this.iconIndexFieldSet = true;
32729 this.iconIndexField = value;
32730 }
32731 }
32732
32733 /// <summary>
32734 /// The default inproc handler. May be optionally provided only for Context = LocalServer or
32735 /// LocalServer32. Value of "1" creates a 16-bit InprocHandler (appearing as the InprocHandler
32736 /// value). Value of "2" creates a 32-bit InprocHandler (appearing as the InprocHandler32 value).
32737 /// Value of "3" creates 16-bit as well as 32-bit InprocHandlers. A non-numeric value is treated
32738 /// as a system file that serves as the 32-bit InprocHandler (appearing as the InprocHandler32 value).
32739 /// </summary>
32740 public string Handler
32741 {
32742 get
32743 {
32744 return this.handlerField;
32745 }
32746 set
32747 {
32748 this.handlerFieldSet = true;
32749 this.handlerField = value;
32750 }
32751 }
32752
32753 /// <summary>
32754 /// This column is optional only when the Context column is set to "LocalServer"
32755 /// or "LocalServer32" server context. The text is registered as the argument against
32756 /// the OLE server and is used by OLE for invoking the server. Note that the resolution
32757 /// of properties in the Argument field is limited. A property formatted as [Property] in
32758 /// this field can only be resolved if the property already has the intended value when
32759 /// the component owning the class is installed. For example, for the argument "[#MyDoc.doc]"
32760 /// to resolve to the correct value, the same process must be installing the file MyDoc.doc and the
32761 /// component that owns the class.
32762 /// </summary>
32763 public string Argument
32764 {
32765 get
32766 {
32767 return this.argumentField;
32768 }
32769 set
32770 {
32771 this.argumentFieldSet = true;
32772 this.argumentField = value;
32773 }
32774 }
32775
32776 /// <summary>
32777 /// When the value is "yes", the bare file name can be used for COM servers. The installer
32778 /// registers the file name only instead of the complete path. This enables the server in
32779 /// the current directory to take precedence and allows multiple copies of the same component.
32780 /// </summary>
32781 public YesNoType RelativePath
32782 {
32783 get
32784 {
32785 return this.relativePathField;
32786 }
32787 set
32788 {
32789 this.relativePathFieldSet = true;
32790 this.relativePathField = value;
32791 }
32792 }
32793
32794 /// <summary>
32795 /// Set this value to "yes" in order to create a normal Class table row. Set this value to
32796 /// "no" in order to generate Registry rows that perform similar registration (without the
32797 /// often problematic Windows Installer advertising behavior).
32798 /// </summary>
32799 public YesNoType Advertise
32800 {
32801 get
32802 {
32803 return this.advertiseField;
32804 }
32805 set
32806 {
32807 this.advertiseFieldSet = true;
32808 this.advertiseField = value;
32809 }
32810 }
32811
32812 /// <summary>
32813 /// Threading model for the CLSID.
32814 /// </summary>
32815 public ThreadingModelType ThreadingModel
32816 {
32817 get
32818 {
32819 return this.threadingModelField;
32820 }
32821 set
32822 {
32823 this.threadingModelFieldSet = true;
32824 this.threadingModelField = value;
32825 }
32826 }
32827
32828 /// <summary>
32829 /// Version for the CLSID.
32830 /// </summary>
32831 public string Version
32832 {
32833 get
32834 {
32835 return this.versionField;
32836 }
32837 set
32838 {
32839 this.versionFieldSet = true;
32840 this.versionField = value;
32841 }
32842 }
32843
32844 /// <summary>
32845 /// Specifies the CLSID may be insertable.
32846 /// </summary>
32847 public YesNoType Insertable
32848 {
32849 get
32850 {
32851 return this.insertableField;
32852 }
32853 set
32854 {
32855 this.insertableFieldSet = true;
32856 this.insertableField = value;
32857 }
32858 }
32859
32860 /// <summary>
32861 /// Specifies the CLSID may be programmable.
32862 /// </summary>
32863 public YesNoType Programmable
32864 {
32865 get
32866 {
32867 return this.programmableField;
32868 }
32869 set
32870 {
32871 this.programmableFieldSet = true;
32872 this.programmableField = value;
32873 }
32874 }
32875
32876 /// <summary>
32877 /// May only be specified if the value of the Advertise attribute is "no" and Server has not been specified. In addition, it may only
32878 /// be used when the Class element is directly under the Component element. The value can be
32879 /// that of an registry type (REG_SZ). This attribute should be used to specify foreign servers, such as mscoree.dll if needed.
32880 /// </summary>
32881 public string ForeignServer
32882 {
32883 get
32884 {
32885 return this.foreignServerField;
32886 }
32887 set
32888 {
32889 this.foreignServerFieldSet = true;
32890 this.foreignServerField = value;
32891 }
32892 }
32893
32894 /// <summary>
32895 /// May only be specified if the value of the Advertise attribute is "no" and the ForeignServer attribute is not specified. File Id of the
32896 /// COM server file. If this element is nested under a File element, this value defaults to
32897 /// the value of the parent File/@Id.
32898 /// </summary>
32899 public string Server
32900 {
32901 get
32902 {
32903 return this.serverField;
32904 }
32905 set
32906 {
32907 this.serverFieldSet = true;
32908 this.serverField = value;
32909 }
32910 }
32911
32912 /// <summary>
32913 /// Specifies whether or not to use the short path for the COM server. This can only apply when Advertise is set to 'no'. The default is 'no' meaning that it will use the long file name for the COM server.
32914 /// </summary>
32915 public YesNoType ShortPath
32916 {
32917 get
32918 {
32919 return this.shortPathField;
32920 }
32921 set
32922 {
32923 this.shortPathFieldSet = true;
32924 this.shortPathField = value;
32925 }
32926 }
32927
32928 /// <summary>
32929 /// May only be specified if the value of the Advertise attribute is "no".
32930 /// </summary>
32931 public YesNoType SafeForScripting
32932 {
32933 get
32934 {
32935 return this.safeForScriptingField;
32936 }
32937 set
32938 {
32939 this.safeForScriptingFieldSet = true;
32940 this.safeForScriptingField = value;
32941 }
32942 }
32943
32944 /// <summary>
32945 /// May only be specified if the value of the Advertise attribute is "no".
32946 /// </summary>
32947 public YesNoType SafeForInitializing
32948 {
32949 get
32950 {
32951 return this.safeForInitializingField;
32952 }
32953 set
32954 {
32955 this.safeForInitializingFieldSet = true;
32956 this.safeForInitializingField = value;
32957 }
32958 }
32959
32960 /// <summary>
32961 /// Set this attribute's value to 'yes' to identify an object as an ActiveX Control. The default value is 'no'.
32962 /// </summary>
32963 public YesNoType Control
32964 {
32965 get
32966 {
32967 return this.controlField;
32968 }
32969 set
32970 {
32971 this.controlFieldSet = true;
32972 this.controlField = value;
32973 }
32974 }
32975
32976 public virtual ISchemaElement ParentElement
32977 {
32978 get
32979 {
32980 return this.parentElement;
32981 }
32982 set
32983 {
32984 this.parentElement = value;
32985 }
32986 }
32987
32988 public virtual void AddChild(ISchemaElement child)
32989 {
32990 if ((null == child))
32991 {
32992 throw new ArgumentNullException("child");
32993 }
32994 this.children.AddElement(child);
32995 child.ParentElement = this;
32996 }
32997
32998 public virtual void RemoveChild(ISchemaElement child)
32999 {
33000 if ((null == child))
33001 {
33002 throw new ArgumentNullException("child");
33003 }
33004 this.children.RemoveElement(child);
33005 child.ParentElement = null;
33006 }
33007
33008 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
33009 ISchemaElement ICreateChildren.CreateChild(string childName)
33010 {
33011 if (String.IsNullOrEmpty(childName))
33012 {
33013 throw new ArgumentNullException("childName");
33014 }
33015 ISchemaElement childValue = null;
33016 if (("ProgId" == childName))
33017 {
33018 childValue = new ProgId();
33019 }
33020 if (("FileTypeMask" == childName))
33021 {
33022 childValue = new FileTypeMask();
33023 }
33024 if (("Interface" == childName))
33025 {
33026 childValue = new Interface();
33027 }
33028 if ((null == childValue))
33029 {
33030 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
33031 }
33032 return childValue;
33033 }
33034
33035 /// <summary>
33036 /// Tries to parse a ContextType from a string.
33037 /// </summary>
33038 public static bool TryParseContextType(string value, out ContextType parsedValue)
33039 {
33040 parsedValue = ContextType.None;
33041 if (string.IsNullOrEmpty(value))
33042 {
33043 return false;
33044 }
33045 string[] splitValue = value.Split(" \t\r\n".ToCharArray(), System.StringSplitOptions.RemoveEmptyEntries);
33046 for (System.Collections.IEnumerator enumerator = splitValue.GetEnumerator(); enumerator.MoveNext();
33047 )
33048 {
33049 string currentValue = ((string)(enumerator.Current));
33050 if (("LocalServer" == currentValue))
33051 {
33052 parsedValue = (parsedValue | ContextType.LocalServer);
33053 }
33054 else
33055 {
33056 if (("LocalServer32" == currentValue))
33057 {
33058 parsedValue = (parsedValue | ContextType.LocalServer32);
33059 }
33060 else
33061 {
33062 if (("InprocServer" == currentValue))
33063 {
33064 parsedValue = (parsedValue | ContextType.InprocServer);
33065 }
33066 else
33067 {
33068 if (("InprocServer32" == currentValue))
33069 {
33070 parsedValue = (parsedValue | ContextType.InprocServer32);
33071 }
33072 else
33073 {
33074 parsedValue = ContextType.None;
33075 return false;
33076 }
33077 }
33078 }
33079 }
33080 }
33081 return true;
33082 }
33083
33084 /// <summary>
33085 /// Parses a ThreadingModelType from a string.
33086 /// </summary>
33087 public static ThreadingModelType ParseThreadingModelType(string value)
33088 {
33089 ThreadingModelType parsedValue;
33090 Class.TryParseThreadingModelType(value, out parsedValue);
33091 return parsedValue;
33092 }
33093
33094 /// <summary>
33095 /// Tries to parse a ThreadingModelType from a string.
33096 /// </summary>
33097 public static bool TryParseThreadingModelType(string value, out ThreadingModelType parsedValue)
33098 {
33099 parsedValue = ThreadingModelType.NotSet;
33100 if (string.IsNullOrEmpty(value))
33101 {
33102 return false;
33103 }
33104 if (("apartment" == value))
33105 {
33106 parsedValue = ThreadingModelType.apartment;
33107 }
33108 else
33109 {
33110 if (("free" == value))
33111 {
33112 parsedValue = ThreadingModelType.free;
33113 }
33114 else
33115 {
33116 if (("both" == value))
33117 {
33118 parsedValue = ThreadingModelType.both;
33119 }
33120 else
33121 {
33122 if (("neutral" == value))
33123 {
33124 parsedValue = ThreadingModelType.neutral;
33125 }
33126 else
33127 {
33128 if (("single" == value))
33129 {
33130 parsedValue = ThreadingModelType.single;
33131 }
33132 else
33133 {
33134 if (("rental" == value))
33135 {
33136 parsedValue = ThreadingModelType.rental;
33137 }
33138 else
33139 {
33140 parsedValue = ThreadingModelType.IllegalValue;
33141 return false;
33142 }
33143 }
33144 }
33145 }
33146 }
33147 }
33148 return true;
33149 }
33150
33151 /// <summary>
33152 /// Processes this element and all child elements into an XmlWriter.
33153 /// </summary>
33154 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
33155 public virtual void OutputXml(XmlWriter writer)
33156 {
33157 if ((null == writer))
33158 {
33159 throw new ArgumentNullException("writer");
33160 }
33161 writer.WriteStartElement("Class", "http://wixtoolset.org/schemas/v4/wxs");
33162 if (this.idFieldSet)
33163 {
33164 writer.WriteAttributeString("Id", this.idField);
33165 }
33166 if (this.contextFieldSet)
33167 {
33168 string outputValue = "";
33169 if (((this.contextField & ContextType.LocalServer)
33170 != 0))
33171 {
33172 if ((outputValue.Length != 0))
33173 {
33174 outputValue = (outputValue + " ");
33175 }
33176 outputValue = (outputValue + "LocalServer");
33177 }
33178 if (((this.contextField & ContextType.LocalServer32)
33179 != 0))
33180 {
33181 if ((outputValue.Length != 0))
33182 {
33183 outputValue = (outputValue + " ");
33184 }
33185 outputValue = (outputValue + "LocalServer32");
33186 }
33187 if (((this.contextField & ContextType.InprocServer)
33188 != 0))
33189 {
33190 if ((outputValue.Length != 0))
33191 {
33192 outputValue = (outputValue + " ");
33193 }
33194 outputValue = (outputValue + "InprocServer");
33195 }
33196 if (((this.contextField & ContextType.InprocServer32)
33197 != 0))
33198 {
33199 if ((outputValue.Length != 0))
33200 {
33201 outputValue = (outputValue + " ");
33202 }
33203 outputValue = (outputValue + "InprocServer32");
33204 }
33205 writer.WriteAttributeString("Context", outputValue);
33206 }
33207 if (this.descriptionFieldSet)
33208 {
33209 writer.WriteAttributeString("Description", this.descriptionField);
33210 }
33211 if (this.appIdFieldSet)
33212 {
33213 writer.WriteAttributeString("AppId", this.appIdField);
33214 }
33215 if (this.iconFieldSet)
33216 {
33217 writer.WriteAttributeString("Icon", this.iconField);
33218 }
33219 if (this.iconIndexFieldSet)
33220 {
33221 writer.WriteAttributeString("IconIndex", this.iconIndexField.ToString(CultureInfo.InvariantCulture));
33222 }
33223 if (this.handlerFieldSet)
33224 {
33225 writer.WriteAttributeString("Handler", this.handlerField);
33226 }
33227 if (this.argumentFieldSet)
33228 {
33229 writer.WriteAttributeString("Argument", this.argumentField);
33230 }
33231 if (this.relativePathFieldSet)
33232 {
33233 if ((this.relativePathField == YesNoType.no))
33234 {
33235 writer.WriteAttributeString("RelativePath", "no");
33236 }
33237 if ((this.relativePathField == YesNoType.yes))
33238 {
33239 writer.WriteAttributeString("RelativePath", "yes");
33240 }
33241 }
33242 if (this.advertiseFieldSet)
33243 {
33244 if ((this.advertiseField == YesNoType.no))
33245 {
33246 writer.WriteAttributeString("Advertise", "no");
33247 }
33248 if ((this.advertiseField == YesNoType.yes))
33249 {
33250 writer.WriteAttributeString("Advertise", "yes");
33251 }
33252 }
33253 if (this.threadingModelFieldSet)
33254 {
33255 if ((this.threadingModelField == ThreadingModelType.apartment))
33256 {
33257 writer.WriteAttributeString("ThreadingModel", "apartment");
33258 }
33259 if ((this.threadingModelField == ThreadingModelType.free))
33260 {
33261 writer.WriteAttributeString("ThreadingModel", "free");
33262 }
33263 if ((this.threadingModelField == ThreadingModelType.both))
33264 {
33265 writer.WriteAttributeString("ThreadingModel", "both");
33266 }
33267 if ((this.threadingModelField == ThreadingModelType.neutral))
33268 {
33269 writer.WriteAttributeString("ThreadingModel", "neutral");
33270 }
33271 if ((this.threadingModelField == ThreadingModelType.single))
33272 {
33273 writer.WriteAttributeString("ThreadingModel", "single");
33274 }
33275 if ((this.threadingModelField == ThreadingModelType.rental))
33276 {
33277 writer.WriteAttributeString("ThreadingModel", "rental");
33278 }
33279 }
33280 if (this.versionFieldSet)
33281 {
33282 writer.WriteAttributeString("Version", this.versionField);
33283 }
33284 if (this.insertableFieldSet)
33285 {
33286 if ((this.insertableField == YesNoType.no))
33287 {
33288 writer.WriteAttributeString("Insertable", "no");
33289 }
33290 if ((this.insertableField == YesNoType.yes))
33291 {
33292 writer.WriteAttributeString("Insertable", "yes");
33293 }
33294 }
33295 if (this.programmableFieldSet)
33296 {
33297 if ((this.programmableField == YesNoType.no))
33298 {
33299 writer.WriteAttributeString("Programmable", "no");
33300 }
33301 if ((this.programmableField == YesNoType.yes))
33302 {
33303 writer.WriteAttributeString("Programmable", "yes");
33304 }
33305 }
33306 if (this.foreignServerFieldSet)
33307 {
33308 writer.WriteAttributeString("ForeignServer", this.foreignServerField);
33309 }
33310 if (this.serverFieldSet)
33311 {
33312 writer.WriteAttributeString("Server", this.serverField);
33313 }
33314 if (this.shortPathFieldSet)
33315 {
33316 if ((this.shortPathField == YesNoType.no))
33317 {
33318 writer.WriteAttributeString("ShortPath", "no");
33319 }
33320 if ((this.shortPathField == YesNoType.yes))
33321 {
33322 writer.WriteAttributeString("ShortPath", "yes");
33323 }
33324 }
33325 if (this.safeForScriptingFieldSet)
33326 {
33327 if ((this.safeForScriptingField == YesNoType.no))
33328 {
33329 writer.WriteAttributeString("SafeForScripting", "no");
33330 }
33331 if ((this.safeForScriptingField == YesNoType.yes))
33332 {
33333 writer.WriteAttributeString("SafeForScripting", "yes");
33334 }
33335 }
33336 if (this.safeForInitializingFieldSet)
33337 {
33338 if ((this.safeForInitializingField == YesNoType.no))
33339 {
33340 writer.WriteAttributeString("SafeForInitializing", "no");
33341 }
33342 if ((this.safeForInitializingField == YesNoType.yes))
33343 {
33344 writer.WriteAttributeString("SafeForInitializing", "yes");
33345 }
33346 }
33347 if (this.controlFieldSet)
33348 {
33349 if ((this.controlField == YesNoType.no))
33350 {
33351 writer.WriteAttributeString("Control", "no");
33352 }
33353 if ((this.controlField == YesNoType.yes))
33354 {
33355 writer.WriteAttributeString("Control", "yes");
33356 }
33357 }
33358 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
33359 {
33360 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
33361 childElement.OutputXml(writer);
33362 }
33363 writer.WriteEndElement();
33364 }
33365
33366 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
33367 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
33368 void ISetAttributes.SetAttribute(string name, string value)
33369 {
33370 if (String.IsNullOrEmpty(name))
33371 {
33372 throw new ArgumentNullException("name");
33373 }
33374 if (("Id" == name))
33375 {
33376 this.idField = value;
33377 this.idFieldSet = true;
33378 }
33379 if (("Context" == name))
33380 {
33381 Class.TryParseContextType(value, out this.contextField);
33382 this.contextFieldSet = true;
33383 }
33384 if (("Description" == name))
33385 {
33386 this.descriptionField = value;
33387 this.descriptionFieldSet = true;
33388 }
33389 if (("AppId" == name))
33390 {
33391 this.appIdField = value;
33392 this.appIdFieldSet = true;
33393 }
33394 if (("Icon" == name))
33395 {
33396 this.iconField = value;
33397 this.iconFieldSet = true;
33398 }
33399 if (("IconIndex" == name))
33400 {
33401 this.iconIndexField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
33402 this.iconIndexFieldSet = true;
33403 }
33404 if (("Handler" == name))
33405 {
33406 this.handlerField = value;
33407 this.handlerFieldSet = true;
33408 }
33409 if (("Argument" == name))
33410 {
33411 this.argumentField = value;
33412 this.argumentFieldSet = true;
33413 }
33414 if (("RelativePath" == name))
33415 {
33416 this.relativePathField = Enums.ParseYesNoType(value);
33417 this.relativePathFieldSet = true;
33418 }
33419 if (("Advertise" == name))
33420 {
33421 this.advertiseField = Enums.ParseYesNoType(value);
33422 this.advertiseFieldSet = true;
33423 }
33424 if (("ThreadingModel" == name))
33425 {
33426 this.threadingModelField = Class.ParseThreadingModelType(value);
33427 this.threadingModelFieldSet = true;
33428 }
33429 if (("Version" == name))
33430 {
33431 this.versionField = value;
33432 this.versionFieldSet = true;
33433 }
33434 if (("Insertable" == name))
33435 {
33436 this.insertableField = Enums.ParseYesNoType(value);
33437 this.insertableFieldSet = true;
33438 }
33439 if (("Programmable" == name))
33440 {
33441 this.programmableField = Enums.ParseYesNoType(value);
33442 this.programmableFieldSet = true;
33443 }
33444 if (("ForeignServer" == name))
33445 {
33446 this.foreignServerField = value;
33447 this.foreignServerFieldSet = true;
33448 }
33449 if (("Server" == name))
33450 {
33451 this.serverField = value;
33452 this.serverFieldSet = true;
33453 }
33454 if (("ShortPath" == name))
33455 {
33456 this.shortPathField = Enums.ParseYesNoType(value);
33457 this.shortPathFieldSet = true;
33458 }
33459 if (("SafeForScripting" == name))
33460 {
33461 this.safeForScriptingField = Enums.ParseYesNoType(value);
33462 this.safeForScriptingFieldSet = true;
33463 }
33464 if (("SafeForInitializing" == name))
33465 {
33466 this.safeForInitializingField = Enums.ParseYesNoType(value);
33467 this.safeForInitializingFieldSet = true;
33468 }
33469 if (("Control" == name))
33470 {
33471 this.controlField = Enums.ParseYesNoType(value);
33472 this.controlFieldSet = true;
33473 }
33474 }
33475
33476 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
33477 [Flags()]
33478 public enum ContextType
33479 {
33480
33481 None = 0,
33482
33483 /// <summary>
33484 /// A 16-bit local server application.
33485 /// </summary>
33486 LocalServer = 1,
33487
33488 /// <summary>
33489 /// A 32-bit local server application.
33490 /// </summary>
33491 LocalServer32 = 2,
33492
33493 /// <summary>
33494 /// A 16-bit in-process server DLL.
33495 /// </summary>
33496 InprocServer = 4,
33497
33498 /// <summary>
33499 /// A 32-bit in-process server DLL.
33500 /// </summary>
33501 InprocServer32 = 8,
33502 }
33503
33504 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
33505 public enum ThreadingModelType
33506 {
33507
33508 IllegalValue = int.MaxValue,
33509
33510 NotSet = -1,
33511
33512 apartment,
33513
33514 free,
33515
33516 both,
33517
33518 neutral,
33519
33520 single,
33521
33522 rental,
33523 }
33524 }
33525
33526 /// <summary>
33527 /// COM Interface registration for parent TypeLib.
33528 /// </summary>
33529 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
33530 public class Interface : ISchemaElement, ISetAttributes
33531 {
33532
33533 private string idField;
33534
33535 private bool idFieldSet;
33536
33537 private string nameField;
33538
33539 private bool nameFieldSet;
33540
33541 private string baseInterfaceField;
33542
33543 private bool baseInterfaceFieldSet;
33544
33545 private string proxyStubClassIdField;
33546
33547 private bool proxyStubClassIdFieldSet;
33548
33549 private string proxyStubClassId32Field;
33550
33551 private bool proxyStubClassId32FieldSet;
33552
33553 private int numMethodsField;
33554
33555 private bool numMethodsFieldSet;
33556
33557 private YesNoType versionedField;
33558
33559 private bool versionedFieldSet;
33560
33561 private ISchemaElement parentElement;
33562
33563 /// <summary>
33564 /// GUID identifier for COM Interface.
33565 /// </summary>
33566 public string Id
33567 {
33568 get
33569 {
33570 return this.idField;
33571 }
33572 set
33573 {
33574 this.idFieldSet = true;
33575 this.idField = value;
33576 }
33577 }
33578
33579 /// <summary>
33580 /// Name for COM Interface.
33581 /// </summary>
33582 public string Name
33583 {
33584 get
33585 {
33586 return this.nameField;
33587 }
33588 set
33589 {
33590 this.nameFieldSet = true;
33591 this.nameField = value;
33592 }
33593 }
33594
33595 /// <summary>
33596 /// Identifies the interface from which the current interface is derived.
33597 /// </summary>
33598 public string BaseInterface
33599 {
33600 get
33601 {
33602 return this.baseInterfaceField;
33603 }
33604 set
33605 {
33606 this.baseInterfaceFieldSet = true;
33607 this.baseInterfaceField = value;
33608 }
33609 }
33610
33611 /// <summary>
33612 /// GUID CLSID for proxy stub to COM Interface.
33613 /// </summary>
33614 public string ProxyStubClassId
33615 {
33616 get
33617 {
33618 return this.proxyStubClassIdField;
33619 }
33620 set
33621 {
33622 this.proxyStubClassIdFieldSet = true;
33623 this.proxyStubClassIdField = value;
33624 }
33625 }
33626
33627 /// <summary>
33628 /// GUID CLSID for 32-bit proxy stub to COM Interface.
33629 /// </summary>
33630 public string ProxyStubClassId32
33631 {
33632 get
33633 {
33634 return this.proxyStubClassId32Field;
33635 }
33636 set
33637 {
33638 this.proxyStubClassId32FieldSet = true;
33639 this.proxyStubClassId32Field = value;
33640 }
33641 }
33642
33643 /// <summary>
33644 /// Number of methods implemented on COM Interface.
33645 /// </summary>
33646 public int NumMethods
33647 {
33648 get
33649 {
33650 return this.numMethodsField;
33651 }
33652 set
33653 {
33654 this.numMethodsFieldSet = true;
33655 this.numMethodsField = value;
33656 }
33657 }
33658
33659 /// <summary>
33660 /// Determines whether a Typelib version entry should be created with the other COM Interface registry keys. Default is 'yes'.
33661 /// </summary>
33662 public YesNoType Versioned
33663 {
33664 get
33665 {
33666 return this.versionedField;
33667 }
33668 set
33669 {
33670 this.versionedFieldSet = true;
33671 this.versionedField = value;
33672 }
33673 }
33674
33675 public virtual ISchemaElement ParentElement
33676 {
33677 get
33678 {
33679 return this.parentElement;
33680 }
33681 set
33682 {
33683 this.parentElement = value;
33684 }
33685 }
33686
33687 /// <summary>
33688 /// Processes this element and all child elements into an XmlWriter.
33689 /// </summary>
33690 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
33691 public virtual void OutputXml(XmlWriter writer)
33692 {
33693 if ((null == writer))
33694 {
33695 throw new ArgumentNullException("writer");
33696 }
33697 writer.WriteStartElement("Interface", "http://wixtoolset.org/schemas/v4/wxs");
33698 if (this.idFieldSet)
33699 {
33700 writer.WriteAttributeString("Id", this.idField);
33701 }
33702 if (this.nameFieldSet)
33703 {
33704 writer.WriteAttributeString("Name", this.nameField);
33705 }
33706 if (this.baseInterfaceFieldSet)
33707 {
33708 writer.WriteAttributeString("BaseInterface", this.baseInterfaceField);
33709 }
33710 if (this.proxyStubClassIdFieldSet)
33711 {
33712 writer.WriteAttributeString("ProxyStubClassId", this.proxyStubClassIdField);
33713 }
33714 if (this.proxyStubClassId32FieldSet)
33715 {
33716 writer.WriteAttributeString("ProxyStubClassId32", this.proxyStubClassId32Field);
33717 }
33718 if (this.numMethodsFieldSet)
33719 {
33720 writer.WriteAttributeString("NumMethods", this.numMethodsField.ToString(CultureInfo.InvariantCulture));
33721 }
33722 if (this.versionedFieldSet)
33723 {
33724 if ((this.versionedField == YesNoType.no))
33725 {
33726 writer.WriteAttributeString("Versioned", "no");
33727 }
33728 if ((this.versionedField == YesNoType.yes))
33729 {
33730 writer.WriteAttributeString("Versioned", "yes");
33731 }
33732 }
33733 writer.WriteEndElement();
33734 }
33735
33736 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
33737 void ISetAttributes.SetAttribute(string name, string value)
33738 {
33739 if (String.IsNullOrEmpty(name))
33740 {
33741 throw new ArgumentNullException("name");
33742 }
33743 if (("Id" == name))
33744 {
33745 this.idField = value;
33746 this.idFieldSet = true;
33747 }
33748 if (("Name" == name))
33749 {
33750 this.nameField = value;
33751 this.nameFieldSet = true;
33752 }
33753 if (("BaseInterface" == name))
33754 {
33755 this.baseInterfaceField = value;
33756 this.baseInterfaceFieldSet = true;
33757 }
33758 if (("ProxyStubClassId" == name))
33759 {
33760 this.proxyStubClassIdField = value;
33761 this.proxyStubClassIdFieldSet = true;
33762 }
33763 if (("ProxyStubClassId32" == name))
33764 {
33765 this.proxyStubClassId32Field = value;
33766 this.proxyStubClassId32FieldSet = true;
33767 }
33768 if (("NumMethods" == name))
33769 {
33770 this.numMethodsField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
33771 this.numMethodsFieldSet = true;
33772 }
33773 if (("Versioned" == name))
33774 {
33775 this.versionedField = Enums.ParseYesNoType(value);
33776 this.versionedFieldSet = true;
33777 }
33778 }
33779 }
33780
33781 /// <summary>
33782 /// FileType data for class Id registration.
33783 /// </summary>
33784 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
33785 public class FileTypeMask : ISchemaElement, ISetAttributes
33786 {
33787
33788 private int offsetField;
33789
33790 private bool offsetFieldSet;
33791
33792 private string maskField;
33793
33794 private bool maskFieldSet;
33795
33796 private string valueField;
33797
33798 private bool valueFieldSet;
33799
33800 private ISchemaElement parentElement;
33801
33802 /// <summary>
33803 /// Offset into file. If positive, offset is from the beginning; if negative, offset is from the end.
33804 /// </summary>
33805 public int Offset
33806 {
33807 get
33808 {
33809 return this.offsetField;
33810 }
33811 set
33812 {
33813 this.offsetFieldSet = true;
33814 this.offsetField = value;
33815 }
33816 }
33817
33818 /// <summary>
33819 /// Hex value that is AND'd against the bytes in the file at Offset.
33820 /// </summary>
33821 public string Mask
33822 {
33823 get
33824 {
33825 return this.maskField;
33826 }
33827 set
33828 {
33829 this.maskFieldSet = true;
33830 this.maskField = value;
33831 }
33832 }
33833
33834 /// <summary>
33835 /// If the result of the AND'ing of Mask with the bytes in the file is Value, the file is a match for this File Type.
33836 /// </summary>
33837 public string Value
33838 {
33839 get
33840 {
33841 return this.valueField;
33842 }
33843 set
33844 {
33845 this.valueFieldSet = true;
33846 this.valueField = value;
33847 }
33848 }
33849
33850 public virtual ISchemaElement ParentElement
33851 {
33852 get
33853 {
33854 return this.parentElement;
33855 }
33856 set
33857 {
33858 this.parentElement = value;
33859 }
33860 }
33861
33862 /// <summary>
33863 /// Processes this element and all child elements into an XmlWriter.
33864 /// </summary>
33865 public virtual void OutputXml(XmlWriter writer)
33866 {
33867 if ((null == writer))
33868 {
33869 throw new ArgumentNullException("writer");
33870 }
33871 writer.WriteStartElement("FileTypeMask", "http://wixtoolset.org/schemas/v4/wxs");
33872 if (this.offsetFieldSet)
33873 {
33874 writer.WriteAttributeString("Offset", this.offsetField.ToString(CultureInfo.InvariantCulture));
33875 }
33876 if (this.maskFieldSet)
33877 {
33878 writer.WriteAttributeString("Mask", this.maskField);
33879 }
33880 if (this.valueFieldSet)
33881 {
33882 writer.WriteAttributeString("Value", this.valueField);
33883 }
33884 writer.WriteEndElement();
33885 }
33886
33887 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
33888 void ISetAttributes.SetAttribute(string name, string value)
33889 {
33890 if (String.IsNullOrEmpty(name))
33891 {
33892 throw new ArgumentNullException("name");
33893 }
33894 if (("Offset" == name))
33895 {
33896 this.offsetField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
33897 this.offsetFieldSet = true;
33898 }
33899 if (("Mask" == name))
33900 {
33901 this.maskField = value;
33902 this.maskFieldSet = true;
33903 }
33904 if (("Value" == name))
33905 {
33906 this.valueField = value;
33907 this.valueFieldSet = true;
33908 }
33909 }
33910 }
33911
33912 /// <summary>
33913 /// Service or group of services that must start before the parent service.
33914 /// </summary>
33915 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
33916 public class ServiceDependency : ISchemaElement, ISetAttributes
33917 {
33918
33919 private string idField;
33920
33921 private bool idFieldSet;
33922
33923 private YesNoType groupField;
33924
33925 private bool groupFieldSet;
33926
33927 private ISchemaElement parentElement;
33928
33929 /// <summary>
33930 /// The value of this attribute should be one of the following:
33931 /// </summary>
33932 public string Id
33933 {
33934 get
33935 {
33936 return this.idField;
33937 }
33938 set
33939 {
33940 this.idFieldSet = true;
33941 this.idField = value;
33942 }
33943 }
33944
33945 /// <summary>
33946 /// Set to 'yes' to indicate that the value in the Id attribute is the name of a group of services.
33947 /// </summary>
33948 public YesNoType Group
33949 {
33950 get
33951 {
33952 return this.groupField;
33953 }
33954 set
33955 {
33956 this.groupFieldSet = true;
33957 this.groupField = value;
33958 }
33959 }
33960
33961 public virtual ISchemaElement ParentElement
33962 {
33963 get
33964 {
33965 return this.parentElement;
33966 }
33967 set
33968 {
33969 this.parentElement = value;
33970 }
33971 }
33972
33973 /// <summary>
33974 /// Processes this element and all child elements into an XmlWriter.
33975 /// </summary>
33976 public virtual void OutputXml(XmlWriter writer)
33977 {
33978 if ((null == writer))
33979 {
33980 throw new ArgumentNullException("writer");
33981 }
33982 writer.WriteStartElement("ServiceDependency", "http://wixtoolset.org/schemas/v4/wxs");
33983 if (this.idFieldSet)
33984 {
33985 writer.WriteAttributeString("Id", this.idField);
33986 }
33987 if (this.groupFieldSet)
33988 {
33989 if ((this.groupField == YesNoType.no))
33990 {
33991 writer.WriteAttributeString("Group", "no");
33992 }
33993 if ((this.groupField == YesNoType.yes))
33994 {
33995 writer.WriteAttributeString("Group", "yes");
33996 }
33997 }
33998 writer.WriteEndElement();
33999 }
34000
34001 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
34002 void ISetAttributes.SetAttribute(string name, string value)
34003 {
34004 if (String.IsNullOrEmpty(name))
34005 {
34006 throw new ArgumentNullException("name");
34007 }
34008 if (("Id" == name))
34009 {
34010 this.idField = value;
34011 this.idFieldSet = true;
34012 }
34013 if (("Group" == name))
34014 {
34015 this.groupField = Enums.ParseYesNoType(value);
34016 this.groupFieldSet = true;
34017 }
34018 }
34019 }
34020
34021 /// <summary>
34022 /// Adds services for parent Component. Use the ServiceControl element to remove services.
34023 /// </summary>
34024 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
34025 public class ServiceInstall : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
34026 {
34027
34028 private ElementCollection children;
34029
34030 private string idField;
34031
34032 private bool idFieldSet;
34033
34034 private string nameField;
34035
34036 private bool nameFieldSet;
34037
34038 private string displayNameField;
34039
34040 private bool displayNameFieldSet;
34041
34042 private TypeType typeField;
34043
34044 private bool typeFieldSet;
34045
34046 private YesNoType interactiveField;
34047
34048 private bool interactiveFieldSet;
34049
34050 private StartType startField;
34051
34052 private bool startFieldSet;
34053
34054 private ErrorControlType errorControlField;
34055
34056 private bool errorControlFieldSet;
34057
34058 private YesNoType vitalField;
34059
34060 private bool vitalFieldSet;
34061
34062 private string loadOrderGroupField;
34063
34064 private bool loadOrderGroupFieldSet;
34065
34066 private string accountField;
34067
34068 private bool accountFieldSet;
34069
34070 private string passwordField;
34071
34072 private bool passwordFieldSet;
34073
34074 private string argumentsField;
34075
34076 private bool argumentsFieldSet;
34077
34078 private string descriptionField;
34079
34080 private bool descriptionFieldSet;
34081
34082 private YesNoType eraseDescriptionField;
34083
34084 private bool eraseDescriptionFieldSet;
34085
34086 private ISchemaElement parentElement;
34087
34088 public ServiceInstall()
34089 {
34090 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
34091 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx)));
34092 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceDependency)));
34093 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceConfig)));
34094 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceConfigFailureActions)));
34095 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
34096 this.children = childCollection0;
34097 }
34098
34099 public virtual IEnumerable Children
34100 {
34101 get
34102 {
34103 return this.children;
34104 }
34105 }
34106
34107 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
34108 public virtual IEnumerable this[System.Type childType]
34109 {
34110 get
34111 {
34112 return this.children.Filter(childType);
34113 }
34114 }
34115
34116 /// <summary>
34117 /// Unique identifier for this service configuration. This value will default to the Name attribute if not
34118 /// specified.
34119 /// </summary>
34120 public string Id
34121 {
34122 get
34123 {
34124 return this.idField;
34125 }
34126 set
34127 {
34128 this.idFieldSet = true;
34129 this.idField = value;
34130 }
34131 }
34132
34133 /// <summary>
34134 /// This column is the string that gives the service name to install.
34135 /// </summary>
34136 public string Name
34137 {
34138 get
34139 {
34140 return this.nameField;
34141 }
34142 set
34143 {
34144 this.nameFieldSet = true;
34145 this.nameField = value;
34146 }
34147 }
34148
34149 /// <summary>
34150 /// This column is the localizable string that user interface programs use to identify the service.
34151 /// </summary>
34152 public string DisplayName
34153 {
34154 get
34155 {
34156 return this.displayNameField;
34157 }
34158 set
34159 {
34160 this.displayNameFieldSet = true;
34161 this.displayNameField = value;
34162 }
34163 }
34164
34165 /// <summary>
34166 /// The Windows Installer does not currently support kernelDriver or systemDriver.
34167 /// </summary>
34168 public TypeType Type
34169 {
34170 get
34171 {
34172 return this.typeField;
34173 }
34174 set
34175 {
34176 this.typeFieldSet = true;
34177 this.typeField = value;
34178 }
34179 }
34180
34181 /// <summary>
34182 /// Whether or not the service interacts with the desktop.
34183 /// </summary>
34184 public YesNoType Interactive
34185 {
34186 get
34187 {
34188 return this.interactiveField;
34189 }
34190 set
34191 {
34192 this.interactiveFieldSet = true;
34193 this.interactiveField = value;
34194 }
34195 }
34196
34197 /// <summary>
34198 /// Determines when the service should be started. The Windows Installer does not support boot or system.
34199 /// </summary>
34200 public StartType Start
34201 {
34202 get
34203 {
34204 return this.startField;
34205 }
34206 set
34207 {
34208 this.startFieldSet = true;
34209 this.startField = value;
34210 }
34211 }
34212
34213 /// <summary>
34214 /// Determines what action should be taken on an error.
34215 /// </summary>
34216 public ErrorControlType ErrorControl
34217 {
34218 get
34219 {
34220 return this.errorControlField;
34221 }
34222 set
34223 {
34224 this.errorControlFieldSet = true;
34225 this.errorControlField = value;
34226 }
34227 }
34228
34229 /// <summary>
34230 /// The overall install should fail if this service fails to install.
34231 /// </summary>
34232 public YesNoType Vital
34233 {
34234 get
34235 {
34236 return this.vitalField;
34237 }
34238 set
34239 {
34240 this.vitalFieldSet = true;
34241 this.vitalField = value;
34242 }
34243 }
34244
34245 /// <summary>
34246 /// The load ordering group that this service should be a part of.
34247 /// </summary>
34248 public string LoadOrderGroup
34249 {
34250 get
34251 {
34252 return this.loadOrderGroupField;
34253 }
34254 set
34255 {
34256 this.loadOrderGroupFieldSet = true;
34257 this.loadOrderGroupField = value;
34258 }
34259 }
34260
34261 /// <summary>
34262 /// Fully qualified names must be used even for local accounts, e.g.: ".\LOCAL_ACCOUNT". Valid only when ServiceType is ownProcess.
34263 /// </summary>
34264 public string Account
34265 {
34266 get
34267 {
34268 return this.accountField;
34269 }
34270 set
34271 {
34272 this.accountFieldSet = true;
34273 this.accountField = value;
34274 }
34275 }
34276
34277 /// <summary>
34278 /// The password for the account. Valid only when the account has a password.
34279 /// </summary>
34280 public string Password
34281 {
34282 get
34283 {
34284 return this.passwordField;
34285 }
34286 set
34287 {
34288 this.passwordFieldSet = true;
34289 this.passwordField = value;
34290 }
34291 }
34292
34293 /// <summary>
34294 /// Contains any command line arguments or properties required to run the service.
34295 /// </summary>
34296 public string Arguments
34297 {
34298 get
34299 {
34300 return this.argumentsField;
34301 }
34302 set
34303 {
34304 this.argumentsFieldSet = true;
34305 this.argumentsField = value;
34306 }
34307 }
34308
34309 /// <summary>
34310 /// Sets the description of the service.
34311 /// </summary>
34312 public string Description
34313 {
34314 get
34315 {
34316 return this.descriptionField;
34317 }
34318 set
34319 {
34320 this.descriptionFieldSet = true;
34321 this.descriptionField = value;
34322 }
34323 }
34324
34325 /// <summary>
34326 /// Determines whether the existing service description will be ignored. If 'yes', the service description will be null, even if the Description attribute is set.
34327 /// </summary>
34328 public YesNoType EraseDescription
34329 {
34330 get
34331 {
34332 return this.eraseDescriptionField;
34333 }
34334 set
34335 {
34336 this.eraseDescriptionFieldSet = true;
34337 this.eraseDescriptionField = value;
34338 }
34339 }
34340
34341 public virtual ISchemaElement ParentElement
34342 {
34343 get
34344 {
34345 return this.parentElement;
34346 }
34347 set
34348 {
34349 this.parentElement = value;
34350 }
34351 }
34352
34353 public virtual void AddChild(ISchemaElement child)
34354 {
34355 if ((null == child))
34356 {
34357 throw new ArgumentNullException("child");
34358 }
34359 this.children.AddElement(child);
34360 child.ParentElement = this;
34361 }
34362
34363 public virtual void RemoveChild(ISchemaElement child)
34364 {
34365 if ((null == child))
34366 {
34367 throw new ArgumentNullException("child");
34368 }
34369 this.children.RemoveElement(child);
34370 child.ParentElement = null;
34371 }
34372
34373 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
34374 ISchemaElement ICreateChildren.CreateChild(string childName)
34375 {
34376 if (String.IsNullOrEmpty(childName))
34377 {
34378 throw new ArgumentNullException("childName");
34379 }
34380 ISchemaElement childValue = null;
34381 if (("PermissionEx" == childName))
34382 {
34383 childValue = new PermissionEx();
34384 }
34385 if (("ServiceDependency" == childName))
34386 {
34387 childValue = new ServiceDependency();
34388 }
34389 if (("ServiceConfig" == childName))
34390 {
34391 childValue = new ServiceConfig();
34392 }
34393 if (("ServiceConfigFailureActions" == childName))
34394 {
34395 childValue = new ServiceConfigFailureActions();
34396 }
34397 if ((null == childValue))
34398 {
34399 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
34400 }
34401 return childValue;
34402 }
34403
34404 /// <summary>
34405 /// Parses a TypeType from a string.
34406 /// </summary>
34407 public static TypeType ParseTypeType(string value)
34408 {
34409 TypeType parsedValue;
34410 ServiceInstall.TryParseTypeType(value, out parsedValue);
34411 return parsedValue;
34412 }
34413
34414 /// <summary>
34415 /// Tries to parse a TypeType from a string.
34416 /// </summary>
34417 public static bool TryParseTypeType(string value, out TypeType parsedValue)
34418 {
34419 parsedValue = TypeType.NotSet;
34420 if (string.IsNullOrEmpty(value))
34421 {
34422 return false;
34423 }
34424 if (("ownProcess" == value))
34425 {
34426 parsedValue = TypeType.ownProcess;
34427 }
34428 else
34429 {
34430 if (("shareProcess" == value))
34431 {
34432 parsedValue = TypeType.shareProcess;
34433 }
34434 else
34435 {
34436 if (("kernelDriver" == value))
34437 {
34438 parsedValue = TypeType.kernelDriver;
34439 }
34440 else
34441 {
34442 if (("systemDriver" == value))
34443 {
34444 parsedValue = TypeType.systemDriver;
34445 }
34446 else
34447 {
34448 parsedValue = TypeType.IllegalValue;
34449 return false;
34450 }
34451 }
34452 }
34453 }
34454 return true;
34455 }
34456
34457 /// <summary>
34458 /// Parses a StartType from a string.
34459 /// </summary>
34460 public static StartType ParseStartType(string value)
34461 {
34462 StartType parsedValue;
34463 ServiceInstall.TryParseStartType(value, out parsedValue);
34464 return parsedValue;
34465 }
34466
34467 /// <summary>
34468 /// Tries to parse a StartType from a string.
34469 /// </summary>
34470 public static bool TryParseStartType(string value, out StartType parsedValue)
34471 {
34472 parsedValue = StartType.NotSet;
34473 if (string.IsNullOrEmpty(value))
34474 {
34475 return false;
34476 }
34477 if (("auto" == value))
34478 {
34479 parsedValue = StartType.auto;
34480 }
34481 else
34482 {
34483 if (("demand" == value))
34484 {
34485 parsedValue = StartType.demand;
34486 }
34487 else
34488 {
34489 if (("disabled" == value))
34490 {
34491 parsedValue = StartType.disabled;
34492 }
34493 else
34494 {
34495 if (("boot" == value))
34496 {
34497 parsedValue = StartType.boot;
34498 }
34499 else
34500 {
34501 if (("system" == value))
34502 {
34503 parsedValue = StartType.system;
34504 }
34505 else
34506 {
34507 parsedValue = StartType.IllegalValue;
34508 return false;
34509 }
34510 }
34511 }
34512 }
34513 }
34514 return true;
34515 }
34516
34517 /// <summary>
34518 /// Parses a ErrorControlType from a string.
34519 /// </summary>
34520 public static ErrorControlType ParseErrorControlType(string value)
34521 {
34522 ErrorControlType parsedValue;
34523 ServiceInstall.TryParseErrorControlType(value, out parsedValue);
34524 return parsedValue;
34525 }
34526
34527 /// <summary>
34528 /// Tries to parse a ErrorControlType from a string.
34529 /// </summary>
34530 public static bool TryParseErrorControlType(string value, out ErrorControlType parsedValue)
34531 {
34532 parsedValue = ErrorControlType.NotSet;
34533 if (string.IsNullOrEmpty(value))
34534 {
34535 return false;
34536 }
34537 if (("ignore" == value))
34538 {
34539 parsedValue = ErrorControlType.ignore;
34540 }
34541 else
34542 {
34543 if (("normal" == value))
34544 {
34545 parsedValue = ErrorControlType.normal;
34546 }
34547 else
34548 {
34549 if (("critical" == value))
34550 {
34551 parsedValue = ErrorControlType.critical;
34552 }
34553 else
34554 {
34555 parsedValue = ErrorControlType.IllegalValue;
34556 return false;
34557 }
34558 }
34559 }
34560 return true;
34561 }
34562
34563 /// <summary>
34564 /// Processes this element and all child elements into an XmlWriter.
34565 /// </summary>
34566 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
34567 public virtual void OutputXml(XmlWriter writer)
34568 {
34569 if ((null == writer))
34570 {
34571 throw new ArgumentNullException("writer");
34572 }
34573 writer.WriteStartElement("ServiceInstall", "http://wixtoolset.org/schemas/v4/wxs");
34574 if (this.idFieldSet)
34575 {
34576 writer.WriteAttributeString("Id", this.idField);
34577 }
34578 if (this.nameFieldSet)
34579 {
34580 writer.WriteAttributeString("Name", this.nameField);
34581 }
34582 if (this.displayNameFieldSet)
34583 {
34584 writer.WriteAttributeString("DisplayName", this.displayNameField);
34585 }
34586 if (this.typeFieldSet)
34587 {
34588 if ((this.typeField == TypeType.ownProcess))
34589 {
34590 writer.WriteAttributeString("Type", "ownProcess");
34591 }
34592 if ((this.typeField == TypeType.shareProcess))
34593 {
34594 writer.WriteAttributeString("Type", "shareProcess");
34595 }
34596 if ((this.typeField == TypeType.kernelDriver))
34597 {
34598 writer.WriteAttributeString("Type", "kernelDriver");
34599 }
34600 if ((this.typeField == TypeType.systemDriver))
34601 {
34602 writer.WriteAttributeString("Type", "systemDriver");
34603 }
34604 }
34605 if (this.interactiveFieldSet)
34606 {
34607 if ((this.interactiveField == YesNoType.no))
34608 {
34609 writer.WriteAttributeString("Interactive", "no");
34610 }
34611 if ((this.interactiveField == YesNoType.yes))
34612 {
34613 writer.WriteAttributeString("Interactive", "yes");
34614 }
34615 }
34616 if (this.startFieldSet)
34617 {
34618 if ((this.startField == StartType.auto))
34619 {
34620 writer.WriteAttributeString("Start", "auto");
34621 }
34622 if ((this.startField == StartType.demand))
34623 {
34624 writer.WriteAttributeString("Start", "demand");
34625 }
34626 if ((this.startField == StartType.disabled))
34627 {
34628 writer.WriteAttributeString("Start", "disabled");
34629 }
34630 if ((this.startField == StartType.boot))
34631 {
34632 writer.WriteAttributeString("Start", "boot");
34633 }
34634 if ((this.startField == StartType.system))
34635 {
34636 writer.WriteAttributeString("Start", "system");
34637 }
34638 }
34639 if (this.errorControlFieldSet)
34640 {
34641 if ((this.errorControlField == ErrorControlType.ignore))
34642 {
34643 writer.WriteAttributeString("ErrorControl", "ignore");
34644 }
34645 if ((this.errorControlField == ErrorControlType.normal))
34646 {
34647 writer.WriteAttributeString("ErrorControl", "normal");
34648 }
34649 if ((this.errorControlField == ErrorControlType.critical))
34650 {
34651 writer.WriteAttributeString("ErrorControl", "critical");
34652 }
34653 }
34654 if (this.vitalFieldSet)
34655 {
34656 if ((this.vitalField == YesNoType.no))
34657 {
34658 writer.WriteAttributeString("Vital", "no");
34659 }
34660 if ((this.vitalField == YesNoType.yes))
34661 {
34662 writer.WriteAttributeString("Vital", "yes");
34663 }
34664 }
34665 if (this.loadOrderGroupFieldSet)
34666 {
34667 writer.WriteAttributeString("LoadOrderGroup", this.loadOrderGroupField);
34668 }
34669 if (this.accountFieldSet)
34670 {
34671 writer.WriteAttributeString("Account", this.accountField);
34672 }
34673 if (this.passwordFieldSet)
34674 {
34675 writer.WriteAttributeString("Password", this.passwordField);
34676 }
34677 if (this.argumentsFieldSet)
34678 {
34679 writer.WriteAttributeString("Arguments", this.argumentsField);
34680 }
34681 if (this.descriptionFieldSet)
34682 {
34683 writer.WriteAttributeString("Description", this.descriptionField);
34684 }
34685 if (this.eraseDescriptionFieldSet)
34686 {
34687 if ((this.eraseDescriptionField == YesNoType.no))
34688 {
34689 writer.WriteAttributeString("EraseDescription", "no");
34690 }
34691 if ((this.eraseDescriptionField == YesNoType.yes))
34692 {
34693 writer.WriteAttributeString("EraseDescription", "yes");
34694 }
34695 }
34696 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
34697 {
34698 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
34699 childElement.OutputXml(writer);
34700 }
34701 writer.WriteEndElement();
34702 }
34703
34704 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
34705 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
34706 void ISetAttributes.SetAttribute(string name, string value)
34707 {
34708 if (String.IsNullOrEmpty(name))
34709 {
34710 throw new ArgumentNullException("name");
34711 }
34712 if (("Id" == name))
34713 {
34714 this.idField = value;
34715 this.idFieldSet = true;
34716 }
34717 if (("Name" == name))
34718 {
34719 this.nameField = value;
34720 this.nameFieldSet = true;
34721 }
34722 if (("DisplayName" == name))
34723 {
34724 this.displayNameField = value;
34725 this.displayNameFieldSet = true;
34726 }
34727 if (("Type" == name))
34728 {
34729 this.typeField = ServiceInstall.ParseTypeType(value);
34730 this.typeFieldSet = true;
34731 }
34732 if (("Interactive" == name))
34733 {
34734 this.interactiveField = Enums.ParseYesNoType(value);
34735 this.interactiveFieldSet = true;
34736 }
34737 if (("Start" == name))
34738 {
34739 this.startField = ServiceInstall.ParseStartType(value);
34740 this.startFieldSet = true;
34741 }
34742 if (("ErrorControl" == name))
34743 {
34744 this.errorControlField = ServiceInstall.ParseErrorControlType(value);
34745 this.errorControlFieldSet = true;
34746 }
34747 if (("Vital" == name))
34748 {
34749 this.vitalField = Enums.ParseYesNoType(value);
34750 this.vitalFieldSet = true;
34751 }
34752 if (("LoadOrderGroup" == name))
34753 {
34754 this.loadOrderGroupField = value;
34755 this.loadOrderGroupFieldSet = true;
34756 }
34757 if (("Account" == name))
34758 {
34759 this.accountField = value;
34760 this.accountFieldSet = true;
34761 }
34762 if (("Password" == name))
34763 {
34764 this.passwordField = value;
34765 this.passwordFieldSet = true;
34766 }
34767 if (("Arguments" == name))
34768 {
34769 this.argumentsField = value;
34770 this.argumentsFieldSet = true;
34771 }
34772 if (("Description" == name))
34773 {
34774 this.descriptionField = value;
34775 this.descriptionFieldSet = true;
34776 }
34777 if (("EraseDescription" == name))
34778 {
34779 this.eraseDescriptionField = Enums.ParseYesNoType(value);
34780 this.eraseDescriptionFieldSet = true;
34781 }
34782 }
34783
34784 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
34785 public enum TypeType
34786 {
34787
34788 IllegalValue = int.MaxValue,
34789
34790 NotSet = -1,
34791
34792 /// <summary>
34793 /// A Win32 service that runs its own process.
34794 /// </summary>
34795 ownProcess,
34796
34797 /// <summary>
34798 /// A Win32 service that shares a process.
34799 /// </summary>
34800 shareProcess,
34801
34802 /// <summary>
34803 /// A kernel driver service. This value is not currently supported by the Windows Installer.
34804 /// </summary>
34805 kernelDriver,
34806
34807 /// <summary>
34808 /// A file system driver service. This value is not currently supported by the Windows Installer.
34809 /// </summary>
34810 systemDriver,
34811 }
34812
34813 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
34814 public enum StartType
34815 {
34816
34817 IllegalValue = int.MaxValue,
34818
34819 NotSet = -1,
34820
34821 /// <summary>
34822 /// The service will start during startup of the system.
34823 /// </summary>
34824 auto,
34825
34826 /// <summary>
34827 /// The service will start when the service control manager calls the StartService function.
34828 /// </summary>
34829 demand,
34830
34831 /// <summary>
34832 /// The service can no longer be started.
34833 /// </summary>
34834 disabled,
34835
34836 /// <summary>
34837 /// The service is a device driver that will be started by the operating system boot loader. This value is not currently supported by the Windows Installer.
34838 /// </summary>
34839 boot,
34840
34841 /// <summary>
34842 /// The service is a device driver that will be started by the IoInitSystem function. This value is not currently supported by the Windows Installer.
34843 /// </summary>
34844 system,
34845 }
34846
34847 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
34848 public enum ErrorControlType
34849 {
34850
34851 IllegalValue = int.MaxValue,
34852
34853 NotSet = -1,
34854
34855 /// <summary>
34856 /// Logs the error and continues with the startup operation.
34857 /// </summary>
34858 ignore,
34859
34860 /// <summary>
34861 /// Logs the error, displays a message box and continues the startup operation.
34862 /// </summary>
34863 normal,
34864
34865 /// <summary>
34866 /// Logs the error if it is possible and the system is restarted with the last configuration known to be good. If the last-known-good configuration is being started, the startup operation fails.
34867 /// </summary>
34868 critical,
34869 }
34870 }
34871
34872 /// <summary>
34873 /// Argument used in ServiceControl parent
34874 /// </summary>
34875 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
34876 public class ServiceArgument : ISetAttributes, ISchemaElement
34877 {
34878
34879 private ISchemaElement parentElement;
34880
34881 private string contentField;
34882
34883 private bool contentFieldSet;
34884
34885 public virtual ISchemaElement ParentElement
34886 {
34887 get
34888 {
34889 return this.parentElement;
34890 }
34891 set
34892 {
34893 this.parentElement = value;
34894 }
34895 }
34896
34897 /// <summary>
34898 /// Argument used in ServiceControl parent
34899 /// </summary>
34900 public string Content
34901 {
34902 get
34903 {
34904 return this.contentField;
34905 }
34906 set
34907 {
34908 this.contentFieldSet = true;
34909 this.contentField = value;
34910 }
34911 }
34912
34913 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
34914 void ISetAttributes.SetAttribute(string name, string value)
34915 {
34916 if (String.IsNullOrEmpty(name))
34917 {
34918 throw new ArgumentNullException("name");
34919 }
34920 if (("Content" == name))
34921 {
34922 this.contentField = value;
34923 this.contentFieldSet = true;
34924 }
34925 }
34926
34927 /// <summary>
34928 /// Processes this element and all child elements into an XmlWriter.
34929 /// </summary>
34930 public virtual void OutputXml(XmlWriter writer)
34931 {
34932 if ((null == writer))
34933 {
34934 throw new ArgumentNullException("writer");
34935 }
34936 writer.WriteStartElement("ServiceArgument", "http://wixtoolset.org/schemas/v4/wxs");
34937 if (this.contentFieldSet)
34938 {
34939 writer.WriteString(this.contentField);
34940 }
34941 writer.WriteEndElement();
34942 }
34943 }
34944
34945 /// <summary>
34946 /// Starts, stops, and removes services for parent Component. This element is used to control the state
34947 /// of a service installed by the MSI or MSM file by using the start, stop and remove attributes.
34948 /// For example, Start='install' Stop='both' Remove='uninstall' would mean: start the service on install,
34949 /// remove the service when the product is uninstalled, and stop the service both on install and uninstall.
34950 /// </summary>
34951 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
34952 public class ServiceControl : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
34953 {
34954
34955 private ElementCollection children;
34956
34957 private string idField;
34958
34959 private bool idFieldSet;
34960
34961 private string nameField;
34962
34963 private bool nameFieldSet;
34964
34965 private InstallUninstallType startField;
34966
34967 private bool startFieldSet;
34968
34969 private InstallUninstallType stopField;
34970
34971 private bool stopFieldSet;
34972
34973 private InstallUninstallType removeField;
34974
34975 private bool removeFieldSet;
34976
34977 private YesNoType waitField;
34978
34979 private bool waitFieldSet;
34980
34981 private ISchemaElement parentElement;
34982
34983 public ServiceControl()
34984 {
34985 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
34986 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ServiceArgument)));
34987 this.children = childCollection0;
34988 }
34989
34990 public virtual IEnumerable Children
34991 {
34992 get
34993 {
34994 return this.children;
34995 }
34996 }
34997
34998 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
34999 public virtual IEnumerable this[System.Type childType]
35000 {
35001 get
35002 {
35003 return this.children.Filter(childType);
35004 }
35005 }
35006
35007 public string Id
35008 {
35009 get
35010 {
35011 return this.idField;
35012 }
35013 set
35014 {
35015 this.idFieldSet = true;
35016 this.idField = value;
35017 }
35018 }
35019
35020 /// <summary>
35021 /// Name of the service.
35022 /// </summary>
35023 public string Name
35024 {
35025 get
35026 {
35027 return this.nameField;
35028 }
35029 set
35030 {
35031 this.nameFieldSet = true;
35032 this.nameField = value;
35033 }
35034 }
35035
35036 /// <summary>
35037 /// Specifies whether the service should be started by the StartServices action on install, uninstall or both.
35038 /// For 'install', the service will be started only when the parent component is being installed (msiInstallStateLocal or
35039 /// msiInstallStateSource); for 'uninstall', the service will be started only when the parent component
35040 /// is being removed (msiInstallStateAbsent); for 'both', the service will be started in both cases.
35041 /// </summary>
35042 public InstallUninstallType Start
35043 {
35044 get
35045 {
35046 return this.startField;
35047 }
35048 set
35049 {
35050 this.startFieldSet = true;
35051 this.startField = value;
35052 }
35053 }
35054
35055 /// <summary>
35056 /// Specifies whether the service should be stopped by the StopServices action on install, uninstall or both.
35057 /// For 'install', the service will be stopped only when the parent component is being installed (msiInstallStateLocal or
35058 /// msiInstallStateSource); for 'uninstall', the service will be stopped only when the parent component
35059 /// is being removed (msiInstallStateAbsent); for 'both', the service will be stopped in both cases.
35060 /// </summary>
35061 public InstallUninstallType Stop
35062 {
35063 get
35064 {
35065 return this.stopField;
35066 }
35067 set
35068 {
35069 this.stopFieldSet = true;
35070 this.stopField = value;
35071 }
35072 }
35073
35074 /// <summary>
35075 /// Specifies whether the service should be removed by the DeleteServices action on install, uninstall or both.
35076 /// For 'install', the service will be removed only when the parent component is being installed (msiInstallStateLocal or
35077 /// msiInstallStateSource); for 'uninstall', the service will be removed only when the parent component
35078 /// is being removed (msiInstallStateAbsent); for 'both', the service will be removed in both cases.
35079 /// </summary>
35080 public InstallUninstallType Remove
35081 {
35082 get
35083 {
35084 return this.removeField;
35085 }
35086 set
35087 {
35088 this.removeFieldSet = true;
35089 this.removeField = value;
35090 }
35091 }
35092
35093 /// <summary>
35094 /// Specifies whether or not to wait for the service to complete before continuing. The default is 'yes'.
35095 /// </summary>
35096 public YesNoType Wait
35097 {
35098 get
35099 {
35100 return this.waitField;
35101 }
35102 set
35103 {
35104 this.waitFieldSet = true;
35105 this.waitField = value;
35106 }
35107 }
35108
35109 public virtual ISchemaElement ParentElement
35110 {
35111 get
35112 {
35113 return this.parentElement;
35114 }
35115 set
35116 {
35117 this.parentElement = value;
35118 }
35119 }
35120
35121 public virtual void AddChild(ISchemaElement child)
35122 {
35123 if ((null == child))
35124 {
35125 throw new ArgumentNullException("child");
35126 }
35127 this.children.AddElement(child);
35128 child.ParentElement = this;
35129 }
35130
35131 public virtual void RemoveChild(ISchemaElement child)
35132 {
35133 if ((null == child))
35134 {
35135 throw new ArgumentNullException("child");
35136 }
35137 this.children.RemoveElement(child);
35138 child.ParentElement = null;
35139 }
35140
35141 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
35142 ISchemaElement ICreateChildren.CreateChild(string childName)
35143 {
35144 if (String.IsNullOrEmpty(childName))
35145 {
35146 throw new ArgumentNullException("childName");
35147 }
35148 ISchemaElement childValue = null;
35149 if (("ServiceArgument" == childName))
35150 {
35151 childValue = new ServiceArgument();
35152 }
35153 if ((null == childValue))
35154 {
35155 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
35156 }
35157 return childValue;
35158 }
35159
35160 /// <summary>
35161 /// Processes this element and all child elements into an XmlWriter.
35162 /// </summary>
35163 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
35164 public virtual void OutputXml(XmlWriter writer)
35165 {
35166 if ((null == writer))
35167 {
35168 throw new ArgumentNullException("writer");
35169 }
35170 writer.WriteStartElement("ServiceControl", "http://wixtoolset.org/schemas/v4/wxs");
35171 if (this.idFieldSet)
35172 {
35173 writer.WriteAttributeString("Id", this.idField);
35174 }
35175 if (this.nameFieldSet)
35176 {
35177 writer.WriteAttributeString("Name", this.nameField);
35178 }
35179 if (this.startFieldSet)
35180 {
35181 if ((this.startField == InstallUninstallType.install))
35182 {
35183 writer.WriteAttributeString("Start", "install");
35184 }
35185 if ((this.startField == InstallUninstallType.uninstall))
35186 {
35187 writer.WriteAttributeString("Start", "uninstall");
35188 }
35189 if ((this.startField == InstallUninstallType.both))
35190 {
35191 writer.WriteAttributeString("Start", "both");
35192 }
35193 }
35194 if (this.stopFieldSet)
35195 {
35196 if ((this.stopField == InstallUninstallType.install))
35197 {
35198 writer.WriteAttributeString("Stop", "install");
35199 }
35200 if ((this.stopField == InstallUninstallType.uninstall))
35201 {
35202 writer.WriteAttributeString("Stop", "uninstall");
35203 }
35204 if ((this.stopField == InstallUninstallType.both))
35205 {
35206 writer.WriteAttributeString("Stop", "both");
35207 }
35208 }
35209 if (this.removeFieldSet)
35210 {
35211 if ((this.removeField == InstallUninstallType.install))
35212 {
35213 writer.WriteAttributeString("Remove", "install");
35214 }
35215 if ((this.removeField == InstallUninstallType.uninstall))
35216 {
35217 writer.WriteAttributeString("Remove", "uninstall");
35218 }
35219 if ((this.removeField == InstallUninstallType.both))
35220 {
35221 writer.WriteAttributeString("Remove", "both");
35222 }
35223 }
35224 if (this.waitFieldSet)
35225 {
35226 if ((this.waitField == YesNoType.no))
35227 {
35228 writer.WriteAttributeString("Wait", "no");
35229 }
35230 if ((this.waitField == YesNoType.yes))
35231 {
35232 writer.WriteAttributeString("Wait", "yes");
35233 }
35234 }
35235 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
35236 {
35237 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
35238 childElement.OutputXml(writer);
35239 }
35240 writer.WriteEndElement();
35241 }
35242
35243 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
35244 void ISetAttributes.SetAttribute(string name, string value)
35245 {
35246 if (String.IsNullOrEmpty(name))
35247 {
35248 throw new ArgumentNullException("name");
35249 }
35250 if (("Id" == name))
35251 {
35252 this.idField = value;
35253 this.idFieldSet = true;
35254 }
35255 if (("Name" == name))
35256 {
35257 this.nameField = value;
35258 this.nameFieldSet = true;
35259 }
35260 if (("Start" == name))
35261 {
35262 this.startField = Enums.ParseInstallUninstallType(value);
35263 this.startFieldSet = true;
35264 }
35265 if (("Stop" == name))
35266 {
35267 this.stopField = Enums.ParseInstallUninstallType(value);
35268 this.stopFieldSet = true;
35269 }
35270 if (("Remove" == name))
35271 {
35272 this.removeField = Enums.ParseInstallUninstallType(value);
35273 this.removeFieldSet = true;
35274 }
35275 if (("Wait" == name))
35276 {
35277 this.waitField = Enums.ParseYesNoType(value);
35278 this.waitFieldSet = true;
35279 }
35280 }
35281 }
35282
35283 /// <summary>
35284 /// Privilege required by service configured by ServiceConfig parent. Valid values are a
35285 /// </summary>
35286 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
35287 public class RequiredPrivilege : ISetAttributes, ISchemaElement
35288 {
35289
35290 private ISchemaElement parentElement;
35291
35292 private string contentField;
35293
35294 private bool contentFieldSet;
35295
35296 public virtual ISchemaElement ParentElement
35297 {
35298 get
35299 {
35300 return this.parentElement;
35301 }
35302 set
35303 {
35304 this.parentElement = value;
35305 }
35306 }
35307
35308 /// <summary>
35309 /// Privilege required by service configured by ServiceConfig parent. Valid values are a
35310 /// </summary>
35311 public string Content
35312 {
35313 get
35314 {
35315 return this.contentField;
35316 }
35317 set
35318 {
35319 this.contentFieldSet = true;
35320 this.contentField = value;
35321 }
35322 }
35323
35324 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
35325 void ISetAttributes.SetAttribute(string name, string value)
35326 {
35327 if (String.IsNullOrEmpty(name))
35328 {
35329 throw new ArgumentNullException("name");
35330 }
35331 if (("Content" == name))
35332 {
35333 this.contentField = value;
35334 this.contentFieldSet = true;
35335 }
35336 }
35337
35338 /// <summary>
35339 /// Processes this element and all child elements into an XmlWriter.
35340 /// </summary>
35341 public virtual void OutputXml(XmlWriter writer)
35342 {
35343 if ((null == writer))
35344 {
35345 throw new ArgumentNullException("writer");
35346 }
35347 writer.WriteStartElement("RequiredPrivilege", "http://wixtoolset.org/schemas/v4/wxs");
35348 if (this.contentFieldSet)
35349 {
35350 writer.WriteString(this.contentField);
35351 }
35352 writer.WriteEndElement();
35353 }
35354 }
35355
35356 /// <summary>
35357 /// Configures a service being installed or one that already exists. This element's functionality is available starting with MSI 5.0.
35358 /// </summary>
35359 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
35360 public class ServiceConfig : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
35361 {
35362
35363 private ElementCollection children;
35364
35365 private string idField;
35366
35367 private bool idFieldSet;
35368
35369 private string delayedAutoStartField;
35370
35371 private bool delayedAutoStartFieldSet;
35372
35373 private string failureActionsWhenField;
35374
35375 private bool failureActionsWhenFieldSet;
35376
35377 private string preShutdownDelayField;
35378
35379 private bool preShutdownDelayFieldSet;
35380
35381 private YesNoType onInstallField;
35382
35383 private bool onInstallFieldSet;
35384
35385 private YesNoType onReinstallField;
35386
35387 private bool onReinstallFieldSet;
35388
35389 private YesNoType onUninstallField;
35390
35391 private bool onUninstallFieldSet;
35392
35393 private string serviceNameField;
35394
35395 private bool serviceNameFieldSet;
35396
35397 private string serviceSidField;
35398
35399 private bool serviceSidFieldSet;
35400
35401 private ISchemaElement parentElement;
35402
35403 public ServiceConfig()
35404 {
35405 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
35406 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RequiredPrivilege)));
35407 this.children = childCollection0;
35408 }
35409
35410 public virtual IEnumerable Children
35411 {
35412 get
35413 {
35414 return this.children;
35415 }
35416 }
35417
35418 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
35419 public virtual IEnumerable this[System.Type childType]
35420 {
35421 get
35422 {
35423 return this.children.Filter(childType);
35424 }
35425 }
35426
35427 /// <summary>
35428 /// Unique identifier for this service configuration. This value will default to the ServiceName attribute if not
35429 /// specified.
35430 /// </summary>
35431 public string Id
35432 {
35433 get
35434 {
35435 return this.idField;
35436 }
35437 set
35438 {
35439 this.idFieldSet = true;
35440 this.idField = value;
35441 }
35442 }
35443
35444 /// <summary>
35445 /// This attribute specifies whether an auto-start service should delay its start until after all other auto-start
35446 /// services. This attribute only affects auto-start services. Allowed values are "yes", "no" or a Formatted property that
35447 /// resolves to "1" (for "yes") or "0" (for "no"). If this attribute is not present the setting is not configured.
35448 /// </summary>
35449 public string DelayedAutoStart
35450 {
35451 get
35452 {
35453 return this.delayedAutoStartField;
35454 }
35455 set
35456 {
35457 this.delayedAutoStartFieldSet = true;
35458 this.delayedAutoStartField = value;
35459 }
35460 }
35461
35462 /// <summary>
35463 /// This attribute specifies when failure actions should be applied. Allowed values are "failedToStop", "failedToStopOrReturnedError"
35464 /// or a Formatted property that resolves to "1" (for "failedToStopOrReturnedError") or "0" (for "failedToStop"). If this attribute
35465 /// is not present the setting is not configured.
35466 /// </summary>
35467 public string FailureActionsWhen
35468 {
35469 get
35470 {
35471 return this.failureActionsWhenField;
35472 }
35473 set
35474 {
35475 this.failureActionsWhenFieldSet = true;
35476 this.failureActionsWhenField = value;
35477 }
35478 }
35479
35480 /// <summary>
35481 /// This attribute specifies time in milliseconds that the Service Control Manager (SCM) waits after notifying the service of a system
35482 /// shutdown. If this attribute is not present the default value, 3 minutes, is used.
35483 /// </summary>
35484 public string PreShutdownDelay
35485 {
35486 get
35487 {
35488 return this.preShutdownDelayField;
35489 }
35490 set
35491 {
35492 this.preShutdownDelayFieldSet = true;
35493 this.preShutdownDelayField = value;
35494 }
35495 }
35496
35497 /// <summary>
35498 /// Specifies whether to configure the service when the parent Component is installed. This attribute may be combined with OnReinstall
35499 /// and OnUninstall.
35500 /// </summary>
35501 public YesNoType OnInstall
35502 {
35503 get
35504 {
35505 return this.onInstallField;
35506 }
35507 set
35508 {
35509 this.onInstallFieldSet = true;
35510 this.onInstallField = value;
35511 }
35512 }
35513
35514 /// <summary>
35515 /// Specifies whether to configure the service when the parent Component is reinstalled. This attribute may be combined with OnInstall
35516 /// and OnUninstall.
35517 /// </summary>
35518 public YesNoType OnReinstall
35519 {
35520 get
35521 {
35522 return this.onReinstallField;
35523 }
35524 set
35525 {
35526 this.onReinstallFieldSet = true;
35527 this.onReinstallField = value;
35528 }
35529 }
35530
35531 /// <summary>
35532 /// Specifies whether to configure the service when the parent Component is uninstalled. This attribute may be combined with OnInstall
35533 /// and OnReinstall.
35534 /// </summary>
35535 public YesNoType OnUninstall
35536 {
35537 get
35538 {
35539 return this.onUninstallField;
35540 }
35541 set
35542 {
35543 this.onUninstallFieldSet = true;
35544 this.onUninstallField = value;
35545 }
35546 }
35547
35548 /// <summary>
35549 /// Specifies the name of the service to configure. This value will default to the ServiceInstall/@Name attribute when nested under
35550 /// a ServiceInstall element.
35551 /// </summary>
35552 public string ServiceName
35553 {
35554 get
35555 {
35556 return this.serviceNameField;
35557 }
35558 set
35559 {
35560 this.serviceNameFieldSet = true;
35561 this.serviceNameField = value;
35562 }
35563 }
35564
35565 /// <summary>
35566 /// Specifies the service SID to apply to the service. Valid values are "none", "restricted", "unrestricted" or a Formatted property
35567 /// that resolves to "0" (for "none"), "3" (for "restricted") or "1" (for "unrestricted"). If this attribute is not present the
35568 /// setting is not configured.
35569 /// </summary>
35570 public string ServiceSid
35571 {
35572 get
35573 {
35574 return this.serviceSidField;
35575 }
35576 set
35577 {
35578 this.serviceSidFieldSet = true;
35579 this.serviceSidField = value;
35580 }
35581 }
35582
35583 public virtual ISchemaElement ParentElement
35584 {
35585 get
35586 {
35587 return this.parentElement;
35588 }
35589 set
35590 {
35591 this.parentElement = value;
35592 }
35593 }
35594
35595 public virtual void AddChild(ISchemaElement child)
35596 {
35597 if ((null == child))
35598 {
35599 throw new ArgumentNullException("child");
35600 }
35601 this.children.AddElement(child);
35602 child.ParentElement = this;
35603 }
35604
35605 public virtual void RemoveChild(ISchemaElement child)
35606 {
35607 if ((null == child))
35608 {
35609 throw new ArgumentNullException("child");
35610 }
35611 this.children.RemoveElement(child);
35612 child.ParentElement = null;
35613 }
35614
35615 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
35616 ISchemaElement ICreateChildren.CreateChild(string childName)
35617 {
35618 if (String.IsNullOrEmpty(childName))
35619 {
35620 throw new ArgumentNullException("childName");
35621 }
35622 ISchemaElement childValue = null;
35623 if (("RequiredPrivilege" == childName))
35624 {
35625 childValue = new RequiredPrivilege();
35626 }
35627 if ((null == childValue))
35628 {
35629 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
35630 }
35631 return childValue;
35632 }
35633
35634 /// <summary>
35635 /// Processes this element and all child elements into an XmlWriter.
35636 /// </summary>
35637 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
35638 public virtual void OutputXml(XmlWriter writer)
35639 {
35640 if ((null == writer))
35641 {
35642 throw new ArgumentNullException("writer");
35643 }
35644 writer.WriteStartElement("ServiceConfig", "http://wixtoolset.org/schemas/v4/wxs");
35645 if (this.idFieldSet)
35646 {
35647 writer.WriteAttributeString("Id", this.idField);
35648 }
35649 if (this.delayedAutoStartFieldSet)
35650 {
35651 writer.WriteAttributeString("DelayedAutoStart", this.delayedAutoStartField);
35652 }
35653 if (this.failureActionsWhenFieldSet)
35654 {
35655 writer.WriteAttributeString("FailureActionsWhen", this.failureActionsWhenField);
35656 }
35657 if (this.preShutdownDelayFieldSet)
35658 {
35659 writer.WriteAttributeString("PreShutdownDelay", this.preShutdownDelayField);
35660 }
35661 if (this.onInstallFieldSet)
35662 {
35663 if ((this.onInstallField == YesNoType.no))
35664 {
35665 writer.WriteAttributeString("OnInstall", "no");
35666 }
35667 if ((this.onInstallField == YesNoType.yes))
35668 {
35669 writer.WriteAttributeString("OnInstall", "yes");
35670 }
35671 }
35672 if (this.onReinstallFieldSet)
35673 {
35674 if ((this.onReinstallField == YesNoType.no))
35675 {
35676 writer.WriteAttributeString("OnReinstall", "no");
35677 }
35678 if ((this.onReinstallField == YesNoType.yes))
35679 {
35680 writer.WriteAttributeString("OnReinstall", "yes");
35681 }
35682 }
35683 if (this.onUninstallFieldSet)
35684 {
35685 if ((this.onUninstallField == YesNoType.no))
35686 {
35687 writer.WriteAttributeString("OnUninstall", "no");
35688 }
35689 if ((this.onUninstallField == YesNoType.yes))
35690 {
35691 writer.WriteAttributeString("OnUninstall", "yes");
35692 }
35693 }
35694 if (this.serviceNameFieldSet)
35695 {
35696 writer.WriteAttributeString("ServiceName", this.serviceNameField);
35697 }
35698 if (this.serviceSidFieldSet)
35699 {
35700 writer.WriteAttributeString("ServiceSid", this.serviceSidField);
35701 }
35702 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
35703 {
35704 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
35705 childElement.OutputXml(writer);
35706 }
35707 writer.WriteEndElement();
35708 }
35709
35710 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
35711 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
35712 void ISetAttributes.SetAttribute(string name, string value)
35713 {
35714 if (String.IsNullOrEmpty(name))
35715 {
35716 throw new ArgumentNullException("name");
35717 }
35718 if (("Id" == name))
35719 {
35720 this.idField = value;
35721 this.idFieldSet = true;
35722 }
35723 if (("DelayedAutoStart" == name))
35724 {
35725 this.delayedAutoStartField = value;
35726 this.delayedAutoStartFieldSet = true;
35727 }
35728 if (("FailureActionsWhen" == name))
35729 {
35730 this.failureActionsWhenField = value;
35731 this.failureActionsWhenFieldSet = true;
35732 }
35733 if (("PreShutdownDelay" == name))
35734 {
35735 this.preShutdownDelayField = value;
35736 this.preShutdownDelayFieldSet = true;
35737 }
35738 if (("OnInstall" == name))
35739 {
35740 this.onInstallField = Enums.ParseYesNoType(value);
35741 this.onInstallFieldSet = true;
35742 }
35743 if (("OnReinstall" == name))
35744 {
35745 this.onReinstallField = Enums.ParseYesNoType(value);
35746 this.onReinstallFieldSet = true;
35747 }
35748 if (("OnUninstall" == name))
35749 {
35750 this.onUninstallField = Enums.ParseYesNoType(value);
35751 this.onUninstallFieldSet = true;
35752 }
35753 if (("ServiceName" == name))
35754 {
35755 this.serviceNameField = value;
35756 this.serviceNameFieldSet = true;
35757 }
35758 if (("ServiceSid" == name))
35759 {
35760 this.serviceSidField = value;
35761 this.serviceSidFieldSet = true;
35762 }
35763 }
35764 }
35765
35766 /// <summary>
35767 /// Failure action for a ServiceConfigFailureActions element.
35768 /// </summary>
35769 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
35770 public class Failure : ISchemaElement, ISetAttributes
35771 {
35772
35773 private string actionField;
35774
35775 private bool actionFieldSet;
35776
35777 private string delayField;
35778
35779 private bool delayFieldSet;
35780
35781 private ISchemaElement parentElement;
35782
35783 /// <summary>
35784 /// Specifies the action to take when the service fails. Valid values are "none", "restartComputer", "restartService", "runCommand" or a Formatted property
35785 /// that resolves to "0" (for "none"), "1" (for "restartService"), "2" (for "restartComputer") or "3" (for "runCommand").
35786 /// </summary>
35787 public string Action
35788 {
35789 get
35790 {
35791 return this.actionField;
35792 }
35793 set
35794 {
35795 this.actionFieldSet = true;
35796 this.actionField = value;
35797 }
35798 }
35799
35800 /// <summary>
35801 /// Specifies the time in milliseconds to wait before performing the value from the Action attribute.
35802 /// </summary>
35803 public string Delay
35804 {
35805 get
35806 {
35807 return this.delayField;
35808 }
35809 set
35810 {
35811 this.delayFieldSet = true;
35812 this.delayField = value;
35813 }
35814 }
35815
35816 public virtual ISchemaElement ParentElement
35817 {
35818 get
35819 {
35820 return this.parentElement;
35821 }
35822 set
35823 {
35824 this.parentElement = value;
35825 }
35826 }
35827
35828 /// <summary>
35829 /// Processes this element and all child elements into an XmlWriter.
35830 /// </summary>
35831 public virtual void OutputXml(XmlWriter writer)
35832 {
35833 if ((null == writer))
35834 {
35835 throw new ArgumentNullException("writer");
35836 }
35837 writer.WriteStartElement("Failure", "http://wixtoolset.org/schemas/v4/wxs");
35838 if (this.actionFieldSet)
35839 {
35840 writer.WriteAttributeString("Action", this.actionField);
35841 }
35842 if (this.delayFieldSet)
35843 {
35844 writer.WriteAttributeString("Delay", this.delayField);
35845 }
35846 writer.WriteEndElement();
35847 }
35848
35849 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
35850 void ISetAttributes.SetAttribute(string name, string value)
35851 {
35852 if (String.IsNullOrEmpty(name))
35853 {
35854 throw new ArgumentNullException("name");
35855 }
35856 if (("Action" == name))
35857 {
35858 this.actionField = value;
35859 this.actionFieldSet = true;
35860 }
35861 if (("Delay" == name))
35862 {
35863 this.delayField = value;
35864 this.delayFieldSet = true;
35865 }
35866 }
35867 }
35868
35869 /// <summary>
35870 /// Configures the failure actions for a service being installed or one that already exists. This element's functionality is available starting with MSI 5.0.
35871 /// </summary>
35872 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
35873 public class ServiceConfigFailureActions : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
35874 {
35875
35876 private ElementCollection children;
35877
35878 private string idField;
35879
35880 private bool idFieldSet;
35881
35882 private string commandField;
35883
35884 private bool commandFieldSet;
35885
35886 private YesNoType onInstallField;
35887
35888 private bool onInstallFieldSet;
35889
35890 private YesNoType onReinstallField;
35891
35892 private bool onReinstallFieldSet;
35893
35894 private YesNoType onUninstallField;
35895
35896 private bool onUninstallFieldSet;
35897
35898 private string rebootMessageField;
35899
35900 private bool rebootMessageFieldSet;
35901
35902 private string resetPeriodField;
35903
35904 private bool resetPeriodFieldSet;
35905
35906 private string serviceNameField;
35907
35908 private bool serviceNameFieldSet;
35909
35910 private ISchemaElement parentElement;
35911
35912 public ServiceConfigFailureActions()
35913 {
35914 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
35915 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Failure)));
35916 this.children = childCollection0;
35917 }
35918
35919 public virtual IEnumerable Children
35920 {
35921 get
35922 {
35923 return this.children;
35924 }
35925 }
35926
35927 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
35928 public virtual IEnumerable this[System.Type childType]
35929 {
35930 get
35931 {
35932 return this.children.Filter(childType);
35933 }
35934 }
35935
35936 /// <summary>
35937 /// Unique identifier for this service configuration. This value will default to the ServiceName attribute if not
35938 /// specified.
35939 /// </summary>
35940 public string Id
35941 {
35942 get
35943 {
35944 return this.idField;
35945 }
35946 set
35947 {
35948 this.idFieldSet = true;
35949 this.idField = value;
35950 }
35951 }
35952
35953 /// <summary>
35954 /// This attribute specifies command to execute when a "runCommand" failure action hit. If an empty string is provided it clears
35955 /// the existing command. If this attribute is not present the setting is not changed.
35956 /// </summary>
35957 public string Command
35958 {
35959 get
35960 {
35961 return this.commandField;
35962 }
35963 set
35964 {
35965 this.commandFieldSet = true;
35966 this.commandField = value;
35967 }
35968 }
35969
35970 /// <summary>
35971 /// Specifies whether to configure the service when the parent Component is installed. This attribute may be combined with OnReinstall
35972 /// and OnUninstall.
35973 /// </summary>
35974 public YesNoType OnInstall
35975 {
35976 get
35977 {
35978 return this.onInstallField;
35979 }
35980 set
35981 {
35982 this.onInstallFieldSet = true;
35983 this.onInstallField = value;
35984 }
35985 }
35986
35987 /// <summary>
35988 /// Specifies whether to configure the service when the parent Component is reinstalled. This attribute may be combined with OnInstall
35989 /// and OnUninstall.
35990 /// </summary>
35991 public YesNoType OnReinstall
35992 {
35993 get
35994 {
35995 return this.onReinstallField;
35996 }
35997 set
35998 {
35999 this.onReinstallFieldSet = true;
36000 this.onReinstallField = value;
36001 }
36002 }
36003
36004 /// <summary>
36005 /// Specifies whether to configure the service when the parent Component is uninstalled. This attribute may be combined with OnInstall
36006 /// and OnReinstall.
36007 /// </summary>
36008 public YesNoType OnUninstall
36009 {
36010 get
36011 {
36012 return this.onUninstallField;
36013 }
36014 set
36015 {
36016 this.onUninstallFieldSet = true;
36017 this.onUninstallField = value;
36018 }
36019 }
36020
36021 /// <summary>
36022 /// Specifies the message to show for a reboot failure action. If an empty string is provided it clears any existing reboot message. If this
36023 /// attribute is not present the setting is not changed.
36024 /// </summary>
36025 public string RebootMessage
36026 {
36027 get
36028 {
36029 return this.rebootMessageField;
36030 }
36031 set
36032 {
36033 this.rebootMessageFieldSet = true;
36034 this.rebootMessageField = value;
36035 }
36036 }
36037
36038 /// <summary>
36039 /// Specifies the time in seconds to reset the failure count. If this attribute is not present the failure count will not be reset.
36040 /// </summary>
36041 public string ResetPeriod
36042 {
36043 get
36044 {
36045 return this.resetPeriodField;
36046 }
36047 set
36048 {
36049 this.resetPeriodFieldSet = true;
36050 this.resetPeriodField = value;
36051 }
36052 }
36053
36054 /// <summary>
36055 /// Specifies the name of the service to configure. This value will default to the ServiceInstall/@Name attribute when nested under
36056 /// a ServiceInstall element.
36057 /// </summary>
36058 public string ServiceName
36059 {
36060 get
36061 {
36062 return this.serviceNameField;
36063 }
36064 set
36065 {
36066 this.serviceNameFieldSet = true;
36067 this.serviceNameField = value;
36068 }
36069 }
36070
36071 public virtual ISchemaElement ParentElement
36072 {
36073 get
36074 {
36075 return this.parentElement;
36076 }
36077 set
36078 {
36079 this.parentElement = value;
36080 }
36081 }
36082
36083 public virtual void AddChild(ISchemaElement child)
36084 {
36085 if ((null == child))
36086 {
36087 throw new ArgumentNullException("child");
36088 }
36089 this.children.AddElement(child);
36090 child.ParentElement = this;
36091 }
36092
36093 public virtual void RemoveChild(ISchemaElement child)
36094 {
36095 if ((null == child))
36096 {
36097 throw new ArgumentNullException("child");
36098 }
36099 this.children.RemoveElement(child);
36100 child.ParentElement = null;
36101 }
36102
36103 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
36104 ISchemaElement ICreateChildren.CreateChild(string childName)
36105 {
36106 if (String.IsNullOrEmpty(childName))
36107 {
36108 throw new ArgumentNullException("childName");
36109 }
36110 ISchemaElement childValue = null;
36111 if (("Failure" == childName))
36112 {
36113 childValue = new Failure();
36114 }
36115 if ((null == childValue))
36116 {
36117 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
36118 }
36119 return childValue;
36120 }
36121
36122 /// <summary>
36123 /// Processes this element and all child elements into an XmlWriter.
36124 /// </summary>
36125 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
36126 public virtual void OutputXml(XmlWriter writer)
36127 {
36128 if ((null == writer))
36129 {
36130 throw new ArgumentNullException("writer");
36131 }
36132 writer.WriteStartElement("ServiceConfigFailureActions", "http://wixtoolset.org/schemas/v4/wxs");
36133 if (this.idFieldSet)
36134 {
36135 writer.WriteAttributeString("Id", this.idField);
36136 }
36137 if (this.commandFieldSet)
36138 {
36139 writer.WriteAttributeString("Command", this.commandField);
36140 }
36141 if (this.onInstallFieldSet)
36142 {
36143 if ((this.onInstallField == YesNoType.no))
36144 {
36145 writer.WriteAttributeString("OnInstall", "no");
36146 }
36147 if ((this.onInstallField == YesNoType.yes))
36148 {
36149 writer.WriteAttributeString("OnInstall", "yes");
36150 }
36151 }
36152 if (this.onReinstallFieldSet)
36153 {
36154 if ((this.onReinstallField == YesNoType.no))
36155 {
36156 writer.WriteAttributeString("OnReinstall", "no");
36157 }
36158 if ((this.onReinstallField == YesNoType.yes))
36159 {
36160 writer.WriteAttributeString("OnReinstall", "yes");
36161 }
36162 }
36163 if (this.onUninstallFieldSet)
36164 {
36165 if ((this.onUninstallField == YesNoType.no))
36166 {
36167 writer.WriteAttributeString("OnUninstall", "no");
36168 }
36169 if ((this.onUninstallField == YesNoType.yes))
36170 {
36171 writer.WriteAttributeString("OnUninstall", "yes");
36172 }
36173 }
36174 if (this.rebootMessageFieldSet)
36175 {
36176 writer.WriteAttributeString("RebootMessage", this.rebootMessageField);
36177 }
36178 if (this.resetPeriodFieldSet)
36179 {
36180 writer.WriteAttributeString("ResetPeriod", this.resetPeriodField);
36181 }
36182 if (this.serviceNameFieldSet)
36183 {
36184 writer.WriteAttributeString("ServiceName", this.serviceNameField);
36185 }
36186 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
36187 {
36188 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
36189 childElement.OutputXml(writer);
36190 }
36191 writer.WriteEndElement();
36192 }
36193
36194 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
36195 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
36196 void ISetAttributes.SetAttribute(string name, string value)
36197 {
36198 if (String.IsNullOrEmpty(name))
36199 {
36200 throw new ArgumentNullException("name");
36201 }
36202 if (("Id" == name))
36203 {
36204 this.idField = value;
36205 this.idFieldSet = true;
36206 }
36207 if (("Command" == name))
36208 {
36209 this.commandField = value;
36210 this.commandFieldSet = true;
36211 }
36212 if (("OnInstall" == name))
36213 {
36214 this.onInstallField = Enums.ParseYesNoType(value);
36215 this.onInstallFieldSet = true;
36216 }
36217 if (("OnReinstall" == name))
36218 {
36219 this.onReinstallField = Enums.ParseYesNoType(value);
36220 this.onReinstallFieldSet = true;
36221 }
36222 if (("OnUninstall" == name))
36223 {
36224 this.onUninstallField = Enums.ParseYesNoType(value);
36225 this.onUninstallFieldSet = true;
36226 }
36227 if (("RebootMessage" == name))
36228 {
36229 this.rebootMessageField = value;
36230 this.rebootMessageFieldSet = true;
36231 }
36232 if (("ResetPeriod" == name))
36233 {
36234 this.resetPeriodField = value;
36235 this.resetPeriodFieldSet = true;
36236 }
36237 if (("ServiceName" == name))
36238 {
36239 this.serviceNameField = value;
36240 this.serviceNameFieldSet = true;
36241 }
36242 }
36243 }
36244
36245 /// <summary>
36246 /// Environment variables added or removed for the parent component.
36247 /// </summary>
36248 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
36249 public class Environment : ISchemaElement, ISetAttributes
36250 {
36251
36252 private string idField;
36253
36254 private bool idFieldSet;
36255
36256 private string nameField;
36257
36258 private bool nameFieldSet;
36259
36260 private string valueField;
36261
36262 private bool valueFieldSet;
36263
36264 private string separatorField;
36265
36266 private bool separatorFieldSet;
36267
36268 private ActionType actionField;
36269
36270 private bool actionFieldSet;
36271
36272 private PartType partField;
36273
36274 private bool partFieldSet;
36275
36276 private YesNoType permanentField;
36277
36278 private bool permanentFieldSet;
36279
36280 private YesNoType systemField;
36281
36282 private bool systemFieldSet;
36283
36284 private ISchemaElement parentElement;
36285
36286 /// <summary>
36287 /// Unique identifier for environment entry.
36288 /// </summary>
36289 public string Id
36290 {
36291 get
36292 {
36293 return this.idField;
36294 }
36295 set
36296 {
36297 this.idFieldSet = true;
36298 this.idField = value;
36299 }
36300 }
36301
36302 /// <summary>
36303 /// Name of the environment variable.
36304 /// </summary>
36305 public string Name
36306 {
36307 get
36308 {
36309 return this.nameField;
36310 }
36311 set
36312 {
36313 this.nameFieldSet = true;
36314 this.nameField = value;
36315 }
36316 }
36317
36318 /// <summary>
36319 /// The value to set into the environment variable.
36320 /// If this attribute is not set, the environment variable is removed during installation if it exists on the machine.
36321 /// </summary>
36322 public string Value
36323 {
36324 get
36325 {
36326 return this.valueField;
36327 }
36328 set
36329 {
36330 this.valueFieldSet = true;
36331 this.valueField = value;
36332 }
36333 }
36334
36335 /// <summary>
36336 /// Optional attribute to change the separator used between values. By default a semicolon is used.
36337 /// </summary>
36338 public string Separator
36339 {
36340 get
36341 {
36342 return this.separatorField;
36343 }
36344 set
36345 {
36346 this.separatorFieldSet = true;
36347 this.separatorField = value;
36348 }
36349 }
36350
36351 /// <summary>
36352 /// Specfies whether the environmental variable should be created, set or removed when the parent component is installed.
36353 /// </summary>
36354 public ActionType Action
36355 {
36356 get
36357 {
36358 return this.actionField;
36359 }
36360 set
36361 {
36362 this.actionFieldSet = true;
36363 this.actionField = value;
36364 }
36365 }
36366
36367 public PartType Part
36368 {
36369 get
36370 {
36371 return this.partField;
36372 }
36373 set
36374 {
36375 this.partFieldSet = true;
36376 this.partField = value;
36377 }
36378 }
36379
36380 /// <summary>
36381 /// Specifies that the environment variable should not be removed on uninstall.
36382 /// </summary>
36383 public YesNoType Permanent
36384 {
36385 get
36386 {
36387 return this.permanentField;
36388 }
36389 set
36390 {
36391 this.permanentFieldSet = true;
36392 this.permanentField = value;
36393 }
36394 }
36395
36396 /// <summary>
36397 /// Specifies that the environment variable should be added to the system environment space. The default
36398 /// is 'no' which indicates the environment variable is added to the user environment space.
36399 /// </summary>
36400 public YesNoType System
36401 {
36402 get
36403 {
36404 return this.systemField;
36405 }
36406 set
36407 {
36408 this.systemFieldSet = true;
36409 this.systemField = value;
36410 }
36411 }
36412
36413 public virtual ISchemaElement ParentElement
36414 {
36415 get
36416 {
36417 return this.parentElement;
36418 }
36419 set
36420 {
36421 this.parentElement = value;
36422 }
36423 }
36424
36425 /// <summary>
36426 /// Parses a ActionType from a string.
36427 /// </summary>
36428 public static ActionType ParseActionType(string value)
36429 {
36430 ActionType parsedValue;
36431 Environment.TryParseActionType(value, out parsedValue);
36432 return parsedValue;
36433 }
36434
36435 /// <summary>
36436 /// Tries to parse a ActionType from a string.
36437 /// </summary>
36438 public static bool TryParseActionType(string value, out ActionType parsedValue)
36439 {
36440 parsedValue = ActionType.NotSet;
36441 if (string.IsNullOrEmpty(value))
36442 {
36443 return false;
36444 }
36445 if (("create" == value))
36446 {
36447 parsedValue = ActionType.create;
36448 }
36449 else
36450 {
36451 if (("set" == value))
36452 {
36453 parsedValue = ActionType.set;
36454 }
36455 else
36456 {
36457 if (("remove" == value))
36458 {
36459 parsedValue = ActionType.remove;
36460 }
36461 else
36462 {
36463 parsedValue = ActionType.IllegalValue;
36464 return false;
36465 }
36466 }
36467 }
36468 return true;
36469 }
36470
36471 /// <summary>
36472 /// Parses a PartType from a string.
36473 /// </summary>
36474 public static PartType ParsePartType(string value)
36475 {
36476 PartType parsedValue;
36477 Environment.TryParsePartType(value, out parsedValue);
36478 return parsedValue;
36479 }
36480
36481 /// <summary>
36482 /// Tries to parse a PartType from a string.
36483 /// </summary>
36484 public static bool TryParsePartType(string value, out PartType parsedValue)
36485 {
36486 parsedValue = PartType.NotSet;
36487 if (string.IsNullOrEmpty(value))
36488 {
36489 return false;
36490 }
36491 if (("all" == value))
36492 {
36493 parsedValue = PartType.all;
36494 }
36495 else
36496 {
36497 if (("first" == value))
36498 {
36499 parsedValue = PartType.first;
36500 }
36501 else
36502 {
36503 if (("last" == value))
36504 {
36505 parsedValue = PartType.last;
36506 }
36507 else
36508 {
36509 parsedValue = PartType.IllegalValue;
36510 return false;
36511 }
36512 }
36513 }
36514 return true;
36515 }
36516
36517 /// <summary>
36518 /// Processes this element and all child elements into an XmlWriter.
36519 /// </summary>
36520 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
36521 public virtual void OutputXml(XmlWriter writer)
36522 {
36523 if ((null == writer))
36524 {
36525 throw new ArgumentNullException("writer");
36526 }
36527 writer.WriteStartElement("Environment", "http://wixtoolset.org/schemas/v4/wxs");
36528 if (this.idFieldSet)
36529 {
36530 writer.WriteAttributeString("Id", this.idField);
36531 }
36532 if (this.nameFieldSet)
36533 {
36534 writer.WriteAttributeString("Name", this.nameField);
36535 }
36536 if (this.valueFieldSet)
36537 {
36538 writer.WriteAttributeString("Value", this.valueField);
36539 }
36540 if (this.separatorFieldSet)
36541 {
36542 writer.WriteAttributeString("Separator", this.separatorField);
36543 }
36544 if (this.actionFieldSet)
36545 {
36546 if ((this.actionField == ActionType.create))
36547 {
36548 writer.WriteAttributeString("Action", "create");
36549 }
36550 if ((this.actionField == ActionType.set))
36551 {
36552 writer.WriteAttributeString("Action", "set");
36553 }
36554 if ((this.actionField == ActionType.remove))
36555 {
36556 writer.WriteAttributeString("Action", "remove");
36557 }
36558 }
36559 if (this.partFieldSet)
36560 {
36561 if ((this.partField == PartType.all))
36562 {
36563 writer.WriteAttributeString("Part", "all");
36564 }
36565 if ((this.partField == PartType.first))
36566 {
36567 writer.WriteAttributeString("Part", "first");
36568 }
36569 if ((this.partField == PartType.last))
36570 {
36571 writer.WriteAttributeString("Part", "last");
36572 }
36573 }
36574 if (this.permanentFieldSet)
36575 {
36576 if ((this.permanentField == YesNoType.no))
36577 {
36578 writer.WriteAttributeString("Permanent", "no");
36579 }
36580 if ((this.permanentField == YesNoType.yes))
36581 {
36582 writer.WriteAttributeString("Permanent", "yes");
36583 }
36584 }
36585 if (this.systemFieldSet)
36586 {
36587 if ((this.systemField == YesNoType.no))
36588 {
36589 writer.WriteAttributeString("System", "no");
36590 }
36591 if ((this.systemField == YesNoType.yes))
36592 {
36593 writer.WriteAttributeString("System", "yes");
36594 }
36595 }
36596 writer.WriteEndElement();
36597 }
36598
36599 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
36600 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
36601 void ISetAttributes.SetAttribute(string name, string value)
36602 {
36603 if (String.IsNullOrEmpty(name))
36604 {
36605 throw new ArgumentNullException("name");
36606 }
36607 if (("Id" == name))
36608 {
36609 this.idField = value;
36610 this.idFieldSet = true;
36611 }
36612 if (("Name" == name))
36613 {
36614 this.nameField = value;
36615 this.nameFieldSet = true;
36616 }
36617 if (("Value" == name))
36618 {
36619 this.valueField = value;
36620 this.valueFieldSet = true;
36621 }
36622 if (("Separator" == name))
36623 {
36624 this.separatorField = value;
36625 this.separatorFieldSet = true;
36626 }
36627 if (("Action" == name))
36628 {
36629 this.actionField = Environment.ParseActionType(value);
36630 this.actionFieldSet = true;
36631 }
36632 if (("Part" == name))
36633 {
36634 this.partField = Environment.ParsePartType(value);
36635 this.partFieldSet = true;
36636 }
36637 if (("Permanent" == name))
36638 {
36639 this.permanentField = Enums.ParseYesNoType(value);
36640 this.permanentFieldSet = true;
36641 }
36642 if (("System" == name))
36643 {
36644 this.systemField = Enums.ParseYesNoType(value);
36645 this.systemFieldSet = true;
36646 }
36647 }
36648
36649 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
36650 public enum ActionType
36651 {
36652
36653 IllegalValue = int.MaxValue,
36654
36655 NotSet = -1,
36656
36657 /// <summary>
36658 /// Creates the environment variable if it does not exist, then set it during installation. This has no effect on the value of the environment variable if it already exists.
36659 /// </summary>
36660 create,
36661
36662 /// <summary>
36663 /// Creates the environment variable if it does not exist, and then set it during installation. If the environment variable exists, set it during the installation.
36664 /// </summary>
36665 set,
36666
36667 /// <summary>
36668 /// Removes the environment variable during an installation.
36669 /// The installer only removes an environment variable during an installation if the name and value
36670 /// of the variable match the entries in the Name and Value attributes.
36671 /// If you want to remove an environment variable, regardless of its value, do not set the Value attribute.
36672 /// </summary>
36673 remove,
36674 }
36675
36676 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
36677 public enum PartType
36678 {
36679
36680 IllegalValue = int.MaxValue,
36681
36682 NotSet = -1,
36683
36684 /// <summary>
36685 /// This value is the entire environmental variable. This is the default.
36686 /// </summary>
36687 all,
36688
36689 /// <summary>
36690 /// This value is prefixed.
36691 /// </summary>
36692 first,
36693
36694 /// <summary>
36695 /// This value is appended.
36696 /// </summary>
36697 last,
36698 }
36699 }
36700
36701 /// <summary>
36702 /// Conditions for components, controls, features, and products. The condition is specified in the inner text of the element.
36703 /// </summary>
36704 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
36705 public class Condition : ISchemaElement, ISetAttributes
36706 {
36707
36708 private ActionType actionField;
36709
36710 private bool actionFieldSet;
36711
36712 private int levelField;
36713
36714 private bool levelFieldSet;
36715
36716 private string messageField;
36717
36718 private bool messageFieldSet;
36719
36720 private string contentField;
36721
36722 private bool contentFieldSet;
36723
36724 private ISchemaElement parentElement;
36725
36726 /// <summary>
36727 /// Used only under Control elements and is required. Allows specific actions to be applied to a control based
36728 /// on the result of this condition.
36729 /// </summary>
36730 public ActionType Action
36731 {
36732 get
36733 {
36734 return this.actionField;
36735 }
36736 set
36737 {
36738 this.actionFieldSet = true;
36739 this.actionField = value;
36740 }
36741 }
36742
36743 /// <summary>
36744 /// Used only under Feature elements and is required. Allows modifying the level of a Feature based on the
36745 /// result of this condition.
36746 /// </summary>
36747 public int Level
36748 {
36749 get
36750 {
36751 return this.levelField;
36752 }
36753 set
36754 {
36755 this.levelFieldSet = true;
36756 this.levelField = value;
36757 }
36758 }
36759
36760 /// <summary>
36761 /// Used only under Fragment or Product elements and is required. Set the value to the text to display when the
36762 /// condition fails and the installation must be terminated.
36763 /// </summary>
36764 public string Message
36765 {
36766 get
36767 {
36768 return this.messageField;
36769 }
36770 set
36771 {
36772 this.messageFieldSet = true;
36773 this.messageField = value;
36774 }
36775 }
36776
36777 /// <summary>
36778 /// Under a Component element, the condition becomes the condition of the component. Under a Control element,
36779 /// the condition becomes a ControlCondition entry. Under a Feature element, the condition becomes a Condition
36780 /// entry. Under a Fragment or Product element, the condition becomes a LaunchCondition entry.
36781 /// </summary>
36782 public string Content
36783 {
36784 get
36785 {
36786 return this.contentField;
36787 }
36788 set
36789 {
36790 this.contentFieldSet = true;
36791 this.contentField = value;
36792 }
36793 }
36794
36795 public virtual ISchemaElement ParentElement
36796 {
36797 get
36798 {
36799 return this.parentElement;
36800 }
36801 set
36802 {
36803 this.parentElement = value;
36804 }
36805 }
36806
36807 /// <summary>
36808 /// Parses a ActionType from a string.
36809 /// </summary>
36810 public static ActionType ParseActionType(string value)
36811 {
36812 ActionType parsedValue;
36813 Condition.TryParseActionType(value, out parsedValue);
36814 return parsedValue;
36815 }
36816
36817 /// <summary>
36818 /// Tries to parse a ActionType from a string.
36819 /// </summary>
36820 public static bool TryParseActionType(string value, out ActionType parsedValue)
36821 {
36822 parsedValue = ActionType.NotSet;
36823 if (string.IsNullOrEmpty(value))
36824 {
36825 return false;
36826 }
36827 if (("default" == value))
36828 {
36829 parsedValue = ActionType.@default;
36830 }
36831 else
36832 {
36833 if (("enable" == value))
36834 {
36835 parsedValue = ActionType.enable;
36836 }
36837 else
36838 {
36839 if (("disable" == value))
36840 {
36841 parsedValue = ActionType.disable;
36842 }
36843 else
36844 {
36845 if (("hide" == value))
36846 {
36847 parsedValue = ActionType.hide;
36848 }
36849 else
36850 {
36851 if (("show" == value))
36852 {
36853 parsedValue = ActionType.show;
36854 }
36855 else
36856 {
36857 parsedValue = ActionType.IllegalValue;
36858 return false;
36859 }
36860 }
36861 }
36862 }
36863 }
36864 return true;
36865 }
36866
36867 /// <summary>
36868 /// Processes this element and all child elements into an XmlWriter.
36869 /// </summary>
36870 public virtual void OutputXml(XmlWriter writer)
36871 {
36872 if ((null == writer))
36873 {
36874 throw new ArgumentNullException("writer");
36875 }
36876 writer.WriteStartElement("Condition", "http://wixtoolset.org/schemas/v4/wxs");
36877 if (this.actionFieldSet)
36878 {
36879 if ((this.actionField == ActionType.@default))
36880 {
36881 writer.WriteAttributeString("Action", "default");
36882 }
36883 if ((this.actionField == ActionType.enable))
36884 {
36885 writer.WriteAttributeString("Action", "enable");
36886 }
36887 if ((this.actionField == ActionType.disable))
36888 {
36889 writer.WriteAttributeString("Action", "disable");
36890 }
36891 if ((this.actionField == ActionType.hide))
36892 {
36893 writer.WriteAttributeString("Action", "hide");
36894 }
36895 if ((this.actionField == ActionType.show))
36896 {
36897 writer.WriteAttributeString("Action", "show");
36898 }
36899 }
36900 if (this.levelFieldSet)
36901 {
36902 writer.WriteAttributeString("Level", this.levelField.ToString(CultureInfo.InvariantCulture));
36903 }
36904 if (this.messageFieldSet)
36905 {
36906 writer.WriteAttributeString("Message", this.messageField);
36907 }
36908 if (this.contentFieldSet)
36909 {
36910 writer.WriteString(this.contentField);
36911 }
36912 writer.WriteEndElement();
36913 }
36914
36915 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
36916 void ISetAttributes.SetAttribute(string name, string value)
36917 {
36918 if (String.IsNullOrEmpty(name))
36919 {
36920 throw new ArgumentNullException("name");
36921 }
36922 if (("Action" == name))
36923 {
36924 this.actionField = Condition.ParseActionType(value);
36925 this.actionFieldSet = true;
36926 }
36927 if (("Level" == name))
36928 {
36929 this.levelField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
36930 this.levelFieldSet = true;
36931 }
36932 if (("Message" == name))
36933 {
36934 this.messageField = value;
36935 this.messageFieldSet = true;
36936 }
36937 if (("Content" == name))
36938 {
36939 this.contentField = value;
36940 this.contentFieldSet = true;
36941 }
36942 }
36943
36944 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
36945 public enum ActionType
36946 {
36947
36948 IllegalValue = int.MaxValue,
36949
36950 NotSet = -1,
36951
36952 /// <summary>
36953 /// Set the Control as the default. Only used under Control elements.
36954 /// </summary>
36955 @default,
36956
36957 /// <summary>
36958 /// Enable the Control. Only used under Control elements.
36959 /// </summary>
36960 enable,
36961
36962 /// <summary>
36963 /// Disable the Control. Only used under Control elements.
36964 /// </summary>
36965 disable,
36966
36967 /// <summary>
36968 /// Hide the Control. Only used under Control elements.
36969 /// </summary>
36970 hide,
36971
36972 /// <summary>
36973 /// Display the Control. Only used under Control elements.
36974 /// </summary>
36975 show,
36976 }
36977 }
36978
36979 /// <summary>
36980 /// Shared Component to be privately replicated in folder of parent Component
36981 /// </summary>
36982 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
36983 public class IsolateComponent : ISchemaElement, ISetAttributes
36984 {
36985
36986 private string sharedField;
36987
36988 private bool sharedFieldSet;
36989
36990 private ISchemaElement parentElement;
36991
36992 /// <summary>
36993 /// Shared Component for this application Component.
36994 /// </summary>
36995 public string Shared
36996 {
36997 get
36998 {
36999 return this.sharedField;
37000 }
37001 set
37002 {
37003 this.sharedFieldSet = true;
37004 this.sharedField = value;
37005 }
37006 }
37007
37008 public virtual ISchemaElement ParentElement
37009 {
37010 get
37011 {
37012 return this.parentElement;
37013 }
37014 set
37015 {
37016 this.parentElement = value;
37017 }
37018 }
37019
37020 /// <summary>
37021 /// Processes this element and all child elements into an XmlWriter.
37022 /// </summary>
37023 public virtual void OutputXml(XmlWriter writer)
37024 {
37025 if ((null == writer))
37026 {
37027 throw new ArgumentNullException("writer");
37028 }
37029 writer.WriteStartElement("IsolateComponent", "http://wixtoolset.org/schemas/v4/wxs");
37030 if (this.sharedFieldSet)
37031 {
37032 writer.WriteAttributeString("Shared", this.sharedField);
37033 }
37034 writer.WriteEndElement();
37035 }
37036
37037 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
37038 void ISetAttributes.SetAttribute(string name, string value)
37039 {
37040 if (String.IsNullOrEmpty(name))
37041 {
37042 throw new ArgumentNullException("name");
37043 }
37044 if (("Shared" == name))
37045 {
37046 this.sharedField = value;
37047 this.sharedFieldSet = true;
37048 }
37049 }
37050 }
37051
37052 /// <summary>
37053 /// Disk cost to reserve in a folder for running locally and/or from source.
37054 /// </summary>
37055 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
37056 public class ReserveCost : ISchemaElement, ISetAttributes
37057 {
37058
37059 private string idField;
37060
37061 private bool idFieldSet;
37062
37063 private string directoryField;
37064
37065 private bool directoryFieldSet;
37066
37067 private int runFromSourceField;
37068
37069 private bool runFromSourceFieldSet;
37070
37071 private int runLocalField;
37072
37073 private bool runLocalFieldSet;
37074
37075 private ISchemaElement parentElement;
37076
37077 /// <summary>
37078 /// A primary key that uniquely identifies this ReserveCost entry.
37079 /// </summary>
37080 public string Id
37081 {
37082 get
37083 {
37084 return this.idField;
37085 }
37086 set
37087 {
37088 this.idFieldSet = true;
37089 this.idField = value;
37090 }
37091 }
37092
37093 /// <summary>
37094 /// Adds the amount of disk space specified in RunFromSource or RunLocal to the volume cost of the device containing the directory.
37095 /// If this attribute is not set, it will default to the directory of parent component.
37096 /// </summary>
37097 public string Directory
37098 {
37099 get
37100 {
37101 return this.directoryField;
37102 }
37103 set
37104 {
37105 this.directoryFieldSet = true;
37106 this.directoryField = value;
37107 }
37108 }
37109
37110 /// <summary>
37111 /// The number of bytes of disk space to reserve if the component is installed to run from source.
37112 /// </summary>
37113 public int RunFromSource
37114 {
37115 get
37116 {
37117 return this.runFromSourceField;
37118 }
37119 set
37120 {
37121 this.runFromSourceFieldSet = true;
37122 this.runFromSourceField = value;
37123 }
37124 }
37125
37126 /// <summary>
37127 /// The number of bytes of disk space to reserve if the component is installed to run locally.
37128 /// </summary>
37129 public int RunLocal
37130 {
37131 get
37132 {
37133 return this.runLocalField;
37134 }
37135 set
37136 {
37137 this.runLocalFieldSet = true;
37138 this.runLocalField = value;
37139 }
37140 }
37141
37142 public virtual ISchemaElement ParentElement
37143 {
37144 get
37145 {
37146 return this.parentElement;
37147 }
37148 set
37149 {
37150 this.parentElement = value;
37151 }
37152 }
37153
37154 /// <summary>
37155 /// Processes this element and all child elements into an XmlWriter.
37156 /// </summary>
37157 public virtual void OutputXml(XmlWriter writer)
37158 {
37159 if ((null == writer))
37160 {
37161 throw new ArgumentNullException("writer");
37162 }
37163 writer.WriteStartElement("ReserveCost", "http://wixtoolset.org/schemas/v4/wxs");
37164 if (this.idFieldSet)
37165 {
37166 writer.WriteAttributeString("Id", this.idField);
37167 }
37168 if (this.directoryFieldSet)
37169 {
37170 writer.WriteAttributeString("Directory", this.directoryField);
37171 }
37172 if (this.runFromSourceFieldSet)
37173 {
37174 writer.WriteAttributeString("RunFromSource", this.runFromSourceField.ToString(CultureInfo.InvariantCulture));
37175 }
37176 if (this.runLocalFieldSet)
37177 {
37178 writer.WriteAttributeString("RunLocal", this.runLocalField.ToString(CultureInfo.InvariantCulture));
37179 }
37180 writer.WriteEndElement();
37181 }
37182
37183 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
37184 void ISetAttributes.SetAttribute(string name, string value)
37185 {
37186 if (String.IsNullOrEmpty(name))
37187 {
37188 throw new ArgumentNullException("name");
37189 }
37190 if (("Id" == name))
37191 {
37192 this.idField = value;
37193 this.idFieldSet = true;
37194 }
37195 if (("Directory" == name))
37196 {
37197 this.directoryField = value;
37198 this.directoryFieldSet = true;
37199 }
37200 if (("RunFromSource" == name))
37201 {
37202 this.runFromSourceField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
37203 this.runFromSourceFieldSet = true;
37204 }
37205 if (("RunLocal" == name))
37206 {
37207 this.runLocalField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
37208 this.runLocalFieldSet = true;
37209 }
37210 }
37211 }
37212
37213 /// <summary>
37214 /// Component for parent Directory
37215 /// </summary>
37216 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
37217 public class Component : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
37218 {
37219
37220 private ElementCollection children;
37221
37222 private string idField;
37223
37224 private bool idFieldSet;
37225
37226 private int comPlusFlagsField;
37227
37228 private bool comPlusFlagsFieldSet;
37229
37230 private YesNoType disableRegistryReflectionField;
37231
37232 private bool disableRegistryReflectionFieldSet;
37233
37234 private string directoryField;
37235
37236 private bool directoryFieldSet;
37237
37238 private string diskIdField;
37239
37240 private bool diskIdFieldSet;
37241
37242 private string featureField;
37243
37244 private bool featureFieldSet;
37245
37246 private string guidField;
37247
37248 private bool guidFieldSet;
37249
37250 private YesNoType keyPathField;
37251
37252 private bool keyPathFieldSet;
37253
37254 private LocationType locationField;
37255
37256 private bool locationFieldSet;
37257
37258 private YesNoType multiInstanceField;
37259
37260 private bool multiInstanceFieldSet;
37261
37262 private YesNoType neverOverwriteField;
37263
37264 private bool neverOverwriteFieldSet;
37265
37266 private YesNoType permanentField;
37267
37268 private bool permanentFieldSet;
37269
37270 private YesNoType sharedField;
37271
37272 private bool sharedFieldSet;
37273
37274 private YesNoType sharedDllRefCountField;
37275
37276 private bool sharedDllRefCountFieldSet;
37277
37278 private YesNoType transitiveField;
37279
37280 private bool transitiveFieldSet;
37281
37282 private YesNoType uninstallWhenSupersededField;
37283
37284 private bool uninstallWhenSupersededFieldSet;
37285
37286 private YesNoType win64Field;
37287
37288 private bool win64FieldSet;
37289
37290 private ISchemaElement parentElement;
37291
37292 public Component()
37293 {
37294 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
37295 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppId)));
37296 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Category)));
37297 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Class)));
37298 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Condition)));
37299 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CopyFile)));
37300 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CreateFolder)));
37301 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Environment)));
37302 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Extension)));
37303 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(File)));
37304 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(IniFile)));
37305 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Interface)));
37306 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(IsolateComponent)));
37307 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ODBCDataSource)));
37308 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ODBCDriver)));
37309 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ODBCTranslator)));
37310 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ProgId)));
37311 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Registry)));
37312 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegistryKey)));
37313 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegistryValue)));
37314 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveFile)));
37315 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveFolder)));
37316 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveRegistryKey)));
37317 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveRegistryValue)));
37318 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ReserveCost)));
37319 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceControl)));
37320 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceConfig)));
37321 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceConfigFailureActions)));
37322 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceInstall)));
37323 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Shortcut)));
37324 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath)));
37325 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(TypeLib)));
37326 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
37327 this.children = childCollection0;
37328 }
37329
37330 public virtual IEnumerable Children
37331 {
37332 get
37333 {
37334 return this.children;
37335 }
37336 }
37337
37338 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
37339 public virtual IEnumerable this[System.Type childType]
37340 {
37341 get
37342 {
37343 return this.children.Filter(childType);
37344 }
37345 }
37346
37347 /// <summary>
37348 /// Component identifier; this is the primary key for identifying components. If omitted,
37349 /// the compiler defaults the identifier to the identifier of the resource that is the
37350 /// explicit keypath of the component (for example, a child File element with KeyPath
37351 /// attribute with value 'yes'.
37352 /// </summary>
37353 public string Id
37354 {
37355 get
37356 {
37357 return this.idField;
37358 }
37359 set
37360 {
37361 this.idFieldSet = true;
37362 this.idField = value;
37363 }
37364 }
37365
37366 /// <summary>
37367 /// Set this attribute to create a ComPlus entry. The value should be the export flags used
37368 /// during the generation of the .msi file. For more information see the COM+ documentation
37369 /// in the Platform SDK.
37370 /// </summary>
37371 public int ComPlusFlags
37372 {
37373 get
37374 {
37375 return this.comPlusFlagsField;
37376 }
37377 set
37378 {
37379 this.comPlusFlagsFieldSet = true;
37380 this.comPlusFlagsField = value;
37381 }
37382 }
37383
37384 /// <summary>
37385 /// Set this attribute to 'yes' in order to disable registry reflection on all existing and
37386 /// new registry keys affected by this component.
37387 /// When set to 'yes', the Windows Installer calls the RegDisableReflectionKey on each key
37388 /// being accessed by the component.
37389 /// This bit is available with Windows Installer version 4.0 and is ignored on 32-bit systems.
37390 /// </summary>
37391 public YesNoType DisableRegistryReflection
37392 {
37393 get
37394 {
37395 return this.disableRegistryReflectionField;
37396 }
37397 set
37398 {
37399 this.disableRegistryReflectionFieldSet = true;
37400 this.disableRegistryReflectionField = value;
37401 }
37402 }
37403
37404 /// <summary>
37405 /// Sets the Directory of the Component. If this element is nested under a Directory element,
37406 /// this value defaults to the value of the parent Directory/@Id.
37407 /// </summary>
37408 public string Directory
37409 {
37410 get
37411 {
37412 return this.directoryField;
37413 }
37414 set
37415 {
37416 this.directoryFieldSet = true;
37417 this.directoryField = value;
37418 }
37419 }
37420
37421 /// <summary>
37422 /// This attribute provides a default DiskId attribute for all child File elements. Specifying
37423 /// the DiskId on a Component element will override any DiskId attributes set by parent Directory
37424 /// or DirectoryRef elements. See the File element's DiskId attribute for more information about
37425 /// the purpose of the DiskId.
37426 /// </summary>
37427 public string DiskId
37428 {
37429 get
37430 {
37431 return this.diskIdField;
37432 }
37433 set
37434 {
37435 this.diskIdFieldSet = true;
37436 this.diskIdField = value;
37437 }
37438 }
37439
37440 /// <summary>
37441 /// Identifies a feature to which this component belongs, as a shorthand for a child
37442 /// ComponentRef element of the Feature element. The value of this attribute should
37443 /// correspond to the Id attribute of a Feature element authored elsewhere. Note that
37444 /// a single component can belong to multiple features but this attribute allows you
37445 /// to specify only a single feature.
37446 /// </summary>
37447 public string Feature
37448 {
37449 get
37450 {
37451 return this.featureField;
37452 }
37453 set
37454 {
37455 this.featureFieldSet = true;
37456 this.featureField = value;
37457 }
37458 }
37459
37460 /// <summary>
37461 /// This value should be a guid that uniquely identifies this component's contents, language, platform, and version.
37462 /// If omitted, the default value is '*' which indicates that the linker should generate a stable guid.
37463 /// Generatable guids are supported only for components with a single file as the component's keypath
37464 /// or no files and a registry value as the keypath.
37465 /// It's also possible to set the value to an empty string to specify an unmanaged component.
37466 /// Unmanaged components are a security vulnerability because the component cannot be removed or repaired
37467 /// by Windows Installer (it is essentially an unpatchable, permanent component). Therefore, a guid should
37468 /// always be specified for any component which contains resources that may need to be patched in the future.
37469 /// </summary>
37470 public string Guid
37471 {
37472 get
37473 {
37474 return this.guidField;
37475 }
37476 set
37477 {
37478 this.guidFieldSet = true;
37479 this.guidField = value;
37480 }
37481 }
37482
37483 /// <summary>
37484 /// If this attribute's value is set to 'yes', then the Directory of this Component is used
37485 /// as the KeyPath. To set a Registry value or File as the KeyPath of a component, set the
37486 /// KeyPath attribute to 'yes' on one of those child elements. If KeyPath is not set to 'yes' for the
37487 /// Component or for a child Registry value or File, WiX will look at the child elements under the
37488 /// Component in sequential order and try to automatically select one of them as a key path. Allowing
37489 /// WiX to automatically select a key path can be dangerous because adding or removing child elements
37490 /// under the Component can inadvertantly cause the key path to change, which can lead to
37491 /// installation problems.
37492 /// </summary>
37493 public YesNoType KeyPath
37494 {
37495 get
37496 {
37497 return this.keyPathField;
37498 }
37499 set
37500 {
37501 this.keyPathFieldSet = true;
37502 this.keyPathField = value;
37503 }
37504 }
37505
37506 /// <summary>
37507 /// Optional value that specifies the location that the component can be run from.
37508 /// </summary>
37509 public LocationType Location
37510 {
37511 get
37512 {
37513 return this.locationField;
37514 }
37515 set
37516 {
37517 this.locationFieldSet = true;
37518 this.locationField = value;
37519 }
37520 }
37521
37522 /// <summary>
37523 /// If this attribute is set to 'yes', a new Component/@Guid will be generated for each
37524 /// instance transform. Ensure that all of the resources contained in a multi-instance
37525 /// Component will be installed to different paths based on the instance Property; otherwise,
37526 /// the Component Rules will be violated.
37527 /// </summary>
37528 public YesNoType MultiInstance
37529 {
37530 get
37531 {
37532 return this.multiInstanceField;
37533 }
37534 set
37535 {
37536 this.multiInstanceFieldSet = true;
37537 this.multiInstanceField = value;
37538 }
37539 }
37540
37541 /// <summary>
37542 /// If this attribute is set to 'yes', the installer does not install or reinstall the
37543 /// component if a key path file or a key path registry entry for the component already
37544 /// exists. The application does register itself as a client of the component. Use this
37545 /// flag only for components that are being registered by the Registry table. Do not use
37546 /// this flag for components registered by the AppId, Class, Extension, ProgId, MIME, and
37547 /// Verb tables.
37548 /// </summary>
37549 public YesNoType NeverOverwrite
37550 {
37551 get
37552 {
37553 return this.neverOverwriteField;
37554 }
37555 set
37556 {
37557 this.neverOverwriteFieldSet = true;
37558 this.neverOverwriteField = value;
37559 }
37560 }
37561
37562 /// <summary>
37563 /// If this attribute is set to 'yes', the installer does not remove the component during
37564 /// an uninstall. The installer registers an extra system client for the component in
37565 /// the Windows Installer registry settings (which basically just means that at least one
37566 /// product is always referencing this component). Note that this option differs from the
37567 /// behavior of not setting a guid because although the component is permanent, it is still
37568 /// patchable (because Windows Installer still tracks it), it's just not uninstallable.
37569 /// </summary>
37570 public YesNoType Permanent
37571 {
37572 get
37573 {
37574 return this.permanentField;
37575 }
37576 set
37577 {
37578 this.permanentFieldSet = true;
37579 this.permanentField = value;
37580 }
37581 }
37582
37583 /// <summary>
37584 /// If this attribute's value is set to 'yes', enables advanced patching semantics for
37585 /// Components that are shared across multiple Products. Specifically, the Windows Installer
37586 /// will cache the shared files to improve patch uninstall. This functionality is available
37587 /// in Windows Installer 4.5 and later.
37588 /// </summary>
37589 public YesNoType Shared
37590 {
37591 get
37592 {
37593 return this.sharedField;
37594 }
37595 set
37596 {
37597 this.sharedFieldSet = true;
37598 this.sharedField = value;
37599 }
37600 }
37601
37602 /// <summary>
37603 /// If this attribute's value is set to 'yes', the installer increments the reference count
37604 /// in the shared DLL registry of the component's key file. If this bit is not set, the
37605 /// installer increments the reference count only if the reference count already exists.
37606 /// </summary>
37607 public YesNoType SharedDllRefCount
37608 {
37609 get
37610 {
37611 return this.sharedDllRefCountField;
37612 }
37613 set
37614 {
37615 this.sharedDllRefCountFieldSet = true;
37616 this.sharedDllRefCountField = value;
37617 }
37618 }
37619
37620 /// <summary>
37621 /// If this attribute is set to 'yes', the installer reevaluates the value of the statement
37622 /// in the Condition upon a reinstall. If the value was previously False and has changed to
37623 /// True, the installer installs the component. If the value was previously True and has
37624 /// changed to False, the installer removes the component even if the component has other
37625 /// products as clients.
37626 /// </summary>
37627 public YesNoType Transitive
37628 {
37629 get
37630 {
37631 return this.transitiveField;
37632 }
37633 set
37634 {
37635 this.transitiveFieldSet = true;
37636 this.transitiveField = value;
37637 }
37638 }
37639
37640 /// <summary>
37641 /// If this attribute is set to 'yes', the installer will uninstall the Component's files
37642 /// and registry keys when it is superseded by a patch. This functionality is available in
37643 /// Windows Installer 4.5 and later.
37644 /// </summary>
37645 public YesNoType UninstallWhenSuperseded
37646 {
37647 get
37648 {
37649 return this.uninstallWhenSupersededField;
37650 }
37651 set
37652 {
37653 this.uninstallWhenSupersededFieldSet = true;
37654 this.uninstallWhenSupersededField = value;
37655 }
37656 }
37657
37658 /// <summary>
37659 /// Set this attribute to 'yes' to mark this as a 64-bit component. This attribute facilitates
37660 /// the installation of packages that include both 32-bit and 64-bit components. If this is a 64-bit
37661 /// component replacing a 32-bit component, set this attribute to 'yes' and assign a new GUID in the Guid attribute.
37662 /// The default value is based on the platform set by the -arch switch to candle.exe
37663 /// or the InstallerPlatform property in a .wixproj MSBuild project:
37664 /// For x86 and ARM, the default value is 'no'.
37665 /// For x64 and IA64, the default value is 'yes'.
37666 /// </summary>
37667 public YesNoType Win64
37668 {
37669 get
37670 {
37671 return this.win64Field;
37672 }
37673 set
37674 {
37675 this.win64FieldSet = true;
37676 this.win64Field = value;
37677 }
37678 }
37679
37680 public virtual ISchemaElement ParentElement
37681 {
37682 get
37683 {
37684 return this.parentElement;
37685 }
37686 set
37687 {
37688 this.parentElement = value;
37689 }
37690 }
37691
37692 public virtual void AddChild(ISchemaElement child)
37693 {
37694 if ((null == child))
37695 {
37696 throw new ArgumentNullException("child");
37697 }
37698 this.children.AddElement(child);
37699 child.ParentElement = this;
37700 }
37701
37702 public virtual void RemoveChild(ISchemaElement child)
37703 {
37704 if ((null == child))
37705 {
37706 throw new ArgumentNullException("child");
37707 }
37708 this.children.RemoveElement(child);
37709 child.ParentElement = null;
37710 }
37711
37712 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
37713 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
37714 ISchemaElement ICreateChildren.CreateChild(string childName)
37715 {
37716 if (String.IsNullOrEmpty(childName))
37717 {
37718 throw new ArgumentNullException("childName");
37719 }
37720 ISchemaElement childValue = null;
37721 if (("AppId" == childName))
37722 {
37723 childValue = new AppId();
37724 }
37725 if (("Category" == childName))
37726 {
37727 childValue = new Category();
37728 }
37729 if (("Class" == childName))
37730 {
37731 childValue = new Class();
37732 }
37733 if (("Condition" == childName))
37734 {
37735 childValue = new Condition();
37736 }
37737 if (("CopyFile" == childName))
37738 {
37739 childValue = new CopyFile();
37740 }
37741 if (("CreateFolder" == childName))
37742 {
37743 childValue = new CreateFolder();
37744 }
37745 if (("Environment" == childName))
37746 {
37747 childValue = new Environment();
37748 }
37749 if (("Extension" == childName))
37750 {
37751 childValue = new Extension();
37752 }
37753 if (("File" == childName))
37754 {
37755 childValue = new File();
37756 }
37757 if (("IniFile" == childName))
37758 {
37759 childValue = new IniFile();
37760 }
37761 if (("Interface" == childName))
37762 {
37763 childValue = new Interface();
37764 }
37765 if (("IsolateComponent" == childName))
37766 {
37767 childValue = new IsolateComponent();
37768 }
37769 if (("ODBCDataSource" == childName))
37770 {
37771 childValue = new ODBCDataSource();
37772 }
37773 if (("ODBCDriver" == childName))
37774 {
37775 childValue = new ODBCDriver();
37776 }
37777 if (("ODBCTranslator" == childName))
37778 {
37779 childValue = new ODBCTranslator();
37780 }
37781 if (("ProgId" == childName))
37782 {
37783 childValue = new ProgId();
37784 }
37785 if (("Registry" == childName))
37786 {
37787 childValue = new Registry();
37788 }
37789 if (("RegistryKey" == childName))
37790 {
37791 childValue = new RegistryKey();
37792 }
37793 if (("RegistryValue" == childName))
37794 {
37795 childValue = new RegistryValue();
37796 }
37797 if (("RemoveFile" == childName))
37798 {
37799 childValue = new RemoveFile();
37800 }
37801 if (("RemoveFolder" == childName))
37802 {
37803 childValue = new RemoveFolder();
37804 }
37805 if (("RemoveRegistryKey" == childName))
37806 {
37807 childValue = new RemoveRegistryKey();
37808 }
37809 if (("RemoveRegistryValue" == childName))
37810 {
37811 childValue = new RemoveRegistryValue();
37812 }
37813 if (("ReserveCost" == childName))
37814 {
37815 childValue = new ReserveCost();
37816 }
37817 if (("ServiceControl" == childName))
37818 {
37819 childValue = new ServiceControl();
37820 }
37821 if (("ServiceConfig" == childName))
37822 {
37823 childValue = new ServiceConfig();
37824 }
37825 if (("ServiceConfigFailureActions" == childName))
37826 {
37827 childValue = new ServiceConfigFailureActions();
37828 }
37829 if (("ServiceInstall" == childName))
37830 {
37831 childValue = new ServiceInstall();
37832 }
37833 if (("Shortcut" == childName))
37834 {
37835 childValue = new Shortcut();
37836 }
37837 if (("SymbolPath" == childName))
37838 {
37839 childValue = new SymbolPath();
37840 }
37841 if (("TypeLib" == childName))
37842 {
37843 childValue = new TypeLib();
37844 }
37845 if ((null == childValue))
37846 {
37847 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
37848 }
37849 return childValue;
37850 }
37851
37852 /// <summary>
37853 /// Parses a LocationType from a string.
37854 /// </summary>
37855 public static LocationType ParseLocationType(string value)
37856 {
37857 LocationType parsedValue;
37858 Component.TryParseLocationType(value, out parsedValue);
37859 return parsedValue;
37860 }
37861
37862 /// <summary>
37863 /// Tries to parse a LocationType from a string.
37864 /// </summary>
37865 public static bool TryParseLocationType(string value, out LocationType parsedValue)
37866 {
37867 parsedValue = LocationType.NotSet;
37868 if (string.IsNullOrEmpty(value))
37869 {
37870 return false;
37871 }
37872 if (("local" == value))
37873 {
37874 parsedValue = LocationType.local;
37875 }
37876 else
37877 {
37878 if (("source" == value))
37879 {
37880 parsedValue = LocationType.source;
37881 }
37882 else
37883 {
37884 if (("either" == value))
37885 {
37886 parsedValue = LocationType.either;
37887 }
37888 else
37889 {
37890 parsedValue = LocationType.IllegalValue;
37891 return false;
37892 }
37893 }
37894 }
37895 return true;
37896 }
37897
37898 /// <summary>
37899 /// Processes this element and all child elements into an XmlWriter.
37900 /// </summary>
37901 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
37902 public virtual void OutputXml(XmlWriter writer)
37903 {
37904 if ((null == writer))
37905 {
37906 throw new ArgumentNullException("writer");
37907 }
37908 writer.WriteStartElement("Component", "http://wixtoolset.org/schemas/v4/wxs");
37909 if (this.idFieldSet)
37910 {
37911 writer.WriteAttributeString("Id", this.idField);
37912 }
37913 if (this.comPlusFlagsFieldSet)
37914 {
37915 writer.WriteAttributeString("ComPlusFlags", this.comPlusFlagsField.ToString(CultureInfo.InvariantCulture));
37916 }
37917 if (this.disableRegistryReflectionFieldSet)
37918 {
37919 if ((this.disableRegistryReflectionField == YesNoType.no))
37920 {
37921 writer.WriteAttributeString("DisableRegistryReflection", "no");
37922 }
37923 if ((this.disableRegistryReflectionField == YesNoType.yes))
37924 {
37925 writer.WriteAttributeString("DisableRegistryReflection", "yes");
37926 }
37927 }
37928 if (this.directoryFieldSet)
37929 {
37930 writer.WriteAttributeString("Directory", this.directoryField);
37931 }
37932 if (this.diskIdFieldSet)
37933 {
37934 writer.WriteAttributeString("DiskId", this.diskIdField);
37935 }
37936 if (this.featureFieldSet)
37937 {
37938 writer.WriteAttributeString("Feature", this.featureField);
37939 }
37940 if (this.guidFieldSet)
37941 {
37942 writer.WriteAttributeString("Guid", this.guidField);
37943 }
37944 if (this.keyPathFieldSet)
37945 {
37946 if ((this.keyPathField == YesNoType.no))
37947 {
37948 writer.WriteAttributeString("KeyPath", "no");
37949 }
37950 if ((this.keyPathField == YesNoType.yes))
37951 {
37952 writer.WriteAttributeString("KeyPath", "yes");
37953 }
37954 }
37955 if (this.locationFieldSet)
37956 {
37957 if ((this.locationField == LocationType.local))
37958 {
37959 writer.WriteAttributeString("Location", "local");
37960 }
37961 if ((this.locationField == LocationType.source))
37962 {
37963 writer.WriteAttributeString("Location", "source");
37964 }
37965 if ((this.locationField == LocationType.either))
37966 {
37967 writer.WriteAttributeString("Location", "either");
37968 }
37969 }
37970 if (this.multiInstanceFieldSet)
37971 {
37972 if ((this.multiInstanceField == YesNoType.no))
37973 {
37974 writer.WriteAttributeString("MultiInstance", "no");
37975 }
37976 if ((this.multiInstanceField == YesNoType.yes))
37977 {
37978 writer.WriteAttributeString("MultiInstance", "yes");
37979 }
37980 }
37981 if (this.neverOverwriteFieldSet)
37982 {
37983 if ((this.neverOverwriteField == YesNoType.no))
37984 {
37985 writer.WriteAttributeString("NeverOverwrite", "no");
37986 }
37987 if ((this.neverOverwriteField == YesNoType.yes))
37988 {
37989 writer.WriteAttributeString("NeverOverwrite", "yes");
37990 }
37991 }
37992 if (this.permanentFieldSet)
37993 {
37994 if ((this.permanentField == YesNoType.no))
37995 {
37996 writer.WriteAttributeString("Permanent", "no");
37997 }
37998 if ((this.permanentField == YesNoType.yes))
37999 {
38000 writer.WriteAttributeString("Permanent", "yes");
38001 }
38002 }
38003 if (this.sharedFieldSet)
38004 {
38005 if ((this.sharedField == YesNoType.no))
38006 {
38007 writer.WriteAttributeString("Shared", "no");
38008 }
38009 if ((this.sharedField == YesNoType.yes))
38010 {
38011 writer.WriteAttributeString("Shared", "yes");
38012 }
38013 }
38014 if (this.sharedDllRefCountFieldSet)
38015 {
38016 if ((this.sharedDllRefCountField == YesNoType.no))
38017 {
38018 writer.WriteAttributeString("SharedDllRefCount", "no");
38019 }
38020 if ((this.sharedDllRefCountField == YesNoType.yes))
38021 {
38022 writer.WriteAttributeString("SharedDllRefCount", "yes");
38023 }
38024 }
38025 if (this.transitiveFieldSet)
38026 {
38027 if ((this.transitiveField == YesNoType.no))
38028 {
38029 writer.WriteAttributeString("Transitive", "no");
38030 }
38031 if ((this.transitiveField == YesNoType.yes))
38032 {
38033 writer.WriteAttributeString("Transitive", "yes");
38034 }
38035 }
38036 if (this.uninstallWhenSupersededFieldSet)
38037 {
38038 if ((this.uninstallWhenSupersededField == YesNoType.no))
38039 {
38040 writer.WriteAttributeString("UninstallWhenSuperseded", "no");
38041 }
38042 if ((this.uninstallWhenSupersededField == YesNoType.yes))
38043 {
38044 writer.WriteAttributeString("UninstallWhenSuperseded", "yes");
38045 }
38046 }
38047 if (this.win64FieldSet)
38048 {
38049 if ((this.win64Field == YesNoType.no))
38050 {
38051 writer.WriteAttributeString("Win64", "no");
38052 }
38053 if ((this.win64Field == YesNoType.yes))
38054 {
38055 writer.WriteAttributeString("Win64", "yes");
38056 }
38057 }
38058 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
38059 {
38060 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
38061 childElement.OutputXml(writer);
38062 }
38063 writer.WriteEndElement();
38064 }
38065
38066 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
38067 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
38068 void ISetAttributes.SetAttribute(string name, string value)
38069 {
38070 if (String.IsNullOrEmpty(name))
38071 {
38072 throw new ArgumentNullException("name");
38073 }
38074 if (("Id" == name))
38075 {
38076 this.idField = value;
38077 this.idFieldSet = true;
38078 }
38079 if (("ComPlusFlags" == name))
38080 {
38081 this.comPlusFlagsField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
38082 this.comPlusFlagsFieldSet = true;
38083 }
38084 if (("DisableRegistryReflection" == name))
38085 {
38086 this.disableRegistryReflectionField = Enums.ParseYesNoType(value);
38087 this.disableRegistryReflectionFieldSet = true;
38088 }
38089 if (("Directory" == name))
38090 {
38091 this.directoryField = value;
38092 this.directoryFieldSet = true;
38093 }
38094 if (("DiskId" == name))
38095 {
38096 this.diskIdField = value;
38097 this.diskIdFieldSet = true;
38098 }
38099 if (("Feature" == name))
38100 {
38101 this.featureField = value;
38102 this.featureFieldSet = true;
38103 }
38104 if (("Guid" == name))
38105 {
38106 this.guidField = value;
38107 this.guidFieldSet = true;
38108 }
38109 if (("KeyPath" == name))
38110 {
38111 this.keyPathField = Enums.ParseYesNoType(value);
38112 this.keyPathFieldSet = true;
38113 }
38114 if (("Location" == name))
38115 {
38116 this.locationField = Component.ParseLocationType(value);
38117 this.locationFieldSet = true;
38118 }
38119 if (("MultiInstance" == name))
38120 {
38121 this.multiInstanceField = Enums.ParseYesNoType(value);
38122 this.multiInstanceFieldSet = true;
38123 }
38124 if (("NeverOverwrite" == name))
38125 {
38126 this.neverOverwriteField = Enums.ParseYesNoType(value);
38127 this.neverOverwriteFieldSet = true;
38128 }
38129 if (("Permanent" == name))
38130 {
38131 this.permanentField = Enums.ParseYesNoType(value);
38132 this.permanentFieldSet = true;
38133 }
38134 if (("Shared" == name))
38135 {
38136 this.sharedField = Enums.ParseYesNoType(value);
38137 this.sharedFieldSet = true;
38138 }
38139 if (("SharedDllRefCount" == name))
38140 {
38141 this.sharedDllRefCountField = Enums.ParseYesNoType(value);
38142 this.sharedDllRefCountFieldSet = true;
38143 }
38144 if (("Transitive" == name))
38145 {
38146 this.transitiveField = Enums.ParseYesNoType(value);
38147 this.transitiveFieldSet = true;
38148 }
38149 if (("UninstallWhenSuperseded" == name))
38150 {
38151 this.uninstallWhenSupersededField = Enums.ParseYesNoType(value);
38152 this.uninstallWhenSupersededFieldSet = true;
38153 }
38154 if (("Win64" == name))
38155 {
38156 this.win64Field = Enums.ParseYesNoType(value);
38157 this.win64FieldSet = true;
38158 }
38159 }
38160
38161 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
38162 public enum LocationType
38163 {
38164
38165 IllegalValue = int.MaxValue,
38166
38167 NotSet = -1,
38168
38169 /// <summary>
38170 /// Prevents the component from running from the source or the network (this is the default behavior if this attribute is not set).
38171 /// </summary>
38172 local,
38173
38174 /// <summary>
38175 /// Enforces that the component can only be run from the source (it cannot be run from the user's computer).
38176 /// </summary>
38177 source,
38178
38179 /// <summary>
38180 /// Allows the component to run from source or locally.
38181 /// </summary>
38182 either,
38183 }
38184 }
38185
38186 /// <summary>
38187 /// Groups together multiple components to be used in other locations.
38188 /// </summary>
38189 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
38190 public class ComponentGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
38191 {
38192
38193 private ElementCollection children;
38194
38195 private string idField;
38196
38197 private bool idFieldSet;
38198
38199 private string directoryField;
38200
38201 private bool directoryFieldSet;
38202
38203 private string sourceField;
38204
38205 private bool sourceFieldSet;
38206
38207 private ISchemaElement parentElement;
38208
38209 public ComponentGroup()
38210 {
38211 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
38212 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component)));
38213 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroupRef)));
38214 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef)));
38215 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
38216 this.children = childCollection0;
38217 }
38218
38219 public virtual IEnumerable Children
38220 {
38221 get
38222 {
38223 return this.children;
38224 }
38225 }
38226
38227 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
38228 public virtual IEnumerable this[System.Type childType]
38229 {
38230 get
38231 {
38232 return this.children.Filter(childType);
38233 }
38234 }
38235
38236 /// <summary>
38237 /// Identifier for the ComponentGroup.
38238 /// </summary>
38239 public string Id
38240 {
38241 get
38242 {
38243 return this.idField;
38244 }
38245 set
38246 {
38247 this.idFieldSet = true;
38248 this.idField = value;
38249 }
38250 }
38251
38252 /// <summary>
38253 /// Sets the default directory identifier for child Component elements.
38254 /// </summary>
38255 public string Directory
38256 {
38257 get
38258 {
38259 return this.directoryField;
38260 }
38261 set
38262 {
38263 this.directoryFieldSet = true;
38264 this.directoryField = value;
38265 }
38266 }
38267
38268 /// <summary>
38269 /// Used to set the default file system source for child Component elements. For more information, see
38270 /// </summary>
38271 public string Source
38272 {
38273 get
38274 {
38275 return this.sourceField;
38276 }
38277 set
38278 {
38279 this.sourceFieldSet = true;
38280 this.sourceField = value;
38281 }
38282 }
38283
38284 public virtual ISchemaElement ParentElement
38285 {
38286 get
38287 {
38288 return this.parentElement;
38289 }
38290 set
38291 {
38292 this.parentElement = value;
38293 }
38294 }
38295
38296 public virtual void AddChild(ISchemaElement child)
38297 {
38298 if ((null == child))
38299 {
38300 throw new ArgumentNullException("child");
38301 }
38302 this.children.AddElement(child);
38303 child.ParentElement = this;
38304 }
38305
38306 public virtual void RemoveChild(ISchemaElement child)
38307 {
38308 if ((null == child))
38309 {
38310 throw new ArgumentNullException("child");
38311 }
38312 this.children.RemoveElement(child);
38313 child.ParentElement = null;
38314 }
38315
38316 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
38317 ISchemaElement ICreateChildren.CreateChild(string childName)
38318 {
38319 if (String.IsNullOrEmpty(childName))
38320 {
38321 throw new ArgumentNullException("childName");
38322 }
38323 ISchemaElement childValue = null;
38324 if (("Component" == childName))
38325 {
38326 childValue = new Component();
38327 }
38328 if (("ComponentGroupRef" == childName))
38329 {
38330 childValue = new ComponentGroupRef();
38331 }
38332 if (("ComponentRef" == childName))
38333 {
38334 childValue = new ComponentRef();
38335 }
38336 if ((null == childValue))
38337 {
38338 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
38339 }
38340 return childValue;
38341 }
38342
38343 /// <summary>
38344 /// Processes this element and all child elements into an XmlWriter.
38345 /// </summary>
38346 public virtual void OutputXml(XmlWriter writer)
38347 {
38348 if ((null == writer))
38349 {
38350 throw new ArgumentNullException("writer");
38351 }
38352 writer.WriteStartElement("ComponentGroup", "http://wixtoolset.org/schemas/v4/wxs");
38353 if (this.idFieldSet)
38354 {
38355 writer.WriteAttributeString("Id", this.idField);
38356 }
38357 if (this.directoryFieldSet)
38358 {
38359 writer.WriteAttributeString("Directory", this.directoryField);
38360 }
38361 if (this.sourceFieldSet)
38362 {
38363 writer.WriteAttributeString("Source", this.sourceField);
38364 }
38365 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
38366 {
38367 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
38368 childElement.OutputXml(writer);
38369 }
38370 writer.WriteEndElement();
38371 }
38372
38373 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
38374 void ISetAttributes.SetAttribute(string name, string value)
38375 {
38376 if (String.IsNullOrEmpty(name))
38377 {
38378 throw new ArgumentNullException("name");
38379 }
38380 if (("Id" == name))
38381 {
38382 this.idField = value;
38383 this.idFieldSet = true;
38384 }
38385 if (("Directory" == name))
38386 {
38387 this.directoryField = value;
38388 this.directoryFieldSet = true;
38389 }
38390 if (("Source" == name))
38391 {
38392 this.sourceField = value;
38393 this.sourceFieldSet = true;
38394 }
38395 }
38396 }
38397
38398 /// <summary>
38399 /// Create a reference to a ComponentGroup in another Fragment.
38400 /// </summary>
38401 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
38402 public class ComponentGroupRef : ISchemaElement, ISetAttributes
38403 {
38404
38405 private string idField;
38406
38407 private bool idFieldSet;
38408
38409 private YesNoType primaryField;
38410
38411 private bool primaryFieldSet;
38412
38413 private ISchemaElement parentElement;
38414
38415 /// <summary>
38416 /// The identifier of the ComponentGroup to reference.
38417 /// </summary>
38418 public string Id
38419 {
38420 get
38421 {
38422 return this.idField;
38423 }
38424 set
38425 {
38426 this.idFieldSet = true;
38427 this.idField = value;
38428 }
38429 }
38430
38431 /// <summary>
38432 /// Set this attribute to 'yes' in order to make the parent feature of this component
38433 /// the primary feature for this component. Components may belong to multiple features.
38434 /// By designating a feature as the primary feature of a component, you ensure that
38435 /// whenever a component is selected for install-on-demand (IOD), the primary feature
38436 /// will be the one to install it. This attribute should only be set if a component
38437 /// actually nests under multiple features. If a component nests under only one feature,
38438 /// that feature is the primary feature for the component. You cannot set more than one
38439 /// feature as the primary feature of a given component.
38440 /// </summary>
38441 public YesNoType Primary
38442 {
38443 get
38444 {
38445 return this.primaryField;
38446 }
38447 set
38448 {
38449 this.primaryFieldSet = true;
38450 this.primaryField = value;
38451 }
38452 }
38453
38454 public virtual ISchemaElement ParentElement
38455 {
38456 get
38457 {
38458 return this.parentElement;
38459 }
38460 set
38461 {
38462 this.parentElement = value;
38463 }
38464 }
38465
38466 /// <summary>
38467 /// Processes this element and all child elements into an XmlWriter.
38468 /// </summary>
38469 public virtual void OutputXml(XmlWriter writer)
38470 {
38471 if ((null == writer))
38472 {
38473 throw new ArgumentNullException("writer");
38474 }
38475 writer.WriteStartElement("ComponentGroupRef", "http://wixtoolset.org/schemas/v4/wxs");
38476 if (this.idFieldSet)
38477 {
38478 writer.WriteAttributeString("Id", this.idField);
38479 }
38480 if (this.primaryFieldSet)
38481 {
38482 if ((this.primaryField == YesNoType.no))
38483 {
38484 writer.WriteAttributeString("Primary", "no");
38485 }
38486 if ((this.primaryField == YesNoType.yes))
38487 {
38488 writer.WriteAttributeString("Primary", "yes");
38489 }
38490 }
38491 writer.WriteEndElement();
38492 }
38493
38494 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
38495 void ISetAttributes.SetAttribute(string name, string value)
38496 {
38497 if (String.IsNullOrEmpty(name))
38498 {
38499 throw new ArgumentNullException("name");
38500 }
38501 if (("Id" == name))
38502 {
38503 this.idField = value;
38504 this.idFieldSet = true;
38505 }
38506 if (("Primary" == name))
38507 {
38508 this.primaryField = Enums.ParseYesNoType(value);
38509 this.primaryFieldSet = true;
38510 }
38511 }
38512 }
38513
38514 /// <summary>
38515 /// Used only for PatchFamilies to include all changes between the baseline and upgraded packages in a patch.
38516 /// </summary>
38517 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
38518 public class All : ISetAttributes, ISchemaElement
38519 {
38520
38521 private ISchemaElement parentElement;
38522
38523 private string contentField;
38524
38525 private bool contentFieldSet;
38526
38527 public virtual ISchemaElement ParentElement
38528 {
38529 get
38530 {
38531 return this.parentElement;
38532 }
38533 set
38534 {
38535 this.parentElement = value;
38536 }
38537 }
38538
38539 /// <summary>
38540 /// Used only for PatchFamilies to include all changes between the baseline and upgraded packages in a patch.
38541 /// </summary>
38542 public string Content
38543 {
38544 get
38545 {
38546 return this.contentField;
38547 }
38548 set
38549 {
38550 this.contentFieldSet = true;
38551 this.contentField = value;
38552 }
38553 }
38554
38555 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
38556 void ISetAttributes.SetAttribute(string name, string value)
38557 {
38558 if (String.IsNullOrEmpty(name))
38559 {
38560 throw new ArgumentNullException("name");
38561 }
38562 if (("Content" == name))
38563 {
38564 this.contentField = value;
38565 this.contentFieldSet = true;
38566 }
38567 }
38568
38569 /// <summary>
38570 /// Processes this element and all child elements into an XmlWriter.
38571 /// </summary>
38572 public virtual void OutputXml(XmlWriter writer)
38573 {
38574 if ((null == writer))
38575 {
38576 throw new ArgumentNullException("writer");
38577 }
38578 writer.WriteStartElement("All", "http://wixtoolset.org/schemas/v4/wxs");
38579 if (this.contentFieldSet)
38580 {
38581 writer.WriteString(this.contentField);
38582 }
38583 writer.WriteEndElement();
38584 }
38585 }
38586
38587 /// <summary>
38588 /// Used only for PatchFamilies to include only a binary table entry in a patch.
38589 /// </summary>
38590 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
38591 public class BinaryRef : ISchemaElement, ISetAttributes
38592 {
38593
38594 private string idField;
38595
38596 private bool idFieldSet;
38597
38598 private ISchemaElement parentElement;
38599
38600 /// <summary>
38601 /// The identifier of the Binary element to reference.
38602 /// </summary>
38603 public string Id
38604 {
38605 get
38606 {
38607 return this.idField;
38608 }
38609 set
38610 {
38611 this.idFieldSet = true;
38612 this.idField = value;
38613 }
38614 }
38615
38616 public virtual ISchemaElement ParentElement
38617 {
38618 get
38619 {
38620 return this.parentElement;
38621 }
38622 set
38623 {
38624 this.parentElement = value;
38625 }
38626 }
38627
38628 /// <summary>
38629 /// Processes this element and all child elements into an XmlWriter.
38630 /// </summary>
38631 public virtual void OutputXml(XmlWriter writer)
38632 {
38633 if ((null == writer))
38634 {
38635 throw new ArgumentNullException("writer");
38636 }
38637 writer.WriteStartElement("BinaryRef", "http://wixtoolset.org/schemas/v4/wxs");
38638 if (this.idFieldSet)
38639 {
38640 writer.WriteAttributeString("Id", this.idField);
38641 }
38642 writer.WriteEndElement();
38643 }
38644
38645 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
38646 void ISetAttributes.SetAttribute(string name, string value)
38647 {
38648 if (String.IsNullOrEmpty(name))
38649 {
38650 throw new ArgumentNullException("name");
38651 }
38652 if (("Id" == name))
38653 {
38654 this.idField = value;
38655 this.idFieldSet = true;
38656 }
38657 }
38658 }
38659
38660 /// <summary>
38661 /// Used only for PatchFamilies to include only a icon table entry in a patch.
38662 /// </summary>
38663 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
38664 public class IconRef : ISchemaElement, ISetAttributes
38665 {
38666
38667 private string idField;
38668
38669 private bool idFieldSet;
38670
38671 private ISchemaElement parentElement;
38672
38673 /// <summary>
38674 /// The identifier of the Icon element to reference.
38675 /// </summary>
38676 public string Id
38677 {
38678 get
38679 {
38680 return this.idField;
38681 }
38682 set
38683 {
38684 this.idFieldSet = true;
38685 this.idField = value;
38686 }
38687 }
38688
38689 public virtual ISchemaElement ParentElement
38690 {
38691 get
38692 {
38693 return this.parentElement;
38694 }
38695 set
38696 {
38697 this.parentElement = value;
38698 }
38699 }
38700
38701 /// <summary>
38702 /// Processes this element and all child elements into an XmlWriter.
38703 /// </summary>
38704 public virtual void OutputXml(XmlWriter writer)
38705 {
38706 if ((null == writer))
38707 {
38708 throw new ArgumentNullException("writer");
38709 }
38710 writer.WriteStartElement("IconRef", "http://wixtoolset.org/schemas/v4/wxs");
38711 if (this.idFieldSet)
38712 {
38713 writer.WriteAttributeString("Id", this.idField);
38714 }
38715 writer.WriteEndElement();
38716 }
38717
38718 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
38719 void ISetAttributes.SetAttribute(string name, string value)
38720 {
38721 if (String.IsNullOrEmpty(name))
38722 {
38723 throw new ArgumentNullException("name");
38724 }
38725 if (("Id" == name))
38726 {
38727 this.idField = value;
38728 this.idFieldSet = true;
38729 }
38730 }
38731 }
38732
38733 /// <summary>
38734 /// Create a reference to a Feature element in another Fragment.
38735 /// </summary>
38736 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
38737 public class ComponentRef : ISchemaElement, ISetAttributes
38738 {
38739
38740 private string idField;
38741
38742 private bool idFieldSet;
38743
38744 private YesNoType primaryField;
38745
38746 private bool primaryFieldSet;
38747
38748 private ISchemaElement parentElement;
38749
38750 /// <summary>
38751 /// The identifier of the Component element to reference.
38752 /// </summary>
38753 public string Id
38754 {
38755 get
38756 {
38757 return this.idField;
38758 }
38759 set
38760 {
38761 this.idFieldSet = true;
38762 this.idField = value;
38763 }
38764 }
38765
38766 /// <summary>
38767 /// Set this attribute to 'yes' in order to make the parent feature of this component
38768 /// the primary feature for this component. Components may belong to multiple features.
38769 /// By designating a feature as the primary feature of a component, you ensure that
38770 /// whenever a component is selected for install-on-demand (IOD), the primary feature
38771 /// will be the one to install it. This attribute should only be set if a component
38772 /// actually nests under multiple features. If a component nests under only one feature,
38773 /// that feature is the primary feature for the component. You cannot set more than one
38774 /// feature as the primary feature of a given component.
38775 /// </summary>
38776 public YesNoType Primary
38777 {
38778 get
38779 {
38780 return this.primaryField;
38781 }
38782 set
38783 {
38784 this.primaryFieldSet = true;
38785 this.primaryField = value;
38786 }
38787 }
38788
38789 public virtual ISchemaElement ParentElement
38790 {
38791 get
38792 {
38793 return this.parentElement;
38794 }
38795 set
38796 {
38797 this.parentElement = value;
38798 }
38799 }
38800
38801 /// <summary>
38802 /// Processes this element and all child elements into an XmlWriter.
38803 /// </summary>
38804 public virtual void OutputXml(XmlWriter writer)
38805 {
38806 if ((null == writer))
38807 {
38808 throw new ArgumentNullException("writer");
38809 }
38810 writer.WriteStartElement("ComponentRef", "http://wixtoolset.org/schemas/v4/wxs");
38811 if (this.idFieldSet)
38812 {
38813 writer.WriteAttributeString("Id", this.idField);
38814 }
38815 if (this.primaryFieldSet)
38816 {
38817 if ((this.primaryField == YesNoType.no))
38818 {
38819 writer.WriteAttributeString("Primary", "no");
38820 }
38821 if ((this.primaryField == YesNoType.yes))
38822 {
38823 writer.WriteAttributeString("Primary", "yes");
38824 }
38825 }
38826 writer.WriteEndElement();
38827 }
38828
38829 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
38830 void ISetAttributes.SetAttribute(string name, string value)
38831 {
38832 if (String.IsNullOrEmpty(name))
38833 {
38834 throw new ArgumentNullException("name");
38835 }
38836 if (("Id" == name))
38837 {
38838 this.idField = value;
38839 this.idFieldSet = true;
38840 }
38841 if (("Primary" == name))
38842 {
38843 this.primaryField = Enums.ParseYesNoType(value);
38844 this.primaryFieldSet = true;
38845 }
38846 }
38847 }
38848
38849 /// <summary>
38850 /// Merge directive to bring in a merge module that will be redirected to the parent directory.
38851 /// </summary>
38852 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
38853 public class Merge : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
38854 {
38855
38856 private ElementCollection children;
38857
38858 private string idField;
38859
38860 private bool idFieldSet;
38861
38862 private string diskIdField;
38863
38864 private bool diskIdFieldSet;
38865
38866 private YesNoType fileCompressionField;
38867
38868 private bool fileCompressionFieldSet;
38869
38870 private string languageField;
38871
38872 private bool languageFieldSet;
38873
38874 private string sourceFileField;
38875
38876 private bool sourceFileFieldSet;
38877
38878 private string srcField;
38879
38880 private bool srcFieldSet;
38881
38882 private ISchemaElement parentElement;
38883
38884 public Merge()
38885 {
38886 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
38887 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ConfigurationData)));
38888 this.children = childCollection0;
38889 }
38890
38891 public virtual IEnumerable Children
38892 {
38893 get
38894 {
38895 return this.children;
38896 }
38897 }
38898
38899 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
38900 public virtual IEnumerable this[System.Type childType]
38901 {
38902 get
38903 {
38904 return this.children.Filter(childType);
38905 }
38906 }
38907
38908 /// <summary>
38909 /// The unique identifier for the Merge element in the source code. Referenced by the MergeRef/@Id.
38910 /// </summary>
38911 public string Id
38912 {
38913 get
38914 {
38915 return this.idField;
38916 }
38917 set
38918 {
38919 this.idFieldSet = true;
38920 this.idField = value;
38921 }
38922 }
38923
38924 /// <summary>
38925 /// The value of this attribute should correspond to the Id attribute of a
38926 /// Media element authored elsewhere. By creating this connection between the merge module and Media
38927 /// element, you set the packaging options to the values specified in the Media
38928 /// element (values such as compression level, cab embedding, etc...).
38929 /// </summary>
38930 public string DiskId
38931 {
38932 get
38933 {
38934 return this.diskIdField;
38935 }
38936 set
38937 {
38938 this.diskIdFieldSet = true;
38939 this.diskIdField = value;
38940 }
38941 }
38942
38943 /// <summary>
38944 /// Specifies if the files in the merge module should be compressed.
38945 /// </summary>
38946 public YesNoType FileCompression
38947 {
38948 get
38949 {
38950 return this.fileCompressionField;
38951 }
38952 set
38953 {
38954 this.fileCompressionFieldSet = true;
38955 this.fileCompressionField = value;
38956 }
38957 }
38958
38959 /// <summary>
38960 /// Specifies the decimal LCID or localization token for the language to merge the Module in as.
38961 /// </summary>
38962 public string Language
38963 {
38964 get
38965 {
38966 return this.languageField;
38967 }
38968 set
38969 {
38970 this.languageFieldSet = true;
38971 this.languageField = value;
38972 }
38973 }
38974
38975 /// <summary>
38976 /// Path to the source location of the merge module.
38977 /// </summary>
38978 public string SourceFile
38979 {
38980 get
38981 {
38982 return this.sourceFileField;
38983 }
38984 set
38985 {
38986 this.sourceFileFieldSet = true;
38987 this.sourceFileField = value;
38988 }
38989 }
38990
38991 [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
38992 public string src
38993 {
38994 get
38995 {
38996 return this.srcField;
38997 }
38998 set
38999 {
39000 this.srcFieldSet = true;
39001 this.srcField = value;
39002 }
39003 }
39004
39005 public virtual ISchemaElement ParentElement
39006 {
39007 get
39008 {
39009 return this.parentElement;
39010 }
39011 set
39012 {
39013 this.parentElement = value;
39014 }
39015 }
39016
39017 public virtual void AddChild(ISchemaElement child)
39018 {
39019 if ((null == child))
39020 {
39021 throw new ArgumentNullException("child");
39022 }
39023 this.children.AddElement(child);
39024 child.ParentElement = this;
39025 }
39026
39027 public virtual void RemoveChild(ISchemaElement child)
39028 {
39029 if ((null == child))
39030 {
39031 throw new ArgumentNullException("child");
39032 }
39033 this.children.RemoveElement(child);
39034 child.ParentElement = null;
39035 }
39036
39037 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
39038 ISchemaElement ICreateChildren.CreateChild(string childName)
39039 {
39040 if (String.IsNullOrEmpty(childName))
39041 {
39042 throw new ArgumentNullException("childName");
39043 }
39044 ISchemaElement childValue = null;
39045 if (("ConfigurationData" == childName))
39046 {
39047 childValue = new ConfigurationData();
39048 }
39049 if ((null == childValue))
39050 {
39051 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
39052 }
39053 return childValue;
39054 }
39055
39056 /// <summary>
39057 /// Processes this element and all child elements into an XmlWriter.
39058 /// </summary>
39059 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
39060 public virtual void OutputXml(XmlWriter writer)
39061 {
39062 if ((null == writer))
39063 {
39064 throw new ArgumentNullException("writer");
39065 }
39066 writer.WriteStartElement("Merge", "http://wixtoolset.org/schemas/v4/wxs");
39067 if (this.idFieldSet)
39068 {
39069 writer.WriteAttributeString("Id", this.idField);
39070 }
39071 if (this.diskIdFieldSet)
39072 {
39073 writer.WriteAttributeString("DiskId", this.diskIdField);
39074 }
39075 if (this.fileCompressionFieldSet)
39076 {
39077 if ((this.fileCompressionField == YesNoType.no))
39078 {
39079 writer.WriteAttributeString("FileCompression", "no");
39080 }
39081 if ((this.fileCompressionField == YesNoType.yes))
39082 {
39083 writer.WriteAttributeString("FileCompression", "yes");
39084 }
39085 }
39086 if (this.languageFieldSet)
39087 {
39088 writer.WriteAttributeString("Language", this.languageField);
39089 }
39090 if (this.sourceFileFieldSet)
39091 {
39092 writer.WriteAttributeString("SourceFile", this.sourceFileField);
39093 }
39094 if (this.srcFieldSet)
39095 {
39096 writer.WriteAttributeString("src", this.srcField);
39097 }
39098 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
39099 {
39100 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
39101 childElement.OutputXml(writer);
39102 }
39103 writer.WriteEndElement();
39104 }
39105
39106 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
39107 void ISetAttributes.SetAttribute(string name, string value)
39108 {
39109 if (String.IsNullOrEmpty(name))
39110 {
39111 throw new ArgumentNullException("name");
39112 }
39113 if (("Id" == name))
39114 {
39115 this.idField = value;
39116 this.idFieldSet = true;
39117 }
39118 if (("DiskId" == name))
39119 {
39120 this.diskIdField = value;
39121 this.diskIdFieldSet = true;
39122 }
39123 if (("FileCompression" == name))
39124 {
39125 this.fileCompressionField = Enums.ParseYesNoType(value);
39126 this.fileCompressionFieldSet = true;
39127 }
39128 if (("Language" == name))
39129 {
39130 this.languageField = value;
39131 this.languageFieldSet = true;
39132 }
39133 if (("SourceFile" == name))
39134 {
39135 this.sourceFileField = value;
39136 this.sourceFileFieldSet = true;
39137 }
39138 if (("src" == name))
39139 {
39140 this.srcField = value;
39141 this.srcFieldSet = true;
39142 }
39143 }
39144 }
39145
39146 /// <summary>
39147 /// Merge reference to connect a Merge Module to parent Feature
39148 /// </summary>
39149 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
39150 public class MergeRef : ISchemaElement, ISetAttributes
39151 {
39152
39153 private string idField;
39154
39155 private bool idFieldSet;
39156
39157 private YesNoType primaryField;
39158
39159 private bool primaryFieldSet;
39160
39161 private ISchemaElement parentElement;
39162
39163 /// <summary>
39164 /// The unique identifier for the Merge element to be referenced.
39165 /// </summary>
39166 public string Id
39167 {
39168 get
39169 {
39170 return this.idField;
39171 }
39172 set
39173 {
39174 this.idFieldSet = true;
39175 this.idField = value;
39176 }
39177 }
39178
39179 /// <summary>
39180 /// Specifies whether the feature containing this MergeRef is the primary feature for advertising the merge module's components.
39181 /// </summary>
39182 public YesNoType Primary
39183 {
39184 get
39185 {
39186 return this.primaryField;
39187 }
39188 set
39189 {
39190 this.primaryFieldSet = true;
39191 this.primaryField = value;
39192 }
39193 }
39194
39195 public virtual ISchemaElement ParentElement
39196 {
39197 get
39198 {
39199 return this.parentElement;
39200 }
39201 set
39202 {
39203 this.parentElement = value;
39204 }
39205 }
39206
39207 /// <summary>
39208 /// Processes this element and all child elements into an XmlWriter.
39209 /// </summary>
39210 public virtual void OutputXml(XmlWriter writer)
39211 {
39212 if ((null == writer))
39213 {
39214 throw new ArgumentNullException("writer");
39215 }
39216 writer.WriteStartElement("MergeRef", "http://wixtoolset.org/schemas/v4/wxs");
39217 if (this.idFieldSet)
39218 {
39219 writer.WriteAttributeString("Id", this.idField);
39220 }
39221 if (this.primaryFieldSet)
39222 {
39223 if ((this.primaryField == YesNoType.no))
39224 {
39225 writer.WriteAttributeString("Primary", "no");
39226 }
39227 if ((this.primaryField == YesNoType.yes))
39228 {
39229 writer.WriteAttributeString("Primary", "yes");
39230 }
39231 }
39232 writer.WriteEndElement();
39233 }
39234
39235 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
39236 void ISetAttributes.SetAttribute(string name, string value)
39237 {
39238 if (String.IsNullOrEmpty(name))
39239 {
39240 throw new ArgumentNullException("name");
39241 }
39242 if (("Id" == name))
39243 {
39244 this.idField = value;
39245 this.idFieldSet = true;
39246 }
39247 if (("Primary" == name))
39248 {
39249 this.primaryField = Enums.ParseYesNoType(value);
39250 this.primaryFieldSet = true;
39251 }
39252 }
39253 }
39254
39255 /// <summary>
39256 /// Data to use as input to a configurable merge module.
39257 /// </summary>
39258 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
39259 public class ConfigurationData : ISchemaElement, ISetAttributes
39260 {
39261
39262 private string nameField;
39263
39264 private bool nameFieldSet;
39265
39266 private string valueField;
39267
39268 private bool valueFieldSet;
39269
39270 private ISchemaElement parentElement;
39271
39272 /// <summary>
39273 /// Name of the item in the ModuleConfiguration table.
39274 /// </summary>
39275 public string Name
39276 {
39277 get
39278 {
39279 return this.nameField;
39280 }
39281 set
39282 {
39283 this.nameFieldSet = true;
39284 this.nameField = value;
39285 }
39286 }
39287
39288 /// <summary>
39289 /// Value to be passed to configurable merge module.
39290 /// </summary>
39291 public string Value
39292 {
39293 get
39294 {
39295 return this.valueField;
39296 }
39297 set
39298 {
39299 this.valueFieldSet = true;
39300 this.valueField = value;
39301 }
39302 }
39303
39304 public virtual ISchemaElement ParentElement
39305 {
39306 get
39307 {
39308 return this.parentElement;
39309 }
39310 set
39311 {
39312 this.parentElement = value;
39313 }
39314 }
39315
39316 /// <summary>
39317 /// Processes this element and all child elements into an XmlWriter.
39318 /// </summary>
39319 public virtual void OutputXml(XmlWriter writer)
39320 {
39321 if ((null == writer))
39322 {
39323 throw new ArgumentNullException("writer");
39324 }
39325 writer.WriteStartElement("ConfigurationData", "http://wixtoolset.org/schemas/v4/wxs");
39326 if (this.nameFieldSet)
39327 {
39328 writer.WriteAttributeString("Name", this.nameField);
39329 }
39330 if (this.valueFieldSet)
39331 {
39332 writer.WriteAttributeString("Value", this.valueField);
39333 }
39334 writer.WriteEndElement();
39335 }
39336
39337 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
39338 void ISetAttributes.SetAttribute(string name, string value)
39339 {
39340 if (String.IsNullOrEmpty(name))
39341 {
39342 throw new ArgumentNullException("name");
39343 }
39344 if (("Name" == name))
39345 {
39346 this.nameField = value;
39347 this.nameFieldSet = true;
39348 }
39349 if (("Value" == name))
39350 {
39351 this.valueField = value;
39352 this.valueFieldSet = true;
39353 }
39354 }
39355 }
39356
39357 /// <summary>
39358 /// Directory layout for the product. Also specifies the mappings between source and target directories.
39359 /// </summary>
39360 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
39361 public class Directory : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
39362 {
39363
39364 private ElementCollection children;
39365
39366 private string idField;
39367
39368 private bool idFieldSet;
39369
39370 private string componentGuidGenerationSeedField;
39371
39372 private bool componentGuidGenerationSeedFieldSet;
39373
39374 private string diskIdField;
39375
39376 private bool diskIdFieldSet;
39377
39378 private string fileSourceField;
39379
39380 private bool fileSourceFieldSet;
39381
39382 private string nameField;
39383
39384 private bool nameFieldSet;
39385
39386 private string shortNameField;
39387
39388 private bool shortNameFieldSet;
39389
39390 private string shortSourceNameField;
39391
39392 private bool shortSourceNameFieldSet;
39393
39394 private string sourceNameField;
39395
39396 private bool sourceNameFieldSet;
39397
39398 private string srcField;
39399
39400 private bool srcFieldSet;
39401
39402 private ISchemaElement parentElement;
39403
39404 public Directory()
39405 {
39406 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
39407 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component)));
39408 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Directory)));
39409 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Merge)));
39410 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath)));
39411 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
39412 this.children = childCollection0;
39413 }
39414
39415 public virtual IEnumerable Children
39416 {
39417 get
39418 {
39419 return this.children;
39420 }
39421 }
39422
39423 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
39424 public virtual IEnumerable this[System.Type childType]
39425 {
39426 get
39427 {
39428 return this.children.Filter(childType);
39429 }
39430 }
39431
39432 /// <summary>
39433 /// This value is the unique identifier of the directory entry.
39434 /// </summary>
39435 public string Id
39436 {
39437 get
39438 {
39439 return this.idField;
39440 }
39441 set
39442 {
39443 this.idFieldSet = true;
39444 this.idField = value;
39445 }
39446 }
39447
39448 /// <summary>
39449 /// The Component Guid Generation Seed is a guid that must be used when a Component with the generate guid directive ("*")
39450 /// is not rooted in a standard Windows Installer directory (for example, ProgramFilesFolder or CommonFilesFolder).
39451 /// It is recommended that this attribute be avoided and that developers install their Components under standard
39452 /// directories with unique names instead (for example, "ProgramFilesFolder\Company Name Product Name Version"). It is
39453 /// important to note that once a directory is assigned a Component Guid Generation Seed the value must not change until
39454 /// (and must be changed when) the path to that directory, including itself and all parent directories, changes.
39455 /// </summary>
39456 public string ComponentGuidGenerationSeed
39457 {
39458 get
39459 {
39460 return this.componentGuidGenerationSeedField;
39461 }
39462 set
39463 {
39464 this.componentGuidGenerationSeedFieldSet = true;
39465 this.componentGuidGenerationSeedField = value;
39466 }
39467 }
39468
39469 /// <summary>
39470 /// Sets the default disk identifier for the files contained in this directory.
39471 /// This attribute's value may be overridden by a child Component, Directory,
39472 /// Merge or File element. See the File or Merge elements' DiskId attribute for
39473 /// more information.
39474 /// </summary>
39475 public string DiskId
39476 {
39477 get
39478 {
39479 return this.diskIdField;
39480 }
39481 set
39482 {
39483 this.diskIdFieldSet = true;
39484 this.diskIdField = value;
39485 }
39486 }
39487
39488 /// <summary>
39489 /// Used to set the file system source for this directory's child elements. For more information, see
39490 /// </summary>
39491 public string FileSource
39492 {
39493 get
39494 {
39495 return this.fileSourceField;
39496 }
39497 set
39498 {
39499 this.fileSourceFieldSet = true;
39500 this.fileSourceField = value;
39501 }
39502 }
39503
39504 /// <summary>
39505 /// The name of the directory.
39506 ///
39507 /// Do not specify this attribute if this directory represents
39508 /// the same directory as the parent (see the Windows Installer SDK's
39509 /// </summary>
39510 public string Name
39511 {
39512 get
39513 {
39514 return this.nameField;
39515 }
39516 set
39517 {
39518 this.nameFieldSet = true;
39519 this.nameField = value;
39520 }
39521 }
39522
39523 /// <summary>
39524 /// The short name of the directory in 8.3 format.
39525 /// This attribute should only be set if there is a conflict between generated short directory names
39526 /// or the user wants to manually specify the short directory name.
39527 /// </summary>
39528 public string ShortName
39529 {
39530 get
39531 {
39532 return this.shortNameField;
39533 }
39534 set
39535 {
39536 this.shortNameFieldSet = true;
39537 this.shortNameField = value;
39538 }
39539 }
39540
39541 /// <summary>
39542 /// The short name of the directory on the source media in 8.3 format.
39543 /// This attribute should only be set if there is a conflict between generated short directory names
39544 /// or the user wants to manually specify the short source directory name.
39545 /// </summary>
39546 public string ShortSourceName
39547 {
39548 get
39549 {
39550 return this.shortSourceNameField;
39551 }
39552 set
39553 {
39554 this.shortSourceNameFieldSet = true;
39555 this.shortSourceNameField = value;
39556 }
39557 }
39558
39559 /// <summary>
39560 /// The name of the directory on the source media.
39561 /// If this attribute is not specified, Windows Installer will default to the Name attribute.
39562 ///
39563 /// In prior versions of the WiX toolset, this attribute specified the short source directory name.
39564 /// This attribute's value may now be either a short or long directory name.
39565 /// If a short directory name is specified, the ShortSourceName attribute may not be specified.
39566 /// If a long directory name is specified, the LongSource attribute may not be specified.
39567 /// Also, if this value is a long directory name, the ShortSourceName attribute may be omitted to
39568 /// allow WiX to attempt to generate a unique short directory name.
39569 /// However, if this name collides with another directory or you wish to manually specify
39570 /// the short directory name, then the ShortSourceName attribute may be specified.
39571 /// </summary>
39572 public string SourceName
39573 {
39574 get
39575 {
39576 return this.sourceNameField;
39577 }
39578 set
39579 {
39580 this.sourceNameFieldSet = true;
39581 this.sourceNameField = value;
39582 }
39583 }
39584
39585 [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
39586 public string src
39587 {
39588 get
39589 {
39590 return this.srcField;
39591 }
39592 set
39593 {
39594 this.srcFieldSet = true;
39595 this.srcField = value;
39596 }
39597 }
39598
39599 public virtual ISchemaElement ParentElement
39600 {
39601 get
39602 {
39603 return this.parentElement;
39604 }
39605 set
39606 {
39607 this.parentElement = value;
39608 }
39609 }
39610
39611 public virtual void AddChild(ISchemaElement child)
39612 {
39613 if ((null == child))
39614 {
39615 throw new ArgumentNullException("child");
39616 }
39617 this.children.AddElement(child);
39618 child.ParentElement = this;
39619 }
39620
39621 public virtual void RemoveChild(ISchemaElement child)
39622 {
39623 if ((null == child))
39624 {
39625 throw new ArgumentNullException("child");
39626 }
39627 this.children.RemoveElement(child);
39628 child.ParentElement = null;
39629 }
39630
39631 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
39632 ISchemaElement ICreateChildren.CreateChild(string childName)
39633 {
39634 if (String.IsNullOrEmpty(childName))
39635 {
39636 throw new ArgumentNullException("childName");
39637 }
39638 ISchemaElement childValue = null;
39639 if (("Component" == childName))
39640 {
39641 childValue = new Component();
39642 }
39643 if (("Directory" == childName))
39644 {
39645 childValue = new Directory();
39646 }
39647 if (("Merge" == childName))
39648 {
39649 childValue = new Merge();
39650 }
39651 if (("SymbolPath" == childName))
39652 {
39653 childValue = new SymbolPath();
39654 }
39655 if ((null == childValue))
39656 {
39657 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
39658 }
39659 return childValue;
39660 }
39661
39662 /// <summary>
39663 /// Processes this element and all child elements into an XmlWriter.
39664 /// </summary>
39665 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
39666 public virtual void OutputXml(XmlWriter writer)
39667 {
39668 if ((null == writer))
39669 {
39670 throw new ArgumentNullException("writer");
39671 }
39672 writer.WriteStartElement("Directory", "http://wixtoolset.org/schemas/v4/wxs");
39673 if (this.idFieldSet)
39674 {
39675 writer.WriteAttributeString("Id", this.idField);
39676 }
39677 if (this.componentGuidGenerationSeedFieldSet)
39678 {
39679 writer.WriteAttributeString("ComponentGuidGenerationSeed", this.componentGuidGenerationSeedField);
39680 }
39681 if (this.diskIdFieldSet)
39682 {
39683 writer.WriteAttributeString("DiskId", this.diskIdField);
39684 }
39685 if (this.fileSourceFieldSet)
39686 {
39687 writer.WriteAttributeString("FileSource", this.fileSourceField);
39688 }
39689 if (this.nameFieldSet)
39690 {
39691 writer.WriteAttributeString("Name", this.nameField);
39692 }
39693 if (this.shortNameFieldSet)
39694 {
39695 writer.WriteAttributeString("ShortName", this.shortNameField);
39696 }
39697 if (this.shortSourceNameFieldSet)
39698 {
39699 writer.WriteAttributeString("ShortSourceName", this.shortSourceNameField);
39700 }
39701 if (this.sourceNameFieldSet)
39702 {
39703 writer.WriteAttributeString("SourceName", this.sourceNameField);
39704 }
39705 if (this.srcFieldSet)
39706 {
39707 writer.WriteAttributeString("src", this.srcField);
39708 }
39709 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
39710 {
39711 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
39712 childElement.OutputXml(writer);
39713 }
39714 writer.WriteEndElement();
39715 }
39716
39717 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
39718 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
39719 void ISetAttributes.SetAttribute(string name, string value)
39720 {
39721 if (String.IsNullOrEmpty(name))
39722 {
39723 throw new ArgumentNullException("name");
39724 }
39725 if (("Id" == name))
39726 {
39727 this.idField = value;
39728 this.idFieldSet = true;
39729 }
39730 if (("ComponentGuidGenerationSeed" == name))
39731 {
39732 this.componentGuidGenerationSeedField = value;
39733 this.componentGuidGenerationSeedFieldSet = true;
39734 }
39735 if (("DiskId" == name))
39736 {
39737 this.diskIdField = value;
39738 this.diskIdFieldSet = true;
39739 }
39740 if (("FileSource" == name))
39741 {
39742 this.fileSourceField = value;
39743 this.fileSourceFieldSet = true;
39744 }
39745 if (("Name" == name))
39746 {
39747 this.nameField = value;
39748 this.nameFieldSet = true;
39749 }
39750 if (("ShortName" == name))
39751 {
39752 this.shortNameField = value;
39753 this.shortNameFieldSet = true;
39754 }
39755 if (("ShortSourceName" == name))
39756 {
39757 this.shortSourceNameField = value;
39758 this.shortSourceNameFieldSet = true;
39759 }
39760 if (("SourceName" == name))
39761 {
39762 this.sourceNameField = value;
39763 this.sourceNameFieldSet = true;
39764 }
39765 if (("src" == name))
39766 {
39767 this.srcField = value;
39768 this.srcFieldSet = true;
39769 }
39770 }
39771 }
39772
39773 /// <summary>
39774 /// Create a reference to a Directory element in another Fragment.
39775 /// </summary>
39776 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
39777 public class DirectoryRef : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
39778 {
39779
39780 private ElementCollection children;
39781
39782 private string idField;
39783
39784 private bool idFieldSet;
39785
39786 private string diskIdField;
39787
39788 private bool diskIdFieldSet;
39789
39790 private string fileSourceField;
39791
39792 private bool fileSourceFieldSet;
39793
39794 private string srcField;
39795
39796 private bool srcFieldSet;
39797
39798 private ISchemaElement parentElement;
39799
39800 public DirectoryRef()
39801 {
39802 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
39803 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component)));
39804 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Directory)));
39805 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Merge)));
39806 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
39807 this.children = childCollection0;
39808 }
39809
39810 public virtual IEnumerable Children
39811 {
39812 get
39813 {
39814 return this.children;
39815 }
39816 }
39817
39818 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
39819 public virtual IEnumerable this[System.Type childType]
39820 {
39821 get
39822 {
39823 return this.children.Filter(childType);
39824 }
39825 }
39826
39827 /// <summary>
39828 /// The identifier of the Directory element to reference.
39829 /// </summary>
39830 public string Id
39831 {
39832 get
39833 {
39834 return this.idField;
39835 }
39836 set
39837 {
39838 this.idFieldSet = true;
39839 this.idField = value;
39840 }
39841 }
39842
39843 /// <summary>
39844 /// Sets the default disk identifier for the files contained in this directory.
39845 /// This attribute's value may be overridden by a child Component, Directory,
39846 /// Merge or File element. See the File or Merge elements' DiskId attribute for
39847 /// more information.
39848 /// </summary>
39849 public string DiskId
39850 {
39851 get
39852 {
39853 return this.diskIdField;
39854 }
39855 set
39856 {
39857 this.diskIdFieldSet = true;
39858 this.diskIdField = value;
39859 }
39860 }
39861
39862 /// <summary>
39863 /// Used to set the file system source for this DirectoryRef's child elements. For more information, see
39864 /// </summary>
39865 public string FileSource
39866 {
39867 get
39868 {
39869 return this.fileSourceField;
39870 }
39871 set
39872 {
39873 this.fileSourceFieldSet = true;
39874 this.fileSourceField = value;
39875 }
39876 }
39877
39878 [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
39879 public string src
39880 {
39881 get
39882 {
39883 return this.srcField;
39884 }
39885 set
39886 {
39887 this.srcFieldSet = true;
39888 this.srcField = value;
39889 }
39890 }
39891
39892 public virtual ISchemaElement ParentElement
39893 {
39894 get
39895 {
39896 return this.parentElement;
39897 }
39898 set
39899 {
39900 this.parentElement = value;
39901 }
39902 }
39903
39904 public virtual void AddChild(ISchemaElement child)
39905 {
39906 if ((null == child))
39907 {
39908 throw new ArgumentNullException("child");
39909 }
39910 this.children.AddElement(child);
39911 child.ParentElement = this;
39912 }
39913
39914 public virtual void RemoveChild(ISchemaElement child)
39915 {
39916 if ((null == child))
39917 {
39918 throw new ArgumentNullException("child");
39919 }
39920 this.children.RemoveElement(child);
39921 child.ParentElement = null;
39922 }
39923
39924 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
39925 ISchemaElement ICreateChildren.CreateChild(string childName)
39926 {
39927 if (String.IsNullOrEmpty(childName))
39928 {
39929 throw new ArgumentNullException("childName");
39930 }
39931 ISchemaElement childValue = null;
39932 if (("Component" == childName))
39933 {
39934 childValue = new Component();
39935 }
39936 if (("Directory" == childName))
39937 {
39938 childValue = new Directory();
39939 }
39940 if (("Merge" == childName))
39941 {
39942 childValue = new Merge();
39943 }
39944 if ((null == childValue))
39945 {
39946 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
39947 }
39948 return childValue;
39949 }
39950
39951 /// <summary>
39952 /// Processes this element and all child elements into an XmlWriter.
39953 /// </summary>
39954 public virtual void OutputXml(XmlWriter writer)
39955 {
39956 if ((null == writer))
39957 {
39958 throw new ArgumentNullException("writer");
39959 }
39960 writer.WriteStartElement("DirectoryRef", "http://wixtoolset.org/schemas/v4/wxs");
39961 if (this.idFieldSet)
39962 {
39963 writer.WriteAttributeString("Id", this.idField);
39964 }
39965 if (this.diskIdFieldSet)
39966 {
39967 writer.WriteAttributeString("DiskId", this.diskIdField);
39968 }
39969 if (this.fileSourceFieldSet)
39970 {
39971 writer.WriteAttributeString("FileSource", this.fileSourceField);
39972 }
39973 if (this.srcFieldSet)
39974 {
39975 writer.WriteAttributeString("src", this.srcField);
39976 }
39977 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
39978 {
39979 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
39980 childElement.OutputXml(writer);
39981 }
39982 writer.WriteEndElement();
39983 }
39984
39985 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
39986 void ISetAttributes.SetAttribute(string name, string value)
39987 {
39988 if (String.IsNullOrEmpty(name))
39989 {
39990 throw new ArgumentNullException("name");
39991 }
39992 if (("Id" == name))
39993 {
39994 this.idField = value;
39995 this.idFieldSet = true;
39996 }
39997 if (("DiskId" == name))
39998 {
39999 this.diskIdField = value;
40000 this.diskIdFieldSet = true;
40001 }
40002 if (("FileSource" == name))
40003 {
40004 this.fileSourceField = value;
40005 this.fileSourceFieldSet = true;
40006 }
40007 if (("src" == name))
40008 {
40009 this.srcField = value;
40010 this.srcFieldSet = true;
40011 }
40012 }
40013 }
40014
40015 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
40016 public class UpgradeVersion : ISchemaElement, ISetAttributes
40017 {
40018
40019 private string minimumField;
40020
40021 private bool minimumFieldSet;
40022
40023 private string maximumField;
40024
40025 private bool maximumFieldSet;
40026
40027 private string languageField;
40028
40029 private bool languageFieldSet;
40030
40031 private string removeFeaturesField;
40032
40033 private bool removeFeaturesFieldSet;
40034
40035 private string propertyField;
40036
40037 private bool propertyFieldSet;
40038
40039 private YesNoType migrateFeaturesField;
40040
40041 private bool migrateFeaturesFieldSet;
40042
40043 private YesNoType onlyDetectField;
40044
40045 private bool onlyDetectFieldSet;
40046
40047 private YesNoType ignoreRemoveFailureField;
40048
40049 private bool ignoreRemoveFailureFieldSet;
40050
40051 private YesNoType includeMinimumField;
40052
40053 private bool includeMinimumFieldSet;
40054
40055 private YesNoType includeMaximumField;
40056
40057 private bool includeMaximumFieldSet;
40058
40059 private YesNoType excludeLanguagesField;
40060
40061 private bool excludeLanguagesFieldSet;
40062
40063 private string contentField;
40064
40065 private bool contentFieldSet;
40066
40067 private ISchemaElement parentElement;
40068
40069 /// <summary>
40070 /// Specifies the lower bound on the range of product versions to be detected by FindRelatedProducts.
40071 /// </summary>
40072 public string Minimum
40073 {
40074 get
40075 {
40076 return this.minimumField;
40077 }
40078 set
40079 {
40080 this.minimumFieldSet = true;
40081 this.minimumField = value;
40082 }
40083 }
40084
40085 /// <summary>
40086 /// Specifies the upper boundary of the range of product versions detected by FindRelatedProducts.
40087 /// </summary>
40088 public string Maximum
40089 {
40090 get
40091 {
40092 return this.maximumField;
40093 }
40094 set
40095 {
40096 this.maximumFieldSet = true;
40097 this.maximumField = value;
40098 }
40099 }
40100
40101 /// <summary>
40102 /// Specifies the set of languages detected by FindRelatedProducts. Enter a list of numeric language identifiers (LANGID) separated by commas (,). Leave this value null to specify all languages. Set ExcludeLanguages to "yes" in order detect all languages, excluding the languages listed in this value.
40103 /// </summary>
40104 public string Language
40105 {
40106 get
40107 {
40108 return this.languageField;
40109 }
40110 set
40111 {
40112 this.languageFieldSet = true;
40113 this.languageField = value;
40114 }
40115 }
40116
40117 /// <summary>
40118 /// The installer sets the REMOVE property to features specified in this column. The features to be removed can be determined at run time. The Formatted string entered in this field must evaluate to a comma-delimited list of feature names. For example: [Feature1],[Feature2],[Feature3]. No features are removed if the field contains formatted text that evaluates to an empty string. The installer sets REMOVE=ALL only if the Remove field is empty.
40119 /// </summary>
40120 public string RemoveFeatures
40121 {
40122 get
40123 {
40124 return this.removeFeaturesField;
40125 }
40126 set
40127 {
40128 this.removeFeaturesFieldSet = true;
40129 this.removeFeaturesField = value;
40130 }
40131 }
40132
40133 /// <summary>
40134 /// When the FindRelatedProducts action detects a related product installed on the system, it appends the product code to the property specified in this field. Windows Installer documentation for the
40135 /// </summary>
40136 public string Property
40137 {
40138 get
40139 {
40140 return this.propertyField;
40141 }
40142 set
40143 {
40144 this.propertyFieldSet = true;
40145 this.propertyField = value;
40146 }
40147 }
40148
40149 /// <summary>
40150 /// Set to "yes" to migrate feature states from upgraded products by enabling the logic in the MigrateFeatureStates action.
40151 /// </summary>
40152 public YesNoType MigrateFeatures
40153 {
40154 get
40155 {
40156 return this.migrateFeaturesField;
40157 }
40158 set
40159 {
40160 this.migrateFeaturesFieldSet = true;
40161 this.migrateFeaturesField = value;
40162 }
40163 }
40164
40165 /// <summary>
40166 /// Set to "yes" to detect products and applications but do not uninstall.
40167 /// </summary>
40168 public YesNoType OnlyDetect
40169 {
40170 get
40171 {
40172 return this.onlyDetectField;
40173 }
40174 set
40175 {
40176 this.onlyDetectFieldSet = true;
40177 this.onlyDetectField = value;
40178 }
40179 }
40180
40181 /// <summary>
40182 /// Set to "yes" to continue installation upon failure to remove a product or application.
40183 /// </summary>
40184 public YesNoType IgnoreRemoveFailure
40185 {
40186 get
40187 {
40188 return this.ignoreRemoveFailureField;
40189 }
40190 set
40191 {
40192 this.ignoreRemoveFailureFieldSet = true;
40193 this.ignoreRemoveFailureField = value;
40194 }
40195 }
40196
40197 /// <summary>
40198 /// Set to "no" to make the range of versions detected exclude the value specified in Minimum. This attribute is "yes" by default.
40199 /// </summary>
40200 public YesNoType IncludeMinimum
40201 {
40202 get
40203 {
40204 return this.includeMinimumField;
40205 }
40206 set
40207 {
40208 this.includeMinimumFieldSet = true;
40209 this.includeMinimumField = value;
40210 }
40211 }
40212
40213 /// <summary>
40214 /// Set to "yes" to make the range of versions detected include the value specified in Maximum.
40215 /// </summary>
40216 public YesNoType IncludeMaximum
40217 {
40218 get
40219 {
40220 return this.includeMaximumField;
40221 }
40222 set
40223 {
40224 this.includeMaximumFieldSet = true;
40225 this.includeMaximumField = value;
40226 }
40227 }
40228
40229 /// <summary>
40230 /// Set to "yes" to detect all languages, excluding the languages listed in the Language attribute.
40231 /// </summary>
40232 public YesNoType ExcludeLanguages
40233 {
40234 get
40235 {
40236 return this.excludeLanguagesField;
40237 }
40238 set
40239 {
40240 this.excludeLanguagesFieldSet = true;
40241 this.excludeLanguagesField = value;
40242 }
40243 }
40244
40245 public string Content
40246 {
40247 get
40248 {
40249 return this.contentField;
40250 }
40251 set
40252 {
40253 this.contentFieldSet = true;
40254 this.contentField = value;
40255 }
40256 }
40257
40258 public virtual ISchemaElement ParentElement
40259 {
40260 get
40261 {
40262 return this.parentElement;
40263 }
40264 set
40265 {
40266 this.parentElement = value;
40267 }
40268 }
40269
40270 /// <summary>
40271 /// Processes this element and all child elements into an XmlWriter.
40272 /// </summary>
40273 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
40274 public virtual void OutputXml(XmlWriter writer)
40275 {
40276 if ((null == writer))
40277 {
40278 throw new ArgumentNullException("writer");
40279 }
40280 writer.WriteStartElement("UpgradeVersion", "http://wixtoolset.org/schemas/v4/wxs");
40281 if (this.minimumFieldSet)
40282 {
40283 writer.WriteAttributeString("Minimum", this.minimumField);
40284 }
40285 if (this.maximumFieldSet)
40286 {
40287 writer.WriteAttributeString("Maximum", this.maximumField);
40288 }
40289 if (this.languageFieldSet)
40290 {
40291 writer.WriteAttributeString("Language", this.languageField);
40292 }
40293 if (this.removeFeaturesFieldSet)
40294 {
40295 writer.WriteAttributeString("RemoveFeatures", this.removeFeaturesField);
40296 }
40297 if (this.propertyFieldSet)
40298 {
40299 writer.WriteAttributeString("Property", this.propertyField);
40300 }
40301 if (this.migrateFeaturesFieldSet)
40302 {
40303 if ((this.migrateFeaturesField == YesNoType.no))
40304 {
40305 writer.WriteAttributeString("MigrateFeatures", "no");
40306 }
40307 if ((this.migrateFeaturesField == YesNoType.yes))
40308 {
40309 writer.WriteAttributeString("MigrateFeatures", "yes");
40310 }
40311 }
40312 if (this.onlyDetectFieldSet)
40313 {
40314 if ((this.onlyDetectField == YesNoType.no))
40315 {
40316 writer.WriteAttributeString("OnlyDetect", "no");
40317 }
40318 if ((this.onlyDetectField == YesNoType.yes))
40319 {
40320 writer.WriteAttributeString("OnlyDetect", "yes");
40321 }
40322 }
40323 if (this.ignoreRemoveFailureFieldSet)
40324 {
40325 if ((this.ignoreRemoveFailureField == YesNoType.no))
40326 {
40327 writer.WriteAttributeString("IgnoreRemoveFailure", "no");
40328 }
40329 if ((this.ignoreRemoveFailureField == YesNoType.yes))
40330 {
40331 writer.WriteAttributeString("IgnoreRemoveFailure", "yes");
40332 }
40333 }
40334 if (this.includeMinimumFieldSet)
40335 {
40336 if ((this.includeMinimumField == YesNoType.no))
40337 {
40338 writer.WriteAttributeString("IncludeMinimum", "no");
40339 }
40340 if ((this.includeMinimumField == YesNoType.yes))
40341 {
40342 writer.WriteAttributeString("IncludeMinimum", "yes");
40343 }
40344 }
40345 if (this.includeMaximumFieldSet)
40346 {
40347 if ((this.includeMaximumField == YesNoType.no))
40348 {
40349 writer.WriteAttributeString("IncludeMaximum", "no");
40350 }
40351 if ((this.includeMaximumField == YesNoType.yes))
40352 {
40353 writer.WriteAttributeString("IncludeMaximum", "yes");
40354 }
40355 }
40356 if (this.excludeLanguagesFieldSet)
40357 {
40358 if ((this.excludeLanguagesField == YesNoType.no))
40359 {
40360 writer.WriteAttributeString("ExcludeLanguages", "no");
40361 }
40362 if ((this.excludeLanguagesField == YesNoType.yes))
40363 {
40364 writer.WriteAttributeString("ExcludeLanguages", "yes");
40365 }
40366 }
40367 if (this.contentFieldSet)
40368 {
40369 writer.WriteString(this.contentField);
40370 }
40371 writer.WriteEndElement();
40372 }
40373
40374 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
40375 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
40376 void ISetAttributes.SetAttribute(string name, string value)
40377 {
40378 if (String.IsNullOrEmpty(name))
40379 {
40380 throw new ArgumentNullException("name");
40381 }
40382 if (("Minimum" == name))
40383 {
40384 this.minimumField = value;
40385 this.minimumFieldSet = true;
40386 }
40387 if (("Maximum" == name))
40388 {
40389 this.maximumField = value;
40390 this.maximumFieldSet = true;
40391 }
40392 if (("Language" == name))
40393 {
40394 this.languageField = value;
40395 this.languageFieldSet = true;
40396 }
40397 if (("RemoveFeatures" == name))
40398 {
40399 this.removeFeaturesField = value;
40400 this.removeFeaturesFieldSet = true;
40401 }
40402 if (("Property" == name))
40403 {
40404 this.propertyField = value;
40405 this.propertyFieldSet = true;
40406 }
40407 if (("MigrateFeatures" == name))
40408 {
40409 this.migrateFeaturesField = Enums.ParseYesNoType(value);
40410 this.migrateFeaturesFieldSet = true;
40411 }
40412 if (("OnlyDetect" == name))
40413 {
40414 this.onlyDetectField = Enums.ParseYesNoType(value);
40415 this.onlyDetectFieldSet = true;
40416 }
40417 if (("IgnoreRemoveFailure" == name))
40418 {
40419 this.ignoreRemoveFailureField = Enums.ParseYesNoType(value);
40420 this.ignoreRemoveFailureFieldSet = true;
40421 }
40422 if (("IncludeMinimum" == name))
40423 {
40424 this.includeMinimumField = Enums.ParseYesNoType(value);
40425 this.includeMinimumFieldSet = true;
40426 }
40427 if (("IncludeMaximum" == name))
40428 {
40429 this.includeMaximumField = Enums.ParseYesNoType(value);
40430 this.includeMaximumFieldSet = true;
40431 }
40432 if (("ExcludeLanguages" == name))
40433 {
40434 this.excludeLanguagesField = Enums.ParseYesNoType(value);
40435 this.excludeLanguagesFieldSet = true;
40436 }
40437 if (("Content" == name))
40438 {
40439 this.contentField = value;
40440 this.contentFieldSet = true;
40441 }
40442 }
40443 }
40444
40445 /// <summary>
40446 /// Upgrade info for a particular UpgradeCode
40447 /// </summary>
40448 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
40449 public class Upgrade : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
40450 {
40451
40452 private ElementCollection children;
40453
40454 private string idField;
40455
40456 private bool idFieldSet;
40457
40458 private ISchemaElement parentElement;
40459
40460 public Upgrade()
40461 {
40462 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
40463 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UpgradeVersion)));
40464 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Property)));
40465 this.children = childCollection0;
40466 }
40467
40468 public virtual IEnumerable Children
40469 {
40470 get
40471 {
40472 return this.children;
40473 }
40474 }
40475
40476 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
40477 public virtual IEnumerable this[System.Type childType]
40478 {
40479 get
40480 {
40481 return this.children.Filter(childType);
40482 }
40483 }
40484
40485 /// <summary>
40486 /// This value specifies the upgrade code for the products that are to be detected by the FindRelatedProducts action.
40487 /// </summary>
40488 public string Id
40489 {
40490 get
40491 {
40492 return this.idField;
40493 }
40494 set
40495 {
40496 this.idFieldSet = true;
40497 this.idField = value;
40498 }
40499 }
40500
40501 public virtual ISchemaElement ParentElement
40502 {
40503 get
40504 {
40505 return this.parentElement;
40506 }
40507 set
40508 {
40509 this.parentElement = value;
40510 }
40511 }
40512
40513 public virtual void AddChild(ISchemaElement child)
40514 {
40515 if ((null == child))
40516 {
40517 throw new ArgumentNullException("child");
40518 }
40519 this.children.AddElement(child);
40520 child.ParentElement = this;
40521 }
40522
40523 public virtual void RemoveChild(ISchemaElement child)
40524 {
40525 if ((null == child))
40526 {
40527 throw new ArgumentNullException("child");
40528 }
40529 this.children.RemoveElement(child);
40530 child.ParentElement = null;
40531 }
40532
40533 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
40534 ISchemaElement ICreateChildren.CreateChild(string childName)
40535 {
40536 if (String.IsNullOrEmpty(childName))
40537 {
40538 throw new ArgumentNullException("childName");
40539 }
40540 ISchemaElement childValue = null;
40541 if (("UpgradeVersion" == childName))
40542 {
40543 childValue = new UpgradeVersion();
40544 }
40545 if (("Property" == childName))
40546 {
40547 childValue = new Property();
40548 }
40549 if ((null == childValue))
40550 {
40551 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
40552 }
40553 return childValue;
40554 }
40555
40556 /// <summary>
40557 /// Processes this element and all child elements into an XmlWriter.
40558 /// </summary>
40559 public virtual void OutputXml(XmlWriter writer)
40560 {
40561 if ((null == writer))
40562 {
40563 throw new ArgumentNullException("writer");
40564 }
40565 writer.WriteStartElement("Upgrade", "http://wixtoolset.org/schemas/v4/wxs");
40566 if (this.idFieldSet)
40567 {
40568 writer.WriteAttributeString("Id", this.idField);
40569 }
40570 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
40571 {
40572 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
40573 childElement.OutputXml(writer);
40574 }
40575 writer.WriteEndElement();
40576 }
40577
40578 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
40579 void ISetAttributes.SetAttribute(string name, string value)
40580 {
40581 if (String.IsNullOrEmpty(name))
40582 {
40583 throw new ArgumentNullException("name");
40584 }
40585 if (("Id" == name))
40586 {
40587 this.idField = value;
40588 this.idFieldSet = true;
40589 }
40590 }
40591 }
40592
40593 /// <summary>
40594 /// A feature for the Feature table. Features are the smallest installable unit. See msi.chm for more
40595 /// detailed information on the myriad installation options for a feature.
40596 /// </summary>
40597 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
40598 public class Feature : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
40599 {
40600
40601 private ElementCollection children;
40602
40603 private string idField;
40604
40605 private bool idFieldSet;
40606
40607 private AbsentType absentField;
40608
40609 private bool absentFieldSet;
40610
40611 private AllowAdvertiseType allowAdvertiseField;
40612
40613 private bool allowAdvertiseFieldSet;
40614
40615 private string configurableDirectoryField;
40616
40617 private bool configurableDirectoryFieldSet;
40618
40619 private string descriptionField;
40620
40621 private bool descriptionFieldSet;
40622
40623 private string displayField;
40624
40625 private bool displayFieldSet;
40626
40627 private InstallDefaultType installDefaultField;
40628
40629 private bool installDefaultFieldSet;
40630
40631 private int levelField;
40632
40633 private bool levelFieldSet;
40634
40635 private string titleField;
40636
40637 private bool titleFieldSet;
40638
40639 private TypicalDefaultType typicalDefaultField;
40640
40641 private bool typicalDefaultFieldSet;
40642
40643 private ISchemaElement parentElement;
40644
40645 public Feature()
40646 {
40647 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
40648 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component)));
40649 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroupRef)));
40650 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef)));
40651 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Condition)));
40652 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Feature)));
40653 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroupRef)));
40654 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef)));
40655 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MergeRef)));
40656 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
40657 this.children = childCollection0;
40658 }
40659
40660 public virtual IEnumerable Children
40661 {
40662 get
40663 {
40664 return this.children;
40665 }
40666 }
40667
40668 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
40669 public virtual IEnumerable this[System.Type childType]
40670 {
40671 get
40672 {
40673 return this.children.Filter(childType);
40674 }
40675 }
40676
40677 /// <summary>
40678 /// Unique identifier of the feature.
40679 /// </summary>
40680 public string Id
40681 {
40682 get
40683 {
40684 return this.idField;
40685 }
40686 set
40687 {
40688 this.idFieldSet = true;
40689 this.idField = value;
40690 }
40691 }
40692
40693 /// <summary>
40694 /// This attribute determines if a user will have the option to set a feature to absent in the user interface.
40695 /// </summary>
40696 public AbsentType Absent
40697 {
40698 get
40699 {
40700 return this.absentField;
40701 }
40702 set
40703 {
40704 this.absentFieldSet = true;
40705 this.absentField = value;
40706 }
40707 }
40708
40709 /// <summary>
40710 /// This attribute determines the possible advertise states for this feature.
40711 /// </summary>
40712 public AllowAdvertiseType AllowAdvertise
40713 {
40714 get
40715 {
40716 return this.allowAdvertiseField;
40717 }
40718 set
40719 {
40720 this.allowAdvertiseFieldSet = true;
40721 this.allowAdvertiseField = value;
40722 }
40723 }
40724
40725 /// <summary>
40726 /// Specify the Id of a Directory that can be configured by the user at installation time. This identifier
40727 /// must be a public property and therefore completely uppercase.
40728 /// </summary>
40729 public string ConfigurableDirectory
40730 {
40731 get
40732 {
40733 return this.configurableDirectoryField;
40734 }
40735 set
40736 {
40737 this.configurableDirectoryFieldSet = true;
40738 this.configurableDirectoryField = value;
40739 }
40740 }
40741
40742 /// <summary>
40743 /// Longer string of text describing the feature. This localizable string is displayed by the
40744 /// Text Control of the Selection Dialog.
40745 /// </summary>
40746 public string Description
40747 {
40748 get
40749 {
40750 return this.descriptionField;
40751 }
40752 set
40753 {
40754 this.descriptionFieldSet = true;
40755 this.descriptionField = value;
40756 }
40757 }
40758
40759 /// <summary>
40760 /// Determines the initial display of this feature in the feature tree.
40761 /// This attribute's value should be one of the following:
40762 /// </summary>
40763 public string Display
40764 {
40765 get
40766 {
40767 return this.displayField;
40768 }
40769 set
40770 {
40771 this.displayFieldSet = true;
40772 this.displayField = value;
40773 }
40774 }
40775
40776 /// <summary>
40777 /// This attribute determines the default install/run location of a feature. This attribute cannot be specified
40778 /// if the value of the FollowParent attribute is 'yes' since that would ask the installer to force this feature
40779 /// to follow the parent installation state and simultaneously favor a particular installation state just for this feature.
40780 /// </summary>
40781 public InstallDefaultType InstallDefault
40782 {
40783 get
40784 {
40785 return this.installDefaultField;
40786 }
40787 set
40788 {
40789 this.installDefaultFieldSet = true;
40790 this.installDefaultField = value;
40791 }
40792 }
40793
40794 /// <summary>
40795 /// Sets the install level of this feature. A value of 0 will disable the feature. Processing the
40796 /// Condition Table can modify the level value (this is set via the Condition child element). The
40797 /// default value is "1".
40798 /// </summary>
40799 public int Level
40800 {
40801 get
40802 {
40803 return this.levelField;
40804 }
40805 set
40806 {
40807 this.levelFieldSet = true;
40808 this.levelField = value;
40809 }
40810 }
40811
40812 /// <summary>
40813 /// Short string of text identifying the feature. This string is listed as an item by the
40814 /// SelectionTree control of the Selection Dialog.
40815 /// </summary>
40816 public string Title
40817 {
40818 get
40819 {
40820 return this.titleField;
40821 }
40822 set
40823 {
40824 this.titleFieldSet = true;
40825 this.titleField = value;
40826 }
40827 }
40828
40829 /// <summary>
40830 /// This attribute determines the default advertise state of the feature.
40831 /// </summary>
40832 public TypicalDefaultType TypicalDefault
40833 {
40834 get
40835 {
40836 return this.typicalDefaultField;
40837 }
40838 set
40839 {
40840 this.typicalDefaultFieldSet = true;
40841 this.typicalDefaultField = value;
40842 }
40843 }
40844
40845 public virtual ISchemaElement ParentElement
40846 {
40847 get
40848 {
40849 return this.parentElement;
40850 }
40851 set
40852 {
40853 this.parentElement = value;
40854 }
40855 }
40856
40857 public virtual void AddChild(ISchemaElement child)
40858 {
40859 if ((null == child))
40860 {
40861 throw new ArgumentNullException("child");
40862 }
40863 this.children.AddElement(child);
40864 child.ParentElement = this;
40865 }
40866
40867 public virtual void RemoveChild(ISchemaElement child)
40868 {
40869 if ((null == child))
40870 {
40871 throw new ArgumentNullException("child");
40872 }
40873 this.children.RemoveElement(child);
40874 child.ParentElement = null;
40875 }
40876
40877 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
40878 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
40879 ISchemaElement ICreateChildren.CreateChild(string childName)
40880 {
40881 if (String.IsNullOrEmpty(childName))
40882 {
40883 throw new ArgumentNullException("childName");
40884 }
40885 ISchemaElement childValue = null;
40886 if (("Component" == childName))
40887 {
40888 childValue = new Component();
40889 }
40890 if (("ComponentGroupRef" == childName))
40891 {
40892 childValue = new ComponentGroupRef();
40893 }
40894 if (("ComponentRef" == childName))
40895 {
40896 childValue = new ComponentRef();
40897 }
40898 if (("Condition" == childName))
40899 {
40900 childValue = new Condition();
40901 }
40902 if (("Feature" == childName))
40903 {
40904 childValue = new Feature();
40905 }
40906 if (("FeatureGroupRef" == childName))
40907 {
40908 childValue = new FeatureGroupRef();
40909 }
40910 if (("FeatureRef" == childName))
40911 {
40912 childValue = new FeatureRef();
40913 }
40914 if (("MergeRef" == childName))
40915 {
40916 childValue = new MergeRef();
40917 }
40918 if ((null == childValue))
40919 {
40920 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
40921 }
40922 return childValue;
40923 }
40924
40925 /// <summary>
40926 /// Parses a AbsentType from a string.
40927 /// </summary>
40928 public static AbsentType ParseAbsentType(string value)
40929 {
40930 AbsentType parsedValue;
40931 Feature.TryParseAbsentType(value, out parsedValue);
40932 return parsedValue;
40933 }
40934
40935 /// <summary>
40936 /// Tries to parse a AbsentType from a string.
40937 /// </summary>
40938 public static bool TryParseAbsentType(string value, out AbsentType parsedValue)
40939 {
40940 parsedValue = AbsentType.NotSet;
40941 if (string.IsNullOrEmpty(value))
40942 {
40943 return false;
40944 }
40945 if (("allow" == value))
40946 {
40947 parsedValue = AbsentType.allow;
40948 }
40949 else
40950 {
40951 if (("disallow" == value))
40952 {
40953 parsedValue = AbsentType.disallow;
40954 }
40955 else
40956 {
40957 parsedValue = AbsentType.IllegalValue;
40958 return false;
40959 }
40960 }
40961 return true;
40962 }
40963
40964 /// <summary>
40965 /// Parses a AllowAdvertiseType from a string.
40966 /// </summary>
40967 public static AllowAdvertiseType ParseAllowAdvertiseType(string value)
40968 {
40969 AllowAdvertiseType parsedValue;
40970 Feature.TryParseAllowAdvertiseType(value, out parsedValue);
40971 return parsedValue;
40972 }
40973
40974 /// <summary>
40975 /// Tries to parse a AllowAdvertiseType from a string.
40976 /// </summary>
40977 public static bool TryParseAllowAdvertiseType(string value, out AllowAdvertiseType parsedValue)
40978 {
40979 parsedValue = AllowAdvertiseType.NotSet;
40980 if (string.IsNullOrEmpty(value))
40981 {
40982 return false;
40983 }
40984 if (("no" == value))
40985 {
40986 parsedValue = AllowAdvertiseType.no;
40987 }
40988 else
40989 {
40990 if (("system" == value))
40991 {
40992 parsedValue = AllowAdvertiseType.system;
40993 }
40994 else
40995 {
40996 if (("yes" == value))
40997 {
40998 parsedValue = AllowAdvertiseType.yes;
40999 }
41000 else
41001 {
41002 parsedValue = AllowAdvertiseType.IllegalValue;
41003 return false;
41004 }
41005 }
41006 }
41007 return true;
41008 }
41009
41010 /// <summary>
41011 /// Parses a InstallDefaultType from a string.
41012 /// </summary>
41013 public static InstallDefaultType ParseInstallDefaultType(string value)
41014 {
41015 InstallDefaultType parsedValue;
41016 Feature.TryParseInstallDefaultType(value, out parsedValue);
41017 return parsedValue;
41018 }
41019
41020 /// <summary>
41021 /// Tries to parse a InstallDefaultType from a string.
41022 /// </summary>
41023 public static bool TryParseInstallDefaultType(string value, out InstallDefaultType parsedValue)
41024 {
41025 parsedValue = InstallDefaultType.NotSet;
41026 if (string.IsNullOrEmpty(value))
41027 {
41028 return false;
41029 }
41030 if (("followParent" == value))
41031 {
41032 parsedValue = InstallDefaultType.followParent;
41033 }
41034 else
41035 {
41036 if (("local" == value))
41037 {
41038 parsedValue = InstallDefaultType.local;
41039 }
41040 else
41041 {
41042 if (("source" == value))
41043 {
41044 parsedValue = InstallDefaultType.source;
41045 }
41046 else
41047 {
41048 parsedValue = InstallDefaultType.IllegalValue;
41049 return false;
41050 }
41051 }
41052 }
41053 return true;
41054 }
41055
41056 /// <summary>
41057 /// Parses a TypicalDefaultType from a string.
41058 /// </summary>
41059 public static TypicalDefaultType ParseTypicalDefaultType(string value)
41060 {
41061 TypicalDefaultType parsedValue;
41062 Feature.TryParseTypicalDefaultType(value, out parsedValue);
41063 return parsedValue;
41064 }
41065
41066 /// <summary>
41067 /// Tries to parse a TypicalDefaultType from a string.
41068 /// </summary>
41069 public static bool TryParseTypicalDefaultType(string value, out TypicalDefaultType parsedValue)
41070 {
41071 parsedValue = TypicalDefaultType.NotSet;
41072 if (string.IsNullOrEmpty(value))
41073 {
41074 return false;
41075 }
41076 if (("advertise" == value))
41077 {
41078 parsedValue = TypicalDefaultType.advertise;
41079 }
41080 else
41081 {
41082 if (("install" == value))
41083 {
41084 parsedValue = TypicalDefaultType.install;
41085 }
41086 else
41087 {
41088 parsedValue = TypicalDefaultType.IllegalValue;
41089 return false;
41090 }
41091 }
41092 return true;
41093 }
41094
41095 /// <summary>
41096 /// Processes this element and all child elements into an XmlWriter.
41097 /// </summary>
41098 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
41099 public virtual void OutputXml(XmlWriter writer)
41100 {
41101 if ((null == writer))
41102 {
41103 throw new ArgumentNullException("writer");
41104 }
41105 writer.WriteStartElement("Feature", "http://wixtoolset.org/schemas/v4/wxs");
41106 if (this.idFieldSet)
41107 {
41108 writer.WriteAttributeString("Id", this.idField);
41109 }
41110 if (this.absentFieldSet)
41111 {
41112 if ((this.absentField == AbsentType.allow))
41113 {
41114 writer.WriteAttributeString("Absent", "allow");
41115 }
41116 if ((this.absentField == AbsentType.disallow))
41117 {
41118 writer.WriteAttributeString("Absent", "disallow");
41119 }
41120 }
41121 if (this.allowAdvertiseFieldSet)
41122 {
41123 if ((this.allowAdvertiseField == AllowAdvertiseType.no))
41124 {
41125 writer.WriteAttributeString("AllowAdvertise", "no");
41126 }
41127 if ((this.allowAdvertiseField == AllowAdvertiseType.system))
41128 {
41129 writer.WriteAttributeString("AllowAdvertise", "system");
41130 }
41131 if ((this.allowAdvertiseField == AllowAdvertiseType.yes))
41132 {
41133 writer.WriteAttributeString("AllowAdvertise", "yes");
41134 }
41135 }
41136 if (this.configurableDirectoryFieldSet)
41137 {
41138 writer.WriteAttributeString("ConfigurableDirectory", this.configurableDirectoryField);
41139 }
41140 if (this.descriptionFieldSet)
41141 {
41142 writer.WriteAttributeString("Description", this.descriptionField);
41143 }
41144 if (this.displayFieldSet)
41145 {
41146 writer.WriteAttributeString("Display", this.displayField);
41147 }
41148 if (this.installDefaultFieldSet)
41149 {
41150 if ((this.installDefaultField == InstallDefaultType.followParent))
41151 {
41152 writer.WriteAttributeString("InstallDefault", "followParent");
41153 }
41154 if ((this.installDefaultField == InstallDefaultType.local))
41155 {
41156 writer.WriteAttributeString("InstallDefault", "local");
41157 }
41158 if ((this.installDefaultField == InstallDefaultType.source))
41159 {
41160 writer.WriteAttributeString("InstallDefault", "source");
41161 }
41162 }
41163 if (this.levelFieldSet)
41164 {
41165 writer.WriteAttributeString("Level", this.levelField.ToString(CultureInfo.InvariantCulture));
41166 }
41167 if (this.titleFieldSet)
41168 {
41169 writer.WriteAttributeString("Title", this.titleField);
41170 }
41171 if (this.typicalDefaultFieldSet)
41172 {
41173 if ((this.typicalDefaultField == TypicalDefaultType.advertise))
41174 {
41175 writer.WriteAttributeString("TypicalDefault", "advertise");
41176 }
41177 if ((this.typicalDefaultField == TypicalDefaultType.install))
41178 {
41179 writer.WriteAttributeString("TypicalDefault", "install");
41180 }
41181 }
41182 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
41183 {
41184 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
41185 childElement.OutputXml(writer);
41186 }
41187 writer.WriteEndElement();
41188 }
41189
41190 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
41191 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
41192 void ISetAttributes.SetAttribute(string name, string value)
41193 {
41194 if (String.IsNullOrEmpty(name))
41195 {
41196 throw new ArgumentNullException("name");
41197 }
41198 if (("Id" == name))
41199 {
41200 this.idField = value;
41201 this.idFieldSet = true;
41202 }
41203 if (("Absent" == name))
41204 {
41205 this.absentField = Feature.ParseAbsentType(value);
41206 this.absentFieldSet = true;
41207 }
41208 if (("AllowAdvertise" == name))
41209 {
41210 this.allowAdvertiseField = Feature.ParseAllowAdvertiseType(value);
41211 this.allowAdvertiseFieldSet = true;
41212 }
41213 if (("ConfigurableDirectory" == name))
41214 {
41215 this.configurableDirectoryField = value;
41216 this.configurableDirectoryFieldSet = true;
41217 }
41218 if (("Description" == name))
41219 {
41220 this.descriptionField = value;
41221 this.descriptionFieldSet = true;
41222 }
41223 if (("Display" == name))
41224 {
41225 this.displayField = value;
41226 this.displayFieldSet = true;
41227 }
41228 if (("InstallDefault" == name))
41229 {
41230 this.installDefaultField = Feature.ParseInstallDefaultType(value);
41231 this.installDefaultFieldSet = true;
41232 }
41233 if (("Level" == name))
41234 {
41235 this.levelField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
41236 this.levelFieldSet = true;
41237 }
41238 if (("Title" == name))
41239 {
41240 this.titleField = value;
41241 this.titleFieldSet = true;
41242 }
41243 if (("TypicalDefault" == name))
41244 {
41245 this.typicalDefaultField = Feature.ParseTypicalDefaultType(value);
41246 this.typicalDefaultFieldSet = true;
41247 }
41248 }
41249
41250 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
41251 public enum AbsentType
41252 {
41253
41254 IllegalValue = int.MaxValue,
41255
41256 NotSet = -1,
41257
41258 /// <summary>
41259 /// Allows the user interface to display an option to change the feature state to Absent.
41260 /// </summary>
41261 allow,
41262
41263 /// <summary>
41264 /// Prevents the user interface from displaying an option to change the feature state
41265 /// to Absent by setting the msidbFeatureAttributesUIDisallowAbsent attribute. This will force the feature
41266 /// to the installation state, whether or not the feature is visible in the UI.
41267 /// </summary>
41268 disallow,
41269 }
41270
41271 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
41272 public enum AllowAdvertiseType
41273 {
41274
41275 IllegalValue = int.MaxValue,
41276
41277 NotSet = -1,
41278
41279 /// <summary>
41280 /// Prevents this feature from being advertised by setting the msidbFeatureAttributesDisallowAdvertise attribute.
41281 /// </summary>
41282 no,
41283
41284 /// <summary>
41285 /// Prevents advertising for this feature if the operating system shell does not support Windows Installer
41286 /// descriptors by setting the msidbFeatureAttributesNoUnsupportedAdvertise attribute.
41287 /// </summary>
41288 system,
41289
41290 /// <summary>
41291 /// Allows the feature to be advertised.
41292 /// </summary>
41293 yes,
41294 }
41295
41296 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
41297 public enum InstallDefaultType
41298 {
41299
41300 IllegalValue = int.MaxValue,
41301
41302 NotSet = -1,
41303
41304 /// <summary>
41305 /// Forces the feature to follow the same installation state as its parent feature.
41306 /// </summary>
41307 followParent,
41308
41309 /// <summary>
41310 /// Favors installing this feature locally by setting the msidbFeatureAttributesFavorLocal attribute.
41311 /// </summary>
41312 local,
41313
41314 /// <summary>
41315 /// Favors running this feature from source by setting the msidbFeatureAttributesFavorSource attribute.
41316 /// </summary>
41317 source,
41318 }
41319
41320 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
41321 public enum TypicalDefaultType
41322 {
41323
41324 IllegalValue = int.MaxValue,
41325
41326 NotSet = -1,
41327
41328 /// <summary>
41329 /// Sets the feature to be advertised by setting the msidbFeatureAttributesFavorAdvertise attribute.
41330 /// This value cannot be set if the value of the AllowAdvertise attribute is 'no' since that would ask the installer to
41331 /// disallow the advertised state for this feature while at the same time favoring it.
41332 /// </summary>
41333 advertise,
41334
41335 /// <summary>
41336 /// Sets the feature to the default non-advertised installation option.
41337 /// </summary>
41338 install,
41339 }
41340 }
41341
41342 /// <summary>
41343 /// Groups together multiple components, features, and merges to be used in other locations.
41344 /// </summary>
41345 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
41346 public class FeatureGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
41347 {
41348
41349 private ElementCollection children;
41350
41351 private string idField;
41352
41353 private bool idFieldSet;
41354
41355 private ISchemaElement parentElement;
41356
41357 public FeatureGroup()
41358 {
41359 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
41360 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component)));
41361 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroupRef)));
41362 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef)));
41363 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Feature)));
41364 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroupRef)));
41365 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef)));
41366 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MergeRef)));
41367 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
41368 this.children = childCollection0;
41369 }
41370
41371 public virtual IEnumerable Children
41372 {
41373 get
41374 {
41375 return this.children;
41376 }
41377 }
41378
41379 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
41380 public virtual IEnumerable this[System.Type childType]
41381 {
41382 get
41383 {
41384 return this.children.Filter(childType);
41385 }
41386 }
41387
41388 /// <summary>
41389 /// Identifier for the FeatureGroup.
41390 /// </summary>
41391 public string Id
41392 {
41393 get
41394 {
41395 return this.idField;
41396 }
41397 set
41398 {
41399 this.idFieldSet = true;
41400 this.idField = value;
41401 }
41402 }
41403
41404 public virtual ISchemaElement ParentElement
41405 {
41406 get
41407 {
41408 return this.parentElement;
41409 }
41410 set
41411 {
41412 this.parentElement = value;
41413 }
41414 }
41415
41416 public virtual void AddChild(ISchemaElement child)
41417 {
41418 if ((null == child))
41419 {
41420 throw new ArgumentNullException("child");
41421 }
41422 this.children.AddElement(child);
41423 child.ParentElement = this;
41424 }
41425
41426 public virtual void RemoveChild(ISchemaElement child)
41427 {
41428 if ((null == child))
41429 {
41430 throw new ArgumentNullException("child");
41431 }
41432 this.children.RemoveElement(child);
41433 child.ParentElement = null;
41434 }
41435
41436 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
41437 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
41438 ISchemaElement ICreateChildren.CreateChild(string childName)
41439 {
41440 if (String.IsNullOrEmpty(childName))
41441 {
41442 throw new ArgumentNullException("childName");
41443 }
41444 ISchemaElement childValue = null;
41445 if (("Component" == childName))
41446 {
41447 childValue = new Component();
41448 }
41449 if (("ComponentGroupRef" == childName))
41450 {
41451 childValue = new ComponentGroupRef();
41452 }
41453 if (("ComponentRef" == childName))
41454 {
41455 childValue = new ComponentRef();
41456 }
41457 if (("Feature" == childName))
41458 {
41459 childValue = new Feature();
41460 }
41461 if (("FeatureGroupRef" == childName))
41462 {
41463 childValue = new FeatureGroupRef();
41464 }
41465 if (("FeatureRef" == childName))
41466 {
41467 childValue = new FeatureRef();
41468 }
41469 if (("MergeRef" == childName))
41470 {
41471 childValue = new MergeRef();
41472 }
41473 if ((null == childValue))
41474 {
41475 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
41476 }
41477 return childValue;
41478 }
41479
41480 /// <summary>
41481 /// Processes this element and all child elements into an XmlWriter.
41482 /// </summary>
41483 public virtual void OutputXml(XmlWriter writer)
41484 {
41485 if ((null == writer))
41486 {
41487 throw new ArgumentNullException("writer");
41488 }
41489 writer.WriteStartElement("FeatureGroup", "http://wixtoolset.org/schemas/v4/wxs");
41490 if (this.idFieldSet)
41491 {
41492 writer.WriteAttributeString("Id", this.idField);
41493 }
41494 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
41495 {
41496 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
41497 childElement.OutputXml(writer);
41498 }
41499 writer.WriteEndElement();
41500 }
41501
41502 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
41503 void ISetAttributes.SetAttribute(string name, string value)
41504 {
41505 if (String.IsNullOrEmpty(name))
41506 {
41507 throw new ArgumentNullException("name");
41508 }
41509 if (("Id" == name))
41510 {
41511 this.idField = value;
41512 this.idFieldSet = true;
41513 }
41514 }
41515 }
41516
41517 /// <summary>
41518 /// Create a reference to a FeatureGroup in another Fragment.
41519 /// </summary>
41520 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
41521 public class FeatureGroupRef : ISchemaElement, ISetAttributes
41522 {
41523
41524 private string idField;
41525
41526 private bool idFieldSet;
41527
41528 private YesNoType ignoreParentField;
41529
41530 private bool ignoreParentFieldSet;
41531
41532 private YesNoType primaryField;
41533
41534 private bool primaryFieldSet;
41535
41536 private ISchemaElement parentElement;
41537
41538 /// <summary>
41539 /// The identifier of the FeatureGroup to reference.
41540 /// </summary>
41541 public string Id
41542 {
41543 get
41544 {
41545 return this.idField;
41546 }
41547 set
41548 {
41549 this.idFieldSet = true;
41550 this.idField = value;
41551 }
41552 }
41553
41554 /// <summary>
41555 /// Normally feature group references that end up nested under a parent element create a
41556 /// connection to that parent. This behavior is undesirable when trying to simply reference
41557 /// to a FeatureGroup in a different Fragment. Specify 'yes' to have this feature group
41558 /// reference not create a connection to its parent. The default is 'no'.
41559 /// </summary>
41560 public YesNoType IgnoreParent
41561 {
41562 get
41563 {
41564 return this.ignoreParentField;
41565 }
41566 set
41567 {
41568 this.ignoreParentFieldSet = true;
41569 this.ignoreParentField = value;
41570 }
41571 }
41572
41573 /// <summary>
41574 /// Set this attribute to 'yes' in order to make the parent feature of this group
41575 /// the primary feature for any components and merges contained in the group.
41576 /// Features may belong to multiple features. By designating a feature as the
41577 /// primary feature of a component or merge, you ensure that whenever a component is
41578 /// selected for install-on-demand (IOD), the primary feature will be the one to install
41579 /// it. This attribute should only be set if a component actually nests under multiple
41580 /// features. If a component nests under only one feature, that feature is the primary
41581 /// feature for the component. You cannot set more than one feature as the primary
41582 /// feature of a given component.
41583 /// </summary>
41584 public YesNoType Primary
41585 {
41586 get
41587 {
41588 return this.primaryField;
41589 }
41590 set
41591 {
41592 this.primaryFieldSet = true;
41593 this.primaryField = value;
41594 }
41595 }
41596
41597 public virtual ISchemaElement ParentElement
41598 {
41599 get
41600 {
41601 return this.parentElement;
41602 }
41603 set
41604 {
41605 this.parentElement = value;
41606 }
41607 }
41608
41609 /// <summary>
41610 /// Processes this element and all child elements into an XmlWriter.
41611 /// </summary>
41612 public virtual void OutputXml(XmlWriter writer)
41613 {
41614 if ((null == writer))
41615 {
41616 throw new ArgumentNullException("writer");
41617 }
41618 writer.WriteStartElement("FeatureGroupRef", "http://wixtoolset.org/schemas/v4/wxs");
41619 if (this.idFieldSet)
41620 {
41621 writer.WriteAttributeString("Id", this.idField);
41622 }
41623 if (this.ignoreParentFieldSet)
41624 {
41625 if ((this.ignoreParentField == YesNoType.no))
41626 {
41627 writer.WriteAttributeString("IgnoreParent", "no");
41628 }
41629 if ((this.ignoreParentField == YesNoType.yes))
41630 {
41631 writer.WriteAttributeString("IgnoreParent", "yes");
41632 }
41633 }
41634 if (this.primaryFieldSet)
41635 {
41636 if ((this.primaryField == YesNoType.no))
41637 {
41638 writer.WriteAttributeString("Primary", "no");
41639 }
41640 if ((this.primaryField == YesNoType.yes))
41641 {
41642 writer.WriteAttributeString("Primary", "yes");
41643 }
41644 }
41645 writer.WriteEndElement();
41646 }
41647
41648 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
41649 void ISetAttributes.SetAttribute(string name, string value)
41650 {
41651 if (String.IsNullOrEmpty(name))
41652 {
41653 throw new ArgumentNullException("name");
41654 }
41655 if (("Id" == name))
41656 {
41657 this.idField = value;
41658 this.idFieldSet = true;
41659 }
41660 if (("IgnoreParent" == name))
41661 {
41662 this.ignoreParentField = Enums.ParseYesNoType(value);
41663 this.ignoreParentFieldSet = true;
41664 }
41665 if (("Primary" == name))
41666 {
41667 this.primaryField = Enums.ParseYesNoType(value);
41668 this.primaryFieldSet = true;
41669 }
41670 }
41671 }
41672
41673 /// <summary>
41674 /// Create a reference to a Feature element in another Fragment.
41675 /// </summary>
41676 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
41677 public class FeatureRef : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
41678 {
41679
41680 private ElementCollection children;
41681
41682 private string idField;
41683
41684 private bool idFieldSet;
41685
41686 private YesNoType ignoreParentField;
41687
41688 private bool ignoreParentFieldSet;
41689
41690 private ISchemaElement parentElement;
41691
41692 public FeatureRef()
41693 {
41694 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
41695 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component)));
41696 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroupRef)));
41697 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef)));
41698 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Feature)));
41699 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef)));
41700 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroup)));
41701 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroupRef)));
41702 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MergeRef)));
41703 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
41704 this.children = childCollection0;
41705 }
41706
41707 public virtual IEnumerable Children
41708 {
41709 get
41710 {
41711 return this.children;
41712 }
41713 }
41714
41715 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
41716 public virtual IEnumerable this[System.Type childType]
41717 {
41718 get
41719 {
41720 return this.children.Filter(childType);
41721 }
41722 }
41723
41724 /// <summary>
41725 /// The identifier of the Feature element to reference.
41726 /// </summary>
41727 public string Id
41728 {
41729 get
41730 {
41731 return this.idField;
41732 }
41733 set
41734 {
41735 this.idFieldSet = true;
41736 this.idField = value;
41737 }
41738 }
41739
41740 /// <summary>
41741 /// Normally feature references that are nested under a parent element create a connection to that
41742 /// parent. This behavior is undesirable when trying to simply reference a Feature in a different
41743 /// Fragment. Specify 'yes' to have this feature reference not create a connection to its parent.
41744 /// The default is 'no'.
41745 /// </summary>
41746 public YesNoType IgnoreParent
41747 {
41748 get
41749 {
41750 return this.ignoreParentField;
41751 }
41752 set
41753 {
41754 this.ignoreParentFieldSet = true;
41755 this.ignoreParentField = value;
41756 }
41757 }
41758
41759 public virtual ISchemaElement ParentElement
41760 {
41761 get
41762 {
41763 return this.parentElement;
41764 }
41765 set
41766 {
41767 this.parentElement = value;
41768 }
41769 }
41770
41771 public virtual void AddChild(ISchemaElement child)
41772 {
41773 if ((null == child))
41774 {
41775 throw new ArgumentNullException("child");
41776 }
41777 this.children.AddElement(child);
41778 child.ParentElement = this;
41779 }
41780
41781 public virtual void RemoveChild(ISchemaElement child)
41782 {
41783 if ((null == child))
41784 {
41785 throw new ArgumentNullException("child");
41786 }
41787 this.children.RemoveElement(child);
41788 child.ParentElement = null;
41789 }
41790
41791 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
41792 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
41793 ISchemaElement ICreateChildren.CreateChild(string childName)
41794 {
41795 if (String.IsNullOrEmpty(childName))
41796 {
41797 throw new ArgumentNullException("childName");
41798 }
41799 ISchemaElement childValue = null;
41800 if (("Component" == childName))
41801 {
41802 childValue = new Component();
41803 }
41804 if (("ComponentGroupRef" == childName))
41805 {
41806 childValue = new ComponentGroupRef();
41807 }
41808 if (("ComponentRef" == childName))
41809 {
41810 childValue = new ComponentRef();
41811 }
41812 if (("Feature" == childName))
41813 {
41814 childValue = new Feature();
41815 }
41816 if (("FeatureRef" == childName))
41817 {
41818 childValue = new FeatureRef();
41819 }
41820 if (("FeatureGroup" == childName))
41821 {
41822 childValue = new FeatureGroup();
41823 }
41824 if (("FeatureGroupRef" == childName))
41825 {
41826 childValue = new FeatureGroupRef();
41827 }
41828 if (("MergeRef" == childName))
41829 {
41830 childValue = new MergeRef();
41831 }
41832 if ((null == childValue))
41833 {
41834 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
41835 }
41836 return childValue;
41837 }
41838
41839 /// <summary>
41840 /// Processes this element and all child elements into an XmlWriter.
41841 /// </summary>
41842 public virtual void OutputXml(XmlWriter writer)
41843 {
41844 if ((null == writer))
41845 {
41846 throw new ArgumentNullException("writer");
41847 }
41848 writer.WriteStartElement("FeatureRef", "http://wixtoolset.org/schemas/v4/wxs");
41849 if (this.idFieldSet)
41850 {
41851 writer.WriteAttributeString("Id", this.idField);
41852 }
41853 if (this.ignoreParentFieldSet)
41854 {
41855 if ((this.ignoreParentField == YesNoType.no))
41856 {
41857 writer.WriteAttributeString("IgnoreParent", "no");
41858 }
41859 if ((this.ignoreParentField == YesNoType.yes))
41860 {
41861 writer.WriteAttributeString("IgnoreParent", "yes");
41862 }
41863 }
41864 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
41865 {
41866 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
41867 childElement.OutputXml(writer);
41868 }
41869 writer.WriteEndElement();
41870 }
41871
41872 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
41873 void ISetAttributes.SetAttribute(string name, string value)
41874 {
41875 if (String.IsNullOrEmpty(name))
41876 {
41877 throw new ArgumentNullException("name");
41878 }
41879 if (("Id" == name))
41880 {
41881 this.idField = value;
41882 this.idFieldSet = true;
41883 }
41884 if (("IgnoreParent" == name))
41885 {
41886 this.ignoreParentField = Enums.ParseYesNoType(value);
41887 this.ignoreParentFieldSet = true;
41888 }
41889 }
41890 }
41891
41892 /// <summary>
41893 /// Media element describes a disk that makes up the source media for the installation.
41894 /// </summary>
41895 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
41896 public class Media : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
41897 {
41898
41899 private ElementCollection children;
41900
41901 private string idField;
41902
41903 private bool idFieldSet;
41904
41905 private string cabinetField;
41906
41907 private bool cabinetFieldSet;
41908
41909 private CompressionLevelType compressionLevelField;
41910
41911 private bool compressionLevelFieldSet;
41912
41913 private string diskPromptField;
41914
41915 private bool diskPromptFieldSet;
41916
41917 private YesNoType embedCabField;
41918
41919 private bool embedCabFieldSet;
41920
41921 private string layoutField;
41922
41923 private bool layoutFieldSet;
41924
41925 private string srcField;
41926
41927 private bool srcFieldSet;
41928
41929 private string volumeLabelField;
41930
41931 private bool volumeLabelFieldSet;
41932
41933 private string sourceField;
41934
41935 private bool sourceFieldSet;
41936
41937 private ISchemaElement parentElement;
41938
41939 public Media()
41940 {
41941 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
41942 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice);
41943 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(DigitalSignature)));
41944 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchBaseline)));
41945 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath)));
41946 childCollection0.AddCollection(childCollection1);
41947 this.children = childCollection0;
41948 }
41949
41950 public virtual IEnumerable Children
41951 {
41952 get
41953 {
41954 return this.children;
41955 }
41956 }
41957
41958 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
41959 public virtual IEnumerable this[System.Type childType]
41960 {
41961 get
41962 {
41963 return this.children.Filter(childType);
41964 }
41965 }
41966
41967 /// <summary>
41968 /// Disk identifier for Media table. This number must be equal to or greater than 1.
41969 /// </summary>
41970 public string Id
41971 {
41972 get
41973 {
41974 return this.idField;
41975 }
41976 set
41977 {
41978 this.idFieldSet = true;
41979 this.idField = value;
41980 }
41981 }
41982
41983 /// <summary>
41984 /// The name of the cabinet if some or all of the files stored on the media are in a cabinet file. If no cabinets are used, this attribute must not be set.
41985 /// </summary>
41986 public string Cabinet
41987 {
41988 get
41989 {
41990 return this.cabinetField;
41991 }
41992 set
41993 {
41994 this.cabinetFieldSet = true;
41995 this.cabinetField = value;
41996 }
41997 }
41998
41999 /// <summary>
42000 /// Indicates the compression level for the Media's cabinet. This attribute can
42001 /// only be used in conjunction with the Cabinet attribute. The default is 'mszip'.
42002 /// </summary>
42003 public CompressionLevelType CompressionLevel
42004 {
42005 get
42006 {
42007 return this.compressionLevelField;
42008 }
42009 set
42010 {
42011 this.compressionLevelFieldSet = true;
42012 this.compressionLevelField = value;
42013 }
42014 }
42015
42016 /// <summary>
42017 /// The disk name, which is usually the visible text printed on the disk. This localizable text is used to prompt the user when this disk needs to be inserted. This value will be used in the "[1]" of the DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property.
42018 /// </summary>
42019 public string DiskPrompt
42020 {
42021 get
42022 {
42023 return this.diskPromptField;
42024 }
42025 set
42026 {
42027 this.diskPromptFieldSet = true;
42028 this.diskPromptField = value;
42029 }
42030 }
42031
42032 /// <summary>
42033 /// Instructs the binder to embed the cabinet in the product if 'yes'. This attribute can only be specified in conjunction with the Cabinet attribute.
42034 /// </summary>
42035 public YesNoType EmbedCab
42036 {
42037 get
42038 {
42039 return this.embedCabField;
42040 }
42041 set
42042 {
42043 this.embedCabFieldSet = true;
42044 this.embedCabField = value;
42045 }
42046 }
42047
42048 /// <summary>
42049 /// This attribute specifies the root directory for the uncompressed files that
42050 /// are a part of this Media element. By default, the src will be the output
42051 /// directory for the final image. The default value ensures the binder generates
42052 /// an installable image. If a relative path is specified in the src attribute,
42053 /// the value will be appended to the image's output directory. If an absolute
42054 /// path is provided, that path will be used without modification. The latter two
42055 /// options are provided to ease the layout of an image onto multiple medias (CDs/DVDs).
42056 /// </summary>
42057 public string Layout
42058 {
42059 get
42060 {
42061 return this.layoutField;
42062 }
42063 set
42064 {
42065 this.layoutFieldSet = true;
42066 this.layoutField = value;
42067 }
42068 }
42069
42070 [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
42071 public string src
42072 {
42073 get
42074 {
42075 return this.srcField;
42076 }
42077 set
42078 {
42079 this.srcFieldSet = true;
42080 this.srcField = value;
42081 }
42082 }
42083
42084 /// <summary>
42085 /// The label attributed to the volume. This is the volume label returned
42086 /// by the GetVolumeInformation function. If the SourceDir property refers
42087 /// to a removable (floppy or CD-ROM) volume, then this volume label is
42088 /// used to verify that the proper disk is in the drive before attempting
42089 /// to install files. The entry in this column must match the volume label
42090 /// of the physical media.
42091 /// </summary>
42092 public string VolumeLabel
42093 {
42094 get
42095 {
42096 return this.volumeLabelField;
42097 }
42098 set
42099 {
42100 this.volumeLabelFieldSet = true;
42101 this.volumeLabelField = value;
42102 }
42103 }
42104
42105 /// <summary>
42106 /// Optional property that identifies the source of the embedded cabinet.
42107 /// If a cabinet is specified for a patch, this property should be defined
42108 /// and unique to each patch so that the embedded cabinet containing patched
42109 /// and new files can be located in the patch package. If the cabinet is not
42110 /// embedded - this is not typical - the cabinet can be found in the directory
42111 /// referenced in this column. If empty, the external cabinet must be located
42112 /// in the SourceDir directory.
42113 /// </summary>
42114 public string Source
42115 {
42116 get
42117 {
42118 return this.sourceField;
42119 }
42120 set
42121 {
42122 this.sourceFieldSet = true;
42123 this.sourceField = value;
42124 }
42125 }
42126
42127 public virtual ISchemaElement ParentElement
42128 {
42129 get
42130 {
42131 return this.parentElement;
42132 }
42133 set
42134 {
42135 this.parentElement = value;
42136 }
42137 }
42138
42139 public virtual void AddChild(ISchemaElement child)
42140 {
42141 if ((null == child))
42142 {
42143 throw new ArgumentNullException("child");
42144 }
42145 this.children.AddElement(child);
42146 child.ParentElement = this;
42147 }
42148
42149 public virtual void RemoveChild(ISchemaElement child)
42150 {
42151 if ((null == child))
42152 {
42153 throw new ArgumentNullException("child");
42154 }
42155 this.children.RemoveElement(child);
42156 child.ParentElement = null;
42157 }
42158
42159 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
42160 ISchemaElement ICreateChildren.CreateChild(string childName)
42161 {
42162 if (String.IsNullOrEmpty(childName))
42163 {
42164 throw new ArgumentNullException("childName");
42165 }
42166 ISchemaElement childValue = null;
42167 if (("DigitalSignature" == childName))
42168 {
42169 childValue = new DigitalSignature();
42170 }
42171 if (("PatchBaseline" == childName))
42172 {
42173 childValue = new PatchBaseline();
42174 }
42175 if (("SymbolPath" == childName))
42176 {
42177 childValue = new SymbolPath();
42178 }
42179 if ((null == childValue))
42180 {
42181 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
42182 }
42183 return childValue;
42184 }
42185
42186 /// <summary>
42187 /// Processes this element and all child elements into an XmlWriter.
42188 /// </summary>
42189 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
42190 public virtual void OutputXml(XmlWriter writer)
42191 {
42192 if ((null == writer))
42193 {
42194 throw new ArgumentNullException("writer");
42195 }
42196 writer.WriteStartElement("Media", "http://wixtoolset.org/schemas/v4/wxs");
42197 if (this.idFieldSet)
42198 {
42199 writer.WriteAttributeString("Id", this.idField);
42200 }
42201 if (this.cabinetFieldSet)
42202 {
42203 writer.WriteAttributeString("Cabinet", this.cabinetField);
42204 }
42205 if (this.compressionLevelFieldSet)
42206 {
42207 if ((this.compressionLevelField == CompressionLevelType.high))
42208 {
42209 writer.WriteAttributeString("CompressionLevel", "high");
42210 }
42211 if ((this.compressionLevelField == CompressionLevelType.low))
42212 {
42213 writer.WriteAttributeString("CompressionLevel", "low");
42214 }
42215 if ((this.compressionLevelField == CompressionLevelType.medium))
42216 {
42217 writer.WriteAttributeString("CompressionLevel", "medium");
42218 }
42219 if ((this.compressionLevelField == CompressionLevelType.mszip))
42220 {
42221 writer.WriteAttributeString("CompressionLevel", "mszip");
42222 }
42223 if ((this.compressionLevelField == CompressionLevelType.none))
42224 {
42225 writer.WriteAttributeString("CompressionLevel", "none");
42226 }
42227 }
42228 if (this.diskPromptFieldSet)
42229 {
42230 writer.WriteAttributeString("DiskPrompt", this.diskPromptField);
42231 }
42232 if (this.embedCabFieldSet)
42233 {
42234 if ((this.embedCabField == YesNoType.no))
42235 {
42236 writer.WriteAttributeString("EmbedCab", "no");
42237 }
42238 if ((this.embedCabField == YesNoType.yes))
42239 {
42240 writer.WriteAttributeString("EmbedCab", "yes");
42241 }
42242 }
42243 if (this.layoutFieldSet)
42244 {
42245 writer.WriteAttributeString("Layout", this.layoutField);
42246 }
42247 if (this.srcFieldSet)
42248 {
42249 writer.WriteAttributeString("src", this.srcField);
42250 }
42251 if (this.volumeLabelFieldSet)
42252 {
42253 writer.WriteAttributeString("VolumeLabel", this.volumeLabelField);
42254 }
42255 if (this.sourceFieldSet)
42256 {
42257 writer.WriteAttributeString("Source", this.sourceField);
42258 }
42259 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
42260 {
42261 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
42262 childElement.OutputXml(writer);
42263 }
42264 writer.WriteEndElement();
42265 }
42266
42267 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
42268 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
42269 void ISetAttributes.SetAttribute(string name, string value)
42270 {
42271 if (String.IsNullOrEmpty(name))
42272 {
42273 throw new ArgumentNullException("name");
42274 }
42275 if (("Id" == name))
42276 {
42277 this.idField = value;
42278 this.idFieldSet = true;
42279 }
42280 if (("Cabinet" == name))
42281 {
42282 this.cabinetField = value;
42283 this.cabinetFieldSet = true;
42284 }
42285 if (("CompressionLevel" == name))
42286 {
42287 this.compressionLevelField = Enums.ParseCompressionLevelType(value);
42288 this.compressionLevelFieldSet = true;
42289 }
42290 if (("DiskPrompt" == name))
42291 {
42292 this.diskPromptField = value;
42293 this.diskPromptFieldSet = true;
42294 }
42295 if (("EmbedCab" == name))
42296 {
42297 this.embedCabField = Enums.ParseYesNoType(value);
42298 this.embedCabFieldSet = true;
42299 }
42300 if (("Layout" == name))
42301 {
42302 this.layoutField = value;
42303 this.layoutFieldSet = true;
42304 }
42305 if (("src" == name))
42306 {
42307 this.srcField = value;
42308 this.srcFieldSet = true;
42309 }
42310 if (("VolumeLabel" == name))
42311 {
42312 this.volumeLabelField = value;
42313 this.volumeLabelFieldSet = true;
42314 }
42315 if (("Source" == name))
42316 {
42317 this.sourceField = value;
42318 this.sourceFieldSet = true;
42319 }
42320 }
42321 }
42322
42323 /// <summary>
42324 /// MediaTeplate element describes information to automatically assign files to cabinets.
42325 /// A maximumum number of cabinets created is 999.
42326 /// </summary>
42327 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
42328 public class MediaTemplate : ISchemaElement, ISetAttributes
42329 {
42330
42331 private string cabinetTemplateField;
42332
42333 private bool cabinetTemplateFieldSet;
42334
42335 private CompressionLevelType compressionLevelField;
42336
42337 private bool compressionLevelFieldSet;
42338
42339 private string diskPromptField;
42340
42341 private bool diskPromptFieldSet;
42342
42343 private YesNoType embedCabField;
42344
42345 private bool embedCabFieldSet;
42346
42347 private string volumeLabelField;
42348
42349 private bool volumeLabelFieldSet;
42350
42351 private int maximumUncompressedMediaSizeField;
42352
42353 private bool maximumUncompressedMediaSizeFieldSet;
42354
42355 private int maximumCabinetSizeForLargeFileSplittingField;
42356
42357 private bool maximumCabinetSizeForLargeFileSplittingFieldSet;
42358
42359 private ISchemaElement parentElement;
42360
42361 /// <summary>
42362 /// Templated name of the cabinet if some or all of the files stored on the media are in
42363 /// a cabinet file. This name must begin with either a letter or an underscore, contain
42364 /// maximum of five characters and {0} in the cabinet name part and must end three character extension.
42365 /// The default is cab{0}.cab.
42366 /// </summary>
42367 public string CabinetTemplate
42368 {
42369 get
42370 {
42371 return this.cabinetTemplateField;
42372 }
42373 set
42374 {
42375 this.cabinetTemplateFieldSet = true;
42376 this.cabinetTemplateField = value;
42377 }
42378 }
42379
42380 /// <summary>
42381 /// Indicates the compression level for the Media's cabinet. This attribute can
42382 /// only be used in conjunction with the Cabinet attribute. The default is 'mszip'.
42383 /// </summary>
42384 public CompressionLevelType CompressionLevel
42385 {
42386 get
42387 {
42388 return this.compressionLevelField;
42389 }
42390 set
42391 {
42392 this.compressionLevelFieldSet = true;
42393 this.compressionLevelField = value;
42394 }
42395 }
42396
42397 /// <summary>
42398 /// The disk name, which is usually the visible text printed on the disk. This localizable text is used
42399 /// to prompt the user when this disk needs to be inserted. This value will be used in the "[1]" of the
42400 /// DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property.
42401 /// </summary>
42402 public string DiskPrompt
42403 {
42404 get
42405 {
42406 return this.diskPromptField;
42407 }
42408 set
42409 {
42410 this.diskPromptFieldSet = true;
42411 this.diskPromptField = value;
42412 }
42413 }
42414
42415 /// <summary>
42416 /// Instructs the binder to embed the cabinets in the product if 'yes'.
42417 /// </summary>
42418 public YesNoType EmbedCab
42419 {
42420 get
42421 {
42422 return this.embedCabField;
42423 }
42424 set
42425 {
42426 this.embedCabFieldSet = true;
42427 this.embedCabField = value;
42428 }
42429 }
42430
42431 /// <summary>
42432 /// The label attributed to the volume. This is the volume label returned
42433 /// by the GetVolumeInformation function. If the SourceDir property refers
42434 /// to a removable (floppy or CD-ROM) volume, then this volume label is
42435 /// used to verify that the proper disk is in the drive before attempting
42436 /// to install files. The entry in this column must match the volume label
42437 /// of the physical media.
42438 /// </summary>
42439 public string VolumeLabel
42440 {
42441 get
42442 {
42443 return this.volumeLabelField;
42444 }
42445 set
42446 {
42447 this.volumeLabelFieldSet = true;
42448 this.volumeLabelField = value;
42449 }
42450 }
42451
42452 /// <summary>
42453 /// Size of uncompressed files in each cabinet, in megabytes. WIX_MUMS environment variable
42454 /// can be used to override this value. Default value is 200 MB.
42455 /// </summary>
42456 public int MaximumUncompressedMediaSize
42457 {
42458 get
42459 {
42460 return this.maximumUncompressedMediaSizeField;
42461 }
42462 set
42463 {
42464 this.maximumUncompressedMediaSizeFieldSet = true;
42465 this.maximumUncompressedMediaSizeField = value;
42466 }
42467 }
42468
42469 /// <summary>
42470 /// Maximum size of cabinet files in megabytes for large files. This attribute is used for packaging
42471 /// files that are larger than MaximumUncompressedMediaSize into smaller cabinets. If cabinet size
42472 /// exceed this value, then setting this attribute will cause the file to be split into multiple
42473 /// cabinets of this maximum size. For simply controlling cabinet size without file splitting use
42474 /// MaximumUncompressedMediaSize attribute. Setting this attribute will disable smart cabbing feature
42475 /// for this Fragment / Product. Setting WIX_MCSLFS environment variable can be used to override this
42476 /// value. Minimum allowed value of this attribute is 20 MB. Maximum allowed value and the Default
42477 /// value of this attribute is 2048 MB (2 GB).
42478 /// </summary>
42479 public int MaximumCabinetSizeForLargeFileSplitting
42480 {
42481 get
42482 {
42483 return this.maximumCabinetSizeForLargeFileSplittingField;
42484 }
42485 set
42486 {
42487 this.maximumCabinetSizeForLargeFileSplittingFieldSet = true;
42488 this.maximumCabinetSizeForLargeFileSplittingField = value;
42489 }
42490 }
42491
42492 public virtual ISchemaElement ParentElement
42493 {
42494 get
42495 {
42496 return this.parentElement;
42497 }
42498 set
42499 {
42500 this.parentElement = value;
42501 }
42502 }
42503
42504 /// <summary>
42505 /// Parses a CompressionLevelType from a string.
42506 /// </summary>
42507 public static CompressionLevelType ParseCompressionLevelType(string value)
42508 {
42509 CompressionLevelType parsedValue;
42510 MediaTemplate.TryParseCompressionLevelType(value, out parsedValue);
42511 return parsedValue;
42512 }
42513
42514 /// <summary>
42515 /// Tries to parse a CompressionLevelType from a string.
42516 /// </summary>
42517 public static bool TryParseCompressionLevelType(string value, out CompressionLevelType parsedValue)
42518 {
42519 parsedValue = CompressionLevelType.NotSet;
42520 if (string.IsNullOrEmpty(value))
42521 {
42522 return false;
42523 }
42524 if (("high" == value))
42525 {
42526 parsedValue = CompressionLevelType.high;
42527 }
42528 else
42529 {
42530 if (("low" == value))
42531 {
42532 parsedValue = CompressionLevelType.low;
42533 }
42534 else
42535 {
42536 if (("medium" == value))
42537 {
42538 parsedValue = CompressionLevelType.medium;
42539 }
42540 else
42541 {
42542 if (("mszip" == value))
42543 {
42544 parsedValue = CompressionLevelType.mszip;
42545 }
42546 else
42547 {
42548 if (("none" == value))
42549 {
42550 parsedValue = CompressionLevelType.none;
42551 }
42552 else
42553 {
42554 parsedValue = CompressionLevelType.IllegalValue;
42555 return false;
42556 }
42557 }
42558 }
42559 }
42560 }
42561 return true;
42562 }
42563
42564 /// <summary>
42565 /// Processes this element and all child elements into an XmlWriter.
42566 /// </summary>
42567 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
42568 public virtual void OutputXml(XmlWriter writer)
42569 {
42570 if ((null == writer))
42571 {
42572 throw new ArgumentNullException("writer");
42573 }
42574 writer.WriteStartElement("MediaTemplate", "http://wixtoolset.org/schemas/v4/wxs");
42575 if (this.cabinetTemplateFieldSet)
42576 {
42577 writer.WriteAttributeString("CabinetTemplate", this.cabinetTemplateField);
42578 }
42579 if (this.compressionLevelFieldSet)
42580 {
42581 if ((this.compressionLevelField == CompressionLevelType.high))
42582 {
42583 writer.WriteAttributeString("CompressionLevel", "high");
42584 }
42585 if ((this.compressionLevelField == CompressionLevelType.low))
42586 {
42587 writer.WriteAttributeString("CompressionLevel", "low");
42588 }
42589 if ((this.compressionLevelField == CompressionLevelType.medium))
42590 {
42591 writer.WriteAttributeString("CompressionLevel", "medium");
42592 }
42593 if ((this.compressionLevelField == CompressionLevelType.mszip))
42594 {
42595 writer.WriteAttributeString("CompressionLevel", "mszip");
42596 }
42597 if ((this.compressionLevelField == CompressionLevelType.none))
42598 {
42599 writer.WriteAttributeString("CompressionLevel", "none");
42600 }
42601 }
42602 if (this.diskPromptFieldSet)
42603 {
42604 writer.WriteAttributeString("DiskPrompt", this.diskPromptField);
42605 }
42606 if (this.embedCabFieldSet)
42607 {
42608 if ((this.embedCabField == YesNoType.no))
42609 {
42610 writer.WriteAttributeString("EmbedCab", "no");
42611 }
42612 if ((this.embedCabField == YesNoType.yes))
42613 {
42614 writer.WriteAttributeString("EmbedCab", "yes");
42615 }
42616 }
42617 if (this.volumeLabelFieldSet)
42618 {
42619 writer.WriteAttributeString("VolumeLabel", this.volumeLabelField);
42620 }
42621 if (this.maximumUncompressedMediaSizeFieldSet)
42622 {
42623 writer.WriteAttributeString("MaximumUncompressedMediaSize", this.maximumUncompressedMediaSizeField.ToString(CultureInfo.InvariantCulture));
42624 }
42625 if (this.maximumCabinetSizeForLargeFileSplittingFieldSet)
42626 {
42627 writer.WriteAttributeString("MaximumCabinetSizeForLargeFileSplitting", this.maximumCabinetSizeForLargeFileSplittingField.ToString(CultureInfo.InvariantCulture));
42628 }
42629 writer.WriteEndElement();
42630 }
42631
42632 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
42633 void ISetAttributes.SetAttribute(string name, string value)
42634 {
42635 if (String.IsNullOrEmpty(name))
42636 {
42637 throw new ArgumentNullException("name");
42638 }
42639 if (("CabinetTemplate" == name))
42640 {
42641 this.cabinetTemplateField = value;
42642 this.cabinetTemplateFieldSet = true;
42643 }
42644 if (("CompressionLevel" == name))
42645 {
42646 this.compressionLevelField = MediaTemplate.ParseCompressionLevelType(value);
42647 this.compressionLevelFieldSet = true;
42648 }
42649 if (("DiskPrompt" == name))
42650 {
42651 this.diskPromptField = value;
42652 this.diskPromptFieldSet = true;
42653 }
42654 if (("EmbedCab" == name))
42655 {
42656 this.embedCabField = Enums.ParseYesNoType(value);
42657 this.embedCabFieldSet = true;
42658 }
42659 if (("VolumeLabel" == name))
42660 {
42661 this.volumeLabelField = value;
42662 this.volumeLabelFieldSet = true;
42663 }
42664 if (("MaximumUncompressedMediaSize" == name))
42665 {
42666 this.maximumUncompressedMediaSizeField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
42667 this.maximumUncompressedMediaSizeFieldSet = true;
42668 }
42669 if (("MaximumCabinetSizeForLargeFileSplitting" == name))
42670 {
42671 this.maximumCabinetSizeForLargeFileSplittingField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
42672 this.maximumCabinetSizeForLargeFileSplittingFieldSet = true;
42673 }
42674 }
42675
42676 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
42677 public enum CompressionLevelType
42678 {
42679
42680 IllegalValue = int.MaxValue,
42681
42682 NotSet = -1,
42683
42684 high,
42685
42686 low,
42687
42688 medium,
42689
42690 mszip,
42691
42692 none,
42693 }
42694 }
42695
42696 /// <summary>
42697 /// This element has been deprecated.
42698 /// Use the Binary/@SuppressModularization, CustomAction/@SuppressModularization, or Property/@SuppressModularization attributes instead.
42699 /// </summary>
42700 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
42701 public class IgnoreModularization : ISchemaElement, ISetAttributes
42702 {
42703
42704 private string nameField;
42705
42706 private bool nameFieldSet;
42707
42708 private TypeType typeField;
42709
42710 private bool typeFieldSet;
42711
42712 private ISchemaElement parentElement;
42713
42714 /// <summary>
42715 /// The name of the item to ignore modularization for.
42716 /// </summary>
42717 public string Name
42718 {
42719 get
42720 {
42721 return this.nameField;
42722 }
42723 set
42724 {
42725 this.nameFieldSet = true;
42726 this.nameField = value;
42727 }
42728 }
42729
42730 /// <summary>
42731 /// The type of the item to ignore modularization for.
42732 /// </summary>
42733 public TypeType Type
42734 {
42735 get
42736 {
42737 return this.typeField;
42738 }
42739 set
42740 {
42741 this.typeFieldSet = true;
42742 this.typeField = value;
42743 }
42744 }
42745
42746 public virtual ISchemaElement ParentElement
42747 {
42748 get
42749 {
42750 return this.parentElement;
42751 }
42752 set
42753 {
42754 this.parentElement = value;
42755 }
42756 }
42757
42758 /// <summary>
42759 /// Parses a TypeType from a string.
42760 /// </summary>
42761 public static TypeType ParseTypeType(string value)
42762 {
42763 TypeType parsedValue;
42764 IgnoreModularization.TryParseTypeType(value, out parsedValue);
42765 return parsedValue;
42766 }
42767
42768 /// <summary>
42769 /// Tries to parse a TypeType from a string.
42770 /// </summary>
42771 public static bool TryParseTypeType(string value, out TypeType parsedValue)
42772 {
42773 parsedValue = TypeType.NotSet;
42774 if (string.IsNullOrEmpty(value))
42775 {
42776 return false;
42777 }
42778 if (("Action" == value))
42779 {
42780 parsedValue = TypeType.Action;
42781 }
42782 else
42783 {
42784 if (("Property" == value))
42785 {
42786 parsedValue = TypeType.Property;
42787 }
42788 else
42789 {
42790 if (("Directory" == value))
42791 {
42792 parsedValue = TypeType.Directory;
42793 }
42794 else
42795 {
42796 parsedValue = TypeType.IllegalValue;
42797 return false;
42798 }
42799 }
42800 }
42801 return true;
42802 }
42803
42804 /// <summary>
42805 /// Processes this element and all child elements into an XmlWriter.
42806 /// </summary>
42807 public virtual void OutputXml(XmlWriter writer)
42808 {
42809 if ((null == writer))
42810 {
42811 throw new ArgumentNullException("writer");
42812 }
42813 writer.WriteStartElement("IgnoreModularization", "http://wixtoolset.org/schemas/v4/wxs");
42814 if (this.nameFieldSet)
42815 {
42816 writer.WriteAttributeString("Name", this.nameField);
42817 }
42818 if (this.typeFieldSet)
42819 {
42820 if ((this.typeField == TypeType.Action))
42821 {
42822 writer.WriteAttributeString("Type", "Action");
42823 }
42824 if ((this.typeField == TypeType.Property))
42825 {
42826 writer.WriteAttributeString("Type", "Property");
42827 }
42828 if ((this.typeField == TypeType.Directory))
42829 {
42830 writer.WriteAttributeString("Type", "Directory");
42831 }
42832 }
42833 writer.WriteEndElement();
42834 }
42835
42836 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
42837 void ISetAttributes.SetAttribute(string name, string value)
42838 {
42839 if (String.IsNullOrEmpty(name))
42840 {
42841 throw new ArgumentNullException("name");
42842 }
42843 if (("Name" == name))
42844 {
42845 this.nameField = value;
42846 this.nameFieldSet = true;
42847 }
42848 if (("Type" == name))
42849 {
42850 this.typeField = IgnoreModularization.ParseTypeType(value);
42851 this.typeFieldSet = true;
42852 }
42853 }
42854
42855 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
42856 public enum TypeType
42857 {
42858
42859 IllegalValue = int.MaxValue,
42860
42861 NotSet = -1,
42862
42863 Action,
42864
42865 Property,
42866
42867 Directory,
42868 }
42869 }
42870
42871 /// <summary>
42872 /// Specifies a custom action to be added to the MSI CustomAction table. Various combinations of the attributes for this element
42873 /// correspond to different custom action types. For more information about custom actions see the
42874 /// </summary>
42875 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
42876 public class CustomAction : ISchemaElement, ISetAttributes
42877 {
42878
42879 private string idField;
42880
42881 private bool idFieldSet;
42882
42883 private string binaryKeyField;
42884
42885 private bool binaryKeyFieldSet;
42886
42887 private string fileKeyField;
42888
42889 private bool fileKeyFieldSet;
42890
42891 private string propertyField;
42892
42893 private bool propertyFieldSet;
42894
42895 private string directoryField;
42896
42897 private bool directoryFieldSet;
42898
42899 private string dllEntryField;
42900
42901 private bool dllEntryFieldSet;
42902
42903 private string exeCommandField;
42904
42905 private bool exeCommandFieldSet;
42906
42907 private string jScriptCallField;
42908
42909 private bool jScriptCallFieldSet;
42910
42911 private string vBScriptCallField;
42912
42913 private bool vBScriptCallFieldSet;
42914
42915 private ScriptType scriptField;
42916
42917 private bool scriptFieldSet;
42918
42919 private YesNoType suppressModularizationField;
42920
42921 private bool suppressModularizationFieldSet;
42922
42923 private string valueField;
42924
42925 private bool valueFieldSet;
42926
42927 private string errorField;
42928
42929 private bool errorFieldSet;
42930
42931 private ReturnType returnField;
42932
42933 private bool returnFieldSet;
42934
42935 private ExecuteType executeField;
42936
42937 private bool executeFieldSet;
42938
42939 private YesNoType impersonateField;
42940
42941 private bool impersonateFieldSet;
42942
42943 private YesNoType patchUninstallField;
42944
42945 private bool patchUninstallFieldSet;
42946
42947 private YesNoType win64Field;
42948
42949 private bool win64FieldSet;
42950
42951 private YesNoType terminalServerAwareField;
42952
42953 private bool terminalServerAwareFieldSet;
42954
42955 private YesNoType hideTargetField;
42956
42957 private bool hideTargetFieldSet;
42958
42959 private string contentField;
42960
42961 private bool contentFieldSet;
42962
42963 private ISchemaElement parentElement;
42964
42965 /// <summary>
42966 /// The identifier of the custom action.
42967 /// </summary>
42968 public string Id
42969 {
42970 get
42971 {
42972 return this.idField;
42973 }
42974 set
42975 {
42976 this.idFieldSet = true;
42977 this.idField = value;
42978 }
42979 }
42980
42981 /// <summary>
42982 /// This attribute is a reference to a Binary element with matching Id attribute. That binary stream contains
42983 /// the custom action for use during install. The custom action will not be installed into a target directory. This attribute is
42984 /// typically used with the DllEntry attribute to specify the custom action DLL to use for a type 1 custom action, with the ExeCommand
42985 /// attribute to specify a type 17 custom action that runs an embedded executable, or with the VBScriptCall or JScriptCall attributes
42986 /// to specify a type 5 or 6 custom action.
42987 /// </summary>
42988 public string BinaryKey
42989 {
42990 get
42991 {
42992 return this.binaryKeyField;
42993 }
42994 set
42995 {
42996 this.binaryKeyFieldSet = true;
42997 this.binaryKeyField = value;
42998 }
42999 }
43000
43001 /// <summary>
43002 /// This attribute specifies a reference to a File element with matching Id attribute that
43003 /// will execute the custom action code in the file after the file is installed. This
43004 /// attribute is typically used with the ExeCommand attribute to specify a type 18 custom action
43005 /// that runs an installed executable, with the DllEntry attribute to specify an installed custom
43006 /// action DLL to use for a type 17 custom action, or with the VBScriptCall or JScriptCall
43007 /// attributes to specify a type 21 or 22 custom action.
43008 /// </summary>
43009 public string FileKey
43010 {
43011 get
43012 {
43013 return this.fileKeyField;
43014 }
43015 set
43016 {
43017 this.fileKeyFieldSet = true;
43018 this.fileKeyField = value;
43019 }
43020 }
43021
43022 /// <summary>
43023 /// This attribute specifies a reference to a Property element with matching Id attribute that specifies the Property
43024 /// to be used or updated on execution of this custom action. This attribute is
43025 /// typically used with the Value attribute to create a type 51 custom action that parses
43026 /// the text in Value and places it into the specified Property. This attribute is also used with
43027 /// the ExeCommand attribute to create a type 50 custom action that uses the value of the
43028 /// given property to specify the path to the executable. Type 51 custom actions are often useful to
43029 /// pass values to a deferred custom action.
43030 /// See
43031 /// </summary>
43032 public string Property
43033 {
43034 get
43035 {
43036 return this.propertyField;
43037 }
43038 set
43039 {
43040 this.propertyFieldSet = true;
43041 this.propertyField = value;
43042 }
43043 }
43044
43045 /// <summary>
43046 /// This attribute specifies a reference to a Directory element with matching Id attribute containing a directory path.
43047 /// This attribute is typically used with the ExeCommand attribute to specify the source executable for a type 34
43048 /// custom action, or with the Value attribute to specify a formatted string to place in the specified Directory
43049 /// table entry in a type 35 custom action.
43050 /// </summary>
43051 public string Directory
43052 {
43053 get
43054 {
43055 return this.directoryField;
43056 }
43057 set
43058 {
43059 this.directoryFieldSet = true;
43060 this.directoryField = value;
43061 }
43062 }
43063
43064 /// <summary>
43065 /// This attribute specifies the name of a function in a custom action to execute.
43066 /// This attribute is used with the BinaryKey attribute to create a type 1 custom
43067 /// action, or with the FileKey attribute to create a type 17 custom action.
43068 /// </summary>
43069 public string DllEntry
43070 {
43071 get
43072 {
43073 return this.dllEntryField;
43074 }
43075 set
43076 {
43077 this.dllEntryFieldSet = true;
43078 this.dllEntryField = value;
43079 }
43080 }
43081
43082 /// <summary>
43083 /// This attribute specifies the command line parameters to supply to an externally
43084 /// run executable. This attribute is typically used with the BinaryKey attribute for a type 2 custom action,
43085 /// the FileKey attribute for a type 18 custom action, the Property attribute for a type 50 custom action,
43086 /// or the Directory attribute for a type 34 custom action that specify the executable to run.
43087 /// </summary>
43088 public string ExeCommand
43089 {
43090 get
43091 {
43092 return this.exeCommandField;
43093 }
43094 set
43095 {
43096 this.exeCommandFieldSet = true;
43097 this.exeCommandField = value;
43098 }
43099 }
43100
43101 /// <summary>
43102 /// This attribute specifies the name of the JScript function to execute in a script. The script must be
43103 /// provided in a Binary element identified by the BinaryKey attribute described above. In other words, this
43104 /// attribute must be specified in conjunction with the BinaryKey attribute.
43105 /// </summary>
43106 public string JScriptCall
43107 {
43108 get
43109 {
43110 return this.jScriptCallField;
43111 }
43112 set
43113 {
43114 this.jScriptCallFieldSet = true;
43115 this.jScriptCallField = value;
43116 }
43117 }
43118
43119 /// <summary>
43120 /// This attribute specifies the name of the VBScript Subroutine to execute in a script. The script must be
43121 /// provided in a Binary element identified by the BinaryKey attribute described above. In other words, this
43122 /// attribute must be specified in conjunction with the BinaryKey attribute.
43123 /// </summary>
43124 [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")]
43125 public string VBScriptCall
43126 {
43127 get
43128 {
43129 return this.vBScriptCallField;
43130 }
43131 set
43132 {
43133 this.vBScriptCallFieldSet = true;
43134 this.vBScriptCallField = value;
43135 }
43136 }
43137
43138 /// <summary>
43139 /// Creates a type 37 or 38 custom action. The text of the element should contain the script to be embedded in the package.
43140 /// </summary>
43141 public ScriptType Script
43142 {
43143 get
43144 {
43145 return this.scriptField;
43146 }
43147 set
43148 {
43149 this.scriptFieldSet = true;
43150 this.scriptField = value;
43151 }
43152 }
43153
43154 /// <summary>
43155 /// Use to suppress modularization of this custom action name in merge modules.
43156 /// This should only be necessary for table-driven custom actions because the
43157 /// table name which they interact with cannot be modularized, so there can only
43158 /// be one instance of the table.
43159 /// </summary>
43160 public YesNoType SuppressModularization
43161 {
43162 get
43163 {
43164 return this.suppressModularizationField;
43165 }
43166 set
43167 {
43168 this.suppressModularizationFieldSet = true;
43169 this.suppressModularizationField = value;
43170 }
43171 }
43172
43173 /// <summary>
43174 /// This attribute specifies a string value to use in the custom action. This attribute
43175 /// must be used with the Property attribute to set the property as part of a
43176 /// type 51 custom action or with the Directory attribute to set a directory path in that
43177 /// table in a type 35 custom action. The value can be a literal value or derived from a
43178 /// Property element using the
43179 /// </summary>
43180 public string Value
43181 {
43182 get
43183 {
43184 return this.valueField;
43185 }
43186 set
43187 {
43188 this.valueFieldSet = true;
43189 this.valueField = value;
43190 }
43191 }
43192
43193 /// <summary>
43194 /// This attribute specifies an index in the MSI Error table to use as an error message for a
43195 /// type 19 custom action that displays the error message and aborts a product's installation.
43196 /// </summary>
43197 public string Error
43198 {
43199 get
43200 {
43201 return this.errorField;
43202 }
43203 set
43204 {
43205 this.errorFieldSet = true;
43206 this.errorField = value;
43207 }
43208 }
43209
43210 /// <summary>
43211 /// Set this attribute to set the return behavior of the custom action.
43212 /// </summary>
43213 public ReturnType Return
43214 {
43215 get
43216 {
43217 return this.returnField;
43218 }
43219 set
43220 {
43221 this.returnFieldSet = true;
43222 this.returnField = value;
43223 }
43224 }
43225
43226 /// <summary>
43227 /// This attribute indicates the scheduling of the custom action.
43228 /// </summary>
43229 public ExecuteType Execute
43230 {
43231 get
43232 {
43233 return this.executeField;
43234 }
43235 set
43236 {
43237 this.executeFieldSet = true;
43238 this.executeField = value;
43239 }
43240 }
43241
43242 /// <summary>
43243 /// This attribute specifies whether the Windows Installer, which executes as LocalSystem,
43244 /// should impersonate the user context of the installing user when executing this custom action.
43245 /// Typically the value should be 'yes', except when the custom action needs elevated privileges
43246 /// to apply changes to the machine.
43247 /// </summary>
43248 public YesNoType Impersonate
43249 {
43250 get
43251 {
43252 return this.impersonateField;
43253 }
43254 set
43255 {
43256 this.impersonateFieldSet = true;
43257 this.impersonateField = value;
43258 }
43259 }
43260
43261 /// <summary>
43262 /// This attribute specifies that the Windows Installer, execute the custom action only when
43263 /// a patch is being uninstalled. These custom actions should also be conditioned using the
43264 /// MSIPATCHREMOVE property to ensure proper down level (less than Windows Installer 4.5)
43265 /// behavior.
43266 /// </summary>
43267 public YesNoType PatchUninstall
43268 {
43269 get
43270 {
43271 return this.patchUninstallField;
43272 }
43273 set
43274 {
43275 this.patchUninstallFieldSet = true;
43276 this.patchUninstallField = value;
43277 }
43278 }
43279
43280 /// <summary>
43281 /// Specifies that a script custom action targets a 64-bit platform. Valid only when used with
43282 /// the Script, VBScriptCall, and JScriptCall attributes.
43283 /// The default value is based on the platform set by the -arch switch to candle.exe
43284 /// or the InstallerPlatform property in a .wixproj MSBuild project:
43285 /// For x86 and ARM, the default value is 'no'.
43286 /// For x64 and IA64, the default value is 'yes'.
43287 /// </summary>
43288 public YesNoType Win64
43289 {
43290 get
43291 {
43292 return this.win64Field;
43293 }
43294 set
43295 {
43296 this.win64FieldSet = true;
43297 this.win64Field = value;
43298 }
43299 }
43300
43301 /// <summary>
43302 /// This attribute specifies controls whether the custom action will impersonate the
43303 /// installing user during per-machine installs on Terminal Server machines.
43304 /// Deferred execution custom actions that do not specify this attribute, or explicitly set it 'no',
43305 /// will run with no user impersonation on Terminal Server machines during
43306 /// per-machine installations. This attribute is only applicable when installing on the
43307 /// Windows Server 2003 family.
43308 /// </summary>
43309 public YesNoType TerminalServerAware
43310 {
43311 get
43312 {
43313 return this.terminalServerAwareField;
43314 }
43315 set
43316 {
43317 this.terminalServerAwareFieldSet = true;
43318 this.terminalServerAwareField = value;
43319 }
43320 }
43321
43322 /// <summary>
43323 /// Ensures the installer does not log the CustomActionData for the deferred custom action.
43324 /// </summary>
43325 public YesNoType HideTarget
43326 {
43327 get
43328 {
43329 return this.hideTargetField;
43330 }
43331 set
43332 {
43333 this.hideTargetFieldSet = true;
43334 this.hideTargetField = value;
43335 }
43336 }
43337
43338 /// <summary>
43339 /// The text node is only valid if the Script attribute is specified. In that case, the text node contains the script to embed.
43340 /// </summary>
43341 public string Content
43342 {
43343 get
43344 {
43345 return this.contentField;
43346 }
43347 set
43348 {
43349 this.contentFieldSet = true;
43350 this.contentField = value;
43351 }
43352 }
43353
43354 public virtual ISchemaElement ParentElement
43355 {
43356 get
43357 {
43358 return this.parentElement;
43359 }
43360 set
43361 {
43362 this.parentElement = value;
43363 }
43364 }
43365
43366 /// <summary>
43367 /// Parses a ScriptType from a string.
43368 /// </summary>
43369 public static ScriptType ParseScriptType(string value)
43370 {
43371 ScriptType parsedValue;
43372 CustomAction.TryParseScriptType(value, out parsedValue);
43373 return parsedValue;
43374 }
43375
43376 /// <summary>
43377 /// Tries to parse a ScriptType from a string.
43378 /// </summary>
43379 public static bool TryParseScriptType(string value, out ScriptType parsedValue)
43380 {
43381 parsedValue = ScriptType.NotSet;
43382 if (string.IsNullOrEmpty(value))
43383 {
43384 return false;
43385 }
43386 if (("jscript" == value))
43387 {
43388 parsedValue = ScriptType.jscript;
43389 }
43390 else
43391 {
43392 if (("vbscript" == value))
43393 {
43394 parsedValue = ScriptType.vbscript;
43395 }
43396 else
43397 {
43398 parsedValue = ScriptType.IllegalValue;
43399 return false;
43400 }
43401 }
43402 return true;
43403 }
43404
43405 /// <summary>
43406 /// Parses a ReturnType from a string.
43407 /// </summary>
43408 public static ReturnType ParseReturnType(string value)
43409 {
43410 ReturnType parsedValue;
43411 CustomAction.TryParseReturnType(value, out parsedValue);
43412 return parsedValue;
43413 }
43414
43415 /// <summary>
43416 /// Tries to parse a ReturnType from a string.
43417 /// </summary>
43418 public static bool TryParseReturnType(string value, out ReturnType parsedValue)
43419 {
43420 parsedValue = ReturnType.NotSet;
43421 if (string.IsNullOrEmpty(value))
43422 {
43423 return false;
43424 }
43425 if (("asyncNoWait" == value))
43426 {
43427 parsedValue = ReturnType.asyncNoWait;
43428 }
43429 else
43430 {
43431 if (("asyncWait" == value))
43432 {
43433 parsedValue = ReturnType.asyncWait;
43434 }
43435 else
43436 {
43437 if (("check" == value))
43438 {
43439 parsedValue = ReturnType.check;
43440 }
43441 else
43442 {
43443 if (("ignore" == value))
43444 {
43445 parsedValue = ReturnType.ignore;
43446 }
43447 else
43448 {
43449 parsedValue = ReturnType.IllegalValue;
43450 return false;
43451 }
43452 }
43453 }
43454 }
43455 return true;
43456 }
43457
43458 /// <summary>
43459 /// Parses a ExecuteType from a string.
43460 /// </summary>
43461 public static ExecuteType ParseExecuteType(string value)
43462 {
43463 ExecuteType parsedValue;
43464 CustomAction.TryParseExecuteType(value, out parsedValue);
43465 return parsedValue;
43466 }
43467
43468 /// <summary>
43469 /// Tries to parse a ExecuteType from a string.
43470 /// </summary>
43471 public static bool TryParseExecuteType(string value, out ExecuteType parsedValue)
43472 {
43473 parsedValue = ExecuteType.NotSet;
43474 if (string.IsNullOrEmpty(value))
43475 {
43476 return false;
43477 }
43478 if (("commit" == value))
43479 {
43480 parsedValue = ExecuteType.commit;
43481 }
43482 else
43483 {
43484 if (("deferred" == value))
43485 {
43486 parsedValue = ExecuteType.deferred;
43487 }
43488 else
43489 {
43490 if (("firstSequence" == value))
43491 {
43492 parsedValue = ExecuteType.firstSequence;
43493 }
43494 else
43495 {
43496 if (("immediate" == value))
43497 {
43498 parsedValue = ExecuteType.immediate;
43499 }
43500 else
43501 {
43502 if (("oncePerProcess" == value))
43503 {
43504 parsedValue = ExecuteType.oncePerProcess;
43505 }
43506 else
43507 {
43508 if (("rollback" == value))
43509 {
43510 parsedValue = ExecuteType.rollback;
43511 }
43512 else
43513 {
43514 if (("secondSequence" == value))
43515 {
43516 parsedValue = ExecuteType.secondSequence;
43517 }
43518 else
43519 {
43520 parsedValue = ExecuteType.IllegalValue;
43521 return false;
43522 }
43523 }
43524 }
43525 }
43526 }
43527 }
43528 }
43529 return true;
43530 }
43531
43532 /// <summary>
43533 /// Processes this element and all child elements into an XmlWriter.
43534 /// </summary>
43535 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
43536 public virtual void OutputXml(XmlWriter writer)
43537 {
43538 if ((null == writer))
43539 {
43540 throw new ArgumentNullException("writer");
43541 }
43542 writer.WriteStartElement("CustomAction", "http://wixtoolset.org/schemas/v4/wxs");
43543 if (this.idFieldSet)
43544 {
43545 writer.WriteAttributeString("Id", this.idField);
43546 }
43547 if (this.binaryKeyFieldSet)
43548 {
43549 writer.WriteAttributeString("BinaryKey", this.binaryKeyField);
43550 }
43551 if (this.fileKeyFieldSet)
43552 {
43553 writer.WriteAttributeString("FileKey", this.fileKeyField);
43554 }
43555 if (this.propertyFieldSet)
43556 {
43557 writer.WriteAttributeString("Property", this.propertyField);
43558 }
43559 if (this.directoryFieldSet)
43560 {
43561 writer.WriteAttributeString("Directory", this.directoryField);
43562 }
43563 if (this.dllEntryFieldSet)
43564 {
43565 writer.WriteAttributeString("DllEntry", this.dllEntryField);
43566 }
43567 if (this.exeCommandFieldSet)
43568 {
43569 writer.WriteAttributeString("ExeCommand", this.exeCommandField);
43570 }
43571 if (this.jScriptCallFieldSet)
43572 {
43573 writer.WriteAttributeString("JScriptCall", this.jScriptCallField);
43574 }
43575 if (this.vBScriptCallFieldSet)
43576 {
43577 writer.WriteAttributeString("VBScriptCall", this.vBScriptCallField);
43578 }
43579 if (this.scriptFieldSet)
43580 {
43581 if ((this.scriptField == ScriptType.jscript))
43582 {
43583 writer.WriteAttributeString("Script", "jscript");
43584 }
43585 if ((this.scriptField == ScriptType.vbscript))
43586 {
43587 writer.WriteAttributeString("Script", "vbscript");
43588 }
43589 }
43590 if (this.suppressModularizationFieldSet)
43591 {
43592 if ((this.suppressModularizationField == YesNoType.no))
43593 {
43594 writer.WriteAttributeString("SuppressModularization", "no");
43595 }
43596 if ((this.suppressModularizationField == YesNoType.yes))
43597 {
43598 writer.WriteAttributeString("SuppressModularization", "yes");
43599 }
43600 }
43601 if (this.valueFieldSet)
43602 {
43603 writer.WriteAttributeString("Value", this.valueField);
43604 }
43605 if (this.errorFieldSet)
43606 {
43607 writer.WriteAttributeString("Error", this.errorField);
43608 }
43609 if (this.returnFieldSet)
43610 {
43611 if ((this.returnField == ReturnType.asyncNoWait))
43612 {
43613 writer.WriteAttributeString("Return", "asyncNoWait");
43614 }
43615 if ((this.returnField == ReturnType.asyncWait))
43616 {
43617 writer.WriteAttributeString("Return", "asyncWait");
43618 }
43619 if ((this.returnField == ReturnType.check))
43620 {
43621 writer.WriteAttributeString("Return", "check");
43622 }
43623 if ((this.returnField == ReturnType.ignore))
43624 {
43625 writer.WriteAttributeString("Return", "ignore");
43626 }
43627 }
43628 if (this.executeFieldSet)
43629 {
43630 if ((this.executeField == ExecuteType.commit))
43631 {
43632 writer.WriteAttributeString("Execute", "commit");
43633 }
43634 if ((this.executeField == ExecuteType.deferred))
43635 {
43636 writer.WriteAttributeString("Execute", "deferred");
43637 }
43638 if ((this.executeField == ExecuteType.firstSequence))
43639 {
43640 writer.WriteAttributeString("Execute", "firstSequence");
43641 }
43642 if ((this.executeField == ExecuteType.immediate))
43643 {
43644 writer.WriteAttributeString("Execute", "immediate");
43645 }
43646 if ((this.executeField == ExecuteType.oncePerProcess))
43647 {
43648 writer.WriteAttributeString("Execute", "oncePerProcess");
43649 }
43650 if ((this.executeField == ExecuteType.rollback))
43651 {
43652 writer.WriteAttributeString("Execute", "rollback");
43653 }
43654 if ((this.executeField == ExecuteType.secondSequence))
43655 {
43656 writer.WriteAttributeString("Execute", "secondSequence");
43657 }
43658 }
43659 if (this.impersonateFieldSet)
43660 {
43661 if ((this.impersonateField == YesNoType.no))
43662 {
43663 writer.WriteAttributeString("Impersonate", "no");
43664 }
43665 if ((this.impersonateField == YesNoType.yes))
43666 {
43667 writer.WriteAttributeString("Impersonate", "yes");
43668 }
43669 }
43670 if (this.patchUninstallFieldSet)
43671 {
43672 if ((this.patchUninstallField == YesNoType.no))
43673 {
43674 writer.WriteAttributeString("PatchUninstall", "no");
43675 }
43676 if ((this.patchUninstallField == YesNoType.yes))
43677 {
43678 writer.WriteAttributeString("PatchUninstall", "yes");
43679 }
43680 }
43681 if (this.win64FieldSet)
43682 {
43683 if ((this.win64Field == YesNoType.no))
43684 {
43685 writer.WriteAttributeString("Win64", "no");
43686 }
43687 if ((this.win64Field == YesNoType.yes))
43688 {
43689 writer.WriteAttributeString("Win64", "yes");
43690 }
43691 }
43692 if (this.terminalServerAwareFieldSet)
43693 {
43694 if ((this.terminalServerAwareField == YesNoType.no))
43695 {
43696 writer.WriteAttributeString("TerminalServerAware", "no");
43697 }
43698 if ((this.terminalServerAwareField == YesNoType.yes))
43699 {
43700 writer.WriteAttributeString("TerminalServerAware", "yes");
43701 }
43702 }
43703 if (this.hideTargetFieldSet)
43704 {
43705 if ((this.hideTargetField == YesNoType.no))
43706 {
43707 writer.WriteAttributeString("HideTarget", "no");
43708 }
43709 if ((this.hideTargetField == YesNoType.yes))
43710 {
43711 writer.WriteAttributeString("HideTarget", "yes");
43712 }
43713 }
43714 if (this.contentFieldSet)
43715 {
43716 writer.WriteString(this.contentField);
43717 }
43718 writer.WriteEndElement();
43719 }
43720
43721 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
43722 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
43723 void ISetAttributes.SetAttribute(string name, string value)
43724 {
43725 if (String.IsNullOrEmpty(name))
43726 {
43727 throw new ArgumentNullException("name");
43728 }
43729 if (("Id" == name))
43730 {
43731 this.idField = value;
43732 this.idFieldSet = true;
43733 }
43734 if (("BinaryKey" == name))
43735 {
43736 this.binaryKeyField = value;
43737 this.binaryKeyFieldSet = true;
43738 }
43739 if (("FileKey" == name))
43740 {
43741 this.fileKeyField = value;
43742 this.fileKeyFieldSet = true;
43743 }
43744 if (("Property" == name))
43745 {
43746 this.propertyField = value;
43747 this.propertyFieldSet = true;
43748 }
43749 if (("Directory" == name))
43750 {
43751 this.directoryField = value;
43752 this.directoryFieldSet = true;
43753 }
43754 if (("DllEntry" == name))
43755 {
43756 this.dllEntryField = value;
43757 this.dllEntryFieldSet = true;
43758 }
43759 if (("ExeCommand" == name))
43760 {
43761 this.exeCommandField = value;
43762 this.exeCommandFieldSet = true;
43763 }
43764 if (("JScriptCall" == name))
43765 {
43766 this.jScriptCallField = value;
43767 this.jScriptCallFieldSet = true;
43768 }
43769 if (("VBScriptCall" == name))
43770 {
43771 this.vBScriptCallField = value;
43772 this.vBScriptCallFieldSet = true;
43773 }
43774 if (("Script" == name))
43775 {
43776 this.scriptField = CustomAction.ParseScriptType(value);
43777 this.scriptFieldSet = true;
43778 }
43779 if (("SuppressModularization" == name))
43780 {
43781 this.suppressModularizationField = Enums.ParseYesNoType(value);
43782 this.suppressModularizationFieldSet = true;
43783 }
43784 if (("Value" == name))
43785 {
43786 this.valueField = value;
43787 this.valueFieldSet = true;
43788 }
43789 if (("Error" == name))
43790 {
43791 this.errorField = value;
43792 this.errorFieldSet = true;
43793 }
43794 if (("Return" == name))
43795 {
43796 this.returnField = CustomAction.ParseReturnType(value);
43797 this.returnFieldSet = true;
43798 }
43799 if (("Execute" == name))
43800 {
43801 this.executeField = CustomAction.ParseExecuteType(value);
43802 this.executeFieldSet = true;
43803 }
43804 if (("Impersonate" == name))
43805 {
43806 this.impersonateField = Enums.ParseYesNoType(value);
43807 this.impersonateFieldSet = true;
43808 }
43809 if (("PatchUninstall" == name))
43810 {
43811 this.patchUninstallField = Enums.ParseYesNoType(value);
43812 this.patchUninstallFieldSet = true;
43813 }
43814 if (("Win64" == name))
43815 {
43816 this.win64Field = Enums.ParseYesNoType(value);
43817 this.win64FieldSet = true;
43818 }
43819 if (("TerminalServerAware" == name))
43820 {
43821 this.terminalServerAwareField = Enums.ParseYesNoType(value);
43822 this.terminalServerAwareFieldSet = true;
43823 }
43824 if (("HideTarget" == name))
43825 {
43826 this.hideTargetField = Enums.ParseYesNoType(value);
43827 this.hideTargetFieldSet = true;
43828 }
43829 if (("Content" == name))
43830 {
43831 this.contentField = value;
43832 this.contentFieldSet = true;
43833 }
43834 }
43835
43836 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
43837 public enum ScriptType
43838 {
43839
43840 IllegalValue = int.MaxValue,
43841
43842 NotSet = -1,
43843
43844 jscript,
43845
43846 vbscript,
43847 }
43848
43849 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
43850 public enum ReturnType
43851 {
43852
43853 IllegalValue = int.MaxValue,
43854
43855 NotSet = -1,
43856
43857 /// <summary>
43858 /// Indicates that the custom action will run asyncronously and execution may continue after the installer terminates.
43859 /// </summary>
43860 asyncNoWait,
43861
43862 /// <summary>
43863 /// Indicates that the custom action will run asynchronously but the installer will wait for the return code at sequence end.
43864 /// </summary>
43865 asyncWait,
43866
43867 /// <summary>
43868 /// Indicates that the custom action will run synchronously and the return code will be checked for success. This is the default.
43869 /// </summary>
43870 check,
43871
43872 /// <summary>
43873 /// Indicates that the custom action will run synchronously and the return code will not be checked.
43874 /// </summary>
43875 ignore,
43876 }
43877
43878 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
43879 public enum ExecuteType
43880 {
43881
43882 IllegalValue = int.MaxValue,
43883
43884 NotSet = -1,
43885
43886 /// <summary>
43887 /// Indicates that the custom action will run after successful completion of the installation script (at the end of the installation).
43888 /// </summary>
43889 commit,
43890
43891 /// <summary>
43892 /// Indicates that the custom action runs in-script (possibly with elevated privileges).
43893 /// </summary>
43894 deferred,
43895
43896 /// <summary>
43897 /// Indicates that the custom action will only run in the first sequence that runs it.
43898 /// </summary>
43899 firstSequence,
43900
43901 /// <summary>
43902 /// Indicates that the custom action will run during normal processing time with user privileges. This is the default.
43903 /// </summary>
43904 immediate,
43905
43906 /// <summary>
43907 /// Indicates that the custom action will only run in the first sequence that runs it in the same process.
43908 /// </summary>
43909 oncePerProcess,
43910
43911 /// <summary>
43912 /// Indicates that a custom action will run in the rollback sequence when a failure
43913 /// occurs during installation, usually to undo changes made by a deferred custom action.
43914 /// </summary>
43915 rollback,
43916
43917 /// <summary>
43918 /// Indicates that a custom action should be run a second time if it was previously run in an earlier sequence.
43919 /// </summary>
43920 secondSequence,
43921 }
43922 }
43923
43924 /// <summary>
43925 /// This will cause the entire contents of the Fragment containing the referenced CustomAction to be
43926 /// included in the installer database.
43927 /// </summary>
43928 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
43929 public class CustomActionRef : ISchemaElement, ISetAttributes
43930 {
43931
43932 private string idField;
43933
43934 private bool idFieldSet;
43935
43936 private ISchemaElement parentElement;
43937
43938 /// <summary>
43939 /// The identifier of the CustomAction to reference.
43940 /// </summary>
43941 public string Id
43942 {
43943 get
43944 {
43945 return this.idField;
43946 }
43947 set
43948 {
43949 this.idFieldSet = true;
43950 this.idField = value;
43951 }
43952 }
43953
43954 public virtual ISchemaElement ParentElement
43955 {
43956 get
43957 {
43958 return this.parentElement;
43959 }
43960 set
43961 {
43962 this.parentElement = value;
43963 }
43964 }
43965
43966 /// <summary>
43967 /// Processes this element and all child elements into an XmlWriter.
43968 /// </summary>
43969 public virtual void OutputXml(XmlWriter writer)
43970 {
43971 if ((null == writer))
43972 {
43973 throw new ArgumentNullException("writer");
43974 }
43975 writer.WriteStartElement("CustomActionRef", "http://wixtoolset.org/schemas/v4/wxs");
43976 if (this.idFieldSet)
43977 {
43978 writer.WriteAttributeString("Id", this.idField);
43979 }
43980 writer.WriteEndElement();
43981 }
43982
43983 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
43984 void ISetAttributes.SetAttribute(string name, string value)
43985 {
43986 if (String.IsNullOrEmpty(name))
43987 {
43988 throw new ArgumentNullException("name");
43989 }
43990 if (("Id" == name))
43991 {
43992 this.idField = value;
43993 this.idFieldSet = true;
43994 }
43995 }
43996 }
43997
43998 /// <summary>
43999 /// Sets a Directory to a particular value. This is accomplished by creating a Type 51 custom action that is appropriately scheduled in
44000 /// the InstallUISequence and InstallExecuteSequence.
44001 /// </summary>
44002 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44003 public class SetDirectory : ISchemaElement, ISetAttributes
44004 {
44005
44006 private string actionField;
44007
44008 private bool actionFieldSet;
44009
44010 private string idField;
44011
44012 private bool idFieldSet;
44013
44014 private SequenceType sequenceField;
44015
44016 private bool sequenceFieldSet;
44017
44018 private string valueField;
44019
44020 private bool valueFieldSet;
44021
44022 private string contentField;
44023
44024 private bool contentFieldSet;
44025
44026 private ISchemaElement parentElement;
44027
44028 /// <summary>
44029 /// By default the action is "Set" + Id attribute's value. This optional attribute can override the action name in the case
44030 /// where multiple SetDirectory elements target the same Id (probably with mutually exclusive conditions).
44031 /// </summary>
44032 public string Action
44033 {
44034 get
44035 {
44036 return this.actionField;
44037 }
44038 set
44039 {
44040 this.actionFieldSet = true;
44041 this.actionField = value;
44042 }
44043 }
44044
44045 /// <summary>
44046 /// This attribute specifies a reference to a Directory element with matching Id attribute. The path of the Directory will be set to
44047 /// the Value attribute.
44048 /// </summary>
44049 public string Id
44050 {
44051 get
44052 {
44053 return this.idField;
44054 }
44055 set
44056 {
44057 this.idFieldSet = true;
44058 this.idField = value;
44059 }
44060 }
44061
44062 /// <summary>
44063 /// Controls which sequences the Directory assignment is sequenced in.
44064 /// For 'execute', the assignment is scheduled in the InstallExecuteSequence.
44065 /// For 'ui', the assignment is scheduled in the InstallUISequence.
44066 /// For 'first', the assignment is scheduled in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped at install time.
44067 /// For 'both', the assignment is scheduled in both the InstallUISequence and the InstallExecuteSequence.
44068 /// The default is 'both'.
44069 /// </summary>
44070 public SequenceType Sequence
44071 {
44072 get
44073 {
44074 return this.sequenceField;
44075 }
44076 set
44077 {
44078 this.sequenceFieldSet = true;
44079 this.sequenceField = value;
44080 }
44081 }
44082
44083 /// <summary>
44084 /// This attribute specifies a string value to assign to the Directory. The value can be a literal value or derived from a
44085 /// Property element using the
44086 /// </summary>
44087 public string Value
44088 {
44089 get
44090 {
44091 return this.valueField;
44092 }
44093 set
44094 {
44095 this.valueFieldSet = true;
44096 this.valueField = value;
44097 }
44098 }
44099
44100 /// <summary>
44101 /// The condition that determines whether the Directory is set. If the condition evaluates to false, the SetDirectory is skipped.
44102 /// </summary>
44103 public string Content
44104 {
44105 get
44106 {
44107 return this.contentField;
44108 }
44109 set
44110 {
44111 this.contentFieldSet = true;
44112 this.contentField = value;
44113 }
44114 }
44115
44116 public virtual ISchemaElement ParentElement
44117 {
44118 get
44119 {
44120 return this.parentElement;
44121 }
44122 set
44123 {
44124 this.parentElement = value;
44125 }
44126 }
44127
44128 /// <summary>
44129 /// Processes this element and all child elements into an XmlWriter.
44130 /// </summary>
44131 public virtual void OutputXml(XmlWriter writer)
44132 {
44133 if ((null == writer))
44134 {
44135 throw new ArgumentNullException("writer");
44136 }
44137 writer.WriteStartElement("SetDirectory", "http://wixtoolset.org/schemas/v4/wxs");
44138 if (this.actionFieldSet)
44139 {
44140 writer.WriteAttributeString("Action", this.actionField);
44141 }
44142 if (this.idFieldSet)
44143 {
44144 writer.WriteAttributeString("Id", this.idField);
44145 }
44146 if (this.sequenceFieldSet)
44147 {
44148 if ((this.sequenceField == SequenceType.both))
44149 {
44150 writer.WriteAttributeString("Sequence", "both");
44151 }
44152 if ((this.sequenceField == SequenceType.first))
44153 {
44154 writer.WriteAttributeString("Sequence", "first");
44155 }
44156 if ((this.sequenceField == SequenceType.execute))
44157 {
44158 writer.WriteAttributeString("Sequence", "execute");
44159 }
44160 if ((this.sequenceField == SequenceType.ui))
44161 {
44162 writer.WriteAttributeString("Sequence", "ui");
44163 }
44164 }
44165 if (this.valueFieldSet)
44166 {
44167 writer.WriteAttributeString("Value", this.valueField);
44168 }
44169 if (this.contentFieldSet)
44170 {
44171 writer.WriteString(this.contentField);
44172 }
44173 writer.WriteEndElement();
44174 }
44175
44176 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
44177 void ISetAttributes.SetAttribute(string name, string value)
44178 {
44179 if (String.IsNullOrEmpty(name))
44180 {
44181 throw new ArgumentNullException("name");
44182 }
44183 if (("Action" == name))
44184 {
44185 this.actionField = value;
44186 this.actionFieldSet = true;
44187 }
44188 if (("Id" == name))
44189 {
44190 this.idField = value;
44191 this.idFieldSet = true;
44192 }
44193 if (("Sequence" == name))
44194 {
44195 this.sequenceField = Enums.ParseSequenceType(value);
44196 this.sequenceFieldSet = true;
44197 }
44198 if (("Value" == name))
44199 {
44200 this.valueField = value;
44201 this.valueFieldSet = true;
44202 }
44203 if (("Content" == name))
44204 {
44205 this.contentField = value;
44206 this.contentFieldSet = true;
44207 }
44208 }
44209 }
44210
44211 /// <summary>
44212 /// Sets a Property to a particular value. This is accomplished by creating a Type 51 custom action that is appropriately scheduled in
44213 /// the InstallUISequence and InstallExecuteSequence.
44214 /// </summary>
44215 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44216 public class SetProperty : ISchemaElement, ISetAttributes
44217 {
44218
44219 private string actionField;
44220
44221 private bool actionFieldSet;
44222
44223 private string afterField;
44224
44225 private bool afterFieldSet;
44226
44227 private string beforeField;
44228
44229 private bool beforeFieldSet;
44230
44231 private string idField;
44232
44233 private bool idFieldSet;
44234
44235 private SequenceType sequenceField;
44236
44237 private bool sequenceFieldSet;
44238
44239 private string valueField;
44240
44241 private bool valueFieldSet;
44242
44243 private string contentField;
44244
44245 private bool contentFieldSet;
44246
44247 private ISchemaElement parentElement;
44248
44249 /// <summary>
44250 /// By default the action is "Set" + Id attribute's value. This optional attribute can override the action name in the case
44251 /// where multiple SetProperty elements target the same Id (probably with mutually exclusive conditions).
44252 /// </summary>
44253 public string Action
44254 {
44255 get
44256 {
44257 return this.actionField;
44258 }
44259 set
44260 {
44261 this.actionFieldSet = true;
44262 this.actionField = value;
44263 }
44264 }
44265
44266 /// <summary>
44267 /// The name of the standard or custom action after which this action should be performed. Mutually exclusive with the Before attribute. A Before or After attribute is required when setting a Property.
44268 /// </summary>
44269 public string After
44270 {
44271 get
44272 {
44273 return this.afterField;
44274 }
44275 set
44276 {
44277 this.afterFieldSet = true;
44278 this.afterField = value;
44279 }
44280 }
44281
44282 /// <summary>
44283 /// The name of the standard or custom action before which this action should be performed. Mutually exclusive with the After attribute. A Before or After attribute is required when setting a Property.
44284 /// </summary>
44285 public string Before
44286 {
44287 get
44288 {
44289 return this.beforeField;
44290 }
44291 set
44292 {
44293 this.beforeFieldSet = true;
44294 this.beforeField = value;
44295 }
44296 }
44297
44298 /// <summary>
44299 /// This attribute specifies the Property to set to the Value.
44300 /// </summary>
44301 public string Id
44302 {
44303 get
44304 {
44305 return this.idField;
44306 }
44307 set
44308 {
44309 this.idFieldSet = true;
44310 this.idField = value;
44311 }
44312 }
44313
44314 /// <summary>
44315 /// Controls which sequences the Property assignment is sequenced in.
44316 /// For 'execute', the assignment is scheduled in the InstallExecuteSequence.
44317 /// For 'ui', the assignment is scheduled in the InstallUISequence.
44318 /// For 'first', the assignment is scheduled in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped at install time.
44319 /// For 'both', the assignment is scheduled in both the InstallUISequence and the InstallExecuteSequence.
44320 /// The default is 'both'.
44321 /// </summary>
44322 public SequenceType Sequence
44323 {
44324 get
44325 {
44326 return this.sequenceField;
44327 }
44328 set
44329 {
44330 this.sequenceFieldSet = true;
44331 this.sequenceField = value;
44332 }
44333 }
44334
44335 /// <summary>
44336 /// This attribute specifies a string value to assign to the Property. The value can be a literal value or derived from a
44337 /// Property element using the
44338 /// </summary>
44339 public string Value
44340 {
44341 get
44342 {
44343 return this.valueField;
44344 }
44345 set
44346 {
44347 this.valueFieldSet = true;
44348 this.valueField = value;
44349 }
44350 }
44351
44352 /// <summary>
44353 /// The condition that determines whether the Property is set. If the condition evaluates to false, the Set is skipped.
44354 /// </summary>
44355 public string Content
44356 {
44357 get
44358 {
44359 return this.contentField;
44360 }
44361 set
44362 {
44363 this.contentFieldSet = true;
44364 this.contentField = value;
44365 }
44366 }
44367
44368 public virtual ISchemaElement ParentElement
44369 {
44370 get
44371 {
44372 return this.parentElement;
44373 }
44374 set
44375 {
44376 this.parentElement = value;
44377 }
44378 }
44379
44380 /// <summary>
44381 /// Processes this element and all child elements into an XmlWriter.
44382 /// </summary>
44383 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
44384 public virtual void OutputXml(XmlWriter writer)
44385 {
44386 if ((null == writer))
44387 {
44388 throw new ArgumentNullException("writer");
44389 }
44390 writer.WriteStartElement("SetProperty", "http://wixtoolset.org/schemas/v4/wxs");
44391 if (this.actionFieldSet)
44392 {
44393 writer.WriteAttributeString("Action", this.actionField);
44394 }
44395 if (this.afterFieldSet)
44396 {
44397 writer.WriteAttributeString("After", this.afterField);
44398 }
44399 if (this.beforeFieldSet)
44400 {
44401 writer.WriteAttributeString("Before", this.beforeField);
44402 }
44403 if (this.idFieldSet)
44404 {
44405 writer.WriteAttributeString("Id", this.idField);
44406 }
44407 if (this.sequenceFieldSet)
44408 {
44409 if ((this.sequenceField == SequenceType.both))
44410 {
44411 writer.WriteAttributeString("Sequence", "both");
44412 }
44413 if ((this.sequenceField == SequenceType.first))
44414 {
44415 writer.WriteAttributeString("Sequence", "first");
44416 }
44417 if ((this.sequenceField == SequenceType.execute))
44418 {
44419 writer.WriteAttributeString("Sequence", "execute");
44420 }
44421 if ((this.sequenceField == SequenceType.ui))
44422 {
44423 writer.WriteAttributeString("Sequence", "ui");
44424 }
44425 }
44426 if (this.valueFieldSet)
44427 {
44428 writer.WriteAttributeString("Value", this.valueField);
44429 }
44430 if (this.contentFieldSet)
44431 {
44432 writer.WriteString(this.contentField);
44433 }
44434 writer.WriteEndElement();
44435 }
44436
44437 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
44438 void ISetAttributes.SetAttribute(string name, string value)
44439 {
44440 if (String.IsNullOrEmpty(name))
44441 {
44442 throw new ArgumentNullException("name");
44443 }
44444 if (("Action" == name))
44445 {
44446 this.actionField = value;
44447 this.actionFieldSet = true;
44448 }
44449 if (("After" == name))
44450 {
44451 this.afterField = value;
44452 this.afterFieldSet = true;
44453 }
44454 if (("Before" == name))
44455 {
44456 this.beforeField = value;
44457 this.beforeFieldSet = true;
44458 }
44459 if (("Id" == name))
44460 {
44461 this.idField = value;
44462 this.idFieldSet = true;
44463 }
44464 if (("Sequence" == name))
44465 {
44466 this.sequenceField = Enums.ParseSequenceType(value);
44467 this.sequenceFieldSet = true;
44468 }
44469 if (("Value" == name))
44470 {
44471 this.valueField = value;
44472 this.valueFieldSet = true;
44473 }
44474 if (("Content" == name))
44475 {
44476 this.contentField = value;
44477 this.contentFieldSet = true;
44478 }
44479 }
44480 }
44481
44482 /// <summary>
44483 /// This will cause the entire contents of the Fragment containing the referenced PatchFamily to be
44484 /// used in the process of creating a patch.
44485 /// </summary>
44486 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44487 public class PatchFamilyRef : ISchemaElement, ISetAttributes
44488 {
44489
44490 private string idField;
44491
44492 private bool idFieldSet;
44493
44494 private string productCodeField;
44495
44496 private bool productCodeFieldSet;
44497
44498 private ISchemaElement parentElement;
44499
44500 /// <summary>
44501 /// The identifier of the PatchFamily to reference.
44502 /// </summary>
44503 public string Id
44504 {
44505 get
44506 {
44507 return this.idField;
44508 }
44509 set
44510 {
44511 this.idFieldSet = true;
44512 this.idField = value;
44513 }
44514 }
44515
44516 /// <summary>
44517 /// Specifies the ProductCode of the product that this family applies to.
44518 /// </summary>
44519 public string ProductCode
44520 {
44521 get
44522 {
44523 return this.productCodeField;
44524 }
44525 set
44526 {
44527 this.productCodeFieldSet = true;
44528 this.productCodeField = value;
44529 }
44530 }
44531
44532 public virtual ISchemaElement ParentElement
44533 {
44534 get
44535 {
44536 return this.parentElement;
44537 }
44538 set
44539 {
44540 this.parentElement = value;
44541 }
44542 }
44543
44544 /// <summary>
44545 /// Processes this element and all child elements into an XmlWriter.
44546 /// </summary>
44547 public virtual void OutputXml(XmlWriter writer)
44548 {
44549 if ((null == writer))
44550 {
44551 throw new ArgumentNullException("writer");
44552 }
44553 writer.WriteStartElement("PatchFamilyRef", "http://wixtoolset.org/schemas/v4/wxs");
44554 if (this.idFieldSet)
44555 {
44556 writer.WriteAttributeString("Id", this.idField);
44557 }
44558 if (this.productCodeFieldSet)
44559 {
44560 writer.WriteAttributeString("ProductCode", this.productCodeField);
44561 }
44562 writer.WriteEndElement();
44563 }
44564
44565 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
44566 void ISetAttributes.SetAttribute(string name, string value)
44567 {
44568 if (String.IsNullOrEmpty(name))
44569 {
44570 throw new ArgumentNullException("name");
44571 }
44572 if (("Id" == name))
44573 {
44574 this.idField = value;
44575 this.idFieldSet = true;
44576 }
44577 if (("ProductCode" == name))
44578 {
44579 this.productCodeField = value;
44580 this.productCodeFieldSet = true;
44581 }
44582 }
44583 }
44584
44585 /// <summary>
44586 /// Sets the ProductID property to the full product identifier. This action must be sequenced before the user interface wizard in the InstallUISequence table and before the RegisterUser action in the InstallExecuteSequence table. If the product identifier has already been validated successfully, the ValidateProductID action does nothing. The ValidateProductID action always returns a success, whether or not the product identifier is valid, so that the product identifier can be entered on the command line the first time the product is run. The product identifier can be validated without having the user reenter this information by setting the PIDKEY property on the command line or by using a transform. The display of the dialog box requesting the user to enter the product identifier can then be made conditional upon the presence of the ProductID property, which is set when the PIDKEY property is validated. The condition for this action may be specified in the element's inner text.
44587 /// </summary>
44588 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44589 public class ValidateProductID : ActionSequenceType, ISchemaElement
44590 {
44591
44592 /// <summary>
44593 /// Processes this element and all child elements into an XmlWriter.
44594 /// </summary>
44595 public override void OutputXml(XmlWriter writer)
44596 {
44597 if ((null == writer))
44598 {
44599 throw new ArgumentNullException("writer");
44600 }
44601 writer.WriteStartElement("ValidateProductID", "http://wixtoolset.org/schemas/v4/wxs");
44602 base.OutputXml(writer);
44603 writer.WriteEndElement();
44604 }
44605 }
44606
44607 /// <summary>
44608 /// Initiates the internal installation costing process. Any standard or custom actions that affect costing should be sequenced before the CostInitialize action. Call the FileCost action immediately following the CostInitialize action. Then call the CostFinalize action following the CostInitialize action to make all final cost calculations available to the installer through the Component table. The condition for this action may be specified in the element's inner text.
44609 /// </summary>
44610 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44611 public class CostInitialize : ActionSequenceType, ISchemaElement
44612 {
44613
44614 /// <summary>
44615 /// Processes this element and all child elements into an XmlWriter.
44616 /// </summary>
44617 public override void OutputXml(XmlWriter writer)
44618 {
44619 if ((null == writer))
44620 {
44621 throw new ArgumentNullException("writer");
44622 }
44623 writer.WriteStartElement("CostInitialize", "http://wixtoolset.org/schemas/v4/wxs");
44624 base.OutputXml(writer);
44625 writer.WriteEndElement();
44626 }
44627 }
44628
44629 /// <summary>
44630 /// Initiates dynamic costing of standard installation actions. Any standard or custom actions that affect costing should sequenced before the CostInitialize action. Call the FileCost action immediately following the CostInitialize action. Then call the CostFinalize action following the FileCost action to make all final cost calculations available to the installer through the Component table. The CostInitialize action must be executed before the FileCost action. The installer then determines the disk-space cost of every file in the File table, on a per-component basis, taking both volume clustering and the presence of existing files that may need to be overwritten into account. All actions that consume or release disk space are also considered. If an existing file is found, a file version check is performed to determine whether the new file actually needs to be installed or not. If the existing file is of an equal or greater version number, the existing file is not overwritten and no disk-space cost is incurred. In all cases, the installer uses the results of version number checking to set the installation state of each file. The FileCost action initializes cost calculation with the installer. Actual dynamic costing does not occur until the CostFinalize action is executed. The condition for this action may be specified in the element's inner text.
44631 /// </summary>
44632 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44633 public class FileCost : ActionSequenceType, ISchemaElement
44634 {
44635
44636 /// <summary>
44637 /// Processes this element and all child elements into an XmlWriter.
44638 /// </summary>
44639 public override void OutputXml(XmlWriter writer)
44640 {
44641 if ((null == writer))
44642 {
44643 throw new ArgumentNullException("writer");
44644 }
44645 writer.WriteStartElement("FileCost", "http://wixtoolset.org/schemas/v4/wxs");
44646 base.OutputXml(writer);
44647 writer.WriteEndElement();
44648 }
44649 }
44650
44651 /// <summary>
44652 /// Installs a copy of a component (commonly a shared DLL) into a private location for use by a specific application (typically an .exe). This isolates the application from other copies of the component that may be installed to a shared location on the computer. The action refers to each record of the IsolatedComponent table and associates the files of the component listed in the Component_Shared field with the component listed in the Component_Application field. The installer installs the files of Component_Shared into the same directory as Component_Application. The installer generates a file in this directory, zero bytes in length, having the short filename name of the key file for Component_Application (typically this is the same file name as the .exe) appended with .local. The IsolatedComponent action does not affect the installation of Component_Application. Uninstalling Component_Application also removes the Component_Shared files and the .local file from the directory. The IsolateComponents action can be used only in the InstallUISequence table and the InstallExecuteSequence table. This action must come after the CostInitialize action and before the CostFinalize action. The condition for this action may be specified in the element's inner text.
44653 /// </summary>
44654 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44655 public class IsolateComponents : ActionSequenceType, ISchemaElement
44656 {
44657
44658 /// <summary>
44659 /// Processes this element and all child elements into an XmlWriter.
44660 /// </summary>
44661 public override void OutputXml(XmlWriter writer)
44662 {
44663 if ((null == writer))
44664 {
44665 throw new ArgumentNullException("writer");
44666 }
44667 writer.WriteStartElement("IsolateComponents", "http://wixtoolset.org/schemas/v4/wxs");
44668 base.OutputXml(writer);
44669 writer.WriteEndElement();
44670 }
44671 }
44672
44673 /// <summary>
44674 /// Ends the internal installation costing process begun by the CostInitialize action. Any standard or custom actions that affect costing should be sequenced before the CostInitialize action. Call the FileCost action immediately following the CostInitialize action and then call the CostFinalize action to make all final cost calculations available to the installer through the Component table. The CostFinalize action must be executed before starting any user interface sequence which allows the user to view or modify Feature table selections or directories. The CostFinalize action queries the Condition table to determine which features are scheduled to be installed. Costing is done for each component in the Component table. The CostFinalize action also verifies that all the target directories are writable before allowing the installation to continue. The condition for this action may be specified in the element's inner text.
44675 /// </summary>
44676 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44677 public class CostFinalize : ActionSequenceType, ISchemaElement
44678 {
44679
44680 /// <summary>
44681 /// Processes this element and all child elements into an XmlWriter.
44682 /// </summary>
44683 public override void OutputXml(XmlWriter writer)
44684 {
44685 if ((null == writer))
44686 {
44687 throw new ArgumentNullException("writer");
44688 }
44689 writer.WriteStartElement("CostFinalize", "http://wixtoolset.org/schemas/v4/wxs");
44690 base.OutputXml(writer);
44691 writer.WriteEndElement();
44692 }
44693 }
44694
44695 /// <summary>
44696 /// Checks for existing ODBC drivers and sets the target directory for each new driver to the location of an existing driver. The condition for this action may be specified in the element's inner text.
44697 /// </summary>
44698 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44699 public class SetODBCFolders : ActionSequenceType, ISchemaElement
44700 {
44701
44702 /// <summary>
44703 /// Processes this element and all child elements into an XmlWriter.
44704 /// </summary>
44705 public override void OutputXml(XmlWriter writer)
44706 {
44707 if ((null == writer))
44708 {
44709 throw new ArgumentNullException("writer");
44710 }
44711 writer.WriteStartElement("SetODBCFolders", "http://wixtoolset.org/schemas/v4/wxs");
44712 base.OutputXml(writer);
44713 writer.WriteEndElement();
44714 }
44715 }
44716
44717 /// <summary>
44718 /// Used for upgrading or installing over an existing application. Reads feature states from existing application and sets these feature states for the pending installation. The condition for this action may be specified in the element's inner text.
44719 /// </summary>
44720 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44721 public class MigrateFeatureStates : ActionSequenceType, ISchemaElement
44722 {
44723
44724 /// <summary>
44725 /// Processes this element and all child elements into an XmlWriter.
44726 /// </summary>
44727 public override void OutputXml(XmlWriter writer)
44728 {
44729 if ((null == writer))
44730 {
44731 throw new ArgumentNullException("writer");
44732 }
44733 writer.WriteStartElement("MigrateFeatureStates", "http://wixtoolset.org/schemas/v4/wxs");
44734 base.OutputXml(writer);
44735 writer.WriteEndElement();
44736 }
44737 }
44738
44739 /// <summary>
44740 /// Initiates the execution sequence. The condition for this action may be specified in the element's inner text.
44741 /// </summary>
44742 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44743 public class ExecuteAction : ActionSequenceType, ISchemaElement
44744 {
44745
44746 /// <summary>
44747 /// Processes this element and all child elements into an XmlWriter.
44748 /// </summary>
44749 public override void OutputXml(XmlWriter writer)
44750 {
44751 if ((null == writer))
44752 {
44753 throw new ArgumentNullException("writer");
44754 }
44755 writer.WriteStartElement("ExecuteAction", "http://wixtoolset.org/schemas/v4/wxs");
44756 base.OutputXml(writer);
44757 writer.WriteEndElement();
44758 }
44759 }
44760
44761 /// <summary>
44762 /// Verifies that all costed volumes have enough space for the installation. The condition for this action may be specified in the element's inner text.
44763 /// </summary>
44764 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44765 public class InstallValidate : ActionSequenceType, ISchemaElement
44766 {
44767
44768 /// <summary>
44769 /// Processes this element and all child elements into an XmlWriter.
44770 /// </summary>
44771 public override void OutputXml(XmlWriter writer)
44772 {
44773 if ((null == writer))
44774 {
44775 throw new ArgumentNullException("writer");
44776 }
44777 writer.WriteStartElement("InstallValidate", "http://wixtoolset.org/schemas/v4/wxs");
44778 base.OutputXml(writer);
44779 writer.WriteEndElement();
44780 }
44781 }
44782
44783 /// <summary>
44784 /// Marks the beginning of a sequence of actions that change the system. The condition for this action may be specified in the element's inner text.
44785 /// </summary>
44786 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44787 public class InstallInitialize : ActionSequenceType, ISchemaElement
44788 {
44789
44790 /// <summary>
44791 /// Processes this element and all child elements into an XmlWriter.
44792 /// </summary>
44793 public override void OutputXml(XmlWriter writer)
44794 {
44795 if ((null == writer))
44796 {
44797 throw new ArgumentNullException("writer");
44798 }
44799 writer.WriteStartElement("InstallInitialize", "http://wixtoolset.org/schemas/v4/wxs");
44800 base.OutputXml(writer);
44801 writer.WriteEndElement();
44802 }
44803 }
44804
44805 /// <summary>
44806 /// Ensures the needed amount of space exists in the registry. The condition for this action may be specified in the element's inner text.
44807 /// </summary>
44808 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44809 public class AllocateRegistrySpace : ActionSequenceType, ISchemaElement
44810 {
44811
44812 /// <summary>
44813 /// Processes this element and all child elements into an XmlWriter.
44814 /// </summary>
44815 public override void OutputXml(XmlWriter writer)
44816 {
44817 if ((null == writer))
44818 {
44819 throw new ArgumentNullException("writer");
44820 }
44821 writer.WriteStartElement("AllocateRegistrySpace", "http://wixtoolset.org/schemas/v4/wxs");
44822 base.OutputXml(writer);
44823 writer.WriteEndElement();
44824 }
44825 }
44826
44827 /// <summary>
44828 /// Registers and unregisters components, their key paths, and the component clients. The condition for this action may be specified in the element's inner text.
44829 /// </summary>
44830 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44831 public class ProcessComponents : ActionSequenceType, ISchemaElement
44832 {
44833
44834 /// <summary>
44835 /// Processes this element and all child elements into an XmlWriter.
44836 /// </summary>
44837 public override void OutputXml(XmlWriter writer)
44838 {
44839 if ((null == writer))
44840 {
44841 throw new ArgumentNullException("writer");
44842 }
44843 writer.WriteStartElement("ProcessComponents", "http://wixtoolset.org/schemas/v4/wxs");
44844 base.OutputXml(writer);
44845 writer.WriteEndElement();
44846 }
44847 }
44848
44849 /// <summary>
44850 /// Manages the unadvertisement of components listed in the PublishComponent table. The condition for this action may be specified in the element's inner text.
44851 /// </summary>
44852 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44853 public class UnpublishComponents : ActionSequenceType, ISchemaElement
44854 {
44855
44856 /// <summary>
44857 /// Processes this element and all child elements into an XmlWriter.
44858 /// </summary>
44859 public override void OutputXml(XmlWriter writer)
44860 {
44861 if ((null == writer))
44862 {
44863 throw new ArgumentNullException("writer");
44864 }
44865 writer.WriteStartElement("UnpublishComponents", "http://wixtoolset.org/schemas/v4/wxs");
44866 base.OutputXml(writer);
44867 writer.WriteEndElement();
44868 }
44869 }
44870
44871 /// <summary>
44872 /// Manages the unadvertisement of CLR and Win32 assemblies that are being removed. The condition for this action may be specified in the element's inner text.
44873 /// </summary>
44874 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44875 public class MsiUnpublishAssemblies : ActionSequenceType, ISchemaElement
44876 {
44877
44878 /// <summary>
44879 /// Processes this element and all child elements into an XmlWriter.
44880 /// </summary>
44881 public override void OutputXml(XmlWriter writer)
44882 {
44883 if ((null == writer))
44884 {
44885 throw new ArgumentNullException("writer");
44886 }
44887 writer.WriteStartElement("MsiUnpublishAssemblies", "http://wixtoolset.org/schemas/v4/wxs");
44888 base.OutputXml(writer);
44889 writer.WriteEndElement();
44890 }
44891 }
44892
44893 /// <summary>
44894 /// Removes selection-state and feature-component mapping information from the registry. The condition for this action may be specified in the element's inner text.
44895 /// </summary>
44896 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44897 public class UnpublishFeatures : ActionSequenceType, ISchemaElement
44898 {
44899
44900 /// <summary>
44901 /// Processes this element and all child elements into an XmlWriter.
44902 /// </summary>
44903 public override void OutputXml(XmlWriter writer)
44904 {
44905 if ((null == writer))
44906 {
44907 throw new ArgumentNullException("writer");
44908 }
44909 writer.WriteStartElement("UnpublishFeatures", "http://wixtoolset.org/schemas/v4/wxs");
44910 base.OutputXml(writer);
44911 writer.WriteEndElement();
44912 }
44913 }
44914
44915 /// <summary>
44916 /// Stops system services. The condition for this action may be specified in the element's inner text.
44917 /// </summary>
44918 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44919 public class StopServices : ActionSequenceType, ISchemaElement
44920 {
44921
44922 /// <summary>
44923 /// Processes this element and all child elements into an XmlWriter.
44924 /// </summary>
44925 public override void OutputXml(XmlWriter writer)
44926 {
44927 if ((null == writer))
44928 {
44929 throw new ArgumentNullException("writer");
44930 }
44931 writer.WriteStartElement("StopServices", "http://wixtoolset.org/schemas/v4/wxs");
44932 base.OutputXml(writer);
44933 writer.WriteEndElement();
44934 }
44935 }
44936
44937 /// <summary>
44938 /// Stops a service and removes its registration from the system. The condition for this action may be specified in the element's inner text.
44939 /// </summary>
44940 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44941 public class DeleteServices : ActionSequenceType, ISchemaElement
44942 {
44943
44944 /// <summary>
44945 /// Processes this element and all child elements into an XmlWriter.
44946 /// </summary>
44947 public override void OutputXml(XmlWriter writer)
44948 {
44949 if ((null == writer))
44950 {
44951 throw new ArgumentNullException("writer");
44952 }
44953 writer.WriteStartElement("DeleteServices", "http://wixtoolset.org/schemas/v4/wxs");
44954 base.OutputXml(writer);
44955 writer.WriteEndElement();
44956 }
44957 }
44958
44959 /// <summary>
44960 /// Removes COM+ applications from the registry. The condition for this action may be specified in the element's inner text.
44961 /// </summary>
44962 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44963 public class UnregisterComPlus : ActionSequenceType, ISchemaElement
44964 {
44965
44966 /// <summary>
44967 /// Processes this element and all child elements into an XmlWriter.
44968 /// </summary>
44969 public override void OutputXml(XmlWriter writer)
44970 {
44971 if ((null == writer))
44972 {
44973 throw new ArgumentNullException("writer");
44974 }
44975 writer.WriteStartElement("UnregisterComPlus", "http://wixtoolset.org/schemas/v4/wxs");
44976 base.OutputXml(writer);
44977 writer.WriteEndElement();
44978 }
44979 }
44980
44981 /// <summary>
44982 /// Unregisters all modules listed in the SelfReg table that are scheduled to be uninstalled. The condition for this action may be specified in the element's inner text.
44983 /// </summary>
44984 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44985 public class SelfUnregModules : ActionSequenceType, ISchemaElement
44986 {
44987
44988 /// <summary>
44989 /// Processes this element and all child elements into an XmlWriter.
44990 /// </summary>
44991 public override void OutputXml(XmlWriter writer)
44992 {
44993 if ((null == writer))
44994 {
44995 throw new ArgumentNullException("writer");
44996 }
44997 writer.WriteStartElement("SelfUnregModules", "http://wixtoolset.org/schemas/v4/wxs");
44998 base.OutputXml(writer);
44999 writer.WriteEndElement();
45000 }
45001 }
45002
45003 /// <summary>
45004 /// Unregisters type libraries from the system. The condition for this action may be specified in the element's inner text.
45005 /// </summary>
45006 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45007 public class UnregisterTypeLibraries : ActionSequenceType, ISchemaElement
45008 {
45009
45010 /// <summary>
45011 /// Processes this element and all child elements into an XmlWriter.
45012 /// </summary>
45013 public override void OutputXml(XmlWriter writer)
45014 {
45015 if ((null == writer))
45016 {
45017 throw new ArgumentNullException("writer");
45018 }
45019 writer.WriteStartElement("UnregisterTypeLibraries", "http://wixtoolset.org/schemas/v4/wxs");
45020 base.OutputXml(writer);
45021 writer.WriteEndElement();
45022 }
45023 }
45024
45025 /// <summary>
45026 /// Removes the data sources, translators, and drivers listed for removal during the installation. The condition for this action may be specified in the element's inner text.
45027 /// </summary>
45028 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45029 public class RemoveODBC : ActionSequenceType, ISchemaElement
45030 {
45031
45032 /// <summary>
45033 /// Processes this element and all child elements into an XmlWriter.
45034 /// </summary>
45035 public override void OutputXml(XmlWriter writer)
45036 {
45037 if ((null == writer))
45038 {
45039 throw new ArgumentNullException("writer");
45040 }
45041 writer.WriteStartElement("RemoveODBC", "http://wixtoolset.org/schemas/v4/wxs");
45042 base.OutputXml(writer);
45043 writer.WriteEndElement();
45044 }
45045 }
45046
45047 /// <summary>
45048 /// Removes registration information about installed fonts from the system. The condition for this action may be specified in the element's inner text.
45049 /// </summary>
45050 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45051 public class UnregisterFonts : ActionSequenceType, ISchemaElement
45052 {
45053
45054 /// <summary>
45055 /// Processes this element and all child elements into an XmlWriter.
45056 /// </summary>
45057 public override void OutputXml(XmlWriter writer)
45058 {
45059 if ((null == writer))
45060 {
45061 throw new ArgumentNullException("writer");
45062 }
45063 writer.WriteStartElement("UnregisterFonts", "http://wixtoolset.org/schemas/v4/wxs");
45064 base.OutputXml(writer);
45065 writer.WriteEndElement();
45066 }
45067 }
45068
45069 /// <summary>
45070 /// Removes a registry value that has been authored into the registry table if the associated component was installed locally or as run from source, and is now set to be uninstalled. The condition for this action may be specified in the element's inner text.
45071 /// </summary>
45072 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45073 public class RemoveRegistryValues : ActionSequenceType, ISchemaElement
45074 {
45075
45076 /// <summary>
45077 /// Processes this element and all child elements into an XmlWriter.
45078 /// </summary>
45079 public override void OutputXml(XmlWriter writer)
45080 {
45081 if ((null == writer))
45082 {
45083 throw new ArgumentNullException("writer");
45084 }
45085 writer.WriteStartElement("RemoveRegistryValues", "http://wixtoolset.org/schemas/v4/wxs");
45086 base.OutputXml(writer);
45087 writer.WriteEndElement();
45088 }
45089 }
45090
45091 /// <summary>
45092 /// Manages the removal of COM class information from the system registry. The condition for this action may be specified in the element's inner text.
45093 /// </summary>
45094 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45095 public class UnregisterClassInfo : ActionSequenceType, ISchemaElement
45096 {
45097
45098 /// <summary>
45099 /// Processes this element and all child elements into an XmlWriter.
45100 /// </summary>
45101 public override void OutputXml(XmlWriter writer)
45102 {
45103 if ((null == writer))
45104 {
45105 throw new ArgumentNullException("writer");
45106 }
45107 writer.WriteStartElement("UnregisterClassInfo", "http://wixtoolset.org/schemas/v4/wxs");
45108 base.OutputXml(writer);
45109 writer.WriteEndElement();
45110 }
45111 }
45112
45113 /// <summary>
45114 /// Manages the removal of extension-related information from the system registry. The condition for this action may be specified in the element's inner text.
45115 /// </summary>
45116 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45117 public class UnregisterExtensionInfo : ActionSequenceType, ISchemaElement
45118 {
45119
45120 /// <summary>
45121 /// Processes this element and all child elements into an XmlWriter.
45122 /// </summary>
45123 public override void OutputXml(XmlWriter writer)
45124 {
45125 if ((null == writer))
45126 {
45127 throw new ArgumentNullException("writer");
45128 }
45129 writer.WriteStartElement("UnregisterExtensionInfo", "http://wixtoolset.org/schemas/v4/wxs");
45130 base.OutputXml(writer);
45131 writer.WriteEndElement();
45132 }
45133 }
45134
45135 /// <summary>
45136 /// Manages the unregistration of OLE ProgId information with the system. The condition for this action may be specified in the element's inner text.
45137 /// </summary>
45138 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45139 public class UnregisterProgIdInfo : ActionSequenceType, ISchemaElement
45140 {
45141
45142 /// <summary>
45143 /// Processes this element and all child elements into an XmlWriter.
45144 /// </summary>
45145 public override void OutputXml(XmlWriter writer)
45146 {
45147 if ((null == writer))
45148 {
45149 throw new ArgumentNullException("writer");
45150 }
45151 writer.WriteStartElement("UnregisterProgIdInfo", "http://wixtoolset.org/schemas/v4/wxs");
45152 base.OutputXml(writer);
45153 writer.WriteEndElement();
45154 }
45155 }
45156
45157 /// <summary>
45158 /// Unregisters MIME-related registry information from the system. The condition for this action may be specified in the element's inner text.
45159 /// </summary>
45160 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45161 public class UnregisterMIMEInfo : ActionSequenceType, ISchemaElement
45162 {
45163
45164 /// <summary>
45165 /// Processes this element and all child elements into an XmlWriter.
45166 /// </summary>
45167 public override void OutputXml(XmlWriter writer)
45168 {
45169 if ((null == writer))
45170 {
45171 throw new ArgumentNullException("writer");
45172 }
45173 writer.WriteStartElement("UnregisterMIMEInfo", "http://wixtoolset.org/schemas/v4/wxs");
45174 base.OutputXml(writer);
45175 writer.WriteEndElement();
45176 }
45177 }
45178
45179 /// <summary>
45180 /// Removes .ini file information specified for removal in the RemoveIniFile table if the component is set to be installed locally or run from source. The condition for this action may be specified in the element's inner text.
45181 /// </summary>
45182 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45183 public class RemoveIniValues : ActionSequenceType, ISchemaElement
45184 {
45185
45186 /// <summary>
45187 /// Processes this element and all child elements into an XmlWriter.
45188 /// </summary>
45189 public override void OutputXml(XmlWriter writer)
45190 {
45191 if ((null == writer))
45192 {
45193 throw new ArgumentNullException("writer");
45194 }
45195 writer.WriteStartElement("RemoveIniValues", "http://wixtoolset.org/schemas/v4/wxs");
45196 base.OutputXml(writer);
45197 writer.WriteEndElement();
45198 }
45199 }
45200
45201 /// <summary>
45202 /// Manages the removal of an advertised shortcut whose feature is selected for uninstallation or a nonadvertised shortcut whose component is selected for uninstallation. The condition for this action may be specified in the element's inner text.
45203 /// </summary>
45204 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45205 public class RemoveShortcuts : ActionSequenceType, ISchemaElement
45206 {
45207
45208 /// <summary>
45209 /// Processes this element and all child elements into an XmlWriter.
45210 /// </summary>
45211 public override void OutputXml(XmlWriter writer)
45212 {
45213 if ((null == writer))
45214 {
45215 throw new ArgumentNullException("writer");
45216 }
45217 writer.WriteStartElement("RemoveShortcuts", "http://wixtoolset.org/schemas/v4/wxs");
45218 base.OutputXml(writer);
45219 writer.WriteEndElement();
45220 }
45221 }
45222
45223 /// <summary>
45224 /// Modifies the values of environment variables. The condition for this action may be specified in the element's inner text.
45225 /// </summary>
45226 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45227 public class RemoveEnvironmentStrings : ActionSequenceType, ISchemaElement
45228 {
45229
45230 /// <summary>
45231 /// Processes this element and all child elements into an XmlWriter.
45232 /// </summary>
45233 public override void OutputXml(XmlWriter writer)
45234 {
45235 if ((null == writer))
45236 {
45237 throw new ArgumentNullException("writer");
45238 }
45239 writer.WriteStartElement("RemoveEnvironmentStrings", "http://wixtoolset.org/schemas/v4/wxs");
45240 base.OutputXml(writer);
45241 writer.WriteEndElement();
45242 }
45243 }
45244
45245 /// <summary>
45246 /// Deletes files installed by the DuplicateFiles action. The condition for this action may be specified in the element's inner text.
45247 /// </summary>
45248 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45249 public class RemoveDuplicateFiles : ActionSequenceType, ISchemaElement
45250 {
45251
45252 /// <summary>
45253 /// Processes this element and all child elements into an XmlWriter.
45254 /// </summary>
45255 public override void OutputXml(XmlWriter writer)
45256 {
45257 if ((null == writer))
45258 {
45259 throw new ArgumentNullException("writer");
45260 }
45261 writer.WriteStartElement("RemoveDuplicateFiles", "http://wixtoolset.org/schemas/v4/wxs");
45262 base.OutputXml(writer);
45263 writer.WriteEndElement();
45264 }
45265 }
45266
45267 /// <summary>
45268 /// Removes files previously installed by the InstallFiles action. The condition for this action may be specified in the element's inner text.
45269 /// </summary>
45270 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45271 public class RemoveFiles : ActionSequenceType, ISchemaElement
45272 {
45273
45274 /// <summary>
45275 /// Processes this element and all child elements into an XmlWriter.
45276 /// </summary>
45277 public override void OutputXml(XmlWriter writer)
45278 {
45279 if ((null == writer))
45280 {
45281 throw new ArgumentNullException("writer");
45282 }
45283 writer.WriteStartElement("RemoveFiles", "http://wixtoolset.org/schemas/v4/wxs");
45284 base.OutputXml(writer);
45285 writer.WriteEndElement();
45286 }
45287 }
45288
45289 /// <summary>
45290 /// Removes any folders linked to components set to be removed or run from source. The condition for this action may be specified in the element's inner text.
45291 /// </summary>
45292 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45293 public class RemoveFolders : ActionSequenceType, ISchemaElement
45294 {
45295
45296 /// <summary>
45297 /// Processes this element and all child elements into an XmlWriter.
45298 /// </summary>
45299 public override void OutputXml(XmlWriter writer)
45300 {
45301 if ((null == writer))
45302 {
45303 throw new ArgumentNullException("writer");
45304 }
45305 writer.WriteStartElement("RemoveFolders", "http://wixtoolset.org/schemas/v4/wxs");
45306 base.OutputXml(writer);
45307 writer.WriteEndElement();
45308 }
45309 }
45310
45311 /// <summary>
45312 /// Creates empty folders for components that are set to be installed. The condition for this action may be specified in the element's inner text.
45313 /// </summary>
45314 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45315 public class CreateFolders : ActionSequenceType, ISchemaElement
45316 {
45317
45318 /// <summary>
45319 /// Processes this element and all child elements into an XmlWriter.
45320 /// </summary>
45321 public override void OutputXml(XmlWriter writer)
45322 {
45323 if ((null == writer))
45324 {
45325 throw new ArgumentNullException("writer");
45326 }
45327 writer.WriteStartElement("CreateFolders", "http://wixtoolset.org/schemas/v4/wxs");
45328 base.OutputXml(writer);
45329 writer.WriteEndElement();
45330 }
45331 }
45332
45333 /// <summary>
45334 /// Locates existing files on the system and moves or copies those files to a new location. The condition for this action may be specified in the element's inner text.
45335 /// </summary>
45336 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45337 public class MoveFiles : ActionSequenceType, ISchemaElement
45338 {
45339
45340 /// <summary>
45341 /// Processes this element and all child elements into an XmlWriter.
45342 /// </summary>
45343 public override void OutputXml(XmlWriter writer)
45344 {
45345 if ((null == writer))
45346 {
45347 throw new ArgumentNullException("writer");
45348 }
45349 writer.WriteStartElement("MoveFiles", "http://wixtoolset.org/schemas/v4/wxs");
45350 base.OutputXml(writer);
45351 writer.WriteEndElement();
45352 }
45353 }
45354
45355 /// <summary>
45356 /// Copies the product database to the administrative installation point. The condition for this action may be specified in the element's inner text.
45357 /// </summary>
45358 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45359 public class InstallAdminPackage : ActionSequenceType, ISchemaElement
45360 {
45361
45362 /// <summary>
45363 /// Processes this element and all child elements into an XmlWriter.
45364 /// </summary>
45365 public override void OutputXml(XmlWriter writer)
45366 {
45367 if ((null == writer))
45368 {
45369 throw new ArgumentNullException("writer");
45370 }
45371 writer.WriteStartElement("InstallAdminPackage", "http://wixtoolset.org/schemas/v4/wxs");
45372 base.OutputXml(writer);
45373 writer.WriteEndElement();
45374 }
45375 }
45376
45377 /// <summary>
45378 /// Copies files specified in the File table from the source directory to the destination directory. The condition for this action may be specified in the element's inner text.
45379 /// </summary>
45380 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45381 public class InstallFiles : ActionSequenceType, ISchemaElement
45382 {
45383
45384 /// <summary>
45385 /// Processes this element and all child elements into an XmlWriter.
45386 /// </summary>
45387 public override void OutputXml(XmlWriter writer)
45388 {
45389 if ((null == writer))
45390 {
45391 throw new ArgumentNullException("writer");
45392 }
45393 writer.WriteStartElement("InstallFiles", "http://wixtoolset.org/schemas/v4/wxs");
45394 base.OutputXml(writer);
45395 writer.WriteEndElement();
45396 }
45397 }
45398
45399 /// <summary>
45400 /// Duplicates files installed by the InstallFiles action. The condition for this action may be specified in the element's inner text.
45401 /// </summary>
45402 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45403 public class DuplicateFiles : ActionSequenceType, ISchemaElement
45404 {
45405
45406 /// <summary>
45407 /// Processes this element and all child elements into an XmlWriter.
45408 /// </summary>
45409 public override void OutputXml(XmlWriter writer)
45410 {
45411 if ((null == writer))
45412 {
45413 throw new ArgumentNullException("writer");
45414 }
45415 writer.WriteStartElement("DuplicateFiles", "http://wixtoolset.org/schemas/v4/wxs");
45416 base.OutputXml(writer);
45417 writer.WriteEndElement();
45418 }
45419 }
45420
45421 /// <summary>
45422 /// Queries the Patch table to determine which patches are to be applied. The condition for this action may be specified in the element's inner text.
45423 /// </summary>
45424 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45425 public class PatchFiles : ActionSequenceType, ISchemaElement
45426 {
45427
45428 /// <summary>
45429 /// Processes this element and all child elements into an XmlWriter.
45430 /// </summary>
45431 public override void OutputXml(XmlWriter writer)
45432 {
45433 if ((null == writer))
45434 {
45435 throw new ArgumentNullException("writer");
45436 }
45437 writer.WriteStartElement("PatchFiles", "http://wixtoolset.org/schemas/v4/wxs");
45438 base.OutputXml(writer);
45439 writer.WriteEndElement();
45440 }
45441 }
45442
45443 /// <summary>
45444 /// Binds each executable or DLL that must be bound to the DLLs imported by it. The condition for this action may be specified in the element's inner text.
45445 /// </summary>
45446 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45447 public class BindImage : ActionSequenceType, ISchemaElement
45448 {
45449
45450 /// <summary>
45451 /// Processes this element and all child elements into an XmlWriter.
45452 /// </summary>
45453 public override void OutputXml(XmlWriter writer)
45454 {
45455 if ((null == writer))
45456 {
45457 throw new ArgumentNullException("writer");
45458 }
45459 writer.WriteStartElement("BindImage", "http://wixtoolset.org/schemas/v4/wxs");
45460 base.OutputXml(writer);
45461 writer.WriteEndElement();
45462 }
45463 }
45464
45465 /// <summary>
45466 /// Manages the creation of shortcuts. The condition for this action may be specified in the element's inner text.
45467 /// </summary>
45468 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45469 public class CreateShortcuts : ActionSequenceType, ISchemaElement
45470 {
45471
45472 /// <summary>
45473 /// Processes this element and all child elements into an XmlWriter.
45474 /// </summary>
45475 public override void OutputXml(XmlWriter writer)
45476 {
45477 if ((null == writer))
45478 {
45479 throw new ArgumentNullException("writer");
45480 }
45481 writer.WriteStartElement("CreateShortcuts", "http://wixtoolset.org/schemas/v4/wxs");
45482 base.OutputXml(writer);
45483 writer.WriteEndElement();
45484 }
45485 }
45486
45487 /// <summary>
45488 /// Manages the registration of COM class information with the system. The condition for this action may be specified in the element's inner text.
45489 /// </summary>
45490 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45491 public class RegisterClassInfo : ActionSequenceType, ISchemaElement
45492 {
45493
45494 /// <summary>
45495 /// Processes this element and all child elements into an XmlWriter.
45496 /// </summary>
45497 public override void OutputXml(XmlWriter writer)
45498 {
45499 if ((null == writer))
45500 {
45501 throw new ArgumentNullException("writer");
45502 }
45503 writer.WriteStartElement("RegisterClassInfo", "http://wixtoolset.org/schemas/v4/wxs");
45504 base.OutputXml(writer);
45505 writer.WriteEndElement();
45506 }
45507 }
45508
45509 /// <summary>
45510 /// Manages the registration of extension related information with the system. The condition for this action may be specified in the element's inner text.
45511 /// </summary>
45512 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45513 public class RegisterExtensionInfo : ActionSequenceType, ISchemaElement
45514 {
45515
45516 /// <summary>
45517 /// Processes this element and all child elements into an XmlWriter.
45518 /// </summary>
45519 public override void OutputXml(XmlWriter writer)
45520 {
45521 if ((null == writer))
45522 {
45523 throw new ArgumentNullException("writer");
45524 }
45525 writer.WriteStartElement("RegisterExtensionInfo", "http://wixtoolset.org/schemas/v4/wxs");
45526 base.OutputXml(writer);
45527 writer.WriteEndElement();
45528 }
45529 }
45530
45531 /// <summary>
45532 /// Manages the registration of OLE ProgId information with the system. The condition for this action may be specified in the element's inner text.
45533 /// </summary>
45534 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45535 public class RegisterProgIdInfo : ActionSequenceType, ISchemaElement
45536 {
45537
45538 /// <summary>
45539 /// Processes this element and all child elements into an XmlWriter.
45540 /// </summary>
45541 public override void OutputXml(XmlWriter writer)
45542 {
45543 if ((null == writer))
45544 {
45545 throw new ArgumentNullException("writer");
45546 }
45547 writer.WriteStartElement("RegisterProgIdInfo", "http://wixtoolset.org/schemas/v4/wxs");
45548 base.OutputXml(writer);
45549 writer.WriteEndElement();
45550 }
45551 }
45552
45553 /// <summary>
45554 /// Registers MIME-related registry information with the system. The condition for this action may be specified in the element's inner text.
45555 /// </summary>
45556 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45557 public class RegisterMIMEInfo : ActionSequenceType, ISchemaElement
45558 {
45559
45560 /// <summary>
45561 /// Processes this element and all child elements into an XmlWriter.
45562 /// </summary>
45563 public override void OutputXml(XmlWriter writer)
45564 {
45565 if ((null == writer))
45566 {
45567 throw new ArgumentNullException("writer");
45568 }
45569 writer.WriteStartElement("RegisterMIMEInfo", "http://wixtoolset.org/schemas/v4/wxs");
45570 base.OutputXml(writer);
45571 writer.WriteEndElement();
45572 }
45573 }
45574
45575 /// <summary>
45576 /// Sets up an application's registry information. The condition for this action may be specified in the element's inner text.
45577 /// </summary>
45578 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45579 public class WriteRegistryValues : ActionSequenceType, ISchemaElement
45580 {
45581
45582 /// <summary>
45583 /// Processes this element and all child elements into an XmlWriter.
45584 /// </summary>
45585 public override void OutputXml(XmlWriter writer)
45586 {
45587 if ((null == writer))
45588 {
45589 throw new ArgumentNullException("writer");
45590 }
45591 writer.WriteStartElement("WriteRegistryValues", "http://wixtoolset.org/schemas/v4/wxs");
45592 base.OutputXml(writer);
45593 writer.WriteEndElement();
45594 }
45595 }
45596
45597 /// <summary>
45598 /// Writes the .ini file information that the application needs written to its .ini files. The condition for this action may be specified in the element's inner text.
45599 /// </summary>
45600 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45601 public class WriteIniValues : ActionSequenceType, ISchemaElement
45602 {
45603
45604 /// <summary>
45605 /// Processes this element and all child elements into an XmlWriter.
45606 /// </summary>
45607 public override void OutputXml(XmlWriter writer)
45608 {
45609 if ((null == writer))
45610 {
45611 throw new ArgumentNullException("writer");
45612 }
45613 writer.WriteStartElement("WriteIniValues", "http://wixtoolset.org/schemas/v4/wxs");
45614 base.OutputXml(writer);
45615 writer.WriteEndElement();
45616 }
45617 }
45618
45619 /// <summary>
45620 /// Modifies the values of environment variables. The condition for this action may be specified in the element's inner text.
45621 /// </summary>
45622 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45623 public class WriteEnvironmentStrings : ActionSequenceType, ISchemaElement
45624 {
45625
45626 /// <summary>
45627 /// Processes this element and all child elements into an XmlWriter.
45628 /// </summary>
45629 public override void OutputXml(XmlWriter writer)
45630 {
45631 if ((null == writer))
45632 {
45633 throw new ArgumentNullException("writer");
45634 }
45635 writer.WriteStartElement("WriteEnvironmentStrings", "http://wixtoolset.org/schemas/v4/wxs");
45636 base.OutputXml(writer);
45637 writer.WriteEndElement();
45638 }
45639 }
45640
45641 /// <summary>
45642 /// Registers installed fonts with the system. The condition for this action may be specified in the element's inner text.
45643 /// </summary>
45644 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45645 public class RegisterFonts : ActionSequenceType, ISchemaElement
45646 {
45647
45648 /// <summary>
45649 /// Processes this element and all child elements into an XmlWriter.
45650 /// </summary>
45651 public override void OutputXml(XmlWriter writer)
45652 {
45653 if ((null == writer))
45654 {
45655 throw new ArgumentNullException("writer");
45656 }
45657 writer.WriteStartElement("RegisterFonts", "http://wixtoolset.org/schemas/v4/wxs");
45658 base.OutputXml(writer);
45659 writer.WriteEndElement();
45660 }
45661 }
45662
45663 /// <summary>
45664 /// Installs the drivers, translators, and data sources in the ODBCDriver table, ODBCTranslator table, and ODBCDataSource table. The condition for this action may be specified in the element's inner text.
45665 /// </summary>
45666 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45667 public class InstallODBC : ActionSequenceType, ISchemaElement
45668 {
45669
45670 /// <summary>
45671 /// Processes this element and all child elements into an XmlWriter.
45672 /// </summary>
45673 public override void OutputXml(XmlWriter writer)
45674 {
45675 if ((null == writer))
45676 {
45677 throw new ArgumentNullException("writer");
45678 }
45679 writer.WriteStartElement("InstallODBC", "http://wixtoolset.org/schemas/v4/wxs");
45680 base.OutputXml(writer);
45681 writer.WriteEndElement();
45682 }
45683 }
45684
45685 /// <summary>
45686 /// Registers type libraries with the system. The condition for this action may be specified in the element's inner text.
45687 /// </summary>
45688 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45689 public class RegisterTypeLibraries : ActionSequenceType, ISchemaElement
45690 {
45691
45692 /// <summary>
45693 /// Processes this element and all child elements into an XmlWriter.
45694 /// </summary>
45695 public override void OutputXml(XmlWriter writer)
45696 {
45697 if ((null == writer))
45698 {
45699 throw new ArgumentNullException("writer");
45700 }
45701 writer.WriteStartElement("RegisterTypeLibraries", "http://wixtoolset.org/schemas/v4/wxs");
45702 base.OutputXml(writer);
45703 writer.WriteEndElement();
45704 }
45705 }
45706
45707 /// <summary>
45708 /// Processes all modules listed in the SelfReg table and registers all installed modules with the system. The condition for this action may be specified in the element's inner text.
45709 /// </summary>
45710 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45711 public class SelfRegModules : ActionSequenceType, ISchemaElement
45712 {
45713
45714 /// <summary>
45715 /// Processes this element and all child elements into an XmlWriter.
45716 /// </summary>
45717 public override void OutputXml(XmlWriter writer)
45718 {
45719 if ((null == writer))
45720 {
45721 throw new ArgumentNullException("writer");
45722 }
45723 writer.WriteStartElement("SelfRegModules", "http://wixtoolset.org/schemas/v4/wxs");
45724 base.OutputXml(writer);
45725 writer.WriteEndElement();
45726 }
45727 }
45728
45729 /// <summary>
45730 /// Registers COM+ applications. The condition for this action may be specified in the element's inner text.
45731 /// </summary>
45732 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45733 public class RegisterComPlus : ActionSequenceType, ISchemaElement
45734 {
45735
45736 /// <summary>
45737 /// Processes this element and all child elements into an XmlWriter.
45738 /// </summary>
45739 public override void OutputXml(XmlWriter writer)
45740 {
45741 if ((null == writer))
45742 {
45743 throw new ArgumentNullException("writer");
45744 }
45745 writer.WriteStartElement("RegisterComPlus", "http://wixtoolset.org/schemas/v4/wxs");
45746 base.OutputXml(writer);
45747 writer.WriteEndElement();
45748 }
45749 }
45750
45751 /// <summary>
45752 /// Registers a service for the system. The condition for this action may be specified in the element's inner text.
45753 /// </summary>
45754 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45755 public class InstallServices : ActionSequenceType, ISchemaElement
45756 {
45757
45758 /// <summary>
45759 /// Processes this element and all child elements into an XmlWriter.
45760 /// </summary>
45761 public override void OutputXml(XmlWriter writer)
45762 {
45763 if ((null == writer))
45764 {
45765 throw new ArgumentNullException("writer");
45766 }
45767 writer.WriteStartElement("InstallServices", "http://wixtoolset.org/schemas/v4/wxs");
45768 base.OutputXml(writer);
45769 writer.WriteEndElement();
45770 }
45771 }
45772
45773 /// <summary>
45774 /// Starts system services. The condition for this action may be specified in the element's inner text.
45775 /// </summary>
45776 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45777 public class StartServices : ActionSequenceType, ISchemaElement
45778 {
45779
45780 /// <summary>
45781 /// Processes this element and all child elements into an XmlWriter.
45782 /// </summary>
45783 public override void OutputXml(XmlWriter writer)
45784 {
45785 if ((null == writer))
45786 {
45787 throw new ArgumentNullException("writer");
45788 }
45789 writer.WriteStartElement("StartServices", "http://wixtoolset.org/schemas/v4/wxs");
45790 base.OutputXml(writer);
45791 writer.WriteEndElement();
45792 }
45793 }
45794
45795 /// <summary>
45796 /// Registers the user information with the installer to identify the user of a product. The condition for this action may be specified in the element's inner text.
45797 /// </summary>
45798 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45799 public class RegisterUser : ActionSequenceType, ISchemaElement
45800 {
45801
45802 /// <summary>
45803 /// Processes this element and all child elements into an XmlWriter.
45804 /// </summary>
45805 public override void OutputXml(XmlWriter writer)
45806 {
45807 if ((null == writer))
45808 {
45809 throw new ArgumentNullException("writer");
45810 }
45811 writer.WriteStartElement("RegisterUser", "http://wixtoolset.org/schemas/v4/wxs");
45812 base.OutputXml(writer);
45813 writer.WriteEndElement();
45814 }
45815 }
45816
45817 /// <summary>
45818 /// Registers the product information with the installer. The condition for this action may be specified in the element's inner text.
45819 /// </summary>
45820 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45821 public class RegisterProduct : ActionSequenceType, ISchemaElement
45822 {
45823
45824 /// <summary>
45825 /// Processes this element and all child elements into an XmlWriter.
45826 /// </summary>
45827 public override void OutputXml(XmlWriter writer)
45828 {
45829 if ((null == writer))
45830 {
45831 throw new ArgumentNullException("writer");
45832 }
45833 writer.WriteStartElement("RegisterProduct", "http://wixtoolset.org/schemas/v4/wxs");
45834 base.OutputXml(writer);
45835 writer.WriteEndElement();
45836 }
45837 }
45838
45839 /// <summary>
45840 /// Manages the advertisement of the components from the PublishComponent table. The condition for this action may be specified in the element's inner text.
45841 /// </summary>
45842 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45843 public class PublishComponents : ActionSequenceType, ISchemaElement
45844 {
45845
45846 /// <summary>
45847 /// Processes this element and all child elements into an XmlWriter.
45848 /// </summary>
45849 public override void OutputXml(XmlWriter writer)
45850 {
45851 if ((null == writer))
45852 {
45853 throw new ArgumentNullException("writer");
45854 }
45855 writer.WriteStartElement("PublishComponents", "http://wixtoolset.org/schemas/v4/wxs");
45856 base.OutputXml(writer);
45857 writer.WriteEndElement();
45858 }
45859 }
45860
45861 /// <summary>
45862 /// Manages the advertisement of CLR and Win32 assemblies. The condition for this action may be specified in the element's inner text.
45863 /// </summary>
45864 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45865 public class MsiPublishAssemblies : ActionSequenceType, ISchemaElement
45866 {
45867
45868 /// <summary>
45869 /// Processes this element and all child elements into an XmlWriter.
45870 /// </summary>
45871 public override void OutputXml(XmlWriter writer)
45872 {
45873 if ((null == writer))
45874 {
45875 throw new ArgumentNullException("writer");
45876 }
45877 writer.WriteStartElement("MsiPublishAssemblies", "http://wixtoolset.org/schemas/v4/wxs");
45878 base.OutputXml(writer);
45879 writer.WriteEndElement();
45880 }
45881 }
45882
45883 /// <summary>
45884 /// Writes each feature's state into the system registry. The condition for this action may be specified in the element's inner text.
45885 /// </summary>
45886 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45887 public class PublishFeatures : ActionSequenceType, ISchemaElement
45888 {
45889
45890 /// <summary>
45891 /// Processes this element and all child elements into an XmlWriter.
45892 /// </summary>
45893 public override void OutputXml(XmlWriter writer)
45894 {
45895 if ((null == writer))
45896 {
45897 throw new ArgumentNullException("writer");
45898 }
45899 writer.WriteStartElement("PublishFeatures", "http://wixtoolset.org/schemas/v4/wxs");
45900 base.OutputXml(writer);
45901 writer.WriteEndElement();
45902 }
45903 }
45904
45905 /// <summary>
45906 /// Manages the advertisement of the product information with the system. The condition for this action may be specified in the element's inner text.
45907 /// </summary>
45908 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45909 public class PublishProduct : ActionSequenceType, ISchemaElement
45910 {
45911
45912 /// <summary>
45913 /// Processes this element and all child elements into an XmlWriter.
45914 /// </summary>
45915 public override void OutputXml(XmlWriter writer)
45916 {
45917 if ((null == writer))
45918 {
45919 throw new ArgumentNullException("writer");
45920 }
45921 writer.WriteStartElement("PublishProduct", "http://wixtoolset.org/schemas/v4/wxs");
45922 base.OutputXml(writer);
45923 writer.WriteEndElement();
45924 }
45925 }
45926
45927 /// <summary>
45928 /// Marks the end of a sequence of actions that change the system. The condition for this action may be specified in the element's inner text.
45929 /// </summary>
45930 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45931 public class InstallFinalize : ActionSequenceType, ISchemaElement
45932 {
45933
45934 /// <summary>
45935 /// Processes this element and all child elements into an XmlWriter.
45936 /// </summary>
45937 public override void OutputXml(XmlWriter writer)
45938 {
45939 if ((null == writer))
45940 {
45941 throw new ArgumentNullException("writer");
45942 }
45943 writer.WriteStartElement("InstallFinalize", "http://wixtoolset.org/schemas/v4/wxs");
45944 base.OutputXml(writer);
45945 writer.WriteEndElement();
45946 }
45947 }
45948
45949 /// <summary>
45950 /// Uses file signatures to search for existing versions of products. The AppSearch action may use this information to determine where upgrades are to be installed. The AppSearch action can also be used to set a property to the existing value of an registry or .ini file entry. AppSearch should be authored into the InstallUISequence table and InstallExecuteSequence table. The installer prevents The AppSearch action from running in the InstallExecuteSequence sequence if the action has already run in InstallUISequence sequence. The AppSearch action searches for file signatures using the CompLocator table first, the RegLocator table next, then the IniLocator table, and finally the DrLocator table. The condition for this action may be specified in the element's inner text.
45951 /// </summary>
45952 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45953 public class AppSearch : ActionModuleSequenceType, ISchemaElement
45954 {
45955
45956 /// <summary>
45957 /// Processes this element and all child elements into an XmlWriter.
45958 /// </summary>
45959 public override void OutputXml(XmlWriter writer)
45960 {
45961 if ((null == writer))
45962 {
45963 throw new ArgumentNullException("writer");
45964 }
45965 writer.WriteStartElement("AppSearch", "http://wixtoolset.org/schemas/v4/wxs");
45966 base.OutputXml(writer);
45967 writer.WriteEndElement();
45968 }
45969 }
45970
45971 /// <summary>
45972 /// Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed. The CCPSearch action should be authored into the InstallUISequence table and InstallExecuteSequence table. The installer prevents the CCPSearch action from running in the InstallExecuteSequence sequence if the action has already run in InstallUISequence sequence. The CCPSearch action must come before the RMCCPSearch action. The condition for this action may be specified in the element's inner text.
45973 /// </summary>
45974 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45975 public class CCPSearch : ActionModuleSequenceType, ISchemaElement
45976 {
45977
45978 /// <summary>
45979 /// Processes this element and all child elements into an XmlWriter.
45980 /// </summary>
45981 public override void OutputXml(XmlWriter writer)
45982 {
45983 if ((null == writer))
45984 {
45985 throw new ArgumentNullException("writer");
45986 }
45987 writer.WriteStartElement("CCPSearch", "http://wixtoolset.org/schemas/v4/wxs");
45988 base.OutputXml(writer);
45989 writer.WriteEndElement();
45990 }
45991 }
45992
45993 /// <summary>
45994 /// Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed. The RMCCPSearch action should be authored into the InstallUISequence table and InstallExecuteSequence table. The installer prevents RMCCPSearch from running in the InstallExecuteSequence sequence if the action has already run in InstallUISequence sequence. The RMCCPSearch action requires the CCP_DRIVE property to be set to the root path on the removable volume that has the installation for any of the qualifying products. The condition for this action may be specified in the element's inner text.
45995 /// </summary>
45996 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45997 public class RMCCPSearch : ActionModuleSequenceType, ISchemaElement
45998 {
45999
46000 /// <summary>
46001 /// Processes this element and all child elements into an XmlWriter.
46002 /// </summary>
46003 public override void OutputXml(XmlWriter writer)
46004 {
46005 if ((null == writer))
46006 {
46007 throw new ArgumentNullException("writer");
46008 }
46009 writer.WriteStartElement("RMCCPSearch", "http://wixtoolset.org/schemas/v4/wxs");
46010 base.OutputXml(writer);
46011 writer.WriteEndElement();
46012 }
46013 }
46014
46015 /// <summary>
46016 /// Queries the LaunchCondition table and evaluates each conditional statement recorded there. If any of these conditional statements fail, an error message is displayed to the user and the installation is terminated. The LaunchConditions action is optional. This action is normally the first in the sequence, but the AppSearch Action may be sequenced before the LaunchConditions action. If there are launch conditions that do not apply to all installation modes, the appropriate installation mode property should be used in a conditional expression in the appropriate sequence table. The condition for this action may be specified in the element's inner text.
46017 /// </summary>
46018 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
46019 public class LaunchConditions : ActionModuleSequenceType, ISchemaElement
46020 {
46021
46022 /// <summary>
46023 /// Processes this element and all child elements into an XmlWriter.
46024 /// </summary>
46025 public override void OutputXml(XmlWriter writer)
46026 {
46027 if ((null == writer))
46028 {
46029 throw new ArgumentNullException("writer");
46030 }
46031 writer.WriteStartElement("LaunchConditions", "http://wixtoolset.org/schemas/v4/wxs");
46032 base.OutputXml(writer);
46033 writer.WriteEndElement();
46034 }
46035 }
46036
46037 /// <summary>
46038 /// Runs through each record of the Upgrade table in sequence and compares the upgrade code, product version, and language in each row to products installed on the system. When FindRelatedProducts detects a correspondence between the upgrade information and an installed product, it appends the product code to the property specified in the ActionProperty column of the UpgradeTable. The FindRelatedProducts action only runs the first time the product is installed. The FindRelatedProducts action does not run during maintenance mode or uninstallation. FindRelatedProducts should be authored into the InstallUISequence table and InstallExecuteSequence tables. The installer prevents FindRelatedProducts from running in InstallExecuteSequence if the action has already run in InstallUISequence. The FindRelatedProducts action must come before the MigrateFeatureStates action and the RemoveExistingProducts action. The condition for this action may be specified in the element's inner text.
46039 /// </summary>
46040 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
46041 public class FindRelatedProducts : ActionModuleSequenceType, ISchemaElement
46042 {
46043
46044 /// <summary>
46045 /// Processes this element and all child elements into an XmlWriter.
46046 /// </summary>
46047 public override void OutputXml(XmlWriter writer)
46048 {
46049 if ((null == writer))
46050 {
46051 throw new ArgumentNullException("writer");
46052 }
46053 writer.WriteStartElement("FindRelatedProducts", "http://wixtoolset.org/schemas/v4/wxs");
46054 base.OutputXml(writer);
46055 writer.WriteEndElement();
46056 }
46057 }
46058
46059 /// <summary>
46060 /// Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize.
46061 /// </summary>
46062 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
46063 public class InstallExecute : ActionModuleSequenceType, ISchemaElement
46064 {
46065
46066 /// <summary>
46067 /// Processes this element and all child elements into an XmlWriter.
46068 /// </summary>
46069 public override void OutputXml(XmlWriter writer)
46070 {
46071 if ((null == writer))
46072 {
46073 throw new ArgumentNullException("writer");
46074 }
46075 writer.WriteStartElement("InstallExecute", "http://wixtoolset.org/schemas/v4/wxs");
46076 base.OutputXml(writer);
46077 writer.WriteEndElement();
46078 }
46079 }
46080
46081 /// <summary>
46082 /// Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action. Should only be used after InstallExecute. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize.
46083 /// </summary>
46084 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
46085 public class InstallExecuteAgain : ActionModuleSequenceType, ISchemaElement
46086 {
46087
46088 /// <summary>
46089 /// Processes this element and all child elements into an XmlWriter.
46090 /// </summary>
46091 public override void OutputXml(XmlWriter writer)
46092 {
46093 if ((null == writer))
46094 {
46095 throw new ArgumentNullException("writer");
46096 }
46097 writer.WriteStartElement("InstallExecuteAgain", "http://wixtoolset.org/schemas/v4/wxs");
46098 base.OutputXml(writer);
46099 writer.WriteEndElement();
46100 }
46101 }
46102
46103 /// <summary>
46104 /// Disables rollback for the remainder of the installation. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize.
46105 /// </summary>
46106 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
46107 public class DisableRollback : ActionModuleSequenceType, ISchemaElement
46108 {
46109
46110 /// <summary>
46111 /// Processes this element and all child elements into an XmlWriter.
46112 /// </summary>
46113 public override void OutputXml(XmlWriter writer)
46114 {
46115 if ((null == writer))
46116 {
46117 throw new ArgumentNullException("writer");
46118 }
46119 writer.WriteStartElement("DisableRollback", "http://wixtoolset.org/schemas/v4/wxs");
46120 base.OutputXml(writer);
46121 writer.WriteEndElement();
46122 }
46123 }
46124
46125 /// <summary>
46126 /// Goes through the product codes listed in the ActionProperty column of the Upgrade table and removes the products in sequence. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize.
46127 /// </summary>
46128 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
46129 public class RemoveExistingProducts : ActionModuleSequenceType, ISchemaElement
46130 {
46131
46132 /// <summary>
46133 /// Processes this element and all child elements into an XmlWriter.
46134 /// </summary>
46135 public override void OutputXml(XmlWriter writer)
46136 {
46137 if ((null == writer))
46138 {
46139 throw new ArgumentNullException("writer");
46140 }
46141 writer.WriteStartElement("RemoveExistingProducts", "http://wixtoolset.org/schemas/v4/wxs");
46142 base.OutputXml(writer);
46143 writer.WriteEndElement();
46144 }
46145 }
46146
46147 /// <summary>
46148 /// Prompts the user to restart the system at the end of installation. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize.
46149 /// </summary>
46150 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
46151 public class ScheduleReboot : ActionModuleSequenceType, ISchemaElement
46152 {
46153
46154 /// <summary>
46155 /// Processes this element and all child elements into an XmlWriter.
46156 /// </summary>
46157 public override void OutputXml(XmlWriter writer)
46158 {
46159 if ((null == writer))
46160 {
46161 throw new ArgumentNullException("writer");
46162 }
46163 writer.WriteStartElement("ScheduleReboot", "http://wixtoolset.org/schemas/v4/wxs");
46164 base.OutputXml(writer);
46165 writer.WriteEndElement();
46166 }
46167 }
46168
46169 /// <summary>
46170 /// Prompts the user for a restart of the system during the installation. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize.
46171 /// </summary>
46172 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
46173 public class ForceReboot : ActionModuleSequenceType, ISchemaElement
46174 {
46175
46176 /// <summary>
46177 /// Processes this element and all child elements into an XmlWriter.
46178 /// </summary>
46179 public override void OutputXml(XmlWriter writer)
46180 {
46181 if ((null == writer))
46182 {
46183 throw new ArgumentNullException("writer");
46184 }
46185 writer.WriteStartElement("ForceReboot", "http://wixtoolset.org/schemas/v4/wxs");
46186 base.OutputXml(writer);
46187 writer.WriteEndElement();
46188 }
46189 }
46190
46191 /// <summary>
46192 /// Determines the location of the source and sets the SourceDir property if the source has not been resolved yet. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize.
46193 /// </summary>
46194 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
46195 public class ResolveSource : ActionModuleSequenceType, ISchemaElement
46196 {
46197
46198 /// <summary>
46199 /// Processes this element and all child elements into an XmlWriter.
46200 /// </summary>
46201 public override void OutputXml(XmlWriter writer)
46202 {
46203 if ((null == writer))
46204 {
46205 throw new ArgumentNullException("writer");
46206 }
46207 writer.WriteStartElement("ResolveSource", "http://wixtoolset.org/schemas/v4/wxs");
46208 base.OutputXml(writer);
46209 writer.WriteEndElement();
46210 }
46211 }
46212
46213 /// <summary>
46214 /// Use to sequence a custom action.
46215 /// </summary>
46216 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
46217 public class Custom : ISchemaElement, ISetAttributes
46218 {
46219
46220 private string actionField;
46221
46222 private bool actionFieldSet;
46223
46224 private ExitType onExitField;
46225
46226 private bool onExitFieldSet;
46227
46228 private string beforeField;
46229
46230 private bool beforeFieldSet;
46231
46232 private string afterField;
46233
46234 private bool afterFieldSet;
46235
46236 private YesNoType overridableField;
46237
46238 private bool overridableFieldSet;
46239
46240 private int sequenceField;
46241
46242 private bool sequenceFieldSet;
46243
46244 private string contentField;
46245
46246 private bool contentFieldSet;
46247
46248 private ISchemaElement parentElement;
46249
46250 /// <summary>
46251 /// The action to which the Custom element applies.
46252 /// </summary>
46253 public string Action
46254 {
46255 get
46256 {
46257 return this.actionField;
46258 }
46259 set
46260 {
46261 this.actionFieldSet = true;
46262 this.actionField = value;
46263 }
46264 }
46265
46266 /// <summary>
46267 /// Mutually exclusive with Before, After, and Sequence attributes
46268 /// </summary>
46269 public ExitType OnExit
46270 {
46271 get
46272 {
46273 return this.onExitField;
46274 }
46275 set
46276 {
46277 this.onExitFieldSet = true;
46278 this.onExitField = value;
46279 }
46280 }
46281
46282 /// <summary>
46283 /// The name of the standard or custom action before which this action should be performed. Mutually exclusive with OnExit, After, and Sequence attributes
46284 /// </summary>
46285 public string Before
46286 {
46287 get
46288 {
46289 return this.beforeField;
46290 }
46291 set
46292 {
46293 this.beforeFieldSet = true;
46294 this.beforeField = value;
46295 }
46296 }
46297
46298 /// <summary>
46299 /// The name of the standard or custom action after which this action should be performed. Mutually exclusive with Before, OnExit, and Sequence attributes
46300 /// </summary>
46301 public string After
46302 {
46303 get
46304 {
46305 return this.afterField;
46306 }
46307 set
46308 {
46309 this.afterFieldSet = true;
46310 this.afterField = value;
46311 }
46312 }
46313
46314 /// <summary>
46315 /// If "yes", the sequencing of this action may be overridden by sequencing elsewhere.
46316 /// </summary>
46317 public YesNoType Overridable
46318 {
46319 get
46320 {
46321 return this.overridableField;
46322 }
46323 set
46324 {
46325 this.overridableFieldSet = true;
46326 this.overridableField = value;
46327 }
46328 }
46329
46330 /// <summary>
46331 /// The sequence number for this action. Mutually exclusive with Before, After, and OnExit attributes
46332 /// </summary>
46333 public int Sequence
46334 {
46335 get
46336 {
46337 return this.sequenceField;
46338 }
46339 set
46340 {
46341 this.sequenceFieldSet = true;
46342 this.sequenceField = value;
46343 }
46344 }
46345
46346 /// <summary>
46347 /// Text node specifies the condition of the action.
46348 /// </summary>
46349 public string Content
46350 {
46351 get
46352 {
46353 return this.contentField;
46354 }
46355 set
46356 {
46357 this.contentFieldSet = true;
46358 this.contentField = value;
46359 }
46360 }
46361
46362 public virtual ISchemaElement ParentElement
46363 {
46364 get
46365 {
46366 return this.parentElement;
46367 }
46368 set
46369 {
46370 this.parentElement = value;
46371 }
46372 }
46373
46374 /// <summary>
46375 /// Processes this element and all child elements into an XmlWriter.
46376 /// </summary>
46377 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
46378 public virtual void OutputXml(XmlWriter writer)
46379 {
46380 if ((null == writer))
46381 {
46382 throw new ArgumentNullException("writer");
46383 }
46384 writer.WriteStartElement("Custom", "http://wixtoolset.org/schemas/v4/wxs");
46385 if (this.actionFieldSet)
46386 {
46387 writer.WriteAttributeString("Action", this.actionField);
46388 }
46389 if (this.onExitFieldSet)
46390 {
46391 if ((this.onExitField == ExitType.success))
46392 {
46393 writer.WriteAttributeString("OnExit", "success");
46394 }
46395 if ((this.onExitField == ExitType.cancel))
46396 {
46397 writer.WriteAttributeString("OnExit", "cancel");
46398 }
46399 if ((this.onExitField == ExitType.error))
46400 {
46401 writer.WriteAttributeString("OnExit", "error");
46402 }
46403 if ((this.onExitField == ExitType.suspend))
46404 {
46405 writer.WriteAttributeString("OnExit", "suspend");
46406 }
46407 }
46408 if (this.beforeFieldSet)
46409 {
46410 writer.WriteAttributeString("Before", this.beforeField);
46411 }
46412 if (this.afterFieldSet)
46413 {
46414 writer.WriteAttributeString("After", this.afterField);
46415 }
46416 if (this.overridableFieldSet)
46417 {
46418 if ((this.overridableField == YesNoType.no))
46419 {
46420 writer.WriteAttributeString("Overridable", "no");
46421 }
46422 if ((this.overridableField == YesNoType.yes))
46423 {
46424 writer.WriteAttributeString("Overridable", "yes");
46425 }
46426 }
46427 if (this.sequenceFieldSet)
46428 {
46429 writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture));
46430 }
46431 if (this.contentFieldSet)
46432 {
46433 writer.WriteString(this.contentField);
46434 }
46435 writer.WriteEndElement();
46436 }
46437
46438 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
46439 void ISetAttributes.SetAttribute(string name, string value)
46440 {
46441 if (String.IsNullOrEmpty(name))
46442 {
46443 throw new ArgumentNullException("name");
46444 }
46445 if (("Action" == name))
46446 {
46447 this.actionField = value;
46448 this.actionFieldSet = true;
46449 }
46450 if (("OnExit" == name))
46451 {
46452 this.onExitField = Enums.ParseExitType(value);
46453 this.onExitFieldSet = true;
46454 }
46455 if (("Before" == name))
46456 {
46457 this.beforeField = value;
46458 this.beforeFieldSet = true;
46459 }
46460 if (("After" == name))
46461 {
46462 this.afterField = value;
46463 this.afterFieldSet = true;
46464 }
46465 if (("Overridable" == name))
46466 {
46467 this.overridableField = Enums.ParseYesNoType(value);
46468 this.overridableFieldSet = true;
46469 }
46470 if (("Sequence" == name))
46471 {
46472 this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
46473 this.sequenceFieldSet = true;
46474 }
46475 if (("Content" == name))
46476 {
46477 this.contentField = value;
46478 this.contentFieldSet = true;
46479 }
46480 }
46481 }
46482
46483 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
46484 public class Show : ISchemaElement, ISetAttributes
46485 {
46486
46487 private string dialogField;
46488
46489 private bool dialogFieldSet;
46490
46491 private ExitType onExitField;
46492
46493 private bool onExitFieldSet;
46494
46495 private string beforeField;
46496
46497 private bool beforeFieldSet;
46498
46499 private string afterField;
46500
46501 private bool afterFieldSet;
46502
46503 private YesNoType overridableField;
46504
46505 private bool overridableFieldSet;
46506
46507 private int sequenceField;
46508
46509 private bool sequenceFieldSet;
46510
46511 private string contentField;
46512
46513 private bool contentFieldSet;
46514
46515 private ISchemaElement parentElement;
46516
46517 public string Dialog
46518 {
46519 get
46520 {
46521 return this.dialogField;
46522 }
46523 set
46524 {
46525 this.dialogFieldSet = true;
46526 this.dialogField = value;
46527 }
46528 }
46529
46530 /// <summary>
46531 /// mutually exclusive with Before, After, and Sequence attributes
46532 /// </summary>
46533 public ExitType OnExit
46534 {
46535 get
46536 {
46537 return this.onExitField;
46538 }
46539 set
46540 {
46541 this.onExitFieldSet = true;
46542 this.onExitField = value;
46543 }
46544 }
46545
46546 public string Before
46547 {
46548 get
46549 {
46550 return this.beforeField;
46551 }
46552 set
46553 {
46554 this.beforeFieldSet = true;
46555 this.beforeField = value;
46556 }
46557 }
46558
46559 public string After
46560 {
46561 get
46562 {
46563 return this.afterField;
46564 }
46565 set
46566 {
46567 this.afterFieldSet = true;
46568 this.afterField = value;
46569 }
46570 }
46571
46572 /// <summary>
46573 /// If "yes", the sequencing of this dialog may be overridden by sequencing elsewhere.
46574 /// </summary>
46575 public YesNoType Overridable
46576 {
46577 get
46578 {
46579 return this.overridableField;
46580 }
46581 set
46582 {
46583 this.overridableFieldSet = true;
46584 this.overridableField = value;
46585 }
46586 }
46587
46588 public int Sequence
46589 {
46590 get
46591 {
46592 return this.sequenceField;
46593 }
46594 set
46595 {
46596 this.sequenceFieldSet = true;
46597 this.sequenceField = value;
46598 }
46599 }
46600
46601 public string Content
46602 {
46603 get
46604 {
46605 return this.contentField;
46606 }
46607 set
46608 {
46609 this.contentFieldSet = true;
46610 this.contentField = value;
46611 }
46612 }
46613
46614 public virtual ISchemaElement ParentElement
46615 {
46616 get
46617 {
46618 return this.parentElement;
46619 }
46620 set
46621 {
46622 this.parentElement = value;
46623 }
46624 }
46625
46626 /// <summary>
46627 /// Processes this element and all child elements into an XmlWriter.
46628 /// </summary>
46629 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
46630 public virtual void OutputXml(XmlWriter writer)
46631 {
46632 if ((null == writer))
46633 {
46634 throw new ArgumentNullException("writer");
46635 }
46636 writer.WriteStartElement("Show", "http://wixtoolset.org/schemas/v4/wxs");
46637 if (this.dialogFieldSet)
46638 {
46639 writer.WriteAttributeString("Dialog", this.dialogField);
46640 }
46641 if (this.onExitFieldSet)
46642 {
46643 if ((this.onExitField == ExitType.success))
46644 {
46645 writer.WriteAttributeString("OnExit", "success");
46646 }
46647 if ((this.onExitField == ExitType.cancel))
46648 {
46649 writer.WriteAttributeString("OnExit", "cancel");
46650 }
46651 if ((this.onExitField == ExitType.error))
46652 {
46653 writer.WriteAttributeString("OnExit", "error");
46654 }
46655 if ((this.onExitField == ExitType.suspend))
46656 {
46657 writer.WriteAttributeString("OnExit", "suspend");
46658 }
46659 }
46660 if (this.beforeFieldSet)
46661 {
46662 writer.WriteAttributeString("Before", this.beforeField);
46663 }
46664 if (this.afterFieldSet)
46665 {
46666 writer.WriteAttributeString("After", this.afterField);
46667 }
46668 if (this.overridableFieldSet)
46669 {
46670 if ((this.overridableField == YesNoType.no))
46671 {
46672 writer.WriteAttributeString("Overridable", "no");
46673 }
46674 if ((this.overridableField == YesNoType.yes))
46675 {
46676 writer.WriteAttributeString("Overridable", "yes");
46677 }
46678 }
46679 if (this.sequenceFieldSet)
46680 {
46681 writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture));
46682 }
46683 if (this.contentFieldSet)
46684 {
46685 writer.WriteString(this.contentField);
46686 }
46687 writer.WriteEndElement();
46688 }
46689
46690 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
46691 void ISetAttributes.SetAttribute(string name, string value)
46692 {
46693 if (String.IsNullOrEmpty(name))
46694 {
46695 throw new ArgumentNullException("name");
46696 }
46697 if (("Dialog" == name))
46698 {
46699 this.dialogField = value;
46700 this.dialogFieldSet = true;
46701 }
46702 if (("OnExit" == name))
46703 {
46704 this.onExitField = Enums.ParseExitType(value);
46705 this.onExitFieldSet = true;
46706 }
46707 if (("Before" == name))
46708 {
46709 this.beforeField = value;
46710 this.beforeFieldSet = true;
46711 }
46712 if (("After" == name))
46713 {
46714 this.afterField = value;
46715 this.afterFieldSet = true;
46716 }
46717 if (("Overridable" == name))
46718 {
46719 this.overridableField = Enums.ParseYesNoType(value);
46720 this.overridableFieldSet = true;
46721 }
46722 if (("Sequence" == name))
46723 {
46724 this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
46725 this.sequenceFieldSet = true;
46726 }
46727 if (("Content" == name))
46728 {
46729 this.contentField = value;
46730 this.contentFieldSet = true;
46731 }
46732 }
46733 }
46734
46735 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
46736 public class InstallUISequence : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
46737 {
46738
46739 private ElementCollection children;
46740
46741 private ISchemaElement parentElement;
46742
46743 public InstallUISequence()
46744 {
46745 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
46746 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Custom)));
46747 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Show)));
46748 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ScheduleReboot)));
46749 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(LaunchConditions)));
46750 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FindRelatedProducts)));
46751 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppSearch)));
46752 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CCPSearch)));
46753 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RMCCPSearch)));
46754 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ValidateProductID)));
46755 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostInitialize)));
46756 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileCost)));
46757 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(IsolateComponents)));
46758 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ResolveSource)));
46759 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostFinalize)));
46760 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MigrateFeatureStates)));
46761 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ExecuteAction)));
46762 this.children = childCollection0;
46763 }
46764
46765 public virtual IEnumerable Children
46766 {
46767 get
46768 {
46769 return this.children;
46770 }
46771 }
46772
46773 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
46774 public virtual IEnumerable this[System.Type childType]
46775 {
46776 get
46777 {
46778 return this.children.Filter(childType);
46779 }
46780 }
46781
46782 public virtual ISchemaElement ParentElement
46783 {
46784 get
46785 {
46786 return this.parentElement;
46787 }
46788 set
46789 {
46790 this.parentElement = value;
46791 }
46792 }
46793
46794 public virtual void AddChild(ISchemaElement child)
46795 {
46796 if ((null == child))
46797 {
46798 throw new ArgumentNullException("child");
46799 }
46800 this.children.AddElement(child);
46801 child.ParentElement = this;
46802 }
46803
46804 public virtual void RemoveChild(ISchemaElement child)
46805 {
46806 if ((null == child))
46807 {
46808 throw new ArgumentNullException("child");
46809 }
46810 this.children.RemoveElement(child);
46811 child.ParentElement = null;
46812 }
46813
46814 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
46815 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
46816 ISchemaElement ICreateChildren.CreateChild(string childName)
46817 {
46818 if (String.IsNullOrEmpty(childName))
46819 {
46820 throw new ArgumentNullException("childName");
46821 }
46822 ISchemaElement childValue = null;
46823 if (("Custom" == childName))
46824 {
46825 childValue = new Custom();
46826 }
46827 if (("Show" == childName))
46828 {
46829 childValue = new Show();
46830 }
46831 if (("ScheduleReboot" == childName))
46832 {
46833 childValue = new ScheduleReboot();
46834 }
46835 if (("LaunchConditions" == childName))
46836 {
46837 childValue = new LaunchConditions();
46838 }
46839 if (("FindRelatedProducts" == childName))
46840 {
46841 childValue = new FindRelatedProducts();
46842 }
46843 if (("AppSearch" == childName))
46844 {
46845 childValue = new AppSearch();
46846 }
46847 if (("CCPSearch" == childName))
46848 {
46849 childValue = new CCPSearch();
46850 }
46851 if (("RMCCPSearch" == childName))
46852 {
46853 childValue = new RMCCPSearch();
46854 }
46855 if (("ValidateProductID" == childName))
46856 {
46857 childValue = new ValidateProductID();
46858 }
46859 if (("CostInitialize" == childName))
46860 {
46861 childValue = new CostInitialize();
46862 }
46863 if (("FileCost" == childName))
46864 {
46865 childValue = new FileCost();
46866 }
46867 if (("IsolateComponents" == childName))
46868 {
46869 childValue = new IsolateComponents();
46870 }
46871 if (("ResolveSource" == childName))
46872 {
46873 childValue = new ResolveSource();
46874 }
46875 if (("CostFinalize" == childName))
46876 {
46877 childValue = new CostFinalize();
46878 }
46879 if (("MigrateFeatureStates" == childName))
46880 {
46881 childValue = new MigrateFeatureStates();
46882 }
46883 if (("ExecuteAction" == childName))
46884 {
46885 childValue = new ExecuteAction();
46886 }
46887 if ((null == childValue))
46888 {
46889 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
46890 }
46891 return childValue;
46892 }
46893
46894 /// <summary>
46895 /// Processes this element and all child elements into an XmlWriter.
46896 /// </summary>
46897 public virtual void OutputXml(XmlWriter writer)
46898 {
46899 if ((null == writer))
46900 {
46901 throw new ArgumentNullException("writer");
46902 }
46903 writer.WriteStartElement("InstallUISequence", "http://wixtoolset.org/schemas/v4/wxs");
46904 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
46905 {
46906 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
46907 childElement.OutputXml(writer);
46908 }
46909 writer.WriteEndElement();
46910 }
46911
46912 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
46913 void ISetAttributes.SetAttribute(string name, string value)
46914 {
46915 if (String.IsNullOrEmpty(name))
46916 {
46917 throw new ArgumentNullException("name");
46918 }
46919 }
46920 }
46921
46922 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
46923 public class InstallExecuteSequence : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
46924 {
46925
46926 private ElementCollection children;
46927
46928 private ISchemaElement parentElement;
46929
46930 public InstallExecuteSequence()
46931 {
46932 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
46933 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Custom)));
46934 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ScheduleReboot)));
46935 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ForceReboot)));
46936 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ResolveSource)));
46937 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(LaunchConditions)));
46938 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FindRelatedProducts)));
46939 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppSearch)));
46940 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CCPSearch)));
46941 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RMCCPSearch)));
46942 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ValidateProductID)));
46943 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostInitialize)));
46944 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileCost)));
46945 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(IsolateComponents)));
46946 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostFinalize)));
46947 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SetODBCFolders)));
46948 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MigrateFeatureStates)));
46949 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallValidate)));
46950 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallInitialize)));
46951 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AllocateRegistrySpace)));
46952 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ProcessComponents)));
46953 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnpublishComponents)));
46954 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnpublishFeatures)));
46955 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(StopServices)));
46956 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DeleteServices)));
46957 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterComPlus)));
46958 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SelfUnregModules)));
46959 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterTypeLibraries)));
46960 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveODBC)));
46961 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterFonts)));
46962 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveRegistryValues)));
46963 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterClassInfo)));
46964 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterExtensionInfo)));
46965 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterProgIdInfo)));
46966 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterMIMEInfo)));
46967 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveIniValues)));
46968 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveShortcuts)));
46969 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveEnvironmentStrings)));
46970 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveDuplicateFiles)));
46971 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveFiles)));
46972 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveFolders)));
46973 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CreateFolders)));
46974 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MoveFiles)));
46975 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFiles)));
46976 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DuplicateFiles)));
46977 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFiles)));
46978 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BindImage)));
46979 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CreateShortcuts)));
46980 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterClassInfo)));
46981 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterExtensionInfo)));
46982 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterProgIdInfo)));
46983 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterMIMEInfo)));
46984 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WriteRegistryValues)));
46985 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WriteIniValues)));
46986 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WriteEnvironmentStrings)));
46987 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterFonts)));
46988 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallODBC)));
46989 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterTypeLibraries)));
46990 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SelfRegModules)));
46991 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterComPlus)));
46992 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallServices)));
46993 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(StartServices)));
46994 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterUser)));
46995 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterProduct)));
46996 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishComponents)));
46997 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishFeatures)));
46998 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishProduct)));
46999 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFinalize)));
47000 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveExistingProducts)));
47001 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DisableRollback)));
47002 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallExecute)));
47003 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallExecuteAgain)));
47004 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiPublishAssemblies)));
47005 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiUnpublishAssemblies)));
47006 this.children = childCollection0;
47007 }
47008
47009 public virtual IEnumerable Children
47010 {
47011 get
47012 {
47013 return this.children;
47014 }
47015 }
47016
47017 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
47018 public virtual IEnumerable this[System.Type childType]
47019 {
47020 get
47021 {
47022 return this.children.Filter(childType);
47023 }
47024 }
47025
47026 public virtual ISchemaElement ParentElement
47027 {
47028 get
47029 {
47030 return this.parentElement;
47031 }
47032 set
47033 {
47034 this.parentElement = value;
47035 }
47036 }
47037
47038 public virtual void AddChild(ISchemaElement child)
47039 {
47040 if ((null == child))
47041 {
47042 throw new ArgumentNullException("child");
47043 }
47044 this.children.AddElement(child);
47045 child.ParentElement = this;
47046 }
47047
47048 public virtual void RemoveChild(ISchemaElement child)
47049 {
47050 if ((null == child))
47051 {
47052 throw new ArgumentNullException("child");
47053 }
47054 this.children.RemoveElement(child);
47055 child.ParentElement = null;
47056 }
47057
47058 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
47059 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
47060 ISchemaElement ICreateChildren.CreateChild(string childName)
47061 {
47062 if (String.IsNullOrEmpty(childName))
47063 {
47064 throw new ArgumentNullException("childName");
47065 }
47066 ISchemaElement childValue = null;
47067 if (("Custom" == childName))
47068 {
47069 childValue = new Custom();
47070 }
47071 if (("ScheduleReboot" == childName))
47072 {
47073 childValue = new ScheduleReboot();
47074 }
47075 if (("ForceReboot" == childName))
47076 {
47077 childValue = new ForceReboot();
47078 }
47079 if (("ResolveSource" == childName))
47080 {
47081 childValue = new ResolveSource();
47082 }
47083 if (("LaunchConditions" == childName))
47084 {
47085 childValue = new LaunchConditions();
47086 }
47087 if (("FindRelatedProducts" == childName))
47088 {
47089 childValue = new FindRelatedProducts();
47090 }
47091 if (("AppSearch" == childName))
47092 {
47093 childValue = new AppSearch();
47094 }
47095 if (("CCPSearch" == childName))
47096 {
47097 childValue = new CCPSearch();
47098 }
47099 if (("RMCCPSearch" == childName))
47100 {
47101 childValue = new RMCCPSearch();
47102 }
47103 if (("ValidateProductID" == childName))
47104 {
47105 childValue = new ValidateProductID();
47106 }
47107 if (("CostInitialize" == childName))
47108 {
47109 childValue = new CostInitialize();
47110 }
47111 if (("FileCost" == childName))
47112 {
47113 childValue = new FileCost();
47114 }
47115 if (("IsolateComponents" == childName))
47116 {
47117 childValue = new IsolateComponents();
47118 }
47119 if (("CostFinalize" == childName))
47120 {
47121 childValue = new CostFinalize();
47122 }
47123 if (("SetODBCFolders" == childName))
47124 {
47125 childValue = new SetODBCFolders();
47126 }
47127 if (("MigrateFeatureStates" == childName))
47128 {
47129 childValue = new MigrateFeatureStates();
47130 }
47131 if (("InstallValidate" == childName))
47132 {
47133 childValue = new InstallValidate();
47134 }
47135 if (("InstallInitialize" == childName))
47136 {
47137 childValue = new InstallInitialize();
47138 }
47139 if (("AllocateRegistrySpace" == childName))
47140 {
47141 childValue = new AllocateRegistrySpace();
47142 }
47143 if (("ProcessComponents" == childName))
47144 {
47145 childValue = new ProcessComponents();
47146 }
47147 if (("UnpublishComponents" == childName))
47148 {
47149 childValue = new UnpublishComponents();
47150 }
47151 if (("UnpublishFeatures" == childName))
47152 {
47153 childValue = new UnpublishFeatures();
47154 }
47155 if (("StopServices" == childName))
47156 {
47157 childValue = new StopServices();
47158 }
47159 if (("DeleteServices" == childName))
47160 {
47161 childValue = new DeleteServices();
47162 }
47163 if (("UnregisterComPlus" == childName))
47164 {
47165 childValue = new UnregisterComPlus();
47166 }
47167 if (("SelfUnregModules" == childName))
47168 {
47169 childValue = new SelfUnregModules();
47170 }
47171 if (("UnregisterTypeLibraries" == childName))
47172 {
47173 childValue = new UnregisterTypeLibraries();
47174 }
47175 if (("RemoveODBC" == childName))
47176 {
47177 childValue = new RemoveODBC();
47178 }
47179 if (("UnregisterFonts" == childName))
47180 {
47181 childValue = new UnregisterFonts();
47182 }
47183 if (("RemoveRegistryValues" == childName))
47184 {
47185 childValue = new RemoveRegistryValues();
47186 }
47187 if (("UnregisterClassInfo" == childName))
47188 {
47189 childValue = new UnregisterClassInfo();
47190 }
47191 if (("UnregisterExtensionInfo" == childName))
47192 {
47193 childValue = new UnregisterExtensionInfo();
47194 }
47195 if (("UnregisterProgIdInfo" == childName))
47196 {
47197 childValue = new UnregisterProgIdInfo();
47198 }
47199 if (("UnregisterMIMEInfo" == childName))
47200 {
47201 childValue = new UnregisterMIMEInfo();
47202 }
47203 if (("RemoveIniValues" == childName))
47204 {
47205 childValue = new RemoveIniValues();
47206 }
47207 if (("RemoveShortcuts" == childName))
47208 {
47209 childValue = new RemoveShortcuts();
47210 }
47211 if (("RemoveEnvironmentStrings" == childName))
47212 {
47213 childValue = new RemoveEnvironmentStrings();
47214 }
47215 if (("RemoveDuplicateFiles" == childName))
47216 {
47217 childValue = new RemoveDuplicateFiles();
47218 }
47219 if (("RemoveFiles" == childName))
47220 {
47221 childValue = new RemoveFiles();
47222 }
47223 if (("RemoveFolders" == childName))
47224 {
47225 childValue = new RemoveFolders();
47226 }
47227 if (("CreateFolders" == childName))
47228 {
47229 childValue = new CreateFolders();
47230 }
47231 if (("MoveFiles" == childName))
47232 {
47233 childValue = new MoveFiles();
47234 }
47235 if (("InstallFiles" == childName))
47236 {
47237 childValue = new InstallFiles();
47238 }
47239 if (("DuplicateFiles" == childName))
47240 {
47241 childValue = new DuplicateFiles();
47242 }
47243 if (("PatchFiles" == childName))
47244 {
47245 childValue = new PatchFiles();
47246 }
47247 if (("BindImage" == childName))
47248 {
47249 childValue = new BindImage();
47250 }
47251 if (("CreateShortcuts" == childName))
47252 {
47253 childValue = new CreateShortcuts();
47254 }
47255 if (("RegisterClassInfo" == childName))
47256 {
47257 childValue = new RegisterClassInfo();
47258 }
47259 if (("RegisterExtensionInfo" == childName))
47260 {
47261 childValue = new RegisterExtensionInfo();
47262 }
47263 if (("RegisterProgIdInfo" == childName))
47264 {
47265 childValue = new RegisterProgIdInfo();
47266 }
47267 if (("RegisterMIMEInfo" == childName))
47268 {
47269 childValue = new RegisterMIMEInfo();
47270 }
47271 if (("WriteRegistryValues" == childName))
47272 {
47273 childValue = new WriteRegistryValues();
47274 }
47275 if (("WriteIniValues" == childName))
47276 {
47277 childValue = new WriteIniValues();
47278 }
47279 if (("WriteEnvironmentStrings" == childName))
47280 {
47281 childValue = new WriteEnvironmentStrings();
47282 }
47283 if (("RegisterFonts" == childName))
47284 {
47285 childValue = new RegisterFonts();
47286 }
47287 if (("InstallODBC" == childName))
47288 {
47289 childValue = new InstallODBC();
47290 }
47291 if (("RegisterTypeLibraries" == childName))
47292 {
47293 childValue = new RegisterTypeLibraries();
47294 }
47295 if (("SelfRegModules" == childName))
47296 {
47297 childValue = new SelfRegModules();
47298 }
47299 if (("RegisterComPlus" == childName))
47300 {
47301 childValue = new RegisterComPlus();
47302 }
47303 if (("InstallServices" == childName))
47304 {
47305 childValue = new InstallServices();
47306 }
47307 if (("StartServices" == childName))
47308 {
47309 childValue = new StartServices();
47310 }
47311 if (("RegisterUser" == childName))
47312 {
47313 childValue = new RegisterUser();
47314 }
47315 if (("RegisterProduct" == childName))
47316 {
47317 childValue = new RegisterProduct();
47318 }
47319 if (("PublishComponents" == childName))
47320 {
47321 childValue = new PublishComponents();
47322 }
47323 if (("PublishFeatures" == childName))
47324 {
47325 childValue = new PublishFeatures();
47326 }
47327 if (("PublishProduct" == childName))
47328 {
47329 childValue = new PublishProduct();
47330 }
47331 if (("InstallFinalize" == childName))
47332 {
47333 childValue = new InstallFinalize();
47334 }
47335 if (("RemoveExistingProducts" == childName))
47336 {
47337 childValue = new RemoveExistingProducts();
47338 }
47339 if (("DisableRollback" == childName))
47340 {
47341 childValue = new DisableRollback();
47342 }
47343 if (("InstallExecute" == childName))
47344 {
47345 childValue = new InstallExecute();
47346 }
47347 if (("InstallExecuteAgain" == childName))
47348 {
47349 childValue = new InstallExecuteAgain();
47350 }
47351 if (("MsiPublishAssemblies" == childName))
47352 {
47353 childValue = new MsiPublishAssemblies();
47354 }
47355 if (("MsiUnpublishAssemblies" == childName))
47356 {
47357 childValue = new MsiUnpublishAssemblies();
47358 }
47359 if ((null == childValue))
47360 {
47361 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
47362 }
47363 return childValue;
47364 }
47365
47366 /// <summary>
47367 /// Processes this element and all child elements into an XmlWriter.
47368 /// </summary>
47369 public virtual void OutputXml(XmlWriter writer)
47370 {
47371 if ((null == writer))
47372 {
47373 throw new ArgumentNullException("writer");
47374 }
47375 writer.WriteStartElement("InstallExecuteSequence", "http://wixtoolset.org/schemas/v4/wxs");
47376 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
47377 {
47378 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
47379 childElement.OutputXml(writer);
47380 }
47381 writer.WriteEndElement();
47382 }
47383
47384 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
47385 void ISetAttributes.SetAttribute(string name, string value)
47386 {
47387 if (String.IsNullOrEmpty(name))
47388 {
47389 throw new ArgumentNullException("name");
47390 }
47391 }
47392 }
47393
47394 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
47395 public class AdminUISequence : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
47396 {
47397
47398 private ElementCollection children;
47399
47400 private ISchemaElement parentElement;
47401
47402 public AdminUISequence()
47403 {
47404 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
47405 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Custom)));
47406 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Show)));
47407 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostInitialize)));
47408 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileCost)));
47409 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostFinalize)));
47410 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ExecuteAction)));
47411 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallValidate)));
47412 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallInitialize)));
47413 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallAdminPackage)));
47414 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFiles)));
47415 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFinalize)));
47416 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(LaunchConditions)));
47417 this.children = childCollection0;
47418 }
47419
47420 public virtual IEnumerable Children
47421 {
47422 get
47423 {
47424 return this.children;
47425 }
47426 }
47427
47428 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
47429 public virtual IEnumerable this[System.Type childType]
47430 {
47431 get
47432 {
47433 return this.children.Filter(childType);
47434 }
47435 }
47436
47437 public virtual ISchemaElement ParentElement
47438 {
47439 get
47440 {
47441 return this.parentElement;
47442 }
47443 set
47444 {
47445 this.parentElement = value;
47446 }
47447 }
47448
47449 public virtual void AddChild(ISchemaElement child)
47450 {
47451 if ((null == child))
47452 {
47453 throw new ArgumentNullException("child");
47454 }
47455 this.children.AddElement(child);
47456 child.ParentElement = this;
47457 }
47458
47459 public virtual void RemoveChild(ISchemaElement child)
47460 {
47461 if ((null == child))
47462 {
47463 throw new ArgumentNullException("child");
47464 }
47465 this.children.RemoveElement(child);
47466 child.ParentElement = null;
47467 }
47468
47469 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
47470 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
47471 ISchemaElement ICreateChildren.CreateChild(string childName)
47472 {
47473 if (String.IsNullOrEmpty(childName))
47474 {
47475 throw new ArgumentNullException("childName");
47476 }
47477 ISchemaElement childValue = null;
47478 if (("Custom" == childName))
47479 {
47480 childValue = new Custom();
47481 }
47482 if (("Show" == childName))
47483 {
47484 childValue = new Show();
47485 }
47486 if (("CostInitialize" == childName))
47487 {
47488 childValue = new CostInitialize();
47489 }
47490 if (("FileCost" == childName))
47491 {
47492 childValue = new FileCost();
47493 }
47494 if (("CostFinalize" == childName))
47495 {
47496 childValue = new CostFinalize();
47497 }
47498 if (("ExecuteAction" == childName))
47499 {
47500 childValue = new ExecuteAction();
47501 }
47502 if (("InstallValidate" == childName))
47503 {
47504 childValue = new InstallValidate();
47505 }
47506 if (("InstallInitialize" == childName))
47507 {
47508 childValue = new InstallInitialize();
47509 }
47510 if (("InstallAdminPackage" == childName))
47511 {
47512 childValue = new InstallAdminPackage();
47513 }
47514 if (("InstallFiles" == childName))
47515 {
47516 childValue = new InstallFiles();
47517 }
47518 if (("InstallFinalize" == childName))
47519 {
47520 childValue = new InstallFinalize();
47521 }
47522 if (("LaunchConditions" == childName))
47523 {
47524 childValue = new LaunchConditions();
47525 }
47526 if ((null == childValue))
47527 {
47528 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
47529 }
47530 return childValue;
47531 }
47532
47533 /// <summary>
47534 /// Processes this element and all child elements into an XmlWriter.
47535 /// </summary>
47536 public virtual void OutputXml(XmlWriter writer)
47537 {
47538 if ((null == writer))
47539 {
47540 throw new ArgumentNullException("writer");
47541 }
47542 writer.WriteStartElement("AdminUISequence", "http://wixtoolset.org/schemas/v4/wxs");
47543 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
47544 {
47545 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
47546 childElement.OutputXml(writer);
47547 }
47548 writer.WriteEndElement();
47549 }
47550
47551 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
47552 void ISetAttributes.SetAttribute(string name, string value)
47553 {
47554 if (String.IsNullOrEmpty(name))
47555 {
47556 throw new ArgumentNullException("name");
47557 }
47558 }
47559 }
47560
47561 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
47562 public class AdminExecuteSequence : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
47563 {
47564
47565 private ElementCollection children;
47566
47567 private ISchemaElement parentElement;
47568
47569 public AdminExecuteSequence()
47570 {
47571 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
47572 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Custom)));
47573 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostInitialize)));
47574 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileCost)));
47575 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostFinalize)));
47576 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallValidate)));
47577 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallInitialize)));
47578 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallAdminPackage)));
47579 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFiles)));
47580 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFiles)));
47581 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFinalize)));
47582 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(LaunchConditions)));
47583 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ResolveSource)));
47584 this.children = childCollection0;
47585 }
47586
47587 public virtual IEnumerable Children
47588 {
47589 get
47590 {
47591 return this.children;
47592 }
47593 }
47594
47595 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
47596 public virtual IEnumerable this[System.Type childType]
47597 {
47598 get
47599 {
47600 return this.children.Filter(childType);
47601 }
47602 }
47603
47604 public virtual ISchemaElement ParentElement
47605 {
47606 get
47607 {
47608 return this.parentElement;
47609 }
47610 set
47611 {
47612 this.parentElement = value;
47613 }
47614 }
47615
47616 public virtual void AddChild(ISchemaElement child)
47617 {
47618 if ((null == child))
47619 {
47620 throw new ArgumentNullException("child");
47621 }
47622 this.children.AddElement(child);
47623 child.ParentElement = this;
47624 }
47625
47626 public virtual void RemoveChild(ISchemaElement child)
47627 {
47628 if ((null == child))
47629 {
47630 throw new ArgumentNullException("child");
47631 }
47632 this.children.RemoveElement(child);
47633 child.ParentElement = null;
47634 }
47635
47636 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
47637 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
47638 ISchemaElement ICreateChildren.CreateChild(string childName)
47639 {
47640 if (String.IsNullOrEmpty(childName))
47641 {
47642 throw new ArgumentNullException("childName");
47643 }
47644 ISchemaElement childValue = null;
47645 if (("Custom" == childName))
47646 {
47647 childValue = new Custom();
47648 }
47649 if (("CostInitialize" == childName))
47650 {
47651 childValue = new CostInitialize();
47652 }
47653 if (("FileCost" == childName))
47654 {
47655 childValue = new FileCost();
47656 }
47657 if (("CostFinalize" == childName))
47658 {
47659 childValue = new CostFinalize();
47660 }
47661 if (("InstallValidate" == childName))
47662 {
47663 childValue = new InstallValidate();
47664 }
47665 if (("InstallInitialize" == childName))
47666 {
47667 childValue = new InstallInitialize();
47668 }
47669 if (("InstallAdminPackage" == childName))
47670 {
47671 childValue = new InstallAdminPackage();
47672 }
47673 if (("InstallFiles" == childName))
47674 {
47675 childValue = new InstallFiles();
47676 }
47677 if (("PatchFiles" == childName))
47678 {
47679 childValue = new PatchFiles();
47680 }
47681 if (("InstallFinalize" == childName))
47682 {
47683 childValue = new InstallFinalize();
47684 }
47685 if (("LaunchConditions" == childName))
47686 {
47687 childValue = new LaunchConditions();
47688 }
47689 if (("ResolveSource" == childName))
47690 {
47691 childValue = new ResolveSource();
47692 }
47693 if ((null == childValue))
47694 {
47695 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
47696 }
47697 return childValue;
47698 }
47699
47700 /// <summary>
47701 /// Processes this element and all child elements into an XmlWriter.
47702 /// </summary>
47703 public virtual void OutputXml(XmlWriter writer)
47704 {
47705 if ((null == writer))
47706 {
47707 throw new ArgumentNullException("writer");
47708 }
47709 writer.WriteStartElement("AdminExecuteSequence", "http://wixtoolset.org/schemas/v4/wxs");
47710 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
47711 {
47712 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
47713 childElement.OutputXml(writer);
47714 }
47715 writer.WriteEndElement();
47716 }
47717
47718 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
47719 void ISetAttributes.SetAttribute(string name, string value)
47720 {
47721 if (String.IsNullOrEmpty(name))
47722 {
47723 throw new ArgumentNullException("name");
47724 }
47725 }
47726 }
47727
47728 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
47729 public class AdvertiseExecuteSequence : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
47730 {
47731
47732 private ElementCollection children;
47733
47734 private ISchemaElement parentElement;
47735
47736 public AdvertiseExecuteSequence()
47737 {
47738 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
47739 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostInitialize)));
47740 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostFinalize)));
47741 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Custom)));
47742 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallValidate)));
47743 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallInitialize)));
47744 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CreateShortcuts)));
47745 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterClassInfo)));
47746 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterExtensionInfo)));
47747 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterMIMEInfo)));
47748 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterProgIdInfo)));
47749 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishComponents)));
47750 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishFeatures)));
47751 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishProduct)));
47752 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFinalize)));
47753 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiPublishAssemblies)));
47754 this.children = childCollection0;
47755 }
47756
47757 public virtual IEnumerable Children
47758 {
47759 get
47760 {
47761 return this.children;
47762 }
47763 }
47764
47765 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
47766 public virtual IEnumerable this[System.Type childType]
47767 {
47768 get
47769 {
47770 return this.children.Filter(childType);
47771 }
47772 }
47773
47774 public virtual ISchemaElement ParentElement
47775 {
47776 get
47777 {
47778 return this.parentElement;
47779 }
47780 set
47781 {
47782 this.parentElement = value;
47783 }
47784 }
47785
47786 public virtual void AddChild(ISchemaElement child)
47787 {
47788 if ((null == child))
47789 {
47790 throw new ArgumentNullException("child");
47791 }
47792 this.children.AddElement(child);
47793 child.ParentElement = this;
47794 }
47795
47796 public virtual void RemoveChild(ISchemaElement child)
47797 {
47798 if ((null == child))
47799 {
47800 throw new ArgumentNullException("child");
47801 }
47802 this.children.RemoveElement(child);
47803 child.ParentElement = null;
47804 }
47805
47806 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
47807 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
47808 ISchemaElement ICreateChildren.CreateChild(string childName)
47809 {
47810 if (String.IsNullOrEmpty(childName))
47811 {
47812 throw new ArgumentNullException("childName");
47813 }
47814 ISchemaElement childValue = null;
47815 if (("CostInitialize" == childName))
47816 {
47817 childValue = new CostInitialize();
47818 }
47819 if (("CostFinalize" == childName))
47820 {
47821 childValue = new CostFinalize();
47822 }
47823 if (("Custom" == childName))
47824 {
47825 childValue = new Custom();
47826 }
47827 if (("InstallValidate" == childName))
47828 {
47829 childValue = new InstallValidate();
47830 }
47831 if (("InstallInitialize" == childName))
47832 {
47833 childValue = new InstallInitialize();
47834 }
47835 if (("CreateShortcuts" == childName))
47836 {
47837 childValue = new CreateShortcuts();
47838 }
47839 if (("RegisterClassInfo" == childName))
47840 {
47841 childValue = new RegisterClassInfo();
47842 }
47843 if (("RegisterExtensionInfo" == childName))
47844 {
47845 childValue = new RegisterExtensionInfo();
47846 }
47847 if (("RegisterMIMEInfo" == childName))
47848 {
47849 childValue = new RegisterMIMEInfo();
47850 }
47851 if (("RegisterProgIdInfo" == childName))
47852 {
47853 childValue = new RegisterProgIdInfo();
47854 }
47855 if (("PublishComponents" == childName))
47856 {
47857 childValue = new PublishComponents();
47858 }
47859 if (("PublishFeatures" == childName))
47860 {
47861 childValue = new PublishFeatures();
47862 }
47863 if (("PublishProduct" == childName))
47864 {
47865 childValue = new PublishProduct();
47866 }
47867 if (("InstallFinalize" == childName))
47868 {
47869 childValue = new InstallFinalize();
47870 }
47871 if (("MsiPublishAssemblies" == childName))
47872 {
47873 childValue = new MsiPublishAssemblies();
47874 }
47875 if ((null == childValue))
47876 {
47877 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
47878 }
47879 return childValue;
47880 }
47881
47882 /// <summary>
47883 /// Processes this element and all child elements into an XmlWriter.
47884 /// </summary>
47885 public virtual void OutputXml(XmlWriter writer)
47886 {
47887 if ((null == writer))
47888 {
47889 throw new ArgumentNullException("writer");
47890 }
47891 writer.WriteStartElement("AdvertiseExecuteSequence", "http://wixtoolset.org/schemas/v4/wxs");
47892 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
47893 {
47894 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
47895 childElement.OutputXml(writer);
47896 }
47897 writer.WriteEndElement();
47898 }
47899
47900 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
47901 void ISetAttributes.SetAttribute(string name, string value)
47902 {
47903 if (String.IsNullOrEmpty(name))
47904 {
47905 throw new ArgumentNullException("name");
47906 }
47907 }
47908 }
47909
47910 /// <summary>
47911 /// Binary data used for CustomAction elements and UI controls.
47912 /// </summary>
47913 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
47914 public class Binary : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
47915 {
47916
47917 private ElementCollection children;
47918
47919 private string idField;
47920
47921 private bool idFieldSet;
47922
47923 private string sourceFileField;
47924
47925 private bool sourceFileFieldSet;
47926
47927 private string srcField;
47928
47929 private bool srcFieldSet;
47930
47931 private YesNoType suppressModularizationField;
47932
47933 private bool suppressModularizationFieldSet;
47934
47935 private ISchemaElement parentElement;
47936
47937 public Binary()
47938 {
47939 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
47940 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
47941 this.children = childCollection0;
47942 }
47943
47944 public virtual IEnumerable Children
47945 {
47946 get
47947 {
47948 return this.children;
47949 }
47950 }
47951
47952 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
47953 public virtual IEnumerable this[System.Type childType]
47954 {
47955 get
47956 {
47957 return this.children.Filter(childType);
47958 }
47959 }
47960
47961 /// <summary>
47962 /// The Id cannot be longer than 55 characters. In order to prevent errors in cases where the Id is modularized, it should not be longer than 18 characters.
47963 /// </summary>
47964 public string Id
47965 {
47966 get
47967 {
47968 return this.idField;
47969 }
47970 set
47971 {
47972 this.idFieldSet = true;
47973 this.idField = value;
47974 }
47975 }
47976
47977 /// <summary>
47978 /// Path to the binary file.
47979 /// </summary>
47980 public string SourceFile
47981 {
47982 get
47983 {
47984 return this.sourceFileField;
47985 }
47986 set
47987 {
47988 this.sourceFileFieldSet = true;
47989 this.sourceFileField = value;
47990 }
47991 }
47992
47993 [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
47994 public string src
47995 {
47996 get
47997 {
47998 return this.srcField;
47999 }
48000 set
48001 {
48002 this.srcFieldSet = true;
48003 this.srcField = value;
48004 }
48005 }
48006
48007 /// <summary>
48008 /// Use to suppress modularization of this Binary identifier in merge modules.
48009 /// </summary>
48010 public YesNoType SuppressModularization
48011 {
48012 get
48013 {
48014 return this.suppressModularizationField;
48015 }
48016 set
48017 {
48018 this.suppressModularizationFieldSet = true;
48019 this.suppressModularizationField = value;
48020 }
48021 }
48022
48023 public virtual ISchemaElement ParentElement
48024 {
48025 get
48026 {
48027 return this.parentElement;
48028 }
48029 set
48030 {
48031 this.parentElement = value;
48032 }
48033 }
48034
48035 public virtual void AddChild(ISchemaElement child)
48036 {
48037 if ((null == child))
48038 {
48039 throw new ArgumentNullException("child");
48040 }
48041 this.children.AddElement(child);
48042 child.ParentElement = this;
48043 }
48044
48045 public virtual void RemoveChild(ISchemaElement child)
48046 {
48047 if ((null == child))
48048 {
48049 throw new ArgumentNullException("child");
48050 }
48051 this.children.RemoveElement(child);
48052 child.ParentElement = null;
48053 }
48054
48055 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
48056 ISchemaElement ICreateChildren.CreateChild(string childName)
48057 {
48058 if (String.IsNullOrEmpty(childName))
48059 {
48060 throw new ArgumentNullException("childName");
48061 }
48062 ISchemaElement childValue = null;
48063 if ((null == childValue))
48064 {
48065 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
48066 }
48067 return childValue;
48068 }
48069
48070 /// <summary>
48071 /// Processes this element and all child elements into an XmlWriter.
48072 /// </summary>
48073 public virtual void OutputXml(XmlWriter writer)
48074 {
48075 if ((null == writer))
48076 {
48077 throw new ArgumentNullException("writer");
48078 }
48079 writer.WriteStartElement("Binary", "http://wixtoolset.org/schemas/v4/wxs");
48080 if (this.idFieldSet)
48081 {
48082 writer.WriteAttributeString("Id", this.idField);
48083 }
48084 if (this.sourceFileFieldSet)
48085 {
48086 writer.WriteAttributeString("SourceFile", this.sourceFileField);
48087 }
48088 if (this.srcFieldSet)
48089 {
48090 writer.WriteAttributeString("src", this.srcField);
48091 }
48092 if (this.suppressModularizationFieldSet)
48093 {
48094 if ((this.suppressModularizationField == YesNoType.no))
48095 {
48096 writer.WriteAttributeString("SuppressModularization", "no");
48097 }
48098 if ((this.suppressModularizationField == YesNoType.yes))
48099 {
48100 writer.WriteAttributeString("SuppressModularization", "yes");
48101 }
48102 }
48103 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
48104 {
48105 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
48106 childElement.OutputXml(writer);
48107 }
48108 writer.WriteEndElement();
48109 }
48110
48111 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
48112 void ISetAttributes.SetAttribute(string name, string value)
48113 {
48114 if (String.IsNullOrEmpty(name))
48115 {
48116 throw new ArgumentNullException("name");
48117 }
48118 if (("Id" == name))
48119 {
48120 this.idField = value;
48121 this.idFieldSet = true;
48122 }
48123 if (("SourceFile" == name))
48124 {
48125 this.sourceFileField = value;
48126 this.sourceFileFieldSet = true;
48127 }
48128 if (("src" == name))
48129 {
48130 this.srcField = value;
48131 this.srcFieldSet = true;
48132 }
48133 if (("SuppressModularization" == name))
48134 {
48135 this.suppressModularizationField = Enums.ParseYesNoType(value);
48136 this.suppressModularizationFieldSet = true;
48137 }
48138 }
48139 }
48140
48141 /// <summary>
48142 /// Icon used for Shortcut, ProgId, or Class elements (but not UI controls)
48143 /// </summary>
48144 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
48145 public class Icon : ISchemaElement, ISetAttributes
48146 {
48147
48148 private string idField;
48149
48150 private bool idFieldSet;
48151
48152 private string sourceFileField;
48153
48154 private bool sourceFileFieldSet;
48155
48156 private string srcField;
48157
48158 private bool srcFieldSet;
48159
48160 private ISchemaElement parentElement;
48161
48162 /// <summary>
48163 /// The Id cannot be longer than 55 characters. In order to prevent errors in cases where the Id is modularized, it should not be longer than 18 characters.
48164 /// </summary>
48165 public string Id
48166 {
48167 get
48168 {
48169 return this.idField;
48170 }
48171 set
48172 {
48173 this.idFieldSet = true;
48174 this.idField = value;
48175 }
48176 }
48177
48178 /// <summary>
48179 /// Path to the icon file.
48180 /// </summary>
48181 public string SourceFile
48182 {
48183 get
48184 {
48185 return this.sourceFileField;
48186 }
48187 set
48188 {
48189 this.sourceFileFieldSet = true;
48190 this.sourceFileField = value;
48191 }
48192 }
48193
48194 [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
48195 public string src
48196 {
48197 get
48198 {
48199 return this.srcField;
48200 }
48201 set
48202 {
48203 this.srcFieldSet = true;
48204 this.srcField = value;
48205 }
48206 }
48207
48208 public virtual ISchemaElement ParentElement
48209 {
48210 get
48211 {
48212 return this.parentElement;
48213 }
48214 set
48215 {
48216 this.parentElement = value;
48217 }
48218 }
48219
48220 /// <summary>
48221 /// Processes this element and all child elements into an XmlWriter.
48222 /// </summary>
48223 public virtual void OutputXml(XmlWriter writer)
48224 {
48225 if ((null == writer))
48226 {
48227 throw new ArgumentNullException("writer");
48228 }
48229 writer.WriteStartElement("Icon", "http://wixtoolset.org/schemas/v4/wxs");
48230 if (this.idFieldSet)
48231 {
48232 writer.WriteAttributeString("Id", this.idField);
48233 }
48234 if (this.sourceFileFieldSet)
48235 {
48236 writer.WriteAttributeString("SourceFile", this.sourceFileField);
48237 }
48238 if (this.srcFieldSet)
48239 {
48240 writer.WriteAttributeString("src", this.srcField);
48241 }
48242 writer.WriteEndElement();
48243 }
48244
48245 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
48246 void ISetAttributes.SetAttribute(string name, string value)
48247 {
48248 if (String.IsNullOrEmpty(name))
48249 {
48250 throw new ArgumentNullException("name");
48251 }
48252 if (("Id" == name))
48253 {
48254 this.idField = value;
48255 this.idFieldSet = true;
48256 }
48257 if (("SourceFile" == name))
48258 {
48259 this.sourceFileField = value;
48260 this.sourceFileFieldSet = true;
48261 }
48262 if (("src" == name))
48263 {
48264 this.srcField = value;
48265 this.srcFieldSet = true;
48266 }
48267 }
48268 }
48269
48270 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
48271 public class EmbeddedChainer : ISchemaElement, ISetAttributes
48272 {
48273
48274 private string idField;
48275
48276 private bool idFieldSet;
48277
48278 private string commandLineField;
48279
48280 private bool commandLineFieldSet;
48281
48282 private string binarySourceField;
48283
48284 private bool binarySourceFieldSet;
48285
48286 private string fileSourceField;
48287
48288 private bool fileSourceFieldSet;
48289
48290 private string propertySourceField;
48291
48292 private bool propertySourceFieldSet;
48293
48294 private string contentField;
48295
48296 private bool contentFieldSet;
48297
48298 private ISchemaElement parentElement;
48299
48300 /// <summary>
48301 /// Unique identifier for embedded chainer.
48302 /// </summary>
48303 public string Id
48304 {
48305 get
48306 {
48307 return this.idField;
48308 }
48309 set
48310 {
48311 this.idFieldSet = true;
48312 this.idField = value;
48313 }
48314 }
48315
48316 /// <summary>
48317 /// Value to append to the transaction handle and passed to the chainer executable.
48318 /// </summary>
48319 public string CommandLine
48320 {
48321 get
48322 {
48323 return this.commandLineField;
48324 }
48325 set
48326 {
48327 this.commandLineFieldSet = true;
48328 this.commandLineField = value;
48329 }
48330 }
48331
48332 /// <summary>
48333 /// Reference to the Binary element that contains the chainer executable. Mutually exclusive with
48334 /// the FileSource and PropertySource attributes.
48335 /// </summary>
48336 public string BinarySource
48337 {
48338 get
48339 {
48340 return this.binarySourceField;
48341 }
48342 set
48343 {
48344 this.binarySourceFieldSet = true;
48345 this.binarySourceField = value;
48346 }
48347 }
48348
48349 /// <summary>
48350 /// Reference to the File element that is the chainer executable. Mutually exclusive with
48351 /// the BinarySource and PropertySource attributes.
48352 /// </summary>
48353 public string FileSource
48354 {
48355 get
48356 {
48357 return this.fileSourceField;
48358 }
48359 set
48360 {
48361 this.fileSourceFieldSet = true;
48362 this.fileSourceField = value;
48363 }
48364 }
48365
48366 /// <summary>
48367 /// Reference to a Property that resolves to the full path to the chainer executable. Mutually exclusive with
48368 /// the BinarySource and FileSource attributes.
48369 /// </summary>
48370 public string PropertySource
48371 {
48372 get
48373 {
48374 return this.propertySourceField;
48375 }
48376 set
48377 {
48378 this.propertySourceFieldSet = true;
48379 this.propertySourceField = value;
48380 }
48381 }
48382
48383 /// <summary>
48384 /// Element value is the condition. CDATA may be used to when a condition contains many XML characters
48385 /// that must be escaped. It is important to note that each EmbeddedChainer element must have a mutually exclusive condition
48386 /// to ensure that only one embedded chainer will execute at a time. If the conditions are not mutually exclusive the chainer
48387 /// that executes is undeterministic.
48388 /// </summary>
48389 public string Content
48390 {
48391 get
48392 {
48393 return this.contentField;
48394 }
48395 set
48396 {
48397 this.contentFieldSet = true;
48398 this.contentField = value;
48399 }
48400 }
48401
48402 public virtual ISchemaElement ParentElement
48403 {
48404 get
48405 {
48406 return this.parentElement;
48407 }
48408 set
48409 {
48410 this.parentElement = value;
48411 }
48412 }
48413
48414 /// <summary>
48415 /// Processes this element and all child elements into an XmlWriter.
48416 /// </summary>
48417 public virtual void OutputXml(XmlWriter writer)
48418 {
48419 if ((null == writer))
48420 {
48421 throw new ArgumentNullException("writer");
48422 }
48423 writer.WriteStartElement("EmbeddedChainer", "http://wixtoolset.org/schemas/v4/wxs");
48424 if (this.idFieldSet)
48425 {
48426 writer.WriteAttributeString("Id", this.idField);
48427 }
48428 if (this.commandLineFieldSet)
48429 {
48430 writer.WriteAttributeString("CommandLine", this.commandLineField);
48431 }
48432 if (this.binarySourceFieldSet)
48433 {
48434 writer.WriteAttributeString("BinarySource", this.binarySourceField);
48435 }
48436 if (this.fileSourceFieldSet)
48437 {
48438 writer.WriteAttributeString("FileSource", this.fileSourceField);
48439 }
48440 if (this.propertySourceFieldSet)
48441 {
48442 writer.WriteAttributeString("PropertySource", this.propertySourceField);
48443 }
48444 if (this.contentFieldSet)
48445 {
48446 writer.WriteString(this.contentField);
48447 }
48448 writer.WriteEndElement();
48449 }
48450
48451 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
48452 void ISetAttributes.SetAttribute(string name, string value)
48453 {
48454 if (String.IsNullOrEmpty(name))
48455 {
48456 throw new ArgumentNullException("name");
48457 }
48458 if (("Id" == name))
48459 {
48460 this.idField = value;
48461 this.idFieldSet = true;
48462 }
48463 if (("CommandLine" == name))
48464 {
48465 this.commandLineField = value;
48466 this.commandLineFieldSet = true;
48467 }
48468 if (("BinarySource" == name))
48469 {
48470 this.binarySourceField = value;
48471 this.binarySourceFieldSet = true;
48472 }
48473 if (("FileSource" == name))
48474 {
48475 this.fileSourceField = value;
48476 this.fileSourceFieldSet = true;
48477 }
48478 if (("PropertySource" == name))
48479 {
48480 this.propertySourceField = value;
48481 this.propertySourceFieldSet = true;
48482 }
48483 if (("Content" == name))
48484 {
48485 this.contentField = value;
48486 this.contentFieldSet = true;
48487 }
48488 }
48489 }
48490
48491 /// <summary>
48492 /// Reference to an EmbeddedChainer element. This will force the entire referenced Fragment's contents
48493 /// to be included in the installer database.
48494 /// </summary>
48495 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
48496 public class EmbeddedChainerRef : ISchemaElement, ISetAttributes
48497 {
48498
48499 private string idField;
48500
48501 private bool idFieldSet;
48502
48503 private ISchemaElement parentElement;
48504
48505 public string Id
48506 {
48507 get
48508 {
48509 return this.idField;
48510 }
48511 set
48512 {
48513 this.idFieldSet = true;
48514 this.idField = value;
48515 }
48516 }
48517
48518 public virtual ISchemaElement ParentElement
48519 {
48520 get
48521 {
48522 return this.parentElement;
48523 }
48524 set
48525 {
48526 this.parentElement = value;
48527 }
48528 }
48529
48530 /// <summary>
48531 /// Processes this element and all child elements into an XmlWriter.
48532 /// </summary>
48533 public virtual void OutputXml(XmlWriter writer)
48534 {
48535 if ((null == writer))
48536 {
48537 throw new ArgumentNullException("writer");
48538 }
48539 writer.WriteStartElement("EmbeddedChainerRef", "http://wixtoolset.org/schemas/v4/wxs");
48540 if (this.idFieldSet)
48541 {
48542 writer.WriteAttributeString("Id", this.idField);
48543 }
48544 writer.WriteEndElement();
48545 }
48546
48547 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
48548 void ISetAttributes.SetAttribute(string name, string value)
48549 {
48550 if (String.IsNullOrEmpty(name))
48551 {
48552 throw new ArgumentNullException("name");
48553 }
48554 if (("Id" == name))
48555 {
48556 this.idField = value;
48557 this.idFieldSet = true;
48558 }
48559 }
48560 }
48561
48562 /// <summary>
48563 /// Element value is the condition. Use CDATA if message contains delimiter characters.
48564 /// </summary>
48565 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
48566 public class EmbeddedUI : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
48567 {
48568
48569 private ElementCollection children;
48570
48571 private string idField;
48572
48573 private bool idFieldSet;
48574
48575 private YesNoType ignoreFatalExitField;
48576
48577 private bool ignoreFatalExitFieldSet;
48578
48579 private YesNoType ignoreErrorField;
48580
48581 private bool ignoreErrorFieldSet;
48582
48583 private YesNoType ignoreWarningField;
48584
48585 private bool ignoreWarningFieldSet;
48586
48587 private YesNoType ignoreUserField;
48588
48589 private bool ignoreUserFieldSet;
48590
48591 private YesNoType ignoreInfoField;
48592
48593 private bool ignoreInfoFieldSet;
48594
48595 private YesNoType ignoreFilesInUseField;
48596
48597 private bool ignoreFilesInUseFieldSet;
48598
48599 private YesNoType ignoreResolveSourceField;
48600
48601 private bool ignoreResolveSourceFieldSet;
48602
48603 private YesNoType ignoreOutOfDiskSpaceField;
48604
48605 private bool ignoreOutOfDiskSpaceFieldSet;
48606
48607 private YesNoType ignoreActionStartField;
48608
48609 private bool ignoreActionStartFieldSet;
48610
48611 private YesNoType ignoreActionDataField;
48612
48613 private bool ignoreActionDataFieldSet;
48614
48615 private YesNoType ignoreProgressField;
48616
48617 private bool ignoreProgressFieldSet;
48618
48619 private YesNoType ignoreCommonDataField;
48620
48621 private bool ignoreCommonDataFieldSet;
48622
48623 private YesNoType ignoreInitializeField;
48624
48625 private bool ignoreInitializeFieldSet;
48626
48627 private YesNoType ignoreTerminateField;
48628
48629 private bool ignoreTerminateFieldSet;
48630
48631 private YesNoType ignoreShowDialogField;
48632
48633 private bool ignoreShowDialogFieldSet;
48634
48635 private YesNoType ignoreRMFilesInUseField;
48636
48637 private bool ignoreRMFilesInUseFieldSet;
48638
48639 private YesNoType ignoreInstallStartField;
48640
48641 private bool ignoreInstallStartFieldSet;
48642
48643 private YesNoType ignoreInstallEndField;
48644
48645 private bool ignoreInstallEndFieldSet;
48646
48647 private string nameField;
48648
48649 private bool nameFieldSet;
48650
48651 private string sourceFileField;
48652
48653 private bool sourceFileFieldSet;
48654
48655 private YesNoType supportBasicUIField;
48656
48657 private bool supportBasicUIFieldSet;
48658
48659 private ISchemaElement parentElement;
48660
48661 public EmbeddedUI()
48662 {
48663 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
48664 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(EmbeddedUIResource)));
48665 this.children = childCollection0;
48666 }
48667
48668 public virtual IEnumerable Children
48669 {
48670 get
48671 {
48672 return this.children;
48673 }
48674 }
48675
48676 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
48677 public virtual IEnumerable this[System.Type childType]
48678 {
48679 get
48680 {
48681 return this.children.Filter(childType);
48682 }
48683 }
48684
48685 /// <summary>
48686 /// Unique identifier for embedded UI.If this attribute is not specified the Name attribute or the file name
48687 /// portion of the SourceFile attribute will be used.
48688 /// </summary>
48689 public string Id
48690 {
48691 get
48692 {
48693 return this.idField;
48694 }
48695 set
48696 {
48697 this.idFieldSet = true;
48698 this.idField = value;
48699 }
48700 }
48701
48702 /// <summary>
48703 /// Embedded UI will not recieve any INSTALLLOGMODE_FATALEXIT messages.
48704 /// </summary>
48705 public YesNoType IgnoreFatalExit
48706 {
48707 get
48708 {
48709 return this.ignoreFatalExitField;
48710 }
48711 set
48712 {
48713 this.ignoreFatalExitFieldSet = true;
48714 this.ignoreFatalExitField = value;
48715 }
48716 }
48717
48718 /// <summary>
48719 /// Embedded UI will not recieve any INSTALLLOGMODE_ERROR messages.
48720 /// </summary>
48721 public YesNoType IgnoreError
48722 {
48723 get
48724 {
48725 return this.ignoreErrorField;
48726 }
48727 set
48728 {
48729 this.ignoreErrorFieldSet = true;
48730 this.ignoreErrorField = value;
48731 }
48732 }
48733
48734 /// <summary>
48735 /// Embedded UI will not recieve any INSTALLLOGMODE_WARNING messages.
48736 /// </summary>
48737 public YesNoType IgnoreWarning
48738 {
48739 get
48740 {
48741 return this.ignoreWarningField;
48742 }
48743 set
48744 {
48745 this.ignoreWarningFieldSet = true;
48746 this.ignoreWarningField = value;
48747 }
48748 }
48749
48750 /// <summary>
48751 /// Embedded UI will not recieve any INSTALLLOGMODE_USER messages.
48752 /// </summary>
48753 public YesNoType IgnoreUser
48754 {
48755 get
48756 {
48757 return this.ignoreUserField;
48758 }
48759 set
48760 {
48761 this.ignoreUserFieldSet = true;
48762 this.ignoreUserField = value;
48763 }
48764 }
48765
48766 /// <summary>
48767 /// Embedded UI will not recieve any INSTALLLOGMODE_INFO messages.
48768 /// </summary>
48769 public YesNoType IgnoreInfo
48770 {
48771 get
48772 {
48773 return this.ignoreInfoField;
48774 }
48775 set
48776 {
48777 this.ignoreInfoFieldSet = true;
48778 this.ignoreInfoField = value;
48779 }
48780 }
48781
48782 /// <summary>
48783 /// Embedded UI will not recieve any INSTALLLOGMODE_FILESINUSE messages.
48784 /// </summary>
48785 public YesNoType IgnoreFilesInUse
48786 {
48787 get
48788 {
48789 return this.ignoreFilesInUseField;
48790 }
48791 set
48792 {
48793 this.ignoreFilesInUseFieldSet = true;
48794 this.ignoreFilesInUseField = value;
48795 }
48796 }
48797
48798 /// <summary>
48799 /// Embedded UI will not recieve any INSTALLLOGMODE_RESOLVESOURCE messages.
48800 /// </summary>
48801 public YesNoType IgnoreResolveSource
48802 {
48803 get
48804 {
48805 return this.ignoreResolveSourceField;
48806 }
48807 set
48808 {
48809 this.ignoreResolveSourceFieldSet = true;
48810 this.ignoreResolveSourceField = value;
48811 }
48812 }
48813
48814 /// <summary>
48815 /// Embedded UI will not recieve any INSTALLLOGMODE_OUTOFDISKSPACE messages.
48816 /// </summary>
48817 public YesNoType IgnoreOutOfDiskSpace
48818 {
48819 get
48820 {
48821 return this.ignoreOutOfDiskSpaceField;
48822 }
48823 set
48824 {
48825 this.ignoreOutOfDiskSpaceFieldSet = true;
48826 this.ignoreOutOfDiskSpaceField = value;
48827 }
48828 }
48829
48830 /// <summary>
48831 /// Embedded UI will not recieve any INSTALLLOGMODE_ACTIONSTART messages.
48832 /// </summary>
48833 public YesNoType IgnoreActionStart
48834 {
48835 get
48836 {
48837 return this.ignoreActionStartField;
48838 }
48839 set
48840 {
48841 this.ignoreActionStartFieldSet = true;
48842 this.ignoreActionStartField = value;
48843 }
48844 }
48845
48846 /// <summary>
48847 /// Embedded UI will not recieve any INSTALLLOGMODE_ACTIONDATA messages.
48848 /// </summary>
48849 public YesNoType IgnoreActionData
48850 {
48851 get
48852 {
48853 return this.ignoreActionDataField;
48854 }
48855 set
48856 {
48857 this.ignoreActionDataFieldSet = true;
48858 this.ignoreActionDataField = value;
48859 }
48860 }
48861
48862 /// <summary>
48863 /// Embedded UI will not recieve any INSTALLLOGMODE_PROGRESS messages.
48864 /// </summary>
48865 public YesNoType IgnoreProgress
48866 {
48867 get
48868 {
48869 return this.ignoreProgressField;
48870 }
48871 set
48872 {
48873 this.ignoreProgressFieldSet = true;
48874 this.ignoreProgressField = value;
48875 }
48876 }
48877
48878 /// <summary>
48879 /// Embedded UI will not recieve any INSTALLLOGMODE_COMMONDATA messages.
48880 /// </summary>
48881 public YesNoType IgnoreCommonData
48882 {
48883 get
48884 {
48885 return this.ignoreCommonDataField;
48886 }
48887 set
48888 {
48889 this.ignoreCommonDataFieldSet = true;
48890 this.ignoreCommonDataField = value;
48891 }
48892 }
48893
48894 /// <summary>
48895 /// Embedded UI will not recieve any INSTALLLOGMODE_INITIALIZE messages.
48896 /// </summary>
48897 public YesNoType IgnoreInitialize
48898 {
48899 get
48900 {
48901 return this.ignoreInitializeField;
48902 }
48903 set
48904 {
48905 this.ignoreInitializeFieldSet = true;
48906 this.ignoreInitializeField = value;
48907 }
48908 }
48909
48910 /// <summary>
48911 /// Embedded UI will not recieve any INSTALLLOGMODE_TERMINATE messages.
48912 /// </summary>
48913 public YesNoType IgnoreTerminate
48914 {
48915 get
48916 {
48917 return this.ignoreTerminateField;
48918 }
48919 set
48920 {
48921 this.ignoreTerminateFieldSet = true;
48922 this.ignoreTerminateField = value;
48923 }
48924 }
48925
48926 /// <summary>
48927 /// Embedded UI will not recieve any INSTALLLOGMODE_SHOWDIALOG messages.
48928 /// </summary>
48929 public YesNoType IgnoreShowDialog
48930 {
48931 get
48932 {
48933 return this.ignoreShowDialogField;
48934 }
48935 set
48936 {
48937 this.ignoreShowDialogFieldSet = true;
48938 this.ignoreShowDialogField = value;
48939 }
48940 }
48941
48942 /// <summary>
48943 /// Embedded UI will not recieve any INSTALLLOGMODE_RMFILESINUSE messages.
48944 /// </summary>
48945 [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")]
48946 public YesNoType IgnoreRMFilesInUse
48947 {
48948 get
48949 {
48950 return this.ignoreRMFilesInUseField;
48951 }
48952 set
48953 {
48954 this.ignoreRMFilesInUseFieldSet = true;
48955 this.ignoreRMFilesInUseField = value;
48956 }
48957 }
48958
48959 /// <summary>
48960 /// Embedded UI will not recieve any INSTALLLOGMODE_INSTALLSTART messages.
48961 /// </summary>
48962 public YesNoType IgnoreInstallStart
48963 {
48964 get
48965 {
48966 return this.ignoreInstallStartField;
48967 }
48968 set
48969 {
48970 this.ignoreInstallStartFieldSet = true;
48971 this.ignoreInstallStartField = value;
48972 }
48973 }
48974
48975 /// <summary>
48976 /// Embedded UI will not recieve any INSTALLLOGMODE_INSTALLEND messages.
48977 /// </summary>
48978 public YesNoType IgnoreInstallEnd
48979 {
48980 get
48981 {
48982 return this.ignoreInstallEndField;
48983 }
48984 set
48985 {
48986 this.ignoreInstallEndFieldSet = true;
48987 this.ignoreInstallEndField = value;
48988 }
48989 }
48990
48991 /// <summary>
48992 /// The name for the embedded UI DLL when it is extracted from the Product and executed. (Windows Installer
48993 /// does not support the typical short filename and long filename combination for embedded UI files as it
48994 /// does for other kinds of files.) If this attribute is not specified the file name portion of the SourceFile
48995 /// attribute will be used.
48996 /// </summary>
48997 public string Name
48998 {
48999 get
49000 {
49001 return this.nameField;
49002 }
49003 set
49004 {
49005 this.nameFieldSet = true;
49006 this.nameField = value;
49007 }
49008 }
49009
49010 /// <summary>
49011 /// Path to the binary file that is the embedded UI. This must be a DLL that exports the following
49012 /// three entry points: InitializeEmbeddedUI, EmbeddedUIHandler and ShutdownEmbeddedUI.
49013 /// </summary>
49014 public string SourceFile
49015 {
49016 get
49017 {
49018 return this.sourceFileField;
49019 }
49020 set
49021 {
49022 this.sourceFileFieldSet = true;
49023 this.sourceFileField = value;
49024 }
49025 }
49026
49027 /// <summary>
49028 /// Set yes to allow the Windows Installer to display the embedded UI during basic UI level installation.
49029 /// </summary>
49030 public YesNoType SupportBasicUI
49031 {
49032 get
49033 {
49034 return this.supportBasicUIField;
49035 }
49036 set
49037 {
49038 this.supportBasicUIFieldSet = true;
49039 this.supportBasicUIField = value;
49040 }
49041 }
49042
49043 public virtual ISchemaElement ParentElement
49044 {
49045 get
49046 {
49047 return this.parentElement;
49048 }
49049 set
49050 {
49051 this.parentElement = value;
49052 }
49053 }
49054
49055 public virtual void AddChild(ISchemaElement child)
49056 {
49057 if ((null == child))
49058 {
49059 throw new ArgumentNullException("child");
49060 }
49061 this.children.AddElement(child);
49062 child.ParentElement = this;
49063 }
49064
49065 public virtual void RemoveChild(ISchemaElement child)
49066 {
49067 if ((null == child))
49068 {
49069 throw new ArgumentNullException("child");
49070 }
49071 this.children.RemoveElement(child);
49072 child.ParentElement = null;
49073 }
49074
49075 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
49076 ISchemaElement ICreateChildren.CreateChild(string childName)
49077 {
49078 if (String.IsNullOrEmpty(childName))
49079 {
49080 throw new ArgumentNullException("childName");
49081 }
49082 ISchemaElement childValue = null;
49083 if (("EmbeddedUIResource" == childName))
49084 {
49085 childValue = new EmbeddedUIResource();
49086 }
49087 if ((null == childValue))
49088 {
49089 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
49090 }
49091 return childValue;
49092 }
49093
49094 /// <summary>
49095 /// Processes this element and all child elements into an XmlWriter.
49096 /// </summary>
49097 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
49098 public virtual void OutputXml(XmlWriter writer)
49099 {
49100 if ((null == writer))
49101 {
49102 throw new ArgumentNullException("writer");
49103 }
49104 writer.WriteStartElement("EmbeddedUI", "http://wixtoolset.org/schemas/v4/wxs");
49105 if (this.idFieldSet)
49106 {
49107 writer.WriteAttributeString("Id", this.idField);
49108 }
49109 if (this.ignoreFatalExitFieldSet)
49110 {
49111 if ((this.ignoreFatalExitField == YesNoType.no))
49112 {
49113 writer.WriteAttributeString("IgnoreFatalExit", "no");
49114 }
49115 if ((this.ignoreFatalExitField == YesNoType.yes))
49116 {
49117 writer.WriteAttributeString("IgnoreFatalExit", "yes");
49118 }
49119 }
49120 if (this.ignoreErrorFieldSet)
49121 {
49122 if ((this.ignoreErrorField == YesNoType.no))
49123 {
49124 writer.WriteAttributeString("IgnoreError", "no");
49125 }
49126 if ((this.ignoreErrorField == YesNoType.yes))
49127 {
49128 writer.WriteAttributeString("IgnoreError", "yes");
49129 }
49130 }
49131 if (this.ignoreWarningFieldSet)
49132 {
49133 if ((this.ignoreWarningField == YesNoType.no))
49134 {
49135 writer.WriteAttributeString("IgnoreWarning", "no");
49136 }
49137 if ((this.ignoreWarningField == YesNoType.yes))
49138 {
49139 writer.WriteAttributeString("IgnoreWarning", "yes");
49140 }
49141 }
49142 if (this.ignoreUserFieldSet)
49143 {
49144 if ((this.ignoreUserField == YesNoType.no))
49145 {
49146 writer.WriteAttributeString("IgnoreUser", "no");
49147 }
49148 if ((this.ignoreUserField == YesNoType.yes))
49149 {
49150 writer.WriteAttributeString("IgnoreUser", "yes");
49151 }
49152 }
49153 if (this.ignoreInfoFieldSet)
49154 {
49155 if ((this.ignoreInfoField == YesNoType.no))
49156 {
49157 writer.WriteAttributeString("IgnoreInfo", "no");
49158 }
49159 if ((this.ignoreInfoField == YesNoType.yes))
49160 {
49161 writer.WriteAttributeString("IgnoreInfo", "yes");
49162 }
49163 }
49164 if (this.ignoreFilesInUseFieldSet)
49165 {
49166 if ((this.ignoreFilesInUseField == YesNoType.no))
49167 {
49168 writer.WriteAttributeString("IgnoreFilesInUse", "no");
49169 }
49170 if ((this.ignoreFilesInUseField == YesNoType.yes))
49171 {
49172 writer.WriteAttributeString("IgnoreFilesInUse", "yes");
49173 }
49174 }
49175 if (this.ignoreResolveSourceFieldSet)
49176 {
49177 if ((this.ignoreResolveSourceField == YesNoType.no))
49178 {
49179 writer.WriteAttributeString("IgnoreResolveSource", "no");
49180 }
49181 if ((this.ignoreResolveSourceField == YesNoType.yes))
49182 {
49183 writer.WriteAttributeString("IgnoreResolveSource", "yes");
49184 }
49185 }
49186 if (this.ignoreOutOfDiskSpaceFieldSet)
49187 {
49188 if ((this.ignoreOutOfDiskSpaceField == YesNoType.no))
49189 {
49190 writer.WriteAttributeString("IgnoreOutOfDiskSpace", "no");
49191 }
49192 if ((this.ignoreOutOfDiskSpaceField == YesNoType.yes))
49193 {
49194 writer.WriteAttributeString("IgnoreOutOfDiskSpace", "yes");
49195 }
49196 }
49197 if (this.ignoreActionStartFieldSet)
49198 {
49199 if ((this.ignoreActionStartField == YesNoType.no))
49200 {
49201 writer.WriteAttributeString("IgnoreActionStart", "no");
49202 }
49203 if ((this.ignoreActionStartField == YesNoType.yes))
49204 {
49205 writer.WriteAttributeString("IgnoreActionStart", "yes");
49206 }
49207 }
49208 if (this.ignoreActionDataFieldSet)
49209 {
49210 if ((this.ignoreActionDataField == YesNoType.no))
49211 {
49212 writer.WriteAttributeString("IgnoreActionData", "no");
49213 }
49214 if ((this.ignoreActionDataField == YesNoType.yes))
49215 {
49216 writer.WriteAttributeString("IgnoreActionData", "yes");
49217 }
49218 }
49219 if (this.ignoreProgressFieldSet)
49220 {
49221 if ((this.ignoreProgressField == YesNoType.no))
49222 {
49223 writer.WriteAttributeString("IgnoreProgress", "no");
49224 }
49225 if ((this.ignoreProgressField == YesNoType.yes))
49226 {
49227 writer.WriteAttributeString("IgnoreProgress", "yes");
49228 }
49229 }
49230 if (this.ignoreCommonDataFieldSet)
49231 {
49232 if ((this.ignoreCommonDataField == YesNoType.no))
49233 {
49234 writer.WriteAttributeString("IgnoreCommonData", "no");
49235 }
49236 if ((this.ignoreCommonDataField == YesNoType.yes))
49237 {
49238 writer.WriteAttributeString("IgnoreCommonData", "yes");
49239 }
49240 }
49241 if (this.ignoreInitializeFieldSet)
49242 {
49243 if ((this.ignoreInitializeField == YesNoType.no))
49244 {
49245 writer.WriteAttributeString("IgnoreInitialize", "no");
49246 }
49247 if ((this.ignoreInitializeField == YesNoType.yes))
49248 {
49249 writer.WriteAttributeString("IgnoreInitialize", "yes");
49250 }
49251 }
49252 if (this.ignoreTerminateFieldSet)
49253 {
49254 if ((this.ignoreTerminateField == YesNoType.no))
49255 {
49256 writer.WriteAttributeString("IgnoreTerminate", "no");
49257 }
49258 if ((this.ignoreTerminateField == YesNoType.yes))
49259 {
49260 writer.WriteAttributeString("IgnoreTerminate", "yes");
49261 }
49262 }
49263 if (this.ignoreShowDialogFieldSet)
49264 {
49265 if ((this.ignoreShowDialogField == YesNoType.no))
49266 {
49267 writer.WriteAttributeString("IgnoreShowDialog", "no");
49268 }
49269 if ((this.ignoreShowDialogField == YesNoType.yes))
49270 {
49271 writer.WriteAttributeString("IgnoreShowDialog", "yes");
49272 }
49273 }
49274 if (this.ignoreRMFilesInUseFieldSet)
49275 {
49276 if ((this.ignoreRMFilesInUseField == YesNoType.no))
49277 {
49278 writer.WriteAttributeString("IgnoreRMFilesInUse", "no");
49279 }
49280 if ((this.ignoreRMFilesInUseField == YesNoType.yes))
49281 {
49282 writer.WriteAttributeString("IgnoreRMFilesInUse", "yes");
49283 }
49284 }
49285 if (this.ignoreInstallStartFieldSet)
49286 {
49287 if ((this.ignoreInstallStartField == YesNoType.no))
49288 {
49289 writer.WriteAttributeString("IgnoreInstallStart", "no");
49290 }
49291 if ((this.ignoreInstallStartField == YesNoType.yes))
49292 {
49293 writer.WriteAttributeString("IgnoreInstallStart", "yes");
49294 }
49295 }
49296 if (this.ignoreInstallEndFieldSet)
49297 {
49298 if ((this.ignoreInstallEndField == YesNoType.no))
49299 {
49300 writer.WriteAttributeString("IgnoreInstallEnd", "no");
49301 }
49302 if ((this.ignoreInstallEndField == YesNoType.yes))
49303 {
49304 writer.WriteAttributeString("IgnoreInstallEnd", "yes");
49305 }
49306 }
49307 if (this.nameFieldSet)
49308 {
49309 writer.WriteAttributeString("Name", this.nameField);
49310 }
49311 if (this.sourceFileFieldSet)
49312 {
49313 writer.WriteAttributeString("SourceFile", this.sourceFileField);
49314 }
49315 if (this.supportBasicUIFieldSet)
49316 {
49317 if ((this.supportBasicUIField == YesNoType.no))
49318 {
49319 writer.WriteAttributeString("SupportBasicUI", "no");
49320 }
49321 if ((this.supportBasicUIField == YesNoType.yes))
49322 {
49323 writer.WriteAttributeString("SupportBasicUI", "yes");
49324 }
49325 }
49326 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
49327 {
49328 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
49329 childElement.OutputXml(writer);
49330 }
49331 writer.WriteEndElement();
49332 }
49333
49334 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
49335 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
49336 void ISetAttributes.SetAttribute(string name, string value)
49337 {
49338 if (String.IsNullOrEmpty(name))
49339 {
49340 throw new ArgumentNullException("name");
49341 }
49342 if (("Id" == name))
49343 {
49344 this.idField = value;
49345 this.idFieldSet = true;
49346 }
49347 if (("IgnoreFatalExit" == name))
49348 {
49349 this.ignoreFatalExitField = Enums.ParseYesNoType(value);
49350 this.ignoreFatalExitFieldSet = true;
49351 }
49352 if (("IgnoreError" == name))
49353 {
49354 this.ignoreErrorField = Enums.ParseYesNoType(value);
49355 this.ignoreErrorFieldSet = true;
49356 }
49357 if (("IgnoreWarning" == name))
49358 {
49359 this.ignoreWarningField = Enums.ParseYesNoType(value);
49360 this.ignoreWarningFieldSet = true;
49361 }
49362 if (("IgnoreUser" == name))
49363 {
49364 this.ignoreUserField = Enums.ParseYesNoType(value);
49365 this.ignoreUserFieldSet = true;
49366 }
49367 if (("IgnoreInfo" == name))
49368 {
49369 this.ignoreInfoField = Enums.ParseYesNoType(value);
49370 this.ignoreInfoFieldSet = true;
49371 }
49372 if (("IgnoreFilesInUse" == name))
49373 {
49374 this.ignoreFilesInUseField = Enums.ParseYesNoType(value);
49375 this.ignoreFilesInUseFieldSet = true;
49376 }
49377 if (("IgnoreResolveSource" == name))
49378 {
49379 this.ignoreResolveSourceField = Enums.ParseYesNoType(value);
49380 this.ignoreResolveSourceFieldSet = true;
49381 }
49382 if (("IgnoreOutOfDiskSpace" == name))
49383 {
49384 this.ignoreOutOfDiskSpaceField = Enums.ParseYesNoType(value);
49385 this.ignoreOutOfDiskSpaceFieldSet = true;
49386 }
49387 if (("IgnoreActionStart" == name))
49388 {
49389 this.ignoreActionStartField = Enums.ParseYesNoType(value);
49390 this.ignoreActionStartFieldSet = true;
49391 }
49392 if (("IgnoreActionData" == name))
49393 {
49394 this.ignoreActionDataField = Enums.ParseYesNoType(value);
49395 this.ignoreActionDataFieldSet = true;
49396 }
49397 if (("IgnoreProgress" == name))
49398 {
49399 this.ignoreProgressField = Enums.ParseYesNoType(value);
49400 this.ignoreProgressFieldSet = true;
49401 }
49402 if (("IgnoreCommonData" == name))
49403 {
49404 this.ignoreCommonDataField = Enums.ParseYesNoType(value);
49405 this.ignoreCommonDataFieldSet = true;
49406 }
49407 if (("IgnoreInitialize" == name))
49408 {
49409 this.ignoreInitializeField = Enums.ParseYesNoType(value);
49410 this.ignoreInitializeFieldSet = true;
49411 }
49412 if (("IgnoreTerminate" == name))
49413 {
49414 this.ignoreTerminateField = Enums.ParseYesNoType(value);
49415 this.ignoreTerminateFieldSet = true;
49416 }
49417 if (("IgnoreShowDialog" == name))
49418 {
49419 this.ignoreShowDialogField = Enums.ParseYesNoType(value);
49420 this.ignoreShowDialogFieldSet = true;
49421 }
49422 if (("IgnoreRMFilesInUse" == name))
49423 {
49424 this.ignoreRMFilesInUseField = Enums.ParseYesNoType(value);
49425 this.ignoreRMFilesInUseFieldSet = true;
49426 }
49427 if (("IgnoreInstallStart" == name))
49428 {
49429 this.ignoreInstallStartField = Enums.ParseYesNoType(value);
49430 this.ignoreInstallStartFieldSet = true;
49431 }
49432 if (("IgnoreInstallEnd" == name))
49433 {
49434 this.ignoreInstallEndField = Enums.ParseYesNoType(value);
49435 this.ignoreInstallEndFieldSet = true;
49436 }
49437 if (("Name" == name))
49438 {
49439 this.nameField = value;
49440 this.nameFieldSet = true;
49441 }
49442 if (("SourceFile" == name))
49443 {
49444 this.sourceFileField = value;
49445 this.sourceFileFieldSet = true;
49446 }
49447 if (("SupportBasicUI" == name))
49448 {
49449 this.supportBasicUIField = Enums.ParseYesNoType(value);
49450 this.supportBasicUIFieldSet = true;
49451 }
49452 }
49453 }
49454
49455 /// <summary>
49456 /// Defines a resource for use by the embedded UI.
49457 /// </summary>
49458 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
49459 public class EmbeddedUIResource : ISchemaElement, ISetAttributes
49460 {
49461
49462 private string idField;
49463
49464 private bool idFieldSet;
49465
49466 private string nameField;
49467
49468 private bool nameFieldSet;
49469
49470 private string sourceFileField;
49471
49472 private bool sourceFileFieldSet;
49473
49474 private ISchemaElement parentElement;
49475
49476 /// <summary>
49477 /// Identifier for the embedded UI resource.
49478 /// </summary>
49479 public string Id
49480 {
49481 get
49482 {
49483 return this.idField;
49484 }
49485 set
49486 {
49487 this.idFieldSet = true;
49488 this.idField = value;
49489 }
49490 }
49491
49492 /// <summary>
49493 /// The name for the resource when it is extracted from the Product for use by the embedded UI DLL. (Windows
49494 /// Installer does not support the typical short filename and long filename combination for embedded UI files
49495 /// as it does for other kinds of files.) If this attribute is not specified the Id attribute will be used.
49496 /// </summary>
49497 public string Name
49498 {
49499 get
49500 {
49501 return this.nameField;
49502 }
49503 set
49504 {
49505 this.nameFieldSet = true;
49506 this.nameField = value;
49507 }
49508 }
49509
49510 /// <summary>
49511 /// Path to the binary file that is the embedded UI resource.
49512 /// </summary>
49513 public string SourceFile
49514 {
49515 get
49516 {
49517 return this.sourceFileField;
49518 }
49519 set
49520 {
49521 this.sourceFileFieldSet = true;
49522 this.sourceFileField = value;
49523 }
49524 }
49525
49526 public virtual ISchemaElement ParentElement
49527 {
49528 get
49529 {
49530 return this.parentElement;
49531 }
49532 set
49533 {
49534 this.parentElement = value;
49535 }
49536 }
49537
49538 /// <summary>
49539 /// Processes this element and all child elements into an XmlWriter.
49540 /// </summary>
49541 public virtual void OutputXml(XmlWriter writer)
49542 {
49543 if ((null == writer))
49544 {
49545 throw new ArgumentNullException("writer");
49546 }
49547 writer.WriteStartElement("EmbeddedUIResource", "http://wixtoolset.org/schemas/v4/wxs");
49548 if (this.idFieldSet)
49549 {
49550 writer.WriteAttributeString("Id", this.idField);
49551 }
49552 if (this.nameFieldSet)
49553 {
49554 writer.WriteAttributeString("Name", this.nameField);
49555 }
49556 if (this.sourceFileFieldSet)
49557 {
49558 writer.WriteAttributeString("SourceFile", this.sourceFileField);
49559 }
49560 writer.WriteEndElement();
49561 }
49562
49563 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
49564 void ISetAttributes.SetAttribute(string name, string value)
49565 {
49566 if (String.IsNullOrEmpty(name))
49567 {
49568 throw new ArgumentNullException("name");
49569 }
49570 if (("Id" == name))
49571 {
49572 this.idField = value;
49573 this.idFieldSet = true;
49574 }
49575 if (("Name" == name))
49576 {
49577 this.nameField = value;
49578 this.nameFieldSet = true;
49579 }
49580 if (("SourceFile" == name))
49581 {
49582 this.sourceFileField = value;
49583 this.sourceFileFieldSet = true;
49584 }
49585 }
49586 }
49587
49588 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
49589 public class Error : ISchemaElement, ISetAttributes
49590 {
49591
49592 private int idField;
49593
49594 private bool idFieldSet;
49595
49596 private string contentField;
49597
49598 private bool contentFieldSet;
49599
49600 private ISchemaElement parentElement;
49601
49602 /// <summary>
49603 /// Number of the error for which a message is being provided. See MSI SDK for error definitions.
49604 /// </summary>
49605 public int Id
49606 {
49607 get
49608 {
49609 return this.idField;
49610 }
49611 set
49612 {
49613 this.idFieldSet = true;
49614 this.idField = value;
49615 }
49616 }
49617
49618 /// <summary>
49619 /// Element value is Message, use CDATA if message contains delimiter characters
49620 /// </summary>
49621 public string Content
49622 {
49623 get
49624 {
49625 return this.contentField;
49626 }
49627 set
49628 {
49629 this.contentFieldSet = true;
49630 this.contentField = value;
49631 }
49632 }
49633
49634 public virtual ISchemaElement ParentElement
49635 {
49636 get
49637 {
49638 return this.parentElement;
49639 }
49640 set
49641 {
49642 this.parentElement = value;
49643 }
49644 }
49645
49646 /// <summary>
49647 /// Processes this element and all child elements into an XmlWriter.
49648 /// </summary>
49649 public virtual void OutputXml(XmlWriter writer)
49650 {
49651 if ((null == writer))
49652 {
49653 throw new ArgumentNullException("writer");
49654 }
49655 writer.WriteStartElement("Error", "http://wixtoolset.org/schemas/v4/wxs");
49656 if (this.idFieldSet)
49657 {
49658 writer.WriteAttributeString("Id", this.idField.ToString(CultureInfo.InvariantCulture));
49659 }
49660 if (this.contentFieldSet)
49661 {
49662 writer.WriteString(this.contentField);
49663 }
49664 writer.WriteEndElement();
49665 }
49666
49667 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
49668 void ISetAttributes.SetAttribute(string name, string value)
49669 {
49670 if (String.IsNullOrEmpty(name))
49671 {
49672 throw new ArgumentNullException("name");
49673 }
49674 if (("Id" == name))
49675 {
49676 this.idField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
49677 this.idFieldSet = true;
49678 }
49679 if (("Content" == name))
49680 {
49681 this.contentField = value;
49682 this.contentFieldSet = true;
49683 }
49684 }
49685 }
49686
49687 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
49688 public class Publish : ISchemaElement, ISetAttributes
49689 {
49690
49691 private string controlField;
49692
49693 private bool controlFieldSet;
49694
49695 private string dialogField;
49696
49697 private bool dialogFieldSet;
49698
49699 private string eventField;
49700
49701 private bool eventFieldSet;
49702
49703 private string orderField;
49704
49705 private bool orderFieldSet;
49706
49707 private string propertyField;
49708
49709 private bool propertyFieldSet;
49710
49711 private string valueField;
49712
49713 private bool valueFieldSet;
49714
49715 private string contentField;
49716
49717 private bool contentFieldSet;
49718
49719 private ISchemaElement parentElement;
49720
49721 /// <summary>
49722 /// The parent Control for this Publish element, should only be specified when this element is a child of the UI element.
49723 /// </summary>
49724 public string Control
49725 {
49726 get
49727 {
49728 return this.controlField;
49729 }
49730 set
49731 {
49732 this.controlFieldSet = true;
49733 this.controlField = value;
49734 }
49735 }
49736
49737 /// <summary>
49738 /// The parent Dialog for this Publish element, should only be specified when this element is a child of the UI element.
49739 /// This attribute will create a reference to the specified Dialog, so an additional DialogRef is not necessary.
49740 /// </summary>
49741 public string Dialog
49742 {
49743 get
49744 {
49745 return this.dialogField;
49746 }
49747 set
49748 {
49749 this.dialogFieldSet = true;
49750 this.dialogField = value;
49751 }
49752 }
49753
49754 /// <summary>
49755 /// Set this attribute's value to one of the standard control events to trigger that event.
49756 /// Either this attribute or the Property attribute must be set, but not both at the same time.
49757 /// </summary>
49758 public string Event
49759 {
49760 get
49761 {
49762 return this.eventField;
49763 }
49764 set
49765 {
49766 this.eventFieldSet = true;
49767 this.eventField = value;
49768 }
49769 }
49770
49771 /// <summary>
49772 /// This attribute should only need to be set if this element is nested under a UI element in order to
49773 /// control the order in which this publish event will be started.
49774 /// If this element is nested under a Control element, the default value will be one greater than any
49775 /// previous Publish element's order (the first element's default value is 1).
49776 /// If this element is nested under a UI element, the default value is always 1 (it does not get a
49777 /// default value based on any previous Publish elements).
49778 /// </summary>
49779 public string Order
49780 {
49781 get
49782 {
49783 return this.orderField;
49784 }
49785 set
49786 {
49787 this.orderFieldSet = true;
49788 this.orderField = value;
49789 }
49790 }
49791
49792 /// <summary>
49793 /// Set this attribute's value to a property name to set that property.
49794 /// Either this attribute or the Event attribute must be set, but not both at the same time.
49795 /// </summary>
49796 public string Property
49797 {
49798 get
49799 {
49800 return this.propertyField;
49801 }
49802 set
49803 {
49804 this.propertyFieldSet = true;
49805 this.propertyField = value;
49806 }
49807 }
49808
49809 /// <summary>
49810 /// If the Property attribute is specified, set the value of this attribute to the new value for the property.
49811 /// To set a property to null, do not set this attribute (the ControlEvent Argument column will be set to '{}').
49812 /// Otherwise, this attribute's value should be the argument for the event specified in the Event attribute.
49813 /// If the event doesn't take an attribute, a common value to use is "0".
49814 /// </summary>
49815 public string Value
49816 {
49817 get
49818 {
49819 return this.valueField;
49820 }
49821 set
49822 {
49823 this.valueFieldSet = true;
49824 this.valueField = value;
49825 }
49826 }
49827
49828 /// <summary>
49829 /// The element value is the optional Condition expression.
49830 /// </summary>
49831 public string Content
49832 {
49833 get
49834 {
49835 return this.contentField;
49836 }
49837 set
49838 {
49839 this.contentFieldSet = true;
49840 this.contentField = value;
49841 }
49842 }
49843
49844 public virtual ISchemaElement ParentElement
49845 {
49846 get
49847 {
49848 return this.parentElement;
49849 }
49850 set
49851 {
49852 this.parentElement = value;
49853 }
49854 }
49855
49856 /// <summary>
49857 /// Processes this element and all child elements into an XmlWriter.
49858 /// </summary>
49859 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
49860 public virtual void OutputXml(XmlWriter writer)
49861 {
49862 if ((null == writer))
49863 {
49864 throw new ArgumentNullException("writer");
49865 }
49866 writer.WriteStartElement("Publish", "http://wixtoolset.org/schemas/v4/wxs");
49867 if (this.controlFieldSet)
49868 {
49869 writer.WriteAttributeString("Control", this.controlField);
49870 }
49871 if (this.dialogFieldSet)
49872 {
49873 writer.WriteAttributeString("Dialog", this.dialogField);
49874 }
49875 if (this.eventFieldSet)
49876 {
49877 writer.WriteAttributeString("Event", this.eventField);
49878 }
49879 if (this.orderFieldSet)
49880 {
49881 writer.WriteAttributeString("Order", this.orderField);
49882 }
49883 if (this.propertyFieldSet)
49884 {
49885 writer.WriteAttributeString("Property", this.propertyField);
49886 }
49887 if (this.valueFieldSet)
49888 {
49889 writer.WriteAttributeString("Value", this.valueField);
49890 }
49891 if (this.contentFieldSet)
49892 {
49893 writer.WriteString(this.contentField);
49894 }
49895 writer.WriteEndElement();
49896 }
49897
49898 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
49899 void ISetAttributes.SetAttribute(string name, string value)
49900 {
49901 if (String.IsNullOrEmpty(name))
49902 {
49903 throw new ArgumentNullException("name");
49904 }
49905 if (("Control" == name))
49906 {
49907 this.controlField = value;
49908 this.controlFieldSet = true;
49909 }
49910 if (("Dialog" == name))
49911 {
49912 this.dialogField = value;
49913 this.dialogFieldSet = true;
49914 }
49915 if (("Event" == name))
49916 {
49917 this.eventField = value;
49918 this.eventFieldSet = true;
49919 }
49920 if (("Order" == name))
49921 {
49922 this.orderField = value;
49923 this.orderFieldSet = true;
49924 }
49925 if (("Property" == name))
49926 {
49927 this.propertyField = value;
49928 this.propertyFieldSet = true;
49929 }
49930 if (("Value" == name))
49931 {
49932 this.valueField = value;
49933 this.valueFieldSet = true;
49934 }
49935 if (("Content" == name))
49936 {
49937 this.contentField = value;
49938 this.contentFieldSet = true;
49939 }
49940 }
49941 }
49942
49943 /// <summary>
49944 /// Sets attributes for events in the EventMapping table
49945 /// </summary>
49946 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
49947 public class Subscribe : ISchemaElement, ISetAttributes
49948 {
49949
49950 private string eventField;
49951
49952 private bool eventFieldSet;
49953
49954 private string attributeField;
49955
49956 private bool attributeFieldSet;
49957
49958 private ISchemaElement parentElement;
49959
49960 /// <summary>
49961 /// must be one of the standard control events'
49962 /// </summary>
49963 public string Event
49964 {
49965 get
49966 {
49967 return this.eventField;
49968 }
49969 set
49970 {
49971 this.eventFieldSet = true;
49972 this.eventField = value;
49973 }
49974 }
49975
49976 /// <summary>
49977 /// if not present can only handle enable, disable, hide, unhide events
49978 /// </summary>
49979 public string Attribute
49980 {
49981 get
49982 {
49983 return this.attributeField;
49984 }
49985 set
49986 {
49987 this.attributeFieldSet = true;
49988 this.attributeField = value;
49989 }
49990 }
49991
49992 public virtual ISchemaElement ParentElement
49993 {
49994 get
49995 {
49996 return this.parentElement;
49997 }
49998 set
49999 {
50000 this.parentElement = value;
50001 }
50002 }
50003
50004 /// <summary>
50005 /// Processes this element and all child elements into an XmlWriter.
50006 /// </summary>
50007 public virtual void OutputXml(XmlWriter writer)
50008 {
50009 if ((null == writer))
50010 {
50011 throw new ArgumentNullException("writer");
50012 }
50013 writer.WriteStartElement("Subscribe", "http://wixtoolset.org/schemas/v4/wxs");
50014 if (this.eventFieldSet)
50015 {
50016 writer.WriteAttributeString("Event", this.eventField);
50017 }
50018 if (this.attributeFieldSet)
50019 {
50020 writer.WriteAttributeString("Attribute", this.attributeField);
50021 }
50022 writer.WriteEndElement();
50023 }
50024
50025 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
50026 void ISetAttributes.SetAttribute(string name, string value)
50027 {
50028 if (String.IsNullOrEmpty(name))
50029 {
50030 throw new ArgumentNullException("name");
50031 }
50032 if (("Event" == name))
50033 {
50034 this.eventField = value;
50035 this.eventFieldSet = true;
50036 }
50037 if (("Attribute" == name))
50038 {
50039 this.attributeField = value;
50040 this.attributeFieldSet = true;
50041 }
50042 }
50043 }
50044
50045 /// <summary>
50046 /// An alternative to using the Text attribute when the value contains special XML characters like &lt;, &gt;, or &amp;.
50047 /// </summary>
50048 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
50049 public class Text : ISchemaElement, ISetAttributes
50050 {
50051
50052 private string sourceFileField;
50053
50054 private bool sourceFileFieldSet;
50055
50056 private string srcField;
50057
50058 private bool srcFieldSet;
50059
50060 private string contentField;
50061
50062 private bool contentFieldSet;
50063
50064 private ISchemaElement parentElement;
50065
50066 /// <summary>
50067 /// Instructs the text to be imported from a file instead of the element value during the binding process.
50068 /// </summary>
50069 public string SourceFile
50070 {
50071 get
50072 {
50073 return this.sourceFileField;
50074 }
50075 set
50076 {
50077 this.sourceFileFieldSet = true;
50078 this.sourceFileField = value;
50079 }
50080 }
50081
50082 [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
50083 public string src
50084 {
50085 get
50086 {
50087 return this.srcField;
50088 }
50089 set
50090 {
50091 this.srcFieldSet = true;
50092 this.srcField = value;
50093 }
50094 }
50095
50096 public string Content
50097 {
50098 get
50099 {
50100 return this.contentField;
50101 }
50102 set
50103 {
50104 this.contentFieldSet = true;
50105 this.contentField = value;
50106 }
50107 }
50108
50109 public virtual ISchemaElement ParentElement
50110 {
50111 get
50112 {
50113 return this.parentElement;
50114 }
50115 set
50116 {
50117 this.parentElement = value;
50118 }
50119 }
50120
50121 /// <summary>
50122 /// Processes this element and all child elements into an XmlWriter.
50123 /// </summary>
50124 public virtual void OutputXml(XmlWriter writer)
50125 {
50126 if ((null == writer))
50127 {
50128 throw new ArgumentNullException("writer");
50129 }
50130 writer.WriteStartElement("Text", "http://wixtoolset.org/schemas/v4/wxs");
50131 if (this.sourceFileFieldSet)
50132 {
50133 writer.WriteAttributeString("SourceFile", this.sourceFileField);
50134 }
50135 if (this.srcFieldSet)
50136 {
50137 writer.WriteAttributeString("src", this.srcField);
50138 }
50139 if (this.contentFieldSet)
50140 {
50141 writer.WriteString(this.contentField);
50142 }
50143 writer.WriteEndElement();
50144 }
50145
50146 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
50147 void ISetAttributes.SetAttribute(string name, string value)
50148 {
50149 if (String.IsNullOrEmpty(name))
50150 {
50151 throw new ArgumentNullException("name");
50152 }
50153 if (("SourceFile" == name))
50154 {
50155 this.sourceFileField = value;
50156 this.sourceFileFieldSet = true;
50157 }
50158 if (("src" == name))
50159 {
50160 this.srcField = value;
50161 this.srcFieldSet = true;
50162 }
50163 if (("Content" == name))
50164 {
50165 this.contentField = value;
50166 this.contentFieldSet = true;
50167 }
50168 }
50169 }
50170
50171 /// <summary>
50172 /// Contains the controls that appear on each dialog.
50173 /// </summary>
50174 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
50175 public class Control : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
50176 {
50177
50178 private ElementCollection children;
50179
50180 private string idField;
50181
50182 private bool idFieldSet;
50183
50184 private string typeField;
50185
50186 private bool typeFieldSet;
50187
50188 private string xField;
50189
50190 private bool xFieldSet;
50191
50192 private string yField;
50193
50194 private bool yFieldSet;
50195
50196 private string widthField;
50197
50198 private bool widthFieldSet;
50199
50200 private string heightField;
50201
50202 private bool heightFieldSet;
50203
50204 private string propertyField;
50205
50206 private bool propertyFieldSet;
50207
50208 private string textField;
50209
50210 private bool textFieldSet;
50211
50212 private string helpField;
50213
50214 private bool helpFieldSet;
50215
50216 private string toolTipField;
50217
50218 private bool toolTipFieldSet;
50219
50220 private string checkBoxValueField;
50221
50222 private bool checkBoxValueFieldSet;
50223
50224 private string checkBoxPropertyRefField;
50225
50226 private bool checkBoxPropertyRefFieldSet;
50227
50228 private YesNoType tabSkipField;
50229
50230 private bool tabSkipFieldSet;
50231
50232 private YesNoType defaultField;
50233
50234 private bool defaultFieldSet;
50235
50236 private YesNoType cancelField;
50237
50238 private bool cancelFieldSet;
50239
50240 private YesNoType hiddenField;
50241
50242 private bool hiddenFieldSet;
50243
50244 private YesNoType disabledField;
50245
50246 private bool disabledFieldSet;
50247
50248 private YesNoType sunkenField;
50249
50250 private bool sunkenFieldSet;
50251
50252 private YesNoType indirectField;
50253
50254 private bool indirectFieldSet;
50255
50256 private YesNoType integerField;
50257
50258 private bool integerFieldSet;
50259
50260 private YesNoType rightToLeftField;
50261
50262 private bool rightToLeftFieldSet;
50263
50264 private YesNoType rightAlignedField;
50265
50266 private bool rightAlignedFieldSet;
50267
50268 private YesNoType leftScrollField;
50269
50270 private bool leftScrollFieldSet;
50271
50272 private YesNoType transparentField;
50273
50274 private bool transparentFieldSet;
50275
50276 private YesNoType noPrefixField;
50277
50278 private bool noPrefixFieldSet;
50279
50280 private YesNoType noWrapField;
50281
50282 private bool noWrapFieldSet;
50283
50284 private YesNoType formatSizeField;
50285
50286 private bool formatSizeFieldSet;
50287
50288 private YesNoType userLanguageField;
50289
50290 private bool userLanguageFieldSet;
50291
50292 private YesNoType multilineField;
50293
50294 private bool multilineFieldSet;
50295
50296 private YesNoType passwordField;
50297
50298 private bool passwordFieldSet;
50299
50300 private YesNoType progressBlocksField;
50301
50302 private bool progressBlocksFieldSet;
50303
50304 private YesNoType removableField;
50305
50306 private bool removableFieldSet;
50307
50308 private YesNoType fixedField;
50309
50310 private bool fixedFieldSet;
50311
50312 private YesNoType remoteField;
50313
50314 private bool remoteFieldSet;
50315
50316 private YesNoType cDROMField;
50317
50318 private bool cDROMFieldSet;
50319
50320 private YesNoType rAMDiskField;
50321
50322 private bool rAMDiskFieldSet;
50323
50324 private YesNoType floppyField;
50325
50326 private bool floppyFieldSet;
50327
50328 private YesNoType showRollbackCostField;
50329
50330 private bool showRollbackCostFieldSet;
50331
50332 private YesNoType sortedField;
50333
50334 private bool sortedFieldSet;
50335
50336 private YesNoType comboListField;
50337
50338 private bool comboListFieldSet;
50339
50340 private YesNoType imageField;
50341
50342 private bool imageFieldSet;
50343
50344 private IconSizeType iconSizeField;
50345
50346 private bool iconSizeFieldSet;
50347
50348 private YesNoType fixedSizeField;
50349
50350 private bool fixedSizeFieldSet;
50351
50352 private YesNoType iconField;
50353
50354 private bool iconFieldSet;
50355
50356 private YesNoType bitmapField;
50357
50358 private bool bitmapFieldSet;
50359
50360 private YesNoType pushLikeField;
50361
50362 private bool pushLikeFieldSet;
50363
50364 private YesNoType hasBorderField;
50365
50366 private bool hasBorderFieldSet;
50367
50368 private YesNoType elevationShieldField;
50369
50370 private bool elevationShieldFieldSet;
50371
50372 private ISchemaElement parentElement;
50373
50374 public Control()
50375 {
50376 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
50377 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Text)));
50378 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ComboBox)));
50379 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ListBox)));
50380 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ListView)));
50381 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(RadioButtonGroup)));
50382 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Property)));
50383 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Binary)));
50384 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice);
50385 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Condition)));
50386 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Publish)));
50387 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Subscribe)));
50388 childCollection0.AddCollection(childCollection1);
50389 this.children = childCollection0;
50390 }
50391
50392 public virtual IEnumerable Children
50393 {
50394 get
50395 {
50396 return this.children;
50397 }
50398 }
50399
50400 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
50401 public virtual IEnumerable this[System.Type childType]
50402 {
50403 get
50404 {
50405 return this.children.Filter(childType);
50406 }
50407 }
50408
50409 /// <summary>
50410 /// Combined with the Dialog Id to make up the primary key of the Control table.
50411 /// </summary>
50412 public string Id
50413 {
50414 get
50415 {
50416 return this.idField;
50417 }
50418 set
50419 {
50420 this.idFieldSet = true;
50421 this.idField = value;
50422 }
50423 }
50424
50425 /// <summary>
50426 /// The type of the control. Could be one of the following: Billboard, Bitmap, CheckBox, ComboBox, DirectoryCombo, DirectoryList, Edit, GroupBox, Hyperlink, Icon, Line, ListBox, ListView, MaskedEdit, PathEdit, ProgressBar, PushButton, RadioButtonGroup, ScrollableText, SelectionTree, Text, VolumeCostList, VolumeSelectCombo
50427 /// </summary>
50428 public string Type
50429 {
50430 get
50431 {
50432 return this.typeField;
50433 }
50434 set
50435 {
50436 this.typeFieldSet = true;
50437 this.typeField = value;
50438 }
50439 }
50440
50441 /// <summary>
50442 /// Horizontal coordinate of the upper-left corner of the rectangular boundary of the control. This must be a non-negative number.
50443 /// </summary>
50444 public string X
50445 {
50446 get
50447 {
50448 return this.xField;
50449 }
50450 set
50451 {
50452 this.xFieldSet = true;
50453 this.xField = value;
50454 }
50455 }
50456
50457 /// <summary>
50458 /// Vertical coordinate of the upper-left corner of the rectangular boundary of the control. This must be a non-negative number.
50459 /// </summary>
50460 public string Y
50461 {
50462 get
50463 {
50464 return this.yField;
50465 }
50466 set
50467 {
50468 this.yFieldSet = true;
50469 this.yField = value;
50470 }
50471 }
50472
50473 /// <summary>
50474 /// Width of the rectangular boundary of the control. This must be a non-negative number.
50475 /// </summary>
50476 public string Width
50477 {
50478 get
50479 {
50480 return this.widthField;
50481 }
50482 set
50483 {
50484 this.widthFieldSet = true;
50485 this.widthField = value;
50486 }
50487 }
50488
50489 /// <summary>
50490 /// Height of the rectangular boundary of the control. This must be a non-negative number.
50491 /// </summary>
50492 public string Height
50493 {
50494 get
50495 {
50496 return this.heightField;
50497 }
50498 set
50499 {
50500 this.heightFieldSet = true;
50501 this.heightField = value;
50502 }
50503 }
50504
50505 /// <summary>
50506 /// The name of a defined property to be linked to this control. This column is required for active controls.
50507 /// </summary>
50508 public string Property
50509 {
50510 get
50511 {
50512 return this.propertyField;
50513 }
50514 set
50515 {
50516 this.propertyFieldSet = true;
50517 this.propertyField = value;
50518 }
50519 }
50520
50521 /// <summary>
50522 /// A localizable string used to set the initial text contained in a control. This attribute can contain a formatted string that is processed at install time to insert the values of properties using [PropertyName] syntax. Also supported are environment variables, file installation paths, and component installation directories; see
50523 /// </summary>
50524 public string Text
50525 {
50526 get
50527 {
50528 return this.textField;
50529 }
50530 set
50531 {
50532 this.textFieldSet = true;
50533 this.textField = value;
50534 }
50535 }
50536
50537 /// <summary>
50538 /// This attribute is reserved for future use. There is no need to use this until Windows Installer uses it for something.
50539 /// </summary>
50540 public string Help
50541 {
50542 get
50543 {
50544 return this.helpField;
50545 }
50546 set
50547 {
50548 this.helpFieldSet = true;
50549 this.helpField = value;
50550 }
50551 }
50552
50553 /// <summary>
50554 /// The string used for the Tooltip.
50555 /// </summary>
50556 public string ToolTip
50557 {
50558 get
50559 {
50560 return this.toolTipField;
50561 }
50562 set
50563 {
50564 this.toolTipFieldSet = true;
50565 this.toolTipField = value;
50566 }
50567 }
50568
50569 /// <summary>
50570 /// This attribute is only valid for CheckBox Controls. When set, the linked Property will be set to this value when the check box is checked.
50571 /// </summary>
50572 public string CheckBoxValue
50573 {
50574 get
50575 {
50576 return this.checkBoxValueField;
50577 }
50578 set
50579 {
50580 this.checkBoxValueFieldSet = true;
50581 this.checkBoxValueField = value;
50582 }
50583 }
50584
50585 /// <summary>
50586 /// This attribute is only valid for CheckBox controls. The value is the name of a Property that was already used as the Property for another CheckBox control. The Property attribute cannot be specified. The attribute exists to support multiple checkboxes on different dialogs being tied to the same property.
50587 /// </summary>
50588 public string CheckBoxPropertyRef
50589 {
50590 get
50591 {
50592 return this.checkBoxPropertyRefField;
50593 }
50594 set
50595 {
50596 this.checkBoxPropertyRefFieldSet = true;
50597 this.checkBoxPropertyRefField = value;
50598 }
50599 }
50600
50601 /// <summary>
50602 /// Set this attribute to "yes" to cause this Control to be skipped in the tab sequence.
50603 /// </summary>
50604 public YesNoType TabSkip
50605 {
50606 get
50607 {
50608 return this.tabSkipField;
50609 }
50610 set
50611 {
50612 this.tabSkipFieldSet = true;
50613 this.tabSkipField = value;
50614 }
50615 }
50616
50617 /// <summary>
50618 /// Set this attribute to "yes" to cause this Control to be invoked by the return key.
50619 /// </summary>
50620 public YesNoType Default
50621 {
50622 get
50623 {
50624 return this.defaultField;
50625 }
50626 set
50627 {
50628 this.defaultFieldSet = true;
50629 this.defaultField = value;
50630 }
50631 }
50632
50633 /// <summary>
50634 /// Set this attribute to "yes" to cause this Control to be invoked by the escape key.
50635 /// </summary>
50636 public YesNoType Cancel
50637 {
50638 get
50639 {
50640 return this.cancelField;
50641 }
50642 set
50643 {
50644 this.cancelFieldSet = true;
50645 this.cancelField = value;
50646 }
50647 }
50648
50649 /// <summary>
50650 /// Set this attribute to "yes" to cause the Control to be hidden.
50651 /// </summary>
50652 public YesNoType Hidden
50653 {
50654 get
50655 {
50656 return this.hiddenField;
50657 }
50658 set
50659 {
50660 this.hiddenFieldSet = true;
50661 this.hiddenField = value;
50662 }
50663 }
50664
50665 /// <summary>
50666 /// Set this attribute to "yes" to cause the Control to be disabled.
50667 /// </summary>
50668 public YesNoType Disabled
50669 {
50670 get
50671 {
50672 return this.disabledField;
50673 }
50674 set
50675 {
50676 this.disabledFieldSet = true;
50677 this.disabledField = value;
50678 }
50679 }
50680
50681 /// <summary>
50682 /// Set this attribute to "yes" to cause the Control to be sunken.
50683 /// </summary>
50684 public YesNoType Sunken
50685 {
50686 get
50687 {
50688 return this.sunkenField;
50689 }
50690 set
50691 {
50692 this.sunkenFieldSet = true;
50693 this.sunkenField = value;
50694 }
50695 }
50696
50697 /// <summary>
50698 /// Specifies whether the value displayed or changed by this control is referenced indirectly. If this bit is set, the control displays or changes the value of the property that has the identifier listed in the Property column of the Control table.
50699 /// </summary>
50700 public YesNoType Indirect
50701 {
50702 get
50703 {
50704 return this.indirectField;
50705 }
50706 set
50707 {
50708 this.indirectFieldSet = true;
50709 this.indirectField = value;
50710 }
50711 }
50712
50713 /// <summary>
50714 /// Set this attribute to "yes" to cause the linked Property value for the Control to be treated as an integer. Otherwise, the Property will be treated as a string.
50715 /// </summary>
50716 public YesNoType Integer
50717 {
50718 get
50719 {
50720 return this.integerField;
50721 }
50722 set
50723 {
50724 this.integerFieldSet = true;
50725 this.integerField = value;
50726 }
50727 }
50728
50729 /// <summary>
50730 /// Set this attribute to "yes" to cause the Control to display from right to left.
50731 /// </summary>
50732 public YesNoType RightToLeft
50733 {
50734 get
50735 {
50736 return this.rightToLeftField;
50737 }
50738 set
50739 {
50740 this.rightToLeftFieldSet = true;
50741 this.rightToLeftField = value;
50742 }
50743 }
50744
50745 /// <summary>
50746 /// Set this attribute to "yes" to cause the Control to be right aligned.
50747 /// </summary>
50748 public YesNoType RightAligned
50749 {
50750 get
50751 {
50752 return this.rightAlignedField;
50753 }
50754 set
50755 {
50756 this.rightAlignedFieldSet = true;
50757 this.rightAlignedField = value;
50758 }
50759 }
50760
50761 /// <summary>
50762 /// Set this attribute to "yes" to cause the scroll bar to display on the left side of the Control.
50763 /// </summary>
50764 public YesNoType LeftScroll
50765 {
50766 get
50767 {
50768 return this.leftScrollField;
50769 }
50770 set
50771 {
50772 this.leftScrollFieldSet = true;
50773 this.leftScrollField = value;
50774 }
50775 }
50776
50777 /// <summary>
50778 /// This attribute is only valid for Text Controls.
50779 /// </summary>
50780 public YesNoType Transparent
50781 {
50782 get
50783 {
50784 return this.transparentField;
50785 }
50786 set
50787 {
50788 this.transparentFieldSet = true;
50789 this.transparentField = value;
50790 }
50791 }
50792
50793 /// <summary>
50794 /// This attribute is only valid for Text Controls.
50795 /// </summary>
50796 public YesNoType NoPrefix
50797 {
50798 get
50799 {
50800 return this.noPrefixField;
50801 }
50802 set
50803 {
50804 this.noPrefixFieldSet = true;
50805 this.noPrefixField = value;
50806 }
50807 }
50808
50809 /// <summary>
50810 /// This attribute is only valid for Text Controls.
50811 /// </summary>
50812 public YesNoType NoWrap
50813 {
50814 get
50815 {
50816 return this.noWrapField;
50817 }
50818 set
50819 {
50820 this.noWrapFieldSet = true;
50821 this.noWrapField = value;
50822 }
50823 }
50824
50825 /// <summary>
50826 /// This attribute is only valid for Text Controls.
50827 /// </summary>
50828 public YesNoType FormatSize
50829 {
50830 get
50831 {
50832 return this.formatSizeField;
50833 }
50834 set
50835 {
50836 this.formatSizeFieldSet = true;
50837 this.formatSizeField = value;
50838 }
50839 }
50840
50841 /// <summary>
50842 /// This attribute is only valid for Text Controls.
50843 /// </summary>
50844 public YesNoType UserLanguage
50845 {
50846 get
50847 {
50848 return this.userLanguageField;
50849 }
50850 set
50851 {
50852 this.userLanguageFieldSet = true;
50853 this.userLanguageField = value;
50854 }
50855 }
50856
50857 /// <summary>
50858 /// This attribute is only valid for Edit Controls.
50859 /// </summary>
50860 public YesNoType Multiline
50861 {
50862 get
50863 {
50864 return this.multilineField;
50865 }
50866 set
50867 {
50868 this.multilineFieldSet = true;
50869 this.multilineField = value;
50870 }
50871 }
50872
50873 /// <summary>
50874 /// This attribute is only valid for Edit Controls.
50875 /// </summary>
50876 public YesNoType Password
50877 {
50878 get
50879 {
50880 return this.passwordField;
50881 }
50882 set
50883 {
50884 this.passwordFieldSet = true;
50885 this.passwordField = value;
50886 }
50887 }
50888
50889 /// <summary>
50890 /// This attribute is only valid for ProgressBar Controls.
50891 /// </summary>
50892 public YesNoType ProgressBlocks
50893 {
50894 get
50895 {
50896 return this.progressBlocksField;
50897 }
50898 set
50899 {
50900 this.progressBlocksFieldSet = true;
50901 this.progressBlocksField = value;
50902 }
50903 }
50904
50905 /// <summary>
50906 /// This attribute is only valid for Volume and Directory Controls.
50907 /// </summary>
50908 public YesNoType Removable
50909 {
50910 get
50911 {
50912 return this.removableField;
50913 }
50914 set
50915 {
50916 this.removableFieldSet = true;
50917 this.removableField = value;
50918 }
50919 }
50920
50921 /// <summary>
50922 /// This attribute is only valid for Volume and Directory Controls.
50923 /// </summary>
50924 public YesNoType Fixed
50925 {
50926 get
50927 {
50928 return this.fixedField;
50929 }
50930 set
50931 {
50932 this.fixedFieldSet = true;
50933 this.fixedField = value;
50934 }
50935 }
50936
50937 /// <summary>
50938 /// This attribute is only valid for Volume and Directory Controls.
50939 /// </summary>
50940 public YesNoType Remote
50941 {
50942 get
50943 {
50944 return this.remoteField;
50945 }
50946 set
50947 {
50948 this.remoteFieldSet = true;
50949 this.remoteField = value;
50950 }
50951 }
50952
50953 /// <summary>
50954 /// This attribute is only valid for Volume and Directory Controls.
50955 /// </summary>
50956 [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")]
50957 public YesNoType CDROM
50958 {
50959 get
50960 {
50961 return this.cDROMField;
50962 }
50963 set
50964 {
50965 this.cDROMFieldSet = true;
50966 this.cDROMField = value;
50967 }
50968 }
50969
50970 /// <summary>
50971 /// This attribute is only valid for Volume and Directory Controls.
50972 /// </summary>
50973 [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")]
50974 public YesNoType RAMDisk
50975 {
50976 get
50977 {
50978 return this.rAMDiskField;
50979 }
50980 set
50981 {
50982 this.rAMDiskFieldSet = true;
50983 this.rAMDiskField = value;
50984 }
50985 }
50986
50987 /// <summary>
50988 /// This attribute is only valid for Volume and Directory Controls.
50989 /// </summary>
50990 public YesNoType Floppy
50991 {
50992 get
50993 {
50994 return this.floppyField;
50995 }
50996 set
50997 {
50998 this.floppyFieldSet = true;
50999 this.floppyField = value;
51000 }
51001 }
51002
51003 /// <summary>
51004 /// This attribute is only valid for VolumeCostList Controls.
51005 /// </summary>
51006 public YesNoType ShowRollbackCost
51007 {
51008 get
51009 {
51010 return this.showRollbackCostField;
51011 }
51012 set
51013 {
51014 this.showRollbackCostFieldSet = true;
51015 this.showRollbackCostField = value;
51016 }
51017 }
51018
51019 /// <summary>
51020 /// This attribute is only valid for ListBox, ListView, and ComboBox Controls. Set
51021 /// the value of this attribute to "yes" to have entries appear in the order specified under the Control.
51022 /// If the attribute value is "no" or absent the entries in the control will appear in alphabetical order.
51023 /// </summary>
51024 public YesNoType Sorted
51025 {
51026 get
51027 {
51028 return this.sortedField;
51029 }
51030 set
51031 {
51032 this.sortedFieldSet = true;
51033 this.sortedField = value;
51034 }
51035 }
51036
51037 /// <summary>
51038 /// This attribute is only valid for ComboBox Controls.
51039 /// </summary>
51040 public YesNoType ComboList
51041 {
51042 get
51043 {
51044 return this.comboListField;
51045 }
51046 set
51047 {
51048 this.comboListFieldSet = true;
51049 this.comboListField = value;
51050 }
51051 }
51052
51053 /// <summary>
51054 /// This attribute is only valid for RadioButton, PushButton, and Icon Controls.
51055 /// </summary>
51056 public YesNoType Image
51057 {
51058 get
51059 {
51060 return this.imageField;
51061 }
51062 set
51063 {
51064 this.imageFieldSet = true;
51065 this.imageField = value;
51066 }
51067 }
51068
51069 /// <summary>
51070 /// This attribute is only valid for RadioButton, PushButton, and Icon Controls.
51071 /// </summary>
51072 public IconSizeType IconSize
51073 {
51074 get
51075 {
51076 return this.iconSizeField;
51077 }
51078 set
51079 {
51080 this.iconSizeFieldSet = true;
51081 this.iconSizeField = value;
51082 }
51083 }
51084
51085 /// <summary>
51086 /// This attribute is only valid for RadioButton, PushButton, and Icon Controls.
51087 /// </summary>
51088 public YesNoType FixedSize
51089 {
51090 get
51091 {
51092 return this.fixedSizeField;
51093 }
51094 set
51095 {
51096 this.fixedSizeFieldSet = true;
51097 this.fixedSizeField = value;
51098 }
51099 }
51100
51101 /// <summary>
51102 /// This attribute is only valid for RadioButton and PushButton Controls.
51103 /// </summary>
51104 public YesNoType Icon
51105 {
51106 get
51107 {
51108 return this.iconField;
51109 }
51110 set
51111 {
51112 this.iconFieldSet = true;
51113 this.iconField = value;
51114 }
51115 }
51116
51117 /// <summary>
51118 /// This attribute is only valid for RadioButton and PushButton Controls.
51119 /// </summary>
51120 public YesNoType Bitmap
51121 {
51122 get
51123 {
51124 return this.bitmapField;
51125 }
51126 set
51127 {
51128 this.bitmapFieldSet = true;
51129 this.bitmapField = value;
51130 }
51131 }
51132
51133 /// <summary>
51134 /// This attribute is only valid for RadioButton and Checkbox Controls.
51135 /// </summary>
51136 public YesNoType PushLike
51137 {
51138 get
51139 {
51140 return this.pushLikeField;
51141 }
51142 set
51143 {
51144 this.pushLikeFieldSet = true;
51145 this.pushLikeField = value;
51146 }
51147 }
51148
51149 /// <summary>
51150 /// This attribute is only valid for RadioButton Controls.
51151 /// </summary>
51152 public YesNoType HasBorder
51153 {
51154 get
51155 {
51156 return this.hasBorderField;
51157 }
51158 set
51159 {
51160 this.hasBorderFieldSet = true;
51161 this.hasBorderField = value;
51162 }
51163 }
51164
51165 /// <summary>
51166 /// This attribute is only valid for PushButton controls.
51167 /// Set this attribute to "yes" to add the User Account Control (UAC) elevation icon (shield icon) to the PushButton control.
51168 /// If this attribute's value is "yes" and the installation is not yet running with elevated privileges,
51169 /// the pushbutton control is created using the User Account Control (UAC) elevation icon (shield icon).
51170 /// If this attribute's value is "yes" and the installation is already running with elevated privileges,
51171 /// the pushbutton control is created using the other icon attributes.
51172 /// Otherwise, the pushbutton control is created using the other icon attributes.
51173 /// </summary>
51174 public YesNoType ElevationShield
51175 {
51176 get
51177 {
51178 return this.elevationShieldField;
51179 }
51180 set
51181 {
51182 this.elevationShieldFieldSet = true;
51183 this.elevationShieldField = value;
51184 }
51185 }
51186
51187 public virtual ISchemaElement ParentElement
51188 {
51189 get
51190 {
51191 return this.parentElement;
51192 }
51193 set
51194 {
51195 this.parentElement = value;
51196 }
51197 }
51198
51199 public virtual void AddChild(ISchemaElement child)
51200 {
51201 if ((null == child))
51202 {
51203 throw new ArgumentNullException("child");
51204 }
51205 this.children.AddElement(child);
51206 child.ParentElement = this;
51207 }
51208
51209 public virtual void RemoveChild(ISchemaElement child)
51210 {
51211 if ((null == child))
51212 {
51213 throw new ArgumentNullException("child");
51214 }
51215 this.children.RemoveElement(child);
51216 child.ParentElement = null;
51217 }
51218
51219 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
51220 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
51221 ISchemaElement ICreateChildren.CreateChild(string childName)
51222 {
51223 if (String.IsNullOrEmpty(childName))
51224 {
51225 throw new ArgumentNullException("childName");
51226 }
51227 ISchemaElement childValue = null;
51228 if (("Text" == childName))
51229 {
51230 childValue = new Text();
51231 }
51232 if (("ComboBox" == childName))
51233 {
51234 childValue = new ComboBox();
51235 }
51236 if (("ListBox" == childName))
51237 {
51238 childValue = new ListBox();
51239 }
51240 if (("ListView" == childName))
51241 {
51242 childValue = new ListView();
51243 }
51244 if (("RadioButtonGroup" == childName))
51245 {
51246 childValue = new RadioButtonGroup();
51247 }
51248 if (("Property" == childName))
51249 {
51250 childValue = new Property();
51251 }
51252 if (("Binary" == childName))
51253 {
51254 childValue = new Binary();
51255 }
51256 if (("Condition" == childName))
51257 {
51258 childValue = new Condition();
51259 }
51260 if (("Publish" == childName))
51261 {
51262 childValue = new Publish();
51263 }
51264 if (("Subscribe" == childName))
51265 {
51266 childValue = new Subscribe();
51267 }
51268 if ((null == childValue))
51269 {
51270 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
51271 }
51272 return childValue;
51273 }
51274
51275 /// <summary>
51276 /// Parses a IconSizeType from a string.
51277 /// </summary>
51278 public static IconSizeType ParseIconSizeType(string value)
51279 {
51280 IconSizeType parsedValue;
51281 Control.TryParseIconSizeType(value, out parsedValue);
51282 return parsedValue;
51283 }
51284
51285 /// <summary>
51286 /// Tries to parse a IconSizeType from a string.
51287 /// </summary>
51288 public static bool TryParseIconSizeType(string value, out IconSizeType parsedValue)
51289 {
51290 parsedValue = IconSizeType.NotSet;
51291 if (string.IsNullOrEmpty(value))
51292 {
51293 return false;
51294 }
51295 if (("16" == value))
51296 {
51297 parsedValue = IconSizeType.Item16;
51298 }
51299 else
51300 {
51301 if (("32" == value))
51302 {
51303 parsedValue = IconSizeType.Item32;
51304 }
51305 else
51306 {
51307 if (("48" == value))
51308 {
51309 parsedValue = IconSizeType.Item48;
51310 }
51311 else
51312 {
51313 parsedValue = IconSizeType.IllegalValue;
51314 return false;
51315 }
51316 }
51317 }
51318 return true;
51319 }
51320
51321 /// <summary>
51322 /// Processes this element and all child elements into an XmlWriter.
51323 /// </summary>
51324 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
51325 public virtual void OutputXml(XmlWriter writer)
51326 {
51327 if ((null == writer))
51328 {
51329 throw new ArgumentNullException("writer");
51330 }
51331 writer.WriteStartElement("Control", "http://wixtoolset.org/schemas/v4/wxs");
51332 if (this.idFieldSet)
51333 {
51334 writer.WriteAttributeString("Id", this.idField);
51335 }
51336 if (this.typeFieldSet)
51337 {
51338 writer.WriteAttributeString("Type", this.typeField);
51339 }
51340 if (this.xFieldSet)
51341 {
51342 writer.WriteAttributeString("X", this.xField);
51343 }
51344 if (this.yFieldSet)
51345 {
51346 writer.WriteAttributeString("Y", this.yField);
51347 }
51348 if (this.widthFieldSet)
51349 {
51350 writer.WriteAttributeString("Width", this.widthField);
51351 }
51352 if (this.heightFieldSet)
51353 {
51354 writer.WriteAttributeString("Height", this.heightField);
51355 }
51356 if (this.propertyFieldSet)
51357 {
51358 writer.WriteAttributeString("Property", this.propertyField);
51359 }
51360 if (this.textFieldSet)
51361 {
51362 writer.WriteAttributeString("Text", this.textField);
51363 }
51364 if (this.helpFieldSet)
51365 {
51366 writer.WriteAttributeString("Help", this.helpField);
51367 }
51368 if (this.toolTipFieldSet)
51369 {
51370 writer.WriteAttributeString("ToolTip", this.toolTipField);
51371 }
51372 if (this.checkBoxValueFieldSet)
51373 {
51374 writer.WriteAttributeString("CheckBoxValue", this.checkBoxValueField);
51375 }
51376 if (this.checkBoxPropertyRefFieldSet)
51377 {
51378 writer.WriteAttributeString("CheckBoxPropertyRef", this.checkBoxPropertyRefField);
51379 }
51380 if (this.tabSkipFieldSet)
51381 {
51382 if ((this.tabSkipField == YesNoType.no))
51383 {
51384 writer.WriteAttributeString("TabSkip", "no");
51385 }
51386 if ((this.tabSkipField == YesNoType.yes))
51387 {
51388 writer.WriteAttributeString("TabSkip", "yes");
51389 }
51390 }
51391 if (this.defaultFieldSet)
51392 {
51393 if ((this.defaultField == YesNoType.no))
51394 {
51395 writer.WriteAttributeString("Default", "no");
51396 }
51397 if ((this.defaultField == YesNoType.yes))
51398 {
51399 writer.WriteAttributeString("Default", "yes");
51400 }
51401 }
51402 if (this.cancelFieldSet)
51403 {
51404 if ((this.cancelField == YesNoType.no))
51405 {
51406 writer.WriteAttributeString("Cancel", "no");
51407 }
51408 if ((this.cancelField == YesNoType.yes))
51409 {
51410 writer.WriteAttributeString("Cancel", "yes");
51411 }
51412 }
51413 if (this.hiddenFieldSet)
51414 {
51415 if ((this.hiddenField == YesNoType.no))
51416 {
51417 writer.WriteAttributeString("Hidden", "no");
51418 }
51419 if ((this.hiddenField == YesNoType.yes))
51420 {
51421 writer.WriteAttributeString("Hidden", "yes");
51422 }
51423 }
51424 if (this.disabledFieldSet)
51425 {
51426 if ((this.disabledField == YesNoType.no))
51427 {
51428 writer.WriteAttributeString("Disabled", "no");
51429 }
51430 if ((this.disabledField == YesNoType.yes))
51431 {
51432 writer.WriteAttributeString("Disabled", "yes");
51433 }
51434 }
51435 if (this.sunkenFieldSet)
51436 {
51437 if ((this.sunkenField == YesNoType.no))
51438 {
51439 writer.WriteAttributeString("Sunken", "no");
51440 }
51441 if ((this.sunkenField == YesNoType.yes))
51442 {
51443 writer.WriteAttributeString("Sunken", "yes");
51444 }
51445 }
51446 if (this.indirectFieldSet)
51447 {
51448 if ((this.indirectField == YesNoType.no))
51449 {
51450 writer.WriteAttributeString("Indirect", "no");
51451 }
51452 if ((this.indirectField == YesNoType.yes))
51453 {
51454 writer.WriteAttributeString("Indirect", "yes");
51455 }
51456 }
51457 if (this.integerFieldSet)
51458 {
51459 if ((this.integerField == YesNoType.no))
51460 {
51461 writer.WriteAttributeString("Integer", "no");
51462 }
51463 if ((this.integerField == YesNoType.yes))
51464 {
51465 writer.WriteAttributeString("Integer", "yes");
51466 }
51467 }
51468 if (this.rightToLeftFieldSet)
51469 {
51470 if ((this.rightToLeftField == YesNoType.no))
51471 {
51472 writer.WriteAttributeString("RightToLeft", "no");
51473 }
51474 if ((this.rightToLeftField == YesNoType.yes))
51475 {
51476 writer.WriteAttributeString("RightToLeft", "yes");
51477 }
51478 }
51479 if (this.rightAlignedFieldSet)
51480 {
51481 if ((this.rightAlignedField == YesNoType.no))
51482 {
51483 writer.WriteAttributeString("RightAligned", "no");
51484 }
51485 if ((this.rightAlignedField == YesNoType.yes))
51486 {
51487 writer.WriteAttributeString("RightAligned", "yes");
51488 }
51489 }
51490 if (this.leftScrollFieldSet)
51491 {
51492 if ((this.leftScrollField == YesNoType.no))
51493 {
51494 writer.WriteAttributeString("LeftScroll", "no");
51495 }
51496 if ((this.leftScrollField == YesNoType.yes))
51497 {
51498 writer.WriteAttributeString("LeftScroll", "yes");
51499 }
51500 }
51501 if (this.transparentFieldSet)
51502 {
51503 if ((this.transparentField == YesNoType.no))
51504 {
51505 writer.WriteAttributeString("Transparent", "no");
51506 }
51507 if ((this.transparentField == YesNoType.yes))
51508 {
51509 writer.WriteAttributeString("Transparent", "yes");
51510 }
51511 }
51512 if (this.noPrefixFieldSet)
51513 {
51514 if ((this.noPrefixField == YesNoType.no))
51515 {
51516 writer.WriteAttributeString("NoPrefix", "no");
51517 }
51518 if ((this.noPrefixField == YesNoType.yes))
51519 {
51520 writer.WriteAttributeString("NoPrefix", "yes");
51521 }
51522 }
51523 if (this.noWrapFieldSet)
51524 {
51525 if ((this.noWrapField == YesNoType.no))
51526 {
51527 writer.WriteAttributeString("NoWrap", "no");
51528 }
51529 if ((this.noWrapField == YesNoType.yes))
51530 {
51531 writer.WriteAttributeString("NoWrap", "yes");
51532 }
51533 }
51534 if (this.formatSizeFieldSet)
51535 {
51536 if ((this.formatSizeField == YesNoType.no))
51537 {
51538 writer.WriteAttributeString("FormatSize", "no");
51539 }
51540 if ((this.formatSizeField == YesNoType.yes))
51541 {
51542 writer.WriteAttributeString("FormatSize", "yes");
51543 }
51544 }
51545 if (this.userLanguageFieldSet)
51546 {
51547 if ((this.userLanguageField == YesNoType.no))
51548 {
51549 writer.WriteAttributeString("UserLanguage", "no");
51550 }
51551 if ((this.userLanguageField == YesNoType.yes))
51552 {
51553 writer.WriteAttributeString("UserLanguage", "yes");
51554 }
51555 }
51556 if (this.multilineFieldSet)
51557 {
51558 if ((this.multilineField == YesNoType.no))
51559 {
51560 writer.WriteAttributeString("Multiline", "no");
51561 }
51562 if ((this.multilineField == YesNoType.yes))
51563 {
51564 writer.WriteAttributeString("Multiline", "yes");
51565 }
51566 }
51567 if (this.passwordFieldSet)
51568 {
51569 if ((this.passwordField == YesNoType.no))
51570 {
51571 writer.WriteAttributeString("Password", "no");
51572 }
51573 if ((this.passwordField == YesNoType.yes))
51574 {
51575 writer.WriteAttributeString("Password", "yes");
51576 }
51577 }
51578 if (this.progressBlocksFieldSet)
51579 {
51580 if ((this.progressBlocksField == YesNoType.no))
51581 {
51582 writer.WriteAttributeString("ProgressBlocks", "no");
51583 }
51584 if ((this.progressBlocksField == YesNoType.yes))
51585 {
51586 writer.WriteAttributeString("ProgressBlocks", "yes");
51587 }
51588 }
51589 if (this.removableFieldSet)
51590 {
51591 if ((this.removableField == YesNoType.no))
51592 {
51593 writer.WriteAttributeString("Removable", "no");
51594 }
51595 if ((this.removableField == YesNoType.yes))
51596 {
51597 writer.WriteAttributeString("Removable", "yes");
51598 }
51599 }
51600 if (this.fixedFieldSet)
51601 {
51602 if ((this.fixedField == YesNoType.no))
51603 {
51604 writer.WriteAttributeString("Fixed", "no");
51605 }
51606 if ((this.fixedField == YesNoType.yes))
51607 {
51608 writer.WriteAttributeString("Fixed", "yes");
51609 }
51610 }
51611 if (this.remoteFieldSet)
51612 {
51613 if ((this.remoteField == YesNoType.no))
51614 {
51615 writer.WriteAttributeString("Remote", "no");
51616 }
51617 if ((this.remoteField == YesNoType.yes))
51618 {
51619 writer.WriteAttributeString("Remote", "yes");
51620 }
51621 }
51622 if (this.cDROMFieldSet)
51623 {
51624 if ((this.cDROMField == YesNoType.no))
51625 {
51626 writer.WriteAttributeString("CDROM", "no");
51627 }
51628 if ((this.cDROMField == YesNoType.yes))
51629 {
51630 writer.WriteAttributeString("CDROM", "yes");
51631 }
51632 }
51633 if (this.rAMDiskFieldSet)
51634 {
51635 if ((this.rAMDiskField == YesNoType.no))
51636 {
51637 writer.WriteAttributeString("RAMDisk", "no");
51638 }
51639 if ((this.rAMDiskField == YesNoType.yes))
51640 {
51641 writer.WriteAttributeString("RAMDisk", "yes");
51642 }
51643 }
51644 if (this.floppyFieldSet)
51645 {
51646 if ((this.floppyField == YesNoType.no))
51647 {
51648 writer.WriteAttributeString("Floppy", "no");
51649 }
51650 if ((this.floppyField == YesNoType.yes))
51651 {
51652 writer.WriteAttributeString("Floppy", "yes");
51653 }
51654 }
51655 if (this.showRollbackCostFieldSet)
51656 {
51657 if ((this.showRollbackCostField == YesNoType.no))
51658 {
51659 writer.WriteAttributeString("ShowRollbackCost", "no");
51660 }
51661 if ((this.showRollbackCostField == YesNoType.yes))
51662 {
51663 writer.WriteAttributeString("ShowRollbackCost", "yes");
51664 }
51665 }
51666 if (this.sortedFieldSet)
51667 {
51668 if ((this.sortedField == YesNoType.no))
51669 {
51670 writer.WriteAttributeString("Sorted", "no");
51671 }
51672 if ((this.sortedField == YesNoType.yes))
51673 {
51674 writer.WriteAttributeString("Sorted", "yes");
51675 }
51676 }
51677 if (this.comboListFieldSet)
51678 {
51679 if ((this.comboListField == YesNoType.no))
51680 {
51681 writer.WriteAttributeString("ComboList", "no");
51682 }
51683 if ((this.comboListField == YesNoType.yes))
51684 {
51685 writer.WriteAttributeString("ComboList", "yes");
51686 }
51687 }
51688 if (this.imageFieldSet)
51689 {
51690 if ((this.imageField == YesNoType.no))
51691 {
51692 writer.WriteAttributeString("Image", "no");
51693 }
51694 if ((this.imageField == YesNoType.yes))
51695 {
51696 writer.WriteAttributeString("Image", "yes");
51697 }
51698 }
51699 if (this.iconSizeFieldSet)
51700 {
51701 if ((this.iconSizeField == IconSizeType.Item16))
51702 {
51703 writer.WriteAttributeString("IconSize", "16");
51704 }
51705 if ((this.iconSizeField == IconSizeType.Item32))
51706 {
51707 writer.WriteAttributeString("IconSize", "32");
51708 }
51709 if ((this.iconSizeField == IconSizeType.Item48))
51710 {
51711 writer.WriteAttributeString("IconSize", "48");
51712 }
51713 }
51714 if (this.fixedSizeFieldSet)
51715 {
51716 if ((this.fixedSizeField == YesNoType.no))
51717 {
51718 writer.WriteAttributeString("FixedSize", "no");
51719 }
51720 if ((this.fixedSizeField == YesNoType.yes))
51721 {
51722 writer.WriteAttributeString("FixedSize", "yes");
51723 }
51724 }
51725 if (this.iconFieldSet)
51726 {
51727 if ((this.iconField == YesNoType.no))
51728 {
51729 writer.WriteAttributeString("Icon", "no");
51730 }
51731 if ((this.iconField == YesNoType.yes))
51732 {
51733 writer.WriteAttributeString("Icon", "yes");
51734 }
51735 }
51736 if (this.bitmapFieldSet)
51737 {
51738 if ((this.bitmapField == YesNoType.no))
51739 {
51740 writer.WriteAttributeString("Bitmap", "no");
51741 }
51742 if ((this.bitmapField == YesNoType.yes))
51743 {
51744 writer.WriteAttributeString("Bitmap", "yes");
51745 }
51746 }
51747 if (this.pushLikeFieldSet)
51748 {
51749 if ((this.pushLikeField == YesNoType.no))
51750 {
51751 writer.WriteAttributeString("PushLike", "no");
51752 }
51753 if ((this.pushLikeField == YesNoType.yes))
51754 {
51755 writer.WriteAttributeString("PushLike", "yes");
51756 }
51757 }
51758 if (this.hasBorderFieldSet)
51759 {
51760 if ((this.hasBorderField == YesNoType.no))
51761 {
51762 writer.WriteAttributeString("HasBorder", "no");
51763 }
51764 if ((this.hasBorderField == YesNoType.yes))
51765 {
51766 writer.WriteAttributeString("HasBorder", "yes");
51767 }
51768 }
51769 if (this.elevationShieldFieldSet)
51770 {
51771 if ((this.elevationShieldField == YesNoType.no))
51772 {
51773 writer.WriteAttributeString("ElevationShield", "no");
51774 }
51775 if ((this.elevationShieldField == YesNoType.yes))
51776 {
51777 writer.WriteAttributeString("ElevationShield", "yes");
51778 }
51779 }
51780 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
51781 {
51782 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
51783 childElement.OutputXml(writer);
51784 }
51785 writer.WriteEndElement();
51786 }
51787
51788 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
51789 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
51790 void ISetAttributes.SetAttribute(string name, string value)
51791 {
51792 if (String.IsNullOrEmpty(name))
51793 {
51794 throw new ArgumentNullException("name");
51795 }
51796 if (("Id" == name))
51797 {
51798 this.idField = value;
51799 this.idFieldSet = true;
51800 }
51801 if (("Type" == name))
51802 {
51803 this.typeField = value;
51804 this.typeFieldSet = true;
51805 }
51806 if (("X" == name))
51807 {
51808 this.xField = value;
51809 this.xFieldSet = true;
51810 }
51811 if (("Y" == name))
51812 {
51813 this.yField = value;
51814 this.yFieldSet = true;
51815 }
51816 if (("Width" == name))
51817 {
51818 this.widthField = value;
51819 this.widthFieldSet = true;
51820 }
51821 if (("Height" == name))
51822 {
51823 this.heightField = value;
51824 this.heightFieldSet = true;
51825 }
51826 if (("Property" == name))
51827 {
51828 this.propertyField = value;
51829 this.propertyFieldSet = true;
51830 }
51831 if (("Text" == name))
51832 {
51833 this.textField = value;
51834 this.textFieldSet = true;
51835 }
51836 if (("Help" == name))
51837 {
51838 this.helpField = value;
51839 this.helpFieldSet = true;
51840 }
51841 if (("ToolTip" == name))
51842 {
51843 this.toolTipField = value;
51844 this.toolTipFieldSet = true;
51845 }
51846 if (("CheckBoxValue" == name))
51847 {
51848 this.checkBoxValueField = value;
51849 this.checkBoxValueFieldSet = true;
51850 }
51851 if (("CheckBoxPropertyRef" == name))
51852 {
51853 this.checkBoxPropertyRefField = value;
51854 this.checkBoxPropertyRefFieldSet = true;
51855 }
51856 if (("TabSkip" == name))
51857 {
51858 this.tabSkipField = Enums.ParseYesNoType(value);
51859 this.tabSkipFieldSet = true;
51860 }
51861 if (("Default" == name))
51862 {
51863 this.defaultField = Enums.ParseYesNoType(value);
51864 this.defaultFieldSet = true;
51865 }
51866 if (("Cancel" == name))
51867 {
51868 this.cancelField = Enums.ParseYesNoType(value);
51869 this.cancelFieldSet = true;
51870 }
51871 if (("Hidden" == name))
51872 {
51873 this.hiddenField = Enums.ParseYesNoType(value);
51874 this.hiddenFieldSet = true;
51875 }
51876 if (("Disabled" == name))
51877 {
51878 this.disabledField = Enums.ParseYesNoType(value);
51879 this.disabledFieldSet = true;
51880 }
51881 if (("Sunken" == name))
51882 {
51883 this.sunkenField = Enums.ParseYesNoType(value);
51884 this.sunkenFieldSet = true;
51885 }
51886 if (("Indirect" == name))
51887 {
51888 this.indirectField = Enums.ParseYesNoType(value);
51889 this.indirectFieldSet = true;
51890 }
51891 if (("Integer" == name))
51892 {
51893 this.integerField = Enums.ParseYesNoType(value);
51894 this.integerFieldSet = true;
51895 }
51896 if (("RightToLeft" == name))
51897 {
51898 this.rightToLeftField = Enums.ParseYesNoType(value);
51899 this.rightToLeftFieldSet = true;
51900 }
51901 if (("RightAligned" == name))
51902 {
51903 this.rightAlignedField = Enums.ParseYesNoType(value);
51904 this.rightAlignedFieldSet = true;
51905 }
51906 if (("LeftScroll" == name))
51907 {
51908 this.leftScrollField = Enums.ParseYesNoType(value);
51909 this.leftScrollFieldSet = true;
51910 }
51911 if (("Transparent" == name))
51912 {
51913 this.transparentField = Enums.ParseYesNoType(value);
51914 this.transparentFieldSet = true;
51915 }
51916 if (("NoPrefix" == name))
51917 {
51918 this.noPrefixField = Enums.ParseYesNoType(value);
51919 this.noPrefixFieldSet = true;
51920 }
51921 if (("NoWrap" == name))
51922 {
51923 this.noWrapField = Enums.ParseYesNoType(value);
51924 this.noWrapFieldSet = true;
51925 }
51926 if (("FormatSize" == name))
51927 {
51928 this.formatSizeField = Enums.ParseYesNoType(value);
51929 this.formatSizeFieldSet = true;
51930 }
51931 if (("UserLanguage" == name))
51932 {
51933 this.userLanguageField = Enums.ParseYesNoType(value);
51934 this.userLanguageFieldSet = true;
51935 }
51936 if (("Multiline" == name))
51937 {
51938 this.multilineField = Enums.ParseYesNoType(value);
51939 this.multilineFieldSet = true;
51940 }
51941 if (("Password" == name))
51942 {
51943 this.passwordField = Enums.ParseYesNoType(value);
51944 this.passwordFieldSet = true;
51945 }
51946 if (("ProgressBlocks" == name))
51947 {
51948 this.progressBlocksField = Enums.ParseYesNoType(value);
51949 this.progressBlocksFieldSet = true;
51950 }
51951 if (("Removable" == name))
51952 {
51953 this.removableField = Enums.ParseYesNoType(value);
51954 this.removableFieldSet = true;
51955 }
51956 if (("Fixed" == name))
51957 {
51958 this.fixedField = Enums.ParseYesNoType(value);
51959 this.fixedFieldSet = true;
51960 }
51961 if (("Remote" == name))
51962 {
51963 this.remoteField = Enums.ParseYesNoType(value);
51964 this.remoteFieldSet = true;
51965 }
51966 if (("CDROM" == name))
51967 {
51968 this.cDROMField = Enums.ParseYesNoType(value);
51969 this.cDROMFieldSet = true;
51970 }
51971 if (("RAMDisk" == name))
51972 {
51973 this.rAMDiskField = Enums.ParseYesNoType(value);
51974 this.rAMDiskFieldSet = true;
51975 }
51976 if (("Floppy" == name))
51977 {
51978 this.floppyField = Enums.ParseYesNoType(value);
51979 this.floppyFieldSet = true;
51980 }
51981 if (("ShowRollbackCost" == name))
51982 {
51983 this.showRollbackCostField = Enums.ParseYesNoType(value);
51984 this.showRollbackCostFieldSet = true;
51985 }
51986 if (("Sorted" == name))
51987 {
51988 this.sortedField = Enums.ParseYesNoType(value);
51989 this.sortedFieldSet = true;
51990 }
51991 if (("ComboList" == name))
51992 {
51993 this.comboListField = Enums.ParseYesNoType(value);
51994 this.comboListFieldSet = true;
51995 }
51996 if (("Image" == name))
51997 {
51998 this.imageField = Enums.ParseYesNoType(value);
51999 this.imageFieldSet = true;
52000 }
52001 if (("IconSize" == name))
52002 {
52003 this.iconSizeField = Control.ParseIconSizeType(value);
52004 this.iconSizeFieldSet = true;
52005 }
52006 if (("FixedSize" == name))
52007 {
52008 this.fixedSizeField = Enums.ParseYesNoType(value);
52009 this.fixedSizeFieldSet = true;
52010 }
52011 if (("Icon" == name))
52012 {
52013 this.iconField = Enums.ParseYesNoType(value);
52014 this.iconFieldSet = true;
52015 }
52016 if (("Bitmap" == name))
52017 {
52018 this.bitmapField = Enums.ParseYesNoType(value);
52019 this.bitmapFieldSet = true;
52020 }
52021 if (("PushLike" == name))
52022 {
52023 this.pushLikeField = Enums.ParseYesNoType(value);
52024 this.pushLikeFieldSet = true;
52025 }
52026 if (("HasBorder" == name))
52027 {
52028 this.hasBorderField = Enums.ParseYesNoType(value);
52029 this.hasBorderFieldSet = true;
52030 }
52031 if (("ElevationShield" == name))
52032 {
52033 this.elevationShieldField = Enums.ParseYesNoType(value);
52034 this.elevationShieldFieldSet = true;
52035 }
52036 }
52037
52038 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
52039 public enum IconSizeType
52040 {
52041
52042 IllegalValue = int.MaxValue,
52043
52044 NotSet = -1,
52045
52046 Item16,
52047
52048 Item32,
52049
52050 Item48,
52051 }
52052 }
52053
52054 /// <summary>
52055 /// Billboard to display during install of a Feature
52056 /// </summary>
52057 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
52058 public class Billboard : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
52059 {
52060
52061 private ElementCollection children;
52062
52063 private string idField;
52064
52065 private bool idFieldSet;
52066
52067 private string featureField;
52068
52069 private bool featureFieldSet;
52070
52071 private ISchemaElement parentElement;
52072
52073 public Billboard()
52074 {
52075 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
52076 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Control)));
52077 this.children = childCollection0;
52078 }
52079
52080 public virtual IEnumerable Children
52081 {
52082 get
52083 {
52084 return this.children;
52085 }
52086 }
52087
52088 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
52089 public virtual IEnumerable this[System.Type childType]
52090 {
52091 get
52092 {
52093 return this.children.Filter(childType);
52094 }
52095 }
52096
52097 /// <summary>
52098 /// Unique identifier for the Billboard.
52099 /// </summary>
52100 public string Id
52101 {
52102 get
52103 {
52104 return this.idField;
52105 }
52106 set
52107 {
52108 this.idFieldSet = true;
52109 this.idField = value;
52110 }
52111 }
52112
52113 /// <summary>
52114 /// Feature whose state determines if the Billboard is shown.
52115 /// </summary>
52116 public string Feature
52117 {
52118 get
52119 {
52120 return this.featureField;
52121 }
52122 set
52123 {
52124 this.featureFieldSet = true;
52125 this.featureField = value;
52126 }
52127 }
52128
52129 public virtual ISchemaElement ParentElement
52130 {
52131 get
52132 {
52133 return this.parentElement;
52134 }
52135 set
52136 {
52137 this.parentElement = value;
52138 }
52139 }
52140
52141 public virtual void AddChild(ISchemaElement child)
52142 {
52143 if ((null == child))
52144 {
52145 throw new ArgumentNullException("child");
52146 }
52147 this.children.AddElement(child);
52148 child.ParentElement = this;
52149 }
52150
52151 public virtual void RemoveChild(ISchemaElement child)
52152 {
52153 if ((null == child))
52154 {
52155 throw new ArgumentNullException("child");
52156 }
52157 this.children.RemoveElement(child);
52158 child.ParentElement = null;
52159 }
52160
52161 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
52162 ISchemaElement ICreateChildren.CreateChild(string childName)
52163 {
52164 if (String.IsNullOrEmpty(childName))
52165 {
52166 throw new ArgumentNullException("childName");
52167 }
52168 ISchemaElement childValue = null;
52169 if (("Control" == childName))
52170 {
52171 childValue = new Control();
52172 }
52173 if ((null == childValue))
52174 {
52175 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
52176 }
52177 return childValue;
52178 }
52179
52180 /// <summary>
52181 /// Processes this element and all child elements into an XmlWriter.
52182 /// </summary>
52183 public virtual void OutputXml(XmlWriter writer)
52184 {
52185 if ((null == writer))
52186 {
52187 throw new ArgumentNullException("writer");
52188 }
52189 writer.WriteStartElement("Billboard", "http://wixtoolset.org/schemas/v4/wxs");
52190 if (this.idFieldSet)
52191 {
52192 writer.WriteAttributeString("Id", this.idField);
52193 }
52194 if (this.featureFieldSet)
52195 {
52196 writer.WriteAttributeString("Feature", this.featureField);
52197 }
52198 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
52199 {
52200 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
52201 childElement.OutputXml(writer);
52202 }
52203 writer.WriteEndElement();
52204 }
52205
52206 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
52207 void ISetAttributes.SetAttribute(string name, string value)
52208 {
52209 if (String.IsNullOrEmpty(name))
52210 {
52211 throw new ArgumentNullException("name");
52212 }
52213 if (("Id" == name))
52214 {
52215 this.idField = value;
52216 this.idFieldSet = true;
52217 }
52218 if (("Feature" == name))
52219 {
52220 this.featureField = value;
52221 this.featureFieldSet = true;
52222 }
52223 }
52224 }
52225
52226 /// <summary>
52227 /// Billboard action during which child Billboards are displayed
52228 /// </summary>
52229 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
52230 public class BillboardAction : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
52231 {
52232
52233 private ElementCollection children;
52234
52235 private string idField;
52236
52237 private bool idFieldSet;
52238
52239 private ISchemaElement parentElement;
52240
52241 public BillboardAction()
52242 {
52243 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
52244 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Billboard)));
52245 this.children = childCollection0;
52246 }
52247
52248 public virtual IEnumerable Children
52249 {
52250 get
52251 {
52252 return this.children;
52253 }
52254 }
52255
52256 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
52257 public virtual IEnumerable this[System.Type childType]
52258 {
52259 get
52260 {
52261 return this.children.Filter(childType);
52262 }
52263 }
52264
52265 /// <summary>
52266 /// Action name that determines when the Billboard should be shown.
52267 /// </summary>
52268 public string Id
52269 {
52270 get
52271 {
52272 return this.idField;
52273 }
52274 set
52275 {
52276 this.idFieldSet = true;
52277 this.idField = value;
52278 }
52279 }
52280
52281 public virtual ISchemaElement ParentElement
52282 {
52283 get
52284 {
52285 return this.parentElement;
52286 }
52287 set
52288 {
52289 this.parentElement = value;
52290 }
52291 }
52292
52293 public virtual void AddChild(ISchemaElement child)
52294 {
52295 if ((null == child))
52296 {
52297 throw new ArgumentNullException("child");
52298 }
52299 this.children.AddElement(child);
52300 child.ParentElement = this;
52301 }
52302
52303 public virtual void RemoveChild(ISchemaElement child)
52304 {
52305 if ((null == child))
52306 {
52307 throw new ArgumentNullException("child");
52308 }
52309 this.children.RemoveElement(child);
52310 child.ParentElement = null;
52311 }
52312
52313 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
52314 ISchemaElement ICreateChildren.CreateChild(string childName)
52315 {
52316 if (String.IsNullOrEmpty(childName))
52317 {
52318 throw new ArgumentNullException("childName");
52319 }
52320 ISchemaElement childValue = null;
52321 if (("Billboard" == childName))
52322 {
52323 childValue = new Billboard();
52324 }
52325 if ((null == childValue))
52326 {
52327 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
52328 }
52329 return childValue;
52330 }
52331
52332 /// <summary>
52333 /// Processes this element and all child elements into an XmlWriter.
52334 /// </summary>
52335 public virtual void OutputXml(XmlWriter writer)
52336 {
52337 if ((null == writer))
52338 {
52339 throw new ArgumentNullException("writer");
52340 }
52341 writer.WriteStartElement("BillboardAction", "http://wixtoolset.org/schemas/v4/wxs");
52342 if (this.idFieldSet)
52343 {
52344 writer.WriteAttributeString("Id", this.idField);
52345 }
52346 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
52347 {
52348 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
52349 childElement.OutputXml(writer);
52350 }
52351 writer.WriteEndElement();
52352 }
52353
52354 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
52355 void ISetAttributes.SetAttribute(string name, string value)
52356 {
52357 if (String.IsNullOrEmpty(name))
52358 {
52359 throw new ArgumentNullException("name");
52360 }
52361 if (("Id" == name))
52362 {
52363 this.idField = value;
52364 this.idFieldSet = true;
52365 }
52366 }
52367 }
52368
52369 /// <summary>
52370 /// Defines a dialog box in the Dialog Table.
52371 /// </summary>
52372 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
52373 public class Dialog : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
52374 {
52375
52376 private ElementCollection children;
52377
52378 private string idField;
52379
52380 private bool idFieldSet;
52381
52382 private int xField;
52383
52384 private bool xFieldSet;
52385
52386 private int yField;
52387
52388 private bool yFieldSet;
52389
52390 private int widthField;
52391
52392 private bool widthFieldSet;
52393
52394 private int heightField;
52395
52396 private bool heightFieldSet;
52397
52398 private string titleField;
52399
52400 private bool titleFieldSet;
52401
52402 private YesNoType hiddenField;
52403
52404 private bool hiddenFieldSet;
52405
52406 private YesNoType modelessField;
52407
52408 private bool modelessFieldSet;
52409
52410 private YesNoType noMinimizeField;
52411
52412 private bool noMinimizeFieldSet;
52413
52414 private YesNoType systemModalField;
52415
52416 private bool systemModalFieldSet;
52417
52418 private YesNoType keepModelessField;
52419
52420 private bool keepModelessFieldSet;
52421
52422 private YesNoType trackDiskSpaceField;
52423
52424 private bool trackDiskSpaceFieldSet;
52425
52426 private YesNoType customPaletteField;
52427
52428 private bool customPaletteFieldSet;
52429
52430 private YesNoType rightToLeftField;
52431
52432 private bool rightToLeftFieldSet;
52433
52434 private YesNoType rightAlignedField;
52435
52436 private bool rightAlignedFieldSet;
52437
52438 private YesNoType leftScrollField;
52439
52440 private bool leftScrollFieldSet;
52441
52442 private YesNoType errorDialogField;
52443
52444 private bool errorDialogFieldSet;
52445
52446 private ISchemaElement parentElement;
52447
52448 public Dialog()
52449 {
52450 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
52451 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Control)));
52452 this.children = childCollection0;
52453 }
52454
52455 public virtual IEnumerable Children
52456 {
52457 get
52458 {
52459 return this.children;
52460 }
52461 }
52462
52463 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
52464 public virtual IEnumerable this[System.Type childType]
52465 {
52466 get
52467 {
52468 return this.children.Filter(childType);
52469 }
52470 }
52471
52472 /// <summary>
52473 /// Unique identifier for the dialog.
52474 /// </summary>
52475 public string Id
52476 {
52477 get
52478 {
52479 return this.idField;
52480 }
52481 set
52482 {
52483 this.idFieldSet = true;
52484 this.idField = value;
52485 }
52486 }
52487
52488 /// <summary>
52489 /// Horizontal placement of the dialog box as a percentage of screen width. The default value is 50.
52490 /// </summary>
52491 public int X
52492 {
52493 get
52494 {
52495 return this.xField;
52496 }
52497 set
52498 {
52499 this.xFieldSet = true;
52500 this.xField = value;
52501 }
52502 }
52503
52504 /// <summary>
52505 /// Vertical placement of the dialog box as a percentage of screen height. The default value is 50.
52506 /// </summary>
52507 public int Y
52508 {
52509 get
52510 {
52511 return this.yField;
52512 }
52513 set
52514 {
52515 this.yFieldSet = true;
52516 this.yField = value;
52517 }
52518 }
52519
52520 /// <summary>
52521 /// The width of the dialog box in dialog units.
52522 /// </summary>
52523 public int Width
52524 {
52525 get
52526 {
52527 return this.widthField;
52528 }
52529 set
52530 {
52531 this.widthFieldSet = true;
52532 this.widthField = value;
52533 }
52534 }
52535
52536 /// <summary>
52537 /// The height of the dialog box in dialog units.
52538 /// </summary>
52539 public int Height
52540 {
52541 get
52542 {
52543 return this.heightField;
52544 }
52545 set
52546 {
52547 this.heightFieldSet = true;
52548 this.heightField = value;
52549 }
52550 }
52551
52552 /// <summary>
52553 /// The title of the dialog box.
52554 /// </summary>
52555 public string Title
52556 {
52557 get
52558 {
52559 return this.titleField;
52560 }
52561 set
52562 {
52563 this.titleFieldSet = true;
52564 this.titleField = value;
52565 }
52566 }
52567
52568 /// <summary>
52569 /// Used to hide the dialog.
52570 /// </summary>
52571 public YesNoType Hidden
52572 {
52573 get
52574 {
52575 return this.hiddenField;
52576 }
52577 set
52578 {
52579 this.hiddenFieldSet = true;
52580 this.hiddenField = value;
52581 }
52582 }
52583
52584 /// <summary>
52585 /// Used to set the dialog as modeless.
52586 /// </summary>
52587 public YesNoType Modeless
52588 {
52589 get
52590 {
52591 return this.modelessField;
52592 }
52593 set
52594 {
52595 this.modelessFieldSet = true;
52596 this.modelessField = value;
52597 }
52598 }
52599
52600 /// <summary>
52601 /// Used to specify if the dialog can be minimized.
52602 /// </summary>
52603 public YesNoType NoMinimize
52604 {
52605 get
52606 {
52607 return this.noMinimizeField;
52608 }
52609 set
52610 {
52611 this.noMinimizeFieldSet = true;
52612 this.noMinimizeField = value;
52613 }
52614 }
52615
52616 /// <summary>
52617 /// Used to set the dialog as system modal.
52618 /// </summary>
52619 public YesNoType SystemModal
52620 {
52621 get
52622 {
52623 return this.systemModalField;
52624 }
52625 set
52626 {
52627 this.systemModalFieldSet = true;
52628 this.systemModalField = value;
52629 }
52630 }
52631
52632 /// <summary>
52633 /// Keep modeless dialogs alive when this dialog is created through DoAction.
52634 /// </summary>
52635 public YesNoType KeepModeless
52636 {
52637 get
52638 {
52639 return this.keepModelessField;
52640 }
52641 set
52642 {
52643 this.keepModelessFieldSet = true;
52644 this.keepModelessField = value;
52645 }
52646 }
52647
52648 /// <summary>
52649 /// Have the dialog periodically call the installer to check if available disk space has changed.
52650 /// </summary>
52651 public YesNoType TrackDiskSpace
52652 {
52653 get
52654 {
52655 return this.trackDiskSpaceField;
52656 }
52657 set
52658 {
52659 this.trackDiskSpaceFieldSet = true;
52660 this.trackDiskSpaceField = value;
52661 }
52662 }
52663
52664 /// <summary>
52665 /// Used to specify if pictures in the dialog box are rendered with a custom palette.
52666 /// </summary>
52667 public YesNoType CustomPalette
52668 {
52669 get
52670 {
52671 return this.customPaletteField;
52672 }
52673 set
52674 {
52675 this.customPaletteFieldSet = true;
52676 this.customPaletteField = value;
52677 }
52678 }
52679
52680 /// <summary>
52681 /// Used to specify if the text in the dialog should be displayed in right to left reading order.
52682 /// </summary>
52683 public YesNoType RightToLeft
52684 {
52685 get
52686 {
52687 return this.rightToLeftField;
52688 }
52689 set
52690 {
52691 this.rightToLeftFieldSet = true;
52692 this.rightToLeftField = value;
52693 }
52694 }
52695
52696 /// <summary>
52697 /// Align text on the right.
52698 /// </summary>
52699 public YesNoType RightAligned
52700 {
52701 get
52702 {
52703 return this.rightAlignedField;
52704 }
52705 set
52706 {
52707 this.rightAlignedFieldSet = true;
52708 this.rightAlignedField = value;
52709 }
52710 }
52711
52712 /// <summary>
52713 /// Used to align the scroll bar on the left.
52714 /// </summary>
52715 public YesNoType LeftScroll
52716 {
52717 get
52718 {
52719 return this.leftScrollField;
52720 }
52721 set
52722 {
52723 this.leftScrollFieldSet = true;
52724 this.leftScrollField = value;
52725 }
52726 }
52727
52728 /// <summary>
52729 /// Specifies this dialog as an error dialog.
52730 /// </summary>
52731 public YesNoType ErrorDialog
52732 {
52733 get
52734 {
52735 return this.errorDialogField;
52736 }
52737 set
52738 {
52739 this.errorDialogFieldSet = true;
52740 this.errorDialogField = value;
52741 }
52742 }
52743
52744 public virtual ISchemaElement ParentElement
52745 {
52746 get
52747 {
52748 return this.parentElement;
52749 }
52750 set
52751 {
52752 this.parentElement = value;
52753 }
52754 }
52755
52756 public virtual void AddChild(ISchemaElement child)
52757 {
52758 if ((null == child))
52759 {
52760 throw new ArgumentNullException("child");
52761 }
52762 this.children.AddElement(child);
52763 child.ParentElement = this;
52764 }
52765
52766 public virtual void RemoveChild(ISchemaElement child)
52767 {
52768 if ((null == child))
52769 {
52770 throw new ArgumentNullException("child");
52771 }
52772 this.children.RemoveElement(child);
52773 child.ParentElement = null;
52774 }
52775
52776 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
52777 ISchemaElement ICreateChildren.CreateChild(string childName)
52778 {
52779 if (String.IsNullOrEmpty(childName))
52780 {
52781 throw new ArgumentNullException("childName");
52782 }
52783 ISchemaElement childValue = null;
52784 if (("Control" == childName))
52785 {
52786 childValue = new Control();
52787 }
52788 if ((null == childValue))
52789 {
52790 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
52791 }
52792 return childValue;
52793 }
52794
52795 /// <summary>
52796 /// Processes this element and all child elements into an XmlWriter.
52797 /// </summary>
52798 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
52799 public virtual void OutputXml(XmlWriter writer)
52800 {
52801 if ((null == writer))
52802 {
52803 throw new ArgumentNullException("writer");
52804 }
52805 writer.WriteStartElement("Dialog", "http://wixtoolset.org/schemas/v4/wxs");
52806 if (this.idFieldSet)
52807 {
52808 writer.WriteAttributeString("Id", this.idField);
52809 }
52810 if (this.xFieldSet)
52811 {
52812 writer.WriteAttributeString("X", this.xField.ToString(CultureInfo.InvariantCulture));
52813 }
52814 if (this.yFieldSet)
52815 {
52816 writer.WriteAttributeString("Y", this.yField.ToString(CultureInfo.InvariantCulture));
52817 }
52818 if (this.widthFieldSet)
52819 {
52820 writer.WriteAttributeString("Width", this.widthField.ToString(CultureInfo.InvariantCulture));
52821 }
52822 if (this.heightFieldSet)
52823 {
52824 writer.WriteAttributeString("Height", this.heightField.ToString(CultureInfo.InvariantCulture));
52825 }
52826 if (this.titleFieldSet)
52827 {
52828 writer.WriteAttributeString("Title", this.titleField);
52829 }
52830 if (this.hiddenFieldSet)
52831 {
52832 if ((this.hiddenField == YesNoType.no))
52833 {
52834 writer.WriteAttributeString("Hidden", "no");
52835 }
52836 if ((this.hiddenField == YesNoType.yes))
52837 {
52838 writer.WriteAttributeString("Hidden", "yes");
52839 }
52840 }
52841 if (this.modelessFieldSet)
52842 {
52843 if ((this.modelessField == YesNoType.no))
52844 {
52845 writer.WriteAttributeString("Modeless", "no");
52846 }
52847 if ((this.modelessField == YesNoType.yes))
52848 {
52849 writer.WriteAttributeString("Modeless", "yes");
52850 }
52851 }
52852 if (this.noMinimizeFieldSet)
52853 {
52854 if ((this.noMinimizeField == YesNoType.no))
52855 {
52856 writer.WriteAttributeString("NoMinimize", "no");
52857 }
52858 if ((this.noMinimizeField == YesNoType.yes))
52859 {
52860 writer.WriteAttributeString("NoMinimize", "yes");
52861 }
52862 }
52863 if (this.systemModalFieldSet)
52864 {
52865 if ((this.systemModalField == YesNoType.no))
52866 {
52867 writer.WriteAttributeString("SystemModal", "no");
52868 }
52869 if ((this.systemModalField == YesNoType.yes))
52870 {
52871 writer.WriteAttributeString("SystemModal", "yes");
52872 }
52873 }
52874 if (this.keepModelessFieldSet)
52875 {
52876 if ((this.keepModelessField == YesNoType.no))
52877 {
52878 writer.WriteAttributeString("KeepModeless", "no");
52879 }
52880 if ((this.keepModelessField == YesNoType.yes))
52881 {
52882 writer.WriteAttributeString("KeepModeless", "yes");
52883 }
52884 }
52885 if (this.trackDiskSpaceFieldSet)
52886 {
52887 if ((this.trackDiskSpaceField == YesNoType.no))
52888 {
52889 writer.WriteAttributeString("TrackDiskSpace", "no");
52890 }
52891 if ((this.trackDiskSpaceField == YesNoType.yes))
52892 {
52893 writer.WriteAttributeString("TrackDiskSpace", "yes");
52894 }
52895 }
52896 if (this.customPaletteFieldSet)
52897 {
52898 if ((this.customPaletteField == YesNoType.no))
52899 {
52900 writer.WriteAttributeString("CustomPalette", "no");
52901 }
52902 if ((this.customPaletteField == YesNoType.yes))
52903 {
52904 writer.WriteAttributeString("CustomPalette", "yes");
52905 }
52906 }
52907 if (this.rightToLeftFieldSet)
52908 {
52909 if ((this.rightToLeftField == YesNoType.no))
52910 {
52911 writer.WriteAttributeString("RightToLeft", "no");
52912 }
52913 if ((this.rightToLeftField == YesNoType.yes))
52914 {
52915 writer.WriteAttributeString("RightToLeft", "yes");
52916 }
52917 }
52918 if (this.rightAlignedFieldSet)
52919 {
52920 if ((this.rightAlignedField == YesNoType.no))
52921 {
52922 writer.WriteAttributeString("RightAligned", "no");
52923 }
52924 if ((this.rightAlignedField == YesNoType.yes))
52925 {
52926 writer.WriteAttributeString("RightAligned", "yes");
52927 }
52928 }
52929 if (this.leftScrollFieldSet)
52930 {
52931 if ((this.leftScrollField == YesNoType.no))
52932 {
52933 writer.WriteAttributeString("LeftScroll", "no");
52934 }
52935 if ((this.leftScrollField == YesNoType.yes))
52936 {
52937 writer.WriteAttributeString("LeftScroll", "yes");
52938 }
52939 }
52940 if (this.errorDialogFieldSet)
52941 {
52942 if ((this.errorDialogField == YesNoType.no))
52943 {
52944 writer.WriteAttributeString("ErrorDialog", "no");
52945 }
52946 if ((this.errorDialogField == YesNoType.yes))
52947 {
52948 writer.WriteAttributeString("ErrorDialog", "yes");
52949 }
52950 }
52951 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
52952 {
52953 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
52954 childElement.OutputXml(writer);
52955 }
52956 writer.WriteEndElement();
52957 }
52958
52959 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
52960 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
52961 void ISetAttributes.SetAttribute(string name, string value)
52962 {
52963 if (String.IsNullOrEmpty(name))
52964 {
52965 throw new ArgumentNullException("name");
52966 }
52967 if (("Id" == name))
52968 {
52969 this.idField = value;
52970 this.idFieldSet = true;
52971 }
52972 if (("X" == name))
52973 {
52974 this.xField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
52975 this.xFieldSet = true;
52976 }
52977 if (("Y" == name))
52978 {
52979 this.yField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
52980 this.yFieldSet = true;
52981 }
52982 if (("Width" == name))
52983 {
52984 this.widthField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
52985 this.widthFieldSet = true;
52986 }
52987 if (("Height" == name))
52988 {
52989 this.heightField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
52990 this.heightFieldSet = true;
52991 }
52992 if (("Title" == name))
52993 {
52994 this.titleField = value;
52995 this.titleFieldSet = true;
52996 }
52997 if (("Hidden" == name))
52998 {
52999 this.hiddenField = Enums.ParseYesNoType(value);
53000 this.hiddenFieldSet = true;
53001 }
53002 if (("Modeless" == name))
53003 {
53004 this.modelessField = Enums.ParseYesNoType(value);
53005 this.modelessFieldSet = true;
53006 }
53007 if (("NoMinimize" == name))
53008 {
53009 this.noMinimizeField = Enums.ParseYesNoType(value);
53010 this.noMinimizeFieldSet = true;
53011 }
53012 if (("SystemModal" == name))
53013 {
53014 this.systemModalField = Enums.ParseYesNoType(value);
53015 this.systemModalFieldSet = true;
53016 }
53017 if (("KeepModeless" == name))
53018 {
53019 this.keepModelessField = Enums.ParseYesNoType(value);
53020 this.keepModelessFieldSet = true;
53021 }
53022 if (("TrackDiskSpace" == name))
53023 {
53024 this.trackDiskSpaceField = Enums.ParseYesNoType(value);
53025 this.trackDiskSpaceFieldSet = true;
53026 }
53027 if (("CustomPalette" == name))
53028 {
53029 this.customPaletteField = Enums.ParseYesNoType(value);
53030 this.customPaletteFieldSet = true;
53031 }
53032 if (("RightToLeft" == name))
53033 {
53034 this.rightToLeftField = Enums.ParseYesNoType(value);
53035 this.rightToLeftFieldSet = true;
53036 }
53037 if (("RightAligned" == name))
53038 {
53039 this.rightAlignedField = Enums.ParseYesNoType(value);
53040 this.rightAlignedFieldSet = true;
53041 }
53042 if (("LeftScroll" == name))
53043 {
53044 this.leftScrollField = Enums.ParseYesNoType(value);
53045 this.leftScrollFieldSet = true;
53046 }
53047 if (("ErrorDialog" == name))
53048 {
53049 this.errorDialogField = Enums.ParseYesNoType(value);
53050 this.errorDialogFieldSet = true;
53051 }
53052 }
53053 }
53054
53055 /// <summary>
53056 /// Reference to a Dialog. This will cause the entire referenced section's contents
53057 /// to be included in the installer database.
53058 /// </summary>
53059 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
53060 public class DialogRef : ISchemaElement, ISetAttributes
53061 {
53062
53063 private string idField;
53064
53065 private bool idFieldSet;
53066
53067 private ISchemaElement parentElement;
53068
53069 /// <summary>
53070 /// The identifier of the Dialog to reference.
53071 /// </summary>
53072 public string Id
53073 {
53074 get
53075 {
53076 return this.idField;
53077 }
53078 set
53079 {
53080 this.idFieldSet = true;
53081 this.idField = value;
53082 }
53083 }
53084
53085 public virtual ISchemaElement ParentElement
53086 {
53087 get
53088 {
53089 return this.parentElement;
53090 }
53091 set
53092 {
53093 this.parentElement = value;
53094 }
53095 }
53096
53097 /// <summary>
53098 /// Processes this element and all child elements into an XmlWriter.
53099 /// </summary>
53100 public virtual void OutputXml(XmlWriter writer)
53101 {
53102 if ((null == writer))
53103 {
53104 throw new ArgumentNullException("writer");
53105 }
53106 writer.WriteStartElement("DialogRef", "http://wixtoolset.org/schemas/v4/wxs");
53107 if (this.idFieldSet)
53108 {
53109 writer.WriteAttributeString("Id", this.idField);
53110 }
53111 writer.WriteEndElement();
53112 }
53113
53114 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
53115 void ISetAttributes.SetAttribute(string name, string value)
53116 {
53117 if (String.IsNullOrEmpty(name))
53118 {
53119 throw new ArgumentNullException("name");
53120 }
53121 if (("Id" == name))
53122 {
53123 this.idField = value;
53124 this.idFieldSet = true;
53125 }
53126 }
53127 }
53128
53129 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
53130 public class ProgressText : ISchemaElement, ISetAttributes
53131 {
53132
53133 private string actionField;
53134
53135 private bool actionFieldSet;
53136
53137 private string templateField;
53138
53139 private bool templateFieldSet;
53140
53141 private string contentField;
53142
53143 private bool contentFieldSet;
53144
53145 private ISchemaElement parentElement;
53146
53147 public string Action
53148 {
53149 get
53150 {
53151 return this.actionField;
53152 }
53153 set
53154 {
53155 this.actionFieldSet = true;
53156 this.actionField = value;
53157 }
53158 }
53159
53160 /// <summary>
53161 /// used to format ActionData messages from action processing
53162 /// </summary>
53163 public string Template
53164 {
53165 get
53166 {
53167 return this.templateField;
53168 }
53169 set
53170 {
53171 this.templateFieldSet = true;
53172 this.templateField = value;
53173 }
53174 }
53175
53176 /// <summary>
53177 /// Element value is progress message text for action
53178 /// </summary>
53179 public string Content
53180 {
53181 get
53182 {
53183 return this.contentField;
53184 }
53185 set
53186 {
53187 this.contentFieldSet = true;
53188 this.contentField = value;
53189 }
53190 }
53191
53192 public virtual ISchemaElement ParentElement
53193 {
53194 get
53195 {
53196 return this.parentElement;
53197 }
53198 set
53199 {
53200 this.parentElement = value;
53201 }
53202 }
53203
53204 /// <summary>
53205 /// Processes this element and all child elements into an XmlWriter.
53206 /// </summary>
53207 public virtual void OutputXml(XmlWriter writer)
53208 {
53209 if ((null == writer))
53210 {
53211 throw new ArgumentNullException("writer");
53212 }
53213 writer.WriteStartElement("ProgressText", "http://wixtoolset.org/schemas/v4/wxs");
53214 if (this.actionFieldSet)
53215 {
53216 writer.WriteAttributeString("Action", this.actionField);
53217 }
53218 if (this.templateFieldSet)
53219 {
53220 writer.WriteAttributeString("Template", this.templateField);
53221 }
53222 if (this.contentFieldSet)
53223 {
53224 writer.WriteString(this.contentField);
53225 }
53226 writer.WriteEndElement();
53227 }
53228
53229 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
53230 void ISetAttributes.SetAttribute(string name, string value)
53231 {
53232 if (String.IsNullOrEmpty(name))
53233 {
53234 throw new ArgumentNullException("name");
53235 }
53236 if (("Action" == name))
53237 {
53238 this.actionField = value;
53239 this.actionFieldSet = true;
53240 }
53241 if (("Template" == name))
53242 {
53243 this.templateField = value;
53244 this.templateFieldSet = true;
53245 }
53246 if (("Content" == name))
53247 {
53248 this.contentField = value;
53249 this.contentFieldSet = true;
53250 }
53251 }
53252 }
53253
53254 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
53255 public class TextStyle : ISchemaElement, ISetAttributes
53256 {
53257
53258 private string idField;
53259
53260 private bool idFieldSet;
53261
53262 private string faceNameField;
53263
53264 private bool faceNameFieldSet;
53265
53266 private string sizeField;
53267
53268 private bool sizeFieldSet;
53269
53270 private int redField;
53271
53272 private bool redFieldSet;
53273
53274 private int greenField;
53275
53276 private bool greenFieldSet;
53277
53278 private int blueField;
53279
53280 private bool blueFieldSet;
53281
53282 private YesNoType boldField;
53283
53284 private bool boldFieldSet;
53285
53286 private YesNoType italicField;
53287
53288 private bool italicFieldSet;
53289
53290 private YesNoType underlineField;
53291
53292 private bool underlineFieldSet;
53293
53294 private YesNoType strikeField;
53295
53296 private bool strikeFieldSet;
53297
53298 private ISchemaElement parentElement;
53299
53300 public string Id
53301 {
53302 get
53303 {
53304 return this.idField;
53305 }
53306 set
53307 {
53308 this.idFieldSet = true;
53309 this.idField = value;
53310 }
53311 }
53312
53313 public string FaceName
53314 {
53315 get
53316 {
53317 return this.faceNameField;
53318 }
53319 set
53320 {
53321 this.faceNameFieldSet = true;
53322 this.faceNameField = value;
53323 }
53324 }
53325
53326 public string Size
53327 {
53328 get
53329 {
53330 return this.sizeField;
53331 }
53332 set
53333 {
53334 this.sizeFieldSet = true;
53335 this.sizeField = value;
53336 }
53337 }
53338
53339 /// <summary>
53340 /// 0 to 255
53341 /// </summary>
53342 public int Red
53343 {
53344 get
53345 {
53346 return this.redField;
53347 }
53348 set
53349 {
53350 this.redFieldSet = true;
53351 this.redField = value;
53352 }
53353 }
53354
53355 /// <summary>
53356 /// 0 to 255
53357 /// </summary>
53358 public int Green
53359 {
53360 get
53361 {
53362 return this.greenField;
53363 }
53364 set
53365 {
53366 this.greenFieldSet = true;
53367 this.greenField = value;
53368 }
53369 }
53370
53371 /// <summary>
53372 /// 0 to 255
53373 /// </summary>
53374 public int Blue
53375 {
53376 get
53377 {
53378 return this.blueField;
53379 }
53380 set
53381 {
53382 this.blueFieldSet = true;
53383 this.blueField = value;
53384 }
53385 }
53386
53387 public YesNoType Bold
53388 {
53389 get
53390 {
53391 return this.boldField;
53392 }
53393 set
53394 {
53395 this.boldFieldSet = true;
53396 this.boldField = value;
53397 }
53398 }
53399
53400 public YesNoType Italic
53401 {
53402 get
53403 {
53404 return this.italicField;
53405 }
53406 set
53407 {
53408 this.italicFieldSet = true;
53409 this.italicField = value;
53410 }
53411 }
53412
53413 public YesNoType Underline
53414 {
53415 get
53416 {
53417 return this.underlineField;
53418 }
53419 set
53420 {
53421 this.underlineFieldSet = true;
53422 this.underlineField = value;
53423 }
53424 }
53425
53426 public YesNoType Strike
53427 {
53428 get
53429 {
53430 return this.strikeField;
53431 }
53432 set
53433 {
53434 this.strikeFieldSet = true;
53435 this.strikeField = value;
53436 }
53437 }
53438
53439 public virtual ISchemaElement ParentElement
53440 {
53441 get
53442 {
53443 return this.parentElement;
53444 }
53445 set
53446 {
53447 this.parentElement = value;
53448 }
53449 }
53450
53451 /// <summary>
53452 /// Processes this element and all child elements into an XmlWriter.
53453 /// </summary>
53454 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
53455 public virtual void OutputXml(XmlWriter writer)
53456 {
53457 if ((null == writer))
53458 {
53459 throw new ArgumentNullException("writer");
53460 }
53461 writer.WriteStartElement("TextStyle", "http://wixtoolset.org/schemas/v4/wxs");
53462 if (this.idFieldSet)
53463 {
53464 writer.WriteAttributeString("Id", this.idField);
53465 }
53466 if (this.faceNameFieldSet)
53467 {
53468 writer.WriteAttributeString("FaceName", this.faceNameField);
53469 }
53470 if (this.sizeFieldSet)
53471 {
53472 writer.WriteAttributeString("Size", this.sizeField);
53473 }
53474 if (this.redFieldSet)
53475 {
53476 writer.WriteAttributeString("Red", this.redField.ToString(CultureInfo.InvariantCulture));
53477 }
53478 if (this.greenFieldSet)
53479 {
53480 writer.WriteAttributeString("Green", this.greenField.ToString(CultureInfo.InvariantCulture));
53481 }
53482 if (this.blueFieldSet)
53483 {
53484 writer.WriteAttributeString("Blue", this.blueField.ToString(CultureInfo.InvariantCulture));
53485 }
53486 if (this.boldFieldSet)
53487 {
53488 if ((this.boldField == YesNoType.no))
53489 {
53490 writer.WriteAttributeString("Bold", "no");
53491 }
53492 if ((this.boldField == YesNoType.yes))
53493 {
53494 writer.WriteAttributeString("Bold", "yes");
53495 }
53496 }
53497 if (this.italicFieldSet)
53498 {
53499 if ((this.italicField == YesNoType.no))
53500 {
53501 writer.WriteAttributeString("Italic", "no");
53502 }
53503 if ((this.italicField == YesNoType.yes))
53504 {
53505 writer.WriteAttributeString("Italic", "yes");
53506 }
53507 }
53508 if (this.underlineFieldSet)
53509 {
53510 if ((this.underlineField == YesNoType.no))
53511 {
53512 writer.WriteAttributeString("Underline", "no");
53513 }
53514 if ((this.underlineField == YesNoType.yes))
53515 {
53516 writer.WriteAttributeString("Underline", "yes");
53517 }
53518 }
53519 if (this.strikeFieldSet)
53520 {
53521 if ((this.strikeField == YesNoType.no))
53522 {
53523 writer.WriteAttributeString("Strike", "no");
53524 }
53525 if ((this.strikeField == YesNoType.yes))
53526 {
53527 writer.WriteAttributeString("Strike", "yes");
53528 }
53529 }
53530 writer.WriteEndElement();
53531 }
53532
53533 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
53534 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
53535 void ISetAttributes.SetAttribute(string name, string value)
53536 {
53537 if (String.IsNullOrEmpty(name))
53538 {
53539 throw new ArgumentNullException("name");
53540 }
53541 if (("Id" == name))
53542 {
53543 this.idField = value;
53544 this.idFieldSet = true;
53545 }
53546 if (("FaceName" == name))
53547 {
53548 this.faceNameField = value;
53549 this.faceNameFieldSet = true;
53550 }
53551 if (("Size" == name))
53552 {
53553 this.sizeField = value;
53554 this.sizeFieldSet = true;
53555 }
53556 if (("Red" == name))
53557 {
53558 this.redField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
53559 this.redFieldSet = true;
53560 }
53561 if (("Green" == name))
53562 {
53563 this.greenField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
53564 this.greenFieldSet = true;
53565 }
53566 if (("Blue" == name))
53567 {
53568 this.blueField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
53569 this.blueFieldSet = true;
53570 }
53571 if (("Bold" == name))
53572 {
53573 this.boldField = Enums.ParseYesNoType(value);
53574 this.boldFieldSet = true;
53575 }
53576 if (("Italic" == name))
53577 {
53578 this.italicField = Enums.ParseYesNoType(value);
53579 this.italicFieldSet = true;
53580 }
53581 if (("Underline" == name))
53582 {
53583 this.underlineField = Enums.ParseYesNoType(value);
53584 this.underlineFieldSet = true;
53585 }
53586 if (("Strike" == name))
53587 {
53588 this.strikeField = Enums.ParseYesNoType(value);
53589 this.strikeFieldSet = true;
53590 }
53591 }
53592 }
53593
53594 /// <summary>
53595 /// The value (and optional text) associated with an item in a ComboBox, ListBox, or ListView.
53596 /// </summary>
53597 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
53598 public class ListItem : ISchemaElement, ISetAttributes
53599 {
53600
53601 private string valueField;
53602
53603 private bool valueFieldSet;
53604
53605 private string textField;
53606
53607 private bool textFieldSet;
53608
53609 private string iconField;
53610
53611 private bool iconFieldSet;
53612
53613 private ISchemaElement parentElement;
53614
53615 /// <summary>
53616 /// The value assigned to the associated ComboBox, ListBox, or ListView property if this item is selected.
53617 /// </summary>
53618 public string Value
53619 {
53620 get
53621 {
53622 return this.valueField;
53623 }
53624 set
53625 {
53626 this.valueFieldSet = true;
53627 this.valueField = value;
53628 }
53629 }
53630
53631 /// <summary>
53632 /// The localizable, visible text to be assigned to the item.
53633 /// If not specified, this will default to the value of the Value attribute.
53634 /// </summary>
53635 public string Text
53636 {
53637 get
53638 {
53639 return this.textField;
53640 }
53641 set
53642 {
53643 this.textFieldSet = true;
53644 this.textField = value;
53645 }
53646 }
53647
53648 /// <summary>
53649 /// The identifier of the Binary (not Icon) element containing the icon to associate with this item.
53650 /// This value is only valid when nested under a ListView element.
53651 /// </summary>
53652 public string Icon
53653 {
53654 get
53655 {
53656 return this.iconField;
53657 }
53658 set
53659 {
53660 this.iconFieldSet = true;
53661 this.iconField = value;
53662 }
53663 }
53664
53665 public virtual ISchemaElement ParentElement
53666 {
53667 get
53668 {
53669 return this.parentElement;
53670 }
53671 set
53672 {
53673 this.parentElement = value;
53674 }
53675 }
53676
53677 /// <summary>
53678 /// Processes this element and all child elements into an XmlWriter.
53679 /// </summary>
53680 public virtual void OutputXml(XmlWriter writer)
53681 {
53682 if ((null == writer))
53683 {
53684 throw new ArgumentNullException("writer");
53685 }
53686 writer.WriteStartElement("ListItem", "http://wixtoolset.org/schemas/v4/wxs");
53687 if (this.valueFieldSet)
53688 {
53689 writer.WriteAttributeString("Value", this.valueField);
53690 }
53691 if (this.textFieldSet)
53692 {
53693 writer.WriteAttributeString("Text", this.textField);
53694 }
53695 if (this.iconFieldSet)
53696 {
53697 writer.WriteAttributeString("Icon", this.iconField);
53698 }
53699 writer.WriteEndElement();
53700 }
53701
53702 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
53703 void ISetAttributes.SetAttribute(string name, string value)
53704 {
53705 if (String.IsNullOrEmpty(name))
53706 {
53707 throw new ArgumentNullException("name");
53708 }
53709 if (("Value" == name))
53710 {
53711 this.valueField = value;
53712 this.valueFieldSet = true;
53713 }
53714 if (("Text" == name))
53715 {
53716 this.textField = value;
53717 this.textFieldSet = true;
53718 }
53719 if (("Icon" == name))
53720 {
53721 this.iconField = value;
53722 this.iconFieldSet = true;
53723 }
53724 }
53725 }
53726
53727 /// <summary>
53728 /// Set of items for a particular ListBox control tied to an install Property
53729 /// </summary>
53730 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
53731 public class ListBox : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
53732 {
53733
53734 private ElementCollection children;
53735
53736 private string propertyField;
53737
53738 private bool propertyFieldSet;
53739
53740 private ISchemaElement parentElement;
53741
53742 public ListBox()
53743 {
53744 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
53745 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ListItem)));
53746 this.children = childCollection0;
53747 }
53748
53749 public virtual IEnumerable Children
53750 {
53751 get
53752 {
53753 return this.children;
53754 }
53755 }
53756
53757 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
53758 public virtual IEnumerable this[System.Type childType]
53759 {
53760 get
53761 {
53762 return this.children.Filter(childType);
53763 }
53764 }
53765
53766 /// <summary>
53767 /// Property tied to this group
53768 /// </summary>
53769 public string Property
53770 {
53771 get
53772 {
53773 return this.propertyField;
53774 }
53775 set
53776 {
53777 this.propertyFieldSet = true;
53778 this.propertyField = value;
53779 }
53780 }
53781
53782 public virtual ISchemaElement ParentElement
53783 {
53784 get
53785 {
53786 return this.parentElement;
53787 }
53788 set
53789 {
53790 this.parentElement = value;
53791 }
53792 }
53793
53794 public virtual void AddChild(ISchemaElement child)
53795 {
53796 if ((null == child))
53797 {
53798 throw new ArgumentNullException("child");
53799 }
53800 this.children.AddElement(child);
53801 child.ParentElement = this;
53802 }
53803
53804 public virtual void RemoveChild(ISchemaElement child)
53805 {
53806 if ((null == child))
53807 {
53808 throw new ArgumentNullException("child");
53809 }
53810 this.children.RemoveElement(child);
53811 child.ParentElement = null;
53812 }
53813
53814 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
53815 ISchemaElement ICreateChildren.CreateChild(string childName)
53816 {
53817 if (String.IsNullOrEmpty(childName))
53818 {
53819 throw new ArgumentNullException("childName");
53820 }
53821 ISchemaElement childValue = null;
53822 if (("ListItem" == childName))
53823 {
53824 childValue = new ListItem();
53825 }
53826 if ((null == childValue))
53827 {
53828 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
53829 }
53830 return childValue;
53831 }
53832
53833 /// <summary>
53834 /// Processes this element and all child elements into an XmlWriter.
53835 /// </summary>
53836 public virtual void OutputXml(XmlWriter writer)
53837 {
53838 if ((null == writer))
53839 {
53840 throw new ArgumentNullException("writer");
53841 }
53842 writer.WriteStartElement("ListBox", "http://wixtoolset.org/schemas/v4/wxs");
53843 if (this.propertyFieldSet)
53844 {
53845 writer.WriteAttributeString("Property", this.propertyField);
53846 }
53847 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
53848 {
53849 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
53850 childElement.OutputXml(writer);
53851 }
53852 writer.WriteEndElement();
53853 }
53854
53855 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
53856 void ISetAttributes.SetAttribute(string name, string value)
53857 {
53858 if (String.IsNullOrEmpty(name))
53859 {
53860 throw new ArgumentNullException("name");
53861 }
53862 if (("Property" == name))
53863 {
53864 this.propertyField = value;
53865 this.propertyFieldSet = true;
53866 }
53867 }
53868 }
53869
53870 /// <summary>
53871 /// Set of items for a particular ComboBox control tied to an install Property
53872 /// </summary>
53873 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
53874 public class ComboBox : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
53875 {
53876
53877 private ElementCollection children;
53878
53879 private string propertyField;
53880
53881 private bool propertyFieldSet;
53882
53883 private ISchemaElement parentElement;
53884
53885 public ComboBox()
53886 {
53887 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
53888 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ListItem)));
53889 this.children = childCollection0;
53890 }
53891
53892 public virtual IEnumerable Children
53893 {
53894 get
53895 {
53896 return this.children;
53897 }
53898 }
53899
53900 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
53901 public virtual IEnumerable this[System.Type childType]
53902 {
53903 get
53904 {
53905 return this.children.Filter(childType);
53906 }
53907 }
53908
53909 /// <summary>
53910 /// Property tied to this group
53911 /// </summary>
53912 public string Property
53913 {
53914 get
53915 {
53916 return this.propertyField;
53917 }
53918 set
53919 {
53920 this.propertyFieldSet = true;
53921 this.propertyField = value;
53922 }
53923 }
53924
53925 public virtual ISchemaElement ParentElement
53926 {
53927 get
53928 {
53929 return this.parentElement;
53930 }
53931 set
53932 {
53933 this.parentElement = value;
53934 }
53935 }
53936
53937 public virtual void AddChild(ISchemaElement child)
53938 {
53939 if ((null == child))
53940 {
53941 throw new ArgumentNullException("child");
53942 }
53943 this.children.AddElement(child);
53944 child.ParentElement = this;
53945 }
53946
53947 public virtual void RemoveChild(ISchemaElement child)
53948 {
53949 if ((null == child))
53950 {
53951 throw new ArgumentNullException("child");
53952 }
53953 this.children.RemoveElement(child);
53954 child.ParentElement = null;
53955 }
53956
53957 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
53958 ISchemaElement ICreateChildren.CreateChild(string childName)
53959 {
53960 if (String.IsNullOrEmpty(childName))
53961 {
53962 throw new ArgumentNullException("childName");
53963 }
53964 ISchemaElement childValue = null;
53965 if (("ListItem" == childName))
53966 {
53967 childValue = new ListItem();
53968 }
53969 if ((null == childValue))
53970 {
53971 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
53972 }
53973 return childValue;
53974 }
53975
53976 /// <summary>
53977 /// Processes this element and all child elements into an XmlWriter.
53978 /// </summary>
53979 public virtual void OutputXml(XmlWriter writer)
53980 {
53981 if ((null == writer))
53982 {
53983 throw new ArgumentNullException("writer");
53984 }
53985 writer.WriteStartElement("ComboBox", "http://wixtoolset.org/schemas/v4/wxs");
53986 if (this.propertyFieldSet)
53987 {
53988 writer.WriteAttributeString("Property", this.propertyField);
53989 }
53990 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
53991 {
53992 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
53993 childElement.OutputXml(writer);
53994 }
53995 writer.WriteEndElement();
53996 }
53997
53998 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
53999 void ISetAttributes.SetAttribute(string name, string value)
54000 {
54001 if (String.IsNullOrEmpty(name))
54002 {
54003 throw new ArgumentNullException("name");
54004 }
54005 if (("Property" == name))
54006 {
54007 this.propertyField = value;
54008 this.propertyFieldSet = true;
54009 }
54010 }
54011 }
54012
54013 /// <summary>
54014 /// Set of items for a particular ListView control tied to an install Property
54015 /// </summary>
54016 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
54017 public class ListView : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
54018 {
54019
54020 private ElementCollection children;
54021
54022 private string propertyField;
54023
54024 private bool propertyFieldSet;
54025
54026 private ISchemaElement parentElement;
54027
54028 public ListView()
54029 {
54030 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
54031 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ListItem)));
54032 this.children = childCollection0;
54033 }
54034
54035 public virtual IEnumerable Children
54036 {
54037 get
54038 {
54039 return this.children;
54040 }
54041 }
54042
54043 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
54044 public virtual IEnumerable this[System.Type childType]
54045 {
54046 get
54047 {
54048 return this.children.Filter(childType);
54049 }
54050 }
54051
54052 /// <summary>
54053 /// Property tied to this group
54054 /// </summary>
54055 public string Property
54056 {
54057 get
54058 {
54059 return this.propertyField;
54060 }
54061 set
54062 {
54063 this.propertyFieldSet = true;
54064 this.propertyField = value;
54065 }
54066 }
54067
54068 public virtual ISchemaElement ParentElement
54069 {
54070 get
54071 {
54072 return this.parentElement;
54073 }
54074 set
54075 {
54076 this.parentElement = value;
54077 }
54078 }
54079
54080 public virtual void AddChild(ISchemaElement child)
54081 {
54082 if ((null == child))
54083 {
54084 throw new ArgumentNullException("child");
54085 }
54086 this.children.AddElement(child);
54087 child.ParentElement = this;
54088 }
54089
54090 public virtual void RemoveChild(ISchemaElement child)
54091 {
54092 if ((null == child))
54093 {
54094 throw new ArgumentNullException("child");
54095 }
54096 this.children.RemoveElement(child);
54097 child.ParentElement = null;
54098 }
54099
54100 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
54101 ISchemaElement ICreateChildren.CreateChild(string childName)
54102 {
54103 if (String.IsNullOrEmpty(childName))
54104 {
54105 throw new ArgumentNullException("childName");
54106 }
54107 ISchemaElement childValue = null;
54108 if (("ListItem" == childName))
54109 {
54110 childValue = new ListItem();
54111 }
54112 if ((null == childValue))
54113 {
54114 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
54115 }
54116 return childValue;
54117 }
54118
54119 /// <summary>
54120 /// Processes this element and all child elements into an XmlWriter.
54121 /// </summary>
54122 public virtual void OutputXml(XmlWriter writer)
54123 {
54124 if ((null == writer))
54125 {
54126 throw new ArgumentNullException("writer");
54127 }
54128 writer.WriteStartElement("ListView", "http://wixtoolset.org/schemas/v4/wxs");
54129 if (this.propertyFieldSet)
54130 {
54131 writer.WriteAttributeString("Property", this.propertyField);
54132 }
54133 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
54134 {
54135 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
54136 childElement.OutputXml(writer);
54137 }
54138 writer.WriteEndElement();
54139 }
54140
54141 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
54142 void ISetAttributes.SetAttribute(string name, string value)
54143 {
54144 if (String.IsNullOrEmpty(name))
54145 {
54146 throw new ArgumentNullException("name");
54147 }
54148 if (("Property" == name))
54149 {
54150 this.propertyField = value;
54151 this.propertyFieldSet = true;
54152 }
54153 }
54154 }
54155
54156 /// <summary>
54157 /// Text or Icon plus Value that is assigned to the Property of the parent Control (RadioButtonGroup).
54158 /// </summary>
54159 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
54160 public class RadioButton : ISchemaElement, ISetAttributes
54161 {
54162
54163 private string bitmapField;
54164
54165 private bool bitmapFieldSet;
54166
54167 private string heightField;
54168
54169 private bool heightFieldSet;
54170
54171 private string helpField;
54172
54173 private bool helpFieldSet;
54174
54175 private string iconField;
54176
54177 private bool iconFieldSet;
54178
54179 private string textField;
54180
54181 private bool textFieldSet;
54182
54183 private string toolTipField;
54184
54185 private bool toolTipFieldSet;
54186
54187 private string valueField;
54188
54189 private bool valueFieldSet;
54190
54191 private string widthField;
54192
54193 private bool widthFieldSet;
54194
54195 private string xField;
54196
54197 private bool xFieldSet;
54198
54199 private string yField;
54200
54201 private bool yFieldSet;
54202
54203 private ISchemaElement parentElement;
54204
54205 /// <summary>
54206 /// This attribute defines the bitmap displayed with the radio button. The value of the attribute creates a reference
54207 /// to a Binary element that represents the bitmap. This attribute is mutually exclusive with the Icon and Text
54208 /// attributes.
54209 /// </summary>
54210 public string Bitmap
54211 {
54212 get
54213 {
54214 return this.bitmapField;
54215 }
54216 set
54217 {
54218 this.bitmapFieldSet = true;
54219 this.bitmapField = value;
54220 }
54221 }
54222
54223 public string Height
54224 {
54225 get
54226 {
54227 return this.heightField;
54228 }
54229 set
54230 {
54231 this.heightFieldSet = true;
54232 this.heightField = value;
54233 }
54234 }
54235
54236 public string Help
54237 {
54238 get
54239 {
54240 return this.helpField;
54241 }
54242 set
54243 {
54244 this.helpFieldSet = true;
54245 this.helpField = value;
54246 }
54247 }
54248
54249 /// <summary>
54250 /// This attribute defines the icon displayed with the radio button. The value of the attribute creates a reference
54251 /// to a Binary element that represents the icon. This attribute is mutually exclusive with the Bitmap and Text
54252 /// attributes.
54253 /// </summary>
54254 public string Icon
54255 {
54256 get
54257 {
54258 return this.iconField;
54259 }
54260 set
54261 {
54262 this.iconFieldSet = true;
54263 this.iconField = value;
54264 }
54265 }
54266
54267 /// <summary>
54268 /// Text displayed with the radio button. This attribute is mutually exclusive with the Bitmap and Icon attributes.
54269 /// </summary>
54270 public string Text
54271 {
54272 get
54273 {
54274 return this.textField;
54275 }
54276 set
54277 {
54278 this.textFieldSet = true;
54279 this.textField = value;
54280 }
54281 }
54282
54283 public string ToolTip
54284 {
54285 get
54286 {
54287 return this.toolTipField;
54288 }
54289 set
54290 {
54291 this.toolTipFieldSet = true;
54292 this.toolTipField = value;
54293 }
54294 }
54295
54296 /// <summary>
54297 /// Value assigned to the associated control Property when this radio button is selected.
54298 /// </summary>
54299 public string Value
54300 {
54301 get
54302 {
54303 return this.valueField;
54304 }
54305 set
54306 {
54307 this.valueFieldSet = true;
54308 this.valueField = value;
54309 }
54310 }
54311
54312 public string Width
54313 {
54314 get
54315 {
54316 return this.widthField;
54317 }
54318 set
54319 {
54320 this.widthFieldSet = true;
54321 this.widthField = value;
54322 }
54323 }
54324
54325 public string X
54326 {
54327 get
54328 {
54329 return this.xField;
54330 }
54331 set
54332 {
54333 this.xFieldSet = true;
54334 this.xField = value;
54335 }
54336 }
54337
54338 public string Y
54339 {
54340 get
54341 {
54342 return this.yField;
54343 }
54344 set
54345 {
54346 this.yFieldSet = true;
54347 this.yField = value;
54348 }
54349 }
54350
54351 public virtual ISchemaElement ParentElement
54352 {
54353 get
54354 {
54355 return this.parentElement;
54356 }
54357 set
54358 {
54359 this.parentElement = value;
54360 }
54361 }
54362
54363 /// <summary>
54364 /// Processes this element and all child elements into an XmlWriter.
54365 /// </summary>
54366 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
54367 public virtual void OutputXml(XmlWriter writer)
54368 {
54369 if ((null == writer))
54370 {
54371 throw new ArgumentNullException("writer");
54372 }
54373 writer.WriteStartElement("RadioButton", "http://wixtoolset.org/schemas/v4/wxs");
54374 if (this.bitmapFieldSet)
54375 {
54376 writer.WriteAttributeString("Bitmap", this.bitmapField);
54377 }
54378 if (this.heightFieldSet)
54379 {
54380 writer.WriteAttributeString("Height", this.heightField);
54381 }
54382 if (this.helpFieldSet)
54383 {
54384 writer.WriteAttributeString("Help", this.helpField);
54385 }
54386 if (this.iconFieldSet)
54387 {
54388 writer.WriteAttributeString("Icon", this.iconField);
54389 }
54390 if (this.textFieldSet)
54391 {
54392 writer.WriteAttributeString("Text", this.textField);
54393 }
54394 if (this.toolTipFieldSet)
54395 {
54396 writer.WriteAttributeString("ToolTip", this.toolTipField);
54397 }
54398 if (this.valueFieldSet)
54399 {
54400 writer.WriteAttributeString("Value", this.valueField);
54401 }
54402 if (this.widthFieldSet)
54403 {
54404 writer.WriteAttributeString("Width", this.widthField);
54405 }
54406 if (this.xFieldSet)
54407 {
54408 writer.WriteAttributeString("X", this.xField);
54409 }
54410 if (this.yFieldSet)
54411 {
54412 writer.WriteAttributeString("Y", this.yField);
54413 }
54414 writer.WriteEndElement();
54415 }
54416
54417 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
54418 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
54419 void ISetAttributes.SetAttribute(string name, string value)
54420 {
54421 if (String.IsNullOrEmpty(name))
54422 {
54423 throw new ArgumentNullException("name");
54424 }
54425 if (("Bitmap" == name))
54426 {
54427 this.bitmapField = value;
54428 this.bitmapFieldSet = true;
54429 }
54430 if (("Height" == name))
54431 {
54432 this.heightField = value;
54433 this.heightFieldSet = true;
54434 }
54435 if (("Help" == name))
54436 {
54437 this.helpField = value;
54438 this.helpFieldSet = true;
54439 }
54440 if (("Icon" == name))
54441 {
54442 this.iconField = value;
54443 this.iconFieldSet = true;
54444 }
54445 if (("Text" == name))
54446 {
54447 this.textField = value;
54448 this.textFieldSet = true;
54449 }
54450 if (("ToolTip" == name))
54451 {
54452 this.toolTipField = value;
54453 this.toolTipFieldSet = true;
54454 }
54455 if (("Value" == name))
54456 {
54457 this.valueField = value;
54458 this.valueFieldSet = true;
54459 }
54460 if (("Width" == name))
54461 {
54462 this.widthField = value;
54463 this.widthFieldSet = true;
54464 }
54465 if (("X" == name))
54466 {
54467 this.xField = value;
54468 this.xFieldSet = true;
54469 }
54470 if (("Y" == name))
54471 {
54472 this.yField = value;
54473 this.yFieldSet = true;
54474 }
54475 }
54476 }
54477
54478 /// <summary>
54479 /// Set of radio buttons tied to the specified Property
54480 /// </summary>
54481 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
54482 public class RadioButtonGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
54483 {
54484
54485 private ElementCollection children;
54486
54487 private string propertyField;
54488
54489 private bool propertyFieldSet;
54490
54491 private ISchemaElement parentElement;
54492
54493 public RadioButtonGroup()
54494 {
54495 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
54496 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(RadioButton)));
54497 this.children = childCollection0;
54498 }
54499
54500 public virtual IEnumerable Children
54501 {
54502 get
54503 {
54504 return this.children;
54505 }
54506 }
54507
54508 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
54509 public virtual IEnumerable this[System.Type childType]
54510 {
54511 get
54512 {
54513 return this.children.Filter(childType);
54514 }
54515 }
54516
54517 /// <summary>
54518 /// Property tied to this group.
54519 /// </summary>
54520 public string Property
54521 {
54522 get
54523 {
54524 return this.propertyField;
54525 }
54526 set
54527 {
54528 this.propertyFieldSet = true;
54529 this.propertyField = value;
54530 }
54531 }
54532
54533 public virtual ISchemaElement ParentElement
54534 {
54535 get
54536 {
54537 return this.parentElement;
54538 }
54539 set
54540 {
54541 this.parentElement = value;
54542 }
54543 }
54544
54545 public virtual void AddChild(ISchemaElement child)
54546 {
54547 if ((null == child))
54548 {
54549 throw new ArgumentNullException("child");
54550 }
54551 this.children.AddElement(child);
54552 child.ParentElement = this;
54553 }
54554
54555 public virtual void RemoveChild(ISchemaElement child)
54556 {
54557 if ((null == child))
54558 {
54559 throw new ArgumentNullException("child");
54560 }
54561 this.children.RemoveElement(child);
54562 child.ParentElement = null;
54563 }
54564
54565 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
54566 ISchemaElement ICreateChildren.CreateChild(string childName)
54567 {
54568 if (String.IsNullOrEmpty(childName))
54569 {
54570 throw new ArgumentNullException("childName");
54571 }
54572 ISchemaElement childValue = null;
54573 if (("RadioButton" == childName))
54574 {
54575 childValue = new RadioButton();
54576 }
54577 if ((null == childValue))
54578 {
54579 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
54580 }
54581 return childValue;
54582 }
54583
54584 /// <summary>
54585 /// Processes this element and all child elements into an XmlWriter.
54586 /// </summary>
54587 public virtual void OutputXml(XmlWriter writer)
54588 {
54589 if ((null == writer))
54590 {
54591 throw new ArgumentNullException("writer");
54592 }
54593 writer.WriteStartElement("RadioButtonGroup", "http://wixtoolset.org/schemas/v4/wxs");
54594 if (this.propertyFieldSet)
54595 {
54596 writer.WriteAttributeString("Property", this.propertyField);
54597 }
54598 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
54599 {
54600 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
54601 childElement.OutputXml(writer);
54602 }
54603 writer.WriteEndElement();
54604 }
54605
54606 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
54607 void ISetAttributes.SetAttribute(string name, string value)
54608 {
54609 if (String.IsNullOrEmpty(name))
54610 {
54611 throw new ArgumentNullException("name");
54612 }
54613 if (("Property" == name))
54614 {
54615 this.propertyField = value;
54616 this.propertyFieldSet = true;
54617 }
54618 }
54619 }
54620
54621 /// <summary>
54622 /// Text associated with certain controls
54623 /// </summary>
54624 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
54625 public class UIText : ISchemaElement, ISetAttributes
54626 {
54627
54628 private string idField;
54629
54630 private bool idFieldSet;
54631
54632 private string contentField;
54633
54634 private bool contentFieldSet;
54635
54636 private ISchemaElement parentElement;
54637
54638 public string Id
54639 {
54640 get
54641 {
54642 return this.idField;
54643 }
54644 set
54645 {
54646 this.idFieldSet = true;
54647 this.idField = value;
54648 }
54649 }
54650
54651 /// <summary>
54652 /// Element value is text, may use CDATA if needed to escape XML delimiters
54653 /// </summary>
54654 public string Content
54655 {
54656 get
54657 {
54658 return this.contentField;
54659 }
54660 set
54661 {
54662 this.contentFieldSet = true;
54663 this.contentField = value;
54664 }
54665 }
54666
54667 public virtual ISchemaElement ParentElement
54668 {
54669 get
54670 {
54671 return this.parentElement;
54672 }
54673 set
54674 {
54675 this.parentElement = value;
54676 }
54677 }
54678
54679 /// <summary>
54680 /// Processes this element and all child elements into an XmlWriter.
54681 /// </summary>
54682 public virtual void OutputXml(XmlWriter writer)
54683 {
54684 if ((null == writer))
54685 {
54686 throw new ArgumentNullException("writer");
54687 }
54688 writer.WriteStartElement("UIText", "http://wixtoolset.org/schemas/v4/wxs");
54689 if (this.idFieldSet)
54690 {
54691 writer.WriteAttributeString("Id", this.idField);
54692 }
54693 if (this.contentFieldSet)
54694 {
54695 writer.WriteString(this.contentField);
54696 }
54697 writer.WriteEndElement();
54698 }
54699
54700 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
54701 void ISetAttributes.SetAttribute(string name, string value)
54702 {
54703 if (String.IsNullOrEmpty(name))
54704 {
54705 throw new ArgumentNullException("name");
54706 }
54707 if (("Id" == name))
54708 {
54709 this.idField = value;
54710 this.idFieldSet = true;
54711 }
54712 if (("Content" == name))
54713 {
54714 this.contentField = value;
54715 this.contentFieldSet = true;
54716 }
54717 }
54718 }
54719
54720 /// <summary>
54721 /// Reference to a UI element. This will force the entire referenced Fragment's contents
54722 /// to be included in the installer database.
54723 /// </summary>
54724 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
54725 public class UIRef : ISchemaElement, ISetAttributes
54726 {
54727
54728 private string idField;
54729
54730 private bool idFieldSet;
54731
54732 private ISchemaElement parentElement;
54733
54734 public string Id
54735 {
54736 get
54737 {
54738 return this.idField;
54739 }
54740 set
54741 {
54742 this.idFieldSet = true;
54743 this.idField = value;
54744 }
54745 }
54746
54747 public virtual ISchemaElement ParentElement
54748 {
54749 get
54750 {
54751 return this.parentElement;
54752 }
54753 set
54754 {
54755 this.parentElement = value;
54756 }
54757 }
54758
54759 /// <summary>
54760 /// Processes this element and all child elements into an XmlWriter.
54761 /// </summary>
54762 public virtual void OutputXml(XmlWriter writer)
54763 {
54764 if ((null == writer))
54765 {
54766 throw new ArgumentNullException("writer");
54767 }
54768 writer.WriteStartElement("UIRef", "http://wixtoolset.org/schemas/v4/wxs");
54769 if (this.idFieldSet)
54770 {
54771 writer.WriteAttributeString("Id", this.idField);
54772 }
54773 writer.WriteEndElement();
54774 }
54775
54776 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
54777 void ISetAttributes.SetAttribute(string name, string value)
54778 {
54779 if (String.IsNullOrEmpty(name))
54780 {
54781 throw new ArgumentNullException("name");
54782 }
54783 if (("Id" == name))
54784 {
54785 this.idField = value;
54786 this.idFieldSet = true;
54787 }
54788 }
54789 }
54790
54791 /// <summary>
54792 /// Enclosing element to compartmentalize UI specifications.
54793 /// </summary>
54794 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
54795 public class UI : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
54796 {
54797
54798 private ElementCollection children;
54799
54800 private string idField;
54801
54802 private bool idFieldSet;
54803
54804 private ISchemaElement parentElement;
54805
54806 public UI()
54807 {
54808 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
54809 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedUI)));
54810 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Error)));
54811 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ProgressText)));
54812 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BillboardAction)));
54813 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComboBox)));
54814 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ListBox)));
54815 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ListView)));
54816 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RadioButtonGroup)));
54817 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(TextStyle)));
54818 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UIText)));
54819 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Dialog)));
54820 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DialogRef)));
54821 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Publish)));
54822 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PropertyRef)));
54823 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Property)));
54824 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Binary)));
54825 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Sequence);
54826 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(AdminUISequence)));
54827 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(InstallUISequence)));
54828 childCollection0.AddCollection(childCollection1);
54829 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UIRef)));
54830 this.children = childCollection0;
54831 }
54832
54833 public virtual IEnumerable Children
54834 {
54835 get
54836 {
54837 return this.children;
54838 }
54839 }
54840
54841 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
54842 public virtual IEnumerable this[System.Type childType]
54843 {
54844 get
54845 {
54846 return this.children.Filter(childType);
54847 }
54848 }
54849
54850 public string Id
54851 {
54852 get
54853 {
54854 return this.idField;
54855 }
54856 set
54857 {
54858 this.idFieldSet = true;
54859 this.idField = value;
54860 }
54861 }
54862
54863 public virtual ISchemaElement ParentElement
54864 {
54865 get
54866 {
54867 return this.parentElement;
54868 }
54869 set
54870 {
54871 this.parentElement = value;
54872 }
54873 }
54874
54875 public virtual void AddChild(ISchemaElement child)
54876 {
54877 if ((null == child))
54878 {
54879 throw new ArgumentNullException("child");
54880 }
54881 this.children.AddElement(child);
54882 child.ParentElement = this;
54883 }
54884
54885 public virtual void RemoveChild(ISchemaElement child)
54886 {
54887 if ((null == child))
54888 {
54889 throw new ArgumentNullException("child");
54890 }
54891 this.children.RemoveElement(child);
54892 child.ParentElement = null;
54893 }
54894
54895 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
54896 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
54897 ISchemaElement ICreateChildren.CreateChild(string childName)
54898 {
54899 if (String.IsNullOrEmpty(childName))
54900 {
54901 throw new ArgumentNullException("childName");
54902 }
54903 ISchemaElement childValue = null;
54904 if (("EmbeddedUI" == childName))
54905 {
54906 childValue = new EmbeddedUI();
54907 }
54908 if (("Error" == childName))
54909 {
54910 childValue = new Error();
54911 }
54912 if (("ProgressText" == childName))
54913 {
54914 childValue = new ProgressText();
54915 }
54916 if (("BillboardAction" == childName))
54917 {
54918 childValue = new BillboardAction();
54919 }
54920 if (("ComboBox" == childName))
54921 {
54922 childValue = new ComboBox();
54923 }
54924 if (("ListBox" == childName))
54925 {
54926 childValue = new ListBox();
54927 }
54928 if (("ListView" == childName))
54929 {
54930 childValue = new ListView();
54931 }
54932 if (("RadioButtonGroup" == childName))
54933 {
54934 childValue = new RadioButtonGroup();
54935 }
54936 if (("TextStyle" == childName))
54937 {
54938 childValue = new TextStyle();
54939 }
54940 if (("UIText" == childName))
54941 {
54942 childValue = new UIText();
54943 }
54944 if (("Dialog" == childName))
54945 {
54946 childValue = new Dialog();
54947 }
54948 if (("DialogRef" == childName))
54949 {
54950 childValue = new DialogRef();
54951 }
54952 if (("Publish" == childName))
54953 {
54954 childValue = new Publish();
54955 }
54956 if (("PropertyRef" == childName))
54957 {
54958 childValue = new PropertyRef();
54959 }
54960 if (("Property" == childName))
54961 {
54962 childValue = new Property();
54963 }
54964 if (("Binary" == childName))
54965 {
54966 childValue = new Binary();
54967 }
54968 if (("AdminUISequence" == childName))
54969 {
54970 childValue = new AdminUISequence();
54971 }
54972 if (("InstallUISequence" == childName))
54973 {
54974 childValue = new InstallUISequence();
54975 }
54976 if (("UIRef" == childName))
54977 {
54978 childValue = new UIRef();
54979 }
54980 if ((null == childValue))
54981 {
54982 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
54983 }
54984 return childValue;
54985 }
54986
54987 /// <summary>
54988 /// Processes this element and all child elements into an XmlWriter.
54989 /// </summary>
54990 public virtual void OutputXml(XmlWriter writer)
54991 {
54992 if ((null == writer))
54993 {
54994 throw new ArgumentNullException("writer");
54995 }
54996 writer.WriteStartElement("UI", "http://wixtoolset.org/schemas/v4/wxs");
54997 if (this.idFieldSet)
54998 {
54999 writer.WriteAttributeString("Id", this.idField);
55000 }
55001 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
55002 {
55003 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
55004 childElement.OutputXml(writer);
55005 }
55006 writer.WriteEndElement();
55007 }
55008
55009 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
55010 void ISetAttributes.SetAttribute(string name, string value)
55011 {
55012 if (String.IsNullOrEmpty(name))
55013 {
55014 throw new ArgumentNullException("name");
55015 }
55016 if (("Id" == name))
55017 {
55018 this.idField = value;
55019 this.idFieldSet = true;
55020 }
55021 }
55022 }
55023
55024 /// <summary>
55025 /// Defines a custom table for use from a custom action.
55026 /// </summary>
55027 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
55028 public class CustomTable : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
55029 {
55030
55031 private ElementCollection children;
55032
55033 private string idField;
55034
55035 private bool idFieldSet;
55036
55037 private YesNoType bootstrapperApplicationDataField;
55038
55039 private bool bootstrapperApplicationDataFieldSet;
55040
55041 private ISchemaElement parentElement;
55042
55043 public CustomTable()
55044 {
55045 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
55046 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Column)));
55047 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Row)));
55048 this.children = childCollection0;
55049 }
55050
55051 public virtual IEnumerable Children
55052 {
55053 get
55054 {
55055 return this.children;
55056 }
55057 }
55058
55059 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
55060 public virtual IEnumerable this[System.Type childType]
55061 {
55062 get
55063 {
55064 return this.children.Filter(childType);
55065 }
55066 }
55067
55068 /// <summary>
55069 /// Identifier for the custom table.
55070 /// </summary>
55071 public string Id
55072 {
55073 get
55074 {
55075 return this.idField;
55076 }
55077 set
55078 {
55079 this.idFieldSet = true;
55080 this.idField = value;
55081 }
55082 }
55083
55084 /// <summary>
55085 /// Indicates the table data is transformed into the bootstrapper application data manifest.
55086 /// </summary>
55087 public YesNoType BootstrapperApplicationData
55088 {
55089 get
55090 {
55091 return this.bootstrapperApplicationDataField;
55092 }
55093 set
55094 {
55095 this.bootstrapperApplicationDataFieldSet = true;
55096 this.bootstrapperApplicationDataField = value;
55097 }
55098 }
55099
55100 public virtual ISchemaElement ParentElement
55101 {
55102 get
55103 {
55104 return this.parentElement;
55105 }
55106 set
55107 {
55108 this.parentElement = value;
55109 }
55110 }
55111
55112 public virtual void AddChild(ISchemaElement child)
55113 {
55114 if ((null == child))
55115 {
55116 throw new ArgumentNullException("child");
55117 }
55118 this.children.AddElement(child);
55119 child.ParentElement = this;
55120 }
55121
55122 public virtual void RemoveChild(ISchemaElement child)
55123 {
55124 if ((null == child))
55125 {
55126 throw new ArgumentNullException("child");
55127 }
55128 this.children.RemoveElement(child);
55129 child.ParentElement = null;
55130 }
55131
55132 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
55133 ISchemaElement ICreateChildren.CreateChild(string childName)
55134 {
55135 if (String.IsNullOrEmpty(childName))
55136 {
55137 throw new ArgumentNullException("childName");
55138 }
55139 ISchemaElement childValue = null;
55140 if (("Column" == childName))
55141 {
55142 childValue = new Column();
55143 }
55144 if (("Row" == childName))
55145 {
55146 childValue = new Row();
55147 }
55148 if ((null == childValue))
55149 {
55150 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
55151 }
55152 return childValue;
55153 }
55154
55155 /// <summary>
55156 /// Processes this element and all child elements into an XmlWriter.
55157 /// </summary>
55158 public virtual void OutputXml(XmlWriter writer)
55159 {
55160 if ((null == writer))
55161 {
55162 throw new ArgumentNullException("writer");
55163 }
55164 writer.WriteStartElement("CustomTable", "http://wixtoolset.org/schemas/v4/wxs");
55165 if (this.idFieldSet)
55166 {
55167 writer.WriteAttributeString("Id", this.idField);
55168 }
55169 if (this.bootstrapperApplicationDataFieldSet)
55170 {
55171 if ((this.bootstrapperApplicationDataField == YesNoType.no))
55172 {
55173 writer.WriteAttributeString("BootstrapperApplicationData", "no");
55174 }
55175 if ((this.bootstrapperApplicationDataField == YesNoType.yes))
55176 {
55177 writer.WriteAttributeString("BootstrapperApplicationData", "yes");
55178 }
55179 }
55180 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
55181 {
55182 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
55183 childElement.OutputXml(writer);
55184 }
55185 writer.WriteEndElement();
55186 }
55187
55188 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
55189 void ISetAttributes.SetAttribute(string name, string value)
55190 {
55191 if (String.IsNullOrEmpty(name))
55192 {
55193 throw new ArgumentNullException("name");
55194 }
55195 if (("Id" == name))
55196 {
55197 this.idField = value;
55198 this.idFieldSet = true;
55199 }
55200 if (("BootstrapperApplicationData" == name))
55201 {
55202 this.bootstrapperApplicationDataField = Enums.ParseYesNoType(value);
55203 this.bootstrapperApplicationDataFieldSet = true;
55204 }
55205 }
55206 }
55207
55208 /// <summary>
55209 /// Column definition for a Custom Table
55210 /// </summary>
55211 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
55212 public class Column : ISchemaElement, ISetAttributes
55213 {
55214
55215 private string idField;
55216
55217 private bool idFieldSet;
55218
55219 private YesNoType primaryKeyField;
55220
55221 private bool primaryKeyFieldSet;
55222
55223 private TypeType typeField;
55224
55225 private bool typeFieldSet;
55226
55227 private int widthField;
55228
55229 private bool widthFieldSet;
55230
55231 private YesNoType nullableField;
55232
55233 private bool nullableFieldSet;
55234
55235 private YesNoType localizableField;
55236
55237 private bool localizableFieldSet;
55238
55239 private long minValueField;
55240
55241 private bool minValueFieldSet;
55242
55243 private long maxValueField;
55244
55245 private bool maxValueFieldSet;
55246
55247 private string keyTableField;
55248
55249 private bool keyTableFieldSet;
55250
55251 private int keyColumnField;
55252
55253 private bool keyColumnFieldSet;
55254
55255 private CategoryType categoryField;
55256
55257 private bool categoryFieldSet;
55258
55259 private string setField;
55260
55261 private bool setFieldSet;
55262
55263 private string descriptionField;
55264
55265 private bool descriptionFieldSet;
55266
55267 private ModularizeType modularizeField;
55268
55269 private bool modularizeFieldSet;
55270
55271 private ISchemaElement parentElement;
55272
55273 /// <summary>
55274 /// Identifier for the column.
55275 /// </summary>
55276 public string Id
55277 {
55278 get
55279 {
55280 return this.idField;
55281 }
55282 set
55283 {
55284 this.idFieldSet = true;
55285 this.idField = value;
55286 }
55287 }
55288
55289 /// <summary>
55290 /// Whether this column is a primary key.
55291 /// </summary>
55292 public YesNoType PrimaryKey
55293 {
55294 get
55295 {
55296 return this.primaryKeyField;
55297 }
55298 set
55299 {
55300 this.primaryKeyFieldSet = true;
55301 this.primaryKeyField = value;
55302 }
55303 }
55304
55305 /// <summary>
55306 /// The type of this column.
55307 /// </summary>
55308 public TypeType Type
55309 {
55310 get
55311 {
55312 return this.typeField;
55313 }
55314 set
55315 {
55316 this.typeFieldSet = true;
55317 this.typeField = value;
55318 }
55319 }
55320
55321 /// <summary>
55322 /// Width of this column.
55323 /// </summary>
55324 public int Width
55325 {
55326 get
55327 {
55328 return this.widthField;
55329 }
55330 set
55331 {
55332 this.widthFieldSet = true;
55333 this.widthField = value;
55334 }
55335 }
55336
55337 /// <summary>
55338 /// Whether this column can be left null.
55339 /// </summary>
55340 public YesNoType Nullable
55341 {
55342 get
55343 {
55344 return this.nullableField;
55345 }
55346 set
55347 {
55348 this.nullableFieldSet = true;
55349 this.nullableField = value;
55350 }
55351 }
55352
55353 /// <summary>
55354 /// Whether this column can be localized.
55355 /// </summary>
55356 public YesNoType Localizable
55357 {
55358 get
55359 {
55360 return this.localizableField;
55361 }
55362 set
55363 {
55364 this.localizableFieldSet = true;
55365 this.localizableField = value;
55366 }
55367 }
55368
55369 /// <summary>
55370 /// Minimum value for a numeric value, date or version in this column.
55371 /// </summary>
55372 public long MinValue
55373 {
55374 get
55375 {
55376 return this.minValueField;
55377 }
55378 set
55379 {
55380 this.minValueFieldSet = true;
55381 this.minValueField = value;
55382 }
55383 }
55384
55385 /// <summary>
55386 /// Maximum value for a numeric value, date or version in this column.
55387 /// </summary>
55388 public long MaxValue
55389 {
55390 get
55391 {
55392 return this.maxValueField;
55393 }
55394 set
55395 {
55396 this.maxValueFieldSet = true;
55397 this.maxValueField = value;
55398 }
55399 }
55400
55401 /// <summary>
55402 /// Table in which this column is an external key. Can be semicolon delimited.
55403 /// </summary>
55404 public string KeyTable
55405 {
55406 get
55407 {
55408 return this.keyTableField;
55409 }
55410 set
55411 {
55412 this.keyTableFieldSet = true;
55413 this.keyTableField = value;
55414 }
55415 }
55416
55417 /// <summary>
55418 /// Column in the table in KeyTable attribute.
55419 /// </summary>
55420 public int KeyColumn
55421 {
55422 get
55423 {
55424 return this.keyColumnField;
55425 }
55426 set
55427 {
55428 this.keyColumnFieldSet = true;
55429 this.keyColumnField = value;
55430 }
55431 }
55432
55433 /// <summary>
55434 /// Category of this column.
55435 /// This attribute must be specified with a value of 'Binary' if the Type attribute's value is 'binary'.
55436 /// </summary>
55437 public CategoryType Category
55438 {
55439 get
55440 {
55441 return this.categoryField;
55442 }
55443 set
55444 {
55445 this.categoryFieldSet = true;
55446 this.categoryField = value;
55447 }
55448 }
55449
55450 /// <summary>
55451 /// Semicolon delimited list of permissible values.
55452 /// </summary>
55453 public string Set
55454 {
55455 get
55456 {
55457 return this.setField;
55458 }
55459 set
55460 {
55461 this.setFieldSet = true;
55462 this.setField = value;
55463 }
55464 }
55465
55466 /// <summary>
55467 /// Description of this column.
55468 /// </summary>
55469 public string Description
55470 {
55471 get
55472 {
55473 return this.descriptionField;
55474 }
55475 set
55476 {
55477 this.descriptionFieldSet = true;
55478 this.descriptionField = value;
55479 }
55480 }
55481
55482 /// <summary>
55483 /// How this column should be modularized, if at all.
55484 /// </summary>
55485 public ModularizeType Modularize
55486 {
55487 get
55488 {
55489 return this.modularizeField;
55490 }
55491 set
55492 {
55493 this.modularizeFieldSet = true;
55494 this.modularizeField = value;
55495 }
55496 }
55497
55498 public virtual ISchemaElement ParentElement
55499 {
55500 get
55501 {
55502 return this.parentElement;
55503 }
55504 set
55505 {
55506 this.parentElement = value;
55507 }
55508 }
55509
55510 /// <summary>
55511 /// Parses a TypeType from a string.
55512 /// </summary>
55513 public static TypeType ParseTypeType(string value)
55514 {
55515 TypeType parsedValue;
55516 Column.TryParseTypeType(value, out parsedValue);
55517 return parsedValue;
55518 }
55519
55520 /// <summary>
55521 /// Tries to parse a TypeType from a string.
55522 /// </summary>
55523 public static bool TryParseTypeType(string value, out TypeType parsedValue)
55524 {
55525 parsedValue = TypeType.NotSet;
55526 if (string.IsNullOrEmpty(value))
55527 {
55528 return false;
55529 }
55530 if (("binary" == value))
55531 {
55532 parsedValue = TypeType.binary;
55533 }
55534 else
55535 {
55536 if (("int" == value))
55537 {
55538 parsedValue = TypeType.@int;
55539 }
55540 else
55541 {
55542 if (("string" == value))
55543 {
55544 parsedValue = TypeType.@string;
55545 }
55546 else
55547 {
55548 parsedValue = TypeType.IllegalValue;
55549 return false;
55550 }
55551 }
55552 }
55553 return true;
55554 }
55555
55556 /// <summary>
55557 /// Parses a CategoryType from a string.
55558 /// </summary>
55559 public static CategoryType ParseCategoryType(string value)
55560 {
55561 CategoryType parsedValue;
55562 Column.TryParseCategoryType(value, out parsedValue);
55563 return parsedValue;
55564 }
55565
55566 /// <summary>
55567 /// Tries to parse a CategoryType from a string.
55568 /// </summary>
55569 public static bool TryParseCategoryType(string value, out CategoryType parsedValue)
55570 {
55571 parsedValue = CategoryType.NotSet;
55572 if (string.IsNullOrEmpty(value))
55573 {
55574 return false;
55575 }
55576 if (("Text" == value))
55577 {
55578 parsedValue = CategoryType.Text;
55579 }
55580 else
55581 {
55582 if (("UpperCase" == value))
55583 {
55584 parsedValue = CategoryType.UpperCase;
55585 }
55586 else
55587 {
55588 if (("LowerCase" == value))
55589 {
55590 parsedValue = CategoryType.LowerCase;
55591 }
55592 else
55593 {
55594 if (("Integer" == value))
55595 {
55596 parsedValue = CategoryType.Integer;
55597 }
55598 else
55599 {
55600 if (("DoubleInteger" == value))
55601 {
55602 parsedValue = CategoryType.DoubleInteger;
55603 }
55604 else
55605 {
55606 if (("TimeDate" == value))
55607 {
55608 parsedValue = CategoryType.TimeDate;
55609 }
55610 else
55611 {
55612 if (("Identifier" == value))
55613 {
55614 parsedValue = CategoryType.Identifier;
55615 }
55616 else
55617 {
55618 if (("Property" == value))
55619 {
55620 parsedValue = CategoryType.Property;
55621 }
55622 else
55623 {
55624 if (("Filename" == value))
55625 {
55626 parsedValue = CategoryType.Filename;
55627 }
55628 else
55629 {
55630 if (("WildCardFilename" == value))
55631 {
55632 parsedValue = CategoryType.WildCardFilename;
55633 }
55634 else
55635 {
55636 if (("Path" == value))
55637 {
55638 parsedValue = CategoryType.Path;
55639 }
55640 else
55641 {
55642 if (("Paths" == value))
55643 {
55644 parsedValue = CategoryType.Paths;
55645 }
55646 else
55647 {
55648 if (("AnyPath" == value))
55649 {
55650 parsedValue = CategoryType.AnyPath;
55651 }
55652 else
55653 {
55654 if (("DefaultDir" == value))
55655 {
55656 parsedValue = CategoryType.DefaultDir;
55657 }
55658 else
55659 {
55660 if (("RegPath" == value))
55661 {
55662 parsedValue = CategoryType.RegPath;
55663 }
55664 else
55665 {
55666 if (("Formatted" == value))
55667 {
55668 parsedValue = CategoryType.Formatted;
55669 }
55670 else
55671 {
55672 if (("FormattedSddl" == value))
55673 {
55674 parsedValue = CategoryType.FormattedSddl;
55675 }
55676 else
55677 {
55678 if (("Template" == value))
55679 {
55680 parsedValue = CategoryType.Template;
55681 }
55682 else
55683 {
55684 if (("Condition" == value))
55685 {
55686 parsedValue = CategoryType.Condition;
55687 }
55688 else
55689 {
55690 if (("Guid" == value))
55691 {
55692 parsedValue = CategoryType.Guid;
55693 }
55694 else
55695 {
55696 if (("Version" == value))
55697 {
55698 parsedValue = CategoryType.Version;
55699 }
55700 else
55701 {
55702 if (("Language" == value))
55703 {
55704 parsedValue = CategoryType.Language;
55705 }
55706 else
55707 {
55708 if (("Binary" == value))
55709 {
55710 parsedValue = CategoryType.Binary;
55711 }
55712 else
55713 {
55714 if (("CustomSource" == value))
55715 {
55716 parsedValue = CategoryType.CustomSource;
55717 }
55718 else
55719 {
55720 if (("Cabinet" == value))
55721 {
55722 parsedValue = CategoryType.Cabinet;
55723 }
55724 else
55725 {
55726 if (("Shortcut" == value))
55727 {
55728 parsedValue = CategoryType.Shortcut;
55729 }
55730 else
55731 {
55732 parsedValue = CategoryType.IllegalValue;
55733 return false;
55734 }
55735 }
55736 }
55737 }
55738 }
55739 }
55740 }
55741 }
55742 }
55743 }
55744 }
55745 }
55746 }
55747 }
55748 }
55749 }
55750 }
55751 }
55752 }
55753 }
55754 }
55755 }
55756 }
55757 }
55758 }
55759 }
55760 return true;
55761 }
55762
55763 /// <summary>
55764 /// Parses a ModularizeType from a string.
55765 /// </summary>
55766 public static ModularizeType ParseModularizeType(string value)
55767 {
55768 ModularizeType parsedValue;
55769 Column.TryParseModularizeType(value, out parsedValue);
55770 return parsedValue;
55771 }
55772
55773 /// <summary>
55774 /// Tries to parse a ModularizeType from a string.
55775 /// </summary>
55776 public static bool TryParseModularizeType(string value, out ModularizeType parsedValue)
55777 {
55778 parsedValue = ModularizeType.NotSet;
55779 if (string.IsNullOrEmpty(value))
55780 {
55781 return false;
55782 }
55783 if (("None" == value))
55784 {
55785 parsedValue = ModularizeType.None;
55786 }
55787 else
55788 {
55789 if (("Column" == value))
55790 {
55791 parsedValue = ModularizeType.Column;
55792 }
55793 else
55794 {
55795 if (("Condition" == value))
55796 {
55797 parsedValue = ModularizeType.Condition;
55798 }
55799 else
55800 {
55801 if (("Icon" == value))
55802 {
55803 parsedValue = ModularizeType.Icon;
55804 }
55805 else
55806 {
55807 if (("Property" == value))
55808 {
55809 parsedValue = ModularizeType.Property;
55810 }
55811 else
55812 {
55813 if (("SemicolonDelimited" == value))
55814 {
55815 parsedValue = ModularizeType.SemicolonDelimited;
55816 }
55817 else
55818 {
55819 parsedValue = ModularizeType.IllegalValue;
55820 return false;
55821 }
55822 }
55823 }
55824 }
55825 }
55826 }
55827 return true;
55828 }
55829
55830 /// <summary>
55831 /// Processes this element and all child elements into an XmlWriter.
55832 /// </summary>
55833 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
55834 public virtual void OutputXml(XmlWriter writer)
55835 {
55836 if ((null == writer))
55837 {
55838 throw new ArgumentNullException("writer");
55839 }
55840 writer.WriteStartElement("Column", "http://wixtoolset.org/schemas/v4/wxs");
55841 if (this.idFieldSet)
55842 {
55843 writer.WriteAttributeString("Id", this.idField);
55844 }
55845 if (this.primaryKeyFieldSet)
55846 {
55847 if ((this.primaryKeyField == YesNoType.no))
55848 {
55849 writer.WriteAttributeString("PrimaryKey", "no");
55850 }
55851 if ((this.primaryKeyField == YesNoType.yes))
55852 {
55853 writer.WriteAttributeString("PrimaryKey", "yes");
55854 }
55855 }
55856 if (this.typeFieldSet)
55857 {
55858 if ((this.typeField == TypeType.binary))
55859 {
55860 writer.WriteAttributeString("Type", "binary");
55861 }
55862 if ((this.typeField == TypeType.@int))
55863 {
55864 writer.WriteAttributeString("Type", "int");
55865 }
55866 if ((this.typeField == TypeType.@string))
55867 {
55868 writer.WriteAttributeString("Type", "string");
55869 }
55870 }
55871 if (this.widthFieldSet)
55872 {
55873 writer.WriteAttributeString("Width", this.widthField.ToString(CultureInfo.InvariantCulture));
55874 }
55875 if (this.nullableFieldSet)
55876 {
55877 if ((this.nullableField == YesNoType.no))
55878 {
55879 writer.WriteAttributeString("Nullable", "no");
55880 }
55881 if ((this.nullableField == YesNoType.yes))
55882 {
55883 writer.WriteAttributeString("Nullable", "yes");
55884 }
55885 }
55886 if (this.localizableFieldSet)
55887 {
55888 if ((this.localizableField == YesNoType.no))
55889 {
55890 writer.WriteAttributeString("Localizable", "no");
55891 }
55892 if ((this.localizableField == YesNoType.yes))
55893 {
55894 writer.WriteAttributeString("Localizable", "yes");
55895 }
55896 }
55897 if (this.minValueFieldSet)
55898 {
55899 writer.WriteAttributeString("MinValue", this.minValueField.ToString(CultureInfo.InvariantCulture));
55900 }
55901 if (this.maxValueFieldSet)
55902 {
55903 writer.WriteAttributeString("MaxValue", this.maxValueField.ToString(CultureInfo.InvariantCulture));
55904 }
55905 if (this.keyTableFieldSet)
55906 {
55907 writer.WriteAttributeString("KeyTable", this.keyTableField);
55908 }
55909 if (this.keyColumnFieldSet)
55910 {
55911 writer.WriteAttributeString("KeyColumn", this.keyColumnField.ToString(CultureInfo.InvariantCulture));
55912 }
55913 if (this.categoryFieldSet)
55914 {
55915 if ((this.categoryField == CategoryType.Text))
55916 {
55917 writer.WriteAttributeString("Category", "Text");
55918 }
55919 if ((this.categoryField == CategoryType.UpperCase))
55920 {
55921 writer.WriteAttributeString("Category", "UpperCase");
55922 }
55923 if ((this.categoryField == CategoryType.LowerCase))
55924 {
55925 writer.WriteAttributeString("Category", "LowerCase");
55926 }
55927 if ((this.categoryField == CategoryType.Integer))
55928 {
55929 writer.WriteAttributeString("Category", "Integer");
55930 }
55931 if ((this.categoryField == CategoryType.DoubleInteger))
55932 {
55933 writer.WriteAttributeString("Category", "DoubleInteger");
55934 }
55935 if ((this.categoryField == CategoryType.TimeDate))
55936 {
55937 writer.WriteAttributeString("Category", "TimeDate");
55938 }
55939 if ((this.categoryField == CategoryType.Identifier))
55940 {
55941 writer.WriteAttributeString("Category", "Identifier");
55942 }
55943 if ((this.categoryField == CategoryType.Property))
55944 {
55945 writer.WriteAttributeString("Category", "Property");
55946 }
55947 if ((this.categoryField == CategoryType.Filename))
55948 {
55949 writer.WriteAttributeString("Category", "Filename");
55950 }
55951 if ((this.categoryField == CategoryType.WildCardFilename))
55952 {
55953 writer.WriteAttributeString("Category", "WildCardFilename");
55954 }
55955 if ((this.categoryField == CategoryType.Path))
55956 {
55957 writer.WriteAttributeString("Category", "Path");
55958 }
55959 if ((this.categoryField == CategoryType.Paths))
55960 {
55961 writer.WriteAttributeString("Category", "Paths");
55962 }
55963 if ((this.categoryField == CategoryType.AnyPath))
55964 {
55965 writer.WriteAttributeString("Category", "AnyPath");
55966 }
55967 if ((this.categoryField == CategoryType.DefaultDir))
55968 {
55969 writer.WriteAttributeString("Category", "DefaultDir");
55970 }
55971 if ((this.categoryField == CategoryType.RegPath))
55972 {
55973 writer.WriteAttributeString("Category", "RegPath");
55974 }
55975 if ((this.categoryField == CategoryType.Formatted))
55976 {
55977 writer.WriteAttributeString("Category", "Formatted");
55978 }
55979 if ((this.categoryField == CategoryType.FormattedSddl))
55980 {
55981 writer.WriteAttributeString("Category", "FormattedSddl");
55982 }
55983 if ((this.categoryField == CategoryType.Template))
55984 {
55985 writer.WriteAttributeString("Category", "Template");
55986 }
55987 if ((this.categoryField == CategoryType.Condition))
55988 {
55989 writer.WriteAttributeString("Category", "Condition");
55990 }
55991 if ((this.categoryField == CategoryType.Guid))
55992 {
55993 writer.WriteAttributeString("Category", "Guid");
55994 }
55995 if ((this.categoryField == CategoryType.Version))
55996 {
55997 writer.WriteAttributeString("Category", "Version");
55998 }
55999 if ((this.categoryField == CategoryType.Language))
56000 {
56001 writer.WriteAttributeString("Category", "Language");
56002 }
56003 if ((this.categoryField == CategoryType.Binary))
56004 {
56005 writer.WriteAttributeString("Category", "Binary");
56006 }
56007 if ((this.categoryField == CategoryType.CustomSource))
56008 {
56009 writer.WriteAttributeString("Category", "CustomSource");
56010 }
56011 if ((this.categoryField == CategoryType.Cabinet))
56012 {
56013 writer.WriteAttributeString("Category", "Cabinet");
56014 }
56015 if ((this.categoryField == CategoryType.Shortcut))
56016 {
56017 writer.WriteAttributeString("Category", "Shortcut");
56018 }
56019 }
56020 if (this.setFieldSet)
56021 {
56022 writer.WriteAttributeString("Set", this.setField);
56023 }
56024 if (this.descriptionFieldSet)
56025 {
56026 writer.WriteAttributeString("Description", this.descriptionField);
56027 }
56028 if (this.modularizeFieldSet)
56029 {
56030 if ((this.modularizeField == ModularizeType.None))
56031 {
56032 writer.WriteAttributeString("Modularize", "None");
56033 }
56034 if ((this.modularizeField == ModularizeType.Column))
56035 {
56036 writer.WriteAttributeString("Modularize", "Column");
56037 }
56038 if ((this.modularizeField == ModularizeType.Condition))
56039 {
56040 writer.WriteAttributeString("Modularize", "Condition");
56041 }
56042 if ((this.modularizeField == ModularizeType.Icon))
56043 {
56044 writer.WriteAttributeString("Modularize", "Icon");
56045 }
56046 if ((this.modularizeField == ModularizeType.Property))
56047 {
56048 writer.WriteAttributeString("Modularize", "Property");
56049 }
56050 if ((this.modularizeField == ModularizeType.SemicolonDelimited))
56051 {
56052 writer.WriteAttributeString("Modularize", "SemicolonDelimited");
56053 }
56054 }
56055 writer.WriteEndElement();
56056 }
56057
56058 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
56059 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
56060 void ISetAttributes.SetAttribute(string name, string value)
56061 {
56062 if (String.IsNullOrEmpty(name))
56063 {
56064 throw new ArgumentNullException("name");
56065 }
56066 if (("Id" == name))
56067 {
56068 this.idField = value;
56069 this.idFieldSet = true;
56070 }
56071 if (("PrimaryKey" == name))
56072 {
56073 this.primaryKeyField = Enums.ParseYesNoType(value);
56074 this.primaryKeyFieldSet = true;
56075 }
56076 if (("Type" == name))
56077 {
56078 this.typeField = Column.ParseTypeType(value);
56079 this.typeFieldSet = true;
56080 }
56081 if (("Width" == name))
56082 {
56083 this.widthField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
56084 this.widthFieldSet = true;
56085 }
56086 if (("Nullable" == name))
56087 {
56088 this.nullableField = Enums.ParseYesNoType(value);
56089 this.nullableFieldSet = true;
56090 }
56091 if (("Localizable" == name))
56092 {
56093 this.localizableField = Enums.ParseYesNoType(value);
56094 this.localizableFieldSet = true;
56095 }
56096 if (("MinValue" == name))
56097 {
56098 this.minValueField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
56099 this.minValueFieldSet = true;
56100 }
56101 if (("MaxValue" == name))
56102 {
56103 this.maxValueField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
56104 this.maxValueFieldSet = true;
56105 }
56106 if (("KeyTable" == name))
56107 {
56108 this.keyTableField = value;
56109 this.keyTableFieldSet = true;
56110 }
56111 if (("KeyColumn" == name))
56112 {
56113 this.keyColumnField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
56114 this.keyColumnFieldSet = true;
56115 }
56116 if (("Category" == name))
56117 {
56118 this.categoryField = Column.ParseCategoryType(value);
56119 this.categoryFieldSet = true;
56120 }
56121 if (("Set" == name))
56122 {
56123 this.setField = value;
56124 this.setFieldSet = true;
56125 }
56126 if (("Description" == name))
56127 {
56128 this.descriptionField = value;
56129 this.descriptionFieldSet = true;
56130 }
56131 if (("Modularize" == name))
56132 {
56133 this.modularizeField = Column.ParseModularizeType(value);
56134 this.modularizeFieldSet = true;
56135 }
56136 }
56137
56138 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
56139 public enum TypeType
56140 {
56141
56142 IllegalValue = int.MaxValue,
56143
56144 NotSet = -1,
56145
56146 /// <summary>
56147 /// Column contains a path to a file that will be inserted into the column as a binary object.
56148 /// If this value is set, the Category attribute must also be set with a value of 'Binary' to pass ICE validation.
56149 /// </summary>
56150 binary,
56151
56152 /// <summary>
56153 /// Column contains an integer or datetime value (the MinValue and MaxValue attributes should also be set).
56154 /// </summary>
56155 @int,
56156
56157 /// <summary>
56158 /// Column contains a non-localizable string value.
56159 /// </summary>
56160 @string,
56161 }
56162
56163 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
56164 public enum CategoryType
56165 {
56166
56167 IllegalValue = int.MaxValue,
56168
56169 NotSet = -1,
56170
56171 Text,
56172
56173 UpperCase,
56174
56175 LowerCase,
56176
56177 Integer,
56178
56179 DoubleInteger,
56180
56181 TimeDate,
56182
56183 Identifier,
56184
56185 Property,
56186
56187 Filename,
56188
56189 WildCardFilename,
56190
56191 Path,
56192
56193 Paths,
56194
56195 AnyPath,
56196
56197 DefaultDir,
56198
56199 RegPath,
56200
56201 Formatted,
56202
56203 FormattedSddl,
56204
56205 Template,
56206
56207 Condition,
56208
56209 Guid,
56210
56211 Version,
56212
56213 Language,
56214
56215 Binary,
56216
56217 CustomSource,
56218
56219 Cabinet,
56220
56221 Shortcut,
56222 }
56223
56224 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
56225 public enum ModularizeType
56226 {
56227
56228 IllegalValue = int.MaxValue,
56229
56230 NotSet = -1,
56231
56232 /// <summary>
56233 /// Column should not be modularized. This is the default value.
56234 /// </summary>
56235 None,
56236
56237 /// <summary>
56238 /// Column should be modularized.
56239 /// </summary>
56240 Column,
56241
56242 /// <summary>
56243 /// Column is a condition and should be modularized.
56244 /// </summary>
56245 Condition,
56246
56247 /// <summary>
56248 /// When the column is an primary or foreign key to the Icon table it should be modularized special.
56249 /// </summary>
56250 Icon,
56251
56252 /// <summary>
56253 /// Any Properties in the column should be modularized.
56254 /// </summary>
56255 Property,
56256
56257 /// <summary>
56258 /// Semi-colon list of keys, all of which need to be modularized.
56259 /// </summary>
56260 SemicolonDelimited,
56261 }
56262 }
56263
56264 /// <summary>
56265 /// Row data for a Custom Table
56266 /// </summary>
56267 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
56268 public class Row : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
56269 {
56270
56271 private ElementCollection children;
56272
56273 private ISchemaElement parentElement;
56274
56275 public Row()
56276 {
56277 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
56278 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Data)));
56279 this.children = childCollection0;
56280 }
56281
56282 public virtual IEnumerable Children
56283 {
56284 get
56285 {
56286 return this.children;
56287 }
56288 }
56289
56290 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
56291 public virtual IEnumerable this[System.Type childType]
56292 {
56293 get
56294 {
56295 return this.children.Filter(childType);
56296 }
56297 }
56298
56299 public virtual ISchemaElement ParentElement
56300 {
56301 get
56302 {
56303 return this.parentElement;
56304 }
56305 set
56306 {
56307 this.parentElement = value;
56308 }
56309 }
56310
56311 public virtual void AddChild(ISchemaElement child)
56312 {
56313 if ((null == child))
56314 {
56315 throw new ArgumentNullException("child");
56316 }
56317 this.children.AddElement(child);
56318 child.ParentElement = this;
56319 }
56320
56321 public virtual void RemoveChild(ISchemaElement child)
56322 {
56323 if ((null == child))
56324 {
56325 throw new ArgumentNullException("child");
56326 }
56327 this.children.RemoveElement(child);
56328 child.ParentElement = null;
56329 }
56330
56331 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
56332 ISchemaElement ICreateChildren.CreateChild(string childName)
56333 {
56334 if (String.IsNullOrEmpty(childName))
56335 {
56336 throw new ArgumentNullException("childName");
56337 }
56338 ISchemaElement childValue = null;
56339 if (("Data" == childName))
56340 {
56341 childValue = new Data();
56342 }
56343 if ((null == childValue))
56344 {
56345 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
56346 }
56347 return childValue;
56348 }
56349
56350 /// <summary>
56351 /// Processes this element and all child elements into an XmlWriter.
56352 /// </summary>
56353 public virtual void OutputXml(XmlWriter writer)
56354 {
56355 if ((null == writer))
56356 {
56357 throw new ArgumentNullException("writer");
56358 }
56359 writer.WriteStartElement("Row", "http://wixtoolset.org/schemas/v4/wxs");
56360 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
56361 {
56362 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
56363 childElement.OutputXml(writer);
56364 }
56365 writer.WriteEndElement();
56366 }
56367
56368 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
56369 void ISetAttributes.SetAttribute(string name, string value)
56370 {
56371 if (String.IsNullOrEmpty(name))
56372 {
56373 throw new ArgumentNullException("name");
56374 }
56375 }
56376 }
56377
56378 /// <summary>
56379 /// Used for a Custom Table. Specifies the data for the parent Row and specified Column.
56380 /// </summary>
56381 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
56382 public class Data : ISchemaElement, ISetAttributes
56383 {
56384
56385 private string columnField;
56386
56387 private bool columnFieldSet;
56388
56389 private string contentField;
56390
56391 private bool contentFieldSet;
56392
56393 private ISchemaElement parentElement;
56394
56395 /// <summary>
56396 /// Specifies in which column to insert this data.
56397 /// </summary>
56398 public string Column
56399 {
56400 get
56401 {
56402 return this.columnField;
56403 }
56404 set
56405 {
56406 this.columnFieldSet = true;
56407 this.columnField = value;
56408 }
56409 }
56410
56411 /// <summary>
56412 /// A data value
56413 /// </summary>
56414 public string Content
56415 {
56416 get
56417 {
56418 return this.contentField;
56419 }
56420 set
56421 {
56422 this.contentFieldSet = true;
56423 this.contentField = value;
56424 }
56425 }
56426
56427 public virtual ISchemaElement ParentElement
56428 {
56429 get
56430 {
56431 return this.parentElement;
56432 }
56433 set
56434 {
56435 this.parentElement = value;
56436 }
56437 }
56438
56439 /// <summary>
56440 /// Processes this element and all child elements into an XmlWriter.
56441 /// </summary>
56442 public virtual void OutputXml(XmlWriter writer)
56443 {
56444 if ((null == writer))
56445 {
56446 throw new ArgumentNullException("writer");
56447 }
56448 writer.WriteStartElement("Data", "http://wixtoolset.org/schemas/v4/wxs");
56449 if (this.columnFieldSet)
56450 {
56451 writer.WriteAttributeString("Column", this.columnField);
56452 }
56453 if (this.contentFieldSet)
56454 {
56455 writer.WriteString(this.contentField);
56456 }
56457 writer.WriteEndElement();
56458 }
56459
56460 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
56461 void ISetAttributes.SetAttribute(string name, string value)
56462 {
56463 if (String.IsNullOrEmpty(name))
56464 {
56465 throw new ArgumentNullException("name");
56466 }
56467 if (("Column" == name))
56468 {
56469 this.columnField = value;
56470 this.columnFieldSet = true;
56471 }
56472 if (("Content" == name))
56473 {
56474 this.contentField = value;
56475 this.contentFieldSet = true;
56476 }
56477 }
56478 }
56479
56480 /// <summary>
56481 /// Use this element to ensure that a table appears in the installer database, even if its empty.
56482 /// </summary>
56483 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
56484 public class EnsureTable : ISchemaElement, ISetAttributes
56485 {
56486
56487 private string idField;
56488
56489 private bool idFieldSet;
56490
56491 private ISchemaElement parentElement;
56492
56493 /// <summary>
56494 /// The name of the table.
56495 /// </summary>
56496 public string Id
56497 {
56498 get
56499 {
56500 return this.idField;
56501 }
56502 set
56503 {
56504 this.idFieldSet = true;
56505 this.idField = value;
56506 }
56507 }
56508
56509 public virtual ISchemaElement ParentElement
56510 {
56511 get
56512 {
56513 return this.parentElement;
56514 }
56515 set
56516 {
56517 this.parentElement = value;
56518 }
56519 }
56520
56521 /// <summary>
56522 /// Processes this element and all child elements into an XmlWriter.
56523 /// </summary>
56524 public virtual void OutputXml(XmlWriter writer)
56525 {
56526 if ((null == writer))
56527 {
56528 throw new ArgumentNullException("writer");
56529 }
56530 writer.WriteStartElement("EnsureTable", "http://wixtoolset.org/schemas/v4/wxs");
56531 if (this.idFieldSet)
56532 {
56533 writer.WriteAttributeString("Id", this.idField);
56534 }
56535 writer.WriteEndElement();
56536 }
56537
56538 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
56539 void ISetAttributes.SetAttribute(string name, string value)
56540 {
56541 if (String.IsNullOrEmpty(name))
56542 {
56543 throw new ArgumentNullException("name");
56544 }
56545 if (("Id" == name))
56546 {
56547 this.idField = value;
56548 this.idFieldSet = true;
56549 }
56550 }
56551 }
56552
56553 /// <summary>
56554 /// This element exposes advanced WiX functionality. Use this element to declare WiX variables
56555 /// from directly within your authoring. WiX variables are not resolved until the final msi/msm/pcp
56556 /// file is actually generated. WiX variables do not persist into the msi/msm/pcp file, so they cannot
56557 /// be used when an MSI file is being installed; it's a WiX-only concept.
56558 /// </summary>
56559 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
56560 public class WixVariable : ISchemaElement, ISetAttributes
56561 {
56562
56563 private string idField;
56564
56565 private bool idFieldSet;
56566
56567 private YesNoType overridableField;
56568
56569 private bool overridableFieldSet;
56570
56571 private string valueField;
56572
56573 private bool valueFieldSet;
56574
56575 private ISchemaElement parentElement;
56576
56577 /// <summary>
56578 /// The name of the variable.
56579 /// </summary>
56580 public string Id
56581 {
56582 get
56583 {
56584 return this.idField;
56585 }
56586 set
56587 {
56588 this.idFieldSet = true;
56589 this.idField = value;
56590 }
56591 }
56592
56593 /// <summary>
56594 /// Set this value to 'yes' in order to make the variable's value overridable either by
56595 /// another WixVariable entry or via the command-line option -d&lt;name&gt;=&lt;value&gt;
56596 /// for light.exe. If the same variable is declared overridable in multiple places it
56597 /// will cause an error (since WiX won't know which value is correct). The default value
56598 /// is 'no'.
56599 /// </summary>
56600 public YesNoType Overridable
56601 {
56602 get
56603 {
56604 return this.overridableField;
56605 }
56606 set
56607 {
56608 this.overridableFieldSet = true;
56609 this.overridableField = value;
56610 }
56611 }
56612
56613 /// <summary>
56614 /// The value of the variable. The value cannot be an empty string because that would
56615 /// make it possible to accidentally set a column to null.
56616 /// </summary>
56617 public string Value
56618 {
56619 get
56620 {
56621 return this.valueField;
56622 }
56623 set
56624 {
56625 this.valueFieldSet = true;
56626 this.valueField = value;
56627 }
56628 }
56629
56630 public virtual ISchemaElement ParentElement
56631 {
56632 get
56633 {
56634 return this.parentElement;
56635 }
56636 set
56637 {
56638 this.parentElement = value;
56639 }
56640 }
56641
56642 /// <summary>
56643 /// Processes this element and all child elements into an XmlWriter.
56644 /// </summary>
56645 public virtual void OutputXml(XmlWriter writer)
56646 {
56647 if ((null == writer))
56648 {
56649 throw new ArgumentNullException("writer");
56650 }
56651 writer.WriteStartElement("WixVariable", "http://wixtoolset.org/schemas/v4/wxs");
56652 if (this.idFieldSet)
56653 {
56654 writer.WriteAttributeString("Id", this.idField);
56655 }
56656 if (this.overridableFieldSet)
56657 {
56658 if ((this.overridableField == YesNoType.no))
56659 {
56660 writer.WriteAttributeString("Overridable", "no");
56661 }
56662 if ((this.overridableField == YesNoType.yes))
56663 {
56664 writer.WriteAttributeString("Overridable", "yes");
56665 }
56666 }
56667 if (this.valueFieldSet)
56668 {
56669 writer.WriteAttributeString("Value", this.valueField);
56670 }
56671 writer.WriteEndElement();
56672 }
56673
56674 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
56675 void ISetAttributes.SetAttribute(string name, string value)
56676 {
56677 if (String.IsNullOrEmpty(name))
56678 {
56679 throw new ArgumentNullException("name");
56680 }
56681 if (("Id" == name))
56682 {
56683 this.idField = value;
56684 this.idFieldSet = true;
56685 }
56686 if (("Overridable" == name))
56687 {
56688 this.overridableField = Enums.ParseYesNoType(value);
56689 this.overridableFieldSet = true;
56690 }
56691 if (("Value" == name))
56692 {
56693 this.valueField = value;
56694 this.valueFieldSet = true;
56695 }
56696 }
56697 }
56698
56699 /// <summary>
56700 /// Use this element to contain definitions for instance transforms.
56701 /// </summary>
56702 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
56703 public class InstanceTransforms : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
56704 {
56705
56706 private ElementCollection children;
56707
56708 private string propertyField;
56709
56710 private bool propertyFieldSet;
56711
56712 private ISchemaElement parentElement;
56713
56714 public InstanceTransforms()
56715 {
56716 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
56717 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Instance)));
56718 this.children = childCollection0;
56719 }
56720
56721 public virtual IEnumerable Children
56722 {
56723 get
56724 {
56725 return this.children;
56726 }
56727 }
56728
56729 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
56730 public virtual IEnumerable this[System.Type childType]
56731 {
56732 get
56733 {
56734 return this.children.Filter(childType);
56735 }
56736 }
56737
56738 /// <summary>
56739 /// The Id of the Property who's value should change for each instance.
56740 /// </summary>
56741 public string Property
56742 {
56743 get
56744 {
56745 return this.propertyField;
56746 }
56747 set
56748 {
56749 this.propertyFieldSet = true;
56750 this.propertyField = value;
56751 }
56752 }
56753
56754 public virtual ISchemaElement ParentElement
56755 {
56756 get
56757 {
56758 return this.parentElement;
56759 }
56760 set
56761 {
56762 this.parentElement = value;
56763 }
56764 }
56765
56766 public virtual void AddChild(ISchemaElement child)
56767 {
56768 if ((null == child))
56769 {
56770 throw new ArgumentNullException("child");
56771 }
56772 this.children.AddElement(child);
56773 child.ParentElement = this;
56774 }
56775
56776 public virtual void RemoveChild(ISchemaElement child)
56777 {
56778 if ((null == child))
56779 {
56780 throw new ArgumentNullException("child");
56781 }
56782 this.children.RemoveElement(child);
56783 child.ParentElement = null;
56784 }
56785
56786 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
56787 ISchemaElement ICreateChildren.CreateChild(string childName)
56788 {
56789 if (String.IsNullOrEmpty(childName))
56790 {
56791 throw new ArgumentNullException("childName");
56792 }
56793 ISchemaElement childValue = null;
56794 if (("Instance" == childName))
56795 {
56796 childValue = new Instance();
56797 }
56798 if ((null == childValue))
56799 {
56800 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
56801 }
56802 return childValue;
56803 }
56804
56805 /// <summary>
56806 /// Processes this element and all child elements into an XmlWriter.
56807 /// </summary>
56808 public virtual void OutputXml(XmlWriter writer)
56809 {
56810 if ((null == writer))
56811 {
56812 throw new ArgumentNullException("writer");
56813 }
56814 writer.WriteStartElement("InstanceTransforms", "http://wixtoolset.org/schemas/v4/wxs");
56815 if (this.propertyFieldSet)
56816 {
56817 writer.WriteAttributeString("Property", this.propertyField);
56818 }
56819 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
56820 {
56821 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
56822 childElement.OutputXml(writer);
56823 }
56824 writer.WriteEndElement();
56825 }
56826
56827 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
56828 void ISetAttributes.SetAttribute(string name, string value)
56829 {
56830 if (String.IsNullOrEmpty(name))
56831 {
56832 throw new ArgumentNullException("name");
56833 }
56834 if (("Property" == name))
56835 {
56836 this.propertyField = value;
56837 this.propertyFieldSet = true;
56838 }
56839 }
56840 }
56841
56842 /// <summary>
56843 /// Defines an instance transform for your product.
56844 /// </summary>
56845 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
56846 public class Instance : ISchemaElement, ISetAttributes
56847 {
56848
56849 private string idField;
56850
56851 private bool idFieldSet;
56852
56853 private string productCodeField;
56854
56855 private bool productCodeFieldSet;
56856
56857 private string productNameField;
56858
56859 private bool productNameFieldSet;
56860
56861 private string upgradeCodeField;
56862
56863 private bool upgradeCodeFieldSet;
56864
56865 private ISchemaElement parentElement;
56866
56867 /// <summary>
56868 /// The identity of the instance transform. This value will define the name by which the instance
56869 /// should be referred to on the command line. In addition, the value of the this attribute will
56870 /// determine what the value of the property specified in Property attribute on InstanceTransforms
56871 /// will change to for each instance.
56872 /// </summary>
56873 public string Id
56874 {
56875 get
56876 {
56877 return this.idField;
56878 }
56879 set
56880 {
56881 this.idFieldSet = true;
56882 this.idField = value;
56883 }
56884 }
56885
56886 /// <summary>
56887 /// The ProductCode for this instance.
56888 /// </summary>
56889 public string ProductCode
56890 {
56891 get
56892 {
56893 return this.productCodeField;
56894 }
56895 set
56896 {
56897 this.productCodeFieldSet = true;
56898 this.productCodeField = value;
56899 }
56900 }
56901
56902 /// <summary>
56903 /// The ProductName for this instance.
56904 /// </summary>
56905 public string ProductName
56906 {
56907 get
56908 {
56909 return this.productNameField;
56910 }
56911 set
56912 {
56913 this.productNameFieldSet = true;
56914 this.productNameField = value;
56915 }
56916 }
56917
56918 /// <summary>
56919 /// The UpgradeCode for this instance.
56920 /// </summary>
56921 public string UpgradeCode
56922 {
56923 get
56924 {
56925 return this.upgradeCodeField;
56926 }
56927 set
56928 {
56929 this.upgradeCodeFieldSet = true;
56930 this.upgradeCodeField = value;
56931 }
56932 }
56933
56934 public virtual ISchemaElement ParentElement
56935 {
56936 get
56937 {
56938 return this.parentElement;
56939 }
56940 set
56941 {
56942 this.parentElement = value;
56943 }
56944 }
56945
56946 /// <summary>
56947 /// Processes this element and all child elements into an XmlWriter.
56948 /// </summary>
56949 public virtual void OutputXml(XmlWriter writer)
56950 {
56951 if ((null == writer))
56952 {
56953 throw new ArgumentNullException("writer");
56954 }
56955 writer.WriteStartElement("Instance", "http://wixtoolset.org/schemas/v4/wxs");
56956 if (this.idFieldSet)
56957 {
56958 writer.WriteAttributeString("Id", this.idField);
56959 }
56960 if (this.productCodeFieldSet)
56961 {
56962 writer.WriteAttributeString("ProductCode", this.productCodeField);
56963 }
56964 if (this.productNameFieldSet)
56965 {
56966 writer.WriteAttributeString("ProductName", this.productNameField);
56967 }
56968 if (this.upgradeCodeFieldSet)
56969 {
56970 writer.WriteAttributeString("UpgradeCode", this.upgradeCodeField);
56971 }
56972 writer.WriteEndElement();
56973 }
56974
56975 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
56976 void ISetAttributes.SetAttribute(string name, string value)
56977 {
56978 if (String.IsNullOrEmpty(name))
56979 {
56980 throw new ArgumentNullException("name");
56981 }
56982 if (("Id" == name))
56983 {
56984 this.idField = value;
56985 this.idFieldSet = true;
56986 }
56987 if (("ProductCode" == name))
56988 {
56989 this.productCodeField = value;
56990 this.productCodeFieldSet = true;
56991 }
56992 if (("ProductName" == name))
56993 {
56994 this.productNameField = value;
56995 this.productNameFieldSet = true;
56996 }
56997 if (("UpgradeCode" == name))
56998 {
56999 this.upgradeCodeField = value;
57000 this.upgradeCodeFieldSet = true;
57001 }
57002 }
57003 }
57004
57005 /// <summary>
57006 /// Simplifies authoring for major upgrades, including support for preventing downgrades.
57007 ///
57008 /// The parent Product element must have valid UpgradeCode and Version attributes.
57009 ///
57010 /// When the FindRelatedProducts action detects a related product installed on the system,
57011 /// it appends the product code to the property named WIX_UPGRADE_DETECTED. After the
57012 /// FindRelatedProducts action is run, the value of the WIX_UPGRADE_DETECTED property is a
57013 /// list of product codes, separated by semicolons (;), detected on the system.
57014 /// </summary>
57015 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
57016 public class MajorUpgrade : ISchemaElement, ISetAttributes
57017 {
57018
57019 private YesNoType allowDowngradesField;
57020
57021 private bool allowDowngradesFieldSet;
57022
57023 private YesNoType allowSameVersionUpgradesField;
57024
57025 private bool allowSameVersionUpgradesFieldSet;
57026
57027 private YesNoType disallowField;
57028
57029 private bool disallowFieldSet;
57030
57031 private string downgradeErrorMessageField;
57032
57033 private bool downgradeErrorMessageFieldSet;
57034
57035 private string disallowUpgradeErrorMessageField;
57036
57037 private bool disallowUpgradeErrorMessageFieldSet;
57038
57039 private YesNoType migrateFeaturesField;
57040
57041 private bool migrateFeaturesFieldSet;
57042
57043 private YesNoType ignoreLanguageField;
57044
57045 private bool ignoreLanguageFieldSet;
57046
57047 private YesNoType ignoreRemoveFailureField;
57048
57049 private bool ignoreRemoveFailureFieldSet;
57050
57051 private string removeFeaturesField;
57052
57053 private bool removeFeaturesFieldSet;
57054
57055 private ScheduleType scheduleField;
57056
57057 private bool scheduleFieldSet;
57058
57059 private ISchemaElement parentElement;
57060
57061 /// <summary>
57062 /// When set to no (the default), products with lower version numbers are blocked from
57063 /// installing when a product with a higher version is installed; the DowngradeErrorMessage
57064 /// attribute must also be specified.
57065 ///
57066 /// When set to yes, any version can be installed over any other version.
57067 /// </summary>
57068 public YesNoType AllowDowngrades
57069 {
57070 get
57071 {
57072 return this.allowDowngradesField;
57073 }
57074 set
57075 {
57076 this.allowDowngradesFieldSet = true;
57077 this.allowDowngradesField = value;
57078 }
57079 }
57080
57081 /// <summary>
57082 /// When set to no (the default), installing a product with the same version and upgrade code
57083 /// (but different product code) is allowed and treated by MSI as two products. When set to yes,
57084 /// WiX sets the msidbUpgradeAttributesVersionMaxInclusive attribute, which tells MSI to treat
57085 /// a product with the same version as a major upgrade.
57086 ///
57087 /// This is useful when two product versions differ only in the fourth version field. MSI
57088 /// specifically ignores that field when comparing product versions, so two products that
57089 /// differ only in the fourth version field are the same product and need this attribute set to
57090 /// yes to be detected.
57091 ///
57092 /// Note that because MSI ignores the fourth product version field, setting this attribute to
57093 /// yes also allows downgrades when the first three product version fields are identical.
57094 /// For example, product version 1.0.0.1 will "upgrade" 1.0.0.2998 because they're seen as the
57095 /// same version (1.0.0). That could reintroduce serious bugs so the safest choice is to change
57096 /// the first three version fields and omit this attribute to get the default of no.
57097 ///
57098 /// This attribute cannot be "yes" when AllowDowngrades is also "yes" -- AllowDowngrades
57099 /// already allows two products with the same version number to upgrade each other.
57100 /// </summary>
57101 public YesNoType AllowSameVersionUpgrades
57102 {
57103 get
57104 {
57105 return this.allowSameVersionUpgradesField;
57106 }
57107 set
57108 {
57109 this.allowSameVersionUpgradesFieldSet = true;
57110 this.allowSameVersionUpgradesField = value;
57111 }
57112 }
57113
57114 /// <summary>
57115 /// When set to yes, products with higer version numbers are blocked from
57116 /// installing when a product with a lower version is installed; the UpgradeErrorMessage
57117 /// attribute must also be specified.
57118 ///
57119 /// When set to no (the default), any version can be installed over any lower version.
57120 /// </summary>
57121 public YesNoType Disallow
57122 {
57123 get
57124 {
57125 return this.disallowField;
57126 }
57127 set
57128 {
57129 this.disallowFieldSet = true;
57130 this.disallowField = value;
57131 }
57132 }
57133
57134 /// <summary>
57135 /// The message displayed if users try to install a product with a lower version number
57136 /// when a product with a higher version is installed. Used only when AllowDowngrades
57137 /// is no (the default).
57138 /// </summary>
57139 public string DowngradeErrorMessage
57140 {
57141 get
57142 {
57143 return this.downgradeErrorMessageField;
57144 }
57145 set
57146 {
57147 this.downgradeErrorMessageFieldSet = true;
57148 this.downgradeErrorMessageField = value;
57149 }
57150 }
57151
57152 /// <summary>
57153 /// The message displayed if users try to install a product with a higer version number
57154 /// when a product with a lower version is installed. Used only when Disallow
57155 /// is yes.
57156 /// </summary>
57157 public string DisallowUpgradeErrorMessage
57158 {
57159 get
57160 {
57161 return this.disallowUpgradeErrorMessageField;
57162 }
57163 set
57164 {
57165 this.disallowUpgradeErrorMessageFieldSet = true;
57166 this.disallowUpgradeErrorMessageField = value;
57167 }
57168 }
57169
57170 /// <summary>
57171 /// When set to yes (the default), the MigrateFeatureStates standard action will set the
57172 /// feature states of the upgrade product to those of the installed product.
57173 ///
57174 /// When set to no, the installed features have no effect on the upgrade installation.
57175 /// </summary>
57176 public YesNoType MigrateFeatures
57177 {
57178 get
57179 {
57180 return this.migrateFeaturesField;
57181 }
57182 set
57183 {
57184 this.migrateFeaturesFieldSet = true;
57185 this.migrateFeaturesField = value;
57186 }
57187 }
57188
57189 /// <summary>
57190 /// When set to yes, the Upgrade table rows will match any product with the same UpgradeCode.
57191 ///
57192 /// When set to no (the default), the Upgrade table rows will match only products with the
57193 /// same UpgradeCode and ProductLanguage.
57194 /// </summary>
57195 public YesNoType IgnoreLanguage
57196 {
57197 get
57198 {
57199 return this.ignoreLanguageField;
57200 }
57201 set
57202 {
57203 this.ignoreLanguageFieldSet = true;
57204 this.ignoreLanguageField = value;
57205 }
57206 }
57207
57208 /// <summary>
57209 /// When set to yes, failures removing the installed product during the upgrade will be
57210 /// ignored.
57211 ///
57212 /// When set to no (the default), failures removing the installed product during the upgrade
57213 /// will be considered a failure and, depending on the scheduling, roll back the upgrade.
57214 /// </summary>
57215 public YesNoType IgnoreRemoveFailure
57216 {
57217 get
57218 {
57219 return this.ignoreRemoveFailureField;
57220 }
57221 set
57222 {
57223 this.ignoreRemoveFailureFieldSet = true;
57224 this.ignoreRemoveFailureField = value;
57225 }
57226 }
57227
57228 /// <summary>
57229 /// A formatted string that contains the list of features to remove from the installed
57230 /// product. The default is to remove all features. Note that if you use formatted property
57231 /// values that evaluate to an empty string, no features will be removed; only omitting
57232 /// this attribute defaults to removing all features.
57233 /// </summary>
57234 public string RemoveFeatures
57235 {
57236 get
57237 {
57238 return this.removeFeaturesField;
57239 }
57240 set
57241 {
57242 this.removeFeaturesFieldSet = true;
57243 this.removeFeaturesField = value;
57244 }
57245 }
57246
57247 /// <summary>
57248 /// Determines the scheduling of the RemoveExistingProducts standard action, which is when
57249 /// the installed product is removed. The default is "afterInstallValidate" which removes
57250 /// the installed product entirely before installing the upgrade product. It's slowest but
57251 /// gives the most flexibility in changing components and features in the upgrade product.
57252 ///
57253 /// For more information, see
57254 /// </summary>
57255 public ScheduleType Schedule
57256 {
57257 get
57258 {
57259 return this.scheduleField;
57260 }
57261 set
57262 {
57263 this.scheduleFieldSet = true;
57264 this.scheduleField = value;
57265 }
57266 }
57267
57268 public virtual ISchemaElement ParentElement
57269 {
57270 get
57271 {
57272 return this.parentElement;
57273 }
57274 set
57275 {
57276 this.parentElement = value;
57277 }
57278 }
57279
57280 /// <summary>
57281 /// Parses a ScheduleType from a string.
57282 /// </summary>
57283 public static ScheduleType ParseScheduleType(string value)
57284 {
57285 ScheduleType parsedValue;
57286 MajorUpgrade.TryParseScheduleType(value, out parsedValue);
57287 return parsedValue;
57288 }
57289
57290 /// <summary>
57291 /// Tries to parse a ScheduleType from a string.
57292 /// </summary>
57293 public static bool TryParseScheduleType(string value, out ScheduleType parsedValue)
57294 {
57295 parsedValue = ScheduleType.NotSet;
57296 if (string.IsNullOrEmpty(value))
57297 {
57298 return false;
57299 }
57300 if (("afterInstallValidate" == value))
57301 {
57302 parsedValue = ScheduleType.afterInstallValidate;
57303 }
57304 else
57305 {
57306 if (("afterInstallInitialize" == value))
57307 {
57308 parsedValue = ScheduleType.afterInstallInitialize;
57309 }
57310 else
57311 {
57312 if (("afterInstallExecute" == value))
57313 {
57314 parsedValue = ScheduleType.afterInstallExecute;
57315 }
57316 else
57317 {
57318 if (("afterInstallExecuteAgain" == value))
57319 {
57320 parsedValue = ScheduleType.afterInstallExecuteAgain;
57321 }
57322 else
57323 {
57324 if (("afterInstallFinalize" == value))
57325 {
57326 parsedValue = ScheduleType.afterInstallFinalize;
57327 }
57328 else
57329 {
57330 parsedValue = ScheduleType.IllegalValue;
57331 return false;
57332 }
57333 }
57334 }
57335 }
57336 }
57337 return true;
57338 }
57339
57340 /// <summary>
57341 /// Processes this element and all child elements into an XmlWriter.
57342 /// </summary>
57343 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
57344 public virtual void OutputXml(XmlWriter writer)
57345 {
57346 if ((null == writer))
57347 {
57348 throw new ArgumentNullException("writer");
57349 }
57350 writer.WriteStartElement("MajorUpgrade", "http://wixtoolset.org/schemas/v4/wxs");
57351 if (this.allowDowngradesFieldSet)
57352 {
57353 if ((this.allowDowngradesField == YesNoType.no))
57354 {
57355 writer.WriteAttributeString("AllowDowngrades", "no");
57356 }
57357 if ((this.allowDowngradesField == YesNoType.yes))
57358 {
57359 writer.WriteAttributeString("AllowDowngrades", "yes");
57360 }
57361 }
57362 if (this.allowSameVersionUpgradesFieldSet)
57363 {
57364 if ((this.allowSameVersionUpgradesField == YesNoType.no))
57365 {
57366 writer.WriteAttributeString("AllowSameVersionUpgrades", "no");
57367 }
57368 if ((this.allowSameVersionUpgradesField == YesNoType.yes))
57369 {
57370 writer.WriteAttributeString("AllowSameVersionUpgrades", "yes");
57371 }
57372 }
57373 if (this.disallowFieldSet)
57374 {
57375 if ((this.disallowField == YesNoType.no))
57376 {
57377 writer.WriteAttributeString("Disallow", "no");
57378 }
57379 if ((this.disallowField == YesNoType.yes))
57380 {
57381 writer.WriteAttributeString("Disallow", "yes");
57382 }
57383 }
57384 if (this.downgradeErrorMessageFieldSet)
57385 {
57386 writer.WriteAttributeString("DowngradeErrorMessage", this.downgradeErrorMessageField);
57387 }
57388 if (this.disallowUpgradeErrorMessageFieldSet)
57389 {
57390 writer.WriteAttributeString("DisallowUpgradeErrorMessage", this.disallowUpgradeErrorMessageField);
57391 }
57392 if (this.migrateFeaturesFieldSet)
57393 {
57394 if ((this.migrateFeaturesField == YesNoType.no))
57395 {
57396 writer.WriteAttributeString("MigrateFeatures", "no");
57397 }
57398 if ((this.migrateFeaturesField == YesNoType.yes))
57399 {
57400 writer.WriteAttributeString("MigrateFeatures", "yes");
57401 }
57402 }
57403 if (this.ignoreLanguageFieldSet)
57404 {
57405 if ((this.ignoreLanguageField == YesNoType.no))
57406 {
57407 writer.WriteAttributeString("IgnoreLanguage", "no");
57408 }
57409 if ((this.ignoreLanguageField == YesNoType.yes))
57410 {
57411 writer.WriteAttributeString("IgnoreLanguage", "yes");
57412 }
57413 }
57414 if (this.ignoreRemoveFailureFieldSet)
57415 {
57416 if ((this.ignoreRemoveFailureField == YesNoType.no))
57417 {
57418 writer.WriteAttributeString("IgnoreRemoveFailure", "no");
57419 }
57420 if ((this.ignoreRemoveFailureField == YesNoType.yes))
57421 {
57422 writer.WriteAttributeString("IgnoreRemoveFailure", "yes");
57423 }
57424 }
57425 if (this.removeFeaturesFieldSet)
57426 {
57427 writer.WriteAttributeString("RemoveFeatures", this.removeFeaturesField);
57428 }
57429 if (this.scheduleFieldSet)
57430 {
57431 if ((this.scheduleField == ScheduleType.afterInstallValidate))
57432 {
57433 writer.WriteAttributeString("Schedule", "afterInstallValidate");
57434 }
57435 if ((this.scheduleField == ScheduleType.afterInstallInitialize))
57436 {
57437 writer.WriteAttributeString("Schedule", "afterInstallInitialize");
57438 }
57439 if ((this.scheduleField == ScheduleType.afterInstallExecute))
57440 {
57441 writer.WriteAttributeString("Schedule", "afterInstallExecute");
57442 }
57443 if ((this.scheduleField == ScheduleType.afterInstallExecuteAgain))
57444 {
57445 writer.WriteAttributeString("Schedule", "afterInstallExecuteAgain");
57446 }
57447 if ((this.scheduleField == ScheduleType.afterInstallFinalize))
57448 {
57449 writer.WriteAttributeString("Schedule", "afterInstallFinalize");
57450 }
57451 }
57452 writer.WriteEndElement();
57453 }
57454
57455 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
57456 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
57457 void ISetAttributes.SetAttribute(string name, string value)
57458 {
57459 if (String.IsNullOrEmpty(name))
57460 {
57461 throw new ArgumentNullException("name");
57462 }
57463 if (("AllowDowngrades" == name))
57464 {
57465 this.allowDowngradesField = Enums.ParseYesNoType(value);
57466 this.allowDowngradesFieldSet = true;
57467 }
57468 if (("AllowSameVersionUpgrades" == name))
57469 {
57470 this.allowSameVersionUpgradesField = Enums.ParseYesNoType(value);
57471 this.allowSameVersionUpgradesFieldSet = true;
57472 }
57473 if (("Disallow" == name))
57474 {
57475 this.disallowField = Enums.ParseYesNoType(value);
57476 this.disallowFieldSet = true;
57477 }
57478 if (("DowngradeErrorMessage" == name))
57479 {
57480 this.downgradeErrorMessageField = value;
57481 this.downgradeErrorMessageFieldSet = true;
57482 }
57483 if (("DisallowUpgradeErrorMessage" == name))
57484 {
57485 this.disallowUpgradeErrorMessageField = value;
57486 this.disallowUpgradeErrorMessageFieldSet = true;
57487 }
57488 if (("MigrateFeatures" == name))
57489 {
57490 this.migrateFeaturesField = Enums.ParseYesNoType(value);
57491 this.migrateFeaturesFieldSet = true;
57492 }
57493 if (("IgnoreLanguage" == name))
57494 {
57495 this.ignoreLanguageField = Enums.ParseYesNoType(value);
57496 this.ignoreLanguageFieldSet = true;
57497 }
57498 if (("IgnoreRemoveFailure" == name))
57499 {
57500 this.ignoreRemoveFailureField = Enums.ParseYesNoType(value);
57501 this.ignoreRemoveFailureFieldSet = true;
57502 }
57503 if (("RemoveFeatures" == name))
57504 {
57505 this.removeFeaturesField = value;
57506 this.removeFeaturesFieldSet = true;
57507 }
57508 if (("Schedule" == name))
57509 {
57510 this.scheduleField = MajorUpgrade.ParseScheduleType(value);
57511 this.scheduleFieldSet = true;
57512 }
57513 }
57514
57515 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
57516 public enum ScheduleType
57517 {
57518
57519 IllegalValue = int.MaxValue,
57520
57521 NotSet = -1,
57522
57523 /// <summary>
57524 /// (Default) Schedules RemoveExistingProducts after the InstallValidate standard
57525 /// action. This scheduling removes the installed product entirely before installing
57526 /// the upgrade product. It's slowest but gives the most flexibility in changing
57527 /// components and features in the upgrade product. Note that if the installation
57528 /// of the upgrade product fails, the machine will have neither version installed.
57529 /// </summary>
57530 afterInstallValidate,
57531
57532 /// <summary>
57533 /// Schedules RemoveExistingProducts after the InstallInitialize standard action.
57534 /// This is similar to the afterInstallValidate scheduling, but if the installation
57535 /// of the upgrade product fails, Windows Installer also rolls back the removal of
57536 /// the installed product -- in other words, reinstalls it.
57537 /// </summary>
57538 afterInstallInitialize,
57539
57540 /// <summary>
57541 /// Schedules RemoveExistingProducts between the InstallExecute and InstallFinalize standard actions.
57542 /// This scheduling installs the upgrade product "on top of" the installed product then lets
57543 /// RemoveExistingProducts uninstall any components that don't also exist in the upgrade product.
57544 /// Note that this scheduling requires strict adherence to the component rules because it relies
57545 /// on component reference counts to be accurate during installation of the upgrade product and
57546 /// removal of the installed product. For more information, see
57547 /// </summary>
57548 afterInstallExecute,
57549
57550 /// <summary>
57551 /// Schedules RemoveExistingProducts between the InstallExecuteAgain and InstallFinalize standard actions.
57552 /// This is identical to the afterInstallExecute scheduling but after the InstallExecuteAgain standard
57553 /// action instead of InstallExecute.
57554 /// </summary>
57555 afterInstallExecuteAgain,
57556
57557 /// <summary>
57558 /// Schedules RemoveExistingProducts after the InstallFinalize standard action. This is similar to the
57559 /// afterInstallExecute and afterInstallExecuteAgain schedulings but takes place outside the
57560 /// installation transaction so if installation of the upgrade product fails, Windows Installer does
57561 /// not roll back the removal of the installed product, so the machine will have both versions
57562 /// installed.
57563 /// </summary>
57564 afterInstallFinalize,
57565 }
57566 }
57567
57568 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
57569 public class ProductSearch : ISchemaElement, ISetAttributes
57570 {
57571
57572 private string minimumField;
57573
57574 private bool minimumFieldSet;
57575
57576 private string maximumField;
57577
57578 private bool maximumFieldSet;
57579
57580 private string languageField;
57581
57582 private bool languageFieldSet;
57583
57584 private YesNoType includeMinimumField;
57585
57586 private bool includeMinimumFieldSet;
57587
57588 private YesNoType includeMaximumField;
57589
57590 private bool includeMaximumFieldSet;
57591
57592 private YesNoType excludeLanguagesField;
57593
57594 private bool excludeLanguagesFieldSet;
57595
57596 private string upgradeCodeField;
57597
57598 private bool upgradeCodeFieldSet;
57599
57600 private string contentField;
57601
57602 private bool contentFieldSet;
57603
57604 private ISchemaElement parentElement;
57605
57606 /// <summary>
57607 /// Specifies the lower bound on the range of product versions to be detected by FindRelatedProducts.
57608 /// </summary>
57609 public string Minimum
57610 {
57611 get
57612 {
57613 return this.minimumField;
57614 }
57615 set
57616 {
57617 this.minimumFieldSet = true;
57618 this.minimumField = value;
57619 }
57620 }
57621
57622 /// <summary>
57623 /// Specifies the upper boundary of the range of product versions detected by FindRelatedProducts.
57624 /// </summary>
57625 public string Maximum
57626 {
57627 get
57628 {
57629 return this.maximumField;
57630 }
57631 set
57632 {
57633 this.maximumFieldSet = true;
57634 this.maximumField = value;
57635 }
57636 }
57637
57638 /// <summary>
57639 /// Specifies the set of languages detected by FindRelatedProducts. Enter a list of numeric language identifiers (LANGID) separated by commas (,). Leave this value null to specify all languages. Set ExcludeLanguages to "yes" in order detect all languages, excluding the languages listed in this value.
57640 /// </summary>
57641 public string Language
57642 {
57643 get
57644 {
57645 return this.languageField;
57646 }
57647 set
57648 {
57649 this.languageFieldSet = true;
57650 this.languageField = value;
57651 }
57652 }
57653
57654 /// <summary>
57655 /// Set to "no" to make the range of versions detected exclude the value specified in Minimum. This attribute is "yes" by default.
57656 /// </summary>
57657 public YesNoType IncludeMinimum
57658 {
57659 get
57660 {
57661 return this.includeMinimumField;
57662 }
57663 set
57664 {
57665 this.includeMinimumFieldSet = true;
57666 this.includeMinimumField = value;
57667 }
57668 }
57669
57670 /// <summary>
57671 /// Set to "yes" to make the range of versions detected include the value specified in Maximum.
57672 /// </summary>
57673 public YesNoType IncludeMaximum
57674 {
57675 get
57676 {
57677 return this.includeMaximumField;
57678 }
57679 set
57680 {
57681 this.includeMaximumFieldSet = true;
57682 this.includeMaximumField = value;
57683 }
57684 }
57685
57686 /// <summary>
57687 /// Set to "yes" to detect all languages, excluding the languages listed in the Language attribute.
57688 /// </summary>
57689 public YesNoType ExcludeLanguages
57690 {
57691 get
57692 {
57693 return this.excludeLanguagesField;
57694 }
57695 set
57696 {
57697 this.excludeLanguagesFieldSet = true;
57698 this.excludeLanguagesField = value;
57699 }
57700 }
57701
57702 /// <summary>
57703 /// This value specifies the upgrade code for the products that are to be detected by the FindRelatedProducts action.
57704 /// </summary>
57705 public string UpgradeCode
57706 {
57707 get
57708 {
57709 return this.upgradeCodeField;
57710 }
57711 set
57712 {
57713 this.upgradeCodeFieldSet = true;
57714 this.upgradeCodeField = value;
57715 }
57716 }
57717
57718 public string Content
57719 {
57720 get
57721 {
57722 return this.contentField;
57723 }
57724 set
57725 {
57726 this.contentFieldSet = true;
57727 this.contentField = value;
57728 }
57729 }
57730
57731 public virtual ISchemaElement ParentElement
57732 {
57733 get
57734 {
57735 return this.parentElement;
57736 }
57737 set
57738 {
57739 this.parentElement = value;
57740 }
57741 }
57742
57743 /// <summary>
57744 /// Processes this element and all child elements into an XmlWriter.
57745 /// </summary>
57746 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
57747 public virtual void OutputXml(XmlWriter writer)
57748 {
57749 if ((null == writer))
57750 {
57751 throw new ArgumentNullException("writer");
57752 }
57753 writer.WriteStartElement("ProductSearch", "http://wixtoolset.org/schemas/v4/wxs");
57754 if (this.minimumFieldSet)
57755 {
57756 writer.WriteAttributeString("Minimum", this.minimumField);
57757 }
57758 if (this.maximumFieldSet)
57759 {
57760 writer.WriteAttributeString("Maximum", this.maximumField);
57761 }
57762 if (this.languageFieldSet)
57763 {
57764 writer.WriteAttributeString("Language", this.languageField);
57765 }
57766 if (this.includeMinimumFieldSet)
57767 {
57768 if ((this.includeMinimumField == YesNoType.no))
57769 {
57770 writer.WriteAttributeString("IncludeMinimum", "no");
57771 }
57772 if ((this.includeMinimumField == YesNoType.yes))
57773 {
57774 writer.WriteAttributeString("IncludeMinimum", "yes");
57775 }
57776 }
57777 if (this.includeMaximumFieldSet)
57778 {
57779 if ((this.includeMaximumField == YesNoType.no))
57780 {
57781 writer.WriteAttributeString("IncludeMaximum", "no");
57782 }
57783 if ((this.includeMaximumField == YesNoType.yes))
57784 {
57785 writer.WriteAttributeString("IncludeMaximum", "yes");
57786 }
57787 }
57788 if (this.excludeLanguagesFieldSet)
57789 {
57790 if ((this.excludeLanguagesField == YesNoType.no))
57791 {
57792 writer.WriteAttributeString("ExcludeLanguages", "no");
57793 }
57794 if ((this.excludeLanguagesField == YesNoType.yes))
57795 {
57796 writer.WriteAttributeString("ExcludeLanguages", "yes");
57797 }
57798 }
57799 if (this.upgradeCodeFieldSet)
57800 {
57801 writer.WriteAttributeString("UpgradeCode", this.upgradeCodeField);
57802 }
57803 if (this.contentFieldSet)
57804 {
57805 writer.WriteString(this.contentField);
57806 }
57807 writer.WriteEndElement();
57808 }
57809
57810 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
57811 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
57812 void ISetAttributes.SetAttribute(string name, string value)
57813 {
57814 if (String.IsNullOrEmpty(name))
57815 {
57816 throw new ArgumentNullException("name");
57817 }
57818 if (("Minimum" == name))
57819 {
57820 this.minimumField = value;
57821 this.minimumFieldSet = true;
57822 }
57823 if (("Maximum" == name))
57824 {
57825 this.maximumField = value;
57826 this.maximumFieldSet = true;
57827 }
57828 if (("Language" == name))
57829 {
57830 this.languageField = value;
57831 this.languageFieldSet = true;
57832 }
57833 if (("IncludeMinimum" == name))
57834 {
57835 this.includeMinimumField = Enums.ParseYesNoType(value);
57836 this.includeMinimumFieldSet = true;
57837 }
57838 if (("IncludeMaximum" == name))
57839 {
57840 this.includeMaximumField = Enums.ParseYesNoType(value);
57841 this.includeMaximumFieldSet = true;
57842 }
57843 if (("ExcludeLanguages" == name))
57844 {
57845 this.excludeLanguagesField = Enums.ParseYesNoType(value);
57846 this.excludeLanguagesFieldSet = true;
57847 }
57848 if (("UpgradeCode" == name))
57849 {
57850 this.upgradeCodeField = value;
57851 this.upgradeCodeFieldSet = true;
57852 }
57853 if (("Content" == name))
57854 {
57855 this.contentField = value;
57856 this.contentFieldSet = true;
57857 }
57858 }
57859 }
57860}
diff --git a/src/WixToolset.Data/Data/messages.cs b/src/WixToolset.Data/Data/messages.cs
new file mode 100644
index 00000000..ef2fc446
--- /dev/null
+++ b/src/WixToolset.Data/Data/messages.cs
@@ -0,0 +1,118 @@
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
11namespace WixToolset.Data
12{
13 using System;
14 using System.Reflection;
15 using System.Resources;
16
17
18 public class WixDataErrorEventArgs : MessageEventArgs
19 {
20
21 private static ResourceManager resourceManager = new ResourceManager("WixToolset.Data.Data.Messages", Assembly.GetExecutingAssembly());
22
23 public WixDataErrorEventArgs(SourceLineNumber sourceLineNumbers, int id, string resourceName, params object[] messageArgs) :
24 base(sourceLineNumbers, id, resourceName, messageArgs)
25 {
26 base.Level = MessageLevel.Error;
27 base.ResourceManager = resourceManager;
28 }
29 }
30
31 public sealed class WixDataErrors
32 {
33
34 private WixDataErrors()
35 {
36 }
37
38 public static MessageEventArgs UnexpectedFileFormat(string path, string expectedFormat, string actualFormat)
39 {
40 return new WixDataErrorEventArgs(null, 1, "WixDataErrors_UnexpectedFileFormat_1", path, expectedFormat, actualFormat);
41 }
42
43 public static MessageEventArgs CorruptFileFormat(string path, string format)
44 {
45 return new WixDataErrorEventArgs(null, 2, "WixDataErrors_CorruptFileFormat_1", path, format);
46 }
47
48 public static MessageEventArgs InvalidFileName(SourceLineNumber sourceLineNumbers, string fileName)
49 {
50 return new WixDataErrorEventArgs(sourceLineNumbers, 85, "WixDataErrors_InvalidFileName_1", fileName);
51 }
52
53 public static MessageEventArgs DuplicateLocalizationIdentifier(SourceLineNumber sourceLineNumbers, string localizationId)
54 {
55 return new WixDataErrorEventArgs(sourceLineNumbers, 100, "WixDataErrors_DuplicateLocalizationIdentifier_1", localizationId);
56 }
57
58 public static MessageEventArgs FileNotFound(SourceLineNumber sourceLineNumbers, string file)
59 {
60 return new WixDataErrorEventArgs(sourceLineNumbers, 103, "WixDataErrors_FileNotFound_1", file);
61 }
62
63 public static MessageEventArgs FileNotFound(SourceLineNumber sourceLineNumbers, string file, string fileType)
64 {
65 return new WixDataErrorEventArgs(sourceLineNumbers, 103, "WixDataErrors_FileNotFound_2", file, fileType);
66 }
67
68 public static MessageEventArgs DuplicatePrimaryKey(SourceLineNumber sourceLineNumbers, string primaryKey, string tableName)
69 {
70 return new WixDataErrorEventArgs(sourceLineNumbers, 130, "WixDataErrors_DuplicatePrimaryKey_1", primaryKey, tableName);
71 }
72
73 public static MessageEventArgs InvalidIdt(SourceLineNumber sourceLineNumbers, string idtFile)
74 {
75 return new WixDataErrorEventArgs(sourceLineNumbers, 136, "WixDataErrors_InvalidIdt_1", idtFile);
76 }
77
78 public static MessageEventArgs InvalidIdt(SourceLineNumber sourceLineNumbers, string idtFile, string tableName)
79 {
80 return new WixDataErrorEventArgs(sourceLineNumbers, 136, "WixDataErrors_InvalidIdt_2", idtFile, tableName);
81 }
82
83 public static MessageEventArgs VersionMismatch(SourceLineNumber sourceLineNumbers, string fileType, string version, string expectedVersion)
84 {
85 return new WixDataErrorEventArgs(sourceLineNumbers, 141, "WixDataErrors_VersionMismatch_1", fileType, version, expectedVersion);
86 }
87
88 public static MessageEventArgs IllegalFileCompressionAttributes(SourceLineNumber sourceLineNumbers)
89 {
90 return new WixDataErrorEventArgs(sourceLineNumbers, 167, "WixDataErrors_IllegalFileCompressionAttributes_1");
91 }
92
93 public static MessageEventArgs MissingTableDefinition(string tableName)
94 {
95 return new WixDataErrorEventArgs(null, 182, "WixDataErrors_MissingTableDefinition_1", tableName);
96 }
97
98 public static MessageEventArgs RealTableMissingPrimaryKeyColumn(SourceLineNumber sourceLineNumbers, string tableName)
99 {
100 return new WixDataErrorEventArgs(sourceLineNumbers, 225, "WixDataErrors_RealTableMissingPrimaryKeyColumn_1", tableName);
101 }
102
103 public static MessageEventArgs PathTooLong(SourceLineNumber sourceLineNumbers, string fileName)
104 {
105 return new WixDataErrorEventArgs(sourceLineNumbers, 262, "WixDataErrors_PathTooLong_1", fileName);
106 }
107
108 public static MessageEventArgs InvalidStringForCodepage(SourceLineNumber sourceLineNumbers, string codepage)
109 {
110 return new WixDataErrorEventArgs(sourceLineNumbers, 311, "WixDataErrors_InvalidStringForCodepage_1", codepage);
111 }
112
113 public static MessageEventArgs TooManyColumnsInRealTable(string tableName, int columnCount, int supportedColumnCount)
114 {
115 return new WixDataErrorEventArgs(null, 386, "WixDataErrors_TooManyColumnsInRealTable_1", tableName, columnCount, supportedColumnCount);
116 }
117 }
118}
diff --git a/src/WixToolset.Data/Data/messages.xml b/src/WixToolset.Data/Data/messages.xml.old
index 191e0b3e..986426c3 100644
--- a/src/WixToolset.Data/Data/messages.xml
+++ b/src/WixToolset.Data/Data/messages.xml.old
@@ -19,6 +19,12 @@
19 <Parameter Type="System.String" Name="format" /> 19 <Parameter Type="System.String" Name="format" />
20 </Instance> 20 </Instance>
21 </Message> 21 </Message>
22 <Message Id="InvalidFileName" Number="85">
23 <Instance>
24 Invalid file name '{0}'.
25 <Parameter Type="System.String" Name="fileName" />
26 </Instance>
27 </Message>
22 <Message Id="DuplicateLocalizationIdentifier" Number="100"> 28 <Message Id="DuplicateLocalizationIdentifier" Number="100">
23 <Instance> 29 <Instance>
24 The localization identifier '{0}' has been duplicated in multiple locations. Please resolve the conflict. 30 The localization identifier '{0}' has been duplicated in multiple locations. Please resolve the conflict.
@@ -77,6 +83,12 @@
77 <Parameter Type="System.String" Name="tableName" /> 83 <Parameter Type="System.String" Name="tableName" />
78 </Instance> 84 </Instance>
79 </Message> 85 </Message>
86 <Message Id="PathTooLong" Number="262">
87 <Instance>
88 '{0}' is too long, the fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
89 <Parameter Type="System.String" Name="fileName" />
90 </Instance>
91 </Message>
80 <Message Id="InvalidStringForCodepage" Number="311"> 92 <Message Id="InvalidStringForCodepage" Number="311">
81 <Instance> 93 <Instance>
82 A string was provided with characters that are not available in the specified database code page '{0}'. Either change these characters to ones that exist in the database's code page, or update the database's code page by modifying one of the following attributes: Product/@Codepage, Module/@Codepage, Patch/@Codepage, PatchCreation/@Codepage, or WixLocalization/@Codepage. 94 A string was provided with characters that are not available in the specified database code page '{0}'. Either change these characters to ones that exist in the database's code page, or update the database's code page by modifying one of the following attributes: Product/@Codepage, Module/@Codepage, Patch/@Codepage, PatchCreation/@Codepage, or WixLocalization/@Codepage.
diff --git a/src/WixToolset.Data/WixToolset.Data.csproj b/src/WixToolset.Data/WixToolset.Data.csproj
index e421507a..e57f61ed 100644
--- a/src/WixToolset.Data/WixToolset.Data.csproj
+++ b/src/WixToolset.Data/WixToolset.Data.csproj
@@ -15,183 +15,18 @@
15 <EmbeddedResource Include="Data\tables.xml" /> 15 <EmbeddedResource Include="Data\tables.xml" />
16 </ItemGroup> 16 </ItemGroup>
17 17
18<!-- 18 <!--
19 <ItemGroup>
20 <Compile Include="AssemblyInfo.cs" />
21 <Compile Include="BundleApprovedExeForElevationAttributes.cs" />
22 <Compile Include="ColumnDefinition.cs" />
23 <Compile Include="Common.cs" />
24 <Compile Include="ComplexReferenceChildType.cs" />
25 <Compile Include="ComplexReferenceParentType.cs" />
26 <Compile Include="CompressionLevel.cs" />
27 <Compile Include="NonClosingStreamWrapper.cs" />
28 <Compile Include="DisplayEventArgs.cs" />
29 <Compile Include="DuplicateSymbolsException.cs" />
30 <Compile Include="EmptyRule.cs" />
31 <Compile Include="Field.cs" />
32 <Compile Include="FileFormat.cs" />
33 <Compile Include="FileStructure.cs" />
34 <Compile Include="ILibraryBinaryFileResolver.cs" />
35 <Compile Include="IMessageHandler.cs" />
36 <Compile Include="Intermediate.cs" />
37 <Compile Include="Library.cs" />
38 <Compile Include="Localization.cs" />
39 <Compile Include="LocalizedControl.cs" />
40 <Compile Include="MessageEventArgs.cs" />
41 <Compile Include="Messaging.cs" />
42 <Compile Include="MessageLevel.cs" />
43 <Compile Include="Msi\MsiInterop.cs" />
44 <Compile Include="ObjectField.cs" />
45 <Compile Include="Output.cs" />
46 <Compile Include="OutputType.cs" />
47 <Compile Include="PackagingType.cs" />
48 <Compile Include="Pdb.cs" />
49 <Compile Include="Platform.cs" />
50 <Compile Include="Row.cs" />
51 <Compile Include="AccessModifier.cs" />
52 <Compile Include="RowIndexedList.cs" />
53 <Compile Include="RowDictionary.cs" />
54 <Compile Include="RowOperation.cs" />
55 <Compile Include="Rows\BBControlRow.cs" />
56 <Compile Include="Rows\FileAssemblyType.cs" />
57 <Compile Include="Rows\SymbolPathType.cs" />
58 <Compile Include="Rows\PatchAttributeType.cs" />
59 <Compile Include="Rows\WixBundleExePackageAttributes.cs" />
60 <Compile Include="Rows\ExitCodeBehaviorType.cs" />
61 <Compile Include="Rows\WixBundlePackageCommandLineRow.cs" />
62 <Compile Include="Rows\WixBundlePackageExitCodeRow.cs" />
63 <Compile Include="Rows\WixBundleSlipstreamMspRow.cs" />
64 <Compile Include="Rows\WixChainAttributes.cs" />
65 <Compile Include="Rows\WixChainRow.cs" />
66 <Compile Include="Rows\WixBundlePackageAttributes.cs" />
67 <Compile Include="Rows\WixBundleMspPackageAttributes.cs" />
68 <Compile Include="Rows\WixBundleMsiPackageAttributes.cs" />
69 <Compile Include="Rows\WixBundleExePackageRow.cs" />
70 <Compile Include="Rows\WixBundleMsiFeatureRow.cs" />
71 <Compile Include="Rows\WixBundleRelatedPackageRow.cs" />
72 <Compile Include="Rows\ContainerType.cs" />
73 <Compile Include="Rows\WixBundlePackageType.cs" />
74 <Compile Include="Rows\WixBundleContainerRow.cs" />
75 <Compile Include="Rows\WixBundleMsiPropertyRow.cs" />
76 <Compile Include="Rows\WixBundleRollbackBoundaryRow.cs" />
77 <Compile Include="Rows\WixBundleMsuPackageRow.cs" />
78 <Compile Include="Rows\WixBundleMspPackageRow.cs" />
79 <Compile Include="Rows\WixBundlePackageRow.cs" />
80 <Compile Include="Rows\WixBundleMsiPackageRow.cs" />
81 <Compile Include="Rows\ComponentRow.cs" />
82 <Compile Include="Rows\ControlRow.cs" />
83 <Compile Include="Rows\FileRow.cs" />
84 <Compile Include="Rows\MediaRow.cs" />
85 <Compile Include="Rows\WixBundlePayloadRow.cs" />
86 <Compile Include="Rows\SummaryInfoRowCollection.cs" />
87 <Compile Include="Rows\PropertyRow.cs" />
88 <Compile Include="Rows\UpgradeRow.cs" />
89 <Compile Include="Rows\WixBundleVariableRow.cs" />
90 <Compile Include="Rows\WixActionRow.cs" />
91 <Compile Include="Rows\WixActionRowCollection.cs" />
92 <Compile Include="Rows\WixApprovedExeForElevationRow.cs" />
93 <Compile Include="Rows\WixBundlePatchTargetCodeRow.cs" />
94 <Compile Include="Rows\WixBundleRow.cs" />
95 <Compile Include="Rows\WixBundleUpdateRow.cs" />
96 <Compile Include="Rows\WixChainItemRow.cs" />
97 <Compile Include="Rows\WixBundleCatalogRow.cs" />
98 <Compile Include="Rows\WixDeltaPatchSymbolPathsRow.cs" />
99 <Compile Include="Rows\WixDeltaPatchFileRow.cs" />
100 <Compile Include="Rows\WixGroupRow.cs" />
101 <Compile Include="Rows\WixComplexReferenceRow.cs" />
102 <Compile Include="Rows\WixFileRow.cs" />
103 <Compile Include="Rows\WixMediaRow.cs" />
104 <Compile Include="Rows\WixMediaTemplateRow.cs" />
105 <Compile Include="Rows\WixMergeRow.cs" />
106 <Compile Include="Rows\WixPayloadPropertiesRow.cs" />
107 <Compile Include="Rows\WixPropertyRow.cs" />
108 <Compile Include="Rows\WixRelatedBundleRow.cs" />
109 <Compile Include="Rows\WixSimpleReferenceRow.cs" />
110 <Compile Include="Rows\WixUpdateRegistrationRow.cs" />
111 <Compile Include="Rows\WixVariableRow.cs" />
112 <Compile Include="Section.cs" />
113 <Compile Include="SectionType.cs" />
114 <Compile Include="Serialize\CodeDomInterfaces.cs" />
115 <Compile Include="Serialize\CodeDomReader.cs" />
116 <Compile Include="Serialize\ElementCollection.cs" />
117 <Compile Include="SourceLineNumber.cs" />
118 <Compile Include="SubStorage.cs" />
119 <Compile Include="Symbol.cs" />
120 <Compile Include="TableExtensions.cs" />
121 <Compile Include="Table.cs" />
122 <Compile Include="TableIndexedCollection.cs" />
123 <Compile Include="TableDefinition.cs" />
124 <Compile Include="TableDefinitionCollection.cs" />
125 <Compile Include="TableOperation.cs" />
126 <Compile Include="WindowsInstallerStandard.cs" />
127 <Compile Include="WixCorruptFileException.cs" />
128 <Compile Include="WixDataStrings.Designer.cs">
129 <DependentUpon>WixDataStrings.resx</DependentUpon>
130 <AutoGen>True</AutoGen>
131 <DesignTime>True</DesignTime>
132 </Compile>
133 <Compile Include="WixException.cs" />
134 <Compile Include="WixUnexpectedFileFormatException.cs" />
135 <Compile Include="WixInvalidIdtException.cs" />
136 <Compile Include="WixMissingTableDefinitionException.cs" />
137 <Compile Include="YesNoAlwaysType.cs" />
138 <Compile Include="YesNoDefaultType.cs" />
139 <Compile Include="YesNoType.cs" />
140 </ItemGroup>
141 <ItemGroup>
142 <EmbeddedResource Include="WixDataStrings.resx">
143 <Generator>ResXFileCodeGenerator</Generator>
144 <LastGenOutput>WixDataStrings.Designer.cs</LastGenOutput>
145 <SubType>Designer</SubType>
146 </EmbeddedResource>
147 </ItemGroup>
148 <ItemGroup>
149 <EmbeddedFlattenedResource Include="Data\actions.xml">
150 <LogicalName>$(RootNamespace).Data.actions.xml</LogicalName>
151 </EmbeddedFlattenedResource>
152 <EmbeddedFlattenedResource Include="Data\tables.xml">
153 <LogicalName>$(RootNamespace).Data.tables.xml</LogicalName>
154 <SubType>Designer</SubType>
155 </EmbeddedFlattenedResource>
156 </ItemGroup>
157 <ItemGroup> 19 <ItemGroup>
158 <MsgGenSource Include="Data\messages.xml"> 20 <MsgGenSource Include="Data\messages.xml">
159 <ResourcesLogicalName>$(RootNamespace).Data.messages.resources</ResourcesLogicalName> 21 <ResourcesLogicalName>$(RootNamespace).Data.messages.resources</ResourcesLogicalName>
160 <SubType>Designer</SubType>
161 </MsgGenSource> 22 </MsgGenSource>
162 </ItemGroup>
163 <ItemGroup>
164 <XsdGenSource Include="Xsd\wix.xsd"> 23 <XsdGenSource Include="Xsd\wix.xsd">
165 <Namespace>WixToolset.Data.Serialize</Namespace> 24 <Namespace>WixToolset.Data.Serialize</Namespace>
166 </XsdGenSource> 25 </XsdGenSource>
167 </ItemGroup> 26 </ItemGroup>
168 <ItemGroup>
169 <None Include="Data\Xsd\actions.xsd" />
170 <None Include="Data\Xsd\libraries.xsd" />
171 <None Include="Data\Xsd\objects.xsd" />
172 <None Include="Data\Xsd\outputs.xsd" />
173 <None Include="Data\Xsd\pdbs.xsd" />
174 <None Include="Data\Xsd\tables.xsd" />
175 <None Include="Xsd\wixloc.xsd" />
176 </ItemGroup>
177 <ItemGroup>
178 <Reference Include="System" />
179 <Reference Include="System.Xml" />
180 <Reference Include="System.Xml.Linq" />
181 </ItemGroup>
182 <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), wix.proj))\tools\WixBuild.targets" />
183 --> 27 -->
184 28
185 <ItemGroup> 29 <ItemGroup>
186 <MsgGenSource Include="Data\messages.xml">
187 <ResourcesLogicalName>$(RootNamespace).Data.messages.resources</ResourcesLogicalName>
188 </MsgGenSource>
189 <XsdGenSource Include="Xsd\wix.xsd">
190 <Namespace>WixToolset.Data.Serialize</Namespace>
191 </XsdGenSource>
192 </ItemGroup>
193
194 <ItemGroup>
195 <PackageReference Include="Nerdbank.GitVersioning" Version="2.0.41" PrivateAssets="all" /> 30 <PackageReference Include="Nerdbank.GitVersioning" Version="2.0.41" PrivateAssets="all" />
196 <PackageReference Include="WixBuildTools.MsgGen" Version="4.0.*" PrivateAssets="all" /> 31 <PackageReference Include="WixBuildTools.MsgGen" Version="4.0.*" PrivateAssets="all" />
197 <PackageReference Include="WixBuildTools.XsdGen" Version="4.0.*" PrivateAssets="all" /> 32 <PackageReference Include="WixBuildTools.XsdGen" Version="4.0.*" PrivateAssets="all" />