aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Data/Serialize/wix.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/WixToolset.Data/Serialize/wix.cs57782
1 files changed, 0 insertions, 57782 deletions
diff --git a/src/WixToolset.Data/Serialize/wix.cs b/src/WixToolset.Data/Serialize/wix.cs
deleted file mode 100644
index 478159ab..00000000
--- a/src/WixToolset.Data/Serialize/wix.cs
+++ /dev/null
@@ -1,57782 +0,0 @@
1//------------------------------------------------------------------------------
2// <auto-generated>
3// This code was generated by a tool.
4// Runtime Version:4.0.30319.42000
5//
6// Changes to this file may cause incorrect behavior and will be lost if
7// the code is regenerated.
8// </auto-generated>
9//------------------------------------------------------------------------------
10
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 enableFeatureSelectionField;
3776
3777 private bool enableFeatureSelectionFieldSet;
3778
3779 private YesNoType forcePerMachineField;
3780
3781 private bool forcePerMachineFieldSet;
3782
3783 private YesNoType suppressLooseFilePayloadGenerationField;
3784
3785 private bool suppressLooseFilePayloadGenerationFieldSet;
3786
3787 private YesNoType visibleField;
3788
3789 private bool visibleFieldSet;
3790
3791 private ISchemaElement parentElement;
3792
3793 public MsiPackage()
3794 {
3795 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
3796 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiProperty)));
3797 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SlipstreamMsp)));
3798 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload)));
3799 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef)));
3800 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
3801 this.children = childCollection0;
3802 }
3803
3804 public virtual IEnumerable Children
3805 {
3806 get
3807 {
3808 return this.children;
3809 }
3810 }
3811
3812 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
3813 public virtual IEnumerable this[System.Type childType]
3814 {
3815 get
3816 {
3817 return this.children.Filter(childType);
3818 }
3819 }
3820
3821 /// <summary>
3822 /// Location of the package to add to the bundle. The default value is the Name attribute, if provided.
3823 /// At a minimum, the SourceFile or Name attribute must be specified.
3824 /// </summary>
3825 public string SourceFile
3826 {
3827 get
3828 {
3829 return this.sourceFileField;
3830 }
3831 set
3832 {
3833 this.sourceFileFieldSet = true;
3834 this.sourceFileField = value;
3835 }
3836 }
3837
3838 /// <summary>
3839 /// The destination path and file name for this chain payload. Use this attribute to rename the
3840 /// chain entry point or extract it into a subfolder. The default value is the file name from the
3841 /// SourceFile attribute, if provided. At a minimum, the Name or SourceFile attribute must be specified.
3842 /// The use of '..' directories is not allowed.
3843 /// </summary>
3844 public string Name
3845 {
3846 get
3847 {
3848 return this.nameField;
3849 }
3850 set
3851 {
3852 this.nameFieldSet = true;
3853 this.nameField = value;
3854 }
3855 }
3856
3857 public string DownloadUrl
3858 {
3859 get
3860 {
3861 return this.downloadUrlField;
3862 }
3863 set
3864 {
3865 this.downloadUrlFieldSet = true;
3866 this.downloadUrlField = value;
3867 }
3868 }
3869
3870 /// <summary>
3871 /// Identifier for this package, for ordering and cross-referencing. The default is the Name attribute
3872 /// modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores).
3873 /// </summary>
3874 public string Id
3875 {
3876 get
3877 {
3878 return this.idField;
3879 }
3880 set
3881 {
3882 this.idFieldSet = true;
3883 this.idField = value;
3884 }
3885 }
3886
3887 /// <summary>
3888 /// The identifier of another package that this one should be installed after. By default the After
3889 /// attribute is set to the previous sibling package in the Chain or PackageGroup element. If this
3890 /// attribute is specified ensure that a cycle is not created explicitly or implicitly.
3891 /// </summary>
3892 public string After
3893 {
3894 get
3895 {
3896 return this.afterField;
3897 }
3898 set
3899 {
3900 this.afterFieldSet = true;
3901 this.afterField = value;
3902 }
3903 }
3904
3905 /// <summary>
3906 /// The size this package will take on disk in bytes after it is installed. By default, the binder will
3907 /// calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs)
3908 /// and use the total for the install size of the package.
3909 /// </summary>
3910 public string InstallSize
3911 {
3912 get
3913 {
3914 return this.installSizeField;
3915 }
3916 set
3917 {
3918 this.installSizeFieldSet = true;
3919 this.installSizeField = value;
3920 }
3921 }
3922
3923 /// <summary>
3924 /// 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.
3925 /// </summary>
3926 public string InstallCondition
3927 {
3928 get
3929 {
3930 return this.installConditionField;
3931 }
3932 set
3933 {
3934 this.installConditionFieldSet = true;
3935 this.installConditionField = value;
3936 }
3937 }
3938
3939 /// <summary>
3940 /// Whether to cache the package. The default is "yes".
3941 /// </summary>
3942 public YesNoAlwaysType Cache
3943 {
3944 get
3945 {
3946 return this.cacheField;
3947 }
3948 set
3949 {
3950 this.cacheFieldSet = true;
3951 this.cacheField = value;
3952 }
3953 }
3954
3955 /// <summary>
3956 /// The identifier to use when caching the package.
3957 /// </summary>
3958 public string CacheId
3959 {
3960 get
3961 {
3962 return this.cacheIdField;
3963 }
3964 set
3965 {
3966 this.cacheIdFieldSet = true;
3967 this.cacheIdField = value;
3968 }
3969 }
3970
3971 /// <summary>
3972 /// Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages
3973 /// use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use
3974 /// the DisplayName patch metadata property. Other package types must use this attribute to define a display name in the
3975 /// bootstrapper application data manifest.
3976 /// </summary>
3977 public string DisplayName
3978 {
3979 get
3980 {
3981 return this.displayNameField;
3982 }
3983 set
3984 {
3985 this.displayNameFieldSet = true;
3986 this.displayNameField = value;
3987 }
3988 }
3989
3990 /// <summary>
3991 /// Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages
3992 /// use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use
3993 /// the Description patch metadata property. Other package types must use this attribute to define a description in the
3994 /// bootstrapper application data manifest.
3995 /// </summary>
3996 public string Description
3997 {
3998 get
3999 {
4000 return this.descriptionField;
4001 }
4002 set
4003 {
4004 this.descriptionFieldSet = true;
4005 this.descriptionField = value;
4006 }
4007 }
4008
4009 /// <summary>
4010 /// Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not
4011 /// be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging.
4012 /// </summary>
4013 public string LogPathVariable
4014 {
4015 get
4016 {
4017 return this.logPathVariableField;
4018 }
4019 set
4020 {
4021 this.logPathVariableFieldSet = true;
4022 this.logPathVariableField = value;
4023 }
4024 }
4025
4026 /// <summary>
4027 /// Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause
4028 /// the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which
4029 /// default to no logging.
4030 /// </summary>
4031 public string RollbackLogPathVariable
4032 {
4033 get
4034 {
4035 return this.rollbackLogPathVariableField;
4036 }
4037 set
4038 {
4039 this.rollbackLogPathVariableFieldSet = true;
4040 this.rollbackLogPathVariableField = value;
4041 }
4042 }
4043
4044 /// <summary>
4045 /// Specifies whether the package can be uninstalled. The default is "no".
4046 /// </summary>
4047 public YesNoType Permanent
4048 {
4049 get
4050 {
4051 return this.permanentField;
4052 }
4053 set
4054 {
4055 this.permanentFieldSet = true;
4056 this.permanentField = value;
4057 }
4058 }
4059
4060 /// <summary>
4061 /// Specifies whether the package must succeed for the chain to continue. The default "yes"
4062 /// indicates that if the package fails then the chain will fail and rollback or stop. If
4063 /// "no" is specified then the chain will continue even if the package reports failure.
4064 /// </summary>
4065 public YesNoType Vital
4066 {
4067 get
4068 {
4069 return this.vitalField;
4070 }
4071 set
4072 {
4073 this.vitalFieldSet = true;
4074 this.vitalField = value;
4075 }
4076 }
4077
4078 /// <summary>
4079 /// Whether the package payload should be embedded in a container or left as an external payload.
4080 /// </summary>
4081 public YesNoDefaultType Compressed
4082 {
4083 get
4084 {
4085 return this.compressedField;
4086 }
4087 set
4088 {
4089 this.compressedFieldSet = true;
4090 this.compressedField = value;
4091 }
4092 }
4093
4094 /// <summary>
4095 /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes"
4096 /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the
4097 /// signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures.
4098 /// Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no".
4099 /// </summary>
4100 public YesNoType EnableSignatureVerification
4101 {
4102 get
4103 {
4104 return this.enableSignatureVerificationField;
4105 }
4106 set
4107 {
4108 this.enableSignatureVerificationFieldSet = true;
4109 this.enableSignatureVerificationField = value;
4110 }
4111 }
4112
4113 /// <summary>
4114 /// Specifies whether the bundle will allow individual control over the installation state of Features inside
4115 /// the msi package. Managing feature selection requires special care to ensure the install, modify, update and
4116 /// uninstall behavior of the package is always correct. The default is "no".
4117 /// </summary>
4118 public YesNoType EnableFeatureSelection
4119 {
4120 get
4121 {
4122 return this.enableFeatureSelectionField;
4123 }
4124 set
4125 {
4126 this.enableFeatureSelectionFieldSet = true;
4127 this.enableFeatureSelectionField = value;
4128 }
4129 }
4130
4131 /// <summary>
4132 /// Override the automatic per-machine detection of MSI packages and force the package to be per-machine.
4133 /// The default is "no", which allows the tools to detect the expected value.
4134 /// </summary>
4135 public YesNoType ForcePerMachine
4136 {
4137 get
4138 {
4139 return this.forcePerMachineField;
4140 }
4141 set
4142 {
4143 this.forcePerMachineFieldSet = true;
4144 this.forcePerMachineField = value;
4145 }
4146 }
4147
4148 /// <summary>
4149 /// This attribute has been deprecated. When the value is "yes", the Binder will not read the MSI package
4150 /// to detect uncompressed files that would otherwise be automatically included in the Bundle as Payloads.
4151 /// The resulting Bundle may not be able to install the MSI package correctly. The default is "no".
4152 /// </summary>
4153 public YesNoType SuppressLooseFilePayloadGeneration
4154 {
4155 get
4156 {
4157 return this.suppressLooseFilePayloadGenerationField;
4158 }
4159 set
4160 {
4161 this.suppressLooseFilePayloadGenerationFieldSet = true;
4162 this.suppressLooseFilePayloadGenerationField = value;
4163 }
4164 }
4165
4166 /// <summary>
4167 /// Specifies whether the MSI will be displayed in Programs and Features (also known as Add/Remove Programs). If "yes" is
4168 /// specified the MSI package information will be displayed in Programs and Features. The default "no" indicates the MSI
4169 /// will not be displayed.
4170 /// </summary>
4171 public YesNoType Visible
4172 {
4173 get
4174 {
4175 return this.visibleField;
4176 }
4177 set
4178 {
4179 this.visibleFieldSet = true;
4180 this.visibleField = value;
4181 }
4182 }
4183
4184 public virtual ISchemaElement ParentElement
4185 {
4186 get
4187 {
4188 return this.parentElement;
4189 }
4190 set
4191 {
4192 this.parentElement = value;
4193 }
4194 }
4195
4196 public virtual void AddChild(ISchemaElement child)
4197 {
4198 if ((null == child))
4199 {
4200 throw new ArgumentNullException("child");
4201 }
4202 this.children.AddElement(child);
4203 child.ParentElement = this;
4204 }
4205
4206 public virtual void RemoveChild(ISchemaElement child)
4207 {
4208 if ((null == child))
4209 {
4210 throw new ArgumentNullException("child");
4211 }
4212 this.children.RemoveElement(child);
4213 child.ParentElement = null;
4214 }
4215
4216 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
4217 ISchemaElement ICreateChildren.CreateChild(string childName)
4218 {
4219 if (String.IsNullOrEmpty(childName))
4220 {
4221 throw new ArgumentNullException("childName");
4222 }
4223 ISchemaElement childValue = null;
4224 if (("MsiProperty" == childName))
4225 {
4226 childValue = new MsiProperty();
4227 }
4228 if (("SlipstreamMsp" == childName))
4229 {
4230 childValue = new SlipstreamMsp();
4231 }
4232 if (("Payload" == childName))
4233 {
4234 childValue = new Payload();
4235 }
4236 if (("PayloadGroupRef" == childName))
4237 {
4238 childValue = new PayloadGroupRef();
4239 }
4240 if ((null == childValue))
4241 {
4242 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
4243 }
4244 return childValue;
4245 }
4246
4247 /// <summary>
4248 /// Processes this element and all child elements into an XmlWriter.
4249 /// </summary>
4250 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
4251 public virtual void OutputXml(XmlWriter writer)
4252 {
4253 if ((null == writer))
4254 {
4255 throw new ArgumentNullException("writer");
4256 }
4257 writer.WriteStartElement("MsiPackage", "http://wixtoolset.org/schemas/v4/wxs");
4258 if (this.sourceFileFieldSet)
4259 {
4260 writer.WriteAttributeString("SourceFile", this.sourceFileField);
4261 }
4262 if (this.nameFieldSet)
4263 {
4264 writer.WriteAttributeString("Name", this.nameField);
4265 }
4266 if (this.downloadUrlFieldSet)
4267 {
4268 writer.WriteAttributeString("DownloadUrl", this.downloadUrlField);
4269 }
4270 if (this.idFieldSet)
4271 {
4272 writer.WriteAttributeString("Id", this.idField);
4273 }
4274 if (this.afterFieldSet)
4275 {
4276 writer.WriteAttributeString("After", this.afterField);
4277 }
4278 if (this.installSizeFieldSet)
4279 {
4280 writer.WriteAttributeString("InstallSize", this.installSizeField);
4281 }
4282 if (this.installConditionFieldSet)
4283 {
4284 writer.WriteAttributeString("InstallCondition", this.installConditionField);
4285 }
4286 if (this.cacheFieldSet)
4287 {
4288 if ((this.cacheField == YesNoAlwaysType.always))
4289 {
4290 writer.WriteAttributeString("Cache", "always");
4291 }
4292 if ((this.cacheField == YesNoAlwaysType.no))
4293 {
4294 writer.WriteAttributeString("Cache", "no");
4295 }
4296 if ((this.cacheField == YesNoAlwaysType.yes))
4297 {
4298 writer.WriteAttributeString("Cache", "yes");
4299 }
4300 }
4301 if (this.cacheIdFieldSet)
4302 {
4303 writer.WriteAttributeString("CacheId", this.cacheIdField);
4304 }
4305 if (this.displayNameFieldSet)
4306 {
4307 writer.WriteAttributeString("DisplayName", this.displayNameField);
4308 }
4309 if (this.descriptionFieldSet)
4310 {
4311 writer.WriteAttributeString("Description", this.descriptionField);
4312 }
4313 if (this.logPathVariableFieldSet)
4314 {
4315 writer.WriteAttributeString("LogPathVariable", this.logPathVariableField);
4316 }
4317 if (this.rollbackLogPathVariableFieldSet)
4318 {
4319 writer.WriteAttributeString("RollbackLogPathVariable", this.rollbackLogPathVariableField);
4320 }
4321 if (this.permanentFieldSet)
4322 {
4323 if ((this.permanentField == YesNoType.no))
4324 {
4325 writer.WriteAttributeString("Permanent", "no");
4326 }
4327 if ((this.permanentField == YesNoType.yes))
4328 {
4329 writer.WriteAttributeString("Permanent", "yes");
4330 }
4331 }
4332 if (this.vitalFieldSet)
4333 {
4334 if ((this.vitalField == YesNoType.no))
4335 {
4336 writer.WriteAttributeString("Vital", "no");
4337 }
4338 if ((this.vitalField == YesNoType.yes))
4339 {
4340 writer.WriteAttributeString("Vital", "yes");
4341 }
4342 }
4343 if (this.compressedFieldSet)
4344 {
4345 if ((this.compressedField == YesNoDefaultType.@default))
4346 {
4347 writer.WriteAttributeString("Compressed", "default");
4348 }
4349 if ((this.compressedField == YesNoDefaultType.no))
4350 {
4351 writer.WriteAttributeString("Compressed", "no");
4352 }
4353 if ((this.compressedField == YesNoDefaultType.yes))
4354 {
4355 writer.WriteAttributeString("Compressed", "yes");
4356 }
4357 }
4358 if (this.enableSignatureVerificationFieldSet)
4359 {
4360 if ((this.enableSignatureVerificationField == YesNoType.no))
4361 {
4362 writer.WriteAttributeString("EnableSignatureVerification", "no");
4363 }
4364 if ((this.enableSignatureVerificationField == YesNoType.yes))
4365 {
4366 writer.WriteAttributeString("EnableSignatureVerification", "yes");
4367 }
4368 }
4369 if (this.enableFeatureSelectionFieldSet)
4370 {
4371 if ((this.enableFeatureSelectionField == YesNoType.no))
4372 {
4373 writer.WriteAttributeString("EnableFeatureSelection", "no");
4374 }
4375 if ((this.enableFeatureSelectionField == YesNoType.yes))
4376 {
4377 writer.WriteAttributeString("EnableFeatureSelection", "yes");
4378 }
4379 }
4380 if (this.forcePerMachineFieldSet)
4381 {
4382 if ((this.forcePerMachineField == YesNoType.no))
4383 {
4384 writer.WriteAttributeString("ForcePerMachine", "no");
4385 }
4386 if ((this.forcePerMachineField == YesNoType.yes))
4387 {
4388 writer.WriteAttributeString("ForcePerMachine", "yes");
4389 }
4390 }
4391 if (this.suppressLooseFilePayloadGenerationFieldSet)
4392 {
4393 if ((this.suppressLooseFilePayloadGenerationField == YesNoType.no))
4394 {
4395 writer.WriteAttributeString("SuppressLooseFilePayloadGeneration", "no");
4396 }
4397 if ((this.suppressLooseFilePayloadGenerationField == YesNoType.yes))
4398 {
4399 writer.WriteAttributeString("SuppressLooseFilePayloadGeneration", "yes");
4400 }
4401 }
4402 if (this.visibleFieldSet)
4403 {
4404 if ((this.visibleField == YesNoType.no))
4405 {
4406 writer.WriteAttributeString("Visible", "no");
4407 }
4408 if ((this.visibleField == YesNoType.yes))
4409 {
4410 writer.WriteAttributeString("Visible", "yes");
4411 }
4412 }
4413 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
4414 {
4415 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
4416 childElement.OutputXml(writer);
4417 }
4418 writer.WriteEndElement();
4419 }
4420
4421 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
4422 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
4423 void ISetAttributes.SetAttribute(string name, string value)
4424 {
4425 if (String.IsNullOrEmpty(name))
4426 {
4427 throw new ArgumentNullException("name");
4428 }
4429 if (("SourceFile" == name))
4430 {
4431 this.sourceFileField = value;
4432 this.sourceFileFieldSet = true;
4433 }
4434 if (("Name" == name))
4435 {
4436 this.nameField = value;
4437 this.nameFieldSet = true;
4438 }
4439 if (("DownloadUrl" == name))
4440 {
4441 this.downloadUrlField = value;
4442 this.downloadUrlFieldSet = true;
4443 }
4444 if (("Id" == name))
4445 {
4446 this.idField = value;
4447 this.idFieldSet = true;
4448 }
4449 if (("After" == name))
4450 {
4451 this.afterField = value;
4452 this.afterFieldSet = true;
4453 }
4454 if (("InstallSize" == name))
4455 {
4456 this.installSizeField = value;
4457 this.installSizeFieldSet = true;
4458 }
4459 if (("InstallCondition" == name))
4460 {
4461 this.installConditionField = value;
4462 this.installConditionFieldSet = true;
4463 }
4464 if (("Cache" == name))
4465 {
4466 this.cacheField = Enums.ParseYesNoAlwaysType(value);
4467 this.cacheFieldSet = true;
4468 }
4469 if (("CacheId" == name))
4470 {
4471 this.cacheIdField = value;
4472 this.cacheIdFieldSet = true;
4473 }
4474 if (("DisplayName" == name))
4475 {
4476 this.displayNameField = value;
4477 this.displayNameFieldSet = true;
4478 }
4479 if (("Description" == name))
4480 {
4481 this.descriptionField = value;
4482 this.descriptionFieldSet = true;
4483 }
4484 if (("LogPathVariable" == name))
4485 {
4486 this.logPathVariableField = value;
4487 this.logPathVariableFieldSet = true;
4488 }
4489 if (("RollbackLogPathVariable" == name))
4490 {
4491 this.rollbackLogPathVariableField = value;
4492 this.rollbackLogPathVariableFieldSet = true;
4493 }
4494 if (("Permanent" == name))
4495 {
4496 this.permanentField = Enums.ParseYesNoType(value);
4497 this.permanentFieldSet = true;
4498 }
4499 if (("Vital" == name))
4500 {
4501 this.vitalField = Enums.ParseYesNoType(value);
4502 this.vitalFieldSet = true;
4503 }
4504 if (("Compressed" == name))
4505 {
4506 this.compressedField = Enums.ParseYesNoDefaultType(value);
4507 this.compressedFieldSet = true;
4508 }
4509 if (("EnableSignatureVerification" == name))
4510 {
4511 this.enableSignatureVerificationField = Enums.ParseYesNoType(value);
4512 this.enableSignatureVerificationFieldSet = true;
4513 }
4514 if (("EnableFeatureSelection" == name))
4515 {
4516 this.enableFeatureSelectionField = Enums.ParseYesNoType(value);
4517 this.enableFeatureSelectionFieldSet = true;
4518 }
4519 if (("ForcePerMachine" == name))
4520 {
4521 this.forcePerMachineField = Enums.ParseYesNoType(value);
4522 this.forcePerMachineFieldSet = true;
4523 }
4524 if (("SuppressLooseFilePayloadGeneration" == name))
4525 {
4526 this.suppressLooseFilePayloadGenerationField = Enums.ParseYesNoType(value);
4527 this.suppressLooseFilePayloadGenerationFieldSet = true;
4528 }
4529 if (("Visible" == name))
4530 {
4531 this.visibleField = Enums.ParseYesNoType(value);
4532 this.visibleFieldSet = true;
4533 }
4534 }
4535 }
4536
4537 /// <summary>
4538 /// Describes a single msp package to install.
4539 /// </summary>
4540 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
4541 public class MspPackage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
4542 {
4543
4544 private ElementCollection children;
4545
4546 private string sourceFileField;
4547
4548 private bool sourceFileFieldSet;
4549
4550 private string nameField;
4551
4552 private bool nameFieldSet;
4553
4554 private string downloadUrlField;
4555
4556 private bool downloadUrlFieldSet;
4557
4558 private string idField;
4559
4560 private bool idFieldSet;
4561
4562 private string afterField;
4563
4564 private bool afterFieldSet;
4565
4566 private string installSizeField;
4567
4568 private bool installSizeFieldSet;
4569
4570 private string installConditionField;
4571
4572 private bool installConditionFieldSet;
4573
4574 private YesNoAlwaysType cacheField;
4575
4576 private bool cacheFieldSet;
4577
4578 private string cacheIdField;
4579
4580 private bool cacheIdFieldSet;
4581
4582 private string displayNameField;
4583
4584 private bool displayNameFieldSet;
4585
4586 private string descriptionField;
4587
4588 private bool descriptionFieldSet;
4589
4590 private string logPathVariableField;
4591
4592 private bool logPathVariableFieldSet;
4593
4594 private string rollbackLogPathVariableField;
4595
4596 private bool rollbackLogPathVariableFieldSet;
4597
4598 private YesNoType permanentField;
4599
4600 private bool permanentFieldSet;
4601
4602 private YesNoType vitalField;
4603
4604 private bool vitalFieldSet;
4605
4606 private YesNoDefaultType compressedField;
4607
4608 private bool compressedFieldSet;
4609
4610 private YesNoType enableSignatureVerificationField;
4611
4612 private bool enableSignatureVerificationFieldSet;
4613
4614 private YesNoDefaultType perMachineField;
4615
4616 private bool perMachineFieldSet;
4617
4618 private YesNoType slipstreamField;
4619
4620 private bool slipstreamFieldSet;
4621
4622 private ISchemaElement parentElement;
4623
4624 public MspPackage()
4625 {
4626 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
4627 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiProperty)));
4628 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload)));
4629 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef)));
4630 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
4631 this.children = childCollection0;
4632 }
4633
4634 public virtual IEnumerable Children
4635 {
4636 get
4637 {
4638 return this.children;
4639 }
4640 }
4641
4642 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
4643 public virtual IEnumerable this[System.Type childType]
4644 {
4645 get
4646 {
4647 return this.children.Filter(childType);
4648 }
4649 }
4650
4651 /// <summary>
4652 /// Location of the package to add to the bundle. The default value is the Name attribute, if provided.
4653 /// At a minimum, the SourceFile or Name attribute must be specified.
4654 /// </summary>
4655 public string SourceFile
4656 {
4657 get
4658 {
4659 return this.sourceFileField;
4660 }
4661 set
4662 {
4663 this.sourceFileFieldSet = true;
4664 this.sourceFileField = value;
4665 }
4666 }
4667
4668 /// <summary>
4669 /// The destination path and file name for this chain payload. Use this attribute to rename the
4670 /// chain entry point or extract it into a subfolder. The default value is the file name from the
4671 /// SourceFile attribute, if provided. At a minimum, the Name or SourceFile attribute must be specified.
4672 /// The use of '..' directories is not allowed.
4673 /// </summary>
4674 public string Name
4675 {
4676 get
4677 {
4678 return this.nameField;
4679 }
4680 set
4681 {
4682 this.nameFieldSet = true;
4683 this.nameField = value;
4684 }
4685 }
4686
4687 public string DownloadUrl
4688 {
4689 get
4690 {
4691 return this.downloadUrlField;
4692 }
4693 set
4694 {
4695 this.downloadUrlFieldSet = true;
4696 this.downloadUrlField = value;
4697 }
4698 }
4699
4700 /// <summary>
4701 /// Identifier for this package, for ordering and cross-referencing. The default is the Name attribute
4702 /// modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores).
4703 /// </summary>
4704 public string Id
4705 {
4706 get
4707 {
4708 return this.idField;
4709 }
4710 set
4711 {
4712 this.idFieldSet = true;
4713 this.idField = value;
4714 }
4715 }
4716
4717 /// <summary>
4718 /// The identifier of another package that this one should be installed after. By default the After
4719 /// attribute is set to the previous sibling package in the Chain or PackageGroup element. If this
4720 /// attribute is specified ensure that a cycle is not created explicitly or implicitly.
4721 /// </summary>
4722 public string After
4723 {
4724 get
4725 {
4726 return this.afterField;
4727 }
4728 set
4729 {
4730 this.afterFieldSet = true;
4731 this.afterField = value;
4732 }
4733 }
4734
4735 /// <summary>
4736 /// The size this package will take on disk in bytes after it is installed. By default, the binder will
4737 /// calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs)
4738 /// and use the total for the install size of the package.
4739 /// </summary>
4740 public string InstallSize
4741 {
4742 get
4743 {
4744 return this.installSizeField;
4745 }
4746 set
4747 {
4748 this.installSizeFieldSet = true;
4749 this.installSizeField = value;
4750 }
4751 }
4752
4753 /// <summary>
4754 /// 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.
4755 /// </summary>
4756 public string InstallCondition
4757 {
4758 get
4759 {
4760 return this.installConditionField;
4761 }
4762 set
4763 {
4764 this.installConditionFieldSet = true;
4765 this.installConditionField = value;
4766 }
4767 }
4768
4769 /// <summary>
4770 /// Whether to cache the package. The default is "yes".
4771 /// </summary>
4772 public YesNoAlwaysType Cache
4773 {
4774 get
4775 {
4776 return this.cacheField;
4777 }
4778 set
4779 {
4780 this.cacheFieldSet = true;
4781 this.cacheField = value;
4782 }
4783 }
4784
4785 /// <summary>
4786 /// The identifier to use when caching the package.
4787 /// </summary>
4788 public string CacheId
4789 {
4790 get
4791 {
4792 return this.cacheIdField;
4793 }
4794 set
4795 {
4796 this.cacheIdFieldSet = true;
4797 this.cacheIdField = value;
4798 }
4799 }
4800
4801 /// <summary>
4802 /// Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages
4803 /// use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use
4804 /// the DisplayName patch metadata property. Other package types must use this attribute to define a display name in the
4805 /// bootstrapper application data manifest.
4806 /// </summary>
4807 public string DisplayName
4808 {
4809 get
4810 {
4811 return this.displayNameField;
4812 }
4813 set
4814 {
4815 this.displayNameFieldSet = true;
4816 this.displayNameField = value;
4817 }
4818 }
4819
4820 /// <summary>
4821 /// Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages
4822 /// use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use
4823 /// the Description patch metadata property. Other package types must use this attribute to define a description in the
4824 /// bootstrapper application data manifest.
4825 /// </summary>
4826 public string Description
4827 {
4828 get
4829 {
4830 return this.descriptionField;
4831 }
4832 set
4833 {
4834 this.descriptionFieldSet = true;
4835 this.descriptionField = value;
4836 }
4837 }
4838
4839 /// <summary>
4840 /// Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not
4841 /// be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging.
4842 /// </summary>
4843 public string LogPathVariable
4844 {
4845 get
4846 {
4847 return this.logPathVariableField;
4848 }
4849 set
4850 {
4851 this.logPathVariableFieldSet = true;
4852 this.logPathVariableField = value;
4853 }
4854 }
4855
4856 /// <summary>
4857 /// Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause
4858 /// the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which
4859 /// default to no logging.
4860 /// </summary>
4861 public string RollbackLogPathVariable
4862 {
4863 get
4864 {
4865 return this.rollbackLogPathVariableField;
4866 }
4867 set
4868 {
4869 this.rollbackLogPathVariableFieldSet = true;
4870 this.rollbackLogPathVariableField = value;
4871 }
4872 }
4873
4874 /// <summary>
4875 /// Specifies whether the package can be uninstalled. The default is "no".
4876 /// </summary>
4877 public YesNoType Permanent
4878 {
4879 get
4880 {
4881 return this.permanentField;
4882 }
4883 set
4884 {
4885 this.permanentFieldSet = true;
4886 this.permanentField = value;
4887 }
4888 }
4889
4890 /// <summary>
4891 /// Specifies whether the package must succeed for the chain to continue. The default "yes"
4892 /// indicates that if the package fails then the chain will fail and rollback or stop. If
4893 /// "no" is specified then the chain will continue even if the package reports failure.
4894 /// </summary>
4895 public YesNoType Vital
4896 {
4897 get
4898 {
4899 return this.vitalField;
4900 }
4901 set
4902 {
4903 this.vitalFieldSet = true;
4904 this.vitalField = value;
4905 }
4906 }
4907
4908 /// <summary>
4909 /// Whether the package payload should be embedded in a container or left as an external payload.
4910 /// </summary>
4911 public YesNoDefaultType Compressed
4912 {
4913 get
4914 {
4915 return this.compressedField;
4916 }
4917 set
4918 {
4919 this.compressedFieldSet = true;
4920 this.compressedField = value;
4921 }
4922 }
4923
4924 /// <summary>
4925 /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes"
4926 /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the
4927 /// signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures.
4928 /// Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no".
4929 /// </summary>
4930 public YesNoType EnableSignatureVerification
4931 {
4932 get
4933 {
4934 return this.enableSignatureVerificationField;
4935 }
4936 set
4937 {
4938 this.enableSignatureVerificationFieldSet = true;
4939 this.enableSignatureVerificationField = value;
4940 }
4941 }
4942
4943 /// <summary>
4944 /// Indicates the package must be executed elevated. The default is "no".
4945 /// </summary>
4946 public YesNoDefaultType PerMachine
4947 {
4948 get
4949 {
4950 return this.perMachineField;
4951 }
4952 set
4953 {
4954 this.perMachineFieldSet = true;
4955 this.perMachineField = value;
4956 }
4957 }
4958
4959 /// <summary>
4960 /// Specifies whether to automatically slipstream the patch for any target msi packages in the chain. The default is "no".
4961 /// Even when the value is "no", you can still author the SlipstreamMsp element under MsiPackage elements as desired.
4962 /// </summary>
4963 public YesNoType Slipstream
4964 {
4965 get
4966 {
4967 return this.slipstreamField;
4968 }
4969 set
4970 {
4971 this.slipstreamFieldSet = true;
4972 this.slipstreamField = value;
4973 }
4974 }
4975
4976 public virtual ISchemaElement ParentElement
4977 {
4978 get
4979 {
4980 return this.parentElement;
4981 }
4982 set
4983 {
4984 this.parentElement = value;
4985 }
4986 }
4987
4988 public virtual void AddChild(ISchemaElement child)
4989 {
4990 if ((null == child))
4991 {
4992 throw new ArgumentNullException("child");
4993 }
4994 this.children.AddElement(child);
4995 child.ParentElement = this;
4996 }
4997
4998 public virtual void RemoveChild(ISchemaElement child)
4999 {
5000 if ((null == child))
5001 {
5002 throw new ArgumentNullException("child");
5003 }
5004 this.children.RemoveElement(child);
5005 child.ParentElement = null;
5006 }
5007
5008 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
5009 ISchemaElement ICreateChildren.CreateChild(string childName)
5010 {
5011 if (String.IsNullOrEmpty(childName))
5012 {
5013 throw new ArgumentNullException("childName");
5014 }
5015 ISchemaElement childValue = null;
5016 if (("MsiProperty" == childName))
5017 {
5018 childValue = new MsiProperty();
5019 }
5020 if (("Payload" == childName))
5021 {
5022 childValue = new Payload();
5023 }
5024 if (("PayloadGroupRef" == childName))
5025 {
5026 childValue = new PayloadGroupRef();
5027 }
5028 if ((null == childValue))
5029 {
5030 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
5031 }
5032 return childValue;
5033 }
5034
5035 /// <summary>
5036 /// Processes this element and all child elements into an XmlWriter.
5037 /// </summary>
5038 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
5039 public virtual void OutputXml(XmlWriter writer)
5040 {
5041 if ((null == writer))
5042 {
5043 throw new ArgumentNullException("writer");
5044 }
5045 writer.WriteStartElement("MspPackage", "http://wixtoolset.org/schemas/v4/wxs");
5046 if (this.sourceFileFieldSet)
5047 {
5048 writer.WriteAttributeString("SourceFile", this.sourceFileField);
5049 }
5050 if (this.nameFieldSet)
5051 {
5052 writer.WriteAttributeString("Name", this.nameField);
5053 }
5054 if (this.downloadUrlFieldSet)
5055 {
5056 writer.WriteAttributeString("DownloadUrl", this.downloadUrlField);
5057 }
5058 if (this.idFieldSet)
5059 {
5060 writer.WriteAttributeString("Id", this.idField);
5061 }
5062 if (this.afterFieldSet)
5063 {
5064 writer.WriteAttributeString("After", this.afterField);
5065 }
5066 if (this.installSizeFieldSet)
5067 {
5068 writer.WriteAttributeString("InstallSize", this.installSizeField);
5069 }
5070 if (this.installConditionFieldSet)
5071 {
5072 writer.WriteAttributeString("InstallCondition", this.installConditionField);
5073 }
5074 if (this.cacheFieldSet)
5075 {
5076 if ((this.cacheField == YesNoAlwaysType.always))
5077 {
5078 writer.WriteAttributeString("Cache", "always");
5079 }
5080 if ((this.cacheField == YesNoAlwaysType.no))
5081 {
5082 writer.WriteAttributeString("Cache", "no");
5083 }
5084 if ((this.cacheField == YesNoAlwaysType.yes))
5085 {
5086 writer.WriteAttributeString("Cache", "yes");
5087 }
5088 }
5089 if (this.cacheIdFieldSet)
5090 {
5091 writer.WriteAttributeString("CacheId", this.cacheIdField);
5092 }
5093 if (this.displayNameFieldSet)
5094 {
5095 writer.WriteAttributeString("DisplayName", this.displayNameField);
5096 }
5097 if (this.descriptionFieldSet)
5098 {
5099 writer.WriteAttributeString("Description", this.descriptionField);
5100 }
5101 if (this.logPathVariableFieldSet)
5102 {
5103 writer.WriteAttributeString("LogPathVariable", this.logPathVariableField);
5104 }
5105 if (this.rollbackLogPathVariableFieldSet)
5106 {
5107 writer.WriteAttributeString("RollbackLogPathVariable", this.rollbackLogPathVariableField);
5108 }
5109 if (this.permanentFieldSet)
5110 {
5111 if ((this.permanentField == YesNoType.no))
5112 {
5113 writer.WriteAttributeString("Permanent", "no");
5114 }
5115 if ((this.permanentField == YesNoType.yes))
5116 {
5117 writer.WriteAttributeString("Permanent", "yes");
5118 }
5119 }
5120 if (this.vitalFieldSet)
5121 {
5122 if ((this.vitalField == YesNoType.no))
5123 {
5124 writer.WriteAttributeString("Vital", "no");
5125 }
5126 if ((this.vitalField == YesNoType.yes))
5127 {
5128 writer.WriteAttributeString("Vital", "yes");
5129 }
5130 }
5131 if (this.compressedFieldSet)
5132 {
5133 if ((this.compressedField == YesNoDefaultType.@default))
5134 {
5135 writer.WriteAttributeString("Compressed", "default");
5136 }
5137 if ((this.compressedField == YesNoDefaultType.no))
5138 {
5139 writer.WriteAttributeString("Compressed", "no");
5140 }
5141 if ((this.compressedField == YesNoDefaultType.yes))
5142 {
5143 writer.WriteAttributeString("Compressed", "yes");
5144 }
5145 }
5146 if (this.enableSignatureVerificationFieldSet)
5147 {
5148 if ((this.enableSignatureVerificationField == YesNoType.no))
5149 {
5150 writer.WriteAttributeString("EnableSignatureVerification", "no");
5151 }
5152 if ((this.enableSignatureVerificationField == YesNoType.yes))
5153 {
5154 writer.WriteAttributeString("EnableSignatureVerification", "yes");
5155 }
5156 }
5157 if (this.perMachineFieldSet)
5158 {
5159 if ((this.perMachineField == YesNoDefaultType.@default))
5160 {
5161 writer.WriteAttributeString("PerMachine", "default");
5162 }
5163 if ((this.perMachineField == YesNoDefaultType.no))
5164 {
5165 writer.WriteAttributeString("PerMachine", "no");
5166 }
5167 if ((this.perMachineField == YesNoDefaultType.yes))
5168 {
5169 writer.WriteAttributeString("PerMachine", "yes");
5170 }
5171 }
5172 if (this.slipstreamFieldSet)
5173 {
5174 if ((this.slipstreamField == YesNoType.no))
5175 {
5176 writer.WriteAttributeString("Slipstream", "no");
5177 }
5178 if ((this.slipstreamField == YesNoType.yes))
5179 {
5180 writer.WriteAttributeString("Slipstream", "yes");
5181 }
5182 }
5183 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
5184 {
5185 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
5186 childElement.OutputXml(writer);
5187 }
5188 writer.WriteEndElement();
5189 }
5190
5191 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
5192 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
5193 void ISetAttributes.SetAttribute(string name, string value)
5194 {
5195 if (String.IsNullOrEmpty(name))
5196 {
5197 throw new ArgumentNullException("name");
5198 }
5199 if (("SourceFile" == name))
5200 {
5201 this.sourceFileField = value;
5202 this.sourceFileFieldSet = true;
5203 }
5204 if (("Name" == name))
5205 {
5206 this.nameField = value;
5207 this.nameFieldSet = true;
5208 }
5209 if (("DownloadUrl" == name))
5210 {
5211 this.downloadUrlField = value;
5212 this.downloadUrlFieldSet = true;
5213 }
5214 if (("Id" == name))
5215 {
5216 this.idField = value;
5217 this.idFieldSet = true;
5218 }
5219 if (("After" == name))
5220 {
5221 this.afterField = value;
5222 this.afterFieldSet = true;
5223 }
5224 if (("InstallSize" == name))
5225 {
5226 this.installSizeField = value;
5227 this.installSizeFieldSet = true;
5228 }
5229 if (("InstallCondition" == name))
5230 {
5231 this.installConditionField = value;
5232 this.installConditionFieldSet = true;
5233 }
5234 if (("Cache" == name))
5235 {
5236 this.cacheField = Enums.ParseYesNoAlwaysType(value);
5237 this.cacheFieldSet = true;
5238 }
5239 if (("CacheId" == name))
5240 {
5241 this.cacheIdField = value;
5242 this.cacheIdFieldSet = true;
5243 }
5244 if (("DisplayName" == name))
5245 {
5246 this.displayNameField = value;
5247 this.displayNameFieldSet = true;
5248 }
5249 if (("Description" == name))
5250 {
5251 this.descriptionField = value;
5252 this.descriptionFieldSet = true;
5253 }
5254 if (("LogPathVariable" == name))
5255 {
5256 this.logPathVariableField = value;
5257 this.logPathVariableFieldSet = true;
5258 }
5259 if (("RollbackLogPathVariable" == name))
5260 {
5261 this.rollbackLogPathVariableField = value;
5262 this.rollbackLogPathVariableFieldSet = true;
5263 }
5264 if (("Permanent" == name))
5265 {
5266 this.permanentField = Enums.ParseYesNoType(value);
5267 this.permanentFieldSet = true;
5268 }
5269 if (("Vital" == name))
5270 {
5271 this.vitalField = Enums.ParseYesNoType(value);
5272 this.vitalFieldSet = true;
5273 }
5274 if (("Compressed" == name))
5275 {
5276 this.compressedField = Enums.ParseYesNoDefaultType(value);
5277 this.compressedFieldSet = true;
5278 }
5279 if (("EnableSignatureVerification" == name))
5280 {
5281 this.enableSignatureVerificationField = Enums.ParseYesNoType(value);
5282 this.enableSignatureVerificationFieldSet = true;
5283 }
5284 if (("PerMachine" == name))
5285 {
5286 this.perMachineField = Enums.ParseYesNoDefaultType(value);
5287 this.perMachineFieldSet = true;
5288 }
5289 if (("Slipstream" == name))
5290 {
5291 this.slipstreamField = Enums.ParseYesNoType(value);
5292 this.slipstreamFieldSet = true;
5293 }
5294 }
5295 }
5296
5297 /// <summary>
5298 /// Describes a single msu package to install.
5299 /// </summary>
5300 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
5301 public class MsuPackage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
5302 {
5303
5304 private ElementCollection children;
5305
5306 private string sourceFileField;
5307
5308 private bool sourceFileFieldSet;
5309
5310 private string nameField;
5311
5312 private bool nameFieldSet;
5313
5314 private string downloadUrlField;
5315
5316 private bool downloadUrlFieldSet;
5317
5318 private string idField;
5319
5320 private bool idFieldSet;
5321
5322 private string afterField;
5323
5324 private bool afterFieldSet;
5325
5326 private string installSizeField;
5327
5328 private bool installSizeFieldSet;
5329
5330 private string installConditionField;
5331
5332 private bool installConditionFieldSet;
5333
5334 private YesNoAlwaysType cacheField;
5335
5336 private bool cacheFieldSet;
5337
5338 private string cacheIdField;
5339
5340 private bool cacheIdFieldSet;
5341
5342 private string displayNameField;
5343
5344 private bool displayNameFieldSet;
5345
5346 private string descriptionField;
5347
5348 private bool descriptionFieldSet;
5349
5350 private string logPathVariableField;
5351
5352 private bool logPathVariableFieldSet;
5353
5354 private string rollbackLogPathVariableField;
5355
5356 private bool rollbackLogPathVariableFieldSet;
5357
5358 private YesNoType permanentField;
5359
5360 private bool permanentFieldSet;
5361
5362 private YesNoType vitalField;
5363
5364 private bool vitalFieldSet;
5365
5366 private YesNoDefaultType compressedField;
5367
5368 private bool compressedFieldSet;
5369
5370 private YesNoType enableSignatureVerificationField;
5371
5372 private bool enableSignatureVerificationFieldSet;
5373
5374 private string detectConditionField;
5375
5376 private bool detectConditionFieldSet;
5377
5378 private string kBField;
5379
5380 private bool kBFieldSet;
5381
5382 private ISchemaElement parentElement;
5383
5384 public MsuPackage()
5385 {
5386 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
5387 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload)));
5388 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef)));
5389 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemotePayload)));
5390 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
5391 this.children = childCollection0;
5392 }
5393
5394 public virtual IEnumerable Children
5395 {
5396 get
5397 {
5398 return this.children;
5399 }
5400 }
5401
5402 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
5403 public virtual IEnumerable this[System.Type childType]
5404 {
5405 get
5406 {
5407 return this.children.Filter(childType);
5408 }
5409 }
5410
5411 /// <summary>
5412 /// Location of the package to add to the bundle. The default value is the Name attribute, if provided.
5413 /// At a minimum, the SourceFile or Name attribute must be specified.
5414 /// </summary>
5415 public string SourceFile
5416 {
5417 get
5418 {
5419 return this.sourceFileField;
5420 }
5421 set
5422 {
5423 this.sourceFileFieldSet = true;
5424 this.sourceFileField = value;
5425 }
5426 }
5427
5428 /// <summary>
5429 /// The destination path and file name for this chain payload. Use this attribute to rename the
5430 /// chain entry point or extract it into a subfolder. The default value is the file name from the
5431 /// SourceFile attribute, if provided. At a minimum, the Name or SourceFile attribute must be specified.
5432 /// The use of '..' directories is not allowed.
5433 /// </summary>
5434 public string Name
5435 {
5436 get
5437 {
5438 return this.nameField;
5439 }
5440 set
5441 {
5442 this.nameFieldSet = true;
5443 this.nameField = value;
5444 }
5445 }
5446
5447 public string DownloadUrl
5448 {
5449 get
5450 {
5451 return this.downloadUrlField;
5452 }
5453 set
5454 {
5455 this.downloadUrlFieldSet = true;
5456 this.downloadUrlField = value;
5457 }
5458 }
5459
5460 /// <summary>
5461 /// Identifier for this package, for ordering and cross-referencing. The default is the Name attribute
5462 /// modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores).
5463 /// </summary>
5464 public string Id
5465 {
5466 get
5467 {
5468 return this.idField;
5469 }
5470 set
5471 {
5472 this.idFieldSet = true;
5473 this.idField = value;
5474 }
5475 }
5476
5477 /// <summary>
5478 /// The identifier of another package that this one should be installed after. By default the After
5479 /// attribute is set to the previous sibling package in the Chain or PackageGroup element. If this
5480 /// attribute is specified ensure that a cycle is not created explicitly or implicitly.
5481 /// </summary>
5482 public string After
5483 {
5484 get
5485 {
5486 return this.afterField;
5487 }
5488 set
5489 {
5490 this.afterFieldSet = true;
5491 this.afterField = value;
5492 }
5493 }
5494
5495 /// <summary>
5496 /// The size this package will take on disk in bytes after it is installed. By default, the binder will
5497 /// calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs)
5498 /// and use the total for the install size of the package.
5499 /// </summary>
5500 public string InstallSize
5501 {
5502 get
5503 {
5504 return this.installSizeField;
5505 }
5506 set
5507 {
5508 this.installSizeFieldSet = true;
5509 this.installSizeField = value;
5510 }
5511 }
5512
5513 /// <summary>
5514 /// 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.
5515 /// </summary>
5516 public string InstallCondition
5517 {
5518 get
5519 {
5520 return this.installConditionField;
5521 }
5522 set
5523 {
5524 this.installConditionFieldSet = true;
5525 this.installConditionField = value;
5526 }
5527 }
5528
5529 /// <summary>
5530 /// Whether to cache the package. The default is "yes".
5531 /// </summary>
5532 public YesNoAlwaysType Cache
5533 {
5534 get
5535 {
5536 return this.cacheField;
5537 }
5538 set
5539 {
5540 this.cacheFieldSet = true;
5541 this.cacheField = value;
5542 }
5543 }
5544
5545 /// <summary>
5546 /// The identifier to use when caching the package.
5547 /// </summary>
5548 public string CacheId
5549 {
5550 get
5551 {
5552 return this.cacheIdField;
5553 }
5554 set
5555 {
5556 this.cacheIdFieldSet = true;
5557 this.cacheIdField = value;
5558 }
5559 }
5560
5561 /// <summary>
5562 /// Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages
5563 /// use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use
5564 /// the DisplayName patch metadata property. Other package types must use this attribute to define a display name in the
5565 /// bootstrapper application data manifest.
5566 /// </summary>
5567 public string DisplayName
5568 {
5569 get
5570 {
5571 return this.displayNameField;
5572 }
5573 set
5574 {
5575 this.displayNameFieldSet = true;
5576 this.displayNameField = value;
5577 }
5578 }
5579
5580 /// <summary>
5581 /// Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages
5582 /// use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use
5583 /// the Description patch metadata property. Other package types must use this attribute to define a description in the
5584 /// bootstrapper application data manifest.
5585 /// </summary>
5586 public string Description
5587 {
5588 get
5589 {
5590 return this.descriptionField;
5591 }
5592 set
5593 {
5594 this.descriptionFieldSet = true;
5595 this.descriptionField = value;
5596 }
5597 }
5598
5599 /// <summary>
5600 /// Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not
5601 /// be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging.
5602 /// </summary>
5603 public string LogPathVariable
5604 {
5605 get
5606 {
5607 return this.logPathVariableField;
5608 }
5609 set
5610 {
5611 this.logPathVariableFieldSet = true;
5612 this.logPathVariableField = value;
5613 }
5614 }
5615
5616 /// <summary>
5617 /// Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause
5618 /// the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which
5619 /// default to no logging.
5620 /// </summary>
5621 public string RollbackLogPathVariable
5622 {
5623 get
5624 {
5625 return this.rollbackLogPathVariableField;
5626 }
5627 set
5628 {
5629 this.rollbackLogPathVariableFieldSet = true;
5630 this.rollbackLogPathVariableField = value;
5631 }
5632 }
5633
5634 /// <summary>
5635 /// Specifies whether the package can be uninstalled. The default is "no".
5636 /// </summary>
5637 public YesNoType Permanent
5638 {
5639 get
5640 {
5641 return this.permanentField;
5642 }
5643 set
5644 {
5645 this.permanentFieldSet = true;
5646 this.permanentField = value;
5647 }
5648 }
5649
5650 /// <summary>
5651 /// Specifies whether the package must succeed for the chain to continue. The default "yes"
5652 /// indicates that if the package fails then the chain will fail and rollback or stop. If
5653 /// "no" is specified then the chain will continue even if the package reports failure.
5654 /// </summary>
5655 public YesNoType Vital
5656 {
5657 get
5658 {
5659 return this.vitalField;
5660 }
5661 set
5662 {
5663 this.vitalFieldSet = true;
5664 this.vitalField = value;
5665 }
5666 }
5667
5668 /// <summary>
5669 /// Whether the package payload should be embedded in a container or left as an external payload.
5670 /// </summary>
5671 public YesNoDefaultType Compressed
5672 {
5673 get
5674 {
5675 return this.compressedField;
5676 }
5677 set
5678 {
5679 this.compressedFieldSet = true;
5680 this.compressedField = value;
5681 }
5682 }
5683
5684 /// <summary>
5685 /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes"
5686 /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the
5687 /// signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures.
5688 /// Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no".
5689 /// </summary>
5690 public YesNoType EnableSignatureVerification
5691 {
5692 get
5693 {
5694 return this.enableSignatureVerificationField;
5695 }
5696 set
5697 {
5698 this.enableSignatureVerificationFieldSet = true;
5699 this.enableSignatureVerificationField = value;
5700 }
5701 }
5702
5703 /// <summary>
5704 /// A condition that determines if the package is present on the target system. This condition can use built-in
5705 /// variables and variables returned by searches. This condition is necessary because Windows doesn't provide a
5706 /// method to detect the presence of an MsuPackage. Burn uses this condition to determine how to treat this
5707 /// package during a bundle action; for example, if this condition is false or omitted and the bundle is being
5708 /// installed, Burn will install this package.
5709 /// </summary>
5710 public string DetectCondition
5711 {
5712 get
5713 {
5714 return this.detectConditionField;
5715 }
5716 set
5717 {
5718 this.detectConditionFieldSet = true;
5719 this.detectConditionField = value;
5720 }
5721 }
5722
5723 /// <summary>
5724 /// The knowledge base identifier for the MSU. The KB attribute must be specified to enable the MSU package to
5725 /// be uninstalled. Even then MSU uninstallation is only supported on Windows 7 and later. When the KB attribute
5726 /// is specified, the Permanent attribute will the control whether the package is uninstalled.
5727 /// </summary>
5728 public string KB
5729 {
5730 get
5731 {
5732 return this.kBField;
5733 }
5734 set
5735 {
5736 this.kBFieldSet = true;
5737 this.kBField = value;
5738 }
5739 }
5740
5741 public virtual ISchemaElement ParentElement
5742 {
5743 get
5744 {
5745 return this.parentElement;
5746 }
5747 set
5748 {
5749 this.parentElement = value;
5750 }
5751 }
5752
5753 public virtual void AddChild(ISchemaElement child)
5754 {
5755 if ((null == child))
5756 {
5757 throw new ArgumentNullException("child");
5758 }
5759 this.children.AddElement(child);
5760 child.ParentElement = this;
5761 }
5762
5763 public virtual void RemoveChild(ISchemaElement child)
5764 {
5765 if ((null == child))
5766 {
5767 throw new ArgumentNullException("child");
5768 }
5769 this.children.RemoveElement(child);
5770 child.ParentElement = null;
5771 }
5772
5773 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
5774 ISchemaElement ICreateChildren.CreateChild(string childName)
5775 {
5776 if (String.IsNullOrEmpty(childName))
5777 {
5778 throw new ArgumentNullException("childName");
5779 }
5780 ISchemaElement childValue = null;
5781 if (("Payload" == childName))
5782 {
5783 childValue = new Payload();
5784 }
5785 if (("PayloadGroupRef" == childName))
5786 {
5787 childValue = new PayloadGroupRef();
5788 }
5789 if (("RemotePayload" == childName))
5790 {
5791 childValue = new RemotePayload();
5792 }
5793 if ((null == childValue))
5794 {
5795 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
5796 }
5797 return childValue;
5798 }
5799
5800 /// <summary>
5801 /// Processes this element and all child elements into an XmlWriter.
5802 /// </summary>
5803 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
5804 public virtual void OutputXml(XmlWriter writer)
5805 {
5806 if ((null == writer))
5807 {
5808 throw new ArgumentNullException("writer");
5809 }
5810 writer.WriteStartElement("MsuPackage", "http://wixtoolset.org/schemas/v4/wxs");
5811 if (this.sourceFileFieldSet)
5812 {
5813 writer.WriteAttributeString("SourceFile", this.sourceFileField);
5814 }
5815 if (this.nameFieldSet)
5816 {
5817 writer.WriteAttributeString("Name", this.nameField);
5818 }
5819 if (this.downloadUrlFieldSet)
5820 {
5821 writer.WriteAttributeString("DownloadUrl", this.downloadUrlField);
5822 }
5823 if (this.idFieldSet)
5824 {
5825 writer.WriteAttributeString("Id", this.idField);
5826 }
5827 if (this.afterFieldSet)
5828 {
5829 writer.WriteAttributeString("After", this.afterField);
5830 }
5831 if (this.installSizeFieldSet)
5832 {
5833 writer.WriteAttributeString("InstallSize", this.installSizeField);
5834 }
5835 if (this.installConditionFieldSet)
5836 {
5837 writer.WriteAttributeString("InstallCondition", this.installConditionField);
5838 }
5839 if (this.cacheFieldSet)
5840 {
5841 if ((this.cacheField == YesNoAlwaysType.always))
5842 {
5843 writer.WriteAttributeString("Cache", "always");
5844 }
5845 if ((this.cacheField == YesNoAlwaysType.no))
5846 {
5847 writer.WriteAttributeString("Cache", "no");
5848 }
5849 if ((this.cacheField == YesNoAlwaysType.yes))
5850 {
5851 writer.WriteAttributeString("Cache", "yes");
5852 }
5853 }
5854 if (this.cacheIdFieldSet)
5855 {
5856 writer.WriteAttributeString("CacheId", this.cacheIdField);
5857 }
5858 if (this.displayNameFieldSet)
5859 {
5860 writer.WriteAttributeString("DisplayName", this.displayNameField);
5861 }
5862 if (this.descriptionFieldSet)
5863 {
5864 writer.WriteAttributeString("Description", this.descriptionField);
5865 }
5866 if (this.logPathVariableFieldSet)
5867 {
5868 writer.WriteAttributeString("LogPathVariable", this.logPathVariableField);
5869 }
5870 if (this.rollbackLogPathVariableFieldSet)
5871 {
5872 writer.WriteAttributeString("RollbackLogPathVariable", this.rollbackLogPathVariableField);
5873 }
5874 if (this.permanentFieldSet)
5875 {
5876 if ((this.permanentField == YesNoType.no))
5877 {
5878 writer.WriteAttributeString("Permanent", "no");
5879 }
5880 if ((this.permanentField == YesNoType.yes))
5881 {
5882 writer.WriteAttributeString("Permanent", "yes");
5883 }
5884 }
5885 if (this.vitalFieldSet)
5886 {
5887 if ((this.vitalField == YesNoType.no))
5888 {
5889 writer.WriteAttributeString("Vital", "no");
5890 }
5891 if ((this.vitalField == YesNoType.yes))
5892 {
5893 writer.WriteAttributeString("Vital", "yes");
5894 }
5895 }
5896 if (this.compressedFieldSet)
5897 {
5898 if ((this.compressedField == YesNoDefaultType.@default))
5899 {
5900 writer.WriteAttributeString("Compressed", "default");
5901 }
5902 if ((this.compressedField == YesNoDefaultType.no))
5903 {
5904 writer.WriteAttributeString("Compressed", "no");
5905 }
5906 if ((this.compressedField == YesNoDefaultType.yes))
5907 {
5908 writer.WriteAttributeString("Compressed", "yes");
5909 }
5910 }
5911 if (this.enableSignatureVerificationFieldSet)
5912 {
5913 if ((this.enableSignatureVerificationField == YesNoType.no))
5914 {
5915 writer.WriteAttributeString("EnableSignatureVerification", "no");
5916 }
5917 if ((this.enableSignatureVerificationField == YesNoType.yes))
5918 {
5919 writer.WriteAttributeString("EnableSignatureVerification", "yes");
5920 }
5921 }
5922 if (this.detectConditionFieldSet)
5923 {
5924 writer.WriteAttributeString("DetectCondition", this.detectConditionField);
5925 }
5926 if (this.kBFieldSet)
5927 {
5928 writer.WriteAttributeString("KB", this.kBField);
5929 }
5930 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
5931 {
5932 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
5933 childElement.OutputXml(writer);
5934 }
5935 writer.WriteEndElement();
5936 }
5937
5938 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
5939 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
5940 void ISetAttributes.SetAttribute(string name, string value)
5941 {
5942 if (String.IsNullOrEmpty(name))
5943 {
5944 throw new ArgumentNullException("name");
5945 }
5946 if (("SourceFile" == name))
5947 {
5948 this.sourceFileField = value;
5949 this.sourceFileFieldSet = true;
5950 }
5951 if (("Name" == name))
5952 {
5953 this.nameField = value;
5954 this.nameFieldSet = true;
5955 }
5956 if (("DownloadUrl" == name))
5957 {
5958 this.downloadUrlField = value;
5959 this.downloadUrlFieldSet = true;
5960 }
5961 if (("Id" == name))
5962 {
5963 this.idField = value;
5964 this.idFieldSet = true;
5965 }
5966 if (("After" == name))
5967 {
5968 this.afterField = value;
5969 this.afterFieldSet = true;
5970 }
5971 if (("InstallSize" == name))
5972 {
5973 this.installSizeField = value;
5974 this.installSizeFieldSet = true;
5975 }
5976 if (("InstallCondition" == name))
5977 {
5978 this.installConditionField = value;
5979 this.installConditionFieldSet = true;
5980 }
5981 if (("Cache" == name))
5982 {
5983 this.cacheField = Enums.ParseYesNoAlwaysType(value);
5984 this.cacheFieldSet = true;
5985 }
5986 if (("CacheId" == name))
5987 {
5988 this.cacheIdField = value;
5989 this.cacheIdFieldSet = true;
5990 }
5991 if (("DisplayName" == name))
5992 {
5993 this.displayNameField = value;
5994 this.displayNameFieldSet = true;
5995 }
5996 if (("Description" == name))
5997 {
5998 this.descriptionField = value;
5999 this.descriptionFieldSet = true;
6000 }
6001 if (("LogPathVariable" == name))
6002 {
6003 this.logPathVariableField = value;
6004 this.logPathVariableFieldSet = true;
6005 }
6006 if (("RollbackLogPathVariable" == name))
6007 {
6008 this.rollbackLogPathVariableField = value;
6009 this.rollbackLogPathVariableFieldSet = true;
6010 }
6011 if (("Permanent" == name))
6012 {
6013 this.permanentField = Enums.ParseYesNoType(value);
6014 this.permanentFieldSet = true;
6015 }
6016 if (("Vital" == name))
6017 {
6018 this.vitalField = Enums.ParseYesNoType(value);
6019 this.vitalFieldSet = true;
6020 }
6021 if (("Compressed" == name))
6022 {
6023 this.compressedField = Enums.ParseYesNoDefaultType(value);
6024 this.compressedFieldSet = true;
6025 }
6026 if (("EnableSignatureVerification" == name))
6027 {
6028 this.enableSignatureVerificationField = Enums.ParseYesNoType(value);
6029 this.enableSignatureVerificationFieldSet = true;
6030 }
6031 if (("DetectCondition" == name))
6032 {
6033 this.detectConditionField = value;
6034 this.detectConditionFieldSet = true;
6035 }
6036 if (("KB" == name))
6037 {
6038 this.kBField = value;
6039 this.kBFieldSet = true;
6040 }
6041 }
6042 }
6043
6044 /// <summary>
6045 /// Describes a single exe package to install.
6046 /// </summary>
6047 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
6048 public class ExePackage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
6049 {
6050
6051 private ElementCollection children;
6052
6053 private string sourceFileField;
6054
6055 private bool sourceFileFieldSet;
6056
6057 private string nameField;
6058
6059 private bool nameFieldSet;
6060
6061 private string downloadUrlField;
6062
6063 private bool downloadUrlFieldSet;
6064
6065 private string idField;
6066
6067 private bool idFieldSet;
6068
6069 private string afterField;
6070
6071 private bool afterFieldSet;
6072
6073 private string installSizeField;
6074
6075 private bool installSizeFieldSet;
6076
6077 private string installConditionField;
6078
6079 private bool installConditionFieldSet;
6080
6081 private YesNoAlwaysType cacheField;
6082
6083 private bool cacheFieldSet;
6084
6085 private string cacheIdField;
6086
6087 private bool cacheIdFieldSet;
6088
6089 private string displayNameField;
6090
6091 private bool displayNameFieldSet;
6092
6093 private string descriptionField;
6094
6095 private bool descriptionFieldSet;
6096
6097 private string logPathVariableField;
6098
6099 private bool logPathVariableFieldSet;
6100
6101 private string rollbackLogPathVariableField;
6102
6103 private bool rollbackLogPathVariableFieldSet;
6104
6105 private YesNoType permanentField;
6106
6107 private bool permanentFieldSet;
6108
6109 private YesNoType vitalField;
6110
6111 private bool vitalFieldSet;
6112
6113 private YesNoDefaultType compressedField;
6114
6115 private bool compressedFieldSet;
6116
6117 private YesNoType enableSignatureVerificationField;
6118
6119 private bool enableSignatureVerificationFieldSet;
6120
6121 private string detectConditionField;
6122
6123 private bool detectConditionFieldSet;
6124
6125 private string installCommandField;
6126
6127 private bool installCommandFieldSet;
6128
6129 private string repairCommandField;
6130
6131 private bool repairCommandFieldSet;
6132
6133 private string uninstallCommandField;
6134
6135 private bool uninstallCommandFieldSet;
6136
6137 private YesNoDefaultType perMachineField;
6138
6139 private bool perMachineFieldSet;
6140
6141 private BurnExeProtocolType protocolField;
6142
6143 private bool protocolFieldSet;
6144
6145 private ISchemaElement parentElement;
6146
6147 public ExePackage()
6148 {
6149 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
6150 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload)));
6151 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef)));
6152 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemotePayload)));
6153 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ExitCode)));
6154 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CommandLine)));
6155 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
6156 this.children = childCollection0;
6157 }
6158
6159 public virtual IEnumerable Children
6160 {
6161 get
6162 {
6163 return this.children;
6164 }
6165 }
6166
6167 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
6168 public virtual IEnumerable this[System.Type childType]
6169 {
6170 get
6171 {
6172 return this.children.Filter(childType);
6173 }
6174 }
6175
6176 /// <summary>
6177 /// Location of the package to add to the bundle. The default value is the Name attribute, if provided.
6178 /// At a minimum, the SourceFile or Name attribute must be specified.
6179 /// </summary>
6180 public string SourceFile
6181 {
6182 get
6183 {
6184 return this.sourceFileField;
6185 }
6186 set
6187 {
6188 this.sourceFileFieldSet = true;
6189 this.sourceFileField = value;
6190 }
6191 }
6192
6193 /// <summary>
6194 /// The destination path and file name for this chain payload. Use this attribute to rename the
6195 /// chain entry point or extract it into a subfolder. The default value is the file name from the
6196 /// SourceFile attribute, if provided. At a minimum, the Name or SourceFile attribute must be specified.
6197 /// The use of '..' directories is not allowed.
6198 /// </summary>
6199 public string Name
6200 {
6201 get
6202 {
6203 return this.nameField;
6204 }
6205 set
6206 {
6207 this.nameFieldSet = true;
6208 this.nameField = value;
6209 }
6210 }
6211
6212 public string DownloadUrl
6213 {
6214 get
6215 {
6216 return this.downloadUrlField;
6217 }
6218 set
6219 {
6220 this.downloadUrlFieldSet = true;
6221 this.downloadUrlField = value;
6222 }
6223 }
6224
6225 /// <summary>
6226 /// Identifier for this package, for ordering and cross-referencing. The default is the Name attribute
6227 /// modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores).
6228 /// </summary>
6229 public string Id
6230 {
6231 get
6232 {
6233 return this.idField;
6234 }
6235 set
6236 {
6237 this.idFieldSet = true;
6238 this.idField = value;
6239 }
6240 }
6241
6242 /// <summary>
6243 /// The identifier of another package that this one should be installed after. By default the After
6244 /// attribute is set to the previous sibling package in the Chain or PackageGroup element. If this
6245 /// attribute is specified ensure that a cycle is not created explicitly or implicitly.
6246 /// </summary>
6247 public string After
6248 {
6249 get
6250 {
6251 return this.afterField;
6252 }
6253 set
6254 {
6255 this.afterFieldSet = true;
6256 this.afterField = value;
6257 }
6258 }
6259
6260 /// <summary>
6261 /// The size this package will take on disk in bytes after it is installed. By default, the binder will
6262 /// calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs)
6263 /// and use the total for the install size of the package.
6264 /// </summary>
6265 public string InstallSize
6266 {
6267 get
6268 {
6269 return this.installSizeField;
6270 }
6271 set
6272 {
6273 this.installSizeFieldSet = true;
6274 this.installSizeField = value;
6275 }
6276 }
6277
6278 /// <summary>
6279 /// 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.
6280 /// </summary>
6281 public string InstallCondition
6282 {
6283 get
6284 {
6285 return this.installConditionField;
6286 }
6287 set
6288 {
6289 this.installConditionFieldSet = true;
6290 this.installConditionField = value;
6291 }
6292 }
6293
6294 /// <summary>
6295 /// Whether to cache the package. The default is "yes".
6296 /// </summary>
6297 public YesNoAlwaysType Cache
6298 {
6299 get
6300 {
6301 return this.cacheField;
6302 }
6303 set
6304 {
6305 this.cacheFieldSet = true;
6306 this.cacheField = value;
6307 }
6308 }
6309
6310 /// <summary>
6311 /// The identifier to use when caching the package.
6312 /// </summary>
6313 public string CacheId
6314 {
6315 get
6316 {
6317 return this.cacheIdField;
6318 }
6319 set
6320 {
6321 this.cacheIdFieldSet = true;
6322 this.cacheIdField = value;
6323 }
6324 }
6325
6326 /// <summary>
6327 /// Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages
6328 /// use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use
6329 /// the DisplayName patch metadata property. Other package types must use this attribute to define a display name in the
6330 /// bootstrapper application data manifest.
6331 /// </summary>
6332 public string DisplayName
6333 {
6334 get
6335 {
6336 return this.displayNameField;
6337 }
6338 set
6339 {
6340 this.displayNameFieldSet = true;
6341 this.displayNameField = value;
6342 }
6343 }
6344
6345 /// <summary>
6346 /// Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages
6347 /// use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use
6348 /// the Description patch metadata property. Other package types must use this attribute to define a description in the
6349 /// bootstrapper application data manifest.
6350 /// </summary>
6351 public string Description
6352 {
6353 get
6354 {
6355 return this.descriptionField;
6356 }
6357 set
6358 {
6359 this.descriptionFieldSet = true;
6360 this.descriptionField = value;
6361 }
6362 }
6363
6364 /// <summary>
6365 /// Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not
6366 /// be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging.
6367 /// </summary>
6368 public string LogPathVariable
6369 {
6370 get
6371 {
6372 return this.logPathVariableField;
6373 }
6374 set
6375 {
6376 this.logPathVariableFieldSet = true;
6377 this.logPathVariableField = value;
6378 }
6379 }
6380
6381 /// <summary>
6382 /// Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause
6383 /// the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which
6384 /// default to no logging.
6385 /// </summary>
6386 public string RollbackLogPathVariable
6387 {
6388 get
6389 {
6390 return this.rollbackLogPathVariableField;
6391 }
6392 set
6393 {
6394 this.rollbackLogPathVariableFieldSet = true;
6395 this.rollbackLogPathVariableField = value;
6396 }
6397 }
6398
6399 /// <summary>
6400 /// Specifies whether the package can be uninstalled. The default is "no".
6401 /// </summary>
6402 public YesNoType Permanent
6403 {
6404 get
6405 {
6406 return this.permanentField;
6407 }
6408 set
6409 {
6410 this.permanentFieldSet = true;
6411 this.permanentField = value;
6412 }
6413 }
6414
6415 /// <summary>
6416 /// Specifies whether the package must succeed for the chain to continue. The default "yes"
6417 /// indicates that if the package fails then the chain will fail and rollback or stop. If
6418 /// "no" is specified then the chain will continue even if the package reports failure.
6419 /// </summary>
6420 public YesNoType Vital
6421 {
6422 get
6423 {
6424 return this.vitalField;
6425 }
6426 set
6427 {
6428 this.vitalFieldSet = true;
6429 this.vitalField = value;
6430 }
6431 }
6432
6433 /// <summary>
6434 /// Whether the package payload should be embedded in a container or left as an external payload.
6435 /// </summary>
6436 public YesNoDefaultType Compressed
6437 {
6438 get
6439 {
6440 return this.compressedField;
6441 }
6442 set
6443 {
6444 this.compressedFieldSet = true;
6445 this.compressedField = value;
6446 }
6447 }
6448
6449 /// <summary>
6450 /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes"
6451 /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the
6452 /// signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures.
6453 /// Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no".
6454 /// </summary>
6455 public YesNoType EnableSignatureVerification
6456 {
6457 get
6458 {
6459 return this.enableSignatureVerificationField;
6460 }
6461 set
6462 {
6463 this.enableSignatureVerificationFieldSet = true;
6464 this.enableSignatureVerificationField = value;
6465 }
6466 }
6467
6468 /// <summary>
6469 /// A condition that determines if the package is present on the target system. This condition can use built-in
6470 /// variables and variables returned by searches. This condition is necessary because Windows doesn't provide a
6471 /// method to detect the presence of an ExePackage. Burn uses this condition to determine how to treat this
6472 /// package during a bundle action; for example, if this condition is false or omitted and the bundle is being
6473 /// installed, Burn will install this package.
6474 /// </summary>
6475 public string DetectCondition
6476 {
6477 get
6478 {
6479 return this.detectConditionField;
6480 }
6481 set
6482 {
6483 this.detectConditionFieldSet = true;
6484 this.detectConditionField = value;
6485 }
6486 }
6487
6488 /// <summary>
6489 /// 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.
6490 /// </summary>
6491 public string InstallCommand
6492 {
6493 get
6494 {
6495 return this.installCommandField;
6496 }
6497 set
6498 {
6499 this.installCommandFieldSet = true;
6500 this.installCommandField = value;
6501 }
6502 }
6503
6504 /// <summary>
6505 /// The command-line arguments to specify to indicate a repair. If the executable package can be repaired but
6506 /// does not require any special command-line arguments to do so then set the attribute's value to blank. To
6507 /// indicate that the package does not support repair, omit this attribute.
6508 /// </summary>
6509 public string RepairCommand
6510 {
6511 get
6512 {
6513 return this.repairCommandField;
6514 }
6515 set
6516 {
6517 this.repairCommandFieldSet = true;
6518 this.repairCommandField = value;
6519 }
6520 }
6521
6522 /// <summary>
6523 /// 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".
6524 /// </summary>
6525 public string UninstallCommand
6526 {
6527 get
6528 {
6529 return this.uninstallCommandField;
6530 }
6531 set
6532 {
6533 this.uninstallCommandFieldSet = true;
6534 this.uninstallCommandField = value;
6535 }
6536 }
6537
6538 /// <summary>
6539 /// Indicates the package must be executed elevated. The default is "no".
6540 /// </summary>
6541 public YesNoDefaultType PerMachine
6542 {
6543 get
6544 {
6545 return this.perMachineField;
6546 }
6547 set
6548 {
6549 this.perMachineFieldSet = true;
6550 this.perMachineField = value;
6551 }
6552 }
6553
6554 /// <summary>
6555 /// Indicates the communication protocol the package supports for extended progress and error reporting. The default is "none".
6556 /// </summary>
6557 public BurnExeProtocolType Protocol
6558 {
6559 get
6560 {
6561 return this.protocolField;
6562 }
6563 set
6564 {
6565 this.protocolFieldSet = true;
6566 this.protocolField = value;
6567 }
6568 }
6569
6570 public virtual ISchemaElement ParentElement
6571 {
6572 get
6573 {
6574 return this.parentElement;
6575 }
6576 set
6577 {
6578 this.parentElement = value;
6579 }
6580 }
6581
6582 public virtual void AddChild(ISchemaElement child)
6583 {
6584 if ((null == child))
6585 {
6586 throw new ArgumentNullException("child");
6587 }
6588 this.children.AddElement(child);
6589 child.ParentElement = this;
6590 }
6591
6592 public virtual void RemoveChild(ISchemaElement child)
6593 {
6594 if ((null == child))
6595 {
6596 throw new ArgumentNullException("child");
6597 }
6598 this.children.RemoveElement(child);
6599 child.ParentElement = null;
6600 }
6601
6602 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
6603 ISchemaElement ICreateChildren.CreateChild(string childName)
6604 {
6605 if (String.IsNullOrEmpty(childName))
6606 {
6607 throw new ArgumentNullException("childName");
6608 }
6609 ISchemaElement childValue = null;
6610 if (("Payload" == childName))
6611 {
6612 childValue = new Payload();
6613 }
6614 if (("PayloadGroupRef" == childName))
6615 {
6616 childValue = new PayloadGroupRef();
6617 }
6618 if (("RemotePayload" == childName))
6619 {
6620 childValue = new RemotePayload();
6621 }
6622 if (("ExitCode" == childName))
6623 {
6624 childValue = new ExitCode();
6625 }
6626 if (("CommandLine" == childName))
6627 {
6628 childValue = new CommandLine();
6629 }
6630 if ((null == childValue))
6631 {
6632 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
6633 }
6634 return childValue;
6635 }
6636
6637 /// <summary>
6638 /// Processes this element and all child elements into an XmlWriter.
6639 /// </summary>
6640 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
6641 public virtual void OutputXml(XmlWriter writer)
6642 {
6643 if ((null == writer))
6644 {
6645 throw new ArgumentNullException("writer");
6646 }
6647 writer.WriteStartElement("ExePackage", "http://wixtoolset.org/schemas/v4/wxs");
6648 if (this.sourceFileFieldSet)
6649 {
6650 writer.WriteAttributeString("SourceFile", this.sourceFileField);
6651 }
6652 if (this.nameFieldSet)
6653 {
6654 writer.WriteAttributeString("Name", this.nameField);
6655 }
6656 if (this.downloadUrlFieldSet)
6657 {
6658 writer.WriteAttributeString("DownloadUrl", this.downloadUrlField);
6659 }
6660 if (this.idFieldSet)
6661 {
6662 writer.WriteAttributeString("Id", this.idField);
6663 }
6664 if (this.afterFieldSet)
6665 {
6666 writer.WriteAttributeString("After", this.afterField);
6667 }
6668 if (this.installSizeFieldSet)
6669 {
6670 writer.WriteAttributeString("InstallSize", this.installSizeField);
6671 }
6672 if (this.installConditionFieldSet)
6673 {
6674 writer.WriteAttributeString("InstallCondition", this.installConditionField);
6675 }
6676 if (this.cacheFieldSet)
6677 {
6678 if ((this.cacheField == YesNoAlwaysType.always))
6679 {
6680 writer.WriteAttributeString("Cache", "always");
6681 }
6682 if ((this.cacheField == YesNoAlwaysType.no))
6683 {
6684 writer.WriteAttributeString("Cache", "no");
6685 }
6686 if ((this.cacheField == YesNoAlwaysType.yes))
6687 {
6688 writer.WriteAttributeString("Cache", "yes");
6689 }
6690 }
6691 if (this.cacheIdFieldSet)
6692 {
6693 writer.WriteAttributeString("CacheId", this.cacheIdField);
6694 }
6695 if (this.displayNameFieldSet)
6696 {
6697 writer.WriteAttributeString("DisplayName", this.displayNameField);
6698 }
6699 if (this.descriptionFieldSet)
6700 {
6701 writer.WriteAttributeString("Description", this.descriptionField);
6702 }
6703 if (this.logPathVariableFieldSet)
6704 {
6705 writer.WriteAttributeString("LogPathVariable", this.logPathVariableField);
6706 }
6707 if (this.rollbackLogPathVariableFieldSet)
6708 {
6709 writer.WriteAttributeString("RollbackLogPathVariable", this.rollbackLogPathVariableField);
6710 }
6711 if (this.permanentFieldSet)
6712 {
6713 if ((this.permanentField == YesNoType.no))
6714 {
6715 writer.WriteAttributeString("Permanent", "no");
6716 }
6717 if ((this.permanentField == YesNoType.yes))
6718 {
6719 writer.WriteAttributeString("Permanent", "yes");
6720 }
6721 }
6722 if (this.vitalFieldSet)
6723 {
6724 if ((this.vitalField == YesNoType.no))
6725 {
6726 writer.WriteAttributeString("Vital", "no");
6727 }
6728 if ((this.vitalField == YesNoType.yes))
6729 {
6730 writer.WriteAttributeString("Vital", "yes");
6731 }
6732 }
6733 if (this.compressedFieldSet)
6734 {
6735 if ((this.compressedField == YesNoDefaultType.@default))
6736 {
6737 writer.WriteAttributeString("Compressed", "default");
6738 }
6739 if ((this.compressedField == YesNoDefaultType.no))
6740 {
6741 writer.WriteAttributeString("Compressed", "no");
6742 }
6743 if ((this.compressedField == YesNoDefaultType.yes))
6744 {
6745 writer.WriteAttributeString("Compressed", "yes");
6746 }
6747 }
6748 if (this.enableSignatureVerificationFieldSet)
6749 {
6750 if ((this.enableSignatureVerificationField == YesNoType.no))
6751 {
6752 writer.WriteAttributeString("EnableSignatureVerification", "no");
6753 }
6754 if ((this.enableSignatureVerificationField == YesNoType.yes))
6755 {
6756 writer.WriteAttributeString("EnableSignatureVerification", "yes");
6757 }
6758 }
6759 if (this.detectConditionFieldSet)
6760 {
6761 writer.WriteAttributeString("DetectCondition", this.detectConditionField);
6762 }
6763 if (this.installCommandFieldSet)
6764 {
6765 writer.WriteAttributeString("InstallCommand", this.installCommandField);
6766 }
6767 if (this.repairCommandFieldSet)
6768 {
6769 writer.WriteAttributeString("RepairCommand", this.repairCommandField);
6770 }
6771 if (this.uninstallCommandFieldSet)
6772 {
6773 writer.WriteAttributeString("UninstallCommand", this.uninstallCommandField);
6774 }
6775 if (this.perMachineFieldSet)
6776 {
6777 if ((this.perMachineField == YesNoDefaultType.@default))
6778 {
6779 writer.WriteAttributeString("PerMachine", "default");
6780 }
6781 if ((this.perMachineField == YesNoDefaultType.no))
6782 {
6783 writer.WriteAttributeString("PerMachine", "no");
6784 }
6785 if ((this.perMachineField == YesNoDefaultType.yes))
6786 {
6787 writer.WriteAttributeString("PerMachine", "yes");
6788 }
6789 }
6790 if (this.protocolFieldSet)
6791 {
6792 if ((this.protocolField == BurnExeProtocolType.none))
6793 {
6794 writer.WriteAttributeString("Protocol", "none");
6795 }
6796 if ((this.protocolField == BurnExeProtocolType.burn))
6797 {
6798 writer.WriteAttributeString("Protocol", "burn");
6799 }
6800 if ((this.protocolField == BurnExeProtocolType.netfx4))
6801 {
6802 writer.WriteAttributeString("Protocol", "netfx4");
6803 }
6804 }
6805 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
6806 {
6807 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
6808 childElement.OutputXml(writer);
6809 }
6810 writer.WriteEndElement();
6811 }
6812
6813 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
6814 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
6815 void ISetAttributes.SetAttribute(string name, string value)
6816 {
6817 if (String.IsNullOrEmpty(name))
6818 {
6819 throw new ArgumentNullException("name");
6820 }
6821 if (("SourceFile" == name))
6822 {
6823 this.sourceFileField = value;
6824 this.sourceFileFieldSet = true;
6825 }
6826 if (("Name" == name))
6827 {
6828 this.nameField = value;
6829 this.nameFieldSet = true;
6830 }
6831 if (("DownloadUrl" == name))
6832 {
6833 this.downloadUrlField = value;
6834 this.downloadUrlFieldSet = true;
6835 }
6836 if (("Id" == name))
6837 {
6838 this.idField = value;
6839 this.idFieldSet = true;
6840 }
6841 if (("After" == name))
6842 {
6843 this.afterField = value;
6844 this.afterFieldSet = true;
6845 }
6846 if (("InstallSize" == name))
6847 {
6848 this.installSizeField = value;
6849 this.installSizeFieldSet = true;
6850 }
6851 if (("InstallCondition" == name))
6852 {
6853 this.installConditionField = value;
6854 this.installConditionFieldSet = true;
6855 }
6856 if (("Cache" == name))
6857 {
6858 this.cacheField = Enums.ParseYesNoAlwaysType(value);
6859 this.cacheFieldSet = true;
6860 }
6861 if (("CacheId" == name))
6862 {
6863 this.cacheIdField = value;
6864 this.cacheIdFieldSet = true;
6865 }
6866 if (("DisplayName" == name))
6867 {
6868 this.displayNameField = value;
6869 this.displayNameFieldSet = true;
6870 }
6871 if (("Description" == name))
6872 {
6873 this.descriptionField = value;
6874 this.descriptionFieldSet = true;
6875 }
6876 if (("LogPathVariable" == name))
6877 {
6878 this.logPathVariableField = value;
6879 this.logPathVariableFieldSet = true;
6880 }
6881 if (("RollbackLogPathVariable" == name))
6882 {
6883 this.rollbackLogPathVariableField = value;
6884 this.rollbackLogPathVariableFieldSet = true;
6885 }
6886 if (("Permanent" == name))
6887 {
6888 this.permanentField = Enums.ParseYesNoType(value);
6889 this.permanentFieldSet = true;
6890 }
6891 if (("Vital" == name))
6892 {
6893 this.vitalField = Enums.ParseYesNoType(value);
6894 this.vitalFieldSet = true;
6895 }
6896 if (("Compressed" == name))
6897 {
6898 this.compressedField = Enums.ParseYesNoDefaultType(value);
6899 this.compressedFieldSet = true;
6900 }
6901 if (("EnableSignatureVerification" == name))
6902 {
6903 this.enableSignatureVerificationField = Enums.ParseYesNoType(value);
6904 this.enableSignatureVerificationFieldSet = true;
6905 }
6906 if (("DetectCondition" == name))
6907 {
6908 this.detectConditionField = value;
6909 this.detectConditionFieldSet = true;
6910 }
6911 if (("InstallCommand" == name))
6912 {
6913 this.installCommandField = value;
6914 this.installCommandFieldSet = true;
6915 }
6916 if (("RepairCommand" == name))
6917 {
6918 this.repairCommandField = value;
6919 this.repairCommandFieldSet = true;
6920 }
6921 if (("UninstallCommand" == name))
6922 {
6923 this.uninstallCommandField = value;
6924 this.uninstallCommandFieldSet = true;
6925 }
6926 if (("PerMachine" == name))
6927 {
6928 this.perMachineField = Enums.ParseYesNoDefaultType(value);
6929 this.perMachineFieldSet = true;
6930 }
6931 if (("Protocol" == name))
6932 {
6933 this.protocolField = Enums.ParseBurnExeProtocolType(value);
6934 this.protocolFieldSet = true;
6935 }
6936 }
6937 }
6938
6939 /// <summary>
6940 /// Describes a rollback boundary in the chain.
6941 /// </summary>
6942 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
6943 public class RollbackBoundary : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
6944 {
6945
6946 private ElementCollection children;
6947
6948 private string idField;
6949
6950 private bool idFieldSet;
6951
6952 private YesNoType vitalField;
6953
6954 private bool vitalFieldSet;
6955
6956 private YesNoType transactionField;
6957
6958 private bool transactionFieldSet;
6959
6960 private ISchemaElement parentElement;
6961
6962 public RollbackBoundary()
6963 {
6964 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
6965 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
6966 this.children = childCollection0;
6967 }
6968
6969 public virtual IEnumerable Children
6970 {
6971 get
6972 {
6973 return this.children;
6974 }
6975 }
6976
6977 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
6978 public virtual IEnumerable this[System.Type childType]
6979 {
6980 get
6981 {
6982 return this.children.Filter(childType);
6983 }
6984 }
6985
6986 /// <summary>
6987 /// Identifier for this rollback boundary, for ordering and cross-referencing. If this attribute is
6988 /// not provided a stable identifier will be generated.
6989 /// </summary>
6990 public string Id
6991 {
6992 get
6993 {
6994 return this.idField;
6995 }
6996 set
6997 {
6998 this.idFieldSet = true;
6999 this.idField = value;
7000 }
7001 }
7002
7003 /// <summary>
7004 /// Specifies whether the rollback boundary aborts the chain. The default "yes" indicates that if
7005 /// the rollback boundary is encountered then the chain will fail and rollback or stop. If "no"
7006 /// is specified then the chain should continue successfuly at the next rollback boundary.
7007 /// </summary>
7008 public YesNoType Vital
7009 {
7010 get
7011 {
7012 return this.vitalField;
7013 }
7014 set
7015 {
7016 this.vitalFieldSet = true;
7017 this.vitalField = value;
7018 }
7019 }
7020
7021 /// <summary>
7022 /// Specifies whether the rollback boundary is wrapped in an MSI transaction. The default is "no"
7023 /// </summary>
7024 public YesNoType Transaction
7025 {
7026 get
7027 {
7028 return this.transactionField;
7029 }
7030 set
7031 {
7032 this.transactionFieldSet = true;
7033 this.transactionField = value;
7034 }
7035 }
7036
7037 public virtual ISchemaElement ParentElement
7038 {
7039 get
7040 {
7041 return this.parentElement;
7042 }
7043 set
7044 {
7045 this.parentElement = value;
7046 }
7047 }
7048
7049 public virtual void AddChild(ISchemaElement child)
7050 {
7051 if ((null == child))
7052 {
7053 throw new ArgumentNullException("child");
7054 }
7055 this.children.AddElement(child);
7056 child.ParentElement = this;
7057 }
7058
7059 public virtual void RemoveChild(ISchemaElement child)
7060 {
7061 if ((null == child))
7062 {
7063 throw new ArgumentNullException("child");
7064 }
7065 this.children.RemoveElement(child);
7066 child.ParentElement = null;
7067 }
7068
7069 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
7070 ISchemaElement ICreateChildren.CreateChild(string childName)
7071 {
7072 if (String.IsNullOrEmpty(childName))
7073 {
7074 throw new ArgumentNullException("childName");
7075 }
7076 ISchemaElement childValue = null;
7077 if ((null == childValue))
7078 {
7079 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
7080 }
7081 return childValue;
7082 }
7083
7084 /// <summary>
7085 /// Processes this element and all child elements into an XmlWriter.
7086 /// </summary>
7087 public virtual void OutputXml(XmlWriter writer)
7088 {
7089 if ((null == writer))
7090 {
7091 throw new ArgumentNullException("writer");
7092 }
7093 writer.WriteStartElement("RollbackBoundary", "http://wixtoolset.org/schemas/v4/wxs");
7094 if (this.idFieldSet)
7095 {
7096 writer.WriteAttributeString("Id", this.idField);
7097 }
7098 if (this.vitalFieldSet)
7099 {
7100 if ((this.vitalField == YesNoType.no))
7101 {
7102 writer.WriteAttributeString("Vital", "no");
7103 }
7104 if ((this.vitalField == YesNoType.yes))
7105 {
7106 writer.WriteAttributeString("Vital", "yes");
7107 }
7108 }
7109 if (this.transactionFieldSet)
7110 {
7111 if ((this.transactionField == YesNoType.no))
7112 {
7113 writer.WriteAttributeString("Transaction", "no");
7114 }
7115 if ((this.transactionField == YesNoType.yes))
7116 {
7117 writer.WriteAttributeString("Transaction", "yes");
7118 }
7119 }
7120 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
7121 {
7122 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
7123 childElement.OutputXml(writer);
7124 }
7125 writer.WriteEndElement();
7126 }
7127
7128 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
7129 void ISetAttributes.SetAttribute(string name, string value)
7130 {
7131 if (String.IsNullOrEmpty(name))
7132 {
7133 throw new ArgumentNullException("name");
7134 }
7135 if (("Id" == name))
7136 {
7137 this.idField = value;
7138 this.idFieldSet = true;
7139 }
7140 if (("Vital" == name))
7141 {
7142 this.vitalField = Enums.ParseYesNoType(value);
7143 this.vitalFieldSet = true;
7144 }
7145 if (("Transaction" == name))
7146 {
7147 this.transactionField = Enums.ParseYesNoType(value);
7148 this.transactionFieldSet = true;
7149 }
7150 }
7151 }
7152
7153 /// <summary>
7154 /// Describes a package group to a bootstrapper.
7155 /// </summary>
7156 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
7157 public class PackageGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
7158 {
7159
7160 private ElementCollection children;
7161
7162 private string idField;
7163
7164 private bool idFieldSet;
7165
7166 private ISchemaElement parentElement;
7167
7168 public PackageGroup()
7169 {
7170 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
7171 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiPackage)));
7172 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MspPackage)));
7173 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsuPackage)));
7174 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ExePackage)));
7175 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RollbackBoundary)));
7176 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageGroupRef)));
7177 this.children = childCollection0;
7178 }
7179
7180 public virtual IEnumerable Children
7181 {
7182 get
7183 {
7184 return this.children;
7185 }
7186 }
7187
7188 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
7189 public virtual IEnumerable this[System.Type childType]
7190 {
7191 get
7192 {
7193 return this.children.Filter(childType);
7194 }
7195 }
7196
7197 /// <summary>
7198 /// Identifier for package group.
7199 /// </summary>
7200 public string Id
7201 {
7202 get
7203 {
7204 return this.idField;
7205 }
7206 set
7207 {
7208 this.idFieldSet = true;
7209 this.idField = value;
7210 }
7211 }
7212
7213 public virtual ISchemaElement ParentElement
7214 {
7215 get
7216 {
7217 return this.parentElement;
7218 }
7219 set
7220 {
7221 this.parentElement = value;
7222 }
7223 }
7224
7225 public virtual void AddChild(ISchemaElement child)
7226 {
7227 if ((null == child))
7228 {
7229 throw new ArgumentNullException("child");
7230 }
7231 this.children.AddElement(child);
7232 child.ParentElement = this;
7233 }
7234
7235 public virtual void RemoveChild(ISchemaElement child)
7236 {
7237 if ((null == child))
7238 {
7239 throw new ArgumentNullException("child");
7240 }
7241 this.children.RemoveElement(child);
7242 child.ParentElement = null;
7243 }
7244
7245 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
7246 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
7247 ISchemaElement ICreateChildren.CreateChild(string childName)
7248 {
7249 if (String.IsNullOrEmpty(childName))
7250 {
7251 throw new ArgumentNullException("childName");
7252 }
7253 ISchemaElement childValue = null;
7254 if (("MsiPackage" == childName))
7255 {
7256 childValue = new MsiPackage();
7257 }
7258 if (("MspPackage" == childName))
7259 {
7260 childValue = new MspPackage();
7261 }
7262 if (("MsuPackage" == childName))
7263 {
7264 childValue = new MsuPackage();
7265 }
7266 if (("ExePackage" == childName))
7267 {
7268 childValue = new ExePackage();
7269 }
7270 if (("RollbackBoundary" == childName))
7271 {
7272 childValue = new RollbackBoundary();
7273 }
7274 if (("PackageGroupRef" == childName))
7275 {
7276 childValue = new PackageGroupRef();
7277 }
7278 if ((null == childValue))
7279 {
7280 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
7281 }
7282 return childValue;
7283 }
7284
7285 /// <summary>
7286 /// Processes this element and all child elements into an XmlWriter.
7287 /// </summary>
7288 public virtual void OutputXml(XmlWriter writer)
7289 {
7290 if ((null == writer))
7291 {
7292 throw new ArgumentNullException("writer");
7293 }
7294 writer.WriteStartElement("PackageGroup", "http://wixtoolset.org/schemas/v4/wxs");
7295 if (this.idFieldSet)
7296 {
7297 writer.WriteAttributeString("Id", this.idField);
7298 }
7299 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
7300 {
7301 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
7302 childElement.OutputXml(writer);
7303 }
7304 writer.WriteEndElement();
7305 }
7306
7307 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
7308 void ISetAttributes.SetAttribute(string name, string value)
7309 {
7310 if (String.IsNullOrEmpty(name))
7311 {
7312 throw new ArgumentNullException("name");
7313 }
7314 if (("Id" == name))
7315 {
7316 this.idField = value;
7317 this.idFieldSet = true;
7318 }
7319 }
7320 }
7321
7322 /// <summary>
7323 /// Create a reference to PackageGroup element that exists inside a Bundle or Fragment element.
7324 /// </summary>
7325 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
7326 public class PackageGroupRef : ISchemaElement, ISetAttributes
7327 {
7328
7329 private string idField;
7330
7331 private bool idFieldSet;
7332
7333 private string afterField;
7334
7335 private bool afterFieldSet;
7336
7337 private ISchemaElement parentElement;
7338
7339 /// <summary>
7340 /// The identifier of the PackageGroup element to reference.
7341 /// </summary>
7342 public string Id
7343 {
7344 get
7345 {
7346 return this.idField;
7347 }
7348 set
7349 {
7350 this.idFieldSet = true;
7351 this.idField = value;
7352 }
7353 }
7354
7355 /// <summary>
7356 /// The identifier of a package that this group should be installed after.
7357 /// </summary>
7358 public string After
7359 {
7360 get
7361 {
7362 return this.afterField;
7363 }
7364 set
7365 {
7366 this.afterFieldSet = true;
7367 this.afterField = value;
7368 }
7369 }
7370
7371 public virtual ISchemaElement ParentElement
7372 {
7373 get
7374 {
7375 return this.parentElement;
7376 }
7377 set
7378 {
7379 this.parentElement = value;
7380 }
7381 }
7382
7383 /// <summary>
7384 /// Processes this element and all child elements into an XmlWriter.
7385 /// </summary>
7386 public virtual void OutputXml(XmlWriter writer)
7387 {
7388 if ((null == writer))
7389 {
7390 throw new ArgumentNullException("writer");
7391 }
7392 writer.WriteStartElement("PackageGroupRef", "http://wixtoolset.org/schemas/v4/wxs");
7393 if (this.idFieldSet)
7394 {
7395 writer.WriteAttributeString("Id", this.idField);
7396 }
7397 if (this.afterFieldSet)
7398 {
7399 writer.WriteAttributeString("After", this.afterField);
7400 }
7401 writer.WriteEndElement();
7402 }
7403
7404 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
7405 void ISetAttributes.SetAttribute(string name, string value)
7406 {
7407 if (String.IsNullOrEmpty(name))
7408 {
7409 throw new ArgumentNullException("name");
7410 }
7411 if (("Id" == name))
7412 {
7413 this.idField = value;
7414 this.idFieldSet = true;
7415 }
7416 if (("After" == name))
7417 {
7418 this.afterField = value;
7419 this.afterFieldSet = true;
7420 }
7421 }
7422 }
7423
7424 /// <summary>
7425 /// Allows an MSI property to be set based on the value of a burn engine expression.
7426 /// </summary>
7427 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
7428 public class MsiProperty : ISchemaElement, ISetAttributes
7429 {
7430
7431 private string nameField;
7432
7433 private bool nameFieldSet;
7434
7435 private string valueField;
7436
7437 private bool valueFieldSet;
7438
7439 private ISchemaElement parentElement;
7440
7441 /// <summary>
7442 /// 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
7443 /// </summary>
7444 public string Name
7445 {
7446 get
7447 {
7448 return this.nameField;
7449 }
7450 set
7451 {
7452 this.nameFieldSet = true;
7453 this.nameField = value;
7454 }
7455 }
7456
7457 /// <summary>
7458 /// 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.
7459 /// </summary>
7460 public string Value
7461 {
7462 get
7463 {
7464 return this.valueField;
7465 }
7466 set
7467 {
7468 this.valueFieldSet = true;
7469 this.valueField = value;
7470 }
7471 }
7472
7473 public virtual ISchemaElement ParentElement
7474 {
7475 get
7476 {
7477 return this.parentElement;
7478 }
7479 set
7480 {
7481 this.parentElement = value;
7482 }
7483 }
7484
7485 /// <summary>
7486 /// Processes this element and all child elements into an XmlWriter.
7487 /// </summary>
7488 public virtual void OutputXml(XmlWriter writer)
7489 {
7490 if ((null == writer))
7491 {
7492 throw new ArgumentNullException("writer");
7493 }
7494 writer.WriteStartElement("MsiProperty", "http://wixtoolset.org/schemas/v4/wxs");
7495 if (this.nameFieldSet)
7496 {
7497 writer.WriteAttributeString("Name", this.nameField);
7498 }
7499 if (this.valueFieldSet)
7500 {
7501 writer.WriteAttributeString("Value", this.valueField);
7502 }
7503 writer.WriteEndElement();
7504 }
7505
7506 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
7507 void ISetAttributes.SetAttribute(string name, string value)
7508 {
7509 if (String.IsNullOrEmpty(name))
7510 {
7511 throw new ArgumentNullException("name");
7512 }
7513 if (("Name" == name))
7514 {
7515 this.nameField = value;
7516 this.nameFieldSet = true;
7517 }
7518 if (("Value" == name))
7519 {
7520 this.valueField = value;
7521 this.valueFieldSet = true;
7522 }
7523 }
7524 }
7525
7526 /// <summary>
7527 /// Specifies a patch included in the same bundle that is installed when the parent MSI package is installed.
7528 /// </summary>
7529 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
7530 public class SlipstreamMsp : ISchemaElement, ISetAttributes
7531 {
7532
7533 private string idField;
7534
7535 private bool idFieldSet;
7536
7537 private ISchemaElement parentElement;
7538
7539 /// <summary>
7540 /// The identifier for a MspPackage in the bundle.
7541 /// </summary>
7542 public string Id
7543 {
7544 get
7545 {
7546 return this.idField;
7547 }
7548 set
7549 {
7550 this.idFieldSet = true;
7551 this.idField = value;
7552 }
7553 }
7554
7555 public virtual ISchemaElement ParentElement
7556 {
7557 get
7558 {
7559 return this.parentElement;
7560 }
7561 set
7562 {
7563 this.parentElement = value;
7564 }
7565 }
7566
7567 /// <summary>
7568 /// Processes this element and all child elements into an XmlWriter.
7569 /// </summary>
7570 public virtual void OutputXml(XmlWriter writer)
7571 {
7572 if ((null == writer))
7573 {
7574 throw new ArgumentNullException("writer");
7575 }
7576 writer.WriteStartElement("SlipstreamMsp", "http://wixtoolset.org/schemas/v4/wxs");
7577 if (this.idFieldSet)
7578 {
7579 writer.WriteAttributeString("Id", this.idField);
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 (("Id" == name))
7592 {
7593 this.idField = value;
7594 this.idFieldSet = true;
7595 }
7596 }
7597 }
7598
7599 /// <summary>
7600 /// Describes a burn engine variable to define.
7601 /// </summary>
7602 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
7603 public class Variable : ISchemaElement, ISetAttributes
7604 {
7605
7606 private YesNoType hiddenField;
7607
7608 private bool hiddenFieldSet;
7609
7610 private string nameField;
7611
7612 private bool nameFieldSet;
7613
7614 private YesNoType persistedField;
7615
7616 private bool persistedFieldSet;
7617
7618 private string valueField;
7619
7620 private bool valueFieldSet;
7621
7622 private TypeType typeField;
7623
7624 private bool typeFieldSet;
7625
7626 private ISchemaElement parentElement;
7627
7628 /// <summary>
7629 /// Whether the value of the variable should be hidden.
7630 /// </summary>
7631 public YesNoType Hidden
7632 {
7633 get
7634 {
7635 return this.hiddenField;
7636 }
7637 set
7638 {
7639 this.hiddenFieldSet = true;
7640 this.hiddenField = value;
7641 }
7642 }
7643
7644 /// <summary>
7645 /// The name for the variable.
7646 /// </summary>
7647 public string Name
7648 {
7649 get
7650 {
7651 return this.nameField;
7652 }
7653 set
7654 {
7655 this.nameFieldSet = true;
7656 this.nameField = value;
7657 }
7658 }
7659
7660 /// <summary>
7661 /// Whether the variable should be persisted.
7662 /// </summary>
7663 public YesNoType Persisted
7664 {
7665 get
7666 {
7667 return this.persistedField;
7668 }
7669 set
7670 {
7671 this.persistedFieldSet = true;
7672 this.persistedField = value;
7673 }
7674 }
7675
7676 /// <summary>
7677 /// Starting value for the variable.
7678 /// </summary>
7679 public string Value
7680 {
7681 get
7682 {
7683 return this.valueField;
7684 }
7685 set
7686 {
7687 this.valueFieldSet = true;
7688 this.valueField = value;
7689 }
7690 }
7691
7692 /// <summary>
7693 /// Type of the variable, inferred from the value if not specified.
7694 /// </summary>
7695 public TypeType Type
7696 {
7697 get
7698 {
7699 return this.typeField;
7700 }
7701 set
7702 {
7703 this.typeFieldSet = true;
7704 this.typeField = value;
7705 }
7706 }
7707
7708 public virtual ISchemaElement ParentElement
7709 {
7710 get
7711 {
7712 return this.parentElement;
7713 }
7714 set
7715 {
7716 this.parentElement = value;
7717 }
7718 }
7719
7720 /// <summary>
7721 /// Parses a TypeType from a string.
7722 /// </summary>
7723 public static TypeType ParseTypeType(string value)
7724 {
7725 TypeType parsedValue;
7726 Variable.TryParseTypeType(value, out parsedValue);
7727 return parsedValue;
7728 }
7729
7730 /// <summary>
7731 /// Tries to parse a TypeType from a string.
7732 /// </summary>
7733 public static bool TryParseTypeType(string value, out TypeType parsedValue)
7734 {
7735 parsedValue = TypeType.NotSet;
7736 if (string.IsNullOrEmpty(value))
7737 {
7738 return false;
7739 }
7740 if (("string" == value))
7741 {
7742 parsedValue = TypeType.@string;
7743 }
7744 else
7745 {
7746 if (("numeric" == value))
7747 {
7748 parsedValue = TypeType.numeric;
7749 }
7750 else
7751 {
7752 if (("version" == value))
7753 {
7754 parsedValue = TypeType.version;
7755 }
7756 else
7757 {
7758 parsedValue = TypeType.IllegalValue;
7759 return false;
7760 }
7761 }
7762 }
7763 return true;
7764 }
7765
7766 /// <summary>
7767 /// Processes this element and all child elements into an XmlWriter.
7768 /// </summary>
7769 public virtual void OutputXml(XmlWriter writer)
7770 {
7771 if ((null == writer))
7772 {
7773 throw new ArgumentNullException("writer");
7774 }
7775 writer.WriteStartElement("Variable", "http://wixtoolset.org/schemas/v4/wxs");
7776 if (this.hiddenFieldSet)
7777 {
7778 if ((this.hiddenField == YesNoType.no))
7779 {
7780 writer.WriteAttributeString("Hidden", "no");
7781 }
7782 if ((this.hiddenField == YesNoType.yes))
7783 {
7784 writer.WriteAttributeString("Hidden", "yes");
7785 }
7786 }
7787 if (this.nameFieldSet)
7788 {
7789 writer.WriteAttributeString("Name", this.nameField);
7790 }
7791 if (this.persistedFieldSet)
7792 {
7793 if ((this.persistedField == YesNoType.no))
7794 {
7795 writer.WriteAttributeString("Persisted", "no");
7796 }
7797 if ((this.persistedField == YesNoType.yes))
7798 {
7799 writer.WriteAttributeString("Persisted", "yes");
7800 }
7801 }
7802 if (this.valueFieldSet)
7803 {
7804 writer.WriteAttributeString("Value", this.valueField);
7805 }
7806 if (this.typeFieldSet)
7807 {
7808 if ((this.typeField == TypeType.@string))
7809 {
7810 writer.WriteAttributeString("Type", "string");
7811 }
7812 if ((this.typeField == TypeType.numeric))
7813 {
7814 writer.WriteAttributeString("Type", "numeric");
7815 }
7816 if ((this.typeField == TypeType.version))
7817 {
7818 writer.WriteAttributeString("Type", "version");
7819 }
7820 }
7821 writer.WriteEndElement();
7822 }
7823
7824 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
7825 void ISetAttributes.SetAttribute(string name, string value)
7826 {
7827 if (String.IsNullOrEmpty(name))
7828 {
7829 throw new ArgumentNullException("name");
7830 }
7831 if (("Hidden" == name))
7832 {
7833 this.hiddenField = Enums.ParseYesNoType(value);
7834 this.hiddenFieldSet = true;
7835 }
7836 if (("Name" == name))
7837 {
7838 this.nameField = value;
7839 this.nameFieldSet = true;
7840 }
7841 if (("Persisted" == name))
7842 {
7843 this.persistedField = Enums.ParseYesNoType(value);
7844 this.persistedFieldSet = true;
7845 }
7846 if (("Value" == name))
7847 {
7848 this.valueField = value;
7849 this.valueFieldSet = true;
7850 }
7851 if (("Type" == name))
7852 {
7853 this.typeField = Variable.ParseTypeType(value);
7854 this.typeFieldSet = true;
7855 }
7856 }
7857
7858 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
7859 public enum TypeType
7860 {
7861
7862 IllegalValue = int.MaxValue,
7863
7864 NotSet = -1,
7865
7866 @string,
7867
7868 numeric,
7869
7870 version,
7871 }
7872 }
7873
7874 /// <summary>
7875 /// Representation of a file that contains one or more files.
7876 /// </summary>
7877 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
7878 public class Container : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
7879 {
7880
7881 private ElementCollection children;
7882
7883 private string downloadUrlField;
7884
7885 private bool downloadUrlFieldSet;
7886
7887 private string idField;
7888
7889 private bool idFieldSet;
7890
7891 private string nameField;
7892
7893 private bool nameFieldSet;
7894
7895 private BurnContainerType typeField;
7896
7897 private bool typeFieldSet;
7898
7899 private ISchemaElement parentElement;
7900
7901 public Container()
7902 {
7903 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
7904 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageGroupRef)));
7905 this.children = childCollection0;
7906 }
7907
7908 public virtual IEnumerable Children
7909 {
7910 get
7911 {
7912 return this.children;
7913 }
7914 }
7915
7916 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
7917 public virtual IEnumerable this[System.Type childType]
7918 {
7919 get
7920 {
7921 return this.children.Filter(childType);
7922 }
7923 }
7924
7925 public string DownloadUrl
7926 {
7927 get
7928 {
7929 return this.downloadUrlField;
7930 }
7931 set
7932 {
7933 this.downloadUrlFieldSet = true;
7934 this.downloadUrlField = value;
7935 }
7936 }
7937
7938 /// <summary>
7939 /// The unique identifier for the container. If this attribute is not specified the Name attribute will be used.
7940 /// </summary>
7941 public string Id
7942 {
7943 get
7944 {
7945 return this.idField;
7946 }
7947 set
7948 {
7949 this.idFieldSet = true;
7950 this.idField = value;
7951 }
7952 }
7953
7954 /// <summary>
7955 /// The file name for this container. A relative path may be provided to place the container in a sub-folder of the bundle.
7956 /// </summary>
7957 public string Name
7958 {
7959 get
7960 {
7961 return this.nameField;
7962 }
7963 set
7964 {
7965 this.nameFieldSet = true;
7966 this.nameField = value;
7967 }
7968 }
7969
7970 /// <summary>
7971 /// Indicates whether the container is "attached" to the bundle executable or placed external to the bundle extecutable as "detached". If
7972 /// this attribute is not specified, the default is to create a detached container.
7973 /// </summary>
7974 public BurnContainerType Type
7975 {
7976 get
7977 {
7978 return this.typeField;
7979 }
7980 set
7981 {
7982 this.typeFieldSet = true;
7983 this.typeField = value;
7984 }
7985 }
7986
7987 public virtual ISchemaElement ParentElement
7988 {
7989 get
7990 {
7991 return this.parentElement;
7992 }
7993 set
7994 {
7995 this.parentElement = value;
7996 }
7997 }
7998
7999 public virtual void AddChild(ISchemaElement child)
8000 {
8001 if ((null == child))
8002 {
8003 throw new ArgumentNullException("child");
8004 }
8005 this.children.AddElement(child);
8006 child.ParentElement = this;
8007 }
8008
8009 public virtual void RemoveChild(ISchemaElement child)
8010 {
8011 if ((null == child))
8012 {
8013 throw new ArgumentNullException("child");
8014 }
8015 this.children.RemoveElement(child);
8016 child.ParentElement = null;
8017 }
8018
8019 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
8020 ISchemaElement ICreateChildren.CreateChild(string childName)
8021 {
8022 if (String.IsNullOrEmpty(childName))
8023 {
8024 throw new ArgumentNullException("childName");
8025 }
8026 ISchemaElement childValue = null;
8027 if (("PackageGroupRef" == childName))
8028 {
8029 childValue = new PackageGroupRef();
8030 }
8031 if ((null == childValue))
8032 {
8033 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
8034 }
8035 return childValue;
8036 }
8037
8038 /// <summary>
8039 /// Processes this element and all child elements into an XmlWriter.
8040 /// </summary>
8041 public virtual void OutputXml(XmlWriter writer)
8042 {
8043 if ((null == writer))
8044 {
8045 throw new ArgumentNullException("writer");
8046 }
8047 writer.WriteStartElement("Container", "http://wixtoolset.org/schemas/v4/wxs");
8048 if (this.downloadUrlFieldSet)
8049 {
8050 writer.WriteAttributeString("DownloadUrl", this.downloadUrlField);
8051 }
8052 if (this.idFieldSet)
8053 {
8054 writer.WriteAttributeString("Id", this.idField);
8055 }
8056 if (this.nameFieldSet)
8057 {
8058 writer.WriteAttributeString("Name", this.nameField);
8059 }
8060 if (this.typeFieldSet)
8061 {
8062 if ((this.typeField == BurnContainerType.attached))
8063 {
8064 writer.WriteAttributeString("Type", "attached");
8065 }
8066 if ((this.typeField == BurnContainerType.detached))
8067 {
8068 writer.WriteAttributeString("Type", "detached");
8069 }
8070 }
8071 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
8072 {
8073 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
8074 childElement.OutputXml(writer);
8075 }
8076 writer.WriteEndElement();
8077 }
8078
8079 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
8080 void ISetAttributes.SetAttribute(string name, string value)
8081 {
8082 if (String.IsNullOrEmpty(name))
8083 {
8084 throw new ArgumentNullException("name");
8085 }
8086 if (("DownloadUrl" == name))
8087 {
8088 this.downloadUrlField = value;
8089 this.downloadUrlFieldSet = true;
8090 }
8091 if (("Id" == name))
8092 {
8093 this.idField = value;
8094 this.idFieldSet = true;
8095 }
8096 if (("Name" == name))
8097 {
8098 this.nameField = value;
8099 this.nameFieldSet = true;
8100 }
8101 if (("Type" == name))
8102 {
8103 this.typeField = Enums.ParseBurnContainerType(value);
8104 this.typeFieldSet = true;
8105 }
8106 }
8107 }
8108
8109 /// <summary>
8110 /// Create a reference to an existing Container element.
8111 /// </summary>
8112 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
8113 public class ContainerRef : ISchemaElement, ISetAttributes
8114 {
8115
8116 private string idField;
8117
8118 private bool idFieldSet;
8119
8120 private ISchemaElement parentElement;
8121
8122 /// <summary>
8123 /// The identifier of Container element to reference.
8124 /// </summary>
8125 public string Id
8126 {
8127 get
8128 {
8129 return this.idField;
8130 }
8131 set
8132 {
8133 this.idFieldSet = true;
8134 this.idField = value;
8135 }
8136 }
8137
8138 public virtual ISchemaElement ParentElement
8139 {
8140 get
8141 {
8142 return this.parentElement;
8143 }
8144 set
8145 {
8146 this.parentElement = value;
8147 }
8148 }
8149
8150 /// <summary>
8151 /// Processes this element and all child elements into an XmlWriter.
8152 /// </summary>
8153 public virtual void OutputXml(XmlWriter writer)
8154 {
8155 if ((null == writer))
8156 {
8157 throw new ArgumentNullException("writer");
8158 }
8159 writer.WriteStartElement("ContainerRef", "http://wixtoolset.org/schemas/v4/wxs");
8160 if (this.idFieldSet)
8161 {
8162 writer.WriteAttributeString("Id", this.idField);
8163 }
8164 writer.WriteEndElement();
8165 }
8166
8167 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
8168 void ISetAttributes.SetAttribute(string name, string value)
8169 {
8170 if (String.IsNullOrEmpty(name))
8171 {
8172 throw new ArgumentNullException("name");
8173 }
8174 if (("Id" == name))
8175 {
8176 this.idField = value;
8177 this.idFieldSet = true;
8178 }
8179 }
8180 }
8181
8182 /// <summary>
8183 /// Describes map of exit code returned from executable package to a bootstrapper behavior.
8184 /// </summary>
8185 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
8186 public class ExitCode : ISchemaElement, ISetAttributes
8187 {
8188
8189 private int valueField;
8190
8191 private bool valueFieldSet;
8192
8193 private BehaviorType behaviorField;
8194
8195 private bool behaviorFieldSet;
8196
8197 private ISchemaElement parentElement;
8198
8199 /// <summary>
8200 /// Exit code returned from executable package. If no value is provided it means all values not explicitly set default to this behavior.
8201 /// </summary>
8202 public int Value
8203 {
8204 get
8205 {
8206 return this.valueField;
8207 }
8208 set
8209 {
8210 this.valueFieldSet = true;
8211 this.valueField = value;
8212 }
8213 }
8214
8215 /// <summary>
8216 /// Choose one of the supported behaviors error codes: success, error, scheduleReboot, forceReboot.
8217 /// </summary>
8218 public BehaviorType Behavior
8219 {
8220 get
8221 {
8222 return this.behaviorField;
8223 }
8224 set
8225 {
8226 this.behaviorFieldSet = true;
8227 this.behaviorField = value;
8228 }
8229 }
8230
8231 public virtual ISchemaElement ParentElement
8232 {
8233 get
8234 {
8235 return this.parentElement;
8236 }
8237 set
8238 {
8239 this.parentElement = value;
8240 }
8241 }
8242
8243 /// <summary>
8244 /// Parses a BehaviorType from a string.
8245 /// </summary>
8246 public static BehaviorType ParseBehaviorType(string value)
8247 {
8248 BehaviorType parsedValue;
8249 ExitCode.TryParseBehaviorType(value, out parsedValue);
8250 return parsedValue;
8251 }
8252
8253 /// <summary>
8254 /// Tries to parse a BehaviorType from a string.
8255 /// </summary>
8256 public static bool TryParseBehaviorType(string value, out BehaviorType parsedValue)
8257 {
8258 parsedValue = BehaviorType.NotSet;
8259 if (string.IsNullOrEmpty(value))
8260 {
8261 return false;
8262 }
8263 if (("success" == value))
8264 {
8265 parsedValue = BehaviorType.success;
8266 }
8267 else
8268 {
8269 if (("error" == value))
8270 {
8271 parsedValue = BehaviorType.error;
8272 }
8273 else
8274 {
8275 if (("scheduleReboot" == value))
8276 {
8277 parsedValue = BehaviorType.scheduleReboot;
8278 }
8279 else
8280 {
8281 if (("forceReboot" == value))
8282 {
8283 parsedValue = BehaviorType.forceReboot;
8284 }
8285 else
8286 {
8287 parsedValue = BehaviorType.IllegalValue;
8288 return false;
8289 }
8290 }
8291 }
8292 }
8293 return true;
8294 }
8295
8296 /// <summary>
8297 /// Processes this element and all child elements into an XmlWriter.
8298 /// </summary>
8299 public virtual void OutputXml(XmlWriter writer)
8300 {
8301 if ((null == writer))
8302 {
8303 throw new ArgumentNullException("writer");
8304 }
8305 writer.WriteStartElement("ExitCode", "http://wixtoolset.org/schemas/v4/wxs");
8306 if (this.valueFieldSet)
8307 {
8308 writer.WriteAttributeString("Value", this.valueField.ToString(CultureInfo.InvariantCulture));
8309 }
8310 if (this.behaviorFieldSet)
8311 {
8312 if ((this.behaviorField == BehaviorType.success))
8313 {
8314 writer.WriteAttributeString("Behavior", "success");
8315 }
8316 if ((this.behaviorField == BehaviorType.error))
8317 {
8318 writer.WriteAttributeString("Behavior", "error");
8319 }
8320 if ((this.behaviorField == BehaviorType.scheduleReboot))
8321 {
8322 writer.WriteAttributeString("Behavior", "scheduleReboot");
8323 }
8324 if ((this.behaviorField == BehaviorType.forceReboot))
8325 {
8326 writer.WriteAttributeString("Behavior", "forceReboot");
8327 }
8328 }
8329 writer.WriteEndElement();
8330 }
8331
8332 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
8333 void ISetAttributes.SetAttribute(string name, string value)
8334 {
8335 if (String.IsNullOrEmpty(name))
8336 {
8337 throw new ArgumentNullException("name");
8338 }
8339 if (("Value" == name))
8340 {
8341 this.valueField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
8342 this.valueFieldSet = true;
8343 }
8344 if (("Behavior" == name))
8345 {
8346 this.behaviorField = ExitCode.ParseBehaviorType(value);
8347 this.behaviorFieldSet = true;
8348 }
8349 }
8350
8351 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
8352 public enum BehaviorType
8353 {
8354
8355 IllegalValue = int.MaxValue,
8356
8357 NotSet = -1,
8358
8359 success,
8360
8361 error,
8362
8363 scheduleReboot,
8364
8365 forceReboot,
8366 }
8367 }
8368
8369 /// <summary>
8370 /// Describes additional, conditional command-line arguments for an ExePackage.
8371 /// </summary>
8372 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
8373 public class CommandLine : ISchemaElement, ISetAttributes
8374 {
8375
8376 private string installArgumentField;
8377
8378 private bool installArgumentFieldSet;
8379
8380 private string uninstallArgumentField;
8381
8382 private bool uninstallArgumentFieldSet;
8383
8384 private string repairArgumentField;
8385
8386 private bool repairArgumentFieldSet;
8387
8388 private string conditionField;
8389
8390 private bool conditionFieldSet;
8391
8392 private ISchemaElement parentElement;
8393
8394 /// <summary>
8395 /// Additional command-line arguments to apply during package installation if Condition is true.
8396 /// </summary>
8397 public string InstallArgument
8398 {
8399 get
8400 {
8401 return this.installArgumentField;
8402 }
8403 set
8404 {
8405 this.installArgumentFieldSet = true;
8406 this.installArgumentField = value;
8407 }
8408 }
8409
8410 /// <summary>
8411 /// Additional command-line arguments to apply during package uninstallation if Condition is true.
8412 /// </summary>
8413 public string UninstallArgument
8414 {
8415 get
8416 {
8417 return this.uninstallArgumentField;
8418 }
8419 set
8420 {
8421 this.uninstallArgumentFieldSet = true;
8422 this.uninstallArgumentField = value;
8423 }
8424 }
8425
8426 /// <summary>
8427 /// Additional command-line arguments to apply during package repair if Condition is true.
8428 /// </summary>
8429 public string RepairArgument
8430 {
8431 get
8432 {
8433 return this.repairArgumentField;
8434 }
8435 set
8436 {
8437 this.repairArgumentFieldSet = true;
8438 this.repairArgumentField = value;
8439 }
8440 }
8441
8442 /// <summary>
8443 /// The condition that controls whether the command-line arguments specified in the
8444 /// InstallArgument, UninstallArgument, or RepairArgument attributes are appended to the
8445 /// command line passed to the ExePackage. Which attribute is used depends on the
8446 /// action being applied to the ExePackage. For example, when the ExePackage is
8447 /// being installed, the InstallArgument attribute value is appended to the command
8448 /// line when the ExePackage is executed.
8449 /// </summary>
8450 public string Condition
8451 {
8452 get
8453 {
8454 return this.conditionField;
8455 }
8456 set
8457 {
8458 this.conditionFieldSet = true;
8459 this.conditionField = value;
8460 }
8461 }
8462
8463 public virtual ISchemaElement ParentElement
8464 {
8465 get
8466 {
8467 return this.parentElement;
8468 }
8469 set
8470 {
8471 this.parentElement = value;
8472 }
8473 }
8474
8475 /// <summary>
8476 /// Processes this element and all child elements into an XmlWriter.
8477 /// </summary>
8478 public virtual void OutputXml(XmlWriter writer)
8479 {
8480 if ((null == writer))
8481 {
8482 throw new ArgumentNullException("writer");
8483 }
8484 writer.WriteStartElement("CommandLine", "http://wixtoolset.org/schemas/v4/wxs");
8485 if (this.installArgumentFieldSet)
8486 {
8487 writer.WriteAttributeString("InstallArgument", this.installArgumentField);
8488 }
8489 if (this.uninstallArgumentFieldSet)
8490 {
8491 writer.WriteAttributeString("UninstallArgument", this.uninstallArgumentField);
8492 }
8493 if (this.repairArgumentFieldSet)
8494 {
8495 writer.WriteAttributeString("RepairArgument", this.repairArgumentField);
8496 }
8497 if (this.conditionFieldSet)
8498 {
8499 writer.WriteAttributeString("Condition", this.conditionField);
8500 }
8501 writer.WriteEndElement();
8502 }
8503
8504 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
8505 void ISetAttributes.SetAttribute(string name, string value)
8506 {
8507 if (String.IsNullOrEmpty(name))
8508 {
8509 throw new ArgumentNullException("name");
8510 }
8511 if (("InstallArgument" == name))
8512 {
8513 this.installArgumentField = value;
8514 this.installArgumentFieldSet = true;
8515 }
8516 if (("UninstallArgument" == name))
8517 {
8518 this.uninstallArgumentField = value;
8519 this.uninstallArgumentFieldSet = true;
8520 }
8521 if (("RepairArgument" == name))
8522 {
8523 this.repairArgumentField = value;
8524 this.repairArgumentFieldSet = true;
8525 }
8526 if (("Condition" == name))
8527 {
8528 this.conditionField = value;
8529 this.conditionFieldSet = true;
8530 }
8531 }
8532 }
8533
8534 /// <summary>
8535 /// Describes a payload to a bootstrapper.
8536 /// </summary>
8537 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
8538 public class Payload : ISchemaElement, ISetAttributes
8539 {
8540
8541 private string idField;
8542
8543 private bool idFieldSet;
8544
8545 private YesNoDefaultType compressedField;
8546
8547 private bool compressedFieldSet;
8548
8549 private string sourceFileField;
8550
8551 private bool sourceFileFieldSet;
8552
8553 private string nameField;
8554
8555 private bool nameFieldSet;
8556
8557 private string downloadUrlField;
8558
8559 private bool downloadUrlFieldSet;
8560
8561 private YesNoType enableSignatureVerificationField;
8562
8563 private bool enableSignatureVerificationFieldSet;
8564
8565 private ISchemaElement parentElement;
8566
8567 /// <summary>
8568 /// The identifier of Payload element.
8569 /// </summary>
8570 public string Id
8571 {
8572 get
8573 {
8574 return this.idField;
8575 }
8576 set
8577 {
8578 this.idFieldSet = true;
8579 this.idField = value;
8580 }
8581 }
8582
8583 /// <summary>
8584 /// Whether the payload should be embedded in a container or left as an external payload.
8585 /// </summary>
8586 public YesNoDefaultType Compressed
8587 {
8588 get
8589 {
8590 return this.compressedField;
8591 }
8592 set
8593 {
8594 this.compressedFieldSet = true;
8595 this.compressedField = value;
8596 }
8597 }
8598
8599 /// <summary>
8600 /// Location of the source file.
8601 /// </summary>
8602 public string SourceFile
8603 {
8604 get
8605 {
8606 return this.sourceFileField;
8607 }
8608 set
8609 {
8610 this.sourceFileFieldSet = true;
8611 this.sourceFileField = value;
8612 }
8613 }
8614
8615 /// <summary>
8616 /// The destination path and file name for this payload. The default is the source file name. The use of '..' directories is not allowed.
8617 /// </summary>
8618 public string Name
8619 {
8620 get
8621 {
8622 return this.nameField;
8623 }
8624 set
8625 {
8626 this.nameFieldSet = true;
8627 this.nameField = value;
8628 }
8629 }
8630
8631 public string DownloadUrl
8632 {
8633 get
8634 {
8635 return this.downloadUrlField;
8636 }
8637 set
8638 {
8639 this.downloadUrlFieldSet = true;
8640 this.downloadUrlField = value;
8641 }
8642 }
8643
8644 /// <summary>
8645 /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes"
8646 /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the
8647 /// signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures.
8648 /// Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no".
8649 /// </summary>
8650 public YesNoType EnableSignatureVerification
8651 {
8652 get
8653 {
8654 return this.enableSignatureVerificationField;
8655 }
8656 set
8657 {
8658 this.enableSignatureVerificationFieldSet = true;
8659 this.enableSignatureVerificationField = value;
8660 }
8661 }
8662
8663 public virtual ISchemaElement ParentElement
8664 {
8665 get
8666 {
8667 return this.parentElement;
8668 }
8669 set
8670 {
8671 this.parentElement = value;
8672 }
8673 }
8674
8675 /// <summary>
8676 /// Processes this element and all child elements into an XmlWriter.
8677 /// </summary>
8678 public virtual void OutputXml(XmlWriter writer)
8679 {
8680 if ((null == writer))
8681 {
8682 throw new ArgumentNullException("writer");
8683 }
8684 writer.WriteStartElement("Payload", "http://wixtoolset.org/schemas/v4/wxs");
8685 if (this.idFieldSet)
8686 {
8687 writer.WriteAttributeString("Id", this.idField);
8688 }
8689 if (this.compressedFieldSet)
8690 {
8691 if ((this.compressedField == YesNoDefaultType.@default))
8692 {
8693 writer.WriteAttributeString("Compressed", "default");
8694 }
8695 if ((this.compressedField == YesNoDefaultType.no))
8696 {
8697 writer.WriteAttributeString("Compressed", "no");
8698 }
8699 if ((this.compressedField == YesNoDefaultType.yes))
8700 {
8701 writer.WriteAttributeString("Compressed", "yes");
8702 }
8703 }
8704 if (this.sourceFileFieldSet)
8705 {
8706 writer.WriteAttributeString("SourceFile", this.sourceFileField);
8707 }
8708 if (this.nameFieldSet)
8709 {
8710 writer.WriteAttributeString("Name", this.nameField);
8711 }
8712 if (this.downloadUrlFieldSet)
8713 {
8714 writer.WriteAttributeString("DownloadUrl", this.downloadUrlField);
8715 }
8716 if (this.enableSignatureVerificationFieldSet)
8717 {
8718 if ((this.enableSignatureVerificationField == YesNoType.no))
8719 {
8720 writer.WriteAttributeString("EnableSignatureVerification", "no");
8721 }
8722 if ((this.enableSignatureVerificationField == YesNoType.yes))
8723 {
8724 writer.WriteAttributeString("EnableSignatureVerification", "yes");
8725 }
8726 }
8727 writer.WriteEndElement();
8728 }
8729
8730 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
8731 void ISetAttributes.SetAttribute(string name, string value)
8732 {
8733 if (String.IsNullOrEmpty(name))
8734 {
8735 throw new ArgumentNullException("name");
8736 }
8737 if (("Id" == name))
8738 {
8739 this.idField = value;
8740 this.idFieldSet = true;
8741 }
8742 if (("Compressed" == name))
8743 {
8744 this.compressedField = Enums.ParseYesNoDefaultType(value);
8745 this.compressedFieldSet = true;
8746 }
8747 if (("SourceFile" == name))
8748 {
8749 this.sourceFileField = value;
8750 this.sourceFileFieldSet = true;
8751 }
8752 if (("Name" == name))
8753 {
8754 this.nameField = value;
8755 this.nameFieldSet = true;
8756 }
8757 if (("DownloadUrl" == name))
8758 {
8759 this.downloadUrlField = value;
8760 this.downloadUrlFieldSet = true;
8761 }
8762 if (("EnableSignatureVerification" == name))
8763 {
8764 this.enableSignatureVerificationField = Enums.ParseYesNoType(value);
8765 this.enableSignatureVerificationFieldSet = true;
8766 }
8767 }
8768 }
8769
8770 /// <summary>
8771 /// Describes a payload group to a bootstrapper. PayloadGroups referenced from within a Bundle are tied to the Bundle.
8772 /// PayloadGroups referenced from a Fragment are tied to the context of whatever references them such as an ExePackage or MsiPackage.
8773 /// It is possible to share a PayloadGroup between multiple Packages and/or a Bundle by creating multiple references to it.
8774 /// </summary>
8775 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
8776 public class PayloadGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
8777 {
8778
8779 private ElementCollection children;
8780
8781 private string idField;
8782
8783 private bool idFieldSet;
8784
8785 private ISchemaElement parentElement;
8786
8787 public PayloadGroup()
8788 {
8789 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
8790 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload)));
8791 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef)));
8792 this.children = childCollection0;
8793 }
8794
8795 public virtual IEnumerable Children
8796 {
8797 get
8798 {
8799 return this.children;
8800 }
8801 }
8802
8803 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
8804 public virtual IEnumerable this[System.Type childType]
8805 {
8806 get
8807 {
8808 return this.children.Filter(childType);
8809 }
8810 }
8811
8812 /// <summary>
8813 /// Identifier for payload group.
8814 /// </summary>
8815 public string Id
8816 {
8817 get
8818 {
8819 return this.idField;
8820 }
8821 set
8822 {
8823 this.idFieldSet = true;
8824 this.idField = value;
8825 }
8826 }
8827
8828 public virtual ISchemaElement ParentElement
8829 {
8830 get
8831 {
8832 return this.parentElement;
8833 }
8834 set
8835 {
8836 this.parentElement = value;
8837 }
8838 }
8839
8840 public virtual void AddChild(ISchemaElement child)
8841 {
8842 if ((null == child))
8843 {
8844 throw new ArgumentNullException("child");
8845 }
8846 this.children.AddElement(child);
8847 child.ParentElement = this;
8848 }
8849
8850 public virtual void RemoveChild(ISchemaElement child)
8851 {
8852 if ((null == child))
8853 {
8854 throw new ArgumentNullException("child");
8855 }
8856 this.children.RemoveElement(child);
8857 child.ParentElement = null;
8858 }
8859
8860 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
8861 ISchemaElement ICreateChildren.CreateChild(string childName)
8862 {
8863 if (String.IsNullOrEmpty(childName))
8864 {
8865 throw new ArgumentNullException("childName");
8866 }
8867 ISchemaElement childValue = null;
8868 if (("Payload" == childName))
8869 {
8870 childValue = new Payload();
8871 }
8872 if (("PayloadGroupRef" == childName))
8873 {
8874 childValue = new PayloadGroupRef();
8875 }
8876 if ((null == childValue))
8877 {
8878 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
8879 }
8880 return childValue;
8881 }
8882
8883 /// <summary>
8884 /// Processes this element and all child elements into an XmlWriter.
8885 /// </summary>
8886 public virtual void OutputXml(XmlWriter writer)
8887 {
8888 if ((null == writer))
8889 {
8890 throw new ArgumentNullException("writer");
8891 }
8892 writer.WriteStartElement("PayloadGroup", "http://wixtoolset.org/schemas/v4/wxs");
8893 if (this.idFieldSet)
8894 {
8895 writer.WriteAttributeString("Id", this.idField);
8896 }
8897 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
8898 {
8899 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
8900 childElement.OutputXml(writer);
8901 }
8902 writer.WriteEndElement();
8903 }
8904
8905 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
8906 void ISetAttributes.SetAttribute(string name, string value)
8907 {
8908 if (String.IsNullOrEmpty(name))
8909 {
8910 throw new ArgumentNullException("name");
8911 }
8912 if (("Id" == name))
8913 {
8914 this.idField = value;
8915 this.idFieldSet = true;
8916 }
8917 }
8918 }
8919
8920 /// <summary>
8921 /// Create a reference to PayloadGroup element that exists inside a Bundle or Fragment element.
8922 /// </summary>
8923 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
8924 public class PayloadGroupRef : ISchemaElement, ISetAttributes
8925 {
8926
8927 private string idField;
8928
8929 private bool idFieldSet;
8930
8931 private ISchemaElement parentElement;
8932
8933 /// <summary>
8934 /// The identifier of the PayloadGroup element to reference.
8935 /// </summary>
8936 public string Id
8937 {
8938 get
8939 {
8940 return this.idField;
8941 }
8942 set
8943 {
8944 this.idFieldSet = true;
8945 this.idField = value;
8946 }
8947 }
8948
8949 public virtual ISchemaElement ParentElement
8950 {
8951 get
8952 {
8953 return this.parentElement;
8954 }
8955 set
8956 {
8957 this.parentElement = value;
8958 }
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("PayloadGroupRef", "http://wixtoolset.org/schemas/v4/wxs");
8971 if (this.idFieldSet)
8972 {
8973 writer.WriteAttributeString("Id", this.idField);
8974 }
8975 writer.WriteEndElement();
8976 }
8977
8978 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
8979 void ISetAttributes.SetAttribute(string name, string value)
8980 {
8981 if (String.IsNullOrEmpty(name))
8982 {
8983 throw new ArgumentNullException("name");
8984 }
8985 if (("Id" == name))
8986 {
8987 this.idField = value;
8988 this.idFieldSet = true;
8989 }
8990 }
8991 }
8992
8993 /// <summary>
8994 /// Describes information about a remote file payload that is not available at the time of building the bundle.
8995 /// The parent must specify DownloadUrl and must not specify SourceFile when using this element.
8996 /// </summary>
8997 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
8998 public class RemotePayload : ISchemaElement, ISetAttributes
8999 {
9000
9001 private string certificatePublicKeyField;
9002
9003 private bool certificatePublicKeyFieldSet;
9004
9005 private string certificateThumbprintField;
9006
9007 private bool certificateThumbprintFieldSet;
9008
9009 private string descriptionField;
9010
9011 private bool descriptionFieldSet;
9012
9013 private string hashField;
9014
9015 private bool hashFieldSet;
9016
9017 private string productNameField;
9018
9019 private bool productNameFieldSet;
9020
9021 private int sizeField;
9022
9023 private bool sizeFieldSet;
9024
9025 private string versionField;
9026
9027 private bool versionFieldSet;
9028
9029 private ISchemaElement parentElement;
9030
9031 /// <summary>
9032 /// Public key of the authenticode certificate used to sign the RemotePayload. Include this attribute if the remote file is signed.
9033 /// </summary>
9034 public string CertificatePublicKey
9035 {
9036 get
9037 {
9038 return this.certificatePublicKeyField;
9039 }
9040 set
9041 {
9042 this.certificatePublicKeyFieldSet = true;
9043 this.certificatePublicKeyField = value;
9044 }
9045 }
9046
9047 /// <summary>
9048 /// Thumbprint of the authenticode certificate used to sign the RemotePayload. Include this attribute if the remote file is signed.
9049 /// </summary>
9050 public string CertificateThumbprint
9051 {
9052 get
9053 {
9054 return this.certificateThumbprintField;
9055 }
9056 set
9057 {
9058 this.certificateThumbprintFieldSet = true;
9059 this.certificateThumbprintField = value;
9060 }
9061 }
9062
9063 /// <summary>
9064 /// Description of the file from version resources.
9065 /// </summary>
9066 public string Description
9067 {
9068 get
9069 {
9070 return this.descriptionField;
9071 }
9072 set
9073 {
9074 this.descriptionFieldSet = true;
9075 this.descriptionField = value;
9076 }
9077 }
9078
9079 /// <summary>
9080 /// SHA-1 hash of the RemotePayload. Include this attribute if the remote file is unsigned or SuppressSignatureVerification is set to Yes.
9081 /// </summary>
9082 public string Hash
9083 {
9084 get
9085 {
9086 return this.hashField;
9087 }
9088 set
9089 {
9090 this.hashFieldSet = true;
9091 this.hashField = value;
9092 }
9093 }
9094
9095 /// <summary>
9096 /// Product name of the file from version resouces.
9097 /// </summary>
9098 public string ProductName
9099 {
9100 get
9101 {
9102 return this.productNameField;
9103 }
9104 set
9105 {
9106 this.productNameFieldSet = true;
9107 this.productNameField = value;
9108 }
9109 }
9110
9111 /// <summary>
9112 /// Size of the remote file in bytes.
9113 /// </summary>
9114 public int Size
9115 {
9116 get
9117 {
9118 return this.sizeField;
9119 }
9120 set
9121 {
9122 this.sizeFieldSet = true;
9123 this.sizeField = value;
9124 }
9125 }
9126
9127 /// <summary>
9128 /// Version of the remote file
9129 /// </summary>
9130 public string Version
9131 {
9132 get
9133 {
9134 return this.versionField;
9135 }
9136 set
9137 {
9138 this.versionFieldSet = true;
9139 this.versionField = value;
9140 }
9141 }
9142
9143 public virtual ISchemaElement ParentElement
9144 {
9145 get
9146 {
9147 return this.parentElement;
9148 }
9149 set
9150 {
9151 this.parentElement = value;
9152 }
9153 }
9154
9155 /// <summary>
9156 /// Processes this element and all child elements into an XmlWriter.
9157 /// </summary>
9158 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
9159 public virtual void OutputXml(XmlWriter writer)
9160 {
9161 if ((null == writer))
9162 {
9163 throw new ArgumentNullException("writer");
9164 }
9165 writer.WriteStartElement("RemotePayload", "http://wixtoolset.org/schemas/v4/wxs");
9166 if (this.certificatePublicKeyFieldSet)
9167 {
9168 writer.WriteAttributeString("CertificatePublicKey", this.certificatePublicKeyField);
9169 }
9170 if (this.certificateThumbprintFieldSet)
9171 {
9172 writer.WriteAttributeString("CertificateThumbprint", this.certificateThumbprintField);
9173 }
9174 if (this.descriptionFieldSet)
9175 {
9176 writer.WriteAttributeString("Description", this.descriptionField);
9177 }
9178 if (this.hashFieldSet)
9179 {
9180 writer.WriteAttributeString("Hash", this.hashField);
9181 }
9182 if (this.productNameFieldSet)
9183 {
9184 writer.WriteAttributeString("ProductName", this.productNameField);
9185 }
9186 if (this.sizeFieldSet)
9187 {
9188 writer.WriteAttributeString("Size", this.sizeField.ToString(CultureInfo.InvariantCulture));
9189 }
9190 if (this.versionFieldSet)
9191 {
9192 writer.WriteAttributeString("Version", this.versionField);
9193 }
9194 writer.WriteEndElement();
9195 }
9196
9197 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
9198 void ISetAttributes.SetAttribute(string name, string value)
9199 {
9200 if (String.IsNullOrEmpty(name))
9201 {
9202 throw new ArgumentNullException("name");
9203 }
9204 if (("CertificatePublicKey" == name))
9205 {
9206 this.certificatePublicKeyField = value;
9207 this.certificatePublicKeyFieldSet = true;
9208 }
9209 if (("CertificateThumbprint" == name))
9210 {
9211 this.certificateThumbprintField = value;
9212 this.certificateThumbprintFieldSet = true;
9213 }
9214 if (("Description" == name))
9215 {
9216 this.descriptionField = value;
9217 this.descriptionFieldSet = true;
9218 }
9219 if (("Hash" == name))
9220 {
9221 this.hashField = value;
9222 this.hashFieldSet = true;
9223 }
9224 if (("ProductName" == name))
9225 {
9226 this.productNameField = value;
9227 this.productNameFieldSet = true;
9228 }
9229 if (("Size" == name))
9230 {
9231 this.sizeField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
9232 this.sizeFieldSet = true;
9233 }
9234 if (("Version" == name))
9235 {
9236 this.versionField = value;
9237 this.versionFieldSet = true;
9238 }
9239 }
9240 }
9241
9242 /// <summary>
9243 /// Create a RelatedBundle element.
9244 /// </summary>
9245 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
9246 public class RelatedBundle : ISchemaElement, ISetAttributes
9247 {
9248
9249 private string idField;
9250
9251 private bool idFieldSet;
9252
9253 private ActionType actionField;
9254
9255 private bool actionFieldSet;
9256
9257 private ISchemaElement parentElement;
9258
9259 /// <summary>
9260 /// The identifier of the RelatedBundle group.
9261 /// </summary>
9262 public string Id
9263 {
9264 get
9265 {
9266 return this.idField;
9267 }
9268 set
9269 {
9270 this.idFieldSet = true;
9271 this.idField = value;
9272 }
9273 }
9274
9275 /// <summary>
9276 /// The action to take on bundles related to this one. Detect is the default.
9277 /// </summary>
9278 public ActionType Action
9279 {
9280 get
9281 {
9282 return this.actionField;
9283 }
9284 set
9285 {
9286 this.actionFieldSet = true;
9287 this.actionField = value;
9288 }
9289 }
9290
9291 public virtual ISchemaElement ParentElement
9292 {
9293 get
9294 {
9295 return this.parentElement;
9296 }
9297 set
9298 {
9299 this.parentElement = value;
9300 }
9301 }
9302
9303 /// <summary>
9304 /// Parses a ActionType from a string.
9305 /// </summary>
9306 public static ActionType ParseActionType(string value)
9307 {
9308 ActionType parsedValue;
9309 RelatedBundle.TryParseActionType(value, out parsedValue);
9310 return parsedValue;
9311 }
9312
9313 /// <summary>
9314 /// Tries to parse a ActionType from a string.
9315 /// </summary>
9316 public static bool TryParseActionType(string value, out ActionType parsedValue)
9317 {
9318 parsedValue = ActionType.NotSet;
9319 if (string.IsNullOrEmpty(value))
9320 {
9321 return false;
9322 }
9323 if (("Detect" == value))
9324 {
9325 parsedValue = ActionType.Detect;
9326 }
9327 else
9328 {
9329 if (("Upgrade" == value))
9330 {
9331 parsedValue = ActionType.Upgrade;
9332 }
9333 else
9334 {
9335 if (("Addon" == value))
9336 {
9337 parsedValue = ActionType.Addon;
9338 }
9339 else
9340 {
9341 if (("Patch" == value))
9342 {
9343 parsedValue = ActionType.Patch;
9344 }
9345 else
9346 {
9347 parsedValue = ActionType.IllegalValue;
9348 return false;
9349 }
9350 }
9351 }
9352 }
9353 return true;
9354 }
9355
9356 /// <summary>
9357 /// Processes this element and all child elements into an XmlWriter.
9358 /// </summary>
9359 public virtual void OutputXml(XmlWriter writer)
9360 {
9361 if ((null == writer))
9362 {
9363 throw new ArgumentNullException("writer");
9364 }
9365 writer.WriteStartElement("RelatedBundle", "http://wixtoolset.org/schemas/v4/wxs");
9366 if (this.idFieldSet)
9367 {
9368 writer.WriteAttributeString("Id", this.idField);
9369 }
9370 if (this.actionFieldSet)
9371 {
9372 if ((this.actionField == ActionType.Detect))
9373 {
9374 writer.WriteAttributeString("Action", "Detect");
9375 }
9376 if ((this.actionField == ActionType.Upgrade))
9377 {
9378 writer.WriteAttributeString("Action", "Upgrade");
9379 }
9380 if ((this.actionField == ActionType.Addon))
9381 {
9382 writer.WriteAttributeString("Action", "Addon");
9383 }
9384 if ((this.actionField == ActionType.Patch))
9385 {
9386 writer.WriteAttributeString("Action", "Patch");
9387 }
9388 }
9389 writer.WriteEndElement();
9390 }
9391
9392 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
9393 void ISetAttributes.SetAttribute(string name, string value)
9394 {
9395 if (String.IsNullOrEmpty(name))
9396 {
9397 throw new ArgumentNullException("name");
9398 }
9399 if (("Id" == name))
9400 {
9401 this.idField = value;
9402 this.idFieldSet = true;
9403 }
9404 if (("Action" == name))
9405 {
9406 this.actionField = RelatedBundle.ParseActionType(value);
9407 this.actionFieldSet = true;
9408 }
9409 }
9410
9411 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
9412 public enum ActionType
9413 {
9414
9415 IllegalValue = int.MaxValue,
9416
9417 NotSet = -1,
9418
9419 Detect,
9420
9421 Upgrade,
9422
9423 Addon,
9424
9425 Patch,
9426 }
9427 }
9428
9429 /// <summary>
9430 /// Defines the update for a Bundle.
9431 /// </summary>
9432 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
9433 public class Update : ISchemaElement, ISetAttributes
9434 {
9435
9436 private string locationField;
9437
9438 private bool locationFieldSet;
9439
9440 private ISchemaElement parentElement;
9441
9442 /// <summary>
9443 /// The absolute path or URL to check for an update bundle. Currently the engine provides this value
9444 /// in the IBootstrapperApplication::OnDetectUpdateBegin() and otherwise ignores the value. In the
9445 /// future the engine will be able to acquire an update bundle from the location and determine if it
9446 /// is newer than the current executing bundle.
9447 /// </summary>
9448 public string Location
9449 {
9450 get
9451 {
9452 return this.locationField;
9453 }
9454 set
9455 {
9456 this.locationFieldSet = true;
9457 this.locationField = value;
9458 }
9459 }
9460
9461 public virtual ISchemaElement ParentElement
9462 {
9463 get
9464 {
9465 return this.parentElement;
9466 }
9467 set
9468 {
9469 this.parentElement = value;
9470 }
9471 }
9472
9473 /// <summary>
9474 /// Processes this element and all child elements into an XmlWriter.
9475 /// </summary>
9476 public virtual void OutputXml(XmlWriter writer)
9477 {
9478 if ((null == writer))
9479 {
9480 throw new ArgumentNullException("writer");
9481 }
9482 writer.WriteStartElement("Update", "http://wixtoolset.org/schemas/v4/wxs");
9483 if (this.locationFieldSet)
9484 {
9485 writer.WriteAttributeString("Location", this.locationField);
9486 }
9487 writer.WriteEndElement();
9488 }
9489
9490 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
9491 void ISetAttributes.SetAttribute(string name, string value)
9492 {
9493 if (String.IsNullOrEmpty(name))
9494 {
9495 throw new ArgumentNullException("name");
9496 }
9497 if (("Location" == name))
9498 {
9499 this.locationField = value;
9500 this.locationFieldSet = true;
9501 }
9502 }
9503 }
9504
9505 /// <summary>
9506 /// The Product element is analogous to the main function in a C program. When linking, only one Product section
9507 /// can be given to the linker to produce a successful result. Using this element creates an msi file.
9508 /// </summary>
9509 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
9510 public class Product : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
9511 {
9512
9513 private ElementCollection children;
9514
9515 private string idField;
9516
9517 private bool idFieldSet;
9518
9519 private string codepageField;
9520
9521 private bool codepageFieldSet;
9522
9523 private string languageField;
9524
9525 private bool languageFieldSet;
9526
9527 private string manufacturerField;
9528
9529 private bool manufacturerFieldSet;
9530
9531 private string nameField;
9532
9533 private bool nameFieldSet;
9534
9535 private string upgradeCodeField;
9536
9537 private bool upgradeCodeFieldSet;
9538
9539 private string versionField;
9540
9541 private bool versionFieldSet;
9542
9543 private ISchemaElement parentElement;
9544
9545 public Product()
9546 {
9547 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
9548 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Package)));
9549 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice);
9550 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(AppId)));
9551 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Binary)));
9552 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ComplianceCheck)));
9553 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Component)));
9554 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroup)));
9555 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Condition)));
9556 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomAction)));
9557 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomActionRef)));
9558 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomTable)));
9559 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Directory)));
9560 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(DirectoryRef)));
9561 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainer)));
9562 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainerRef)));
9563 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EnsureTable)));
9564 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Feature)));
9565 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef)));
9566 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroupRef)));
9567 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Icon)));
9568 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(InstanceTransforms)));
9569 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(MajorUpgrade)));
9570 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Media)));
9571 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(MediaTemplate)));
9572 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PackageCertificates)));
9573 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchCertificates)));
9574 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Property)));
9575 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PropertyRef)));
9576 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SetDirectory)));
9577 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SetProperty)));
9578 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SFPCatalog)));
9579 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath)));
9580 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UI)));
9581 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UIRef)));
9582 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Upgrade)));
9583 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(WixVariable)));
9584 ElementCollection childCollection2 = new ElementCollection(ElementCollection.CollectionType.Sequence);
9585 childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(InstallExecuteSequence)));
9586 childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(InstallUISequence)));
9587 childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdminExecuteSequence)));
9588 childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdminUISequence)));
9589 childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdvertiseExecuteSequence)));
9590 childCollection1.AddCollection(childCollection2);
9591 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
9592 childCollection0.AddCollection(childCollection1);
9593 this.children = childCollection0;
9594 }
9595
9596 public virtual IEnumerable Children
9597 {
9598 get
9599 {
9600 return this.children;
9601 }
9602 }
9603
9604 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
9605 public virtual IEnumerable this[System.Type childType]
9606 {
9607 get
9608 {
9609 return this.children.Filter(childType);
9610 }
9611 }
9612
9613 /// <summary>
9614 /// The product code GUID for the product.
9615 /// </summary>
9616 public string Id
9617 {
9618 get
9619 {
9620 return this.idField;
9621 }
9622 set
9623 {
9624 this.idFieldSet = true;
9625 this.idField = value;
9626 }
9627 }
9628
9629 /// <summary>
9630 /// The code page integer value or web name for the resulting MSI. See remarks for more information.
9631 /// </summary>
9632 public string Codepage
9633 {
9634 get
9635 {
9636 return this.codepageField;
9637 }
9638 set
9639 {
9640 this.codepageFieldSet = true;
9641 this.codepageField = value;
9642 }
9643 }
9644
9645 /// <summary>
9646 /// The decimal language ID (LCID) for the product.
9647 /// </summary>
9648 public string Language
9649 {
9650 get
9651 {
9652 return this.languageField;
9653 }
9654 set
9655 {
9656 this.languageFieldSet = true;
9657 this.languageField = value;
9658 }
9659 }
9660
9661 /// <summary>
9662 /// The manufacturer of the product.
9663 /// </summary>
9664 public string Manufacturer
9665 {
9666 get
9667 {
9668 return this.manufacturerField;
9669 }
9670 set
9671 {
9672 this.manufacturerFieldSet = true;
9673 this.manufacturerField = value;
9674 }
9675 }
9676
9677 /// <summary>
9678 /// The descriptive name of the product.
9679 /// </summary>
9680 public string Name
9681 {
9682 get
9683 {
9684 return this.nameField;
9685 }
9686 set
9687 {
9688 this.nameFieldSet = true;
9689 this.nameField = value;
9690 }
9691 }
9692
9693 /// <summary>
9694 /// The upgrade code GUID for the product.
9695 /// </summary>
9696 public string UpgradeCode
9697 {
9698 get
9699 {
9700 return this.upgradeCodeField;
9701 }
9702 set
9703 {
9704 this.upgradeCodeFieldSet = true;
9705 this.upgradeCodeField = value;
9706 }
9707 }
9708
9709 /// <summary>
9710 /// The product's version string.
9711 /// </summary>
9712 public string Version
9713 {
9714 get
9715 {
9716 return this.versionField;
9717 }
9718 set
9719 {
9720 this.versionFieldSet = true;
9721 this.versionField = value;
9722 }
9723 }
9724
9725 public virtual ISchemaElement ParentElement
9726 {
9727 get
9728 {
9729 return this.parentElement;
9730 }
9731 set
9732 {
9733 this.parentElement = value;
9734 }
9735 }
9736
9737 public virtual void AddChild(ISchemaElement child)
9738 {
9739 if ((null == child))
9740 {
9741 throw new ArgumentNullException("child");
9742 }
9743 this.children.AddElement(child);
9744 child.ParentElement = this;
9745 }
9746
9747 public virtual void RemoveChild(ISchemaElement child)
9748 {
9749 if ((null == child))
9750 {
9751 throw new ArgumentNullException("child");
9752 }
9753 this.children.RemoveElement(child);
9754 child.ParentElement = null;
9755 }
9756
9757 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
9758 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
9759 ISchemaElement ICreateChildren.CreateChild(string childName)
9760 {
9761 if (String.IsNullOrEmpty(childName))
9762 {
9763 throw new ArgumentNullException("childName");
9764 }
9765 ISchemaElement childValue = null;
9766 if (("Package" == childName))
9767 {
9768 childValue = new Package();
9769 }
9770 if (("AppId" == childName))
9771 {
9772 childValue = new AppId();
9773 }
9774 if (("Binary" == childName))
9775 {
9776 childValue = new Binary();
9777 }
9778 if (("ComplianceCheck" == childName))
9779 {
9780 childValue = new ComplianceCheck();
9781 }
9782 if (("Component" == childName))
9783 {
9784 childValue = new Component();
9785 }
9786 if (("ComponentGroup" == childName))
9787 {
9788 childValue = new ComponentGroup();
9789 }
9790 if (("Condition" == childName))
9791 {
9792 childValue = new Condition();
9793 }
9794 if (("CustomAction" == childName))
9795 {
9796 childValue = new CustomAction();
9797 }
9798 if (("CustomActionRef" == childName))
9799 {
9800 childValue = new CustomActionRef();
9801 }
9802 if (("CustomTable" == childName))
9803 {
9804 childValue = new CustomTable();
9805 }
9806 if (("Directory" == childName))
9807 {
9808 childValue = new Directory();
9809 }
9810 if (("DirectoryRef" == childName))
9811 {
9812 childValue = new DirectoryRef();
9813 }
9814 if (("EmbeddedChainer" == childName))
9815 {
9816 childValue = new EmbeddedChainer();
9817 }
9818 if (("EmbeddedChainerRef" == childName))
9819 {
9820 childValue = new EmbeddedChainerRef();
9821 }
9822 if (("EnsureTable" == childName))
9823 {
9824 childValue = new EnsureTable();
9825 }
9826 if (("Feature" == childName))
9827 {
9828 childValue = new Feature();
9829 }
9830 if (("FeatureRef" == childName))
9831 {
9832 childValue = new FeatureRef();
9833 }
9834 if (("FeatureGroupRef" == childName))
9835 {
9836 childValue = new FeatureGroupRef();
9837 }
9838 if (("Icon" == childName))
9839 {
9840 childValue = new Icon();
9841 }
9842 if (("InstanceTransforms" == childName))
9843 {
9844 childValue = new InstanceTransforms();
9845 }
9846 if (("MajorUpgrade" == childName))
9847 {
9848 childValue = new MajorUpgrade();
9849 }
9850 if (("Media" == childName))
9851 {
9852 childValue = new Media();
9853 }
9854 if (("MediaTemplate" == childName))
9855 {
9856 childValue = new MediaTemplate();
9857 }
9858 if (("PackageCertificates" == childName))
9859 {
9860 childValue = new PackageCertificates();
9861 }
9862 if (("PatchCertificates" == childName))
9863 {
9864 childValue = new PatchCertificates();
9865 }
9866 if (("Property" == childName))
9867 {
9868 childValue = new Property();
9869 }
9870 if (("PropertyRef" == childName))
9871 {
9872 childValue = new PropertyRef();
9873 }
9874 if (("SetDirectory" == childName))
9875 {
9876 childValue = new SetDirectory();
9877 }
9878 if (("SetProperty" == childName))
9879 {
9880 childValue = new SetProperty();
9881 }
9882 if (("SFPCatalog" == childName))
9883 {
9884 childValue = new SFPCatalog();
9885 }
9886 if (("SymbolPath" == childName))
9887 {
9888 childValue = new SymbolPath();
9889 }
9890 if (("UI" == childName))
9891 {
9892 childValue = new UI();
9893 }
9894 if (("UIRef" == childName))
9895 {
9896 childValue = new UIRef();
9897 }
9898 if (("Upgrade" == childName))
9899 {
9900 childValue = new Upgrade();
9901 }
9902 if (("WixVariable" == childName))
9903 {
9904 childValue = new WixVariable();
9905 }
9906 if (("InstallExecuteSequence" == childName))
9907 {
9908 childValue = new InstallExecuteSequence();
9909 }
9910 if (("InstallUISequence" == childName))
9911 {
9912 childValue = new InstallUISequence();
9913 }
9914 if (("AdminExecuteSequence" == childName))
9915 {
9916 childValue = new AdminExecuteSequence();
9917 }
9918 if (("AdminUISequence" == childName))
9919 {
9920 childValue = new AdminUISequence();
9921 }
9922 if (("AdvertiseExecuteSequence" == childName))
9923 {
9924 childValue = new AdvertiseExecuteSequence();
9925 }
9926 if ((null == childValue))
9927 {
9928 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
9929 }
9930 return childValue;
9931 }
9932
9933 /// <summary>
9934 /// Processes this element and all child elements into an XmlWriter.
9935 /// </summary>
9936 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
9937 public virtual void OutputXml(XmlWriter writer)
9938 {
9939 if ((null == writer))
9940 {
9941 throw new ArgumentNullException("writer");
9942 }
9943 writer.WriteStartElement("Product", "http://wixtoolset.org/schemas/v4/wxs");
9944 if (this.idFieldSet)
9945 {
9946 writer.WriteAttributeString("Id", this.idField);
9947 }
9948 if (this.codepageFieldSet)
9949 {
9950 writer.WriteAttributeString("Codepage", this.codepageField);
9951 }
9952 if (this.languageFieldSet)
9953 {
9954 writer.WriteAttributeString("Language", this.languageField);
9955 }
9956 if (this.manufacturerFieldSet)
9957 {
9958 writer.WriteAttributeString("Manufacturer", this.manufacturerField);
9959 }
9960 if (this.nameFieldSet)
9961 {
9962 writer.WriteAttributeString("Name", this.nameField);
9963 }
9964 if (this.upgradeCodeFieldSet)
9965 {
9966 writer.WriteAttributeString("UpgradeCode", this.upgradeCodeField);
9967 }
9968 if (this.versionFieldSet)
9969 {
9970 writer.WriteAttributeString("Version", this.versionField);
9971 }
9972 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
9973 {
9974 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
9975 childElement.OutputXml(writer);
9976 }
9977 writer.WriteEndElement();
9978 }
9979
9980 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
9981 void ISetAttributes.SetAttribute(string name, string value)
9982 {
9983 if (String.IsNullOrEmpty(name))
9984 {
9985 throw new ArgumentNullException("name");
9986 }
9987 if (("Id" == name))
9988 {
9989 this.idField = value;
9990 this.idFieldSet = true;
9991 }
9992 if (("Codepage" == name))
9993 {
9994 this.codepageField = value;
9995 this.codepageFieldSet = true;
9996 }
9997 if (("Language" == name))
9998 {
9999 this.languageField = value;
10000 this.languageFieldSet = true;
10001 }
10002 if (("Manufacturer" == name))
10003 {
10004 this.manufacturerField = value;
10005 this.manufacturerFieldSet = true;
10006 }
10007 if (("Name" == name))
10008 {
10009 this.nameField = value;
10010 this.nameFieldSet = true;
10011 }
10012 if (("UpgradeCode" == name))
10013 {
10014 this.upgradeCodeField = value;
10015 this.upgradeCodeFieldSet = true;
10016 }
10017 if (("Version" == name))
10018 {
10019 this.versionField = value;
10020 this.versionFieldSet = true;
10021 }
10022 }
10023 }
10024
10025 /// <summary>
10026 /// The Module element is analogous to the main function in a C program. When linking, only
10027 /// one Module section can be given to the linker to produce a successful result. Using this
10028 /// element creates an msm file.
10029 /// </summary>
10030 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
10031 public class Module : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
10032 {
10033
10034 private ElementCollection children;
10035
10036 private string idField;
10037
10038 private bool idFieldSet;
10039
10040 private string codepageField;
10041
10042 private bool codepageFieldSet;
10043
10044 private string guidField;
10045
10046 private bool guidFieldSet;
10047
10048 private string languageField;
10049
10050 private bool languageFieldSet;
10051
10052 private string versionField;
10053
10054 private bool versionFieldSet;
10055
10056 private ISchemaElement parentElement;
10057
10058 public Module()
10059 {
10060 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
10061 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Package)));
10062 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice);
10063 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(AppId)));
10064 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Binary)));
10065 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Component)));
10066 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroupRef)));
10067 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef)));
10068 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Configuration)));
10069 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomAction)));
10070 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomActionRef)));
10071 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomTable)));
10072 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Dependency)));
10073 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Directory)));
10074 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(DirectoryRef)));
10075 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainer)));
10076 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainerRef)));
10077 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EnsureTable)));
10078 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Exclusion)));
10079 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Icon)));
10080 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(IgnoreModularization)));
10081 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(IgnoreTable)));
10082 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Property)));
10083 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PropertyRef)));
10084 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SetDirectory)));
10085 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SetProperty)));
10086 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SFPCatalog)));
10087 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Substitution)));
10088 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UI)));
10089 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UIRef)));
10090 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(WixVariable)));
10091 ElementCollection childCollection2 = new ElementCollection(ElementCollection.CollectionType.Sequence);
10092 childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(InstallExecuteSequence)));
10093 childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(InstallUISequence)));
10094 childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdminExecuteSequence)));
10095 childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdminUISequence)));
10096 childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdvertiseExecuteSequence)));
10097 childCollection1.AddCollection(childCollection2);
10098 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
10099 childCollection0.AddCollection(childCollection1);
10100 this.children = childCollection0;
10101 }
10102
10103 public virtual IEnumerable Children
10104 {
10105 get
10106 {
10107 return this.children;
10108 }
10109 }
10110
10111 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
10112 public virtual IEnumerable this[System.Type childType]
10113 {
10114 get
10115 {
10116 return this.children.Filter(childType);
10117 }
10118 }
10119
10120 /// <summary>
10121 /// The name of the merge module (not the file name).
10122 /// </summary>
10123 public string Id
10124 {
10125 get
10126 {
10127 return this.idField;
10128 }
10129 set
10130 {
10131 this.idFieldSet = true;
10132 this.idField = value;
10133 }
10134 }
10135
10136 /// <summary>
10137 /// The code page integer value or web name for the resulting MSM. See remarks for more information.
10138 /// </summary>
10139 public string Codepage
10140 {
10141 get
10142 {
10143 return this.codepageField;
10144 }
10145 set
10146 {
10147 this.codepageFieldSet = true;
10148 this.codepageField = value;
10149 }
10150 }
10151
10152 /// <summary>
10153 /// This attribute is deprecated. Use the Package/@Id attribute instead.
10154 /// </summary>
10155 public string Guid
10156 {
10157 get
10158 {
10159 return this.guidField;
10160 }
10161 set
10162 {
10163 this.guidFieldSet = true;
10164 this.guidField = value;
10165 }
10166 }
10167
10168 /// <summary>
10169 /// The decimal language ID (LCID) of the merge module.
10170 /// </summary>
10171 public string Language
10172 {
10173 get
10174 {
10175 return this.languageField;
10176 }
10177 set
10178 {
10179 this.languageFieldSet = true;
10180 this.languageField = value;
10181 }
10182 }
10183
10184 /// <summary>
10185 /// The major and minor versions of the merge module.
10186 /// </summary>
10187 public string Version
10188 {
10189 get
10190 {
10191 return this.versionField;
10192 }
10193 set
10194 {
10195 this.versionFieldSet = true;
10196 this.versionField = value;
10197 }
10198 }
10199
10200 public virtual ISchemaElement ParentElement
10201 {
10202 get
10203 {
10204 return this.parentElement;
10205 }
10206 set
10207 {
10208 this.parentElement = value;
10209 }
10210 }
10211
10212 public virtual void AddChild(ISchemaElement child)
10213 {
10214 if ((null == child))
10215 {
10216 throw new ArgumentNullException("child");
10217 }
10218 this.children.AddElement(child);
10219 child.ParentElement = this;
10220 }
10221
10222 public virtual void RemoveChild(ISchemaElement child)
10223 {
10224 if ((null == child))
10225 {
10226 throw new ArgumentNullException("child");
10227 }
10228 this.children.RemoveElement(child);
10229 child.ParentElement = null;
10230 }
10231
10232 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
10233 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
10234 ISchemaElement ICreateChildren.CreateChild(string childName)
10235 {
10236 if (String.IsNullOrEmpty(childName))
10237 {
10238 throw new ArgumentNullException("childName");
10239 }
10240 ISchemaElement childValue = null;
10241 if (("Package" == childName))
10242 {
10243 childValue = new Package();
10244 }
10245 if (("AppId" == childName))
10246 {
10247 childValue = new AppId();
10248 }
10249 if (("Binary" == childName))
10250 {
10251 childValue = new Binary();
10252 }
10253 if (("Component" == childName))
10254 {
10255 childValue = new Component();
10256 }
10257 if (("ComponentGroupRef" == childName))
10258 {
10259 childValue = new ComponentGroupRef();
10260 }
10261 if (("ComponentRef" == childName))
10262 {
10263 childValue = new ComponentRef();
10264 }
10265 if (("Configuration" == childName))
10266 {
10267 childValue = new Configuration();
10268 }
10269 if (("CustomAction" == childName))
10270 {
10271 childValue = new CustomAction();
10272 }
10273 if (("CustomActionRef" == childName))
10274 {
10275 childValue = new CustomActionRef();
10276 }
10277 if (("CustomTable" == childName))
10278 {
10279 childValue = new CustomTable();
10280 }
10281 if (("Dependency" == childName))
10282 {
10283 childValue = new Dependency();
10284 }
10285 if (("Directory" == childName))
10286 {
10287 childValue = new Directory();
10288 }
10289 if (("DirectoryRef" == childName))
10290 {
10291 childValue = new DirectoryRef();
10292 }
10293 if (("EmbeddedChainer" == childName))
10294 {
10295 childValue = new EmbeddedChainer();
10296 }
10297 if (("EmbeddedChainerRef" == childName))
10298 {
10299 childValue = new EmbeddedChainerRef();
10300 }
10301 if (("EnsureTable" == childName))
10302 {
10303 childValue = new EnsureTable();
10304 }
10305 if (("Exclusion" == childName))
10306 {
10307 childValue = new Exclusion();
10308 }
10309 if (("Icon" == childName))
10310 {
10311 childValue = new Icon();
10312 }
10313 if (("IgnoreModularization" == childName))
10314 {
10315 childValue = new IgnoreModularization();
10316 }
10317 if (("IgnoreTable" == childName))
10318 {
10319 childValue = new IgnoreTable();
10320 }
10321 if (("Property" == childName))
10322 {
10323 childValue = new Property();
10324 }
10325 if (("PropertyRef" == childName))
10326 {
10327 childValue = new PropertyRef();
10328 }
10329 if (("SetDirectory" == childName))
10330 {
10331 childValue = new SetDirectory();
10332 }
10333 if (("SetProperty" == childName))
10334 {
10335 childValue = new SetProperty();
10336 }
10337 if (("SFPCatalog" == childName))
10338 {
10339 childValue = new SFPCatalog();
10340 }
10341 if (("Substitution" == childName))
10342 {
10343 childValue = new Substitution();
10344 }
10345 if (("UI" == childName))
10346 {
10347 childValue = new UI();
10348 }
10349 if (("UIRef" == childName))
10350 {
10351 childValue = new UIRef();
10352 }
10353 if (("WixVariable" == childName))
10354 {
10355 childValue = new WixVariable();
10356 }
10357 if (("InstallExecuteSequence" == childName))
10358 {
10359 childValue = new InstallExecuteSequence();
10360 }
10361 if (("InstallUISequence" == childName))
10362 {
10363 childValue = new InstallUISequence();
10364 }
10365 if (("AdminExecuteSequence" == childName))
10366 {
10367 childValue = new AdminExecuteSequence();
10368 }
10369 if (("AdminUISequence" == childName))
10370 {
10371 childValue = new AdminUISequence();
10372 }
10373 if (("AdvertiseExecuteSequence" == childName))
10374 {
10375 childValue = new AdvertiseExecuteSequence();
10376 }
10377 if ((null == childValue))
10378 {
10379 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
10380 }
10381 return childValue;
10382 }
10383
10384 /// <summary>
10385 /// Processes this element and all child elements into an XmlWriter.
10386 /// </summary>
10387 public virtual void OutputXml(XmlWriter writer)
10388 {
10389 if ((null == writer))
10390 {
10391 throw new ArgumentNullException("writer");
10392 }
10393 writer.WriteStartElement("Module", "http://wixtoolset.org/schemas/v4/wxs");
10394 if (this.idFieldSet)
10395 {
10396 writer.WriteAttributeString("Id", this.idField);
10397 }
10398 if (this.codepageFieldSet)
10399 {
10400 writer.WriteAttributeString("Codepage", this.codepageField);
10401 }
10402 if (this.guidFieldSet)
10403 {
10404 writer.WriteAttributeString("Guid", this.guidField);
10405 }
10406 if (this.languageFieldSet)
10407 {
10408 writer.WriteAttributeString("Language", this.languageField);
10409 }
10410 if (this.versionFieldSet)
10411 {
10412 writer.WriteAttributeString("Version", this.versionField);
10413 }
10414 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
10415 {
10416 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
10417 childElement.OutputXml(writer);
10418 }
10419 writer.WriteEndElement();
10420 }
10421
10422 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
10423 void ISetAttributes.SetAttribute(string name, string value)
10424 {
10425 if (String.IsNullOrEmpty(name))
10426 {
10427 throw new ArgumentNullException("name");
10428 }
10429 if (("Id" == name))
10430 {
10431 this.idField = value;
10432 this.idFieldSet = true;
10433 }
10434 if (("Codepage" == name))
10435 {
10436 this.codepageField = value;
10437 this.codepageFieldSet = true;
10438 }
10439 if (("Guid" == name))
10440 {
10441 this.guidField = value;
10442 this.guidFieldSet = true;
10443 }
10444 if (("Language" == name))
10445 {
10446 this.languageField = value;
10447 this.languageFieldSet = true;
10448 }
10449 if (("Version" == name))
10450 {
10451 this.versionField = value;
10452 this.versionFieldSet = true;
10453 }
10454 }
10455 }
10456
10457 /// <summary>
10458 /// Declares a dependency on another merge module.
10459 /// </summary>
10460 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
10461 public class Dependency : ISchemaElement, ISetAttributes
10462 {
10463
10464 private string requiredIdField;
10465
10466 private bool requiredIdFieldSet;
10467
10468 private int requiredLanguageField;
10469
10470 private bool requiredLanguageFieldSet;
10471
10472 private string requiredVersionField;
10473
10474 private bool requiredVersionFieldSet;
10475
10476 private ISchemaElement parentElement;
10477
10478 /// <summary>
10479 /// Identifier of the merge module required by the merge module.
10480 /// </summary>
10481 public string RequiredId
10482 {
10483 get
10484 {
10485 return this.requiredIdField;
10486 }
10487 set
10488 {
10489 this.requiredIdFieldSet = true;
10490 this.requiredIdField = value;
10491 }
10492 }
10493
10494 /// <summary>
10495 /// Numeric language ID of the merge module in RequiredID.
10496 /// </summary>
10497 public int RequiredLanguage
10498 {
10499 get
10500 {
10501 return this.requiredLanguageField;
10502 }
10503 set
10504 {
10505 this.requiredLanguageFieldSet = true;
10506 this.requiredLanguageField = value;
10507 }
10508 }
10509
10510 /// <summary>
10511 /// Version of the merge module in RequiredID.
10512 /// </summary>
10513 public string RequiredVersion
10514 {
10515 get
10516 {
10517 return this.requiredVersionField;
10518 }
10519 set
10520 {
10521 this.requiredVersionFieldSet = true;
10522 this.requiredVersionField = value;
10523 }
10524 }
10525
10526 public virtual ISchemaElement ParentElement
10527 {
10528 get
10529 {
10530 return this.parentElement;
10531 }
10532 set
10533 {
10534 this.parentElement = value;
10535 }
10536 }
10537
10538 /// <summary>
10539 /// Processes this element and all child elements into an XmlWriter.
10540 /// </summary>
10541 public virtual void OutputXml(XmlWriter writer)
10542 {
10543 if ((null == writer))
10544 {
10545 throw new ArgumentNullException("writer");
10546 }
10547 writer.WriteStartElement("Dependency", "http://wixtoolset.org/schemas/v4/wxs");
10548 if (this.requiredIdFieldSet)
10549 {
10550 writer.WriteAttributeString("RequiredId", this.requiredIdField);
10551 }
10552 if (this.requiredLanguageFieldSet)
10553 {
10554 writer.WriteAttributeString("RequiredLanguage", this.requiredLanguageField.ToString(CultureInfo.InvariantCulture));
10555 }
10556 if (this.requiredVersionFieldSet)
10557 {
10558 writer.WriteAttributeString("RequiredVersion", this.requiredVersionField);
10559 }
10560 writer.WriteEndElement();
10561 }
10562
10563 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
10564 void ISetAttributes.SetAttribute(string name, string value)
10565 {
10566 if (String.IsNullOrEmpty(name))
10567 {
10568 throw new ArgumentNullException("name");
10569 }
10570 if (("RequiredId" == name))
10571 {
10572 this.requiredIdField = value;
10573 this.requiredIdFieldSet = true;
10574 }
10575 if (("RequiredLanguage" == name))
10576 {
10577 this.requiredLanguageField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
10578 this.requiredLanguageFieldSet = true;
10579 }
10580 if (("RequiredVersion" == name))
10581 {
10582 this.requiredVersionField = value;
10583 this.requiredVersionFieldSet = true;
10584 }
10585 }
10586 }
10587
10588 /// <summary>
10589 /// Declares a merge module with which this merge module is incompatible.
10590 /// </summary>
10591 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
10592 public class Exclusion : ISchemaElement, ISetAttributes
10593 {
10594
10595 private string excludedIdField;
10596
10597 private bool excludedIdFieldSet;
10598
10599 private int excludeExceptLanguageField;
10600
10601 private bool excludeExceptLanguageFieldSet;
10602
10603 private int excludeLanguageField;
10604
10605 private bool excludeLanguageFieldSet;
10606
10607 private string excludedMinVersionField;
10608
10609 private bool excludedMinVersionFieldSet;
10610
10611 private string excludedMaxVersionField;
10612
10613 private bool excludedMaxVersionFieldSet;
10614
10615 private ISchemaElement parentElement;
10616
10617 /// <summary>
10618 /// Identifier of the merge module that is incompatible.
10619 /// </summary>
10620 public string ExcludedId
10621 {
10622 get
10623 {
10624 return this.excludedIdField;
10625 }
10626 set
10627 {
10628 this.excludedIdFieldSet = true;
10629 this.excludedIdField = value;
10630 }
10631 }
10632
10633 /// <summary>
10634 /// 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.
10635 /// </summary>
10636 public int ExcludeExceptLanguage
10637 {
10638 get
10639 {
10640 return this.excludeExceptLanguageField;
10641 }
10642 set
10643 {
10644 this.excludeExceptLanguageFieldSet = true;
10645 this.excludeExceptLanguageField = value;
10646 }
10647 }
10648
10649 /// <summary>
10650 /// Numeric language ID of the merge module in ExcludedID. The specified language will be excluded. Only one of ExcludeExceptLanguage and ExcludeLanguage may be specified.
10651 /// </summary>
10652 public int ExcludeLanguage
10653 {
10654 get
10655 {
10656 return this.excludeLanguageField;
10657 }
10658 set
10659 {
10660 this.excludeLanguageFieldSet = true;
10661 this.excludeLanguageField = value;
10662 }
10663 }
10664
10665 /// <summary>
10666 /// 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.
10667 /// </summary>
10668 public string ExcludedMinVersion
10669 {
10670 get
10671 {
10672 return this.excludedMinVersionField;
10673 }
10674 set
10675 {
10676 this.excludedMinVersionFieldSet = true;
10677 this.excludedMinVersionField = value;
10678 }
10679 }
10680
10681 /// <summary>
10682 /// 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.
10683 /// </summary>
10684 public string ExcludedMaxVersion
10685 {
10686 get
10687 {
10688 return this.excludedMaxVersionField;
10689 }
10690 set
10691 {
10692 this.excludedMaxVersionFieldSet = true;
10693 this.excludedMaxVersionField = value;
10694 }
10695 }
10696
10697 public virtual ISchemaElement ParentElement
10698 {
10699 get
10700 {
10701 return this.parentElement;
10702 }
10703 set
10704 {
10705 this.parentElement = value;
10706 }
10707 }
10708
10709 /// <summary>
10710 /// Processes this element and all child elements into an XmlWriter.
10711 /// </summary>
10712 public virtual void OutputXml(XmlWriter writer)
10713 {
10714 if ((null == writer))
10715 {
10716 throw new ArgumentNullException("writer");
10717 }
10718 writer.WriteStartElement("Exclusion", "http://wixtoolset.org/schemas/v4/wxs");
10719 if (this.excludedIdFieldSet)
10720 {
10721 writer.WriteAttributeString("ExcludedId", this.excludedIdField);
10722 }
10723 if (this.excludeExceptLanguageFieldSet)
10724 {
10725 writer.WriteAttributeString("ExcludeExceptLanguage", this.excludeExceptLanguageField.ToString(CultureInfo.InvariantCulture));
10726 }
10727 if (this.excludeLanguageFieldSet)
10728 {
10729 writer.WriteAttributeString("ExcludeLanguage", this.excludeLanguageField.ToString(CultureInfo.InvariantCulture));
10730 }
10731 if (this.excludedMinVersionFieldSet)
10732 {
10733 writer.WriteAttributeString("ExcludedMinVersion", this.excludedMinVersionField);
10734 }
10735 if (this.excludedMaxVersionFieldSet)
10736 {
10737 writer.WriteAttributeString("ExcludedMaxVersion", this.excludedMaxVersionField);
10738 }
10739 writer.WriteEndElement();
10740 }
10741
10742 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
10743 void ISetAttributes.SetAttribute(string name, string value)
10744 {
10745 if (String.IsNullOrEmpty(name))
10746 {
10747 throw new ArgumentNullException("name");
10748 }
10749 if (("ExcludedId" == name))
10750 {
10751 this.excludedIdField = value;
10752 this.excludedIdFieldSet = true;
10753 }
10754 if (("ExcludeExceptLanguage" == name))
10755 {
10756 this.excludeExceptLanguageField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
10757 this.excludeExceptLanguageFieldSet = true;
10758 }
10759 if (("ExcludeLanguage" == name))
10760 {
10761 this.excludeLanguageField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
10762 this.excludeLanguageFieldSet = true;
10763 }
10764 if (("ExcludedMinVersion" == name))
10765 {
10766 this.excludedMinVersionField = value;
10767 this.excludedMinVersionFieldSet = true;
10768 }
10769 if (("ExcludedMaxVersion" == name))
10770 {
10771 this.excludedMaxVersionField = value;
10772 this.excludedMaxVersionFieldSet = true;
10773 }
10774 }
10775 }
10776
10777 /// <summary>
10778 /// Defines the configurable attributes of merge module.
10779 /// </summary>
10780 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
10781 public class Configuration : ISchemaElement, ISetAttributes
10782 {
10783
10784 private string nameField;
10785
10786 private bool nameFieldSet;
10787
10788 private FormatType formatField;
10789
10790 private bool formatFieldSet;
10791
10792 private string typeField;
10793
10794 private bool typeFieldSet;
10795
10796 private string contextDataField;
10797
10798 private bool contextDataFieldSet;
10799
10800 private string defaultValueField;
10801
10802 private bool defaultValueFieldSet;
10803
10804 private YesNoType keyNoOrphanField;
10805
10806 private bool keyNoOrphanFieldSet;
10807
10808 private YesNoType nonNullableField;
10809
10810 private bool nonNullableFieldSet;
10811
10812 private string displayNameField;
10813
10814 private bool displayNameFieldSet;
10815
10816 private string descriptionField;
10817
10818 private bool descriptionFieldSet;
10819
10820 private string helpLocationField;
10821
10822 private bool helpLocationFieldSet;
10823
10824 private string helpKeywordField;
10825
10826 private bool helpKeywordFieldSet;
10827
10828 private ISchemaElement parentElement;
10829
10830 /// <summary>
10831 /// Defines the name of the configurable item.
10832 /// </summary>
10833 public string Name
10834 {
10835 get
10836 {
10837 return this.nameField;
10838 }
10839 set
10840 {
10841 this.nameFieldSet = true;
10842 this.nameField = value;
10843 }
10844 }
10845
10846 /// <summary>
10847 /// Specifies the format of the data being changed.
10848 /// </summary>
10849 public FormatType Format
10850 {
10851 get
10852 {
10853 return this.formatField;
10854 }
10855 set
10856 {
10857 this.formatFieldSet = true;
10858 this.formatField = value;
10859 }
10860 }
10861
10862 /// <summary>
10863 /// Specifies the type of the data being changed.
10864 /// </summary>
10865 public string Type
10866 {
10867 get
10868 {
10869 return this.typeField;
10870 }
10871 set
10872 {
10873 this.typeFieldSet = true;
10874 this.typeField = value;
10875 }
10876 }
10877
10878 /// <summary>
10879 /// Specifies a semantic context for the requested data.
10880 /// </summary>
10881 public string ContextData
10882 {
10883 get
10884 {
10885 return this.contextDataField;
10886 }
10887 set
10888 {
10889 this.contextDataFieldSet = true;
10890 this.contextDataField = value;
10891 }
10892 }
10893
10894 /// <summary>
10895 /// Specifies a default value for the item in this record if the merge tool declines to provide a value.
10896 /// </summary>
10897 public string DefaultValue
10898 {
10899 get
10900 {
10901 return this.defaultValueField;
10902 }
10903 set
10904 {
10905 this.defaultValueFieldSet = true;
10906 this.defaultValueField = value;
10907 }
10908 }
10909
10910 /// <summary>
10911 /// Does not merge rule according to rules in MSI SDK.
10912 /// </summary>
10913 public YesNoType KeyNoOrphan
10914 {
10915 get
10916 {
10917 return this.keyNoOrphanField;
10918 }
10919 set
10920 {
10921 this.keyNoOrphanFieldSet = true;
10922 this.keyNoOrphanField = value;
10923 }
10924 }
10925
10926 /// <summary>
10927 /// If yes, null is not a valid entry.
10928 /// </summary>
10929 public YesNoType NonNullable
10930 {
10931 get
10932 {
10933 return this.nonNullableField;
10934 }
10935 set
10936 {
10937 this.nonNullableFieldSet = true;
10938 this.nonNullableField = value;
10939 }
10940 }
10941
10942 /// <summary>
10943 /// Display name for authoring.
10944 /// </summary>
10945 public string DisplayName
10946 {
10947 get
10948 {
10949 return this.displayNameField;
10950 }
10951 set
10952 {
10953 this.displayNameFieldSet = true;
10954 this.displayNameField = value;
10955 }
10956 }
10957
10958 /// <summary>
10959 /// Description for authoring.
10960 /// </summary>
10961 public string Description
10962 {
10963 get
10964 {
10965 return this.descriptionField;
10966 }
10967 set
10968 {
10969 this.descriptionFieldSet = true;
10970 this.descriptionField = value;
10971 }
10972 }
10973
10974 /// <summary>
10975 /// Location of chm file for authoring.
10976 /// </summary>
10977 public string HelpLocation
10978 {
10979 get
10980 {
10981 return this.helpLocationField;
10982 }
10983 set
10984 {
10985 this.helpLocationFieldSet = true;
10986 this.helpLocationField = value;
10987 }
10988 }
10989
10990 /// <summary>
10991 /// Keyword into chm file for authoring.
10992 /// </summary>
10993 public string HelpKeyword
10994 {
10995 get
10996 {
10997 return this.helpKeywordField;
10998 }
10999 set
11000 {
11001 this.helpKeywordFieldSet = true;
11002 this.helpKeywordField = value;
11003 }
11004 }
11005
11006 public virtual ISchemaElement ParentElement
11007 {
11008 get
11009 {
11010 return this.parentElement;
11011 }
11012 set
11013 {
11014 this.parentElement = value;
11015 }
11016 }
11017
11018 /// <summary>
11019 /// Parses a FormatType from a string.
11020 /// </summary>
11021 public static FormatType ParseFormatType(string value)
11022 {
11023 FormatType parsedValue;
11024 Configuration.TryParseFormatType(value, out parsedValue);
11025 return parsedValue;
11026 }
11027
11028 /// <summary>
11029 /// Tries to parse a FormatType from a string.
11030 /// </summary>
11031 public static bool TryParseFormatType(string value, out FormatType parsedValue)
11032 {
11033 parsedValue = FormatType.NotSet;
11034 if (string.IsNullOrEmpty(value))
11035 {
11036 return false;
11037 }
11038 if (("Text" == value))
11039 {
11040 parsedValue = FormatType.Text;
11041 }
11042 else
11043 {
11044 if (("Key" == value))
11045 {
11046 parsedValue = FormatType.Key;
11047 }
11048 else
11049 {
11050 if (("Integer" == value))
11051 {
11052 parsedValue = FormatType.Integer;
11053 }
11054 else
11055 {
11056 if (("Bitfield" == value))
11057 {
11058 parsedValue = FormatType.Bitfield;
11059 }
11060 else
11061 {
11062 parsedValue = FormatType.IllegalValue;
11063 return false;
11064 }
11065 }
11066 }
11067 }
11068 return true;
11069 }
11070
11071 /// <summary>
11072 /// Processes this element and all child elements into an XmlWriter.
11073 /// </summary>
11074 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
11075 public virtual void OutputXml(XmlWriter writer)
11076 {
11077 if ((null == writer))
11078 {
11079 throw new ArgumentNullException("writer");
11080 }
11081 writer.WriteStartElement("Configuration", "http://wixtoolset.org/schemas/v4/wxs");
11082 if (this.nameFieldSet)
11083 {
11084 writer.WriteAttributeString("Name", this.nameField);
11085 }
11086 if (this.formatFieldSet)
11087 {
11088 if ((this.formatField == FormatType.Text))
11089 {
11090 writer.WriteAttributeString("Format", "Text");
11091 }
11092 if ((this.formatField == FormatType.Key))
11093 {
11094 writer.WriteAttributeString("Format", "Key");
11095 }
11096 if ((this.formatField == FormatType.Integer))
11097 {
11098 writer.WriteAttributeString("Format", "Integer");
11099 }
11100 if ((this.formatField == FormatType.Bitfield))
11101 {
11102 writer.WriteAttributeString("Format", "Bitfield");
11103 }
11104 }
11105 if (this.typeFieldSet)
11106 {
11107 writer.WriteAttributeString("Type", this.typeField);
11108 }
11109 if (this.contextDataFieldSet)
11110 {
11111 writer.WriteAttributeString("ContextData", this.contextDataField);
11112 }
11113 if (this.defaultValueFieldSet)
11114 {
11115 writer.WriteAttributeString("DefaultValue", this.defaultValueField);
11116 }
11117 if (this.keyNoOrphanFieldSet)
11118 {
11119 if ((this.keyNoOrphanField == YesNoType.no))
11120 {
11121 writer.WriteAttributeString("KeyNoOrphan", "no");
11122 }
11123 if ((this.keyNoOrphanField == YesNoType.yes))
11124 {
11125 writer.WriteAttributeString("KeyNoOrphan", "yes");
11126 }
11127 }
11128 if (this.nonNullableFieldSet)
11129 {
11130 if ((this.nonNullableField == YesNoType.no))
11131 {
11132 writer.WriteAttributeString("NonNullable", "no");
11133 }
11134 if ((this.nonNullableField == YesNoType.yes))
11135 {
11136 writer.WriteAttributeString("NonNullable", "yes");
11137 }
11138 }
11139 if (this.displayNameFieldSet)
11140 {
11141 writer.WriteAttributeString("DisplayName", this.displayNameField);
11142 }
11143 if (this.descriptionFieldSet)
11144 {
11145 writer.WriteAttributeString("Description", this.descriptionField);
11146 }
11147 if (this.helpLocationFieldSet)
11148 {
11149 writer.WriteAttributeString("HelpLocation", this.helpLocationField);
11150 }
11151 if (this.helpKeywordFieldSet)
11152 {
11153 writer.WriteAttributeString("HelpKeyword", this.helpKeywordField);
11154 }
11155 writer.WriteEndElement();
11156 }
11157
11158 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
11159 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
11160 void ISetAttributes.SetAttribute(string name, string value)
11161 {
11162 if (String.IsNullOrEmpty(name))
11163 {
11164 throw new ArgumentNullException("name");
11165 }
11166 if (("Name" == name))
11167 {
11168 this.nameField = value;
11169 this.nameFieldSet = true;
11170 }
11171 if (("Format" == name))
11172 {
11173 this.formatField = Configuration.ParseFormatType(value);
11174 this.formatFieldSet = true;
11175 }
11176 if (("Type" == name))
11177 {
11178 this.typeField = value;
11179 this.typeFieldSet = true;
11180 }
11181 if (("ContextData" == name))
11182 {
11183 this.contextDataField = value;
11184 this.contextDataFieldSet = true;
11185 }
11186 if (("DefaultValue" == name))
11187 {
11188 this.defaultValueField = value;
11189 this.defaultValueFieldSet = true;
11190 }
11191 if (("KeyNoOrphan" == name))
11192 {
11193 this.keyNoOrphanField = Enums.ParseYesNoType(value);
11194 this.keyNoOrphanFieldSet = true;
11195 }
11196 if (("NonNullable" == name))
11197 {
11198 this.nonNullableField = Enums.ParseYesNoType(value);
11199 this.nonNullableFieldSet = true;
11200 }
11201 if (("DisplayName" == name))
11202 {
11203 this.displayNameField = value;
11204 this.displayNameFieldSet = true;
11205 }
11206 if (("Description" == name))
11207 {
11208 this.descriptionField = value;
11209 this.descriptionFieldSet = true;
11210 }
11211 if (("HelpLocation" == name))
11212 {
11213 this.helpLocationField = value;
11214 this.helpLocationFieldSet = true;
11215 }
11216 if (("HelpKeyword" == name))
11217 {
11218 this.helpKeywordField = value;
11219 this.helpKeywordFieldSet = true;
11220 }
11221 }
11222
11223 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
11224 public enum FormatType
11225 {
11226
11227 IllegalValue = int.MaxValue,
11228
11229 NotSet = -1,
11230
11231 Text,
11232
11233 Key,
11234
11235 Integer,
11236
11237 Bitfield,
11238 }
11239 }
11240
11241 /// <summary>
11242 /// Specifies the configurable fields of a module database and provides a template for the configuration of each field.
11243 /// </summary>
11244 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
11245 public class Substitution : ISchemaElement, ISetAttributes
11246 {
11247
11248 private string tableField;
11249
11250 private bool tableFieldSet;
11251
11252 private string rowField;
11253
11254 private bool rowFieldSet;
11255
11256 private string columnField;
11257
11258 private bool columnFieldSet;
11259
11260 private string valueField;
11261
11262 private bool valueFieldSet;
11263
11264 private ISchemaElement parentElement;
11265
11266 /// <summary>
11267 /// Specifies the name of the table being modified in the module database.
11268 /// </summary>
11269 public string Table
11270 {
11271 get
11272 {
11273 return this.tableField;
11274 }
11275 set
11276 {
11277 this.tableFieldSet = true;
11278 this.tableField = value;
11279 }
11280 }
11281
11282 /// <summary>
11283 /// Specifies the primary keys of the target row in the table named in the Table column. If multiple keys, separated by semicolons.
11284 /// </summary>
11285 public string Row
11286 {
11287 get
11288 {
11289 return this.rowField;
11290 }
11291 set
11292 {
11293 this.rowFieldSet = true;
11294 this.rowField = value;
11295 }
11296 }
11297
11298 /// <summary>
11299 /// Specifies the target column in the row named in the Row column.
11300 /// </summary>
11301 public string Column
11302 {
11303 get
11304 {
11305 return this.columnField;
11306 }
11307 set
11308 {
11309 this.columnFieldSet = true;
11310 this.columnField = value;
11311 }
11312 }
11313
11314 /// <summary>
11315 /// Provides a formatting template for the data being substituted into the target field specified by Table, Row, and Column.
11316 /// </summary>
11317 public string Value
11318 {
11319 get
11320 {
11321 return this.valueField;
11322 }
11323 set
11324 {
11325 this.valueFieldSet = true;
11326 this.valueField = value;
11327 }
11328 }
11329
11330 public virtual ISchemaElement ParentElement
11331 {
11332 get
11333 {
11334 return this.parentElement;
11335 }
11336 set
11337 {
11338 this.parentElement = value;
11339 }
11340 }
11341
11342 /// <summary>
11343 /// Processes this element and all child elements into an XmlWriter.
11344 /// </summary>
11345 public virtual void OutputXml(XmlWriter writer)
11346 {
11347 if ((null == writer))
11348 {
11349 throw new ArgumentNullException("writer");
11350 }
11351 writer.WriteStartElement("Substitution", "http://wixtoolset.org/schemas/v4/wxs");
11352 if (this.tableFieldSet)
11353 {
11354 writer.WriteAttributeString("Table", this.tableField);
11355 }
11356 if (this.rowFieldSet)
11357 {
11358 writer.WriteAttributeString("Row", this.rowField);
11359 }
11360 if (this.columnFieldSet)
11361 {
11362 writer.WriteAttributeString("Column", this.columnField);
11363 }
11364 if (this.valueFieldSet)
11365 {
11366 writer.WriteAttributeString("Value", this.valueField);
11367 }
11368 writer.WriteEndElement();
11369 }
11370
11371 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
11372 void ISetAttributes.SetAttribute(string name, string value)
11373 {
11374 if (String.IsNullOrEmpty(name))
11375 {
11376 throw new ArgumentNullException("name");
11377 }
11378 if (("Table" == name))
11379 {
11380 this.tableField = value;
11381 this.tableFieldSet = true;
11382 }
11383 if (("Row" == name))
11384 {
11385 this.rowField = value;
11386 this.rowFieldSet = true;
11387 }
11388 if (("Column" == name))
11389 {
11390 this.columnField = value;
11391 this.columnFieldSet = true;
11392 }
11393 if (("Value" == name))
11394 {
11395 this.valueField = value;
11396 this.valueFieldSet = true;
11397 }
11398 }
11399 }
11400
11401 /// <summary>
11402 /// Specifies a table from the merge module that is not merged into an .msi file.
11403 /// If the table already exists in an .msi file, it is not modified by the merge.
11404 /// The specified table can therefore contain data that is unneeded after the merge.
11405 /// To minimize the size of the .msm file, it is recommended that developers remove
11406 /// unused tables from modules intended for redistribution rather than creating
11407 /// IgnoreTable elements for those tables.
11408 /// </summary>
11409 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
11410 public class IgnoreTable : ISchemaElement, ISetAttributes
11411 {
11412
11413 private string idField;
11414
11415 private bool idFieldSet;
11416
11417 private ISchemaElement parentElement;
11418
11419 /// <summary>
11420 /// The name of the table in the merge module that is not to be merged into the .msi file.
11421 /// </summary>
11422 public string Id
11423 {
11424 get
11425 {
11426 return this.idField;
11427 }
11428 set
11429 {
11430 this.idFieldSet = true;
11431 this.idField = value;
11432 }
11433 }
11434
11435 public virtual ISchemaElement ParentElement
11436 {
11437 get
11438 {
11439 return this.parentElement;
11440 }
11441 set
11442 {
11443 this.parentElement = value;
11444 }
11445 }
11446
11447 /// <summary>
11448 /// Processes this element and all child elements into an XmlWriter.
11449 /// </summary>
11450 public virtual void OutputXml(XmlWriter writer)
11451 {
11452 if ((null == writer))
11453 {
11454 throw new ArgumentNullException("writer");
11455 }
11456 writer.WriteStartElement("IgnoreTable", "http://wixtoolset.org/schemas/v4/wxs");
11457 if (this.idFieldSet)
11458 {
11459 writer.WriteAttributeString("Id", this.idField);
11460 }
11461 writer.WriteEndElement();
11462 }
11463
11464 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
11465 void ISetAttributes.SetAttribute(string name, string value)
11466 {
11467 if (String.IsNullOrEmpty(name))
11468 {
11469 throw new ArgumentNullException("name");
11470 }
11471 if (("Id" == name))
11472 {
11473 this.idField = value;
11474 this.idFieldSet = true;
11475 }
11476 }
11477 }
11478
11479 /// <summary>
11480 /// The Fragment element is the building block of creating an installer database in WiX. Once defined,
11481 /// the Fragment becomes an immutable, atomic unit which can either be completely included or excluded
11482 /// from a product. The contents of a Fragment element can be linked into a product by utilizing one
11483 /// of the many *Ref elements. When linking in a Fragment, it will be necessary to link in all of its
11484 /// individual units. For instance, if a given Fragment contains two Component elements, you must link
11485 /// both under features using ComponentRef for each linked Component. Otherwise, you will get a linker
11486 /// warning and have a floating Component that does not appear under any Feature.
11487 /// </summary>
11488 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
11489 public class Fragment : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
11490 {
11491
11492 private ElementCollection children;
11493
11494 private string idField;
11495
11496 private bool idFieldSet;
11497
11498 private ISchemaElement parentElement;
11499
11500 public Fragment()
11501 {
11502 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
11503 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppId)));
11504 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Binary)));
11505 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BootstrapperApplication)));
11506 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BootstrapperApplicationRef)));
11507 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComplianceCheck)));
11508 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component)));
11509 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroup)));
11510 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Condition)));
11511 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Container)));
11512 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CustomAction)));
11513 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CustomActionRef)));
11514 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CustomTable)));
11515 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Directory)));
11516 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectoryRef)));
11517 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainer)));
11518 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainerRef)));
11519 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(EnsureTable)));
11520 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Feature)));
11521 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroup)));
11522 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef)));
11523 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Icon)));
11524 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(IgnoreModularization)));
11525 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Media)));
11526 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MediaTemplate)));
11527 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageGroup)));
11528 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageCertificates)));
11529 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchCertificates)));
11530 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamily)));
11531 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyGroup)));
11532 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroup)));
11533 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Property)));
11534 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PropertyRef)));
11535 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RelatedBundle)));
11536 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SetDirectory)));
11537 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SetProperty)));
11538 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SFPCatalog)));
11539 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UI)));
11540 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UIRef)));
11541 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Upgrade)));
11542 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Variable)));
11543 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WixVariable)));
11544 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Sequence);
11545 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(InstallExecuteSequence)));
11546 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(InstallUISequence)));
11547 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(AdminExecuteSequence)));
11548 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(AdminUISequence)));
11549 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(AdvertiseExecuteSequence)));
11550 childCollection0.AddCollection(childCollection1);
11551 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
11552 this.children = childCollection0;
11553 }
11554
11555 public virtual IEnumerable Children
11556 {
11557 get
11558 {
11559 return this.children;
11560 }
11561 }
11562
11563 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
11564 public virtual IEnumerable this[System.Type childType]
11565 {
11566 get
11567 {
11568 return this.children.Filter(childType);
11569 }
11570 }
11571
11572 /// <summary>
11573 /// Optional identifier for a Fragment. Should only be set by advanced users to tag sections.
11574 /// </summary>
11575 public string Id
11576 {
11577 get
11578 {
11579 return this.idField;
11580 }
11581 set
11582 {
11583 this.idFieldSet = true;
11584 this.idField = value;
11585 }
11586 }
11587
11588 public virtual ISchemaElement ParentElement
11589 {
11590 get
11591 {
11592 return this.parentElement;
11593 }
11594 set
11595 {
11596 this.parentElement = value;
11597 }
11598 }
11599
11600 public virtual void AddChild(ISchemaElement child)
11601 {
11602 if ((null == child))
11603 {
11604 throw new ArgumentNullException("child");
11605 }
11606 this.children.AddElement(child);
11607 child.ParentElement = this;
11608 }
11609
11610 public virtual void RemoveChild(ISchemaElement child)
11611 {
11612 if ((null == child))
11613 {
11614 throw new ArgumentNullException("child");
11615 }
11616 this.children.RemoveElement(child);
11617 child.ParentElement = null;
11618 }
11619
11620 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
11621 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
11622 ISchemaElement ICreateChildren.CreateChild(string childName)
11623 {
11624 if (String.IsNullOrEmpty(childName))
11625 {
11626 throw new ArgumentNullException("childName");
11627 }
11628 ISchemaElement childValue = null;
11629 if (("AppId" == childName))
11630 {
11631 childValue = new AppId();
11632 }
11633 if (("Binary" == childName))
11634 {
11635 childValue = new Binary();
11636 }
11637 if (("BootstrapperApplication" == childName))
11638 {
11639 childValue = new BootstrapperApplication();
11640 }
11641 if (("BootstrapperApplicationRef" == childName))
11642 {
11643 childValue = new BootstrapperApplicationRef();
11644 }
11645 if (("ComplianceCheck" == childName))
11646 {
11647 childValue = new ComplianceCheck();
11648 }
11649 if (("Component" == childName))
11650 {
11651 childValue = new Component();
11652 }
11653 if (("ComponentGroup" == childName))
11654 {
11655 childValue = new ComponentGroup();
11656 }
11657 if (("Condition" == childName))
11658 {
11659 childValue = new Condition();
11660 }
11661 if (("Container" == childName))
11662 {
11663 childValue = new Container();
11664 }
11665 if (("CustomAction" == childName))
11666 {
11667 childValue = new CustomAction();
11668 }
11669 if (("CustomActionRef" == childName))
11670 {
11671 childValue = new CustomActionRef();
11672 }
11673 if (("CustomTable" == childName))
11674 {
11675 childValue = new CustomTable();
11676 }
11677 if (("Directory" == childName))
11678 {
11679 childValue = new Directory();
11680 }
11681 if (("DirectoryRef" == childName))
11682 {
11683 childValue = new DirectoryRef();
11684 }
11685 if (("EmbeddedChainer" == childName))
11686 {
11687 childValue = new EmbeddedChainer();
11688 }
11689 if (("EmbeddedChainerRef" == childName))
11690 {
11691 childValue = new EmbeddedChainerRef();
11692 }
11693 if (("EnsureTable" == childName))
11694 {
11695 childValue = new EnsureTable();
11696 }
11697 if (("Feature" == childName))
11698 {
11699 childValue = new Feature();
11700 }
11701 if (("FeatureGroup" == childName))
11702 {
11703 childValue = new FeatureGroup();
11704 }
11705 if (("FeatureRef" == childName))
11706 {
11707 childValue = new FeatureRef();
11708 }
11709 if (("Icon" == childName))
11710 {
11711 childValue = new Icon();
11712 }
11713 if (("IgnoreModularization" == childName))
11714 {
11715 childValue = new IgnoreModularization();
11716 }
11717 if (("Media" == childName))
11718 {
11719 childValue = new Media();
11720 }
11721 if (("MediaTemplate" == childName))
11722 {
11723 childValue = new MediaTemplate();
11724 }
11725 if (("PackageGroup" == childName))
11726 {
11727 childValue = new PackageGroup();
11728 }
11729 if (("PackageCertificates" == childName))
11730 {
11731 childValue = new PackageCertificates();
11732 }
11733 if (("PatchCertificates" == childName))
11734 {
11735 childValue = new PatchCertificates();
11736 }
11737 if (("PatchFamily" == childName))
11738 {
11739 childValue = new PatchFamily();
11740 }
11741 if (("PatchFamilyGroup" == childName))
11742 {
11743 childValue = new PatchFamilyGroup();
11744 }
11745 if (("PayloadGroup" == childName))
11746 {
11747 childValue = new PayloadGroup();
11748 }
11749 if (("Property" == childName))
11750 {
11751 childValue = new Property();
11752 }
11753 if (("PropertyRef" == childName))
11754 {
11755 childValue = new PropertyRef();
11756 }
11757 if (("RelatedBundle" == childName))
11758 {
11759 childValue = new RelatedBundle();
11760 }
11761 if (("SetDirectory" == childName))
11762 {
11763 childValue = new SetDirectory();
11764 }
11765 if (("SetProperty" == childName))
11766 {
11767 childValue = new SetProperty();
11768 }
11769 if (("SFPCatalog" == childName))
11770 {
11771 childValue = new SFPCatalog();
11772 }
11773 if (("UI" == childName))
11774 {
11775 childValue = new UI();
11776 }
11777 if (("UIRef" == childName))
11778 {
11779 childValue = new UIRef();
11780 }
11781 if (("Upgrade" == childName))
11782 {
11783 childValue = new Upgrade();
11784 }
11785 if (("Variable" == childName))
11786 {
11787 childValue = new Variable();
11788 }
11789 if (("WixVariable" == childName))
11790 {
11791 childValue = new WixVariable();
11792 }
11793 if (("InstallExecuteSequence" == childName))
11794 {
11795 childValue = new InstallExecuteSequence();
11796 }
11797 if (("InstallUISequence" == childName))
11798 {
11799 childValue = new InstallUISequence();
11800 }
11801 if (("AdminExecuteSequence" == childName))
11802 {
11803 childValue = new AdminExecuteSequence();
11804 }
11805 if (("AdminUISequence" == childName))
11806 {
11807 childValue = new AdminUISequence();
11808 }
11809 if (("AdvertiseExecuteSequence" == childName))
11810 {
11811 childValue = new AdvertiseExecuteSequence();
11812 }
11813 if ((null == childValue))
11814 {
11815 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
11816 }
11817 return childValue;
11818 }
11819
11820 /// <summary>
11821 /// Processes this element and all child elements into an XmlWriter.
11822 /// </summary>
11823 public virtual void OutputXml(XmlWriter writer)
11824 {
11825 if ((null == writer))
11826 {
11827 throw new ArgumentNullException("writer");
11828 }
11829 writer.WriteStartElement("Fragment", "http://wixtoolset.org/schemas/v4/wxs");
11830 if (this.idFieldSet)
11831 {
11832 writer.WriteAttributeString("Id", this.idField);
11833 }
11834 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
11835 {
11836 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
11837 childElement.OutputXml(writer);
11838 }
11839 writer.WriteEndElement();
11840 }
11841
11842 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
11843 void ISetAttributes.SetAttribute(string name, string value)
11844 {
11845 if (String.IsNullOrEmpty(name))
11846 {
11847 throw new ArgumentNullException("name");
11848 }
11849 if (("Id" == name))
11850 {
11851 this.idField = value;
11852 this.idFieldSet = true;
11853 }
11854 }
11855 }
11856
11857 /// <summary>
11858 /// The Patch element is analogous to the main function in a C program. When linking, only one Patch section
11859 /// can be given to the linker to produce a successful result. Using this element creates an MSP file.
11860 /// </summary>
11861 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
11862 public class Patch : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
11863 {
11864
11865 private ElementCollection children;
11866
11867 private string idField;
11868
11869 private bool idFieldSet;
11870
11871 private string codepageField;
11872
11873 private bool codepageFieldSet;
11874
11875 private YesNoType allowRemovalField;
11876
11877 private bool allowRemovalFieldSet;
11878
11879 private string classificationField;
11880
11881 private bool classificationFieldSet;
11882
11883 private string clientPatchIdField;
11884
11885 private bool clientPatchIdFieldSet;
11886
11887 private YesNoType apiPatchingSymbolNoImagehlpFlagField;
11888
11889 private bool apiPatchingSymbolNoImagehlpFlagFieldSet;
11890
11891 private YesNoType apiPatchingSymbolNoFailuresFlagField;
11892
11893 private bool apiPatchingSymbolNoFailuresFlagFieldSet;
11894
11895 private YesNoType apiPatchingSymbolUndecoratedTooFlagField;
11896
11897 private bool apiPatchingSymbolUndecoratedTooFlagFieldSet;
11898
11899 private string descriptionField;
11900
11901 private bool descriptionFieldSet;
11902
11903 private string displayNameField;
11904
11905 private bool displayNameFieldSet;
11906
11907 private string commentsField;
11908
11909 private bool commentsFieldSet;
11910
11911 private string manufacturerField;
11912
11913 private bool manufacturerFieldSet;
11914
11915 private YesNoType minorUpdateTargetRTMField;
11916
11917 private bool minorUpdateTargetRTMFieldSet;
11918
11919 private string moreInfoURLField;
11920
11921 private bool moreInfoURLFieldSet;
11922
11923 private YesNoType optimizedInstallModeField;
11924
11925 private bool optimizedInstallModeFieldSet;
11926
11927 private string targetProductNameField;
11928
11929 private bool targetProductNameFieldSet;
11930
11931 private YesNoType optimizePatchSizeForLargeFilesField;
11932
11933 private bool optimizePatchSizeForLargeFilesFieldSet;
11934
11935 private ISchemaElement parentElement;
11936
11937 public Patch()
11938 {
11939 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
11940 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice);
11941 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchInformation)));
11942 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Media)));
11943 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(OptimizeCustomActions)));
11944 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamily)));
11945 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyRef)));
11946 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyGroup)));
11947 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyGroupRef)));
11948 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchProperty)));
11949 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(TargetProductCodes)));
11950 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
11951 childCollection0.AddCollection(childCollection1);
11952 this.children = childCollection0;
11953 }
11954
11955 public virtual IEnumerable Children
11956 {
11957 get
11958 {
11959 return this.children;
11960 }
11961 }
11962
11963 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
11964 public virtual IEnumerable this[System.Type childType]
11965 {
11966 get
11967 {
11968 return this.children.Filter(childType);
11969 }
11970 }
11971
11972 /// <summary>
11973 /// Patch code for this patch.
11974 /// </summary>
11975 public string Id
11976 {
11977 get
11978 {
11979 return this.idField;
11980 }
11981 set
11982 {
11983 this.idFieldSet = true;
11984 this.idField = value;
11985 }
11986 }
11987
11988 /// <summary>
11989 /// The code page integer value or web name for the resulting MSP. See remarks for more information.
11990 /// </summary>
11991 public string Codepage
11992 {
11993 get
11994 {
11995 return this.codepageField;
11996 }
11997 set
11998 {
11999 this.codepageFieldSet = true;
12000 this.codepageField = value;
12001 }
12002 }
12003
12004 /// <summary>
12005 /// Whether this is an uninstallable patch.
12006 /// </summary>
12007 public YesNoType AllowRemoval
12008 {
12009 get
12010 {
12011 return this.allowRemovalField;
12012 }
12013 set
12014 {
12015 this.allowRemovalFieldSet = true;
12016 this.allowRemovalField = value;
12017 }
12018 }
12019
12020 /// <summary>
12021 /// Category of updates. Recommended values are Critical Update, Hotfix, Security Rollup, Security Update, Service Pack, Update, Update Rollup.
12022 /// </summary>
12023 public string Classification
12024 {
12025 get
12026 {
12027 return this.classificationField;
12028 }
12029 set
12030 {
12031 this.classificationFieldSet = true;
12032 this.classificationField = value;
12033 }
12034 }
12035
12036 /// <summary>
12037 /// An easily referenced identity unique to a patch that can be used in product authoring. See remarks for more information.
12038 /// </summary>
12039 public string ClientPatchId
12040 {
12041 get
12042 {
12043 return this.clientPatchIdField;
12044 }
12045 set
12046 {
12047 this.clientPatchIdFieldSet = true;
12048 this.clientPatchIdField = value;
12049 }
12050 }
12051
12052 /// <summary>
12053 /// Flag used when creating a binary file patch. Default is "no". Don't use imagehlp.dll.
12054 /// </summary>
12055 public YesNoType ApiPatchingSymbolNoImagehlpFlag
12056 {
12057 get
12058 {
12059 return this.apiPatchingSymbolNoImagehlpFlagField;
12060 }
12061 set
12062 {
12063 this.apiPatchingSymbolNoImagehlpFlagFieldSet = true;
12064 this.apiPatchingSymbolNoImagehlpFlagField = value;
12065 }
12066 }
12067
12068 /// <summary>
12069 /// Flag used when creating a binary file patch. Default is "no". Don't fail patch due to imagehlp failures.
12070 /// </summary>
12071 public YesNoType ApiPatchingSymbolNoFailuresFlag
12072 {
12073 get
12074 {
12075 return this.apiPatchingSymbolNoFailuresFlagField;
12076 }
12077 set
12078 {
12079 this.apiPatchingSymbolNoFailuresFlagFieldSet = true;
12080 this.apiPatchingSymbolNoFailuresFlagField = value;
12081 }
12082 }
12083
12084 /// <summary>
12085 /// Flag used when creating a binary file patch. Default is "no". After matching decorated symbols, try to match remaining by undecorated names.
12086 /// </summary>
12087 public YesNoType ApiPatchingSymbolUndecoratedTooFlag
12088 {
12089 get
12090 {
12091 return this.apiPatchingSymbolUndecoratedTooFlagField;
12092 }
12093 set
12094 {
12095 this.apiPatchingSymbolUndecoratedTooFlagFieldSet = true;
12096 this.apiPatchingSymbolUndecoratedTooFlagField = value;
12097 }
12098 }
12099
12100 /// <summary>
12101 /// Description of the patch.
12102 /// </summary>
12103 public string Description
12104 {
12105 get
12106 {
12107 return this.descriptionField;
12108 }
12109 set
12110 {
12111 this.descriptionFieldSet = true;
12112 this.descriptionField = value;
12113 }
12114 }
12115
12116 /// <summary>
12117 /// A title for the patch that is suitable for public display. In Add/Remove Programs from XP SP2 on.
12118 /// </summary>
12119 public string DisplayName
12120 {
12121 get
12122 {
12123 return this.displayNameField;
12124 }
12125 set
12126 {
12127 this.displayNameFieldSet = true;
12128 this.displayNameField = value;
12129 }
12130 }
12131
12132 /// <summary>
12133 /// Optional comments for browsing.
12134 /// </summary>
12135 public string Comments
12136 {
12137 get
12138 {
12139 return this.commentsField;
12140 }
12141 set
12142 {
12143 this.commentsFieldSet = true;
12144 this.commentsField = value;
12145 }
12146 }
12147
12148 /// <summary>
12149 /// Vendor releasing the package
12150 /// </summary>
12151 public string Manufacturer
12152 {
12153 get
12154 {
12155 return this.manufacturerField;
12156 }
12157 set
12158 {
12159 this.manufacturerFieldSet = true;
12160 this.manufacturerField = value;
12161 }
12162 }
12163
12164 /// <summary>
12165 /// Indicates that the patch targets the RTM version of the product or the most recent major
12166 /// upgrade patch. Author this optional property in minor update patches that contain sequencing
12167 /// information to indicate that the patch removes all patches up to the RTM version of the
12168 /// product, or up to the most recent major upgrade patch. This property is available beginning
12169 /// with Windows Installer 3.1.
12170 /// </summary>
12171 [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")]
12172 public YesNoType MinorUpdateTargetRTM
12173 {
12174 get
12175 {
12176 return this.minorUpdateTargetRTMField;
12177 }
12178 set
12179 {
12180 this.minorUpdateTargetRTMFieldSet = true;
12181 this.minorUpdateTargetRTMField = value;
12182 }
12183 }
12184
12185 /// <summary>
12186 /// A URL that provides information specific to this patch. In Add/Remove Programs from XP SP2 on.
12187 /// </summary>
12188 [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")]
12189 public string MoreInfoURL
12190 {
12191 get
12192 {
12193 return this.moreInfoURLField;
12194 }
12195 set
12196 {
12197 this.moreInfoURLFieldSet = true;
12198 this.moreInfoURLField = value;
12199 }
12200 }
12201
12202 /// <summary>
12203 /// If this attribute is set to 'yes' in all the patches to be applied in a transaction, the
12204 /// application of the patch is optimized if possible. Available beginning with Windows Installer 3.1.
12205 /// </summary>
12206 public YesNoType OptimizedInstallMode
12207 {
12208 get
12209 {
12210 return this.optimizedInstallModeField;
12211 }
12212 set
12213 {
12214 this.optimizedInstallModeFieldSet = true;
12215 this.optimizedInstallModeField = value;
12216 }
12217 }
12218
12219 /// <summary>
12220 /// Name of the application or target product suite.
12221 /// </summary>
12222 public string TargetProductName
12223 {
12224 get
12225 {
12226 return this.targetProductNameField;
12227 }
12228 set
12229 {
12230 this.targetProductNameFieldSet = true;
12231 this.targetProductNameField = value;
12232 }
12233 }
12234
12235 /// <summary>
12236 /// When this attribute is set, patches for files greater than approximately 4 MB in size may be made smaller.
12237 /// </summary>
12238 public YesNoType OptimizePatchSizeForLargeFiles
12239 {
12240 get
12241 {
12242 return this.optimizePatchSizeForLargeFilesField;
12243 }
12244 set
12245 {
12246 this.optimizePatchSizeForLargeFilesFieldSet = true;
12247 this.optimizePatchSizeForLargeFilesField = value;
12248 }
12249 }
12250
12251 public virtual ISchemaElement ParentElement
12252 {
12253 get
12254 {
12255 return this.parentElement;
12256 }
12257 set
12258 {
12259 this.parentElement = value;
12260 }
12261 }
12262
12263 public virtual void AddChild(ISchemaElement child)
12264 {
12265 if ((null == child))
12266 {
12267 throw new ArgumentNullException("child");
12268 }
12269 this.children.AddElement(child);
12270 child.ParentElement = this;
12271 }
12272
12273 public virtual void RemoveChild(ISchemaElement child)
12274 {
12275 if ((null == child))
12276 {
12277 throw new ArgumentNullException("child");
12278 }
12279 this.children.RemoveElement(child);
12280 child.ParentElement = null;
12281 }
12282
12283 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
12284 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
12285 ISchemaElement ICreateChildren.CreateChild(string childName)
12286 {
12287 if (String.IsNullOrEmpty(childName))
12288 {
12289 throw new ArgumentNullException("childName");
12290 }
12291 ISchemaElement childValue = null;
12292 if (("PatchInformation" == childName))
12293 {
12294 childValue = new PatchInformation();
12295 }
12296 if (("Media" == childName))
12297 {
12298 childValue = new Media();
12299 }
12300 if (("OptimizeCustomActions" == childName))
12301 {
12302 childValue = new OptimizeCustomActions();
12303 }
12304 if (("PatchFamily" == childName))
12305 {
12306 childValue = new PatchFamily();
12307 }
12308 if (("PatchFamilyRef" == childName))
12309 {
12310 childValue = new PatchFamilyRef();
12311 }
12312 if (("PatchFamilyGroup" == childName))
12313 {
12314 childValue = new PatchFamilyGroup();
12315 }
12316 if (("PatchFamilyGroupRef" == childName))
12317 {
12318 childValue = new PatchFamilyGroupRef();
12319 }
12320 if (("PatchProperty" == childName))
12321 {
12322 childValue = new PatchProperty();
12323 }
12324 if (("TargetProductCodes" == childName))
12325 {
12326 childValue = new TargetProductCodes();
12327 }
12328 if ((null == childValue))
12329 {
12330 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
12331 }
12332 return childValue;
12333 }
12334
12335 /// <summary>
12336 /// Processes this element and all child elements into an XmlWriter.
12337 /// </summary>
12338 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
12339 public virtual void OutputXml(XmlWriter writer)
12340 {
12341 if ((null == writer))
12342 {
12343 throw new ArgumentNullException("writer");
12344 }
12345 writer.WriteStartElement("Patch", "http://wixtoolset.org/schemas/v4/wxs");
12346 if (this.idFieldSet)
12347 {
12348 writer.WriteAttributeString("Id", this.idField);
12349 }
12350 if (this.codepageFieldSet)
12351 {
12352 writer.WriteAttributeString("Codepage", this.codepageField);
12353 }
12354 if (this.allowRemovalFieldSet)
12355 {
12356 if ((this.allowRemovalField == YesNoType.no))
12357 {
12358 writer.WriteAttributeString("AllowRemoval", "no");
12359 }
12360 if ((this.allowRemovalField == YesNoType.yes))
12361 {
12362 writer.WriteAttributeString("AllowRemoval", "yes");
12363 }
12364 }
12365 if (this.classificationFieldSet)
12366 {
12367 writer.WriteAttributeString("Classification", this.classificationField);
12368 }
12369 if (this.clientPatchIdFieldSet)
12370 {
12371 writer.WriteAttributeString("ClientPatchId", this.clientPatchIdField);
12372 }
12373 if (this.apiPatchingSymbolNoImagehlpFlagFieldSet)
12374 {
12375 if ((this.apiPatchingSymbolNoImagehlpFlagField == YesNoType.no))
12376 {
12377 writer.WriteAttributeString("ApiPatchingSymbolNoImagehlpFlag", "no");
12378 }
12379 if ((this.apiPatchingSymbolNoImagehlpFlagField == YesNoType.yes))
12380 {
12381 writer.WriteAttributeString("ApiPatchingSymbolNoImagehlpFlag", "yes");
12382 }
12383 }
12384 if (this.apiPatchingSymbolNoFailuresFlagFieldSet)
12385 {
12386 if ((this.apiPatchingSymbolNoFailuresFlagField == YesNoType.no))
12387 {
12388 writer.WriteAttributeString("ApiPatchingSymbolNoFailuresFlag", "no");
12389 }
12390 if ((this.apiPatchingSymbolNoFailuresFlagField == YesNoType.yes))
12391 {
12392 writer.WriteAttributeString("ApiPatchingSymbolNoFailuresFlag", "yes");
12393 }
12394 }
12395 if (this.apiPatchingSymbolUndecoratedTooFlagFieldSet)
12396 {
12397 if ((this.apiPatchingSymbolUndecoratedTooFlagField == YesNoType.no))
12398 {
12399 writer.WriteAttributeString("ApiPatchingSymbolUndecoratedTooFlag", "no");
12400 }
12401 if ((this.apiPatchingSymbolUndecoratedTooFlagField == YesNoType.yes))
12402 {
12403 writer.WriteAttributeString("ApiPatchingSymbolUndecoratedTooFlag", "yes");
12404 }
12405 }
12406 if (this.descriptionFieldSet)
12407 {
12408 writer.WriteAttributeString("Description", this.descriptionField);
12409 }
12410 if (this.displayNameFieldSet)
12411 {
12412 writer.WriteAttributeString("DisplayName", this.displayNameField);
12413 }
12414 if (this.commentsFieldSet)
12415 {
12416 writer.WriteAttributeString("Comments", this.commentsField);
12417 }
12418 if (this.manufacturerFieldSet)
12419 {
12420 writer.WriteAttributeString("Manufacturer", this.manufacturerField);
12421 }
12422 if (this.minorUpdateTargetRTMFieldSet)
12423 {
12424 if ((this.minorUpdateTargetRTMField == YesNoType.no))
12425 {
12426 writer.WriteAttributeString("MinorUpdateTargetRTM", "no");
12427 }
12428 if ((this.minorUpdateTargetRTMField == YesNoType.yes))
12429 {
12430 writer.WriteAttributeString("MinorUpdateTargetRTM", "yes");
12431 }
12432 }
12433 if (this.moreInfoURLFieldSet)
12434 {
12435 writer.WriteAttributeString("MoreInfoURL", this.moreInfoURLField);
12436 }
12437 if (this.optimizedInstallModeFieldSet)
12438 {
12439 if ((this.optimizedInstallModeField == YesNoType.no))
12440 {
12441 writer.WriteAttributeString("OptimizedInstallMode", "no");
12442 }
12443 if ((this.optimizedInstallModeField == YesNoType.yes))
12444 {
12445 writer.WriteAttributeString("OptimizedInstallMode", "yes");
12446 }
12447 }
12448 if (this.targetProductNameFieldSet)
12449 {
12450 writer.WriteAttributeString("TargetProductName", this.targetProductNameField);
12451 }
12452 if (this.optimizePatchSizeForLargeFilesFieldSet)
12453 {
12454 if ((this.optimizePatchSizeForLargeFilesField == YesNoType.no))
12455 {
12456 writer.WriteAttributeString("OptimizePatchSizeForLargeFiles", "no");
12457 }
12458 if ((this.optimizePatchSizeForLargeFilesField == YesNoType.yes))
12459 {
12460 writer.WriteAttributeString("OptimizePatchSizeForLargeFiles", "yes");
12461 }
12462 }
12463 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
12464 {
12465 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
12466 childElement.OutputXml(writer);
12467 }
12468 writer.WriteEndElement();
12469 }
12470
12471 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
12472 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
12473 void ISetAttributes.SetAttribute(string name, string value)
12474 {
12475 if (String.IsNullOrEmpty(name))
12476 {
12477 throw new ArgumentNullException("name");
12478 }
12479 if (("Id" == name))
12480 {
12481 this.idField = value;
12482 this.idFieldSet = true;
12483 }
12484 if (("Codepage" == name))
12485 {
12486 this.codepageField = value;
12487 this.codepageFieldSet = true;
12488 }
12489 if (("AllowRemoval" == name))
12490 {
12491 this.allowRemovalField = Enums.ParseYesNoType(value);
12492 this.allowRemovalFieldSet = true;
12493 }
12494 if (("Classification" == name))
12495 {
12496 this.classificationField = value;
12497 this.classificationFieldSet = true;
12498 }
12499 if (("ClientPatchId" == name))
12500 {
12501 this.clientPatchIdField = value;
12502 this.clientPatchIdFieldSet = true;
12503 }
12504 if (("ApiPatchingSymbolNoImagehlpFlag" == name))
12505 {
12506 this.apiPatchingSymbolNoImagehlpFlagField = Enums.ParseYesNoType(value);
12507 this.apiPatchingSymbolNoImagehlpFlagFieldSet = true;
12508 }
12509 if (("ApiPatchingSymbolNoFailuresFlag" == name))
12510 {
12511 this.apiPatchingSymbolNoFailuresFlagField = Enums.ParseYesNoType(value);
12512 this.apiPatchingSymbolNoFailuresFlagFieldSet = true;
12513 }
12514 if (("ApiPatchingSymbolUndecoratedTooFlag" == name))
12515 {
12516 this.apiPatchingSymbolUndecoratedTooFlagField = Enums.ParseYesNoType(value);
12517 this.apiPatchingSymbolUndecoratedTooFlagFieldSet = true;
12518 }
12519 if (("Description" == name))
12520 {
12521 this.descriptionField = value;
12522 this.descriptionFieldSet = true;
12523 }
12524 if (("DisplayName" == name))
12525 {
12526 this.displayNameField = value;
12527 this.displayNameFieldSet = true;
12528 }
12529 if (("Comments" == name))
12530 {
12531 this.commentsField = value;
12532 this.commentsFieldSet = true;
12533 }
12534 if (("Manufacturer" == name))
12535 {
12536 this.manufacturerField = value;
12537 this.manufacturerFieldSet = true;
12538 }
12539 if (("MinorUpdateTargetRTM" == name))
12540 {
12541 this.minorUpdateTargetRTMField = Enums.ParseYesNoType(value);
12542 this.minorUpdateTargetRTMFieldSet = true;
12543 }
12544 if (("MoreInfoURL" == name))
12545 {
12546 this.moreInfoURLField = value;
12547 this.moreInfoURLFieldSet = true;
12548 }
12549 if (("OptimizedInstallMode" == name))
12550 {
12551 this.optimizedInstallModeField = Enums.ParseYesNoType(value);
12552 this.optimizedInstallModeFieldSet = true;
12553 }
12554 if (("TargetProductName" == name))
12555 {
12556 this.targetProductNameField = value;
12557 this.targetProductNameFieldSet = true;
12558 }
12559 if (("OptimizePatchSizeForLargeFiles" == name))
12560 {
12561 this.optimizePatchSizeForLargeFilesField = Enums.ParseYesNoType(value);
12562 this.optimizePatchSizeForLargeFilesFieldSet = true;
12563 }
12564 }
12565 }
12566
12567 /// <summary>
12568 /// 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.
12569 /// </summary>
12570 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
12571 public class Validate : ISchemaElement, ISetAttributes
12572 {
12573
12574 private YesNoType productIdField;
12575
12576 private bool productIdFieldSet;
12577
12578 private YesNoType productLanguageField;
12579
12580 private bool productLanguageFieldSet;
12581
12582 private ProductVersionType productVersionField;
12583
12584 private bool productVersionFieldSet;
12585
12586 private ProductVersionOperatorType productVersionOperatorField;
12587
12588 private bool productVersionOperatorFieldSet;
12589
12590 private YesNoType upgradeCodeField;
12591
12592 private bool upgradeCodeFieldSet;
12593
12594 private YesNoType ignoreAddExistingRowField;
12595
12596 private bool ignoreAddExistingRowFieldSet;
12597
12598 private YesNoType ignoreAddExistingTableField;
12599
12600 private bool ignoreAddExistingTableFieldSet;
12601
12602 private YesNoType ignoreDeleteMissingRowField;
12603
12604 private bool ignoreDeleteMissingRowFieldSet;
12605
12606 private YesNoType ignoreDeleteMissingTableField;
12607
12608 private bool ignoreDeleteMissingTableFieldSet;
12609
12610 private YesNoType ignoreUpdateMissingRowField;
12611
12612 private bool ignoreUpdateMissingRowFieldSet;
12613
12614 private YesNoType ignoreChangingCodePageField;
12615
12616 private bool ignoreChangingCodePageFieldSet;
12617
12618 private ISchemaElement parentElement;
12619
12620 /// <summary>
12621 /// Requires that the installed ProductCode match the target ProductCode used to create the transform. The default is 'yes'.
12622 /// </summary>
12623 public YesNoType ProductId
12624 {
12625 get
12626 {
12627 return this.productIdField;
12628 }
12629 set
12630 {
12631 this.productIdFieldSet = true;
12632 this.productIdField = value;
12633 }
12634 }
12635
12636 /// <summary>
12637 /// Requires that the installed ProductLanguage match the target ProductLanguage used to create the transform. The default is 'no'.
12638 /// </summary>
12639 public YesNoType ProductLanguage
12640 {
12641 get
12642 {
12643 return this.productLanguageField;
12644 }
12645 set
12646 {
12647 this.productLanguageFieldSet = true;
12648 this.productLanguageField = value;
12649 }
12650 }
12651
12652 /// <summary>
12653 /// Determines how many fields of the installed ProductVersion to compare. See remarks for more information. The default is 'Update'.
12654 /// </summary>
12655 public ProductVersionType ProductVersion
12656 {
12657 get
12658 {
12659 return this.productVersionField;
12660 }
12661 set
12662 {
12663 this.productVersionFieldSet = true;
12664 this.productVersionField = value;
12665 }
12666 }
12667
12668 /// <summary>
12669 /// 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'.
12670 /// </summary>
12671 public ProductVersionOperatorType ProductVersionOperator
12672 {
12673 get
12674 {
12675 return this.productVersionOperatorField;
12676 }
12677 set
12678 {
12679 this.productVersionOperatorFieldSet = true;
12680 this.productVersionOperatorField = value;
12681 }
12682 }
12683
12684 /// <summary>
12685 /// Requires that the installed UpgradeCode match the target UpgradeCode used to create the transform. The default is 'yes'.
12686 /// </summary>
12687 public YesNoType UpgradeCode
12688 {
12689 get
12690 {
12691 return this.upgradeCodeField;
12692 }
12693 set
12694 {
12695 this.upgradeCodeFieldSet = true;
12696 this.upgradeCodeField = value;
12697 }
12698 }
12699
12700 /// <summary>
12701 /// Ignore errors when adding existing rows. The default is 'yes'.
12702 /// </summary>
12703 public YesNoType IgnoreAddExistingRow
12704 {
12705 get
12706 {
12707 return this.ignoreAddExistingRowField;
12708 }
12709 set
12710 {
12711 this.ignoreAddExistingRowFieldSet = true;
12712 this.ignoreAddExistingRowField = value;
12713 }
12714 }
12715
12716 /// <summary>
12717 /// Ignore errors when adding existing tables. The default is 'yes'.
12718 /// </summary>
12719 public YesNoType IgnoreAddExistingTable
12720 {
12721 get
12722 {
12723 return this.ignoreAddExistingTableField;
12724 }
12725 set
12726 {
12727 this.ignoreAddExistingTableFieldSet = true;
12728 this.ignoreAddExistingTableField = value;
12729 }
12730 }
12731
12732 /// <summary>
12733 /// Ignore errors when deleting missing rows. The default is 'yes'.
12734 /// </summary>
12735 public YesNoType IgnoreDeleteMissingRow
12736 {
12737 get
12738 {
12739 return this.ignoreDeleteMissingRowField;
12740 }
12741 set
12742 {
12743 this.ignoreDeleteMissingRowFieldSet = true;
12744 this.ignoreDeleteMissingRowField = value;
12745 }
12746 }
12747
12748 /// <summary>
12749 /// Ignore errors when deleting missing tables. The default is 'yes'.
12750 /// </summary>
12751 public YesNoType IgnoreDeleteMissingTable
12752 {
12753 get
12754 {
12755 return this.ignoreDeleteMissingTableField;
12756 }
12757 set
12758 {
12759 this.ignoreDeleteMissingTableFieldSet = true;
12760 this.ignoreDeleteMissingTableField = value;
12761 }
12762 }
12763
12764 /// <summary>
12765 /// Ignore errors when updating missing rows. The default is 'yes'.
12766 /// </summary>
12767 public YesNoType IgnoreUpdateMissingRow
12768 {
12769 get
12770 {
12771 return this.ignoreUpdateMissingRowField;
12772 }
12773 set
12774 {
12775 this.ignoreUpdateMissingRowFieldSet = true;
12776 this.ignoreUpdateMissingRowField = value;
12777 }
12778 }
12779
12780 /// <summary>
12781 /// Ignore errors when changing the database code page. The default is 'no'.
12782 /// </summary>
12783 public YesNoType IgnoreChangingCodePage
12784 {
12785 get
12786 {
12787 return this.ignoreChangingCodePageField;
12788 }
12789 set
12790 {
12791 this.ignoreChangingCodePageFieldSet = true;
12792 this.ignoreChangingCodePageField = value;
12793 }
12794 }
12795
12796 public virtual ISchemaElement ParentElement
12797 {
12798 get
12799 {
12800 return this.parentElement;
12801 }
12802 set
12803 {
12804 this.parentElement = value;
12805 }
12806 }
12807
12808 /// <summary>
12809 /// Parses a ProductVersionType from a string.
12810 /// </summary>
12811 public static ProductVersionType ParseProductVersionType(string value)
12812 {
12813 ProductVersionType parsedValue;
12814 Validate.TryParseProductVersionType(value, out parsedValue);
12815 return parsedValue;
12816 }
12817
12818 /// <summary>
12819 /// Tries to parse a ProductVersionType from a string.
12820 /// </summary>
12821 public static bool TryParseProductVersionType(string value, out ProductVersionType parsedValue)
12822 {
12823 parsedValue = ProductVersionType.NotSet;
12824 if (string.IsNullOrEmpty(value))
12825 {
12826 return false;
12827 }
12828 if (("Major" == value))
12829 {
12830 parsedValue = ProductVersionType.Major;
12831 }
12832 else
12833 {
12834 if (("Minor" == value))
12835 {
12836 parsedValue = ProductVersionType.Minor;
12837 }
12838 else
12839 {
12840 if (("Update" == value))
12841 {
12842 parsedValue = ProductVersionType.Update;
12843 }
12844 else
12845 {
12846 parsedValue = ProductVersionType.IllegalValue;
12847 return false;
12848 }
12849 }
12850 }
12851 return true;
12852 }
12853
12854 /// <summary>
12855 /// Parses a ProductVersionOperatorType from a string.
12856 /// </summary>
12857 public static ProductVersionOperatorType ParseProductVersionOperatorType(string value)
12858 {
12859 ProductVersionOperatorType parsedValue;
12860 Validate.TryParseProductVersionOperatorType(value, out parsedValue);
12861 return parsedValue;
12862 }
12863
12864 /// <summary>
12865 /// Tries to parse a ProductVersionOperatorType from a string.
12866 /// </summary>
12867 public static bool TryParseProductVersionOperatorType(string value, out ProductVersionOperatorType parsedValue)
12868 {
12869 parsedValue = ProductVersionOperatorType.NotSet;
12870 if (string.IsNullOrEmpty(value))
12871 {
12872 return false;
12873 }
12874 if (("Lesser" == value))
12875 {
12876 parsedValue = ProductVersionOperatorType.Lesser;
12877 }
12878 else
12879 {
12880 if (("LesserOrEqual" == value))
12881 {
12882 parsedValue = ProductVersionOperatorType.LesserOrEqual;
12883 }
12884 else
12885 {
12886 if (("Equal" == value))
12887 {
12888 parsedValue = ProductVersionOperatorType.Equal;
12889 }
12890 else
12891 {
12892 if (("GreaterOrEqual" == value))
12893 {
12894 parsedValue = ProductVersionOperatorType.GreaterOrEqual;
12895 }
12896 else
12897 {
12898 if (("Greater" == value))
12899 {
12900 parsedValue = ProductVersionOperatorType.Greater;
12901 }
12902 else
12903 {
12904 parsedValue = ProductVersionOperatorType.IllegalValue;
12905 return false;
12906 }
12907 }
12908 }
12909 }
12910 }
12911 return true;
12912 }
12913
12914 /// <summary>
12915 /// Processes this element and all child elements into an XmlWriter.
12916 /// </summary>
12917 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
12918 public virtual void OutputXml(XmlWriter writer)
12919 {
12920 if ((null == writer))
12921 {
12922 throw new ArgumentNullException("writer");
12923 }
12924 writer.WriteStartElement("Validate", "http://wixtoolset.org/schemas/v4/wxs");
12925 if (this.productIdFieldSet)
12926 {
12927 if ((this.productIdField == YesNoType.no))
12928 {
12929 writer.WriteAttributeString("ProductId", "no");
12930 }
12931 if ((this.productIdField == YesNoType.yes))
12932 {
12933 writer.WriteAttributeString("ProductId", "yes");
12934 }
12935 }
12936 if (this.productLanguageFieldSet)
12937 {
12938 if ((this.productLanguageField == YesNoType.no))
12939 {
12940 writer.WriteAttributeString("ProductLanguage", "no");
12941 }
12942 if ((this.productLanguageField == YesNoType.yes))
12943 {
12944 writer.WriteAttributeString("ProductLanguage", "yes");
12945 }
12946 }
12947 if (this.productVersionFieldSet)
12948 {
12949 if ((this.productVersionField == ProductVersionType.Major))
12950 {
12951 writer.WriteAttributeString("ProductVersion", "Major");
12952 }
12953 if ((this.productVersionField == ProductVersionType.Minor))
12954 {
12955 writer.WriteAttributeString("ProductVersion", "Minor");
12956 }
12957 if ((this.productVersionField == ProductVersionType.Update))
12958 {
12959 writer.WriteAttributeString("ProductVersion", "Update");
12960 }
12961 }
12962 if (this.productVersionOperatorFieldSet)
12963 {
12964 if ((this.productVersionOperatorField == ProductVersionOperatorType.Lesser))
12965 {
12966 writer.WriteAttributeString("ProductVersionOperator", "Lesser");
12967 }
12968 if ((this.productVersionOperatorField == ProductVersionOperatorType.LesserOrEqual))
12969 {
12970 writer.WriteAttributeString("ProductVersionOperator", "LesserOrEqual");
12971 }
12972 if ((this.productVersionOperatorField == ProductVersionOperatorType.Equal))
12973 {
12974 writer.WriteAttributeString("ProductVersionOperator", "Equal");
12975 }
12976 if ((this.productVersionOperatorField == ProductVersionOperatorType.GreaterOrEqual))
12977 {
12978 writer.WriteAttributeString("ProductVersionOperator", "GreaterOrEqual");
12979 }
12980 if ((this.productVersionOperatorField == ProductVersionOperatorType.Greater))
12981 {
12982 writer.WriteAttributeString("ProductVersionOperator", "Greater");
12983 }
12984 }
12985 if (this.upgradeCodeFieldSet)
12986 {
12987 if ((this.upgradeCodeField == YesNoType.no))
12988 {
12989 writer.WriteAttributeString("UpgradeCode", "no");
12990 }
12991 if ((this.upgradeCodeField == YesNoType.yes))
12992 {
12993 writer.WriteAttributeString("UpgradeCode", "yes");
12994 }
12995 }
12996 if (this.ignoreAddExistingRowFieldSet)
12997 {
12998 if ((this.ignoreAddExistingRowField == YesNoType.no))
12999 {
13000 writer.WriteAttributeString("IgnoreAddExistingRow", "no");
13001 }
13002 if ((this.ignoreAddExistingRowField == YesNoType.yes))
13003 {
13004 writer.WriteAttributeString("IgnoreAddExistingRow", "yes");
13005 }
13006 }
13007 if (this.ignoreAddExistingTableFieldSet)
13008 {
13009 if ((this.ignoreAddExistingTableField == YesNoType.no))
13010 {
13011 writer.WriteAttributeString("IgnoreAddExistingTable", "no");
13012 }
13013 if ((this.ignoreAddExistingTableField == YesNoType.yes))
13014 {
13015 writer.WriteAttributeString("IgnoreAddExistingTable", "yes");
13016 }
13017 }
13018 if (this.ignoreDeleteMissingRowFieldSet)
13019 {
13020 if ((this.ignoreDeleteMissingRowField == YesNoType.no))
13021 {
13022 writer.WriteAttributeString("IgnoreDeleteMissingRow", "no");
13023 }
13024 if ((this.ignoreDeleteMissingRowField == YesNoType.yes))
13025 {
13026 writer.WriteAttributeString("IgnoreDeleteMissingRow", "yes");
13027 }
13028 }
13029 if (this.ignoreDeleteMissingTableFieldSet)
13030 {
13031 if ((this.ignoreDeleteMissingTableField == YesNoType.no))
13032 {
13033 writer.WriteAttributeString("IgnoreDeleteMissingTable", "no");
13034 }
13035 if ((this.ignoreDeleteMissingTableField == YesNoType.yes))
13036 {
13037 writer.WriteAttributeString("IgnoreDeleteMissingTable", "yes");
13038 }
13039 }
13040 if (this.ignoreUpdateMissingRowFieldSet)
13041 {
13042 if ((this.ignoreUpdateMissingRowField == YesNoType.no))
13043 {
13044 writer.WriteAttributeString("IgnoreUpdateMissingRow", "no");
13045 }
13046 if ((this.ignoreUpdateMissingRowField == YesNoType.yes))
13047 {
13048 writer.WriteAttributeString("IgnoreUpdateMissingRow", "yes");
13049 }
13050 }
13051 if (this.ignoreChangingCodePageFieldSet)
13052 {
13053 if ((this.ignoreChangingCodePageField == YesNoType.no))
13054 {
13055 writer.WriteAttributeString("IgnoreChangingCodePage", "no");
13056 }
13057 if ((this.ignoreChangingCodePageField == YesNoType.yes))
13058 {
13059 writer.WriteAttributeString("IgnoreChangingCodePage", "yes");
13060 }
13061 }
13062 writer.WriteEndElement();
13063 }
13064
13065 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
13066 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
13067 void ISetAttributes.SetAttribute(string name, string value)
13068 {
13069 if (String.IsNullOrEmpty(name))
13070 {
13071 throw new ArgumentNullException("name");
13072 }
13073 if (("ProductId" == name))
13074 {
13075 this.productIdField = Enums.ParseYesNoType(value);
13076 this.productIdFieldSet = true;
13077 }
13078 if (("ProductLanguage" == name))
13079 {
13080 this.productLanguageField = Enums.ParseYesNoType(value);
13081 this.productLanguageFieldSet = true;
13082 }
13083 if (("ProductVersion" == name))
13084 {
13085 this.productVersionField = Validate.ParseProductVersionType(value);
13086 this.productVersionFieldSet = true;
13087 }
13088 if (("ProductVersionOperator" == name))
13089 {
13090 this.productVersionOperatorField = Validate.ParseProductVersionOperatorType(value);
13091 this.productVersionOperatorFieldSet = true;
13092 }
13093 if (("UpgradeCode" == name))
13094 {
13095 this.upgradeCodeField = Enums.ParseYesNoType(value);
13096 this.upgradeCodeFieldSet = true;
13097 }
13098 if (("IgnoreAddExistingRow" == name))
13099 {
13100 this.ignoreAddExistingRowField = Enums.ParseYesNoType(value);
13101 this.ignoreAddExistingRowFieldSet = true;
13102 }
13103 if (("IgnoreAddExistingTable" == name))
13104 {
13105 this.ignoreAddExistingTableField = Enums.ParseYesNoType(value);
13106 this.ignoreAddExistingTableFieldSet = true;
13107 }
13108 if (("IgnoreDeleteMissingRow" == name))
13109 {
13110 this.ignoreDeleteMissingRowField = Enums.ParseYesNoType(value);
13111 this.ignoreDeleteMissingRowFieldSet = true;
13112 }
13113 if (("IgnoreDeleteMissingTable" == name))
13114 {
13115 this.ignoreDeleteMissingTableField = Enums.ParseYesNoType(value);
13116 this.ignoreDeleteMissingTableFieldSet = true;
13117 }
13118 if (("IgnoreUpdateMissingRow" == name))
13119 {
13120 this.ignoreUpdateMissingRowField = Enums.ParseYesNoType(value);
13121 this.ignoreUpdateMissingRowFieldSet = true;
13122 }
13123 if (("IgnoreChangingCodePage" == name))
13124 {
13125 this.ignoreChangingCodePageField = Enums.ParseYesNoType(value);
13126 this.ignoreChangingCodePageFieldSet = true;
13127 }
13128 }
13129
13130 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
13131 public enum ProductVersionType
13132 {
13133
13134 IllegalValue = int.MaxValue,
13135
13136 NotSet = -1,
13137
13138 /// <summary>
13139 /// Checks the major version.
13140 /// </summary>
13141 Major,
13142
13143 /// <summary>
13144 /// Checks the major and minor versions.
13145 /// </summary>
13146 Minor,
13147
13148 /// <summary>
13149 /// Checks the major, minor, and update versions.
13150 /// </summary>
13151 Update,
13152 }
13153
13154 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
13155 public enum ProductVersionOperatorType
13156 {
13157
13158 IllegalValue = int.MaxValue,
13159
13160 NotSet = -1,
13161
13162 /// <summary>
13163 /// Installed ProductVersion &lt; target ProductVersion.
13164 /// </summary>
13165 Lesser,
13166
13167 /// <summary>
13168 /// Installed ProductVersion &lt;= target ProductVersion.
13169 /// </summary>
13170 LesserOrEqual,
13171
13172 /// <summary>
13173 /// Installed ProductVersion = target ProductVersion.
13174 /// </summary>
13175 Equal,
13176
13177 /// <summary>
13178 /// Installed ProductVersion &gt;= target ProductVersion.
13179 /// </summary>
13180 GreaterOrEqual,
13181
13182 /// <summary>
13183 /// Installed ProductVersion &gt; target ProductVersion.
13184 /// </summary>
13185 Greater,
13186 }
13187 }
13188
13189 /// <summary>
13190 /// Indicates whether custom actions can be skipped when applying the patch.
13191 /// </summary>
13192 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
13193 public class OptimizeCustomActions : ISchemaElement, ISetAttributes
13194 {
13195
13196 private YesNoType skipAssignmentField;
13197
13198 private bool skipAssignmentFieldSet;
13199
13200 private YesNoType skipImmediateField;
13201
13202 private bool skipImmediateFieldSet;
13203
13204 private YesNoType skipDeferredField;
13205
13206 private bool skipDeferredFieldSet;
13207
13208 private ISchemaElement parentElement;
13209
13210 /// <summary>
13211 /// Skip property (type 51) and directory (type 35) assignment custom actions.
13212 /// </summary>
13213 public YesNoType SkipAssignment
13214 {
13215 get
13216 {
13217 return this.skipAssignmentField;
13218 }
13219 set
13220 {
13221 this.skipAssignmentFieldSet = true;
13222 this.skipAssignmentField = value;
13223 }
13224 }
13225
13226 /// <summary>
13227 /// Skip immediate custom actions that are not property or directory assignment custom actions.
13228 /// </summary>
13229 public YesNoType SkipImmediate
13230 {
13231 get
13232 {
13233 return this.skipImmediateField;
13234 }
13235 set
13236 {
13237 this.skipImmediateFieldSet = true;
13238 this.skipImmediateField = value;
13239 }
13240 }
13241
13242 /// <summary>
13243 /// Skip custom actions that run within the script.
13244 /// </summary>
13245 public YesNoType SkipDeferred
13246 {
13247 get
13248 {
13249 return this.skipDeferredField;
13250 }
13251 set
13252 {
13253 this.skipDeferredFieldSet = true;
13254 this.skipDeferredField = value;
13255 }
13256 }
13257
13258 public virtual ISchemaElement ParentElement
13259 {
13260 get
13261 {
13262 return this.parentElement;
13263 }
13264 set
13265 {
13266 this.parentElement = value;
13267 }
13268 }
13269
13270 /// <summary>
13271 /// Processes this element and all child elements into an XmlWriter.
13272 /// </summary>
13273 public virtual void OutputXml(XmlWriter writer)
13274 {
13275 if ((null == writer))
13276 {
13277 throw new ArgumentNullException("writer");
13278 }
13279 writer.WriteStartElement("OptimizeCustomActions", "http://wixtoolset.org/schemas/v4/wxs");
13280 if (this.skipAssignmentFieldSet)
13281 {
13282 if ((this.skipAssignmentField == YesNoType.no))
13283 {
13284 writer.WriteAttributeString("SkipAssignment", "no");
13285 }
13286 if ((this.skipAssignmentField == YesNoType.yes))
13287 {
13288 writer.WriteAttributeString("SkipAssignment", "yes");
13289 }
13290 }
13291 if (this.skipImmediateFieldSet)
13292 {
13293 if ((this.skipImmediateField == YesNoType.no))
13294 {
13295 writer.WriteAttributeString("SkipImmediate", "no");
13296 }
13297 if ((this.skipImmediateField == YesNoType.yes))
13298 {
13299 writer.WriteAttributeString("SkipImmediate", "yes");
13300 }
13301 }
13302 if (this.skipDeferredFieldSet)
13303 {
13304 if ((this.skipDeferredField == YesNoType.no))
13305 {
13306 writer.WriteAttributeString("SkipDeferred", "no");
13307 }
13308 if ((this.skipDeferredField == YesNoType.yes))
13309 {
13310 writer.WriteAttributeString("SkipDeferred", "yes");
13311 }
13312 }
13313 writer.WriteEndElement();
13314 }
13315
13316 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
13317 void ISetAttributes.SetAttribute(string name, string value)
13318 {
13319 if (String.IsNullOrEmpty(name))
13320 {
13321 throw new ArgumentNullException("name");
13322 }
13323 if (("SkipAssignment" == name))
13324 {
13325 this.skipAssignmentField = Enums.ParseYesNoType(value);
13326 this.skipAssignmentFieldSet = true;
13327 }
13328 if (("SkipImmediate" == name))
13329 {
13330 this.skipImmediateField = Enums.ParseYesNoType(value);
13331 this.skipImmediateFieldSet = true;
13332 }
13333 if (("SkipDeferred" == name))
13334 {
13335 this.skipDeferredField = Enums.ParseYesNoType(value);
13336 this.skipDeferredFieldSet = true;
13337 }
13338 }
13339 }
13340
13341 /// <summary>
13342 /// Identifies a set of product versions.
13343 /// </summary>
13344 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
13345 public class PatchBaseline : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
13346 {
13347
13348 private ElementCollection children;
13349
13350 private string idField;
13351
13352 private bool idFieldSet;
13353
13354 private ISchemaElement parentElement;
13355
13356 public PatchBaseline()
13357 {
13358 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
13359 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Validate)));
13360 this.children = childCollection0;
13361 }
13362
13363 public virtual IEnumerable Children
13364 {
13365 get
13366 {
13367 return this.children;
13368 }
13369 }
13370
13371 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
13372 public virtual IEnumerable this[System.Type childType]
13373 {
13374 get
13375 {
13376 return this.children.Filter(childType);
13377 }
13378 }
13379
13380 /// <summary>
13381 /// Identifier for a set of product versions.
13382 /// </summary>
13383 public string Id
13384 {
13385 get
13386 {
13387 return this.idField;
13388 }
13389 set
13390 {
13391 this.idFieldSet = true;
13392 this.idField = value;
13393 }
13394 }
13395
13396 public virtual ISchemaElement ParentElement
13397 {
13398 get
13399 {
13400 return this.parentElement;
13401 }
13402 set
13403 {
13404 this.parentElement = value;
13405 }
13406 }
13407
13408 public virtual void AddChild(ISchemaElement child)
13409 {
13410 if ((null == child))
13411 {
13412 throw new ArgumentNullException("child");
13413 }
13414 this.children.AddElement(child);
13415 child.ParentElement = this;
13416 }
13417
13418 public virtual void RemoveChild(ISchemaElement child)
13419 {
13420 if ((null == child))
13421 {
13422 throw new ArgumentNullException("child");
13423 }
13424 this.children.RemoveElement(child);
13425 child.ParentElement = null;
13426 }
13427
13428 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
13429 ISchemaElement ICreateChildren.CreateChild(string childName)
13430 {
13431 if (String.IsNullOrEmpty(childName))
13432 {
13433 throw new ArgumentNullException("childName");
13434 }
13435 ISchemaElement childValue = null;
13436 if (("Validate" == childName))
13437 {
13438 childValue = new Validate();
13439 }
13440 if ((null == childValue))
13441 {
13442 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
13443 }
13444 return childValue;
13445 }
13446
13447 /// <summary>
13448 /// Processes this element and all child elements into an XmlWriter.
13449 /// </summary>
13450 public virtual void OutputXml(XmlWriter writer)
13451 {
13452 if ((null == writer))
13453 {
13454 throw new ArgumentNullException("writer");
13455 }
13456 writer.WriteStartElement("PatchBaseline", "http://wixtoolset.org/schemas/v4/wxs");
13457 if (this.idFieldSet)
13458 {
13459 writer.WriteAttributeString("Id", this.idField);
13460 }
13461 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
13462 {
13463 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
13464 childElement.OutputXml(writer);
13465 }
13466 writer.WriteEndElement();
13467 }
13468
13469 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
13470 void ISetAttributes.SetAttribute(string name, string value)
13471 {
13472 if (String.IsNullOrEmpty(name))
13473 {
13474 throw new ArgumentNullException("name");
13475 }
13476 if (("Id" == name))
13477 {
13478 this.idField = value;
13479 this.idFieldSet = true;
13480 }
13481 }
13482 }
13483
13484 /// <summary>
13485 /// Collection of items that should be kept from the differences between two products.
13486 /// </summary>
13487 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
13488 public class PatchFamily : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
13489 {
13490
13491 private ElementCollection children;
13492
13493 private string idField;
13494
13495 private bool idFieldSet;
13496
13497 private string productCodeField;
13498
13499 private bool productCodeFieldSet;
13500
13501 private string versionField;
13502
13503 private bool versionFieldSet;
13504
13505 private YesNoType supersedeField;
13506
13507 private bool supersedeFieldSet;
13508
13509 private ISchemaElement parentElement;
13510
13511 public PatchFamily()
13512 {
13513 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
13514 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice);
13515 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(All)));
13516 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(BinaryRef)));
13517 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef)));
13518 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomActionRef)));
13519 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(DigitalCertificateRef)));
13520 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(DirectoryRef)));
13521 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef)));
13522 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(IconRef)));
13523 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PropertyRef)));
13524 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UIRef)));
13525 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
13526 childCollection0.AddCollection(childCollection1);
13527 this.children = childCollection0;
13528 }
13529
13530 public virtual IEnumerable Children
13531 {
13532 get
13533 {
13534 return this.children;
13535 }
13536 }
13537
13538 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
13539 public virtual IEnumerable this[System.Type childType]
13540 {
13541 get
13542 {
13543 return this.children.Filter(childType);
13544 }
13545 }
13546
13547 /// <summary>
13548 /// Identifier which indicates a sequence family to which this patch belongs.
13549 /// </summary>
13550 public string Id
13551 {
13552 get
13553 {
13554 return this.idField;
13555 }
13556 set
13557 {
13558 this.idFieldSet = true;
13559 this.idField = value;
13560 }
13561 }
13562
13563 /// <summary>
13564 /// Specifies the ProductCode of the product that this family applies to.
13565 /// </summary>
13566 public string ProductCode
13567 {
13568 get
13569 {
13570 return this.productCodeField;
13571 }
13572 set
13573 {
13574 this.productCodeFieldSet = true;
13575 this.productCodeField = value;
13576 }
13577 }
13578
13579 /// <summary>
13580 /// 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.
13581 /// </summary>
13582 public string Version
13583 {
13584 get
13585 {
13586 return this.versionField;
13587 }
13588 set
13589 {
13590 this.versionFieldSet = true;
13591 this.versionField = value;
13592 }
13593 }
13594
13595 /// <summary>
13596 /// Set this value to 'yes' to indicate that this patch will supersede all previous patches in this patch family.
13597 /// The default value is 'no'.
13598 /// </summary>
13599 public YesNoType Supersede
13600 {
13601 get
13602 {
13603 return this.supersedeField;
13604 }
13605 set
13606 {
13607 this.supersedeFieldSet = true;
13608 this.supersedeField = value;
13609 }
13610 }
13611
13612 public virtual ISchemaElement ParentElement
13613 {
13614 get
13615 {
13616 return this.parentElement;
13617 }
13618 set
13619 {
13620 this.parentElement = value;
13621 }
13622 }
13623
13624 public virtual void AddChild(ISchemaElement child)
13625 {
13626 if ((null == child))
13627 {
13628 throw new ArgumentNullException("child");
13629 }
13630 this.children.AddElement(child);
13631 child.ParentElement = this;
13632 }
13633
13634 public virtual void RemoveChild(ISchemaElement child)
13635 {
13636 if ((null == child))
13637 {
13638 throw new ArgumentNullException("child");
13639 }
13640 this.children.RemoveElement(child);
13641 child.ParentElement = null;
13642 }
13643
13644 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
13645 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
13646 ISchemaElement ICreateChildren.CreateChild(string childName)
13647 {
13648 if (String.IsNullOrEmpty(childName))
13649 {
13650 throw new ArgumentNullException("childName");
13651 }
13652 ISchemaElement childValue = null;
13653 if (("All" == childName))
13654 {
13655 childValue = new All();
13656 }
13657 if (("BinaryRef" == childName))
13658 {
13659 childValue = new BinaryRef();
13660 }
13661 if (("ComponentRef" == childName))
13662 {
13663 childValue = new ComponentRef();
13664 }
13665 if (("CustomActionRef" == childName))
13666 {
13667 childValue = new CustomActionRef();
13668 }
13669 if (("DigitalCertificateRef" == childName))
13670 {
13671 childValue = new DigitalCertificateRef();
13672 }
13673 if (("DirectoryRef" == childName))
13674 {
13675 childValue = new DirectoryRef();
13676 }
13677 if (("FeatureRef" == childName))
13678 {
13679 childValue = new FeatureRef();
13680 }
13681 if (("IconRef" == childName))
13682 {
13683 childValue = new IconRef();
13684 }
13685 if (("PropertyRef" == childName))
13686 {
13687 childValue = new PropertyRef();
13688 }
13689 if (("UIRef" == childName))
13690 {
13691 childValue = new UIRef();
13692 }
13693 if ((null == childValue))
13694 {
13695 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
13696 }
13697 return childValue;
13698 }
13699
13700 /// <summary>
13701 /// Processes this element and all child elements into an XmlWriter.
13702 /// </summary>
13703 public virtual void OutputXml(XmlWriter writer)
13704 {
13705 if ((null == writer))
13706 {
13707 throw new ArgumentNullException("writer");
13708 }
13709 writer.WriteStartElement("PatchFamily", "http://wixtoolset.org/schemas/v4/wxs");
13710 if (this.idFieldSet)
13711 {
13712 writer.WriteAttributeString("Id", this.idField);
13713 }
13714 if (this.productCodeFieldSet)
13715 {
13716 writer.WriteAttributeString("ProductCode", this.productCodeField);
13717 }
13718 if (this.versionFieldSet)
13719 {
13720 writer.WriteAttributeString("Version", this.versionField);
13721 }
13722 if (this.supersedeFieldSet)
13723 {
13724 if ((this.supersedeField == YesNoType.no))
13725 {
13726 writer.WriteAttributeString("Supersede", "no");
13727 }
13728 if ((this.supersedeField == YesNoType.yes))
13729 {
13730 writer.WriteAttributeString("Supersede", "yes");
13731 }
13732 }
13733 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
13734 {
13735 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
13736 childElement.OutputXml(writer);
13737 }
13738 writer.WriteEndElement();
13739 }
13740
13741 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
13742 void ISetAttributes.SetAttribute(string name, string value)
13743 {
13744 if (String.IsNullOrEmpty(name))
13745 {
13746 throw new ArgumentNullException("name");
13747 }
13748 if (("Id" == name))
13749 {
13750 this.idField = value;
13751 this.idFieldSet = true;
13752 }
13753 if (("ProductCode" == name))
13754 {
13755 this.productCodeField = value;
13756 this.productCodeFieldSet = true;
13757 }
13758 if (("Version" == name))
13759 {
13760 this.versionField = value;
13761 this.versionFieldSet = true;
13762 }
13763 if (("Supersede" == name))
13764 {
13765 this.supersedeField = Enums.ParseYesNoType(value);
13766 this.supersedeFieldSet = true;
13767 }
13768 }
13769 }
13770
13771 /// <summary>
13772 /// Groups together multiple patch families to be used in other locations.
13773 /// </summary>
13774 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
13775 public class PatchFamilyGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
13776 {
13777
13778 private ElementCollection children;
13779
13780 private string idField;
13781
13782 private bool idFieldSet;
13783
13784 private ISchemaElement parentElement;
13785
13786 public PatchFamilyGroup()
13787 {
13788 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
13789 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamily)));
13790 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyRef)));
13791 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyGroupRef)));
13792 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
13793 this.children = childCollection0;
13794 }
13795
13796 public virtual IEnumerable Children
13797 {
13798 get
13799 {
13800 return this.children;
13801 }
13802 }
13803
13804 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
13805 public virtual IEnumerable this[System.Type childType]
13806 {
13807 get
13808 {
13809 return this.children.Filter(childType);
13810 }
13811 }
13812
13813 /// <summary>
13814 /// Identifier for the PatchFamilyGroup.
13815 /// </summary>
13816 public string Id
13817 {
13818 get
13819 {
13820 return this.idField;
13821 }
13822 set
13823 {
13824 this.idFieldSet = true;
13825 this.idField = value;
13826 }
13827 }
13828
13829 public virtual ISchemaElement ParentElement
13830 {
13831 get
13832 {
13833 return this.parentElement;
13834 }
13835 set
13836 {
13837 this.parentElement = value;
13838 }
13839 }
13840
13841 public virtual void AddChild(ISchemaElement child)
13842 {
13843 if ((null == child))
13844 {
13845 throw new ArgumentNullException("child");
13846 }
13847 this.children.AddElement(child);
13848 child.ParentElement = this;
13849 }
13850
13851 public virtual void RemoveChild(ISchemaElement child)
13852 {
13853 if ((null == child))
13854 {
13855 throw new ArgumentNullException("child");
13856 }
13857 this.children.RemoveElement(child);
13858 child.ParentElement = null;
13859 }
13860
13861 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
13862 ISchemaElement ICreateChildren.CreateChild(string childName)
13863 {
13864 if (String.IsNullOrEmpty(childName))
13865 {
13866 throw new ArgumentNullException("childName");
13867 }
13868 ISchemaElement childValue = null;
13869 if (("PatchFamily" == childName))
13870 {
13871 childValue = new PatchFamily();
13872 }
13873 if (("PatchFamilyRef" == childName))
13874 {
13875 childValue = new PatchFamilyRef();
13876 }
13877 if (("PatchFamilyGroupRef" == childName))
13878 {
13879 childValue = new PatchFamilyGroupRef();
13880 }
13881 if ((null == childValue))
13882 {
13883 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
13884 }
13885 return childValue;
13886 }
13887
13888 /// <summary>
13889 /// Processes this element and all child elements into an XmlWriter.
13890 /// </summary>
13891 public virtual void OutputXml(XmlWriter writer)
13892 {
13893 if ((null == writer))
13894 {
13895 throw new ArgumentNullException("writer");
13896 }
13897 writer.WriteStartElement("PatchFamilyGroup", "http://wixtoolset.org/schemas/v4/wxs");
13898 if (this.idFieldSet)
13899 {
13900 writer.WriteAttributeString("Id", this.idField);
13901 }
13902 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
13903 {
13904 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
13905 childElement.OutputXml(writer);
13906 }
13907 writer.WriteEndElement();
13908 }
13909
13910 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
13911 void ISetAttributes.SetAttribute(string name, string value)
13912 {
13913 if (String.IsNullOrEmpty(name))
13914 {
13915 throw new ArgumentNullException("name");
13916 }
13917 if (("Id" == name))
13918 {
13919 this.idField = value;
13920 this.idFieldSet = true;
13921 }
13922 }
13923 }
13924
13925 /// <summary>
13926 /// Create a reference to a PatchFamilyGroup in another Fragment.
13927 /// </summary>
13928 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
13929 public class PatchFamilyGroupRef : ISchemaElement, ISetAttributes
13930 {
13931
13932 private string idField;
13933
13934 private bool idFieldSet;
13935
13936 private ISchemaElement parentElement;
13937
13938 /// <summary>
13939 /// The identifier of the PatchFamilyGroup to reference.
13940 /// </summary>
13941 public string Id
13942 {
13943 get
13944 {
13945 return this.idField;
13946 }
13947 set
13948 {
13949 this.idFieldSet = true;
13950 this.idField = value;
13951 }
13952 }
13953
13954 public virtual ISchemaElement ParentElement
13955 {
13956 get
13957 {
13958 return this.parentElement;
13959 }
13960 set
13961 {
13962 this.parentElement = value;
13963 }
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("PatchFamilyGroupRef", "http://wixtoolset.org/schemas/v4/wxs");
13976 if (this.idFieldSet)
13977 {
13978 writer.WriteAttributeString("Id", this.idField);
13979 }
13980 writer.WriteEndElement();
13981 }
13982
13983 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
13984 void ISetAttributes.SetAttribute(string name, string value)
13985 {
13986 if (String.IsNullOrEmpty(name))
13987 {
13988 throw new ArgumentNullException("name");
13989 }
13990 if (("Id" == name))
13991 {
13992 this.idField = value;
13993 this.idFieldSet = true;
13994 }
13995 }
13996 }
13997
13998 /// <summary>
13999 /// The PatchCreation element is analogous to the main function in a C program. When linking, only one PatchCreation section
14000 /// can be given to the linker to produce a successful result. Using this element creates a pcp file.
14001 /// </summary>
14002 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
14003 public class PatchCreation : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
14004 {
14005
14006 private ElementCollection children;
14007
14008 private string idField;
14009
14010 private bool idFieldSet;
14011
14012 private YesNoType allowMajorVersionMismatchesField;
14013
14014 private bool allowMajorVersionMismatchesFieldSet;
14015
14016 private YesNoType allowProductCodeMismatchesField;
14017
14018 private bool allowProductCodeMismatchesFieldSet;
14019
14020 private YesNoType cleanWorkingFolderField;
14021
14022 private bool cleanWorkingFolderFieldSet;
14023
14024 private string codepageField;
14025
14026 private bool codepageFieldSet;
14027
14028 private string outputPathField;
14029
14030 private bool outputPathFieldSet;
14031
14032 private string sourceListField;
14033
14034 private bool sourceListFieldSet;
14035
14036 private int symbolFlagsField;
14037
14038 private bool symbolFlagsFieldSet;
14039
14040 private YesNoType wholeFilesOnlyField;
14041
14042 private bool wholeFilesOnlyFieldSet;
14043
14044 private ISchemaElement parentElement;
14045
14046 public PatchCreation()
14047 {
14048 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
14049 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(PatchInformation)));
14050 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(PatchMetadata)));
14051 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Family)));
14052 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice);
14053 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchProperty)));
14054 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchSequence)));
14055 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ReplacePatch)));
14056 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(TargetProductCode)));
14057 childCollection0.AddCollection(childCollection1);
14058 this.children = childCollection0;
14059 }
14060
14061 public virtual IEnumerable Children
14062 {
14063 get
14064 {
14065 return this.children;
14066 }
14067 }
14068
14069 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
14070 public virtual IEnumerable this[System.Type childType]
14071 {
14072 get
14073 {
14074 return this.children.Filter(childType);
14075 }
14076 }
14077
14078 /// <summary>
14079 /// PatchCreation identifier; this is the primary key for identifying patches.
14080 /// </summary>
14081 public string Id
14082 {
14083 get
14084 {
14085 return this.idField;
14086 }
14087 set
14088 {
14089 this.idFieldSet = true;
14090 this.idField = value;
14091 }
14092 }
14093
14094 /// <summary>
14095 /// Use this to set whether the major versions between the upgrade and target images match. See
14096 /// </summary>
14097 public YesNoType AllowMajorVersionMismatches
14098 {
14099 get
14100 {
14101 return this.allowMajorVersionMismatchesField;
14102 }
14103 set
14104 {
14105 this.allowMajorVersionMismatchesFieldSet = true;
14106 this.allowMajorVersionMismatchesField = value;
14107 }
14108 }
14109
14110 /// <summary>
14111 /// Use this to set whether the product code between the upgrade and target images match. See
14112 /// </summary>
14113 public YesNoType AllowProductCodeMismatches
14114 {
14115 get
14116 {
14117 return this.allowProductCodeMismatchesField;
14118 }
14119 set
14120 {
14121 this.allowProductCodeMismatchesFieldSet = true;
14122 this.allowProductCodeMismatchesField = value;
14123 }
14124 }
14125
14126 /// <summary>
14127 /// Use this to set whether Patchwiz should clean the temp folder when finished. See
14128 /// </summary>
14129 public YesNoType CleanWorkingFolder
14130 {
14131 get
14132 {
14133 return this.cleanWorkingFolderField;
14134 }
14135 set
14136 {
14137 this.cleanWorkingFolderFieldSet = true;
14138 this.cleanWorkingFolderField = value;
14139 }
14140 }
14141
14142 /// <summary>
14143 /// The code page integer value or web name for the resulting PCP. See remarks for more information.
14144 /// </summary>
14145 public string Codepage
14146 {
14147 get
14148 {
14149 return this.codepageField;
14150 }
14151 set
14152 {
14153 this.codepageFieldSet = true;
14154 this.codepageField = value;
14155 }
14156 }
14157
14158 /// <summary>
14159 /// The full path, including file name, of the patch package file that is to be generated. See
14160 /// </summary>
14161 public string OutputPath
14162 {
14163 get
14164 {
14165 return this.outputPathField;
14166 }
14167 set
14168 {
14169 this.outputPathFieldSet = true;
14170 this.outputPathField = value;
14171 }
14172 }
14173
14174 /// <summary>
14175 /// Used to locate the .msp file for the patch if the cached copy is unavailable. See
14176 /// </summary>
14177 public string SourceList
14178 {
14179 get
14180 {
14181 return this.sourceListField;
14182 }
14183 set
14184 {
14185 this.sourceListFieldSet = true;
14186 this.sourceListField = value;
14187 }
14188 }
14189
14190 /// <summary>
14191 /// An 8-digit hex integer representing the combination of patch symbol usage flags to use when creating a binary file patch. See
14192 /// </summary>
14193 public int SymbolFlags
14194 {
14195 get
14196 {
14197 return this.symbolFlagsField;
14198 }
14199 set
14200 {
14201 this.symbolFlagsFieldSet = true;
14202 this.symbolFlagsField = value;
14203 }
14204 }
14205
14206 /// <summary>
14207 /// Use this to set whether changing files should be included in their entirety. See
14208 /// </summary>
14209 public YesNoType WholeFilesOnly
14210 {
14211 get
14212 {
14213 return this.wholeFilesOnlyField;
14214 }
14215 set
14216 {
14217 this.wholeFilesOnlyFieldSet = true;
14218 this.wholeFilesOnlyField = value;
14219 }
14220 }
14221
14222 public virtual ISchemaElement ParentElement
14223 {
14224 get
14225 {
14226 return this.parentElement;
14227 }
14228 set
14229 {
14230 this.parentElement = value;
14231 }
14232 }
14233
14234 public virtual void AddChild(ISchemaElement child)
14235 {
14236 if ((null == child))
14237 {
14238 throw new ArgumentNullException("child");
14239 }
14240 this.children.AddElement(child);
14241 child.ParentElement = this;
14242 }
14243
14244 public virtual void RemoveChild(ISchemaElement child)
14245 {
14246 if ((null == child))
14247 {
14248 throw new ArgumentNullException("child");
14249 }
14250 this.children.RemoveElement(child);
14251 child.ParentElement = null;
14252 }
14253
14254 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
14255 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
14256 ISchemaElement ICreateChildren.CreateChild(string childName)
14257 {
14258 if (String.IsNullOrEmpty(childName))
14259 {
14260 throw new ArgumentNullException("childName");
14261 }
14262 ISchemaElement childValue = null;
14263 if (("PatchInformation" == childName))
14264 {
14265 childValue = new PatchInformation();
14266 }
14267 if (("PatchMetadata" == childName))
14268 {
14269 childValue = new PatchMetadata();
14270 }
14271 if (("Family" == childName))
14272 {
14273 childValue = new Family();
14274 }
14275 if (("PatchProperty" == childName))
14276 {
14277 childValue = new PatchProperty();
14278 }
14279 if (("PatchSequence" == childName))
14280 {
14281 childValue = new PatchSequence();
14282 }
14283 if (("ReplacePatch" == childName))
14284 {
14285 childValue = new ReplacePatch();
14286 }
14287 if (("TargetProductCode" == childName))
14288 {
14289 childValue = new TargetProductCode();
14290 }
14291 if ((null == childValue))
14292 {
14293 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
14294 }
14295 return childValue;
14296 }
14297
14298 /// <summary>
14299 /// Processes this element and all child elements into an XmlWriter.
14300 /// </summary>
14301 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
14302 public virtual void OutputXml(XmlWriter writer)
14303 {
14304 if ((null == writer))
14305 {
14306 throw new ArgumentNullException("writer");
14307 }
14308 writer.WriteStartElement("PatchCreation", "http://wixtoolset.org/schemas/v4/wxs");
14309 if (this.idFieldSet)
14310 {
14311 writer.WriteAttributeString("Id", this.idField);
14312 }
14313 if (this.allowMajorVersionMismatchesFieldSet)
14314 {
14315 if ((this.allowMajorVersionMismatchesField == YesNoType.no))
14316 {
14317 writer.WriteAttributeString("AllowMajorVersionMismatches", "no");
14318 }
14319 if ((this.allowMajorVersionMismatchesField == YesNoType.yes))
14320 {
14321 writer.WriteAttributeString("AllowMajorVersionMismatches", "yes");
14322 }
14323 }
14324 if (this.allowProductCodeMismatchesFieldSet)
14325 {
14326 if ((this.allowProductCodeMismatchesField == YesNoType.no))
14327 {
14328 writer.WriteAttributeString("AllowProductCodeMismatches", "no");
14329 }
14330 if ((this.allowProductCodeMismatchesField == YesNoType.yes))
14331 {
14332 writer.WriteAttributeString("AllowProductCodeMismatches", "yes");
14333 }
14334 }
14335 if (this.cleanWorkingFolderFieldSet)
14336 {
14337 if ((this.cleanWorkingFolderField == YesNoType.no))
14338 {
14339 writer.WriteAttributeString("CleanWorkingFolder", "no");
14340 }
14341 if ((this.cleanWorkingFolderField == YesNoType.yes))
14342 {
14343 writer.WriteAttributeString("CleanWorkingFolder", "yes");
14344 }
14345 }
14346 if (this.codepageFieldSet)
14347 {
14348 writer.WriteAttributeString("Codepage", this.codepageField);
14349 }
14350 if (this.outputPathFieldSet)
14351 {
14352 writer.WriteAttributeString("OutputPath", this.outputPathField);
14353 }
14354 if (this.sourceListFieldSet)
14355 {
14356 writer.WriteAttributeString("SourceList", this.sourceListField);
14357 }
14358 if (this.symbolFlagsFieldSet)
14359 {
14360 writer.WriteAttributeString("SymbolFlags", this.symbolFlagsField.ToString(CultureInfo.InvariantCulture));
14361 }
14362 if (this.wholeFilesOnlyFieldSet)
14363 {
14364 if ((this.wholeFilesOnlyField == YesNoType.no))
14365 {
14366 writer.WriteAttributeString("WholeFilesOnly", "no");
14367 }
14368 if ((this.wholeFilesOnlyField == YesNoType.yes))
14369 {
14370 writer.WriteAttributeString("WholeFilesOnly", "yes");
14371 }
14372 }
14373 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
14374 {
14375 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
14376 childElement.OutputXml(writer);
14377 }
14378 writer.WriteEndElement();
14379 }
14380
14381 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
14382 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
14383 void ISetAttributes.SetAttribute(string name, string value)
14384 {
14385 if (String.IsNullOrEmpty(name))
14386 {
14387 throw new ArgumentNullException("name");
14388 }
14389 if (("Id" == name))
14390 {
14391 this.idField = value;
14392 this.idFieldSet = true;
14393 }
14394 if (("AllowMajorVersionMismatches" == name))
14395 {
14396 this.allowMajorVersionMismatchesField = Enums.ParseYesNoType(value);
14397 this.allowMajorVersionMismatchesFieldSet = true;
14398 }
14399 if (("AllowProductCodeMismatches" == name))
14400 {
14401 this.allowProductCodeMismatchesField = Enums.ParseYesNoType(value);
14402 this.allowProductCodeMismatchesFieldSet = true;
14403 }
14404 if (("CleanWorkingFolder" == name))
14405 {
14406 this.cleanWorkingFolderField = Enums.ParseYesNoType(value);
14407 this.cleanWorkingFolderFieldSet = true;
14408 }
14409 if (("Codepage" == name))
14410 {
14411 this.codepageField = value;
14412 this.codepageFieldSet = true;
14413 }
14414 if (("OutputPath" == name))
14415 {
14416 this.outputPathField = value;
14417 this.outputPathFieldSet = true;
14418 }
14419 if (("SourceList" == name))
14420 {
14421 this.sourceListField = value;
14422 this.sourceListFieldSet = true;
14423 }
14424 if (("SymbolFlags" == name))
14425 {
14426 this.symbolFlagsField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
14427 this.symbolFlagsFieldSet = true;
14428 }
14429 if (("WholeFilesOnly" == name))
14430 {
14431 this.wholeFilesOnlyField = Enums.ParseYesNoType(value);
14432 this.wholeFilesOnlyFieldSet = true;
14433 }
14434 }
14435 }
14436
14437 /// <summary>
14438 /// 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.
14439 /// </summary>
14440 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
14441 public class PatchInformation : ISchemaElement, ISetAttributes
14442 {
14443
14444 private string descriptionField;
14445
14446 private bool descriptionFieldSet;
14447
14448 private string platformsField;
14449
14450 private bool platformsFieldSet;
14451
14452 private string languagesField;
14453
14454 private bool languagesFieldSet;
14455
14456 private string manufacturerField;
14457
14458 private bool manufacturerFieldSet;
14459
14460 private string keywordsField;
14461
14462 private bool keywordsFieldSet;
14463
14464 private string commentsField;
14465
14466 private bool commentsFieldSet;
14467
14468 private YesNoDefaultType readOnlyField;
14469
14470 private bool readOnlyFieldSet;
14471
14472 private string summaryCodepageField;
14473
14474 private bool summaryCodepageFieldSet;
14475
14476 private YesNoType shortNamesField;
14477
14478 private bool shortNamesFieldSet;
14479
14480 private YesNoType compressedField;
14481
14482 private bool compressedFieldSet;
14483
14484 private YesNoType adminImageField;
14485
14486 private bool adminImageFieldSet;
14487
14488 private ISchemaElement parentElement;
14489
14490 /// <summary>
14491 /// A short description of the patch that includes the name of the product.
14492 /// </summary>
14493 public string Description
14494 {
14495 get
14496 {
14497 return this.descriptionField;
14498 }
14499 set
14500 {
14501 this.descriptionFieldSet = true;
14502 this.descriptionField = value;
14503 }
14504 }
14505
14506 public string Platforms
14507 {
14508 get
14509 {
14510 return this.platformsField;
14511 }
14512 set
14513 {
14514 this.platformsFieldSet = true;
14515 this.platformsField = value;
14516 }
14517 }
14518
14519 public string Languages
14520 {
14521 get
14522 {
14523 return this.languagesField;
14524 }
14525 set
14526 {
14527 this.languagesFieldSet = true;
14528 this.languagesField = value;
14529 }
14530 }
14531
14532 /// <summary>
14533 /// The name of the manufacturer of the patch package.
14534 /// </summary>
14535 public string Manufacturer
14536 {
14537 get
14538 {
14539 return this.manufacturerField;
14540 }
14541 set
14542 {
14543 this.manufacturerFieldSet = true;
14544 this.manufacturerField = value;
14545 }
14546 }
14547
14548 /// <summary>
14549 /// A semicolon-delimited list of network or URL locations for alternate sources of the patch. The default is "Installer,Patching,PCP,Database".
14550 /// </summary>
14551 public string Keywords
14552 {
14553 get
14554 {
14555 return this.keywordsField;
14556 }
14557 set
14558 {
14559 this.keywordsFieldSet = true;
14560 this.keywordsField = value;
14561 }
14562 }
14563
14564 /// <summary>
14565 /// General purpose of the patch package. For example, "This patch contains the logic and data required to install
14566 /// </summary>
14567 public string Comments
14568 {
14569 get
14570 {
14571 return this.commentsField;
14572 }
14573 set
14574 {
14575 this.commentsFieldSet = true;
14576 this.commentsField = value;
14577 }
14578 }
14579
14580 /// <summary>
14581 /// The value of this attribute conveys whether the package should be opened as read-only.
14582 /// A database editing tool should not modify a read-only enforced database and should
14583 /// issue a warning at attempts to modify a read-only recommended database.
14584 /// </summary>
14585 public YesNoDefaultType ReadOnly
14586 {
14587 get
14588 {
14589 return this.readOnlyField;
14590 }
14591 set
14592 {
14593 this.readOnlyFieldSet = true;
14594 this.readOnlyField = value;
14595 }
14596 }
14597
14598 /// <summary>
14599 /// The code page integer value or web name for summary info strings only. The default is 1252. See remarks for more information.
14600 /// </summary>
14601 public string SummaryCodepage
14602 {
14603 get
14604 {
14605 return this.summaryCodepageField;
14606 }
14607 set
14608 {
14609 this.summaryCodepageFieldSet = true;
14610 this.summaryCodepageField = value;
14611 }
14612 }
14613
14614 public YesNoType ShortNames
14615 {
14616 get
14617 {
14618 return this.shortNamesField;
14619 }
14620 set
14621 {
14622 this.shortNamesFieldSet = true;
14623 this.shortNamesField = value;
14624 }
14625 }
14626
14627 public YesNoType Compressed
14628 {
14629 get
14630 {
14631 return this.compressedField;
14632 }
14633 set
14634 {
14635 this.compressedFieldSet = true;
14636 this.compressedField = value;
14637 }
14638 }
14639
14640 public YesNoType AdminImage
14641 {
14642 get
14643 {
14644 return this.adminImageField;
14645 }
14646 set
14647 {
14648 this.adminImageFieldSet = true;
14649 this.adminImageField = value;
14650 }
14651 }
14652
14653 public virtual ISchemaElement ParentElement
14654 {
14655 get
14656 {
14657 return this.parentElement;
14658 }
14659 set
14660 {
14661 this.parentElement = value;
14662 }
14663 }
14664
14665 /// <summary>
14666 /// Processes this element and all child elements into an XmlWriter.
14667 /// </summary>
14668 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
14669 public virtual void OutputXml(XmlWriter writer)
14670 {
14671 if ((null == writer))
14672 {
14673 throw new ArgumentNullException("writer");
14674 }
14675 writer.WriteStartElement("PatchInformation", "http://wixtoolset.org/schemas/v4/wxs");
14676 if (this.descriptionFieldSet)
14677 {
14678 writer.WriteAttributeString("Description", this.descriptionField);
14679 }
14680 if (this.platformsFieldSet)
14681 {
14682 writer.WriteAttributeString("Platforms", this.platformsField);
14683 }
14684 if (this.languagesFieldSet)
14685 {
14686 writer.WriteAttributeString("Languages", this.languagesField);
14687 }
14688 if (this.manufacturerFieldSet)
14689 {
14690 writer.WriteAttributeString("Manufacturer", this.manufacturerField);
14691 }
14692 if (this.keywordsFieldSet)
14693 {
14694 writer.WriteAttributeString("Keywords", this.keywordsField);
14695 }
14696 if (this.commentsFieldSet)
14697 {
14698 writer.WriteAttributeString("Comments", this.commentsField);
14699 }
14700 if (this.readOnlyFieldSet)
14701 {
14702 if ((this.readOnlyField == YesNoDefaultType.@default))
14703 {
14704 writer.WriteAttributeString("ReadOnly", "default");
14705 }
14706 if ((this.readOnlyField == YesNoDefaultType.no))
14707 {
14708 writer.WriteAttributeString("ReadOnly", "no");
14709 }
14710 if ((this.readOnlyField == YesNoDefaultType.yes))
14711 {
14712 writer.WriteAttributeString("ReadOnly", "yes");
14713 }
14714 }
14715 if (this.summaryCodepageFieldSet)
14716 {
14717 writer.WriteAttributeString("SummaryCodepage", this.summaryCodepageField);
14718 }
14719 if (this.shortNamesFieldSet)
14720 {
14721 if ((this.shortNamesField == YesNoType.no))
14722 {
14723 writer.WriteAttributeString("ShortNames", "no");
14724 }
14725 if ((this.shortNamesField == YesNoType.yes))
14726 {
14727 writer.WriteAttributeString("ShortNames", "yes");
14728 }
14729 }
14730 if (this.compressedFieldSet)
14731 {
14732 if ((this.compressedField == YesNoType.no))
14733 {
14734 writer.WriteAttributeString("Compressed", "no");
14735 }
14736 if ((this.compressedField == YesNoType.yes))
14737 {
14738 writer.WriteAttributeString("Compressed", "yes");
14739 }
14740 }
14741 if (this.adminImageFieldSet)
14742 {
14743 if ((this.adminImageField == YesNoType.no))
14744 {
14745 writer.WriteAttributeString("AdminImage", "no");
14746 }
14747 if ((this.adminImageField == YesNoType.yes))
14748 {
14749 writer.WriteAttributeString("AdminImage", "yes");
14750 }
14751 }
14752 writer.WriteEndElement();
14753 }
14754
14755 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
14756 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
14757 void ISetAttributes.SetAttribute(string name, string value)
14758 {
14759 if (String.IsNullOrEmpty(name))
14760 {
14761 throw new ArgumentNullException("name");
14762 }
14763 if (("Description" == name))
14764 {
14765 this.descriptionField = value;
14766 this.descriptionFieldSet = true;
14767 }
14768 if (("Platforms" == name))
14769 {
14770 this.platformsField = value;
14771 this.platformsFieldSet = true;
14772 }
14773 if (("Languages" == name))
14774 {
14775 this.languagesField = value;
14776 this.languagesFieldSet = true;
14777 }
14778 if (("Manufacturer" == name))
14779 {
14780 this.manufacturerField = value;
14781 this.manufacturerFieldSet = true;
14782 }
14783 if (("Keywords" == name))
14784 {
14785 this.keywordsField = value;
14786 this.keywordsFieldSet = true;
14787 }
14788 if (("Comments" == name))
14789 {
14790 this.commentsField = value;
14791 this.commentsFieldSet = true;
14792 }
14793 if (("ReadOnly" == name))
14794 {
14795 this.readOnlyField = Enums.ParseYesNoDefaultType(value);
14796 this.readOnlyFieldSet = true;
14797 }
14798 if (("SummaryCodepage" == name))
14799 {
14800 this.summaryCodepageField = value;
14801 this.summaryCodepageFieldSet = true;
14802 }
14803 if (("ShortNames" == name))
14804 {
14805 this.shortNamesField = Enums.ParseYesNoType(value);
14806 this.shortNamesFieldSet = true;
14807 }
14808 if (("Compressed" == name))
14809 {
14810 this.compressedField = Enums.ParseYesNoType(value);
14811 this.compressedFieldSet = true;
14812 }
14813 if (("AdminImage" == name))
14814 {
14815 this.adminImageField = Enums.ParseYesNoType(value);
14816 this.adminImageFieldSet = true;
14817 }
14818 }
14819 }
14820
14821 /// <summary>
14822 /// Properties about the patch to be placed in the PatchMetadata table.
14823 /// </summary>
14824 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
14825 public class PatchMetadata : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
14826 {
14827
14828 private ElementCollection children;
14829
14830 private YesNoType allowRemovalField;
14831
14832 private bool allowRemovalFieldSet;
14833
14834 private string classificationField;
14835
14836 private bool classificationFieldSet;
14837
14838 private string creationTimeUTCField;
14839
14840 private bool creationTimeUTCFieldSet;
14841
14842 private string descriptionField;
14843
14844 private bool descriptionFieldSet;
14845
14846 private string displayNameField;
14847
14848 private bool displayNameFieldSet;
14849
14850 private string manufacturerNameField;
14851
14852 private bool manufacturerNameFieldSet;
14853
14854 private string minorUpdateTargetRTMField;
14855
14856 private bool minorUpdateTargetRTMFieldSet;
14857
14858 private string moreInfoURLField;
14859
14860 private bool moreInfoURLFieldSet;
14861
14862 private YesNoType optimizedInstallModeField;
14863
14864 private bool optimizedInstallModeFieldSet;
14865
14866 private string targetProductNameField;
14867
14868 private bool targetProductNameFieldSet;
14869
14870 private ISchemaElement parentElement;
14871
14872 public PatchMetadata()
14873 {
14874 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
14875 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice);
14876 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomProperty)));
14877 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(OptimizeCustomActions)));
14878 childCollection0.AddCollection(childCollection1);
14879 this.children = childCollection0;
14880 }
14881
14882 public virtual IEnumerable Children
14883 {
14884 get
14885 {
14886 return this.children;
14887 }
14888 }
14889
14890 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
14891 public virtual IEnumerable this[System.Type childType]
14892 {
14893 get
14894 {
14895 return this.children.Filter(childType);
14896 }
14897 }
14898
14899 /// <summary>
14900 /// Whether this is an uninstallable patch.
14901 /// </summary>
14902 public YesNoType AllowRemoval
14903 {
14904 get
14905 {
14906 return this.allowRemovalField;
14907 }
14908 set
14909 {
14910 this.allowRemovalFieldSet = true;
14911 this.allowRemovalField = value;
14912 }
14913 }
14914
14915 /// <summary>
14916 /// Category of updates. Recommended values are Critical Update, Hotfix, Security Rollup, Security Update, Service Pack, Update, Update Rollup.
14917 /// </summary>
14918 public string Classification
14919 {
14920 get
14921 {
14922 return this.classificationField;
14923 }
14924 set
14925 {
14926 this.classificationFieldSet = true;
14927 this.classificationField = value;
14928 }
14929 }
14930
14931 /// <summary>
14932 /// Creation time of the .msp file in the form mm-dd-yy HH:MM (month-day-year hour:minute).
14933 /// </summary>
14934 [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")]
14935 public string CreationTimeUTC
14936 {
14937 get
14938 {
14939 return this.creationTimeUTCField;
14940 }
14941 set
14942 {
14943 this.creationTimeUTCFieldSet = true;
14944 this.creationTimeUTCField = value;
14945 }
14946 }
14947
14948 /// <summary>
14949 /// Description of the patch.
14950 /// </summary>
14951 public string Description
14952 {
14953 get
14954 {
14955 return this.descriptionField;
14956 }
14957 set
14958 {
14959 this.descriptionFieldSet = true;
14960 this.descriptionField = value;
14961 }
14962 }
14963
14964 /// <summary>
14965 /// A title for the patch that is suitable for public display. In Add/Remove Programs from XP SP2 on.
14966 /// </summary>
14967 public string DisplayName
14968 {
14969 get
14970 {
14971 return this.displayNameField;
14972 }
14973 set
14974 {
14975 this.displayNameFieldSet = true;
14976 this.displayNameField = value;
14977 }
14978 }
14979
14980 /// <summary>
14981 /// Name of the manufacturer.
14982 /// </summary>
14983 public string ManufacturerName
14984 {
14985 get
14986 {
14987 return this.manufacturerNameField;
14988 }
14989 set
14990 {
14991 this.manufacturerNameFieldSet = true;
14992 this.manufacturerNameField = value;
14993 }
14994 }
14995
14996 /// <summary>
14997 /// Indicates that the patch targets the RTM version of the product or the most recent major
14998 /// upgrade patch. Author this optional property in minor update patches that contain sequencing
14999 /// information to indicate that the patch removes all patches up to the RTM version of the
15000 /// product, or up to the most recent major upgrade patch. This property is available beginning
15001 /// with Windows Installer 3.1.
15002 /// </summary>
15003 [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")]
15004 public string MinorUpdateTargetRTM
15005 {
15006 get
15007 {
15008 return this.minorUpdateTargetRTMField;
15009 }
15010 set
15011 {
15012 this.minorUpdateTargetRTMFieldSet = true;
15013 this.minorUpdateTargetRTMField = value;
15014 }
15015 }
15016
15017 /// <summary>
15018 /// A URL that provides information specific to this patch. In Add/Remove Programs from XP SP2 on.
15019 /// </summary>
15020 [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")]
15021 public string MoreInfoURL
15022 {
15023 get
15024 {
15025 return this.moreInfoURLField;
15026 }
15027 set
15028 {
15029 this.moreInfoURLFieldSet = true;
15030 this.moreInfoURLField = value;
15031 }
15032 }
15033
15034 /// <summary>
15035 /// If this attribute is set to 'yes' in all the patches to be applied in a transaction, the
15036 /// application of the patch is optimized if possible. Available beginning with Windows Installer 3.1.
15037 /// </summary>
15038 public YesNoType OptimizedInstallMode
15039 {
15040 get
15041 {
15042 return this.optimizedInstallModeField;
15043 }
15044 set
15045 {
15046 this.optimizedInstallModeFieldSet = true;
15047 this.optimizedInstallModeField = value;
15048 }
15049 }
15050
15051 /// <summary>
15052 /// Name of the application or target product suite.
15053 /// </summary>
15054 public string TargetProductName
15055 {
15056 get
15057 {
15058 return this.targetProductNameField;
15059 }
15060 set
15061 {
15062 this.targetProductNameFieldSet = true;
15063 this.targetProductNameField = value;
15064 }
15065 }
15066
15067 public virtual ISchemaElement ParentElement
15068 {
15069 get
15070 {
15071 return this.parentElement;
15072 }
15073 set
15074 {
15075 this.parentElement = value;
15076 }
15077 }
15078
15079 public virtual void AddChild(ISchemaElement child)
15080 {
15081 if ((null == child))
15082 {
15083 throw new ArgumentNullException("child");
15084 }
15085 this.children.AddElement(child);
15086 child.ParentElement = this;
15087 }
15088
15089 public virtual void RemoveChild(ISchemaElement child)
15090 {
15091 if ((null == child))
15092 {
15093 throw new ArgumentNullException("child");
15094 }
15095 this.children.RemoveElement(child);
15096 child.ParentElement = null;
15097 }
15098
15099 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
15100 ISchemaElement ICreateChildren.CreateChild(string childName)
15101 {
15102 if (String.IsNullOrEmpty(childName))
15103 {
15104 throw new ArgumentNullException("childName");
15105 }
15106 ISchemaElement childValue = null;
15107 if (("CustomProperty" == childName))
15108 {
15109 childValue = new CustomProperty();
15110 }
15111 if (("OptimizeCustomActions" == childName))
15112 {
15113 childValue = new OptimizeCustomActions();
15114 }
15115 if ((null == childValue))
15116 {
15117 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
15118 }
15119 return childValue;
15120 }
15121
15122 /// <summary>
15123 /// Processes this element and all child elements into an XmlWriter.
15124 /// </summary>
15125 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
15126 public virtual void OutputXml(XmlWriter writer)
15127 {
15128 if ((null == writer))
15129 {
15130 throw new ArgumentNullException("writer");
15131 }
15132 writer.WriteStartElement("PatchMetadata", "http://wixtoolset.org/schemas/v4/wxs");
15133 if (this.allowRemovalFieldSet)
15134 {
15135 if ((this.allowRemovalField == YesNoType.no))
15136 {
15137 writer.WriteAttributeString("AllowRemoval", "no");
15138 }
15139 if ((this.allowRemovalField == YesNoType.yes))
15140 {
15141 writer.WriteAttributeString("AllowRemoval", "yes");
15142 }
15143 }
15144 if (this.classificationFieldSet)
15145 {
15146 writer.WriteAttributeString("Classification", this.classificationField);
15147 }
15148 if (this.creationTimeUTCFieldSet)
15149 {
15150 writer.WriteAttributeString("CreationTimeUTC", this.creationTimeUTCField);
15151 }
15152 if (this.descriptionFieldSet)
15153 {
15154 writer.WriteAttributeString("Description", this.descriptionField);
15155 }
15156 if (this.displayNameFieldSet)
15157 {
15158 writer.WriteAttributeString("DisplayName", this.displayNameField);
15159 }
15160 if (this.manufacturerNameFieldSet)
15161 {
15162 writer.WriteAttributeString("ManufacturerName", this.manufacturerNameField);
15163 }
15164 if (this.minorUpdateTargetRTMFieldSet)
15165 {
15166 writer.WriteAttributeString("MinorUpdateTargetRTM", this.minorUpdateTargetRTMField);
15167 }
15168 if (this.moreInfoURLFieldSet)
15169 {
15170 writer.WriteAttributeString("MoreInfoURL", this.moreInfoURLField);
15171 }
15172 if (this.optimizedInstallModeFieldSet)
15173 {
15174 if ((this.optimizedInstallModeField == YesNoType.no))
15175 {
15176 writer.WriteAttributeString("OptimizedInstallMode", "no");
15177 }
15178 if ((this.optimizedInstallModeField == YesNoType.yes))
15179 {
15180 writer.WriteAttributeString("OptimizedInstallMode", "yes");
15181 }
15182 }
15183 if (this.targetProductNameFieldSet)
15184 {
15185 writer.WriteAttributeString("TargetProductName", this.targetProductNameField);
15186 }
15187 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
15188 {
15189 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
15190 childElement.OutputXml(writer);
15191 }
15192 writer.WriteEndElement();
15193 }
15194
15195 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
15196 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
15197 void ISetAttributes.SetAttribute(string name, string value)
15198 {
15199 if (String.IsNullOrEmpty(name))
15200 {
15201 throw new ArgumentNullException("name");
15202 }
15203 if (("AllowRemoval" == name))
15204 {
15205 this.allowRemovalField = Enums.ParseYesNoType(value);
15206 this.allowRemovalFieldSet = true;
15207 }
15208 if (("Classification" == name))
15209 {
15210 this.classificationField = value;
15211 this.classificationFieldSet = true;
15212 }
15213 if (("CreationTimeUTC" == name))
15214 {
15215 this.creationTimeUTCField = value;
15216 this.creationTimeUTCFieldSet = true;
15217 }
15218 if (("Description" == name))
15219 {
15220 this.descriptionField = value;
15221 this.descriptionFieldSet = true;
15222 }
15223 if (("DisplayName" == name))
15224 {
15225 this.displayNameField = value;
15226 this.displayNameFieldSet = true;
15227 }
15228 if (("ManufacturerName" == name))
15229 {
15230 this.manufacturerNameField = value;
15231 this.manufacturerNameFieldSet = true;
15232 }
15233 if (("MinorUpdateTargetRTM" == name))
15234 {
15235 this.minorUpdateTargetRTMField = value;
15236 this.minorUpdateTargetRTMFieldSet = true;
15237 }
15238 if (("MoreInfoURL" == name))
15239 {
15240 this.moreInfoURLField = value;
15241 this.moreInfoURLFieldSet = true;
15242 }
15243 if (("OptimizedInstallMode" == name))
15244 {
15245 this.optimizedInstallModeField = Enums.ParseYesNoType(value);
15246 this.optimizedInstallModeFieldSet = true;
15247 }
15248 if (("TargetProductName" == name))
15249 {
15250 this.targetProductNameField = value;
15251 this.targetProductNameFieldSet = true;
15252 }
15253 }
15254 }
15255
15256 /// <summary>
15257 /// A custom property for the PatchMetadata table.
15258 /// </summary>
15259 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
15260 public class CustomProperty : ISchemaElement, ISetAttributes
15261 {
15262
15263 private string companyField;
15264
15265 private bool companyFieldSet;
15266
15267 private string propertyField;
15268
15269 private bool propertyFieldSet;
15270
15271 private string valueField;
15272
15273 private bool valueFieldSet;
15274
15275 private ISchemaElement parentElement;
15276
15277 /// <summary>
15278 /// The name of the company.
15279 /// </summary>
15280 public string Company
15281 {
15282 get
15283 {
15284 return this.companyField;
15285 }
15286 set
15287 {
15288 this.companyFieldSet = true;
15289 this.companyField = value;
15290 }
15291 }
15292
15293 /// <summary>
15294 /// The name of the metadata property.
15295 /// </summary>
15296 public string Property
15297 {
15298 get
15299 {
15300 return this.propertyField;
15301 }
15302 set
15303 {
15304 this.propertyFieldSet = true;
15305 this.propertyField = value;
15306 }
15307 }
15308
15309 /// <summary>
15310 /// Value of the metadata property.
15311 /// </summary>
15312 public string Value
15313 {
15314 get
15315 {
15316 return this.valueField;
15317 }
15318 set
15319 {
15320 this.valueFieldSet = true;
15321 this.valueField = value;
15322 }
15323 }
15324
15325 public virtual ISchemaElement ParentElement
15326 {
15327 get
15328 {
15329 return this.parentElement;
15330 }
15331 set
15332 {
15333 this.parentElement = value;
15334 }
15335 }
15336
15337 /// <summary>
15338 /// Processes this element and all child elements into an XmlWriter.
15339 /// </summary>
15340 public virtual void OutputXml(XmlWriter writer)
15341 {
15342 if ((null == writer))
15343 {
15344 throw new ArgumentNullException("writer");
15345 }
15346 writer.WriteStartElement("CustomProperty", "http://wixtoolset.org/schemas/v4/wxs");
15347 if (this.companyFieldSet)
15348 {
15349 writer.WriteAttributeString("Company", this.companyField);
15350 }
15351 if (this.propertyFieldSet)
15352 {
15353 writer.WriteAttributeString("Property", this.propertyField);
15354 }
15355 if (this.valueFieldSet)
15356 {
15357 writer.WriteAttributeString("Value", this.valueField);
15358 }
15359 writer.WriteEndElement();
15360 }
15361
15362 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
15363 void ISetAttributes.SetAttribute(string name, string value)
15364 {
15365 if (String.IsNullOrEmpty(name))
15366 {
15367 throw new ArgumentNullException("name");
15368 }
15369 if (("Company" == name))
15370 {
15371 this.companyField = value;
15372 this.companyFieldSet = true;
15373 }
15374 if (("Property" == name))
15375 {
15376 this.propertyField = value;
15377 this.propertyFieldSet = true;
15378 }
15379 if (("Value" == name))
15380 {
15381 this.valueField = value;
15382 this.valueFieldSet = true;
15383 }
15384 }
15385 }
15386
15387 /// <summary>
15388 /// A patch that is deprecated by this patch.
15389 /// </summary>
15390 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
15391 public class ReplacePatch : ISchemaElement, ISetAttributes
15392 {
15393
15394 private string idField;
15395
15396 private bool idFieldSet;
15397
15398 private ISchemaElement parentElement;
15399
15400 /// <summary>
15401 /// Patch GUID to be unregistered if it exists on the machine targeted by this patch.
15402 /// </summary>
15403 public string Id
15404 {
15405 get
15406 {
15407 return this.idField;
15408 }
15409 set
15410 {
15411 this.idFieldSet = true;
15412 this.idField = value;
15413 }
15414 }
15415
15416 public virtual ISchemaElement ParentElement
15417 {
15418 get
15419 {
15420 return this.parentElement;
15421 }
15422 set
15423 {
15424 this.parentElement = value;
15425 }
15426 }
15427
15428 /// <summary>
15429 /// Processes this element and all child elements into an XmlWriter.
15430 /// </summary>
15431 public virtual void OutputXml(XmlWriter writer)
15432 {
15433 if ((null == writer))
15434 {
15435 throw new ArgumentNullException("writer");
15436 }
15437 writer.WriteStartElement("ReplacePatch", "http://wixtoolset.org/schemas/v4/wxs");
15438 if (this.idFieldSet)
15439 {
15440 writer.WriteAttributeString("Id", this.idField);
15441 }
15442 writer.WriteEndElement();
15443 }
15444
15445 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
15446 void ISetAttributes.SetAttribute(string name, string value)
15447 {
15448 if (String.IsNullOrEmpty(name))
15449 {
15450 throw new ArgumentNullException("name");
15451 }
15452 if (("Id" == name))
15453 {
15454 this.idField = value;
15455 this.idFieldSet = true;
15456 }
15457 }
15458 }
15459
15460 /// <summary>
15461 /// The product codes for products that can accept the patch.
15462 /// </summary>
15463 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
15464 public class TargetProductCodes : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
15465 {
15466
15467 private ElementCollection children;
15468
15469 private YesNoType replaceField;
15470
15471 private bool replaceFieldSet;
15472
15473 private ISchemaElement parentElement;
15474
15475 public TargetProductCodes()
15476 {
15477 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
15478 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(TargetProductCode)));
15479 this.children = childCollection0;
15480 }
15481
15482 public virtual IEnumerable Children
15483 {
15484 get
15485 {
15486 return this.children;
15487 }
15488 }
15489
15490 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
15491 public virtual IEnumerable this[System.Type childType]
15492 {
15493 get
15494 {
15495 return this.children.Filter(childType);
15496 }
15497 }
15498
15499 /// <summary>
15500 /// Whether to replace the product codes that can accept the patch from the target packages with the child elements.
15501 /// </summary>
15502 public YesNoType Replace
15503 {
15504 get
15505 {
15506 return this.replaceField;
15507 }
15508 set
15509 {
15510 this.replaceFieldSet = true;
15511 this.replaceField = value;
15512 }
15513 }
15514
15515 public virtual ISchemaElement ParentElement
15516 {
15517 get
15518 {
15519 return this.parentElement;
15520 }
15521 set
15522 {
15523 this.parentElement = value;
15524 }
15525 }
15526
15527 public virtual void AddChild(ISchemaElement child)
15528 {
15529 if ((null == child))
15530 {
15531 throw new ArgumentNullException("child");
15532 }
15533 this.children.AddElement(child);
15534 child.ParentElement = this;
15535 }
15536
15537 public virtual void RemoveChild(ISchemaElement child)
15538 {
15539 if ((null == child))
15540 {
15541 throw new ArgumentNullException("child");
15542 }
15543 this.children.RemoveElement(child);
15544 child.ParentElement = null;
15545 }
15546
15547 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
15548 ISchemaElement ICreateChildren.CreateChild(string childName)
15549 {
15550 if (String.IsNullOrEmpty(childName))
15551 {
15552 throw new ArgumentNullException("childName");
15553 }
15554 ISchemaElement childValue = null;
15555 if (("TargetProductCode" == childName))
15556 {
15557 childValue = new TargetProductCode();
15558 }
15559 if ((null == childValue))
15560 {
15561 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
15562 }
15563 return childValue;
15564 }
15565
15566 /// <summary>
15567 /// Processes this element and all child elements into an XmlWriter.
15568 /// </summary>
15569 public virtual void OutputXml(XmlWriter writer)
15570 {
15571 if ((null == writer))
15572 {
15573 throw new ArgumentNullException("writer");
15574 }
15575 writer.WriteStartElement("TargetProductCodes", "http://wixtoolset.org/schemas/v4/wxs");
15576 if (this.replaceFieldSet)
15577 {
15578 if ((this.replaceField == YesNoType.no))
15579 {
15580 writer.WriteAttributeString("Replace", "no");
15581 }
15582 if ((this.replaceField == YesNoType.yes))
15583 {
15584 writer.WriteAttributeString("Replace", "yes");
15585 }
15586 }
15587 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
15588 {
15589 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
15590 childElement.OutputXml(writer);
15591 }
15592 writer.WriteEndElement();
15593 }
15594
15595 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
15596 void ISetAttributes.SetAttribute(string name, string value)
15597 {
15598 if (String.IsNullOrEmpty(name))
15599 {
15600 throw new ArgumentNullException("name");
15601 }
15602 if (("Replace" == name))
15603 {
15604 this.replaceField = Enums.ParseYesNoType(value);
15605 this.replaceFieldSet = true;
15606 }
15607 }
15608 }
15609
15610 /// <summary>
15611 /// A product code for a product that can accept the patch.
15612 /// </summary>
15613 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
15614 public class TargetProductCode : ISchemaElement, ISetAttributes
15615 {
15616
15617 private string idField;
15618
15619 private bool idFieldSet;
15620
15621 private ISchemaElement parentElement;
15622
15623 /// <summary>
15624 /// The product code for a product that can accept the patch. This can be '*'. See remarks for more information.
15625 /// </summary>
15626 public string Id
15627 {
15628 get
15629 {
15630 return this.idField;
15631 }
15632 set
15633 {
15634 this.idFieldSet = true;
15635 this.idField = value;
15636 }
15637 }
15638
15639 public virtual ISchemaElement ParentElement
15640 {
15641 get
15642 {
15643 return this.parentElement;
15644 }
15645 set
15646 {
15647 this.parentElement = value;
15648 }
15649 }
15650
15651 /// <summary>
15652 /// Processes this element and all child elements into an XmlWriter.
15653 /// </summary>
15654 public virtual void OutputXml(XmlWriter writer)
15655 {
15656 if ((null == writer))
15657 {
15658 throw new ArgumentNullException("writer");
15659 }
15660 writer.WriteStartElement("TargetProductCode", "http://wixtoolset.org/schemas/v4/wxs");
15661 if (this.idFieldSet)
15662 {
15663 writer.WriteAttributeString("Id", this.idField);
15664 }
15665 writer.WriteEndElement();
15666 }
15667
15668 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
15669 void ISetAttributes.SetAttribute(string name, string value)
15670 {
15671 if (String.IsNullOrEmpty(name))
15672 {
15673 throw new ArgumentNullException("name");
15674 }
15675 if (("Id" == name))
15676 {
15677 this.idField = value;
15678 this.idFieldSet = true;
15679 }
15680 }
15681 }
15682
15683 /// <summary>
15684 /// A property for this patch database.
15685 /// </summary>
15686 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
15687 public class PatchProperty : ISchemaElement, ISetAttributes
15688 {
15689
15690 private string companyField;
15691
15692 private bool companyFieldSet;
15693
15694 private string nameField;
15695
15696 private bool nameFieldSet;
15697
15698 private string valueField;
15699
15700 private bool valueFieldSet;
15701
15702 private ISchemaElement parentElement;
15703
15704 /// <summary>
15705 /// Name of the company for a custom metadata property.
15706 /// </summary>
15707 public string Company
15708 {
15709 get
15710 {
15711 return this.companyField;
15712 }
15713 set
15714 {
15715 this.companyFieldSet = true;
15716 this.companyField = value;
15717 }
15718 }
15719
15720 /// <summary>
15721 /// Name of the patch property.
15722 /// </summary>
15723 public string Name
15724 {
15725 get
15726 {
15727 return this.nameField;
15728 }
15729 set
15730 {
15731 this.nameFieldSet = true;
15732 this.nameField = value;
15733 }
15734 }
15735
15736 /// <summary>
15737 /// Value of the patch property.
15738 /// </summary>
15739 public string Value
15740 {
15741 get
15742 {
15743 return this.valueField;
15744 }
15745 set
15746 {
15747 this.valueFieldSet = true;
15748 this.valueField = value;
15749 }
15750 }
15751
15752 public virtual ISchemaElement ParentElement
15753 {
15754 get
15755 {
15756 return this.parentElement;
15757 }
15758 set
15759 {
15760 this.parentElement = value;
15761 }
15762 }
15763
15764 /// <summary>
15765 /// Processes this element and all child elements into an XmlWriter.
15766 /// </summary>
15767 public virtual void OutputXml(XmlWriter writer)
15768 {
15769 if ((null == writer))
15770 {
15771 throw new ArgumentNullException("writer");
15772 }
15773 writer.WriteStartElement("PatchProperty", "http://wixtoolset.org/schemas/v4/wxs");
15774 if (this.companyFieldSet)
15775 {
15776 writer.WriteAttributeString("Company", this.companyField);
15777 }
15778 if (this.nameFieldSet)
15779 {
15780 writer.WriteAttributeString("Name", this.nameField);
15781 }
15782 if (this.valueFieldSet)
15783 {
15784 writer.WriteAttributeString("Value", this.valueField);
15785 }
15786 writer.WriteEndElement();
15787 }
15788
15789 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
15790 void ISetAttributes.SetAttribute(string name, string value)
15791 {
15792 if (String.IsNullOrEmpty(name))
15793 {
15794 throw new ArgumentNullException("name");
15795 }
15796 if (("Company" == name))
15797 {
15798 this.companyField = value;
15799 this.companyFieldSet = true;
15800 }
15801 if (("Name" == name))
15802 {
15803 this.nameField = value;
15804 this.nameFieldSet = true;
15805 }
15806 if (("Value" == name))
15807 {
15808 this.valueField = value;
15809 this.valueFieldSet = true;
15810 }
15811 }
15812 }
15813
15814 /// <summary>
15815 /// Sequence information for this patch database. Sequence information is generated automatically in most cases, and rarely needs to be set explicitly.
15816 /// </summary>
15817 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
15818 public class PatchSequence : ISchemaElement, ISetAttributes
15819 {
15820
15821 private string patchFamilyField;
15822
15823 private bool patchFamilyFieldSet;
15824
15825 private string productCodeField;
15826
15827 private bool productCodeFieldSet;
15828
15829 private string sequenceField;
15830
15831 private bool sequenceFieldSet;
15832
15833 private YesNoType supersedeField;
15834
15835 private bool supersedeFieldSet;
15836
15837 private string targetField;
15838
15839 private bool targetFieldSet;
15840
15841 private string targetImageField;
15842
15843 private bool targetImageFieldSet;
15844
15845 private ISchemaElement parentElement;
15846
15847 /// <summary>
15848 /// Identifier which indicates a sequence family to which this patch belongs.
15849 /// </summary>
15850 public string PatchFamily
15851 {
15852 get
15853 {
15854 return this.patchFamilyField;
15855 }
15856 set
15857 {
15858 this.patchFamilyFieldSet = true;
15859 this.patchFamilyField = value;
15860 }
15861 }
15862
15863 /// <summary>
15864 /// Specifies the ProductCode of the product that this family applies to.
15865 /// This attribute cannot the specified if the TargetImage attribute is specified.
15866 /// </summary>
15867 public string ProductCode
15868 {
15869 get
15870 {
15871 return this.productCodeField;
15872 }
15873 set
15874 {
15875 this.productCodeFieldSet = true;
15876 this.productCodeField = value;
15877 }
15878 }
15879
15880 /// <summary>
15881 /// 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.
15882 /// </summary>
15883 public string Sequence
15884 {
15885 get
15886 {
15887 return this.sequenceField;
15888 }
15889 set
15890 {
15891 this.sequenceFieldSet = true;
15892 this.sequenceField = value;
15893 }
15894 }
15895
15896 /// <summary>
15897 /// Set this value to 'yes' to indicate that this patch will supersede all previous patches in this patch family.
15898 /// The default value is 'no'.
15899 /// </summary>
15900 public YesNoType Supersede
15901 {
15902 get
15903 {
15904 return this.supersedeField;
15905 }
15906 set
15907 {
15908 this.supersedeFieldSet = true;
15909 this.supersedeField = value;
15910 }
15911 }
15912
15913 public string Target
15914 {
15915 get
15916 {
15917 return this.targetField;
15918 }
15919 set
15920 {
15921 this.targetFieldSet = true;
15922 this.targetField = value;
15923 }
15924 }
15925
15926 /// <summary>
15927 /// Specifies the TargetImage that this family applies to.
15928 /// This attribute cannot the specified if the ProductCode attribute is specified.
15929 /// </summary>
15930 public string TargetImage
15931 {
15932 get
15933 {
15934 return this.targetImageField;
15935 }
15936 set
15937 {
15938 this.targetImageFieldSet = true;
15939 this.targetImageField = value;
15940 }
15941 }
15942
15943 public virtual ISchemaElement ParentElement
15944 {
15945 get
15946 {
15947 return this.parentElement;
15948 }
15949 set
15950 {
15951 this.parentElement = value;
15952 }
15953 }
15954
15955 /// <summary>
15956 /// Processes this element and all child elements into an XmlWriter.
15957 /// </summary>
15958 public virtual void OutputXml(XmlWriter writer)
15959 {
15960 if ((null == writer))
15961 {
15962 throw new ArgumentNullException("writer");
15963 }
15964 writer.WriteStartElement("PatchSequence", "http://wixtoolset.org/schemas/v4/wxs");
15965 if (this.patchFamilyFieldSet)
15966 {
15967 writer.WriteAttributeString("PatchFamily", this.patchFamilyField);
15968 }
15969 if (this.productCodeFieldSet)
15970 {
15971 writer.WriteAttributeString("ProductCode", this.productCodeField);
15972 }
15973 if (this.sequenceFieldSet)
15974 {
15975 writer.WriteAttributeString("Sequence", this.sequenceField);
15976 }
15977 if (this.supersedeFieldSet)
15978 {
15979 if ((this.supersedeField == YesNoType.no))
15980 {
15981 writer.WriteAttributeString("Supersede", "no");
15982 }
15983 if ((this.supersedeField == YesNoType.yes))
15984 {
15985 writer.WriteAttributeString("Supersede", "yes");
15986 }
15987 }
15988 if (this.targetFieldSet)
15989 {
15990 writer.WriteAttributeString("Target", this.targetField);
15991 }
15992 if (this.targetImageFieldSet)
15993 {
15994 writer.WriteAttributeString("TargetImage", this.targetImageField);
15995 }
15996 writer.WriteEndElement();
15997 }
15998
15999 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
16000 void ISetAttributes.SetAttribute(string name, string value)
16001 {
16002 if (String.IsNullOrEmpty(name))
16003 {
16004 throw new ArgumentNullException("name");
16005 }
16006 if (("PatchFamily" == name))
16007 {
16008 this.patchFamilyField = value;
16009 this.patchFamilyFieldSet = true;
16010 }
16011 if (("ProductCode" == name))
16012 {
16013 this.productCodeField = value;
16014 this.productCodeFieldSet = true;
16015 }
16016 if (("Sequence" == name))
16017 {
16018 this.sequenceField = value;
16019 this.sequenceFieldSet = true;
16020 }
16021 if (("Supersede" == name))
16022 {
16023 this.supersedeField = Enums.ParseYesNoType(value);
16024 this.supersedeFieldSet = true;
16025 }
16026 if (("Target" == name))
16027 {
16028 this.targetField = value;
16029 this.targetFieldSet = true;
16030 }
16031 if (("TargetImage" == name))
16032 {
16033 this.targetImageField = value;
16034 this.targetImageFieldSet = true;
16035 }
16036 }
16037 }
16038
16039 /// <summary>
16040 /// Group of one or more upgraded images of a product.
16041 /// </summary>
16042 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
16043 public class Family : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
16044 {
16045
16046 private ElementCollection children;
16047
16048 private string diskIdField;
16049
16050 private bool diskIdFieldSet;
16051
16052 private string diskPromptField;
16053
16054 private bool diskPromptFieldSet;
16055
16056 private string mediaSrcPropField;
16057
16058 private bool mediaSrcPropFieldSet;
16059
16060 private string nameField;
16061
16062 private bool nameFieldSet;
16063
16064 private int sequenceStartField;
16065
16066 private bool sequenceStartFieldSet;
16067
16068 private string volumeLabelField;
16069
16070 private bool volumeLabelFieldSet;
16071
16072 private ISchemaElement parentElement;
16073
16074 public Family()
16075 {
16076 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
16077 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(UpgradeImage)));
16078 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice);
16079 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ExternalFile)));
16080 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ProtectFile)));
16081 childCollection0.AddCollection(childCollection1);
16082 this.children = childCollection0;
16083 }
16084
16085 public virtual IEnumerable Children
16086 {
16087 get
16088 {
16089 return this.children;
16090 }
16091 }
16092
16093 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
16094 public virtual IEnumerable this[System.Type childType]
16095 {
16096 get
16097 {
16098 return this.children.Filter(childType);
16099 }
16100 }
16101
16102 /// <summary>
16103 /// Entered into the DiskId field of the new Media table record.
16104 /// </summary>
16105 public string DiskId
16106 {
16107 get
16108 {
16109 return this.diskIdField;
16110 }
16111 set
16112 {
16113 this.diskIdFieldSet = true;
16114 this.diskIdField = value;
16115 }
16116 }
16117
16118 /// <summary>
16119 /// Value to display in the "[1]" of the DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property.
16120 /// </summary>
16121 public string DiskPrompt
16122 {
16123 get
16124 {
16125 return this.diskPromptField;
16126 }
16127 set
16128 {
16129 this.diskPromptFieldSet = true;
16130 this.diskPromptField = value;
16131 }
16132 }
16133
16134 /// <summary>
16135 /// Entered into the Source field of the new Media table entry of the upgraded image.
16136 /// </summary>
16137 public string MediaSrcProp
16138 {
16139 get
16140 {
16141 return this.mediaSrcPropField;
16142 }
16143 set
16144 {
16145 this.mediaSrcPropFieldSet = true;
16146 this.mediaSrcPropField = value;
16147 }
16148 }
16149
16150 /// <summary>
16151 /// Identifier for the family.
16152 /// </summary>
16153 public string Name
16154 {
16155 get
16156 {
16157 return this.nameField;
16158 }
16159 set
16160 {
16161 this.nameFieldSet = true;
16162 this.nameField = value;
16163 }
16164 }
16165
16166 /// <summary>
16167 /// Sequence number for the starting file.
16168 /// </summary>
16169 public int SequenceStart
16170 {
16171 get
16172 {
16173 return this.sequenceStartField;
16174 }
16175 set
16176 {
16177 this.sequenceStartFieldSet = true;
16178 this.sequenceStartField = value;
16179 }
16180 }
16181
16182 /// <summary>
16183 /// Entered into the VolumeLabel field of the new Media table record.
16184 /// </summary>
16185 public string VolumeLabel
16186 {
16187 get
16188 {
16189 return this.volumeLabelField;
16190 }
16191 set
16192 {
16193 this.volumeLabelFieldSet = true;
16194 this.volumeLabelField = value;
16195 }
16196 }
16197
16198 public virtual ISchemaElement ParentElement
16199 {
16200 get
16201 {
16202 return this.parentElement;
16203 }
16204 set
16205 {
16206 this.parentElement = value;
16207 }
16208 }
16209
16210 public virtual void AddChild(ISchemaElement child)
16211 {
16212 if ((null == child))
16213 {
16214 throw new ArgumentNullException("child");
16215 }
16216 this.children.AddElement(child);
16217 child.ParentElement = this;
16218 }
16219
16220 public virtual void RemoveChild(ISchemaElement child)
16221 {
16222 if ((null == child))
16223 {
16224 throw new ArgumentNullException("child");
16225 }
16226 this.children.RemoveElement(child);
16227 child.ParentElement = null;
16228 }
16229
16230 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
16231 ISchemaElement ICreateChildren.CreateChild(string childName)
16232 {
16233 if (String.IsNullOrEmpty(childName))
16234 {
16235 throw new ArgumentNullException("childName");
16236 }
16237 ISchemaElement childValue = null;
16238 if (("UpgradeImage" == childName))
16239 {
16240 childValue = new UpgradeImage();
16241 }
16242 if (("ExternalFile" == childName))
16243 {
16244 childValue = new ExternalFile();
16245 }
16246 if (("ProtectFile" == childName))
16247 {
16248 childValue = new ProtectFile();
16249 }
16250 if ((null == childValue))
16251 {
16252 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
16253 }
16254 return childValue;
16255 }
16256
16257 /// <summary>
16258 /// Processes this element and all child elements into an XmlWriter.
16259 /// </summary>
16260 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
16261 public virtual void OutputXml(XmlWriter writer)
16262 {
16263 if ((null == writer))
16264 {
16265 throw new ArgumentNullException("writer");
16266 }
16267 writer.WriteStartElement("Family", "http://wixtoolset.org/schemas/v4/wxs");
16268 if (this.diskIdFieldSet)
16269 {
16270 writer.WriteAttributeString("DiskId", this.diskIdField);
16271 }
16272 if (this.diskPromptFieldSet)
16273 {
16274 writer.WriteAttributeString("DiskPrompt", this.diskPromptField);
16275 }
16276 if (this.mediaSrcPropFieldSet)
16277 {
16278 writer.WriteAttributeString("MediaSrcProp", this.mediaSrcPropField);
16279 }
16280 if (this.nameFieldSet)
16281 {
16282 writer.WriteAttributeString("Name", this.nameField);
16283 }
16284 if (this.sequenceStartFieldSet)
16285 {
16286 writer.WriteAttributeString("SequenceStart", this.sequenceStartField.ToString(CultureInfo.InvariantCulture));
16287 }
16288 if (this.volumeLabelFieldSet)
16289 {
16290 writer.WriteAttributeString("VolumeLabel", this.volumeLabelField);
16291 }
16292 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
16293 {
16294 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
16295 childElement.OutputXml(writer);
16296 }
16297 writer.WriteEndElement();
16298 }
16299
16300 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
16301 void ISetAttributes.SetAttribute(string name, string value)
16302 {
16303 if (String.IsNullOrEmpty(name))
16304 {
16305 throw new ArgumentNullException("name");
16306 }
16307 if (("DiskId" == name))
16308 {
16309 this.diskIdField = value;
16310 this.diskIdFieldSet = true;
16311 }
16312 if (("DiskPrompt" == name))
16313 {
16314 this.diskPromptField = value;
16315 this.diskPromptFieldSet = true;
16316 }
16317 if (("MediaSrcProp" == name))
16318 {
16319 this.mediaSrcPropField = value;
16320 this.mediaSrcPropFieldSet = true;
16321 }
16322 if (("Name" == name))
16323 {
16324 this.nameField = value;
16325 this.nameFieldSet = true;
16326 }
16327 if (("SequenceStart" == name))
16328 {
16329 this.sequenceStartField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
16330 this.sequenceStartFieldSet = true;
16331 }
16332 if (("VolumeLabel" == name))
16333 {
16334 this.volumeLabelField = value;
16335 this.volumeLabelFieldSet = true;
16336 }
16337 }
16338 }
16339
16340 /// <summary>
16341 /// Contains information about the upgraded images of the product.
16342 /// </summary>
16343 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
16344 public class UpgradeImage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
16345 {
16346
16347 private ElementCollection children;
16348
16349 private string idField;
16350
16351 private bool idFieldSet;
16352
16353 private string sourceFileField;
16354
16355 private bool sourceFileFieldSet;
16356
16357 private string srcField;
16358
16359 private bool srcFieldSet;
16360
16361 private string sourcePatchField;
16362
16363 private bool sourcePatchFieldSet;
16364
16365 private string srcPatchField;
16366
16367 private bool srcPatchFieldSet;
16368
16369 private ISchemaElement parentElement;
16370
16371 public UpgradeImage()
16372 {
16373 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
16374 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(TargetImage)));
16375 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice);
16376 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath)));
16377 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UpgradeFile)));
16378 childCollection0.AddCollection(childCollection1);
16379 this.children = childCollection0;
16380 }
16381
16382 public virtual IEnumerable Children
16383 {
16384 get
16385 {
16386 return this.children;
16387 }
16388 }
16389
16390 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
16391 public virtual IEnumerable this[System.Type childType]
16392 {
16393 get
16394 {
16395 return this.children.Filter(childType);
16396 }
16397 }
16398
16399 /// <summary>
16400 /// Identifier to connect target images with upgraded image.
16401 /// </summary>
16402 public string Id
16403 {
16404 get
16405 {
16406 return this.idField;
16407 }
16408 set
16409 {
16410 this.idFieldSet = true;
16411 this.idField = value;
16412 }
16413 }
16414
16415 /// <summary>
16416 /// Full path to location of msi file for upgraded image.
16417 /// </summary>
16418 public string SourceFile
16419 {
16420 get
16421 {
16422 return this.sourceFileField;
16423 }
16424 set
16425 {
16426 this.sourceFileFieldSet = true;
16427 this.sourceFileField = value;
16428 }
16429 }
16430
16431 [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
16432 public string src
16433 {
16434 get
16435 {
16436 return this.srcField;
16437 }
16438 set
16439 {
16440 this.srcFieldSet = true;
16441 this.srcField = value;
16442 }
16443 }
16444
16445 /// <summary>
16446 /// Modified copy of the upgraded installation database that contains additional authoring specific to patching.
16447 /// </summary>
16448 public string SourcePatch
16449 {
16450 get
16451 {
16452 return this.sourcePatchField;
16453 }
16454 set
16455 {
16456 this.sourcePatchFieldSet = true;
16457 this.sourcePatchField = value;
16458 }
16459 }
16460
16461 [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
16462 public string srcPatch
16463 {
16464 get
16465 {
16466 return this.srcPatchField;
16467 }
16468 set
16469 {
16470 this.srcPatchFieldSet = true;
16471 this.srcPatchField = value;
16472 }
16473 }
16474
16475 public virtual ISchemaElement ParentElement
16476 {
16477 get
16478 {
16479 return this.parentElement;
16480 }
16481 set
16482 {
16483 this.parentElement = value;
16484 }
16485 }
16486
16487 public virtual void AddChild(ISchemaElement child)
16488 {
16489 if ((null == child))
16490 {
16491 throw new ArgumentNullException("child");
16492 }
16493 this.children.AddElement(child);
16494 child.ParentElement = this;
16495 }
16496
16497 public virtual void RemoveChild(ISchemaElement child)
16498 {
16499 if ((null == child))
16500 {
16501 throw new ArgumentNullException("child");
16502 }
16503 this.children.RemoveElement(child);
16504 child.ParentElement = null;
16505 }
16506
16507 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
16508 ISchemaElement ICreateChildren.CreateChild(string childName)
16509 {
16510 if (String.IsNullOrEmpty(childName))
16511 {
16512 throw new ArgumentNullException("childName");
16513 }
16514 ISchemaElement childValue = null;
16515 if (("TargetImage" == childName))
16516 {
16517 childValue = new TargetImage();
16518 }
16519 if (("SymbolPath" == childName))
16520 {
16521 childValue = new SymbolPath();
16522 }
16523 if (("UpgradeFile" == childName))
16524 {
16525 childValue = new UpgradeFile();
16526 }
16527 if ((null == childValue))
16528 {
16529 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
16530 }
16531 return childValue;
16532 }
16533
16534 /// <summary>
16535 /// Processes this element and all child elements into an XmlWriter.
16536 /// </summary>
16537 public virtual void OutputXml(XmlWriter writer)
16538 {
16539 if ((null == writer))
16540 {
16541 throw new ArgumentNullException("writer");
16542 }
16543 writer.WriteStartElement("UpgradeImage", "http://wixtoolset.org/schemas/v4/wxs");
16544 if (this.idFieldSet)
16545 {
16546 writer.WriteAttributeString("Id", this.idField);
16547 }
16548 if (this.sourceFileFieldSet)
16549 {
16550 writer.WriteAttributeString("SourceFile", this.sourceFileField);
16551 }
16552 if (this.srcFieldSet)
16553 {
16554 writer.WriteAttributeString("src", this.srcField);
16555 }
16556 if (this.sourcePatchFieldSet)
16557 {
16558 writer.WriteAttributeString("SourcePatch", this.sourcePatchField);
16559 }
16560 if (this.srcPatchFieldSet)
16561 {
16562 writer.WriteAttributeString("srcPatch", this.srcPatchField);
16563 }
16564 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
16565 {
16566 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
16567 childElement.OutputXml(writer);
16568 }
16569 writer.WriteEndElement();
16570 }
16571
16572 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
16573 void ISetAttributes.SetAttribute(string name, string value)
16574 {
16575 if (String.IsNullOrEmpty(name))
16576 {
16577 throw new ArgumentNullException("name");
16578 }
16579 if (("Id" == name))
16580 {
16581 this.idField = value;
16582 this.idFieldSet = true;
16583 }
16584 if (("SourceFile" == name))
16585 {
16586 this.sourceFileField = value;
16587 this.sourceFileFieldSet = true;
16588 }
16589 if (("src" == name))
16590 {
16591 this.srcField = value;
16592 this.srcFieldSet = true;
16593 }
16594 if (("SourcePatch" == name))
16595 {
16596 this.sourcePatchField = value;
16597 this.sourcePatchFieldSet = true;
16598 }
16599 if (("srcPatch" == name))
16600 {
16601 this.srcPatchField = value;
16602 this.srcPatchFieldSet = true;
16603 }
16604 }
16605 }
16606
16607 /// <summary>
16608 /// Contains information about the target images of the product.
16609 /// </summary>
16610 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
16611 public class TargetImage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
16612 {
16613
16614 private ElementCollection children;
16615
16616 private string idField;
16617
16618 private bool idFieldSet;
16619
16620 private string sourceFileField;
16621
16622 private bool sourceFileFieldSet;
16623
16624 private string srcField;
16625
16626 private bool srcFieldSet;
16627
16628 private int orderField;
16629
16630 private bool orderFieldSet;
16631
16632 private string validationField;
16633
16634 private bool validationFieldSet;
16635
16636 private YesNoType ignoreMissingFilesField;
16637
16638 private bool ignoreMissingFilesFieldSet;
16639
16640 private ISchemaElement parentElement;
16641
16642 public TargetImage()
16643 {
16644 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
16645 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath)));
16646 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(TargetFile)));
16647 this.children = childCollection0;
16648 }
16649
16650 public virtual IEnumerable Children
16651 {
16652 get
16653 {
16654 return this.children;
16655 }
16656 }
16657
16658 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
16659 public virtual IEnumerable this[System.Type childType]
16660 {
16661 get
16662 {
16663 return this.children.Filter(childType);
16664 }
16665 }
16666
16667 /// <summary>
16668 /// Identifier for the target image.
16669 /// </summary>
16670 public string Id
16671 {
16672 get
16673 {
16674 return this.idField;
16675 }
16676 set
16677 {
16678 this.idFieldSet = true;
16679 this.idField = value;
16680 }
16681 }
16682
16683 /// <summary>
16684 /// Full path to the location of the msi file for the target image.
16685 /// </summary>
16686 public string SourceFile
16687 {
16688 get
16689 {
16690 return this.sourceFileField;
16691 }
16692 set
16693 {
16694 this.sourceFileFieldSet = true;
16695 this.sourceFileField = value;
16696 }
16697 }
16698
16699 [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
16700 public string src
16701 {
16702 get
16703 {
16704 return this.srcField;
16705 }
16706 set
16707 {
16708 this.srcFieldSet = true;
16709 this.srcField = value;
16710 }
16711 }
16712
16713 /// <summary>
16714 /// Relative order of the target image.
16715 /// </summary>
16716 public int Order
16717 {
16718 get
16719 {
16720 return this.orderField;
16721 }
16722 set
16723 {
16724 this.orderFieldSet = true;
16725 this.orderField = value;
16726 }
16727 }
16728
16729 /// <summary>
16730 /// Product checking to avoid applying irrelevant transforms.
16731 /// </summary>
16732 public string Validation
16733 {
16734 get
16735 {
16736 return this.validationField;
16737 }
16738 set
16739 {
16740 this.validationFieldSet = true;
16741 this.validationField = value;
16742 }
16743 }
16744
16745 /// <summary>
16746 /// Files missing from the target image are ignored by the installer.
16747 /// </summary>
16748 public YesNoType IgnoreMissingFiles
16749 {
16750 get
16751 {
16752 return this.ignoreMissingFilesField;
16753 }
16754 set
16755 {
16756 this.ignoreMissingFilesFieldSet = true;
16757 this.ignoreMissingFilesField = value;
16758 }
16759 }
16760
16761 public virtual ISchemaElement ParentElement
16762 {
16763 get
16764 {
16765 return this.parentElement;
16766 }
16767 set
16768 {
16769 this.parentElement = value;
16770 }
16771 }
16772
16773 public virtual void AddChild(ISchemaElement child)
16774 {
16775 if ((null == child))
16776 {
16777 throw new ArgumentNullException("child");
16778 }
16779 this.children.AddElement(child);
16780 child.ParentElement = this;
16781 }
16782
16783 public virtual void RemoveChild(ISchemaElement child)
16784 {
16785 if ((null == child))
16786 {
16787 throw new ArgumentNullException("child");
16788 }
16789 this.children.RemoveElement(child);
16790 child.ParentElement = null;
16791 }
16792
16793 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
16794 ISchemaElement ICreateChildren.CreateChild(string childName)
16795 {
16796 if (String.IsNullOrEmpty(childName))
16797 {
16798 throw new ArgumentNullException("childName");
16799 }
16800 ISchemaElement childValue = null;
16801 if (("SymbolPath" == childName))
16802 {
16803 childValue = new SymbolPath();
16804 }
16805 if (("TargetFile" == childName))
16806 {
16807 childValue = new TargetFile();
16808 }
16809 if ((null == childValue))
16810 {
16811 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
16812 }
16813 return childValue;
16814 }
16815
16816 /// <summary>
16817 /// Processes this element and all child elements into an XmlWriter.
16818 /// </summary>
16819 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
16820 public virtual void OutputXml(XmlWriter writer)
16821 {
16822 if ((null == writer))
16823 {
16824 throw new ArgumentNullException("writer");
16825 }
16826 writer.WriteStartElement("TargetImage", "http://wixtoolset.org/schemas/v4/wxs");
16827 if (this.idFieldSet)
16828 {
16829 writer.WriteAttributeString("Id", this.idField);
16830 }
16831 if (this.sourceFileFieldSet)
16832 {
16833 writer.WriteAttributeString("SourceFile", this.sourceFileField);
16834 }
16835 if (this.srcFieldSet)
16836 {
16837 writer.WriteAttributeString("src", this.srcField);
16838 }
16839 if (this.orderFieldSet)
16840 {
16841 writer.WriteAttributeString("Order", this.orderField.ToString(CultureInfo.InvariantCulture));
16842 }
16843 if (this.validationFieldSet)
16844 {
16845 writer.WriteAttributeString("Validation", this.validationField);
16846 }
16847 if (this.ignoreMissingFilesFieldSet)
16848 {
16849 if ((this.ignoreMissingFilesField == YesNoType.no))
16850 {
16851 writer.WriteAttributeString("IgnoreMissingFiles", "no");
16852 }
16853 if ((this.ignoreMissingFilesField == YesNoType.yes))
16854 {
16855 writer.WriteAttributeString("IgnoreMissingFiles", "yes");
16856 }
16857 }
16858 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
16859 {
16860 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
16861 childElement.OutputXml(writer);
16862 }
16863 writer.WriteEndElement();
16864 }
16865
16866 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
16867 void ISetAttributes.SetAttribute(string name, string value)
16868 {
16869 if (String.IsNullOrEmpty(name))
16870 {
16871 throw new ArgumentNullException("name");
16872 }
16873 if (("Id" == name))
16874 {
16875 this.idField = value;
16876 this.idFieldSet = true;
16877 }
16878 if (("SourceFile" == name))
16879 {
16880 this.sourceFileField = value;
16881 this.sourceFileFieldSet = true;
16882 }
16883 if (("src" == name))
16884 {
16885 this.srcField = value;
16886 this.srcFieldSet = true;
16887 }
16888 if (("Order" == name))
16889 {
16890 this.orderField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
16891 this.orderFieldSet = true;
16892 }
16893 if (("Validation" == name))
16894 {
16895 this.validationField = value;
16896 this.validationFieldSet = true;
16897 }
16898 if (("IgnoreMissingFiles" == name))
16899 {
16900 this.ignoreMissingFilesField = Enums.ParseYesNoType(value);
16901 this.ignoreMissingFilesFieldSet = true;
16902 }
16903 }
16904 }
16905
16906 /// <summary>
16907 /// Information about specific files in a target image.
16908 /// </summary>
16909 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
16910 public class TargetFile : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
16911 {
16912
16913 private ElementCollection children;
16914
16915 private string idField;
16916
16917 private bool idFieldSet;
16918
16919 private ISchemaElement parentElement;
16920
16921 public TargetFile()
16922 {
16923 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
16924 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(SymbolPath)));
16925 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice);
16926 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(IgnoreRange)));
16927 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ProtectRange)));
16928 childCollection0.AddCollection(childCollection1);
16929 this.children = childCollection0;
16930 }
16931
16932 public virtual IEnumerable Children
16933 {
16934 get
16935 {
16936 return this.children;
16937 }
16938 }
16939
16940 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
16941 public virtual IEnumerable this[System.Type childType]
16942 {
16943 get
16944 {
16945 return this.children.Filter(childType);
16946 }
16947 }
16948
16949 /// <summary>
16950 /// Foreign key into the File table.
16951 /// </summary>
16952 public string Id
16953 {
16954 get
16955 {
16956 return this.idField;
16957 }
16958 set
16959 {
16960 this.idFieldSet = true;
16961 this.idField = value;
16962 }
16963 }
16964
16965 public virtual ISchemaElement ParentElement
16966 {
16967 get
16968 {
16969 return this.parentElement;
16970 }
16971 set
16972 {
16973 this.parentElement = value;
16974 }
16975 }
16976
16977 public virtual void AddChild(ISchemaElement child)
16978 {
16979 if ((null == child))
16980 {
16981 throw new ArgumentNullException("child");
16982 }
16983 this.children.AddElement(child);
16984 child.ParentElement = this;
16985 }
16986
16987 public virtual void RemoveChild(ISchemaElement child)
16988 {
16989 if ((null == child))
16990 {
16991 throw new ArgumentNullException("child");
16992 }
16993 this.children.RemoveElement(child);
16994 child.ParentElement = null;
16995 }
16996
16997 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
16998 ISchemaElement ICreateChildren.CreateChild(string childName)
16999 {
17000 if (String.IsNullOrEmpty(childName))
17001 {
17002 throw new ArgumentNullException("childName");
17003 }
17004 ISchemaElement childValue = null;
17005 if (("SymbolPath" == childName))
17006 {
17007 childValue = new SymbolPath();
17008 }
17009 if (("IgnoreRange" == childName))
17010 {
17011 childValue = new IgnoreRange();
17012 }
17013 if (("ProtectRange" == childName))
17014 {
17015 childValue = new ProtectRange();
17016 }
17017 if ((null == childValue))
17018 {
17019 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
17020 }
17021 return childValue;
17022 }
17023
17024 /// <summary>
17025 /// Processes this element and all child elements into an XmlWriter.
17026 /// </summary>
17027 public virtual void OutputXml(XmlWriter writer)
17028 {
17029 if ((null == writer))
17030 {
17031 throw new ArgumentNullException("writer");
17032 }
17033 writer.WriteStartElement("TargetFile", "http://wixtoolset.org/schemas/v4/wxs");
17034 if (this.idFieldSet)
17035 {
17036 writer.WriteAttributeString("Id", this.idField);
17037 }
17038 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
17039 {
17040 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
17041 childElement.OutputXml(writer);
17042 }
17043 writer.WriteEndElement();
17044 }
17045
17046 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
17047 void ISetAttributes.SetAttribute(string name, string value)
17048 {
17049 if (String.IsNullOrEmpty(name))
17050 {
17051 throw new ArgumentNullException("name");
17052 }
17053 if (("Id" == name))
17054 {
17055 this.idField = value;
17056 this.idFieldSet = true;
17057 }
17058 }
17059 }
17060
17061 /// <summary>
17062 /// Specifies part of a file that is to be ignored during patching.
17063 /// </summary>
17064 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
17065 public class IgnoreRange : ISchemaElement, ISetAttributes
17066 {
17067
17068 private int offsetField;
17069
17070 private bool offsetFieldSet;
17071
17072 private int lengthField;
17073
17074 private bool lengthFieldSet;
17075
17076 private ISchemaElement parentElement;
17077
17078 /// <summary>
17079 /// Offset of the start of the range.
17080 /// </summary>
17081 public int Offset
17082 {
17083 get
17084 {
17085 return this.offsetField;
17086 }
17087 set
17088 {
17089 this.offsetFieldSet = true;
17090 this.offsetField = value;
17091 }
17092 }
17093
17094 /// <summary>
17095 /// Length of the range.
17096 /// </summary>
17097 public int Length
17098 {
17099 get
17100 {
17101 return this.lengthField;
17102 }
17103 set
17104 {
17105 this.lengthFieldSet = true;
17106 this.lengthField = value;
17107 }
17108 }
17109
17110 public virtual ISchemaElement ParentElement
17111 {
17112 get
17113 {
17114 return this.parentElement;
17115 }
17116 set
17117 {
17118 this.parentElement = value;
17119 }
17120 }
17121
17122 /// <summary>
17123 /// Processes this element and all child elements into an XmlWriter.
17124 /// </summary>
17125 public virtual void OutputXml(XmlWriter writer)
17126 {
17127 if ((null == writer))
17128 {
17129 throw new ArgumentNullException("writer");
17130 }
17131 writer.WriteStartElement("IgnoreRange", "http://wixtoolset.org/schemas/v4/wxs");
17132 if (this.offsetFieldSet)
17133 {
17134 writer.WriteAttributeString("Offset", this.offsetField.ToString(CultureInfo.InvariantCulture));
17135 }
17136 if (this.lengthFieldSet)
17137 {
17138 writer.WriteAttributeString("Length", this.lengthField.ToString(CultureInfo.InvariantCulture));
17139 }
17140 writer.WriteEndElement();
17141 }
17142
17143 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
17144 void ISetAttributes.SetAttribute(string name, string value)
17145 {
17146 if (String.IsNullOrEmpty(name))
17147 {
17148 throw new ArgumentNullException("name");
17149 }
17150 if (("Offset" == name))
17151 {
17152 this.offsetField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
17153 this.offsetFieldSet = true;
17154 }
17155 if (("Length" == name))
17156 {
17157 this.lengthField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
17158 this.lengthFieldSet = true;
17159 }
17160 }
17161 }
17162
17163 /// <summary>
17164 /// Specifies part of a file that cannot be overwritten during patching.
17165 /// </summary>
17166 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
17167 public class ProtectRange : ISchemaElement, ISetAttributes
17168 {
17169
17170 private int offsetField;
17171
17172 private bool offsetFieldSet;
17173
17174 private int lengthField;
17175
17176 private bool lengthFieldSet;
17177
17178 private ISchemaElement parentElement;
17179
17180 /// <summary>
17181 /// Offset of the start of the range.
17182 /// </summary>
17183 public int Offset
17184 {
17185 get
17186 {
17187 return this.offsetField;
17188 }
17189 set
17190 {
17191 this.offsetFieldSet = true;
17192 this.offsetField = value;
17193 }
17194 }
17195
17196 /// <summary>
17197 /// Length of the range.
17198 /// </summary>
17199 public int Length
17200 {
17201 get
17202 {
17203 return this.lengthField;
17204 }
17205 set
17206 {
17207 this.lengthFieldSet = true;
17208 this.lengthField = value;
17209 }
17210 }
17211
17212 public virtual ISchemaElement ParentElement
17213 {
17214 get
17215 {
17216 return this.parentElement;
17217 }
17218 set
17219 {
17220 this.parentElement = value;
17221 }
17222 }
17223
17224 /// <summary>
17225 /// Processes this element and all child elements into an XmlWriter.
17226 /// </summary>
17227 public virtual void OutputXml(XmlWriter writer)
17228 {
17229 if ((null == writer))
17230 {
17231 throw new ArgumentNullException("writer");
17232 }
17233 writer.WriteStartElement("ProtectRange", "http://wixtoolset.org/schemas/v4/wxs");
17234 if (this.offsetFieldSet)
17235 {
17236 writer.WriteAttributeString("Offset", this.offsetField.ToString(CultureInfo.InvariantCulture));
17237 }
17238 if (this.lengthFieldSet)
17239 {
17240 writer.WriteAttributeString("Length", this.lengthField.ToString(CultureInfo.InvariantCulture));
17241 }
17242 writer.WriteEndElement();
17243 }
17244
17245 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
17246 void ISetAttributes.SetAttribute(string name, string value)
17247 {
17248 if (String.IsNullOrEmpty(name))
17249 {
17250 throw new ArgumentNullException("name");
17251 }
17252 if (("Offset" == name))
17253 {
17254 this.offsetField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
17255 this.offsetFieldSet = true;
17256 }
17257 if (("Length" == name))
17258 {
17259 this.lengthField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
17260 this.lengthFieldSet = true;
17261 }
17262 }
17263 }
17264
17265 /// <summary>
17266 /// Specifies a file to be protected.
17267 /// </summary>
17268 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
17269 public class ProtectFile : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
17270 {
17271
17272 private ElementCollection children;
17273
17274 private string fileField;
17275
17276 private bool fileFieldSet;
17277
17278 private ISchemaElement parentElement;
17279
17280 public ProtectFile()
17281 {
17282 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
17283 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ProtectRange)));
17284 this.children = childCollection0;
17285 }
17286
17287 public virtual IEnumerable Children
17288 {
17289 get
17290 {
17291 return this.children;
17292 }
17293 }
17294
17295 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
17296 public virtual IEnumerable this[System.Type childType]
17297 {
17298 get
17299 {
17300 return this.children.Filter(childType);
17301 }
17302 }
17303
17304 /// <summary>
17305 /// Foreign key into the File table.
17306 /// </summary>
17307 public string File
17308 {
17309 get
17310 {
17311 return this.fileField;
17312 }
17313 set
17314 {
17315 this.fileFieldSet = true;
17316 this.fileField = value;
17317 }
17318 }
17319
17320 public virtual ISchemaElement ParentElement
17321 {
17322 get
17323 {
17324 return this.parentElement;
17325 }
17326 set
17327 {
17328 this.parentElement = value;
17329 }
17330 }
17331
17332 public virtual void AddChild(ISchemaElement child)
17333 {
17334 if ((null == child))
17335 {
17336 throw new ArgumentNullException("child");
17337 }
17338 this.children.AddElement(child);
17339 child.ParentElement = this;
17340 }
17341
17342 public virtual void RemoveChild(ISchemaElement child)
17343 {
17344 if ((null == child))
17345 {
17346 throw new ArgumentNullException("child");
17347 }
17348 this.children.RemoveElement(child);
17349 child.ParentElement = null;
17350 }
17351
17352 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
17353 ISchemaElement ICreateChildren.CreateChild(string childName)
17354 {
17355 if (String.IsNullOrEmpty(childName))
17356 {
17357 throw new ArgumentNullException("childName");
17358 }
17359 ISchemaElement childValue = null;
17360 if (("ProtectRange" == childName))
17361 {
17362 childValue = new ProtectRange();
17363 }
17364 if ((null == childValue))
17365 {
17366 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
17367 }
17368 return childValue;
17369 }
17370
17371 /// <summary>
17372 /// Processes this element and all child elements into an XmlWriter.
17373 /// </summary>
17374 public virtual void OutputXml(XmlWriter writer)
17375 {
17376 if ((null == writer))
17377 {
17378 throw new ArgumentNullException("writer");
17379 }
17380 writer.WriteStartElement("ProtectFile", "http://wixtoolset.org/schemas/v4/wxs");
17381 if (this.fileFieldSet)
17382 {
17383 writer.WriteAttributeString("File", this.fileField);
17384 }
17385 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
17386 {
17387 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
17388 childElement.OutputXml(writer);
17389 }
17390 writer.WriteEndElement();
17391 }
17392
17393 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
17394 void ISetAttributes.SetAttribute(string name, string value)
17395 {
17396 if (String.IsNullOrEmpty(name))
17397 {
17398 throw new ArgumentNullException("name");
17399 }
17400 if (("File" == name))
17401 {
17402 this.fileField = value;
17403 this.fileFieldSet = true;
17404 }
17405 }
17406 }
17407
17408 /// <summary>
17409 /// Contains information about specific files that are not part of a regular target image.
17410 /// </summary>
17411 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
17412 public class ExternalFile : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
17413 {
17414
17415 private ElementCollection children;
17416
17417 private string fileField;
17418
17419 private bool fileFieldSet;
17420
17421 private string sourceField;
17422
17423 private bool sourceFieldSet;
17424
17425 private string srcField;
17426
17427 private bool srcFieldSet;
17428
17429 private int orderField;
17430
17431 private bool orderFieldSet;
17432
17433 private ISchemaElement parentElement;
17434
17435 public ExternalFile()
17436 {
17437 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
17438 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ProtectRange)));
17439 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(SymbolPath)));
17440 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice);
17441 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(IgnoreRange)));
17442 childCollection0.AddCollection(childCollection1);
17443 this.children = childCollection0;
17444 }
17445
17446 public virtual IEnumerable Children
17447 {
17448 get
17449 {
17450 return this.children;
17451 }
17452 }
17453
17454 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
17455 public virtual IEnumerable this[System.Type childType]
17456 {
17457 get
17458 {
17459 return this.children.Filter(childType);
17460 }
17461 }
17462
17463 /// <summary>
17464 /// Foreign key into the File table.
17465 /// </summary>
17466 public string File
17467 {
17468 get
17469 {
17470 return this.fileField;
17471 }
17472 set
17473 {
17474 this.fileFieldSet = true;
17475 this.fileField = value;
17476 }
17477 }
17478
17479 /// <summary>
17480 /// Full path of the external file.
17481 /// </summary>
17482 public string Source
17483 {
17484 get
17485 {
17486 return this.sourceField;
17487 }
17488 set
17489 {
17490 this.sourceFieldSet = true;
17491 this.sourceField = value;
17492 }
17493 }
17494
17495 [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
17496 public string src
17497 {
17498 get
17499 {
17500 return this.srcField;
17501 }
17502 set
17503 {
17504 this.srcFieldSet = true;
17505 this.srcField = value;
17506 }
17507 }
17508
17509 /// <summary>
17510 /// Specifies the order of the external files to use when creating the patch.
17511 /// </summary>
17512 public int Order
17513 {
17514 get
17515 {
17516 return this.orderField;
17517 }
17518 set
17519 {
17520 this.orderFieldSet = true;
17521 this.orderField = value;
17522 }
17523 }
17524
17525 public virtual ISchemaElement ParentElement
17526 {
17527 get
17528 {
17529 return this.parentElement;
17530 }
17531 set
17532 {
17533 this.parentElement = value;
17534 }
17535 }
17536
17537 public virtual void AddChild(ISchemaElement child)
17538 {
17539 if ((null == child))
17540 {
17541 throw new ArgumentNullException("child");
17542 }
17543 this.children.AddElement(child);
17544 child.ParentElement = this;
17545 }
17546
17547 public virtual void RemoveChild(ISchemaElement child)
17548 {
17549 if ((null == child))
17550 {
17551 throw new ArgumentNullException("child");
17552 }
17553 this.children.RemoveElement(child);
17554 child.ParentElement = null;
17555 }
17556
17557 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
17558 ISchemaElement ICreateChildren.CreateChild(string childName)
17559 {
17560 if (String.IsNullOrEmpty(childName))
17561 {
17562 throw new ArgumentNullException("childName");
17563 }
17564 ISchemaElement childValue = null;
17565 if (("ProtectRange" == childName))
17566 {
17567 childValue = new ProtectRange();
17568 }
17569 if (("SymbolPath" == childName))
17570 {
17571 childValue = new SymbolPath();
17572 }
17573 if (("IgnoreRange" == childName))
17574 {
17575 childValue = new IgnoreRange();
17576 }
17577 if ((null == childValue))
17578 {
17579 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
17580 }
17581 return childValue;
17582 }
17583
17584 /// <summary>
17585 /// Processes this element and all child elements into an XmlWriter.
17586 /// </summary>
17587 public virtual void OutputXml(XmlWriter writer)
17588 {
17589 if ((null == writer))
17590 {
17591 throw new ArgumentNullException("writer");
17592 }
17593 writer.WriteStartElement("ExternalFile", "http://wixtoolset.org/schemas/v4/wxs");
17594 if (this.fileFieldSet)
17595 {
17596 writer.WriteAttributeString("File", this.fileField);
17597 }
17598 if (this.sourceFieldSet)
17599 {
17600 writer.WriteAttributeString("Source", this.sourceField);
17601 }
17602 if (this.srcFieldSet)
17603 {
17604 writer.WriteAttributeString("src", this.srcField);
17605 }
17606 if (this.orderFieldSet)
17607 {
17608 writer.WriteAttributeString("Order", this.orderField.ToString(CultureInfo.InvariantCulture));
17609 }
17610 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
17611 {
17612 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
17613 childElement.OutputXml(writer);
17614 }
17615 writer.WriteEndElement();
17616 }
17617
17618 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
17619 void ISetAttributes.SetAttribute(string name, string value)
17620 {
17621 if (String.IsNullOrEmpty(name))
17622 {
17623 throw new ArgumentNullException("name");
17624 }
17625 if (("File" == name))
17626 {
17627 this.fileField = value;
17628 this.fileFieldSet = true;
17629 }
17630 if (("Source" == name))
17631 {
17632 this.sourceField = value;
17633 this.sourceFieldSet = true;
17634 }
17635 if (("src" == name))
17636 {
17637 this.srcField = value;
17638 this.srcFieldSet = true;
17639 }
17640 if (("Order" == name))
17641 {
17642 this.orderField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
17643 this.orderFieldSet = true;
17644 }
17645 }
17646 }
17647
17648 /// <summary>
17649 /// Specifies files to either ignore or to specify optional data about a file.
17650 /// </summary>
17651 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
17652 public class UpgradeFile : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
17653 {
17654
17655 private ElementCollection children;
17656
17657 private string fileField;
17658
17659 private bool fileFieldSet;
17660
17661 private YesNoType ignoreField;
17662
17663 private bool ignoreFieldSet;
17664
17665 private YesNoType allowIgnoreOnErrorField;
17666
17667 private bool allowIgnoreOnErrorFieldSet;
17668
17669 private YesNoType wholeFileField;
17670
17671 private bool wholeFileFieldSet;
17672
17673 private ISchemaElement parentElement;
17674
17675 public UpgradeFile()
17676 {
17677 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
17678 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath)));
17679 this.children = childCollection0;
17680 }
17681
17682 public virtual IEnumerable Children
17683 {
17684 get
17685 {
17686 return this.children;
17687 }
17688 }
17689
17690 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
17691 public virtual IEnumerable this[System.Type childType]
17692 {
17693 get
17694 {
17695 return this.children.Filter(childType);
17696 }
17697 }
17698
17699 /// <summary>
17700 /// Foreign key into the File table.
17701 /// </summary>
17702 public string File
17703 {
17704 get
17705 {
17706 return this.fileField;
17707 }
17708 set
17709 {
17710 this.fileFieldSet = true;
17711 this.fileField = value;
17712 }
17713 }
17714
17715 /// <summary>
17716 /// If yes, the file is ignored during patching, and the next two attributes are ignored.
17717 /// </summary>
17718 public YesNoType Ignore
17719 {
17720 get
17721 {
17722 return this.ignoreField;
17723 }
17724 set
17725 {
17726 this.ignoreFieldSet = true;
17727 this.ignoreField = value;
17728 }
17729 }
17730
17731 /// <summary>
17732 /// Specifies whether patching this file is vital.
17733 /// </summary>
17734 public YesNoType AllowIgnoreOnError
17735 {
17736 get
17737 {
17738 return this.allowIgnoreOnErrorField;
17739 }
17740 set
17741 {
17742 this.allowIgnoreOnErrorFieldSet = true;
17743 this.allowIgnoreOnErrorField = value;
17744 }
17745 }
17746
17747 /// <summary>
17748 /// Whether the whole file should be installed, rather than creating a binary patch.
17749 /// </summary>
17750 public YesNoType WholeFile
17751 {
17752 get
17753 {
17754 return this.wholeFileField;
17755 }
17756 set
17757 {
17758 this.wholeFileFieldSet = true;
17759 this.wholeFileField = value;
17760 }
17761 }
17762
17763 public virtual ISchemaElement ParentElement
17764 {
17765 get
17766 {
17767 return this.parentElement;
17768 }
17769 set
17770 {
17771 this.parentElement = value;
17772 }
17773 }
17774
17775 public virtual void AddChild(ISchemaElement child)
17776 {
17777 if ((null == child))
17778 {
17779 throw new ArgumentNullException("child");
17780 }
17781 this.children.AddElement(child);
17782 child.ParentElement = this;
17783 }
17784
17785 public virtual void RemoveChild(ISchemaElement child)
17786 {
17787 if ((null == child))
17788 {
17789 throw new ArgumentNullException("child");
17790 }
17791 this.children.RemoveElement(child);
17792 child.ParentElement = null;
17793 }
17794
17795 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
17796 ISchemaElement ICreateChildren.CreateChild(string childName)
17797 {
17798 if (String.IsNullOrEmpty(childName))
17799 {
17800 throw new ArgumentNullException("childName");
17801 }
17802 ISchemaElement childValue = null;
17803 if (("SymbolPath" == childName))
17804 {
17805 childValue = new SymbolPath();
17806 }
17807 if ((null == childValue))
17808 {
17809 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
17810 }
17811 return childValue;
17812 }
17813
17814 /// <summary>
17815 /// Processes this element and all child elements into an XmlWriter.
17816 /// </summary>
17817 public virtual void OutputXml(XmlWriter writer)
17818 {
17819 if ((null == writer))
17820 {
17821 throw new ArgumentNullException("writer");
17822 }
17823 writer.WriteStartElement("UpgradeFile", "http://wixtoolset.org/schemas/v4/wxs");
17824 if (this.fileFieldSet)
17825 {
17826 writer.WriteAttributeString("File", this.fileField);
17827 }
17828 if (this.ignoreFieldSet)
17829 {
17830 if ((this.ignoreField == YesNoType.no))
17831 {
17832 writer.WriteAttributeString("Ignore", "no");
17833 }
17834 if ((this.ignoreField == YesNoType.yes))
17835 {
17836 writer.WriteAttributeString("Ignore", "yes");
17837 }
17838 }
17839 if (this.allowIgnoreOnErrorFieldSet)
17840 {
17841 if ((this.allowIgnoreOnErrorField == YesNoType.no))
17842 {
17843 writer.WriteAttributeString("AllowIgnoreOnError", "no");
17844 }
17845 if ((this.allowIgnoreOnErrorField == YesNoType.yes))
17846 {
17847 writer.WriteAttributeString("AllowIgnoreOnError", "yes");
17848 }
17849 }
17850 if (this.wholeFileFieldSet)
17851 {
17852 if ((this.wholeFileField == YesNoType.no))
17853 {
17854 writer.WriteAttributeString("WholeFile", "no");
17855 }
17856 if ((this.wholeFileField == YesNoType.yes))
17857 {
17858 writer.WriteAttributeString("WholeFile", "yes");
17859 }
17860 }
17861 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
17862 {
17863 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
17864 childElement.OutputXml(writer);
17865 }
17866 writer.WriteEndElement();
17867 }
17868
17869 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
17870 void ISetAttributes.SetAttribute(string name, string value)
17871 {
17872 if (String.IsNullOrEmpty(name))
17873 {
17874 throw new ArgumentNullException("name");
17875 }
17876 if (("File" == name))
17877 {
17878 this.fileField = value;
17879 this.fileFieldSet = true;
17880 }
17881 if (("Ignore" == name))
17882 {
17883 this.ignoreField = Enums.ParseYesNoType(value);
17884 this.ignoreFieldSet = true;
17885 }
17886 if (("AllowIgnoreOnError" == name))
17887 {
17888 this.allowIgnoreOnErrorField = Enums.ParseYesNoType(value);
17889 this.allowIgnoreOnErrorFieldSet = true;
17890 }
17891 if (("WholeFile" == name))
17892 {
17893 this.wholeFileField = Enums.ParseYesNoType(value);
17894 this.wholeFileFieldSet = true;
17895 }
17896 }
17897 }
17898
17899 /// <summary>
17900 /// A path to symbols.
17901 /// </summary>
17902 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
17903 public class SymbolPath : ISchemaElement, ISetAttributes
17904 {
17905
17906 private string pathField;
17907
17908 private bool pathFieldSet;
17909
17910 private ISchemaElement parentElement;
17911
17912 /// <summary>
17913 /// The path.
17914 /// </summary>
17915 public string Path
17916 {
17917 get
17918 {
17919 return this.pathField;
17920 }
17921 set
17922 {
17923 this.pathFieldSet = true;
17924 this.pathField = value;
17925 }
17926 }
17927
17928 public virtual ISchemaElement ParentElement
17929 {
17930 get
17931 {
17932 return this.parentElement;
17933 }
17934 set
17935 {
17936 this.parentElement = value;
17937 }
17938 }
17939
17940 /// <summary>
17941 /// Processes this element and all child elements into an XmlWriter.
17942 /// </summary>
17943 public virtual void OutputXml(XmlWriter writer)
17944 {
17945 if ((null == writer))
17946 {
17947 throw new ArgumentNullException("writer");
17948 }
17949 writer.WriteStartElement("SymbolPath", "http://wixtoolset.org/schemas/v4/wxs");
17950 if (this.pathFieldSet)
17951 {
17952 writer.WriteAttributeString("Path", this.pathField);
17953 }
17954 writer.WriteEndElement();
17955 }
17956
17957 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
17958 void ISetAttributes.SetAttribute(string name, string value)
17959 {
17960 if (String.IsNullOrEmpty(name))
17961 {
17962 throw new ArgumentNullException("name");
17963 }
17964 if (("Path" == name))
17965 {
17966 this.pathField = value;
17967 this.pathFieldSet = true;
17968 }
17969 }
17970 }
17971
17972 /// <summary>
17973 /// Properties about the package to be placed in the Summary Information Stream. These are
17974 /// visible from COM through the IStream interface, and these properties can be seen on the package in Explorer.
17975 /// </summary>
17976 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
17977 public class Package : ISchemaElement, ISetAttributes
17978 {
17979
17980 private string idField;
17981
17982 private bool idFieldSet;
17983
17984 private YesNoType adminImageField;
17985
17986 private bool adminImageFieldSet;
17987
17988 private string commentsField;
17989
17990 private bool commentsFieldSet;
17991
17992 private YesNoType compressedField;
17993
17994 private bool compressedFieldSet;
17995
17996 private string descriptionField;
17997
17998 private bool descriptionFieldSet;
17999
18000 private InstallPrivilegesType installPrivilegesField;
18001
18002 private bool installPrivilegesFieldSet;
18003
18004 private InstallScopeType installScopeField;
18005
18006 private bool installScopeFieldSet;
18007
18008 private int installerVersionField;
18009
18010 private bool installerVersionFieldSet;
18011
18012 private string keywordsField;
18013
18014 private bool keywordsFieldSet;
18015
18016 private string languagesField;
18017
18018 private bool languagesFieldSet;
18019
18020 private string manufacturerField;
18021
18022 private bool manufacturerFieldSet;
18023
18024 private string platformsField;
18025
18026 private bool platformsFieldSet;
18027
18028 private PlatformType platformField;
18029
18030 private bool platformFieldSet;
18031
18032 private YesNoDefaultType readOnlyField;
18033
18034 private bool readOnlyFieldSet;
18035
18036 private YesNoType shortNamesField;
18037
18038 private bool shortNamesFieldSet;
18039
18040 private string summaryCodepageField;
18041
18042 private bool summaryCodepageFieldSet;
18043
18044 private ISchemaElement parentElement;
18045
18046 /// <summary>
18047 /// The package code GUID for a product or merge module.
18048 /// When compiling a product, this attribute should not be set in order to allow the package
18049 /// code to be generated for each build.
18050 /// When compiling a merge module, this attribute must be set to the modularization guid.
18051 /// </summary>
18052 public string Id
18053 {
18054 get
18055 {
18056 return this.idField;
18057 }
18058 set
18059 {
18060 this.idFieldSet = true;
18061 this.idField = value;
18062 }
18063 }
18064
18065 /// <summary>
18066 /// Set to 'yes' if the source is an admin image.
18067 /// </summary>
18068 public YesNoType AdminImage
18069 {
18070 get
18071 {
18072 return this.adminImageField;
18073 }
18074 set
18075 {
18076 this.adminImageFieldSet = true;
18077 this.adminImageField = value;
18078 }
18079 }
18080
18081 /// <summary>
18082 /// Optional comments for browsing.
18083 /// </summary>
18084 public string Comments
18085 {
18086 get
18087 {
18088 return this.commentsField;
18089 }
18090 set
18091 {
18092 this.commentsFieldSet = true;
18093 this.commentsField = value;
18094 }
18095 }
18096
18097 /// <summary>
18098 /// Set to 'yes' to have compressed files in the source.
18099 /// This attribute cannot be set for merge modules.
18100 /// </summary>
18101 public YesNoType Compressed
18102 {
18103 get
18104 {
18105 return this.compressedField;
18106 }
18107 set
18108 {
18109 this.compressedFieldSet = true;
18110 this.compressedField = value;
18111 }
18112 }
18113
18114 /// <summary>
18115 /// The product full name or description.
18116 /// </summary>
18117 public string Description
18118 {
18119 get
18120 {
18121 return this.descriptionField;
18122 }
18123 set
18124 {
18125 this.descriptionFieldSet = true;
18126 this.descriptionField = value;
18127 }
18128 }
18129
18130 /// <summary>
18131 /// Use this attribute to specify the priviliges required to install the package on Windows Vista and above.
18132 /// </summary>
18133 public InstallPrivilegesType InstallPrivileges
18134 {
18135 get
18136 {
18137 return this.installPrivilegesField;
18138 }
18139 set
18140 {
18141 this.installPrivilegesFieldSet = true;
18142 this.installPrivilegesField = value;
18143 }
18144 }
18145
18146 /// <summary>
18147 /// Use this attribute to specify the installation scope of this package: per-machine or per-user.
18148 /// </summary>
18149 public InstallScopeType InstallScope
18150 {
18151 get
18152 {
18153 return this.installScopeField;
18154 }
18155 set
18156 {
18157 this.installScopeFieldSet = true;
18158 this.installScopeField = value;
18159 }
18160 }
18161
18162 /// <summary>
18163 /// The minimum version of the Windows Installer required to install this package. Take the major version of the required Windows Installer
18164 /// and multiply by a 100 then add the minor version of the Windows Installer. For example, "200" would represent Windows Installer 2.0 and
18165 /// "405" would represent Windows Installer 4.5. For 64-bit Windows Installer packages, this property is set to 200 by default as
18166 /// Windows Installer 2.0 was the first version to support 64-bit packages.
18167 /// </summary>
18168 public int InstallerVersion
18169 {
18170 get
18171 {
18172 return this.installerVersionField;
18173 }
18174 set
18175 {
18176 this.installerVersionFieldSet = true;
18177 this.installerVersionField = value;
18178 }
18179 }
18180
18181 /// <summary>
18182 /// Optional keywords for browsing.
18183 /// </summary>
18184 public string Keywords
18185 {
18186 get
18187 {
18188 return this.keywordsField;
18189 }
18190 set
18191 {
18192 this.keywordsFieldSet = true;
18193 this.keywordsField = value;
18194 }
18195 }
18196
18197 /// <summary>
18198 /// The list of language IDs (LCIDs) supported in the package.
18199 /// </summary>
18200 public string Languages
18201 {
18202 get
18203 {
18204 return this.languagesField;
18205 }
18206 set
18207 {
18208 this.languagesFieldSet = true;
18209 this.languagesField = value;
18210 }
18211 }
18212
18213 /// <summary>
18214 /// The vendor releasing the package.
18215 /// </summary>
18216 public string Manufacturer
18217 {
18218 get
18219 {
18220 return this.manufacturerField;
18221 }
18222 set
18223 {
18224 this.manufacturerFieldSet = true;
18225 this.manufacturerField = value;
18226 }
18227 }
18228
18229 /// <summary>
18230 /// The list of platforms supported by the package. This attribute has been deprecated.
18231 /// Specify the -arch switch at the candle.exe command line or the InstallerPlatform
18232 /// property in a .wixproj MSBuild project.
18233 /// </summary>
18234 public string Platforms
18235 {
18236 get
18237 {
18238 return this.platformsField;
18239 }
18240 set
18241 {
18242 this.platformsFieldSet = true;
18243 this.platformsField = value;
18244 }
18245 }
18246
18247 /// <summary>
18248 /// The platform supported by the package. Use of this attribute is discouraged; instead,
18249 /// specify the -arch switch at the candle.exe command line or the InstallerPlatform
18250 /// property in a .wixproj MSBuild project.
18251 /// </summary>
18252 public PlatformType Platform
18253 {
18254 get
18255 {
18256 return this.platformField;
18257 }
18258 set
18259 {
18260 this.platformFieldSet = true;
18261 this.platformField = value;
18262 }
18263 }
18264
18265 /// <summary>
18266 /// The value of this attribute conveys whether the package should be opened as read-only.
18267 /// A database editing tool should not modify a read-only enforced database and should
18268 /// issue a warning at attempts to modify a read-only recommended database.
18269 /// </summary>
18270 public YesNoDefaultType ReadOnly
18271 {
18272 get
18273 {
18274 return this.readOnlyField;
18275 }
18276 set
18277 {
18278 this.readOnlyFieldSet = true;
18279 this.readOnlyField = value;
18280 }
18281 }
18282
18283 /// <summary>
18284 /// Set to 'yes' to have short filenames in the source.
18285 /// </summary>
18286 public YesNoType ShortNames
18287 {
18288 get
18289 {
18290 return this.shortNamesField;
18291 }
18292 set
18293 {
18294 this.shortNamesFieldSet = true;
18295 this.shortNamesField = value;
18296 }
18297 }
18298
18299 /// <summary>
18300 /// The code page integer value or web name for summary info strings only. See remarks for more information.
18301 /// </summary>
18302 public string SummaryCodepage
18303 {
18304 get
18305 {
18306 return this.summaryCodepageField;
18307 }
18308 set
18309 {
18310 this.summaryCodepageFieldSet = true;
18311 this.summaryCodepageField = value;
18312 }
18313 }
18314
18315 public virtual ISchemaElement ParentElement
18316 {
18317 get
18318 {
18319 return this.parentElement;
18320 }
18321 set
18322 {
18323 this.parentElement = value;
18324 }
18325 }
18326
18327 /// <summary>
18328 /// Parses a InstallPrivilegesType from a string.
18329 /// </summary>
18330 public static InstallPrivilegesType ParseInstallPrivilegesType(string value)
18331 {
18332 InstallPrivilegesType parsedValue;
18333 Package.TryParseInstallPrivilegesType(value, out parsedValue);
18334 return parsedValue;
18335 }
18336
18337 /// <summary>
18338 /// Tries to parse a InstallPrivilegesType from a string.
18339 /// </summary>
18340 public static bool TryParseInstallPrivilegesType(string value, out InstallPrivilegesType parsedValue)
18341 {
18342 parsedValue = InstallPrivilegesType.NotSet;
18343 if (string.IsNullOrEmpty(value))
18344 {
18345 return false;
18346 }
18347 if (("limited" == value))
18348 {
18349 parsedValue = InstallPrivilegesType.limited;
18350 }
18351 else
18352 {
18353 if (("elevated" == value))
18354 {
18355 parsedValue = InstallPrivilegesType.elevated;
18356 }
18357 else
18358 {
18359 parsedValue = InstallPrivilegesType.IllegalValue;
18360 return false;
18361 }
18362 }
18363 return true;
18364 }
18365
18366 /// <summary>
18367 /// Parses a InstallScopeType from a string.
18368 /// </summary>
18369 public static InstallScopeType ParseInstallScopeType(string value)
18370 {
18371 InstallScopeType parsedValue;
18372 Package.TryParseInstallScopeType(value, out parsedValue);
18373 return parsedValue;
18374 }
18375
18376 /// <summary>
18377 /// Tries to parse a InstallScopeType from a string.
18378 /// </summary>
18379 public static bool TryParseInstallScopeType(string value, out InstallScopeType parsedValue)
18380 {
18381 parsedValue = InstallScopeType.NotSet;
18382 if (string.IsNullOrEmpty(value))
18383 {
18384 return false;
18385 }
18386 if (("perMachine" == value))
18387 {
18388 parsedValue = InstallScopeType.perMachine;
18389 }
18390 else
18391 {
18392 if (("perUser" == value))
18393 {
18394 parsedValue = InstallScopeType.perUser;
18395 }
18396 else
18397 {
18398 parsedValue = InstallScopeType.IllegalValue;
18399 return false;
18400 }
18401 }
18402 return true;
18403 }
18404
18405 /// <summary>
18406 /// Parses a PlatformType from a string.
18407 /// </summary>
18408 public static PlatformType ParsePlatformType(string value)
18409 {
18410 PlatformType parsedValue;
18411 Package.TryParsePlatformType(value, out parsedValue);
18412 return parsedValue;
18413 }
18414
18415 /// <summary>
18416 /// Tries to parse a PlatformType from a string.
18417 /// </summary>
18418 public static bool TryParsePlatformType(string value, out PlatformType parsedValue)
18419 {
18420 parsedValue = PlatformType.NotSet;
18421 if (string.IsNullOrEmpty(value))
18422 {
18423 return false;
18424 }
18425 if (("x86" == value))
18426 {
18427 parsedValue = PlatformType.x86;
18428 }
18429 else
18430 {
18431 if (("ia64" == value))
18432 {
18433 parsedValue = PlatformType.ia64;
18434 }
18435 else
18436 {
18437 if (("x64" == value))
18438 {
18439 parsedValue = PlatformType.x64;
18440 }
18441 else
18442 {
18443 if (("arm" == value))
18444 {
18445 parsedValue = PlatformType.arm;
18446 }
18447 else
18448 {
18449 if (("intel" == value))
18450 {
18451 parsedValue = PlatformType.intel;
18452 }
18453 else
18454 {
18455 if (("intel64" == value))
18456 {
18457 parsedValue = PlatformType.intel64;
18458 }
18459 else
18460 {
18461 parsedValue = PlatformType.IllegalValue;
18462 return false;
18463 }
18464 }
18465 }
18466 }
18467 }
18468 }
18469 return true;
18470 }
18471
18472 /// <summary>
18473 /// Processes this element and all child elements into an XmlWriter.
18474 /// </summary>
18475 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
18476 public virtual void OutputXml(XmlWriter writer)
18477 {
18478 if ((null == writer))
18479 {
18480 throw new ArgumentNullException("writer");
18481 }
18482 writer.WriteStartElement("Package", "http://wixtoolset.org/schemas/v4/wxs");
18483 if (this.idFieldSet)
18484 {
18485 writer.WriteAttributeString("Id", this.idField);
18486 }
18487 if (this.adminImageFieldSet)
18488 {
18489 if ((this.adminImageField == YesNoType.no))
18490 {
18491 writer.WriteAttributeString("AdminImage", "no");
18492 }
18493 if ((this.adminImageField == YesNoType.yes))
18494 {
18495 writer.WriteAttributeString("AdminImage", "yes");
18496 }
18497 }
18498 if (this.commentsFieldSet)
18499 {
18500 writer.WriteAttributeString("Comments", this.commentsField);
18501 }
18502 if (this.compressedFieldSet)
18503 {
18504 if ((this.compressedField == YesNoType.no))
18505 {
18506 writer.WriteAttributeString("Compressed", "no");
18507 }
18508 if ((this.compressedField == YesNoType.yes))
18509 {
18510 writer.WriteAttributeString("Compressed", "yes");
18511 }
18512 }
18513 if (this.descriptionFieldSet)
18514 {
18515 writer.WriteAttributeString("Description", this.descriptionField);
18516 }
18517 if (this.installPrivilegesFieldSet)
18518 {
18519 if ((this.installPrivilegesField == InstallPrivilegesType.limited))
18520 {
18521 writer.WriteAttributeString("InstallPrivileges", "limited");
18522 }
18523 if ((this.installPrivilegesField == InstallPrivilegesType.elevated))
18524 {
18525 writer.WriteAttributeString("InstallPrivileges", "elevated");
18526 }
18527 }
18528 if (this.installScopeFieldSet)
18529 {
18530 if ((this.installScopeField == InstallScopeType.perMachine))
18531 {
18532 writer.WriteAttributeString("InstallScope", "perMachine");
18533 }
18534 if ((this.installScopeField == InstallScopeType.perUser))
18535 {
18536 writer.WriteAttributeString("InstallScope", "perUser");
18537 }
18538 }
18539 if (this.installerVersionFieldSet)
18540 {
18541 writer.WriteAttributeString("InstallerVersion", this.installerVersionField.ToString(CultureInfo.InvariantCulture));
18542 }
18543 if (this.keywordsFieldSet)
18544 {
18545 writer.WriteAttributeString("Keywords", this.keywordsField);
18546 }
18547 if (this.languagesFieldSet)
18548 {
18549 writer.WriteAttributeString("Languages", this.languagesField);
18550 }
18551 if (this.manufacturerFieldSet)
18552 {
18553 writer.WriteAttributeString("Manufacturer", this.manufacturerField);
18554 }
18555 if (this.platformsFieldSet)
18556 {
18557 writer.WriteAttributeString("Platforms", this.platformsField);
18558 }
18559 if (this.platformFieldSet)
18560 {
18561 if ((this.platformField == PlatformType.x86))
18562 {
18563 writer.WriteAttributeString("Platform", "x86");
18564 }
18565 if ((this.platformField == PlatformType.ia64))
18566 {
18567 writer.WriteAttributeString("Platform", "ia64");
18568 }
18569 if ((this.platformField == PlatformType.x64))
18570 {
18571 writer.WriteAttributeString("Platform", "x64");
18572 }
18573 if ((this.platformField == PlatformType.arm))
18574 {
18575 writer.WriteAttributeString("Platform", "arm");
18576 }
18577 if ((this.platformField == PlatformType.intel))
18578 {
18579 writer.WriteAttributeString("Platform", "intel");
18580 }
18581 if ((this.platformField == PlatformType.intel64))
18582 {
18583 writer.WriteAttributeString("Platform", "intel64");
18584 }
18585 }
18586 if (this.readOnlyFieldSet)
18587 {
18588 if ((this.readOnlyField == YesNoDefaultType.@default))
18589 {
18590 writer.WriteAttributeString("ReadOnly", "default");
18591 }
18592 if ((this.readOnlyField == YesNoDefaultType.no))
18593 {
18594 writer.WriteAttributeString("ReadOnly", "no");
18595 }
18596 if ((this.readOnlyField == YesNoDefaultType.yes))
18597 {
18598 writer.WriteAttributeString("ReadOnly", "yes");
18599 }
18600 }
18601 if (this.shortNamesFieldSet)
18602 {
18603 if ((this.shortNamesField == YesNoType.no))
18604 {
18605 writer.WriteAttributeString("ShortNames", "no");
18606 }
18607 if ((this.shortNamesField == YesNoType.yes))
18608 {
18609 writer.WriteAttributeString("ShortNames", "yes");
18610 }
18611 }
18612 if (this.summaryCodepageFieldSet)
18613 {
18614 writer.WriteAttributeString("SummaryCodepage", this.summaryCodepageField);
18615 }
18616 writer.WriteEndElement();
18617 }
18618
18619 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
18620 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
18621 void ISetAttributes.SetAttribute(string name, string value)
18622 {
18623 if (String.IsNullOrEmpty(name))
18624 {
18625 throw new ArgumentNullException("name");
18626 }
18627 if (("Id" == name))
18628 {
18629 this.idField = value;
18630 this.idFieldSet = true;
18631 }
18632 if (("AdminImage" == name))
18633 {
18634 this.adminImageField = Enums.ParseYesNoType(value);
18635 this.adminImageFieldSet = true;
18636 }
18637 if (("Comments" == name))
18638 {
18639 this.commentsField = value;
18640 this.commentsFieldSet = true;
18641 }
18642 if (("Compressed" == name))
18643 {
18644 this.compressedField = Enums.ParseYesNoType(value);
18645 this.compressedFieldSet = true;
18646 }
18647 if (("Description" == name))
18648 {
18649 this.descriptionField = value;
18650 this.descriptionFieldSet = true;
18651 }
18652 if (("InstallPrivileges" == name))
18653 {
18654 this.installPrivilegesField = Package.ParseInstallPrivilegesType(value);
18655 this.installPrivilegesFieldSet = true;
18656 }
18657 if (("InstallScope" == name))
18658 {
18659 this.installScopeField = Package.ParseInstallScopeType(value);
18660 this.installScopeFieldSet = true;
18661 }
18662 if (("InstallerVersion" == name))
18663 {
18664 this.installerVersionField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
18665 this.installerVersionFieldSet = true;
18666 }
18667 if (("Keywords" == name))
18668 {
18669 this.keywordsField = value;
18670 this.keywordsFieldSet = true;
18671 }
18672 if (("Languages" == name))
18673 {
18674 this.languagesField = value;
18675 this.languagesFieldSet = true;
18676 }
18677 if (("Manufacturer" == name))
18678 {
18679 this.manufacturerField = value;
18680 this.manufacturerFieldSet = true;
18681 }
18682 if (("Platforms" == name))
18683 {
18684 this.platformsField = value;
18685 this.platformsFieldSet = true;
18686 }
18687 if (("Platform" == name))
18688 {
18689 this.platformField = Package.ParsePlatformType(value);
18690 this.platformFieldSet = true;
18691 }
18692 if (("ReadOnly" == name))
18693 {
18694 this.readOnlyField = Enums.ParseYesNoDefaultType(value);
18695 this.readOnlyFieldSet = true;
18696 }
18697 if (("ShortNames" == name))
18698 {
18699 this.shortNamesField = Enums.ParseYesNoType(value);
18700 this.shortNamesFieldSet = true;
18701 }
18702 if (("SummaryCodepage" == name))
18703 {
18704 this.summaryCodepageField = value;
18705 this.summaryCodepageFieldSet = true;
18706 }
18707 }
18708
18709 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
18710 public enum InstallPrivilegesType
18711 {
18712
18713 IllegalValue = int.MaxValue,
18714
18715 NotSet = -1,
18716
18717 /// <summary>
18718 /// Set this value to declare that the package does not require elevated privileges to install.
18719 /// </summary>
18720 limited,
18721
18722 /// <summary>
18723 /// Set this value to declare that the package requires elevated privileges to install.
18724 /// This is the default value.
18725 /// </summary>
18726 elevated,
18727 }
18728
18729 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
18730 public enum InstallScopeType
18731 {
18732
18733 IllegalValue = int.MaxValue,
18734
18735 NotSet = -1,
18736
18737 /// <summary>
18738 /// Set this value to declare that the package is a per-machine installation and requires elevated privileges to install.
18739 /// Sets the ALLUSERS property to 1.
18740 /// </summary>
18741 perMachine,
18742
18743 /// <summary>
18744 /// Set this value to declare that the package is a per-user installation and does not require elevated privileges to install.
18745 /// Sets the package's InstallPrivileges attribute to "limited."
18746 /// </summary>
18747 perUser,
18748 }
18749
18750 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
18751 public enum PlatformType
18752 {
18753
18754 IllegalValue = int.MaxValue,
18755
18756 NotSet = -1,
18757
18758 /// <summary>
18759 /// Set this value to declare that the package is an x86 package.
18760 /// </summary>
18761 x86,
18762
18763 /// <summary>
18764 /// Set this value to declare that the package is an ia64 package.
18765 /// This value requires that the InstallerVersion property be set to 200 or greater.
18766 /// </summary>
18767 ia64,
18768
18769 /// <summary>
18770 /// Set this value to declare that the package is an x64 package.
18771 /// This value requires that the InstallerVersion property be set to 200 or greater.
18772 /// </summary>
18773 x64,
18774
18775 /// <summary>
18776 /// Set this value to declare that the package is an arm package.
18777 /// This value requires that the InstallerVersion property be set to 500 or greater.
18778 /// </summary>
18779 arm,
18780
18781 /// <summary>
18782 /// This value has been deprecated. Use "x86" instead.
18783 /// </summary>
18784 intel,
18785
18786 /// <summary>
18787 /// This value has been deprecated. Use "ia64" instead.
18788 /// </summary>
18789 intel64,
18790 }
18791 }
18792
18793 /// <summary>
18794 /// The MsiAssemblyName table specifies the schema for the elements of a strong assembly cache name for a .NET Framework or Win32 assembly.
18795 /// Consider using the Assembly attribute on File element to have the toolset populate these entries automatically.
18796 /// </summary>
18797 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
18798 public class AssemblyName : ISchemaElement, ISetAttributes
18799 {
18800
18801 private string idField;
18802
18803 private bool idFieldSet;
18804
18805 private string valueField;
18806
18807 private bool valueFieldSet;
18808
18809 private ISchemaElement parentElement;
18810
18811 /// <summary>
18812 /// Name of the attribute associated with the value specified in the Value column.
18813 /// </summary>
18814 public string Id
18815 {
18816 get
18817 {
18818 return this.idField;
18819 }
18820 set
18821 {
18822 this.idFieldSet = true;
18823 this.idField = value;
18824 }
18825 }
18826
18827 /// <summary>
18828 /// Value associated with the name specified in the Name column.
18829 /// </summary>
18830 public string Value
18831 {
18832 get
18833 {
18834 return this.valueField;
18835 }
18836 set
18837 {
18838 this.valueFieldSet = true;
18839 this.valueField = value;
18840 }
18841 }
18842
18843 public virtual ISchemaElement ParentElement
18844 {
18845 get
18846 {
18847 return this.parentElement;
18848 }
18849 set
18850 {
18851 this.parentElement = value;
18852 }
18853 }
18854
18855 /// <summary>
18856 /// Processes this element and all child elements into an XmlWriter.
18857 /// </summary>
18858 public virtual void OutputXml(XmlWriter writer)
18859 {
18860 if ((null == writer))
18861 {
18862 throw new ArgumentNullException("writer");
18863 }
18864 writer.WriteStartElement("AssemblyName", "http://wixtoolset.org/schemas/v4/wxs");
18865 if (this.idFieldSet)
18866 {
18867 writer.WriteAttributeString("Id", this.idField);
18868 }
18869 if (this.valueFieldSet)
18870 {
18871 writer.WriteAttributeString("Value", this.valueField);
18872 }
18873 writer.WriteEndElement();
18874 }
18875
18876 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
18877 void ISetAttributes.SetAttribute(string name, string value)
18878 {
18879 if (String.IsNullOrEmpty(name))
18880 {
18881 throw new ArgumentNullException("name");
18882 }
18883 if (("Id" == name))
18884 {
18885 this.idField = value;
18886 this.idFieldSet = true;
18887 }
18888 if (("Value" == name))
18889 {
18890 this.valueField = value;
18891 this.valueFieldSet = true;
18892 }
18893 }
18894 }
18895
18896 /// <summary>
18897 /// Identifies the possible signer certificates used to digitally sign patches.
18898 /// </summary>
18899 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
18900 public class PatchCertificates : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
18901 {
18902
18903 private ElementCollection children;
18904
18905 private ISchemaElement parentElement;
18906
18907 public PatchCertificates()
18908 {
18909 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
18910 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DigitalCertificate)));
18911 this.children = childCollection0;
18912 }
18913
18914 public virtual IEnumerable Children
18915 {
18916 get
18917 {
18918 return this.children;
18919 }
18920 }
18921
18922 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
18923 public virtual IEnumerable this[System.Type childType]
18924 {
18925 get
18926 {
18927 return this.children.Filter(childType);
18928 }
18929 }
18930
18931 public virtual ISchemaElement ParentElement
18932 {
18933 get
18934 {
18935 return this.parentElement;
18936 }
18937 set
18938 {
18939 this.parentElement = value;
18940 }
18941 }
18942
18943 public virtual void AddChild(ISchemaElement child)
18944 {
18945 if ((null == child))
18946 {
18947 throw new ArgumentNullException("child");
18948 }
18949 this.children.AddElement(child);
18950 child.ParentElement = this;
18951 }
18952
18953 public virtual void RemoveChild(ISchemaElement child)
18954 {
18955 if ((null == child))
18956 {
18957 throw new ArgumentNullException("child");
18958 }
18959 this.children.RemoveElement(child);
18960 child.ParentElement = null;
18961 }
18962
18963 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
18964 ISchemaElement ICreateChildren.CreateChild(string childName)
18965 {
18966 if (String.IsNullOrEmpty(childName))
18967 {
18968 throw new ArgumentNullException("childName");
18969 }
18970 ISchemaElement childValue = null;
18971 if (("DigitalCertificate" == childName))
18972 {
18973 childValue = new DigitalCertificate();
18974 }
18975 if ((null == childValue))
18976 {
18977 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
18978 }
18979 return childValue;
18980 }
18981
18982 /// <summary>
18983 /// Processes this element and all child elements into an XmlWriter.
18984 /// </summary>
18985 public virtual void OutputXml(XmlWriter writer)
18986 {
18987 if ((null == writer))
18988 {
18989 throw new ArgumentNullException("writer");
18990 }
18991 writer.WriteStartElement("PatchCertificates", "http://wixtoolset.org/schemas/v4/wxs");
18992 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
18993 {
18994 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
18995 childElement.OutputXml(writer);
18996 }
18997 writer.WriteEndElement();
18998 }
18999
19000 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
19001 void ISetAttributes.SetAttribute(string name, string value)
19002 {
19003 if (String.IsNullOrEmpty(name))
19004 {
19005 throw new ArgumentNullException("name");
19006 }
19007 }
19008 }
19009
19010 /// <summary>
19011 /// Digital signatures that identify installation packages in a multi-product transaction.
19012 /// </summary>
19013 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
19014 public class PackageCertificates : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
19015 {
19016
19017 private ElementCollection children;
19018
19019 private ISchemaElement parentElement;
19020
19021 public PackageCertificates()
19022 {
19023 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
19024 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DigitalCertificate)));
19025 this.children = childCollection0;
19026 }
19027
19028 public virtual IEnumerable Children
19029 {
19030 get
19031 {
19032 return this.children;
19033 }
19034 }
19035
19036 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
19037 public virtual IEnumerable this[System.Type childType]
19038 {
19039 get
19040 {
19041 return this.children.Filter(childType);
19042 }
19043 }
19044
19045 public virtual ISchemaElement ParentElement
19046 {
19047 get
19048 {
19049 return this.parentElement;
19050 }
19051 set
19052 {
19053 this.parentElement = value;
19054 }
19055 }
19056
19057 public virtual void AddChild(ISchemaElement child)
19058 {
19059 if ((null == child))
19060 {
19061 throw new ArgumentNullException("child");
19062 }
19063 this.children.AddElement(child);
19064 child.ParentElement = this;
19065 }
19066
19067 public virtual void RemoveChild(ISchemaElement child)
19068 {
19069 if ((null == child))
19070 {
19071 throw new ArgumentNullException("child");
19072 }
19073 this.children.RemoveElement(child);
19074 child.ParentElement = null;
19075 }
19076
19077 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
19078 ISchemaElement ICreateChildren.CreateChild(string childName)
19079 {
19080 if (String.IsNullOrEmpty(childName))
19081 {
19082 throw new ArgumentNullException("childName");
19083 }
19084 ISchemaElement childValue = null;
19085 if (("DigitalCertificate" == childName))
19086 {
19087 childValue = new DigitalCertificate();
19088 }
19089 if ((null == childValue))
19090 {
19091 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
19092 }
19093 return childValue;
19094 }
19095
19096 /// <summary>
19097 /// Processes this element and all child elements into an XmlWriter.
19098 /// </summary>
19099 public virtual void OutputXml(XmlWriter writer)
19100 {
19101 if ((null == writer))
19102 {
19103 throw new ArgumentNullException("writer");
19104 }
19105 writer.WriteStartElement("PackageCertificates", "http://wixtoolset.org/schemas/v4/wxs");
19106 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
19107 {
19108 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
19109 childElement.OutputXml(writer);
19110 }
19111 writer.WriteEndElement();
19112 }
19113
19114 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
19115 void ISetAttributes.SetAttribute(string name, string value)
19116 {
19117 if (String.IsNullOrEmpty(name))
19118 {
19119 throw new ArgumentNullException("name");
19120 }
19121 }
19122 }
19123
19124 /// <summary>
19125 /// Adds a digital certificate.
19126 /// </summary>
19127 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
19128 public class DigitalCertificate : ISchemaElement, ISetAttributes
19129 {
19130
19131 private string idField;
19132
19133 private bool idFieldSet;
19134
19135 private string sourceFileField;
19136
19137 private bool sourceFileFieldSet;
19138
19139 private ISchemaElement parentElement;
19140
19141 /// <summary>
19142 /// Identifier for a certificate file.
19143 /// </summary>
19144 public string Id
19145 {
19146 get
19147 {
19148 return this.idField;
19149 }
19150 set
19151 {
19152 this.idFieldSet = true;
19153 this.idField = value;
19154 }
19155 }
19156
19157 /// <summary>
19158 /// The path to the certificate file.
19159 /// </summary>
19160 public string SourceFile
19161 {
19162 get
19163 {
19164 return this.sourceFileField;
19165 }
19166 set
19167 {
19168 this.sourceFileFieldSet = true;
19169 this.sourceFileField = value;
19170 }
19171 }
19172
19173 public virtual ISchemaElement ParentElement
19174 {
19175 get
19176 {
19177 return this.parentElement;
19178 }
19179 set
19180 {
19181 this.parentElement = value;
19182 }
19183 }
19184
19185 /// <summary>
19186 /// Processes this element and all child elements into an XmlWriter.
19187 /// </summary>
19188 public virtual void OutputXml(XmlWriter writer)
19189 {
19190 if ((null == writer))
19191 {
19192 throw new ArgumentNullException("writer");
19193 }
19194 writer.WriteStartElement("DigitalCertificate", "http://wixtoolset.org/schemas/v4/wxs");
19195 if (this.idFieldSet)
19196 {
19197 writer.WriteAttributeString("Id", this.idField);
19198 }
19199 if (this.sourceFileFieldSet)
19200 {
19201 writer.WriteAttributeString("SourceFile", this.sourceFileField);
19202 }
19203 writer.WriteEndElement();
19204 }
19205
19206 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
19207 void ISetAttributes.SetAttribute(string name, string value)
19208 {
19209 if (String.IsNullOrEmpty(name))
19210 {
19211 throw new ArgumentNullException("name");
19212 }
19213 if (("Id" == name))
19214 {
19215 this.idField = value;
19216 this.idFieldSet = true;
19217 }
19218 if (("SourceFile" == name))
19219 {
19220 this.sourceFileField = value;
19221 this.sourceFileFieldSet = true;
19222 }
19223 }
19224 }
19225
19226 /// <summary>
19227 /// Reference to a DigitalCertificate element. This will force the entire referenced Fragment's contents
19228 /// to be included in the installer database. This is only used for references when patching.
19229 /// </summary>
19230 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
19231 public class DigitalCertificateRef : ISchemaElement, ISetAttributes
19232 {
19233
19234 private string idField;
19235
19236 private bool idFieldSet;
19237
19238 private ISchemaElement parentElement;
19239
19240 public string Id
19241 {
19242 get
19243 {
19244 return this.idField;
19245 }
19246 set
19247 {
19248 this.idFieldSet = true;
19249 this.idField = value;
19250 }
19251 }
19252
19253 public virtual ISchemaElement ParentElement
19254 {
19255 get
19256 {
19257 return this.parentElement;
19258 }
19259 set
19260 {
19261 this.parentElement = value;
19262 }
19263 }
19264
19265 /// <summary>
19266 /// Processes this element and all child elements into an XmlWriter.
19267 /// </summary>
19268 public virtual void OutputXml(XmlWriter writer)
19269 {
19270 if ((null == writer))
19271 {
19272 throw new ArgumentNullException("writer");
19273 }
19274 writer.WriteStartElement("DigitalCertificateRef", "http://wixtoolset.org/schemas/v4/wxs");
19275 if (this.idFieldSet)
19276 {
19277 writer.WriteAttributeString("Id", this.idField);
19278 }
19279 writer.WriteEndElement();
19280 }
19281
19282 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
19283 void ISetAttributes.SetAttribute(string name, string value)
19284 {
19285 if (String.IsNullOrEmpty(name))
19286 {
19287 throw new ArgumentNullException("name");
19288 }
19289 if (("Id" == name))
19290 {
19291 this.idField = value;
19292 this.idFieldSet = true;
19293 }
19294 }
19295 }
19296
19297 /// <summary>
19298 /// Adds a digital signature.
19299 /// </summary>
19300 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
19301 public class DigitalSignature : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
19302 {
19303
19304 private ElementCollection children;
19305
19306 private string sourceFileField;
19307
19308 private bool sourceFileFieldSet;
19309
19310 private ISchemaElement parentElement;
19311
19312 public DigitalSignature()
19313 {
19314 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
19315 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DigitalCertificate)));
19316 this.children = childCollection0;
19317 }
19318
19319 public virtual IEnumerable Children
19320 {
19321 get
19322 {
19323 return this.children;
19324 }
19325 }
19326
19327 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
19328 public virtual IEnumerable this[System.Type childType]
19329 {
19330 get
19331 {
19332 return this.children.Filter(childType);
19333 }
19334 }
19335
19336 /// <summary>
19337 /// The path to signature's optional hash file.
19338 /// </summary>
19339 public string SourceFile
19340 {
19341 get
19342 {
19343 return this.sourceFileField;
19344 }
19345 set
19346 {
19347 this.sourceFileFieldSet = true;
19348 this.sourceFileField = value;
19349 }
19350 }
19351
19352 public virtual ISchemaElement ParentElement
19353 {
19354 get
19355 {
19356 return this.parentElement;
19357 }
19358 set
19359 {
19360 this.parentElement = value;
19361 }
19362 }
19363
19364 public virtual void AddChild(ISchemaElement child)
19365 {
19366 if ((null == child))
19367 {
19368 throw new ArgumentNullException("child");
19369 }
19370 this.children.AddElement(child);
19371 child.ParentElement = this;
19372 }
19373
19374 public virtual void RemoveChild(ISchemaElement child)
19375 {
19376 if ((null == child))
19377 {
19378 throw new ArgumentNullException("child");
19379 }
19380 this.children.RemoveElement(child);
19381 child.ParentElement = null;
19382 }
19383
19384 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
19385 ISchemaElement ICreateChildren.CreateChild(string childName)
19386 {
19387 if (String.IsNullOrEmpty(childName))
19388 {
19389 throw new ArgumentNullException("childName");
19390 }
19391 ISchemaElement childValue = null;
19392 if (("DigitalCertificate" == childName))
19393 {
19394 childValue = new DigitalCertificate();
19395 }
19396 if ((null == childValue))
19397 {
19398 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
19399 }
19400 return childValue;
19401 }
19402
19403 /// <summary>
19404 /// Processes this element and all child elements into an XmlWriter.
19405 /// </summary>
19406 public virtual void OutputXml(XmlWriter writer)
19407 {
19408 if ((null == writer))
19409 {
19410 throw new ArgumentNullException("writer");
19411 }
19412 writer.WriteStartElement("DigitalSignature", "http://wixtoolset.org/schemas/v4/wxs");
19413 if (this.sourceFileFieldSet)
19414 {
19415 writer.WriteAttributeString("SourceFile", this.sourceFileField);
19416 }
19417 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
19418 {
19419 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
19420 childElement.OutputXml(writer);
19421 }
19422 writer.WriteEndElement();
19423 }
19424
19425 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
19426 void ISetAttributes.SetAttribute(string name, string value)
19427 {
19428 if (String.IsNullOrEmpty(name))
19429 {
19430 throw new ArgumentNullException("name");
19431 }
19432 if (("SourceFile" == name))
19433 {
19434 this.sourceFileField = value;
19435 this.sourceFileFieldSet = true;
19436 }
19437 }
19438 }
19439
19440 /// <summary>
19441 /// Adds a system file protection update catalog file
19442 /// </summary>
19443 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
19444 public class SFPCatalog : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
19445 {
19446
19447 private ElementCollection children;
19448
19449 private string nameField;
19450
19451 private bool nameFieldSet;
19452
19453 private string dependencyField;
19454
19455 private bool dependencyFieldSet;
19456
19457 private string sourceFileField;
19458
19459 private bool sourceFileFieldSet;
19460
19461 private ISchemaElement parentElement;
19462
19463 public SFPCatalog()
19464 {
19465 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
19466 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SFPCatalog)));
19467 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SFPFile)));
19468 this.children = childCollection0;
19469 }
19470
19471 public virtual IEnumerable Children
19472 {
19473 get
19474 {
19475 return this.children;
19476 }
19477 }
19478
19479 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
19480 public virtual IEnumerable this[System.Type childType]
19481 {
19482 get
19483 {
19484 return this.children.Filter(childType);
19485 }
19486 }
19487
19488 /// <summary>
19489 /// Filename for catalog file when installed.
19490 /// </summary>
19491 public string Name
19492 {
19493 get
19494 {
19495 return this.nameField;
19496 }
19497 set
19498 {
19499 this.nameFieldSet = true;
19500 this.nameField = value;
19501 }
19502 }
19503
19504 /// <summary>
19505 /// Used to define dependency outside of the package.
19506 /// </summary>
19507 public string Dependency
19508 {
19509 get
19510 {
19511 return this.dependencyField;
19512 }
19513 set
19514 {
19515 this.dependencyFieldSet = true;
19516 this.dependencyField = value;
19517 }
19518 }
19519
19520 /// <summary>
19521 /// Path to catalog file in binary.
19522 /// </summary>
19523 public string SourceFile
19524 {
19525 get
19526 {
19527 return this.sourceFileField;
19528 }
19529 set
19530 {
19531 this.sourceFileFieldSet = true;
19532 this.sourceFileField = value;
19533 }
19534 }
19535
19536 public virtual ISchemaElement ParentElement
19537 {
19538 get
19539 {
19540 return this.parentElement;
19541 }
19542 set
19543 {
19544 this.parentElement = value;
19545 }
19546 }
19547
19548 public virtual void AddChild(ISchemaElement child)
19549 {
19550 if ((null == child))
19551 {
19552 throw new ArgumentNullException("child");
19553 }
19554 this.children.AddElement(child);
19555 child.ParentElement = this;
19556 }
19557
19558 public virtual void RemoveChild(ISchemaElement child)
19559 {
19560 if ((null == child))
19561 {
19562 throw new ArgumentNullException("child");
19563 }
19564 this.children.RemoveElement(child);
19565 child.ParentElement = null;
19566 }
19567
19568 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
19569 ISchemaElement ICreateChildren.CreateChild(string childName)
19570 {
19571 if (String.IsNullOrEmpty(childName))
19572 {
19573 throw new ArgumentNullException("childName");
19574 }
19575 ISchemaElement childValue = null;
19576 if (("SFPCatalog" == childName))
19577 {
19578 childValue = new SFPCatalog();
19579 }
19580 if (("SFPFile" == childName))
19581 {
19582 childValue = new SFPFile();
19583 }
19584 if ((null == childValue))
19585 {
19586 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
19587 }
19588 return childValue;
19589 }
19590
19591 /// <summary>
19592 /// Processes this element and all child elements into an XmlWriter.
19593 /// </summary>
19594 public virtual void OutputXml(XmlWriter writer)
19595 {
19596 if ((null == writer))
19597 {
19598 throw new ArgumentNullException("writer");
19599 }
19600 writer.WriteStartElement("SFPCatalog", "http://wixtoolset.org/schemas/v4/wxs");
19601 if (this.nameFieldSet)
19602 {
19603 writer.WriteAttributeString("Name", this.nameField);
19604 }
19605 if (this.dependencyFieldSet)
19606 {
19607 writer.WriteAttributeString("Dependency", this.dependencyField);
19608 }
19609 if (this.sourceFileFieldSet)
19610 {
19611 writer.WriteAttributeString("SourceFile", this.sourceFileField);
19612 }
19613 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
19614 {
19615 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
19616 childElement.OutputXml(writer);
19617 }
19618 writer.WriteEndElement();
19619 }
19620
19621 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
19622 void ISetAttributes.SetAttribute(string name, string value)
19623 {
19624 if (String.IsNullOrEmpty(name))
19625 {
19626 throw new ArgumentNullException("name");
19627 }
19628 if (("Name" == name))
19629 {
19630 this.nameField = value;
19631 this.nameFieldSet = true;
19632 }
19633 if (("Dependency" == name))
19634 {
19635 this.dependencyField = value;
19636 this.dependencyFieldSet = true;
19637 }
19638 if (("SourceFile" == name))
19639 {
19640 this.sourceFileField = value;
19641 this.sourceFileFieldSet = true;
19642 }
19643 }
19644 }
19645
19646 /// <summary>
19647 /// Provides a many-to-many mapping from the SFPCatalog table to the File table
19648 /// </summary>
19649 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
19650 public class SFPFile : ISchemaElement, ISetAttributes
19651 {
19652
19653 private string idField;
19654
19655 private bool idFieldSet;
19656
19657 private ISchemaElement parentElement;
19658
19659 /// <summary>
19660 /// Primary Key to File Table.
19661 /// </summary>
19662 public string Id
19663 {
19664 get
19665 {
19666 return this.idField;
19667 }
19668 set
19669 {
19670 this.idFieldSet = true;
19671 this.idField = value;
19672 }
19673 }
19674
19675 public virtual ISchemaElement ParentElement
19676 {
19677 get
19678 {
19679 return this.parentElement;
19680 }
19681 set
19682 {
19683 this.parentElement = value;
19684 }
19685 }
19686
19687 /// <summary>
19688 /// Processes this element and all child elements into an XmlWriter.
19689 /// </summary>
19690 public virtual void OutputXml(XmlWriter writer)
19691 {
19692 if ((null == writer))
19693 {
19694 throw new ArgumentNullException("writer");
19695 }
19696 writer.WriteStartElement("SFPFile", "http://wixtoolset.org/schemas/v4/wxs");
19697 if (this.idFieldSet)
19698 {
19699 writer.WriteAttributeString("Id", this.idField);
19700 }
19701 writer.WriteEndElement();
19702 }
19703
19704 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
19705 void ISetAttributes.SetAttribute(string name, string value)
19706 {
19707 if (String.IsNullOrEmpty(name))
19708 {
19709 throw new ArgumentNullException("name");
19710 }
19711 if (("Id" == name))
19712 {
19713 this.idField = value;
19714 this.idFieldSet = true;
19715 }
19716 }
19717 }
19718
19719 /// <summary>
19720 /// Adds or removes .ini file entries.
19721 /// </summary>
19722 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
19723 public class IniFile : ISchemaElement, ISetAttributes
19724 {
19725
19726 private string idField;
19727
19728 private bool idFieldSet;
19729
19730 private ActionType actionField;
19731
19732 private bool actionFieldSet;
19733
19734 private string directoryField;
19735
19736 private bool directoryFieldSet;
19737
19738 private string keyField;
19739
19740 private bool keyFieldSet;
19741
19742 private string nameField;
19743
19744 private bool nameFieldSet;
19745
19746 private string sectionField;
19747
19748 private bool sectionFieldSet;
19749
19750 private string shortNameField;
19751
19752 private bool shortNameFieldSet;
19753
19754 private string valueField;
19755
19756 private bool valueFieldSet;
19757
19758 private ISchemaElement parentElement;
19759
19760 /// <summary>
19761 /// Identifier for ini file.
19762 /// </summary>
19763 public string Id
19764 {
19765 get
19766 {
19767 return this.idField;
19768 }
19769 set
19770 {
19771 this.idFieldSet = true;
19772 this.idField = value;
19773 }
19774 }
19775
19776 /// <summary>
19777 /// The type of modification to be made.
19778 /// </summary>
19779 public ActionType Action
19780 {
19781 get
19782 {
19783 return this.actionField;
19784 }
19785 set
19786 {
19787 this.actionFieldSet = true;
19788 this.actionField = value;
19789 }
19790 }
19791
19792 /// <summary>
19793 /// 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.
19794 /// </summary>
19795 public string Directory
19796 {
19797 get
19798 {
19799 return this.directoryField;
19800 }
19801 set
19802 {
19803 this.directoryFieldSet = true;
19804 this.directoryField = value;
19805 }
19806 }
19807
19808 /// <summary>
19809 /// The localizable .ini file key within the section.
19810 /// </summary>
19811 public string Key
19812 {
19813 get
19814 {
19815 return this.keyField;
19816 }
19817 set
19818 {
19819 this.keyFieldSet = true;
19820 this.keyField = value;
19821 }
19822 }
19823
19824 /// <summary>
19825 /// In prior versions of the WiX toolset, this attribute specified the short name.
19826 /// This attribute's value may now be either a short or long name.
19827 /// If a short name is specified, the ShortName attribute may not be specified.
19828 /// Also, if this value is a long name, the ShortName attribute may be omitted to
19829 /// allow WiX to attempt to generate a unique short name.
19830 /// However, if this name collides with another file or you wish to manually specify
19831 /// the short name, then the ShortName attribute may be specified.
19832 /// </summary>
19833 public string Name
19834 {
19835 get
19836 {
19837 return this.nameField;
19838 }
19839 set
19840 {
19841 this.nameFieldSet = true;
19842 this.nameField = value;
19843 }
19844 }
19845
19846 /// <summary>
19847 /// The localizable .ini file section.
19848 /// </summary>
19849 public string Section
19850 {
19851 get
19852 {
19853 return this.sectionField;
19854 }
19855 set
19856 {
19857 this.sectionFieldSet = true;
19858 this.sectionField = value;
19859 }
19860 }
19861
19862 /// <summary>
19863 /// The short name of the in 8.3 format.
19864 /// This attribute should only be set if there is a conflict between generated short names
19865 /// or the user wants to manually specify the short name.
19866 /// </summary>
19867 public string ShortName
19868 {
19869 get
19870 {
19871 return this.shortNameField;
19872 }
19873 set
19874 {
19875 this.shortNameFieldSet = true;
19876 this.shortNameField = value;
19877 }
19878 }
19879
19880 /// <summary>
19881 /// The localizable value to be written or deleted. This attribute must be set if
19882 /// the Action attribute's value is "addLine", "addTag", or "createLine".
19883 /// </summary>
19884 public string Value
19885 {
19886 get
19887 {
19888 return this.valueField;
19889 }
19890 set
19891 {
19892 this.valueFieldSet = true;
19893 this.valueField = value;
19894 }
19895 }
19896
19897 public virtual ISchemaElement ParentElement
19898 {
19899 get
19900 {
19901 return this.parentElement;
19902 }
19903 set
19904 {
19905 this.parentElement = value;
19906 }
19907 }
19908
19909 /// <summary>
19910 /// Parses a ActionType from a string.
19911 /// </summary>
19912 public static ActionType ParseActionType(string value)
19913 {
19914 ActionType parsedValue;
19915 IniFile.TryParseActionType(value, out parsedValue);
19916 return parsedValue;
19917 }
19918
19919 /// <summary>
19920 /// Tries to parse a ActionType from a string.
19921 /// </summary>
19922 public static bool TryParseActionType(string value, out ActionType parsedValue)
19923 {
19924 parsedValue = ActionType.NotSet;
19925 if (string.IsNullOrEmpty(value))
19926 {
19927 return false;
19928 }
19929 if (("addLine" == value))
19930 {
19931 parsedValue = ActionType.addLine;
19932 }
19933 else
19934 {
19935 if (("addTag" == value))
19936 {
19937 parsedValue = ActionType.addTag;
19938 }
19939 else
19940 {
19941 if (("createLine" == value))
19942 {
19943 parsedValue = ActionType.createLine;
19944 }
19945 else
19946 {
19947 if (("removeLine" == value))
19948 {
19949 parsedValue = ActionType.removeLine;
19950 }
19951 else
19952 {
19953 if (("removeTag" == value))
19954 {
19955 parsedValue = ActionType.removeTag;
19956 }
19957 else
19958 {
19959 parsedValue = ActionType.IllegalValue;
19960 return false;
19961 }
19962 }
19963 }
19964 }
19965 }
19966 return true;
19967 }
19968
19969 /// <summary>
19970 /// Processes this element and all child elements into an XmlWriter.
19971 /// </summary>
19972 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
19973 public virtual void OutputXml(XmlWriter writer)
19974 {
19975 if ((null == writer))
19976 {
19977 throw new ArgumentNullException("writer");
19978 }
19979 writer.WriteStartElement("IniFile", "http://wixtoolset.org/schemas/v4/wxs");
19980 if (this.idFieldSet)
19981 {
19982 writer.WriteAttributeString("Id", this.idField);
19983 }
19984 if (this.actionFieldSet)
19985 {
19986 if ((this.actionField == ActionType.addLine))
19987 {
19988 writer.WriteAttributeString("Action", "addLine");
19989 }
19990 if ((this.actionField == ActionType.addTag))
19991 {
19992 writer.WriteAttributeString("Action", "addTag");
19993 }
19994 if ((this.actionField == ActionType.createLine))
19995 {
19996 writer.WriteAttributeString("Action", "createLine");
19997 }
19998 if ((this.actionField == ActionType.removeLine))
19999 {
20000 writer.WriteAttributeString("Action", "removeLine");
20001 }
20002 if ((this.actionField == ActionType.removeTag))
20003 {
20004 writer.WriteAttributeString("Action", "removeTag");
20005 }
20006 }
20007 if (this.directoryFieldSet)
20008 {
20009 writer.WriteAttributeString("Directory", this.directoryField);
20010 }
20011 if (this.keyFieldSet)
20012 {
20013 writer.WriteAttributeString("Key", this.keyField);
20014 }
20015 if (this.nameFieldSet)
20016 {
20017 writer.WriteAttributeString("Name", this.nameField);
20018 }
20019 if (this.sectionFieldSet)
20020 {
20021 writer.WriteAttributeString("Section", this.sectionField);
20022 }
20023 if (this.shortNameFieldSet)
20024 {
20025 writer.WriteAttributeString("ShortName", this.shortNameField);
20026 }
20027 if (this.valueFieldSet)
20028 {
20029 writer.WriteAttributeString("Value", this.valueField);
20030 }
20031 writer.WriteEndElement();
20032 }
20033
20034 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
20035 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
20036 void ISetAttributes.SetAttribute(string name, string value)
20037 {
20038 if (String.IsNullOrEmpty(name))
20039 {
20040 throw new ArgumentNullException("name");
20041 }
20042 if (("Id" == name))
20043 {
20044 this.idField = value;
20045 this.idFieldSet = true;
20046 }
20047 if (("Action" == name))
20048 {
20049 this.actionField = IniFile.ParseActionType(value);
20050 this.actionFieldSet = true;
20051 }
20052 if (("Directory" == name))
20053 {
20054 this.directoryField = value;
20055 this.directoryFieldSet = true;
20056 }
20057 if (("Key" == name))
20058 {
20059 this.keyField = value;
20060 this.keyFieldSet = true;
20061 }
20062 if (("Name" == name))
20063 {
20064 this.nameField = value;
20065 this.nameFieldSet = true;
20066 }
20067 if (("Section" == name))
20068 {
20069 this.sectionField = value;
20070 this.sectionFieldSet = true;
20071 }
20072 if (("ShortName" == name))
20073 {
20074 this.shortNameField = value;
20075 this.shortNameFieldSet = true;
20076 }
20077 if (("Value" == name))
20078 {
20079 this.valueField = value;
20080 this.valueFieldSet = true;
20081 }
20082 }
20083
20084 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
20085 public enum ActionType
20086 {
20087
20088 IllegalValue = int.MaxValue,
20089
20090 NotSet = -1,
20091
20092 /// <summary>
20093 /// Creates or updates an .ini entry.
20094 /// </summary>
20095 addLine,
20096
20097 /// <summary>
20098 /// Creates a new entry or appends a new comma-separated value to an existing entry.
20099 /// </summary>
20100 addTag,
20101
20102 /// <summary>
20103 /// Creates an .ini entry only if the entry does no already exist.
20104 /// </summary>
20105 createLine,
20106
20107 /// <summary>
20108 /// Removes an .ini entry.
20109 /// </summary>
20110 removeLine,
20111
20112 /// <summary>
20113 /// Removes a tag from an .ini entry.
20114 /// </summary>
20115 removeTag,
20116 }
20117 }
20118
20119 /// <summary>
20120 /// ODBCDataSource for a Component
20121 /// </summary>
20122 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
20123 public class ODBCDataSource : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
20124 {
20125
20126 private ElementCollection children;
20127
20128 private string idField;
20129
20130 private bool idFieldSet;
20131
20132 private string nameField;
20133
20134 private bool nameFieldSet;
20135
20136 private string driverNameField;
20137
20138 private bool driverNameFieldSet;
20139
20140 private RegistrationType registrationField;
20141
20142 private bool registrationFieldSet;
20143
20144 private YesNoType keyPathField;
20145
20146 private bool keyPathFieldSet;
20147
20148 private ISchemaElement parentElement;
20149
20150 public ODBCDataSource()
20151 {
20152 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
20153 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Property)));
20154 this.children = childCollection0;
20155 }
20156
20157 public virtual IEnumerable Children
20158 {
20159 get
20160 {
20161 return this.children;
20162 }
20163 }
20164
20165 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
20166 public virtual IEnumerable this[System.Type childType]
20167 {
20168 get
20169 {
20170 return this.children.Filter(childType);
20171 }
20172 }
20173
20174 /// <summary>
20175 /// Identifier of the data source.
20176 /// </summary>
20177 public string Id
20178 {
20179 get
20180 {
20181 return this.idField;
20182 }
20183 set
20184 {
20185 this.idFieldSet = true;
20186 this.idField = value;
20187 }
20188 }
20189
20190 /// <summary>
20191 /// Name for the data source.
20192 /// </summary>
20193 public string Name
20194 {
20195 get
20196 {
20197 return this.nameField;
20198 }
20199 set
20200 {
20201 this.nameFieldSet = true;
20202 this.nameField = value;
20203 }
20204 }
20205
20206 /// <summary>
20207 /// Required if not found as child of ODBCDriver element
20208 /// </summary>
20209 public string DriverName
20210 {
20211 get
20212 {
20213 return this.driverNameField;
20214 }
20215 set
20216 {
20217 this.driverNameFieldSet = true;
20218 this.driverNameField = value;
20219 }
20220 }
20221
20222 /// <summary>
20223 /// Scope for which the data source should be registered.
20224 /// </summary>
20225 public RegistrationType Registration
20226 {
20227 get
20228 {
20229 return this.registrationField;
20230 }
20231 set
20232 {
20233 this.registrationFieldSet = true;
20234 this.registrationField = value;
20235 }
20236 }
20237
20238 /// <summary>
20239 /// Set 'yes' to force this file to be key path for parent Component
20240 /// </summary>
20241 public YesNoType KeyPath
20242 {
20243 get
20244 {
20245 return this.keyPathField;
20246 }
20247 set
20248 {
20249 this.keyPathFieldSet = true;
20250 this.keyPathField = value;
20251 }
20252 }
20253
20254 public virtual ISchemaElement ParentElement
20255 {
20256 get
20257 {
20258 return this.parentElement;
20259 }
20260 set
20261 {
20262 this.parentElement = value;
20263 }
20264 }
20265
20266 public virtual void AddChild(ISchemaElement child)
20267 {
20268 if ((null == child))
20269 {
20270 throw new ArgumentNullException("child");
20271 }
20272 this.children.AddElement(child);
20273 child.ParentElement = this;
20274 }
20275
20276 public virtual void RemoveChild(ISchemaElement child)
20277 {
20278 if ((null == child))
20279 {
20280 throw new ArgumentNullException("child");
20281 }
20282 this.children.RemoveElement(child);
20283 child.ParentElement = null;
20284 }
20285
20286 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
20287 ISchemaElement ICreateChildren.CreateChild(string childName)
20288 {
20289 if (String.IsNullOrEmpty(childName))
20290 {
20291 throw new ArgumentNullException("childName");
20292 }
20293 ISchemaElement childValue = null;
20294 if (("Property" == childName))
20295 {
20296 childValue = new Property();
20297 }
20298 if ((null == childValue))
20299 {
20300 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
20301 }
20302 return childValue;
20303 }
20304
20305 /// <summary>
20306 /// Parses a RegistrationType from a string.
20307 /// </summary>
20308 public static RegistrationType ParseRegistrationType(string value)
20309 {
20310 RegistrationType parsedValue;
20311 ODBCDataSource.TryParseRegistrationType(value, out parsedValue);
20312 return parsedValue;
20313 }
20314
20315 /// <summary>
20316 /// Tries to parse a RegistrationType from a string.
20317 /// </summary>
20318 public static bool TryParseRegistrationType(string value, out RegistrationType parsedValue)
20319 {
20320 parsedValue = RegistrationType.NotSet;
20321 if (string.IsNullOrEmpty(value))
20322 {
20323 return false;
20324 }
20325 if (("machine" == value))
20326 {
20327 parsedValue = RegistrationType.machine;
20328 }
20329 else
20330 {
20331 if (("user" == value))
20332 {
20333 parsedValue = RegistrationType.user;
20334 }
20335 else
20336 {
20337 parsedValue = RegistrationType.IllegalValue;
20338 return false;
20339 }
20340 }
20341 return true;
20342 }
20343
20344 /// <summary>
20345 /// Processes this element and all child elements into an XmlWriter.
20346 /// </summary>
20347 public virtual void OutputXml(XmlWriter writer)
20348 {
20349 if ((null == writer))
20350 {
20351 throw new ArgumentNullException("writer");
20352 }
20353 writer.WriteStartElement("ODBCDataSource", "http://wixtoolset.org/schemas/v4/wxs");
20354 if (this.idFieldSet)
20355 {
20356 writer.WriteAttributeString("Id", this.idField);
20357 }
20358 if (this.nameFieldSet)
20359 {
20360 writer.WriteAttributeString("Name", this.nameField);
20361 }
20362 if (this.driverNameFieldSet)
20363 {
20364 writer.WriteAttributeString("DriverName", this.driverNameField);
20365 }
20366 if (this.registrationFieldSet)
20367 {
20368 if ((this.registrationField == RegistrationType.machine))
20369 {
20370 writer.WriteAttributeString("Registration", "machine");
20371 }
20372 if ((this.registrationField == RegistrationType.user))
20373 {
20374 writer.WriteAttributeString("Registration", "user");
20375 }
20376 }
20377 if (this.keyPathFieldSet)
20378 {
20379 if ((this.keyPathField == YesNoType.no))
20380 {
20381 writer.WriteAttributeString("KeyPath", "no");
20382 }
20383 if ((this.keyPathField == YesNoType.yes))
20384 {
20385 writer.WriteAttributeString("KeyPath", "yes");
20386 }
20387 }
20388 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
20389 {
20390 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
20391 childElement.OutputXml(writer);
20392 }
20393 writer.WriteEndElement();
20394 }
20395
20396 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
20397 void ISetAttributes.SetAttribute(string name, string value)
20398 {
20399 if (String.IsNullOrEmpty(name))
20400 {
20401 throw new ArgumentNullException("name");
20402 }
20403 if (("Id" == name))
20404 {
20405 this.idField = value;
20406 this.idFieldSet = true;
20407 }
20408 if (("Name" == name))
20409 {
20410 this.nameField = value;
20411 this.nameFieldSet = true;
20412 }
20413 if (("DriverName" == name))
20414 {
20415 this.driverNameField = value;
20416 this.driverNameFieldSet = true;
20417 }
20418 if (("Registration" == name))
20419 {
20420 this.registrationField = ODBCDataSource.ParseRegistrationType(value);
20421 this.registrationFieldSet = true;
20422 }
20423 if (("KeyPath" == name))
20424 {
20425 this.keyPathField = Enums.ParseYesNoType(value);
20426 this.keyPathFieldSet = true;
20427 }
20428 }
20429
20430 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
20431 public enum RegistrationType
20432 {
20433
20434 IllegalValue = int.MaxValue,
20435
20436 NotSet = -1,
20437
20438 /// <summary>
20439 /// Data source is registered per machine.
20440 /// </summary>
20441 machine,
20442
20443 /// <summary>
20444 /// Data source is registered per user.
20445 /// </summary>
20446 user,
20447 }
20448 }
20449
20450 /// <summary>
20451 /// ODBCDriver for a Component
20452 /// </summary>
20453 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
20454 public class ODBCDriver : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
20455 {
20456
20457 private ElementCollection children;
20458
20459 private string idField;
20460
20461 private bool idFieldSet;
20462
20463 private string nameField;
20464
20465 private bool nameFieldSet;
20466
20467 private string fileField;
20468
20469 private bool fileFieldSet;
20470
20471 private string setupFileField;
20472
20473 private bool setupFileFieldSet;
20474
20475 private ISchemaElement parentElement;
20476
20477 public ODBCDriver()
20478 {
20479 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
20480 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Property)));
20481 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ODBCDataSource)));
20482 this.children = childCollection0;
20483 }
20484
20485 public virtual IEnumerable Children
20486 {
20487 get
20488 {
20489 return this.children;
20490 }
20491 }
20492
20493 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
20494 public virtual IEnumerable this[System.Type childType]
20495 {
20496 get
20497 {
20498 return this.children.Filter(childType);
20499 }
20500 }
20501
20502 /// <summary>
20503 /// Identifier for the driver.
20504 /// </summary>
20505 public string Id
20506 {
20507 get
20508 {
20509 return this.idField;
20510 }
20511 set
20512 {
20513 this.idFieldSet = true;
20514 this.idField = value;
20515 }
20516 }
20517
20518 /// <summary>
20519 /// Name for the driver.
20520 /// </summary>
20521 public string Name
20522 {
20523 get
20524 {
20525 return this.nameField;
20526 }
20527 set
20528 {
20529 this.nameFieldSet = true;
20530 this.nameField = value;
20531 }
20532 }
20533
20534 /// <summary>
20535 /// Required if not found as child of File element
20536 /// </summary>
20537 public string File
20538 {
20539 get
20540 {
20541 return this.fileField;
20542 }
20543 set
20544 {
20545 this.fileFieldSet = true;
20546 this.fileField = value;
20547 }
20548 }
20549
20550 /// <summary>
20551 /// Required if not found as child of File element or different from File attribute above
20552 /// </summary>
20553 public string SetupFile
20554 {
20555 get
20556 {
20557 return this.setupFileField;
20558 }
20559 set
20560 {
20561 this.setupFileFieldSet = true;
20562 this.setupFileField = value;
20563 }
20564 }
20565
20566 public virtual ISchemaElement ParentElement
20567 {
20568 get
20569 {
20570 return this.parentElement;
20571 }
20572 set
20573 {
20574 this.parentElement = value;
20575 }
20576 }
20577
20578 public virtual void AddChild(ISchemaElement child)
20579 {
20580 if ((null == child))
20581 {
20582 throw new ArgumentNullException("child");
20583 }
20584 this.children.AddElement(child);
20585 child.ParentElement = this;
20586 }
20587
20588 public virtual void RemoveChild(ISchemaElement child)
20589 {
20590 if ((null == child))
20591 {
20592 throw new ArgumentNullException("child");
20593 }
20594 this.children.RemoveElement(child);
20595 child.ParentElement = null;
20596 }
20597
20598 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
20599 ISchemaElement ICreateChildren.CreateChild(string childName)
20600 {
20601 if (String.IsNullOrEmpty(childName))
20602 {
20603 throw new ArgumentNullException("childName");
20604 }
20605 ISchemaElement childValue = null;
20606 if (("Property" == childName))
20607 {
20608 childValue = new Property();
20609 }
20610 if (("ODBCDataSource" == childName))
20611 {
20612 childValue = new ODBCDataSource();
20613 }
20614 if ((null == childValue))
20615 {
20616 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
20617 }
20618 return childValue;
20619 }
20620
20621 /// <summary>
20622 /// Processes this element and all child elements into an XmlWriter.
20623 /// </summary>
20624 public virtual void OutputXml(XmlWriter writer)
20625 {
20626 if ((null == writer))
20627 {
20628 throw new ArgumentNullException("writer");
20629 }
20630 writer.WriteStartElement("ODBCDriver", "http://wixtoolset.org/schemas/v4/wxs");
20631 if (this.idFieldSet)
20632 {
20633 writer.WriteAttributeString("Id", this.idField);
20634 }
20635 if (this.nameFieldSet)
20636 {
20637 writer.WriteAttributeString("Name", this.nameField);
20638 }
20639 if (this.fileFieldSet)
20640 {
20641 writer.WriteAttributeString("File", this.fileField);
20642 }
20643 if (this.setupFileFieldSet)
20644 {
20645 writer.WriteAttributeString("SetupFile", this.setupFileField);
20646 }
20647 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
20648 {
20649 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
20650 childElement.OutputXml(writer);
20651 }
20652 writer.WriteEndElement();
20653 }
20654
20655 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
20656 void ISetAttributes.SetAttribute(string name, string value)
20657 {
20658 if (String.IsNullOrEmpty(name))
20659 {
20660 throw new ArgumentNullException("name");
20661 }
20662 if (("Id" == name))
20663 {
20664 this.idField = value;
20665 this.idFieldSet = true;
20666 }
20667 if (("Name" == name))
20668 {
20669 this.nameField = value;
20670 this.nameFieldSet = true;
20671 }
20672 if (("File" == name))
20673 {
20674 this.fileField = value;
20675 this.fileFieldSet = true;
20676 }
20677 if (("SetupFile" == name))
20678 {
20679 this.setupFileField = value;
20680 this.setupFileFieldSet = true;
20681 }
20682 }
20683 }
20684
20685 /// <summary>
20686 /// ODBCTranslator for a Component
20687 /// </summary>
20688 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
20689 public class ODBCTranslator : ISchemaElement, ISetAttributes
20690 {
20691
20692 private string idField;
20693
20694 private bool idFieldSet;
20695
20696 private string nameField;
20697
20698 private bool nameFieldSet;
20699
20700 private string fileField;
20701
20702 private bool fileFieldSet;
20703
20704 private string setupFileField;
20705
20706 private bool setupFileFieldSet;
20707
20708 private ISchemaElement parentElement;
20709
20710 /// <summary>
20711 /// Identifier for the translator.
20712 /// </summary>
20713 public string Id
20714 {
20715 get
20716 {
20717 return this.idField;
20718 }
20719 set
20720 {
20721 this.idFieldSet = true;
20722 this.idField = value;
20723 }
20724 }
20725
20726 /// <summary>
20727 /// Name for the translator.
20728 /// </summary>
20729 public string Name
20730 {
20731 get
20732 {
20733 return this.nameField;
20734 }
20735 set
20736 {
20737 this.nameFieldSet = true;
20738 this.nameField = value;
20739 }
20740 }
20741
20742 /// <summary>
20743 /// Required if not found as child of File element
20744 /// </summary>
20745 public string File
20746 {
20747 get
20748 {
20749 return this.fileField;
20750 }
20751 set
20752 {
20753 this.fileFieldSet = true;
20754 this.fileField = value;
20755 }
20756 }
20757
20758 /// <summary>
20759 /// Required if not found as child of File element or different from File attribute above
20760 /// </summary>
20761 public string SetupFile
20762 {
20763 get
20764 {
20765 return this.setupFileField;
20766 }
20767 set
20768 {
20769 this.setupFileFieldSet = true;
20770 this.setupFileField = value;
20771 }
20772 }
20773
20774 public virtual ISchemaElement ParentElement
20775 {
20776 get
20777 {
20778 return this.parentElement;
20779 }
20780 set
20781 {
20782 this.parentElement = value;
20783 }
20784 }
20785
20786 /// <summary>
20787 /// Processes this element and all child elements into an XmlWriter.
20788 /// </summary>
20789 public virtual void OutputXml(XmlWriter writer)
20790 {
20791 if ((null == writer))
20792 {
20793 throw new ArgumentNullException("writer");
20794 }
20795 writer.WriteStartElement("ODBCTranslator", "http://wixtoolset.org/schemas/v4/wxs");
20796 if (this.idFieldSet)
20797 {
20798 writer.WriteAttributeString("Id", this.idField);
20799 }
20800 if (this.nameFieldSet)
20801 {
20802 writer.WriteAttributeString("Name", this.nameField);
20803 }
20804 if (this.fileFieldSet)
20805 {
20806 writer.WriteAttributeString("File", this.fileField);
20807 }
20808 if (this.setupFileFieldSet)
20809 {
20810 writer.WriteAttributeString("SetupFile", this.setupFileField);
20811 }
20812 writer.WriteEndElement();
20813 }
20814
20815 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
20816 void ISetAttributes.SetAttribute(string name, string value)
20817 {
20818 if (String.IsNullOrEmpty(name))
20819 {
20820 throw new ArgumentNullException("name");
20821 }
20822 if (("Id" == name))
20823 {
20824 this.idField = value;
20825 this.idFieldSet = true;
20826 }
20827 if (("Name" == name))
20828 {
20829 this.nameField = value;
20830 this.nameFieldSet = true;
20831 }
20832 if (("File" == name))
20833 {
20834 this.fileField = value;
20835 this.fileFieldSet = true;
20836 }
20837 if (("SetupFile" == name))
20838 {
20839 this.setupFileField = value;
20840 this.setupFileFieldSet = true;
20841 }
20842 }
20843 }
20844
20845 /// <summary>
20846 /// Searches for file and assigns to fullpath value of parent Property
20847 /// </summary>
20848 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
20849 public class FileSearch : ISchemaElement, ISetAttributes
20850 {
20851
20852 private string idField;
20853
20854 private bool idFieldSet;
20855
20856 private string nameField;
20857
20858 private bool nameFieldSet;
20859
20860 private string shortNameField;
20861
20862 private bool shortNameFieldSet;
20863
20864 private int minSizeField;
20865
20866 private bool minSizeFieldSet;
20867
20868 private int maxSizeField;
20869
20870 private bool maxSizeFieldSet;
20871
20872 private string minVersionField;
20873
20874 private bool minVersionFieldSet;
20875
20876 private string maxVersionField;
20877
20878 private bool maxVersionFieldSet;
20879
20880 private DateTime minDateField;
20881
20882 private bool minDateFieldSet;
20883
20884 private DateTime maxDateField;
20885
20886 private bool maxDateFieldSet;
20887
20888 private string languagesField;
20889
20890 private bool languagesFieldSet;
20891
20892 private ISchemaElement parentElement;
20893
20894 /// <summary>
20895 /// 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.
20896 /// </summary>
20897 public string Id
20898 {
20899 get
20900 {
20901 return this.idField;
20902 }
20903 set
20904 {
20905 this.idFieldSet = true;
20906 this.idField = value;
20907 }
20908 }
20909
20910 /// <summary>
20911 /// In prior versions of the WiX toolset, this attribute specified the short file name.
20912 /// This attribute's value may now be either a short or long file name.
20913 /// If a short file name is specified, the ShortName attribute may not be specified.
20914 /// If you wish to manually specify the short file name, then the ShortName
20915 /// attribute may be specified.
20916 /// </summary>
20917 public string Name
20918 {
20919 get
20920 {
20921 return this.nameField;
20922 }
20923 set
20924 {
20925 this.nameFieldSet = true;
20926 this.nameField = value;
20927 }
20928 }
20929
20930 /// <summary>
20931 /// The short file name of the file in 8.3 format.
20932 /// There is a Windows Installer bug which prevents the FileSearch functionality from working
20933 /// if both a short and long file name are specified. Since the Name attribute allows either
20934 /// a short or long name to be specified, it is the only attribute related to file names which
20935 /// should be specified.
20936 /// </summary>
20937 public string ShortName
20938 {
20939 get
20940 {
20941 return this.shortNameField;
20942 }
20943 set
20944 {
20945 this.shortNameFieldSet = true;
20946 this.shortNameField = value;
20947 }
20948 }
20949
20950 /// <summary>
20951 /// The minimum size of the file.
20952 /// </summary>
20953 public int MinSize
20954 {
20955 get
20956 {
20957 return this.minSizeField;
20958 }
20959 set
20960 {
20961 this.minSizeFieldSet = true;
20962 this.minSizeField = value;
20963 }
20964 }
20965
20966 /// <summary>
20967 /// The maximum size of the file.
20968 /// </summary>
20969 public int MaxSize
20970 {
20971 get
20972 {
20973 return this.maxSizeField;
20974 }
20975 set
20976 {
20977 this.maxSizeFieldSet = true;
20978 this.maxSizeField = value;
20979 }
20980 }
20981
20982 /// <summary>
20983 /// The minimum version of the file.
20984 /// </summary>
20985 public string MinVersion
20986 {
20987 get
20988 {
20989 return this.minVersionField;
20990 }
20991 set
20992 {
20993 this.minVersionFieldSet = true;
20994 this.minVersionField = value;
20995 }
20996 }
20997
20998 /// <summary>
20999 /// The maximum version of the file.
21000 /// </summary>
21001 public string MaxVersion
21002 {
21003 get
21004 {
21005 return this.maxVersionField;
21006 }
21007 set
21008 {
21009 this.maxVersionFieldSet = true;
21010 this.maxVersionField = value;
21011 }
21012 }
21013
21014 /// <summary>
21015 /// 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.
21016 /// </summary>
21017 public DateTime MinDate
21018 {
21019 get
21020 {
21021 return this.minDateField;
21022 }
21023 set
21024 {
21025 this.minDateFieldSet = true;
21026 this.minDateField = value;
21027 }
21028 }
21029
21030 /// <summary>
21031 /// 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.
21032 /// </summary>
21033 public DateTime MaxDate
21034 {
21035 get
21036 {
21037 return this.maxDateField;
21038 }
21039 set
21040 {
21041 this.maxDateFieldSet = true;
21042 this.maxDateField = value;
21043 }
21044 }
21045
21046 /// <summary>
21047 /// The languages supported by the file.
21048 /// </summary>
21049 public string Languages
21050 {
21051 get
21052 {
21053 return this.languagesField;
21054 }
21055 set
21056 {
21057 this.languagesFieldSet = true;
21058 this.languagesField = value;
21059 }
21060 }
21061
21062 public virtual ISchemaElement ParentElement
21063 {
21064 get
21065 {
21066 return this.parentElement;
21067 }
21068 set
21069 {
21070 this.parentElement = value;
21071 }
21072 }
21073
21074 /// <summary>
21075 /// Processes this element and all child elements into an XmlWriter.
21076 /// </summary>
21077 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
21078 public virtual void OutputXml(XmlWriter writer)
21079 {
21080 if ((null == writer))
21081 {
21082 throw new ArgumentNullException("writer");
21083 }
21084 writer.WriteStartElement("FileSearch", "http://wixtoolset.org/schemas/v4/wxs");
21085 if (this.idFieldSet)
21086 {
21087 writer.WriteAttributeString("Id", this.idField);
21088 }
21089 if (this.nameFieldSet)
21090 {
21091 writer.WriteAttributeString("Name", this.nameField);
21092 }
21093 if (this.shortNameFieldSet)
21094 {
21095 writer.WriteAttributeString("ShortName", this.shortNameField);
21096 }
21097 if (this.minSizeFieldSet)
21098 {
21099 writer.WriteAttributeString("MinSize", this.minSizeField.ToString(CultureInfo.InvariantCulture));
21100 }
21101 if (this.maxSizeFieldSet)
21102 {
21103 writer.WriteAttributeString("MaxSize", this.maxSizeField.ToString(CultureInfo.InvariantCulture));
21104 }
21105 if (this.minVersionFieldSet)
21106 {
21107 writer.WriteAttributeString("MinVersion", this.minVersionField);
21108 }
21109 if (this.maxVersionFieldSet)
21110 {
21111 writer.WriteAttributeString("MaxVersion", this.maxVersionField);
21112 }
21113 if (this.minDateFieldSet)
21114 {
21115 writer.WriteAttributeString("MinDate", this.minDateField.ToString("yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture.DateTimeFormat));
21116 }
21117 if (this.maxDateFieldSet)
21118 {
21119 writer.WriteAttributeString("MaxDate", this.maxDateField.ToString("yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture.DateTimeFormat));
21120 }
21121 if (this.languagesFieldSet)
21122 {
21123 writer.WriteAttributeString("Languages", this.languagesField);
21124 }
21125 writer.WriteEndElement();
21126 }
21127
21128 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
21129 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
21130 void ISetAttributes.SetAttribute(string name, string value)
21131 {
21132 if (String.IsNullOrEmpty(name))
21133 {
21134 throw new ArgumentNullException("name");
21135 }
21136 if (("Id" == name))
21137 {
21138 this.idField = value;
21139 this.idFieldSet = true;
21140 }
21141 if (("Name" == name))
21142 {
21143 this.nameField = value;
21144 this.nameFieldSet = true;
21145 }
21146 if (("ShortName" == name))
21147 {
21148 this.shortNameField = value;
21149 this.shortNameFieldSet = true;
21150 }
21151 if (("MinSize" == name))
21152 {
21153 this.minSizeField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
21154 this.minSizeFieldSet = true;
21155 }
21156 if (("MaxSize" == name))
21157 {
21158 this.maxSizeField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
21159 this.maxSizeFieldSet = true;
21160 }
21161 if (("MinVersion" == name))
21162 {
21163 this.minVersionField = value;
21164 this.minVersionFieldSet = true;
21165 }
21166 if (("MaxVersion" == name))
21167 {
21168 this.maxVersionField = value;
21169 this.maxVersionFieldSet = true;
21170 }
21171 if (("MinDate" == name))
21172 {
21173 this.minDateField = Convert.ToDateTime(value, CultureInfo.InvariantCulture);
21174 this.minDateFieldSet = true;
21175 }
21176 if (("MaxDate" == name))
21177 {
21178 this.maxDateField = Convert.ToDateTime(value, CultureInfo.InvariantCulture);
21179 this.maxDateFieldSet = true;
21180 }
21181 if (("Languages" == name))
21182 {
21183 this.languagesField = value;
21184 this.languagesFieldSet = true;
21185 }
21186 }
21187 }
21188
21189 /// <summary>
21190 /// References an existing FileSearch element.
21191 /// </summary>
21192 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
21193 public class FileSearchRef : ISchemaElement, ISetAttributes
21194 {
21195
21196 private string idField;
21197
21198 private bool idFieldSet;
21199
21200 private ISchemaElement parentElement;
21201
21202 /// <summary>
21203 /// Specify the Id to the FileSearch to reference.
21204 /// </summary>
21205 public string Id
21206 {
21207 get
21208 {
21209 return this.idField;
21210 }
21211 set
21212 {
21213 this.idFieldSet = true;
21214 this.idField = value;
21215 }
21216 }
21217
21218 public virtual ISchemaElement ParentElement
21219 {
21220 get
21221 {
21222 return this.parentElement;
21223 }
21224 set
21225 {
21226 this.parentElement = value;
21227 }
21228 }
21229
21230 /// <summary>
21231 /// Processes this element and all child elements into an XmlWriter.
21232 /// </summary>
21233 public virtual void OutputXml(XmlWriter writer)
21234 {
21235 if ((null == writer))
21236 {
21237 throw new ArgumentNullException("writer");
21238 }
21239 writer.WriteStartElement("FileSearchRef", "http://wixtoolset.org/schemas/v4/wxs");
21240 if (this.idFieldSet)
21241 {
21242 writer.WriteAttributeString("Id", this.idField);
21243 }
21244 writer.WriteEndElement();
21245 }
21246
21247 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
21248 void ISetAttributes.SetAttribute(string name, string value)
21249 {
21250 if (String.IsNullOrEmpty(name))
21251 {
21252 throw new ArgumentNullException("name");
21253 }
21254 if (("Id" == name))
21255 {
21256 this.idField = value;
21257 this.idFieldSet = true;
21258 }
21259 }
21260 }
21261
21262 /// <summary>
21263 /// Searches for directory and assigns to value of parent Property.
21264 /// </summary>
21265 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
21266 public class DirectorySearch : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
21267 {
21268
21269 private ElementCollection children;
21270
21271 private string idField;
21272
21273 private bool idFieldSet;
21274
21275 private string pathField;
21276
21277 private bool pathFieldSet;
21278
21279 private int depthField;
21280
21281 private bool depthFieldSet;
21282
21283 private YesNoType assignToPropertyField;
21284
21285 private bool assignToPropertyFieldSet;
21286
21287 private ISchemaElement parentElement;
21288
21289 public DirectorySearch()
21290 {
21291 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
21292 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch)));
21293 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef)));
21294 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearch)));
21295 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearchRef)));
21296 this.children = childCollection0;
21297 }
21298
21299 public virtual IEnumerable Children
21300 {
21301 get
21302 {
21303 return this.children;
21304 }
21305 }
21306
21307 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
21308 public virtual IEnumerable this[System.Type childType]
21309 {
21310 get
21311 {
21312 return this.children.Filter(childType);
21313 }
21314 }
21315
21316 /// <summary>
21317 /// Unique identifier for the directory search.
21318 /// </summary>
21319 public string Id
21320 {
21321 get
21322 {
21323 return this.idField;
21324 }
21325 set
21326 {
21327 this.idFieldSet = true;
21328 this.idField = value;
21329 }
21330 }
21331
21332 /// <summary>
21333 /// Path on the user's system. Either absolute, or relative to containing directories.
21334 /// </summary>
21335 public string Path
21336 {
21337 get
21338 {
21339 return this.pathField;
21340 }
21341 set
21342 {
21343 this.pathFieldSet = true;
21344 this.pathField = value;
21345 }
21346 }
21347
21348 /// <summary>
21349 /// Depth below the path that the installer searches for the file or directory specified by the search. See remarks for more information.
21350 /// </summary>
21351 public int Depth
21352 {
21353 get
21354 {
21355 return this.depthField;
21356 }
21357 set
21358 {
21359 this.depthFieldSet = true;
21360 this.depthField = value;
21361 }
21362 }
21363
21364 /// <summary>
21365 /// Set the value of the outer Property to the result of this search. See remarks for more information.
21366 /// </summary>
21367 public YesNoType AssignToProperty
21368 {
21369 get
21370 {
21371 return this.assignToPropertyField;
21372 }
21373 set
21374 {
21375 this.assignToPropertyFieldSet = true;
21376 this.assignToPropertyField = value;
21377 }
21378 }
21379
21380 public virtual ISchemaElement ParentElement
21381 {
21382 get
21383 {
21384 return this.parentElement;
21385 }
21386 set
21387 {
21388 this.parentElement = value;
21389 }
21390 }
21391
21392 public virtual void AddChild(ISchemaElement child)
21393 {
21394 if ((null == child))
21395 {
21396 throw new ArgumentNullException("child");
21397 }
21398 this.children.AddElement(child);
21399 child.ParentElement = this;
21400 }
21401
21402 public virtual void RemoveChild(ISchemaElement child)
21403 {
21404 if ((null == child))
21405 {
21406 throw new ArgumentNullException("child");
21407 }
21408 this.children.RemoveElement(child);
21409 child.ParentElement = null;
21410 }
21411
21412 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
21413 ISchemaElement ICreateChildren.CreateChild(string childName)
21414 {
21415 if (String.IsNullOrEmpty(childName))
21416 {
21417 throw new ArgumentNullException("childName");
21418 }
21419 ISchemaElement childValue = null;
21420 if (("DirectorySearch" == childName))
21421 {
21422 childValue = new DirectorySearch();
21423 }
21424 if (("DirectorySearchRef" == childName))
21425 {
21426 childValue = new DirectorySearchRef();
21427 }
21428 if (("FileSearch" == childName))
21429 {
21430 childValue = new FileSearch();
21431 }
21432 if (("FileSearchRef" == childName))
21433 {
21434 childValue = new FileSearchRef();
21435 }
21436 if ((null == childValue))
21437 {
21438 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
21439 }
21440 return childValue;
21441 }
21442
21443 /// <summary>
21444 /// Processes this element and all child elements into an XmlWriter.
21445 /// </summary>
21446 public virtual void OutputXml(XmlWriter writer)
21447 {
21448 if ((null == writer))
21449 {
21450 throw new ArgumentNullException("writer");
21451 }
21452 writer.WriteStartElement("DirectorySearch", "http://wixtoolset.org/schemas/v4/wxs");
21453 if (this.idFieldSet)
21454 {
21455 writer.WriteAttributeString("Id", this.idField);
21456 }
21457 if (this.pathFieldSet)
21458 {
21459 writer.WriteAttributeString("Path", this.pathField);
21460 }
21461 if (this.depthFieldSet)
21462 {
21463 writer.WriteAttributeString("Depth", this.depthField.ToString(CultureInfo.InvariantCulture));
21464 }
21465 if (this.assignToPropertyFieldSet)
21466 {
21467 if ((this.assignToPropertyField == YesNoType.no))
21468 {
21469 writer.WriteAttributeString("AssignToProperty", "no");
21470 }
21471 if ((this.assignToPropertyField == YesNoType.yes))
21472 {
21473 writer.WriteAttributeString("AssignToProperty", "yes");
21474 }
21475 }
21476 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
21477 {
21478 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
21479 childElement.OutputXml(writer);
21480 }
21481 writer.WriteEndElement();
21482 }
21483
21484 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
21485 void ISetAttributes.SetAttribute(string name, string value)
21486 {
21487 if (String.IsNullOrEmpty(name))
21488 {
21489 throw new ArgumentNullException("name");
21490 }
21491 if (("Id" == name))
21492 {
21493 this.idField = value;
21494 this.idFieldSet = true;
21495 }
21496 if (("Path" == name))
21497 {
21498 this.pathField = value;
21499 this.pathFieldSet = true;
21500 }
21501 if (("Depth" == name))
21502 {
21503 this.depthField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
21504 this.depthFieldSet = true;
21505 }
21506 if (("AssignToProperty" == name))
21507 {
21508 this.assignToPropertyField = Enums.ParseYesNoType(value);
21509 this.assignToPropertyFieldSet = true;
21510 }
21511 }
21512 }
21513
21514 /// <summary>
21515 /// References an existing DirectorySearch element.
21516 /// </summary>
21517 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
21518 public class DirectorySearchRef : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
21519 {
21520
21521 private ElementCollection children;
21522
21523 private string idField;
21524
21525 private bool idFieldSet;
21526
21527 private string parentField;
21528
21529 private bool parentFieldSet;
21530
21531 private string pathField;
21532
21533 private bool pathFieldSet;
21534
21535 private ISchemaElement parentElement;
21536
21537 public DirectorySearchRef()
21538 {
21539 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
21540 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch)));
21541 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef)));
21542 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearch)));
21543 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearchRef)));
21544 this.children = childCollection0;
21545 }
21546
21547 public virtual IEnumerable Children
21548 {
21549 get
21550 {
21551 return this.children;
21552 }
21553 }
21554
21555 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
21556 public virtual IEnumerable this[System.Type childType]
21557 {
21558 get
21559 {
21560 return this.children.Filter(childType);
21561 }
21562 }
21563
21564 /// <summary>
21565 /// Id of the search being referred to.
21566 /// </summary>
21567 public string Id
21568 {
21569 get
21570 {
21571 return this.idField;
21572 }
21573 set
21574 {
21575 this.idFieldSet = true;
21576 this.idField = value;
21577 }
21578 }
21579
21580 /// <summary>
21581 /// 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.
21582 /// </summary>
21583 public string Parent
21584 {
21585 get
21586 {
21587 return this.parentField;
21588 }
21589 set
21590 {
21591 this.parentFieldSet = true;
21592 this.parentField = value;
21593 }
21594 }
21595
21596 /// <summary>
21597 /// Path on the user's system. Either absolute, or relative to containing directories.
21598 /// </summary>
21599 public string Path
21600 {
21601 get
21602 {
21603 return this.pathField;
21604 }
21605 set
21606 {
21607 this.pathFieldSet = true;
21608 this.pathField = value;
21609 }
21610 }
21611
21612 public virtual ISchemaElement ParentElement
21613 {
21614 get
21615 {
21616 return this.parentElement;
21617 }
21618 set
21619 {
21620 this.parentElement = value;
21621 }
21622 }
21623
21624 public virtual void AddChild(ISchemaElement child)
21625 {
21626 if ((null == child))
21627 {
21628 throw new ArgumentNullException("child");
21629 }
21630 this.children.AddElement(child);
21631 child.ParentElement = this;
21632 }
21633
21634 public virtual void RemoveChild(ISchemaElement child)
21635 {
21636 if ((null == child))
21637 {
21638 throw new ArgumentNullException("child");
21639 }
21640 this.children.RemoveElement(child);
21641 child.ParentElement = null;
21642 }
21643
21644 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
21645 ISchemaElement ICreateChildren.CreateChild(string childName)
21646 {
21647 if (String.IsNullOrEmpty(childName))
21648 {
21649 throw new ArgumentNullException("childName");
21650 }
21651 ISchemaElement childValue = null;
21652 if (("DirectorySearch" == childName))
21653 {
21654 childValue = new DirectorySearch();
21655 }
21656 if (("DirectorySearchRef" == childName))
21657 {
21658 childValue = new DirectorySearchRef();
21659 }
21660 if (("FileSearch" == childName))
21661 {
21662 childValue = new FileSearch();
21663 }
21664 if (("FileSearchRef" == childName))
21665 {
21666 childValue = new FileSearchRef();
21667 }
21668 if ((null == childValue))
21669 {
21670 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
21671 }
21672 return childValue;
21673 }
21674
21675 /// <summary>
21676 /// Processes this element and all child elements into an XmlWriter.
21677 /// </summary>
21678 public virtual void OutputXml(XmlWriter writer)
21679 {
21680 if ((null == writer))
21681 {
21682 throw new ArgumentNullException("writer");
21683 }
21684 writer.WriteStartElement("DirectorySearchRef", "http://wixtoolset.org/schemas/v4/wxs");
21685 if (this.idFieldSet)
21686 {
21687 writer.WriteAttributeString("Id", this.idField);
21688 }
21689 if (this.parentFieldSet)
21690 {
21691 writer.WriteAttributeString("Parent", this.parentField);
21692 }
21693 if (this.pathFieldSet)
21694 {
21695 writer.WriteAttributeString("Path", this.pathField);
21696 }
21697 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
21698 {
21699 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
21700 childElement.OutputXml(writer);
21701 }
21702 writer.WriteEndElement();
21703 }
21704
21705 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
21706 void ISetAttributes.SetAttribute(string name, string value)
21707 {
21708 if (String.IsNullOrEmpty(name))
21709 {
21710 throw new ArgumentNullException("name");
21711 }
21712 if (("Id" == name))
21713 {
21714 this.idField = value;
21715 this.idFieldSet = true;
21716 }
21717 if (("Parent" == name))
21718 {
21719 this.parentField = value;
21720 this.parentFieldSet = true;
21721 }
21722 if (("Path" == name))
21723 {
21724 this.pathField = value;
21725 this.pathFieldSet = true;
21726 }
21727 }
21728 }
21729
21730 /// <summary>
21731 /// Searches for file or directory and assigns to value of parent Property.
21732 /// </summary>
21733 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
21734 public class ComponentSearch : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
21735 {
21736
21737 private ElementCollection children;
21738
21739 private string idField;
21740
21741 private bool idFieldSet;
21742
21743 private string guidField;
21744
21745 private bool guidFieldSet;
21746
21747 private TypeType typeField;
21748
21749 private bool typeFieldSet;
21750
21751 private ISchemaElement parentElement;
21752
21753 public ComponentSearch()
21754 {
21755 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
21756 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch)));
21757 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef)));
21758 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearch)));
21759 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearchRef)));
21760 this.children = childCollection0;
21761 }
21762
21763 public virtual IEnumerable Children
21764 {
21765 get
21766 {
21767 return this.children;
21768 }
21769 }
21770
21771 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
21772 public virtual IEnumerable this[System.Type childType]
21773 {
21774 get
21775 {
21776 return this.children.Filter(childType);
21777 }
21778 }
21779
21780 public string Id
21781 {
21782 get
21783 {
21784 return this.idField;
21785 }
21786 set
21787 {
21788 this.idFieldSet = true;
21789 this.idField = value;
21790 }
21791 }
21792
21793 /// <summary>
21794 /// The component ID of the component whose key path is to be used for the search.
21795 /// </summary>
21796 public string Guid
21797 {
21798 get
21799 {
21800 return this.guidField;
21801 }
21802 set
21803 {
21804 this.guidFieldSet = true;
21805 this.guidField = value;
21806 }
21807 }
21808
21809 /// <summary>
21810 /// Must be file if last child is FileSearch element and must be directory if last child is DirectorySearch element.
21811 /// </summary>
21812 public TypeType Type
21813 {
21814 get
21815 {
21816 return this.typeField;
21817 }
21818 set
21819 {
21820 this.typeFieldSet = true;
21821 this.typeField = value;
21822 }
21823 }
21824
21825 public virtual ISchemaElement ParentElement
21826 {
21827 get
21828 {
21829 return this.parentElement;
21830 }
21831 set
21832 {
21833 this.parentElement = value;
21834 }
21835 }
21836
21837 public virtual void AddChild(ISchemaElement child)
21838 {
21839 if ((null == child))
21840 {
21841 throw new ArgumentNullException("child");
21842 }
21843 this.children.AddElement(child);
21844 child.ParentElement = this;
21845 }
21846
21847 public virtual void RemoveChild(ISchemaElement child)
21848 {
21849 if ((null == child))
21850 {
21851 throw new ArgumentNullException("child");
21852 }
21853 this.children.RemoveElement(child);
21854 child.ParentElement = null;
21855 }
21856
21857 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
21858 ISchemaElement ICreateChildren.CreateChild(string childName)
21859 {
21860 if (String.IsNullOrEmpty(childName))
21861 {
21862 throw new ArgumentNullException("childName");
21863 }
21864 ISchemaElement childValue = null;
21865 if (("DirectorySearch" == childName))
21866 {
21867 childValue = new DirectorySearch();
21868 }
21869 if (("DirectorySearchRef" == childName))
21870 {
21871 childValue = new DirectorySearchRef();
21872 }
21873 if (("FileSearch" == childName))
21874 {
21875 childValue = new FileSearch();
21876 }
21877 if (("FileSearchRef" == childName))
21878 {
21879 childValue = new FileSearchRef();
21880 }
21881 if ((null == childValue))
21882 {
21883 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
21884 }
21885 return childValue;
21886 }
21887
21888 /// <summary>
21889 /// Parses a TypeType from a string.
21890 /// </summary>
21891 public static TypeType ParseTypeType(string value)
21892 {
21893 TypeType parsedValue;
21894 ComponentSearch.TryParseTypeType(value, out parsedValue);
21895 return parsedValue;
21896 }
21897
21898 /// <summary>
21899 /// Tries to parse a TypeType from a string.
21900 /// </summary>
21901 public static bool TryParseTypeType(string value, out TypeType parsedValue)
21902 {
21903 parsedValue = TypeType.NotSet;
21904 if (string.IsNullOrEmpty(value))
21905 {
21906 return false;
21907 }
21908 if (("directory" == value))
21909 {
21910 parsedValue = TypeType.directory;
21911 }
21912 else
21913 {
21914 if (("file" == value))
21915 {
21916 parsedValue = TypeType.file;
21917 }
21918 else
21919 {
21920 parsedValue = TypeType.IllegalValue;
21921 return false;
21922 }
21923 }
21924 return true;
21925 }
21926
21927 /// <summary>
21928 /// Processes this element and all child elements into an XmlWriter.
21929 /// </summary>
21930 public virtual void OutputXml(XmlWriter writer)
21931 {
21932 if ((null == writer))
21933 {
21934 throw new ArgumentNullException("writer");
21935 }
21936 writer.WriteStartElement("ComponentSearch", "http://wixtoolset.org/schemas/v4/wxs");
21937 if (this.idFieldSet)
21938 {
21939 writer.WriteAttributeString("Id", this.idField);
21940 }
21941 if (this.guidFieldSet)
21942 {
21943 writer.WriteAttributeString("Guid", this.guidField);
21944 }
21945 if (this.typeFieldSet)
21946 {
21947 if ((this.typeField == TypeType.directory))
21948 {
21949 writer.WriteAttributeString("Type", "directory");
21950 }
21951 if ((this.typeField == TypeType.file))
21952 {
21953 writer.WriteAttributeString("Type", "file");
21954 }
21955 }
21956 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
21957 {
21958 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
21959 childElement.OutputXml(writer);
21960 }
21961 writer.WriteEndElement();
21962 }
21963
21964 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
21965 void ISetAttributes.SetAttribute(string name, string value)
21966 {
21967 if (String.IsNullOrEmpty(name))
21968 {
21969 throw new ArgumentNullException("name");
21970 }
21971 if (("Id" == name))
21972 {
21973 this.idField = value;
21974 this.idFieldSet = true;
21975 }
21976 if (("Guid" == name))
21977 {
21978 this.guidField = value;
21979 this.guidFieldSet = true;
21980 }
21981 if (("Type" == name))
21982 {
21983 this.typeField = ComponentSearch.ParseTypeType(value);
21984 this.typeFieldSet = true;
21985 }
21986 }
21987
21988 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
21989 public enum TypeType
21990 {
21991
21992 IllegalValue = int.MaxValue,
21993
21994 NotSet = -1,
21995
21996 /// <summary>
21997 /// The key path of the component is a directory.
21998 /// </summary>
21999 directory,
22000
22001 /// <summary>
22002 /// The key path of the component is a file. This is the default value.
22003 /// </summary>
22004 file,
22005 }
22006 }
22007
22008 /// <summary>
22009 /// Searches for file, directory or registry key and assigns to value of parent Property
22010 /// </summary>
22011 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
22012 public class IniFileSearch : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
22013 {
22014
22015 private ElementCollection children;
22016
22017 private string idField;
22018
22019 private bool idFieldSet;
22020
22021 private int fieldField;
22022
22023 private bool fieldFieldSet;
22024
22025 private string keyField;
22026
22027 private bool keyFieldSet;
22028
22029 private string nameField;
22030
22031 private bool nameFieldSet;
22032
22033 private string sectionField;
22034
22035 private bool sectionFieldSet;
22036
22037 private string shortNameField;
22038
22039 private bool shortNameFieldSet;
22040
22041 private TypeType typeField;
22042
22043 private bool typeFieldSet;
22044
22045 private ISchemaElement parentElement;
22046
22047 public IniFileSearch()
22048 {
22049 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
22050 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch)));
22051 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef)));
22052 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearch)));
22053 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearchRef)));
22054 this.children = childCollection0;
22055 }
22056
22057 public virtual IEnumerable Children
22058 {
22059 get
22060 {
22061 return this.children;
22062 }
22063 }
22064
22065 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
22066 public virtual IEnumerable this[System.Type childType]
22067 {
22068 get
22069 {
22070 return this.children.Filter(childType);
22071 }
22072 }
22073
22074 /// <summary>
22075 /// External key into the Signature table.
22076 /// </summary>
22077 public string Id
22078 {
22079 get
22080 {
22081 return this.idField;
22082 }
22083 set
22084 {
22085 this.idFieldSet = true;
22086 this.idField = value;
22087 }
22088 }
22089
22090 /// <summary>
22091 /// The field in the .ini line. If field is Null or 0, the entire line is read.
22092 /// </summary>
22093 public int Field
22094 {
22095 get
22096 {
22097 return this.fieldField;
22098 }
22099 set
22100 {
22101 this.fieldFieldSet = true;
22102 this.fieldField = value;
22103 }
22104 }
22105
22106 /// <summary>
22107 /// The key value within the section.
22108 /// </summary>
22109 public string Key
22110 {
22111 get
22112 {
22113 return this.keyField;
22114 }
22115 set
22116 {
22117 this.keyFieldSet = true;
22118 this.keyField = value;
22119 }
22120 }
22121
22122 /// <summary>
22123 /// In prior versions of the WiX toolset, this attribute specified the short name.
22124 /// This attribute's value may now be either a short or long name.
22125 /// If a short name is specified, the ShortName attribute may not be specified.
22126 /// Also, if this value is a long name, the ShortName attribute may be omitted to
22127 /// allow WiX to attempt to generate a unique short name.
22128 /// However, if you wish to manually specify the short name, then the ShortName
22129 /// attribute may be specified.
22130 /// </summary>
22131 public string Name
22132 {
22133 get
22134 {
22135 return this.nameField;
22136 }
22137 set
22138 {
22139 this.nameFieldSet = true;
22140 this.nameField = value;
22141 }
22142 }
22143
22144 /// <summary>
22145 /// The localizable .ini file section.
22146 /// </summary>
22147 public string Section
22148 {
22149 get
22150 {
22151 return this.sectionField;
22152 }
22153 set
22154 {
22155 this.sectionFieldSet = true;
22156 this.sectionField = value;
22157 }
22158 }
22159
22160 /// <summary>
22161 /// The short name of the file in 8.3 format.
22162 /// This attribute should only be set if the user wants to manually specify the short name.
22163 /// </summary>
22164 public string ShortName
22165 {
22166 get
22167 {
22168 return this.shortNameField;
22169 }
22170 set
22171 {
22172 this.shortNameFieldSet = true;
22173 this.shortNameField = value;
22174 }
22175 }
22176
22177 /// <summary>
22178 /// Must be file if last child is FileSearch element and must be directory if last child is DirectorySearch element.
22179 /// </summary>
22180 public TypeType Type
22181 {
22182 get
22183 {
22184 return this.typeField;
22185 }
22186 set
22187 {
22188 this.typeFieldSet = true;
22189 this.typeField = value;
22190 }
22191 }
22192
22193 public virtual ISchemaElement ParentElement
22194 {
22195 get
22196 {
22197 return this.parentElement;
22198 }
22199 set
22200 {
22201 this.parentElement = value;
22202 }
22203 }
22204
22205 public virtual void AddChild(ISchemaElement child)
22206 {
22207 if ((null == child))
22208 {
22209 throw new ArgumentNullException("child");
22210 }
22211 this.children.AddElement(child);
22212 child.ParentElement = this;
22213 }
22214
22215 public virtual void RemoveChild(ISchemaElement child)
22216 {
22217 if ((null == child))
22218 {
22219 throw new ArgumentNullException("child");
22220 }
22221 this.children.RemoveElement(child);
22222 child.ParentElement = null;
22223 }
22224
22225 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
22226 ISchemaElement ICreateChildren.CreateChild(string childName)
22227 {
22228 if (String.IsNullOrEmpty(childName))
22229 {
22230 throw new ArgumentNullException("childName");
22231 }
22232 ISchemaElement childValue = null;
22233 if (("DirectorySearch" == childName))
22234 {
22235 childValue = new DirectorySearch();
22236 }
22237 if (("DirectorySearchRef" == childName))
22238 {
22239 childValue = new DirectorySearchRef();
22240 }
22241 if (("FileSearch" == childName))
22242 {
22243 childValue = new FileSearch();
22244 }
22245 if (("FileSearchRef" == childName))
22246 {
22247 childValue = new FileSearchRef();
22248 }
22249 if ((null == childValue))
22250 {
22251 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
22252 }
22253 return childValue;
22254 }
22255
22256 /// <summary>
22257 /// Parses a TypeType from a string.
22258 /// </summary>
22259 public static TypeType ParseTypeType(string value)
22260 {
22261 TypeType parsedValue;
22262 IniFileSearch.TryParseTypeType(value, out parsedValue);
22263 return parsedValue;
22264 }
22265
22266 /// <summary>
22267 /// Tries to parse a TypeType from a string.
22268 /// </summary>
22269 public static bool TryParseTypeType(string value, out TypeType parsedValue)
22270 {
22271 parsedValue = TypeType.NotSet;
22272 if (string.IsNullOrEmpty(value))
22273 {
22274 return false;
22275 }
22276 if (("directory" == value))
22277 {
22278 parsedValue = TypeType.directory;
22279 }
22280 else
22281 {
22282 if (("file" == value))
22283 {
22284 parsedValue = TypeType.file;
22285 }
22286 else
22287 {
22288 if (("raw" == value))
22289 {
22290 parsedValue = TypeType.raw;
22291 }
22292 else
22293 {
22294 parsedValue = TypeType.IllegalValue;
22295 return false;
22296 }
22297 }
22298 }
22299 return true;
22300 }
22301
22302 /// <summary>
22303 /// Processes this element and all child elements into an XmlWriter.
22304 /// </summary>
22305 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
22306 public virtual void OutputXml(XmlWriter writer)
22307 {
22308 if ((null == writer))
22309 {
22310 throw new ArgumentNullException("writer");
22311 }
22312 writer.WriteStartElement("IniFileSearch", "http://wixtoolset.org/schemas/v4/wxs");
22313 if (this.idFieldSet)
22314 {
22315 writer.WriteAttributeString("Id", this.idField);
22316 }
22317 if (this.fieldFieldSet)
22318 {
22319 writer.WriteAttributeString("Field", this.fieldField.ToString(CultureInfo.InvariantCulture));
22320 }
22321 if (this.keyFieldSet)
22322 {
22323 writer.WriteAttributeString("Key", this.keyField);
22324 }
22325 if (this.nameFieldSet)
22326 {
22327 writer.WriteAttributeString("Name", this.nameField);
22328 }
22329 if (this.sectionFieldSet)
22330 {
22331 writer.WriteAttributeString("Section", this.sectionField);
22332 }
22333 if (this.shortNameFieldSet)
22334 {
22335 writer.WriteAttributeString("ShortName", this.shortNameField);
22336 }
22337 if (this.typeFieldSet)
22338 {
22339 if ((this.typeField == TypeType.directory))
22340 {
22341 writer.WriteAttributeString("Type", "directory");
22342 }
22343 if ((this.typeField == TypeType.file))
22344 {
22345 writer.WriteAttributeString("Type", "file");
22346 }
22347 if ((this.typeField == TypeType.raw))
22348 {
22349 writer.WriteAttributeString("Type", "raw");
22350 }
22351 }
22352 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
22353 {
22354 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
22355 childElement.OutputXml(writer);
22356 }
22357 writer.WriteEndElement();
22358 }
22359
22360 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
22361 void ISetAttributes.SetAttribute(string name, string value)
22362 {
22363 if (String.IsNullOrEmpty(name))
22364 {
22365 throw new ArgumentNullException("name");
22366 }
22367 if (("Id" == name))
22368 {
22369 this.idField = value;
22370 this.idFieldSet = true;
22371 }
22372 if (("Field" == name))
22373 {
22374 this.fieldField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
22375 this.fieldFieldSet = true;
22376 }
22377 if (("Key" == name))
22378 {
22379 this.keyField = value;
22380 this.keyFieldSet = true;
22381 }
22382 if (("Name" == name))
22383 {
22384 this.nameField = value;
22385 this.nameFieldSet = true;
22386 }
22387 if (("Section" == name))
22388 {
22389 this.sectionField = value;
22390 this.sectionFieldSet = true;
22391 }
22392 if (("ShortName" == name))
22393 {
22394 this.shortNameField = value;
22395 this.shortNameFieldSet = true;
22396 }
22397 if (("Type" == name))
22398 {
22399 this.typeField = IniFileSearch.ParseTypeType(value);
22400 this.typeFieldSet = true;
22401 }
22402 }
22403
22404 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
22405 public enum TypeType
22406 {
22407
22408 IllegalValue = int.MaxValue,
22409
22410 NotSet = -1,
22411
22412 /// <summary>
22413 /// A directory location.
22414 /// </summary>
22415 directory,
22416
22417 /// <summary>
22418 /// A file location. This is the default value.
22419 /// </summary>
22420 file,
22421
22422 /// <summary>
22423 /// A raw .ini value.
22424 /// </summary>
22425 raw,
22426 }
22427 }
22428
22429 /// <summary>
22430 /// Searches for file, directory or registry key and assigns to value of parent Property
22431 /// </summary>
22432 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
22433 public class RegistrySearch : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
22434 {
22435
22436 private ElementCollection children;
22437
22438 private string idField;
22439
22440 private bool idFieldSet;
22441
22442 private RootType rootField;
22443
22444 private bool rootFieldSet;
22445
22446 private string keyField;
22447
22448 private bool keyFieldSet;
22449
22450 private string nameField;
22451
22452 private bool nameFieldSet;
22453
22454 private TypeType typeField;
22455
22456 private bool typeFieldSet;
22457
22458 private YesNoType win64Field;
22459
22460 private bool win64FieldSet;
22461
22462 private ISchemaElement parentElement;
22463
22464 public RegistrySearch()
22465 {
22466 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
22467 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch)));
22468 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef)));
22469 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearch)));
22470 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearchRef)));
22471 this.children = childCollection0;
22472 }
22473
22474 public virtual IEnumerable Children
22475 {
22476 get
22477 {
22478 return this.children;
22479 }
22480 }
22481
22482 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
22483 public virtual IEnumerable this[System.Type childType]
22484 {
22485 get
22486 {
22487 return this.children.Filter(childType);
22488 }
22489 }
22490
22491 /// <summary>
22492 /// Signature to be used for the file, directory or registry key being searched for.
22493 /// </summary>
22494 public string Id
22495 {
22496 get
22497 {
22498 return this.idField;
22499 }
22500 set
22501 {
22502 this.idFieldSet = true;
22503 this.idField = value;
22504 }
22505 }
22506
22507 /// <summary>
22508 /// Root key for the registry value.
22509 /// </summary>
22510 public RootType Root
22511 {
22512 get
22513 {
22514 return this.rootField;
22515 }
22516 set
22517 {
22518 this.rootFieldSet = true;
22519 this.rootField = value;
22520 }
22521 }
22522
22523 /// <summary>
22524 /// Key for the registry value.
22525 /// </summary>
22526 public string Key
22527 {
22528 get
22529 {
22530 return this.keyField;
22531 }
22532 set
22533 {
22534 this.keyFieldSet = true;
22535 this.keyField = value;
22536 }
22537 }
22538
22539 /// <summary>
22540 /// Registry value name. If this value is null, then the value from the key's unnamed or default value, if any, is retrieved.
22541 /// </summary>
22542 public string Name
22543 {
22544 get
22545 {
22546 return this.nameField;
22547 }
22548 set
22549 {
22550 this.nameFieldSet = true;
22551 this.nameField = value;
22552 }
22553 }
22554
22555 /// <summary>
22556 /// The value must be 'file' if the child is a FileSearch element, and must be 'directory' if child is a DirectorySearch element.
22557 /// </summary>
22558 public TypeType Type
22559 {
22560 get
22561 {
22562 return this.typeField;
22563 }
22564 set
22565 {
22566 this.typeFieldSet = true;
22567 this.typeField = value;
22568 }
22569 }
22570
22571 /// <summary>
22572 /// 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.
22573 /// The default value is based on the platform set by the -arch switch to candle.exe
22574 /// or the InstallerPlatform property in a .wixproj MSBuild project:
22575 /// For x86 and ARM, the default value is 'no'.
22576 /// For x64 and IA64, the default value is 'yes'.
22577 /// </summary>
22578 public YesNoType Win64
22579 {
22580 get
22581 {
22582 return this.win64Field;
22583 }
22584 set
22585 {
22586 this.win64FieldSet = true;
22587 this.win64Field = value;
22588 }
22589 }
22590
22591 public virtual ISchemaElement ParentElement
22592 {
22593 get
22594 {
22595 return this.parentElement;
22596 }
22597 set
22598 {
22599 this.parentElement = value;
22600 }
22601 }
22602
22603 public virtual void AddChild(ISchemaElement child)
22604 {
22605 if ((null == child))
22606 {
22607 throw new ArgumentNullException("child");
22608 }
22609 this.children.AddElement(child);
22610 child.ParentElement = this;
22611 }
22612
22613 public virtual void RemoveChild(ISchemaElement child)
22614 {
22615 if ((null == child))
22616 {
22617 throw new ArgumentNullException("child");
22618 }
22619 this.children.RemoveElement(child);
22620 child.ParentElement = null;
22621 }
22622
22623 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
22624 ISchemaElement ICreateChildren.CreateChild(string childName)
22625 {
22626 if (String.IsNullOrEmpty(childName))
22627 {
22628 throw new ArgumentNullException("childName");
22629 }
22630 ISchemaElement childValue = null;
22631 if (("DirectorySearch" == childName))
22632 {
22633 childValue = new DirectorySearch();
22634 }
22635 if (("DirectorySearchRef" == childName))
22636 {
22637 childValue = new DirectorySearchRef();
22638 }
22639 if (("FileSearch" == childName))
22640 {
22641 childValue = new FileSearch();
22642 }
22643 if (("FileSearchRef" == childName))
22644 {
22645 childValue = new FileSearchRef();
22646 }
22647 if ((null == childValue))
22648 {
22649 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
22650 }
22651 return childValue;
22652 }
22653
22654 /// <summary>
22655 /// Parses a RootType from a string.
22656 /// </summary>
22657 public static RootType ParseRootType(string value)
22658 {
22659 RootType parsedValue;
22660 RegistrySearch.TryParseRootType(value, out parsedValue);
22661 return parsedValue;
22662 }
22663
22664 /// <summary>
22665 /// Tries to parse a RootType from a string.
22666 /// </summary>
22667 public static bool TryParseRootType(string value, out RootType parsedValue)
22668 {
22669 parsedValue = RootType.NotSet;
22670 if (string.IsNullOrEmpty(value))
22671 {
22672 return false;
22673 }
22674 if (("HKCR" == value))
22675 {
22676 parsedValue = RootType.HKCR;
22677 }
22678 else
22679 {
22680 if (("HKCU" == value))
22681 {
22682 parsedValue = RootType.HKCU;
22683 }
22684 else
22685 {
22686 if (("HKLM" == value))
22687 {
22688 parsedValue = RootType.HKLM;
22689 }
22690 else
22691 {
22692 if (("HKU" == value))
22693 {
22694 parsedValue = RootType.HKU;
22695 }
22696 else
22697 {
22698 parsedValue = RootType.IllegalValue;
22699 return false;
22700 }
22701 }
22702 }
22703 }
22704 return true;
22705 }
22706
22707 /// <summary>
22708 /// Parses a TypeType from a string.
22709 /// </summary>
22710 public static TypeType ParseTypeType(string value)
22711 {
22712 TypeType parsedValue;
22713 RegistrySearch.TryParseTypeType(value, out parsedValue);
22714 return parsedValue;
22715 }
22716
22717 /// <summary>
22718 /// Tries to parse a TypeType from a string.
22719 /// </summary>
22720 public static bool TryParseTypeType(string value, out TypeType parsedValue)
22721 {
22722 parsedValue = TypeType.NotSet;
22723 if (string.IsNullOrEmpty(value))
22724 {
22725 return false;
22726 }
22727 if (("directory" == value))
22728 {
22729 parsedValue = TypeType.directory;
22730 }
22731 else
22732 {
22733 if (("file" == value))
22734 {
22735 parsedValue = TypeType.file;
22736 }
22737 else
22738 {
22739 if (("raw" == value))
22740 {
22741 parsedValue = TypeType.raw;
22742 }
22743 else
22744 {
22745 parsedValue = TypeType.IllegalValue;
22746 return false;
22747 }
22748 }
22749 }
22750 return true;
22751 }
22752
22753 /// <summary>
22754 /// Processes this element and all child elements into an XmlWriter.
22755 /// </summary>
22756 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
22757 public virtual void OutputXml(XmlWriter writer)
22758 {
22759 if ((null == writer))
22760 {
22761 throw new ArgumentNullException("writer");
22762 }
22763 writer.WriteStartElement("RegistrySearch", "http://wixtoolset.org/schemas/v4/wxs");
22764 if (this.idFieldSet)
22765 {
22766 writer.WriteAttributeString("Id", this.idField);
22767 }
22768 if (this.rootFieldSet)
22769 {
22770 if ((this.rootField == RootType.HKCR))
22771 {
22772 writer.WriteAttributeString("Root", "HKCR");
22773 }
22774 if ((this.rootField == RootType.HKCU))
22775 {
22776 writer.WriteAttributeString("Root", "HKCU");
22777 }
22778 if ((this.rootField == RootType.HKLM))
22779 {
22780 writer.WriteAttributeString("Root", "HKLM");
22781 }
22782 if ((this.rootField == RootType.HKU))
22783 {
22784 writer.WriteAttributeString("Root", "HKU");
22785 }
22786 }
22787 if (this.keyFieldSet)
22788 {
22789 writer.WriteAttributeString("Key", this.keyField);
22790 }
22791 if (this.nameFieldSet)
22792 {
22793 writer.WriteAttributeString("Name", this.nameField);
22794 }
22795 if (this.typeFieldSet)
22796 {
22797 if ((this.typeField == TypeType.directory))
22798 {
22799 writer.WriteAttributeString("Type", "directory");
22800 }
22801 if ((this.typeField == TypeType.file))
22802 {
22803 writer.WriteAttributeString("Type", "file");
22804 }
22805 if ((this.typeField == TypeType.raw))
22806 {
22807 writer.WriteAttributeString("Type", "raw");
22808 }
22809 }
22810 if (this.win64FieldSet)
22811 {
22812 if ((this.win64Field == YesNoType.no))
22813 {
22814 writer.WriteAttributeString("Win64", "no");
22815 }
22816 if ((this.win64Field == YesNoType.yes))
22817 {
22818 writer.WriteAttributeString("Win64", "yes");
22819 }
22820 }
22821 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
22822 {
22823 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
22824 childElement.OutputXml(writer);
22825 }
22826 writer.WriteEndElement();
22827 }
22828
22829 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
22830 void ISetAttributes.SetAttribute(string name, string value)
22831 {
22832 if (String.IsNullOrEmpty(name))
22833 {
22834 throw new ArgumentNullException("name");
22835 }
22836 if (("Id" == name))
22837 {
22838 this.idField = value;
22839 this.idFieldSet = true;
22840 }
22841 if (("Root" == name))
22842 {
22843 this.rootField = RegistrySearch.ParseRootType(value);
22844 this.rootFieldSet = true;
22845 }
22846 if (("Key" == name))
22847 {
22848 this.keyField = value;
22849 this.keyFieldSet = true;
22850 }
22851 if (("Name" == name))
22852 {
22853 this.nameField = value;
22854 this.nameFieldSet = true;
22855 }
22856 if (("Type" == name))
22857 {
22858 this.typeField = RegistrySearch.ParseTypeType(value);
22859 this.typeFieldSet = true;
22860 }
22861 if (("Win64" == name))
22862 {
22863 this.win64Field = Enums.ParseYesNoType(value);
22864 this.win64FieldSet = true;
22865 }
22866 }
22867
22868 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
22869 public enum RootType
22870 {
22871
22872 IllegalValue = int.MaxValue,
22873
22874 NotSet = -1,
22875
22876 /// <summary>
22877 /// HKEY_CLASSES_ROOT
22878 /// </summary>
22879 HKCR,
22880
22881 /// <summary>
22882 /// HKEY_CURRENT_USER
22883 /// </summary>
22884 HKCU,
22885
22886 /// <summary>
22887 /// HKEY_LOCAL_MACHINE
22888 /// </summary>
22889 HKLM,
22890
22891 /// <summary>
22892 /// HKEY_USERS
22893 /// </summary>
22894 HKU,
22895 }
22896
22897 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
22898 public enum TypeType
22899 {
22900
22901 IllegalValue = int.MaxValue,
22902
22903 NotSet = -1,
22904
22905 /// <summary>
22906 /// The registry value contains the path to a directory.
22907 /// </summary>
22908 directory,
22909
22910 /// <summary>
22911 /// 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.
22912 /// </summary>
22913 file,
22914
22915 /// <summary>
22916 /// Sets the raw value from the registry value. Please note that this value will contain a prefix as follows:
22917 /// </summary>
22918 raw,
22919 }
22920 }
22921
22922 /// <summary>
22923 /// References an existing RegistrySearch element.
22924 /// </summary>
22925 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
22926 public class RegistrySearchRef : ISchemaElement, ISetAttributes
22927 {
22928
22929 private string idField;
22930
22931 private bool idFieldSet;
22932
22933 private ISchemaElement parentElement;
22934
22935 /// <summary>
22936 /// Specify the Id of the RegistrySearch to reference.
22937 /// </summary>
22938 public string Id
22939 {
22940 get
22941 {
22942 return this.idField;
22943 }
22944 set
22945 {
22946 this.idFieldSet = true;
22947 this.idField = value;
22948 }
22949 }
22950
22951 public virtual ISchemaElement ParentElement
22952 {
22953 get
22954 {
22955 return this.parentElement;
22956 }
22957 set
22958 {
22959 this.parentElement = value;
22960 }
22961 }
22962
22963 /// <summary>
22964 /// Processes this element and all child elements into an XmlWriter.
22965 /// </summary>
22966 public virtual void OutputXml(XmlWriter writer)
22967 {
22968 if ((null == writer))
22969 {
22970 throw new ArgumentNullException("writer");
22971 }
22972 writer.WriteStartElement("RegistrySearchRef", "http://wixtoolset.org/schemas/v4/wxs");
22973 if (this.idFieldSet)
22974 {
22975 writer.WriteAttributeString("Id", this.idField);
22976 }
22977 writer.WriteEndElement();
22978 }
22979
22980 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
22981 void ISetAttributes.SetAttribute(string name, string value)
22982 {
22983 if (String.IsNullOrEmpty(name))
22984 {
22985 throw new ArgumentNullException("name");
22986 }
22987 if (("Id" == name))
22988 {
22989 this.idField = value;
22990 this.idFieldSet = true;
22991 }
22992 }
22993 }
22994
22995 /// <summary>
22996 /// Sets the parent of a nested DirectorySearch element to CCP_DRIVE.
22997 /// </summary>
22998 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
22999 public class ComplianceDrive : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
23000 {
23001
23002 private ElementCollection children;
23003
23004 private ISchemaElement parentElement;
23005
23006 public ComplianceDrive()
23007 {
23008 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
23009 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch)));
23010 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef)));
23011 this.children = childCollection0;
23012 }
23013
23014 public virtual IEnumerable Children
23015 {
23016 get
23017 {
23018 return this.children;
23019 }
23020 }
23021
23022 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
23023 public virtual IEnumerable this[System.Type childType]
23024 {
23025 get
23026 {
23027 return this.children.Filter(childType);
23028 }
23029 }
23030
23031 public virtual ISchemaElement ParentElement
23032 {
23033 get
23034 {
23035 return this.parentElement;
23036 }
23037 set
23038 {
23039 this.parentElement = value;
23040 }
23041 }
23042
23043 public virtual void AddChild(ISchemaElement child)
23044 {
23045 if ((null == child))
23046 {
23047 throw new ArgumentNullException("child");
23048 }
23049 this.children.AddElement(child);
23050 child.ParentElement = this;
23051 }
23052
23053 public virtual void RemoveChild(ISchemaElement child)
23054 {
23055 if ((null == child))
23056 {
23057 throw new ArgumentNullException("child");
23058 }
23059 this.children.RemoveElement(child);
23060 child.ParentElement = null;
23061 }
23062
23063 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
23064 ISchemaElement ICreateChildren.CreateChild(string childName)
23065 {
23066 if (String.IsNullOrEmpty(childName))
23067 {
23068 throw new ArgumentNullException("childName");
23069 }
23070 ISchemaElement childValue = null;
23071 if (("DirectorySearch" == childName))
23072 {
23073 childValue = new DirectorySearch();
23074 }
23075 if (("DirectorySearchRef" == childName))
23076 {
23077 childValue = new DirectorySearchRef();
23078 }
23079 if ((null == childValue))
23080 {
23081 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
23082 }
23083 return childValue;
23084 }
23085
23086 /// <summary>
23087 /// Processes this element and all child elements into an XmlWriter.
23088 /// </summary>
23089 public virtual void OutputXml(XmlWriter writer)
23090 {
23091 if ((null == writer))
23092 {
23093 throw new ArgumentNullException("writer");
23094 }
23095 writer.WriteStartElement("ComplianceDrive", "http://wixtoolset.org/schemas/v4/wxs");
23096 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
23097 {
23098 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
23099 childElement.OutputXml(writer);
23100 }
23101 writer.WriteEndElement();
23102 }
23103
23104 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
23105 void ISetAttributes.SetAttribute(string name, string value)
23106 {
23107 if (String.IsNullOrEmpty(name))
23108 {
23109 throw new ArgumentNullException("name");
23110 }
23111 }
23112 }
23113
23114 /// <summary>
23115 /// Adds a row to the CCPSearch table.
23116 /// </summary>
23117 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
23118 public class ComplianceCheck : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
23119 {
23120
23121 private ElementCollection children;
23122
23123 private ISchemaElement parentElement;
23124
23125 public ComplianceCheck()
23126 {
23127 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
23128 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Sequence);
23129 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(ComplianceDrive)));
23130 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(ComponentSearch)));
23131 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(RegistrySearch)));
23132 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(IniFileSearch)));
23133 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(DirectorySearch)));
23134 childCollection0.AddCollection(childCollection1);
23135 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
23136 this.children = childCollection0;
23137 }
23138
23139 public virtual IEnumerable Children
23140 {
23141 get
23142 {
23143 return this.children;
23144 }
23145 }
23146
23147 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
23148 public virtual IEnumerable this[System.Type childType]
23149 {
23150 get
23151 {
23152 return this.children.Filter(childType);
23153 }
23154 }
23155
23156 public virtual ISchemaElement ParentElement
23157 {
23158 get
23159 {
23160 return this.parentElement;
23161 }
23162 set
23163 {
23164 this.parentElement = value;
23165 }
23166 }
23167
23168 public virtual void AddChild(ISchemaElement child)
23169 {
23170 if ((null == child))
23171 {
23172 throw new ArgumentNullException("child");
23173 }
23174 this.children.AddElement(child);
23175 child.ParentElement = this;
23176 }
23177
23178 public virtual void RemoveChild(ISchemaElement child)
23179 {
23180 if ((null == child))
23181 {
23182 throw new ArgumentNullException("child");
23183 }
23184 this.children.RemoveElement(child);
23185 child.ParentElement = null;
23186 }
23187
23188 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
23189 ISchemaElement ICreateChildren.CreateChild(string childName)
23190 {
23191 if (String.IsNullOrEmpty(childName))
23192 {
23193 throw new ArgumentNullException("childName");
23194 }
23195 ISchemaElement childValue = null;
23196 if (("ComplianceDrive" == childName))
23197 {
23198 childValue = new ComplianceDrive();
23199 }
23200 if (("ComponentSearch" == childName))
23201 {
23202 childValue = new ComponentSearch();
23203 }
23204 if (("RegistrySearch" == childName))
23205 {
23206 childValue = new RegistrySearch();
23207 }
23208 if (("IniFileSearch" == childName))
23209 {
23210 childValue = new IniFileSearch();
23211 }
23212 if (("DirectorySearch" == childName))
23213 {
23214 childValue = new DirectorySearch();
23215 }
23216 if ((null == childValue))
23217 {
23218 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
23219 }
23220 return childValue;
23221 }
23222
23223 /// <summary>
23224 /// Processes this element and all child elements into an XmlWriter.
23225 /// </summary>
23226 public virtual void OutputXml(XmlWriter writer)
23227 {
23228 if ((null == writer))
23229 {
23230 throw new ArgumentNullException("writer");
23231 }
23232 writer.WriteStartElement("ComplianceCheck", "http://wixtoolset.org/schemas/v4/wxs");
23233 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
23234 {
23235 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
23236 childElement.OutputXml(writer);
23237 }
23238 writer.WriteEndElement();
23239 }
23240
23241 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
23242 void ISetAttributes.SetAttribute(string name, string value)
23243 {
23244 if (String.IsNullOrEmpty(name))
23245 {
23246 throw new ArgumentNullException("name");
23247 }
23248 }
23249 }
23250
23251 /// <summary>
23252 /// Property value for a Product or Module.
23253 /// </summary>
23254 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
23255 public class Property : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
23256 {
23257
23258 private ElementCollection children;
23259
23260 private string idField;
23261
23262 private bool idFieldSet;
23263
23264 private string valueField;
23265
23266 private bool valueFieldSet;
23267
23268 private YesNoType complianceCheckField;
23269
23270 private bool complianceCheckFieldSet;
23271
23272 private YesNoType adminField;
23273
23274 private bool adminFieldSet;
23275
23276 private YesNoType secureField;
23277
23278 private bool secureFieldSet;
23279
23280 private YesNoType hiddenField;
23281
23282 private bool hiddenFieldSet;
23283
23284 private YesNoType suppressModularizationField;
23285
23286 private bool suppressModularizationFieldSet;
23287
23288 private ISchemaElement parentElement;
23289
23290 public Property()
23291 {
23292 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
23293 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Sequence);
23294 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(ComplianceDrive)));
23295 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(ComponentSearch)));
23296 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(RegistrySearch)));
23297 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(RegistrySearchRef)));
23298 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(IniFileSearch)));
23299 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(DirectorySearch)));
23300 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(DirectorySearchRef)));
23301 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(ProductSearch)));
23302 childCollection0.AddCollection(childCollection1);
23303 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
23304 this.children = childCollection0;
23305 }
23306
23307 public virtual IEnumerable Children
23308 {
23309 get
23310 {
23311 return this.children;
23312 }
23313 }
23314
23315 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
23316 public virtual IEnumerable this[System.Type childType]
23317 {
23318 get
23319 {
23320 return this.children.Filter(childType);
23321 }
23322 }
23323
23324 /// <summary>
23325 /// Unique identifier for Property.
23326 /// </summary>
23327 public string Id
23328 {
23329 get
23330 {
23331 return this.idField;
23332 }
23333 set
23334 {
23335 this.idFieldSet = true;
23336 this.idField = value;
23337 }
23338 }
23339
23340 /// <summary>
23341 /// Sets a default value for the property. The value will be overwritten if the Property is used for a search.
23342 /// </summary>
23343 public string Value
23344 {
23345 get
23346 {
23347 return this.valueField;
23348 }
23349 set
23350 {
23351 this.valueFieldSet = true;
23352 this.valueField = value;
23353 }
23354 }
23355
23356 /// <summary>
23357 /// Adds a row to the CCPSearch table. This attribute is only valid when this Property contains a search element.
23358 /// </summary>
23359 public YesNoType ComplianceCheck
23360 {
23361 get
23362 {
23363 return this.complianceCheckField;
23364 }
23365 set
23366 {
23367 this.complianceCheckFieldSet = true;
23368 this.complianceCheckField = value;
23369 }
23370 }
23371
23372 /// <summary>
23373 /// Denotes that the Property is saved during
23374 /// </summary>
23375 public YesNoType Admin
23376 {
23377 get
23378 {
23379 return this.adminField;
23380 }
23381 set
23382 {
23383 this.adminFieldSet = true;
23384 this.adminField = value;
23385 }
23386 }
23387
23388 /// <summary>
23389 /// Denotes that the Property can be passed to the server side when doing a managed installation with elevated privileges. See the
23390 /// </summary>
23391 public YesNoType Secure
23392 {
23393 get
23394 {
23395 return this.secureField;
23396 }
23397 set
23398 {
23399 this.secureFieldSet = true;
23400 this.secureField = value;
23401 }
23402 }
23403
23404 /// <summary>
23405 /// Denotes that the Property is not logged during installation. See the
23406 /// </summary>
23407 public YesNoType Hidden
23408 {
23409 get
23410 {
23411 return this.hiddenField;
23412 }
23413 set
23414 {
23415 this.hiddenFieldSet = true;
23416 this.hiddenField = value;
23417 }
23418 }
23419
23420 /// <summary>
23421 /// Use to suppress modularization of this property identifier in merge modules.
23422 /// Using this functionality is strongly discouraged; it should only be
23423 /// necessary as a workaround of last resort in rare scenarios.
23424 /// </summary>
23425 public YesNoType SuppressModularization
23426 {
23427 get
23428 {
23429 return this.suppressModularizationField;
23430 }
23431 set
23432 {
23433 this.suppressModularizationFieldSet = true;
23434 this.suppressModularizationField = value;
23435 }
23436 }
23437
23438 public virtual ISchemaElement ParentElement
23439 {
23440 get
23441 {
23442 return this.parentElement;
23443 }
23444 set
23445 {
23446 this.parentElement = value;
23447 }
23448 }
23449
23450 public virtual void AddChild(ISchemaElement child)
23451 {
23452 if ((null == child))
23453 {
23454 throw new ArgumentNullException("child");
23455 }
23456 this.children.AddElement(child);
23457 child.ParentElement = this;
23458 }
23459
23460 public virtual void RemoveChild(ISchemaElement child)
23461 {
23462 if ((null == child))
23463 {
23464 throw new ArgumentNullException("child");
23465 }
23466 this.children.RemoveElement(child);
23467 child.ParentElement = null;
23468 }
23469
23470 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
23471 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
23472 ISchemaElement ICreateChildren.CreateChild(string childName)
23473 {
23474 if (String.IsNullOrEmpty(childName))
23475 {
23476 throw new ArgumentNullException("childName");
23477 }
23478 ISchemaElement childValue = null;
23479 if (("ComplianceDrive" == childName))
23480 {
23481 childValue = new ComplianceDrive();
23482 }
23483 if (("ComponentSearch" == childName))
23484 {
23485 childValue = new ComponentSearch();
23486 }
23487 if (("RegistrySearch" == childName))
23488 {
23489 childValue = new RegistrySearch();
23490 }
23491 if (("RegistrySearchRef" == childName))
23492 {
23493 childValue = new RegistrySearchRef();
23494 }
23495 if (("IniFileSearch" == childName))
23496 {
23497 childValue = new IniFileSearch();
23498 }
23499 if (("DirectorySearch" == childName))
23500 {
23501 childValue = new DirectorySearch();
23502 }
23503 if (("DirectorySearchRef" == childName))
23504 {
23505 childValue = new DirectorySearchRef();
23506 }
23507 if (("ProductSearch" == childName))
23508 {
23509 childValue = new ProductSearch();
23510 }
23511 if ((null == childValue))
23512 {
23513 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
23514 }
23515 return childValue;
23516 }
23517
23518 /// <summary>
23519 /// Processes this element and all child elements into an XmlWriter.
23520 /// </summary>
23521 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
23522 public virtual void OutputXml(XmlWriter writer)
23523 {
23524 if ((null == writer))
23525 {
23526 throw new ArgumentNullException("writer");
23527 }
23528 writer.WriteStartElement("Property", "http://wixtoolset.org/schemas/v4/wxs");
23529 if (this.idFieldSet)
23530 {
23531 writer.WriteAttributeString("Id", this.idField);
23532 }
23533 if (this.valueFieldSet)
23534 {
23535 writer.WriteAttributeString("Value", this.valueField);
23536 }
23537 if (this.complianceCheckFieldSet)
23538 {
23539 if ((this.complianceCheckField == YesNoType.no))
23540 {
23541 writer.WriteAttributeString("ComplianceCheck", "no");
23542 }
23543 if ((this.complianceCheckField == YesNoType.yes))
23544 {
23545 writer.WriteAttributeString("ComplianceCheck", "yes");
23546 }
23547 }
23548 if (this.adminFieldSet)
23549 {
23550 if ((this.adminField == YesNoType.no))
23551 {
23552 writer.WriteAttributeString("Admin", "no");
23553 }
23554 if ((this.adminField == YesNoType.yes))
23555 {
23556 writer.WriteAttributeString("Admin", "yes");
23557 }
23558 }
23559 if (this.secureFieldSet)
23560 {
23561 if ((this.secureField == YesNoType.no))
23562 {
23563 writer.WriteAttributeString("Secure", "no");
23564 }
23565 if ((this.secureField == YesNoType.yes))
23566 {
23567 writer.WriteAttributeString("Secure", "yes");
23568 }
23569 }
23570 if (this.hiddenFieldSet)
23571 {
23572 if ((this.hiddenField == YesNoType.no))
23573 {
23574 writer.WriteAttributeString("Hidden", "no");
23575 }
23576 if ((this.hiddenField == YesNoType.yes))
23577 {
23578 writer.WriteAttributeString("Hidden", "yes");
23579 }
23580 }
23581 if (this.suppressModularizationFieldSet)
23582 {
23583 if ((this.suppressModularizationField == YesNoType.no))
23584 {
23585 writer.WriteAttributeString("SuppressModularization", "no");
23586 }
23587 if ((this.suppressModularizationField == YesNoType.yes))
23588 {
23589 writer.WriteAttributeString("SuppressModularization", "yes");
23590 }
23591 }
23592 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
23593 {
23594 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
23595 childElement.OutputXml(writer);
23596 }
23597 writer.WriteEndElement();
23598 }
23599
23600 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
23601 void ISetAttributes.SetAttribute(string name, string value)
23602 {
23603 if (String.IsNullOrEmpty(name))
23604 {
23605 throw new ArgumentNullException("name");
23606 }
23607 if (("Id" == name))
23608 {
23609 this.idField = value;
23610 this.idFieldSet = true;
23611 }
23612 if (("Value" == name))
23613 {
23614 this.valueField = value;
23615 this.valueFieldSet = true;
23616 }
23617 if (("ComplianceCheck" == name))
23618 {
23619 this.complianceCheckField = Enums.ParseYesNoType(value);
23620 this.complianceCheckFieldSet = true;
23621 }
23622 if (("Admin" == name))
23623 {
23624 this.adminField = Enums.ParseYesNoType(value);
23625 this.adminFieldSet = true;
23626 }
23627 if (("Secure" == name))
23628 {
23629 this.secureField = Enums.ParseYesNoType(value);
23630 this.secureFieldSet = true;
23631 }
23632 if (("Hidden" == name))
23633 {
23634 this.hiddenField = Enums.ParseYesNoType(value);
23635 this.hiddenFieldSet = true;
23636 }
23637 if (("SuppressModularization" == name))
23638 {
23639 this.suppressModularizationField = Enums.ParseYesNoType(value);
23640 this.suppressModularizationFieldSet = true;
23641 }
23642 }
23643 }
23644
23645 /// <summary>
23646 /// Reference to a Property value.
23647 /// </summary>
23648 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
23649 public class PropertyRef : ISchemaElement, ISetAttributes
23650 {
23651
23652 private string idField;
23653
23654 private bool idFieldSet;
23655
23656 private ISchemaElement parentElement;
23657
23658 /// <summary>
23659 /// Identifier of Property to reference.
23660 /// </summary>
23661 public string Id
23662 {
23663 get
23664 {
23665 return this.idField;
23666 }
23667 set
23668 {
23669 this.idFieldSet = true;
23670 this.idField = value;
23671 }
23672 }
23673
23674 public virtual ISchemaElement ParentElement
23675 {
23676 get
23677 {
23678 return this.parentElement;
23679 }
23680 set
23681 {
23682 this.parentElement = value;
23683 }
23684 }
23685
23686 /// <summary>
23687 /// Processes this element and all child elements into an XmlWriter.
23688 /// </summary>
23689 public virtual void OutputXml(XmlWriter writer)
23690 {
23691 if ((null == writer))
23692 {
23693 throw new ArgumentNullException("writer");
23694 }
23695 writer.WriteStartElement("PropertyRef", "http://wixtoolset.org/schemas/v4/wxs");
23696 if (this.idFieldSet)
23697 {
23698 writer.WriteAttributeString("Id", this.idField);
23699 }
23700 writer.WriteEndElement();
23701 }
23702
23703 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
23704 void ISetAttributes.SetAttribute(string name, string value)
23705 {
23706 if (String.IsNullOrEmpty(name))
23707 {
23708 throw new ArgumentNullException("name");
23709 }
23710 if (("Id" == name))
23711 {
23712 this.idField = value;
23713 this.idFieldSet = true;
23714 }
23715 }
23716 }
23717
23718 /// <summary>
23719 /// Shortcut, default target is parent File, CreateFolder, or Component's Directory
23720 /// </summary>
23721 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
23722 public class Shortcut : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
23723 {
23724
23725 private ElementCollection children;
23726
23727 private string idField;
23728
23729 private bool idFieldSet;
23730
23731 private string directoryField;
23732
23733 private bool directoryFieldSet;
23734
23735 private string nameField;
23736
23737 private bool nameFieldSet;
23738
23739 private string shortNameField;
23740
23741 private bool shortNameFieldSet;
23742
23743 private string targetField;
23744
23745 private bool targetFieldSet;
23746
23747 private string descriptionField;
23748
23749 private bool descriptionFieldSet;
23750
23751 private string argumentsField;
23752
23753 private bool argumentsFieldSet;
23754
23755 private int hotkeyField;
23756
23757 private bool hotkeyFieldSet;
23758
23759 private string iconField;
23760
23761 private bool iconFieldSet;
23762
23763 private int iconIndexField;
23764
23765 private bool iconIndexFieldSet;
23766
23767 private ShowType showField;
23768
23769 private bool showFieldSet;
23770
23771 private string workingDirectoryField;
23772
23773 private bool workingDirectoryFieldSet;
23774
23775 private YesNoType advertiseField;
23776
23777 private bool advertiseFieldSet;
23778
23779 private string displayResourceDllField;
23780
23781 private bool displayResourceDllFieldSet;
23782
23783 private int displayResourceIdField;
23784
23785 private bool displayResourceIdFieldSet;
23786
23787 private string descriptionResourceDllField;
23788
23789 private bool descriptionResourceDllFieldSet;
23790
23791 private int descriptionResourceIdField;
23792
23793 private bool descriptionResourceIdFieldSet;
23794
23795 private ISchemaElement parentElement;
23796
23797 public Shortcut()
23798 {
23799 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
23800 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Icon)));
23801 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ShortcutProperty)));
23802 this.children = childCollection0;
23803 }
23804
23805 public virtual IEnumerable Children
23806 {
23807 get
23808 {
23809 return this.children;
23810 }
23811 }
23812
23813 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
23814 public virtual IEnumerable this[System.Type childType]
23815 {
23816 get
23817 {
23818 return this.children.Filter(childType);
23819 }
23820 }
23821
23822 /// <summary>
23823 /// Unique identifier for the shortcut. This value will serve as the primary key for the row.
23824 /// </summary>
23825 public string Id
23826 {
23827 get
23828 {
23829 return this.idField;
23830 }
23831 set
23832 {
23833 this.idFieldSet = true;
23834 this.idField = value;
23835 }
23836 }
23837
23838 /// <summary>
23839 /// 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.
23840 /// </summary>
23841 public string Directory
23842 {
23843 get
23844 {
23845 return this.directoryField;
23846 }
23847 set
23848 {
23849 this.directoryFieldSet = true;
23850 this.directoryField = value;
23851 }
23852 }
23853
23854 /// <summary>
23855 /// In prior versions of the WiX toolset, this attribute specified the short name.
23856 /// This attribute's value may now be either a short or long name.
23857 /// If a short name is specified, the ShortName attribute may not be specified.
23858 /// Also, if this value is a long name, the ShortName attribute may be omitted to
23859 /// allow WiX to attempt to generate a unique short name.
23860 /// However, if this name collides with another shortcut or you wish to manually specify
23861 /// the short name, then the ShortName attribute may be specified.
23862 /// </summary>
23863 public string Name
23864 {
23865 get
23866 {
23867 return this.nameField;
23868 }
23869 set
23870 {
23871 this.nameFieldSet = true;
23872 this.nameField = value;
23873 }
23874 }
23875
23876 /// <summary>
23877 /// The short name of the shortcut in 8.3 format.
23878 /// This attribute should only be set if there is a conflict between generated short names
23879 /// or the user wants to manually specify the short name.
23880 /// </summary>
23881 public string ShortName
23882 {
23883 get
23884 {
23885 return this.shortNameField;
23886 }
23887 set
23888 {
23889 this.shortNameFieldSet = true;
23890 this.shortNameField = value;
23891 }
23892 }
23893
23894 /// <summary>
23895 /// This attribute can only be set if this Shortcut element is nested under a Component element.
23896 /// When nested under a Component element, this attribute's value will default to the parent directory.
23897 /// This attribute's value is the target for a non-advertised shortcut.
23898 /// This attribute is not valid for advertised shortcuts.
23899 /// 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.
23900 /// </summary>
23901 public string Target
23902 {
23903 get
23904 {
23905 return this.targetField;
23906 }
23907 set
23908 {
23909 this.targetFieldSet = true;
23910 this.targetField = value;
23911 }
23912 }
23913
23914 /// <summary>
23915 /// The localizable description for the shortcut.
23916 /// </summary>
23917 public string Description
23918 {
23919 get
23920 {
23921 return this.descriptionField;
23922 }
23923 set
23924 {
23925 this.descriptionFieldSet = true;
23926 this.descriptionField = value;
23927 }
23928 }
23929
23930 /// <summary>
23931 /// The command-line arguments for the shortcut. Note that the resolution of properties
23932 /// in the Arguments field is limited. A property formatted as [Property] in this field can only be resolved if the
23933 /// property already has the intended value when the component owning the shortcut is installed. For example, for the
23934 /// argument "[#MyDoc.doc]" to resolve to the correct value, the same process must be installing the file MyDoc.doc and
23935 /// the component that owns the shortcut.
23936 /// </summary>
23937 public string Arguments
23938 {
23939 get
23940 {
23941 return this.argumentsField;
23942 }
23943 set
23944 {
23945 this.argumentsFieldSet = true;
23946 this.argumentsField = value;
23947 }
23948 }
23949
23950 /// <summary>
23951 /// The hotkey for the shortcut. The low-order byte contains the virtual-key code for
23952 /// the key, and the high-order byte contains modifier flags. This must be a non-negative number. Authors of
23953 /// installation packages are generally recommend not to set this option, because this can add duplicate hotkeys to a
23954 /// users desktop. In addition, the practice of assigning hotkeys to shortcuts can be problematic for users using hotkeys
23955 /// for accessibility.
23956 /// </summary>
23957 public int Hotkey
23958 {
23959 get
23960 {
23961 return this.hotkeyField;
23962 }
23963 set
23964 {
23965 this.hotkeyFieldSet = true;
23966 this.hotkeyField = value;
23967 }
23968 }
23969
23970 /// <summary>
23971 /// Identifier reference to Icon element. The Icon identifier should have the same extension
23972 /// as the file that it points at. For example, a shortcut to an executable (e.g. "my.exe") should reference an Icon with identifier
23973 /// like "MyIcon.exe"
23974 /// </summary>
23975 public string Icon
23976 {
23977 get
23978 {
23979 return this.iconField;
23980 }
23981 set
23982 {
23983 this.iconFieldSet = true;
23984 this.iconField = value;
23985 }
23986 }
23987
23988 /// <summary>
23989 /// Identifier reference to Icon element.
23990 /// </summary>
23991 public int IconIndex
23992 {
23993 get
23994 {
23995 return this.iconIndexField;
23996 }
23997 set
23998 {
23999 this.iconIndexFieldSet = true;
24000 this.iconIndexField = value;
24001 }
24002 }
24003
24004 public ShowType Show
24005 {
24006 get
24007 {
24008 return this.showField;
24009 }
24010 set
24011 {
24012 this.showFieldSet = true;
24013 this.showField = value;
24014 }
24015 }
24016
24017 /// <summary>
24018 /// Directory identifier (or Property identifier that resolves to a directory) that resolves
24019 /// to the path of the working directory for the shortcut.
24020 /// </summary>
24021 public string WorkingDirectory
24022 {
24023 get
24024 {
24025 return this.workingDirectoryField;
24026 }
24027 set
24028 {
24029 this.workingDirectoryFieldSet = true;
24030 this.workingDirectoryField = value;
24031 }
24032 }
24033
24034 /// <summary>
24035 /// Specifies if the shortcut should be advertised or not. Note that advertised shortcuts
24036 /// always point at a particular application, identified by a ProductCode, and should not be shared between applications.
24037 /// Advertised shortcuts only work for the most recently installed application, and are removed when that application is
24038 /// removed. The default value is 'no'.
24039 /// </summary>
24040 public YesNoType Advertise
24041 {
24042 get
24043 {
24044 return this.advertiseField;
24045 }
24046 set
24047 {
24048 this.advertiseFieldSet = true;
24049 this.advertiseField = value;
24050 }
24051 }
24052
24053 /// <summary>
24054 /// The Formatted string providing the full path to the language neutral file containing the MUI Manifest. Generally
24055 /// authored using [#filekey] form. When this attribute is specified, the DisplayResourceId attribute must also
24056 /// be provided.
24057 ///
24058 /// This attribute is only used on Windows Vista and above. If this attribute is not populated and the install
24059 /// is running on Vista and above, the value in the Name attribute is used. If this attribute is populated and
24060 /// the install is running on Vista and above, the value in the Name attribute is ignored.
24061 /// </summary>
24062 public string DisplayResourceDll
24063 {
24064 get
24065 {
24066 return this.displayResourceDllField;
24067 }
24068 set
24069 {
24070 this.displayResourceDllFieldSet = true;
24071 this.displayResourceDllField = value;
24072 }
24073 }
24074
24075 /// <summary>
24076 /// The display name index for the shortcut. This must be a non-negative number. When this attribute is specified, the
24077 /// DisplayResourceDll attribute must also be provided.
24078 ///
24079 /// This attribute is only used on Windows Vista and above. If this attribute is not specified and the install
24080 /// is running on Vista and above, the value in the Name attribute is used. If this attribute is specified and
24081 /// the install is running on Vista and above, the value in the Name attribute is ignored.
24082 /// </summary>
24083 public int DisplayResourceId
24084 {
24085 get
24086 {
24087 return this.displayResourceIdField;
24088 }
24089 set
24090 {
24091 this.displayResourceIdFieldSet = true;
24092 this.displayResourceIdField = value;
24093 }
24094 }
24095
24096 /// <summary>
24097 /// The Formatted string providing the full path to the language neutral file containing the MUI Manifest. Generally
24098 /// authored using [#filekey] form. When this attribute is specified, the DescriptionResourceId attribute must also
24099 /// be provided.
24100 ///
24101 /// This attribute is only used on Windows Vista and above. If this attribute is not specified and the install
24102 /// is running on Vista and above, the value in the Name attribute is used. If this attribute is provided and
24103 /// the install is running on Vista and above, the value in the Name attribute is ignored.
24104 /// </summary>
24105 public string DescriptionResourceDll
24106 {
24107 get
24108 {
24109 return this.descriptionResourceDllField;
24110 }
24111 set
24112 {
24113 this.descriptionResourceDllFieldSet = true;
24114 this.descriptionResourceDllField = value;
24115 }
24116 }
24117
24118 /// <summary>
24119 /// The description name index for the shortcut. This must be a non-negative number. When this attribute is specified,
24120 /// the DescriptionResourceDll attribute must also be populated.
24121 ///
24122 /// This attribute is only used on Windows Vista and above. If this attribute is not specified and the install
24123 /// is running on Vista and above, the value in the Name attribute is used. If this attribute is populated and the
24124 /// install is running on Vista and above, the value in the Name attribute is ignored.
24125 /// </summary>
24126 public int DescriptionResourceId
24127 {
24128 get
24129 {
24130 return this.descriptionResourceIdField;
24131 }
24132 set
24133 {
24134 this.descriptionResourceIdFieldSet = true;
24135 this.descriptionResourceIdField = value;
24136 }
24137 }
24138
24139 public virtual ISchemaElement ParentElement
24140 {
24141 get
24142 {
24143 return this.parentElement;
24144 }
24145 set
24146 {
24147 this.parentElement = value;
24148 }
24149 }
24150
24151 public virtual void AddChild(ISchemaElement child)
24152 {
24153 if ((null == child))
24154 {
24155 throw new ArgumentNullException("child");
24156 }
24157 this.children.AddElement(child);
24158 child.ParentElement = this;
24159 }
24160
24161 public virtual void RemoveChild(ISchemaElement child)
24162 {
24163 if ((null == child))
24164 {
24165 throw new ArgumentNullException("child");
24166 }
24167 this.children.RemoveElement(child);
24168 child.ParentElement = null;
24169 }
24170
24171 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
24172 ISchemaElement ICreateChildren.CreateChild(string childName)
24173 {
24174 if (String.IsNullOrEmpty(childName))
24175 {
24176 throw new ArgumentNullException("childName");
24177 }
24178 ISchemaElement childValue = null;
24179 if (("Icon" == childName))
24180 {
24181 childValue = new Icon();
24182 }
24183 if (("ShortcutProperty" == childName))
24184 {
24185 childValue = new ShortcutProperty();
24186 }
24187 if ((null == childValue))
24188 {
24189 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
24190 }
24191 return childValue;
24192 }
24193
24194 /// <summary>
24195 /// Parses a ShowType from a string.
24196 /// </summary>
24197 public static ShowType ParseShowType(string value)
24198 {
24199 ShowType parsedValue;
24200 Shortcut.TryParseShowType(value, out parsedValue);
24201 return parsedValue;
24202 }
24203
24204 /// <summary>
24205 /// Tries to parse a ShowType from a string.
24206 /// </summary>
24207 public static bool TryParseShowType(string value, out ShowType parsedValue)
24208 {
24209 parsedValue = ShowType.NotSet;
24210 if (string.IsNullOrEmpty(value))
24211 {
24212 return false;
24213 }
24214 if (("normal" == value))
24215 {
24216 parsedValue = ShowType.normal;
24217 }
24218 else
24219 {
24220 if (("minimized" == value))
24221 {
24222 parsedValue = ShowType.minimized;
24223 }
24224 else
24225 {
24226 if (("maximized" == value))
24227 {
24228 parsedValue = ShowType.maximized;
24229 }
24230 else
24231 {
24232 parsedValue = ShowType.IllegalValue;
24233 return false;
24234 }
24235 }
24236 }
24237 return true;
24238 }
24239
24240 /// <summary>
24241 /// Processes this element and all child elements into an XmlWriter.
24242 /// </summary>
24243 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
24244 public virtual void OutputXml(XmlWriter writer)
24245 {
24246 if ((null == writer))
24247 {
24248 throw new ArgumentNullException("writer");
24249 }
24250 writer.WriteStartElement("Shortcut", "http://wixtoolset.org/schemas/v4/wxs");
24251 if (this.idFieldSet)
24252 {
24253 writer.WriteAttributeString("Id", this.idField);
24254 }
24255 if (this.directoryFieldSet)
24256 {
24257 writer.WriteAttributeString("Directory", this.directoryField);
24258 }
24259 if (this.nameFieldSet)
24260 {
24261 writer.WriteAttributeString("Name", this.nameField);
24262 }
24263 if (this.shortNameFieldSet)
24264 {
24265 writer.WriteAttributeString("ShortName", this.shortNameField);
24266 }
24267 if (this.targetFieldSet)
24268 {
24269 writer.WriteAttributeString("Target", this.targetField);
24270 }
24271 if (this.descriptionFieldSet)
24272 {
24273 writer.WriteAttributeString("Description", this.descriptionField);
24274 }
24275 if (this.argumentsFieldSet)
24276 {
24277 writer.WriteAttributeString("Arguments", this.argumentsField);
24278 }
24279 if (this.hotkeyFieldSet)
24280 {
24281 writer.WriteAttributeString("Hotkey", this.hotkeyField.ToString(CultureInfo.InvariantCulture));
24282 }
24283 if (this.iconFieldSet)
24284 {
24285 writer.WriteAttributeString("Icon", this.iconField);
24286 }
24287 if (this.iconIndexFieldSet)
24288 {
24289 writer.WriteAttributeString("IconIndex", this.iconIndexField.ToString(CultureInfo.InvariantCulture));
24290 }
24291 if (this.showFieldSet)
24292 {
24293 if ((this.showField == ShowType.normal))
24294 {
24295 writer.WriteAttributeString("Show", "normal");
24296 }
24297 if ((this.showField == ShowType.minimized))
24298 {
24299 writer.WriteAttributeString("Show", "minimized");
24300 }
24301 if ((this.showField == ShowType.maximized))
24302 {
24303 writer.WriteAttributeString("Show", "maximized");
24304 }
24305 }
24306 if (this.workingDirectoryFieldSet)
24307 {
24308 writer.WriteAttributeString("WorkingDirectory", this.workingDirectoryField);
24309 }
24310 if (this.advertiseFieldSet)
24311 {
24312 if ((this.advertiseField == YesNoType.no))
24313 {
24314 writer.WriteAttributeString("Advertise", "no");
24315 }
24316 if ((this.advertiseField == YesNoType.yes))
24317 {
24318 writer.WriteAttributeString("Advertise", "yes");
24319 }
24320 }
24321 if (this.displayResourceDllFieldSet)
24322 {
24323 writer.WriteAttributeString("DisplayResourceDll", this.displayResourceDllField);
24324 }
24325 if (this.displayResourceIdFieldSet)
24326 {
24327 writer.WriteAttributeString("DisplayResourceId", this.displayResourceIdField.ToString(CultureInfo.InvariantCulture));
24328 }
24329 if (this.descriptionResourceDllFieldSet)
24330 {
24331 writer.WriteAttributeString("DescriptionResourceDll", this.descriptionResourceDllField);
24332 }
24333 if (this.descriptionResourceIdFieldSet)
24334 {
24335 writer.WriteAttributeString("DescriptionResourceId", this.descriptionResourceIdField.ToString(CultureInfo.InvariantCulture));
24336 }
24337 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
24338 {
24339 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
24340 childElement.OutputXml(writer);
24341 }
24342 writer.WriteEndElement();
24343 }
24344
24345 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
24346 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
24347 void ISetAttributes.SetAttribute(string name, string value)
24348 {
24349 if (String.IsNullOrEmpty(name))
24350 {
24351 throw new ArgumentNullException("name");
24352 }
24353 if (("Id" == name))
24354 {
24355 this.idField = value;
24356 this.idFieldSet = true;
24357 }
24358 if (("Directory" == name))
24359 {
24360 this.directoryField = value;
24361 this.directoryFieldSet = true;
24362 }
24363 if (("Name" == name))
24364 {
24365 this.nameField = value;
24366 this.nameFieldSet = true;
24367 }
24368 if (("ShortName" == name))
24369 {
24370 this.shortNameField = value;
24371 this.shortNameFieldSet = true;
24372 }
24373 if (("Target" == name))
24374 {
24375 this.targetField = value;
24376 this.targetFieldSet = true;
24377 }
24378 if (("Description" == name))
24379 {
24380 this.descriptionField = value;
24381 this.descriptionFieldSet = true;
24382 }
24383 if (("Arguments" == name))
24384 {
24385 this.argumentsField = value;
24386 this.argumentsFieldSet = true;
24387 }
24388 if (("Hotkey" == name))
24389 {
24390 this.hotkeyField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
24391 this.hotkeyFieldSet = true;
24392 }
24393 if (("Icon" == name))
24394 {
24395 this.iconField = value;
24396 this.iconFieldSet = true;
24397 }
24398 if (("IconIndex" == name))
24399 {
24400 this.iconIndexField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
24401 this.iconIndexFieldSet = true;
24402 }
24403 if (("Show" == name))
24404 {
24405 this.showField = Shortcut.ParseShowType(value);
24406 this.showFieldSet = true;
24407 }
24408 if (("WorkingDirectory" == name))
24409 {
24410 this.workingDirectoryField = value;
24411 this.workingDirectoryFieldSet = true;
24412 }
24413 if (("Advertise" == name))
24414 {
24415 this.advertiseField = Enums.ParseYesNoType(value);
24416 this.advertiseFieldSet = true;
24417 }
24418 if (("DisplayResourceDll" == name))
24419 {
24420 this.displayResourceDllField = value;
24421 this.displayResourceDllFieldSet = true;
24422 }
24423 if (("DisplayResourceId" == name))
24424 {
24425 this.displayResourceIdField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
24426 this.displayResourceIdFieldSet = true;
24427 }
24428 if (("DescriptionResourceDll" == name))
24429 {
24430 this.descriptionResourceDllField = value;
24431 this.descriptionResourceDllFieldSet = true;
24432 }
24433 if (("DescriptionResourceId" == name))
24434 {
24435 this.descriptionResourceIdField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
24436 this.descriptionResourceIdFieldSet = true;
24437 }
24438 }
24439
24440 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
24441 public enum ShowType
24442 {
24443
24444 IllegalValue = int.MaxValue,
24445
24446 NotSet = -1,
24447
24448 /// <summary>
24449 /// The shortcut target will be displayed using the SW_SHOWNORMAL attribute.
24450 /// </summary>
24451 normal,
24452
24453 /// <summary>
24454 /// The shortcut target will be displayed using the SW_SHOWMINNOACTIVE attribute.
24455 /// </summary>
24456 minimized,
24457
24458 /// <summary>
24459 /// The shortcut target will be displayed using the SW_SHOWMAXIMIZED attribute.
24460 /// </summary>
24461 maximized,
24462 }
24463 }
24464
24465 /// <summary>
24466 /// Property values for a shortcut. This element's functionality is available starting with MSI 5.0.
24467 /// </summary>
24468 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
24469 public class ShortcutProperty : ISchemaElement, ISetAttributes
24470 {
24471
24472 private string idField;
24473
24474 private bool idFieldSet;
24475
24476 private string keyField;
24477
24478 private bool keyFieldSet;
24479
24480 private string valueField;
24481
24482 private bool valueFieldSet;
24483
24484 private ISchemaElement parentElement;
24485
24486 /// <summary>
24487 /// Unique identifier for MsiShortcutProperty table. If omitted, a stable identifier will be generated from the parent shortcut identifier and Key value.
24488 /// </summary>
24489 public string Id
24490 {
24491 get
24492 {
24493 return this.idField;
24494 }
24495 set
24496 {
24497 this.idFieldSet = true;
24498 this.idField = value;
24499 }
24500 }
24501
24502 /// <summary>
24503 /// A formatted string identifying the property to be set.
24504 /// </summary>
24505 public string Key
24506 {
24507 get
24508 {
24509 return this.keyField;
24510 }
24511 set
24512 {
24513 this.keyFieldSet = true;
24514 this.keyField = value;
24515 }
24516 }
24517
24518 /// <summary>
24519 /// A formatted string supplying the value of the property.
24520 /// </summary>
24521 public string Value
24522 {
24523 get
24524 {
24525 return this.valueField;
24526 }
24527 set
24528 {
24529 this.valueFieldSet = true;
24530 this.valueField = value;
24531 }
24532 }
24533
24534 public virtual ISchemaElement ParentElement
24535 {
24536 get
24537 {
24538 return this.parentElement;
24539 }
24540 set
24541 {
24542 this.parentElement = value;
24543 }
24544 }
24545
24546 /// <summary>
24547 /// Processes this element and all child elements into an XmlWriter.
24548 /// </summary>
24549 public virtual void OutputXml(XmlWriter writer)
24550 {
24551 if ((null == writer))
24552 {
24553 throw new ArgumentNullException("writer");
24554 }
24555 writer.WriteStartElement("ShortcutProperty", "http://wixtoolset.org/schemas/v4/wxs");
24556 if (this.idFieldSet)
24557 {
24558 writer.WriteAttributeString("Id", this.idField);
24559 }
24560 if (this.keyFieldSet)
24561 {
24562 writer.WriteAttributeString("Key", this.keyField);
24563 }
24564 if (this.valueFieldSet)
24565 {
24566 writer.WriteAttributeString("Value", this.valueField);
24567 }
24568 writer.WriteEndElement();
24569 }
24570
24571 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
24572 void ISetAttributes.SetAttribute(string name, string value)
24573 {
24574 if (String.IsNullOrEmpty(name))
24575 {
24576 throw new ArgumentNullException("name");
24577 }
24578 if (("Id" == name))
24579 {
24580 this.idField = value;
24581 this.idFieldSet = true;
24582 }
24583 if (("Key" == name))
24584 {
24585 this.keyField = value;
24586 this.keyFieldSet = true;
24587 }
24588 if (("Value" == name))
24589 {
24590 this.valueField = value;
24591 this.valueFieldSet = true;
24592 }
24593 }
24594 }
24595
24596 /// <summary>
24597 /// Sets ACLs on File, Registry, or CreateFolder. When under a Registry element, this cannot be used
24598 /// if the Action attribute's value is remove or removeKeyOnInstall. This element has no Id attribute.
24599 /// The table and key are taken from the parent element.
24600 /// </summary>
24601 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
24602 public class Permission : ISchemaElement, ISetAttributes
24603 {
24604
24605 private string domainField;
24606
24607 private bool domainFieldSet;
24608
24609 private string userField;
24610
24611 private bool userFieldSet;
24612
24613 private YesNoType readField;
24614
24615 private bool readFieldSet;
24616
24617 private YesNoType deleteField;
24618
24619 private bool deleteFieldSet;
24620
24621 private YesNoType readPermissionField;
24622
24623 private bool readPermissionFieldSet;
24624
24625 private YesNoType changePermissionField;
24626
24627 private bool changePermissionFieldSet;
24628
24629 private YesNoType takeOwnershipField;
24630
24631 private bool takeOwnershipFieldSet;
24632
24633 private YesNoType specificRightsAllField;
24634
24635 private bool specificRightsAllFieldSet;
24636
24637 private YesNoType readAttributesField;
24638
24639 private bool readAttributesFieldSet;
24640
24641 private YesNoType writeAttributesField;
24642
24643 private bool writeAttributesFieldSet;
24644
24645 private YesNoType readExtendedAttributesField;
24646
24647 private bool readExtendedAttributesFieldSet;
24648
24649 private YesNoType writeExtendedAttributesField;
24650
24651 private bool writeExtendedAttributesFieldSet;
24652
24653 private YesNoType synchronizeField;
24654
24655 private bool synchronizeFieldSet;
24656
24657 private YesNoType createFileField;
24658
24659 private bool createFileFieldSet;
24660
24661 private YesNoType createChildField;
24662
24663 private bool createChildFieldSet;
24664
24665 private YesNoType deleteChildField;
24666
24667 private bool deleteChildFieldSet;
24668
24669 private YesNoType traverseField;
24670
24671 private bool traverseFieldSet;
24672
24673 private YesNoType appendField;
24674
24675 private bool appendFieldSet;
24676
24677 private YesNoType executeField;
24678
24679 private bool executeFieldSet;
24680
24681 private YesNoType fileAllRightsField;
24682
24683 private bool fileAllRightsFieldSet;
24684
24685 private YesNoType writeField;
24686
24687 private bool writeFieldSet;
24688
24689 private YesNoType createSubkeysField;
24690
24691 private bool createSubkeysFieldSet;
24692
24693 private YesNoType enumerateSubkeysField;
24694
24695 private bool enumerateSubkeysFieldSet;
24696
24697 private YesNoType notifyField;
24698
24699 private bool notifyFieldSet;
24700
24701 private YesNoType createLinkField;
24702
24703 private bool createLinkFieldSet;
24704
24705 private YesNoType genericAllField;
24706
24707 private bool genericAllFieldSet;
24708
24709 private YesNoType genericExecuteField;
24710
24711 private bool genericExecuteFieldSet;
24712
24713 private YesNoType genericWriteField;
24714
24715 private bool genericWriteFieldSet;
24716
24717 private YesNoType genericReadField;
24718
24719 private bool genericReadFieldSet;
24720
24721 private ISchemaElement parentElement;
24722
24723 public string Domain
24724 {
24725 get
24726 {
24727 return this.domainField;
24728 }
24729 set
24730 {
24731 this.domainFieldSet = true;
24732 this.domainField = value;
24733 }
24734 }
24735
24736 public string User
24737 {
24738 get
24739 {
24740 return this.userField;
24741 }
24742 set
24743 {
24744 this.userFieldSet = true;
24745 this.userField = value;
24746 }
24747 }
24748
24749 public YesNoType Read
24750 {
24751 get
24752 {
24753 return this.readField;
24754 }
24755 set
24756 {
24757 this.readFieldSet = true;
24758 this.readField = value;
24759 }
24760 }
24761
24762 public YesNoType Delete
24763 {
24764 get
24765 {
24766 return this.deleteField;
24767 }
24768 set
24769 {
24770 this.deleteFieldSet = true;
24771 this.deleteField = value;
24772 }
24773 }
24774
24775 public YesNoType ReadPermission
24776 {
24777 get
24778 {
24779 return this.readPermissionField;
24780 }
24781 set
24782 {
24783 this.readPermissionFieldSet = true;
24784 this.readPermissionField = value;
24785 }
24786 }
24787
24788 public YesNoType ChangePermission
24789 {
24790 get
24791 {
24792 return this.changePermissionField;
24793 }
24794 set
24795 {
24796 this.changePermissionFieldSet = true;
24797 this.changePermissionField = value;
24798 }
24799 }
24800
24801 public YesNoType TakeOwnership
24802 {
24803 get
24804 {
24805 return this.takeOwnershipField;
24806 }
24807 set
24808 {
24809 this.takeOwnershipFieldSet = true;
24810 this.takeOwnershipField = value;
24811 }
24812 }
24813
24814 /// <summary>
24815 /// Bit mask for SPECIFIC_RIGHTS_ALL from WinNT.h (0x0000FFFF).
24816 /// </summary>
24817 public YesNoType SpecificRightsAll
24818 {
24819 get
24820 {
24821 return this.specificRightsAllField;
24822 }
24823 set
24824 {
24825 this.specificRightsAllFieldSet = true;
24826 this.specificRightsAllField = value;
24827 }
24828 }
24829
24830 public YesNoType ReadAttributes
24831 {
24832 get
24833 {
24834 return this.readAttributesField;
24835 }
24836 set
24837 {
24838 this.readAttributesFieldSet = true;
24839 this.readAttributesField = value;
24840 }
24841 }
24842
24843 public YesNoType WriteAttributes
24844 {
24845 get
24846 {
24847 return this.writeAttributesField;
24848 }
24849 set
24850 {
24851 this.writeAttributesFieldSet = true;
24852 this.writeAttributesField = value;
24853 }
24854 }
24855
24856 public YesNoType ReadExtendedAttributes
24857 {
24858 get
24859 {
24860 return this.readExtendedAttributesField;
24861 }
24862 set
24863 {
24864 this.readExtendedAttributesFieldSet = true;
24865 this.readExtendedAttributesField = value;
24866 }
24867 }
24868
24869 public YesNoType WriteExtendedAttributes
24870 {
24871 get
24872 {
24873 return this.writeExtendedAttributesField;
24874 }
24875 set
24876 {
24877 this.writeExtendedAttributesFieldSet = true;
24878 this.writeExtendedAttributesField = value;
24879 }
24880 }
24881
24882 public YesNoType Synchronize
24883 {
24884 get
24885 {
24886 return this.synchronizeField;
24887 }
24888 set
24889 {
24890 this.synchronizeFieldSet = true;
24891 this.synchronizeField = value;
24892 }
24893 }
24894
24895 /// <summary>
24896 /// For a directory, the right to create a file in the directory. Only valid under a 'CreateFolder' parent.
24897 /// </summary>
24898 public YesNoType CreateFile
24899 {
24900 get
24901 {
24902 return this.createFileField;
24903 }
24904 set
24905 {
24906 this.createFileFieldSet = true;
24907 this.createFileField = value;
24908 }
24909 }
24910
24911 /// <summary>
24912 /// For a directory, the right to create a subdirectory. Only valid under a 'CreateFolder' parent.
24913 /// </summary>
24914 public YesNoType CreateChild
24915 {
24916 get
24917 {
24918 return this.createChildField;
24919 }
24920 set
24921 {
24922 this.createChildFieldSet = true;
24923 this.createChildField = value;
24924 }
24925 }
24926
24927 /// <summary>
24928 /// 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.
24929 /// </summary>
24930 public YesNoType DeleteChild
24931 {
24932 get
24933 {
24934 return this.deleteChildField;
24935 }
24936 set
24937 {
24938 this.deleteChildFieldSet = true;
24939 this.deleteChildField = value;
24940 }
24941 }
24942
24943 /// <summary>
24944 /// 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.
24945 /// </summary>
24946 public YesNoType Traverse
24947 {
24948 get
24949 {
24950 return this.traverseField;
24951 }
24952 set
24953 {
24954 this.traverseFieldSet = true;
24955 this.traverseField = value;
24956 }
24957 }
24958
24959 public YesNoType Append
24960 {
24961 get
24962 {
24963 return this.appendField;
24964 }
24965 set
24966 {
24967 this.appendFieldSet = true;
24968 this.appendField = value;
24969 }
24970 }
24971
24972 public YesNoType Execute
24973 {
24974 get
24975 {
24976 return this.executeField;
24977 }
24978 set
24979 {
24980 this.executeFieldSet = true;
24981 this.executeField = value;
24982 }
24983 }
24984
24985 /// <summary>
24986 /// Bit mask for FILE_ALL_ACCESS from WinNT.h (0x001F01FF).
24987 /// </summary>
24988 public YesNoType FileAllRights
24989 {
24990 get
24991 {
24992 return this.fileAllRightsField;
24993 }
24994 set
24995 {
24996 this.fileAllRightsFieldSet = true;
24997 this.fileAllRightsField = value;
24998 }
24999 }
25000
25001 public YesNoType Write
25002 {
25003 get
25004 {
25005 return this.writeField;
25006 }
25007 set
25008 {
25009 this.writeFieldSet = true;
25010 this.writeField = value;
25011 }
25012 }
25013
25014 public YesNoType CreateSubkeys
25015 {
25016 get
25017 {
25018 return this.createSubkeysField;
25019 }
25020 set
25021 {
25022 this.createSubkeysFieldSet = true;
25023 this.createSubkeysField = value;
25024 }
25025 }
25026
25027 public YesNoType EnumerateSubkeys
25028 {
25029 get
25030 {
25031 return this.enumerateSubkeysField;
25032 }
25033 set
25034 {
25035 this.enumerateSubkeysFieldSet = true;
25036 this.enumerateSubkeysField = value;
25037 }
25038 }
25039
25040 public YesNoType Notify
25041 {
25042 get
25043 {
25044 return this.notifyField;
25045 }
25046 set
25047 {
25048 this.notifyFieldSet = true;
25049 this.notifyField = value;
25050 }
25051 }
25052
25053 public YesNoType CreateLink
25054 {
25055 get
25056 {
25057 return this.createLinkField;
25058 }
25059 set
25060 {
25061 this.createLinkFieldSet = true;
25062 this.createLinkField = value;
25063 }
25064 }
25065
25066 public YesNoType GenericAll
25067 {
25068 get
25069 {
25070 return this.genericAllField;
25071 }
25072 set
25073 {
25074 this.genericAllFieldSet = true;
25075 this.genericAllField = value;
25076 }
25077 }
25078
25079 public YesNoType GenericExecute
25080 {
25081 get
25082 {
25083 return this.genericExecuteField;
25084 }
25085 set
25086 {
25087 this.genericExecuteFieldSet = true;
25088 this.genericExecuteField = value;
25089 }
25090 }
25091
25092 public YesNoType GenericWrite
25093 {
25094 get
25095 {
25096 return this.genericWriteField;
25097 }
25098 set
25099 {
25100 this.genericWriteFieldSet = true;
25101 this.genericWriteField = value;
25102 }
25103 }
25104
25105 /// <summary>
25106 /// specifying this will fail to grant read access
25107 /// </summary>
25108 public YesNoType GenericRead
25109 {
25110 get
25111 {
25112 return this.genericReadField;
25113 }
25114 set
25115 {
25116 this.genericReadFieldSet = true;
25117 this.genericReadField = value;
25118 }
25119 }
25120
25121 public virtual ISchemaElement ParentElement
25122 {
25123 get
25124 {
25125 return this.parentElement;
25126 }
25127 set
25128 {
25129 this.parentElement = value;
25130 }
25131 }
25132
25133 /// <summary>
25134 /// Processes this element and all child elements into an XmlWriter.
25135 /// </summary>
25136 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
25137 public virtual void OutputXml(XmlWriter writer)
25138 {
25139 if ((null == writer))
25140 {
25141 throw new ArgumentNullException("writer");
25142 }
25143 writer.WriteStartElement("Permission", "http://wixtoolset.org/schemas/v4/wxs");
25144 if (this.domainFieldSet)
25145 {
25146 writer.WriteAttributeString("Domain", this.domainField);
25147 }
25148 if (this.userFieldSet)
25149 {
25150 writer.WriteAttributeString("User", this.userField);
25151 }
25152 if (this.readFieldSet)
25153 {
25154 if ((this.readField == YesNoType.no))
25155 {
25156 writer.WriteAttributeString("Read", "no");
25157 }
25158 if ((this.readField == YesNoType.yes))
25159 {
25160 writer.WriteAttributeString("Read", "yes");
25161 }
25162 }
25163 if (this.deleteFieldSet)
25164 {
25165 if ((this.deleteField == YesNoType.no))
25166 {
25167 writer.WriteAttributeString("Delete", "no");
25168 }
25169 if ((this.deleteField == YesNoType.yes))
25170 {
25171 writer.WriteAttributeString("Delete", "yes");
25172 }
25173 }
25174 if (this.readPermissionFieldSet)
25175 {
25176 if ((this.readPermissionField == YesNoType.no))
25177 {
25178 writer.WriteAttributeString("ReadPermission", "no");
25179 }
25180 if ((this.readPermissionField == YesNoType.yes))
25181 {
25182 writer.WriteAttributeString("ReadPermission", "yes");
25183 }
25184 }
25185 if (this.changePermissionFieldSet)
25186 {
25187 if ((this.changePermissionField == YesNoType.no))
25188 {
25189 writer.WriteAttributeString("ChangePermission", "no");
25190 }
25191 if ((this.changePermissionField == YesNoType.yes))
25192 {
25193 writer.WriteAttributeString("ChangePermission", "yes");
25194 }
25195 }
25196 if (this.takeOwnershipFieldSet)
25197 {
25198 if ((this.takeOwnershipField == YesNoType.no))
25199 {
25200 writer.WriteAttributeString("TakeOwnership", "no");
25201 }
25202 if ((this.takeOwnershipField == YesNoType.yes))
25203 {
25204 writer.WriteAttributeString("TakeOwnership", "yes");
25205 }
25206 }
25207 if (this.specificRightsAllFieldSet)
25208 {
25209 if ((this.specificRightsAllField == YesNoType.no))
25210 {
25211 writer.WriteAttributeString("SpecificRightsAll", "no");
25212 }
25213 if ((this.specificRightsAllField == YesNoType.yes))
25214 {
25215 writer.WriteAttributeString("SpecificRightsAll", "yes");
25216 }
25217 }
25218 if (this.readAttributesFieldSet)
25219 {
25220 if ((this.readAttributesField == YesNoType.no))
25221 {
25222 writer.WriteAttributeString("ReadAttributes", "no");
25223 }
25224 if ((this.readAttributesField == YesNoType.yes))
25225 {
25226 writer.WriteAttributeString("ReadAttributes", "yes");
25227 }
25228 }
25229 if (this.writeAttributesFieldSet)
25230 {
25231 if ((this.writeAttributesField == YesNoType.no))
25232 {
25233 writer.WriteAttributeString("WriteAttributes", "no");
25234 }
25235 if ((this.writeAttributesField == YesNoType.yes))
25236 {
25237 writer.WriteAttributeString("WriteAttributes", "yes");
25238 }
25239 }
25240 if (this.readExtendedAttributesFieldSet)
25241 {
25242 if ((this.readExtendedAttributesField == YesNoType.no))
25243 {
25244 writer.WriteAttributeString("ReadExtendedAttributes", "no");
25245 }
25246 if ((this.readExtendedAttributesField == YesNoType.yes))
25247 {
25248 writer.WriteAttributeString("ReadExtendedAttributes", "yes");
25249 }
25250 }
25251 if (this.writeExtendedAttributesFieldSet)
25252 {
25253 if ((this.writeExtendedAttributesField == YesNoType.no))
25254 {
25255 writer.WriteAttributeString("WriteExtendedAttributes", "no");
25256 }
25257 if ((this.writeExtendedAttributesField == YesNoType.yes))
25258 {
25259 writer.WriteAttributeString("WriteExtendedAttributes", "yes");
25260 }
25261 }
25262 if (this.synchronizeFieldSet)
25263 {
25264 if ((this.synchronizeField == YesNoType.no))
25265 {
25266 writer.WriteAttributeString("Synchronize", "no");
25267 }
25268 if ((this.synchronizeField == YesNoType.yes))
25269 {
25270 writer.WriteAttributeString("Synchronize", "yes");
25271 }
25272 }
25273 if (this.createFileFieldSet)
25274 {
25275 if ((this.createFileField == YesNoType.no))
25276 {
25277 writer.WriteAttributeString("CreateFile", "no");
25278 }
25279 if ((this.createFileField == YesNoType.yes))
25280 {
25281 writer.WriteAttributeString("CreateFile", "yes");
25282 }
25283 }
25284 if (this.createChildFieldSet)
25285 {
25286 if ((this.createChildField == YesNoType.no))
25287 {
25288 writer.WriteAttributeString("CreateChild", "no");
25289 }
25290 if ((this.createChildField == YesNoType.yes))
25291 {
25292 writer.WriteAttributeString("CreateChild", "yes");
25293 }
25294 }
25295 if (this.deleteChildFieldSet)
25296 {
25297 if ((this.deleteChildField == YesNoType.no))
25298 {
25299 writer.WriteAttributeString("DeleteChild", "no");
25300 }
25301 if ((this.deleteChildField == YesNoType.yes))
25302 {
25303 writer.WriteAttributeString("DeleteChild", "yes");
25304 }
25305 }
25306 if (this.traverseFieldSet)
25307 {
25308 if ((this.traverseField == YesNoType.no))
25309 {
25310 writer.WriteAttributeString("Traverse", "no");
25311 }
25312 if ((this.traverseField == YesNoType.yes))
25313 {
25314 writer.WriteAttributeString("Traverse", "yes");
25315 }
25316 }
25317 if (this.appendFieldSet)
25318 {
25319 if ((this.appendField == YesNoType.no))
25320 {
25321 writer.WriteAttributeString("Append", "no");
25322 }
25323 if ((this.appendField == YesNoType.yes))
25324 {
25325 writer.WriteAttributeString("Append", "yes");
25326 }
25327 }
25328 if (this.executeFieldSet)
25329 {
25330 if ((this.executeField == YesNoType.no))
25331 {
25332 writer.WriteAttributeString("Execute", "no");
25333 }
25334 if ((this.executeField == YesNoType.yes))
25335 {
25336 writer.WriteAttributeString("Execute", "yes");
25337 }
25338 }
25339 if (this.fileAllRightsFieldSet)
25340 {
25341 if ((this.fileAllRightsField == YesNoType.no))
25342 {
25343 writer.WriteAttributeString("FileAllRights", "no");
25344 }
25345 if ((this.fileAllRightsField == YesNoType.yes))
25346 {
25347 writer.WriteAttributeString("FileAllRights", "yes");
25348 }
25349 }
25350 if (this.writeFieldSet)
25351 {
25352 if ((this.writeField == YesNoType.no))
25353 {
25354 writer.WriteAttributeString("Write", "no");
25355 }
25356 if ((this.writeField == YesNoType.yes))
25357 {
25358 writer.WriteAttributeString("Write", "yes");
25359 }
25360 }
25361 if (this.createSubkeysFieldSet)
25362 {
25363 if ((this.createSubkeysField == YesNoType.no))
25364 {
25365 writer.WriteAttributeString("CreateSubkeys", "no");
25366 }
25367 if ((this.createSubkeysField == YesNoType.yes))
25368 {
25369 writer.WriteAttributeString("CreateSubkeys", "yes");
25370 }
25371 }
25372 if (this.enumerateSubkeysFieldSet)
25373 {
25374 if ((this.enumerateSubkeysField == YesNoType.no))
25375 {
25376 writer.WriteAttributeString("EnumerateSubkeys", "no");
25377 }
25378 if ((this.enumerateSubkeysField == YesNoType.yes))
25379 {
25380 writer.WriteAttributeString("EnumerateSubkeys", "yes");
25381 }
25382 }
25383 if (this.notifyFieldSet)
25384 {
25385 if ((this.notifyField == YesNoType.no))
25386 {
25387 writer.WriteAttributeString("Notify", "no");
25388 }
25389 if ((this.notifyField == YesNoType.yes))
25390 {
25391 writer.WriteAttributeString("Notify", "yes");
25392 }
25393 }
25394 if (this.createLinkFieldSet)
25395 {
25396 if ((this.createLinkField == YesNoType.no))
25397 {
25398 writer.WriteAttributeString("CreateLink", "no");
25399 }
25400 if ((this.createLinkField == YesNoType.yes))
25401 {
25402 writer.WriteAttributeString("CreateLink", "yes");
25403 }
25404 }
25405 if (this.genericAllFieldSet)
25406 {
25407 if ((this.genericAllField == YesNoType.no))
25408 {
25409 writer.WriteAttributeString("GenericAll", "no");
25410 }
25411 if ((this.genericAllField == YesNoType.yes))
25412 {
25413 writer.WriteAttributeString("GenericAll", "yes");
25414 }
25415 }
25416 if (this.genericExecuteFieldSet)
25417 {
25418 if ((this.genericExecuteField == YesNoType.no))
25419 {
25420 writer.WriteAttributeString("GenericExecute", "no");
25421 }
25422 if ((this.genericExecuteField == YesNoType.yes))
25423 {
25424 writer.WriteAttributeString("GenericExecute", "yes");
25425 }
25426 }
25427 if (this.genericWriteFieldSet)
25428 {
25429 if ((this.genericWriteField == YesNoType.no))
25430 {
25431 writer.WriteAttributeString("GenericWrite", "no");
25432 }
25433 if ((this.genericWriteField == YesNoType.yes))
25434 {
25435 writer.WriteAttributeString("GenericWrite", "yes");
25436 }
25437 }
25438 if (this.genericReadFieldSet)
25439 {
25440 if ((this.genericReadField == YesNoType.no))
25441 {
25442 writer.WriteAttributeString("GenericRead", "no");
25443 }
25444 if ((this.genericReadField == YesNoType.yes))
25445 {
25446 writer.WriteAttributeString("GenericRead", "yes");
25447 }
25448 }
25449 writer.WriteEndElement();
25450 }
25451
25452 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
25453 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
25454 void ISetAttributes.SetAttribute(string name, string value)
25455 {
25456 if (String.IsNullOrEmpty(name))
25457 {
25458 throw new ArgumentNullException("name");
25459 }
25460 if (("Domain" == name))
25461 {
25462 this.domainField = value;
25463 this.domainFieldSet = true;
25464 }
25465 if (("User" == name))
25466 {
25467 this.userField = value;
25468 this.userFieldSet = true;
25469 }
25470 if (("Read" == name))
25471 {
25472 this.readField = Enums.ParseYesNoType(value);
25473 this.readFieldSet = true;
25474 }
25475 if (("Delete" == name))
25476 {
25477 this.deleteField = Enums.ParseYesNoType(value);
25478 this.deleteFieldSet = true;
25479 }
25480 if (("ReadPermission" == name))
25481 {
25482 this.readPermissionField = Enums.ParseYesNoType(value);
25483 this.readPermissionFieldSet = true;
25484 }
25485 if (("ChangePermission" == name))
25486 {
25487 this.changePermissionField = Enums.ParseYesNoType(value);
25488 this.changePermissionFieldSet = true;
25489 }
25490 if (("TakeOwnership" == name))
25491 {
25492 this.takeOwnershipField = Enums.ParseYesNoType(value);
25493 this.takeOwnershipFieldSet = true;
25494 }
25495 if (("SpecificRightsAll" == name))
25496 {
25497 this.specificRightsAllField = Enums.ParseYesNoType(value);
25498 this.specificRightsAllFieldSet = true;
25499 }
25500 if (("ReadAttributes" == name))
25501 {
25502 this.readAttributesField = Enums.ParseYesNoType(value);
25503 this.readAttributesFieldSet = true;
25504 }
25505 if (("WriteAttributes" == name))
25506 {
25507 this.writeAttributesField = Enums.ParseYesNoType(value);
25508 this.writeAttributesFieldSet = true;
25509 }
25510 if (("ReadExtendedAttributes" == name))
25511 {
25512 this.readExtendedAttributesField = Enums.ParseYesNoType(value);
25513 this.readExtendedAttributesFieldSet = true;
25514 }
25515 if (("WriteExtendedAttributes" == name))
25516 {
25517 this.writeExtendedAttributesField = Enums.ParseYesNoType(value);
25518 this.writeExtendedAttributesFieldSet = true;
25519 }
25520 if (("Synchronize" == name))
25521 {
25522 this.synchronizeField = Enums.ParseYesNoType(value);
25523 this.synchronizeFieldSet = true;
25524 }
25525 if (("CreateFile" == name))
25526 {
25527 this.createFileField = Enums.ParseYesNoType(value);
25528 this.createFileFieldSet = true;
25529 }
25530 if (("CreateChild" == name))
25531 {
25532 this.createChildField = Enums.ParseYesNoType(value);
25533 this.createChildFieldSet = true;
25534 }
25535 if (("DeleteChild" == name))
25536 {
25537 this.deleteChildField = Enums.ParseYesNoType(value);
25538 this.deleteChildFieldSet = true;
25539 }
25540 if (("Traverse" == name))
25541 {
25542 this.traverseField = Enums.ParseYesNoType(value);
25543 this.traverseFieldSet = true;
25544 }
25545 if (("Append" == name))
25546 {
25547 this.appendField = Enums.ParseYesNoType(value);
25548 this.appendFieldSet = true;
25549 }
25550 if (("Execute" == name))
25551 {
25552 this.executeField = Enums.ParseYesNoType(value);
25553 this.executeFieldSet = true;
25554 }
25555 if (("FileAllRights" == name))
25556 {
25557 this.fileAllRightsField = Enums.ParseYesNoType(value);
25558 this.fileAllRightsFieldSet = true;
25559 }
25560 if (("Write" == name))
25561 {
25562 this.writeField = Enums.ParseYesNoType(value);
25563 this.writeFieldSet = true;
25564 }
25565 if (("CreateSubkeys" == name))
25566 {
25567 this.createSubkeysField = Enums.ParseYesNoType(value);
25568 this.createSubkeysFieldSet = true;
25569 }
25570 if (("EnumerateSubkeys" == name))
25571 {
25572 this.enumerateSubkeysField = Enums.ParseYesNoType(value);
25573 this.enumerateSubkeysFieldSet = true;
25574 }
25575 if (("Notify" == name))
25576 {
25577 this.notifyField = Enums.ParseYesNoType(value);
25578 this.notifyFieldSet = true;
25579 }
25580 if (("CreateLink" == name))
25581 {
25582 this.createLinkField = Enums.ParseYesNoType(value);
25583 this.createLinkFieldSet = true;
25584 }
25585 if (("GenericAll" == name))
25586 {
25587 this.genericAllField = Enums.ParseYesNoType(value);
25588 this.genericAllFieldSet = true;
25589 }
25590 if (("GenericExecute" == name))
25591 {
25592 this.genericExecuteField = Enums.ParseYesNoType(value);
25593 this.genericExecuteFieldSet = true;
25594 }
25595 if (("GenericWrite" == name))
25596 {
25597 this.genericWriteField = Enums.ParseYesNoType(value);
25598 this.genericWriteFieldSet = true;
25599 }
25600 if (("GenericRead" == name))
25601 {
25602 this.genericReadField = Enums.ParseYesNoType(value);
25603 this.genericReadFieldSet = true;
25604 }
25605 }
25606 }
25607
25608 /// <summary>
25609 /// Sets ACLs on File, Registry, or CreateFolder. When under a Registry element, this cannot be used
25610 /// if the Action attribute's value is remove or removeKeyOnInstall. This element is only available
25611 /// when installing with MSI 5.0. For downlevel support, see the PermissionEx element from the
25612 /// WixUtilExtension.
25613 /// </summary>
25614 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
25615 public class PermissionEx : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
25616 {
25617
25618 private ElementCollection children;
25619
25620 private string idField;
25621
25622 private bool idFieldSet;
25623
25624 private string sddlField;
25625
25626 private bool sddlFieldSet;
25627
25628 private ISchemaElement parentElement;
25629
25630 public PermissionEx()
25631 {
25632 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
25633 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Condition)));
25634 this.children = childCollection0;
25635 }
25636
25637 public virtual IEnumerable Children
25638 {
25639 get
25640 {
25641 return this.children;
25642 }
25643 }
25644
25645 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
25646 public virtual IEnumerable this[System.Type childType]
25647 {
25648 get
25649 {
25650 return this.children.Filter(childType);
25651 }
25652 }
25653
25654 /// <summary>
25655 /// Primary key used to identify this particular entry. If this is not specified the parent element's Id attribute
25656 /// will be used instead.
25657 /// </summary>
25658 public string Id
25659 {
25660 get
25661 {
25662 return this.idField;
25663 }
25664 set
25665 {
25666 this.idFieldSet = true;
25667 this.idField = value;
25668 }
25669 }
25670
25671 /// <summary>
25672 /// Security descriptor to apply to parent object.
25673 /// </summary>
25674 public string Sddl
25675 {
25676 get
25677 {
25678 return this.sddlField;
25679 }
25680 set
25681 {
25682 this.sddlFieldSet = true;
25683 this.sddlField = value;
25684 }
25685 }
25686
25687 public virtual ISchemaElement ParentElement
25688 {
25689 get
25690 {
25691 return this.parentElement;
25692 }
25693 set
25694 {
25695 this.parentElement = value;
25696 }
25697 }
25698
25699 public virtual void AddChild(ISchemaElement child)
25700 {
25701 if ((null == child))
25702 {
25703 throw new ArgumentNullException("child");
25704 }
25705 this.children.AddElement(child);
25706 child.ParentElement = this;
25707 }
25708
25709 public virtual void RemoveChild(ISchemaElement child)
25710 {
25711 if ((null == child))
25712 {
25713 throw new ArgumentNullException("child");
25714 }
25715 this.children.RemoveElement(child);
25716 child.ParentElement = null;
25717 }
25718
25719 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
25720 ISchemaElement ICreateChildren.CreateChild(string childName)
25721 {
25722 if (String.IsNullOrEmpty(childName))
25723 {
25724 throw new ArgumentNullException("childName");
25725 }
25726 ISchemaElement childValue = null;
25727 if (("Condition" == childName))
25728 {
25729 childValue = new Condition();
25730 }
25731 if ((null == childValue))
25732 {
25733 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
25734 }
25735 return childValue;
25736 }
25737
25738 /// <summary>
25739 /// Processes this element and all child elements into an XmlWriter.
25740 /// </summary>
25741 public virtual void OutputXml(XmlWriter writer)
25742 {
25743 if ((null == writer))
25744 {
25745 throw new ArgumentNullException("writer");
25746 }
25747 writer.WriteStartElement("PermissionEx", "http://wixtoolset.org/schemas/v4/wxs");
25748 if (this.idFieldSet)
25749 {
25750 writer.WriteAttributeString("Id", this.idField);
25751 }
25752 if (this.sddlFieldSet)
25753 {
25754 writer.WriteAttributeString("Sddl", this.sddlField);
25755 }
25756 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
25757 {
25758 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
25759 childElement.OutputXml(writer);
25760 }
25761 writer.WriteEndElement();
25762 }
25763
25764 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
25765 void ISetAttributes.SetAttribute(string name, string value)
25766 {
25767 if (String.IsNullOrEmpty(name))
25768 {
25769 throw new ArgumentNullException("name");
25770 }
25771 if (("Id" == name))
25772 {
25773 this.idField = value;
25774 this.idFieldSet = true;
25775 }
25776 if (("Sddl" == name))
25777 {
25778 this.sddlField = value;
25779 this.sddlFieldSet = true;
25780 }
25781 }
25782 }
25783
25784 /// <summary>
25785 /// Copy or move an existing file on the target machine, or copy a file that is being installed, to another destination. When
25786 /// this element is nested under a File element, the parent file will be installed, then copied to the specified destination
25787 /// if the parent component of the file is selected for installation or removal. When this element is nested under
25788 /// a Component element and no FileId attribute is specified, the file to copy or move must already be on the target machine.
25789 /// When this element is nested under a Component element and the FileId attribute is specified, the specified file is installed,
25790 /// then copied to the specified destination if the parent component is selected for installation or removal (use
25791 /// this option to control the copy of a file in a different component by the parent component's installation state). If the
25792 /// specified destination directory is the same as the directory containing the original file and the name for the proposed source
25793 /// file is the same as the original, then no action takes place.
25794 /// </summary>
25795 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
25796 public class CopyFile : ISchemaElement, ISetAttributes
25797 {
25798
25799 private string idField;
25800
25801 private bool idFieldSet;
25802
25803 private string fileIdField;
25804
25805 private bool fileIdFieldSet;
25806
25807 private string sourceDirectoryField;
25808
25809 private bool sourceDirectoryFieldSet;
25810
25811 private string sourcePropertyField;
25812
25813 private bool sourcePropertyFieldSet;
25814
25815 private string sourceNameField;
25816
25817 private bool sourceNameFieldSet;
25818
25819 private string destinationDirectoryField;
25820
25821 private bool destinationDirectoryFieldSet;
25822
25823 private string destinationPropertyField;
25824
25825 private bool destinationPropertyFieldSet;
25826
25827 private string destinationNameField;
25828
25829 private bool destinationNameFieldSet;
25830
25831 private string destinationShortNameField;
25832
25833 private bool destinationShortNameFieldSet;
25834
25835 private YesNoType deleteField;
25836
25837 private bool deleteFieldSet;
25838
25839 private ISchemaElement parentElement;
25840
25841 /// <summary>
25842 /// Primary key used to identify this particular entry.
25843 /// </summary>
25844 public string Id
25845 {
25846 get
25847 {
25848 return this.idField;
25849 }
25850 set
25851 {
25852 this.idFieldSet = true;
25853 this.idField = value;
25854 }
25855 }
25856
25857 /// <summary>
25858 /// This attribute cannot be specified if the element is nested under a File element. Set this attribute's value to the identifier
25859 /// of a file from a different component to copy it based on the install state of the parent component.
25860 /// </summary>
25861 public string FileId
25862 {
25863 get
25864 {
25865 return this.fileIdField;
25866 }
25867 set
25868 {
25869 this.fileIdFieldSet = true;
25870 this.fileIdField = value;
25871 }
25872 }
25873
25874 /// <summary>
25875 /// This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set
25876 /// this value to the source directory from which to copy or move an existing file on the target machine. This Directory must
25877 /// exist in the installer database at creation time. This attribute cannot be specified in conjunction with SourceProperty.
25878 /// </summary>
25879 public string SourceDirectory
25880 {
25881 get
25882 {
25883 return this.sourceDirectoryField;
25884 }
25885 set
25886 {
25887 this.sourceDirectoryFieldSet = true;
25888 this.sourceDirectoryField = value;
25889 }
25890 }
25891
25892 /// <summary>
25893 /// This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set
25894 /// this value to a property that will have a value that resolves to the full path of the source directory (or full path
25895 /// including file name if SourceName is not specified). The property does not have to exist in the installer database at
25896 /// creation time; it could be created at installation time by a custom action, on the command line, etc. This attribute
25897 /// cannot be specified in conjunction with SourceDirectory.
25898 /// </summary>
25899 public string SourceProperty
25900 {
25901 get
25902 {
25903 return this.sourcePropertyField;
25904 }
25905 set
25906 {
25907 this.sourcePropertyFieldSet = true;
25908 this.sourcePropertyField = value;
25909 }
25910 }
25911
25912 /// <summary>
25913 /// This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set
25914 /// this value to the localizable name of the file(s) to be copied or moved. All of the files that
25915 /// match the wild card will be removed from the specified directory. The value is a filename that may also
25916 /// contain the wild card characters "?" for any single character or "*" for zero or more occurrences of any character. If this
25917 /// attribute is not specified (and this element is not nested under a File element or specify a FileId attribute) then the
25918 /// SourceProperty attribute should be set to the name of a property that will resolve to the full path of the source filename.
25919 /// If the value of this attribute contains a "*" wildcard and the DestinationName attribute is specified, all moved or copied
25920 /// files retain the file names from their sources.
25921 /// </summary>
25922 public string SourceName
25923 {
25924 get
25925 {
25926 return this.sourceNameField;
25927 }
25928 set
25929 {
25930 this.sourceNameFieldSet = true;
25931 this.sourceNameField = value;
25932 }
25933 }
25934
25935 /// <summary>
25936 /// Set this value to the destination directory where an existing file on the target machine should be moved or copied to. This
25937 /// Directory must exist in the installer database at creation time. This attribute cannot be specified in conjunction with
25938 /// DestinationProperty.
25939 /// </summary>
25940 public string DestinationDirectory
25941 {
25942 get
25943 {
25944 return this.destinationDirectoryField;
25945 }
25946 set
25947 {
25948 this.destinationDirectoryFieldSet = true;
25949 this.destinationDirectoryField = value;
25950 }
25951 }
25952
25953 /// <summary>
25954 /// Set this value to a property that will have a value that resolves to the full path of the destination directory. The property
25955 /// does not have to exist in the installer database at creation time; it could be created at installation time by a custom
25956 /// action, on the command line, etc. This attribute cannot be specified in conjunction with DestinationDirectory.
25957 /// </summary>
25958 public string DestinationProperty
25959 {
25960 get
25961 {
25962 return this.destinationPropertyField;
25963 }
25964 set
25965 {
25966 this.destinationPropertyFieldSet = true;
25967 this.destinationPropertyField = value;
25968 }
25969 }
25970
25971 /// <summary>
25972 /// In prior versions of the WiX toolset, this attribute specified the short file name.
25973 /// Now set this value to the localizable name to be given to the original file after it is moved or copied.
25974 /// If this attribute is not specified, then the destination file is given the same name as the source file.
25975 /// If a short file name is specified, the DestinationShortName attribute may not be specified.
25976 /// Also, if this value is a long file name, the DestinationShortName attribute may be omitted to
25977 /// allow WiX to attempt to generate a unique short file name.
25978 /// However, if this name collides with another file or you wish to manually specify
25979 /// the short file name, then the DestinationShortName attribute may be specified.
25980 /// </summary>
25981 public string DestinationName
25982 {
25983 get
25984 {
25985 return this.destinationNameField;
25986 }
25987 set
25988 {
25989 this.destinationNameFieldSet = true;
25990 this.destinationNameField = value;
25991 }
25992 }
25993
25994 /// <summary>
25995 /// The short file name of the file in 8.3 format.
25996 /// This attribute should only be set if there is a conflict between generated short file names
25997 /// or you wish to manually specify the short file name.
25998 /// </summary>
25999 public string DestinationShortName
26000 {
26001 get
26002 {
26003 return this.destinationShortNameField;
26004 }
26005 set
26006 {
26007 this.destinationShortNameFieldSet = true;
26008 this.destinationShortNameField = value;
26009 }
26010 }
26011
26012 /// <summary>
26013 /// This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. In other
26014 /// cases, if the attribute is not specified, the default value is "no" and the file is copied, not moved. Set the value to "yes"
26015 /// in order to move the file (thus deleting the source file) instead of copying it.
26016 /// </summary>
26017 public YesNoType Delete
26018 {
26019 get
26020 {
26021 return this.deleteField;
26022 }
26023 set
26024 {
26025 this.deleteFieldSet = true;
26026 this.deleteField = value;
26027 }
26028 }
26029
26030 public virtual ISchemaElement ParentElement
26031 {
26032 get
26033 {
26034 return this.parentElement;
26035 }
26036 set
26037 {
26038 this.parentElement = value;
26039 }
26040 }
26041
26042 /// <summary>
26043 /// Processes this element and all child elements into an XmlWriter.
26044 /// </summary>
26045 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
26046 public virtual void OutputXml(XmlWriter writer)
26047 {
26048 if ((null == writer))
26049 {
26050 throw new ArgumentNullException("writer");
26051 }
26052 writer.WriteStartElement("CopyFile", "http://wixtoolset.org/schemas/v4/wxs");
26053 if (this.idFieldSet)
26054 {
26055 writer.WriteAttributeString("Id", this.idField);
26056 }
26057 if (this.fileIdFieldSet)
26058 {
26059 writer.WriteAttributeString("FileId", this.fileIdField);
26060 }
26061 if (this.sourceDirectoryFieldSet)
26062 {
26063 writer.WriteAttributeString("SourceDirectory", this.sourceDirectoryField);
26064 }
26065 if (this.sourcePropertyFieldSet)
26066 {
26067 writer.WriteAttributeString("SourceProperty", this.sourcePropertyField);
26068 }
26069 if (this.sourceNameFieldSet)
26070 {
26071 writer.WriteAttributeString("SourceName", this.sourceNameField);
26072 }
26073 if (this.destinationDirectoryFieldSet)
26074 {
26075 writer.WriteAttributeString("DestinationDirectory", this.destinationDirectoryField);
26076 }
26077 if (this.destinationPropertyFieldSet)
26078 {
26079 writer.WriteAttributeString("DestinationProperty", this.destinationPropertyField);
26080 }
26081 if (this.destinationNameFieldSet)
26082 {
26083 writer.WriteAttributeString("DestinationName", this.destinationNameField);
26084 }
26085 if (this.destinationShortNameFieldSet)
26086 {
26087 writer.WriteAttributeString("DestinationShortName", this.destinationShortNameField);
26088 }
26089 if (this.deleteFieldSet)
26090 {
26091 if ((this.deleteField == YesNoType.no))
26092 {
26093 writer.WriteAttributeString("Delete", "no");
26094 }
26095 if ((this.deleteField == YesNoType.yes))
26096 {
26097 writer.WriteAttributeString("Delete", "yes");
26098 }
26099 }
26100 writer.WriteEndElement();
26101 }
26102
26103 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
26104 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
26105 void ISetAttributes.SetAttribute(string name, string value)
26106 {
26107 if (String.IsNullOrEmpty(name))
26108 {
26109 throw new ArgumentNullException("name");
26110 }
26111 if (("Id" == name))
26112 {
26113 this.idField = value;
26114 this.idFieldSet = true;
26115 }
26116 if (("FileId" == name))
26117 {
26118 this.fileIdField = value;
26119 this.fileIdFieldSet = true;
26120 }
26121 if (("SourceDirectory" == name))
26122 {
26123 this.sourceDirectoryField = value;
26124 this.sourceDirectoryFieldSet = true;
26125 }
26126 if (("SourceProperty" == name))
26127 {
26128 this.sourcePropertyField = value;
26129 this.sourcePropertyFieldSet = true;
26130 }
26131 if (("SourceName" == name))
26132 {
26133 this.sourceNameField = value;
26134 this.sourceNameFieldSet = true;
26135 }
26136 if (("DestinationDirectory" == name))
26137 {
26138 this.destinationDirectoryField = value;
26139 this.destinationDirectoryFieldSet = true;
26140 }
26141 if (("DestinationProperty" == name))
26142 {
26143 this.destinationPropertyField = value;
26144 this.destinationPropertyFieldSet = true;
26145 }
26146 if (("DestinationName" == name))
26147 {
26148 this.destinationNameField = value;
26149 this.destinationNameFieldSet = true;
26150 }
26151 if (("DestinationShortName" == name))
26152 {
26153 this.destinationShortNameField = value;
26154 this.destinationShortNameFieldSet = true;
26155 }
26156 if (("Delete" == name))
26157 {
26158 this.deleteField = Enums.ParseYesNoType(value);
26159 this.deleteFieldSet = true;
26160 }
26161 }
26162 }
26163
26164 /// <summary>
26165 /// File specification for File table, must be child node of Component.
26166 /// </summary>
26167 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
26168 public class File : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
26169 {
26170
26171 private ElementCollection children;
26172
26173 private string idField;
26174
26175 private bool idFieldSet;
26176
26177 private string companionFileField;
26178
26179 private bool companionFileFieldSet;
26180
26181 private string nameField;
26182
26183 private bool nameFieldSet;
26184
26185 private YesNoType keyPathField;
26186
26187 private bool keyPathFieldSet;
26188
26189 private string shortNameField;
26190
26191 private bool shortNameFieldSet;
26192
26193 private YesNoType readOnlyField;
26194
26195 private bool readOnlyFieldSet;
26196
26197 private YesNoType hiddenField;
26198
26199 private bool hiddenFieldSet;
26200
26201 private YesNoType systemField;
26202
26203 private bool systemFieldSet;
26204
26205 private YesNoType vitalField;
26206
26207 private bool vitalFieldSet;
26208
26209 private YesNoType checksumField;
26210
26211 private bool checksumFieldSet;
26212
26213 private YesNoDefaultType compressedField;
26214
26215 private bool compressedFieldSet;
26216
26217 private string bindPathField;
26218
26219 private bool bindPathFieldSet;
26220
26221 private int selfRegCostField;
26222
26223 private bool selfRegCostFieldSet;
26224
26225 private YesNoType trueTypeField;
26226
26227 private bool trueTypeFieldSet;
26228
26229 private string fontTitleField;
26230
26231 private bool fontTitleFieldSet;
26232
26233 private string defaultLanguageField;
26234
26235 private bool defaultLanguageFieldSet;
26236
26237 private int defaultSizeField;
26238
26239 private bool defaultSizeFieldSet;
26240
26241 private string defaultVersionField;
26242
26243 private bool defaultVersionFieldSet;
26244
26245 private AssemblyType assemblyField;
26246
26247 private bool assemblyFieldSet;
26248
26249 private string assemblyManifestField;
26250
26251 private bool assemblyManifestFieldSet;
26252
26253 private string assemblyApplicationField;
26254
26255 private bool assemblyApplicationFieldSet;
26256
26257 private ProcessorArchitectureType processorArchitectureField;
26258
26259 private bool processorArchitectureFieldSet;
26260
26261 private string diskIdField;
26262
26263 private bool diskIdFieldSet;
26264
26265 private string sourceField;
26266
26267 private bool sourceFieldSet;
26268
26269 private string srcField;
26270
26271 private bool srcFieldSet;
26272
26273 private int patchGroupField;
26274
26275 private bool patchGroupFieldSet;
26276
26277 private YesNoType patchIgnoreField;
26278
26279 private bool patchIgnoreFieldSet;
26280
26281 private YesNoType patchAllowIgnoreOnErrorField;
26282
26283 private bool patchAllowIgnoreOnErrorFieldSet;
26284
26285 private YesNoType patchWholeFileField;
26286
26287 private bool patchWholeFileFieldSet;
26288
26289 private ISchemaElement parentElement;
26290
26291 public File()
26292 {
26293 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
26294 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AssemblyName)));
26295 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Permission)));
26296 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx)));
26297 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CopyFile)));
26298 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Shortcut)));
26299 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ODBCDriver)));
26300 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ODBCTranslator)));
26301 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath)));
26302 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Class)));
26303 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppId)));
26304 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(TypeLib)));
26305 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
26306 this.children = childCollection0;
26307 }
26308
26309 public virtual IEnumerable Children
26310 {
26311 get
26312 {
26313 return this.children;
26314 }
26315 }
26316
26317 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
26318 public virtual IEnumerable this[System.Type childType]
26319 {
26320 get
26321 {
26322 return this.children.Filter(childType);
26323 }
26324 }
26325
26326 /// <summary>
26327 /// 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].
26328 /// </summary>
26329 public string Id
26330 {
26331 get
26332 {
26333 return this.idField;
26334 }
26335 set
26336 {
26337 this.idFieldSet = true;
26338 this.idField = value;
26339 }
26340 }
26341
26342 /// <summary>
26343 /// Set this attribute to make this file a companion child of another file. The installation
26344 /// state of a companion file depends not on its own file versioning information, but on the versioning of its
26345 /// companion parent. A file that is the key path for its component can not be a companion file (that means
26346 /// this attribute cannot be set if KeyPath="yes" for this file). The Version attribute cannot be set along
26347 /// with this attribute since companion files are not installed based on their own version.
26348 /// </summary>
26349 public string CompanionFile
26350 {
26351 get
26352 {
26353 return this.companionFileField;
26354 }
26355 set
26356 {
26357 this.companionFileFieldSet = true;
26358 this.companionFileField = value;
26359 }
26360 }
26361
26362 /// <summary>
26363 /// In prior versions of the WiX toolset, this attribute specified the short file name.
26364 /// This attribute's value may now be either a short or long file name.
26365 /// If a short file name is specified, the ShortName attribute may not be specified.
26366 /// Also, if this value is a long file name, the ShortName attribute may be omitted to
26367 /// allow WiX to attempt to generate a unique short file name.
26368 /// However, if this name collides with another file or you wish to manually specify
26369 /// the short file name, then the ShortName attribute may be specified.
26370 /// Finally, if this attribute is omitted then its default value is the file name portion
26371 /// of the Source attribute, if one is specified, or the value of the Id attribute, if
26372 /// the Source attribute is omitted or doesn't contain a file name.
26373 /// </summary>
26374 public string Name
26375 {
26376 get
26377 {
26378 return this.nameField;
26379 }
26380 set
26381 {
26382 this.nameFieldSet = true;
26383 this.nameField = value;
26384 }
26385 }
26386
26387 /// <summary>
26388 /// Set to yes in order to force this file to be the key path for the parent component.
26389 /// </summary>
26390 public YesNoType KeyPath
26391 {
26392 get
26393 {
26394 return this.keyPathField;
26395 }
26396 set
26397 {
26398 this.keyPathFieldSet = true;
26399 this.keyPathField = value;
26400 }
26401 }
26402
26403 /// <summary>
26404 /// The short file name of the file in 8.3 format.
26405 /// This attribute should only be set if there is a conflict between generated short file names
26406 /// or the user wants to manually specify the short file name.
26407 /// </summary>
26408 public string ShortName
26409 {
26410 get
26411 {
26412 return this.shortNameField;
26413 }
26414 set
26415 {
26416 this.shortNameFieldSet = true;
26417 this.shortNameField = value;
26418 }
26419 }
26420
26421 /// <summary>
26422 /// Set to yes in order to have the file's read-only attribute set when it is installed on the target machine.
26423 /// </summary>
26424 public YesNoType ReadOnly
26425 {
26426 get
26427 {
26428 return this.readOnlyField;
26429 }
26430 set
26431 {
26432 this.readOnlyFieldSet = true;
26433 this.readOnlyField = value;
26434 }
26435 }
26436
26437 /// <summary>
26438 /// Set to yes in order to have the file's hidden attribute set when it is installed on the target machine.
26439 /// </summary>
26440 public YesNoType Hidden
26441 {
26442 get
26443 {
26444 return this.hiddenField;
26445 }
26446 set
26447 {
26448 this.hiddenFieldSet = true;
26449 this.hiddenField = value;
26450 }
26451 }
26452
26453 /// <summary>
26454 /// Set to yes in order to have the file's system attribute set when it is installed on the target machine.
26455 /// </summary>
26456 public YesNoType System
26457 {
26458 get
26459 {
26460 return this.systemField;
26461 }
26462 set
26463 {
26464 this.systemFieldSet = true;
26465 this.systemField = value;
26466 }
26467 }
26468
26469 /// <summary>
26470 /// 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.
26471 /// </summary>
26472 public YesNoType Vital
26473 {
26474 get
26475 {
26476 return this.vitalField;
26477 }
26478 set
26479 {
26480 this.vitalFieldSet = true;
26481 this.vitalField = value;
26482 }
26483 }
26484
26485 /// <summary>
26486 /// 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.
26487 /// </summary>
26488 public YesNoType Checksum
26489 {
26490 get
26491 {
26492 return this.checksumField;
26493 }
26494 set
26495 {
26496 this.checksumFieldSet = true;
26497 this.checksumField = value;
26498 }
26499 }
26500
26501 /// <summary>
26502 /// Sets the file's source type compression. A setting of "yes" or "no" will override the setting in the Word Count Summary Property.
26503 /// </summary>
26504 public YesNoDefaultType Compressed
26505 {
26506 get
26507 {
26508 return this.compressedField;
26509 }
26510 set
26511 {
26512 this.compressedFieldSet = true;
26513 this.compressedField = value;
26514 }
26515 }
26516
26517 /// <summary>
26518 /// 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.
26519 /// </summary>
26520 public string BindPath
26521 {
26522 get
26523 {
26524 return this.bindPathField;
26525 }
26526 set
26527 {
26528 this.bindPathFieldSet = true;
26529 this.bindPathField = value;
26530 }
26531 }
26532
26533 /// <summary>
26534 /// 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.
26535 /// </summary>
26536 public int SelfRegCost
26537 {
26538 get
26539 {
26540 return this.selfRegCostField;
26541 }
26542 set
26543 {
26544 this.selfRegCostFieldSet = true;
26545 this.selfRegCostField = value;
26546 }
26547 }
26548
26549 /// <summary>
26550 /// 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.
26551 /// </summary>
26552 public YesNoType TrueType
26553 {
26554 get
26555 {
26556 return this.trueTypeField;
26557 }
26558 set
26559 {
26560 this.trueTypeFieldSet = true;
26561 this.trueTypeField = value;
26562 }
26563 }
26564
26565 /// <summary>
26566 /// 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.
26567 /// </summary>
26568 public string FontTitle
26569 {
26570 get
26571 {
26572 return this.fontTitleField;
26573 }
26574 set
26575 {
26576 this.fontTitleFieldSet = true;
26577 this.fontTitleField = value;
26578 }
26579 }
26580
26581 /// <summary>
26582 /// 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.
26583 /// </summary>
26584 public string DefaultLanguage
26585 {
26586 get
26587 {
26588 return this.defaultLanguageField;
26589 }
26590 set
26591 {
26592 this.defaultLanguageFieldSet = true;
26593 this.defaultLanguageField = value;
26594 }
26595 }
26596
26597 /// <summary>
26598 /// 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.
26599 /// </summary>
26600 public int DefaultSize
26601 {
26602 get
26603 {
26604 return this.defaultSizeField;
26605 }
26606 set
26607 {
26608 this.defaultSizeFieldSet = true;
26609 this.defaultSizeField = value;
26610 }
26611 }
26612
26613 /// <summary>
26614 /// 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.
26615 /// </summary>
26616 public string DefaultVersion
26617 {
26618 get
26619 {
26620 return this.defaultVersionField;
26621 }
26622 set
26623 {
26624 this.defaultVersionFieldSet = true;
26625 this.defaultVersionField = value;
26626 }
26627 }
26628
26629 /// <summary>
26630 /// Specifies if this File is a Win32 Assembly or .NET Assembly that needs to be installed into the
26631 /// Global Assembly Cache (GAC). If the value is '.net' or 'win32', this file must also be the key path of the Component.
26632 /// </summary>
26633 public AssemblyType Assembly
26634 {
26635 get
26636 {
26637 return this.assemblyField;
26638 }
26639 set
26640 {
26641 this.assemblyFieldSet = true;
26642 this.assemblyField = value;
26643 }
26644 }
26645
26646 /// <summary>
26647 /// Specifies the file identifier of the manifest file that describes this assembly.
26648 /// The manifest file should be in the same component as the assembly it describes.
26649 /// This attribute may only be specified if the Assembly attribute is set to '.net' or 'win32'.
26650 /// </summary>
26651 public string AssemblyManifest
26652 {
26653 get
26654 {
26655 return this.assemblyManifestField;
26656 }
26657 set
26658 {
26659 this.assemblyManifestFieldSet = true;
26660 this.assemblyManifestField = value;
26661 }
26662 }
26663
26664 /// <summary>
26665 /// Specifies the file identifier of the application file. This assembly will be isolated
26666 /// to the same directory as the application file.
26667 /// If this attribute is absent, the assembly will be installed to the Global Assembly Cache (GAC).
26668 /// This attribute may only be specified if the Assembly attribute is set to '.net' or 'win32'.
26669 /// </summary>
26670 public string AssemblyApplication
26671 {
26672 get
26673 {
26674 return this.assemblyApplicationField;
26675 }
26676 set
26677 {
26678 this.assemblyApplicationFieldSet = true;
26679 this.assemblyApplicationField = value;
26680 }
26681 }
26682
26683 /// <summary>
26684 /// Specifies the architecture for this assembly. This attribute should only be used on .NET Framework 2.0 or higher assemblies.
26685 /// </summary>
26686 public ProcessorArchitectureType ProcessorArchitecture
26687 {
26688 get
26689 {
26690 return this.processorArchitectureField;
26691 }
26692 set
26693 {
26694 this.processorArchitectureFieldSet = true;
26695 this.processorArchitectureField = value;
26696 }
26697 }
26698
26699 /// <summary>
26700 /// The value of this attribute should correspond to the Id attribute of a Media
26701 /// element authored elsewhere. By creating this connection between a file and
26702 /// its media, you set the packaging options to the values specified in the Media
26703 /// element (values such as compression level, cab embedding, etc...). Specifying
26704 /// the DiskId attribute on the File element overrides the default DiskId attribute
26705 /// from the parent Component element. If no DiskId attribute is specified,
26706 /// the default is "1". This DiskId attribute is ignored when creating a merge module
26707 /// because merge modules do not have media.
26708 /// </summary>
26709 public string DiskId
26710 {
26711 get
26712 {
26713 return this.diskIdField;
26714 }
26715 set
26716 {
26717 this.diskIdFieldSet = true;
26718 this.diskIdField = value;
26719 }
26720 }
26721
26722 /// <summary>
26723 /// 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
26724 /// </summary>
26725 public string Source
26726 {
26727 get
26728 {
26729 return this.sourceField;
26730 }
26731 set
26732 {
26733 this.sourceFieldSet = true;
26734 this.sourceField = value;
26735 }
26736 }
26737
26738 [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
26739 public string src
26740 {
26741 get
26742 {
26743 return this.srcField;
26744 }
26745 set
26746 {
26747 this.srcFieldSet = true;
26748 this.srcField = value;
26749 }
26750 }
26751
26752 /// <summary>
26753 /// This attribute must be set for patch-added files. Each patch should be assigned a different patch group number. Patch groups
26754 /// numbers must be greater 0 and should be assigned consecutively. For example, the first patch should use PatchGroup='1', the
26755 /// second patch will have PatchGroup='2', etc...
26756 /// </summary>
26757 public int PatchGroup
26758 {
26759 get
26760 {
26761 return this.patchGroupField;
26762 }
26763 set
26764 {
26765 this.patchGroupFieldSet = true;
26766 this.patchGroupField = value;
26767 }
26768 }
26769
26770 /// <summary>
26771 /// Prevents the updating of the file that is in fact changed in the upgraded image relative to the target images.
26772 /// </summary>
26773 public YesNoType PatchIgnore
26774 {
26775 get
26776 {
26777 return this.patchIgnoreField;
26778 }
26779 set
26780 {
26781 this.patchIgnoreFieldSet = true;
26782 this.patchIgnoreField = value;
26783 }
26784 }
26785
26786 /// <summary>
26787 /// Set to indicate that the patch is non-vital.
26788 /// </summary>
26789 public YesNoType PatchAllowIgnoreOnError
26790 {
26791 get
26792 {
26793 return this.patchAllowIgnoreOnErrorField;
26794 }
26795 set
26796 {
26797 this.patchAllowIgnoreOnErrorFieldSet = true;
26798 this.patchAllowIgnoreOnErrorField = value;
26799 }
26800 }
26801
26802 /// <summary>
26803 /// Set if the entire file should be installed rather than creating a binary patch.
26804 /// </summary>
26805 public YesNoType PatchWholeFile
26806 {
26807 get
26808 {
26809 return this.patchWholeFileField;
26810 }
26811 set
26812 {
26813 this.patchWholeFileFieldSet = true;
26814 this.patchWholeFileField = value;
26815 }
26816 }
26817
26818 public virtual ISchemaElement ParentElement
26819 {
26820 get
26821 {
26822 return this.parentElement;
26823 }
26824 set
26825 {
26826 this.parentElement = value;
26827 }
26828 }
26829
26830 public virtual void AddChild(ISchemaElement child)
26831 {
26832 if ((null == child))
26833 {
26834 throw new ArgumentNullException("child");
26835 }
26836 this.children.AddElement(child);
26837 child.ParentElement = this;
26838 }
26839
26840 public virtual void RemoveChild(ISchemaElement child)
26841 {
26842 if ((null == child))
26843 {
26844 throw new ArgumentNullException("child");
26845 }
26846 this.children.RemoveElement(child);
26847 child.ParentElement = null;
26848 }
26849
26850 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
26851 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
26852 ISchemaElement ICreateChildren.CreateChild(string childName)
26853 {
26854 if (String.IsNullOrEmpty(childName))
26855 {
26856 throw new ArgumentNullException("childName");
26857 }
26858 ISchemaElement childValue = null;
26859 if (("AssemblyName" == childName))
26860 {
26861 childValue = new AssemblyName();
26862 }
26863 if (("Permission" == childName))
26864 {
26865 childValue = new Permission();
26866 }
26867 if (("PermissionEx" == childName))
26868 {
26869 childValue = new PermissionEx();
26870 }
26871 if (("CopyFile" == childName))
26872 {
26873 childValue = new CopyFile();
26874 }
26875 if (("Shortcut" == childName))
26876 {
26877 childValue = new Shortcut();
26878 }
26879 if (("ODBCDriver" == childName))
26880 {
26881 childValue = new ODBCDriver();
26882 }
26883 if (("ODBCTranslator" == childName))
26884 {
26885 childValue = new ODBCTranslator();
26886 }
26887 if (("SymbolPath" == childName))
26888 {
26889 childValue = new SymbolPath();
26890 }
26891 if (("Class" == childName))
26892 {
26893 childValue = new Class();
26894 }
26895 if (("AppId" == childName))
26896 {
26897 childValue = new AppId();
26898 }
26899 if (("TypeLib" == childName))
26900 {
26901 childValue = new TypeLib();
26902 }
26903 if ((null == childValue))
26904 {
26905 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
26906 }
26907 return childValue;
26908 }
26909
26910 /// <summary>
26911 /// Parses a AssemblyType from a string.
26912 /// </summary>
26913 public static AssemblyType ParseAssemblyType(string value)
26914 {
26915 AssemblyType parsedValue;
26916 File.TryParseAssemblyType(value, out parsedValue);
26917 return parsedValue;
26918 }
26919
26920 /// <summary>
26921 /// Tries to parse a AssemblyType from a string.
26922 /// </summary>
26923 public static bool TryParseAssemblyType(string value, out AssemblyType parsedValue)
26924 {
26925 parsedValue = AssemblyType.NotSet;
26926 if (string.IsNullOrEmpty(value))
26927 {
26928 return false;
26929 }
26930 if ((".net" == value))
26931 {
26932 parsedValue = AssemblyType.net;
26933 }
26934 else
26935 {
26936 if (("no" == value))
26937 {
26938 parsedValue = AssemblyType.no;
26939 }
26940 else
26941 {
26942 if (("win32" == value))
26943 {
26944 parsedValue = AssemblyType.win32;
26945 }
26946 else
26947 {
26948 parsedValue = AssemblyType.IllegalValue;
26949 return false;
26950 }
26951 }
26952 }
26953 return true;
26954 }
26955
26956 /// <summary>
26957 /// Parses a ProcessorArchitectureType from a string.
26958 /// </summary>
26959 public static ProcessorArchitectureType ParseProcessorArchitectureType(string value)
26960 {
26961 ProcessorArchitectureType parsedValue;
26962 File.TryParseProcessorArchitectureType(value, out parsedValue);
26963 return parsedValue;
26964 }
26965
26966 /// <summary>
26967 /// Tries to parse a ProcessorArchitectureType from a string.
26968 /// </summary>
26969 public static bool TryParseProcessorArchitectureType(string value, out ProcessorArchitectureType parsedValue)
26970 {
26971 parsedValue = ProcessorArchitectureType.NotSet;
26972 if (string.IsNullOrEmpty(value))
26973 {
26974 return false;
26975 }
26976 if (("msil" == value))
26977 {
26978 parsedValue = ProcessorArchitectureType.msil;
26979 }
26980 else
26981 {
26982 if (("x86" == value))
26983 {
26984 parsedValue = ProcessorArchitectureType.x86;
26985 }
26986 else
26987 {
26988 if (("x64" == value))
26989 {
26990 parsedValue = ProcessorArchitectureType.x64;
26991 }
26992 else
26993 {
26994 if (("ia64" == value))
26995 {
26996 parsedValue = ProcessorArchitectureType.ia64;
26997 }
26998 else
26999 {
27000 parsedValue = ProcessorArchitectureType.IllegalValue;
27001 return false;
27002 }
27003 }
27004 }
27005 }
27006 return true;
27007 }
27008
27009 /// <summary>
27010 /// Processes this element and all child elements into an XmlWriter.
27011 /// </summary>
27012 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
27013 public virtual void OutputXml(XmlWriter writer)
27014 {
27015 if ((null == writer))
27016 {
27017 throw new ArgumentNullException("writer");
27018 }
27019 writer.WriteStartElement("File", "http://wixtoolset.org/schemas/v4/wxs");
27020 if (this.idFieldSet)
27021 {
27022 writer.WriteAttributeString("Id", this.idField);
27023 }
27024 if (this.companionFileFieldSet)
27025 {
27026 writer.WriteAttributeString("CompanionFile", this.companionFileField);
27027 }
27028 if (this.nameFieldSet)
27029 {
27030 writer.WriteAttributeString("Name", this.nameField);
27031 }
27032 if (this.keyPathFieldSet)
27033 {
27034 if ((this.keyPathField == YesNoType.no))
27035 {
27036 writer.WriteAttributeString("KeyPath", "no");
27037 }
27038 if ((this.keyPathField == YesNoType.yes))
27039 {
27040 writer.WriteAttributeString("KeyPath", "yes");
27041 }
27042 }
27043 if (this.shortNameFieldSet)
27044 {
27045 writer.WriteAttributeString("ShortName", this.shortNameField);
27046 }
27047 if (this.readOnlyFieldSet)
27048 {
27049 if ((this.readOnlyField == YesNoType.no))
27050 {
27051 writer.WriteAttributeString("ReadOnly", "no");
27052 }
27053 if ((this.readOnlyField == YesNoType.yes))
27054 {
27055 writer.WriteAttributeString("ReadOnly", "yes");
27056 }
27057 }
27058 if (this.hiddenFieldSet)
27059 {
27060 if ((this.hiddenField == YesNoType.no))
27061 {
27062 writer.WriteAttributeString("Hidden", "no");
27063 }
27064 if ((this.hiddenField == YesNoType.yes))
27065 {
27066 writer.WriteAttributeString("Hidden", "yes");
27067 }
27068 }
27069 if (this.systemFieldSet)
27070 {
27071 if ((this.systemField == YesNoType.no))
27072 {
27073 writer.WriteAttributeString("System", "no");
27074 }
27075 if ((this.systemField == YesNoType.yes))
27076 {
27077 writer.WriteAttributeString("System", "yes");
27078 }
27079 }
27080 if (this.vitalFieldSet)
27081 {
27082 if ((this.vitalField == YesNoType.no))
27083 {
27084 writer.WriteAttributeString("Vital", "no");
27085 }
27086 if ((this.vitalField == YesNoType.yes))
27087 {
27088 writer.WriteAttributeString("Vital", "yes");
27089 }
27090 }
27091 if (this.checksumFieldSet)
27092 {
27093 if ((this.checksumField == YesNoType.no))
27094 {
27095 writer.WriteAttributeString("Checksum", "no");
27096 }
27097 if ((this.checksumField == YesNoType.yes))
27098 {
27099 writer.WriteAttributeString("Checksum", "yes");
27100 }
27101 }
27102 if (this.compressedFieldSet)
27103 {
27104 if ((this.compressedField == YesNoDefaultType.@default))
27105 {
27106 writer.WriteAttributeString("Compressed", "default");
27107 }
27108 if ((this.compressedField == YesNoDefaultType.no))
27109 {
27110 writer.WriteAttributeString("Compressed", "no");
27111 }
27112 if ((this.compressedField == YesNoDefaultType.yes))
27113 {
27114 writer.WriteAttributeString("Compressed", "yes");
27115 }
27116 }
27117 if (this.bindPathFieldSet)
27118 {
27119 writer.WriteAttributeString("BindPath", this.bindPathField);
27120 }
27121 if (this.selfRegCostFieldSet)
27122 {
27123 writer.WriteAttributeString("SelfRegCost", this.selfRegCostField.ToString(CultureInfo.InvariantCulture));
27124 }
27125 if (this.trueTypeFieldSet)
27126 {
27127 if ((this.trueTypeField == YesNoType.no))
27128 {
27129 writer.WriteAttributeString("TrueType", "no");
27130 }
27131 if ((this.trueTypeField == YesNoType.yes))
27132 {
27133 writer.WriteAttributeString("TrueType", "yes");
27134 }
27135 }
27136 if (this.fontTitleFieldSet)
27137 {
27138 writer.WriteAttributeString("FontTitle", this.fontTitleField);
27139 }
27140 if (this.defaultLanguageFieldSet)
27141 {
27142 writer.WriteAttributeString("DefaultLanguage", this.defaultLanguageField);
27143 }
27144 if (this.defaultSizeFieldSet)
27145 {
27146 writer.WriteAttributeString("DefaultSize", this.defaultSizeField.ToString(CultureInfo.InvariantCulture));
27147 }
27148 if (this.defaultVersionFieldSet)
27149 {
27150 writer.WriteAttributeString("DefaultVersion", this.defaultVersionField);
27151 }
27152 if (this.assemblyFieldSet)
27153 {
27154 if ((this.assemblyField == AssemblyType.net))
27155 {
27156 writer.WriteAttributeString("Assembly", ".net");
27157 }
27158 if ((this.assemblyField == AssemblyType.no))
27159 {
27160 writer.WriteAttributeString("Assembly", "no");
27161 }
27162 if ((this.assemblyField == AssemblyType.win32))
27163 {
27164 writer.WriteAttributeString("Assembly", "win32");
27165 }
27166 }
27167 if (this.assemblyManifestFieldSet)
27168 {
27169 writer.WriteAttributeString("AssemblyManifest", this.assemblyManifestField);
27170 }
27171 if (this.assemblyApplicationFieldSet)
27172 {
27173 writer.WriteAttributeString("AssemblyApplication", this.assemblyApplicationField);
27174 }
27175 if (this.processorArchitectureFieldSet)
27176 {
27177 if ((this.processorArchitectureField == ProcessorArchitectureType.msil))
27178 {
27179 writer.WriteAttributeString("ProcessorArchitecture", "msil");
27180 }
27181 if ((this.processorArchitectureField == ProcessorArchitectureType.x86))
27182 {
27183 writer.WriteAttributeString("ProcessorArchitecture", "x86");
27184 }
27185 if ((this.processorArchitectureField == ProcessorArchitectureType.x64))
27186 {
27187 writer.WriteAttributeString("ProcessorArchitecture", "x64");
27188 }
27189 if ((this.processorArchitectureField == ProcessorArchitectureType.ia64))
27190 {
27191 writer.WriteAttributeString("ProcessorArchitecture", "ia64");
27192 }
27193 }
27194 if (this.diskIdFieldSet)
27195 {
27196 writer.WriteAttributeString("DiskId", this.diskIdField);
27197 }
27198 if (this.sourceFieldSet)
27199 {
27200 writer.WriteAttributeString("Source", this.sourceField);
27201 }
27202 if (this.srcFieldSet)
27203 {
27204 writer.WriteAttributeString("src", this.srcField);
27205 }
27206 if (this.patchGroupFieldSet)
27207 {
27208 writer.WriteAttributeString("PatchGroup", this.patchGroupField.ToString(CultureInfo.InvariantCulture));
27209 }
27210 if (this.patchIgnoreFieldSet)
27211 {
27212 if ((this.patchIgnoreField == YesNoType.no))
27213 {
27214 writer.WriteAttributeString("PatchIgnore", "no");
27215 }
27216 if ((this.patchIgnoreField == YesNoType.yes))
27217 {
27218 writer.WriteAttributeString("PatchIgnore", "yes");
27219 }
27220 }
27221 if (this.patchAllowIgnoreOnErrorFieldSet)
27222 {
27223 if ((this.patchAllowIgnoreOnErrorField == YesNoType.no))
27224 {
27225 writer.WriteAttributeString("PatchAllowIgnoreOnError", "no");
27226 }
27227 if ((this.patchAllowIgnoreOnErrorField == YesNoType.yes))
27228 {
27229 writer.WriteAttributeString("PatchAllowIgnoreOnError", "yes");
27230 }
27231 }
27232 if (this.patchWholeFileFieldSet)
27233 {
27234 if ((this.patchWholeFileField == YesNoType.no))
27235 {
27236 writer.WriteAttributeString("PatchWholeFile", "no");
27237 }
27238 if ((this.patchWholeFileField == YesNoType.yes))
27239 {
27240 writer.WriteAttributeString("PatchWholeFile", "yes");
27241 }
27242 }
27243 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
27244 {
27245 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
27246 childElement.OutputXml(writer);
27247 }
27248 writer.WriteEndElement();
27249 }
27250
27251 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
27252 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
27253 void ISetAttributes.SetAttribute(string name, string value)
27254 {
27255 if (String.IsNullOrEmpty(name))
27256 {
27257 throw new ArgumentNullException("name");
27258 }
27259 if (("Id" == name))
27260 {
27261 this.idField = value;
27262 this.idFieldSet = true;
27263 }
27264 if (("CompanionFile" == name))
27265 {
27266 this.companionFileField = value;
27267 this.companionFileFieldSet = true;
27268 }
27269 if (("Name" == name))
27270 {
27271 this.nameField = value;
27272 this.nameFieldSet = true;
27273 }
27274 if (("KeyPath" == name))
27275 {
27276 this.keyPathField = Enums.ParseYesNoType(value);
27277 this.keyPathFieldSet = true;
27278 }
27279 if (("ShortName" == name))
27280 {
27281 this.shortNameField = value;
27282 this.shortNameFieldSet = true;
27283 }
27284 if (("ReadOnly" == name))
27285 {
27286 this.readOnlyField = Enums.ParseYesNoType(value);
27287 this.readOnlyFieldSet = true;
27288 }
27289 if (("Hidden" == name))
27290 {
27291 this.hiddenField = Enums.ParseYesNoType(value);
27292 this.hiddenFieldSet = true;
27293 }
27294 if (("System" == name))
27295 {
27296 this.systemField = Enums.ParseYesNoType(value);
27297 this.systemFieldSet = true;
27298 }
27299 if (("Vital" == name))
27300 {
27301 this.vitalField = Enums.ParseYesNoType(value);
27302 this.vitalFieldSet = true;
27303 }
27304 if (("Checksum" == name))
27305 {
27306 this.checksumField = Enums.ParseYesNoType(value);
27307 this.checksumFieldSet = true;
27308 }
27309 if (("Compressed" == name))
27310 {
27311 this.compressedField = Enums.ParseYesNoDefaultType(value);
27312 this.compressedFieldSet = true;
27313 }
27314 if (("BindPath" == name))
27315 {
27316 this.bindPathField = value;
27317 this.bindPathFieldSet = true;
27318 }
27319 if (("SelfRegCost" == name))
27320 {
27321 this.selfRegCostField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
27322 this.selfRegCostFieldSet = true;
27323 }
27324 if (("TrueType" == name))
27325 {
27326 this.trueTypeField = Enums.ParseYesNoType(value);
27327 this.trueTypeFieldSet = true;
27328 }
27329 if (("FontTitle" == name))
27330 {
27331 this.fontTitleField = value;
27332 this.fontTitleFieldSet = true;
27333 }
27334 if (("DefaultLanguage" == name))
27335 {
27336 this.defaultLanguageField = value;
27337 this.defaultLanguageFieldSet = true;
27338 }
27339 if (("DefaultSize" == name))
27340 {
27341 this.defaultSizeField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
27342 this.defaultSizeFieldSet = true;
27343 }
27344 if (("DefaultVersion" == name))
27345 {
27346 this.defaultVersionField = value;
27347 this.defaultVersionFieldSet = true;
27348 }
27349 if (("Assembly" == name))
27350 {
27351 this.assemblyField = File.ParseAssemblyType(value);
27352 this.assemblyFieldSet = true;
27353 }
27354 if (("AssemblyManifest" == name))
27355 {
27356 this.assemblyManifestField = value;
27357 this.assemblyManifestFieldSet = true;
27358 }
27359 if (("AssemblyApplication" == name))
27360 {
27361 this.assemblyApplicationField = value;
27362 this.assemblyApplicationFieldSet = true;
27363 }
27364 if (("ProcessorArchitecture" == name))
27365 {
27366 this.processorArchitectureField = File.ParseProcessorArchitectureType(value);
27367 this.processorArchitectureFieldSet = true;
27368 }
27369 if (("DiskId" == name))
27370 {
27371 this.diskIdField = value;
27372 this.diskIdFieldSet = true;
27373 }
27374 if (("Source" == name))
27375 {
27376 this.sourceField = value;
27377 this.sourceFieldSet = true;
27378 }
27379 if (("src" == name))
27380 {
27381 this.srcField = value;
27382 this.srcFieldSet = true;
27383 }
27384 if (("PatchGroup" == name))
27385 {
27386 this.patchGroupField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
27387 this.patchGroupFieldSet = true;
27388 }
27389 if (("PatchIgnore" == name))
27390 {
27391 this.patchIgnoreField = Enums.ParseYesNoType(value);
27392 this.patchIgnoreFieldSet = true;
27393 }
27394 if (("PatchAllowIgnoreOnError" == name))
27395 {
27396 this.patchAllowIgnoreOnErrorField = Enums.ParseYesNoType(value);
27397 this.patchAllowIgnoreOnErrorFieldSet = true;
27398 }
27399 if (("PatchWholeFile" == name))
27400 {
27401 this.patchWholeFileField = Enums.ParseYesNoType(value);
27402 this.patchWholeFileFieldSet = true;
27403 }
27404 }
27405
27406 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
27407 public enum AssemblyType
27408 {
27409
27410 IllegalValue = int.MaxValue,
27411
27412 NotSet = -1,
27413
27414 /// <summary>
27415 /// The file is a .NET Framework assembly.
27416 /// </summary>
27417 net,
27418
27419 /// <summary>
27420 /// The file is not a .NET Framework or Win32 assembly. This is the default value.
27421 /// </summary>
27422 no,
27423
27424 /// <summary>
27425 /// The file is a Win32 assembly.
27426 /// </summary>
27427 win32,
27428 }
27429
27430 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
27431 public enum ProcessorArchitectureType
27432 {
27433
27434 IllegalValue = int.MaxValue,
27435
27436 NotSet = -1,
27437
27438 /// <summary>
27439 /// The file is a .NET Framework assembly that is processor-neutral.
27440 /// </summary>
27441 msil,
27442
27443 /// <summary>
27444 /// The file is a .NET Framework assembly for the x86 processor.
27445 /// </summary>
27446 x86,
27447
27448 /// <summary>
27449 /// The file is a .NET Framework assembly for the x64 processor.
27450 /// </summary>
27451 x64,
27452
27453 /// <summary>
27454 /// The file is a .NET Framework assembly for the ia64 processor.
27455 /// </summary>
27456 ia64,
27457 }
27458 }
27459
27460 /// <summary>
27461 /// Use several of these elements to specify each registry value in a multiString registry value. This element
27462 /// cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'. The
27463 /// values should go in the text area of the MultiStringValue element.
27464 /// </summary>
27465 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
27466 public class MultiStringValue : ISetAttributes, ISchemaElement
27467 {
27468
27469 private ISchemaElement parentElement;
27470
27471 private string contentField;
27472
27473 private bool contentFieldSet;
27474
27475 public virtual ISchemaElement ParentElement
27476 {
27477 get
27478 {
27479 return this.parentElement;
27480 }
27481 set
27482 {
27483 this.parentElement = value;
27484 }
27485 }
27486
27487 /// <summary>
27488 /// Use several of these elements to specify each registry value in a multiString registry value. This element
27489 /// cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'. The
27490 /// values should go in the text area of the MultiStringValue element.
27491 /// </summary>
27492 public string Content
27493 {
27494 get
27495 {
27496 return this.contentField;
27497 }
27498 set
27499 {
27500 this.contentFieldSet = true;
27501 this.contentField = value;
27502 }
27503 }
27504
27505 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
27506 void ISetAttributes.SetAttribute(string name, string value)
27507 {
27508 if (String.IsNullOrEmpty(name))
27509 {
27510 throw new ArgumentNullException("name");
27511 }
27512 if (("Content" == name))
27513 {
27514 this.contentField = value;
27515 this.contentFieldSet = true;
27516 }
27517 }
27518
27519 /// <summary>
27520 /// Processes this element and all child elements into an XmlWriter.
27521 /// </summary>
27522 public virtual void OutputXml(XmlWriter writer)
27523 {
27524 if ((null == writer))
27525 {
27526 throw new ArgumentNullException("writer");
27527 }
27528 writer.WriteStartElement("MultiStringValue", "http://wixtoolset.org/schemas/v4/wxs");
27529 if (this.contentFieldSet)
27530 {
27531 writer.WriteString(this.contentField);
27532 }
27533 writer.WriteEndElement();
27534 }
27535 }
27536
27537 /// <summary>
27538 /// Used for organization of child RegistryValue elements or to create a registry key
27539 /// (and optionally remove it during uninstallation).
27540 /// </summary>
27541 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
27542 public class RegistryKey : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
27543 {
27544
27545 private ElementCollection children;
27546
27547 private string idField;
27548
27549 private bool idFieldSet;
27550
27551 private ActionType actionField;
27552
27553 private bool actionFieldSet;
27554
27555 private YesNoType forceCreateOnInstallField;
27556
27557 private bool forceCreateOnInstallFieldSet;
27558
27559 private YesNoType forceDeleteOnUninstallField;
27560
27561 private bool forceDeleteOnUninstallFieldSet;
27562
27563 private string keyField;
27564
27565 private bool keyFieldSet;
27566
27567 private RegistryRootType rootField;
27568
27569 private bool rootFieldSet;
27570
27571 private ISchemaElement parentElement;
27572
27573 public RegistryKey()
27574 {
27575 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
27576 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegistryKey)));
27577 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegistryValue)));
27578 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Permission)));
27579 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx)));
27580 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
27581 this.children = childCollection0;
27582 }
27583
27584 public virtual IEnumerable Children
27585 {
27586 get
27587 {
27588 return this.children;
27589 }
27590 }
27591
27592 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
27593 public virtual IEnumerable this[System.Type childType]
27594 {
27595 get
27596 {
27597 return this.children.Filter(childType);
27598 }
27599 }
27600
27601 /// <summary>
27602 /// Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be
27603 /// generated by hashing the parent Component identifier, Root, Key, and Name.
27604 /// </summary>
27605 public string Id
27606 {
27607 get
27608 {
27609 return this.idField;
27610 }
27611 set
27612 {
27613 this.idFieldSet = true;
27614 this.idField = value;
27615 }
27616 }
27617
27618 /// <summary>
27619 /// The Action attribute has been deprecated. In most cases, you can simply omit @Action. If you need to force Windows Installer
27620 /// to create an empty key or recursively delete the key, use the ForceCreateOnInstall or ForceDeleteOnUninstall attributes instead.
27621 /// </summary>
27622 public ActionType Action
27623 {
27624 get
27625 {
27626 return this.actionField;
27627 }
27628 set
27629 {
27630 this.actionFieldSet = true;
27631 this.actionField = value;
27632 }
27633 }
27634
27635 /// <summary>
27636 /// Set this attribute to 'yes' to create an empty key, if absent, when the parent component is installed.
27637 /// This value is needed only to create an empty key with no subkeys or values. Windows Installer creates
27638 /// keys as needed to store subkeys and values. The default is "no".
27639 /// </summary>
27640 public YesNoType ForceCreateOnInstall
27641 {
27642 get
27643 {
27644 return this.forceCreateOnInstallField;
27645 }
27646 set
27647 {
27648 this.forceCreateOnInstallFieldSet = true;
27649 this.forceCreateOnInstallField = value;
27650 }
27651 }
27652
27653 /// <summary>
27654 /// Set this attribute to 'yes' to remove the key with all its values and subkeys when the parent component is uninstalled.
27655 /// 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
27656 /// removes all values and subkeys that it creates, so this option just adds additional overhead to uninstall.
27657 /// The default is "no".
27658 /// </summary>
27659 public YesNoType ForceDeleteOnUninstall
27660 {
27661 get
27662 {
27663 return this.forceDeleteOnUninstallField;
27664 }
27665 set
27666 {
27667 this.forceDeleteOnUninstallFieldSet = true;
27668 this.forceDeleteOnUninstallField = value;
27669 }
27670 }
27671
27672 /// <summary>
27673 /// The localizable key for the registry value.
27674 /// If the parent element is a RegistryKey, this value may be omitted to use the
27675 /// path of the parent, or if its specified it will be appended to the path of the parent.
27676 /// </summary>
27677 public string Key
27678 {
27679 get
27680 {
27681 return this.keyField;
27682 }
27683 set
27684 {
27685 this.keyFieldSet = true;
27686 this.keyField = value;
27687 }
27688 }
27689
27690 /// <summary>
27691 /// The predefined root key for the registry value.
27692 /// </summary>
27693 public RegistryRootType Root
27694 {
27695 get
27696 {
27697 return this.rootField;
27698 }
27699 set
27700 {
27701 this.rootFieldSet = true;
27702 this.rootField = value;
27703 }
27704 }
27705
27706 public virtual ISchemaElement ParentElement
27707 {
27708 get
27709 {
27710 return this.parentElement;
27711 }
27712 set
27713 {
27714 this.parentElement = value;
27715 }
27716 }
27717
27718 public virtual void AddChild(ISchemaElement child)
27719 {
27720 if ((null == child))
27721 {
27722 throw new ArgumentNullException("child");
27723 }
27724 this.children.AddElement(child);
27725 child.ParentElement = this;
27726 }
27727
27728 public virtual void RemoveChild(ISchemaElement child)
27729 {
27730 if ((null == child))
27731 {
27732 throw new ArgumentNullException("child");
27733 }
27734 this.children.RemoveElement(child);
27735 child.ParentElement = null;
27736 }
27737
27738 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
27739 ISchemaElement ICreateChildren.CreateChild(string childName)
27740 {
27741 if (String.IsNullOrEmpty(childName))
27742 {
27743 throw new ArgumentNullException("childName");
27744 }
27745 ISchemaElement childValue = null;
27746 if (("RegistryKey" == childName))
27747 {
27748 childValue = new RegistryKey();
27749 }
27750 if (("RegistryValue" == childName))
27751 {
27752 childValue = new RegistryValue();
27753 }
27754 if (("Permission" == childName))
27755 {
27756 childValue = new Permission();
27757 }
27758 if (("PermissionEx" == childName))
27759 {
27760 childValue = new PermissionEx();
27761 }
27762 if ((null == childValue))
27763 {
27764 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
27765 }
27766 return childValue;
27767 }
27768
27769 /// <summary>
27770 /// Parses a ActionType from a string.
27771 /// </summary>
27772 public static ActionType ParseActionType(string value)
27773 {
27774 ActionType parsedValue;
27775 RegistryKey.TryParseActionType(value, out parsedValue);
27776 return parsedValue;
27777 }
27778
27779 /// <summary>
27780 /// Tries to parse a ActionType from a string.
27781 /// </summary>
27782 public static bool TryParseActionType(string value, out ActionType parsedValue)
27783 {
27784 parsedValue = ActionType.NotSet;
27785 if (string.IsNullOrEmpty(value))
27786 {
27787 return false;
27788 }
27789 if (("create" == value))
27790 {
27791 parsedValue = ActionType.create;
27792 }
27793 else
27794 {
27795 if (("createAndRemoveOnUninstall" == value))
27796 {
27797 parsedValue = ActionType.createAndRemoveOnUninstall;
27798 }
27799 else
27800 {
27801 if (("none" == value))
27802 {
27803 parsedValue = ActionType.none;
27804 }
27805 else
27806 {
27807 parsedValue = ActionType.IllegalValue;
27808 return false;
27809 }
27810 }
27811 }
27812 return true;
27813 }
27814
27815 /// <summary>
27816 /// Processes this element and all child elements into an XmlWriter.
27817 /// </summary>
27818 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
27819 public virtual void OutputXml(XmlWriter writer)
27820 {
27821 if ((null == writer))
27822 {
27823 throw new ArgumentNullException("writer");
27824 }
27825 writer.WriteStartElement("RegistryKey", "http://wixtoolset.org/schemas/v4/wxs");
27826 if (this.idFieldSet)
27827 {
27828 writer.WriteAttributeString("Id", this.idField);
27829 }
27830 if (this.actionFieldSet)
27831 {
27832 if ((this.actionField == ActionType.create))
27833 {
27834 writer.WriteAttributeString("Action", "create");
27835 }
27836 if ((this.actionField == ActionType.createAndRemoveOnUninstall))
27837 {
27838 writer.WriteAttributeString("Action", "createAndRemoveOnUninstall");
27839 }
27840 if ((this.actionField == ActionType.none))
27841 {
27842 writer.WriteAttributeString("Action", "none");
27843 }
27844 }
27845 if (this.forceCreateOnInstallFieldSet)
27846 {
27847 if ((this.forceCreateOnInstallField == YesNoType.no))
27848 {
27849 writer.WriteAttributeString("ForceCreateOnInstall", "no");
27850 }
27851 if ((this.forceCreateOnInstallField == YesNoType.yes))
27852 {
27853 writer.WriteAttributeString("ForceCreateOnInstall", "yes");
27854 }
27855 }
27856 if (this.forceDeleteOnUninstallFieldSet)
27857 {
27858 if ((this.forceDeleteOnUninstallField == YesNoType.no))
27859 {
27860 writer.WriteAttributeString("ForceDeleteOnUninstall", "no");
27861 }
27862 if ((this.forceDeleteOnUninstallField == YesNoType.yes))
27863 {
27864 writer.WriteAttributeString("ForceDeleteOnUninstall", "yes");
27865 }
27866 }
27867 if (this.keyFieldSet)
27868 {
27869 writer.WriteAttributeString("Key", this.keyField);
27870 }
27871 if (this.rootFieldSet)
27872 {
27873 if ((this.rootField == RegistryRootType.HKMU))
27874 {
27875 writer.WriteAttributeString("Root", "HKMU");
27876 }
27877 if ((this.rootField == RegistryRootType.HKCR))
27878 {
27879 writer.WriteAttributeString("Root", "HKCR");
27880 }
27881 if ((this.rootField == RegistryRootType.HKCU))
27882 {
27883 writer.WriteAttributeString("Root", "HKCU");
27884 }
27885 if ((this.rootField == RegistryRootType.HKLM))
27886 {
27887 writer.WriteAttributeString("Root", "HKLM");
27888 }
27889 if ((this.rootField == RegistryRootType.HKU))
27890 {
27891 writer.WriteAttributeString("Root", "HKU");
27892 }
27893 }
27894 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
27895 {
27896 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
27897 childElement.OutputXml(writer);
27898 }
27899 writer.WriteEndElement();
27900 }
27901
27902 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
27903 void ISetAttributes.SetAttribute(string name, string value)
27904 {
27905 if (String.IsNullOrEmpty(name))
27906 {
27907 throw new ArgumentNullException("name");
27908 }
27909 if (("Id" == name))
27910 {
27911 this.idField = value;
27912 this.idFieldSet = true;
27913 }
27914 if (("Action" == name))
27915 {
27916 this.actionField = RegistryKey.ParseActionType(value);
27917 this.actionFieldSet = true;
27918 }
27919 if (("ForceCreateOnInstall" == name))
27920 {
27921 this.forceCreateOnInstallField = Enums.ParseYesNoType(value);
27922 this.forceCreateOnInstallFieldSet = true;
27923 }
27924 if (("ForceDeleteOnUninstall" == name))
27925 {
27926 this.forceDeleteOnUninstallField = Enums.ParseYesNoType(value);
27927 this.forceDeleteOnUninstallFieldSet = true;
27928 }
27929 if (("Key" == name))
27930 {
27931 this.keyField = value;
27932 this.keyFieldSet = true;
27933 }
27934 if (("Root" == name))
27935 {
27936 this.rootField = Enums.ParseRegistryRootType(value);
27937 this.rootFieldSet = true;
27938 }
27939 }
27940
27941 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
27942 public enum ActionType
27943 {
27944
27945 IllegalValue = int.MaxValue,
27946
27947 NotSet = -1,
27948
27949 /// <summary>
27950 /// Creates the key, if absent, when the parent component is installed.
27951 /// </summary>
27952 create,
27953
27954 /// <summary>
27955 /// 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.
27956 /// 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
27957 /// removes all values and subkeys that it creates, so this option just adds additional overhead to uninstall.
27958 /// </summary>
27959 createAndRemoveOnUninstall,
27960
27961 /// <summary>
27962 /// Does nothing; this element is used merely in WiX authoring for organization and does nothing to the final output.
27963 /// This is the default value.
27964 /// </summary>
27965 none,
27966 }
27967 }
27968
27969 /// <summary>
27970 /// Used to create a registry value. For multi-string values, this can be used to prepend or append values.
27971 ///
27972 /// For legacy authoring: Use several of these elements to specify each registry value in a multiString registry value. This element
27973 /// cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'. The
27974 /// values should go in the text area of the RegistryValue element.
27975 /// </summary>
27976 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
27977 public class RegistryValue : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
27978 {
27979
27980 private ElementCollection children;
27981
27982 private string idField;
27983
27984 private bool idFieldSet;
27985
27986 private RegistryRootType rootField;
27987
27988 private bool rootFieldSet;
27989
27990 private string keyField;
27991
27992 private bool keyFieldSet;
27993
27994 private string nameField;
27995
27996 private bool nameFieldSet;
27997
27998 private string valueField;
27999
28000 private bool valueFieldSet;
28001
28002 private TypeType typeField;
28003
28004 private bool typeFieldSet;
28005
28006 private ActionType actionField;
28007
28008 private bool actionFieldSet;
28009
28010 private YesNoType keyPathField;
28011
28012 private bool keyPathFieldSet;
28013
28014 private ISchemaElement parentElement;
28015
28016 public RegistryValue()
28017 {
28018 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
28019 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Permission)));
28020 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx)));
28021 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MultiStringValue)));
28022 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
28023 this.children = childCollection0;
28024 }
28025
28026 public virtual IEnumerable Children
28027 {
28028 get
28029 {
28030 return this.children;
28031 }
28032 }
28033
28034 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
28035 public virtual IEnumerable this[System.Type childType]
28036 {
28037 get
28038 {
28039 return this.children.Filter(childType);
28040 }
28041 }
28042
28043 /// <summary>
28044 /// Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be
28045 /// generated by hashing the parent Component identifier, Root, Key, and Name.
28046 /// </summary>
28047 public string Id
28048 {
28049 get
28050 {
28051 return this.idField;
28052 }
28053 set
28054 {
28055 this.idFieldSet = true;
28056 this.idField = value;
28057 }
28058 }
28059
28060 /// <summary>
28061 /// The predefined root key for the registry value.
28062 /// </summary>
28063 public RegistryRootType Root
28064 {
28065 get
28066 {
28067 return this.rootField;
28068 }
28069 set
28070 {
28071 this.rootFieldSet = true;
28072 this.rootField = value;
28073 }
28074 }
28075
28076 /// <summary>
28077 /// The localizable key for the registry value.
28078 /// If the parent element is a RegistryKey, this value may be omitted to use the
28079 /// path of the parent, or if its specified it will be appended to the path of the parent.
28080 /// </summary>
28081 public string Key
28082 {
28083 get
28084 {
28085 return this.keyField;
28086 }
28087 set
28088 {
28089 this.keyFieldSet = true;
28090 this.keyField = value;
28091 }
28092 }
28093
28094 /// <summary>
28095 /// The localizable registry value name. If this attribute is not provided the default value for the registry key will
28096 /// be set instead. The Windows Installer allows several special values to be set for this attribute. You should not
28097 /// use them in WiX. Instead use appropriate values in the Action attribute to get the desired behavior.
28098 /// </summary>
28099 public string Name
28100 {
28101 get
28102 {
28103 return this.nameField;
28104 }
28105 set
28106 {
28107 this.nameFieldSet = true;
28108 this.nameField = value;
28109 }
28110 }
28111
28112 /// <summary>
28113 /// Set this attribute to the localizable registry value. This value is formatted. The Windows Installer allows
28114 /// several special values to be set for this attribute. You should not use them in WiX. Instead use appropriate
28115 /// values in the Type attribute to get the desired behavior.
28116 /// </summary>
28117 public string Value
28118 {
28119 get
28120 {
28121 return this.valueField;
28122 }
28123 set
28124 {
28125 this.valueFieldSet = true;
28126 this.valueField = value;
28127 }
28128 }
28129
28130 /// <summary>
28131 /// Set this attribute to the type of the desired registry key. This attribute must be specified whenever the Value
28132 /// attribute or a child RegistryValue element is specified. This attribute
28133 /// should only be set when the value of the Action attribute does not include the word 'remove'.
28134 /// </summary>
28135 public TypeType Type
28136 {
28137 get
28138 {
28139 return this.typeField;
28140 }
28141 set
28142 {
28143 this.typeFieldSet = true;
28144 this.typeField = value;
28145 }
28146 }
28147
28148 /// <summary>
28149 /// This is the action that will be taken for this registry value.
28150 /// </summary>
28151 public ActionType Action
28152 {
28153 get
28154 {
28155 return this.actionField;
28156 }
28157 set
28158 {
28159 this.actionFieldSet = true;
28160 this.actionField = value;
28161 }
28162 }
28163
28164 /// <summary>
28165 /// Set this attribute to 'yes' to make this registry key the KeyPath of the parent component.
28166 /// Only one resource (registry, file, etc) can be the KeyPath of a component.
28167 /// </summary>
28168 public YesNoType KeyPath
28169 {
28170 get
28171 {
28172 return this.keyPathField;
28173 }
28174 set
28175 {
28176 this.keyPathFieldSet = true;
28177 this.keyPathField = value;
28178 }
28179 }
28180
28181 public virtual ISchemaElement ParentElement
28182 {
28183 get
28184 {
28185 return this.parentElement;
28186 }
28187 set
28188 {
28189 this.parentElement = value;
28190 }
28191 }
28192
28193 public virtual void AddChild(ISchemaElement child)
28194 {
28195 if ((null == child))
28196 {
28197 throw new ArgumentNullException("child");
28198 }
28199 this.children.AddElement(child);
28200 child.ParentElement = this;
28201 }
28202
28203 public virtual void RemoveChild(ISchemaElement child)
28204 {
28205 if ((null == child))
28206 {
28207 throw new ArgumentNullException("child");
28208 }
28209 this.children.RemoveElement(child);
28210 child.ParentElement = null;
28211 }
28212
28213 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
28214 ISchemaElement ICreateChildren.CreateChild(string childName)
28215 {
28216 if (String.IsNullOrEmpty(childName))
28217 {
28218 throw new ArgumentNullException("childName");
28219 }
28220 ISchemaElement childValue = null;
28221 if (("Permission" == childName))
28222 {
28223 childValue = new Permission();
28224 }
28225 if (("PermissionEx" == childName))
28226 {
28227 childValue = new PermissionEx();
28228 }
28229 if (("MultiStringValue" == childName))
28230 {
28231 childValue = new MultiStringValue();
28232 }
28233 if ((null == childValue))
28234 {
28235 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
28236 }
28237 return childValue;
28238 }
28239
28240 /// <summary>
28241 /// Parses a TypeType from a string.
28242 /// </summary>
28243 public static TypeType ParseTypeType(string value)
28244 {
28245 TypeType parsedValue;
28246 RegistryValue.TryParseTypeType(value, out parsedValue);
28247 return parsedValue;
28248 }
28249
28250 /// <summary>
28251 /// Tries to parse a TypeType from a string.
28252 /// </summary>
28253 public static bool TryParseTypeType(string value, out TypeType parsedValue)
28254 {
28255 parsedValue = TypeType.NotSet;
28256 if (string.IsNullOrEmpty(value))
28257 {
28258 return false;
28259 }
28260 if (("string" == value))
28261 {
28262 parsedValue = TypeType.@string;
28263 }
28264 else
28265 {
28266 if (("integer" == value))
28267 {
28268 parsedValue = TypeType.integer;
28269 }
28270 else
28271 {
28272 if (("binary" == value))
28273 {
28274 parsedValue = TypeType.binary;
28275 }
28276 else
28277 {
28278 if (("expandable" == value))
28279 {
28280 parsedValue = TypeType.expandable;
28281 }
28282 else
28283 {
28284 if (("multiString" == value))
28285 {
28286 parsedValue = TypeType.multiString;
28287 }
28288 else
28289 {
28290 parsedValue = TypeType.IllegalValue;
28291 return false;
28292 }
28293 }
28294 }
28295 }
28296 }
28297 return true;
28298 }
28299
28300 /// <summary>
28301 /// Parses a ActionType from a string.
28302 /// </summary>
28303 public static ActionType ParseActionType(string value)
28304 {
28305 ActionType parsedValue;
28306 RegistryValue.TryParseActionType(value, out parsedValue);
28307 return parsedValue;
28308 }
28309
28310 /// <summary>
28311 /// Tries to parse a ActionType from a string.
28312 /// </summary>
28313 public static bool TryParseActionType(string value, out ActionType parsedValue)
28314 {
28315 parsedValue = ActionType.NotSet;
28316 if (string.IsNullOrEmpty(value))
28317 {
28318 return false;
28319 }
28320 if (("append" == value))
28321 {
28322 parsedValue = ActionType.append;
28323 }
28324 else
28325 {
28326 if (("prepend" == value))
28327 {
28328 parsedValue = ActionType.prepend;
28329 }
28330 else
28331 {
28332 if (("write" == value))
28333 {
28334 parsedValue = ActionType.write;
28335 }
28336 else
28337 {
28338 parsedValue = ActionType.IllegalValue;
28339 return false;
28340 }
28341 }
28342 }
28343 return true;
28344 }
28345
28346 /// <summary>
28347 /// Processes this element and all child elements into an XmlWriter.
28348 /// </summary>
28349 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
28350 public virtual void OutputXml(XmlWriter writer)
28351 {
28352 if ((null == writer))
28353 {
28354 throw new ArgumentNullException("writer");
28355 }
28356 writer.WriteStartElement("RegistryValue", "http://wixtoolset.org/schemas/v4/wxs");
28357 if (this.idFieldSet)
28358 {
28359 writer.WriteAttributeString("Id", this.idField);
28360 }
28361 if (this.rootFieldSet)
28362 {
28363 if ((this.rootField == RegistryRootType.HKMU))
28364 {
28365 writer.WriteAttributeString("Root", "HKMU");
28366 }
28367 if ((this.rootField == RegistryRootType.HKCR))
28368 {
28369 writer.WriteAttributeString("Root", "HKCR");
28370 }
28371 if ((this.rootField == RegistryRootType.HKCU))
28372 {
28373 writer.WriteAttributeString("Root", "HKCU");
28374 }
28375 if ((this.rootField == RegistryRootType.HKLM))
28376 {
28377 writer.WriteAttributeString("Root", "HKLM");
28378 }
28379 if ((this.rootField == RegistryRootType.HKU))
28380 {
28381 writer.WriteAttributeString("Root", "HKU");
28382 }
28383 }
28384 if (this.keyFieldSet)
28385 {
28386 writer.WriteAttributeString("Key", this.keyField);
28387 }
28388 if (this.nameFieldSet)
28389 {
28390 writer.WriteAttributeString("Name", this.nameField);
28391 }
28392 if (this.valueFieldSet)
28393 {
28394 writer.WriteAttributeString("Value", this.valueField);
28395 }
28396 if (this.typeFieldSet)
28397 {
28398 if ((this.typeField == TypeType.@string))
28399 {
28400 writer.WriteAttributeString("Type", "string");
28401 }
28402 if ((this.typeField == TypeType.integer))
28403 {
28404 writer.WriteAttributeString("Type", "integer");
28405 }
28406 if ((this.typeField == TypeType.binary))
28407 {
28408 writer.WriteAttributeString("Type", "binary");
28409 }
28410 if ((this.typeField == TypeType.expandable))
28411 {
28412 writer.WriteAttributeString("Type", "expandable");
28413 }
28414 if ((this.typeField == TypeType.multiString))
28415 {
28416 writer.WriteAttributeString("Type", "multiString");
28417 }
28418 }
28419 if (this.actionFieldSet)
28420 {
28421 if ((this.actionField == ActionType.append))
28422 {
28423 writer.WriteAttributeString("Action", "append");
28424 }
28425 if ((this.actionField == ActionType.prepend))
28426 {
28427 writer.WriteAttributeString("Action", "prepend");
28428 }
28429 if ((this.actionField == ActionType.write))
28430 {
28431 writer.WriteAttributeString("Action", "write");
28432 }
28433 }
28434 if (this.keyPathFieldSet)
28435 {
28436 if ((this.keyPathField == YesNoType.no))
28437 {
28438 writer.WriteAttributeString("KeyPath", "no");
28439 }
28440 if ((this.keyPathField == YesNoType.yes))
28441 {
28442 writer.WriteAttributeString("KeyPath", "yes");
28443 }
28444 }
28445 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
28446 {
28447 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
28448 childElement.OutputXml(writer);
28449 }
28450 writer.WriteEndElement();
28451 }
28452
28453 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
28454 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
28455 void ISetAttributes.SetAttribute(string name, string value)
28456 {
28457 if (String.IsNullOrEmpty(name))
28458 {
28459 throw new ArgumentNullException("name");
28460 }
28461 if (("Id" == name))
28462 {
28463 this.idField = value;
28464 this.idFieldSet = true;
28465 }
28466 if (("Root" == name))
28467 {
28468 this.rootField = Enums.ParseRegistryRootType(value);
28469 this.rootFieldSet = true;
28470 }
28471 if (("Key" == name))
28472 {
28473 this.keyField = value;
28474 this.keyFieldSet = true;
28475 }
28476 if (("Name" == name))
28477 {
28478 this.nameField = value;
28479 this.nameFieldSet = true;
28480 }
28481 if (("Value" == name))
28482 {
28483 this.valueField = value;
28484 this.valueFieldSet = true;
28485 }
28486 if (("Type" == name))
28487 {
28488 this.typeField = RegistryValue.ParseTypeType(value);
28489 this.typeFieldSet = true;
28490 }
28491 if (("Action" == name))
28492 {
28493 this.actionField = RegistryValue.ParseActionType(value);
28494 this.actionFieldSet = true;
28495 }
28496 if (("KeyPath" == name))
28497 {
28498 this.keyPathField = Enums.ParseYesNoType(value);
28499 this.keyPathFieldSet = true;
28500 }
28501 }
28502
28503 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
28504 public enum TypeType
28505 {
28506
28507 IllegalValue = int.MaxValue,
28508
28509 NotSet = -1,
28510
28511 /// <summary>
28512 /// The value is interpreted and stored as a string (REG_SZ).
28513 /// </summary>
28514 @string,
28515
28516 /// <summary>
28517 /// The value is interpreted and stored as an integer (REG_DWORD).
28518 /// </summary>
28519 integer,
28520
28521 /// <summary>
28522 /// The value is interpreted and stored as a hexadecimal value (REG_BINARY).
28523 /// </summary>
28524 binary,
28525
28526 /// <summary>
28527 /// The value is interpreted and stored as an expandable string (REG_EXPAND_SZ).
28528 /// </summary>
28529 expandable,
28530
28531 /// <summary>
28532 /// The value is interpreted and stored as a multiple strings (REG_MULTI_SZ).
28533 /// Please note that this value will only result in a multi-string value if there is more than one registry value
28534 /// or the Action attribute's value is 'append' or 'prepend'. Otherwise a string value will be created.
28535 /// </summary>
28536 multiString,
28537 }
28538
28539 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
28540 public enum ActionType
28541 {
28542
28543 IllegalValue = int.MaxValue,
28544
28545 NotSet = -1,
28546
28547 /// <summary>
28548 /// Appends the specified value(s) to a multiString registry value.
28549 /// </summary>
28550 append,
28551
28552 /// <summary>
28553 /// Prepends the specified value(s) to a multiString registry value.
28554 /// </summary>
28555 prepend,
28556
28557 /// <summary>
28558 /// Writes a registry value. This is the default value.
28559 /// </summary>
28560 write,
28561 }
28562 }
28563
28564 /// <summary>
28565 /// Used for removing registry keys and all child keys either during install or uninstall.
28566 /// </summary>
28567 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
28568 public class RemoveRegistryKey : ISchemaElement, ISetAttributes
28569 {
28570
28571 private string idField;
28572
28573 private bool idFieldSet;
28574
28575 private ActionType actionField;
28576
28577 private bool actionFieldSet;
28578
28579 private string keyField;
28580
28581 private bool keyFieldSet;
28582
28583 private RegistryRootType rootField;
28584
28585 private bool rootFieldSet;
28586
28587 private ISchemaElement parentElement;
28588
28589 /// <summary>
28590 /// Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be
28591 /// generated by hashing the parent Component identifier, Root, Key, and Name.
28592 /// </summary>
28593 public string Id
28594 {
28595 get
28596 {
28597 return this.idField;
28598 }
28599 set
28600 {
28601 this.idFieldSet = true;
28602 this.idField = value;
28603 }
28604 }
28605
28606 /// <summary>
28607 /// This is the action that will be taken for this registry value.
28608 /// </summary>
28609 public ActionType Action
28610 {
28611 get
28612 {
28613 return this.actionField;
28614 }
28615 set
28616 {
28617 this.actionFieldSet = true;
28618 this.actionField = value;
28619 }
28620 }
28621
28622 /// <summary>
28623 /// The localizable key for the registry value.
28624 /// </summary>
28625 public string Key
28626 {
28627 get
28628 {
28629 return this.keyField;
28630 }
28631 set
28632 {
28633 this.keyFieldSet = true;
28634 this.keyField = value;
28635 }
28636 }
28637
28638 /// <summary>
28639 /// The predefined root key for the registry value.
28640 /// </summary>
28641 public RegistryRootType Root
28642 {
28643 get
28644 {
28645 return this.rootField;
28646 }
28647 set
28648 {
28649 this.rootFieldSet = true;
28650 this.rootField = value;
28651 }
28652 }
28653
28654 public virtual ISchemaElement ParentElement
28655 {
28656 get
28657 {
28658 return this.parentElement;
28659 }
28660 set
28661 {
28662 this.parentElement = value;
28663 }
28664 }
28665
28666 /// <summary>
28667 /// Parses a ActionType from a string.
28668 /// </summary>
28669 public static ActionType ParseActionType(string value)
28670 {
28671 ActionType parsedValue;
28672 RemoveRegistryKey.TryParseActionType(value, out parsedValue);
28673 return parsedValue;
28674 }
28675
28676 /// <summary>
28677 /// Tries to parse a ActionType from a string.
28678 /// </summary>
28679 public static bool TryParseActionType(string value, out ActionType parsedValue)
28680 {
28681 parsedValue = ActionType.NotSet;
28682 if (string.IsNullOrEmpty(value))
28683 {
28684 return false;
28685 }
28686 if (("removeOnInstall" == value))
28687 {
28688 parsedValue = ActionType.removeOnInstall;
28689 }
28690 else
28691 {
28692 if (("removeOnUninstall" == value))
28693 {
28694 parsedValue = ActionType.removeOnUninstall;
28695 }
28696 else
28697 {
28698 parsedValue = ActionType.IllegalValue;
28699 return false;
28700 }
28701 }
28702 return true;
28703 }
28704
28705 /// <summary>
28706 /// Processes this element and all child elements into an XmlWriter.
28707 /// </summary>
28708 public virtual void OutputXml(XmlWriter writer)
28709 {
28710 if ((null == writer))
28711 {
28712 throw new ArgumentNullException("writer");
28713 }
28714 writer.WriteStartElement("RemoveRegistryKey", "http://wixtoolset.org/schemas/v4/wxs");
28715 if (this.idFieldSet)
28716 {
28717 writer.WriteAttributeString("Id", this.idField);
28718 }
28719 if (this.actionFieldSet)
28720 {
28721 if ((this.actionField == ActionType.removeOnInstall))
28722 {
28723 writer.WriteAttributeString("Action", "removeOnInstall");
28724 }
28725 if ((this.actionField == ActionType.removeOnUninstall))
28726 {
28727 writer.WriteAttributeString("Action", "removeOnUninstall");
28728 }
28729 }
28730 if (this.keyFieldSet)
28731 {
28732 writer.WriteAttributeString("Key", this.keyField);
28733 }
28734 if (this.rootFieldSet)
28735 {
28736 if ((this.rootField == RegistryRootType.HKMU))
28737 {
28738 writer.WriteAttributeString("Root", "HKMU");
28739 }
28740 if ((this.rootField == RegistryRootType.HKCR))
28741 {
28742 writer.WriteAttributeString("Root", "HKCR");
28743 }
28744 if ((this.rootField == RegistryRootType.HKCU))
28745 {
28746 writer.WriteAttributeString("Root", "HKCU");
28747 }
28748 if ((this.rootField == RegistryRootType.HKLM))
28749 {
28750 writer.WriteAttributeString("Root", "HKLM");
28751 }
28752 if ((this.rootField == RegistryRootType.HKU))
28753 {
28754 writer.WriteAttributeString("Root", "HKU");
28755 }
28756 }
28757 writer.WriteEndElement();
28758 }
28759
28760 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
28761 void ISetAttributes.SetAttribute(string name, string value)
28762 {
28763 if (String.IsNullOrEmpty(name))
28764 {
28765 throw new ArgumentNullException("name");
28766 }
28767 if (("Id" == name))
28768 {
28769 this.idField = value;
28770 this.idFieldSet = true;
28771 }
28772 if (("Action" == name))
28773 {
28774 this.actionField = RemoveRegistryKey.ParseActionType(value);
28775 this.actionFieldSet = true;
28776 }
28777 if (("Key" == name))
28778 {
28779 this.keyField = value;
28780 this.keyFieldSet = true;
28781 }
28782 if (("Root" == name))
28783 {
28784 this.rootField = Enums.ParseRegistryRootType(value);
28785 this.rootFieldSet = true;
28786 }
28787 }
28788
28789 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
28790 public enum ActionType
28791 {
28792
28793 IllegalValue = int.MaxValue,
28794
28795 NotSet = -1,
28796
28797 /// <summary>
28798 /// Removes a key with all its values and subkeys when the parent component is installed.
28799 /// </summary>
28800 removeOnInstall,
28801
28802 /// <summary>
28803 /// Removes a key with all its values and subkeys when the parent component is uninstalled.
28804 /// </summary>
28805 removeOnUninstall,
28806 }
28807 }
28808
28809 /// <summary>
28810 /// Used to remove a registry value during installation.
28811 /// There is no standard way to remove a single registry value during uninstall (but you can remove an entire key with RemoveRegistryKey).
28812 /// </summary>
28813 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
28814 public class RemoveRegistryValue : ISchemaElement, ISetAttributes
28815 {
28816
28817 private string idField;
28818
28819 private bool idFieldSet;
28820
28821 private string keyField;
28822
28823 private bool keyFieldSet;
28824
28825 private string nameField;
28826
28827 private bool nameFieldSet;
28828
28829 private RegistryRootType rootField;
28830
28831 private bool rootFieldSet;
28832
28833 private ISchemaElement parentElement;
28834
28835 /// <summary>
28836 /// Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be
28837 /// generated by hashing the parent Component identifier, Root, Key, and Name.
28838 /// </summary>
28839 public string Id
28840 {
28841 get
28842 {
28843 return this.idField;
28844 }
28845 set
28846 {
28847 this.idFieldSet = true;
28848 this.idField = value;
28849 }
28850 }
28851
28852 /// <summary>
28853 /// The localizable key for the registry value.
28854 /// If the parent element is a RegistryKey, this value may be omitted to use the
28855 /// path of the parent, or if its specified it will be appended to the path of the parent.
28856 /// </summary>
28857 public string Key
28858 {
28859 get
28860 {
28861 return this.keyField;
28862 }
28863 set
28864 {
28865 this.keyFieldSet = true;
28866 this.keyField = value;
28867 }
28868 }
28869
28870 /// <summary>
28871 /// The localizable registry value name. If this attribute is not provided the default value for the registry key will
28872 /// be set instead. The Windows Installer allows several special values to be set for this attribute. You should not
28873 /// use them in WiX. Instead use appropriate values in the Action attribute to get the desired behavior.
28874 /// </summary>
28875 public string Name
28876 {
28877 get
28878 {
28879 return this.nameField;
28880 }
28881 set
28882 {
28883 this.nameFieldSet = true;
28884 this.nameField = value;
28885 }
28886 }
28887
28888 /// <summary>
28889 /// The predefined root key for the registry value.
28890 /// </summary>
28891 public RegistryRootType Root
28892 {
28893 get
28894 {
28895 return this.rootField;
28896 }
28897 set
28898 {
28899 this.rootFieldSet = true;
28900 this.rootField = value;
28901 }
28902 }
28903
28904 public virtual ISchemaElement ParentElement
28905 {
28906 get
28907 {
28908 return this.parentElement;
28909 }
28910 set
28911 {
28912 this.parentElement = value;
28913 }
28914 }
28915
28916 /// <summary>
28917 /// Processes this element and all child elements into an XmlWriter.
28918 /// </summary>
28919 public virtual void OutputXml(XmlWriter writer)
28920 {
28921 if ((null == writer))
28922 {
28923 throw new ArgumentNullException("writer");
28924 }
28925 writer.WriteStartElement("RemoveRegistryValue", "http://wixtoolset.org/schemas/v4/wxs");
28926 if (this.idFieldSet)
28927 {
28928 writer.WriteAttributeString("Id", this.idField);
28929 }
28930 if (this.keyFieldSet)
28931 {
28932 writer.WriteAttributeString("Key", this.keyField);
28933 }
28934 if (this.nameFieldSet)
28935 {
28936 writer.WriteAttributeString("Name", this.nameField);
28937 }
28938 if (this.rootFieldSet)
28939 {
28940 if ((this.rootField == RegistryRootType.HKMU))
28941 {
28942 writer.WriteAttributeString("Root", "HKMU");
28943 }
28944 if ((this.rootField == RegistryRootType.HKCR))
28945 {
28946 writer.WriteAttributeString("Root", "HKCR");
28947 }
28948 if ((this.rootField == RegistryRootType.HKCU))
28949 {
28950 writer.WriteAttributeString("Root", "HKCU");
28951 }
28952 if ((this.rootField == RegistryRootType.HKLM))
28953 {
28954 writer.WriteAttributeString("Root", "HKLM");
28955 }
28956 if ((this.rootField == RegistryRootType.HKU))
28957 {
28958 writer.WriteAttributeString("Root", "HKU");
28959 }
28960 }
28961 writer.WriteEndElement();
28962 }
28963
28964 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
28965 void ISetAttributes.SetAttribute(string name, string value)
28966 {
28967 if (String.IsNullOrEmpty(name))
28968 {
28969 throw new ArgumentNullException("name");
28970 }
28971 if (("Id" == name))
28972 {
28973 this.idField = value;
28974 this.idFieldSet = true;
28975 }
28976 if (("Key" == name))
28977 {
28978 this.keyField = value;
28979 this.keyFieldSet = true;
28980 }
28981 if (("Name" == name))
28982 {
28983 this.nameField = value;
28984 this.nameFieldSet = true;
28985 }
28986 if (("Root" == name))
28987 {
28988 this.rootField = Enums.ParseRegistryRootType(value);
28989 this.rootFieldSet = true;
28990 }
28991 }
28992 }
28993
28994 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
28995 public class Registry : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
28996 {
28997
28998 private ElementCollection children;
28999
29000 private string idField;
29001
29002 private bool idFieldSet;
29003
29004 private ActionType actionField;
29005
29006 private bool actionFieldSet;
29007
29008 private string keyField;
29009
29010 private bool keyFieldSet;
29011
29012 private YesNoType keyPathField;
29013
29014 private bool keyPathFieldSet;
29015
29016 private string nameField;
29017
29018 private bool nameFieldSet;
29019
29020 private RegistryRootType rootField;
29021
29022 private bool rootFieldSet;
29023
29024 private TypeType typeField;
29025
29026 private bool typeFieldSet;
29027
29028 private string valueField;
29029
29030 private bool valueFieldSet;
29031
29032 private ISchemaElement parentElement;
29033
29034 public Registry()
29035 {
29036 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
29037 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Permission)));
29038 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx)));
29039 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegistryValue)));
29040 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Registry)));
29041 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
29042 this.children = childCollection0;
29043 }
29044
29045 public virtual IEnumerable Children
29046 {
29047 get
29048 {
29049 return this.children;
29050 }
29051 }
29052
29053 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
29054 public virtual IEnumerable this[System.Type childType]
29055 {
29056 get
29057 {
29058 return this.children.Filter(childType);
29059 }
29060 }
29061
29062 /// <summary>
29063 /// Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be
29064 /// generated by hashing the parent Component identifier, Root, Key, and Name.
29065 /// </summary>
29066 public string Id
29067 {
29068 get
29069 {
29070 return this.idField;
29071 }
29072 set
29073 {
29074 this.idFieldSet = true;
29075 this.idField = value;
29076 }
29077 }
29078
29079 /// <summary>
29080 /// This is the action that will be taken for this registry key.
29081 /// </summary>
29082 public ActionType Action
29083 {
29084 get
29085 {
29086 return this.actionField;
29087 }
29088 set
29089 {
29090 this.actionFieldSet = true;
29091 this.actionField = value;
29092 }
29093 }
29094
29095 /// <summary>
29096 /// The localizable key for the registry value.
29097 /// </summary>
29098 public string Key
29099 {
29100 get
29101 {
29102 return this.keyField;
29103 }
29104 set
29105 {
29106 this.keyFieldSet = true;
29107 this.keyField = value;
29108 }
29109 }
29110
29111 /// <summary>
29112 /// Set this attribute to 'yes' to make this registry key the KeyPath of the parent component. Only one resource (registry,
29113 /// file, etc) can be the KeyPath of a component.
29114 /// </summary>
29115 public YesNoType KeyPath
29116 {
29117 get
29118 {
29119 return this.keyPathField;
29120 }
29121 set
29122 {
29123 this.keyPathFieldSet = true;
29124 this.keyPathField = value;
29125 }
29126 }
29127
29128 /// <summary>
29129 /// The localizable registry value name. If this attribute is not provided the default value for the registry key will
29130 /// be set instead. The Windows Installer allows several special values to be set for this attribute. You should not
29131 /// use them in WiX. Instead use appropriate values in the Action attribute to get the desired behavior.
29132 /// </summary>
29133 public string Name
29134 {
29135 get
29136 {
29137 return this.nameField;
29138 }
29139 set
29140 {
29141 this.nameFieldSet = true;
29142 this.nameField = value;
29143 }
29144 }
29145
29146 /// <summary>
29147 /// The predefined root key for the registry value.
29148 /// </summary>
29149 public RegistryRootType Root
29150 {
29151 get
29152 {
29153 return this.rootField;
29154 }
29155 set
29156 {
29157 this.rootFieldSet = true;
29158 this.rootField = value;
29159 }
29160 }
29161
29162 /// <summary>
29163 /// Set this attribute to the type of the desired registry key. This attribute must be specified whenever the Value
29164 /// attribute or a child RegistryValue element is specified. This attribute
29165 /// should only be set when the value of the Action attribute does not include the word 'remove'.
29166 /// </summary>
29167 public TypeType Type
29168 {
29169 get
29170 {
29171 return this.typeField;
29172 }
29173 set
29174 {
29175 this.typeFieldSet = true;
29176 this.typeField = value;
29177 }
29178 }
29179
29180 /// <summary>
29181 /// Set this attribute to the localizable registry value. This value is formatted. The Windows Installer allows
29182 /// several special values to be set for this attribute. You should not use them in WiX. Instead use appropriate
29183 /// values in the Type attribute to get the desired behavior. This attribute cannot be specified if the Action
29184 /// attribute's value contains the word 'remove'.
29185 /// </summary>
29186 public string Value
29187 {
29188 get
29189 {
29190 return this.valueField;
29191 }
29192 set
29193 {
29194 this.valueFieldSet = true;
29195 this.valueField = value;
29196 }
29197 }
29198
29199 public virtual ISchemaElement ParentElement
29200 {
29201 get
29202 {
29203 return this.parentElement;
29204 }
29205 set
29206 {
29207 this.parentElement = value;
29208 }
29209 }
29210
29211 public virtual void AddChild(ISchemaElement child)
29212 {
29213 if ((null == child))
29214 {
29215 throw new ArgumentNullException("child");
29216 }
29217 this.children.AddElement(child);
29218 child.ParentElement = this;
29219 }
29220
29221 public virtual void RemoveChild(ISchemaElement child)
29222 {
29223 if ((null == child))
29224 {
29225 throw new ArgumentNullException("child");
29226 }
29227 this.children.RemoveElement(child);
29228 child.ParentElement = null;
29229 }
29230
29231 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
29232 ISchemaElement ICreateChildren.CreateChild(string childName)
29233 {
29234 if (String.IsNullOrEmpty(childName))
29235 {
29236 throw new ArgumentNullException("childName");
29237 }
29238 ISchemaElement childValue = null;
29239 if (("Permission" == childName))
29240 {
29241 childValue = new Permission();
29242 }
29243 if (("PermissionEx" == childName))
29244 {
29245 childValue = new PermissionEx();
29246 }
29247 if (("RegistryValue" == childName))
29248 {
29249 childValue = new RegistryValue();
29250 }
29251 if (("Registry" == childName))
29252 {
29253 childValue = new Registry();
29254 }
29255 if ((null == childValue))
29256 {
29257 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
29258 }
29259 return childValue;
29260 }
29261
29262 /// <summary>
29263 /// Parses a ActionType from a string.
29264 /// </summary>
29265 public static ActionType ParseActionType(string value)
29266 {
29267 ActionType parsedValue;
29268 Registry.TryParseActionType(value, out parsedValue);
29269 return parsedValue;
29270 }
29271
29272 /// <summary>
29273 /// Tries to parse a ActionType from a string.
29274 /// </summary>
29275 public static bool TryParseActionType(string value, out ActionType parsedValue)
29276 {
29277 parsedValue = ActionType.NotSet;
29278 if (string.IsNullOrEmpty(value))
29279 {
29280 return false;
29281 }
29282 if (("append" == value))
29283 {
29284 parsedValue = ActionType.append;
29285 }
29286 else
29287 {
29288 if (("createKey" == value))
29289 {
29290 parsedValue = ActionType.createKey;
29291 }
29292 else
29293 {
29294 if (("createKeyAndRemoveKeyOnUninstall" == value))
29295 {
29296 parsedValue = ActionType.createKeyAndRemoveKeyOnUninstall;
29297 }
29298 else
29299 {
29300 if (("prepend" == value))
29301 {
29302 parsedValue = ActionType.prepend;
29303 }
29304 else
29305 {
29306 if (("remove" == value))
29307 {
29308 parsedValue = ActionType.remove;
29309 }
29310 else
29311 {
29312 if (("removeKeyOnInstall" == value))
29313 {
29314 parsedValue = ActionType.removeKeyOnInstall;
29315 }
29316 else
29317 {
29318 if (("removeKeyOnUninstall" == value))
29319 {
29320 parsedValue = ActionType.removeKeyOnUninstall;
29321 }
29322 else
29323 {
29324 if (("write" == value))
29325 {
29326 parsedValue = ActionType.write;
29327 }
29328 else
29329 {
29330 parsedValue = ActionType.IllegalValue;
29331 return false;
29332 }
29333 }
29334 }
29335 }
29336 }
29337 }
29338 }
29339 }
29340 return true;
29341 }
29342
29343 /// <summary>
29344 /// Parses a TypeType from a string.
29345 /// </summary>
29346 public static TypeType ParseTypeType(string value)
29347 {
29348 TypeType parsedValue;
29349 Registry.TryParseTypeType(value, out parsedValue);
29350 return parsedValue;
29351 }
29352
29353 /// <summary>
29354 /// Tries to parse a TypeType from a string.
29355 /// </summary>
29356 public static bool TryParseTypeType(string value, out TypeType parsedValue)
29357 {
29358 parsedValue = TypeType.NotSet;
29359 if (string.IsNullOrEmpty(value))
29360 {
29361 return false;
29362 }
29363 if (("string" == value))
29364 {
29365 parsedValue = TypeType.@string;
29366 }
29367 else
29368 {
29369 if (("integer" == value))
29370 {
29371 parsedValue = TypeType.integer;
29372 }
29373 else
29374 {
29375 if (("binary" == value))
29376 {
29377 parsedValue = TypeType.binary;
29378 }
29379 else
29380 {
29381 if (("expandable" == value))
29382 {
29383 parsedValue = TypeType.expandable;
29384 }
29385 else
29386 {
29387 if (("multiString" == value))
29388 {
29389 parsedValue = TypeType.multiString;
29390 }
29391 else
29392 {
29393 parsedValue = TypeType.IllegalValue;
29394 return false;
29395 }
29396 }
29397 }
29398 }
29399 }
29400 return true;
29401 }
29402
29403 /// <summary>
29404 /// Processes this element and all child elements into an XmlWriter.
29405 /// </summary>
29406 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
29407 public virtual void OutputXml(XmlWriter writer)
29408 {
29409 if ((null == writer))
29410 {
29411 throw new ArgumentNullException("writer");
29412 }
29413 writer.WriteStartElement("Registry", "http://wixtoolset.org/schemas/v4/wxs");
29414 if (this.idFieldSet)
29415 {
29416 writer.WriteAttributeString("Id", this.idField);
29417 }
29418 if (this.actionFieldSet)
29419 {
29420 if ((this.actionField == ActionType.append))
29421 {
29422 writer.WriteAttributeString("Action", "append");
29423 }
29424 if ((this.actionField == ActionType.createKey))
29425 {
29426 writer.WriteAttributeString("Action", "createKey");
29427 }
29428 if ((this.actionField == ActionType.createKeyAndRemoveKeyOnUninstall))
29429 {
29430 writer.WriteAttributeString("Action", "createKeyAndRemoveKeyOnUninstall");
29431 }
29432 if ((this.actionField == ActionType.prepend))
29433 {
29434 writer.WriteAttributeString("Action", "prepend");
29435 }
29436 if ((this.actionField == ActionType.remove))
29437 {
29438 writer.WriteAttributeString("Action", "remove");
29439 }
29440 if ((this.actionField == ActionType.removeKeyOnInstall))
29441 {
29442 writer.WriteAttributeString("Action", "removeKeyOnInstall");
29443 }
29444 if ((this.actionField == ActionType.removeKeyOnUninstall))
29445 {
29446 writer.WriteAttributeString("Action", "removeKeyOnUninstall");
29447 }
29448 if ((this.actionField == ActionType.write))
29449 {
29450 writer.WriteAttributeString("Action", "write");
29451 }
29452 }
29453 if (this.keyFieldSet)
29454 {
29455 writer.WriteAttributeString("Key", this.keyField);
29456 }
29457 if (this.keyPathFieldSet)
29458 {
29459 if ((this.keyPathField == YesNoType.no))
29460 {
29461 writer.WriteAttributeString("KeyPath", "no");
29462 }
29463 if ((this.keyPathField == YesNoType.yes))
29464 {
29465 writer.WriteAttributeString("KeyPath", "yes");
29466 }
29467 }
29468 if (this.nameFieldSet)
29469 {
29470 writer.WriteAttributeString("Name", this.nameField);
29471 }
29472 if (this.rootFieldSet)
29473 {
29474 if ((this.rootField == RegistryRootType.HKMU))
29475 {
29476 writer.WriteAttributeString("Root", "HKMU");
29477 }
29478 if ((this.rootField == RegistryRootType.HKCR))
29479 {
29480 writer.WriteAttributeString("Root", "HKCR");
29481 }
29482 if ((this.rootField == RegistryRootType.HKCU))
29483 {
29484 writer.WriteAttributeString("Root", "HKCU");
29485 }
29486 if ((this.rootField == RegistryRootType.HKLM))
29487 {
29488 writer.WriteAttributeString("Root", "HKLM");
29489 }
29490 if ((this.rootField == RegistryRootType.HKU))
29491 {
29492 writer.WriteAttributeString("Root", "HKU");
29493 }
29494 }
29495 if (this.typeFieldSet)
29496 {
29497 if ((this.typeField == TypeType.@string))
29498 {
29499 writer.WriteAttributeString("Type", "string");
29500 }
29501 if ((this.typeField == TypeType.integer))
29502 {
29503 writer.WriteAttributeString("Type", "integer");
29504 }
29505 if ((this.typeField == TypeType.binary))
29506 {
29507 writer.WriteAttributeString("Type", "binary");
29508 }
29509 if ((this.typeField == TypeType.expandable))
29510 {
29511 writer.WriteAttributeString("Type", "expandable");
29512 }
29513 if ((this.typeField == TypeType.multiString))
29514 {
29515 writer.WriteAttributeString("Type", "multiString");
29516 }
29517 }
29518 if (this.valueFieldSet)
29519 {
29520 writer.WriteAttributeString("Value", this.valueField);
29521 }
29522 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
29523 {
29524 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
29525 childElement.OutputXml(writer);
29526 }
29527 writer.WriteEndElement();
29528 }
29529
29530 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
29531 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
29532 void ISetAttributes.SetAttribute(string name, string value)
29533 {
29534 if (String.IsNullOrEmpty(name))
29535 {
29536 throw new ArgumentNullException("name");
29537 }
29538 if (("Id" == name))
29539 {
29540 this.idField = value;
29541 this.idFieldSet = true;
29542 }
29543 if (("Action" == name))
29544 {
29545 this.actionField = Registry.ParseActionType(value);
29546 this.actionFieldSet = true;
29547 }
29548 if (("Key" == name))
29549 {
29550 this.keyField = value;
29551 this.keyFieldSet = true;
29552 }
29553 if (("KeyPath" == name))
29554 {
29555 this.keyPathField = Enums.ParseYesNoType(value);
29556 this.keyPathFieldSet = true;
29557 }
29558 if (("Name" == name))
29559 {
29560 this.nameField = value;
29561 this.nameFieldSet = true;
29562 }
29563 if (("Root" == name))
29564 {
29565 this.rootField = Enums.ParseRegistryRootType(value);
29566 this.rootFieldSet = true;
29567 }
29568 if (("Type" == name))
29569 {
29570 this.typeField = Registry.ParseTypeType(value);
29571 this.typeFieldSet = true;
29572 }
29573 if (("Value" == name))
29574 {
29575 this.valueField = value;
29576 this.valueFieldSet = true;
29577 }
29578 }
29579
29580 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
29581 public enum ActionType
29582 {
29583
29584 IllegalValue = int.MaxValue,
29585
29586 NotSet = -1,
29587
29588 /// <summary>
29589 /// Appends the specified value(s) to a multiString registry key.
29590 /// </summary>
29591 append,
29592
29593 /// <summary>
29594 /// Creates the key, if absent, when the parent component is installed.
29595 /// </summary>
29596 createKey,
29597
29598 /// <summary>
29599 /// 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.
29600 /// </summary>
29601 createKeyAndRemoveKeyOnUninstall,
29602
29603 /// <summary>
29604 /// Prepends the specified value(s) to a multiString registry key.
29605 /// </summary>
29606 prepend,
29607
29608 /// <summary>
29609 /// Removes a registry name when the parent component is installed.
29610 /// </summary>
29611 remove,
29612
29613 /// <summary>
29614 /// Removes a key with all its values and subkeys when the parent component is installed.
29615 /// </summary>
29616 removeKeyOnInstall,
29617
29618 /// <summary>
29619 /// Removes a key with all its values and subkeys when the parent component is uninstalled.
29620 /// </summary>
29621 removeKeyOnUninstall,
29622
29623 /// <summary>
29624 /// Writes a registry value.
29625 /// </summary>
29626 write,
29627 }
29628
29629 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
29630 public enum TypeType
29631 {
29632
29633 IllegalValue = int.MaxValue,
29634
29635 NotSet = -1,
29636
29637 /// <summary>
29638 /// The value is interpreted and stored as a string (REG_SZ).
29639 /// </summary>
29640 @string,
29641
29642 /// <summary>
29643 /// The value is interpreted and stored as an integer (REG_DWORD).
29644 /// </summary>
29645 integer,
29646
29647 /// <summary>
29648 /// The value is interpreted and stored as a hexadecimal value (REG_BINARY).
29649 /// </summary>
29650 binary,
29651
29652 /// <summary>
29653 /// The value is interpreted and stored as an expandable string (REG_EXPAND_SZ).
29654 /// </summary>
29655 expandable,
29656
29657 /// <summary>
29658 /// The value is interpreted and stored as a multiple strings (REG_MULTI_SZ).
29659 /// Please note that this value will only result in a multi-string value if there is more than one registry value
29660 /// or the Action attribute's value is 'append' or 'prepend'. Otherwise a string value will be created.
29661 /// </summary>
29662 multiString,
29663 }
29664 }
29665
29666 /// <summary>
29667 /// Remove a file(s) if the parent component is selected for installation or removal. Multiple files can be removed
29668 /// by specifying a wildcard for the value of the Name attribute. By default, the source
29669 /// directory of the file is the directory of the parent component. This can be overridden by specifying the
29670 /// Directory attribute with a value corresponding to the Id of the source directory, or by specifying the Property
29671 /// attribute with a value corresponding to a property that will have a value that resolves to the full path
29672 /// to the source directory.
29673 /// </summary>
29674 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
29675 public class RemoveFile : ISchemaElement, ISetAttributes
29676 {
29677
29678 private string idField;
29679
29680 private bool idFieldSet;
29681
29682 private string directoryField;
29683
29684 private bool directoryFieldSet;
29685
29686 private string propertyField;
29687
29688 private bool propertyFieldSet;
29689
29690 private string nameField;
29691
29692 private bool nameFieldSet;
29693
29694 private string shortNameField;
29695
29696 private bool shortNameFieldSet;
29697
29698 private InstallUninstallType onField;
29699
29700 private bool onFieldSet;
29701
29702 private ISchemaElement parentElement;
29703
29704 /// <summary>
29705 /// Primary key used to identify this particular entry.
29706 /// </summary>
29707 public string Id
29708 {
29709 get
29710 {
29711 return this.idField;
29712 }
29713 set
29714 {
29715 this.idFieldSet = true;
29716 this.idField = value;
29717 }
29718 }
29719
29720 /// <summary>
29721 /// Overrides the directory of the parent component with a specific Directory. This Directory must exist in the
29722 /// installer database at creation time. This attribute cannot be specified in conjunction with the Property attribute.
29723 /// </summary>
29724 public string Directory
29725 {
29726 get
29727 {
29728 return this.directoryField;
29729 }
29730 set
29731 {
29732 this.directoryFieldSet = true;
29733 this.directoryField = value;
29734 }
29735 }
29736
29737 /// <summary>
29738 /// Overrides the directory of the parent component with the value of the specified property. The property
29739 /// should have a value that resolves to the full path of the source directory. The property does not have
29740 /// to exist in the installer database at creation time; it could be created at installation time by a custom
29741 /// action, on the command line, etc. This attribute cannot be specified in conjunction with the Directory attribute.
29742 /// </summary>
29743 public string Property
29744 {
29745 get
29746 {
29747 return this.propertyField;
29748 }
29749 set
29750 {
29751 this.propertyFieldSet = true;
29752 this.propertyField = value;
29753 }
29754 }
29755
29756 /// <summary>
29757 /// This value should be set to the localizable name of the file(s) to be removed. All of the files that
29758 /// match the wild card will be removed from the specified directory. The value is a filename that may also
29759 /// contain the wild card characters "?" for any single character or "*" for zero or more occurrences of any character.
29760 /// In prior versions of the WiX toolset, this attribute specified the short file name.
29761 /// This attribute's value may now be either a short or long file name.
29762 /// If a short file name is specified, the ShortName attribute may not be specified.
29763 /// Also, if this value is a long file name, the ShortName attribute may be omitted to
29764 /// allow WiX to attempt to generate a unique short file name.
29765 /// However, if you wish to manually specify the short file name, then the ShortName attribute may be specified.
29766 /// </summary>
29767 public string Name
29768 {
29769 get
29770 {
29771 return this.nameField;
29772 }
29773 set
29774 {
29775 this.nameFieldSet = true;
29776 this.nameField = value;
29777 }
29778 }
29779
29780 /// <summary>
29781 /// The short file name of the file in 8.3 format.
29782 /// This attribute should only be set if you want to manually specify the short file name.
29783 /// </summary>
29784 public string ShortName
29785 {
29786 get
29787 {
29788 return this.shortNameField;
29789 }
29790 set
29791 {
29792 this.shortNameFieldSet = true;
29793 this.shortNameField = value;
29794 }
29795 }
29796
29797 /// <summary>
29798 /// This value determines the time at which the file(s) may be removed. For 'install', the file will
29799 /// be removed only when the parent component is being installed (msiInstallStateLocal or
29800 /// msiInstallStateSource); for 'uninstall', the file will be removed only when the parent component
29801 /// is being removed (msiInstallStateAbsent); for 'both', the file will be removed in both cases.
29802 /// </summary>
29803 public InstallUninstallType On
29804 {
29805 get
29806 {
29807 return this.onField;
29808 }
29809 set
29810 {
29811 this.onFieldSet = true;
29812 this.onField = value;
29813 }
29814 }
29815
29816 public virtual ISchemaElement ParentElement
29817 {
29818 get
29819 {
29820 return this.parentElement;
29821 }
29822 set
29823 {
29824 this.parentElement = value;
29825 }
29826 }
29827
29828 /// <summary>
29829 /// Processes this element and all child elements into an XmlWriter.
29830 /// </summary>
29831 public virtual void OutputXml(XmlWriter writer)
29832 {
29833 if ((null == writer))
29834 {
29835 throw new ArgumentNullException("writer");
29836 }
29837 writer.WriteStartElement("RemoveFile", "http://wixtoolset.org/schemas/v4/wxs");
29838 if (this.idFieldSet)
29839 {
29840 writer.WriteAttributeString("Id", this.idField);
29841 }
29842 if (this.directoryFieldSet)
29843 {
29844 writer.WriteAttributeString("Directory", this.directoryField);
29845 }
29846 if (this.propertyFieldSet)
29847 {
29848 writer.WriteAttributeString("Property", this.propertyField);
29849 }
29850 if (this.nameFieldSet)
29851 {
29852 writer.WriteAttributeString("Name", this.nameField);
29853 }
29854 if (this.shortNameFieldSet)
29855 {
29856 writer.WriteAttributeString("ShortName", this.shortNameField);
29857 }
29858 if (this.onFieldSet)
29859 {
29860 if ((this.onField == InstallUninstallType.install))
29861 {
29862 writer.WriteAttributeString("On", "install");
29863 }
29864 if ((this.onField == InstallUninstallType.uninstall))
29865 {
29866 writer.WriteAttributeString("On", "uninstall");
29867 }
29868 if ((this.onField == InstallUninstallType.both))
29869 {
29870 writer.WriteAttributeString("On", "both");
29871 }
29872 }
29873 writer.WriteEndElement();
29874 }
29875
29876 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
29877 void ISetAttributes.SetAttribute(string name, string value)
29878 {
29879 if (String.IsNullOrEmpty(name))
29880 {
29881 throw new ArgumentNullException("name");
29882 }
29883 if (("Id" == name))
29884 {
29885 this.idField = value;
29886 this.idFieldSet = true;
29887 }
29888 if (("Directory" == name))
29889 {
29890 this.directoryField = value;
29891 this.directoryFieldSet = true;
29892 }
29893 if (("Property" == name))
29894 {
29895 this.propertyField = value;
29896 this.propertyFieldSet = true;
29897 }
29898 if (("Name" == name))
29899 {
29900 this.nameField = value;
29901 this.nameFieldSet = true;
29902 }
29903 if (("ShortName" == name))
29904 {
29905 this.shortNameField = value;
29906 this.shortNameFieldSet = true;
29907 }
29908 if (("On" == name))
29909 {
29910 this.onField = Enums.ParseInstallUninstallType(value);
29911 this.onFieldSet = true;
29912 }
29913 }
29914 }
29915
29916 /// <summary>
29917 /// Remove an empty folder if the parent component is selected for installation or removal. By default, the folder
29918 /// is the directory of the parent component. This can be overridden by specifying the Directory attribute
29919 /// with a value corresponding to the Id of the directory, or by specifying the Property attribute with a value
29920 /// corresponding to a property that will have a value that resolves to the full path of the folder.
29921 /// </summary>
29922 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
29923 public class RemoveFolder : ISchemaElement, ISetAttributes
29924 {
29925
29926 private string idField;
29927
29928 private bool idFieldSet;
29929
29930 private string directoryField;
29931
29932 private bool directoryFieldSet;
29933
29934 private string propertyField;
29935
29936 private bool propertyFieldSet;
29937
29938 private InstallUninstallType onField;
29939
29940 private bool onFieldSet;
29941
29942 private ISchemaElement parentElement;
29943
29944 /// <summary>
29945 /// Primary key used to identify this particular entry.
29946 /// </summary>
29947 public string Id
29948 {
29949 get
29950 {
29951 return this.idField;
29952 }
29953 set
29954 {
29955 this.idFieldSet = true;
29956 this.idField = value;
29957 }
29958 }
29959
29960 /// <summary>
29961 /// Overrides the directory of the parent component with a specific Directory. This Directory must exist in the
29962 /// installer database at creation time. This attribute cannot be specified in conjunction with the Property attribute.
29963 /// </summary>
29964 public string Directory
29965 {
29966 get
29967 {
29968 return this.directoryField;
29969 }
29970 set
29971 {
29972 this.directoryFieldSet = true;
29973 this.directoryField = value;
29974 }
29975 }
29976
29977 /// <summary>
29978 /// Overrides the directory of the parent component with the value of the specified property. The property
29979 /// should have a value that resolves to the full path of the source directory. The property does not have
29980 /// to exist in the installer database at creation time; it could be created at installation time by a custom
29981 /// action, on the command line, etc. This attribute cannot be specified in conjunction with the Directory attribute.
29982 /// </summary>
29983 public string Property
29984 {
29985 get
29986 {
29987 return this.propertyField;
29988 }
29989 set
29990 {
29991 this.propertyFieldSet = true;
29992 this.propertyField = value;
29993 }
29994 }
29995
29996 /// <summary>
29997 /// This value determines the time at which the folder may be removed, based on the install/uninstall of the parent component.
29998 /// For 'install', the folder will be removed only when the parent component is being installed (msiInstallStateLocal or
29999 /// msiInstallStateSource); for 'uninstall', the folder will be removed only when the parent component
30000 /// is being removed (msiInstallStateAbsent); for 'both', the folder will be removed in both cases.
30001 /// </summary>
30002 public InstallUninstallType On
30003 {
30004 get
30005 {
30006 return this.onField;
30007 }
30008 set
30009 {
30010 this.onFieldSet = true;
30011 this.onField = value;
30012 }
30013 }
30014
30015 public virtual ISchemaElement ParentElement
30016 {
30017 get
30018 {
30019 return this.parentElement;
30020 }
30021 set
30022 {
30023 this.parentElement = value;
30024 }
30025 }
30026
30027 /// <summary>
30028 /// Processes this element and all child elements into an XmlWriter.
30029 /// </summary>
30030 public virtual void OutputXml(XmlWriter writer)
30031 {
30032 if ((null == writer))
30033 {
30034 throw new ArgumentNullException("writer");
30035 }
30036 writer.WriteStartElement("RemoveFolder", "http://wixtoolset.org/schemas/v4/wxs");
30037 if (this.idFieldSet)
30038 {
30039 writer.WriteAttributeString("Id", this.idField);
30040 }
30041 if (this.directoryFieldSet)
30042 {
30043 writer.WriteAttributeString("Directory", this.directoryField);
30044 }
30045 if (this.propertyFieldSet)
30046 {
30047 writer.WriteAttributeString("Property", this.propertyField);
30048 }
30049 if (this.onFieldSet)
30050 {
30051 if ((this.onField == InstallUninstallType.install))
30052 {
30053 writer.WriteAttributeString("On", "install");
30054 }
30055 if ((this.onField == InstallUninstallType.uninstall))
30056 {
30057 writer.WriteAttributeString("On", "uninstall");
30058 }
30059 if ((this.onField == InstallUninstallType.both))
30060 {
30061 writer.WriteAttributeString("On", "both");
30062 }
30063 }
30064 writer.WriteEndElement();
30065 }
30066
30067 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
30068 void ISetAttributes.SetAttribute(string name, string value)
30069 {
30070 if (String.IsNullOrEmpty(name))
30071 {
30072 throw new ArgumentNullException("name");
30073 }
30074 if (("Id" == name))
30075 {
30076 this.idField = value;
30077 this.idFieldSet = true;
30078 }
30079 if (("Directory" == name))
30080 {
30081 this.directoryField = value;
30082 this.directoryFieldSet = true;
30083 }
30084 if (("Property" == name))
30085 {
30086 this.propertyField = value;
30087 this.propertyFieldSet = true;
30088 }
30089 if (("On" == name))
30090 {
30091 this.onField = Enums.ParseInstallUninstallType(value);
30092 this.onFieldSet = true;
30093 }
30094 }
30095 }
30096
30097 /// <summary>
30098 /// Create folder as part of parent Component.
30099 /// </summary>
30100 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
30101 public class CreateFolder : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
30102 {
30103
30104 private ElementCollection children;
30105
30106 private string directoryField;
30107
30108 private bool directoryFieldSet;
30109
30110 private ISchemaElement parentElement;
30111
30112 public CreateFolder()
30113 {
30114 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
30115 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Shortcut)));
30116 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Permission)));
30117 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx)));
30118 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
30119 this.children = childCollection0;
30120 }
30121
30122 public virtual IEnumerable Children
30123 {
30124 get
30125 {
30126 return this.children;
30127 }
30128 }
30129
30130 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
30131 public virtual IEnumerable this[System.Type childType]
30132 {
30133 get
30134 {
30135 return this.children.Filter(childType);
30136 }
30137 }
30138
30139 /// <summary>
30140 /// Identifier of Directory to create. Defaults to Directory of parent Component.
30141 /// </summary>
30142 public string Directory
30143 {
30144 get
30145 {
30146 return this.directoryField;
30147 }
30148 set
30149 {
30150 this.directoryFieldSet = true;
30151 this.directoryField = value;
30152 }
30153 }
30154
30155 public virtual ISchemaElement ParentElement
30156 {
30157 get
30158 {
30159 return this.parentElement;
30160 }
30161 set
30162 {
30163 this.parentElement = value;
30164 }
30165 }
30166
30167 public virtual void AddChild(ISchemaElement child)
30168 {
30169 if ((null == child))
30170 {
30171 throw new ArgumentNullException("child");
30172 }
30173 this.children.AddElement(child);
30174 child.ParentElement = this;
30175 }
30176
30177 public virtual void RemoveChild(ISchemaElement child)
30178 {
30179 if ((null == child))
30180 {
30181 throw new ArgumentNullException("child");
30182 }
30183 this.children.RemoveElement(child);
30184 child.ParentElement = null;
30185 }
30186
30187 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
30188 ISchemaElement ICreateChildren.CreateChild(string childName)
30189 {
30190 if (String.IsNullOrEmpty(childName))
30191 {
30192 throw new ArgumentNullException("childName");
30193 }
30194 ISchemaElement childValue = null;
30195 if (("Shortcut" == childName))
30196 {
30197 childValue = new Shortcut();
30198 }
30199 if (("Permission" == childName))
30200 {
30201 childValue = new Permission();
30202 }
30203 if (("PermissionEx" == childName))
30204 {
30205 childValue = new PermissionEx();
30206 }
30207 if ((null == childValue))
30208 {
30209 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
30210 }
30211 return childValue;
30212 }
30213
30214 /// <summary>
30215 /// Processes this element and all child elements into an XmlWriter.
30216 /// </summary>
30217 public virtual void OutputXml(XmlWriter writer)
30218 {
30219 if ((null == writer))
30220 {
30221 throw new ArgumentNullException("writer");
30222 }
30223 writer.WriteStartElement("CreateFolder", "http://wixtoolset.org/schemas/v4/wxs");
30224 if (this.directoryFieldSet)
30225 {
30226 writer.WriteAttributeString("Directory", this.directoryField);
30227 }
30228 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
30229 {
30230 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
30231 childElement.OutputXml(writer);
30232 }
30233 writer.WriteEndElement();
30234 }
30235
30236 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
30237 void ISetAttributes.SetAttribute(string name, string value)
30238 {
30239 if (String.IsNullOrEmpty(name))
30240 {
30241 throw new ArgumentNullException("name");
30242 }
30243 if (("Directory" == name))
30244 {
30245 this.directoryField = value;
30246 this.directoryFieldSet = true;
30247 }
30248 }
30249 }
30250
30251 /// <summary>
30252 /// Optional way for defining AppData, generally used for complex CDATA.
30253 /// </summary>
30254 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
30255 public class AppData : ISetAttributes, ISchemaElement
30256 {
30257
30258 private ISchemaElement parentElement;
30259
30260 private string contentField;
30261
30262 private bool contentFieldSet;
30263
30264 public virtual ISchemaElement ParentElement
30265 {
30266 get
30267 {
30268 return this.parentElement;
30269 }
30270 set
30271 {
30272 this.parentElement = value;
30273 }
30274 }
30275
30276 /// <summary>
30277 /// Optional way for defining AppData, generally used for complex CDATA.
30278 /// </summary>
30279 public string Content
30280 {
30281 get
30282 {
30283 return this.contentField;
30284 }
30285 set
30286 {
30287 this.contentFieldSet = true;
30288 this.contentField = value;
30289 }
30290 }
30291
30292 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
30293 void ISetAttributes.SetAttribute(string name, string value)
30294 {
30295 if (String.IsNullOrEmpty(name))
30296 {
30297 throw new ArgumentNullException("name");
30298 }
30299 if (("Content" == name))
30300 {
30301 this.contentField = value;
30302 this.contentFieldSet = true;
30303 }
30304 }
30305
30306 /// <summary>
30307 /// Processes this element and all child elements into an XmlWriter.
30308 /// </summary>
30309 public virtual void OutputXml(XmlWriter writer)
30310 {
30311 if ((null == writer))
30312 {
30313 throw new ArgumentNullException("writer");
30314 }
30315 writer.WriteStartElement("AppData", "http://wixtoolset.org/schemas/v4/wxs");
30316 if (this.contentFieldSet)
30317 {
30318 writer.WriteString(this.contentField);
30319 }
30320 writer.WriteEndElement();
30321 }
30322 }
30323
30324 /// <summary>
30325 /// Qualified published component for parent Component
30326 /// </summary>
30327 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
30328 public class Category : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
30329 {
30330
30331 private ElementCollection children;
30332
30333 private string idField;
30334
30335 private bool idFieldSet;
30336
30337 private string qualifierField;
30338
30339 private bool qualifierFieldSet;
30340
30341 private string appDataField;
30342
30343 private bool appDataFieldSet;
30344
30345 private string featureField;
30346
30347 private bool featureFieldSet;
30348
30349 private ISchemaElement parentElement;
30350
30351 public Category()
30352 {
30353 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
30354 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(AppData)));
30355 this.children = childCollection0;
30356 }
30357
30358 public virtual IEnumerable Children
30359 {
30360 get
30361 {
30362 return this.children;
30363 }
30364 }
30365
30366 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
30367 public virtual IEnumerable this[System.Type childType]
30368 {
30369 get
30370 {
30371 return this.children.Filter(childType);
30372 }
30373 }
30374
30375 /// <summary>
30376 /// A string GUID that represents the category of components being grouped together.
30377 /// </summary>
30378 public string Id
30379 {
30380 get
30381 {
30382 return this.idField;
30383 }
30384 set
30385 {
30386 this.idFieldSet = true;
30387 this.idField = value;
30388 }
30389 }
30390
30391 /// <summary>
30392 /// 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.
30393 /// </summary>
30394 public string Qualifier
30395 {
30396 get
30397 {
30398 return this.qualifierField;
30399 }
30400 set
30401 {
30402 this.qualifierFieldSet = true;
30403 this.qualifierField = value;
30404 }
30405 }
30406
30407 /// <summary>
30408 /// 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.
30409 /// </summary>
30410 public string AppData
30411 {
30412 get
30413 {
30414 return this.appDataField;
30415 }
30416 set
30417 {
30418 this.appDataFieldSet = true;
30419 this.appDataField = value;
30420 }
30421 }
30422
30423 /// <summary>
30424 /// Feature that controls the advertisement of the category. Defaults to the primary Feature for the parent Component .
30425 /// </summary>
30426 public string Feature
30427 {
30428 get
30429 {
30430 return this.featureField;
30431 }
30432 set
30433 {
30434 this.featureFieldSet = true;
30435 this.featureField = value;
30436 }
30437 }
30438
30439 public virtual ISchemaElement ParentElement
30440 {
30441 get
30442 {
30443 return this.parentElement;
30444 }
30445 set
30446 {
30447 this.parentElement = value;
30448 }
30449 }
30450
30451 public virtual void AddChild(ISchemaElement child)
30452 {
30453 if ((null == child))
30454 {
30455 throw new ArgumentNullException("child");
30456 }
30457 this.children.AddElement(child);
30458 child.ParentElement = this;
30459 }
30460
30461 public virtual void RemoveChild(ISchemaElement child)
30462 {
30463 if ((null == child))
30464 {
30465 throw new ArgumentNullException("child");
30466 }
30467 this.children.RemoveElement(child);
30468 child.ParentElement = null;
30469 }
30470
30471 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
30472 ISchemaElement ICreateChildren.CreateChild(string childName)
30473 {
30474 if (String.IsNullOrEmpty(childName))
30475 {
30476 throw new ArgumentNullException("childName");
30477 }
30478 ISchemaElement childValue = null;
30479 if (("AppData" == childName))
30480 {
30481 childValue = new AppData();
30482 }
30483 if ((null == childValue))
30484 {
30485 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
30486 }
30487 return childValue;
30488 }
30489
30490 /// <summary>
30491 /// Processes this element and all child elements into an XmlWriter.
30492 /// </summary>
30493 public virtual void OutputXml(XmlWriter writer)
30494 {
30495 if ((null == writer))
30496 {
30497 throw new ArgumentNullException("writer");
30498 }
30499 writer.WriteStartElement("Category", "http://wixtoolset.org/schemas/v4/wxs");
30500 if (this.idFieldSet)
30501 {
30502 writer.WriteAttributeString("Id", this.idField);
30503 }
30504 if (this.qualifierFieldSet)
30505 {
30506 writer.WriteAttributeString("Qualifier", this.qualifierField);
30507 }
30508 if (this.appDataFieldSet)
30509 {
30510 writer.WriteAttributeString("AppData", this.appDataField);
30511 }
30512 if (this.featureFieldSet)
30513 {
30514 writer.WriteAttributeString("Feature", this.featureField);
30515 }
30516 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
30517 {
30518 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
30519 childElement.OutputXml(writer);
30520 }
30521 writer.WriteEndElement();
30522 }
30523
30524 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
30525 void ISetAttributes.SetAttribute(string name, string value)
30526 {
30527 if (String.IsNullOrEmpty(name))
30528 {
30529 throw new ArgumentNullException("name");
30530 }
30531 if (("Id" == name))
30532 {
30533 this.idField = value;
30534 this.idFieldSet = true;
30535 }
30536 if (("Qualifier" == name))
30537 {
30538 this.qualifierField = value;
30539 this.qualifierFieldSet = true;
30540 }
30541 if (("AppData" == name))
30542 {
30543 this.appDataField = value;
30544 this.appDataFieldSet = true;
30545 }
30546 if (("Feature" == name))
30547 {
30548 this.featureField = value;
30549 this.featureFieldSet = true;
30550 }
30551 }
30552 }
30553
30554 /// <summary>
30555 /// MIME content-type for an Extension
30556 /// </summary>
30557 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
30558 public class MIME : ISchemaElement, ISetAttributes
30559 {
30560
30561 private YesNoType advertiseField;
30562
30563 private bool advertiseFieldSet;
30564
30565 private string contentTypeField;
30566
30567 private bool contentTypeFieldSet;
30568
30569 private string classField;
30570
30571 private bool classFieldSet;
30572
30573 private YesNoType defaultField;
30574
30575 private bool defaultFieldSet;
30576
30577 private ISchemaElement parentElement;
30578
30579 /// <summary>
30580 /// 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.
30581 /// </summary>
30582 public YesNoType Advertise
30583 {
30584 get
30585 {
30586 return this.advertiseField;
30587 }
30588 set
30589 {
30590 this.advertiseFieldSet = true;
30591 this.advertiseField = value;
30592 }
30593 }
30594
30595 /// <summary>
30596 /// This is the identifier for the MIME content. It is commonly written in the form of type/format.
30597 /// </summary>
30598 public string ContentType
30599 {
30600 get
30601 {
30602 return this.contentTypeField;
30603 }
30604 set
30605 {
30606 this.contentTypeFieldSet = true;
30607 this.contentTypeField = value;
30608 }
30609 }
30610
30611 /// <summary>
30612 /// Class ID for the COM server that is to be associated with the MIME content.
30613 /// </summary>
30614 public string Class
30615 {
30616 get
30617 {
30618 return this.classField;
30619 }
30620 set
30621 {
30622 this.classFieldSet = true;
30623 this.classField = value;
30624 }
30625 }
30626
30627 /// <summary>
30628 /// If 'yes', become the content type for the parent Extension. The default value is 'no'.
30629 /// </summary>
30630 public YesNoType Default
30631 {
30632 get
30633 {
30634 return this.defaultField;
30635 }
30636 set
30637 {
30638 this.defaultFieldSet = true;
30639 this.defaultField = value;
30640 }
30641 }
30642
30643 public virtual ISchemaElement ParentElement
30644 {
30645 get
30646 {
30647 return this.parentElement;
30648 }
30649 set
30650 {
30651 this.parentElement = value;
30652 }
30653 }
30654
30655 /// <summary>
30656 /// Processes this element and all child elements into an XmlWriter.
30657 /// </summary>
30658 public virtual void OutputXml(XmlWriter writer)
30659 {
30660 if ((null == writer))
30661 {
30662 throw new ArgumentNullException("writer");
30663 }
30664 writer.WriteStartElement("MIME", "http://wixtoolset.org/schemas/v4/wxs");
30665 if (this.advertiseFieldSet)
30666 {
30667 if ((this.advertiseField == YesNoType.no))
30668 {
30669 writer.WriteAttributeString("Advertise", "no");
30670 }
30671 if ((this.advertiseField == YesNoType.yes))
30672 {
30673 writer.WriteAttributeString("Advertise", "yes");
30674 }
30675 }
30676 if (this.contentTypeFieldSet)
30677 {
30678 writer.WriteAttributeString("ContentType", this.contentTypeField);
30679 }
30680 if (this.classFieldSet)
30681 {
30682 writer.WriteAttributeString("Class", this.classField);
30683 }
30684 if (this.defaultFieldSet)
30685 {
30686 if ((this.defaultField == YesNoType.no))
30687 {
30688 writer.WriteAttributeString("Default", "no");
30689 }
30690 if ((this.defaultField == YesNoType.yes))
30691 {
30692 writer.WriteAttributeString("Default", "yes");
30693 }
30694 }
30695 writer.WriteEndElement();
30696 }
30697
30698 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
30699 void ISetAttributes.SetAttribute(string name, string value)
30700 {
30701 if (String.IsNullOrEmpty(name))
30702 {
30703 throw new ArgumentNullException("name");
30704 }
30705 if (("Advertise" == name))
30706 {
30707 this.advertiseField = Enums.ParseYesNoType(value);
30708 this.advertiseFieldSet = true;
30709 }
30710 if (("ContentType" == name))
30711 {
30712 this.contentTypeField = value;
30713 this.contentTypeFieldSet = true;
30714 }
30715 if (("Class" == name))
30716 {
30717 this.classField = value;
30718 this.classFieldSet = true;
30719 }
30720 if (("Default" == name))
30721 {
30722 this.defaultField = Enums.ParseYesNoType(value);
30723 this.defaultFieldSet = true;
30724 }
30725 }
30726 }
30727
30728 /// <summary>
30729 /// Verb definition for an Extension. When advertised, this element creates a row in the
30730 /// </summary>
30731 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
30732 public class Verb : ISchemaElement, ISetAttributes
30733 {
30734
30735 private string idField;
30736
30737 private bool idFieldSet;
30738
30739 private string commandField;
30740
30741 private bool commandFieldSet;
30742
30743 private string argumentField;
30744
30745 private bool argumentFieldSet;
30746
30747 private int sequenceField;
30748
30749 private bool sequenceFieldSet;
30750
30751 private string targetField;
30752
30753 private bool targetFieldSet;
30754
30755 private string targetFileField;
30756
30757 private bool targetFileFieldSet;
30758
30759 private string targetPropertyField;
30760
30761 private bool targetPropertyFieldSet;
30762
30763 private ISchemaElement parentElement;
30764
30765 /// <summary>
30766 /// The verb for the command.
30767 /// </summary>
30768 public string Id
30769 {
30770 get
30771 {
30772 return this.idField;
30773 }
30774 set
30775 {
30776 this.idFieldSet = true;
30777 this.idField = value;
30778 }
30779 }
30780
30781 /// <summary>
30782 /// The localized text displayed on the context menu.
30783 /// </summary>
30784 public string Command
30785 {
30786 get
30787 {
30788 return this.commandField;
30789 }
30790 set
30791 {
30792 this.commandFieldSet = true;
30793 this.commandField = value;
30794 }
30795 }
30796
30797 /// <summary>
30798 /// Value for the command arguments. Note that the resolution of properties in the
30799 /// Argument field is limited. A property formatted as [Property] in this field can only be resolved if the property
30800 /// already has the intended value when the component owning the verb is installed. For example, for the argument
30801 /// "[#MyDoc.doc]" to resolve to the correct value, the same process must be installing the file MyDoc.doc and the
30802 /// component that owns the verb.
30803 /// </summary>
30804 public string Argument
30805 {
30806 get
30807 {
30808 return this.argumentField;
30809 }
30810 set
30811 {
30812 this.argumentFieldSet = true;
30813 this.argumentField = value;
30814 }
30815 }
30816
30817 /// <summary>
30818 /// The sequence of the commands. Only verbs for which the Sequence is specified
30819 /// are used to prepare an ordered list for the default value of the shell key. The Verb with the lowest value in this
30820 /// column becomes the default verb. Used only for Advertised verbs.
30821 /// </summary>
30822 public int Sequence
30823 {
30824 get
30825 {
30826 return this.sequenceField;
30827 }
30828 set
30829 {
30830 this.sequenceFieldSet = true;
30831 this.sequenceField = value;
30832 }
30833 }
30834
30835 public string Target
30836 {
30837 get
30838 {
30839 return this.targetField;
30840 }
30841 set
30842 {
30843 this.targetFieldSet = true;
30844 this.targetField = value;
30845 }
30846 }
30847
30848 /// <summary>
30849 /// Either this attribute or the TargetProperty attribute must be specified for a non-advertised verb.
30850 /// The value should be the identifier of the target file to be executed for the verb.
30851 /// </summary>
30852 public string TargetFile
30853 {
30854 get
30855 {
30856 return this.targetFileField;
30857 }
30858 set
30859 {
30860 this.targetFileFieldSet = true;
30861 this.targetFileField = value;
30862 }
30863 }
30864
30865 /// <summary>
30866 /// Either this attribute or the TargetFile attribute must be specified for a non-advertised verb.
30867 /// 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.
30868 /// </summary>
30869 public string TargetProperty
30870 {
30871 get
30872 {
30873 return this.targetPropertyField;
30874 }
30875 set
30876 {
30877 this.targetPropertyFieldSet = true;
30878 this.targetPropertyField = value;
30879 }
30880 }
30881
30882 public virtual ISchemaElement ParentElement
30883 {
30884 get
30885 {
30886 return this.parentElement;
30887 }
30888 set
30889 {
30890 this.parentElement = value;
30891 }
30892 }
30893
30894 /// <summary>
30895 /// Processes this element and all child elements into an XmlWriter.
30896 /// </summary>
30897 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
30898 public virtual void OutputXml(XmlWriter writer)
30899 {
30900 if ((null == writer))
30901 {
30902 throw new ArgumentNullException("writer");
30903 }
30904 writer.WriteStartElement("Verb", "http://wixtoolset.org/schemas/v4/wxs");
30905 if (this.idFieldSet)
30906 {
30907 writer.WriteAttributeString("Id", this.idField);
30908 }
30909 if (this.commandFieldSet)
30910 {
30911 writer.WriteAttributeString("Command", this.commandField);
30912 }
30913 if (this.argumentFieldSet)
30914 {
30915 writer.WriteAttributeString("Argument", this.argumentField);
30916 }
30917 if (this.sequenceFieldSet)
30918 {
30919 writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture));
30920 }
30921 if (this.targetFieldSet)
30922 {
30923 writer.WriteAttributeString("Target", this.targetField);
30924 }
30925 if (this.targetFileFieldSet)
30926 {
30927 writer.WriteAttributeString("TargetFile", this.targetFileField);
30928 }
30929 if (this.targetPropertyFieldSet)
30930 {
30931 writer.WriteAttributeString("TargetProperty", this.targetPropertyField);
30932 }
30933 writer.WriteEndElement();
30934 }
30935
30936 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
30937 void ISetAttributes.SetAttribute(string name, string value)
30938 {
30939 if (String.IsNullOrEmpty(name))
30940 {
30941 throw new ArgumentNullException("name");
30942 }
30943 if (("Id" == name))
30944 {
30945 this.idField = value;
30946 this.idFieldSet = true;
30947 }
30948 if (("Command" == name))
30949 {
30950 this.commandField = value;
30951 this.commandFieldSet = true;
30952 }
30953 if (("Argument" == name))
30954 {
30955 this.argumentField = value;
30956 this.argumentFieldSet = true;
30957 }
30958 if (("Sequence" == name))
30959 {
30960 this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
30961 this.sequenceFieldSet = true;
30962 }
30963 if (("Target" == name))
30964 {
30965 this.targetField = value;
30966 this.targetFieldSet = true;
30967 }
30968 if (("TargetFile" == name))
30969 {
30970 this.targetFileField = value;
30971 this.targetFileFieldSet = true;
30972 }
30973 if (("TargetProperty" == name))
30974 {
30975 this.targetPropertyField = value;
30976 this.targetPropertyFieldSet = true;
30977 }
30978 }
30979 }
30980
30981 /// <summary>
30982 /// Extension for a Component
30983 /// </summary>
30984 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
30985 public class Extension : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
30986 {
30987
30988 private ElementCollection children;
30989
30990 private string idField;
30991
30992 private bool idFieldSet;
30993
30994 private string contentTypeField;
30995
30996 private bool contentTypeFieldSet;
30997
30998 private YesNoType advertiseField;
30999
31000 private bool advertiseFieldSet;
31001
31002 private ISchemaElement parentElement;
31003
31004 public Extension()
31005 {
31006 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
31007 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MIME)));
31008 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Verb)));
31009 this.children = childCollection0;
31010 }
31011
31012 public virtual IEnumerable Children
31013 {
31014 get
31015 {
31016 return this.children;
31017 }
31018 }
31019
31020 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
31021 public virtual IEnumerable this[System.Type childType]
31022 {
31023 get
31024 {
31025 return this.children.Filter(childType);
31026 }
31027 }
31028
31029 /// <summary>
31030 /// This is simply the file extension, like "doc" or "xml". Do not include the preceding period.
31031 /// </summary>
31032 public string Id
31033 {
31034 get
31035 {
31036 return this.idField;
31037 }
31038 set
31039 {
31040 this.idFieldSet = true;
31041 this.idField = value;
31042 }
31043 }
31044
31045 /// <summary>
31046 /// The MIME type that is to be written.
31047 /// </summary>
31048 public string ContentType
31049 {
31050 get
31051 {
31052 return this.contentTypeField;
31053 }
31054 set
31055 {
31056 this.contentTypeFieldSet = true;
31057 this.contentTypeField = value;
31058 }
31059 }
31060
31061 /// <summary>
31062 /// Whether this extension is to be advertised. The default is "no".
31063 /// </summary>
31064 public YesNoType Advertise
31065 {
31066 get
31067 {
31068 return this.advertiseField;
31069 }
31070 set
31071 {
31072 this.advertiseFieldSet = true;
31073 this.advertiseField = value;
31074 }
31075 }
31076
31077 public virtual ISchemaElement ParentElement
31078 {
31079 get
31080 {
31081 return this.parentElement;
31082 }
31083 set
31084 {
31085 this.parentElement = value;
31086 }
31087 }
31088
31089 public virtual void AddChild(ISchemaElement child)
31090 {
31091 if ((null == child))
31092 {
31093 throw new ArgumentNullException("child");
31094 }
31095 this.children.AddElement(child);
31096 child.ParentElement = this;
31097 }
31098
31099 public virtual void RemoveChild(ISchemaElement child)
31100 {
31101 if ((null == child))
31102 {
31103 throw new ArgumentNullException("child");
31104 }
31105 this.children.RemoveElement(child);
31106 child.ParentElement = null;
31107 }
31108
31109 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
31110 ISchemaElement ICreateChildren.CreateChild(string childName)
31111 {
31112 if (String.IsNullOrEmpty(childName))
31113 {
31114 throw new ArgumentNullException("childName");
31115 }
31116 ISchemaElement childValue = null;
31117 if (("MIME" == childName))
31118 {
31119 childValue = new MIME();
31120 }
31121 if (("Verb" == childName))
31122 {
31123 childValue = new Verb();
31124 }
31125 if ((null == childValue))
31126 {
31127 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
31128 }
31129 return childValue;
31130 }
31131
31132 /// <summary>
31133 /// Processes this element and all child elements into an XmlWriter.
31134 /// </summary>
31135 public virtual void OutputXml(XmlWriter writer)
31136 {
31137 if ((null == writer))
31138 {
31139 throw new ArgumentNullException("writer");
31140 }
31141 writer.WriteStartElement("Extension", "http://wixtoolset.org/schemas/v4/wxs");
31142 if (this.idFieldSet)
31143 {
31144 writer.WriteAttributeString("Id", this.idField);
31145 }
31146 if (this.contentTypeFieldSet)
31147 {
31148 writer.WriteAttributeString("ContentType", this.contentTypeField);
31149 }
31150 if (this.advertiseFieldSet)
31151 {
31152 if ((this.advertiseField == YesNoType.no))
31153 {
31154 writer.WriteAttributeString("Advertise", "no");
31155 }
31156 if ((this.advertiseField == YesNoType.yes))
31157 {
31158 writer.WriteAttributeString("Advertise", "yes");
31159 }
31160 }
31161 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
31162 {
31163 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
31164 childElement.OutputXml(writer);
31165 }
31166 writer.WriteEndElement();
31167 }
31168
31169 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
31170 void ISetAttributes.SetAttribute(string name, string value)
31171 {
31172 if (String.IsNullOrEmpty(name))
31173 {
31174 throw new ArgumentNullException("name");
31175 }
31176 if (("Id" == name))
31177 {
31178 this.idField = value;
31179 this.idFieldSet = true;
31180 }
31181 if (("ContentType" == name))
31182 {
31183 this.contentTypeField = value;
31184 this.contentTypeFieldSet = true;
31185 }
31186 if (("Advertise" == name))
31187 {
31188 this.advertiseField = Enums.ParseYesNoType(value);
31189 this.advertiseFieldSet = true;
31190 }
31191 }
31192 }
31193
31194 /// <summary>
31195 /// Register a type library (TypeLib). Please note that in order to properly use this
31196 /// non-advertised, you will need use this element with Advertise='no' and also author the
31197 /// appropriate child Interface elements by extracting them from the type library itself.
31198 /// </summary>
31199 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
31200 public class TypeLib : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
31201 {
31202
31203 private ElementCollection children;
31204
31205 private string idField;
31206
31207 private bool idFieldSet;
31208
31209 private YesNoType advertiseField;
31210
31211 private bool advertiseFieldSet;
31212
31213 private YesNoType controlField;
31214
31215 private bool controlFieldSet;
31216
31217 private int costField;
31218
31219 private bool costFieldSet;
31220
31221 private string descriptionField;
31222
31223 private bool descriptionFieldSet;
31224
31225 private YesNoType hasDiskImageField;
31226
31227 private bool hasDiskImageFieldSet;
31228
31229 private string helpDirectoryField;
31230
31231 private bool helpDirectoryFieldSet;
31232
31233 private YesNoType hiddenField;
31234
31235 private bool hiddenFieldSet;
31236
31237 private int languageField;
31238
31239 private bool languageFieldSet;
31240
31241 private int majorVersionField;
31242
31243 private bool majorVersionFieldSet;
31244
31245 private int minorVersionField;
31246
31247 private bool minorVersionFieldSet;
31248
31249 private int resourceIdField;
31250
31251 private bool resourceIdFieldSet;
31252
31253 private YesNoType restrictedField;
31254
31255 private bool restrictedFieldSet;
31256
31257 private ISchemaElement parentElement;
31258
31259 public TypeLib()
31260 {
31261 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
31262 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppId)));
31263 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Class)));
31264 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Interface)));
31265 this.children = childCollection0;
31266 }
31267
31268 public virtual IEnumerable Children
31269 {
31270 get
31271 {
31272 return this.children;
31273 }
31274 }
31275
31276 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
31277 public virtual IEnumerable this[System.Type childType]
31278 {
31279 get
31280 {
31281 return this.children.Filter(childType);
31282 }
31283 }
31284
31285 /// <summary>
31286 /// The GUID that identifes the type library.
31287 /// </summary>
31288 public string Id
31289 {
31290 get
31291 {
31292 return this.idField;
31293 }
31294 set
31295 {
31296 this.idFieldSet = true;
31297 this.idField = value;
31298 }
31299 }
31300
31301 /// <summary>
31302 /// Value of 'yes' will create a row in the TypeLib table.
31303 /// Value of 'no' will create rows in the Registry table.
31304 /// The default value is 'no'.
31305 /// </summary>
31306 public YesNoType Advertise
31307 {
31308 get
31309 {
31310 return this.advertiseField;
31311 }
31312 set
31313 {
31314 this.advertiseFieldSet = true;
31315 this.advertiseField = value;
31316 }
31317 }
31318
31319 /// <summary>
31320 /// Value of 'yes' means the type library describes controls, and should not be displayed in type browsers intended for nonvisual objects.
31321 /// This attribute can only be set if Advertise='no'.
31322 /// </summary>
31323 public YesNoType Control
31324 {
31325 get
31326 {
31327 return this.controlField;
31328 }
31329 set
31330 {
31331 this.controlFieldSet = true;
31332 this.controlField = value;
31333 }
31334 }
31335
31336 /// <summary>
31337 /// The cost associated with the registration of the type library in bytes. This attribute cannot be set if Advertise='no'.
31338 /// </summary>
31339 public int Cost
31340 {
31341 get
31342 {
31343 return this.costField;
31344 }
31345 set
31346 {
31347 this.costFieldSet = true;
31348 this.costField = value;
31349 }
31350 }
31351
31352 /// <summary>
31353 /// The localizable description of the type library.
31354 /// </summary>
31355 public string Description
31356 {
31357 get
31358 {
31359 return this.descriptionField;
31360 }
31361 set
31362 {
31363 this.descriptionFieldSet = true;
31364 this.descriptionField = value;
31365 }
31366 }
31367
31368 /// <summary>
31369 /// Value of 'yes' means the type library exists in a persisted form on disk. This attribute can only be set if Advertise='no'.
31370 /// </summary>
31371 public YesNoType HasDiskImage
31372 {
31373 get
31374 {
31375 return this.hasDiskImageField;
31376 }
31377 set
31378 {
31379 this.hasDiskImageFieldSet = true;
31380 this.hasDiskImageField = value;
31381 }
31382 }
31383
31384 /// <summary>
31385 /// The identifier of the Directory element for the help directory.
31386 /// </summary>
31387 public string HelpDirectory
31388 {
31389 get
31390 {
31391 return this.helpDirectoryField;
31392 }
31393 set
31394 {
31395 this.helpDirectoryFieldSet = true;
31396 this.helpDirectoryField = value;
31397 }
31398 }
31399
31400 /// <summary>
31401 /// Value of 'yes' means the type library should not be displayed to users, although its use is not restricted.
31402 /// Should be used by controls. Hosts should create a new type library that wraps the control with extended properties.
31403 /// This attribute can only be set if Advertise='no'.
31404 /// </summary>
31405 public YesNoType Hidden
31406 {
31407 get
31408 {
31409 return this.hiddenField;
31410 }
31411 set
31412 {
31413 this.hiddenFieldSet = true;
31414 this.hiddenField = value;
31415 }
31416 }
31417
31418 /// <summary>
31419 /// The language of the type library. This must be a non-negative integer.
31420 /// </summary>
31421 public int Language
31422 {
31423 get
31424 {
31425 return this.languageField;
31426 }
31427 set
31428 {
31429 this.languageFieldSet = true;
31430 this.languageField = value;
31431 }
31432 }
31433
31434 /// <summary>
31435 /// The major version of the type library. The value should be an integer from 0 - 255.
31436 /// </summary>
31437 public int MajorVersion
31438 {
31439 get
31440 {
31441 return this.majorVersionField;
31442 }
31443 set
31444 {
31445 this.majorVersionFieldSet = true;
31446 this.majorVersionField = value;
31447 }
31448 }
31449
31450 /// <summary>
31451 /// The minor version of the type library. The value should be an integer from 0 - 255.
31452 /// </summary>
31453 public int MinorVersion
31454 {
31455 get
31456 {
31457 return this.minorVersionField;
31458 }
31459 set
31460 {
31461 this.minorVersionFieldSet = true;
31462 this.minorVersionField = value;
31463 }
31464 }
31465
31466 /// <summary>
31467 /// The resource id of a typelib. The value is appended to the end of the typelib path in the registry.
31468 /// </summary>
31469 public int ResourceId
31470 {
31471 get
31472 {
31473 return this.resourceIdField;
31474 }
31475 set
31476 {
31477 this.resourceIdFieldSet = true;
31478 this.resourceIdField = value;
31479 }
31480 }
31481
31482 /// <summary>
31483 /// 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'.
31484 /// </summary>
31485 public YesNoType Restricted
31486 {
31487 get
31488 {
31489 return this.restrictedField;
31490 }
31491 set
31492 {
31493 this.restrictedFieldSet = true;
31494 this.restrictedField = value;
31495 }
31496 }
31497
31498 public virtual ISchemaElement ParentElement
31499 {
31500 get
31501 {
31502 return this.parentElement;
31503 }
31504 set
31505 {
31506 this.parentElement = value;
31507 }
31508 }
31509
31510 public virtual void AddChild(ISchemaElement child)
31511 {
31512 if ((null == child))
31513 {
31514 throw new ArgumentNullException("child");
31515 }
31516 this.children.AddElement(child);
31517 child.ParentElement = this;
31518 }
31519
31520 public virtual void RemoveChild(ISchemaElement child)
31521 {
31522 if ((null == child))
31523 {
31524 throw new ArgumentNullException("child");
31525 }
31526 this.children.RemoveElement(child);
31527 child.ParentElement = null;
31528 }
31529
31530 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
31531 ISchemaElement ICreateChildren.CreateChild(string childName)
31532 {
31533 if (String.IsNullOrEmpty(childName))
31534 {
31535 throw new ArgumentNullException("childName");
31536 }
31537 ISchemaElement childValue = null;
31538 if (("AppId" == childName))
31539 {
31540 childValue = new AppId();
31541 }
31542 if (("Class" == childName))
31543 {
31544 childValue = new Class();
31545 }
31546 if (("Interface" == childName))
31547 {
31548 childValue = new Interface();
31549 }
31550 if ((null == childValue))
31551 {
31552 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
31553 }
31554 return childValue;
31555 }
31556
31557 /// <summary>
31558 /// Processes this element and all child elements into an XmlWriter.
31559 /// </summary>
31560 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
31561 public virtual void OutputXml(XmlWriter writer)
31562 {
31563 if ((null == writer))
31564 {
31565 throw new ArgumentNullException("writer");
31566 }
31567 writer.WriteStartElement("TypeLib", "http://wixtoolset.org/schemas/v4/wxs");
31568 if (this.idFieldSet)
31569 {
31570 writer.WriteAttributeString("Id", this.idField);
31571 }
31572 if (this.advertiseFieldSet)
31573 {
31574 if ((this.advertiseField == YesNoType.no))
31575 {
31576 writer.WriteAttributeString("Advertise", "no");
31577 }
31578 if ((this.advertiseField == YesNoType.yes))
31579 {
31580 writer.WriteAttributeString("Advertise", "yes");
31581 }
31582 }
31583 if (this.controlFieldSet)
31584 {
31585 if ((this.controlField == YesNoType.no))
31586 {
31587 writer.WriteAttributeString("Control", "no");
31588 }
31589 if ((this.controlField == YesNoType.yes))
31590 {
31591 writer.WriteAttributeString("Control", "yes");
31592 }
31593 }
31594 if (this.costFieldSet)
31595 {
31596 writer.WriteAttributeString("Cost", this.costField.ToString(CultureInfo.InvariantCulture));
31597 }
31598 if (this.descriptionFieldSet)
31599 {
31600 writer.WriteAttributeString("Description", this.descriptionField);
31601 }
31602 if (this.hasDiskImageFieldSet)
31603 {
31604 if ((this.hasDiskImageField == YesNoType.no))
31605 {
31606 writer.WriteAttributeString("HasDiskImage", "no");
31607 }
31608 if ((this.hasDiskImageField == YesNoType.yes))
31609 {
31610 writer.WriteAttributeString("HasDiskImage", "yes");
31611 }
31612 }
31613 if (this.helpDirectoryFieldSet)
31614 {
31615 writer.WriteAttributeString("HelpDirectory", this.helpDirectoryField);
31616 }
31617 if (this.hiddenFieldSet)
31618 {
31619 if ((this.hiddenField == YesNoType.no))
31620 {
31621 writer.WriteAttributeString("Hidden", "no");
31622 }
31623 if ((this.hiddenField == YesNoType.yes))
31624 {
31625 writer.WriteAttributeString("Hidden", "yes");
31626 }
31627 }
31628 if (this.languageFieldSet)
31629 {
31630 writer.WriteAttributeString("Language", this.languageField.ToString(CultureInfo.InvariantCulture));
31631 }
31632 if (this.majorVersionFieldSet)
31633 {
31634 writer.WriteAttributeString("MajorVersion", this.majorVersionField.ToString(CultureInfo.InvariantCulture));
31635 }
31636 if (this.minorVersionFieldSet)
31637 {
31638 writer.WriteAttributeString("MinorVersion", this.minorVersionField.ToString(CultureInfo.InvariantCulture));
31639 }
31640 if (this.resourceIdFieldSet)
31641 {
31642 writer.WriteAttributeString("ResourceId", this.resourceIdField.ToString(CultureInfo.InvariantCulture));
31643 }
31644 if (this.restrictedFieldSet)
31645 {
31646 if ((this.restrictedField == YesNoType.no))
31647 {
31648 writer.WriteAttributeString("Restricted", "no");
31649 }
31650 if ((this.restrictedField == YesNoType.yes))
31651 {
31652 writer.WriteAttributeString("Restricted", "yes");
31653 }
31654 }
31655 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
31656 {
31657 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
31658 childElement.OutputXml(writer);
31659 }
31660 writer.WriteEndElement();
31661 }
31662
31663 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
31664 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
31665 void ISetAttributes.SetAttribute(string name, string value)
31666 {
31667 if (String.IsNullOrEmpty(name))
31668 {
31669 throw new ArgumentNullException("name");
31670 }
31671 if (("Id" == name))
31672 {
31673 this.idField = value;
31674 this.idFieldSet = true;
31675 }
31676 if (("Advertise" == name))
31677 {
31678 this.advertiseField = Enums.ParseYesNoType(value);
31679 this.advertiseFieldSet = true;
31680 }
31681 if (("Control" == name))
31682 {
31683 this.controlField = Enums.ParseYesNoType(value);
31684 this.controlFieldSet = true;
31685 }
31686 if (("Cost" == name))
31687 {
31688 this.costField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
31689 this.costFieldSet = true;
31690 }
31691 if (("Description" == name))
31692 {
31693 this.descriptionField = value;
31694 this.descriptionFieldSet = true;
31695 }
31696 if (("HasDiskImage" == name))
31697 {
31698 this.hasDiskImageField = Enums.ParseYesNoType(value);
31699 this.hasDiskImageFieldSet = true;
31700 }
31701 if (("HelpDirectory" == name))
31702 {
31703 this.helpDirectoryField = value;
31704 this.helpDirectoryFieldSet = true;
31705 }
31706 if (("Hidden" == name))
31707 {
31708 this.hiddenField = Enums.ParseYesNoType(value);
31709 this.hiddenFieldSet = true;
31710 }
31711 if (("Language" == name))
31712 {
31713 this.languageField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
31714 this.languageFieldSet = true;
31715 }
31716 if (("MajorVersion" == name))
31717 {
31718 this.majorVersionField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
31719 this.majorVersionFieldSet = true;
31720 }
31721 if (("MinorVersion" == name))
31722 {
31723 this.minorVersionField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
31724 this.minorVersionFieldSet = true;
31725 }
31726 if (("ResourceId" == name))
31727 {
31728 this.resourceIdField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
31729 this.resourceIdFieldSet = true;
31730 }
31731 if (("Restricted" == name))
31732 {
31733 this.restrictedField = Enums.ParseYesNoType(value);
31734 this.restrictedFieldSet = true;
31735 }
31736 }
31737 }
31738
31739 /// <summary>
31740 /// ProgId registration for parent Component. If ProgId has an associated Class, it must be a child of that element.
31741 /// </summary>
31742 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
31743 public class ProgId : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
31744 {
31745
31746 private ElementCollection children;
31747
31748 private string idField;
31749
31750 private bool idFieldSet;
31751
31752 private string descriptionField;
31753
31754 private bool descriptionFieldSet;
31755
31756 private string iconField;
31757
31758 private bool iconFieldSet;
31759
31760 private int iconIndexField;
31761
31762 private bool iconIndexFieldSet;
31763
31764 private YesNoType advertiseField;
31765
31766 private bool advertiseFieldSet;
31767
31768 private string noOpenField;
31769
31770 private bool noOpenFieldSet;
31771
31772 private ISchemaElement parentElement;
31773
31774 public ProgId()
31775 {
31776 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
31777 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ProgId)));
31778 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Extension)));
31779 this.children = childCollection0;
31780 }
31781
31782 public virtual IEnumerable Children
31783 {
31784 get
31785 {
31786 return this.children;
31787 }
31788 }
31789
31790 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
31791 public virtual IEnumerable this[System.Type childType]
31792 {
31793 get
31794 {
31795 return this.children.Filter(childType);
31796 }
31797 }
31798
31799 public string Id
31800 {
31801 get
31802 {
31803 return this.idField;
31804 }
31805 set
31806 {
31807 this.idFieldSet = true;
31808 this.idField = value;
31809 }
31810 }
31811
31812 public string Description
31813 {
31814 get
31815 {
31816 return this.descriptionField;
31817 }
31818 set
31819 {
31820 this.descriptionFieldSet = true;
31821 this.descriptionField = value;
31822 }
31823 }
31824
31825 /// <summary>
31826 /// 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.
31827 /// </summary>
31828 public string Icon
31829 {
31830 get
31831 {
31832 return this.iconField;
31833 }
31834 set
31835 {
31836 this.iconFieldSet = true;
31837 this.iconField = value;
31838 }
31839 }
31840
31841 public int IconIndex
31842 {
31843 get
31844 {
31845 return this.iconIndexField;
31846 }
31847 set
31848 {
31849 this.iconIndexFieldSet = true;
31850 this.iconIndexField = value;
31851 }
31852 }
31853
31854 public YesNoType Advertise
31855 {
31856 get
31857 {
31858 return this.advertiseField;
31859 }
31860 set
31861 {
31862 this.advertiseFieldSet = true;
31863 this.advertiseField = value;
31864 }
31865 }
31866
31867 /// <summary>
31868 /// 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.
31869 /// </summary>
31870 public string NoOpen
31871 {
31872 get
31873 {
31874 return this.noOpenField;
31875 }
31876 set
31877 {
31878 this.noOpenFieldSet = true;
31879 this.noOpenField = value;
31880 }
31881 }
31882
31883 public virtual ISchemaElement ParentElement
31884 {
31885 get
31886 {
31887 return this.parentElement;
31888 }
31889 set
31890 {
31891 this.parentElement = value;
31892 }
31893 }
31894
31895 public virtual void AddChild(ISchemaElement child)
31896 {
31897 if ((null == child))
31898 {
31899 throw new ArgumentNullException("child");
31900 }
31901 this.children.AddElement(child);
31902 child.ParentElement = this;
31903 }
31904
31905 public virtual void RemoveChild(ISchemaElement child)
31906 {
31907 if ((null == child))
31908 {
31909 throw new ArgumentNullException("child");
31910 }
31911 this.children.RemoveElement(child);
31912 child.ParentElement = null;
31913 }
31914
31915 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
31916 ISchemaElement ICreateChildren.CreateChild(string childName)
31917 {
31918 if (String.IsNullOrEmpty(childName))
31919 {
31920 throw new ArgumentNullException("childName");
31921 }
31922 ISchemaElement childValue = null;
31923 if (("ProgId" == childName))
31924 {
31925 childValue = new ProgId();
31926 }
31927 if (("Extension" == childName))
31928 {
31929 childValue = new Extension();
31930 }
31931 if ((null == childValue))
31932 {
31933 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
31934 }
31935 return childValue;
31936 }
31937
31938 /// <summary>
31939 /// Processes this element and all child elements into an XmlWriter.
31940 /// </summary>
31941 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
31942 public virtual void OutputXml(XmlWriter writer)
31943 {
31944 if ((null == writer))
31945 {
31946 throw new ArgumentNullException("writer");
31947 }
31948 writer.WriteStartElement("ProgId", "http://wixtoolset.org/schemas/v4/wxs");
31949 if (this.idFieldSet)
31950 {
31951 writer.WriteAttributeString("Id", this.idField);
31952 }
31953 if (this.descriptionFieldSet)
31954 {
31955 writer.WriteAttributeString("Description", this.descriptionField);
31956 }
31957 if (this.iconFieldSet)
31958 {
31959 writer.WriteAttributeString("Icon", this.iconField);
31960 }
31961 if (this.iconIndexFieldSet)
31962 {
31963 writer.WriteAttributeString("IconIndex", this.iconIndexField.ToString(CultureInfo.InvariantCulture));
31964 }
31965 if (this.advertiseFieldSet)
31966 {
31967 if ((this.advertiseField == YesNoType.no))
31968 {
31969 writer.WriteAttributeString("Advertise", "no");
31970 }
31971 if ((this.advertiseField == YesNoType.yes))
31972 {
31973 writer.WriteAttributeString("Advertise", "yes");
31974 }
31975 }
31976 if (this.noOpenFieldSet)
31977 {
31978 writer.WriteAttributeString("NoOpen", this.noOpenField);
31979 }
31980 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
31981 {
31982 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
31983 childElement.OutputXml(writer);
31984 }
31985 writer.WriteEndElement();
31986 }
31987
31988 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
31989 void ISetAttributes.SetAttribute(string name, string value)
31990 {
31991 if (String.IsNullOrEmpty(name))
31992 {
31993 throw new ArgumentNullException("name");
31994 }
31995 if (("Id" == name))
31996 {
31997 this.idField = value;
31998 this.idFieldSet = true;
31999 }
32000 if (("Description" == name))
32001 {
32002 this.descriptionField = value;
32003 this.descriptionFieldSet = true;
32004 }
32005 if (("Icon" == name))
32006 {
32007 this.iconField = value;
32008 this.iconFieldSet = true;
32009 }
32010 if (("IconIndex" == name))
32011 {
32012 this.iconIndexField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
32013 this.iconIndexFieldSet = true;
32014 }
32015 if (("Advertise" == name))
32016 {
32017 this.advertiseField = Enums.ParseYesNoType(value);
32018 this.advertiseFieldSet = true;
32019 }
32020 if (("NoOpen" == name))
32021 {
32022 this.noOpenField = value;
32023 this.noOpenFieldSet = true;
32024 }
32025 }
32026 }
32027
32028 /// <summary>
32029 /// Application ID containing DCOM information for the associated application GUID.
32030 /// If this element is nested under a Fragment, Module, or Product element, it must be
32031 /// advertised.
32032 /// </summary>
32033 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
32034 public class AppId : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
32035 {
32036
32037 private ElementCollection children;
32038
32039 private YesNoType activateAtStorageField;
32040
32041 private bool activateAtStorageFieldSet;
32042
32043 private YesNoType advertiseField;
32044
32045 private bool advertiseFieldSet;
32046
32047 private string descriptionField;
32048
32049 private bool descriptionFieldSet;
32050
32051 private string dllSurrogateField;
32052
32053 private bool dllSurrogateFieldSet;
32054
32055 private string idField;
32056
32057 private bool idFieldSet;
32058
32059 private string localServiceField;
32060
32061 private bool localServiceFieldSet;
32062
32063 private string remoteServerNameField;
32064
32065 private bool remoteServerNameFieldSet;
32066
32067 private YesNoType runAsInteractiveUserField;
32068
32069 private bool runAsInteractiveUserFieldSet;
32070
32071 private string serviceParametersField;
32072
32073 private bool serviceParametersFieldSet;
32074
32075 private ISchemaElement parentElement;
32076
32077 public AppId()
32078 {
32079 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
32080 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Class)));
32081 this.children = childCollection0;
32082 }
32083
32084 public virtual IEnumerable Children
32085 {
32086 get
32087 {
32088 return this.children;
32089 }
32090 }
32091
32092 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
32093 public virtual IEnumerable this[System.Type childType]
32094 {
32095 get
32096 {
32097 return this.children.Filter(childType);
32098 }
32099 }
32100
32101 /// <summary>
32102 /// Set this value to 'yes' to configure the client to activate on the same system as persistent storage.
32103 /// </summary>
32104 public YesNoType ActivateAtStorage
32105 {
32106 get
32107 {
32108 return this.activateAtStorageField;
32109 }
32110 set
32111 {
32112 this.activateAtStorageFieldSet = true;
32113 this.activateAtStorageField = value;
32114 }
32115 }
32116
32117 /// <summary>
32118 /// Set this value to 'yes' in order to create a normal AppId table row. Set this value to 'no' in order to
32119 /// generate Registry rows that perform similar registration (without the often problematic Windows Installer
32120 /// advertising behavior).
32121 /// </summary>
32122 public YesNoType Advertise
32123 {
32124 get
32125 {
32126 return this.advertiseField;
32127 }
32128 set
32129 {
32130 this.advertiseFieldSet = true;
32131 this.advertiseField = value;
32132 }
32133 }
32134
32135 /// <summary>
32136 /// Set this value to the description of the AppId. It can only be specified when the AppId is not being advertised.
32137 /// </summary>
32138 public string Description
32139 {
32140 get
32141 {
32142 return this.descriptionField;
32143 }
32144 set
32145 {
32146 this.descriptionFieldSet = true;
32147 this.descriptionField = value;
32148 }
32149 }
32150
32151 /// <summary>
32152 /// Set this value to specify that the class is a DLL that is to be activated in a surrogate EXE
32153 /// process, and the surrogate process to be used is the path of a surrogate EXE file specified by the value.
32154 /// </summary>
32155 public string DllSurrogate
32156 {
32157 get
32158 {
32159 return this.dllSurrogateField;
32160 }
32161 set
32162 {
32163 this.dllSurrogateFieldSet = true;
32164 this.dllSurrogateField = value;
32165 }
32166 }
32167
32168 /// <summary>
32169 /// Set this value to the AppID GUID that corresponds to the named executable.
32170 /// </summary>
32171 public string Id
32172 {
32173 get
32174 {
32175 return this.idField;
32176 }
32177 set
32178 {
32179 this.idFieldSet = true;
32180 this.idField = value;
32181 }
32182 }
32183
32184 /// <summary>
32185 /// Set this value to the name of a service to allow the object to be installed as a Win32 service.
32186 /// </summary>
32187 public string LocalService
32188 {
32189 get
32190 {
32191 return this.localServiceField;
32192 }
32193 set
32194 {
32195 this.localServiceFieldSet = true;
32196 this.localServiceField = value;
32197 }
32198 }
32199
32200 /// <summary>
32201 /// Set this value to the name of the remote server to configure the client to request the object
32202 /// be run at a particular machine whenever an activation function is called for which a COSERVERINFO
32203 /// structure is not specified.
32204 /// </summary>
32205 public string RemoteServerName
32206 {
32207 get
32208 {
32209 return this.remoteServerNameField;
32210 }
32211 set
32212 {
32213 this.remoteServerNameFieldSet = true;
32214 this.remoteServerNameField = value;
32215 }
32216 }
32217
32218 /// <summary>
32219 /// Set this value to 'yes' to configure a class to run under the identity of the user currently
32220 /// logged on and connected to the interactive desktop when activated by a remote client without
32221 /// being written as a Win32 service.
32222 /// </summary>
32223 public YesNoType RunAsInteractiveUser
32224 {
32225 get
32226 {
32227 return this.runAsInteractiveUserField;
32228 }
32229 set
32230 {
32231 this.runAsInteractiveUserFieldSet = true;
32232 this.runAsInteractiveUserField = value;
32233 }
32234 }
32235
32236 /// <summary>
32237 /// Set this value to the parameters to be passed to a LocalService on invocation.
32238 /// </summary>
32239 public string ServiceParameters
32240 {
32241 get
32242 {
32243 return this.serviceParametersField;
32244 }
32245 set
32246 {
32247 this.serviceParametersFieldSet = true;
32248 this.serviceParametersField = value;
32249 }
32250 }
32251
32252 public virtual ISchemaElement ParentElement
32253 {
32254 get
32255 {
32256 return this.parentElement;
32257 }
32258 set
32259 {
32260 this.parentElement = value;
32261 }
32262 }
32263
32264 public virtual void AddChild(ISchemaElement child)
32265 {
32266 if ((null == child))
32267 {
32268 throw new ArgumentNullException("child");
32269 }
32270 this.children.AddElement(child);
32271 child.ParentElement = this;
32272 }
32273
32274 public virtual void RemoveChild(ISchemaElement child)
32275 {
32276 if ((null == child))
32277 {
32278 throw new ArgumentNullException("child");
32279 }
32280 this.children.RemoveElement(child);
32281 child.ParentElement = null;
32282 }
32283
32284 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
32285 ISchemaElement ICreateChildren.CreateChild(string childName)
32286 {
32287 if (String.IsNullOrEmpty(childName))
32288 {
32289 throw new ArgumentNullException("childName");
32290 }
32291 ISchemaElement childValue = null;
32292 if (("Class" == childName))
32293 {
32294 childValue = new Class();
32295 }
32296 if ((null == childValue))
32297 {
32298 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
32299 }
32300 return childValue;
32301 }
32302
32303 /// <summary>
32304 /// Processes this element and all child elements into an XmlWriter.
32305 /// </summary>
32306 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
32307 public virtual void OutputXml(XmlWriter writer)
32308 {
32309 if ((null == writer))
32310 {
32311 throw new ArgumentNullException("writer");
32312 }
32313 writer.WriteStartElement("AppId", "http://wixtoolset.org/schemas/v4/wxs");
32314 if (this.activateAtStorageFieldSet)
32315 {
32316 if ((this.activateAtStorageField == YesNoType.no))
32317 {
32318 writer.WriteAttributeString("ActivateAtStorage", "no");
32319 }
32320 if ((this.activateAtStorageField == YesNoType.yes))
32321 {
32322 writer.WriteAttributeString("ActivateAtStorage", "yes");
32323 }
32324 }
32325 if (this.advertiseFieldSet)
32326 {
32327 if ((this.advertiseField == YesNoType.no))
32328 {
32329 writer.WriteAttributeString("Advertise", "no");
32330 }
32331 if ((this.advertiseField == YesNoType.yes))
32332 {
32333 writer.WriteAttributeString("Advertise", "yes");
32334 }
32335 }
32336 if (this.descriptionFieldSet)
32337 {
32338 writer.WriteAttributeString("Description", this.descriptionField);
32339 }
32340 if (this.dllSurrogateFieldSet)
32341 {
32342 writer.WriteAttributeString("DllSurrogate", this.dllSurrogateField);
32343 }
32344 if (this.idFieldSet)
32345 {
32346 writer.WriteAttributeString("Id", this.idField);
32347 }
32348 if (this.localServiceFieldSet)
32349 {
32350 writer.WriteAttributeString("LocalService", this.localServiceField);
32351 }
32352 if (this.remoteServerNameFieldSet)
32353 {
32354 writer.WriteAttributeString("RemoteServerName", this.remoteServerNameField);
32355 }
32356 if (this.runAsInteractiveUserFieldSet)
32357 {
32358 if ((this.runAsInteractiveUserField == YesNoType.no))
32359 {
32360 writer.WriteAttributeString("RunAsInteractiveUser", "no");
32361 }
32362 if ((this.runAsInteractiveUserField == YesNoType.yes))
32363 {
32364 writer.WriteAttributeString("RunAsInteractiveUser", "yes");
32365 }
32366 }
32367 if (this.serviceParametersFieldSet)
32368 {
32369 writer.WriteAttributeString("ServiceParameters", this.serviceParametersField);
32370 }
32371 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
32372 {
32373 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
32374 childElement.OutputXml(writer);
32375 }
32376 writer.WriteEndElement();
32377 }
32378
32379 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
32380 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
32381 void ISetAttributes.SetAttribute(string name, string value)
32382 {
32383 if (String.IsNullOrEmpty(name))
32384 {
32385 throw new ArgumentNullException("name");
32386 }
32387 if (("ActivateAtStorage" == name))
32388 {
32389 this.activateAtStorageField = Enums.ParseYesNoType(value);
32390 this.activateAtStorageFieldSet = true;
32391 }
32392 if (("Advertise" == name))
32393 {
32394 this.advertiseField = Enums.ParseYesNoType(value);
32395 this.advertiseFieldSet = true;
32396 }
32397 if (("Description" == name))
32398 {
32399 this.descriptionField = value;
32400 this.descriptionFieldSet = true;
32401 }
32402 if (("DllSurrogate" == name))
32403 {
32404 this.dllSurrogateField = value;
32405 this.dllSurrogateFieldSet = true;
32406 }
32407 if (("Id" == name))
32408 {
32409 this.idField = value;
32410 this.idFieldSet = true;
32411 }
32412 if (("LocalService" == name))
32413 {
32414 this.localServiceField = value;
32415 this.localServiceFieldSet = true;
32416 }
32417 if (("RemoteServerName" == name))
32418 {
32419 this.remoteServerNameField = value;
32420 this.remoteServerNameFieldSet = true;
32421 }
32422 if (("RunAsInteractiveUser" == name))
32423 {
32424 this.runAsInteractiveUserField = Enums.ParseYesNoType(value);
32425 this.runAsInteractiveUserFieldSet = true;
32426 }
32427 if (("ServiceParameters" == name))
32428 {
32429 this.serviceParametersField = value;
32430 this.serviceParametersFieldSet = true;
32431 }
32432 }
32433 }
32434
32435 /// <summary>
32436 /// COM Class registration for parent Component.
32437 /// </summary>
32438 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
32439 public class Class : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
32440 {
32441
32442 private ElementCollection children;
32443
32444 private string idField;
32445
32446 private bool idFieldSet;
32447
32448 private ContextType contextField;
32449
32450 private bool contextFieldSet;
32451
32452 private string descriptionField;
32453
32454 private bool descriptionFieldSet;
32455
32456 private string appIdField;
32457
32458 private bool appIdFieldSet;
32459
32460 private string iconField;
32461
32462 private bool iconFieldSet;
32463
32464 private int iconIndexField;
32465
32466 private bool iconIndexFieldSet;
32467
32468 private string handlerField;
32469
32470 private bool handlerFieldSet;
32471
32472 private string argumentField;
32473
32474 private bool argumentFieldSet;
32475
32476 private YesNoType relativePathField;
32477
32478 private bool relativePathFieldSet;
32479
32480 private YesNoType advertiseField;
32481
32482 private bool advertiseFieldSet;
32483
32484 private ThreadingModelType threadingModelField;
32485
32486 private bool threadingModelFieldSet;
32487
32488 private string versionField;
32489
32490 private bool versionFieldSet;
32491
32492 private YesNoType insertableField;
32493
32494 private bool insertableFieldSet;
32495
32496 private YesNoType programmableField;
32497
32498 private bool programmableFieldSet;
32499
32500 private string foreignServerField;
32501
32502 private bool foreignServerFieldSet;
32503
32504 private string serverField;
32505
32506 private bool serverFieldSet;
32507
32508 private YesNoType shortPathField;
32509
32510 private bool shortPathFieldSet;
32511
32512 private YesNoType safeForScriptingField;
32513
32514 private bool safeForScriptingFieldSet;
32515
32516 private YesNoType safeForInitializingField;
32517
32518 private bool safeForInitializingFieldSet;
32519
32520 private YesNoType controlField;
32521
32522 private bool controlFieldSet;
32523
32524 private ISchemaElement parentElement;
32525
32526 public Class()
32527 {
32528 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
32529 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ProgId)));
32530 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileTypeMask)));
32531 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Interface)));
32532 this.children = childCollection0;
32533 }
32534
32535 public virtual IEnumerable Children
32536 {
32537 get
32538 {
32539 return this.children;
32540 }
32541 }
32542
32543 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
32544 public virtual IEnumerable this[System.Type childType]
32545 {
32546 get
32547 {
32548 return this.children.Filter(childType);
32549 }
32550 }
32551
32552 /// <summary>
32553 /// The Class identifier (CLSID) of a COM server.
32554 /// </summary>
32555 public string Id
32556 {
32557 get
32558 {
32559 return this.idField;
32560 }
32561 set
32562 {
32563 this.idFieldSet = true;
32564 this.idField = value;
32565 }
32566 }
32567
32568 /// <summary>
32569 /// The server context(s) for this COM server. This attribute is optional for VB6 libraries that are marked "PublicNotCreateable".
32570 /// Class elements marked Advertised must specify at least one server context. It is most common for there to be a single value
32571 /// for the Context attribute.
32572 /// </summary>
32573 public ContextType Context
32574 {
32575 get
32576 {
32577 return this.contextField;
32578 }
32579 set
32580 {
32581 this.contextFieldSet = true;
32582 this.contextField = value;
32583 }
32584 }
32585
32586 /// <summary>
32587 /// Localized description associated with the Class ID and Program ID.
32588 /// </summary>
32589 public string Description
32590 {
32591 get
32592 {
32593 return this.descriptionField;
32594 }
32595 set
32596 {
32597 this.descriptionFieldSet = true;
32598 this.descriptionField = value;
32599 }
32600 }
32601
32602 /// <summary>
32603 /// This attribute is only allowed when a Class is advertised. Using this attribute will reference an Application ID
32604 /// containing DCOM information for the associated application GUID. The value must correspond to an AppId/@Id of an
32605 /// AppId element nested under a Fragment, Module, or Product element. To associate an AppId with a non-advertised
32606 /// class, nest the class within a parent AppId element.
32607 /// </summary>
32608 public string AppId
32609 {
32610 get
32611 {
32612 return this.appIdField;
32613 }
32614 set
32615 {
32616 this.appIdFieldSet = true;
32617 this.appIdField = value;
32618 }
32619 }
32620
32621 /// <summary>
32622 /// The file providing the icon associated with this CLSID. Reference to an Icon element
32623 /// (should match the Id attribute of an Icon element). This is currently not supported if the
32624 /// value of the Advertise attribute is "no".
32625 /// </summary>
32626 public string Icon
32627 {
32628 get
32629 {
32630 return this.iconField;
32631 }
32632 set
32633 {
32634 this.iconFieldSet = true;
32635 this.iconField = value;
32636 }
32637 }
32638
32639 /// <summary>
32640 /// Icon index into the icon file.
32641 /// </summary>
32642 public int IconIndex
32643 {
32644 get
32645 {
32646 return this.iconIndexField;
32647 }
32648 set
32649 {
32650 this.iconIndexFieldSet = true;
32651 this.iconIndexField = value;
32652 }
32653 }
32654
32655 /// <summary>
32656 /// The default inproc handler. May be optionally provided only for Context = LocalServer or
32657 /// LocalServer32. Value of "1" creates a 16-bit InprocHandler (appearing as the InprocHandler
32658 /// value). Value of "2" creates a 32-bit InprocHandler (appearing as the InprocHandler32 value).
32659 /// Value of "3" creates 16-bit as well as 32-bit InprocHandlers. A non-numeric value is treated
32660 /// as a system file that serves as the 32-bit InprocHandler (appearing as the InprocHandler32 value).
32661 /// </summary>
32662 public string Handler
32663 {
32664 get
32665 {
32666 return this.handlerField;
32667 }
32668 set
32669 {
32670 this.handlerFieldSet = true;
32671 this.handlerField = value;
32672 }
32673 }
32674
32675 /// <summary>
32676 /// This column is optional only when the Context column is set to "LocalServer"
32677 /// or "LocalServer32" server context. The text is registered as the argument against
32678 /// the OLE server and is used by OLE for invoking the server. Note that the resolution
32679 /// of properties in the Argument field is limited. A property formatted as [Property] in
32680 /// this field can only be resolved if the property already has the intended value when
32681 /// the component owning the class is installed. For example, for the argument "[#MyDoc.doc]"
32682 /// to resolve to the correct value, the same process must be installing the file MyDoc.doc and the
32683 /// component that owns the class.
32684 /// </summary>
32685 public string Argument
32686 {
32687 get
32688 {
32689 return this.argumentField;
32690 }
32691 set
32692 {
32693 this.argumentFieldSet = true;
32694 this.argumentField = value;
32695 }
32696 }
32697
32698 /// <summary>
32699 /// When the value is "yes", the bare file name can be used for COM servers. The installer
32700 /// registers the file name only instead of the complete path. This enables the server in
32701 /// the current directory to take precedence and allows multiple copies of the same component.
32702 /// </summary>
32703 public YesNoType RelativePath
32704 {
32705 get
32706 {
32707 return this.relativePathField;
32708 }
32709 set
32710 {
32711 this.relativePathFieldSet = true;
32712 this.relativePathField = value;
32713 }
32714 }
32715
32716 /// <summary>
32717 /// Set this value to "yes" in order to create a normal Class table row. Set this value to
32718 /// "no" in order to generate Registry rows that perform similar registration (without the
32719 /// often problematic Windows Installer advertising behavior).
32720 /// </summary>
32721 public YesNoType Advertise
32722 {
32723 get
32724 {
32725 return this.advertiseField;
32726 }
32727 set
32728 {
32729 this.advertiseFieldSet = true;
32730 this.advertiseField = value;
32731 }
32732 }
32733
32734 /// <summary>
32735 /// Threading model for the CLSID.
32736 /// </summary>
32737 public ThreadingModelType ThreadingModel
32738 {
32739 get
32740 {
32741 return this.threadingModelField;
32742 }
32743 set
32744 {
32745 this.threadingModelFieldSet = true;
32746 this.threadingModelField = value;
32747 }
32748 }
32749
32750 /// <summary>
32751 /// Version for the CLSID.
32752 /// </summary>
32753 public string Version
32754 {
32755 get
32756 {
32757 return this.versionField;
32758 }
32759 set
32760 {
32761 this.versionFieldSet = true;
32762 this.versionField = value;
32763 }
32764 }
32765
32766 /// <summary>
32767 /// Specifies the CLSID may be insertable.
32768 /// </summary>
32769 public YesNoType Insertable
32770 {
32771 get
32772 {
32773 return this.insertableField;
32774 }
32775 set
32776 {
32777 this.insertableFieldSet = true;
32778 this.insertableField = value;
32779 }
32780 }
32781
32782 /// <summary>
32783 /// Specifies the CLSID may be programmable.
32784 /// </summary>
32785 public YesNoType Programmable
32786 {
32787 get
32788 {
32789 return this.programmableField;
32790 }
32791 set
32792 {
32793 this.programmableFieldSet = true;
32794 this.programmableField = value;
32795 }
32796 }
32797
32798 /// <summary>
32799 /// May only be specified if the value of the Advertise attribute is "no" and Server has not been specified. In addition, it may only
32800 /// be used when the Class element is directly under the Component element. The value can be
32801 /// that of an registry type (REG_SZ). This attribute should be used to specify foreign servers, such as mscoree.dll if needed.
32802 /// </summary>
32803 public string ForeignServer
32804 {
32805 get
32806 {
32807 return this.foreignServerField;
32808 }
32809 set
32810 {
32811 this.foreignServerFieldSet = true;
32812 this.foreignServerField = value;
32813 }
32814 }
32815
32816 /// <summary>
32817 /// May only be specified if the value of the Advertise attribute is "no" and the ForeignServer attribute is not specified. File Id of the
32818 /// COM server file. If this element is nested under a File element, this value defaults to
32819 /// the value of the parent File/@Id.
32820 /// </summary>
32821 public string Server
32822 {
32823 get
32824 {
32825 return this.serverField;
32826 }
32827 set
32828 {
32829 this.serverFieldSet = true;
32830 this.serverField = value;
32831 }
32832 }
32833
32834 /// <summary>
32835 /// 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.
32836 /// </summary>
32837 public YesNoType ShortPath
32838 {
32839 get
32840 {
32841 return this.shortPathField;
32842 }
32843 set
32844 {
32845 this.shortPathFieldSet = true;
32846 this.shortPathField = value;
32847 }
32848 }
32849
32850 /// <summary>
32851 /// May only be specified if the value of the Advertise attribute is "no".
32852 /// </summary>
32853 public YesNoType SafeForScripting
32854 {
32855 get
32856 {
32857 return this.safeForScriptingField;
32858 }
32859 set
32860 {
32861 this.safeForScriptingFieldSet = true;
32862 this.safeForScriptingField = value;
32863 }
32864 }
32865
32866 /// <summary>
32867 /// May only be specified if the value of the Advertise attribute is "no".
32868 /// </summary>
32869 public YesNoType SafeForInitializing
32870 {
32871 get
32872 {
32873 return this.safeForInitializingField;
32874 }
32875 set
32876 {
32877 this.safeForInitializingFieldSet = true;
32878 this.safeForInitializingField = value;
32879 }
32880 }
32881
32882 /// <summary>
32883 /// Set this attribute's value to 'yes' to identify an object as an ActiveX Control. The default value is 'no'.
32884 /// </summary>
32885 public YesNoType Control
32886 {
32887 get
32888 {
32889 return this.controlField;
32890 }
32891 set
32892 {
32893 this.controlFieldSet = true;
32894 this.controlField = value;
32895 }
32896 }
32897
32898 public virtual ISchemaElement ParentElement
32899 {
32900 get
32901 {
32902 return this.parentElement;
32903 }
32904 set
32905 {
32906 this.parentElement = value;
32907 }
32908 }
32909
32910 public virtual void AddChild(ISchemaElement child)
32911 {
32912 if ((null == child))
32913 {
32914 throw new ArgumentNullException("child");
32915 }
32916 this.children.AddElement(child);
32917 child.ParentElement = this;
32918 }
32919
32920 public virtual void RemoveChild(ISchemaElement child)
32921 {
32922 if ((null == child))
32923 {
32924 throw new ArgumentNullException("child");
32925 }
32926 this.children.RemoveElement(child);
32927 child.ParentElement = null;
32928 }
32929
32930 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
32931 ISchemaElement ICreateChildren.CreateChild(string childName)
32932 {
32933 if (String.IsNullOrEmpty(childName))
32934 {
32935 throw new ArgumentNullException("childName");
32936 }
32937 ISchemaElement childValue = null;
32938 if (("ProgId" == childName))
32939 {
32940 childValue = new ProgId();
32941 }
32942 if (("FileTypeMask" == childName))
32943 {
32944 childValue = new FileTypeMask();
32945 }
32946 if (("Interface" == childName))
32947 {
32948 childValue = new Interface();
32949 }
32950 if ((null == childValue))
32951 {
32952 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
32953 }
32954 return childValue;
32955 }
32956
32957 /// <summary>
32958 /// Tries to parse a ContextType from a string.
32959 /// </summary>
32960 public static bool TryParseContextType(string value, out ContextType parsedValue)
32961 {
32962 parsedValue = ContextType.None;
32963 if (string.IsNullOrEmpty(value))
32964 {
32965 return false;
32966 }
32967 string[] splitValue = value.Split(" \t\r\n".ToCharArray(), System.StringSplitOptions.RemoveEmptyEntries);
32968 for (System.Collections.IEnumerator enumerator = splitValue.GetEnumerator(); enumerator.MoveNext();
32969 )
32970 {
32971 string currentValue = ((string)(enumerator.Current));
32972 if (("LocalServer" == currentValue))
32973 {
32974 parsedValue = (parsedValue | ContextType.LocalServer);
32975 }
32976 else
32977 {
32978 if (("LocalServer32" == currentValue))
32979 {
32980 parsedValue = (parsedValue | ContextType.LocalServer32);
32981 }
32982 else
32983 {
32984 if (("InprocServer" == currentValue))
32985 {
32986 parsedValue = (parsedValue | ContextType.InprocServer);
32987 }
32988 else
32989 {
32990 if (("InprocServer32" == currentValue))
32991 {
32992 parsedValue = (parsedValue | ContextType.InprocServer32);
32993 }
32994 else
32995 {
32996 parsedValue = ContextType.None;
32997 return false;
32998 }
32999 }
33000 }
33001 }
33002 }
33003 return true;
33004 }
33005
33006 /// <summary>
33007 /// Parses a ThreadingModelType from a string.
33008 /// </summary>
33009 public static ThreadingModelType ParseThreadingModelType(string value)
33010 {
33011 ThreadingModelType parsedValue;
33012 Class.TryParseThreadingModelType(value, out parsedValue);
33013 return parsedValue;
33014 }
33015
33016 /// <summary>
33017 /// Tries to parse a ThreadingModelType from a string.
33018 /// </summary>
33019 public static bool TryParseThreadingModelType(string value, out ThreadingModelType parsedValue)
33020 {
33021 parsedValue = ThreadingModelType.NotSet;
33022 if (string.IsNullOrEmpty(value))
33023 {
33024 return false;
33025 }
33026 if (("apartment" == value))
33027 {
33028 parsedValue = ThreadingModelType.apartment;
33029 }
33030 else
33031 {
33032 if (("free" == value))
33033 {
33034 parsedValue = ThreadingModelType.free;
33035 }
33036 else
33037 {
33038 if (("both" == value))
33039 {
33040 parsedValue = ThreadingModelType.both;
33041 }
33042 else
33043 {
33044 if (("neutral" == value))
33045 {
33046 parsedValue = ThreadingModelType.neutral;
33047 }
33048 else
33049 {
33050 if (("single" == value))
33051 {
33052 parsedValue = ThreadingModelType.single;
33053 }
33054 else
33055 {
33056 if (("rental" == value))
33057 {
33058 parsedValue = ThreadingModelType.rental;
33059 }
33060 else
33061 {
33062 parsedValue = ThreadingModelType.IllegalValue;
33063 return false;
33064 }
33065 }
33066 }
33067 }
33068 }
33069 }
33070 return true;
33071 }
33072
33073 /// <summary>
33074 /// Processes this element and all child elements into an XmlWriter.
33075 /// </summary>
33076 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
33077 public virtual void OutputXml(XmlWriter writer)
33078 {
33079 if ((null == writer))
33080 {
33081 throw new ArgumentNullException("writer");
33082 }
33083 writer.WriteStartElement("Class", "http://wixtoolset.org/schemas/v4/wxs");
33084 if (this.idFieldSet)
33085 {
33086 writer.WriteAttributeString("Id", this.idField);
33087 }
33088 if (this.contextFieldSet)
33089 {
33090 string outputValue = "";
33091 if (((this.contextField & ContextType.LocalServer)
33092 != 0))
33093 {
33094 if ((outputValue.Length != 0))
33095 {
33096 outputValue = (outputValue + " ");
33097 }
33098 outputValue = (outputValue + "LocalServer");
33099 }
33100 if (((this.contextField & ContextType.LocalServer32)
33101 != 0))
33102 {
33103 if ((outputValue.Length != 0))
33104 {
33105 outputValue = (outputValue + " ");
33106 }
33107 outputValue = (outputValue + "LocalServer32");
33108 }
33109 if (((this.contextField & ContextType.InprocServer)
33110 != 0))
33111 {
33112 if ((outputValue.Length != 0))
33113 {
33114 outputValue = (outputValue + " ");
33115 }
33116 outputValue = (outputValue + "InprocServer");
33117 }
33118 if (((this.contextField & ContextType.InprocServer32)
33119 != 0))
33120 {
33121 if ((outputValue.Length != 0))
33122 {
33123 outputValue = (outputValue + " ");
33124 }
33125 outputValue = (outputValue + "InprocServer32");
33126 }
33127 writer.WriteAttributeString("Context", outputValue);
33128 }
33129 if (this.descriptionFieldSet)
33130 {
33131 writer.WriteAttributeString("Description", this.descriptionField);
33132 }
33133 if (this.appIdFieldSet)
33134 {
33135 writer.WriteAttributeString("AppId", this.appIdField);
33136 }
33137 if (this.iconFieldSet)
33138 {
33139 writer.WriteAttributeString("Icon", this.iconField);
33140 }
33141 if (this.iconIndexFieldSet)
33142 {
33143 writer.WriteAttributeString("IconIndex", this.iconIndexField.ToString(CultureInfo.InvariantCulture));
33144 }
33145 if (this.handlerFieldSet)
33146 {
33147 writer.WriteAttributeString("Handler", this.handlerField);
33148 }
33149 if (this.argumentFieldSet)
33150 {
33151 writer.WriteAttributeString("Argument", this.argumentField);
33152 }
33153 if (this.relativePathFieldSet)
33154 {
33155 if ((this.relativePathField == YesNoType.no))
33156 {
33157 writer.WriteAttributeString("RelativePath", "no");
33158 }
33159 if ((this.relativePathField == YesNoType.yes))
33160 {
33161 writer.WriteAttributeString("RelativePath", "yes");
33162 }
33163 }
33164 if (this.advertiseFieldSet)
33165 {
33166 if ((this.advertiseField == YesNoType.no))
33167 {
33168 writer.WriteAttributeString("Advertise", "no");
33169 }
33170 if ((this.advertiseField == YesNoType.yes))
33171 {
33172 writer.WriteAttributeString("Advertise", "yes");
33173 }
33174 }
33175 if (this.threadingModelFieldSet)
33176 {
33177 if ((this.threadingModelField == ThreadingModelType.apartment))
33178 {
33179 writer.WriteAttributeString("ThreadingModel", "apartment");
33180 }
33181 if ((this.threadingModelField == ThreadingModelType.free))
33182 {
33183 writer.WriteAttributeString("ThreadingModel", "free");
33184 }
33185 if ((this.threadingModelField == ThreadingModelType.both))
33186 {
33187 writer.WriteAttributeString("ThreadingModel", "both");
33188 }
33189 if ((this.threadingModelField == ThreadingModelType.neutral))
33190 {
33191 writer.WriteAttributeString("ThreadingModel", "neutral");
33192 }
33193 if ((this.threadingModelField == ThreadingModelType.single))
33194 {
33195 writer.WriteAttributeString("ThreadingModel", "single");
33196 }
33197 if ((this.threadingModelField == ThreadingModelType.rental))
33198 {
33199 writer.WriteAttributeString("ThreadingModel", "rental");
33200 }
33201 }
33202 if (this.versionFieldSet)
33203 {
33204 writer.WriteAttributeString("Version", this.versionField);
33205 }
33206 if (this.insertableFieldSet)
33207 {
33208 if ((this.insertableField == YesNoType.no))
33209 {
33210 writer.WriteAttributeString("Insertable", "no");
33211 }
33212 if ((this.insertableField == YesNoType.yes))
33213 {
33214 writer.WriteAttributeString("Insertable", "yes");
33215 }
33216 }
33217 if (this.programmableFieldSet)
33218 {
33219 if ((this.programmableField == YesNoType.no))
33220 {
33221 writer.WriteAttributeString("Programmable", "no");
33222 }
33223 if ((this.programmableField == YesNoType.yes))
33224 {
33225 writer.WriteAttributeString("Programmable", "yes");
33226 }
33227 }
33228 if (this.foreignServerFieldSet)
33229 {
33230 writer.WriteAttributeString("ForeignServer", this.foreignServerField);
33231 }
33232 if (this.serverFieldSet)
33233 {
33234 writer.WriteAttributeString("Server", this.serverField);
33235 }
33236 if (this.shortPathFieldSet)
33237 {
33238 if ((this.shortPathField == YesNoType.no))
33239 {
33240 writer.WriteAttributeString("ShortPath", "no");
33241 }
33242 if ((this.shortPathField == YesNoType.yes))
33243 {
33244 writer.WriteAttributeString("ShortPath", "yes");
33245 }
33246 }
33247 if (this.safeForScriptingFieldSet)
33248 {
33249 if ((this.safeForScriptingField == YesNoType.no))
33250 {
33251 writer.WriteAttributeString("SafeForScripting", "no");
33252 }
33253 if ((this.safeForScriptingField == YesNoType.yes))
33254 {
33255 writer.WriteAttributeString("SafeForScripting", "yes");
33256 }
33257 }
33258 if (this.safeForInitializingFieldSet)
33259 {
33260 if ((this.safeForInitializingField == YesNoType.no))
33261 {
33262 writer.WriteAttributeString("SafeForInitializing", "no");
33263 }
33264 if ((this.safeForInitializingField == YesNoType.yes))
33265 {
33266 writer.WriteAttributeString("SafeForInitializing", "yes");
33267 }
33268 }
33269 if (this.controlFieldSet)
33270 {
33271 if ((this.controlField == YesNoType.no))
33272 {
33273 writer.WriteAttributeString("Control", "no");
33274 }
33275 if ((this.controlField == YesNoType.yes))
33276 {
33277 writer.WriteAttributeString("Control", "yes");
33278 }
33279 }
33280 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
33281 {
33282 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
33283 childElement.OutputXml(writer);
33284 }
33285 writer.WriteEndElement();
33286 }
33287
33288 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
33289 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
33290 void ISetAttributes.SetAttribute(string name, string value)
33291 {
33292 if (String.IsNullOrEmpty(name))
33293 {
33294 throw new ArgumentNullException("name");
33295 }
33296 if (("Id" == name))
33297 {
33298 this.idField = value;
33299 this.idFieldSet = true;
33300 }
33301 if (("Context" == name))
33302 {
33303 Class.TryParseContextType(value, out this.contextField);
33304 this.contextFieldSet = true;
33305 }
33306 if (("Description" == name))
33307 {
33308 this.descriptionField = value;
33309 this.descriptionFieldSet = true;
33310 }
33311 if (("AppId" == name))
33312 {
33313 this.appIdField = value;
33314 this.appIdFieldSet = true;
33315 }
33316 if (("Icon" == name))
33317 {
33318 this.iconField = value;
33319 this.iconFieldSet = true;
33320 }
33321 if (("IconIndex" == name))
33322 {
33323 this.iconIndexField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
33324 this.iconIndexFieldSet = true;
33325 }
33326 if (("Handler" == name))
33327 {
33328 this.handlerField = value;
33329 this.handlerFieldSet = true;
33330 }
33331 if (("Argument" == name))
33332 {
33333 this.argumentField = value;
33334 this.argumentFieldSet = true;
33335 }
33336 if (("RelativePath" == name))
33337 {
33338 this.relativePathField = Enums.ParseYesNoType(value);
33339 this.relativePathFieldSet = true;
33340 }
33341 if (("Advertise" == name))
33342 {
33343 this.advertiseField = Enums.ParseYesNoType(value);
33344 this.advertiseFieldSet = true;
33345 }
33346 if (("ThreadingModel" == name))
33347 {
33348 this.threadingModelField = Class.ParseThreadingModelType(value);
33349 this.threadingModelFieldSet = true;
33350 }
33351 if (("Version" == name))
33352 {
33353 this.versionField = value;
33354 this.versionFieldSet = true;
33355 }
33356 if (("Insertable" == name))
33357 {
33358 this.insertableField = Enums.ParseYesNoType(value);
33359 this.insertableFieldSet = true;
33360 }
33361 if (("Programmable" == name))
33362 {
33363 this.programmableField = Enums.ParseYesNoType(value);
33364 this.programmableFieldSet = true;
33365 }
33366 if (("ForeignServer" == name))
33367 {
33368 this.foreignServerField = value;
33369 this.foreignServerFieldSet = true;
33370 }
33371 if (("Server" == name))
33372 {
33373 this.serverField = value;
33374 this.serverFieldSet = true;
33375 }
33376 if (("ShortPath" == name))
33377 {
33378 this.shortPathField = Enums.ParseYesNoType(value);
33379 this.shortPathFieldSet = true;
33380 }
33381 if (("SafeForScripting" == name))
33382 {
33383 this.safeForScriptingField = Enums.ParseYesNoType(value);
33384 this.safeForScriptingFieldSet = true;
33385 }
33386 if (("SafeForInitializing" == name))
33387 {
33388 this.safeForInitializingField = Enums.ParseYesNoType(value);
33389 this.safeForInitializingFieldSet = true;
33390 }
33391 if (("Control" == name))
33392 {
33393 this.controlField = Enums.ParseYesNoType(value);
33394 this.controlFieldSet = true;
33395 }
33396 }
33397
33398 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
33399 [Flags()]
33400 public enum ContextType
33401 {
33402
33403 None = 0,
33404
33405 /// <summary>
33406 /// A 16-bit local server application.
33407 /// </summary>
33408 LocalServer = 1,
33409
33410 /// <summary>
33411 /// A 32-bit local server application.
33412 /// </summary>
33413 LocalServer32 = 2,
33414
33415 /// <summary>
33416 /// A 16-bit in-process server DLL.
33417 /// </summary>
33418 InprocServer = 4,
33419
33420 /// <summary>
33421 /// A 32-bit in-process server DLL.
33422 /// </summary>
33423 InprocServer32 = 8,
33424 }
33425
33426 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
33427 public enum ThreadingModelType
33428 {
33429
33430 IllegalValue = int.MaxValue,
33431
33432 NotSet = -1,
33433
33434 apartment,
33435
33436 free,
33437
33438 both,
33439
33440 neutral,
33441
33442 single,
33443
33444 rental,
33445 }
33446 }
33447
33448 /// <summary>
33449 /// COM Interface registration for parent TypeLib.
33450 /// </summary>
33451 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
33452 public class Interface : ISchemaElement, ISetAttributes
33453 {
33454
33455 private string idField;
33456
33457 private bool idFieldSet;
33458
33459 private string nameField;
33460
33461 private bool nameFieldSet;
33462
33463 private string baseInterfaceField;
33464
33465 private bool baseInterfaceFieldSet;
33466
33467 private string proxyStubClassIdField;
33468
33469 private bool proxyStubClassIdFieldSet;
33470
33471 private string proxyStubClassId32Field;
33472
33473 private bool proxyStubClassId32FieldSet;
33474
33475 private int numMethodsField;
33476
33477 private bool numMethodsFieldSet;
33478
33479 private YesNoType versionedField;
33480
33481 private bool versionedFieldSet;
33482
33483 private ISchemaElement parentElement;
33484
33485 /// <summary>
33486 /// GUID identifier for COM Interface.
33487 /// </summary>
33488 public string Id
33489 {
33490 get
33491 {
33492 return this.idField;
33493 }
33494 set
33495 {
33496 this.idFieldSet = true;
33497 this.idField = value;
33498 }
33499 }
33500
33501 /// <summary>
33502 /// Name for COM Interface.
33503 /// </summary>
33504 public string Name
33505 {
33506 get
33507 {
33508 return this.nameField;
33509 }
33510 set
33511 {
33512 this.nameFieldSet = true;
33513 this.nameField = value;
33514 }
33515 }
33516
33517 /// <summary>
33518 /// Identifies the interface from which the current interface is derived.
33519 /// </summary>
33520 public string BaseInterface
33521 {
33522 get
33523 {
33524 return this.baseInterfaceField;
33525 }
33526 set
33527 {
33528 this.baseInterfaceFieldSet = true;
33529 this.baseInterfaceField = value;
33530 }
33531 }
33532
33533 /// <summary>
33534 /// GUID CLSID for proxy stub to COM Interface.
33535 /// </summary>
33536 public string ProxyStubClassId
33537 {
33538 get
33539 {
33540 return this.proxyStubClassIdField;
33541 }
33542 set
33543 {
33544 this.proxyStubClassIdFieldSet = true;
33545 this.proxyStubClassIdField = value;
33546 }
33547 }
33548
33549 /// <summary>
33550 /// GUID CLSID for 32-bit proxy stub to COM Interface.
33551 /// </summary>
33552 public string ProxyStubClassId32
33553 {
33554 get
33555 {
33556 return this.proxyStubClassId32Field;
33557 }
33558 set
33559 {
33560 this.proxyStubClassId32FieldSet = true;
33561 this.proxyStubClassId32Field = value;
33562 }
33563 }
33564
33565 /// <summary>
33566 /// Number of methods implemented on COM Interface.
33567 /// </summary>
33568 public int NumMethods
33569 {
33570 get
33571 {
33572 return this.numMethodsField;
33573 }
33574 set
33575 {
33576 this.numMethodsFieldSet = true;
33577 this.numMethodsField = value;
33578 }
33579 }
33580
33581 /// <summary>
33582 /// Determines whether a Typelib version entry should be created with the other COM Interface registry keys. Default is 'yes'.
33583 /// </summary>
33584 public YesNoType Versioned
33585 {
33586 get
33587 {
33588 return this.versionedField;
33589 }
33590 set
33591 {
33592 this.versionedFieldSet = true;
33593 this.versionedField = value;
33594 }
33595 }
33596
33597 public virtual ISchemaElement ParentElement
33598 {
33599 get
33600 {
33601 return this.parentElement;
33602 }
33603 set
33604 {
33605 this.parentElement = value;
33606 }
33607 }
33608
33609 /// <summary>
33610 /// Processes this element and all child elements into an XmlWriter.
33611 /// </summary>
33612 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
33613 public virtual void OutputXml(XmlWriter writer)
33614 {
33615 if ((null == writer))
33616 {
33617 throw new ArgumentNullException("writer");
33618 }
33619 writer.WriteStartElement("Interface", "http://wixtoolset.org/schemas/v4/wxs");
33620 if (this.idFieldSet)
33621 {
33622 writer.WriteAttributeString("Id", this.idField);
33623 }
33624 if (this.nameFieldSet)
33625 {
33626 writer.WriteAttributeString("Name", this.nameField);
33627 }
33628 if (this.baseInterfaceFieldSet)
33629 {
33630 writer.WriteAttributeString("BaseInterface", this.baseInterfaceField);
33631 }
33632 if (this.proxyStubClassIdFieldSet)
33633 {
33634 writer.WriteAttributeString("ProxyStubClassId", this.proxyStubClassIdField);
33635 }
33636 if (this.proxyStubClassId32FieldSet)
33637 {
33638 writer.WriteAttributeString("ProxyStubClassId32", this.proxyStubClassId32Field);
33639 }
33640 if (this.numMethodsFieldSet)
33641 {
33642 writer.WriteAttributeString("NumMethods", this.numMethodsField.ToString(CultureInfo.InvariantCulture));
33643 }
33644 if (this.versionedFieldSet)
33645 {
33646 if ((this.versionedField == YesNoType.no))
33647 {
33648 writer.WriteAttributeString("Versioned", "no");
33649 }
33650 if ((this.versionedField == YesNoType.yes))
33651 {
33652 writer.WriteAttributeString("Versioned", "yes");
33653 }
33654 }
33655 writer.WriteEndElement();
33656 }
33657
33658 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
33659 void ISetAttributes.SetAttribute(string name, string value)
33660 {
33661 if (String.IsNullOrEmpty(name))
33662 {
33663 throw new ArgumentNullException("name");
33664 }
33665 if (("Id" == name))
33666 {
33667 this.idField = value;
33668 this.idFieldSet = true;
33669 }
33670 if (("Name" == name))
33671 {
33672 this.nameField = value;
33673 this.nameFieldSet = true;
33674 }
33675 if (("BaseInterface" == name))
33676 {
33677 this.baseInterfaceField = value;
33678 this.baseInterfaceFieldSet = true;
33679 }
33680 if (("ProxyStubClassId" == name))
33681 {
33682 this.proxyStubClassIdField = value;
33683 this.proxyStubClassIdFieldSet = true;
33684 }
33685 if (("ProxyStubClassId32" == name))
33686 {
33687 this.proxyStubClassId32Field = value;
33688 this.proxyStubClassId32FieldSet = true;
33689 }
33690 if (("NumMethods" == name))
33691 {
33692 this.numMethodsField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
33693 this.numMethodsFieldSet = true;
33694 }
33695 if (("Versioned" == name))
33696 {
33697 this.versionedField = Enums.ParseYesNoType(value);
33698 this.versionedFieldSet = true;
33699 }
33700 }
33701 }
33702
33703 /// <summary>
33704 /// FileType data for class Id registration.
33705 /// </summary>
33706 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
33707 public class FileTypeMask : ISchemaElement, ISetAttributes
33708 {
33709
33710 private int offsetField;
33711
33712 private bool offsetFieldSet;
33713
33714 private string maskField;
33715
33716 private bool maskFieldSet;
33717
33718 private string valueField;
33719
33720 private bool valueFieldSet;
33721
33722 private ISchemaElement parentElement;
33723
33724 /// <summary>
33725 /// Offset into file. If positive, offset is from the beginning; if negative, offset is from the end.
33726 /// </summary>
33727 public int Offset
33728 {
33729 get
33730 {
33731 return this.offsetField;
33732 }
33733 set
33734 {
33735 this.offsetFieldSet = true;
33736 this.offsetField = value;
33737 }
33738 }
33739
33740 /// <summary>
33741 /// Hex value that is AND'd against the bytes in the file at Offset.
33742 /// </summary>
33743 public string Mask
33744 {
33745 get
33746 {
33747 return this.maskField;
33748 }
33749 set
33750 {
33751 this.maskFieldSet = true;
33752 this.maskField = value;
33753 }
33754 }
33755
33756 /// <summary>
33757 /// 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.
33758 /// </summary>
33759 public string Value
33760 {
33761 get
33762 {
33763 return this.valueField;
33764 }
33765 set
33766 {
33767 this.valueFieldSet = true;
33768 this.valueField = value;
33769 }
33770 }
33771
33772 public virtual ISchemaElement ParentElement
33773 {
33774 get
33775 {
33776 return this.parentElement;
33777 }
33778 set
33779 {
33780 this.parentElement = value;
33781 }
33782 }
33783
33784 /// <summary>
33785 /// Processes this element and all child elements into an XmlWriter.
33786 /// </summary>
33787 public virtual void OutputXml(XmlWriter writer)
33788 {
33789 if ((null == writer))
33790 {
33791 throw new ArgumentNullException("writer");
33792 }
33793 writer.WriteStartElement("FileTypeMask", "http://wixtoolset.org/schemas/v4/wxs");
33794 if (this.offsetFieldSet)
33795 {
33796 writer.WriteAttributeString("Offset", this.offsetField.ToString(CultureInfo.InvariantCulture));
33797 }
33798 if (this.maskFieldSet)
33799 {
33800 writer.WriteAttributeString("Mask", this.maskField);
33801 }
33802 if (this.valueFieldSet)
33803 {
33804 writer.WriteAttributeString("Value", this.valueField);
33805 }
33806 writer.WriteEndElement();
33807 }
33808
33809 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
33810 void ISetAttributes.SetAttribute(string name, string value)
33811 {
33812 if (String.IsNullOrEmpty(name))
33813 {
33814 throw new ArgumentNullException("name");
33815 }
33816 if (("Offset" == name))
33817 {
33818 this.offsetField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
33819 this.offsetFieldSet = true;
33820 }
33821 if (("Mask" == name))
33822 {
33823 this.maskField = value;
33824 this.maskFieldSet = true;
33825 }
33826 if (("Value" == name))
33827 {
33828 this.valueField = value;
33829 this.valueFieldSet = true;
33830 }
33831 }
33832 }
33833
33834 /// <summary>
33835 /// Service or group of services that must start before the parent service.
33836 /// </summary>
33837 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
33838 public class ServiceDependency : ISchemaElement, ISetAttributes
33839 {
33840
33841 private string idField;
33842
33843 private bool idFieldSet;
33844
33845 private YesNoType groupField;
33846
33847 private bool groupFieldSet;
33848
33849 private ISchemaElement parentElement;
33850
33851 /// <summary>
33852 /// The value of this attribute should be one of the following:
33853 /// </summary>
33854 public string Id
33855 {
33856 get
33857 {
33858 return this.idField;
33859 }
33860 set
33861 {
33862 this.idFieldSet = true;
33863 this.idField = value;
33864 }
33865 }
33866
33867 /// <summary>
33868 /// Set to 'yes' to indicate that the value in the Id attribute is the name of a group of services.
33869 /// </summary>
33870 public YesNoType Group
33871 {
33872 get
33873 {
33874 return this.groupField;
33875 }
33876 set
33877 {
33878 this.groupFieldSet = true;
33879 this.groupField = value;
33880 }
33881 }
33882
33883 public virtual ISchemaElement ParentElement
33884 {
33885 get
33886 {
33887 return this.parentElement;
33888 }
33889 set
33890 {
33891 this.parentElement = value;
33892 }
33893 }
33894
33895 /// <summary>
33896 /// Processes this element and all child elements into an XmlWriter.
33897 /// </summary>
33898 public virtual void OutputXml(XmlWriter writer)
33899 {
33900 if ((null == writer))
33901 {
33902 throw new ArgumentNullException("writer");
33903 }
33904 writer.WriteStartElement("ServiceDependency", "http://wixtoolset.org/schemas/v4/wxs");
33905 if (this.idFieldSet)
33906 {
33907 writer.WriteAttributeString("Id", this.idField);
33908 }
33909 if (this.groupFieldSet)
33910 {
33911 if ((this.groupField == YesNoType.no))
33912 {
33913 writer.WriteAttributeString("Group", "no");
33914 }
33915 if ((this.groupField == YesNoType.yes))
33916 {
33917 writer.WriteAttributeString("Group", "yes");
33918 }
33919 }
33920 writer.WriteEndElement();
33921 }
33922
33923 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
33924 void ISetAttributes.SetAttribute(string name, string value)
33925 {
33926 if (String.IsNullOrEmpty(name))
33927 {
33928 throw new ArgumentNullException("name");
33929 }
33930 if (("Id" == name))
33931 {
33932 this.idField = value;
33933 this.idFieldSet = true;
33934 }
33935 if (("Group" == name))
33936 {
33937 this.groupField = Enums.ParseYesNoType(value);
33938 this.groupFieldSet = true;
33939 }
33940 }
33941 }
33942
33943 /// <summary>
33944 /// Adds services for parent Component. Use the ServiceControl element to remove services.
33945 /// </summary>
33946 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
33947 public class ServiceInstall : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
33948 {
33949
33950 private ElementCollection children;
33951
33952 private string idField;
33953
33954 private bool idFieldSet;
33955
33956 private string nameField;
33957
33958 private bool nameFieldSet;
33959
33960 private string displayNameField;
33961
33962 private bool displayNameFieldSet;
33963
33964 private TypeType typeField;
33965
33966 private bool typeFieldSet;
33967
33968 private YesNoType interactiveField;
33969
33970 private bool interactiveFieldSet;
33971
33972 private StartType startField;
33973
33974 private bool startFieldSet;
33975
33976 private ErrorControlType errorControlField;
33977
33978 private bool errorControlFieldSet;
33979
33980 private YesNoType vitalField;
33981
33982 private bool vitalFieldSet;
33983
33984 private string loadOrderGroupField;
33985
33986 private bool loadOrderGroupFieldSet;
33987
33988 private string accountField;
33989
33990 private bool accountFieldSet;
33991
33992 private string passwordField;
33993
33994 private bool passwordFieldSet;
33995
33996 private string argumentsField;
33997
33998 private bool argumentsFieldSet;
33999
34000 private string descriptionField;
34001
34002 private bool descriptionFieldSet;
34003
34004 private YesNoType eraseDescriptionField;
34005
34006 private bool eraseDescriptionFieldSet;
34007
34008 private ISchemaElement parentElement;
34009
34010 public ServiceInstall()
34011 {
34012 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
34013 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx)));
34014 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceDependency)));
34015 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceConfig)));
34016 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceConfigFailureActions)));
34017 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
34018 this.children = childCollection0;
34019 }
34020
34021 public virtual IEnumerable Children
34022 {
34023 get
34024 {
34025 return this.children;
34026 }
34027 }
34028
34029 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
34030 public virtual IEnumerable this[System.Type childType]
34031 {
34032 get
34033 {
34034 return this.children.Filter(childType);
34035 }
34036 }
34037
34038 /// <summary>
34039 /// Unique identifier for this service configuration. This value will default to the Name attribute if not
34040 /// specified.
34041 /// </summary>
34042 public string Id
34043 {
34044 get
34045 {
34046 return this.idField;
34047 }
34048 set
34049 {
34050 this.idFieldSet = true;
34051 this.idField = value;
34052 }
34053 }
34054
34055 /// <summary>
34056 /// This column is the string that gives the service name to install.
34057 /// </summary>
34058 public string Name
34059 {
34060 get
34061 {
34062 return this.nameField;
34063 }
34064 set
34065 {
34066 this.nameFieldSet = true;
34067 this.nameField = value;
34068 }
34069 }
34070
34071 /// <summary>
34072 /// This column is the localizable string that user interface programs use to identify the service.
34073 /// </summary>
34074 public string DisplayName
34075 {
34076 get
34077 {
34078 return this.displayNameField;
34079 }
34080 set
34081 {
34082 this.displayNameFieldSet = true;
34083 this.displayNameField = value;
34084 }
34085 }
34086
34087 /// <summary>
34088 /// The Windows Installer does not currently support kernelDriver or systemDriver.
34089 /// </summary>
34090 public TypeType Type
34091 {
34092 get
34093 {
34094 return this.typeField;
34095 }
34096 set
34097 {
34098 this.typeFieldSet = true;
34099 this.typeField = value;
34100 }
34101 }
34102
34103 /// <summary>
34104 /// Whether or not the service interacts with the desktop.
34105 /// </summary>
34106 public YesNoType Interactive
34107 {
34108 get
34109 {
34110 return this.interactiveField;
34111 }
34112 set
34113 {
34114 this.interactiveFieldSet = true;
34115 this.interactiveField = value;
34116 }
34117 }
34118
34119 /// <summary>
34120 /// Determines when the service should be started. The Windows Installer does not support boot or system.
34121 /// </summary>
34122 public StartType Start
34123 {
34124 get
34125 {
34126 return this.startField;
34127 }
34128 set
34129 {
34130 this.startFieldSet = true;
34131 this.startField = value;
34132 }
34133 }
34134
34135 /// <summary>
34136 /// Determines what action should be taken on an error.
34137 /// </summary>
34138 public ErrorControlType ErrorControl
34139 {
34140 get
34141 {
34142 return this.errorControlField;
34143 }
34144 set
34145 {
34146 this.errorControlFieldSet = true;
34147 this.errorControlField = value;
34148 }
34149 }
34150
34151 /// <summary>
34152 /// The overall install should fail if this service fails to install.
34153 /// </summary>
34154 public YesNoType Vital
34155 {
34156 get
34157 {
34158 return this.vitalField;
34159 }
34160 set
34161 {
34162 this.vitalFieldSet = true;
34163 this.vitalField = value;
34164 }
34165 }
34166
34167 /// <summary>
34168 /// The load ordering group that this service should be a part of.
34169 /// </summary>
34170 public string LoadOrderGroup
34171 {
34172 get
34173 {
34174 return this.loadOrderGroupField;
34175 }
34176 set
34177 {
34178 this.loadOrderGroupFieldSet = true;
34179 this.loadOrderGroupField = value;
34180 }
34181 }
34182
34183 /// <summary>
34184 /// Fully qualified names must be used even for local accounts, e.g.: ".\LOCAL_ACCOUNT". Valid only when ServiceType is ownProcess.
34185 /// </summary>
34186 public string Account
34187 {
34188 get
34189 {
34190 return this.accountField;
34191 }
34192 set
34193 {
34194 this.accountFieldSet = true;
34195 this.accountField = value;
34196 }
34197 }
34198
34199 /// <summary>
34200 /// The password for the account. Valid only when the account has a password.
34201 /// </summary>
34202 public string Password
34203 {
34204 get
34205 {
34206 return this.passwordField;
34207 }
34208 set
34209 {
34210 this.passwordFieldSet = true;
34211 this.passwordField = value;
34212 }
34213 }
34214
34215 /// <summary>
34216 /// Contains any command line arguments or properties required to run the service.
34217 /// </summary>
34218 public string Arguments
34219 {
34220 get
34221 {
34222 return this.argumentsField;
34223 }
34224 set
34225 {
34226 this.argumentsFieldSet = true;
34227 this.argumentsField = value;
34228 }
34229 }
34230
34231 /// <summary>
34232 /// Sets the description of the service.
34233 /// </summary>
34234 public string Description
34235 {
34236 get
34237 {
34238 return this.descriptionField;
34239 }
34240 set
34241 {
34242 this.descriptionFieldSet = true;
34243 this.descriptionField = value;
34244 }
34245 }
34246
34247 /// <summary>
34248 /// Determines whether the existing service description will be ignored. If 'yes', the service description will be null, even if the Description attribute is set.
34249 /// </summary>
34250 public YesNoType EraseDescription
34251 {
34252 get
34253 {
34254 return this.eraseDescriptionField;
34255 }
34256 set
34257 {
34258 this.eraseDescriptionFieldSet = true;
34259 this.eraseDescriptionField = value;
34260 }
34261 }
34262
34263 public virtual ISchemaElement ParentElement
34264 {
34265 get
34266 {
34267 return this.parentElement;
34268 }
34269 set
34270 {
34271 this.parentElement = value;
34272 }
34273 }
34274
34275 public virtual void AddChild(ISchemaElement child)
34276 {
34277 if ((null == child))
34278 {
34279 throw new ArgumentNullException("child");
34280 }
34281 this.children.AddElement(child);
34282 child.ParentElement = this;
34283 }
34284
34285 public virtual void RemoveChild(ISchemaElement child)
34286 {
34287 if ((null == child))
34288 {
34289 throw new ArgumentNullException("child");
34290 }
34291 this.children.RemoveElement(child);
34292 child.ParentElement = null;
34293 }
34294
34295 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
34296 ISchemaElement ICreateChildren.CreateChild(string childName)
34297 {
34298 if (String.IsNullOrEmpty(childName))
34299 {
34300 throw new ArgumentNullException("childName");
34301 }
34302 ISchemaElement childValue = null;
34303 if (("PermissionEx" == childName))
34304 {
34305 childValue = new PermissionEx();
34306 }
34307 if (("ServiceDependency" == childName))
34308 {
34309 childValue = new ServiceDependency();
34310 }
34311 if (("ServiceConfig" == childName))
34312 {
34313 childValue = new ServiceConfig();
34314 }
34315 if (("ServiceConfigFailureActions" == childName))
34316 {
34317 childValue = new ServiceConfigFailureActions();
34318 }
34319 if ((null == childValue))
34320 {
34321 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
34322 }
34323 return childValue;
34324 }
34325
34326 /// <summary>
34327 /// Parses a TypeType from a string.
34328 /// </summary>
34329 public static TypeType ParseTypeType(string value)
34330 {
34331 TypeType parsedValue;
34332 ServiceInstall.TryParseTypeType(value, out parsedValue);
34333 return parsedValue;
34334 }
34335
34336 /// <summary>
34337 /// Tries to parse a TypeType from a string.
34338 /// </summary>
34339 public static bool TryParseTypeType(string value, out TypeType parsedValue)
34340 {
34341 parsedValue = TypeType.NotSet;
34342 if (string.IsNullOrEmpty(value))
34343 {
34344 return false;
34345 }
34346 if (("ownProcess" == value))
34347 {
34348 parsedValue = TypeType.ownProcess;
34349 }
34350 else
34351 {
34352 if (("shareProcess" == value))
34353 {
34354 parsedValue = TypeType.shareProcess;
34355 }
34356 else
34357 {
34358 if (("kernelDriver" == value))
34359 {
34360 parsedValue = TypeType.kernelDriver;
34361 }
34362 else
34363 {
34364 if (("systemDriver" == value))
34365 {
34366 parsedValue = TypeType.systemDriver;
34367 }
34368 else
34369 {
34370 parsedValue = TypeType.IllegalValue;
34371 return false;
34372 }
34373 }
34374 }
34375 }
34376 return true;
34377 }
34378
34379 /// <summary>
34380 /// Parses a StartType from a string.
34381 /// </summary>
34382 public static StartType ParseStartType(string value)
34383 {
34384 StartType parsedValue;
34385 ServiceInstall.TryParseStartType(value, out parsedValue);
34386 return parsedValue;
34387 }
34388
34389 /// <summary>
34390 /// Tries to parse a StartType from a string.
34391 /// </summary>
34392 public static bool TryParseStartType(string value, out StartType parsedValue)
34393 {
34394 parsedValue = StartType.NotSet;
34395 if (string.IsNullOrEmpty(value))
34396 {
34397 return false;
34398 }
34399 if (("auto" == value))
34400 {
34401 parsedValue = StartType.auto;
34402 }
34403 else
34404 {
34405 if (("demand" == value))
34406 {
34407 parsedValue = StartType.demand;
34408 }
34409 else
34410 {
34411 if (("disabled" == value))
34412 {
34413 parsedValue = StartType.disabled;
34414 }
34415 else
34416 {
34417 if (("boot" == value))
34418 {
34419 parsedValue = StartType.boot;
34420 }
34421 else
34422 {
34423 if (("system" == value))
34424 {
34425 parsedValue = StartType.system;
34426 }
34427 else
34428 {
34429 parsedValue = StartType.IllegalValue;
34430 return false;
34431 }
34432 }
34433 }
34434 }
34435 }
34436 return true;
34437 }
34438
34439 /// <summary>
34440 /// Parses a ErrorControlType from a string.
34441 /// </summary>
34442 public static ErrorControlType ParseErrorControlType(string value)
34443 {
34444 ErrorControlType parsedValue;
34445 ServiceInstall.TryParseErrorControlType(value, out parsedValue);
34446 return parsedValue;
34447 }
34448
34449 /// <summary>
34450 /// Tries to parse a ErrorControlType from a string.
34451 /// </summary>
34452 public static bool TryParseErrorControlType(string value, out ErrorControlType parsedValue)
34453 {
34454 parsedValue = ErrorControlType.NotSet;
34455 if (string.IsNullOrEmpty(value))
34456 {
34457 return false;
34458 }
34459 if (("ignore" == value))
34460 {
34461 parsedValue = ErrorControlType.ignore;
34462 }
34463 else
34464 {
34465 if (("normal" == value))
34466 {
34467 parsedValue = ErrorControlType.normal;
34468 }
34469 else
34470 {
34471 if (("critical" == value))
34472 {
34473 parsedValue = ErrorControlType.critical;
34474 }
34475 else
34476 {
34477 parsedValue = ErrorControlType.IllegalValue;
34478 return false;
34479 }
34480 }
34481 }
34482 return true;
34483 }
34484
34485 /// <summary>
34486 /// Processes this element and all child elements into an XmlWriter.
34487 /// </summary>
34488 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
34489 public virtual void OutputXml(XmlWriter writer)
34490 {
34491 if ((null == writer))
34492 {
34493 throw new ArgumentNullException("writer");
34494 }
34495 writer.WriteStartElement("ServiceInstall", "http://wixtoolset.org/schemas/v4/wxs");
34496 if (this.idFieldSet)
34497 {
34498 writer.WriteAttributeString("Id", this.idField);
34499 }
34500 if (this.nameFieldSet)
34501 {
34502 writer.WriteAttributeString("Name", this.nameField);
34503 }
34504 if (this.displayNameFieldSet)
34505 {
34506 writer.WriteAttributeString("DisplayName", this.displayNameField);
34507 }
34508 if (this.typeFieldSet)
34509 {
34510 if ((this.typeField == TypeType.ownProcess))
34511 {
34512 writer.WriteAttributeString("Type", "ownProcess");
34513 }
34514 if ((this.typeField == TypeType.shareProcess))
34515 {
34516 writer.WriteAttributeString("Type", "shareProcess");
34517 }
34518 if ((this.typeField == TypeType.kernelDriver))
34519 {
34520 writer.WriteAttributeString("Type", "kernelDriver");
34521 }
34522 if ((this.typeField == TypeType.systemDriver))
34523 {
34524 writer.WriteAttributeString("Type", "systemDriver");
34525 }
34526 }
34527 if (this.interactiveFieldSet)
34528 {
34529 if ((this.interactiveField == YesNoType.no))
34530 {
34531 writer.WriteAttributeString("Interactive", "no");
34532 }
34533 if ((this.interactiveField == YesNoType.yes))
34534 {
34535 writer.WriteAttributeString("Interactive", "yes");
34536 }
34537 }
34538 if (this.startFieldSet)
34539 {
34540 if ((this.startField == StartType.auto))
34541 {
34542 writer.WriteAttributeString("Start", "auto");
34543 }
34544 if ((this.startField == StartType.demand))
34545 {
34546 writer.WriteAttributeString("Start", "demand");
34547 }
34548 if ((this.startField == StartType.disabled))
34549 {
34550 writer.WriteAttributeString("Start", "disabled");
34551 }
34552 if ((this.startField == StartType.boot))
34553 {
34554 writer.WriteAttributeString("Start", "boot");
34555 }
34556 if ((this.startField == StartType.system))
34557 {
34558 writer.WriteAttributeString("Start", "system");
34559 }
34560 }
34561 if (this.errorControlFieldSet)
34562 {
34563 if ((this.errorControlField == ErrorControlType.ignore))
34564 {
34565 writer.WriteAttributeString("ErrorControl", "ignore");
34566 }
34567 if ((this.errorControlField == ErrorControlType.normal))
34568 {
34569 writer.WriteAttributeString("ErrorControl", "normal");
34570 }
34571 if ((this.errorControlField == ErrorControlType.critical))
34572 {
34573 writer.WriteAttributeString("ErrorControl", "critical");
34574 }
34575 }
34576 if (this.vitalFieldSet)
34577 {
34578 if ((this.vitalField == YesNoType.no))
34579 {
34580 writer.WriteAttributeString("Vital", "no");
34581 }
34582 if ((this.vitalField == YesNoType.yes))
34583 {
34584 writer.WriteAttributeString("Vital", "yes");
34585 }
34586 }
34587 if (this.loadOrderGroupFieldSet)
34588 {
34589 writer.WriteAttributeString("LoadOrderGroup", this.loadOrderGroupField);
34590 }
34591 if (this.accountFieldSet)
34592 {
34593 writer.WriteAttributeString("Account", this.accountField);
34594 }
34595 if (this.passwordFieldSet)
34596 {
34597 writer.WriteAttributeString("Password", this.passwordField);
34598 }
34599 if (this.argumentsFieldSet)
34600 {
34601 writer.WriteAttributeString("Arguments", this.argumentsField);
34602 }
34603 if (this.descriptionFieldSet)
34604 {
34605 writer.WriteAttributeString("Description", this.descriptionField);
34606 }
34607 if (this.eraseDescriptionFieldSet)
34608 {
34609 if ((this.eraseDescriptionField == YesNoType.no))
34610 {
34611 writer.WriteAttributeString("EraseDescription", "no");
34612 }
34613 if ((this.eraseDescriptionField == YesNoType.yes))
34614 {
34615 writer.WriteAttributeString("EraseDescription", "yes");
34616 }
34617 }
34618 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
34619 {
34620 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
34621 childElement.OutputXml(writer);
34622 }
34623 writer.WriteEndElement();
34624 }
34625
34626 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
34627 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
34628 void ISetAttributes.SetAttribute(string name, string value)
34629 {
34630 if (String.IsNullOrEmpty(name))
34631 {
34632 throw new ArgumentNullException("name");
34633 }
34634 if (("Id" == name))
34635 {
34636 this.idField = value;
34637 this.idFieldSet = true;
34638 }
34639 if (("Name" == name))
34640 {
34641 this.nameField = value;
34642 this.nameFieldSet = true;
34643 }
34644 if (("DisplayName" == name))
34645 {
34646 this.displayNameField = value;
34647 this.displayNameFieldSet = true;
34648 }
34649 if (("Type" == name))
34650 {
34651 this.typeField = ServiceInstall.ParseTypeType(value);
34652 this.typeFieldSet = true;
34653 }
34654 if (("Interactive" == name))
34655 {
34656 this.interactiveField = Enums.ParseYesNoType(value);
34657 this.interactiveFieldSet = true;
34658 }
34659 if (("Start" == name))
34660 {
34661 this.startField = ServiceInstall.ParseStartType(value);
34662 this.startFieldSet = true;
34663 }
34664 if (("ErrorControl" == name))
34665 {
34666 this.errorControlField = ServiceInstall.ParseErrorControlType(value);
34667 this.errorControlFieldSet = true;
34668 }
34669 if (("Vital" == name))
34670 {
34671 this.vitalField = Enums.ParseYesNoType(value);
34672 this.vitalFieldSet = true;
34673 }
34674 if (("LoadOrderGroup" == name))
34675 {
34676 this.loadOrderGroupField = value;
34677 this.loadOrderGroupFieldSet = true;
34678 }
34679 if (("Account" == name))
34680 {
34681 this.accountField = value;
34682 this.accountFieldSet = true;
34683 }
34684 if (("Password" == name))
34685 {
34686 this.passwordField = value;
34687 this.passwordFieldSet = true;
34688 }
34689 if (("Arguments" == name))
34690 {
34691 this.argumentsField = value;
34692 this.argumentsFieldSet = true;
34693 }
34694 if (("Description" == name))
34695 {
34696 this.descriptionField = value;
34697 this.descriptionFieldSet = true;
34698 }
34699 if (("EraseDescription" == name))
34700 {
34701 this.eraseDescriptionField = Enums.ParseYesNoType(value);
34702 this.eraseDescriptionFieldSet = true;
34703 }
34704 }
34705
34706 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
34707 public enum TypeType
34708 {
34709
34710 IllegalValue = int.MaxValue,
34711
34712 NotSet = -1,
34713
34714 /// <summary>
34715 /// A Win32 service that runs its own process.
34716 /// </summary>
34717 ownProcess,
34718
34719 /// <summary>
34720 /// A Win32 service that shares a process.
34721 /// </summary>
34722 shareProcess,
34723
34724 /// <summary>
34725 /// A kernel driver service. This value is not currently supported by the Windows Installer.
34726 /// </summary>
34727 kernelDriver,
34728
34729 /// <summary>
34730 /// A file system driver service. This value is not currently supported by the Windows Installer.
34731 /// </summary>
34732 systemDriver,
34733 }
34734
34735 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
34736 public enum StartType
34737 {
34738
34739 IllegalValue = int.MaxValue,
34740
34741 NotSet = -1,
34742
34743 /// <summary>
34744 /// The service will start during startup of the system.
34745 /// </summary>
34746 auto,
34747
34748 /// <summary>
34749 /// The service will start when the service control manager calls the StartService function.
34750 /// </summary>
34751 demand,
34752
34753 /// <summary>
34754 /// The service can no longer be started.
34755 /// </summary>
34756 disabled,
34757
34758 /// <summary>
34759 /// 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.
34760 /// </summary>
34761 boot,
34762
34763 /// <summary>
34764 /// The service is a device driver that will be started by the IoInitSystem function. This value is not currently supported by the Windows Installer.
34765 /// </summary>
34766 system,
34767 }
34768
34769 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
34770 public enum ErrorControlType
34771 {
34772
34773 IllegalValue = int.MaxValue,
34774
34775 NotSet = -1,
34776
34777 /// <summary>
34778 /// Logs the error and continues with the startup operation.
34779 /// </summary>
34780 ignore,
34781
34782 /// <summary>
34783 /// Logs the error, displays a message box and continues the startup operation.
34784 /// </summary>
34785 normal,
34786
34787 /// <summary>
34788 /// 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.
34789 /// </summary>
34790 critical,
34791 }
34792 }
34793
34794 /// <summary>
34795 /// Argument used in ServiceControl parent
34796 /// </summary>
34797 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
34798 public class ServiceArgument : ISetAttributes, ISchemaElement
34799 {
34800
34801 private ISchemaElement parentElement;
34802
34803 private string contentField;
34804
34805 private bool contentFieldSet;
34806
34807 public virtual ISchemaElement ParentElement
34808 {
34809 get
34810 {
34811 return this.parentElement;
34812 }
34813 set
34814 {
34815 this.parentElement = value;
34816 }
34817 }
34818
34819 /// <summary>
34820 /// Argument used in ServiceControl parent
34821 /// </summary>
34822 public string Content
34823 {
34824 get
34825 {
34826 return this.contentField;
34827 }
34828 set
34829 {
34830 this.contentFieldSet = true;
34831 this.contentField = value;
34832 }
34833 }
34834
34835 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
34836 void ISetAttributes.SetAttribute(string name, string value)
34837 {
34838 if (String.IsNullOrEmpty(name))
34839 {
34840 throw new ArgumentNullException("name");
34841 }
34842 if (("Content" == name))
34843 {
34844 this.contentField = value;
34845 this.contentFieldSet = true;
34846 }
34847 }
34848
34849 /// <summary>
34850 /// Processes this element and all child elements into an XmlWriter.
34851 /// </summary>
34852 public virtual void OutputXml(XmlWriter writer)
34853 {
34854 if ((null == writer))
34855 {
34856 throw new ArgumentNullException("writer");
34857 }
34858 writer.WriteStartElement("ServiceArgument", "http://wixtoolset.org/schemas/v4/wxs");
34859 if (this.contentFieldSet)
34860 {
34861 writer.WriteString(this.contentField);
34862 }
34863 writer.WriteEndElement();
34864 }
34865 }
34866
34867 /// <summary>
34868 /// Starts, stops, and removes services for parent Component. This element is used to control the state
34869 /// of a service installed by the MSI or MSM file by using the start, stop and remove attributes.
34870 /// For example, Start='install' Stop='both' Remove='uninstall' would mean: start the service on install,
34871 /// remove the service when the product is uninstalled, and stop the service both on install and uninstall.
34872 /// </summary>
34873 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
34874 public class ServiceControl : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
34875 {
34876
34877 private ElementCollection children;
34878
34879 private string idField;
34880
34881 private bool idFieldSet;
34882
34883 private string nameField;
34884
34885 private bool nameFieldSet;
34886
34887 private InstallUninstallType startField;
34888
34889 private bool startFieldSet;
34890
34891 private InstallUninstallType stopField;
34892
34893 private bool stopFieldSet;
34894
34895 private InstallUninstallType removeField;
34896
34897 private bool removeFieldSet;
34898
34899 private YesNoType waitField;
34900
34901 private bool waitFieldSet;
34902
34903 private ISchemaElement parentElement;
34904
34905 public ServiceControl()
34906 {
34907 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
34908 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ServiceArgument)));
34909 this.children = childCollection0;
34910 }
34911
34912 public virtual IEnumerable Children
34913 {
34914 get
34915 {
34916 return this.children;
34917 }
34918 }
34919
34920 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
34921 public virtual IEnumerable this[System.Type childType]
34922 {
34923 get
34924 {
34925 return this.children.Filter(childType);
34926 }
34927 }
34928
34929 public string Id
34930 {
34931 get
34932 {
34933 return this.idField;
34934 }
34935 set
34936 {
34937 this.idFieldSet = true;
34938 this.idField = value;
34939 }
34940 }
34941
34942 /// <summary>
34943 /// Name of the service.
34944 /// </summary>
34945 public string Name
34946 {
34947 get
34948 {
34949 return this.nameField;
34950 }
34951 set
34952 {
34953 this.nameFieldSet = true;
34954 this.nameField = value;
34955 }
34956 }
34957
34958 /// <summary>
34959 /// Specifies whether the service should be started by the StartServices action on install, uninstall or both.
34960 /// For 'install', the service will be started only when the parent component is being installed (msiInstallStateLocal or
34961 /// msiInstallStateSource); for 'uninstall', the service will be started only when the parent component
34962 /// is being removed (msiInstallStateAbsent); for 'both', the service will be started in both cases.
34963 /// </summary>
34964 public InstallUninstallType Start
34965 {
34966 get
34967 {
34968 return this.startField;
34969 }
34970 set
34971 {
34972 this.startFieldSet = true;
34973 this.startField = value;
34974 }
34975 }
34976
34977 /// <summary>
34978 /// Specifies whether the service should be stopped by the StopServices action on install, uninstall or both.
34979 /// For 'install', the service will be stopped only when the parent component is being installed (msiInstallStateLocal or
34980 /// msiInstallStateSource); for 'uninstall', the service will be stopped only when the parent component
34981 /// is being removed (msiInstallStateAbsent); for 'both', the service will be stopped in both cases.
34982 /// </summary>
34983 public InstallUninstallType Stop
34984 {
34985 get
34986 {
34987 return this.stopField;
34988 }
34989 set
34990 {
34991 this.stopFieldSet = true;
34992 this.stopField = value;
34993 }
34994 }
34995
34996 /// <summary>
34997 /// Specifies whether the service should be removed by the DeleteServices action on install, uninstall or both.
34998 /// For 'install', the service will be removed only when the parent component is being installed (msiInstallStateLocal or
34999 /// msiInstallStateSource); for 'uninstall', the service will be removed only when the parent component
35000 /// is being removed (msiInstallStateAbsent); for 'both', the service will be removed in both cases.
35001 /// </summary>
35002 public InstallUninstallType Remove
35003 {
35004 get
35005 {
35006 return this.removeField;
35007 }
35008 set
35009 {
35010 this.removeFieldSet = true;
35011 this.removeField = value;
35012 }
35013 }
35014
35015 /// <summary>
35016 /// Specifies whether or not to wait for the service to complete before continuing. The default is 'yes'.
35017 /// </summary>
35018 public YesNoType Wait
35019 {
35020 get
35021 {
35022 return this.waitField;
35023 }
35024 set
35025 {
35026 this.waitFieldSet = true;
35027 this.waitField = value;
35028 }
35029 }
35030
35031 public virtual ISchemaElement ParentElement
35032 {
35033 get
35034 {
35035 return this.parentElement;
35036 }
35037 set
35038 {
35039 this.parentElement = value;
35040 }
35041 }
35042
35043 public virtual void AddChild(ISchemaElement child)
35044 {
35045 if ((null == child))
35046 {
35047 throw new ArgumentNullException("child");
35048 }
35049 this.children.AddElement(child);
35050 child.ParentElement = this;
35051 }
35052
35053 public virtual void RemoveChild(ISchemaElement child)
35054 {
35055 if ((null == child))
35056 {
35057 throw new ArgumentNullException("child");
35058 }
35059 this.children.RemoveElement(child);
35060 child.ParentElement = null;
35061 }
35062
35063 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
35064 ISchemaElement ICreateChildren.CreateChild(string childName)
35065 {
35066 if (String.IsNullOrEmpty(childName))
35067 {
35068 throw new ArgumentNullException("childName");
35069 }
35070 ISchemaElement childValue = null;
35071 if (("ServiceArgument" == childName))
35072 {
35073 childValue = new ServiceArgument();
35074 }
35075 if ((null == childValue))
35076 {
35077 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
35078 }
35079 return childValue;
35080 }
35081
35082 /// <summary>
35083 /// Processes this element and all child elements into an XmlWriter.
35084 /// </summary>
35085 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
35086 public virtual void OutputXml(XmlWriter writer)
35087 {
35088 if ((null == writer))
35089 {
35090 throw new ArgumentNullException("writer");
35091 }
35092 writer.WriteStartElement("ServiceControl", "http://wixtoolset.org/schemas/v4/wxs");
35093 if (this.idFieldSet)
35094 {
35095 writer.WriteAttributeString("Id", this.idField);
35096 }
35097 if (this.nameFieldSet)
35098 {
35099 writer.WriteAttributeString("Name", this.nameField);
35100 }
35101 if (this.startFieldSet)
35102 {
35103 if ((this.startField == InstallUninstallType.install))
35104 {
35105 writer.WriteAttributeString("Start", "install");
35106 }
35107 if ((this.startField == InstallUninstallType.uninstall))
35108 {
35109 writer.WriteAttributeString("Start", "uninstall");
35110 }
35111 if ((this.startField == InstallUninstallType.both))
35112 {
35113 writer.WriteAttributeString("Start", "both");
35114 }
35115 }
35116 if (this.stopFieldSet)
35117 {
35118 if ((this.stopField == InstallUninstallType.install))
35119 {
35120 writer.WriteAttributeString("Stop", "install");
35121 }
35122 if ((this.stopField == InstallUninstallType.uninstall))
35123 {
35124 writer.WriteAttributeString("Stop", "uninstall");
35125 }
35126 if ((this.stopField == InstallUninstallType.both))
35127 {
35128 writer.WriteAttributeString("Stop", "both");
35129 }
35130 }
35131 if (this.removeFieldSet)
35132 {
35133 if ((this.removeField == InstallUninstallType.install))
35134 {
35135 writer.WriteAttributeString("Remove", "install");
35136 }
35137 if ((this.removeField == InstallUninstallType.uninstall))
35138 {
35139 writer.WriteAttributeString("Remove", "uninstall");
35140 }
35141 if ((this.removeField == InstallUninstallType.both))
35142 {
35143 writer.WriteAttributeString("Remove", "both");
35144 }
35145 }
35146 if (this.waitFieldSet)
35147 {
35148 if ((this.waitField == YesNoType.no))
35149 {
35150 writer.WriteAttributeString("Wait", "no");
35151 }
35152 if ((this.waitField == YesNoType.yes))
35153 {
35154 writer.WriteAttributeString("Wait", "yes");
35155 }
35156 }
35157 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
35158 {
35159 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
35160 childElement.OutputXml(writer);
35161 }
35162 writer.WriteEndElement();
35163 }
35164
35165 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
35166 void ISetAttributes.SetAttribute(string name, string value)
35167 {
35168 if (String.IsNullOrEmpty(name))
35169 {
35170 throw new ArgumentNullException("name");
35171 }
35172 if (("Id" == name))
35173 {
35174 this.idField = value;
35175 this.idFieldSet = true;
35176 }
35177 if (("Name" == name))
35178 {
35179 this.nameField = value;
35180 this.nameFieldSet = true;
35181 }
35182 if (("Start" == name))
35183 {
35184 this.startField = Enums.ParseInstallUninstallType(value);
35185 this.startFieldSet = true;
35186 }
35187 if (("Stop" == name))
35188 {
35189 this.stopField = Enums.ParseInstallUninstallType(value);
35190 this.stopFieldSet = true;
35191 }
35192 if (("Remove" == name))
35193 {
35194 this.removeField = Enums.ParseInstallUninstallType(value);
35195 this.removeFieldSet = true;
35196 }
35197 if (("Wait" == name))
35198 {
35199 this.waitField = Enums.ParseYesNoType(value);
35200 this.waitFieldSet = true;
35201 }
35202 }
35203 }
35204
35205 /// <summary>
35206 /// Privilege required by service configured by ServiceConfig parent. Valid values are a
35207 /// </summary>
35208 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
35209 public class RequiredPrivilege : ISetAttributes, ISchemaElement
35210 {
35211
35212 private ISchemaElement parentElement;
35213
35214 private string contentField;
35215
35216 private bool contentFieldSet;
35217
35218 public virtual ISchemaElement ParentElement
35219 {
35220 get
35221 {
35222 return this.parentElement;
35223 }
35224 set
35225 {
35226 this.parentElement = value;
35227 }
35228 }
35229
35230 /// <summary>
35231 /// Privilege required by service configured by ServiceConfig parent. Valid values are a
35232 /// </summary>
35233 public string Content
35234 {
35235 get
35236 {
35237 return this.contentField;
35238 }
35239 set
35240 {
35241 this.contentFieldSet = true;
35242 this.contentField = value;
35243 }
35244 }
35245
35246 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
35247 void ISetAttributes.SetAttribute(string name, string value)
35248 {
35249 if (String.IsNullOrEmpty(name))
35250 {
35251 throw new ArgumentNullException("name");
35252 }
35253 if (("Content" == name))
35254 {
35255 this.contentField = value;
35256 this.contentFieldSet = true;
35257 }
35258 }
35259
35260 /// <summary>
35261 /// Processes this element and all child elements into an XmlWriter.
35262 /// </summary>
35263 public virtual void OutputXml(XmlWriter writer)
35264 {
35265 if ((null == writer))
35266 {
35267 throw new ArgumentNullException("writer");
35268 }
35269 writer.WriteStartElement("RequiredPrivilege", "http://wixtoolset.org/schemas/v4/wxs");
35270 if (this.contentFieldSet)
35271 {
35272 writer.WriteString(this.contentField);
35273 }
35274 writer.WriteEndElement();
35275 }
35276 }
35277
35278 /// <summary>
35279 /// Configures a service being installed or one that already exists. This element's functionality is available starting with MSI 5.0.
35280 /// </summary>
35281 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
35282 public class ServiceConfig : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
35283 {
35284
35285 private ElementCollection children;
35286
35287 private string idField;
35288
35289 private bool idFieldSet;
35290
35291 private string delayedAutoStartField;
35292
35293 private bool delayedAutoStartFieldSet;
35294
35295 private string failureActionsWhenField;
35296
35297 private bool failureActionsWhenFieldSet;
35298
35299 private string preShutdownDelayField;
35300
35301 private bool preShutdownDelayFieldSet;
35302
35303 private YesNoType onInstallField;
35304
35305 private bool onInstallFieldSet;
35306
35307 private YesNoType onReinstallField;
35308
35309 private bool onReinstallFieldSet;
35310
35311 private YesNoType onUninstallField;
35312
35313 private bool onUninstallFieldSet;
35314
35315 private string serviceNameField;
35316
35317 private bool serviceNameFieldSet;
35318
35319 private string serviceSidField;
35320
35321 private bool serviceSidFieldSet;
35322
35323 private ISchemaElement parentElement;
35324
35325 public ServiceConfig()
35326 {
35327 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
35328 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RequiredPrivilege)));
35329 this.children = childCollection0;
35330 }
35331
35332 public virtual IEnumerable Children
35333 {
35334 get
35335 {
35336 return this.children;
35337 }
35338 }
35339
35340 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
35341 public virtual IEnumerable this[System.Type childType]
35342 {
35343 get
35344 {
35345 return this.children.Filter(childType);
35346 }
35347 }
35348
35349 /// <summary>
35350 /// Unique identifier for this service configuration. This value will default to the ServiceName attribute if not
35351 /// specified.
35352 /// </summary>
35353 public string Id
35354 {
35355 get
35356 {
35357 return this.idField;
35358 }
35359 set
35360 {
35361 this.idFieldSet = true;
35362 this.idField = value;
35363 }
35364 }
35365
35366 /// <summary>
35367 /// This attribute specifies whether an auto-start service should delay its start until after all other auto-start
35368 /// services. This attribute only affects auto-start services. Allowed values are "yes", "no" or a Formatted property that
35369 /// resolves to "1" (for "yes") or "0" (for "no"). If this attribute is not present the setting is not configured.
35370 /// </summary>
35371 public string DelayedAutoStart
35372 {
35373 get
35374 {
35375 return this.delayedAutoStartField;
35376 }
35377 set
35378 {
35379 this.delayedAutoStartFieldSet = true;
35380 this.delayedAutoStartField = value;
35381 }
35382 }
35383
35384 /// <summary>
35385 /// This attribute specifies when failure actions should be applied. Allowed values are "failedToStop", "failedToStopOrReturnedError"
35386 /// or a Formatted property that resolves to "1" (for "failedToStopOrReturnedError") or "0" (for "failedToStop"). If this attribute
35387 /// is not present the setting is not configured.
35388 /// </summary>
35389 public string FailureActionsWhen
35390 {
35391 get
35392 {
35393 return this.failureActionsWhenField;
35394 }
35395 set
35396 {
35397 this.failureActionsWhenFieldSet = true;
35398 this.failureActionsWhenField = value;
35399 }
35400 }
35401
35402 /// <summary>
35403 /// This attribute specifies time in milliseconds that the Service Control Manager (SCM) waits after notifying the service of a system
35404 /// shutdown. If this attribute is not present the default value, 3 minutes, is used.
35405 /// </summary>
35406 public string PreShutdownDelay
35407 {
35408 get
35409 {
35410 return this.preShutdownDelayField;
35411 }
35412 set
35413 {
35414 this.preShutdownDelayFieldSet = true;
35415 this.preShutdownDelayField = value;
35416 }
35417 }
35418
35419 /// <summary>
35420 /// Specifies whether to configure the service when the parent Component is installed. This attribute may be combined with OnReinstall
35421 /// and OnUninstall.
35422 /// </summary>
35423 public YesNoType OnInstall
35424 {
35425 get
35426 {
35427 return this.onInstallField;
35428 }
35429 set
35430 {
35431 this.onInstallFieldSet = true;
35432 this.onInstallField = value;
35433 }
35434 }
35435
35436 /// <summary>
35437 /// Specifies whether to configure the service when the parent Component is reinstalled. This attribute may be combined with OnInstall
35438 /// and OnUninstall.
35439 /// </summary>
35440 public YesNoType OnReinstall
35441 {
35442 get
35443 {
35444 return this.onReinstallField;
35445 }
35446 set
35447 {
35448 this.onReinstallFieldSet = true;
35449 this.onReinstallField = value;
35450 }
35451 }
35452
35453 /// <summary>
35454 /// Specifies whether to configure the service when the parent Component is uninstalled. This attribute may be combined with OnInstall
35455 /// and OnReinstall.
35456 /// </summary>
35457 public YesNoType OnUninstall
35458 {
35459 get
35460 {
35461 return this.onUninstallField;
35462 }
35463 set
35464 {
35465 this.onUninstallFieldSet = true;
35466 this.onUninstallField = value;
35467 }
35468 }
35469
35470 /// <summary>
35471 /// Specifies the name of the service to configure. This value will default to the ServiceInstall/@Name attribute when nested under
35472 /// a ServiceInstall element.
35473 /// </summary>
35474 public string ServiceName
35475 {
35476 get
35477 {
35478 return this.serviceNameField;
35479 }
35480 set
35481 {
35482 this.serviceNameFieldSet = true;
35483 this.serviceNameField = value;
35484 }
35485 }
35486
35487 /// <summary>
35488 /// Specifies the service SID to apply to the service. Valid values are "none", "restricted", "unrestricted" or a Formatted property
35489 /// that resolves to "0" (for "none"), "3" (for "restricted") or "1" (for "unrestricted"). If this attribute is not present the
35490 /// setting is not configured.
35491 /// </summary>
35492 public string ServiceSid
35493 {
35494 get
35495 {
35496 return this.serviceSidField;
35497 }
35498 set
35499 {
35500 this.serviceSidFieldSet = true;
35501 this.serviceSidField = value;
35502 }
35503 }
35504
35505 public virtual ISchemaElement ParentElement
35506 {
35507 get
35508 {
35509 return this.parentElement;
35510 }
35511 set
35512 {
35513 this.parentElement = value;
35514 }
35515 }
35516
35517 public virtual void AddChild(ISchemaElement child)
35518 {
35519 if ((null == child))
35520 {
35521 throw new ArgumentNullException("child");
35522 }
35523 this.children.AddElement(child);
35524 child.ParentElement = this;
35525 }
35526
35527 public virtual void RemoveChild(ISchemaElement child)
35528 {
35529 if ((null == child))
35530 {
35531 throw new ArgumentNullException("child");
35532 }
35533 this.children.RemoveElement(child);
35534 child.ParentElement = null;
35535 }
35536
35537 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
35538 ISchemaElement ICreateChildren.CreateChild(string childName)
35539 {
35540 if (String.IsNullOrEmpty(childName))
35541 {
35542 throw new ArgumentNullException("childName");
35543 }
35544 ISchemaElement childValue = null;
35545 if (("RequiredPrivilege" == childName))
35546 {
35547 childValue = new RequiredPrivilege();
35548 }
35549 if ((null == childValue))
35550 {
35551 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
35552 }
35553 return childValue;
35554 }
35555
35556 /// <summary>
35557 /// Processes this element and all child elements into an XmlWriter.
35558 /// </summary>
35559 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
35560 public virtual void OutputXml(XmlWriter writer)
35561 {
35562 if ((null == writer))
35563 {
35564 throw new ArgumentNullException("writer");
35565 }
35566 writer.WriteStartElement("ServiceConfig", "http://wixtoolset.org/schemas/v4/wxs");
35567 if (this.idFieldSet)
35568 {
35569 writer.WriteAttributeString("Id", this.idField);
35570 }
35571 if (this.delayedAutoStartFieldSet)
35572 {
35573 writer.WriteAttributeString("DelayedAutoStart", this.delayedAutoStartField);
35574 }
35575 if (this.failureActionsWhenFieldSet)
35576 {
35577 writer.WriteAttributeString("FailureActionsWhen", this.failureActionsWhenField);
35578 }
35579 if (this.preShutdownDelayFieldSet)
35580 {
35581 writer.WriteAttributeString("PreShutdownDelay", this.preShutdownDelayField);
35582 }
35583 if (this.onInstallFieldSet)
35584 {
35585 if ((this.onInstallField == YesNoType.no))
35586 {
35587 writer.WriteAttributeString("OnInstall", "no");
35588 }
35589 if ((this.onInstallField == YesNoType.yes))
35590 {
35591 writer.WriteAttributeString("OnInstall", "yes");
35592 }
35593 }
35594 if (this.onReinstallFieldSet)
35595 {
35596 if ((this.onReinstallField == YesNoType.no))
35597 {
35598 writer.WriteAttributeString("OnReinstall", "no");
35599 }
35600 if ((this.onReinstallField == YesNoType.yes))
35601 {
35602 writer.WriteAttributeString("OnReinstall", "yes");
35603 }
35604 }
35605 if (this.onUninstallFieldSet)
35606 {
35607 if ((this.onUninstallField == YesNoType.no))
35608 {
35609 writer.WriteAttributeString("OnUninstall", "no");
35610 }
35611 if ((this.onUninstallField == YesNoType.yes))
35612 {
35613 writer.WriteAttributeString("OnUninstall", "yes");
35614 }
35615 }
35616 if (this.serviceNameFieldSet)
35617 {
35618 writer.WriteAttributeString("ServiceName", this.serviceNameField);
35619 }
35620 if (this.serviceSidFieldSet)
35621 {
35622 writer.WriteAttributeString("ServiceSid", this.serviceSidField);
35623 }
35624 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
35625 {
35626 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
35627 childElement.OutputXml(writer);
35628 }
35629 writer.WriteEndElement();
35630 }
35631
35632 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
35633 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
35634 void ISetAttributes.SetAttribute(string name, string value)
35635 {
35636 if (String.IsNullOrEmpty(name))
35637 {
35638 throw new ArgumentNullException("name");
35639 }
35640 if (("Id" == name))
35641 {
35642 this.idField = value;
35643 this.idFieldSet = true;
35644 }
35645 if (("DelayedAutoStart" == name))
35646 {
35647 this.delayedAutoStartField = value;
35648 this.delayedAutoStartFieldSet = true;
35649 }
35650 if (("FailureActionsWhen" == name))
35651 {
35652 this.failureActionsWhenField = value;
35653 this.failureActionsWhenFieldSet = true;
35654 }
35655 if (("PreShutdownDelay" == name))
35656 {
35657 this.preShutdownDelayField = value;
35658 this.preShutdownDelayFieldSet = true;
35659 }
35660 if (("OnInstall" == name))
35661 {
35662 this.onInstallField = Enums.ParseYesNoType(value);
35663 this.onInstallFieldSet = true;
35664 }
35665 if (("OnReinstall" == name))
35666 {
35667 this.onReinstallField = Enums.ParseYesNoType(value);
35668 this.onReinstallFieldSet = true;
35669 }
35670 if (("OnUninstall" == name))
35671 {
35672 this.onUninstallField = Enums.ParseYesNoType(value);
35673 this.onUninstallFieldSet = true;
35674 }
35675 if (("ServiceName" == name))
35676 {
35677 this.serviceNameField = value;
35678 this.serviceNameFieldSet = true;
35679 }
35680 if (("ServiceSid" == name))
35681 {
35682 this.serviceSidField = value;
35683 this.serviceSidFieldSet = true;
35684 }
35685 }
35686 }
35687
35688 /// <summary>
35689 /// Failure action for a ServiceConfigFailureActions element.
35690 /// </summary>
35691 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
35692 public class Failure : ISchemaElement, ISetAttributes
35693 {
35694
35695 private string actionField;
35696
35697 private bool actionFieldSet;
35698
35699 private string delayField;
35700
35701 private bool delayFieldSet;
35702
35703 private ISchemaElement parentElement;
35704
35705 /// <summary>
35706 /// Specifies the action to take when the service fails. Valid values are "none", "restartComputer", "restartService", "runCommand" or a Formatted property
35707 /// that resolves to "0" (for "none"), "1" (for "restartService"), "2" (for "restartComputer") or "3" (for "runCommand").
35708 /// </summary>
35709 public string Action
35710 {
35711 get
35712 {
35713 return this.actionField;
35714 }
35715 set
35716 {
35717 this.actionFieldSet = true;
35718 this.actionField = value;
35719 }
35720 }
35721
35722 /// <summary>
35723 /// Specifies the time in milliseconds to wait before performing the value from the Action attribute.
35724 /// </summary>
35725 public string Delay
35726 {
35727 get
35728 {
35729 return this.delayField;
35730 }
35731 set
35732 {
35733 this.delayFieldSet = true;
35734 this.delayField = value;
35735 }
35736 }
35737
35738 public virtual ISchemaElement ParentElement
35739 {
35740 get
35741 {
35742 return this.parentElement;
35743 }
35744 set
35745 {
35746 this.parentElement = value;
35747 }
35748 }
35749
35750 /// <summary>
35751 /// Processes this element and all child elements into an XmlWriter.
35752 /// </summary>
35753 public virtual void OutputXml(XmlWriter writer)
35754 {
35755 if ((null == writer))
35756 {
35757 throw new ArgumentNullException("writer");
35758 }
35759 writer.WriteStartElement("Failure", "http://wixtoolset.org/schemas/v4/wxs");
35760 if (this.actionFieldSet)
35761 {
35762 writer.WriteAttributeString("Action", this.actionField);
35763 }
35764 if (this.delayFieldSet)
35765 {
35766 writer.WriteAttributeString("Delay", this.delayField);
35767 }
35768 writer.WriteEndElement();
35769 }
35770
35771 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
35772 void ISetAttributes.SetAttribute(string name, string value)
35773 {
35774 if (String.IsNullOrEmpty(name))
35775 {
35776 throw new ArgumentNullException("name");
35777 }
35778 if (("Action" == name))
35779 {
35780 this.actionField = value;
35781 this.actionFieldSet = true;
35782 }
35783 if (("Delay" == name))
35784 {
35785 this.delayField = value;
35786 this.delayFieldSet = true;
35787 }
35788 }
35789 }
35790
35791 /// <summary>
35792 /// 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.
35793 /// </summary>
35794 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
35795 public class ServiceConfigFailureActions : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
35796 {
35797
35798 private ElementCollection children;
35799
35800 private string idField;
35801
35802 private bool idFieldSet;
35803
35804 private string commandField;
35805
35806 private bool commandFieldSet;
35807
35808 private YesNoType onInstallField;
35809
35810 private bool onInstallFieldSet;
35811
35812 private YesNoType onReinstallField;
35813
35814 private bool onReinstallFieldSet;
35815
35816 private YesNoType onUninstallField;
35817
35818 private bool onUninstallFieldSet;
35819
35820 private string rebootMessageField;
35821
35822 private bool rebootMessageFieldSet;
35823
35824 private string resetPeriodField;
35825
35826 private bool resetPeriodFieldSet;
35827
35828 private string serviceNameField;
35829
35830 private bool serviceNameFieldSet;
35831
35832 private ISchemaElement parentElement;
35833
35834 public ServiceConfigFailureActions()
35835 {
35836 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
35837 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Failure)));
35838 this.children = childCollection0;
35839 }
35840
35841 public virtual IEnumerable Children
35842 {
35843 get
35844 {
35845 return this.children;
35846 }
35847 }
35848
35849 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
35850 public virtual IEnumerable this[System.Type childType]
35851 {
35852 get
35853 {
35854 return this.children.Filter(childType);
35855 }
35856 }
35857
35858 /// <summary>
35859 /// Unique identifier for this service configuration. This value will default to the ServiceName attribute if not
35860 /// specified.
35861 /// </summary>
35862 public string Id
35863 {
35864 get
35865 {
35866 return this.idField;
35867 }
35868 set
35869 {
35870 this.idFieldSet = true;
35871 this.idField = value;
35872 }
35873 }
35874
35875 /// <summary>
35876 /// This attribute specifies command to execute when a "runCommand" failure action hit. If an empty string is provided it clears
35877 /// the existing command. If this attribute is not present the setting is not changed.
35878 /// </summary>
35879 public string Command
35880 {
35881 get
35882 {
35883 return this.commandField;
35884 }
35885 set
35886 {
35887 this.commandFieldSet = true;
35888 this.commandField = value;
35889 }
35890 }
35891
35892 /// <summary>
35893 /// Specifies whether to configure the service when the parent Component is installed. This attribute may be combined with OnReinstall
35894 /// and OnUninstall.
35895 /// </summary>
35896 public YesNoType OnInstall
35897 {
35898 get
35899 {
35900 return this.onInstallField;
35901 }
35902 set
35903 {
35904 this.onInstallFieldSet = true;
35905 this.onInstallField = value;
35906 }
35907 }
35908
35909 /// <summary>
35910 /// Specifies whether to configure the service when the parent Component is reinstalled. This attribute may be combined with OnInstall
35911 /// and OnUninstall.
35912 /// </summary>
35913 public YesNoType OnReinstall
35914 {
35915 get
35916 {
35917 return this.onReinstallField;
35918 }
35919 set
35920 {
35921 this.onReinstallFieldSet = true;
35922 this.onReinstallField = value;
35923 }
35924 }
35925
35926 /// <summary>
35927 /// Specifies whether to configure the service when the parent Component is uninstalled. This attribute may be combined with OnInstall
35928 /// and OnReinstall.
35929 /// </summary>
35930 public YesNoType OnUninstall
35931 {
35932 get
35933 {
35934 return this.onUninstallField;
35935 }
35936 set
35937 {
35938 this.onUninstallFieldSet = true;
35939 this.onUninstallField = value;
35940 }
35941 }
35942
35943 /// <summary>
35944 /// Specifies the message to show for a reboot failure action. If an empty string is provided it clears any existing reboot message. If this
35945 /// attribute is not present the setting is not changed.
35946 /// </summary>
35947 public string RebootMessage
35948 {
35949 get
35950 {
35951 return this.rebootMessageField;
35952 }
35953 set
35954 {
35955 this.rebootMessageFieldSet = true;
35956 this.rebootMessageField = value;
35957 }
35958 }
35959
35960 /// <summary>
35961 /// Specifies the time in seconds to reset the failure count. If this attribute is not present the failure count will not be reset.
35962 /// </summary>
35963 public string ResetPeriod
35964 {
35965 get
35966 {
35967 return this.resetPeriodField;
35968 }
35969 set
35970 {
35971 this.resetPeriodFieldSet = true;
35972 this.resetPeriodField = value;
35973 }
35974 }
35975
35976 /// <summary>
35977 /// Specifies the name of the service to configure. This value will default to the ServiceInstall/@Name attribute when nested under
35978 /// a ServiceInstall element.
35979 /// </summary>
35980 public string ServiceName
35981 {
35982 get
35983 {
35984 return this.serviceNameField;
35985 }
35986 set
35987 {
35988 this.serviceNameFieldSet = true;
35989 this.serviceNameField = value;
35990 }
35991 }
35992
35993 public virtual ISchemaElement ParentElement
35994 {
35995 get
35996 {
35997 return this.parentElement;
35998 }
35999 set
36000 {
36001 this.parentElement = value;
36002 }
36003 }
36004
36005 public virtual void AddChild(ISchemaElement child)
36006 {
36007 if ((null == child))
36008 {
36009 throw new ArgumentNullException("child");
36010 }
36011 this.children.AddElement(child);
36012 child.ParentElement = this;
36013 }
36014
36015 public virtual void RemoveChild(ISchemaElement child)
36016 {
36017 if ((null == child))
36018 {
36019 throw new ArgumentNullException("child");
36020 }
36021 this.children.RemoveElement(child);
36022 child.ParentElement = null;
36023 }
36024
36025 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
36026 ISchemaElement ICreateChildren.CreateChild(string childName)
36027 {
36028 if (String.IsNullOrEmpty(childName))
36029 {
36030 throw new ArgumentNullException("childName");
36031 }
36032 ISchemaElement childValue = null;
36033 if (("Failure" == childName))
36034 {
36035 childValue = new Failure();
36036 }
36037 if ((null == childValue))
36038 {
36039 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
36040 }
36041 return childValue;
36042 }
36043
36044 /// <summary>
36045 /// Processes this element and all child elements into an XmlWriter.
36046 /// </summary>
36047 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
36048 public virtual void OutputXml(XmlWriter writer)
36049 {
36050 if ((null == writer))
36051 {
36052 throw new ArgumentNullException("writer");
36053 }
36054 writer.WriteStartElement("ServiceConfigFailureActions", "http://wixtoolset.org/schemas/v4/wxs");
36055 if (this.idFieldSet)
36056 {
36057 writer.WriteAttributeString("Id", this.idField);
36058 }
36059 if (this.commandFieldSet)
36060 {
36061 writer.WriteAttributeString("Command", this.commandField);
36062 }
36063 if (this.onInstallFieldSet)
36064 {
36065 if ((this.onInstallField == YesNoType.no))
36066 {
36067 writer.WriteAttributeString("OnInstall", "no");
36068 }
36069 if ((this.onInstallField == YesNoType.yes))
36070 {
36071 writer.WriteAttributeString("OnInstall", "yes");
36072 }
36073 }
36074 if (this.onReinstallFieldSet)
36075 {
36076 if ((this.onReinstallField == YesNoType.no))
36077 {
36078 writer.WriteAttributeString("OnReinstall", "no");
36079 }
36080 if ((this.onReinstallField == YesNoType.yes))
36081 {
36082 writer.WriteAttributeString("OnReinstall", "yes");
36083 }
36084 }
36085 if (this.onUninstallFieldSet)
36086 {
36087 if ((this.onUninstallField == YesNoType.no))
36088 {
36089 writer.WriteAttributeString("OnUninstall", "no");
36090 }
36091 if ((this.onUninstallField == YesNoType.yes))
36092 {
36093 writer.WriteAttributeString("OnUninstall", "yes");
36094 }
36095 }
36096 if (this.rebootMessageFieldSet)
36097 {
36098 writer.WriteAttributeString("RebootMessage", this.rebootMessageField);
36099 }
36100 if (this.resetPeriodFieldSet)
36101 {
36102 writer.WriteAttributeString("ResetPeriod", this.resetPeriodField);
36103 }
36104 if (this.serviceNameFieldSet)
36105 {
36106 writer.WriteAttributeString("ServiceName", this.serviceNameField);
36107 }
36108 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
36109 {
36110 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
36111 childElement.OutputXml(writer);
36112 }
36113 writer.WriteEndElement();
36114 }
36115
36116 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
36117 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
36118 void ISetAttributes.SetAttribute(string name, string value)
36119 {
36120 if (String.IsNullOrEmpty(name))
36121 {
36122 throw new ArgumentNullException("name");
36123 }
36124 if (("Id" == name))
36125 {
36126 this.idField = value;
36127 this.idFieldSet = true;
36128 }
36129 if (("Command" == name))
36130 {
36131 this.commandField = value;
36132 this.commandFieldSet = true;
36133 }
36134 if (("OnInstall" == name))
36135 {
36136 this.onInstallField = Enums.ParseYesNoType(value);
36137 this.onInstallFieldSet = true;
36138 }
36139 if (("OnReinstall" == name))
36140 {
36141 this.onReinstallField = Enums.ParseYesNoType(value);
36142 this.onReinstallFieldSet = true;
36143 }
36144 if (("OnUninstall" == name))
36145 {
36146 this.onUninstallField = Enums.ParseYesNoType(value);
36147 this.onUninstallFieldSet = true;
36148 }
36149 if (("RebootMessage" == name))
36150 {
36151 this.rebootMessageField = value;
36152 this.rebootMessageFieldSet = true;
36153 }
36154 if (("ResetPeriod" == name))
36155 {
36156 this.resetPeriodField = value;
36157 this.resetPeriodFieldSet = true;
36158 }
36159 if (("ServiceName" == name))
36160 {
36161 this.serviceNameField = value;
36162 this.serviceNameFieldSet = true;
36163 }
36164 }
36165 }
36166
36167 /// <summary>
36168 /// Environment variables added or removed for the parent component.
36169 /// </summary>
36170 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
36171 public class Environment : ISchemaElement, ISetAttributes
36172 {
36173
36174 private string idField;
36175
36176 private bool idFieldSet;
36177
36178 private string nameField;
36179
36180 private bool nameFieldSet;
36181
36182 private string valueField;
36183
36184 private bool valueFieldSet;
36185
36186 private string separatorField;
36187
36188 private bool separatorFieldSet;
36189
36190 private ActionType actionField;
36191
36192 private bool actionFieldSet;
36193
36194 private PartType partField;
36195
36196 private bool partFieldSet;
36197
36198 private YesNoType permanentField;
36199
36200 private bool permanentFieldSet;
36201
36202 private YesNoType systemField;
36203
36204 private bool systemFieldSet;
36205
36206 private ISchemaElement parentElement;
36207
36208 /// <summary>
36209 /// Unique identifier for environment entry.
36210 /// </summary>
36211 public string Id
36212 {
36213 get
36214 {
36215 return this.idField;
36216 }
36217 set
36218 {
36219 this.idFieldSet = true;
36220 this.idField = value;
36221 }
36222 }
36223
36224 /// <summary>
36225 /// Name of the environment variable.
36226 /// </summary>
36227 public string Name
36228 {
36229 get
36230 {
36231 return this.nameField;
36232 }
36233 set
36234 {
36235 this.nameFieldSet = true;
36236 this.nameField = value;
36237 }
36238 }
36239
36240 /// <summary>
36241 /// The value to set into the environment variable.
36242 /// If this attribute is not set, the environment variable is removed during installation if it exists on the machine.
36243 /// </summary>
36244 public string Value
36245 {
36246 get
36247 {
36248 return this.valueField;
36249 }
36250 set
36251 {
36252 this.valueFieldSet = true;
36253 this.valueField = value;
36254 }
36255 }
36256
36257 /// <summary>
36258 /// Optional attribute to change the separator used between values. By default a semicolon is used.
36259 /// </summary>
36260 public string Separator
36261 {
36262 get
36263 {
36264 return this.separatorField;
36265 }
36266 set
36267 {
36268 this.separatorFieldSet = true;
36269 this.separatorField = value;
36270 }
36271 }
36272
36273 /// <summary>
36274 /// Specfies whether the environmental variable should be created, set or removed when the parent component is installed.
36275 /// </summary>
36276 public ActionType Action
36277 {
36278 get
36279 {
36280 return this.actionField;
36281 }
36282 set
36283 {
36284 this.actionFieldSet = true;
36285 this.actionField = value;
36286 }
36287 }
36288
36289 public PartType Part
36290 {
36291 get
36292 {
36293 return this.partField;
36294 }
36295 set
36296 {
36297 this.partFieldSet = true;
36298 this.partField = value;
36299 }
36300 }
36301
36302 /// <summary>
36303 /// Specifies that the environment variable should not be removed on uninstall.
36304 /// </summary>
36305 public YesNoType Permanent
36306 {
36307 get
36308 {
36309 return this.permanentField;
36310 }
36311 set
36312 {
36313 this.permanentFieldSet = true;
36314 this.permanentField = value;
36315 }
36316 }
36317
36318 /// <summary>
36319 /// Specifies that the environment variable should be added to the system environment space. The default
36320 /// is 'no' which indicates the environment variable is added to the user environment space.
36321 /// </summary>
36322 public YesNoType System
36323 {
36324 get
36325 {
36326 return this.systemField;
36327 }
36328 set
36329 {
36330 this.systemFieldSet = true;
36331 this.systemField = value;
36332 }
36333 }
36334
36335 public virtual ISchemaElement ParentElement
36336 {
36337 get
36338 {
36339 return this.parentElement;
36340 }
36341 set
36342 {
36343 this.parentElement = value;
36344 }
36345 }
36346
36347 /// <summary>
36348 /// Parses a ActionType from a string.
36349 /// </summary>
36350 public static ActionType ParseActionType(string value)
36351 {
36352 ActionType parsedValue;
36353 Environment.TryParseActionType(value, out parsedValue);
36354 return parsedValue;
36355 }
36356
36357 /// <summary>
36358 /// Tries to parse a ActionType from a string.
36359 /// </summary>
36360 public static bool TryParseActionType(string value, out ActionType parsedValue)
36361 {
36362 parsedValue = ActionType.NotSet;
36363 if (string.IsNullOrEmpty(value))
36364 {
36365 return false;
36366 }
36367 if (("create" == value))
36368 {
36369 parsedValue = ActionType.create;
36370 }
36371 else
36372 {
36373 if (("set" == value))
36374 {
36375 parsedValue = ActionType.set;
36376 }
36377 else
36378 {
36379 if (("remove" == value))
36380 {
36381 parsedValue = ActionType.remove;
36382 }
36383 else
36384 {
36385 parsedValue = ActionType.IllegalValue;
36386 return false;
36387 }
36388 }
36389 }
36390 return true;
36391 }
36392
36393 /// <summary>
36394 /// Parses a PartType from a string.
36395 /// </summary>
36396 public static PartType ParsePartType(string value)
36397 {
36398 PartType parsedValue;
36399 Environment.TryParsePartType(value, out parsedValue);
36400 return parsedValue;
36401 }
36402
36403 /// <summary>
36404 /// Tries to parse a PartType from a string.
36405 /// </summary>
36406 public static bool TryParsePartType(string value, out PartType parsedValue)
36407 {
36408 parsedValue = PartType.NotSet;
36409 if (string.IsNullOrEmpty(value))
36410 {
36411 return false;
36412 }
36413 if (("all" == value))
36414 {
36415 parsedValue = PartType.all;
36416 }
36417 else
36418 {
36419 if (("first" == value))
36420 {
36421 parsedValue = PartType.first;
36422 }
36423 else
36424 {
36425 if (("last" == value))
36426 {
36427 parsedValue = PartType.last;
36428 }
36429 else
36430 {
36431 parsedValue = PartType.IllegalValue;
36432 return false;
36433 }
36434 }
36435 }
36436 return true;
36437 }
36438
36439 /// <summary>
36440 /// Processes this element and all child elements into an XmlWriter.
36441 /// </summary>
36442 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
36443 public virtual void OutputXml(XmlWriter writer)
36444 {
36445 if ((null == writer))
36446 {
36447 throw new ArgumentNullException("writer");
36448 }
36449 writer.WriteStartElement("Environment", "http://wixtoolset.org/schemas/v4/wxs");
36450 if (this.idFieldSet)
36451 {
36452 writer.WriteAttributeString("Id", this.idField);
36453 }
36454 if (this.nameFieldSet)
36455 {
36456 writer.WriteAttributeString("Name", this.nameField);
36457 }
36458 if (this.valueFieldSet)
36459 {
36460 writer.WriteAttributeString("Value", this.valueField);
36461 }
36462 if (this.separatorFieldSet)
36463 {
36464 writer.WriteAttributeString("Separator", this.separatorField);
36465 }
36466 if (this.actionFieldSet)
36467 {
36468 if ((this.actionField == ActionType.create))
36469 {
36470 writer.WriteAttributeString("Action", "create");
36471 }
36472 if ((this.actionField == ActionType.set))
36473 {
36474 writer.WriteAttributeString("Action", "set");
36475 }
36476 if ((this.actionField == ActionType.remove))
36477 {
36478 writer.WriteAttributeString("Action", "remove");
36479 }
36480 }
36481 if (this.partFieldSet)
36482 {
36483 if ((this.partField == PartType.all))
36484 {
36485 writer.WriteAttributeString("Part", "all");
36486 }
36487 if ((this.partField == PartType.first))
36488 {
36489 writer.WriteAttributeString("Part", "first");
36490 }
36491 if ((this.partField == PartType.last))
36492 {
36493 writer.WriteAttributeString("Part", "last");
36494 }
36495 }
36496 if (this.permanentFieldSet)
36497 {
36498 if ((this.permanentField == YesNoType.no))
36499 {
36500 writer.WriteAttributeString("Permanent", "no");
36501 }
36502 if ((this.permanentField == YesNoType.yes))
36503 {
36504 writer.WriteAttributeString("Permanent", "yes");
36505 }
36506 }
36507 if (this.systemFieldSet)
36508 {
36509 if ((this.systemField == YesNoType.no))
36510 {
36511 writer.WriteAttributeString("System", "no");
36512 }
36513 if ((this.systemField == YesNoType.yes))
36514 {
36515 writer.WriteAttributeString("System", "yes");
36516 }
36517 }
36518 writer.WriteEndElement();
36519 }
36520
36521 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
36522 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
36523 void ISetAttributes.SetAttribute(string name, string value)
36524 {
36525 if (String.IsNullOrEmpty(name))
36526 {
36527 throw new ArgumentNullException("name");
36528 }
36529 if (("Id" == name))
36530 {
36531 this.idField = value;
36532 this.idFieldSet = true;
36533 }
36534 if (("Name" == name))
36535 {
36536 this.nameField = value;
36537 this.nameFieldSet = true;
36538 }
36539 if (("Value" == name))
36540 {
36541 this.valueField = value;
36542 this.valueFieldSet = true;
36543 }
36544 if (("Separator" == name))
36545 {
36546 this.separatorField = value;
36547 this.separatorFieldSet = true;
36548 }
36549 if (("Action" == name))
36550 {
36551 this.actionField = Environment.ParseActionType(value);
36552 this.actionFieldSet = true;
36553 }
36554 if (("Part" == name))
36555 {
36556 this.partField = Environment.ParsePartType(value);
36557 this.partFieldSet = true;
36558 }
36559 if (("Permanent" == name))
36560 {
36561 this.permanentField = Enums.ParseYesNoType(value);
36562 this.permanentFieldSet = true;
36563 }
36564 if (("System" == name))
36565 {
36566 this.systemField = Enums.ParseYesNoType(value);
36567 this.systemFieldSet = true;
36568 }
36569 }
36570
36571 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
36572 public enum ActionType
36573 {
36574
36575 IllegalValue = int.MaxValue,
36576
36577 NotSet = -1,
36578
36579 /// <summary>
36580 /// 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.
36581 /// </summary>
36582 create,
36583
36584 /// <summary>
36585 /// 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.
36586 /// </summary>
36587 set,
36588
36589 /// <summary>
36590 /// Removes the environment variable during an installation.
36591 /// The installer only removes an environment variable during an installation if the name and value
36592 /// of the variable match the entries in the Name and Value attributes.
36593 /// If you want to remove an environment variable, regardless of its value, do not set the Value attribute.
36594 /// </summary>
36595 remove,
36596 }
36597
36598 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
36599 public enum PartType
36600 {
36601
36602 IllegalValue = int.MaxValue,
36603
36604 NotSet = -1,
36605
36606 /// <summary>
36607 /// This value is the entire environmental variable. This is the default.
36608 /// </summary>
36609 all,
36610
36611 /// <summary>
36612 /// This value is prefixed.
36613 /// </summary>
36614 first,
36615
36616 /// <summary>
36617 /// This value is appended.
36618 /// </summary>
36619 last,
36620 }
36621 }
36622
36623 /// <summary>
36624 /// Conditions for components, controls, features, and products. The condition is specified in the inner text of the element.
36625 /// </summary>
36626 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
36627 public class Condition : ISchemaElement, ISetAttributes
36628 {
36629
36630 private ActionType actionField;
36631
36632 private bool actionFieldSet;
36633
36634 private int levelField;
36635
36636 private bool levelFieldSet;
36637
36638 private string messageField;
36639
36640 private bool messageFieldSet;
36641
36642 private string contentField;
36643
36644 private bool contentFieldSet;
36645
36646 private ISchemaElement parentElement;
36647
36648 /// <summary>
36649 /// Used only under Control elements and is required. Allows specific actions to be applied to a control based
36650 /// on the result of this condition.
36651 /// </summary>
36652 public ActionType Action
36653 {
36654 get
36655 {
36656 return this.actionField;
36657 }
36658 set
36659 {
36660 this.actionFieldSet = true;
36661 this.actionField = value;
36662 }
36663 }
36664
36665 /// <summary>
36666 /// Used only under Feature elements and is required. Allows modifying the level of a Feature based on the
36667 /// result of this condition.
36668 /// </summary>
36669 public int Level
36670 {
36671 get
36672 {
36673 return this.levelField;
36674 }
36675 set
36676 {
36677 this.levelFieldSet = true;
36678 this.levelField = value;
36679 }
36680 }
36681
36682 /// <summary>
36683 /// Used only under Fragment or Product elements and is required. Set the value to the text to display when the
36684 /// condition fails and the installation must be terminated.
36685 /// </summary>
36686 public string Message
36687 {
36688 get
36689 {
36690 return this.messageField;
36691 }
36692 set
36693 {
36694 this.messageFieldSet = true;
36695 this.messageField = value;
36696 }
36697 }
36698
36699 /// <summary>
36700 /// Under a Component element, the condition becomes the condition of the component. Under a Control element,
36701 /// the condition becomes a ControlCondition entry. Under a Feature element, the condition becomes a Condition
36702 /// entry. Under a Fragment or Product element, the condition becomes a LaunchCondition entry.
36703 /// </summary>
36704 public string Content
36705 {
36706 get
36707 {
36708 return this.contentField;
36709 }
36710 set
36711 {
36712 this.contentFieldSet = true;
36713 this.contentField = value;
36714 }
36715 }
36716
36717 public virtual ISchemaElement ParentElement
36718 {
36719 get
36720 {
36721 return this.parentElement;
36722 }
36723 set
36724 {
36725 this.parentElement = value;
36726 }
36727 }
36728
36729 /// <summary>
36730 /// Parses a ActionType from a string.
36731 /// </summary>
36732 public static ActionType ParseActionType(string value)
36733 {
36734 ActionType parsedValue;
36735 Condition.TryParseActionType(value, out parsedValue);
36736 return parsedValue;
36737 }
36738
36739 /// <summary>
36740 /// Tries to parse a ActionType from a string.
36741 /// </summary>
36742 public static bool TryParseActionType(string value, out ActionType parsedValue)
36743 {
36744 parsedValue = ActionType.NotSet;
36745 if (string.IsNullOrEmpty(value))
36746 {
36747 return false;
36748 }
36749 if (("default" == value))
36750 {
36751 parsedValue = ActionType.@default;
36752 }
36753 else
36754 {
36755 if (("enable" == value))
36756 {
36757 parsedValue = ActionType.enable;
36758 }
36759 else
36760 {
36761 if (("disable" == value))
36762 {
36763 parsedValue = ActionType.disable;
36764 }
36765 else
36766 {
36767 if (("hide" == value))
36768 {
36769 parsedValue = ActionType.hide;
36770 }
36771 else
36772 {
36773 if (("show" == value))
36774 {
36775 parsedValue = ActionType.show;
36776 }
36777 else
36778 {
36779 parsedValue = ActionType.IllegalValue;
36780 return false;
36781 }
36782 }
36783 }
36784 }
36785 }
36786 return true;
36787 }
36788
36789 /// <summary>
36790 /// Processes this element and all child elements into an XmlWriter.
36791 /// </summary>
36792 public virtual void OutputXml(XmlWriter writer)
36793 {
36794 if ((null == writer))
36795 {
36796 throw new ArgumentNullException("writer");
36797 }
36798 writer.WriteStartElement("Condition", "http://wixtoolset.org/schemas/v4/wxs");
36799 if (this.actionFieldSet)
36800 {
36801 if ((this.actionField == ActionType.@default))
36802 {
36803 writer.WriteAttributeString("Action", "default");
36804 }
36805 if ((this.actionField == ActionType.enable))
36806 {
36807 writer.WriteAttributeString("Action", "enable");
36808 }
36809 if ((this.actionField == ActionType.disable))
36810 {
36811 writer.WriteAttributeString("Action", "disable");
36812 }
36813 if ((this.actionField == ActionType.hide))
36814 {
36815 writer.WriteAttributeString("Action", "hide");
36816 }
36817 if ((this.actionField == ActionType.show))
36818 {
36819 writer.WriteAttributeString("Action", "show");
36820 }
36821 }
36822 if (this.levelFieldSet)
36823 {
36824 writer.WriteAttributeString("Level", this.levelField.ToString(CultureInfo.InvariantCulture));
36825 }
36826 if (this.messageFieldSet)
36827 {
36828 writer.WriteAttributeString("Message", this.messageField);
36829 }
36830 if (this.contentFieldSet)
36831 {
36832 writer.WriteString(this.contentField);
36833 }
36834 writer.WriteEndElement();
36835 }
36836
36837 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
36838 void ISetAttributes.SetAttribute(string name, string value)
36839 {
36840 if (String.IsNullOrEmpty(name))
36841 {
36842 throw new ArgumentNullException("name");
36843 }
36844 if (("Action" == name))
36845 {
36846 this.actionField = Condition.ParseActionType(value);
36847 this.actionFieldSet = true;
36848 }
36849 if (("Level" == name))
36850 {
36851 this.levelField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
36852 this.levelFieldSet = true;
36853 }
36854 if (("Message" == name))
36855 {
36856 this.messageField = value;
36857 this.messageFieldSet = true;
36858 }
36859 if (("Content" == name))
36860 {
36861 this.contentField = value;
36862 this.contentFieldSet = true;
36863 }
36864 }
36865
36866 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
36867 public enum ActionType
36868 {
36869
36870 IllegalValue = int.MaxValue,
36871
36872 NotSet = -1,
36873
36874 /// <summary>
36875 /// Set the Control as the default. Only used under Control elements.
36876 /// </summary>
36877 @default,
36878
36879 /// <summary>
36880 /// Enable the Control. Only used under Control elements.
36881 /// </summary>
36882 enable,
36883
36884 /// <summary>
36885 /// Disable the Control. Only used under Control elements.
36886 /// </summary>
36887 disable,
36888
36889 /// <summary>
36890 /// Hide the Control. Only used under Control elements.
36891 /// </summary>
36892 hide,
36893
36894 /// <summary>
36895 /// Display the Control. Only used under Control elements.
36896 /// </summary>
36897 show,
36898 }
36899 }
36900
36901 /// <summary>
36902 /// Shared Component to be privately replicated in folder of parent Component
36903 /// </summary>
36904 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
36905 public class IsolateComponent : ISchemaElement, ISetAttributes
36906 {
36907
36908 private string sharedField;
36909
36910 private bool sharedFieldSet;
36911
36912 private ISchemaElement parentElement;
36913
36914 /// <summary>
36915 /// Shared Component for this application Component.
36916 /// </summary>
36917 public string Shared
36918 {
36919 get
36920 {
36921 return this.sharedField;
36922 }
36923 set
36924 {
36925 this.sharedFieldSet = true;
36926 this.sharedField = value;
36927 }
36928 }
36929
36930 public virtual ISchemaElement ParentElement
36931 {
36932 get
36933 {
36934 return this.parentElement;
36935 }
36936 set
36937 {
36938 this.parentElement = value;
36939 }
36940 }
36941
36942 /// <summary>
36943 /// Processes this element and all child elements into an XmlWriter.
36944 /// </summary>
36945 public virtual void OutputXml(XmlWriter writer)
36946 {
36947 if ((null == writer))
36948 {
36949 throw new ArgumentNullException("writer");
36950 }
36951 writer.WriteStartElement("IsolateComponent", "http://wixtoolset.org/schemas/v4/wxs");
36952 if (this.sharedFieldSet)
36953 {
36954 writer.WriteAttributeString("Shared", this.sharedField);
36955 }
36956 writer.WriteEndElement();
36957 }
36958
36959 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
36960 void ISetAttributes.SetAttribute(string name, string value)
36961 {
36962 if (String.IsNullOrEmpty(name))
36963 {
36964 throw new ArgumentNullException("name");
36965 }
36966 if (("Shared" == name))
36967 {
36968 this.sharedField = value;
36969 this.sharedFieldSet = true;
36970 }
36971 }
36972 }
36973
36974 /// <summary>
36975 /// Disk cost to reserve in a folder for running locally and/or from source.
36976 /// </summary>
36977 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
36978 public class ReserveCost : ISchemaElement, ISetAttributes
36979 {
36980
36981 private string idField;
36982
36983 private bool idFieldSet;
36984
36985 private string directoryField;
36986
36987 private bool directoryFieldSet;
36988
36989 private int runFromSourceField;
36990
36991 private bool runFromSourceFieldSet;
36992
36993 private int runLocalField;
36994
36995 private bool runLocalFieldSet;
36996
36997 private ISchemaElement parentElement;
36998
36999 /// <summary>
37000 /// A primary key that uniquely identifies this ReserveCost entry.
37001 /// </summary>
37002 public string Id
37003 {
37004 get
37005 {
37006 return this.idField;
37007 }
37008 set
37009 {
37010 this.idFieldSet = true;
37011 this.idField = value;
37012 }
37013 }
37014
37015 /// <summary>
37016 /// Adds the amount of disk space specified in RunFromSource or RunLocal to the volume cost of the device containing the directory.
37017 /// If this attribute is not set, it will default to the directory of parent component.
37018 /// </summary>
37019 public string Directory
37020 {
37021 get
37022 {
37023 return this.directoryField;
37024 }
37025 set
37026 {
37027 this.directoryFieldSet = true;
37028 this.directoryField = value;
37029 }
37030 }
37031
37032 /// <summary>
37033 /// The number of bytes of disk space to reserve if the component is installed to run from source.
37034 /// </summary>
37035 public int RunFromSource
37036 {
37037 get
37038 {
37039 return this.runFromSourceField;
37040 }
37041 set
37042 {
37043 this.runFromSourceFieldSet = true;
37044 this.runFromSourceField = value;
37045 }
37046 }
37047
37048 /// <summary>
37049 /// The number of bytes of disk space to reserve if the component is installed to run locally.
37050 /// </summary>
37051 public int RunLocal
37052 {
37053 get
37054 {
37055 return this.runLocalField;
37056 }
37057 set
37058 {
37059 this.runLocalFieldSet = true;
37060 this.runLocalField = value;
37061 }
37062 }
37063
37064 public virtual ISchemaElement ParentElement
37065 {
37066 get
37067 {
37068 return this.parentElement;
37069 }
37070 set
37071 {
37072 this.parentElement = value;
37073 }
37074 }
37075
37076 /// <summary>
37077 /// Processes this element and all child elements into an XmlWriter.
37078 /// </summary>
37079 public virtual void OutputXml(XmlWriter writer)
37080 {
37081 if ((null == writer))
37082 {
37083 throw new ArgumentNullException("writer");
37084 }
37085 writer.WriteStartElement("ReserveCost", "http://wixtoolset.org/schemas/v4/wxs");
37086 if (this.idFieldSet)
37087 {
37088 writer.WriteAttributeString("Id", this.idField);
37089 }
37090 if (this.directoryFieldSet)
37091 {
37092 writer.WriteAttributeString("Directory", this.directoryField);
37093 }
37094 if (this.runFromSourceFieldSet)
37095 {
37096 writer.WriteAttributeString("RunFromSource", this.runFromSourceField.ToString(CultureInfo.InvariantCulture));
37097 }
37098 if (this.runLocalFieldSet)
37099 {
37100 writer.WriteAttributeString("RunLocal", this.runLocalField.ToString(CultureInfo.InvariantCulture));
37101 }
37102 writer.WriteEndElement();
37103 }
37104
37105 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
37106 void ISetAttributes.SetAttribute(string name, string value)
37107 {
37108 if (String.IsNullOrEmpty(name))
37109 {
37110 throw new ArgumentNullException("name");
37111 }
37112 if (("Id" == name))
37113 {
37114 this.idField = value;
37115 this.idFieldSet = true;
37116 }
37117 if (("Directory" == name))
37118 {
37119 this.directoryField = value;
37120 this.directoryFieldSet = true;
37121 }
37122 if (("RunFromSource" == name))
37123 {
37124 this.runFromSourceField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
37125 this.runFromSourceFieldSet = true;
37126 }
37127 if (("RunLocal" == name))
37128 {
37129 this.runLocalField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
37130 this.runLocalFieldSet = true;
37131 }
37132 }
37133 }
37134
37135 /// <summary>
37136 /// Component for parent Directory
37137 /// </summary>
37138 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
37139 public class Component : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
37140 {
37141
37142 private ElementCollection children;
37143
37144 private string idField;
37145
37146 private bool idFieldSet;
37147
37148 private int comPlusFlagsField;
37149
37150 private bool comPlusFlagsFieldSet;
37151
37152 private YesNoType disableRegistryReflectionField;
37153
37154 private bool disableRegistryReflectionFieldSet;
37155
37156 private string directoryField;
37157
37158 private bool directoryFieldSet;
37159
37160 private string diskIdField;
37161
37162 private bool diskIdFieldSet;
37163
37164 private string featureField;
37165
37166 private bool featureFieldSet;
37167
37168 private string guidField;
37169
37170 private bool guidFieldSet;
37171
37172 private YesNoType keyPathField;
37173
37174 private bool keyPathFieldSet;
37175
37176 private LocationType locationField;
37177
37178 private bool locationFieldSet;
37179
37180 private YesNoType multiInstanceField;
37181
37182 private bool multiInstanceFieldSet;
37183
37184 private YesNoType neverOverwriteField;
37185
37186 private bool neverOverwriteFieldSet;
37187
37188 private YesNoType permanentField;
37189
37190 private bool permanentFieldSet;
37191
37192 private YesNoType sharedField;
37193
37194 private bool sharedFieldSet;
37195
37196 private YesNoType sharedDllRefCountField;
37197
37198 private bool sharedDllRefCountFieldSet;
37199
37200 private YesNoType transitiveField;
37201
37202 private bool transitiveFieldSet;
37203
37204 private YesNoType uninstallWhenSupersededField;
37205
37206 private bool uninstallWhenSupersededFieldSet;
37207
37208 private YesNoType win64Field;
37209
37210 private bool win64FieldSet;
37211
37212 private ISchemaElement parentElement;
37213
37214 public Component()
37215 {
37216 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
37217 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppId)));
37218 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Category)));
37219 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Class)));
37220 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Condition)));
37221 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CopyFile)));
37222 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CreateFolder)));
37223 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Environment)));
37224 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Extension)));
37225 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(File)));
37226 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(IniFile)));
37227 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Interface)));
37228 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(IsolateComponent)));
37229 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ODBCDataSource)));
37230 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ODBCDriver)));
37231 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ODBCTranslator)));
37232 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ProgId)));
37233 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Registry)));
37234 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegistryKey)));
37235 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegistryValue)));
37236 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveFile)));
37237 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveFolder)));
37238 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveRegistryKey)));
37239 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveRegistryValue)));
37240 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ReserveCost)));
37241 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceControl)));
37242 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceConfig)));
37243 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceConfigFailureActions)));
37244 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceInstall)));
37245 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Shortcut)));
37246 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath)));
37247 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(TypeLib)));
37248 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
37249 this.children = childCollection0;
37250 }
37251
37252 public virtual IEnumerable Children
37253 {
37254 get
37255 {
37256 return this.children;
37257 }
37258 }
37259
37260 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
37261 public virtual IEnumerable this[System.Type childType]
37262 {
37263 get
37264 {
37265 return this.children.Filter(childType);
37266 }
37267 }
37268
37269 /// <summary>
37270 /// Component identifier; this is the primary key for identifying components. If omitted,
37271 /// the compiler defaults the identifier to the identifier of the resource that is the
37272 /// explicit keypath of the component (for example, a child File element with KeyPath
37273 /// attribute with value 'yes'.
37274 /// </summary>
37275 public string Id
37276 {
37277 get
37278 {
37279 return this.idField;
37280 }
37281 set
37282 {
37283 this.idFieldSet = true;
37284 this.idField = value;
37285 }
37286 }
37287
37288 /// <summary>
37289 /// Set this attribute to create a ComPlus entry. The value should be the export flags used
37290 /// during the generation of the .msi file. For more information see the COM+ documentation
37291 /// in the Platform SDK.
37292 /// </summary>
37293 public int ComPlusFlags
37294 {
37295 get
37296 {
37297 return this.comPlusFlagsField;
37298 }
37299 set
37300 {
37301 this.comPlusFlagsFieldSet = true;
37302 this.comPlusFlagsField = value;
37303 }
37304 }
37305
37306 /// <summary>
37307 /// Set this attribute to 'yes' in order to disable registry reflection on all existing and
37308 /// new registry keys affected by this component.
37309 /// When set to 'yes', the Windows Installer calls the RegDisableReflectionKey on each key
37310 /// being accessed by the component.
37311 /// This bit is available with Windows Installer version 4.0 and is ignored on 32-bit systems.
37312 /// </summary>
37313 public YesNoType DisableRegistryReflection
37314 {
37315 get
37316 {
37317 return this.disableRegistryReflectionField;
37318 }
37319 set
37320 {
37321 this.disableRegistryReflectionFieldSet = true;
37322 this.disableRegistryReflectionField = value;
37323 }
37324 }
37325
37326 /// <summary>
37327 /// Sets the Directory of the Component. If this element is nested under a Directory element,
37328 /// this value defaults to the value of the parent Directory/@Id.
37329 /// </summary>
37330 public string Directory
37331 {
37332 get
37333 {
37334 return this.directoryField;
37335 }
37336 set
37337 {
37338 this.directoryFieldSet = true;
37339 this.directoryField = value;
37340 }
37341 }
37342
37343 /// <summary>
37344 /// This attribute provides a default DiskId attribute for all child File elements. Specifying
37345 /// the DiskId on a Component element will override any DiskId attributes set by parent Directory
37346 /// or DirectoryRef elements. See the File element's DiskId attribute for more information about
37347 /// the purpose of the DiskId.
37348 /// </summary>
37349 public string DiskId
37350 {
37351 get
37352 {
37353 return this.diskIdField;
37354 }
37355 set
37356 {
37357 this.diskIdFieldSet = true;
37358 this.diskIdField = value;
37359 }
37360 }
37361
37362 /// <summary>
37363 /// Identifies a feature to which this component belongs, as a shorthand for a child
37364 /// ComponentRef element of the Feature element. The value of this attribute should
37365 /// correspond to the Id attribute of a Feature element authored elsewhere. Note that
37366 /// a single component can belong to multiple features but this attribute allows you
37367 /// to specify only a single feature.
37368 /// </summary>
37369 public string Feature
37370 {
37371 get
37372 {
37373 return this.featureField;
37374 }
37375 set
37376 {
37377 this.featureFieldSet = true;
37378 this.featureField = value;
37379 }
37380 }
37381
37382 /// <summary>
37383 /// This value should be a guid that uniquely identifies this component's contents, language, platform, and version.
37384 /// If omitted, the default value is '*' which indicates that the linker should generate a stable guid.
37385 /// Generatable guids are supported only for components with a single file as the component's keypath
37386 /// or no files and a registry value as the keypath.
37387 /// It's also possible to set the value to an empty string to specify an unmanaged component.
37388 /// Unmanaged components are a security vulnerability because the component cannot be removed or repaired
37389 /// by Windows Installer (it is essentially an unpatchable, permanent component). Therefore, a guid should
37390 /// always be specified for any component which contains resources that may need to be patched in the future.
37391 /// </summary>
37392 public string Guid
37393 {
37394 get
37395 {
37396 return this.guidField;
37397 }
37398 set
37399 {
37400 this.guidFieldSet = true;
37401 this.guidField = value;
37402 }
37403 }
37404
37405 /// <summary>
37406 /// If this attribute's value is set to 'yes', then the Directory of this Component is used
37407 /// as the KeyPath. To set a Registry value or File as the KeyPath of a component, set the
37408 /// KeyPath attribute to 'yes' on one of those child elements. If KeyPath is not set to 'yes' for the
37409 /// Component or for a child Registry value or File, WiX will look at the child elements under the
37410 /// Component in sequential order and try to automatically select one of them as a key path. Allowing
37411 /// WiX to automatically select a key path can be dangerous because adding or removing child elements
37412 /// under the Component can inadvertantly cause the key path to change, which can lead to
37413 /// installation problems.
37414 /// </summary>
37415 public YesNoType KeyPath
37416 {
37417 get
37418 {
37419 return this.keyPathField;
37420 }
37421 set
37422 {
37423 this.keyPathFieldSet = true;
37424 this.keyPathField = value;
37425 }
37426 }
37427
37428 /// <summary>
37429 /// Optional value that specifies the location that the component can be run from.
37430 /// </summary>
37431 public LocationType Location
37432 {
37433 get
37434 {
37435 return this.locationField;
37436 }
37437 set
37438 {
37439 this.locationFieldSet = true;
37440 this.locationField = value;
37441 }
37442 }
37443
37444 /// <summary>
37445 /// If this attribute is set to 'yes', a new Component/@Guid will be generated for each
37446 /// instance transform. Ensure that all of the resources contained in a multi-instance
37447 /// Component will be installed to different paths based on the instance Property; otherwise,
37448 /// the Component Rules will be violated.
37449 /// </summary>
37450 public YesNoType MultiInstance
37451 {
37452 get
37453 {
37454 return this.multiInstanceField;
37455 }
37456 set
37457 {
37458 this.multiInstanceFieldSet = true;
37459 this.multiInstanceField = value;
37460 }
37461 }
37462
37463 /// <summary>
37464 /// If this attribute is set to 'yes', the installer does not install or reinstall the
37465 /// component if a key path file or a key path registry entry for the component already
37466 /// exists. The application does register itself as a client of the component. Use this
37467 /// flag only for components that are being registered by the Registry table. Do not use
37468 /// this flag for components registered by the AppId, Class, Extension, ProgId, MIME, and
37469 /// Verb tables.
37470 /// </summary>
37471 public YesNoType NeverOverwrite
37472 {
37473 get
37474 {
37475 return this.neverOverwriteField;
37476 }
37477 set
37478 {
37479 this.neverOverwriteFieldSet = true;
37480 this.neverOverwriteField = value;
37481 }
37482 }
37483
37484 /// <summary>
37485 /// If this attribute is set to 'yes', the installer does not remove the component during
37486 /// an uninstall. The installer registers an extra system client for the component in
37487 /// the Windows Installer registry settings (which basically just means that at least one
37488 /// product is always referencing this component). Note that this option differs from the
37489 /// behavior of not setting a guid because although the component is permanent, it is still
37490 /// patchable (because Windows Installer still tracks it), it's just not uninstallable.
37491 /// </summary>
37492 public YesNoType Permanent
37493 {
37494 get
37495 {
37496 return this.permanentField;
37497 }
37498 set
37499 {
37500 this.permanentFieldSet = true;
37501 this.permanentField = value;
37502 }
37503 }
37504
37505 /// <summary>
37506 /// If this attribute's value is set to 'yes', enables advanced patching semantics for
37507 /// Components that are shared across multiple Products. Specifically, the Windows Installer
37508 /// will cache the shared files to improve patch uninstall. This functionality is available
37509 /// in Windows Installer 4.5 and later.
37510 /// </summary>
37511 public YesNoType Shared
37512 {
37513 get
37514 {
37515 return this.sharedField;
37516 }
37517 set
37518 {
37519 this.sharedFieldSet = true;
37520 this.sharedField = value;
37521 }
37522 }
37523
37524 /// <summary>
37525 /// If this attribute's value is set to 'yes', the installer increments the reference count
37526 /// in the shared DLL registry of the component's key file. If this bit is not set, the
37527 /// installer increments the reference count only if the reference count already exists.
37528 /// </summary>
37529 public YesNoType SharedDllRefCount
37530 {
37531 get
37532 {
37533 return this.sharedDllRefCountField;
37534 }
37535 set
37536 {
37537 this.sharedDllRefCountFieldSet = true;
37538 this.sharedDllRefCountField = value;
37539 }
37540 }
37541
37542 /// <summary>
37543 /// If this attribute is set to 'yes', the installer reevaluates the value of the statement
37544 /// in the Condition upon a reinstall. If the value was previously False and has changed to
37545 /// True, the installer installs the component. If the value was previously True and has
37546 /// changed to False, the installer removes the component even if the component has other
37547 /// products as clients.
37548 /// </summary>
37549 public YesNoType Transitive
37550 {
37551 get
37552 {
37553 return this.transitiveField;
37554 }
37555 set
37556 {
37557 this.transitiveFieldSet = true;
37558 this.transitiveField = value;
37559 }
37560 }
37561
37562 /// <summary>
37563 /// If this attribute is set to 'yes', the installer will uninstall the Component's files
37564 /// and registry keys when it is superseded by a patch. This functionality is available in
37565 /// Windows Installer 4.5 and later.
37566 /// </summary>
37567 public YesNoType UninstallWhenSuperseded
37568 {
37569 get
37570 {
37571 return this.uninstallWhenSupersededField;
37572 }
37573 set
37574 {
37575 this.uninstallWhenSupersededFieldSet = true;
37576 this.uninstallWhenSupersededField = value;
37577 }
37578 }
37579
37580 /// <summary>
37581 /// Set this attribute to 'yes' to mark this as a 64-bit component. This attribute facilitates
37582 /// the installation of packages that include both 32-bit and 64-bit components. If this is a 64-bit
37583 /// component replacing a 32-bit component, set this attribute to 'yes' and assign a new GUID in the Guid attribute.
37584 /// The default value is based on the platform set by the -arch switch to candle.exe
37585 /// or the InstallerPlatform property in a .wixproj MSBuild project:
37586 /// For x86 and ARM, the default value is 'no'.
37587 /// For x64 and IA64, the default value is 'yes'.
37588 /// </summary>
37589 public YesNoType Win64
37590 {
37591 get
37592 {
37593 return this.win64Field;
37594 }
37595 set
37596 {
37597 this.win64FieldSet = true;
37598 this.win64Field = value;
37599 }
37600 }
37601
37602 public virtual ISchemaElement ParentElement
37603 {
37604 get
37605 {
37606 return this.parentElement;
37607 }
37608 set
37609 {
37610 this.parentElement = value;
37611 }
37612 }
37613
37614 public virtual void AddChild(ISchemaElement child)
37615 {
37616 if ((null == child))
37617 {
37618 throw new ArgumentNullException("child");
37619 }
37620 this.children.AddElement(child);
37621 child.ParentElement = this;
37622 }
37623
37624 public virtual void RemoveChild(ISchemaElement child)
37625 {
37626 if ((null == child))
37627 {
37628 throw new ArgumentNullException("child");
37629 }
37630 this.children.RemoveElement(child);
37631 child.ParentElement = null;
37632 }
37633
37634 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
37635 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
37636 ISchemaElement ICreateChildren.CreateChild(string childName)
37637 {
37638 if (String.IsNullOrEmpty(childName))
37639 {
37640 throw new ArgumentNullException("childName");
37641 }
37642 ISchemaElement childValue = null;
37643 if (("AppId" == childName))
37644 {
37645 childValue = new AppId();
37646 }
37647 if (("Category" == childName))
37648 {
37649 childValue = new Category();
37650 }
37651 if (("Class" == childName))
37652 {
37653 childValue = new Class();
37654 }
37655 if (("Condition" == childName))
37656 {
37657 childValue = new Condition();
37658 }
37659 if (("CopyFile" == childName))
37660 {
37661 childValue = new CopyFile();
37662 }
37663 if (("CreateFolder" == childName))
37664 {
37665 childValue = new CreateFolder();
37666 }
37667 if (("Environment" == childName))
37668 {
37669 childValue = new Environment();
37670 }
37671 if (("Extension" == childName))
37672 {
37673 childValue = new Extension();
37674 }
37675 if (("File" == childName))
37676 {
37677 childValue = new File();
37678 }
37679 if (("IniFile" == childName))
37680 {
37681 childValue = new IniFile();
37682 }
37683 if (("Interface" == childName))
37684 {
37685 childValue = new Interface();
37686 }
37687 if (("IsolateComponent" == childName))
37688 {
37689 childValue = new IsolateComponent();
37690 }
37691 if (("ODBCDataSource" == childName))
37692 {
37693 childValue = new ODBCDataSource();
37694 }
37695 if (("ODBCDriver" == childName))
37696 {
37697 childValue = new ODBCDriver();
37698 }
37699 if (("ODBCTranslator" == childName))
37700 {
37701 childValue = new ODBCTranslator();
37702 }
37703 if (("ProgId" == childName))
37704 {
37705 childValue = new ProgId();
37706 }
37707 if (("Registry" == childName))
37708 {
37709 childValue = new Registry();
37710 }
37711 if (("RegistryKey" == childName))
37712 {
37713 childValue = new RegistryKey();
37714 }
37715 if (("RegistryValue" == childName))
37716 {
37717 childValue = new RegistryValue();
37718 }
37719 if (("RemoveFile" == childName))
37720 {
37721 childValue = new RemoveFile();
37722 }
37723 if (("RemoveFolder" == childName))
37724 {
37725 childValue = new RemoveFolder();
37726 }
37727 if (("RemoveRegistryKey" == childName))
37728 {
37729 childValue = new RemoveRegistryKey();
37730 }
37731 if (("RemoveRegistryValue" == childName))
37732 {
37733 childValue = new RemoveRegistryValue();
37734 }
37735 if (("ReserveCost" == childName))
37736 {
37737 childValue = new ReserveCost();
37738 }
37739 if (("ServiceControl" == childName))
37740 {
37741 childValue = new ServiceControl();
37742 }
37743 if (("ServiceConfig" == childName))
37744 {
37745 childValue = new ServiceConfig();
37746 }
37747 if (("ServiceConfigFailureActions" == childName))
37748 {
37749 childValue = new ServiceConfigFailureActions();
37750 }
37751 if (("ServiceInstall" == childName))
37752 {
37753 childValue = new ServiceInstall();
37754 }
37755 if (("Shortcut" == childName))
37756 {
37757 childValue = new Shortcut();
37758 }
37759 if (("SymbolPath" == childName))
37760 {
37761 childValue = new SymbolPath();
37762 }
37763 if (("TypeLib" == childName))
37764 {
37765 childValue = new TypeLib();
37766 }
37767 if ((null == childValue))
37768 {
37769 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
37770 }
37771 return childValue;
37772 }
37773
37774 /// <summary>
37775 /// Parses a LocationType from a string.
37776 /// </summary>
37777 public static LocationType ParseLocationType(string value)
37778 {
37779 LocationType parsedValue;
37780 Component.TryParseLocationType(value, out parsedValue);
37781 return parsedValue;
37782 }
37783
37784 /// <summary>
37785 /// Tries to parse a LocationType from a string.
37786 /// </summary>
37787 public static bool TryParseLocationType(string value, out LocationType parsedValue)
37788 {
37789 parsedValue = LocationType.NotSet;
37790 if (string.IsNullOrEmpty(value))
37791 {
37792 return false;
37793 }
37794 if (("local" == value))
37795 {
37796 parsedValue = LocationType.local;
37797 }
37798 else
37799 {
37800 if (("source" == value))
37801 {
37802 parsedValue = LocationType.source;
37803 }
37804 else
37805 {
37806 if (("either" == value))
37807 {
37808 parsedValue = LocationType.either;
37809 }
37810 else
37811 {
37812 parsedValue = LocationType.IllegalValue;
37813 return false;
37814 }
37815 }
37816 }
37817 return true;
37818 }
37819
37820 /// <summary>
37821 /// Processes this element and all child elements into an XmlWriter.
37822 /// </summary>
37823 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
37824 public virtual void OutputXml(XmlWriter writer)
37825 {
37826 if ((null == writer))
37827 {
37828 throw new ArgumentNullException("writer");
37829 }
37830 writer.WriteStartElement("Component", "http://wixtoolset.org/schemas/v4/wxs");
37831 if (this.idFieldSet)
37832 {
37833 writer.WriteAttributeString("Id", this.idField);
37834 }
37835 if (this.comPlusFlagsFieldSet)
37836 {
37837 writer.WriteAttributeString("ComPlusFlags", this.comPlusFlagsField.ToString(CultureInfo.InvariantCulture));
37838 }
37839 if (this.disableRegistryReflectionFieldSet)
37840 {
37841 if ((this.disableRegistryReflectionField == YesNoType.no))
37842 {
37843 writer.WriteAttributeString("DisableRegistryReflection", "no");
37844 }
37845 if ((this.disableRegistryReflectionField == YesNoType.yes))
37846 {
37847 writer.WriteAttributeString("DisableRegistryReflection", "yes");
37848 }
37849 }
37850 if (this.directoryFieldSet)
37851 {
37852 writer.WriteAttributeString("Directory", this.directoryField);
37853 }
37854 if (this.diskIdFieldSet)
37855 {
37856 writer.WriteAttributeString("DiskId", this.diskIdField);
37857 }
37858 if (this.featureFieldSet)
37859 {
37860 writer.WriteAttributeString("Feature", this.featureField);
37861 }
37862 if (this.guidFieldSet)
37863 {
37864 writer.WriteAttributeString("Guid", this.guidField);
37865 }
37866 if (this.keyPathFieldSet)
37867 {
37868 if ((this.keyPathField == YesNoType.no))
37869 {
37870 writer.WriteAttributeString("KeyPath", "no");
37871 }
37872 if ((this.keyPathField == YesNoType.yes))
37873 {
37874 writer.WriteAttributeString("KeyPath", "yes");
37875 }
37876 }
37877 if (this.locationFieldSet)
37878 {
37879 if ((this.locationField == LocationType.local))
37880 {
37881 writer.WriteAttributeString("Location", "local");
37882 }
37883 if ((this.locationField == LocationType.source))
37884 {
37885 writer.WriteAttributeString("Location", "source");
37886 }
37887 if ((this.locationField == LocationType.either))
37888 {
37889 writer.WriteAttributeString("Location", "either");
37890 }
37891 }
37892 if (this.multiInstanceFieldSet)
37893 {
37894 if ((this.multiInstanceField == YesNoType.no))
37895 {
37896 writer.WriteAttributeString("MultiInstance", "no");
37897 }
37898 if ((this.multiInstanceField == YesNoType.yes))
37899 {
37900 writer.WriteAttributeString("MultiInstance", "yes");
37901 }
37902 }
37903 if (this.neverOverwriteFieldSet)
37904 {
37905 if ((this.neverOverwriteField == YesNoType.no))
37906 {
37907 writer.WriteAttributeString("NeverOverwrite", "no");
37908 }
37909 if ((this.neverOverwriteField == YesNoType.yes))
37910 {
37911 writer.WriteAttributeString("NeverOverwrite", "yes");
37912 }
37913 }
37914 if (this.permanentFieldSet)
37915 {
37916 if ((this.permanentField == YesNoType.no))
37917 {
37918 writer.WriteAttributeString("Permanent", "no");
37919 }
37920 if ((this.permanentField == YesNoType.yes))
37921 {
37922 writer.WriteAttributeString("Permanent", "yes");
37923 }
37924 }
37925 if (this.sharedFieldSet)
37926 {
37927 if ((this.sharedField == YesNoType.no))
37928 {
37929 writer.WriteAttributeString("Shared", "no");
37930 }
37931 if ((this.sharedField == YesNoType.yes))
37932 {
37933 writer.WriteAttributeString("Shared", "yes");
37934 }
37935 }
37936 if (this.sharedDllRefCountFieldSet)
37937 {
37938 if ((this.sharedDllRefCountField == YesNoType.no))
37939 {
37940 writer.WriteAttributeString("SharedDllRefCount", "no");
37941 }
37942 if ((this.sharedDllRefCountField == YesNoType.yes))
37943 {
37944 writer.WriteAttributeString("SharedDllRefCount", "yes");
37945 }
37946 }
37947 if (this.transitiveFieldSet)
37948 {
37949 if ((this.transitiveField == YesNoType.no))
37950 {
37951 writer.WriteAttributeString("Transitive", "no");
37952 }
37953 if ((this.transitiveField == YesNoType.yes))
37954 {
37955 writer.WriteAttributeString("Transitive", "yes");
37956 }
37957 }
37958 if (this.uninstallWhenSupersededFieldSet)
37959 {
37960 if ((this.uninstallWhenSupersededField == YesNoType.no))
37961 {
37962 writer.WriteAttributeString("UninstallWhenSuperseded", "no");
37963 }
37964 if ((this.uninstallWhenSupersededField == YesNoType.yes))
37965 {
37966 writer.WriteAttributeString("UninstallWhenSuperseded", "yes");
37967 }
37968 }
37969 if (this.win64FieldSet)
37970 {
37971 if ((this.win64Field == YesNoType.no))
37972 {
37973 writer.WriteAttributeString("Win64", "no");
37974 }
37975 if ((this.win64Field == YesNoType.yes))
37976 {
37977 writer.WriteAttributeString("Win64", "yes");
37978 }
37979 }
37980 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
37981 {
37982 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
37983 childElement.OutputXml(writer);
37984 }
37985 writer.WriteEndElement();
37986 }
37987
37988 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
37989 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
37990 void ISetAttributes.SetAttribute(string name, string value)
37991 {
37992 if (String.IsNullOrEmpty(name))
37993 {
37994 throw new ArgumentNullException("name");
37995 }
37996 if (("Id" == name))
37997 {
37998 this.idField = value;
37999 this.idFieldSet = true;
38000 }
38001 if (("ComPlusFlags" == name))
38002 {
38003 this.comPlusFlagsField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
38004 this.comPlusFlagsFieldSet = true;
38005 }
38006 if (("DisableRegistryReflection" == name))
38007 {
38008 this.disableRegistryReflectionField = Enums.ParseYesNoType(value);
38009 this.disableRegistryReflectionFieldSet = true;
38010 }
38011 if (("Directory" == name))
38012 {
38013 this.directoryField = value;
38014 this.directoryFieldSet = true;
38015 }
38016 if (("DiskId" == name))
38017 {
38018 this.diskIdField = value;
38019 this.diskIdFieldSet = true;
38020 }
38021 if (("Feature" == name))
38022 {
38023 this.featureField = value;
38024 this.featureFieldSet = true;
38025 }
38026 if (("Guid" == name))
38027 {
38028 this.guidField = value;
38029 this.guidFieldSet = true;
38030 }
38031 if (("KeyPath" == name))
38032 {
38033 this.keyPathField = Enums.ParseYesNoType(value);
38034 this.keyPathFieldSet = true;
38035 }
38036 if (("Location" == name))
38037 {
38038 this.locationField = Component.ParseLocationType(value);
38039 this.locationFieldSet = true;
38040 }
38041 if (("MultiInstance" == name))
38042 {
38043 this.multiInstanceField = Enums.ParseYesNoType(value);
38044 this.multiInstanceFieldSet = true;
38045 }
38046 if (("NeverOverwrite" == name))
38047 {
38048 this.neverOverwriteField = Enums.ParseYesNoType(value);
38049 this.neverOverwriteFieldSet = true;
38050 }
38051 if (("Permanent" == name))
38052 {
38053 this.permanentField = Enums.ParseYesNoType(value);
38054 this.permanentFieldSet = true;
38055 }
38056 if (("Shared" == name))
38057 {
38058 this.sharedField = Enums.ParseYesNoType(value);
38059 this.sharedFieldSet = true;
38060 }
38061 if (("SharedDllRefCount" == name))
38062 {
38063 this.sharedDllRefCountField = Enums.ParseYesNoType(value);
38064 this.sharedDllRefCountFieldSet = true;
38065 }
38066 if (("Transitive" == name))
38067 {
38068 this.transitiveField = Enums.ParseYesNoType(value);
38069 this.transitiveFieldSet = true;
38070 }
38071 if (("UninstallWhenSuperseded" == name))
38072 {
38073 this.uninstallWhenSupersededField = Enums.ParseYesNoType(value);
38074 this.uninstallWhenSupersededFieldSet = true;
38075 }
38076 if (("Win64" == name))
38077 {
38078 this.win64Field = Enums.ParseYesNoType(value);
38079 this.win64FieldSet = true;
38080 }
38081 }
38082
38083 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
38084 public enum LocationType
38085 {
38086
38087 IllegalValue = int.MaxValue,
38088
38089 NotSet = -1,
38090
38091 /// <summary>
38092 /// Prevents the component from running from the source or the network (this is the default behavior if this attribute is not set).
38093 /// </summary>
38094 local,
38095
38096 /// <summary>
38097 /// Enforces that the component can only be run from the source (it cannot be run from the user's computer).
38098 /// </summary>
38099 source,
38100
38101 /// <summary>
38102 /// Allows the component to run from source or locally.
38103 /// </summary>
38104 either,
38105 }
38106 }
38107
38108 /// <summary>
38109 /// Groups together multiple components to be used in other locations.
38110 /// </summary>
38111 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
38112 public class ComponentGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
38113 {
38114
38115 private ElementCollection children;
38116
38117 private string idField;
38118
38119 private bool idFieldSet;
38120
38121 private string directoryField;
38122
38123 private bool directoryFieldSet;
38124
38125 private string sourceField;
38126
38127 private bool sourceFieldSet;
38128
38129 private ISchemaElement parentElement;
38130
38131 public ComponentGroup()
38132 {
38133 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
38134 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component)));
38135 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroupRef)));
38136 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef)));
38137 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
38138 this.children = childCollection0;
38139 }
38140
38141 public virtual IEnumerable Children
38142 {
38143 get
38144 {
38145 return this.children;
38146 }
38147 }
38148
38149 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
38150 public virtual IEnumerable this[System.Type childType]
38151 {
38152 get
38153 {
38154 return this.children.Filter(childType);
38155 }
38156 }
38157
38158 /// <summary>
38159 /// Identifier for the ComponentGroup.
38160 /// </summary>
38161 public string Id
38162 {
38163 get
38164 {
38165 return this.idField;
38166 }
38167 set
38168 {
38169 this.idFieldSet = true;
38170 this.idField = value;
38171 }
38172 }
38173
38174 /// <summary>
38175 /// Sets the default directory identifier for child Component elements.
38176 /// </summary>
38177 public string Directory
38178 {
38179 get
38180 {
38181 return this.directoryField;
38182 }
38183 set
38184 {
38185 this.directoryFieldSet = true;
38186 this.directoryField = value;
38187 }
38188 }
38189
38190 /// <summary>
38191 /// Used to set the default file system source for child Component elements. For more information, see
38192 /// </summary>
38193 public string Source
38194 {
38195 get
38196 {
38197 return this.sourceField;
38198 }
38199 set
38200 {
38201 this.sourceFieldSet = true;
38202 this.sourceField = value;
38203 }
38204 }
38205
38206 public virtual ISchemaElement ParentElement
38207 {
38208 get
38209 {
38210 return this.parentElement;
38211 }
38212 set
38213 {
38214 this.parentElement = value;
38215 }
38216 }
38217
38218 public virtual void AddChild(ISchemaElement child)
38219 {
38220 if ((null == child))
38221 {
38222 throw new ArgumentNullException("child");
38223 }
38224 this.children.AddElement(child);
38225 child.ParentElement = this;
38226 }
38227
38228 public virtual void RemoveChild(ISchemaElement child)
38229 {
38230 if ((null == child))
38231 {
38232 throw new ArgumentNullException("child");
38233 }
38234 this.children.RemoveElement(child);
38235 child.ParentElement = null;
38236 }
38237
38238 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
38239 ISchemaElement ICreateChildren.CreateChild(string childName)
38240 {
38241 if (String.IsNullOrEmpty(childName))
38242 {
38243 throw new ArgumentNullException("childName");
38244 }
38245 ISchemaElement childValue = null;
38246 if (("Component" == childName))
38247 {
38248 childValue = new Component();
38249 }
38250 if (("ComponentGroupRef" == childName))
38251 {
38252 childValue = new ComponentGroupRef();
38253 }
38254 if (("ComponentRef" == childName))
38255 {
38256 childValue = new ComponentRef();
38257 }
38258 if ((null == childValue))
38259 {
38260 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
38261 }
38262 return childValue;
38263 }
38264
38265 /// <summary>
38266 /// Processes this element and all child elements into an XmlWriter.
38267 /// </summary>
38268 public virtual void OutputXml(XmlWriter writer)
38269 {
38270 if ((null == writer))
38271 {
38272 throw new ArgumentNullException("writer");
38273 }
38274 writer.WriteStartElement("ComponentGroup", "http://wixtoolset.org/schemas/v4/wxs");
38275 if (this.idFieldSet)
38276 {
38277 writer.WriteAttributeString("Id", this.idField);
38278 }
38279 if (this.directoryFieldSet)
38280 {
38281 writer.WriteAttributeString("Directory", this.directoryField);
38282 }
38283 if (this.sourceFieldSet)
38284 {
38285 writer.WriteAttributeString("Source", this.sourceField);
38286 }
38287 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
38288 {
38289 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
38290 childElement.OutputXml(writer);
38291 }
38292 writer.WriteEndElement();
38293 }
38294
38295 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
38296 void ISetAttributes.SetAttribute(string name, string value)
38297 {
38298 if (String.IsNullOrEmpty(name))
38299 {
38300 throw new ArgumentNullException("name");
38301 }
38302 if (("Id" == name))
38303 {
38304 this.idField = value;
38305 this.idFieldSet = true;
38306 }
38307 if (("Directory" == name))
38308 {
38309 this.directoryField = value;
38310 this.directoryFieldSet = true;
38311 }
38312 if (("Source" == name))
38313 {
38314 this.sourceField = value;
38315 this.sourceFieldSet = true;
38316 }
38317 }
38318 }
38319
38320 /// <summary>
38321 /// Create a reference to a ComponentGroup in another Fragment.
38322 /// </summary>
38323 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
38324 public class ComponentGroupRef : ISchemaElement, ISetAttributes
38325 {
38326
38327 private string idField;
38328
38329 private bool idFieldSet;
38330
38331 private YesNoType primaryField;
38332
38333 private bool primaryFieldSet;
38334
38335 private ISchemaElement parentElement;
38336
38337 /// <summary>
38338 /// The identifier of the ComponentGroup to reference.
38339 /// </summary>
38340 public string Id
38341 {
38342 get
38343 {
38344 return this.idField;
38345 }
38346 set
38347 {
38348 this.idFieldSet = true;
38349 this.idField = value;
38350 }
38351 }
38352
38353 /// <summary>
38354 /// Set this attribute to 'yes' in order to make the parent feature of this component
38355 /// the primary feature for this component. Components may belong to multiple features.
38356 /// By designating a feature as the primary feature of a component, you ensure that
38357 /// whenever a component is selected for install-on-demand (IOD), the primary feature
38358 /// will be the one to install it. This attribute should only be set if a component
38359 /// actually nests under multiple features. If a component nests under only one feature,
38360 /// that feature is the primary feature for the component. You cannot set more than one
38361 /// feature as the primary feature of a given component.
38362 /// </summary>
38363 public YesNoType Primary
38364 {
38365 get
38366 {
38367 return this.primaryField;
38368 }
38369 set
38370 {
38371 this.primaryFieldSet = true;
38372 this.primaryField = value;
38373 }
38374 }
38375
38376 public virtual ISchemaElement ParentElement
38377 {
38378 get
38379 {
38380 return this.parentElement;
38381 }
38382 set
38383 {
38384 this.parentElement = value;
38385 }
38386 }
38387
38388 /// <summary>
38389 /// Processes this element and all child elements into an XmlWriter.
38390 /// </summary>
38391 public virtual void OutputXml(XmlWriter writer)
38392 {
38393 if ((null == writer))
38394 {
38395 throw new ArgumentNullException("writer");
38396 }
38397 writer.WriteStartElement("ComponentGroupRef", "http://wixtoolset.org/schemas/v4/wxs");
38398 if (this.idFieldSet)
38399 {
38400 writer.WriteAttributeString("Id", this.idField);
38401 }
38402 if (this.primaryFieldSet)
38403 {
38404 if ((this.primaryField == YesNoType.no))
38405 {
38406 writer.WriteAttributeString("Primary", "no");
38407 }
38408 if ((this.primaryField == YesNoType.yes))
38409 {
38410 writer.WriteAttributeString("Primary", "yes");
38411 }
38412 }
38413 writer.WriteEndElement();
38414 }
38415
38416 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
38417 void ISetAttributes.SetAttribute(string name, string value)
38418 {
38419 if (String.IsNullOrEmpty(name))
38420 {
38421 throw new ArgumentNullException("name");
38422 }
38423 if (("Id" == name))
38424 {
38425 this.idField = value;
38426 this.idFieldSet = true;
38427 }
38428 if (("Primary" == name))
38429 {
38430 this.primaryField = Enums.ParseYesNoType(value);
38431 this.primaryFieldSet = true;
38432 }
38433 }
38434 }
38435
38436 /// <summary>
38437 /// Used only for PatchFamilies to include all changes between the baseline and upgraded packages in a patch.
38438 /// </summary>
38439 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
38440 public class All : ISetAttributes, ISchemaElement
38441 {
38442
38443 private ISchemaElement parentElement;
38444
38445 private string contentField;
38446
38447 private bool contentFieldSet;
38448
38449 public virtual ISchemaElement ParentElement
38450 {
38451 get
38452 {
38453 return this.parentElement;
38454 }
38455 set
38456 {
38457 this.parentElement = value;
38458 }
38459 }
38460
38461 /// <summary>
38462 /// Used only for PatchFamilies to include all changes between the baseline and upgraded packages in a patch.
38463 /// </summary>
38464 public string Content
38465 {
38466 get
38467 {
38468 return this.contentField;
38469 }
38470 set
38471 {
38472 this.contentFieldSet = true;
38473 this.contentField = value;
38474 }
38475 }
38476
38477 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
38478 void ISetAttributes.SetAttribute(string name, string value)
38479 {
38480 if (String.IsNullOrEmpty(name))
38481 {
38482 throw new ArgumentNullException("name");
38483 }
38484 if (("Content" == name))
38485 {
38486 this.contentField = value;
38487 this.contentFieldSet = true;
38488 }
38489 }
38490
38491 /// <summary>
38492 /// Processes this element and all child elements into an XmlWriter.
38493 /// </summary>
38494 public virtual void OutputXml(XmlWriter writer)
38495 {
38496 if ((null == writer))
38497 {
38498 throw new ArgumentNullException("writer");
38499 }
38500 writer.WriteStartElement("All", "http://wixtoolset.org/schemas/v4/wxs");
38501 if (this.contentFieldSet)
38502 {
38503 writer.WriteString(this.contentField);
38504 }
38505 writer.WriteEndElement();
38506 }
38507 }
38508
38509 /// <summary>
38510 /// Used only for PatchFamilies to include only a binary table entry in a patch.
38511 /// </summary>
38512 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
38513 public class BinaryRef : ISchemaElement, ISetAttributes
38514 {
38515
38516 private string idField;
38517
38518 private bool idFieldSet;
38519
38520 private ISchemaElement parentElement;
38521
38522 /// <summary>
38523 /// The identifier of the Binary element to reference.
38524 /// </summary>
38525 public string Id
38526 {
38527 get
38528 {
38529 return this.idField;
38530 }
38531 set
38532 {
38533 this.idFieldSet = true;
38534 this.idField = value;
38535 }
38536 }
38537
38538 public virtual ISchemaElement ParentElement
38539 {
38540 get
38541 {
38542 return this.parentElement;
38543 }
38544 set
38545 {
38546 this.parentElement = value;
38547 }
38548 }
38549
38550 /// <summary>
38551 /// Processes this element and all child elements into an XmlWriter.
38552 /// </summary>
38553 public virtual void OutputXml(XmlWriter writer)
38554 {
38555 if ((null == writer))
38556 {
38557 throw new ArgumentNullException("writer");
38558 }
38559 writer.WriteStartElement("BinaryRef", "http://wixtoolset.org/schemas/v4/wxs");
38560 if (this.idFieldSet)
38561 {
38562 writer.WriteAttributeString("Id", this.idField);
38563 }
38564 writer.WriteEndElement();
38565 }
38566
38567 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
38568 void ISetAttributes.SetAttribute(string name, string value)
38569 {
38570 if (String.IsNullOrEmpty(name))
38571 {
38572 throw new ArgumentNullException("name");
38573 }
38574 if (("Id" == name))
38575 {
38576 this.idField = value;
38577 this.idFieldSet = true;
38578 }
38579 }
38580 }
38581
38582 /// <summary>
38583 /// Used only for PatchFamilies to include only a icon table entry in a patch.
38584 /// </summary>
38585 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
38586 public class IconRef : ISchemaElement, ISetAttributes
38587 {
38588
38589 private string idField;
38590
38591 private bool idFieldSet;
38592
38593 private ISchemaElement parentElement;
38594
38595 /// <summary>
38596 /// The identifier of the Icon element to reference.
38597 /// </summary>
38598 public string Id
38599 {
38600 get
38601 {
38602 return this.idField;
38603 }
38604 set
38605 {
38606 this.idFieldSet = true;
38607 this.idField = value;
38608 }
38609 }
38610
38611 public virtual ISchemaElement ParentElement
38612 {
38613 get
38614 {
38615 return this.parentElement;
38616 }
38617 set
38618 {
38619 this.parentElement = value;
38620 }
38621 }
38622
38623 /// <summary>
38624 /// Processes this element and all child elements into an XmlWriter.
38625 /// </summary>
38626 public virtual void OutputXml(XmlWriter writer)
38627 {
38628 if ((null == writer))
38629 {
38630 throw new ArgumentNullException("writer");
38631 }
38632 writer.WriteStartElement("IconRef", "http://wixtoolset.org/schemas/v4/wxs");
38633 if (this.idFieldSet)
38634 {
38635 writer.WriteAttributeString("Id", this.idField);
38636 }
38637 writer.WriteEndElement();
38638 }
38639
38640 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
38641 void ISetAttributes.SetAttribute(string name, string value)
38642 {
38643 if (String.IsNullOrEmpty(name))
38644 {
38645 throw new ArgumentNullException("name");
38646 }
38647 if (("Id" == name))
38648 {
38649 this.idField = value;
38650 this.idFieldSet = true;
38651 }
38652 }
38653 }
38654
38655 /// <summary>
38656 /// Create a reference to a Feature element in another Fragment.
38657 /// </summary>
38658 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
38659 public class ComponentRef : ISchemaElement, ISetAttributes
38660 {
38661
38662 private string idField;
38663
38664 private bool idFieldSet;
38665
38666 private YesNoType primaryField;
38667
38668 private bool primaryFieldSet;
38669
38670 private ISchemaElement parentElement;
38671
38672 /// <summary>
38673 /// The identifier of the Component element to reference.
38674 /// </summary>
38675 public string Id
38676 {
38677 get
38678 {
38679 return this.idField;
38680 }
38681 set
38682 {
38683 this.idFieldSet = true;
38684 this.idField = value;
38685 }
38686 }
38687
38688 /// <summary>
38689 /// Set this attribute to 'yes' in order to make the parent feature of this component
38690 /// the primary feature for this component. Components may belong to multiple features.
38691 /// By designating a feature as the primary feature of a component, you ensure that
38692 /// whenever a component is selected for install-on-demand (IOD), the primary feature
38693 /// will be the one to install it. This attribute should only be set if a component
38694 /// actually nests under multiple features. If a component nests under only one feature,
38695 /// that feature is the primary feature for the component. You cannot set more than one
38696 /// feature as the primary feature of a given component.
38697 /// </summary>
38698 public YesNoType Primary
38699 {
38700 get
38701 {
38702 return this.primaryField;
38703 }
38704 set
38705 {
38706 this.primaryFieldSet = true;
38707 this.primaryField = value;
38708 }
38709 }
38710
38711 public virtual ISchemaElement ParentElement
38712 {
38713 get
38714 {
38715 return this.parentElement;
38716 }
38717 set
38718 {
38719 this.parentElement = value;
38720 }
38721 }
38722
38723 /// <summary>
38724 /// Processes this element and all child elements into an XmlWriter.
38725 /// </summary>
38726 public virtual void OutputXml(XmlWriter writer)
38727 {
38728 if ((null == writer))
38729 {
38730 throw new ArgumentNullException("writer");
38731 }
38732 writer.WriteStartElement("ComponentRef", "http://wixtoolset.org/schemas/v4/wxs");
38733 if (this.idFieldSet)
38734 {
38735 writer.WriteAttributeString("Id", this.idField);
38736 }
38737 if (this.primaryFieldSet)
38738 {
38739 if ((this.primaryField == YesNoType.no))
38740 {
38741 writer.WriteAttributeString("Primary", "no");
38742 }
38743 if ((this.primaryField == YesNoType.yes))
38744 {
38745 writer.WriteAttributeString("Primary", "yes");
38746 }
38747 }
38748 writer.WriteEndElement();
38749 }
38750
38751 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
38752 void ISetAttributes.SetAttribute(string name, string value)
38753 {
38754 if (String.IsNullOrEmpty(name))
38755 {
38756 throw new ArgumentNullException("name");
38757 }
38758 if (("Id" == name))
38759 {
38760 this.idField = value;
38761 this.idFieldSet = true;
38762 }
38763 if (("Primary" == name))
38764 {
38765 this.primaryField = Enums.ParseYesNoType(value);
38766 this.primaryFieldSet = true;
38767 }
38768 }
38769 }
38770
38771 /// <summary>
38772 /// Merge directive to bring in a merge module that will be redirected to the parent directory.
38773 /// </summary>
38774 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
38775 public class Merge : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
38776 {
38777
38778 private ElementCollection children;
38779
38780 private string idField;
38781
38782 private bool idFieldSet;
38783
38784 private string diskIdField;
38785
38786 private bool diskIdFieldSet;
38787
38788 private YesNoType fileCompressionField;
38789
38790 private bool fileCompressionFieldSet;
38791
38792 private string languageField;
38793
38794 private bool languageFieldSet;
38795
38796 private string sourceFileField;
38797
38798 private bool sourceFileFieldSet;
38799
38800 private string srcField;
38801
38802 private bool srcFieldSet;
38803
38804 private ISchemaElement parentElement;
38805
38806 public Merge()
38807 {
38808 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
38809 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ConfigurationData)));
38810 this.children = childCollection0;
38811 }
38812
38813 public virtual IEnumerable Children
38814 {
38815 get
38816 {
38817 return this.children;
38818 }
38819 }
38820
38821 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
38822 public virtual IEnumerable this[System.Type childType]
38823 {
38824 get
38825 {
38826 return this.children.Filter(childType);
38827 }
38828 }
38829
38830 /// <summary>
38831 /// The unique identifier for the Merge element in the source code. Referenced by the MergeRef/@Id.
38832 /// </summary>
38833 public string Id
38834 {
38835 get
38836 {
38837 return this.idField;
38838 }
38839 set
38840 {
38841 this.idFieldSet = true;
38842 this.idField = value;
38843 }
38844 }
38845
38846 /// <summary>
38847 /// The value of this attribute should correspond to the Id attribute of a
38848 /// Media element authored elsewhere. By creating this connection between the merge module and Media
38849 /// element, you set the packaging options to the values specified in the Media
38850 /// element (values such as compression level, cab embedding, etc...).
38851 /// </summary>
38852 public string DiskId
38853 {
38854 get
38855 {
38856 return this.diskIdField;
38857 }
38858 set
38859 {
38860 this.diskIdFieldSet = true;
38861 this.diskIdField = value;
38862 }
38863 }
38864
38865 /// <summary>
38866 /// Specifies if the files in the merge module should be compressed.
38867 /// </summary>
38868 public YesNoType FileCompression
38869 {
38870 get
38871 {
38872 return this.fileCompressionField;
38873 }
38874 set
38875 {
38876 this.fileCompressionFieldSet = true;
38877 this.fileCompressionField = value;
38878 }
38879 }
38880
38881 /// <summary>
38882 /// Specifies the decimal LCID or localization token for the language to merge the Module in as.
38883 /// </summary>
38884 public string Language
38885 {
38886 get
38887 {
38888 return this.languageField;
38889 }
38890 set
38891 {
38892 this.languageFieldSet = true;
38893 this.languageField = value;
38894 }
38895 }
38896
38897 /// <summary>
38898 /// Path to the source location of the merge module.
38899 /// </summary>
38900 public string SourceFile
38901 {
38902 get
38903 {
38904 return this.sourceFileField;
38905 }
38906 set
38907 {
38908 this.sourceFileFieldSet = true;
38909 this.sourceFileField = value;
38910 }
38911 }
38912
38913 [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
38914 public string src
38915 {
38916 get
38917 {
38918 return this.srcField;
38919 }
38920 set
38921 {
38922 this.srcFieldSet = true;
38923 this.srcField = value;
38924 }
38925 }
38926
38927 public virtual ISchemaElement ParentElement
38928 {
38929 get
38930 {
38931 return this.parentElement;
38932 }
38933 set
38934 {
38935 this.parentElement = value;
38936 }
38937 }
38938
38939 public virtual void AddChild(ISchemaElement child)
38940 {
38941 if ((null == child))
38942 {
38943 throw new ArgumentNullException("child");
38944 }
38945 this.children.AddElement(child);
38946 child.ParentElement = this;
38947 }
38948
38949 public virtual void RemoveChild(ISchemaElement child)
38950 {
38951 if ((null == child))
38952 {
38953 throw new ArgumentNullException("child");
38954 }
38955 this.children.RemoveElement(child);
38956 child.ParentElement = null;
38957 }
38958
38959 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
38960 ISchemaElement ICreateChildren.CreateChild(string childName)
38961 {
38962 if (String.IsNullOrEmpty(childName))
38963 {
38964 throw new ArgumentNullException("childName");
38965 }
38966 ISchemaElement childValue = null;
38967 if (("ConfigurationData" == childName))
38968 {
38969 childValue = new ConfigurationData();
38970 }
38971 if ((null == childValue))
38972 {
38973 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
38974 }
38975 return childValue;
38976 }
38977
38978 /// <summary>
38979 /// Processes this element and all child elements into an XmlWriter.
38980 /// </summary>
38981 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
38982 public virtual void OutputXml(XmlWriter writer)
38983 {
38984 if ((null == writer))
38985 {
38986 throw new ArgumentNullException("writer");
38987 }
38988 writer.WriteStartElement("Merge", "http://wixtoolset.org/schemas/v4/wxs");
38989 if (this.idFieldSet)
38990 {
38991 writer.WriteAttributeString("Id", this.idField);
38992 }
38993 if (this.diskIdFieldSet)
38994 {
38995 writer.WriteAttributeString("DiskId", this.diskIdField);
38996 }
38997 if (this.fileCompressionFieldSet)
38998 {
38999 if ((this.fileCompressionField == YesNoType.no))
39000 {
39001 writer.WriteAttributeString("FileCompression", "no");
39002 }
39003 if ((this.fileCompressionField == YesNoType.yes))
39004 {
39005 writer.WriteAttributeString("FileCompression", "yes");
39006 }
39007 }
39008 if (this.languageFieldSet)
39009 {
39010 writer.WriteAttributeString("Language", this.languageField);
39011 }
39012 if (this.sourceFileFieldSet)
39013 {
39014 writer.WriteAttributeString("SourceFile", this.sourceFileField);
39015 }
39016 if (this.srcFieldSet)
39017 {
39018 writer.WriteAttributeString("src", this.srcField);
39019 }
39020 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
39021 {
39022 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
39023 childElement.OutputXml(writer);
39024 }
39025 writer.WriteEndElement();
39026 }
39027
39028 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
39029 void ISetAttributes.SetAttribute(string name, string value)
39030 {
39031 if (String.IsNullOrEmpty(name))
39032 {
39033 throw new ArgumentNullException("name");
39034 }
39035 if (("Id" == name))
39036 {
39037 this.idField = value;
39038 this.idFieldSet = true;
39039 }
39040 if (("DiskId" == name))
39041 {
39042 this.diskIdField = value;
39043 this.diskIdFieldSet = true;
39044 }
39045 if (("FileCompression" == name))
39046 {
39047 this.fileCompressionField = Enums.ParseYesNoType(value);
39048 this.fileCompressionFieldSet = true;
39049 }
39050 if (("Language" == name))
39051 {
39052 this.languageField = value;
39053 this.languageFieldSet = true;
39054 }
39055 if (("SourceFile" == name))
39056 {
39057 this.sourceFileField = value;
39058 this.sourceFileFieldSet = true;
39059 }
39060 if (("src" == name))
39061 {
39062 this.srcField = value;
39063 this.srcFieldSet = true;
39064 }
39065 }
39066 }
39067
39068 /// <summary>
39069 /// Merge reference to connect a Merge Module to parent Feature
39070 /// </summary>
39071 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
39072 public class MergeRef : ISchemaElement, ISetAttributes
39073 {
39074
39075 private string idField;
39076
39077 private bool idFieldSet;
39078
39079 private YesNoType primaryField;
39080
39081 private bool primaryFieldSet;
39082
39083 private ISchemaElement parentElement;
39084
39085 /// <summary>
39086 /// The unique identifier for the Merge element to be referenced.
39087 /// </summary>
39088 public string Id
39089 {
39090 get
39091 {
39092 return this.idField;
39093 }
39094 set
39095 {
39096 this.idFieldSet = true;
39097 this.idField = value;
39098 }
39099 }
39100
39101 /// <summary>
39102 /// Specifies whether the feature containing this MergeRef is the primary feature for advertising the merge module's components.
39103 /// </summary>
39104 public YesNoType Primary
39105 {
39106 get
39107 {
39108 return this.primaryField;
39109 }
39110 set
39111 {
39112 this.primaryFieldSet = true;
39113 this.primaryField = value;
39114 }
39115 }
39116
39117 public virtual ISchemaElement ParentElement
39118 {
39119 get
39120 {
39121 return this.parentElement;
39122 }
39123 set
39124 {
39125 this.parentElement = value;
39126 }
39127 }
39128
39129 /// <summary>
39130 /// Processes this element and all child elements into an XmlWriter.
39131 /// </summary>
39132 public virtual void OutputXml(XmlWriter writer)
39133 {
39134 if ((null == writer))
39135 {
39136 throw new ArgumentNullException("writer");
39137 }
39138 writer.WriteStartElement("MergeRef", "http://wixtoolset.org/schemas/v4/wxs");
39139 if (this.idFieldSet)
39140 {
39141 writer.WriteAttributeString("Id", this.idField);
39142 }
39143 if (this.primaryFieldSet)
39144 {
39145 if ((this.primaryField == YesNoType.no))
39146 {
39147 writer.WriteAttributeString("Primary", "no");
39148 }
39149 if ((this.primaryField == YesNoType.yes))
39150 {
39151 writer.WriteAttributeString("Primary", "yes");
39152 }
39153 }
39154 writer.WriteEndElement();
39155 }
39156
39157 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
39158 void ISetAttributes.SetAttribute(string name, string value)
39159 {
39160 if (String.IsNullOrEmpty(name))
39161 {
39162 throw new ArgumentNullException("name");
39163 }
39164 if (("Id" == name))
39165 {
39166 this.idField = value;
39167 this.idFieldSet = true;
39168 }
39169 if (("Primary" == name))
39170 {
39171 this.primaryField = Enums.ParseYesNoType(value);
39172 this.primaryFieldSet = true;
39173 }
39174 }
39175 }
39176
39177 /// <summary>
39178 /// Data to use as input to a configurable merge module.
39179 /// </summary>
39180 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
39181 public class ConfigurationData : ISchemaElement, ISetAttributes
39182 {
39183
39184 private string nameField;
39185
39186 private bool nameFieldSet;
39187
39188 private string valueField;
39189
39190 private bool valueFieldSet;
39191
39192 private ISchemaElement parentElement;
39193
39194 /// <summary>
39195 /// Name of the item in the ModuleConfiguration table.
39196 /// </summary>
39197 public string Name
39198 {
39199 get
39200 {
39201 return this.nameField;
39202 }
39203 set
39204 {
39205 this.nameFieldSet = true;
39206 this.nameField = value;
39207 }
39208 }
39209
39210 /// <summary>
39211 /// Value to be passed to configurable merge module.
39212 /// </summary>
39213 public string Value
39214 {
39215 get
39216 {
39217 return this.valueField;
39218 }
39219 set
39220 {
39221 this.valueFieldSet = true;
39222 this.valueField = value;
39223 }
39224 }
39225
39226 public virtual ISchemaElement ParentElement
39227 {
39228 get
39229 {
39230 return this.parentElement;
39231 }
39232 set
39233 {
39234 this.parentElement = value;
39235 }
39236 }
39237
39238 /// <summary>
39239 /// Processes this element and all child elements into an XmlWriter.
39240 /// </summary>
39241 public virtual void OutputXml(XmlWriter writer)
39242 {
39243 if ((null == writer))
39244 {
39245 throw new ArgumentNullException("writer");
39246 }
39247 writer.WriteStartElement("ConfigurationData", "http://wixtoolset.org/schemas/v4/wxs");
39248 if (this.nameFieldSet)
39249 {
39250 writer.WriteAttributeString("Name", this.nameField);
39251 }
39252 if (this.valueFieldSet)
39253 {
39254 writer.WriteAttributeString("Value", this.valueField);
39255 }
39256 writer.WriteEndElement();
39257 }
39258
39259 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
39260 void ISetAttributes.SetAttribute(string name, string value)
39261 {
39262 if (String.IsNullOrEmpty(name))
39263 {
39264 throw new ArgumentNullException("name");
39265 }
39266 if (("Name" == name))
39267 {
39268 this.nameField = value;
39269 this.nameFieldSet = true;
39270 }
39271 if (("Value" == name))
39272 {
39273 this.valueField = value;
39274 this.valueFieldSet = true;
39275 }
39276 }
39277 }
39278
39279 /// <summary>
39280 /// Directory layout for the product. Also specifies the mappings between source and target directories.
39281 /// </summary>
39282 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
39283 public class Directory : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
39284 {
39285
39286 private ElementCollection children;
39287
39288 private string idField;
39289
39290 private bool idFieldSet;
39291
39292 private string componentGuidGenerationSeedField;
39293
39294 private bool componentGuidGenerationSeedFieldSet;
39295
39296 private string diskIdField;
39297
39298 private bool diskIdFieldSet;
39299
39300 private string fileSourceField;
39301
39302 private bool fileSourceFieldSet;
39303
39304 private string nameField;
39305
39306 private bool nameFieldSet;
39307
39308 private string shortNameField;
39309
39310 private bool shortNameFieldSet;
39311
39312 private string shortSourceNameField;
39313
39314 private bool shortSourceNameFieldSet;
39315
39316 private string sourceNameField;
39317
39318 private bool sourceNameFieldSet;
39319
39320 private string srcField;
39321
39322 private bool srcFieldSet;
39323
39324 private ISchemaElement parentElement;
39325
39326 public Directory()
39327 {
39328 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
39329 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component)));
39330 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Directory)));
39331 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Merge)));
39332 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath)));
39333 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
39334 this.children = childCollection0;
39335 }
39336
39337 public virtual IEnumerable Children
39338 {
39339 get
39340 {
39341 return this.children;
39342 }
39343 }
39344
39345 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
39346 public virtual IEnumerable this[System.Type childType]
39347 {
39348 get
39349 {
39350 return this.children.Filter(childType);
39351 }
39352 }
39353
39354 /// <summary>
39355 /// This value is the unique identifier of the directory entry.
39356 /// </summary>
39357 public string Id
39358 {
39359 get
39360 {
39361 return this.idField;
39362 }
39363 set
39364 {
39365 this.idFieldSet = true;
39366 this.idField = value;
39367 }
39368 }
39369
39370 /// <summary>
39371 /// The Component Guid Generation Seed is a guid that must be used when a Component with the generate guid directive ("*")
39372 /// is not rooted in a standard Windows Installer directory (for example, ProgramFilesFolder or CommonFilesFolder).
39373 /// It is recommended that this attribute be avoided and that developers install their Components under standard
39374 /// directories with unique names instead (for example, "ProgramFilesFolder\Company Name Product Name Version"). It is
39375 /// important to note that once a directory is assigned a Component Guid Generation Seed the value must not change until
39376 /// (and must be changed when) the path to that directory, including itself and all parent directories, changes.
39377 /// </summary>
39378 public string ComponentGuidGenerationSeed
39379 {
39380 get
39381 {
39382 return this.componentGuidGenerationSeedField;
39383 }
39384 set
39385 {
39386 this.componentGuidGenerationSeedFieldSet = true;
39387 this.componentGuidGenerationSeedField = value;
39388 }
39389 }
39390
39391 /// <summary>
39392 /// Sets the default disk identifier for the files contained in this directory.
39393 /// This attribute's value may be overridden by a child Component, Directory,
39394 /// Merge or File element. See the File or Merge elements' DiskId attribute for
39395 /// more information.
39396 /// </summary>
39397 public string DiskId
39398 {
39399 get
39400 {
39401 return this.diskIdField;
39402 }
39403 set
39404 {
39405 this.diskIdFieldSet = true;
39406 this.diskIdField = value;
39407 }
39408 }
39409
39410 /// <summary>
39411 /// Used to set the file system source for this directory's child elements. For more information, see
39412 /// </summary>
39413 public string FileSource
39414 {
39415 get
39416 {
39417 return this.fileSourceField;
39418 }
39419 set
39420 {
39421 this.fileSourceFieldSet = true;
39422 this.fileSourceField = value;
39423 }
39424 }
39425
39426 /// <summary>
39427 /// The name of the directory.
39428 ///
39429 /// Do not specify this attribute if this directory represents
39430 /// the same directory as the parent (see the Windows Installer SDK's
39431 /// </summary>
39432 public string Name
39433 {
39434 get
39435 {
39436 return this.nameField;
39437 }
39438 set
39439 {
39440 this.nameFieldSet = true;
39441 this.nameField = value;
39442 }
39443 }
39444
39445 /// <summary>
39446 /// The short name of the directory in 8.3 format.
39447 /// This attribute should only be set if there is a conflict between generated short directory names
39448 /// or the user wants to manually specify the short directory name.
39449 /// </summary>
39450 public string ShortName
39451 {
39452 get
39453 {
39454 return this.shortNameField;
39455 }
39456 set
39457 {
39458 this.shortNameFieldSet = true;
39459 this.shortNameField = value;
39460 }
39461 }
39462
39463 /// <summary>
39464 /// The short name of the directory on the source media in 8.3 format.
39465 /// This attribute should only be set if there is a conflict between generated short directory names
39466 /// or the user wants to manually specify the short source directory name.
39467 /// </summary>
39468 public string ShortSourceName
39469 {
39470 get
39471 {
39472 return this.shortSourceNameField;
39473 }
39474 set
39475 {
39476 this.shortSourceNameFieldSet = true;
39477 this.shortSourceNameField = value;
39478 }
39479 }
39480
39481 /// <summary>
39482 /// The name of the directory on the source media.
39483 /// If this attribute is not specified, Windows Installer will default to the Name attribute.
39484 ///
39485 /// In prior versions of the WiX toolset, this attribute specified the short source directory name.
39486 /// This attribute's value may now be either a short or long directory name.
39487 /// If a short directory name is specified, the ShortSourceName attribute may not be specified.
39488 /// If a long directory name is specified, the LongSource attribute may not be specified.
39489 /// Also, if this value is a long directory name, the ShortSourceName attribute may be omitted to
39490 /// allow WiX to attempt to generate a unique short directory name.
39491 /// However, if this name collides with another directory or you wish to manually specify
39492 /// the short directory name, then the ShortSourceName attribute may be specified.
39493 /// </summary>
39494 public string SourceName
39495 {
39496 get
39497 {
39498 return this.sourceNameField;
39499 }
39500 set
39501 {
39502 this.sourceNameFieldSet = true;
39503 this.sourceNameField = value;
39504 }
39505 }
39506
39507 [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
39508 public string src
39509 {
39510 get
39511 {
39512 return this.srcField;
39513 }
39514 set
39515 {
39516 this.srcFieldSet = true;
39517 this.srcField = value;
39518 }
39519 }
39520
39521 public virtual ISchemaElement ParentElement
39522 {
39523 get
39524 {
39525 return this.parentElement;
39526 }
39527 set
39528 {
39529 this.parentElement = value;
39530 }
39531 }
39532
39533 public virtual void AddChild(ISchemaElement child)
39534 {
39535 if ((null == child))
39536 {
39537 throw new ArgumentNullException("child");
39538 }
39539 this.children.AddElement(child);
39540 child.ParentElement = this;
39541 }
39542
39543 public virtual void RemoveChild(ISchemaElement child)
39544 {
39545 if ((null == child))
39546 {
39547 throw new ArgumentNullException("child");
39548 }
39549 this.children.RemoveElement(child);
39550 child.ParentElement = null;
39551 }
39552
39553 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
39554 ISchemaElement ICreateChildren.CreateChild(string childName)
39555 {
39556 if (String.IsNullOrEmpty(childName))
39557 {
39558 throw new ArgumentNullException("childName");
39559 }
39560 ISchemaElement childValue = null;
39561 if (("Component" == childName))
39562 {
39563 childValue = new Component();
39564 }
39565 if (("Directory" == childName))
39566 {
39567 childValue = new Directory();
39568 }
39569 if (("Merge" == childName))
39570 {
39571 childValue = new Merge();
39572 }
39573 if (("SymbolPath" == childName))
39574 {
39575 childValue = new SymbolPath();
39576 }
39577 if ((null == childValue))
39578 {
39579 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
39580 }
39581 return childValue;
39582 }
39583
39584 /// <summary>
39585 /// Processes this element and all child elements into an XmlWriter.
39586 /// </summary>
39587 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
39588 public virtual void OutputXml(XmlWriter writer)
39589 {
39590 if ((null == writer))
39591 {
39592 throw new ArgumentNullException("writer");
39593 }
39594 writer.WriteStartElement("Directory", "http://wixtoolset.org/schemas/v4/wxs");
39595 if (this.idFieldSet)
39596 {
39597 writer.WriteAttributeString("Id", this.idField);
39598 }
39599 if (this.componentGuidGenerationSeedFieldSet)
39600 {
39601 writer.WriteAttributeString("ComponentGuidGenerationSeed", this.componentGuidGenerationSeedField);
39602 }
39603 if (this.diskIdFieldSet)
39604 {
39605 writer.WriteAttributeString("DiskId", this.diskIdField);
39606 }
39607 if (this.fileSourceFieldSet)
39608 {
39609 writer.WriteAttributeString("FileSource", this.fileSourceField);
39610 }
39611 if (this.nameFieldSet)
39612 {
39613 writer.WriteAttributeString("Name", this.nameField);
39614 }
39615 if (this.shortNameFieldSet)
39616 {
39617 writer.WriteAttributeString("ShortName", this.shortNameField);
39618 }
39619 if (this.shortSourceNameFieldSet)
39620 {
39621 writer.WriteAttributeString("ShortSourceName", this.shortSourceNameField);
39622 }
39623 if (this.sourceNameFieldSet)
39624 {
39625 writer.WriteAttributeString("SourceName", this.sourceNameField);
39626 }
39627 if (this.srcFieldSet)
39628 {
39629 writer.WriteAttributeString("src", this.srcField);
39630 }
39631 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
39632 {
39633 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
39634 childElement.OutputXml(writer);
39635 }
39636 writer.WriteEndElement();
39637 }
39638
39639 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
39640 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
39641 void ISetAttributes.SetAttribute(string name, string value)
39642 {
39643 if (String.IsNullOrEmpty(name))
39644 {
39645 throw new ArgumentNullException("name");
39646 }
39647 if (("Id" == name))
39648 {
39649 this.idField = value;
39650 this.idFieldSet = true;
39651 }
39652 if (("ComponentGuidGenerationSeed" == name))
39653 {
39654 this.componentGuidGenerationSeedField = value;
39655 this.componentGuidGenerationSeedFieldSet = true;
39656 }
39657 if (("DiskId" == name))
39658 {
39659 this.diskIdField = value;
39660 this.diskIdFieldSet = true;
39661 }
39662 if (("FileSource" == name))
39663 {
39664 this.fileSourceField = value;
39665 this.fileSourceFieldSet = true;
39666 }
39667 if (("Name" == name))
39668 {
39669 this.nameField = value;
39670 this.nameFieldSet = true;
39671 }
39672 if (("ShortName" == name))
39673 {
39674 this.shortNameField = value;
39675 this.shortNameFieldSet = true;
39676 }
39677 if (("ShortSourceName" == name))
39678 {
39679 this.shortSourceNameField = value;
39680 this.shortSourceNameFieldSet = true;
39681 }
39682 if (("SourceName" == name))
39683 {
39684 this.sourceNameField = value;
39685 this.sourceNameFieldSet = true;
39686 }
39687 if (("src" == name))
39688 {
39689 this.srcField = value;
39690 this.srcFieldSet = true;
39691 }
39692 }
39693 }
39694
39695 /// <summary>
39696 /// Create a reference to a Directory element in another Fragment.
39697 /// </summary>
39698 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
39699 public class DirectoryRef : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
39700 {
39701
39702 private ElementCollection children;
39703
39704 private string idField;
39705
39706 private bool idFieldSet;
39707
39708 private string diskIdField;
39709
39710 private bool diskIdFieldSet;
39711
39712 private string fileSourceField;
39713
39714 private bool fileSourceFieldSet;
39715
39716 private string srcField;
39717
39718 private bool srcFieldSet;
39719
39720 private ISchemaElement parentElement;
39721
39722 public DirectoryRef()
39723 {
39724 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
39725 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component)));
39726 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Directory)));
39727 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Merge)));
39728 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
39729 this.children = childCollection0;
39730 }
39731
39732 public virtual IEnumerable Children
39733 {
39734 get
39735 {
39736 return this.children;
39737 }
39738 }
39739
39740 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
39741 public virtual IEnumerable this[System.Type childType]
39742 {
39743 get
39744 {
39745 return this.children.Filter(childType);
39746 }
39747 }
39748
39749 /// <summary>
39750 /// The identifier of the Directory element to reference.
39751 /// </summary>
39752 public string Id
39753 {
39754 get
39755 {
39756 return this.idField;
39757 }
39758 set
39759 {
39760 this.idFieldSet = true;
39761 this.idField = value;
39762 }
39763 }
39764
39765 /// <summary>
39766 /// Sets the default disk identifier for the files contained in this directory.
39767 /// This attribute's value may be overridden by a child Component, Directory,
39768 /// Merge or File element. See the File or Merge elements' DiskId attribute for
39769 /// more information.
39770 /// </summary>
39771 public string DiskId
39772 {
39773 get
39774 {
39775 return this.diskIdField;
39776 }
39777 set
39778 {
39779 this.diskIdFieldSet = true;
39780 this.diskIdField = value;
39781 }
39782 }
39783
39784 /// <summary>
39785 /// Used to set the file system source for this DirectoryRef's child elements. For more information, see
39786 /// </summary>
39787 public string FileSource
39788 {
39789 get
39790 {
39791 return this.fileSourceField;
39792 }
39793 set
39794 {
39795 this.fileSourceFieldSet = true;
39796 this.fileSourceField = value;
39797 }
39798 }
39799
39800 [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
39801 public string src
39802 {
39803 get
39804 {
39805 return this.srcField;
39806 }
39807 set
39808 {
39809 this.srcFieldSet = true;
39810 this.srcField = value;
39811 }
39812 }
39813
39814 public virtual ISchemaElement ParentElement
39815 {
39816 get
39817 {
39818 return this.parentElement;
39819 }
39820 set
39821 {
39822 this.parentElement = value;
39823 }
39824 }
39825
39826 public virtual void AddChild(ISchemaElement child)
39827 {
39828 if ((null == child))
39829 {
39830 throw new ArgumentNullException("child");
39831 }
39832 this.children.AddElement(child);
39833 child.ParentElement = this;
39834 }
39835
39836 public virtual void RemoveChild(ISchemaElement child)
39837 {
39838 if ((null == child))
39839 {
39840 throw new ArgumentNullException("child");
39841 }
39842 this.children.RemoveElement(child);
39843 child.ParentElement = null;
39844 }
39845
39846 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
39847 ISchemaElement ICreateChildren.CreateChild(string childName)
39848 {
39849 if (String.IsNullOrEmpty(childName))
39850 {
39851 throw new ArgumentNullException("childName");
39852 }
39853 ISchemaElement childValue = null;
39854 if (("Component" == childName))
39855 {
39856 childValue = new Component();
39857 }
39858 if (("Directory" == childName))
39859 {
39860 childValue = new Directory();
39861 }
39862 if (("Merge" == childName))
39863 {
39864 childValue = new Merge();
39865 }
39866 if ((null == childValue))
39867 {
39868 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
39869 }
39870 return childValue;
39871 }
39872
39873 /// <summary>
39874 /// Processes this element and all child elements into an XmlWriter.
39875 /// </summary>
39876 public virtual void OutputXml(XmlWriter writer)
39877 {
39878 if ((null == writer))
39879 {
39880 throw new ArgumentNullException("writer");
39881 }
39882 writer.WriteStartElement("DirectoryRef", "http://wixtoolset.org/schemas/v4/wxs");
39883 if (this.idFieldSet)
39884 {
39885 writer.WriteAttributeString("Id", this.idField);
39886 }
39887 if (this.diskIdFieldSet)
39888 {
39889 writer.WriteAttributeString("DiskId", this.diskIdField);
39890 }
39891 if (this.fileSourceFieldSet)
39892 {
39893 writer.WriteAttributeString("FileSource", this.fileSourceField);
39894 }
39895 if (this.srcFieldSet)
39896 {
39897 writer.WriteAttributeString("src", this.srcField);
39898 }
39899 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
39900 {
39901 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
39902 childElement.OutputXml(writer);
39903 }
39904 writer.WriteEndElement();
39905 }
39906
39907 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
39908 void ISetAttributes.SetAttribute(string name, string value)
39909 {
39910 if (String.IsNullOrEmpty(name))
39911 {
39912 throw new ArgumentNullException("name");
39913 }
39914 if (("Id" == name))
39915 {
39916 this.idField = value;
39917 this.idFieldSet = true;
39918 }
39919 if (("DiskId" == name))
39920 {
39921 this.diskIdField = value;
39922 this.diskIdFieldSet = true;
39923 }
39924 if (("FileSource" == name))
39925 {
39926 this.fileSourceField = value;
39927 this.fileSourceFieldSet = true;
39928 }
39929 if (("src" == name))
39930 {
39931 this.srcField = value;
39932 this.srcFieldSet = true;
39933 }
39934 }
39935 }
39936
39937 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
39938 public class UpgradeVersion : ISchemaElement, ISetAttributes
39939 {
39940
39941 private string minimumField;
39942
39943 private bool minimumFieldSet;
39944
39945 private string maximumField;
39946
39947 private bool maximumFieldSet;
39948
39949 private string languageField;
39950
39951 private bool languageFieldSet;
39952
39953 private string removeFeaturesField;
39954
39955 private bool removeFeaturesFieldSet;
39956
39957 private string propertyField;
39958
39959 private bool propertyFieldSet;
39960
39961 private YesNoType migrateFeaturesField;
39962
39963 private bool migrateFeaturesFieldSet;
39964
39965 private YesNoType onlyDetectField;
39966
39967 private bool onlyDetectFieldSet;
39968
39969 private YesNoType ignoreRemoveFailureField;
39970
39971 private bool ignoreRemoveFailureFieldSet;
39972
39973 private YesNoType includeMinimumField;
39974
39975 private bool includeMinimumFieldSet;
39976
39977 private YesNoType includeMaximumField;
39978
39979 private bool includeMaximumFieldSet;
39980
39981 private YesNoType excludeLanguagesField;
39982
39983 private bool excludeLanguagesFieldSet;
39984
39985 private string contentField;
39986
39987 private bool contentFieldSet;
39988
39989 private ISchemaElement parentElement;
39990
39991 /// <summary>
39992 /// Specifies the lower bound on the range of product versions to be detected by FindRelatedProducts.
39993 /// </summary>
39994 public string Minimum
39995 {
39996 get
39997 {
39998 return this.minimumField;
39999 }
40000 set
40001 {
40002 this.minimumFieldSet = true;
40003 this.minimumField = value;
40004 }
40005 }
40006
40007 /// <summary>
40008 /// Specifies the upper boundary of the range of product versions detected by FindRelatedProducts.
40009 /// </summary>
40010 public string Maximum
40011 {
40012 get
40013 {
40014 return this.maximumField;
40015 }
40016 set
40017 {
40018 this.maximumFieldSet = true;
40019 this.maximumField = value;
40020 }
40021 }
40022
40023 /// <summary>
40024 /// 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.
40025 /// </summary>
40026 public string Language
40027 {
40028 get
40029 {
40030 return this.languageField;
40031 }
40032 set
40033 {
40034 this.languageFieldSet = true;
40035 this.languageField = value;
40036 }
40037 }
40038
40039 /// <summary>
40040 /// 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.
40041 /// </summary>
40042 public string RemoveFeatures
40043 {
40044 get
40045 {
40046 return this.removeFeaturesField;
40047 }
40048 set
40049 {
40050 this.removeFeaturesFieldSet = true;
40051 this.removeFeaturesField = value;
40052 }
40053 }
40054
40055 /// <summary>
40056 /// 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
40057 /// </summary>
40058 public string Property
40059 {
40060 get
40061 {
40062 return this.propertyField;
40063 }
40064 set
40065 {
40066 this.propertyFieldSet = true;
40067 this.propertyField = value;
40068 }
40069 }
40070
40071 /// <summary>
40072 /// Set to "yes" to migrate feature states from upgraded products by enabling the logic in the MigrateFeatureStates action.
40073 /// </summary>
40074 public YesNoType MigrateFeatures
40075 {
40076 get
40077 {
40078 return this.migrateFeaturesField;
40079 }
40080 set
40081 {
40082 this.migrateFeaturesFieldSet = true;
40083 this.migrateFeaturesField = value;
40084 }
40085 }
40086
40087 /// <summary>
40088 /// Set to "yes" to detect products and applications but do not uninstall.
40089 /// </summary>
40090 public YesNoType OnlyDetect
40091 {
40092 get
40093 {
40094 return this.onlyDetectField;
40095 }
40096 set
40097 {
40098 this.onlyDetectFieldSet = true;
40099 this.onlyDetectField = value;
40100 }
40101 }
40102
40103 /// <summary>
40104 /// Set to "yes" to continue installation upon failure to remove a product or application.
40105 /// </summary>
40106 public YesNoType IgnoreRemoveFailure
40107 {
40108 get
40109 {
40110 return this.ignoreRemoveFailureField;
40111 }
40112 set
40113 {
40114 this.ignoreRemoveFailureFieldSet = true;
40115 this.ignoreRemoveFailureField = value;
40116 }
40117 }
40118
40119 /// <summary>
40120 /// Set to "no" to make the range of versions detected exclude the value specified in Minimum. This attribute is "yes" by default.
40121 /// </summary>
40122 public YesNoType IncludeMinimum
40123 {
40124 get
40125 {
40126 return this.includeMinimumField;
40127 }
40128 set
40129 {
40130 this.includeMinimumFieldSet = true;
40131 this.includeMinimumField = value;
40132 }
40133 }
40134
40135 /// <summary>
40136 /// Set to "yes" to make the range of versions detected include the value specified in Maximum.
40137 /// </summary>
40138 public YesNoType IncludeMaximum
40139 {
40140 get
40141 {
40142 return this.includeMaximumField;
40143 }
40144 set
40145 {
40146 this.includeMaximumFieldSet = true;
40147 this.includeMaximumField = value;
40148 }
40149 }
40150
40151 /// <summary>
40152 /// Set to "yes" to detect all languages, excluding the languages listed in the Language attribute.
40153 /// </summary>
40154 public YesNoType ExcludeLanguages
40155 {
40156 get
40157 {
40158 return this.excludeLanguagesField;
40159 }
40160 set
40161 {
40162 this.excludeLanguagesFieldSet = true;
40163 this.excludeLanguagesField = value;
40164 }
40165 }
40166
40167 public string Content
40168 {
40169 get
40170 {
40171 return this.contentField;
40172 }
40173 set
40174 {
40175 this.contentFieldSet = true;
40176 this.contentField = value;
40177 }
40178 }
40179
40180 public virtual ISchemaElement ParentElement
40181 {
40182 get
40183 {
40184 return this.parentElement;
40185 }
40186 set
40187 {
40188 this.parentElement = value;
40189 }
40190 }
40191
40192 /// <summary>
40193 /// Processes this element and all child elements into an XmlWriter.
40194 /// </summary>
40195 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
40196 public virtual void OutputXml(XmlWriter writer)
40197 {
40198 if ((null == writer))
40199 {
40200 throw new ArgumentNullException("writer");
40201 }
40202 writer.WriteStartElement("UpgradeVersion", "http://wixtoolset.org/schemas/v4/wxs");
40203 if (this.minimumFieldSet)
40204 {
40205 writer.WriteAttributeString("Minimum", this.minimumField);
40206 }
40207 if (this.maximumFieldSet)
40208 {
40209 writer.WriteAttributeString("Maximum", this.maximumField);
40210 }
40211 if (this.languageFieldSet)
40212 {
40213 writer.WriteAttributeString("Language", this.languageField);
40214 }
40215 if (this.removeFeaturesFieldSet)
40216 {
40217 writer.WriteAttributeString("RemoveFeatures", this.removeFeaturesField);
40218 }
40219 if (this.propertyFieldSet)
40220 {
40221 writer.WriteAttributeString("Property", this.propertyField);
40222 }
40223 if (this.migrateFeaturesFieldSet)
40224 {
40225 if ((this.migrateFeaturesField == YesNoType.no))
40226 {
40227 writer.WriteAttributeString("MigrateFeatures", "no");
40228 }
40229 if ((this.migrateFeaturesField == YesNoType.yes))
40230 {
40231 writer.WriteAttributeString("MigrateFeatures", "yes");
40232 }
40233 }
40234 if (this.onlyDetectFieldSet)
40235 {
40236 if ((this.onlyDetectField == YesNoType.no))
40237 {
40238 writer.WriteAttributeString("OnlyDetect", "no");
40239 }
40240 if ((this.onlyDetectField == YesNoType.yes))
40241 {
40242 writer.WriteAttributeString("OnlyDetect", "yes");
40243 }
40244 }
40245 if (this.ignoreRemoveFailureFieldSet)
40246 {
40247 if ((this.ignoreRemoveFailureField == YesNoType.no))
40248 {
40249 writer.WriteAttributeString("IgnoreRemoveFailure", "no");
40250 }
40251 if ((this.ignoreRemoveFailureField == YesNoType.yes))
40252 {
40253 writer.WriteAttributeString("IgnoreRemoveFailure", "yes");
40254 }
40255 }
40256 if (this.includeMinimumFieldSet)
40257 {
40258 if ((this.includeMinimumField == YesNoType.no))
40259 {
40260 writer.WriteAttributeString("IncludeMinimum", "no");
40261 }
40262 if ((this.includeMinimumField == YesNoType.yes))
40263 {
40264 writer.WriteAttributeString("IncludeMinimum", "yes");
40265 }
40266 }
40267 if (this.includeMaximumFieldSet)
40268 {
40269 if ((this.includeMaximumField == YesNoType.no))
40270 {
40271 writer.WriteAttributeString("IncludeMaximum", "no");
40272 }
40273 if ((this.includeMaximumField == YesNoType.yes))
40274 {
40275 writer.WriteAttributeString("IncludeMaximum", "yes");
40276 }
40277 }
40278 if (this.excludeLanguagesFieldSet)
40279 {
40280 if ((this.excludeLanguagesField == YesNoType.no))
40281 {
40282 writer.WriteAttributeString("ExcludeLanguages", "no");
40283 }
40284 if ((this.excludeLanguagesField == YesNoType.yes))
40285 {
40286 writer.WriteAttributeString("ExcludeLanguages", "yes");
40287 }
40288 }
40289 if (this.contentFieldSet)
40290 {
40291 writer.WriteString(this.contentField);
40292 }
40293 writer.WriteEndElement();
40294 }
40295
40296 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
40297 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
40298 void ISetAttributes.SetAttribute(string name, string value)
40299 {
40300 if (String.IsNullOrEmpty(name))
40301 {
40302 throw new ArgumentNullException("name");
40303 }
40304 if (("Minimum" == name))
40305 {
40306 this.minimumField = value;
40307 this.minimumFieldSet = true;
40308 }
40309 if (("Maximum" == name))
40310 {
40311 this.maximumField = value;
40312 this.maximumFieldSet = true;
40313 }
40314 if (("Language" == name))
40315 {
40316 this.languageField = value;
40317 this.languageFieldSet = true;
40318 }
40319 if (("RemoveFeatures" == name))
40320 {
40321 this.removeFeaturesField = value;
40322 this.removeFeaturesFieldSet = true;
40323 }
40324 if (("Property" == name))
40325 {
40326 this.propertyField = value;
40327 this.propertyFieldSet = true;
40328 }
40329 if (("MigrateFeatures" == name))
40330 {
40331 this.migrateFeaturesField = Enums.ParseYesNoType(value);
40332 this.migrateFeaturesFieldSet = true;
40333 }
40334 if (("OnlyDetect" == name))
40335 {
40336 this.onlyDetectField = Enums.ParseYesNoType(value);
40337 this.onlyDetectFieldSet = true;
40338 }
40339 if (("IgnoreRemoveFailure" == name))
40340 {
40341 this.ignoreRemoveFailureField = Enums.ParseYesNoType(value);
40342 this.ignoreRemoveFailureFieldSet = true;
40343 }
40344 if (("IncludeMinimum" == name))
40345 {
40346 this.includeMinimumField = Enums.ParseYesNoType(value);
40347 this.includeMinimumFieldSet = true;
40348 }
40349 if (("IncludeMaximum" == name))
40350 {
40351 this.includeMaximumField = Enums.ParseYesNoType(value);
40352 this.includeMaximumFieldSet = true;
40353 }
40354 if (("ExcludeLanguages" == name))
40355 {
40356 this.excludeLanguagesField = Enums.ParseYesNoType(value);
40357 this.excludeLanguagesFieldSet = true;
40358 }
40359 if (("Content" == name))
40360 {
40361 this.contentField = value;
40362 this.contentFieldSet = true;
40363 }
40364 }
40365 }
40366
40367 /// <summary>
40368 /// Upgrade info for a particular UpgradeCode
40369 /// </summary>
40370 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
40371 public class Upgrade : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
40372 {
40373
40374 private ElementCollection children;
40375
40376 private string idField;
40377
40378 private bool idFieldSet;
40379
40380 private ISchemaElement parentElement;
40381
40382 public Upgrade()
40383 {
40384 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
40385 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UpgradeVersion)));
40386 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Property)));
40387 this.children = childCollection0;
40388 }
40389
40390 public virtual IEnumerable Children
40391 {
40392 get
40393 {
40394 return this.children;
40395 }
40396 }
40397
40398 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
40399 public virtual IEnumerable this[System.Type childType]
40400 {
40401 get
40402 {
40403 return this.children.Filter(childType);
40404 }
40405 }
40406
40407 /// <summary>
40408 /// This value specifies the upgrade code for the products that are to be detected by the FindRelatedProducts action.
40409 /// </summary>
40410 public string Id
40411 {
40412 get
40413 {
40414 return this.idField;
40415 }
40416 set
40417 {
40418 this.idFieldSet = true;
40419 this.idField = value;
40420 }
40421 }
40422
40423 public virtual ISchemaElement ParentElement
40424 {
40425 get
40426 {
40427 return this.parentElement;
40428 }
40429 set
40430 {
40431 this.parentElement = value;
40432 }
40433 }
40434
40435 public virtual void AddChild(ISchemaElement child)
40436 {
40437 if ((null == child))
40438 {
40439 throw new ArgumentNullException("child");
40440 }
40441 this.children.AddElement(child);
40442 child.ParentElement = this;
40443 }
40444
40445 public virtual void RemoveChild(ISchemaElement child)
40446 {
40447 if ((null == child))
40448 {
40449 throw new ArgumentNullException("child");
40450 }
40451 this.children.RemoveElement(child);
40452 child.ParentElement = null;
40453 }
40454
40455 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
40456 ISchemaElement ICreateChildren.CreateChild(string childName)
40457 {
40458 if (String.IsNullOrEmpty(childName))
40459 {
40460 throw new ArgumentNullException("childName");
40461 }
40462 ISchemaElement childValue = null;
40463 if (("UpgradeVersion" == childName))
40464 {
40465 childValue = new UpgradeVersion();
40466 }
40467 if (("Property" == childName))
40468 {
40469 childValue = new Property();
40470 }
40471 if ((null == childValue))
40472 {
40473 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
40474 }
40475 return childValue;
40476 }
40477
40478 /// <summary>
40479 /// Processes this element and all child elements into an XmlWriter.
40480 /// </summary>
40481 public virtual void OutputXml(XmlWriter writer)
40482 {
40483 if ((null == writer))
40484 {
40485 throw new ArgumentNullException("writer");
40486 }
40487 writer.WriteStartElement("Upgrade", "http://wixtoolset.org/schemas/v4/wxs");
40488 if (this.idFieldSet)
40489 {
40490 writer.WriteAttributeString("Id", this.idField);
40491 }
40492 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
40493 {
40494 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
40495 childElement.OutputXml(writer);
40496 }
40497 writer.WriteEndElement();
40498 }
40499
40500 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
40501 void ISetAttributes.SetAttribute(string name, string value)
40502 {
40503 if (String.IsNullOrEmpty(name))
40504 {
40505 throw new ArgumentNullException("name");
40506 }
40507 if (("Id" == name))
40508 {
40509 this.idField = value;
40510 this.idFieldSet = true;
40511 }
40512 }
40513 }
40514
40515 /// <summary>
40516 /// A feature for the Feature table. Features are the smallest installable unit. See msi.chm for more
40517 /// detailed information on the myriad installation options for a feature.
40518 /// </summary>
40519 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
40520 public class Feature : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
40521 {
40522
40523 private ElementCollection children;
40524
40525 private string idField;
40526
40527 private bool idFieldSet;
40528
40529 private AbsentType absentField;
40530
40531 private bool absentFieldSet;
40532
40533 private AllowAdvertiseType allowAdvertiseField;
40534
40535 private bool allowAdvertiseFieldSet;
40536
40537 private string configurableDirectoryField;
40538
40539 private bool configurableDirectoryFieldSet;
40540
40541 private string descriptionField;
40542
40543 private bool descriptionFieldSet;
40544
40545 private string displayField;
40546
40547 private bool displayFieldSet;
40548
40549 private InstallDefaultType installDefaultField;
40550
40551 private bool installDefaultFieldSet;
40552
40553 private int levelField;
40554
40555 private bool levelFieldSet;
40556
40557 private string titleField;
40558
40559 private bool titleFieldSet;
40560
40561 private TypicalDefaultType typicalDefaultField;
40562
40563 private bool typicalDefaultFieldSet;
40564
40565 private ISchemaElement parentElement;
40566
40567 public Feature()
40568 {
40569 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
40570 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component)));
40571 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroupRef)));
40572 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef)));
40573 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Condition)));
40574 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Feature)));
40575 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroupRef)));
40576 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef)));
40577 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MergeRef)));
40578 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
40579 this.children = childCollection0;
40580 }
40581
40582 public virtual IEnumerable Children
40583 {
40584 get
40585 {
40586 return this.children;
40587 }
40588 }
40589
40590 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
40591 public virtual IEnumerable this[System.Type childType]
40592 {
40593 get
40594 {
40595 return this.children.Filter(childType);
40596 }
40597 }
40598
40599 /// <summary>
40600 /// Unique identifier of the feature.
40601 /// </summary>
40602 public string Id
40603 {
40604 get
40605 {
40606 return this.idField;
40607 }
40608 set
40609 {
40610 this.idFieldSet = true;
40611 this.idField = value;
40612 }
40613 }
40614
40615 /// <summary>
40616 /// This attribute determines if a user will have the option to set a feature to absent in the user interface.
40617 /// </summary>
40618 public AbsentType Absent
40619 {
40620 get
40621 {
40622 return this.absentField;
40623 }
40624 set
40625 {
40626 this.absentFieldSet = true;
40627 this.absentField = value;
40628 }
40629 }
40630
40631 /// <summary>
40632 /// This attribute determines the possible advertise states for this feature.
40633 /// </summary>
40634 public AllowAdvertiseType AllowAdvertise
40635 {
40636 get
40637 {
40638 return this.allowAdvertiseField;
40639 }
40640 set
40641 {
40642 this.allowAdvertiseFieldSet = true;
40643 this.allowAdvertiseField = value;
40644 }
40645 }
40646
40647 /// <summary>
40648 /// Specify the Id of a Directory that can be configured by the user at installation time. This identifier
40649 /// must be a public property and therefore completely uppercase.
40650 /// </summary>
40651 public string ConfigurableDirectory
40652 {
40653 get
40654 {
40655 return this.configurableDirectoryField;
40656 }
40657 set
40658 {
40659 this.configurableDirectoryFieldSet = true;
40660 this.configurableDirectoryField = value;
40661 }
40662 }
40663
40664 /// <summary>
40665 /// Longer string of text describing the feature. This localizable string is displayed by the
40666 /// Text Control of the Selection Dialog.
40667 /// </summary>
40668 public string Description
40669 {
40670 get
40671 {
40672 return this.descriptionField;
40673 }
40674 set
40675 {
40676 this.descriptionFieldSet = true;
40677 this.descriptionField = value;
40678 }
40679 }
40680
40681 /// <summary>
40682 /// Determines the initial display of this feature in the feature tree.
40683 /// This attribute's value should be one of the following:
40684 /// </summary>
40685 public string Display
40686 {
40687 get
40688 {
40689 return this.displayField;
40690 }
40691 set
40692 {
40693 this.displayFieldSet = true;
40694 this.displayField = value;
40695 }
40696 }
40697
40698 /// <summary>
40699 /// This attribute determines the default install/run location of a feature. This attribute cannot be specified
40700 /// if the value of the FollowParent attribute is 'yes' since that would ask the installer to force this feature
40701 /// to follow the parent installation state and simultaneously favor a particular installation state just for this feature.
40702 /// </summary>
40703 public InstallDefaultType InstallDefault
40704 {
40705 get
40706 {
40707 return this.installDefaultField;
40708 }
40709 set
40710 {
40711 this.installDefaultFieldSet = true;
40712 this.installDefaultField = value;
40713 }
40714 }
40715
40716 /// <summary>
40717 /// Sets the install level of this feature. A value of 0 will disable the feature. Processing the
40718 /// Condition Table can modify the level value (this is set via the Condition child element). The
40719 /// default value is "1".
40720 /// </summary>
40721 public int Level
40722 {
40723 get
40724 {
40725 return this.levelField;
40726 }
40727 set
40728 {
40729 this.levelFieldSet = true;
40730 this.levelField = value;
40731 }
40732 }
40733
40734 /// <summary>
40735 /// Short string of text identifying the feature. This string is listed as an item by the
40736 /// SelectionTree control of the Selection Dialog.
40737 /// </summary>
40738 public string Title
40739 {
40740 get
40741 {
40742 return this.titleField;
40743 }
40744 set
40745 {
40746 this.titleFieldSet = true;
40747 this.titleField = value;
40748 }
40749 }
40750
40751 /// <summary>
40752 /// This attribute determines the default advertise state of the feature.
40753 /// </summary>
40754 public TypicalDefaultType TypicalDefault
40755 {
40756 get
40757 {
40758 return this.typicalDefaultField;
40759 }
40760 set
40761 {
40762 this.typicalDefaultFieldSet = true;
40763 this.typicalDefaultField = value;
40764 }
40765 }
40766
40767 public virtual ISchemaElement ParentElement
40768 {
40769 get
40770 {
40771 return this.parentElement;
40772 }
40773 set
40774 {
40775 this.parentElement = value;
40776 }
40777 }
40778
40779 public virtual void AddChild(ISchemaElement child)
40780 {
40781 if ((null == child))
40782 {
40783 throw new ArgumentNullException("child");
40784 }
40785 this.children.AddElement(child);
40786 child.ParentElement = this;
40787 }
40788
40789 public virtual void RemoveChild(ISchemaElement child)
40790 {
40791 if ((null == child))
40792 {
40793 throw new ArgumentNullException("child");
40794 }
40795 this.children.RemoveElement(child);
40796 child.ParentElement = null;
40797 }
40798
40799 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
40800 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
40801 ISchemaElement ICreateChildren.CreateChild(string childName)
40802 {
40803 if (String.IsNullOrEmpty(childName))
40804 {
40805 throw new ArgumentNullException("childName");
40806 }
40807 ISchemaElement childValue = null;
40808 if (("Component" == childName))
40809 {
40810 childValue = new Component();
40811 }
40812 if (("ComponentGroupRef" == childName))
40813 {
40814 childValue = new ComponentGroupRef();
40815 }
40816 if (("ComponentRef" == childName))
40817 {
40818 childValue = new ComponentRef();
40819 }
40820 if (("Condition" == childName))
40821 {
40822 childValue = new Condition();
40823 }
40824 if (("Feature" == childName))
40825 {
40826 childValue = new Feature();
40827 }
40828 if (("FeatureGroupRef" == childName))
40829 {
40830 childValue = new FeatureGroupRef();
40831 }
40832 if (("FeatureRef" == childName))
40833 {
40834 childValue = new FeatureRef();
40835 }
40836 if (("MergeRef" == childName))
40837 {
40838 childValue = new MergeRef();
40839 }
40840 if ((null == childValue))
40841 {
40842 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
40843 }
40844 return childValue;
40845 }
40846
40847 /// <summary>
40848 /// Parses a AbsentType from a string.
40849 /// </summary>
40850 public static AbsentType ParseAbsentType(string value)
40851 {
40852 AbsentType parsedValue;
40853 Feature.TryParseAbsentType(value, out parsedValue);
40854 return parsedValue;
40855 }
40856
40857 /// <summary>
40858 /// Tries to parse a AbsentType from a string.
40859 /// </summary>
40860 public static bool TryParseAbsentType(string value, out AbsentType parsedValue)
40861 {
40862 parsedValue = AbsentType.NotSet;
40863 if (string.IsNullOrEmpty(value))
40864 {
40865 return false;
40866 }
40867 if (("allow" == value))
40868 {
40869 parsedValue = AbsentType.allow;
40870 }
40871 else
40872 {
40873 if (("disallow" == value))
40874 {
40875 parsedValue = AbsentType.disallow;
40876 }
40877 else
40878 {
40879 parsedValue = AbsentType.IllegalValue;
40880 return false;
40881 }
40882 }
40883 return true;
40884 }
40885
40886 /// <summary>
40887 /// Parses a AllowAdvertiseType from a string.
40888 /// </summary>
40889 public static AllowAdvertiseType ParseAllowAdvertiseType(string value)
40890 {
40891 AllowAdvertiseType parsedValue;
40892 Feature.TryParseAllowAdvertiseType(value, out parsedValue);
40893 return parsedValue;
40894 }
40895
40896 /// <summary>
40897 /// Tries to parse a AllowAdvertiseType from a string.
40898 /// </summary>
40899 public static bool TryParseAllowAdvertiseType(string value, out AllowAdvertiseType parsedValue)
40900 {
40901 parsedValue = AllowAdvertiseType.NotSet;
40902 if (string.IsNullOrEmpty(value))
40903 {
40904 return false;
40905 }
40906 if (("no" == value))
40907 {
40908 parsedValue = AllowAdvertiseType.no;
40909 }
40910 else
40911 {
40912 if (("system" == value))
40913 {
40914 parsedValue = AllowAdvertiseType.system;
40915 }
40916 else
40917 {
40918 if (("yes" == value))
40919 {
40920 parsedValue = AllowAdvertiseType.yes;
40921 }
40922 else
40923 {
40924 parsedValue = AllowAdvertiseType.IllegalValue;
40925 return false;
40926 }
40927 }
40928 }
40929 return true;
40930 }
40931
40932 /// <summary>
40933 /// Parses a InstallDefaultType from a string.
40934 /// </summary>
40935 public static InstallDefaultType ParseInstallDefaultType(string value)
40936 {
40937 InstallDefaultType parsedValue;
40938 Feature.TryParseInstallDefaultType(value, out parsedValue);
40939 return parsedValue;
40940 }
40941
40942 /// <summary>
40943 /// Tries to parse a InstallDefaultType from a string.
40944 /// </summary>
40945 public static bool TryParseInstallDefaultType(string value, out InstallDefaultType parsedValue)
40946 {
40947 parsedValue = InstallDefaultType.NotSet;
40948 if (string.IsNullOrEmpty(value))
40949 {
40950 return false;
40951 }
40952 if (("followParent" == value))
40953 {
40954 parsedValue = InstallDefaultType.followParent;
40955 }
40956 else
40957 {
40958 if (("local" == value))
40959 {
40960 parsedValue = InstallDefaultType.local;
40961 }
40962 else
40963 {
40964 if (("source" == value))
40965 {
40966 parsedValue = InstallDefaultType.source;
40967 }
40968 else
40969 {
40970 parsedValue = InstallDefaultType.IllegalValue;
40971 return false;
40972 }
40973 }
40974 }
40975 return true;
40976 }
40977
40978 /// <summary>
40979 /// Parses a TypicalDefaultType from a string.
40980 /// </summary>
40981 public static TypicalDefaultType ParseTypicalDefaultType(string value)
40982 {
40983 TypicalDefaultType parsedValue;
40984 Feature.TryParseTypicalDefaultType(value, out parsedValue);
40985 return parsedValue;
40986 }
40987
40988 /// <summary>
40989 /// Tries to parse a TypicalDefaultType from a string.
40990 /// </summary>
40991 public static bool TryParseTypicalDefaultType(string value, out TypicalDefaultType parsedValue)
40992 {
40993 parsedValue = TypicalDefaultType.NotSet;
40994 if (string.IsNullOrEmpty(value))
40995 {
40996 return false;
40997 }
40998 if (("advertise" == value))
40999 {
41000 parsedValue = TypicalDefaultType.advertise;
41001 }
41002 else
41003 {
41004 if (("install" == value))
41005 {
41006 parsedValue = TypicalDefaultType.install;
41007 }
41008 else
41009 {
41010 parsedValue = TypicalDefaultType.IllegalValue;
41011 return false;
41012 }
41013 }
41014 return true;
41015 }
41016
41017 /// <summary>
41018 /// Processes this element and all child elements into an XmlWriter.
41019 /// </summary>
41020 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
41021 public virtual void OutputXml(XmlWriter writer)
41022 {
41023 if ((null == writer))
41024 {
41025 throw new ArgumentNullException("writer");
41026 }
41027 writer.WriteStartElement("Feature", "http://wixtoolset.org/schemas/v4/wxs");
41028 if (this.idFieldSet)
41029 {
41030 writer.WriteAttributeString("Id", this.idField);
41031 }
41032 if (this.absentFieldSet)
41033 {
41034 if ((this.absentField == AbsentType.allow))
41035 {
41036 writer.WriteAttributeString("Absent", "allow");
41037 }
41038 if ((this.absentField == AbsentType.disallow))
41039 {
41040 writer.WriteAttributeString("Absent", "disallow");
41041 }
41042 }
41043 if (this.allowAdvertiseFieldSet)
41044 {
41045 if ((this.allowAdvertiseField == AllowAdvertiseType.no))
41046 {
41047 writer.WriteAttributeString("AllowAdvertise", "no");
41048 }
41049 if ((this.allowAdvertiseField == AllowAdvertiseType.system))
41050 {
41051 writer.WriteAttributeString("AllowAdvertise", "system");
41052 }
41053 if ((this.allowAdvertiseField == AllowAdvertiseType.yes))
41054 {
41055 writer.WriteAttributeString("AllowAdvertise", "yes");
41056 }
41057 }
41058 if (this.configurableDirectoryFieldSet)
41059 {
41060 writer.WriteAttributeString("ConfigurableDirectory", this.configurableDirectoryField);
41061 }
41062 if (this.descriptionFieldSet)
41063 {
41064 writer.WriteAttributeString("Description", this.descriptionField);
41065 }
41066 if (this.displayFieldSet)
41067 {
41068 writer.WriteAttributeString("Display", this.displayField);
41069 }
41070 if (this.installDefaultFieldSet)
41071 {
41072 if ((this.installDefaultField == InstallDefaultType.followParent))
41073 {
41074 writer.WriteAttributeString("InstallDefault", "followParent");
41075 }
41076 if ((this.installDefaultField == InstallDefaultType.local))
41077 {
41078 writer.WriteAttributeString("InstallDefault", "local");
41079 }
41080 if ((this.installDefaultField == InstallDefaultType.source))
41081 {
41082 writer.WriteAttributeString("InstallDefault", "source");
41083 }
41084 }
41085 if (this.levelFieldSet)
41086 {
41087 writer.WriteAttributeString("Level", this.levelField.ToString(CultureInfo.InvariantCulture));
41088 }
41089 if (this.titleFieldSet)
41090 {
41091 writer.WriteAttributeString("Title", this.titleField);
41092 }
41093 if (this.typicalDefaultFieldSet)
41094 {
41095 if ((this.typicalDefaultField == TypicalDefaultType.advertise))
41096 {
41097 writer.WriteAttributeString("TypicalDefault", "advertise");
41098 }
41099 if ((this.typicalDefaultField == TypicalDefaultType.install))
41100 {
41101 writer.WriteAttributeString("TypicalDefault", "install");
41102 }
41103 }
41104 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
41105 {
41106 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
41107 childElement.OutputXml(writer);
41108 }
41109 writer.WriteEndElement();
41110 }
41111
41112 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
41113 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
41114 void ISetAttributes.SetAttribute(string name, string value)
41115 {
41116 if (String.IsNullOrEmpty(name))
41117 {
41118 throw new ArgumentNullException("name");
41119 }
41120 if (("Id" == name))
41121 {
41122 this.idField = value;
41123 this.idFieldSet = true;
41124 }
41125 if (("Absent" == name))
41126 {
41127 this.absentField = Feature.ParseAbsentType(value);
41128 this.absentFieldSet = true;
41129 }
41130 if (("AllowAdvertise" == name))
41131 {
41132 this.allowAdvertiseField = Feature.ParseAllowAdvertiseType(value);
41133 this.allowAdvertiseFieldSet = true;
41134 }
41135 if (("ConfigurableDirectory" == name))
41136 {
41137 this.configurableDirectoryField = value;
41138 this.configurableDirectoryFieldSet = true;
41139 }
41140 if (("Description" == name))
41141 {
41142 this.descriptionField = value;
41143 this.descriptionFieldSet = true;
41144 }
41145 if (("Display" == name))
41146 {
41147 this.displayField = value;
41148 this.displayFieldSet = true;
41149 }
41150 if (("InstallDefault" == name))
41151 {
41152 this.installDefaultField = Feature.ParseInstallDefaultType(value);
41153 this.installDefaultFieldSet = true;
41154 }
41155 if (("Level" == name))
41156 {
41157 this.levelField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
41158 this.levelFieldSet = true;
41159 }
41160 if (("Title" == name))
41161 {
41162 this.titleField = value;
41163 this.titleFieldSet = true;
41164 }
41165 if (("TypicalDefault" == name))
41166 {
41167 this.typicalDefaultField = Feature.ParseTypicalDefaultType(value);
41168 this.typicalDefaultFieldSet = true;
41169 }
41170 }
41171
41172 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
41173 public enum AbsentType
41174 {
41175
41176 IllegalValue = int.MaxValue,
41177
41178 NotSet = -1,
41179
41180 /// <summary>
41181 /// Allows the user interface to display an option to change the feature state to Absent.
41182 /// </summary>
41183 allow,
41184
41185 /// <summary>
41186 /// Prevents the user interface from displaying an option to change the feature state
41187 /// to Absent by setting the msidbFeatureAttributesUIDisallowAbsent attribute. This will force the feature
41188 /// to the installation state, whether or not the feature is visible in the UI.
41189 /// </summary>
41190 disallow,
41191 }
41192
41193 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
41194 public enum AllowAdvertiseType
41195 {
41196
41197 IllegalValue = int.MaxValue,
41198
41199 NotSet = -1,
41200
41201 /// <summary>
41202 /// Prevents this feature from being advertised by setting the msidbFeatureAttributesDisallowAdvertise attribute.
41203 /// </summary>
41204 no,
41205
41206 /// <summary>
41207 /// Prevents advertising for this feature if the operating system shell does not support Windows Installer
41208 /// descriptors by setting the msidbFeatureAttributesNoUnsupportedAdvertise attribute.
41209 /// </summary>
41210 system,
41211
41212 /// <summary>
41213 /// Allows the feature to be advertised.
41214 /// </summary>
41215 yes,
41216 }
41217
41218 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
41219 public enum InstallDefaultType
41220 {
41221
41222 IllegalValue = int.MaxValue,
41223
41224 NotSet = -1,
41225
41226 /// <summary>
41227 /// Forces the feature to follow the same installation state as its parent feature.
41228 /// </summary>
41229 followParent,
41230
41231 /// <summary>
41232 /// Favors installing this feature locally by setting the msidbFeatureAttributesFavorLocal attribute.
41233 /// </summary>
41234 local,
41235
41236 /// <summary>
41237 /// Favors running this feature from source by setting the msidbFeatureAttributesFavorSource attribute.
41238 /// </summary>
41239 source,
41240 }
41241
41242 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
41243 public enum TypicalDefaultType
41244 {
41245
41246 IllegalValue = int.MaxValue,
41247
41248 NotSet = -1,
41249
41250 /// <summary>
41251 /// Sets the feature to be advertised by setting the msidbFeatureAttributesFavorAdvertise attribute.
41252 /// This value cannot be set if the value of the AllowAdvertise attribute is 'no' since that would ask the installer to
41253 /// disallow the advertised state for this feature while at the same time favoring it.
41254 /// </summary>
41255 advertise,
41256
41257 /// <summary>
41258 /// Sets the feature to the default non-advertised installation option.
41259 /// </summary>
41260 install,
41261 }
41262 }
41263
41264 /// <summary>
41265 /// Groups together multiple components, features, and merges to be used in other locations.
41266 /// </summary>
41267 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
41268 public class FeatureGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
41269 {
41270
41271 private ElementCollection children;
41272
41273 private string idField;
41274
41275 private bool idFieldSet;
41276
41277 private ISchemaElement parentElement;
41278
41279 public FeatureGroup()
41280 {
41281 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
41282 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component)));
41283 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroupRef)));
41284 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef)));
41285 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Feature)));
41286 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroupRef)));
41287 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef)));
41288 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MergeRef)));
41289 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
41290 this.children = childCollection0;
41291 }
41292
41293 public virtual IEnumerable Children
41294 {
41295 get
41296 {
41297 return this.children;
41298 }
41299 }
41300
41301 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
41302 public virtual IEnumerable this[System.Type childType]
41303 {
41304 get
41305 {
41306 return this.children.Filter(childType);
41307 }
41308 }
41309
41310 /// <summary>
41311 /// Identifier for the FeatureGroup.
41312 /// </summary>
41313 public string Id
41314 {
41315 get
41316 {
41317 return this.idField;
41318 }
41319 set
41320 {
41321 this.idFieldSet = true;
41322 this.idField = value;
41323 }
41324 }
41325
41326 public virtual ISchemaElement ParentElement
41327 {
41328 get
41329 {
41330 return this.parentElement;
41331 }
41332 set
41333 {
41334 this.parentElement = value;
41335 }
41336 }
41337
41338 public virtual void AddChild(ISchemaElement child)
41339 {
41340 if ((null == child))
41341 {
41342 throw new ArgumentNullException("child");
41343 }
41344 this.children.AddElement(child);
41345 child.ParentElement = this;
41346 }
41347
41348 public virtual void RemoveChild(ISchemaElement child)
41349 {
41350 if ((null == child))
41351 {
41352 throw new ArgumentNullException("child");
41353 }
41354 this.children.RemoveElement(child);
41355 child.ParentElement = null;
41356 }
41357
41358 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
41359 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
41360 ISchemaElement ICreateChildren.CreateChild(string childName)
41361 {
41362 if (String.IsNullOrEmpty(childName))
41363 {
41364 throw new ArgumentNullException("childName");
41365 }
41366 ISchemaElement childValue = null;
41367 if (("Component" == childName))
41368 {
41369 childValue = new Component();
41370 }
41371 if (("ComponentGroupRef" == childName))
41372 {
41373 childValue = new ComponentGroupRef();
41374 }
41375 if (("ComponentRef" == childName))
41376 {
41377 childValue = new ComponentRef();
41378 }
41379 if (("Feature" == childName))
41380 {
41381 childValue = new Feature();
41382 }
41383 if (("FeatureGroupRef" == childName))
41384 {
41385 childValue = new FeatureGroupRef();
41386 }
41387 if (("FeatureRef" == childName))
41388 {
41389 childValue = new FeatureRef();
41390 }
41391 if (("MergeRef" == childName))
41392 {
41393 childValue = new MergeRef();
41394 }
41395 if ((null == childValue))
41396 {
41397 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
41398 }
41399 return childValue;
41400 }
41401
41402 /// <summary>
41403 /// Processes this element and all child elements into an XmlWriter.
41404 /// </summary>
41405 public virtual void OutputXml(XmlWriter writer)
41406 {
41407 if ((null == writer))
41408 {
41409 throw new ArgumentNullException("writer");
41410 }
41411 writer.WriteStartElement("FeatureGroup", "http://wixtoolset.org/schemas/v4/wxs");
41412 if (this.idFieldSet)
41413 {
41414 writer.WriteAttributeString("Id", this.idField);
41415 }
41416 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
41417 {
41418 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
41419 childElement.OutputXml(writer);
41420 }
41421 writer.WriteEndElement();
41422 }
41423
41424 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
41425 void ISetAttributes.SetAttribute(string name, string value)
41426 {
41427 if (String.IsNullOrEmpty(name))
41428 {
41429 throw new ArgumentNullException("name");
41430 }
41431 if (("Id" == name))
41432 {
41433 this.idField = value;
41434 this.idFieldSet = true;
41435 }
41436 }
41437 }
41438
41439 /// <summary>
41440 /// Create a reference to a FeatureGroup in another Fragment.
41441 /// </summary>
41442 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
41443 public class FeatureGroupRef : ISchemaElement, ISetAttributes
41444 {
41445
41446 private string idField;
41447
41448 private bool idFieldSet;
41449
41450 private YesNoType ignoreParentField;
41451
41452 private bool ignoreParentFieldSet;
41453
41454 private YesNoType primaryField;
41455
41456 private bool primaryFieldSet;
41457
41458 private ISchemaElement parentElement;
41459
41460 /// <summary>
41461 /// The identifier of the FeatureGroup to reference.
41462 /// </summary>
41463 public string Id
41464 {
41465 get
41466 {
41467 return this.idField;
41468 }
41469 set
41470 {
41471 this.idFieldSet = true;
41472 this.idField = value;
41473 }
41474 }
41475
41476 /// <summary>
41477 /// Normally feature group references that end up nested under a parent element create a
41478 /// connection to that parent. This behavior is undesirable when trying to simply reference
41479 /// to a FeatureGroup in a different Fragment. Specify 'yes' to have this feature group
41480 /// reference not create a connection to its parent. The default is 'no'.
41481 /// </summary>
41482 public YesNoType IgnoreParent
41483 {
41484 get
41485 {
41486 return this.ignoreParentField;
41487 }
41488 set
41489 {
41490 this.ignoreParentFieldSet = true;
41491 this.ignoreParentField = value;
41492 }
41493 }
41494
41495 /// <summary>
41496 /// Set this attribute to 'yes' in order to make the parent feature of this group
41497 /// the primary feature for any components and merges contained in the group.
41498 /// Features may belong to multiple features. By designating a feature as the
41499 /// primary feature of a component or merge, you ensure that whenever a component is
41500 /// selected for install-on-demand (IOD), the primary feature will be the one to install
41501 /// it. This attribute should only be set if a component actually nests under multiple
41502 /// features. If a component nests under only one feature, that feature is the primary
41503 /// feature for the component. You cannot set more than one feature as the primary
41504 /// feature of a given component.
41505 /// </summary>
41506 public YesNoType Primary
41507 {
41508 get
41509 {
41510 return this.primaryField;
41511 }
41512 set
41513 {
41514 this.primaryFieldSet = true;
41515 this.primaryField = value;
41516 }
41517 }
41518
41519 public virtual ISchemaElement ParentElement
41520 {
41521 get
41522 {
41523 return this.parentElement;
41524 }
41525 set
41526 {
41527 this.parentElement = value;
41528 }
41529 }
41530
41531 /// <summary>
41532 /// Processes this element and all child elements into an XmlWriter.
41533 /// </summary>
41534 public virtual void OutputXml(XmlWriter writer)
41535 {
41536 if ((null == writer))
41537 {
41538 throw new ArgumentNullException("writer");
41539 }
41540 writer.WriteStartElement("FeatureGroupRef", "http://wixtoolset.org/schemas/v4/wxs");
41541 if (this.idFieldSet)
41542 {
41543 writer.WriteAttributeString("Id", this.idField);
41544 }
41545 if (this.ignoreParentFieldSet)
41546 {
41547 if ((this.ignoreParentField == YesNoType.no))
41548 {
41549 writer.WriteAttributeString("IgnoreParent", "no");
41550 }
41551 if ((this.ignoreParentField == YesNoType.yes))
41552 {
41553 writer.WriteAttributeString("IgnoreParent", "yes");
41554 }
41555 }
41556 if (this.primaryFieldSet)
41557 {
41558 if ((this.primaryField == YesNoType.no))
41559 {
41560 writer.WriteAttributeString("Primary", "no");
41561 }
41562 if ((this.primaryField == YesNoType.yes))
41563 {
41564 writer.WriteAttributeString("Primary", "yes");
41565 }
41566 }
41567 writer.WriteEndElement();
41568 }
41569
41570 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
41571 void ISetAttributes.SetAttribute(string name, string value)
41572 {
41573 if (String.IsNullOrEmpty(name))
41574 {
41575 throw new ArgumentNullException("name");
41576 }
41577 if (("Id" == name))
41578 {
41579 this.idField = value;
41580 this.idFieldSet = true;
41581 }
41582 if (("IgnoreParent" == name))
41583 {
41584 this.ignoreParentField = Enums.ParseYesNoType(value);
41585 this.ignoreParentFieldSet = true;
41586 }
41587 if (("Primary" == name))
41588 {
41589 this.primaryField = Enums.ParseYesNoType(value);
41590 this.primaryFieldSet = true;
41591 }
41592 }
41593 }
41594
41595 /// <summary>
41596 /// Create a reference to a Feature element in another Fragment.
41597 /// </summary>
41598 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
41599 public class FeatureRef : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
41600 {
41601
41602 private ElementCollection children;
41603
41604 private string idField;
41605
41606 private bool idFieldSet;
41607
41608 private YesNoType ignoreParentField;
41609
41610 private bool ignoreParentFieldSet;
41611
41612 private ISchemaElement parentElement;
41613
41614 public FeatureRef()
41615 {
41616 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
41617 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component)));
41618 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroupRef)));
41619 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef)));
41620 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Feature)));
41621 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef)));
41622 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroup)));
41623 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroupRef)));
41624 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MergeRef)));
41625 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
41626 this.children = childCollection0;
41627 }
41628
41629 public virtual IEnumerable Children
41630 {
41631 get
41632 {
41633 return this.children;
41634 }
41635 }
41636
41637 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
41638 public virtual IEnumerable this[System.Type childType]
41639 {
41640 get
41641 {
41642 return this.children.Filter(childType);
41643 }
41644 }
41645
41646 /// <summary>
41647 /// The identifier of the Feature element to reference.
41648 /// </summary>
41649 public string Id
41650 {
41651 get
41652 {
41653 return this.idField;
41654 }
41655 set
41656 {
41657 this.idFieldSet = true;
41658 this.idField = value;
41659 }
41660 }
41661
41662 /// <summary>
41663 /// Normally feature references that are nested under a parent element create a connection to that
41664 /// parent. This behavior is undesirable when trying to simply reference a Feature in a different
41665 /// Fragment. Specify 'yes' to have this feature reference not create a connection to its parent.
41666 /// The default is 'no'.
41667 /// </summary>
41668 public YesNoType IgnoreParent
41669 {
41670 get
41671 {
41672 return this.ignoreParentField;
41673 }
41674 set
41675 {
41676 this.ignoreParentFieldSet = true;
41677 this.ignoreParentField = value;
41678 }
41679 }
41680
41681 public virtual ISchemaElement ParentElement
41682 {
41683 get
41684 {
41685 return this.parentElement;
41686 }
41687 set
41688 {
41689 this.parentElement = value;
41690 }
41691 }
41692
41693 public virtual void AddChild(ISchemaElement child)
41694 {
41695 if ((null == child))
41696 {
41697 throw new ArgumentNullException("child");
41698 }
41699 this.children.AddElement(child);
41700 child.ParentElement = this;
41701 }
41702
41703 public virtual void RemoveChild(ISchemaElement child)
41704 {
41705 if ((null == child))
41706 {
41707 throw new ArgumentNullException("child");
41708 }
41709 this.children.RemoveElement(child);
41710 child.ParentElement = null;
41711 }
41712
41713 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
41714 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
41715 ISchemaElement ICreateChildren.CreateChild(string childName)
41716 {
41717 if (String.IsNullOrEmpty(childName))
41718 {
41719 throw new ArgumentNullException("childName");
41720 }
41721 ISchemaElement childValue = null;
41722 if (("Component" == childName))
41723 {
41724 childValue = new Component();
41725 }
41726 if (("ComponentGroupRef" == childName))
41727 {
41728 childValue = new ComponentGroupRef();
41729 }
41730 if (("ComponentRef" == childName))
41731 {
41732 childValue = new ComponentRef();
41733 }
41734 if (("Feature" == childName))
41735 {
41736 childValue = new Feature();
41737 }
41738 if (("FeatureRef" == childName))
41739 {
41740 childValue = new FeatureRef();
41741 }
41742 if (("FeatureGroup" == childName))
41743 {
41744 childValue = new FeatureGroup();
41745 }
41746 if (("FeatureGroupRef" == childName))
41747 {
41748 childValue = new FeatureGroupRef();
41749 }
41750 if (("MergeRef" == childName))
41751 {
41752 childValue = new MergeRef();
41753 }
41754 if ((null == childValue))
41755 {
41756 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
41757 }
41758 return childValue;
41759 }
41760
41761 /// <summary>
41762 /// Processes this element and all child elements into an XmlWriter.
41763 /// </summary>
41764 public virtual void OutputXml(XmlWriter writer)
41765 {
41766 if ((null == writer))
41767 {
41768 throw new ArgumentNullException("writer");
41769 }
41770 writer.WriteStartElement("FeatureRef", "http://wixtoolset.org/schemas/v4/wxs");
41771 if (this.idFieldSet)
41772 {
41773 writer.WriteAttributeString("Id", this.idField);
41774 }
41775 if (this.ignoreParentFieldSet)
41776 {
41777 if ((this.ignoreParentField == YesNoType.no))
41778 {
41779 writer.WriteAttributeString("IgnoreParent", "no");
41780 }
41781 if ((this.ignoreParentField == YesNoType.yes))
41782 {
41783 writer.WriteAttributeString("IgnoreParent", "yes");
41784 }
41785 }
41786 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
41787 {
41788 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
41789 childElement.OutputXml(writer);
41790 }
41791 writer.WriteEndElement();
41792 }
41793
41794 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
41795 void ISetAttributes.SetAttribute(string name, string value)
41796 {
41797 if (String.IsNullOrEmpty(name))
41798 {
41799 throw new ArgumentNullException("name");
41800 }
41801 if (("Id" == name))
41802 {
41803 this.idField = value;
41804 this.idFieldSet = true;
41805 }
41806 if (("IgnoreParent" == name))
41807 {
41808 this.ignoreParentField = Enums.ParseYesNoType(value);
41809 this.ignoreParentFieldSet = true;
41810 }
41811 }
41812 }
41813
41814 /// <summary>
41815 /// Media element describes a disk that makes up the source media for the installation.
41816 /// </summary>
41817 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
41818 public class Media : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
41819 {
41820
41821 private ElementCollection children;
41822
41823 private string idField;
41824
41825 private bool idFieldSet;
41826
41827 private string cabinetField;
41828
41829 private bool cabinetFieldSet;
41830
41831 private CompressionLevelType compressionLevelField;
41832
41833 private bool compressionLevelFieldSet;
41834
41835 private string diskPromptField;
41836
41837 private bool diskPromptFieldSet;
41838
41839 private YesNoType embedCabField;
41840
41841 private bool embedCabFieldSet;
41842
41843 private string layoutField;
41844
41845 private bool layoutFieldSet;
41846
41847 private string srcField;
41848
41849 private bool srcFieldSet;
41850
41851 private string volumeLabelField;
41852
41853 private bool volumeLabelFieldSet;
41854
41855 private string sourceField;
41856
41857 private bool sourceFieldSet;
41858
41859 private ISchemaElement parentElement;
41860
41861 public Media()
41862 {
41863 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
41864 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice);
41865 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(DigitalSignature)));
41866 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchBaseline)));
41867 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath)));
41868 childCollection0.AddCollection(childCollection1);
41869 this.children = childCollection0;
41870 }
41871
41872 public virtual IEnumerable Children
41873 {
41874 get
41875 {
41876 return this.children;
41877 }
41878 }
41879
41880 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
41881 public virtual IEnumerable this[System.Type childType]
41882 {
41883 get
41884 {
41885 return this.children.Filter(childType);
41886 }
41887 }
41888
41889 /// <summary>
41890 /// Disk identifier for Media table. This number must be equal to or greater than 1.
41891 /// </summary>
41892 public string Id
41893 {
41894 get
41895 {
41896 return this.idField;
41897 }
41898 set
41899 {
41900 this.idFieldSet = true;
41901 this.idField = value;
41902 }
41903 }
41904
41905 /// <summary>
41906 /// 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.
41907 /// </summary>
41908 public string Cabinet
41909 {
41910 get
41911 {
41912 return this.cabinetField;
41913 }
41914 set
41915 {
41916 this.cabinetFieldSet = true;
41917 this.cabinetField = value;
41918 }
41919 }
41920
41921 /// <summary>
41922 /// Indicates the compression level for the Media's cabinet. This attribute can
41923 /// only be used in conjunction with the Cabinet attribute. The default is 'mszip'.
41924 /// </summary>
41925 public CompressionLevelType CompressionLevel
41926 {
41927 get
41928 {
41929 return this.compressionLevelField;
41930 }
41931 set
41932 {
41933 this.compressionLevelFieldSet = true;
41934 this.compressionLevelField = value;
41935 }
41936 }
41937
41938 /// <summary>
41939 /// 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.
41940 /// </summary>
41941 public string DiskPrompt
41942 {
41943 get
41944 {
41945 return this.diskPromptField;
41946 }
41947 set
41948 {
41949 this.diskPromptFieldSet = true;
41950 this.diskPromptField = value;
41951 }
41952 }
41953
41954 /// <summary>
41955 /// Instructs the binder to embed the cabinet in the product if 'yes'. This attribute can only be specified in conjunction with the Cabinet attribute.
41956 /// </summary>
41957 public YesNoType EmbedCab
41958 {
41959 get
41960 {
41961 return this.embedCabField;
41962 }
41963 set
41964 {
41965 this.embedCabFieldSet = true;
41966 this.embedCabField = value;
41967 }
41968 }
41969
41970 /// <summary>
41971 /// This attribute specifies the root directory for the uncompressed files that
41972 /// are a part of this Media element. By default, the src will be the output
41973 /// directory for the final image. The default value ensures the binder generates
41974 /// an installable image. If a relative path is specified in the src attribute,
41975 /// the value will be appended to the image's output directory. If an absolute
41976 /// path is provided, that path will be used without modification. The latter two
41977 /// options are provided to ease the layout of an image onto multiple medias (CDs/DVDs).
41978 /// </summary>
41979 public string Layout
41980 {
41981 get
41982 {
41983 return this.layoutField;
41984 }
41985 set
41986 {
41987 this.layoutFieldSet = true;
41988 this.layoutField = value;
41989 }
41990 }
41991
41992 [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
41993 public string src
41994 {
41995 get
41996 {
41997 return this.srcField;
41998 }
41999 set
42000 {
42001 this.srcFieldSet = true;
42002 this.srcField = value;
42003 }
42004 }
42005
42006 /// <summary>
42007 /// The label attributed to the volume. This is the volume label returned
42008 /// by the GetVolumeInformation function. If the SourceDir property refers
42009 /// to a removable (floppy or CD-ROM) volume, then this volume label is
42010 /// used to verify that the proper disk is in the drive before attempting
42011 /// to install files. The entry in this column must match the volume label
42012 /// of the physical media.
42013 /// </summary>
42014 public string VolumeLabel
42015 {
42016 get
42017 {
42018 return this.volumeLabelField;
42019 }
42020 set
42021 {
42022 this.volumeLabelFieldSet = true;
42023 this.volumeLabelField = value;
42024 }
42025 }
42026
42027 /// <summary>
42028 /// Optional property that identifies the source of the embedded cabinet.
42029 /// If a cabinet is specified for a patch, this property should be defined
42030 /// and unique to each patch so that the embedded cabinet containing patched
42031 /// and new files can be located in the patch package. If the cabinet is not
42032 /// embedded - this is not typical - the cabinet can be found in the directory
42033 /// referenced in this column. If empty, the external cabinet must be located
42034 /// in the SourceDir directory.
42035 /// </summary>
42036 public string Source
42037 {
42038 get
42039 {
42040 return this.sourceField;
42041 }
42042 set
42043 {
42044 this.sourceFieldSet = true;
42045 this.sourceField = value;
42046 }
42047 }
42048
42049 public virtual ISchemaElement ParentElement
42050 {
42051 get
42052 {
42053 return this.parentElement;
42054 }
42055 set
42056 {
42057 this.parentElement = value;
42058 }
42059 }
42060
42061 public virtual void AddChild(ISchemaElement child)
42062 {
42063 if ((null == child))
42064 {
42065 throw new ArgumentNullException("child");
42066 }
42067 this.children.AddElement(child);
42068 child.ParentElement = this;
42069 }
42070
42071 public virtual void RemoveChild(ISchemaElement child)
42072 {
42073 if ((null == child))
42074 {
42075 throw new ArgumentNullException("child");
42076 }
42077 this.children.RemoveElement(child);
42078 child.ParentElement = null;
42079 }
42080
42081 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
42082 ISchemaElement ICreateChildren.CreateChild(string childName)
42083 {
42084 if (String.IsNullOrEmpty(childName))
42085 {
42086 throw new ArgumentNullException("childName");
42087 }
42088 ISchemaElement childValue = null;
42089 if (("DigitalSignature" == childName))
42090 {
42091 childValue = new DigitalSignature();
42092 }
42093 if (("PatchBaseline" == childName))
42094 {
42095 childValue = new PatchBaseline();
42096 }
42097 if (("SymbolPath" == childName))
42098 {
42099 childValue = new SymbolPath();
42100 }
42101 if ((null == childValue))
42102 {
42103 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
42104 }
42105 return childValue;
42106 }
42107
42108 /// <summary>
42109 /// Processes this element and all child elements into an XmlWriter.
42110 /// </summary>
42111 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
42112 public virtual void OutputXml(XmlWriter writer)
42113 {
42114 if ((null == writer))
42115 {
42116 throw new ArgumentNullException("writer");
42117 }
42118 writer.WriteStartElement("Media", "http://wixtoolset.org/schemas/v4/wxs");
42119 if (this.idFieldSet)
42120 {
42121 writer.WriteAttributeString("Id", this.idField);
42122 }
42123 if (this.cabinetFieldSet)
42124 {
42125 writer.WriteAttributeString("Cabinet", this.cabinetField);
42126 }
42127 if (this.compressionLevelFieldSet)
42128 {
42129 if ((this.compressionLevelField == CompressionLevelType.high))
42130 {
42131 writer.WriteAttributeString("CompressionLevel", "high");
42132 }
42133 if ((this.compressionLevelField == CompressionLevelType.low))
42134 {
42135 writer.WriteAttributeString("CompressionLevel", "low");
42136 }
42137 if ((this.compressionLevelField == CompressionLevelType.medium))
42138 {
42139 writer.WriteAttributeString("CompressionLevel", "medium");
42140 }
42141 if ((this.compressionLevelField == CompressionLevelType.mszip))
42142 {
42143 writer.WriteAttributeString("CompressionLevel", "mszip");
42144 }
42145 if ((this.compressionLevelField == CompressionLevelType.none))
42146 {
42147 writer.WriteAttributeString("CompressionLevel", "none");
42148 }
42149 }
42150 if (this.diskPromptFieldSet)
42151 {
42152 writer.WriteAttributeString("DiskPrompt", this.diskPromptField);
42153 }
42154 if (this.embedCabFieldSet)
42155 {
42156 if ((this.embedCabField == YesNoType.no))
42157 {
42158 writer.WriteAttributeString("EmbedCab", "no");
42159 }
42160 if ((this.embedCabField == YesNoType.yes))
42161 {
42162 writer.WriteAttributeString("EmbedCab", "yes");
42163 }
42164 }
42165 if (this.layoutFieldSet)
42166 {
42167 writer.WriteAttributeString("Layout", this.layoutField);
42168 }
42169 if (this.srcFieldSet)
42170 {
42171 writer.WriteAttributeString("src", this.srcField);
42172 }
42173 if (this.volumeLabelFieldSet)
42174 {
42175 writer.WriteAttributeString("VolumeLabel", this.volumeLabelField);
42176 }
42177 if (this.sourceFieldSet)
42178 {
42179 writer.WriteAttributeString("Source", this.sourceField);
42180 }
42181 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
42182 {
42183 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
42184 childElement.OutputXml(writer);
42185 }
42186 writer.WriteEndElement();
42187 }
42188
42189 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
42190 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
42191 void ISetAttributes.SetAttribute(string name, string value)
42192 {
42193 if (String.IsNullOrEmpty(name))
42194 {
42195 throw new ArgumentNullException("name");
42196 }
42197 if (("Id" == name))
42198 {
42199 this.idField = value;
42200 this.idFieldSet = true;
42201 }
42202 if (("Cabinet" == name))
42203 {
42204 this.cabinetField = value;
42205 this.cabinetFieldSet = true;
42206 }
42207 if (("CompressionLevel" == name))
42208 {
42209 this.compressionLevelField = Enums.ParseCompressionLevelType(value);
42210 this.compressionLevelFieldSet = true;
42211 }
42212 if (("DiskPrompt" == name))
42213 {
42214 this.diskPromptField = value;
42215 this.diskPromptFieldSet = true;
42216 }
42217 if (("EmbedCab" == name))
42218 {
42219 this.embedCabField = Enums.ParseYesNoType(value);
42220 this.embedCabFieldSet = true;
42221 }
42222 if (("Layout" == name))
42223 {
42224 this.layoutField = value;
42225 this.layoutFieldSet = true;
42226 }
42227 if (("src" == name))
42228 {
42229 this.srcField = value;
42230 this.srcFieldSet = true;
42231 }
42232 if (("VolumeLabel" == name))
42233 {
42234 this.volumeLabelField = value;
42235 this.volumeLabelFieldSet = true;
42236 }
42237 if (("Source" == name))
42238 {
42239 this.sourceField = value;
42240 this.sourceFieldSet = true;
42241 }
42242 }
42243 }
42244
42245 /// <summary>
42246 /// MediaTeplate element describes information to automatically assign files to cabinets.
42247 /// A maximumum number of cabinets created is 999.
42248 /// </summary>
42249 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
42250 public class MediaTemplate : ISchemaElement, ISetAttributes
42251 {
42252
42253 private string cabinetTemplateField;
42254
42255 private bool cabinetTemplateFieldSet;
42256
42257 private CompressionLevelType compressionLevelField;
42258
42259 private bool compressionLevelFieldSet;
42260
42261 private string diskPromptField;
42262
42263 private bool diskPromptFieldSet;
42264
42265 private YesNoType embedCabField;
42266
42267 private bool embedCabFieldSet;
42268
42269 private string volumeLabelField;
42270
42271 private bool volumeLabelFieldSet;
42272
42273 private int maximumUncompressedMediaSizeField;
42274
42275 private bool maximumUncompressedMediaSizeFieldSet;
42276
42277 private int maximumCabinetSizeForLargeFileSplittingField;
42278
42279 private bool maximumCabinetSizeForLargeFileSplittingFieldSet;
42280
42281 private ISchemaElement parentElement;
42282
42283 /// <summary>
42284 /// Templated name of the cabinet if some or all of the files stored on the media are in
42285 /// a cabinet file. This name must begin with either a letter or an underscore, contain
42286 /// maximum of five characters and {0} in the cabinet name part and must end three character extension.
42287 /// The default is cab{0}.cab.
42288 /// </summary>
42289 public string CabinetTemplate
42290 {
42291 get
42292 {
42293 return this.cabinetTemplateField;
42294 }
42295 set
42296 {
42297 this.cabinetTemplateFieldSet = true;
42298 this.cabinetTemplateField = value;
42299 }
42300 }
42301
42302 /// <summary>
42303 /// Indicates the compression level for the Media's cabinet. This attribute can
42304 /// only be used in conjunction with the Cabinet attribute. The default is 'mszip'.
42305 /// </summary>
42306 public CompressionLevelType CompressionLevel
42307 {
42308 get
42309 {
42310 return this.compressionLevelField;
42311 }
42312 set
42313 {
42314 this.compressionLevelFieldSet = true;
42315 this.compressionLevelField = value;
42316 }
42317 }
42318
42319 /// <summary>
42320 /// The disk name, which is usually the visible text printed on the disk. This localizable text is used
42321 /// to prompt the user when this disk needs to be inserted. This value will be used in the "[1]" of the
42322 /// DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property.
42323 /// </summary>
42324 public string DiskPrompt
42325 {
42326 get
42327 {
42328 return this.diskPromptField;
42329 }
42330 set
42331 {
42332 this.diskPromptFieldSet = true;
42333 this.diskPromptField = value;
42334 }
42335 }
42336
42337 /// <summary>
42338 /// Instructs the binder to embed the cabinets in the product if 'yes'.
42339 /// </summary>
42340 public YesNoType EmbedCab
42341 {
42342 get
42343 {
42344 return this.embedCabField;
42345 }
42346 set
42347 {
42348 this.embedCabFieldSet = true;
42349 this.embedCabField = value;
42350 }
42351 }
42352
42353 /// <summary>
42354 /// The label attributed to the volume. This is the volume label returned
42355 /// by the GetVolumeInformation function. If the SourceDir property refers
42356 /// to a removable (floppy or CD-ROM) volume, then this volume label is
42357 /// used to verify that the proper disk is in the drive before attempting
42358 /// to install files. The entry in this column must match the volume label
42359 /// of the physical media.
42360 /// </summary>
42361 public string VolumeLabel
42362 {
42363 get
42364 {
42365 return this.volumeLabelField;
42366 }
42367 set
42368 {
42369 this.volumeLabelFieldSet = true;
42370 this.volumeLabelField = value;
42371 }
42372 }
42373
42374 /// <summary>
42375 /// Size of uncompressed files in each cabinet, in megabytes. WIX_MUMS environment variable
42376 /// can be used to override this value. Default value is 200 MB.
42377 /// </summary>
42378 public int MaximumUncompressedMediaSize
42379 {
42380 get
42381 {
42382 return this.maximumUncompressedMediaSizeField;
42383 }
42384 set
42385 {
42386 this.maximumUncompressedMediaSizeFieldSet = true;
42387 this.maximumUncompressedMediaSizeField = value;
42388 }
42389 }
42390
42391 /// <summary>
42392 /// Maximum size of cabinet files in megabytes for large files. This attribute is used for packaging
42393 /// files that are larger than MaximumUncompressedMediaSize into smaller cabinets. If cabinet size
42394 /// exceed this value, then setting this attribute will cause the file to be split into multiple
42395 /// cabinets of this maximum size. For simply controlling cabinet size without file splitting use
42396 /// MaximumUncompressedMediaSize attribute. Setting this attribute will disable smart cabbing feature
42397 /// for this Fragment / Product. Setting WIX_MCSLFS environment variable can be used to override this
42398 /// value. Minimum allowed value of this attribute is 20 MB. Maximum allowed value and the Default
42399 /// value of this attribute is 2048 MB (2 GB).
42400 /// </summary>
42401 public int MaximumCabinetSizeForLargeFileSplitting
42402 {
42403 get
42404 {
42405 return this.maximumCabinetSizeForLargeFileSplittingField;
42406 }
42407 set
42408 {
42409 this.maximumCabinetSizeForLargeFileSplittingFieldSet = true;
42410 this.maximumCabinetSizeForLargeFileSplittingField = value;
42411 }
42412 }
42413
42414 public virtual ISchemaElement ParentElement
42415 {
42416 get
42417 {
42418 return this.parentElement;
42419 }
42420 set
42421 {
42422 this.parentElement = value;
42423 }
42424 }
42425
42426 /// <summary>
42427 /// Parses a CompressionLevelType from a string.
42428 /// </summary>
42429 public static CompressionLevelType ParseCompressionLevelType(string value)
42430 {
42431 CompressionLevelType parsedValue;
42432 MediaTemplate.TryParseCompressionLevelType(value, out parsedValue);
42433 return parsedValue;
42434 }
42435
42436 /// <summary>
42437 /// Tries to parse a CompressionLevelType from a string.
42438 /// </summary>
42439 public static bool TryParseCompressionLevelType(string value, out CompressionLevelType parsedValue)
42440 {
42441 parsedValue = CompressionLevelType.NotSet;
42442 if (string.IsNullOrEmpty(value))
42443 {
42444 return false;
42445 }
42446 if (("high" == value))
42447 {
42448 parsedValue = CompressionLevelType.high;
42449 }
42450 else
42451 {
42452 if (("low" == value))
42453 {
42454 parsedValue = CompressionLevelType.low;
42455 }
42456 else
42457 {
42458 if (("medium" == value))
42459 {
42460 parsedValue = CompressionLevelType.medium;
42461 }
42462 else
42463 {
42464 if (("mszip" == value))
42465 {
42466 parsedValue = CompressionLevelType.mszip;
42467 }
42468 else
42469 {
42470 if (("none" == value))
42471 {
42472 parsedValue = CompressionLevelType.none;
42473 }
42474 else
42475 {
42476 parsedValue = CompressionLevelType.IllegalValue;
42477 return false;
42478 }
42479 }
42480 }
42481 }
42482 }
42483 return true;
42484 }
42485
42486 /// <summary>
42487 /// Processes this element and all child elements into an XmlWriter.
42488 /// </summary>
42489 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
42490 public virtual void OutputXml(XmlWriter writer)
42491 {
42492 if ((null == writer))
42493 {
42494 throw new ArgumentNullException("writer");
42495 }
42496 writer.WriteStartElement("MediaTemplate", "http://wixtoolset.org/schemas/v4/wxs");
42497 if (this.cabinetTemplateFieldSet)
42498 {
42499 writer.WriteAttributeString("CabinetTemplate", this.cabinetTemplateField);
42500 }
42501 if (this.compressionLevelFieldSet)
42502 {
42503 if ((this.compressionLevelField == CompressionLevelType.high))
42504 {
42505 writer.WriteAttributeString("CompressionLevel", "high");
42506 }
42507 if ((this.compressionLevelField == CompressionLevelType.low))
42508 {
42509 writer.WriteAttributeString("CompressionLevel", "low");
42510 }
42511 if ((this.compressionLevelField == CompressionLevelType.medium))
42512 {
42513 writer.WriteAttributeString("CompressionLevel", "medium");
42514 }
42515 if ((this.compressionLevelField == CompressionLevelType.mszip))
42516 {
42517 writer.WriteAttributeString("CompressionLevel", "mszip");
42518 }
42519 if ((this.compressionLevelField == CompressionLevelType.none))
42520 {
42521 writer.WriteAttributeString("CompressionLevel", "none");
42522 }
42523 }
42524 if (this.diskPromptFieldSet)
42525 {
42526 writer.WriteAttributeString("DiskPrompt", this.diskPromptField);
42527 }
42528 if (this.embedCabFieldSet)
42529 {
42530 if ((this.embedCabField == YesNoType.no))
42531 {
42532 writer.WriteAttributeString("EmbedCab", "no");
42533 }
42534 if ((this.embedCabField == YesNoType.yes))
42535 {
42536 writer.WriteAttributeString("EmbedCab", "yes");
42537 }
42538 }
42539 if (this.volumeLabelFieldSet)
42540 {
42541 writer.WriteAttributeString("VolumeLabel", this.volumeLabelField);
42542 }
42543 if (this.maximumUncompressedMediaSizeFieldSet)
42544 {
42545 writer.WriteAttributeString("MaximumUncompressedMediaSize", this.maximumUncompressedMediaSizeField.ToString(CultureInfo.InvariantCulture));
42546 }
42547 if (this.maximumCabinetSizeForLargeFileSplittingFieldSet)
42548 {
42549 writer.WriteAttributeString("MaximumCabinetSizeForLargeFileSplitting", this.maximumCabinetSizeForLargeFileSplittingField.ToString(CultureInfo.InvariantCulture));
42550 }
42551 writer.WriteEndElement();
42552 }
42553
42554 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
42555 void ISetAttributes.SetAttribute(string name, string value)
42556 {
42557 if (String.IsNullOrEmpty(name))
42558 {
42559 throw new ArgumentNullException("name");
42560 }
42561 if (("CabinetTemplate" == name))
42562 {
42563 this.cabinetTemplateField = value;
42564 this.cabinetTemplateFieldSet = true;
42565 }
42566 if (("CompressionLevel" == name))
42567 {
42568 this.compressionLevelField = MediaTemplate.ParseCompressionLevelType(value);
42569 this.compressionLevelFieldSet = true;
42570 }
42571 if (("DiskPrompt" == name))
42572 {
42573 this.diskPromptField = value;
42574 this.diskPromptFieldSet = true;
42575 }
42576 if (("EmbedCab" == name))
42577 {
42578 this.embedCabField = Enums.ParseYesNoType(value);
42579 this.embedCabFieldSet = true;
42580 }
42581 if (("VolumeLabel" == name))
42582 {
42583 this.volumeLabelField = value;
42584 this.volumeLabelFieldSet = true;
42585 }
42586 if (("MaximumUncompressedMediaSize" == name))
42587 {
42588 this.maximumUncompressedMediaSizeField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
42589 this.maximumUncompressedMediaSizeFieldSet = true;
42590 }
42591 if (("MaximumCabinetSizeForLargeFileSplitting" == name))
42592 {
42593 this.maximumCabinetSizeForLargeFileSplittingField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
42594 this.maximumCabinetSizeForLargeFileSplittingFieldSet = true;
42595 }
42596 }
42597
42598 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
42599 public enum CompressionLevelType
42600 {
42601
42602 IllegalValue = int.MaxValue,
42603
42604 NotSet = -1,
42605
42606 high,
42607
42608 low,
42609
42610 medium,
42611
42612 mszip,
42613
42614 none,
42615 }
42616 }
42617
42618 /// <summary>
42619 /// This element has been deprecated.
42620 /// Use the Binary/@SuppressModularization, CustomAction/@SuppressModularization, or Property/@SuppressModularization attributes instead.
42621 /// </summary>
42622 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
42623 public class IgnoreModularization : ISchemaElement, ISetAttributes
42624 {
42625
42626 private string nameField;
42627
42628 private bool nameFieldSet;
42629
42630 private TypeType typeField;
42631
42632 private bool typeFieldSet;
42633
42634 private ISchemaElement parentElement;
42635
42636 /// <summary>
42637 /// The name of the item to ignore modularization for.
42638 /// </summary>
42639 public string Name
42640 {
42641 get
42642 {
42643 return this.nameField;
42644 }
42645 set
42646 {
42647 this.nameFieldSet = true;
42648 this.nameField = value;
42649 }
42650 }
42651
42652 /// <summary>
42653 /// The type of the item to ignore modularization for.
42654 /// </summary>
42655 public TypeType Type
42656 {
42657 get
42658 {
42659 return this.typeField;
42660 }
42661 set
42662 {
42663 this.typeFieldSet = true;
42664 this.typeField = value;
42665 }
42666 }
42667
42668 public virtual ISchemaElement ParentElement
42669 {
42670 get
42671 {
42672 return this.parentElement;
42673 }
42674 set
42675 {
42676 this.parentElement = value;
42677 }
42678 }
42679
42680 /// <summary>
42681 /// Parses a TypeType from a string.
42682 /// </summary>
42683 public static TypeType ParseTypeType(string value)
42684 {
42685 TypeType parsedValue;
42686 IgnoreModularization.TryParseTypeType(value, out parsedValue);
42687 return parsedValue;
42688 }
42689
42690 /// <summary>
42691 /// Tries to parse a TypeType from a string.
42692 /// </summary>
42693 public static bool TryParseTypeType(string value, out TypeType parsedValue)
42694 {
42695 parsedValue = TypeType.NotSet;
42696 if (string.IsNullOrEmpty(value))
42697 {
42698 return false;
42699 }
42700 if (("Action" == value))
42701 {
42702 parsedValue = TypeType.Action;
42703 }
42704 else
42705 {
42706 if (("Property" == value))
42707 {
42708 parsedValue = TypeType.Property;
42709 }
42710 else
42711 {
42712 if (("Directory" == value))
42713 {
42714 parsedValue = TypeType.Directory;
42715 }
42716 else
42717 {
42718 parsedValue = TypeType.IllegalValue;
42719 return false;
42720 }
42721 }
42722 }
42723 return true;
42724 }
42725
42726 /// <summary>
42727 /// Processes this element and all child elements into an XmlWriter.
42728 /// </summary>
42729 public virtual void OutputXml(XmlWriter writer)
42730 {
42731 if ((null == writer))
42732 {
42733 throw new ArgumentNullException("writer");
42734 }
42735 writer.WriteStartElement("IgnoreModularization", "http://wixtoolset.org/schemas/v4/wxs");
42736 if (this.nameFieldSet)
42737 {
42738 writer.WriteAttributeString("Name", this.nameField);
42739 }
42740 if (this.typeFieldSet)
42741 {
42742 if ((this.typeField == TypeType.Action))
42743 {
42744 writer.WriteAttributeString("Type", "Action");
42745 }
42746 if ((this.typeField == TypeType.Property))
42747 {
42748 writer.WriteAttributeString("Type", "Property");
42749 }
42750 if ((this.typeField == TypeType.Directory))
42751 {
42752 writer.WriteAttributeString("Type", "Directory");
42753 }
42754 }
42755 writer.WriteEndElement();
42756 }
42757
42758 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
42759 void ISetAttributes.SetAttribute(string name, string value)
42760 {
42761 if (String.IsNullOrEmpty(name))
42762 {
42763 throw new ArgumentNullException("name");
42764 }
42765 if (("Name" == name))
42766 {
42767 this.nameField = value;
42768 this.nameFieldSet = true;
42769 }
42770 if (("Type" == name))
42771 {
42772 this.typeField = IgnoreModularization.ParseTypeType(value);
42773 this.typeFieldSet = true;
42774 }
42775 }
42776
42777 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
42778 public enum TypeType
42779 {
42780
42781 IllegalValue = int.MaxValue,
42782
42783 NotSet = -1,
42784
42785 Action,
42786
42787 Property,
42788
42789 Directory,
42790 }
42791 }
42792
42793 /// <summary>
42794 /// Specifies a custom action to be added to the MSI CustomAction table. Various combinations of the attributes for this element
42795 /// correspond to different custom action types. For more information about custom actions see the
42796 /// </summary>
42797 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
42798 public class CustomAction : ISchemaElement, ISetAttributes
42799 {
42800
42801 private string idField;
42802
42803 private bool idFieldSet;
42804
42805 private string binaryKeyField;
42806
42807 private bool binaryKeyFieldSet;
42808
42809 private string fileKeyField;
42810
42811 private bool fileKeyFieldSet;
42812
42813 private string propertyField;
42814
42815 private bool propertyFieldSet;
42816
42817 private string directoryField;
42818
42819 private bool directoryFieldSet;
42820
42821 private string dllEntryField;
42822
42823 private bool dllEntryFieldSet;
42824
42825 private string exeCommandField;
42826
42827 private bool exeCommandFieldSet;
42828
42829 private string jScriptCallField;
42830
42831 private bool jScriptCallFieldSet;
42832
42833 private string vBScriptCallField;
42834
42835 private bool vBScriptCallFieldSet;
42836
42837 private ScriptType scriptField;
42838
42839 private bool scriptFieldSet;
42840
42841 private YesNoType suppressModularizationField;
42842
42843 private bool suppressModularizationFieldSet;
42844
42845 private string valueField;
42846
42847 private bool valueFieldSet;
42848
42849 private string errorField;
42850
42851 private bool errorFieldSet;
42852
42853 private ReturnType returnField;
42854
42855 private bool returnFieldSet;
42856
42857 private ExecuteType executeField;
42858
42859 private bool executeFieldSet;
42860
42861 private YesNoType impersonateField;
42862
42863 private bool impersonateFieldSet;
42864
42865 private YesNoType patchUninstallField;
42866
42867 private bool patchUninstallFieldSet;
42868
42869 private YesNoType win64Field;
42870
42871 private bool win64FieldSet;
42872
42873 private YesNoType terminalServerAwareField;
42874
42875 private bool terminalServerAwareFieldSet;
42876
42877 private YesNoType hideTargetField;
42878
42879 private bool hideTargetFieldSet;
42880
42881 private string contentField;
42882
42883 private bool contentFieldSet;
42884
42885 private ISchemaElement parentElement;
42886
42887 /// <summary>
42888 /// The identifier of the custom action.
42889 /// </summary>
42890 public string Id
42891 {
42892 get
42893 {
42894 return this.idField;
42895 }
42896 set
42897 {
42898 this.idFieldSet = true;
42899 this.idField = value;
42900 }
42901 }
42902
42903 /// <summary>
42904 /// This attribute is a reference to a Binary element with matching Id attribute. That binary stream contains
42905 /// the custom action for use during install. The custom action will not be installed into a target directory. This attribute is
42906 /// typically used with the DllEntry attribute to specify the custom action DLL to use for a type 1 custom action, with the ExeCommand
42907 /// attribute to specify a type 17 custom action that runs an embedded executable, or with the VBScriptCall or JScriptCall attributes
42908 /// to specify a type 5 or 6 custom action.
42909 /// </summary>
42910 public string BinaryKey
42911 {
42912 get
42913 {
42914 return this.binaryKeyField;
42915 }
42916 set
42917 {
42918 this.binaryKeyFieldSet = true;
42919 this.binaryKeyField = value;
42920 }
42921 }
42922
42923 /// <summary>
42924 /// This attribute specifies a reference to a File element with matching Id attribute that
42925 /// will execute the custom action code in the file after the file is installed. This
42926 /// attribute is typically used with the ExeCommand attribute to specify a type 18 custom action
42927 /// that runs an installed executable, with the DllEntry attribute to specify an installed custom
42928 /// action DLL to use for a type 17 custom action, or with the VBScriptCall or JScriptCall
42929 /// attributes to specify a type 21 or 22 custom action.
42930 /// </summary>
42931 public string FileKey
42932 {
42933 get
42934 {
42935 return this.fileKeyField;
42936 }
42937 set
42938 {
42939 this.fileKeyFieldSet = true;
42940 this.fileKeyField = value;
42941 }
42942 }
42943
42944 /// <summary>
42945 /// This attribute specifies a reference to a Property element with matching Id attribute that specifies the Property
42946 /// to be used or updated on execution of this custom action. This attribute is
42947 /// typically used with the Value attribute to create a type 51 custom action that parses
42948 /// the text in Value and places it into the specified Property. This attribute is also used with
42949 /// the ExeCommand attribute to create a type 50 custom action that uses the value of the
42950 /// given property to specify the path to the executable. Type 51 custom actions are often useful to
42951 /// pass values to a deferred custom action.
42952 /// See
42953 /// </summary>
42954 public string Property
42955 {
42956 get
42957 {
42958 return this.propertyField;
42959 }
42960 set
42961 {
42962 this.propertyFieldSet = true;
42963 this.propertyField = value;
42964 }
42965 }
42966
42967 /// <summary>
42968 /// This attribute specifies a reference to a Directory element with matching Id attribute containing a directory path.
42969 /// This attribute is typically used with the ExeCommand attribute to specify the source executable for a type 34
42970 /// custom action, or with the Value attribute to specify a formatted string to place in the specified Directory
42971 /// table entry in a type 35 custom action.
42972 /// </summary>
42973 public string Directory
42974 {
42975 get
42976 {
42977 return this.directoryField;
42978 }
42979 set
42980 {
42981 this.directoryFieldSet = true;
42982 this.directoryField = value;
42983 }
42984 }
42985
42986 /// <summary>
42987 /// This attribute specifies the name of a function in a custom action to execute.
42988 /// This attribute is used with the BinaryKey attribute to create a type 1 custom
42989 /// action, or with the FileKey attribute to create a type 17 custom action.
42990 /// </summary>
42991 public string DllEntry
42992 {
42993 get
42994 {
42995 return this.dllEntryField;
42996 }
42997 set
42998 {
42999 this.dllEntryFieldSet = true;
43000 this.dllEntryField = value;
43001 }
43002 }
43003
43004 /// <summary>
43005 /// This attribute specifies the command line parameters to supply to an externally
43006 /// run executable. This attribute is typically used with the BinaryKey attribute for a type 2 custom action,
43007 /// the FileKey attribute for a type 18 custom action, the Property attribute for a type 50 custom action,
43008 /// or the Directory attribute for a type 34 custom action that specify the executable to run.
43009 /// </summary>
43010 public string ExeCommand
43011 {
43012 get
43013 {
43014 return this.exeCommandField;
43015 }
43016 set
43017 {
43018 this.exeCommandFieldSet = true;
43019 this.exeCommandField = value;
43020 }
43021 }
43022
43023 /// <summary>
43024 /// This attribute specifies the name of the JScript function to execute in a script. The script must be
43025 /// provided in a Binary element identified by the BinaryKey attribute described above. In other words, this
43026 /// attribute must be specified in conjunction with the BinaryKey attribute.
43027 /// </summary>
43028 public string JScriptCall
43029 {
43030 get
43031 {
43032 return this.jScriptCallField;
43033 }
43034 set
43035 {
43036 this.jScriptCallFieldSet = true;
43037 this.jScriptCallField = value;
43038 }
43039 }
43040
43041 /// <summary>
43042 /// This attribute specifies the name of the VBScript Subroutine to execute in a script. The script must be
43043 /// provided in a Binary element identified by the BinaryKey attribute described above. In other words, this
43044 /// attribute must be specified in conjunction with the BinaryKey attribute.
43045 /// </summary>
43046 [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")]
43047 public string VBScriptCall
43048 {
43049 get
43050 {
43051 return this.vBScriptCallField;
43052 }
43053 set
43054 {
43055 this.vBScriptCallFieldSet = true;
43056 this.vBScriptCallField = value;
43057 }
43058 }
43059
43060 /// <summary>
43061 /// Creates a type 37 or 38 custom action. The text of the element should contain the script to be embedded in the package.
43062 /// </summary>
43063 public ScriptType Script
43064 {
43065 get
43066 {
43067 return this.scriptField;
43068 }
43069 set
43070 {
43071 this.scriptFieldSet = true;
43072 this.scriptField = value;
43073 }
43074 }
43075
43076 /// <summary>
43077 /// Use to suppress modularization of this custom action name in merge modules.
43078 /// This should only be necessary for table-driven custom actions because the
43079 /// table name which they interact with cannot be modularized, so there can only
43080 /// be one instance of the table.
43081 /// </summary>
43082 public YesNoType SuppressModularization
43083 {
43084 get
43085 {
43086 return this.suppressModularizationField;
43087 }
43088 set
43089 {
43090 this.suppressModularizationFieldSet = true;
43091 this.suppressModularizationField = value;
43092 }
43093 }
43094
43095 /// <summary>
43096 /// This attribute specifies a string value to use in the custom action. This attribute
43097 /// must be used with the Property attribute to set the property as part of a
43098 /// type 51 custom action or with the Directory attribute to set a directory path in that
43099 /// table in a type 35 custom action. The value can be a literal value or derived from a
43100 /// Property element using the
43101 /// </summary>
43102 public string Value
43103 {
43104 get
43105 {
43106 return this.valueField;
43107 }
43108 set
43109 {
43110 this.valueFieldSet = true;
43111 this.valueField = value;
43112 }
43113 }
43114
43115 /// <summary>
43116 /// This attribute specifies an index in the MSI Error table to use as an error message for a
43117 /// type 19 custom action that displays the error message and aborts a product's installation.
43118 /// </summary>
43119 public string Error
43120 {
43121 get
43122 {
43123 return this.errorField;
43124 }
43125 set
43126 {
43127 this.errorFieldSet = true;
43128 this.errorField = value;
43129 }
43130 }
43131
43132 /// <summary>
43133 /// Set this attribute to set the return behavior of the custom action.
43134 /// </summary>
43135 public ReturnType Return
43136 {
43137 get
43138 {
43139 return this.returnField;
43140 }
43141 set
43142 {
43143 this.returnFieldSet = true;
43144 this.returnField = value;
43145 }
43146 }
43147
43148 /// <summary>
43149 /// This attribute indicates the scheduling of the custom action.
43150 /// </summary>
43151 public ExecuteType Execute
43152 {
43153 get
43154 {
43155 return this.executeField;
43156 }
43157 set
43158 {
43159 this.executeFieldSet = true;
43160 this.executeField = value;
43161 }
43162 }
43163
43164 /// <summary>
43165 /// This attribute specifies whether the Windows Installer, which executes as LocalSystem,
43166 /// should impersonate the user context of the installing user when executing this custom action.
43167 /// Typically the value should be 'yes', except when the custom action needs elevated privileges
43168 /// to apply changes to the machine.
43169 /// </summary>
43170 public YesNoType Impersonate
43171 {
43172 get
43173 {
43174 return this.impersonateField;
43175 }
43176 set
43177 {
43178 this.impersonateFieldSet = true;
43179 this.impersonateField = value;
43180 }
43181 }
43182
43183 /// <summary>
43184 /// This attribute specifies that the Windows Installer, execute the custom action only when
43185 /// a patch is being uninstalled. These custom actions should also be conditioned using the
43186 /// MSIPATCHREMOVE property to ensure proper down level (less than Windows Installer 4.5)
43187 /// behavior.
43188 /// </summary>
43189 public YesNoType PatchUninstall
43190 {
43191 get
43192 {
43193 return this.patchUninstallField;
43194 }
43195 set
43196 {
43197 this.patchUninstallFieldSet = true;
43198 this.patchUninstallField = value;
43199 }
43200 }
43201
43202 /// <summary>
43203 /// Specifies that a script custom action targets a 64-bit platform. Valid only when used with
43204 /// the Script, VBScriptCall, and JScriptCall attributes.
43205 /// The default value is based on the platform set by the -arch switch to candle.exe
43206 /// or the InstallerPlatform property in a .wixproj MSBuild project:
43207 /// For x86 and ARM, the default value is 'no'.
43208 /// For x64 and IA64, the default value is 'yes'.
43209 /// </summary>
43210 public YesNoType Win64
43211 {
43212 get
43213 {
43214 return this.win64Field;
43215 }
43216 set
43217 {
43218 this.win64FieldSet = true;
43219 this.win64Field = value;
43220 }
43221 }
43222
43223 /// <summary>
43224 /// This attribute specifies controls whether the custom action will impersonate the
43225 /// installing user during per-machine installs on Terminal Server machines.
43226 /// Deferred execution custom actions that do not specify this attribute, or explicitly set it 'no',
43227 /// will run with no user impersonation on Terminal Server machines during
43228 /// per-machine installations. This attribute is only applicable when installing on the
43229 /// Windows Server 2003 family.
43230 /// </summary>
43231 public YesNoType TerminalServerAware
43232 {
43233 get
43234 {
43235 return this.terminalServerAwareField;
43236 }
43237 set
43238 {
43239 this.terminalServerAwareFieldSet = true;
43240 this.terminalServerAwareField = value;
43241 }
43242 }
43243
43244 /// <summary>
43245 /// Ensures the installer does not log the CustomActionData for the deferred custom action.
43246 /// </summary>
43247 public YesNoType HideTarget
43248 {
43249 get
43250 {
43251 return this.hideTargetField;
43252 }
43253 set
43254 {
43255 this.hideTargetFieldSet = true;
43256 this.hideTargetField = value;
43257 }
43258 }
43259
43260 /// <summary>
43261 /// The text node is only valid if the Script attribute is specified. In that case, the text node contains the script to embed.
43262 /// </summary>
43263 public string Content
43264 {
43265 get
43266 {
43267 return this.contentField;
43268 }
43269 set
43270 {
43271 this.contentFieldSet = true;
43272 this.contentField = value;
43273 }
43274 }
43275
43276 public virtual ISchemaElement ParentElement
43277 {
43278 get
43279 {
43280 return this.parentElement;
43281 }
43282 set
43283 {
43284 this.parentElement = value;
43285 }
43286 }
43287
43288 /// <summary>
43289 /// Parses a ScriptType from a string.
43290 /// </summary>
43291 public static ScriptType ParseScriptType(string value)
43292 {
43293 ScriptType parsedValue;
43294 CustomAction.TryParseScriptType(value, out parsedValue);
43295 return parsedValue;
43296 }
43297
43298 /// <summary>
43299 /// Tries to parse a ScriptType from a string.
43300 /// </summary>
43301 public static bool TryParseScriptType(string value, out ScriptType parsedValue)
43302 {
43303 parsedValue = ScriptType.NotSet;
43304 if (string.IsNullOrEmpty(value))
43305 {
43306 return false;
43307 }
43308 if (("jscript" == value))
43309 {
43310 parsedValue = ScriptType.jscript;
43311 }
43312 else
43313 {
43314 if (("vbscript" == value))
43315 {
43316 parsedValue = ScriptType.vbscript;
43317 }
43318 else
43319 {
43320 parsedValue = ScriptType.IllegalValue;
43321 return false;
43322 }
43323 }
43324 return true;
43325 }
43326
43327 /// <summary>
43328 /// Parses a ReturnType from a string.
43329 /// </summary>
43330 public static ReturnType ParseReturnType(string value)
43331 {
43332 ReturnType parsedValue;
43333 CustomAction.TryParseReturnType(value, out parsedValue);
43334 return parsedValue;
43335 }
43336
43337 /// <summary>
43338 /// Tries to parse a ReturnType from a string.
43339 /// </summary>
43340 public static bool TryParseReturnType(string value, out ReturnType parsedValue)
43341 {
43342 parsedValue = ReturnType.NotSet;
43343 if (string.IsNullOrEmpty(value))
43344 {
43345 return false;
43346 }
43347 if (("asyncNoWait" == value))
43348 {
43349 parsedValue = ReturnType.asyncNoWait;
43350 }
43351 else
43352 {
43353 if (("asyncWait" == value))
43354 {
43355 parsedValue = ReturnType.asyncWait;
43356 }
43357 else
43358 {
43359 if (("check" == value))
43360 {
43361 parsedValue = ReturnType.check;
43362 }
43363 else
43364 {
43365 if (("ignore" == value))
43366 {
43367 parsedValue = ReturnType.ignore;
43368 }
43369 else
43370 {
43371 parsedValue = ReturnType.IllegalValue;
43372 return false;
43373 }
43374 }
43375 }
43376 }
43377 return true;
43378 }
43379
43380 /// <summary>
43381 /// Parses a ExecuteType from a string.
43382 /// </summary>
43383 public static ExecuteType ParseExecuteType(string value)
43384 {
43385 ExecuteType parsedValue;
43386 CustomAction.TryParseExecuteType(value, out parsedValue);
43387 return parsedValue;
43388 }
43389
43390 /// <summary>
43391 /// Tries to parse a ExecuteType from a string.
43392 /// </summary>
43393 public static bool TryParseExecuteType(string value, out ExecuteType parsedValue)
43394 {
43395 parsedValue = ExecuteType.NotSet;
43396 if (string.IsNullOrEmpty(value))
43397 {
43398 return false;
43399 }
43400 if (("commit" == value))
43401 {
43402 parsedValue = ExecuteType.commit;
43403 }
43404 else
43405 {
43406 if (("deferred" == value))
43407 {
43408 parsedValue = ExecuteType.deferred;
43409 }
43410 else
43411 {
43412 if (("firstSequence" == value))
43413 {
43414 parsedValue = ExecuteType.firstSequence;
43415 }
43416 else
43417 {
43418 if (("immediate" == value))
43419 {
43420 parsedValue = ExecuteType.immediate;
43421 }
43422 else
43423 {
43424 if (("oncePerProcess" == value))
43425 {
43426 parsedValue = ExecuteType.oncePerProcess;
43427 }
43428 else
43429 {
43430 if (("rollback" == value))
43431 {
43432 parsedValue = ExecuteType.rollback;
43433 }
43434 else
43435 {
43436 if (("secondSequence" == value))
43437 {
43438 parsedValue = ExecuteType.secondSequence;
43439 }
43440 else
43441 {
43442 parsedValue = ExecuteType.IllegalValue;
43443 return false;
43444 }
43445 }
43446 }
43447 }
43448 }
43449 }
43450 }
43451 return true;
43452 }
43453
43454 /// <summary>
43455 /// Processes this element and all child elements into an XmlWriter.
43456 /// </summary>
43457 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
43458 public virtual void OutputXml(XmlWriter writer)
43459 {
43460 if ((null == writer))
43461 {
43462 throw new ArgumentNullException("writer");
43463 }
43464 writer.WriteStartElement("CustomAction", "http://wixtoolset.org/schemas/v4/wxs");
43465 if (this.idFieldSet)
43466 {
43467 writer.WriteAttributeString("Id", this.idField);
43468 }
43469 if (this.binaryKeyFieldSet)
43470 {
43471 writer.WriteAttributeString("BinaryKey", this.binaryKeyField);
43472 }
43473 if (this.fileKeyFieldSet)
43474 {
43475 writer.WriteAttributeString("FileKey", this.fileKeyField);
43476 }
43477 if (this.propertyFieldSet)
43478 {
43479 writer.WriteAttributeString("Property", this.propertyField);
43480 }
43481 if (this.directoryFieldSet)
43482 {
43483 writer.WriteAttributeString("Directory", this.directoryField);
43484 }
43485 if (this.dllEntryFieldSet)
43486 {
43487 writer.WriteAttributeString("DllEntry", this.dllEntryField);
43488 }
43489 if (this.exeCommandFieldSet)
43490 {
43491 writer.WriteAttributeString("ExeCommand", this.exeCommandField);
43492 }
43493 if (this.jScriptCallFieldSet)
43494 {
43495 writer.WriteAttributeString("JScriptCall", this.jScriptCallField);
43496 }
43497 if (this.vBScriptCallFieldSet)
43498 {
43499 writer.WriteAttributeString("VBScriptCall", this.vBScriptCallField);
43500 }
43501 if (this.scriptFieldSet)
43502 {
43503 if ((this.scriptField == ScriptType.jscript))
43504 {
43505 writer.WriteAttributeString("Script", "jscript");
43506 }
43507 if ((this.scriptField == ScriptType.vbscript))
43508 {
43509 writer.WriteAttributeString("Script", "vbscript");
43510 }
43511 }
43512 if (this.suppressModularizationFieldSet)
43513 {
43514 if ((this.suppressModularizationField == YesNoType.no))
43515 {
43516 writer.WriteAttributeString("SuppressModularization", "no");
43517 }
43518 if ((this.suppressModularizationField == YesNoType.yes))
43519 {
43520 writer.WriteAttributeString("SuppressModularization", "yes");
43521 }
43522 }
43523 if (this.valueFieldSet)
43524 {
43525 writer.WriteAttributeString("Value", this.valueField);
43526 }
43527 if (this.errorFieldSet)
43528 {
43529 writer.WriteAttributeString("Error", this.errorField);
43530 }
43531 if (this.returnFieldSet)
43532 {
43533 if ((this.returnField == ReturnType.asyncNoWait))
43534 {
43535 writer.WriteAttributeString("Return", "asyncNoWait");
43536 }
43537 if ((this.returnField == ReturnType.asyncWait))
43538 {
43539 writer.WriteAttributeString("Return", "asyncWait");
43540 }
43541 if ((this.returnField == ReturnType.check))
43542 {
43543 writer.WriteAttributeString("Return", "check");
43544 }
43545 if ((this.returnField == ReturnType.ignore))
43546 {
43547 writer.WriteAttributeString("Return", "ignore");
43548 }
43549 }
43550 if (this.executeFieldSet)
43551 {
43552 if ((this.executeField == ExecuteType.commit))
43553 {
43554 writer.WriteAttributeString("Execute", "commit");
43555 }
43556 if ((this.executeField == ExecuteType.deferred))
43557 {
43558 writer.WriteAttributeString("Execute", "deferred");
43559 }
43560 if ((this.executeField == ExecuteType.firstSequence))
43561 {
43562 writer.WriteAttributeString("Execute", "firstSequence");
43563 }
43564 if ((this.executeField == ExecuteType.immediate))
43565 {
43566 writer.WriteAttributeString("Execute", "immediate");
43567 }
43568 if ((this.executeField == ExecuteType.oncePerProcess))
43569 {
43570 writer.WriteAttributeString("Execute", "oncePerProcess");
43571 }
43572 if ((this.executeField == ExecuteType.rollback))
43573 {
43574 writer.WriteAttributeString("Execute", "rollback");
43575 }
43576 if ((this.executeField == ExecuteType.secondSequence))
43577 {
43578 writer.WriteAttributeString("Execute", "secondSequence");
43579 }
43580 }
43581 if (this.impersonateFieldSet)
43582 {
43583 if ((this.impersonateField == YesNoType.no))
43584 {
43585 writer.WriteAttributeString("Impersonate", "no");
43586 }
43587 if ((this.impersonateField == YesNoType.yes))
43588 {
43589 writer.WriteAttributeString("Impersonate", "yes");
43590 }
43591 }
43592 if (this.patchUninstallFieldSet)
43593 {
43594 if ((this.patchUninstallField == YesNoType.no))
43595 {
43596 writer.WriteAttributeString("PatchUninstall", "no");
43597 }
43598 if ((this.patchUninstallField == YesNoType.yes))
43599 {
43600 writer.WriteAttributeString("PatchUninstall", "yes");
43601 }
43602 }
43603 if (this.win64FieldSet)
43604 {
43605 if ((this.win64Field == YesNoType.no))
43606 {
43607 writer.WriteAttributeString("Win64", "no");
43608 }
43609 if ((this.win64Field == YesNoType.yes))
43610 {
43611 writer.WriteAttributeString("Win64", "yes");
43612 }
43613 }
43614 if (this.terminalServerAwareFieldSet)
43615 {
43616 if ((this.terminalServerAwareField == YesNoType.no))
43617 {
43618 writer.WriteAttributeString("TerminalServerAware", "no");
43619 }
43620 if ((this.terminalServerAwareField == YesNoType.yes))
43621 {
43622 writer.WriteAttributeString("TerminalServerAware", "yes");
43623 }
43624 }
43625 if (this.hideTargetFieldSet)
43626 {
43627 if ((this.hideTargetField == YesNoType.no))
43628 {
43629 writer.WriteAttributeString("HideTarget", "no");
43630 }
43631 if ((this.hideTargetField == YesNoType.yes))
43632 {
43633 writer.WriteAttributeString("HideTarget", "yes");
43634 }
43635 }
43636 if (this.contentFieldSet)
43637 {
43638 writer.WriteString(this.contentField);
43639 }
43640 writer.WriteEndElement();
43641 }
43642
43643 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
43644 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
43645 void ISetAttributes.SetAttribute(string name, string value)
43646 {
43647 if (String.IsNullOrEmpty(name))
43648 {
43649 throw new ArgumentNullException("name");
43650 }
43651 if (("Id" == name))
43652 {
43653 this.idField = value;
43654 this.idFieldSet = true;
43655 }
43656 if (("BinaryKey" == name))
43657 {
43658 this.binaryKeyField = value;
43659 this.binaryKeyFieldSet = true;
43660 }
43661 if (("FileKey" == name))
43662 {
43663 this.fileKeyField = value;
43664 this.fileKeyFieldSet = true;
43665 }
43666 if (("Property" == name))
43667 {
43668 this.propertyField = value;
43669 this.propertyFieldSet = true;
43670 }
43671 if (("Directory" == name))
43672 {
43673 this.directoryField = value;
43674 this.directoryFieldSet = true;
43675 }
43676 if (("DllEntry" == name))
43677 {
43678 this.dllEntryField = value;
43679 this.dllEntryFieldSet = true;
43680 }
43681 if (("ExeCommand" == name))
43682 {
43683 this.exeCommandField = value;
43684 this.exeCommandFieldSet = true;
43685 }
43686 if (("JScriptCall" == name))
43687 {
43688 this.jScriptCallField = value;
43689 this.jScriptCallFieldSet = true;
43690 }
43691 if (("VBScriptCall" == name))
43692 {
43693 this.vBScriptCallField = value;
43694 this.vBScriptCallFieldSet = true;
43695 }
43696 if (("Script" == name))
43697 {
43698 this.scriptField = CustomAction.ParseScriptType(value);
43699 this.scriptFieldSet = true;
43700 }
43701 if (("SuppressModularization" == name))
43702 {
43703 this.suppressModularizationField = Enums.ParseYesNoType(value);
43704 this.suppressModularizationFieldSet = true;
43705 }
43706 if (("Value" == name))
43707 {
43708 this.valueField = value;
43709 this.valueFieldSet = true;
43710 }
43711 if (("Error" == name))
43712 {
43713 this.errorField = value;
43714 this.errorFieldSet = true;
43715 }
43716 if (("Return" == name))
43717 {
43718 this.returnField = CustomAction.ParseReturnType(value);
43719 this.returnFieldSet = true;
43720 }
43721 if (("Execute" == name))
43722 {
43723 this.executeField = CustomAction.ParseExecuteType(value);
43724 this.executeFieldSet = true;
43725 }
43726 if (("Impersonate" == name))
43727 {
43728 this.impersonateField = Enums.ParseYesNoType(value);
43729 this.impersonateFieldSet = true;
43730 }
43731 if (("PatchUninstall" == name))
43732 {
43733 this.patchUninstallField = Enums.ParseYesNoType(value);
43734 this.patchUninstallFieldSet = true;
43735 }
43736 if (("Win64" == name))
43737 {
43738 this.win64Field = Enums.ParseYesNoType(value);
43739 this.win64FieldSet = true;
43740 }
43741 if (("TerminalServerAware" == name))
43742 {
43743 this.terminalServerAwareField = Enums.ParseYesNoType(value);
43744 this.terminalServerAwareFieldSet = true;
43745 }
43746 if (("HideTarget" == name))
43747 {
43748 this.hideTargetField = Enums.ParseYesNoType(value);
43749 this.hideTargetFieldSet = true;
43750 }
43751 if (("Content" == name))
43752 {
43753 this.contentField = value;
43754 this.contentFieldSet = true;
43755 }
43756 }
43757
43758 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
43759 public enum ScriptType
43760 {
43761
43762 IllegalValue = int.MaxValue,
43763
43764 NotSet = -1,
43765
43766 jscript,
43767
43768 vbscript,
43769 }
43770
43771 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
43772 public enum ReturnType
43773 {
43774
43775 IllegalValue = int.MaxValue,
43776
43777 NotSet = -1,
43778
43779 /// <summary>
43780 /// Indicates that the custom action will run asyncronously and execution may continue after the installer terminates.
43781 /// </summary>
43782 asyncNoWait,
43783
43784 /// <summary>
43785 /// Indicates that the custom action will run asynchronously but the installer will wait for the return code at sequence end.
43786 /// </summary>
43787 asyncWait,
43788
43789 /// <summary>
43790 /// Indicates that the custom action will run synchronously and the return code will be checked for success. This is the default.
43791 /// </summary>
43792 check,
43793
43794 /// <summary>
43795 /// Indicates that the custom action will run synchronously and the return code will not be checked.
43796 /// </summary>
43797 ignore,
43798 }
43799
43800 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
43801 public enum ExecuteType
43802 {
43803
43804 IllegalValue = int.MaxValue,
43805
43806 NotSet = -1,
43807
43808 /// <summary>
43809 /// Indicates that the custom action will run after successful completion of the installation script (at the end of the installation).
43810 /// </summary>
43811 commit,
43812
43813 /// <summary>
43814 /// Indicates that the custom action runs in-script (possibly with elevated privileges).
43815 /// </summary>
43816 deferred,
43817
43818 /// <summary>
43819 /// Indicates that the custom action will only run in the first sequence that runs it.
43820 /// </summary>
43821 firstSequence,
43822
43823 /// <summary>
43824 /// Indicates that the custom action will run during normal processing time with user privileges. This is the default.
43825 /// </summary>
43826 immediate,
43827
43828 /// <summary>
43829 /// Indicates that the custom action will only run in the first sequence that runs it in the same process.
43830 /// </summary>
43831 oncePerProcess,
43832
43833 /// <summary>
43834 /// Indicates that a custom action will run in the rollback sequence when a failure
43835 /// occurs during installation, usually to undo changes made by a deferred custom action.
43836 /// </summary>
43837 rollback,
43838
43839 /// <summary>
43840 /// Indicates that a custom action should be run a second time if it was previously run in an earlier sequence.
43841 /// </summary>
43842 secondSequence,
43843 }
43844 }
43845
43846 /// <summary>
43847 /// This will cause the entire contents of the Fragment containing the referenced CustomAction to be
43848 /// included in the installer database.
43849 /// </summary>
43850 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
43851 public class CustomActionRef : ISchemaElement, ISetAttributes
43852 {
43853
43854 private string idField;
43855
43856 private bool idFieldSet;
43857
43858 private ISchemaElement parentElement;
43859
43860 /// <summary>
43861 /// The identifier of the CustomAction to reference.
43862 /// </summary>
43863 public string Id
43864 {
43865 get
43866 {
43867 return this.idField;
43868 }
43869 set
43870 {
43871 this.idFieldSet = true;
43872 this.idField = value;
43873 }
43874 }
43875
43876 public virtual ISchemaElement ParentElement
43877 {
43878 get
43879 {
43880 return this.parentElement;
43881 }
43882 set
43883 {
43884 this.parentElement = value;
43885 }
43886 }
43887
43888 /// <summary>
43889 /// Processes this element and all child elements into an XmlWriter.
43890 /// </summary>
43891 public virtual void OutputXml(XmlWriter writer)
43892 {
43893 if ((null == writer))
43894 {
43895 throw new ArgumentNullException("writer");
43896 }
43897 writer.WriteStartElement("CustomActionRef", "http://wixtoolset.org/schemas/v4/wxs");
43898 if (this.idFieldSet)
43899 {
43900 writer.WriteAttributeString("Id", this.idField);
43901 }
43902 writer.WriteEndElement();
43903 }
43904
43905 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
43906 void ISetAttributes.SetAttribute(string name, string value)
43907 {
43908 if (String.IsNullOrEmpty(name))
43909 {
43910 throw new ArgumentNullException("name");
43911 }
43912 if (("Id" == name))
43913 {
43914 this.idField = value;
43915 this.idFieldSet = true;
43916 }
43917 }
43918 }
43919
43920 /// <summary>
43921 /// Sets a Directory to a particular value. This is accomplished by creating a Type 51 custom action that is appropriately scheduled in
43922 /// the InstallUISequence and InstallExecuteSequence.
43923 /// </summary>
43924 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
43925 public class SetDirectory : ISchemaElement, ISetAttributes
43926 {
43927
43928 private string actionField;
43929
43930 private bool actionFieldSet;
43931
43932 private string idField;
43933
43934 private bool idFieldSet;
43935
43936 private SequenceType sequenceField;
43937
43938 private bool sequenceFieldSet;
43939
43940 private string valueField;
43941
43942 private bool valueFieldSet;
43943
43944 private string contentField;
43945
43946 private bool contentFieldSet;
43947
43948 private ISchemaElement parentElement;
43949
43950 /// <summary>
43951 /// By default the action is "Set" + Id attribute's value. This optional attribute can override the action name in the case
43952 /// where multiple SetDirectory elements target the same Id (probably with mutually exclusive conditions).
43953 /// </summary>
43954 public string Action
43955 {
43956 get
43957 {
43958 return this.actionField;
43959 }
43960 set
43961 {
43962 this.actionFieldSet = true;
43963 this.actionField = value;
43964 }
43965 }
43966
43967 /// <summary>
43968 /// This attribute specifies a reference to a Directory element with matching Id attribute. The path of the Directory will be set to
43969 /// the Value attribute.
43970 /// </summary>
43971 public string Id
43972 {
43973 get
43974 {
43975 return this.idField;
43976 }
43977 set
43978 {
43979 this.idFieldSet = true;
43980 this.idField = value;
43981 }
43982 }
43983
43984 /// <summary>
43985 /// Controls which sequences the Directory assignment is sequenced in.
43986 /// For 'execute', the assignment is scheduled in the InstallExecuteSequence.
43987 /// For 'ui', the assignment is scheduled in the InstallUISequence.
43988 /// For 'first', the assignment is scheduled in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped at install time.
43989 /// For 'both', the assignment is scheduled in both the InstallUISequence and the InstallExecuteSequence.
43990 /// The default is 'both'.
43991 /// </summary>
43992 public SequenceType Sequence
43993 {
43994 get
43995 {
43996 return this.sequenceField;
43997 }
43998 set
43999 {
44000 this.sequenceFieldSet = true;
44001 this.sequenceField = value;
44002 }
44003 }
44004
44005 /// <summary>
44006 /// This attribute specifies a string value to assign to the Directory. The value can be a literal value or derived from a
44007 /// Property element using the
44008 /// </summary>
44009 public string Value
44010 {
44011 get
44012 {
44013 return this.valueField;
44014 }
44015 set
44016 {
44017 this.valueFieldSet = true;
44018 this.valueField = value;
44019 }
44020 }
44021
44022 /// <summary>
44023 /// The condition that determines whether the Directory is set. If the condition evaluates to false, the SetDirectory is skipped.
44024 /// </summary>
44025 public string Content
44026 {
44027 get
44028 {
44029 return this.contentField;
44030 }
44031 set
44032 {
44033 this.contentFieldSet = true;
44034 this.contentField = value;
44035 }
44036 }
44037
44038 public virtual ISchemaElement ParentElement
44039 {
44040 get
44041 {
44042 return this.parentElement;
44043 }
44044 set
44045 {
44046 this.parentElement = value;
44047 }
44048 }
44049
44050 /// <summary>
44051 /// Processes this element and all child elements into an XmlWriter.
44052 /// </summary>
44053 public virtual void OutputXml(XmlWriter writer)
44054 {
44055 if ((null == writer))
44056 {
44057 throw new ArgumentNullException("writer");
44058 }
44059 writer.WriteStartElement("SetDirectory", "http://wixtoolset.org/schemas/v4/wxs");
44060 if (this.actionFieldSet)
44061 {
44062 writer.WriteAttributeString("Action", this.actionField);
44063 }
44064 if (this.idFieldSet)
44065 {
44066 writer.WriteAttributeString("Id", this.idField);
44067 }
44068 if (this.sequenceFieldSet)
44069 {
44070 if ((this.sequenceField == SequenceType.both))
44071 {
44072 writer.WriteAttributeString("Sequence", "both");
44073 }
44074 if ((this.sequenceField == SequenceType.first))
44075 {
44076 writer.WriteAttributeString("Sequence", "first");
44077 }
44078 if ((this.sequenceField == SequenceType.execute))
44079 {
44080 writer.WriteAttributeString("Sequence", "execute");
44081 }
44082 if ((this.sequenceField == SequenceType.ui))
44083 {
44084 writer.WriteAttributeString("Sequence", "ui");
44085 }
44086 }
44087 if (this.valueFieldSet)
44088 {
44089 writer.WriteAttributeString("Value", this.valueField);
44090 }
44091 if (this.contentFieldSet)
44092 {
44093 writer.WriteString(this.contentField);
44094 }
44095 writer.WriteEndElement();
44096 }
44097
44098 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
44099 void ISetAttributes.SetAttribute(string name, string value)
44100 {
44101 if (String.IsNullOrEmpty(name))
44102 {
44103 throw new ArgumentNullException("name");
44104 }
44105 if (("Action" == name))
44106 {
44107 this.actionField = value;
44108 this.actionFieldSet = true;
44109 }
44110 if (("Id" == name))
44111 {
44112 this.idField = value;
44113 this.idFieldSet = true;
44114 }
44115 if (("Sequence" == name))
44116 {
44117 this.sequenceField = Enums.ParseSequenceType(value);
44118 this.sequenceFieldSet = true;
44119 }
44120 if (("Value" == name))
44121 {
44122 this.valueField = value;
44123 this.valueFieldSet = true;
44124 }
44125 if (("Content" == name))
44126 {
44127 this.contentField = value;
44128 this.contentFieldSet = true;
44129 }
44130 }
44131 }
44132
44133 /// <summary>
44134 /// Sets a Property to a particular value. This is accomplished by creating a Type 51 custom action that is appropriately scheduled in
44135 /// the InstallUISequence and InstallExecuteSequence.
44136 /// </summary>
44137 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44138 public class SetProperty : ISchemaElement, ISetAttributes
44139 {
44140
44141 private string actionField;
44142
44143 private bool actionFieldSet;
44144
44145 private string afterField;
44146
44147 private bool afterFieldSet;
44148
44149 private string beforeField;
44150
44151 private bool beforeFieldSet;
44152
44153 private string idField;
44154
44155 private bool idFieldSet;
44156
44157 private SequenceType sequenceField;
44158
44159 private bool sequenceFieldSet;
44160
44161 private string valueField;
44162
44163 private bool valueFieldSet;
44164
44165 private string contentField;
44166
44167 private bool contentFieldSet;
44168
44169 private ISchemaElement parentElement;
44170
44171 /// <summary>
44172 /// By default the action is "Set" + Id attribute's value. This optional attribute can override the action name in the case
44173 /// where multiple SetProperty elements target the same Id (probably with mutually exclusive conditions).
44174 /// </summary>
44175 public string Action
44176 {
44177 get
44178 {
44179 return this.actionField;
44180 }
44181 set
44182 {
44183 this.actionFieldSet = true;
44184 this.actionField = value;
44185 }
44186 }
44187
44188 /// <summary>
44189 /// 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.
44190 /// </summary>
44191 public string After
44192 {
44193 get
44194 {
44195 return this.afterField;
44196 }
44197 set
44198 {
44199 this.afterFieldSet = true;
44200 this.afterField = value;
44201 }
44202 }
44203
44204 /// <summary>
44205 /// 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.
44206 /// </summary>
44207 public string Before
44208 {
44209 get
44210 {
44211 return this.beforeField;
44212 }
44213 set
44214 {
44215 this.beforeFieldSet = true;
44216 this.beforeField = value;
44217 }
44218 }
44219
44220 /// <summary>
44221 /// This attribute specifies the Property to set to the Value.
44222 /// </summary>
44223 public string Id
44224 {
44225 get
44226 {
44227 return this.idField;
44228 }
44229 set
44230 {
44231 this.idFieldSet = true;
44232 this.idField = value;
44233 }
44234 }
44235
44236 /// <summary>
44237 /// Controls which sequences the Property assignment is sequenced in.
44238 /// For 'execute', the assignment is scheduled in the InstallExecuteSequence.
44239 /// For 'ui', the assignment is scheduled in the InstallUISequence.
44240 /// For 'first', the assignment is scheduled in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped at install time.
44241 /// For 'both', the assignment is scheduled in both the InstallUISequence and the InstallExecuteSequence.
44242 /// The default is 'both'.
44243 /// </summary>
44244 public SequenceType Sequence
44245 {
44246 get
44247 {
44248 return this.sequenceField;
44249 }
44250 set
44251 {
44252 this.sequenceFieldSet = true;
44253 this.sequenceField = value;
44254 }
44255 }
44256
44257 /// <summary>
44258 /// This attribute specifies a string value to assign to the Property. The value can be a literal value or derived from a
44259 /// Property element using the
44260 /// </summary>
44261 public string Value
44262 {
44263 get
44264 {
44265 return this.valueField;
44266 }
44267 set
44268 {
44269 this.valueFieldSet = true;
44270 this.valueField = value;
44271 }
44272 }
44273
44274 /// <summary>
44275 /// The condition that determines whether the Property is set. If the condition evaluates to false, the Set is skipped.
44276 /// </summary>
44277 public string Content
44278 {
44279 get
44280 {
44281 return this.contentField;
44282 }
44283 set
44284 {
44285 this.contentFieldSet = true;
44286 this.contentField = value;
44287 }
44288 }
44289
44290 public virtual ISchemaElement ParentElement
44291 {
44292 get
44293 {
44294 return this.parentElement;
44295 }
44296 set
44297 {
44298 this.parentElement = value;
44299 }
44300 }
44301
44302 /// <summary>
44303 /// Processes this element and all child elements into an XmlWriter.
44304 /// </summary>
44305 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
44306 public virtual void OutputXml(XmlWriter writer)
44307 {
44308 if ((null == writer))
44309 {
44310 throw new ArgumentNullException("writer");
44311 }
44312 writer.WriteStartElement("SetProperty", "http://wixtoolset.org/schemas/v4/wxs");
44313 if (this.actionFieldSet)
44314 {
44315 writer.WriteAttributeString("Action", this.actionField);
44316 }
44317 if (this.afterFieldSet)
44318 {
44319 writer.WriteAttributeString("After", this.afterField);
44320 }
44321 if (this.beforeFieldSet)
44322 {
44323 writer.WriteAttributeString("Before", this.beforeField);
44324 }
44325 if (this.idFieldSet)
44326 {
44327 writer.WriteAttributeString("Id", this.idField);
44328 }
44329 if (this.sequenceFieldSet)
44330 {
44331 if ((this.sequenceField == SequenceType.both))
44332 {
44333 writer.WriteAttributeString("Sequence", "both");
44334 }
44335 if ((this.sequenceField == SequenceType.first))
44336 {
44337 writer.WriteAttributeString("Sequence", "first");
44338 }
44339 if ((this.sequenceField == SequenceType.execute))
44340 {
44341 writer.WriteAttributeString("Sequence", "execute");
44342 }
44343 if ((this.sequenceField == SequenceType.ui))
44344 {
44345 writer.WriteAttributeString("Sequence", "ui");
44346 }
44347 }
44348 if (this.valueFieldSet)
44349 {
44350 writer.WriteAttributeString("Value", this.valueField);
44351 }
44352 if (this.contentFieldSet)
44353 {
44354 writer.WriteString(this.contentField);
44355 }
44356 writer.WriteEndElement();
44357 }
44358
44359 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
44360 void ISetAttributes.SetAttribute(string name, string value)
44361 {
44362 if (String.IsNullOrEmpty(name))
44363 {
44364 throw new ArgumentNullException("name");
44365 }
44366 if (("Action" == name))
44367 {
44368 this.actionField = value;
44369 this.actionFieldSet = true;
44370 }
44371 if (("After" == name))
44372 {
44373 this.afterField = value;
44374 this.afterFieldSet = true;
44375 }
44376 if (("Before" == name))
44377 {
44378 this.beforeField = value;
44379 this.beforeFieldSet = true;
44380 }
44381 if (("Id" == name))
44382 {
44383 this.idField = value;
44384 this.idFieldSet = true;
44385 }
44386 if (("Sequence" == name))
44387 {
44388 this.sequenceField = Enums.ParseSequenceType(value);
44389 this.sequenceFieldSet = true;
44390 }
44391 if (("Value" == name))
44392 {
44393 this.valueField = value;
44394 this.valueFieldSet = true;
44395 }
44396 if (("Content" == name))
44397 {
44398 this.contentField = value;
44399 this.contentFieldSet = true;
44400 }
44401 }
44402 }
44403
44404 /// <summary>
44405 /// This will cause the entire contents of the Fragment containing the referenced PatchFamily to be
44406 /// used in the process of creating a patch.
44407 /// </summary>
44408 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44409 public class PatchFamilyRef : ISchemaElement, ISetAttributes
44410 {
44411
44412 private string idField;
44413
44414 private bool idFieldSet;
44415
44416 private string productCodeField;
44417
44418 private bool productCodeFieldSet;
44419
44420 private ISchemaElement parentElement;
44421
44422 /// <summary>
44423 /// The identifier of the PatchFamily to reference.
44424 /// </summary>
44425 public string Id
44426 {
44427 get
44428 {
44429 return this.idField;
44430 }
44431 set
44432 {
44433 this.idFieldSet = true;
44434 this.idField = value;
44435 }
44436 }
44437
44438 /// <summary>
44439 /// Specifies the ProductCode of the product that this family applies to.
44440 /// </summary>
44441 public string ProductCode
44442 {
44443 get
44444 {
44445 return this.productCodeField;
44446 }
44447 set
44448 {
44449 this.productCodeFieldSet = true;
44450 this.productCodeField = value;
44451 }
44452 }
44453
44454 public virtual ISchemaElement ParentElement
44455 {
44456 get
44457 {
44458 return this.parentElement;
44459 }
44460 set
44461 {
44462 this.parentElement = value;
44463 }
44464 }
44465
44466 /// <summary>
44467 /// Processes this element and all child elements into an XmlWriter.
44468 /// </summary>
44469 public virtual void OutputXml(XmlWriter writer)
44470 {
44471 if ((null == writer))
44472 {
44473 throw new ArgumentNullException("writer");
44474 }
44475 writer.WriteStartElement("PatchFamilyRef", "http://wixtoolset.org/schemas/v4/wxs");
44476 if (this.idFieldSet)
44477 {
44478 writer.WriteAttributeString("Id", this.idField);
44479 }
44480 if (this.productCodeFieldSet)
44481 {
44482 writer.WriteAttributeString("ProductCode", this.productCodeField);
44483 }
44484 writer.WriteEndElement();
44485 }
44486
44487 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
44488 void ISetAttributes.SetAttribute(string name, string value)
44489 {
44490 if (String.IsNullOrEmpty(name))
44491 {
44492 throw new ArgumentNullException("name");
44493 }
44494 if (("Id" == name))
44495 {
44496 this.idField = value;
44497 this.idFieldSet = true;
44498 }
44499 if (("ProductCode" == name))
44500 {
44501 this.productCodeField = value;
44502 this.productCodeFieldSet = true;
44503 }
44504 }
44505 }
44506
44507 /// <summary>
44508 /// 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.
44509 /// </summary>
44510 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44511 public class ValidateProductID : ActionSequenceType, ISchemaElement
44512 {
44513
44514 /// <summary>
44515 /// Processes this element and all child elements into an XmlWriter.
44516 /// </summary>
44517 public override void OutputXml(XmlWriter writer)
44518 {
44519 if ((null == writer))
44520 {
44521 throw new ArgumentNullException("writer");
44522 }
44523 writer.WriteStartElement("ValidateProductID", "http://wixtoolset.org/schemas/v4/wxs");
44524 base.OutputXml(writer);
44525 writer.WriteEndElement();
44526 }
44527 }
44528
44529 /// <summary>
44530 /// 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.
44531 /// </summary>
44532 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44533 public class CostInitialize : ActionSequenceType, ISchemaElement
44534 {
44535
44536 /// <summary>
44537 /// Processes this element and all child elements into an XmlWriter.
44538 /// </summary>
44539 public override void OutputXml(XmlWriter writer)
44540 {
44541 if ((null == writer))
44542 {
44543 throw new ArgumentNullException("writer");
44544 }
44545 writer.WriteStartElement("CostInitialize", "http://wixtoolset.org/schemas/v4/wxs");
44546 base.OutputXml(writer);
44547 writer.WriteEndElement();
44548 }
44549 }
44550
44551 /// <summary>
44552 /// 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.
44553 /// </summary>
44554 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44555 public class FileCost : ActionSequenceType, ISchemaElement
44556 {
44557
44558 /// <summary>
44559 /// Processes this element and all child elements into an XmlWriter.
44560 /// </summary>
44561 public override void OutputXml(XmlWriter writer)
44562 {
44563 if ((null == writer))
44564 {
44565 throw new ArgumentNullException("writer");
44566 }
44567 writer.WriteStartElement("FileCost", "http://wixtoolset.org/schemas/v4/wxs");
44568 base.OutputXml(writer);
44569 writer.WriteEndElement();
44570 }
44571 }
44572
44573 /// <summary>
44574 /// 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.
44575 /// </summary>
44576 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44577 public class IsolateComponents : ActionSequenceType, ISchemaElement
44578 {
44579
44580 /// <summary>
44581 /// Processes this element and all child elements into an XmlWriter.
44582 /// </summary>
44583 public override void OutputXml(XmlWriter writer)
44584 {
44585 if ((null == writer))
44586 {
44587 throw new ArgumentNullException("writer");
44588 }
44589 writer.WriteStartElement("IsolateComponents", "http://wixtoolset.org/schemas/v4/wxs");
44590 base.OutputXml(writer);
44591 writer.WriteEndElement();
44592 }
44593 }
44594
44595 /// <summary>
44596 /// 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.
44597 /// </summary>
44598 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44599 public class CostFinalize : ActionSequenceType, ISchemaElement
44600 {
44601
44602 /// <summary>
44603 /// Processes this element and all child elements into an XmlWriter.
44604 /// </summary>
44605 public override void OutputXml(XmlWriter writer)
44606 {
44607 if ((null == writer))
44608 {
44609 throw new ArgumentNullException("writer");
44610 }
44611 writer.WriteStartElement("CostFinalize", "http://wixtoolset.org/schemas/v4/wxs");
44612 base.OutputXml(writer);
44613 writer.WriteEndElement();
44614 }
44615 }
44616
44617 /// <summary>
44618 /// 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.
44619 /// </summary>
44620 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44621 public class SetODBCFolders : ActionSequenceType, ISchemaElement
44622 {
44623
44624 /// <summary>
44625 /// Processes this element and all child elements into an XmlWriter.
44626 /// </summary>
44627 public override void OutputXml(XmlWriter writer)
44628 {
44629 if ((null == writer))
44630 {
44631 throw new ArgumentNullException("writer");
44632 }
44633 writer.WriteStartElement("SetODBCFolders", "http://wixtoolset.org/schemas/v4/wxs");
44634 base.OutputXml(writer);
44635 writer.WriteEndElement();
44636 }
44637 }
44638
44639 /// <summary>
44640 /// 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.
44641 /// </summary>
44642 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44643 public class MigrateFeatureStates : ActionSequenceType, ISchemaElement
44644 {
44645
44646 /// <summary>
44647 /// Processes this element and all child elements into an XmlWriter.
44648 /// </summary>
44649 public override void OutputXml(XmlWriter writer)
44650 {
44651 if ((null == writer))
44652 {
44653 throw new ArgumentNullException("writer");
44654 }
44655 writer.WriteStartElement("MigrateFeatureStates", "http://wixtoolset.org/schemas/v4/wxs");
44656 base.OutputXml(writer);
44657 writer.WriteEndElement();
44658 }
44659 }
44660
44661 /// <summary>
44662 /// Initiates the execution sequence. The condition for this action may be specified in the element's inner text.
44663 /// </summary>
44664 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44665 public class ExecuteAction : ActionSequenceType, ISchemaElement
44666 {
44667
44668 /// <summary>
44669 /// Processes this element and all child elements into an XmlWriter.
44670 /// </summary>
44671 public override void OutputXml(XmlWriter writer)
44672 {
44673 if ((null == writer))
44674 {
44675 throw new ArgumentNullException("writer");
44676 }
44677 writer.WriteStartElement("ExecuteAction", "http://wixtoolset.org/schemas/v4/wxs");
44678 base.OutputXml(writer);
44679 writer.WriteEndElement();
44680 }
44681 }
44682
44683 /// <summary>
44684 /// 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.
44685 /// </summary>
44686 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44687 public class InstallValidate : ActionSequenceType, ISchemaElement
44688 {
44689
44690 /// <summary>
44691 /// Processes this element and all child elements into an XmlWriter.
44692 /// </summary>
44693 public override void OutputXml(XmlWriter writer)
44694 {
44695 if ((null == writer))
44696 {
44697 throw new ArgumentNullException("writer");
44698 }
44699 writer.WriteStartElement("InstallValidate", "http://wixtoolset.org/schemas/v4/wxs");
44700 base.OutputXml(writer);
44701 writer.WriteEndElement();
44702 }
44703 }
44704
44705 /// <summary>
44706 /// 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.
44707 /// </summary>
44708 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44709 public class InstallInitialize : ActionSequenceType, ISchemaElement
44710 {
44711
44712 /// <summary>
44713 /// Processes this element and all child elements into an XmlWriter.
44714 /// </summary>
44715 public override void OutputXml(XmlWriter writer)
44716 {
44717 if ((null == writer))
44718 {
44719 throw new ArgumentNullException("writer");
44720 }
44721 writer.WriteStartElement("InstallInitialize", "http://wixtoolset.org/schemas/v4/wxs");
44722 base.OutputXml(writer);
44723 writer.WriteEndElement();
44724 }
44725 }
44726
44727 /// <summary>
44728 /// Ensures the needed amount of space exists in the registry. The condition for this action may be specified in the element's inner text.
44729 /// </summary>
44730 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44731 public class AllocateRegistrySpace : ActionSequenceType, ISchemaElement
44732 {
44733
44734 /// <summary>
44735 /// Processes this element and all child elements into an XmlWriter.
44736 /// </summary>
44737 public override void OutputXml(XmlWriter writer)
44738 {
44739 if ((null == writer))
44740 {
44741 throw new ArgumentNullException("writer");
44742 }
44743 writer.WriteStartElement("AllocateRegistrySpace", "http://wixtoolset.org/schemas/v4/wxs");
44744 base.OutputXml(writer);
44745 writer.WriteEndElement();
44746 }
44747 }
44748
44749 /// <summary>
44750 /// 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.
44751 /// </summary>
44752 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44753 public class ProcessComponents : ActionSequenceType, ISchemaElement
44754 {
44755
44756 /// <summary>
44757 /// Processes this element and all child elements into an XmlWriter.
44758 /// </summary>
44759 public override void OutputXml(XmlWriter writer)
44760 {
44761 if ((null == writer))
44762 {
44763 throw new ArgumentNullException("writer");
44764 }
44765 writer.WriteStartElement("ProcessComponents", "http://wixtoolset.org/schemas/v4/wxs");
44766 base.OutputXml(writer);
44767 writer.WriteEndElement();
44768 }
44769 }
44770
44771 /// <summary>
44772 /// Manages the unadvertisement of components listed in the PublishComponent table. The condition for this action may be specified in the element's inner text.
44773 /// </summary>
44774 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44775 public class UnpublishComponents : ActionSequenceType, ISchemaElement
44776 {
44777
44778 /// <summary>
44779 /// Processes this element and all child elements into an XmlWriter.
44780 /// </summary>
44781 public override void OutputXml(XmlWriter writer)
44782 {
44783 if ((null == writer))
44784 {
44785 throw new ArgumentNullException("writer");
44786 }
44787 writer.WriteStartElement("UnpublishComponents", "http://wixtoolset.org/schemas/v4/wxs");
44788 base.OutputXml(writer);
44789 writer.WriteEndElement();
44790 }
44791 }
44792
44793 /// <summary>
44794 /// 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.
44795 /// </summary>
44796 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44797 public class MsiUnpublishAssemblies : ActionSequenceType, ISchemaElement
44798 {
44799
44800 /// <summary>
44801 /// Processes this element and all child elements into an XmlWriter.
44802 /// </summary>
44803 public override void OutputXml(XmlWriter writer)
44804 {
44805 if ((null == writer))
44806 {
44807 throw new ArgumentNullException("writer");
44808 }
44809 writer.WriteStartElement("MsiUnpublishAssemblies", "http://wixtoolset.org/schemas/v4/wxs");
44810 base.OutputXml(writer);
44811 writer.WriteEndElement();
44812 }
44813 }
44814
44815 /// <summary>
44816 /// 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.
44817 /// </summary>
44818 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44819 public class UnpublishFeatures : ActionSequenceType, ISchemaElement
44820 {
44821
44822 /// <summary>
44823 /// Processes this element and all child elements into an XmlWriter.
44824 /// </summary>
44825 public override void OutputXml(XmlWriter writer)
44826 {
44827 if ((null == writer))
44828 {
44829 throw new ArgumentNullException("writer");
44830 }
44831 writer.WriteStartElement("UnpublishFeatures", "http://wixtoolset.org/schemas/v4/wxs");
44832 base.OutputXml(writer);
44833 writer.WriteEndElement();
44834 }
44835 }
44836
44837 /// <summary>
44838 /// Stops system services. The condition for this action may be specified in the element's inner text.
44839 /// </summary>
44840 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44841 public class StopServices : ActionSequenceType, ISchemaElement
44842 {
44843
44844 /// <summary>
44845 /// Processes this element and all child elements into an XmlWriter.
44846 /// </summary>
44847 public override void OutputXml(XmlWriter writer)
44848 {
44849 if ((null == writer))
44850 {
44851 throw new ArgumentNullException("writer");
44852 }
44853 writer.WriteStartElement("StopServices", "http://wixtoolset.org/schemas/v4/wxs");
44854 base.OutputXml(writer);
44855 writer.WriteEndElement();
44856 }
44857 }
44858
44859 /// <summary>
44860 /// Stops a service and removes its registration from the system. The condition for this action may be specified in the element's inner text.
44861 /// </summary>
44862 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44863 public class DeleteServices : ActionSequenceType, ISchemaElement
44864 {
44865
44866 /// <summary>
44867 /// Processes this element and all child elements into an XmlWriter.
44868 /// </summary>
44869 public override void OutputXml(XmlWriter writer)
44870 {
44871 if ((null == writer))
44872 {
44873 throw new ArgumentNullException("writer");
44874 }
44875 writer.WriteStartElement("DeleteServices", "http://wixtoolset.org/schemas/v4/wxs");
44876 base.OutputXml(writer);
44877 writer.WriteEndElement();
44878 }
44879 }
44880
44881 /// <summary>
44882 /// Removes COM+ applications from the registry. The condition for this action may be specified in the element's inner text.
44883 /// </summary>
44884 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44885 public class UnregisterComPlus : ActionSequenceType, ISchemaElement
44886 {
44887
44888 /// <summary>
44889 /// Processes this element and all child elements into an XmlWriter.
44890 /// </summary>
44891 public override void OutputXml(XmlWriter writer)
44892 {
44893 if ((null == writer))
44894 {
44895 throw new ArgumentNullException("writer");
44896 }
44897 writer.WriteStartElement("UnregisterComPlus", "http://wixtoolset.org/schemas/v4/wxs");
44898 base.OutputXml(writer);
44899 writer.WriteEndElement();
44900 }
44901 }
44902
44903 /// <summary>
44904 /// 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.
44905 /// </summary>
44906 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44907 public class SelfUnregModules : ActionSequenceType, ISchemaElement
44908 {
44909
44910 /// <summary>
44911 /// Processes this element and all child elements into an XmlWriter.
44912 /// </summary>
44913 public override void OutputXml(XmlWriter writer)
44914 {
44915 if ((null == writer))
44916 {
44917 throw new ArgumentNullException("writer");
44918 }
44919 writer.WriteStartElement("SelfUnregModules", "http://wixtoolset.org/schemas/v4/wxs");
44920 base.OutputXml(writer);
44921 writer.WriteEndElement();
44922 }
44923 }
44924
44925 /// <summary>
44926 /// Unregisters type libraries from the system. The condition for this action may be specified in the element's inner text.
44927 /// </summary>
44928 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44929 public class UnregisterTypeLibraries : ActionSequenceType, ISchemaElement
44930 {
44931
44932 /// <summary>
44933 /// Processes this element and all child elements into an XmlWriter.
44934 /// </summary>
44935 public override void OutputXml(XmlWriter writer)
44936 {
44937 if ((null == writer))
44938 {
44939 throw new ArgumentNullException("writer");
44940 }
44941 writer.WriteStartElement("UnregisterTypeLibraries", "http://wixtoolset.org/schemas/v4/wxs");
44942 base.OutputXml(writer);
44943 writer.WriteEndElement();
44944 }
44945 }
44946
44947 /// <summary>
44948 /// 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.
44949 /// </summary>
44950 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44951 public class RemoveODBC : ActionSequenceType, ISchemaElement
44952 {
44953
44954 /// <summary>
44955 /// Processes this element and all child elements into an XmlWriter.
44956 /// </summary>
44957 public override void OutputXml(XmlWriter writer)
44958 {
44959 if ((null == writer))
44960 {
44961 throw new ArgumentNullException("writer");
44962 }
44963 writer.WriteStartElement("RemoveODBC", "http://wixtoolset.org/schemas/v4/wxs");
44964 base.OutputXml(writer);
44965 writer.WriteEndElement();
44966 }
44967 }
44968
44969 /// <summary>
44970 /// Removes registration information about installed fonts from the system. The condition for this action may be specified in the element's inner text.
44971 /// </summary>
44972 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44973 public class UnregisterFonts : ActionSequenceType, ISchemaElement
44974 {
44975
44976 /// <summary>
44977 /// Processes this element and all child elements into an XmlWriter.
44978 /// </summary>
44979 public override void OutputXml(XmlWriter writer)
44980 {
44981 if ((null == writer))
44982 {
44983 throw new ArgumentNullException("writer");
44984 }
44985 writer.WriteStartElement("UnregisterFonts", "http://wixtoolset.org/schemas/v4/wxs");
44986 base.OutputXml(writer);
44987 writer.WriteEndElement();
44988 }
44989 }
44990
44991 /// <summary>
44992 /// 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.
44993 /// </summary>
44994 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
44995 public class RemoveRegistryValues : ActionSequenceType, ISchemaElement
44996 {
44997
44998 /// <summary>
44999 /// Processes this element and all child elements into an XmlWriter.
45000 /// </summary>
45001 public override void OutputXml(XmlWriter writer)
45002 {
45003 if ((null == writer))
45004 {
45005 throw new ArgumentNullException("writer");
45006 }
45007 writer.WriteStartElement("RemoveRegistryValues", "http://wixtoolset.org/schemas/v4/wxs");
45008 base.OutputXml(writer);
45009 writer.WriteEndElement();
45010 }
45011 }
45012
45013 /// <summary>
45014 /// 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.
45015 /// </summary>
45016 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45017 public class UnregisterClassInfo : ActionSequenceType, ISchemaElement
45018 {
45019
45020 /// <summary>
45021 /// Processes this element and all child elements into an XmlWriter.
45022 /// </summary>
45023 public override void OutputXml(XmlWriter writer)
45024 {
45025 if ((null == writer))
45026 {
45027 throw new ArgumentNullException("writer");
45028 }
45029 writer.WriteStartElement("UnregisterClassInfo", "http://wixtoolset.org/schemas/v4/wxs");
45030 base.OutputXml(writer);
45031 writer.WriteEndElement();
45032 }
45033 }
45034
45035 /// <summary>
45036 /// 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.
45037 /// </summary>
45038 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45039 public class UnregisterExtensionInfo : ActionSequenceType, ISchemaElement
45040 {
45041
45042 /// <summary>
45043 /// Processes this element and all child elements into an XmlWriter.
45044 /// </summary>
45045 public override void OutputXml(XmlWriter writer)
45046 {
45047 if ((null == writer))
45048 {
45049 throw new ArgumentNullException("writer");
45050 }
45051 writer.WriteStartElement("UnregisterExtensionInfo", "http://wixtoolset.org/schemas/v4/wxs");
45052 base.OutputXml(writer);
45053 writer.WriteEndElement();
45054 }
45055 }
45056
45057 /// <summary>
45058 /// Manages the unregistration of OLE ProgId information with the system. The condition for this action may be specified in the element's inner text.
45059 /// </summary>
45060 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45061 public class UnregisterProgIdInfo : ActionSequenceType, ISchemaElement
45062 {
45063
45064 /// <summary>
45065 /// Processes this element and all child elements into an XmlWriter.
45066 /// </summary>
45067 public override void OutputXml(XmlWriter writer)
45068 {
45069 if ((null == writer))
45070 {
45071 throw new ArgumentNullException("writer");
45072 }
45073 writer.WriteStartElement("UnregisterProgIdInfo", "http://wixtoolset.org/schemas/v4/wxs");
45074 base.OutputXml(writer);
45075 writer.WriteEndElement();
45076 }
45077 }
45078
45079 /// <summary>
45080 /// Unregisters MIME-related registry information from the system. The condition for this action may be specified in the element's inner text.
45081 /// </summary>
45082 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45083 public class UnregisterMIMEInfo : ActionSequenceType, ISchemaElement
45084 {
45085
45086 /// <summary>
45087 /// Processes this element and all child elements into an XmlWriter.
45088 /// </summary>
45089 public override void OutputXml(XmlWriter writer)
45090 {
45091 if ((null == writer))
45092 {
45093 throw new ArgumentNullException("writer");
45094 }
45095 writer.WriteStartElement("UnregisterMIMEInfo", "http://wixtoolset.org/schemas/v4/wxs");
45096 base.OutputXml(writer);
45097 writer.WriteEndElement();
45098 }
45099 }
45100
45101 /// <summary>
45102 /// 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.
45103 /// </summary>
45104 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45105 public class RemoveIniValues : ActionSequenceType, ISchemaElement
45106 {
45107
45108 /// <summary>
45109 /// Processes this element and all child elements into an XmlWriter.
45110 /// </summary>
45111 public override void OutputXml(XmlWriter writer)
45112 {
45113 if ((null == writer))
45114 {
45115 throw new ArgumentNullException("writer");
45116 }
45117 writer.WriteStartElement("RemoveIniValues", "http://wixtoolset.org/schemas/v4/wxs");
45118 base.OutputXml(writer);
45119 writer.WriteEndElement();
45120 }
45121 }
45122
45123 /// <summary>
45124 /// 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.
45125 /// </summary>
45126 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45127 public class RemoveShortcuts : ActionSequenceType, ISchemaElement
45128 {
45129
45130 /// <summary>
45131 /// Processes this element and all child elements into an XmlWriter.
45132 /// </summary>
45133 public override void OutputXml(XmlWriter writer)
45134 {
45135 if ((null == writer))
45136 {
45137 throw new ArgumentNullException("writer");
45138 }
45139 writer.WriteStartElement("RemoveShortcuts", "http://wixtoolset.org/schemas/v4/wxs");
45140 base.OutputXml(writer);
45141 writer.WriteEndElement();
45142 }
45143 }
45144
45145 /// <summary>
45146 /// Modifies the values of environment variables. The condition for this action may be specified in the element's inner text.
45147 /// </summary>
45148 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45149 public class RemoveEnvironmentStrings : ActionSequenceType, ISchemaElement
45150 {
45151
45152 /// <summary>
45153 /// Processes this element and all child elements into an XmlWriter.
45154 /// </summary>
45155 public override void OutputXml(XmlWriter writer)
45156 {
45157 if ((null == writer))
45158 {
45159 throw new ArgumentNullException("writer");
45160 }
45161 writer.WriteStartElement("RemoveEnvironmentStrings", "http://wixtoolset.org/schemas/v4/wxs");
45162 base.OutputXml(writer);
45163 writer.WriteEndElement();
45164 }
45165 }
45166
45167 /// <summary>
45168 /// Deletes files installed by the DuplicateFiles action. The condition for this action may be specified in the element's inner text.
45169 /// </summary>
45170 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45171 public class RemoveDuplicateFiles : ActionSequenceType, ISchemaElement
45172 {
45173
45174 /// <summary>
45175 /// Processes this element and all child elements into an XmlWriter.
45176 /// </summary>
45177 public override void OutputXml(XmlWriter writer)
45178 {
45179 if ((null == writer))
45180 {
45181 throw new ArgumentNullException("writer");
45182 }
45183 writer.WriteStartElement("RemoveDuplicateFiles", "http://wixtoolset.org/schemas/v4/wxs");
45184 base.OutputXml(writer);
45185 writer.WriteEndElement();
45186 }
45187 }
45188
45189 /// <summary>
45190 /// Removes files previously installed by the InstallFiles action. The condition for this action may be specified in the element's inner text.
45191 /// </summary>
45192 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45193 public class RemoveFiles : ActionSequenceType, ISchemaElement
45194 {
45195
45196 /// <summary>
45197 /// Processes this element and all child elements into an XmlWriter.
45198 /// </summary>
45199 public override void OutputXml(XmlWriter writer)
45200 {
45201 if ((null == writer))
45202 {
45203 throw new ArgumentNullException("writer");
45204 }
45205 writer.WriteStartElement("RemoveFiles", "http://wixtoolset.org/schemas/v4/wxs");
45206 base.OutputXml(writer);
45207 writer.WriteEndElement();
45208 }
45209 }
45210
45211 /// <summary>
45212 /// 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.
45213 /// </summary>
45214 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45215 public class RemoveFolders : ActionSequenceType, ISchemaElement
45216 {
45217
45218 /// <summary>
45219 /// Processes this element and all child elements into an XmlWriter.
45220 /// </summary>
45221 public override void OutputXml(XmlWriter writer)
45222 {
45223 if ((null == writer))
45224 {
45225 throw new ArgumentNullException("writer");
45226 }
45227 writer.WriteStartElement("RemoveFolders", "http://wixtoolset.org/schemas/v4/wxs");
45228 base.OutputXml(writer);
45229 writer.WriteEndElement();
45230 }
45231 }
45232
45233 /// <summary>
45234 /// 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.
45235 /// </summary>
45236 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45237 public class CreateFolders : ActionSequenceType, ISchemaElement
45238 {
45239
45240 /// <summary>
45241 /// Processes this element and all child elements into an XmlWriter.
45242 /// </summary>
45243 public override void OutputXml(XmlWriter writer)
45244 {
45245 if ((null == writer))
45246 {
45247 throw new ArgumentNullException("writer");
45248 }
45249 writer.WriteStartElement("CreateFolders", "http://wixtoolset.org/schemas/v4/wxs");
45250 base.OutputXml(writer);
45251 writer.WriteEndElement();
45252 }
45253 }
45254
45255 /// <summary>
45256 /// 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.
45257 /// </summary>
45258 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45259 public class MoveFiles : ActionSequenceType, ISchemaElement
45260 {
45261
45262 /// <summary>
45263 /// Processes this element and all child elements into an XmlWriter.
45264 /// </summary>
45265 public override void OutputXml(XmlWriter writer)
45266 {
45267 if ((null == writer))
45268 {
45269 throw new ArgumentNullException("writer");
45270 }
45271 writer.WriteStartElement("MoveFiles", "http://wixtoolset.org/schemas/v4/wxs");
45272 base.OutputXml(writer);
45273 writer.WriteEndElement();
45274 }
45275 }
45276
45277 /// <summary>
45278 /// Copies the product database to the administrative installation point. The condition for this action may be specified in the element's inner text.
45279 /// </summary>
45280 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45281 public class InstallAdminPackage : ActionSequenceType, ISchemaElement
45282 {
45283
45284 /// <summary>
45285 /// Processes this element and all child elements into an XmlWriter.
45286 /// </summary>
45287 public override void OutputXml(XmlWriter writer)
45288 {
45289 if ((null == writer))
45290 {
45291 throw new ArgumentNullException("writer");
45292 }
45293 writer.WriteStartElement("InstallAdminPackage", "http://wixtoolset.org/schemas/v4/wxs");
45294 base.OutputXml(writer);
45295 writer.WriteEndElement();
45296 }
45297 }
45298
45299 /// <summary>
45300 /// 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.
45301 /// </summary>
45302 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45303 public class InstallFiles : ActionSequenceType, ISchemaElement
45304 {
45305
45306 /// <summary>
45307 /// Processes this element and all child elements into an XmlWriter.
45308 /// </summary>
45309 public override void OutputXml(XmlWriter writer)
45310 {
45311 if ((null == writer))
45312 {
45313 throw new ArgumentNullException("writer");
45314 }
45315 writer.WriteStartElement("InstallFiles", "http://wixtoolset.org/schemas/v4/wxs");
45316 base.OutputXml(writer);
45317 writer.WriteEndElement();
45318 }
45319 }
45320
45321 /// <summary>
45322 /// Duplicates files installed by the InstallFiles action. The condition for this action may be specified in the element's inner text.
45323 /// </summary>
45324 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45325 public class DuplicateFiles : ActionSequenceType, ISchemaElement
45326 {
45327
45328 /// <summary>
45329 /// Processes this element and all child elements into an XmlWriter.
45330 /// </summary>
45331 public override void OutputXml(XmlWriter writer)
45332 {
45333 if ((null == writer))
45334 {
45335 throw new ArgumentNullException("writer");
45336 }
45337 writer.WriteStartElement("DuplicateFiles", "http://wixtoolset.org/schemas/v4/wxs");
45338 base.OutputXml(writer);
45339 writer.WriteEndElement();
45340 }
45341 }
45342
45343 /// <summary>
45344 /// 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.
45345 /// </summary>
45346 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45347 public class PatchFiles : ActionSequenceType, ISchemaElement
45348 {
45349
45350 /// <summary>
45351 /// Processes this element and all child elements into an XmlWriter.
45352 /// </summary>
45353 public override void OutputXml(XmlWriter writer)
45354 {
45355 if ((null == writer))
45356 {
45357 throw new ArgumentNullException("writer");
45358 }
45359 writer.WriteStartElement("PatchFiles", "http://wixtoolset.org/schemas/v4/wxs");
45360 base.OutputXml(writer);
45361 writer.WriteEndElement();
45362 }
45363 }
45364
45365 /// <summary>
45366 /// 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.
45367 /// </summary>
45368 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45369 public class BindImage : ActionSequenceType, ISchemaElement
45370 {
45371
45372 /// <summary>
45373 /// Processes this element and all child elements into an XmlWriter.
45374 /// </summary>
45375 public override void OutputXml(XmlWriter writer)
45376 {
45377 if ((null == writer))
45378 {
45379 throw new ArgumentNullException("writer");
45380 }
45381 writer.WriteStartElement("BindImage", "http://wixtoolset.org/schemas/v4/wxs");
45382 base.OutputXml(writer);
45383 writer.WriteEndElement();
45384 }
45385 }
45386
45387 /// <summary>
45388 /// Manages the creation of shortcuts. The condition for this action may be specified in the element's inner text.
45389 /// </summary>
45390 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45391 public class CreateShortcuts : ActionSequenceType, ISchemaElement
45392 {
45393
45394 /// <summary>
45395 /// Processes this element and all child elements into an XmlWriter.
45396 /// </summary>
45397 public override void OutputXml(XmlWriter writer)
45398 {
45399 if ((null == writer))
45400 {
45401 throw new ArgumentNullException("writer");
45402 }
45403 writer.WriteStartElement("CreateShortcuts", "http://wixtoolset.org/schemas/v4/wxs");
45404 base.OutputXml(writer);
45405 writer.WriteEndElement();
45406 }
45407 }
45408
45409 /// <summary>
45410 /// Manages the registration of COM class information with the system. The condition for this action may be specified in the element's inner text.
45411 /// </summary>
45412 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45413 public class RegisterClassInfo : ActionSequenceType, ISchemaElement
45414 {
45415
45416 /// <summary>
45417 /// Processes this element and all child elements into an XmlWriter.
45418 /// </summary>
45419 public override void OutputXml(XmlWriter writer)
45420 {
45421 if ((null == writer))
45422 {
45423 throw new ArgumentNullException("writer");
45424 }
45425 writer.WriteStartElement("RegisterClassInfo", "http://wixtoolset.org/schemas/v4/wxs");
45426 base.OutputXml(writer);
45427 writer.WriteEndElement();
45428 }
45429 }
45430
45431 /// <summary>
45432 /// Manages the registration of extension related information with the system. The condition for this action may be specified in the element's inner text.
45433 /// </summary>
45434 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45435 public class RegisterExtensionInfo : ActionSequenceType, ISchemaElement
45436 {
45437
45438 /// <summary>
45439 /// Processes this element and all child elements into an XmlWriter.
45440 /// </summary>
45441 public override void OutputXml(XmlWriter writer)
45442 {
45443 if ((null == writer))
45444 {
45445 throw new ArgumentNullException("writer");
45446 }
45447 writer.WriteStartElement("RegisterExtensionInfo", "http://wixtoolset.org/schemas/v4/wxs");
45448 base.OutputXml(writer);
45449 writer.WriteEndElement();
45450 }
45451 }
45452
45453 /// <summary>
45454 /// Manages the registration of OLE ProgId information with the system. The condition for this action may be specified in the element's inner text.
45455 /// </summary>
45456 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45457 public class RegisterProgIdInfo : ActionSequenceType, ISchemaElement
45458 {
45459
45460 /// <summary>
45461 /// Processes this element and all child elements into an XmlWriter.
45462 /// </summary>
45463 public override void OutputXml(XmlWriter writer)
45464 {
45465 if ((null == writer))
45466 {
45467 throw new ArgumentNullException("writer");
45468 }
45469 writer.WriteStartElement("RegisterProgIdInfo", "http://wixtoolset.org/schemas/v4/wxs");
45470 base.OutputXml(writer);
45471 writer.WriteEndElement();
45472 }
45473 }
45474
45475 /// <summary>
45476 /// Registers MIME-related registry information with the system. The condition for this action may be specified in the element's inner text.
45477 /// </summary>
45478 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45479 public class RegisterMIMEInfo : ActionSequenceType, ISchemaElement
45480 {
45481
45482 /// <summary>
45483 /// Processes this element and all child elements into an XmlWriter.
45484 /// </summary>
45485 public override void OutputXml(XmlWriter writer)
45486 {
45487 if ((null == writer))
45488 {
45489 throw new ArgumentNullException("writer");
45490 }
45491 writer.WriteStartElement("RegisterMIMEInfo", "http://wixtoolset.org/schemas/v4/wxs");
45492 base.OutputXml(writer);
45493 writer.WriteEndElement();
45494 }
45495 }
45496
45497 /// <summary>
45498 /// Sets up an application's registry information. The condition for this action may be specified in the element's inner text.
45499 /// </summary>
45500 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45501 public class WriteRegistryValues : ActionSequenceType, ISchemaElement
45502 {
45503
45504 /// <summary>
45505 /// Processes this element and all child elements into an XmlWriter.
45506 /// </summary>
45507 public override void OutputXml(XmlWriter writer)
45508 {
45509 if ((null == writer))
45510 {
45511 throw new ArgumentNullException("writer");
45512 }
45513 writer.WriteStartElement("WriteRegistryValues", "http://wixtoolset.org/schemas/v4/wxs");
45514 base.OutputXml(writer);
45515 writer.WriteEndElement();
45516 }
45517 }
45518
45519 /// <summary>
45520 /// 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.
45521 /// </summary>
45522 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45523 public class WriteIniValues : ActionSequenceType, ISchemaElement
45524 {
45525
45526 /// <summary>
45527 /// Processes this element and all child elements into an XmlWriter.
45528 /// </summary>
45529 public override void OutputXml(XmlWriter writer)
45530 {
45531 if ((null == writer))
45532 {
45533 throw new ArgumentNullException("writer");
45534 }
45535 writer.WriteStartElement("WriteIniValues", "http://wixtoolset.org/schemas/v4/wxs");
45536 base.OutputXml(writer);
45537 writer.WriteEndElement();
45538 }
45539 }
45540
45541 /// <summary>
45542 /// Modifies the values of environment variables. The condition for this action may be specified in the element's inner text.
45543 /// </summary>
45544 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45545 public class WriteEnvironmentStrings : ActionSequenceType, ISchemaElement
45546 {
45547
45548 /// <summary>
45549 /// Processes this element and all child elements into an XmlWriter.
45550 /// </summary>
45551 public override void OutputXml(XmlWriter writer)
45552 {
45553 if ((null == writer))
45554 {
45555 throw new ArgumentNullException("writer");
45556 }
45557 writer.WriteStartElement("WriteEnvironmentStrings", "http://wixtoolset.org/schemas/v4/wxs");
45558 base.OutputXml(writer);
45559 writer.WriteEndElement();
45560 }
45561 }
45562
45563 /// <summary>
45564 /// Registers installed fonts with the system. The condition for this action may be specified in the element's inner text.
45565 /// </summary>
45566 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45567 public class RegisterFonts : ActionSequenceType, ISchemaElement
45568 {
45569
45570 /// <summary>
45571 /// Processes this element and all child elements into an XmlWriter.
45572 /// </summary>
45573 public override void OutputXml(XmlWriter writer)
45574 {
45575 if ((null == writer))
45576 {
45577 throw new ArgumentNullException("writer");
45578 }
45579 writer.WriteStartElement("RegisterFonts", "http://wixtoolset.org/schemas/v4/wxs");
45580 base.OutputXml(writer);
45581 writer.WriteEndElement();
45582 }
45583 }
45584
45585 /// <summary>
45586 /// 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.
45587 /// </summary>
45588 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45589 public class InstallODBC : ActionSequenceType, ISchemaElement
45590 {
45591
45592 /// <summary>
45593 /// Processes this element and all child elements into an XmlWriter.
45594 /// </summary>
45595 public override void OutputXml(XmlWriter writer)
45596 {
45597 if ((null == writer))
45598 {
45599 throw new ArgumentNullException("writer");
45600 }
45601 writer.WriteStartElement("InstallODBC", "http://wixtoolset.org/schemas/v4/wxs");
45602 base.OutputXml(writer);
45603 writer.WriteEndElement();
45604 }
45605 }
45606
45607 /// <summary>
45608 /// Registers type libraries with the system. The condition for this action may be specified in the element's inner text.
45609 /// </summary>
45610 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45611 public class RegisterTypeLibraries : ActionSequenceType, ISchemaElement
45612 {
45613
45614 /// <summary>
45615 /// Processes this element and all child elements into an XmlWriter.
45616 /// </summary>
45617 public override void OutputXml(XmlWriter writer)
45618 {
45619 if ((null == writer))
45620 {
45621 throw new ArgumentNullException("writer");
45622 }
45623 writer.WriteStartElement("RegisterTypeLibraries", "http://wixtoolset.org/schemas/v4/wxs");
45624 base.OutputXml(writer);
45625 writer.WriteEndElement();
45626 }
45627 }
45628
45629 /// <summary>
45630 /// 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.
45631 /// </summary>
45632 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45633 public class SelfRegModules : ActionSequenceType, ISchemaElement
45634 {
45635
45636 /// <summary>
45637 /// Processes this element and all child elements into an XmlWriter.
45638 /// </summary>
45639 public override void OutputXml(XmlWriter writer)
45640 {
45641 if ((null == writer))
45642 {
45643 throw new ArgumentNullException("writer");
45644 }
45645 writer.WriteStartElement("SelfRegModules", "http://wixtoolset.org/schemas/v4/wxs");
45646 base.OutputXml(writer);
45647 writer.WriteEndElement();
45648 }
45649 }
45650
45651 /// <summary>
45652 /// Registers COM+ applications. The condition for this action may be specified in the element's inner text.
45653 /// </summary>
45654 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45655 public class RegisterComPlus : ActionSequenceType, ISchemaElement
45656 {
45657
45658 /// <summary>
45659 /// Processes this element and all child elements into an XmlWriter.
45660 /// </summary>
45661 public override void OutputXml(XmlWriter writer)
45662 {
45663 if ((null == writer))
45664 {
45665 throw new ArgumentNullException("writer");
45666 }
45667 writer.WriteStartElement("RegisterComPlus", "http://wixtoolset.org/schemas/v4/wxs");
45668 base.OutputXml(writer);
45669 writer.WriteEndElement();
45670 }
45671 }
45672
45673 /// <summary>
45674 /// Registers a service for the system. The condition for this action may be specified in the element's inner text.
45675 /// </summary>
45676 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45677 public class InstallServices : ActionSequenceType, ISchemaElement
45678 {
45679
45680 /// <summary>
45681 /// Processes this element and all child elements into an XmlWriter.
45682 /// </summary>
45683 public override void OutputXml(XmlWriter writer)
45684 {
45685 if ((null == writer))
45686 {
45687 throw new ArgumentNullException("writer");
45688 }
45689 writer.WriteStartElement("InstallServices", "http://wixtoolset.org/schemas/v4/wxs");
45690 base.OutputXml(writer);
45691 writer.WriteEndElement();
45692 }
45693 }
45694
45695 /// <summary>
45696 /// Starts system services. The condition for this action may be specified in the element's inner text.
45697 /// </summary>
45698 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45699 public class StartServices : ActionSequenceType, ISchemaElement
45700 {
45701
45702 /// <summary>
45703 /// Processes this element and all child elements into an XmlWriter.
45704 /// </summary>
45705 public override void OutputXml(XmlWriter writer)
45706 {
45707 if ((null == writer))
45708 {
45709 throw new ArgumentNullException("writer");
45710 }
45711 writer.WriteStartElement("StartServices", "http://wixtoolset.org/schemas/v4/wxs");
45712 base.OutputXml(writer);
45713 writer.WriteEndElement();
45714 }
45715 }
45716
45717 /// <summary>
45718 /// 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.
45719 /// </summary>
45720 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45721 public class RegisterUser : ActionSequenceType, ISchemaElement
45722 {
45723
45724 /// <summary>
45725 /// Processes this element and all child elements into an XmlWriter.
45726 /// </summary>
45727 public override void OutputXml(XmlWriter writer)
45728 {
45729 if ((null == writer))
45730 {
45731 throw new ArgumentNullException("writer");
45732 }
45733 writer.WriteStartElement("RegisterUser", "http://wixtoolset.org/schemas/v4/wxs");
45734 base.OutputXml(writer);
45735 writer.WriteEndElement();
45736 }
45737 }
45738
45739 /// <summary>
45740 /// Registers the product information with the installer. The condition for this action may be specified in the element's inner text.
45741 /// </summary>
45742 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45743 public class RegisterProduct : ActionSequenceType, ISchemaElement
45744 {
45745
45746 /// <summary>
45747 /// Processes this element and all child elements into an XmlWriter.
45748 /// </summary>
45749 public override void OutputXml(XmlWriter writer)
45750 {
45751 if ((null == writer))
45752 {
45753 throw new ArgumentNullException("writer");
45754 }
45755 writer.WriteStartElement("RegisterProduct", "http://wixtoolset.org/schemas/v4/wxs");
45756 base.OutputXml(writer);
45757 writer.WriteEndElement();
45758 }
45759 }
45760
45761 /// <summary>
45762 /// Manages the advertisement of the components from the PublishComponent table. The condition for this action may be specified in the element's inner text.
45763 /// </summary>
45764 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45765 public class PublishComponents : ActionSequenceType, ISchemaElement
45766 {
45767
45768 /// <summary>
45769 /// Processes this element and all child elements into an XmlWriter.
45770 /// </summary>
45771 public override void OutputXml(XmlWriter writer)
45772 {
45773 if ((null == writer))
45774 {
45775 throw new ArgumentNullException("writer");
45776 }
45777 writer.WriteStartElement("PublishComponents", "http://wixtoolset.org/schemas/v4/wxs");
45778 base.OutputXml(writer);
45779 writer.WriteEndElement();
45780 }
45781 }
45782
45783 /// <summary>
45784 /// Manages the advertisement of CLR and Win32 assemblies. The condition for this action may be specified in the element's inner text.
45785 /// </summary>
45786 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45787 public class MsiPublishAssemblies : ActionSequenceType, ISchemaElement
45788 {
45789
45790 /// <summary>
45791 /// Processes this element and all child elements into an XmlWriter.
45792 /// </summary>
45793 public override void OutputXml(XmlWriter writer)
45794 {
45795 if ((null == writer))
45796 {
45797 throw new ArgumentNullException("writer");
45798 }
45799 writer.WriteStartElement("MsiPublishAssemblies", "http://wixtoolset.org/schemas/v4/wxs");
45800 base.OutputXml(writer);
45801 writer.WriteEndElement();
45802 }
45803 }
45804
45805 /// <summary>
45806 /// Writes each feature's state into the system registry. The condition for this action may be specified in the element's inner text.
45807 /// </summary>
45808 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45809 public class PublishFeatures : ActionSequenceType, ISchemaElement
45810 {
45811
45812 /// <summary>
45813 /// Processes this element and all child elements into an XmlWriter.
45814 /// </summary>
45815 public override void OutputXml(XmlWriter writer)
45816 {
45817 if ((null == writer))
45818 {
45819 throw new ArgumentNullException("writer");
45820 }
45821 writer.WriteStartElement("PublishFeatures", "http://wixtoolset.org/schemas/v4/wxs");
45822 base.OutputXml(writer);
45823 writer.WriteEndElement();
45824 }
45825 }
45826
45827 /// <summary>
45828 /// Manages the advertisement of the product information with the system. The condition for this action may be specified in the element's inner text.
45829 /// </summary>
45830 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45831 public class PublishProduct : ActionSequenceType, ISchemaElement
45832 {
45833
45834 /// <summary>
45835 /// Processes this element and all child elements into an XmlWriter.
45836 /// </summary>
45837 public override void OutputXml(XmlWriter writer)
45838 {
45839 if ((null == writer))
45840 {
45841 throw new ArgumentNullException("writer");
45842 }
45843 writer.WriteStartElement("PublishProduct", "http://wixtoolset.org/schemas/v4/wxs");
45844 base.OutputXml(writer);
45845 writer.WriteEndElement();
45846 }
45847 }
45848
45849 /// <summary>
45850 /// 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.
45851 /// </summary>
45852 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45853 public class InstallFinalize : ActionSequenceType, ISchemaElement
45854 {
45855
45856 /// <summary>
45857 /// Processes this element and all child elements into an XmlWriter.
45858 /// </summary>
45859 public override void OutputXml(XmlWriter writer)
45860 {
45861 if ((null == writer))
45862 {
45863 throw new ArgumentNullException("writer");
45864 }
45865 writer.WriteStartElement("InstallFinalize", "http://wixtoolset.org/schemas/v4/wxs");
45866 base.OutputXml(writer);
45867 writer.WriteEndElement();
45868 }
45869 }
45870
45871 /// <summary>
45872 /// 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.
45873 /// </summary>
45874 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45875 public class AppSearch : ActionModuleSequenceType, ISchemaElement
45876 {
45877
45878 /// <summary>
45879 /// Processes this element and all child elements into an XmlWriter.
45880 /// </summary>
45881 public override void OutputXml(XmlWriter writer)
45882 {
45883 if ((null == writer))
45884 {
45885 throw new ArgumentNullException("writer");
45886 }
45887 writer.WriteStartElement("AppSearch", "http://wixtoolset.org/schemas/v4/wxs");
45888 base.OutputXml(writer);
45889 writer.WriteEndElement();
45890 }
45891 }
45892
45893 /// <summary>
45894 /// 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.
45895 /// </summary>
45896 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45897 public class CCPSearch : ActionModuleSequenceType, ISchemaElement
45898 {
45899
45900 /// <summary>
45901 /// Processes this element and all child elements into an XmlWriter.
45902 /// </summary>
45903 public override void OutputXml(XmlWriter writer)
45904 {
45905 if ((null == writer))
45906 {
45907 throw new ArgumentNullException("writer");
45908 }
45909 writer.WriteStartElement("CCPSearch", "http://wixtoolset.org/schemas/v4/wxs");
45910 base.OutputXml(writer);
45911 writer.WriteEndElement();
45912 }
45913 }
45914
45915 /// <summary>
45916 /// 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.
45917 /// </summary>
45918 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45919 public class RMCCPSearch : ActionModuleSequenceType, ISchemaElement
45920 {
45921
45922 /// <summary>
45923 /// Processes this element and all child elements into an XmlWriter.
45924 /// </summary>
45925 public override void OutputXml(XmlWriter writer)
45926 {
45927 if ((null == writer))
45928 {
45929 throw new ArgumentNullException("writer");
45930 }
45931 writer.WriteStartElement("RMCCPSearch", "http://wixtoolset.org/schemas/v4/wxs");
45932 base.OutputXml(writer);
45933 writer.WriteEndElement();
45934 }
45935 }
45936
45937 /// <summary>
45938 /// 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.
45939 /// </summary>
45940 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45941 public class LaunchConditions : ActionModuleSequenceType, ISchemaElement
45942 {
45943
45944 /// <summary>
45945 /// Processes this element and all child elements into an XmlWriter.
45946 /// </summary>
45947 public override void OutputXml(XmlWriter writer)
45948 {
45949 if ((null == writer))
45950 {
45951 throw new ArgumentNullException("writer");
45952 }
45953 writer.WriteStartElement("LaunchConditions", "http://wixtoolset.org/schemas/v4/wxs");
45954 base.OutputXml(writer);
45955 writer.WriteEndElement();
45956 }
45957 }
45958
45959 /// <summary>
45960 /// 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.
45961 /// </summary>
45962 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45963 public class FindRelatedProducts : ActionModuleSequenceType, ISchemaElement
45964 {
45965
45966 /// <summary>
45967 /// Processes this element and all child elements into an XmlWriter.
45968 /// </summary>
45969 public override void OutputXml(XmlWriter writer)
45970 {
45971 if ((null == writer))
45972 {
45973 throw new ArgumentNullException("writer");
45974 }
45975 writer.WriteStartElement("FindRelatedProducts", "http://wixtoolset.org/schemas/v4/wxs");
45976 base.OutputXml(writer);
45977 writer.WriteEndElement();
45978 }
45979 }
45980
45981 /// <summary>
45982 /// 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.
45983 /// </summary>
45984 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
45985 public class InstallExecute : ActionModuleSequenceType, ISchemaElement
45986 {
45987
45988 /// <summary>
45989 /// Processes this element and all child elements into an XmlWriter.
45990 /// </summary>
45991 public override void OutputXml(XmlWriter writer)
45992 {
45993 if ((null == writer))
45994 {
45995 throw new ArgumentNullException("writer");
45996 }
45997 writer.WriteStartElement("InstallExecute", "http://wixtoolset.org/schemas/v4/wxs");
45998 base.OutputXml(writer);
45999 writer.WriteEndElement();
46000 }
46001 }
46002
46003 /// <summary>
46004 /// 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.
46005 /// </summary>
46006 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
46007 public class InstallExecuteAgain : ActionModuleSequenceType, ISchemaElement
46008 {
46009
46010 /// <summary>
46011 /// Processes this element and all child elements into an XmlWriter.
46012 /// </summary>
46013 public override void OutputXml(XmlWriter writer)
46014 {
46015 if ((null == writer))
46016 {
46017 throw new ArgumentNullException("writer");
46018 }
46019 writer.WriteStartElement("InstallExecuteAgain", "http://wixtoolset.org/schemas/v4/wxs");
46020 base.OutputXml(writer);
46021 writer.WriteEndElement();
46022 }
46023 }
46024
46025 /// <summary>
46026 /// 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.
46027 /// </summary>
46028 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
46029 public class DisableRollback : ActionModuleSequenceType, ISchemaElement
46030 {
46031
46032 /// <summary>
46033 /// Processes this element and all child elements into an XmlWriter.
46034 /// </summary>
46035 public override void OutputXml(XmlWriter writer)
46036 {
46037 if ((null == writer))
46038 {
46039 throw new ArgumentNullException("writer");
46040 }
46041 writer.WriteStartElement("DisableRollback", "http://wixtoolset.org/schemas/v4/wxs");
46042 base.OutputXml(writer);
46043 writer.WriteEndElement();
46044 }
46045 }
46046
46047 /// <summary>
46048 /// 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.
46049 /// </summary>
46050 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
46051 public class RemoveExistingProducts : ActionModuleSequenceType, ISchemaElement
46052 {
46053
46054 /// <summary>
46055 /// Processes this element and all child elements into an XmlWriter.
46056 /// </summary>
46057 public override void OutputXml(XmlWriter writer)
46058 {
46059 if ((null == writer))
46060 {
46061 throw new ArgumentNullException("writer");
46062 }
46063 writer.WriteStartElement("RemoveExistingProducts", "http://wixtoolset.org/schemas/v4/wxs");
46064 base.OutputXml(writer);
46065 writer.WriteEndElement();
46066 }
46067 }
46068
46069 /// <summary>
46070 /// 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.
46071 /// </summary>
46072 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
46073 public class ScheduleReboot : ActionModuleSequenceType, ISchemaElement
46074 {
46075
46076 /// <summary>
46077 /// Processes this element and all child elements into an XmlWriter.
46078 /// </summary>
46079 public override void OutputXml(XmlWriter writer)
46080 {
46081 if ((null == writer))
46082 {
46083 throw new ArgumentNullException("writer");
46084 }
46085 writer.WriteStartElement("ScheduleReboot", "http://wixtoolset.org/schemas/v4/wxs");
46086 base.OutputXml(writer);
46087 writer.WriteEndElement();
46088 }
46089 }
46090
46091 /// <summary>
46092 /// 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.
46093 /// </summary>
46094 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
46095 public class ForceReboot : ActionModuleSequenceType, ISchemaElement
46096 {
46097
46098 /// <summary>
46099 /// Processes this element and all child elements into an XmlWriter.
46100 /// </summary>
46101 public override void OutputXml(XmlWriter writer)
46102 {
46103 if ((null == writer))
46104 {
46105 throw new ArgumentNullException("writer");
46106 }
46107 writer.WriteStartElement("ForceReboot", "http://wixtoolset.org/schemas/v4/wxs");
46108 base.OutputXml(writer);
46109 writer.WriteEndElement();
46110 }
46111 }
46112
46113 /// <summary>
46114 /// 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.
46115 /// </summary>
46116 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
46117 public class ResolveSource : ActionModuleSequenceType, ISchemaElement
46118 {
46119
46120 /// <summary>
46121 /// Processes this element and all child elements into an XmlWriter.
46122 /// </summary>
46123 public override void OutputXml(XmlWriter writer)
46124 {
46125 if ((null == writer))
46126 {
46127 throw new ArgumentNullException("writer");
46128 }
46129 writer.WriteStartElement("ResolveSource", "http://wixtoolset.org/schemas/v4/wxs");
46130 base.OutputXml(writer);
46131 writer.WriteEndElement();
46132 }
46133 }
46134
46135 /// <summary>
46136 /// Use to sequence a custom action.
46137 /// </summary>
46138 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
46139 public class Custom : ISchemaElement, ISetAttributes
46140 {
46141
46142 private string actionField;
46143
46144 private bool actionFieldSet;
46145
46146 private ExitType onExitField;
46147
46148 private bool onExitFieldSet;
46149
46150 private string beforeField;
46151
46152 private bool beforeFieldSet;
46153
46154 private string afterField;
46155
46156 private bool afterFieldSet;
46157
46158 private YesNoType overridableField;
46159
46160 private bool overridableFieldSet;
46161
46162 private int sequenceField;
46163
46164 private bool sequenceFieldSet;
46165
46166 private string contentField;
46167
46168 private bool contentFieldSet;
46169
46170 private ISchemaElement parentElement;
46171
46172 /// <summary>
46173 /// The action to which the Custom element applies.
46174 /// </summary>
46175 public string Action
46176 {
46177 get
46178 {
46179 return this.actionField;
46180 }
46181 set
46182 {
46183 this.actionFieldSet = true;
46184 this.actionField = value;
46185 }
46186 }
46187
46188 /// <summary>
46189 /// Mutually exclusive with Before, After, and Sequence attributes
46190 /// </summary>
46191 public ExitType OnExit
46192 {
46193 get
46194 {
46195 return this.onExitField;
46196 }
46197 set
46198 {
46199 this.onExitFieldSet = true;
46200 this.onExitField = value;
46201 }
46202 }
46203
46204 /// <summary>
46205 /// The name of the standard or custom action before which this action should be performed. Mutually exclusive with OnExit, After, and Sequence attributes
46206 /// </summary>
46207 public string Before
46208 {
46209 get
46210 {
46211 return this.beforeField;
46212 }
46213 set
46214 {
46215 this.beforeFieldSet = true;
46216 this.beforeField = value;
46217 }
46218 }
46219
46220 /// <summary>
46221 /// The name of the standard or custom action after which this action should be performed. Mutually exclusive with Before, OnExit, and Sequence attributes
46222 /// </summary>
46223 public string After
46224 {
46225 get
46226 {
46227 return this.afterField;
46228 }
46229 set
46230 {
46231 this.afterFieldSet = true;
46232 this.afterField = value;
46233 }
46234 }
46235
46236 /// <summary>
46237 /// If "yes", the sequencing of this action may be overridden by sequencing elsewhere.
46238 /// </summary>
46239 public YesNoType Overridable
46240 {
46241 get
46242 {
46243 return this.overridableField;
46244 }
46245 set
46246 {
46247 this.overridableFieldSet = true;
46248 this.overridableField = value;
46249 }
46250 }
46251
46252 /// <summary>
46253 /// The sequence number for this action. Mutually exclusive with Before, After, and OnExit attributes
46254 /// </summary>
46255 public int Sequence
46256 {
46257 get
46258 {
46259 return this.sequenceField;
46260 }
46261 set
46262 {
46263 this.sequenceFieldSet = true;
46264 this.sequenceField = value;
46265 }
46266 }
46267
46268 /// <summary>
46269 /// Text node specifies the condition of the action.
46270 /// </summary>
46271 public string Content
46272 {
46273 get
46274 {
46275 return this.contentField;
46276 }
46277 set
46278 {
46279 this.contentFieldSet = true;
46280 this.contentField = value;
46281 }
46282 }
46283
46284 public virtual ISchemaElement ParentElement
46285 {
46286 get
46287 {
46288 return this.parentElement;
46289 }
46290 set
46291 {
46292 this.parentElement = value;
46293 }
46294 }
46295
46296 /// <summary>
46297 /// Processes this element and all child elements into an XmlWriter.
46298 /// </summary>
46299 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
46300 public virtual void OutputXml(XmlWriter writer)
46301 {
46302 if ((null == writer))
46303 {
46304 throw new ArgumentNullException("writer");
46305 }
46306 writer.WriteStartElement("Custom", "http://wixtoolset.org/schemas/v4/wxs");
46307 if (this.actionFieldSet)
46308 {
46309 writer.WriteAttributeString("Action", this.actionField);
46310 }
46311 if (this.onExitFieldSet)
46312 {
46313 if ((this.onExitField == ExitType.success))
46314 {
46315 writer.WriteAttributeString("OnExit", "success");
46316 }
46317 if ((this.onExitField == ExitType.cancel))
46318 {
46319 writer.WriteAttributeString("OnExit", "cancel");
46320 }
46321 if ((this.onExitField == ExitType.error))
46322 {
46323 writer.WriteAttributeString("OnExit", "error");
46324 }
46325 if ((this.onExitField == ExitType.suspend))
46326 {
46327 writer.WriteAttributeString("OnExit", "suspend");
46328 }
46329 }
46330 if (this.beforeFieldSet)
46331 {
46332 writer.WriteAttributeString("Before", this.beforeField);
46333 }
46334 if (this.afterFieldSet)
46335 {
46336 writer.WriteAttributeString("After", this.afterField);
46337 }
46338 if (this.overridableFieldSet)
46339 {
46340 if ((this.overridableField == YesNoType.no))
46341 {
46342 writer.WriteAttributeString("Overridable", "no");
46343 }
46344 if ((this.overridableField == YesNoType.yes))
46345 {
46346 writer.WriteAttributeString("Overridable", "yes");
46347 }
46348 }
46349 if (this.sequenceFieldSet)
46350 {
46351 writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture));
46352 }
46353 if (this.contentFieldSet)
46354 {
46355 writer.WriteString(this.contentField);
46356 }
46357 writer.WriteEndElement();
46358 }
46359
46360 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
46361 void ISetAttributes.SetAttribute(string name, string value)
46362 {
46363 if (String.IsNullOrEmpty(name))
46364 {
46365 throw new ArgumentNullException("name");
46366 }
46367 if (("Action" == name))
46368 {
46369 this.actionField = value;
46370 this.actionFieldSet = true;
46371 }
46372 if (("OnExit" == name))
46373 {
46374 this.onExitField = Enums.ParseExitType(value);
46375 this.onExitFieldSet = true;
46376 }
46377 if (("Before" == name))
46378 {
46379 this.beforeField = value;
46380 this.beforeFieldSet = true;
46381 }
46382 if (("After" == name))
46383 {
46384 this.afterField = value;
46385 this.afterFieldSet = true;
46386 }
46387 if (("Overridable" == name))
46388 {
46389 this.overridableField = Enums.ParseYesNoType(value);
46390 this.overridableFieldSet = true;
46391 }
46392 if (("Sequence" == name))
46393 {
46394 this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
46395 this.sequenceFieldSet = true;
46396 }
46397 if (("Content" == name))
46398 {
46399 this.contentField = value;
46400 this.contentFieldSet = true;
46401 }
46402 }
46403 }
46404
46405 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
46406 public class Show : ISchemaElement, ISetAttributes
46407 {
46408
46409 private string dialogField;
46410
46411 private bool dialogFieldSet;
46412
46413 private ExitType onExitField;
46414
46415 private bool onExitFieldSet;
46416
46417 private string beforeField;
46418
46419 private bool beforeFieldSet;
46420
46421 private string afterField;
46422
46423 private bool afterFieldSet;
46424
46425 private YesNoType overridableField;
46426
46427 private bool overridableFieldSet;
46428
46429 private int sequenceField;
46430
46431 private bool sequenceFieldSet;
46432
46433 private string contentField;
46434
46435 private bool contentFieldSet;
46436
46437 private ISchemaElement parentElement;
46438
46439 public string Dialog
46440 {
46441 get
46442 {
46443 return this.dialogField;
46444 }
46445 set
46446 {
46447 this.dialogFieldSet = true;
46448 this.dialogField = value;
46449 }
46450 }
46451
46452 /// <summary>
46453 /// mutually exclusive with Before, After, and Sequence attributes
46454 /// </summary>
46455 public ExitType OnExit
46456 {
46457 get
46458 {
46459 return this.onExitField;
46460 }
46461 set
46462 {
46463 this.onExitFieldSet = true;
46464 this.onExitField = value;
46465 }
46466 }
46467
46468 public string Before
46469 {
46470 get
46471 {
46472 return this.beforeField;
46473 }
46474 set
46475 {
46476 this.beforeFieldSet = true;
46477 this.beforeField = value;
46478 }
46479 }
46480
46481 public string After
46482 {
46483 get
46484 {
46485 return this.afterField;
46486 }
46487 set
46488 {
46489 this.afterFieldSet = true;
46490 this.afterField = value;
46491 }
46492 }
46493
46494 /// <summary>
46495 /// If "yes", the sequencing of this dialog may be overridden by sequencing elsewhere.
46496 /// </summary>
46497 public YesNoType Overridable
46498 {
46499 get
46500 {
46501 return this.overridableField;
46502 }
46503 set
46504 {
46505 this.overridableFieldSet = true;
46506 this.overridableField = value;
46507 }
46508 }
46509
46510 public int Sequence
46511 {
46512 get
46513 {
46514 return this.sequenceField;
46515 }
46516 set
46517 {
46518 this.sequenceFieldSet = true;
46519 this.sequenceField = value;
46520 }
46521 }
46522
46523 public string Content
46524 {
46525 get
46526 {
46527 return this.contentField;
46528 }
46529 set
46530 {
46531 this.contentFieldSet = true;
46532 this.contentField = value;
46533 }
46534 }
46535
46536 public virtual ISchemaElement ParentElement
46537 {
46538 get
46539 {
46540 return this.parentElement;
46541 }
46542 set
46543 {
46544 this.parentElement = value;
46545 }
46546 }
46547
46548 /// <summary>
46549 /// Processes this element and all child elements into an XmlWriter.
46550 /// </summary>
46551 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
46552 public virtual void OutputXml(XmlWriter writer)
46553 {
46554 if ((null == writer))
46555 {
46556 throw new ArgumentNullException("writer");
46557 }
46558 writer.WriteStartElement("Show", "http://wixtoolset.org/schemas/v4/wxs");
46559 if (this.dialogFieldSet)
46560 {
46561 writer.WriteAttributeString("Dialog", this.dialogField);
46562 }
46563 if (this.onExitFieldSet)
46564 {
46565 if ((this.onExitField == ExitType.success))
46566 {
46567 writer.WriteAttributeString("OnExit", "success");
46568 }
46569 if ((this.onExitField == ExitType.cancel))
46570 {
46571 writer.WriteAttributeString("OnExit", "cancel");
46572 }
46573 if ((this.onExitField == ExitType.error))
46574 {
46575 writer.WriteAttributeString("OnExit", "error");
46576 }
46577 if ((this.onExitField == ExitType.suspend))
46578 {
46579 writer.WriteAttributeString("OnExit", "suspend");
46580 }
46581 }
46582 if (this.beforeFieldSet)
46583 {
46584 writer.WriteAttributeString("Before", this.beforeField);
46585 }
46586 if (this.afterFieldSet)
46587 {
46588 writer.WriteAttributeString("After", this.afterField);
46589 }
46590 if (this.overridableFieldSet)
46591 {
46592 if ((this.overridableField == YesNoType.no))
46593 {
46594 writer.WriteAttributeString("Overridable", "no");
46595 }
46596 if ((this.overridableField == YesNoType.yes))
46597 {
46598 writer.WriteAttributeString("Overridable", "yes");
46599 }
46600 }
46601 if (this.sequenceFieldSet)
46602 {
46603 writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture));
46604 }
46605 if (this.contentFieldSet)
46606 {
46607 writer.WriteString(this.contentField);
46608 }
46609 writer.WriteEndElement();
46610 }
46611
46612 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
46613 void ISetAttributes.SetAttribute(string name, string value)
46614 {
46615 if (String.IsNullOrEmpty(name))
46616 {
46617 throw new ArgumentNullException("name");
46618 }
46619 if (("Dialog" == name))
46620 {
46621 this.dialogField = value;
46622 this.dialogFieldSet = true;
46623 }
46624 if (("OnExit" == name))
46625 {
46626 this.onExitField = Enums.ParseExitType(value);
46627 this.onExitFieldSet = true;
46628 }
46629 if (("Before" == name))
46630 {
46631 this.beforeField = value;
46632 this.beforeFieldSet = true;
46633 }
46634 if (("After" == name))
46635 {
46636 this.afterField = value;
46637 this.afterFieldSet = true;
46638 }
46639 if (("Overridable" == name))
46640 {
46641 this.overridableField = Enums.ParseYesNoType(value);
46642 this.overridableFieldSet = true;
46643 }
46644 if (("Sequence" == name))
46645 {
46646 this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
46647 this.sequenceFieldSet = true;
46648 }
46649 if (("Content" == name))
46650 {
46651 this.contentField = value;
46652 this.contentFieldSet = true;
46653 }
46654 }
46655 }
46656
46657 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
46658 public class InstallUISequence : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
46659 {
46660
46661 private ElementCollection children;
46662
46663 private ISchemaElement parentElement;
46664
46665 public InstallUISequence()
46666 {
46667 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
46668 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Custom)));
46669 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Show)));
46670 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ScheduleReboot)));
46671 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(LaunchConditions)));
46672 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FindRelatedProducts)));
46673 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppSearch)));
46674 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CCPSearch)));
46675 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RMCCPSearch)));
46676 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ValidateProductID)));
46677 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostInitialize)));
46678 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileCost)));
46679 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(IsolateComponents)));
46680 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ResolveSource)));
46681 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostFinalize)));
46682 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MigrateFeatureStates)));
46683 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ExecuteAction)));
46684 this.children = childCollection0;
46685 }
46686
46687 public virtual IEnumerable Children
46688 {
46689 get
46690 {
46691 return this.children;
46692 }
46693 }
46694
46695 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
46696 public virtual IEnumerable this[System.Type childType]
46697 {
46698 get
46699 {
46700 return this.children.Filter(childType);
46701 }
46702 }
46703
46704 public virtual ISchemaElement ParentElement
46705 {
46706 get
46707 {
46708 return this.parentElement;
46709 }
46710 set
46711 {
46712 this.parentElement = value;
46713 }
46714 }
46715
46716 public virtual void AddChild(ISchemaElement child)
46717 {
46718 if ((null == child))
46719 {
46720 throw new ArgumentNullException("child");
46721 }
46722 this.children.AddElement(child);
46723 child.ParentElement = this;
46724 }
46725
46726 public virtual void RemoveChild(ISchemaElement child)
46727 {
46728 if ((null == child))
46729 {
46730 throw new ArgumentNullException("child");
46731 }
46732 this.children.RemoveElement(child);
46733 child.ParentElement = null;
46734 }
46735
46736 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
46737 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
46738 ISchemaElement ICreateChildren.CreateChild(string childName)
46739 {
46740 if (String.IsNullOrEmpty(childName))
46741 {
46742 throw new ArgumentNullException("childName");
46743 }
46744 ISchemaElement childValue = null;
46745 if (("Custom" == childName))
46746 {
46747 childValue = new Custom();
46748 }
46749 if (("Show" == childName))
46750 {
46751 childValue = new Show();
46752 }
46753 if (("ScheduleReboot" == childName))
46754 {
46755 childValue = new ScheduleReboot();
46756 }
46757 if (("LaunchConditions" == childName))
46758 {
46759 childValue = new LaunchConditions();
46760 }
46761 if (("FindRelatedProducts" == childName))
46762 {
46763 childValue = new FindRelatedProducts();
46764 }
46765 if (("AppSearch" == childName))
46766 {
46767 childValue = new AppSearch();
46768 }
46769 if (("CCPSearch" == childName))
46770 {
46771 childValue = new CCPSearch();
46772 }
46773 if (("RMCCPSearch" == childName))
46774 {
46775 childValue = new RMCCPSearch();
46776 }
46777 if (("ValidateProductID" == childName))
46778 {
46779 childValue = new ValidateProductID();
46780 }
46781 if (("CostInitialize" == childName))
46782 {
46783 childValue = new CostInitialize();
46784 }
46785 if (("FileCost" == childName))
46786 {
46787 childValue = new FileCost();
46788 }
46789 if (("IsolateComponents" == childName))
46790 {
46791 childValue = new IsolateComponents();
46792 }
46793 if (("ResolveSource" == childName))
46794 {
46795 childValue = new ResolveSource();
46796 }
46797 if (("CostFinalize" == childName))
46798 {
46799 childValue = new CostFinalize();
46800 }
46801 if (("MigrateFeatureStates" == childName))
46802 {
46803 childValue = new MigrateFeatureStates();
46804 }
46805 if (("ExecuteAction" == childName))
46806 {
46807 childValue = new ExecuteAction();
46808 }
46809 if ((null == childValue))
46810 {
46811 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
46812 }
46813 return childValue;
46814 }
46815
46816 /// <summary>
46817 /// Processes this element and all child elements into an XmlWriter.
46818 /// </summary>
46819 public virtual void OutputXml(XmlWriter writer)
46820 {
46821 if ((null == writer))
46822 {
46823 throw new ArgumentNullException("writer");
46824 }
46825 writer.WriteStartElement("InstallUISequence", "http://wixtoolset.org/schemas/v4/wxs");
46826 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
46827 {
46828 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
46829 childElement.OutputXml(writer);
46830 }
46831 writer.WriteEndElement();
46832 }
46833
46834 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
46835 void ISetAttributes.SetAttribute(string name, string value)
46836 {
46837 if (String.IsNullOrEmpty(name))
46838 {
46839 throw new ArgumentNullException("name");
46840 }
46841 }
46842 }
46843
46844 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
46845 public class InstallExecuteSequence : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
46846 {
46847
46848 private ElementCollection children;
46849
46850 private ISchemaElement parentElement;
46851
46852 public InstallExecuteSequence()
46853 {
46854 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
46855 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Custom)));
46856 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ScheduleReboot)));
46857 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ForceReboot)));
46858 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ResolveSource)));
46859 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(LaunchConditions)));
46860 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FindRelatedProducts)));
46861 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppSearch)));
46862 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CCPSearch)));
46863 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RMCCPSearch)));
46864 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ValidateProductID)));
46865 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostInitialize)));
46866 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileCost)));
46867 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(IsolateComponents)));
46868 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostFinalize)));
46869 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SetODBCFolders)));
46870 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MigrateFeatureStates)));
46871 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallValidate)));
46872 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallInitialize)));
46873 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AllocateRegistrySpace)));
46874 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ProcessComponents)));
46875 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnpublishComponents)));
46876 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnpublishFeatures)));
46877 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(StopServices)));
46878 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DeleteServices)));
46879 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterComPlus)));
46880 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SelfUnregModules)));
46881 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterTypeLibraries)));
46882 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveODBC)));
46883 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterFonts)));
46884 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveRegistryValues)));
46885 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterClassInfo)));
46886 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterExtensionInfo)));
46887 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterProgIdInfo)));
46888 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterMIMEInfo)));
46889 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveIniValues)));
46890 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveShortcuts)));
46891 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveEnvironmentStrings)));
46892 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveDuplicateFiles)));
46893 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveFiles)));
46894 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveFolders)));
46895 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CreateFolders)));
46896 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MoveFiles)));
46897 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFiles)));
46898 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DuplicateFiles)));
46899 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFiles)));
46900 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BindImage)));
46901 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CreateShortcuts)));
46902 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterClassInfo)));
46903 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterExtensionInfo)));
46904 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterProgIdInfo)));
46905 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterMIMEInfo)));
46906 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WriteRegistryValues)));
46907 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WriteIniValues)));
46908 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WriteEnvironmentStrings)));
46909 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterFonts)));
46910 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallODBC)));
46911 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterTypeLibraries)));
46912 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SelfRegModules)));
46913 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterComPlus)));
46914 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallServices)));
46915 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(StartServices)));
46916 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterUser)));
46917 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterProduct)));
46918 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishComponents)));
46919 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishFeatures)));
46920 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishProduct)));
46921 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFinalize)));
46922 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveExistingProducts)));
46923 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DisableRollback)));
46924 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallExecute)));
46925 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallExecuteAgain)));
46926 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiPublishAssemblies)));
46927 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiUnpublishAssemblies)));
46928 this.children = childCollection0;
46929 }
46930
46931 public virtual IEnumerable Children
46932 {
46933 get
46934 {
46935 return this.children;
46936 }
46937 }
46938
46939 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
46940 public virtual IEnumerable this[System.Type childType]
46941 {
46942 get
46943 {
46944 return this.children.Filter(childType);
46945 }
46946 }
46947
46948 public virtual ISchemaElement ParentElement
46949 {
46950 get
46951 {
46952 return this.parentElement;
46953 }
46954 set
46955 {
46956 this.parentElement = value;
46957 }
46958 }
46959
46960 public virtual void AddChild(ISchemaElement child)
46961 {
46962 if ((null == child))
46963 {
46964 throw new ArgumentNullException("child");
46965 }
46966 this.children.AddElement(child);
46967 child.ParentElement = this;
46968 }
46969
46970 public virtual void RemoveChild(ISchemaElement child)
46971 {
46972 if ((null == child))
46973 {
46974 throw new ArgumentNullException("child");
46975 }
46976 this.children.RemoveElement(child);
46977 child.ParentElement = null;
46978 }
46979
46980 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
46981 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
46982 ISchemaElement ICreateChildren.CreateChild(string childName)
46983 {
46984 if (String.IsNullOrEmpty(childName))
46985 {
46986 throw new ArgumentNullException("childName");
46987 }
46988 ISchemaElement childValue = null;
46989 if (("Custom" == childName))
46990 {
46991 childValue = new Custom();
46992 }
46993 if (("ScheduleReboot" == childName))
46994 {
46995 childValue = new ScheduleReboot();
46996 }
46997 if (("ForceReboot" == childName))
46998 {
46999 childValue = new ForceReboot();
47000 }
47001 if (("ResolveSource" == childName))
47002 {
47003 childValue = new ResolveSource();
47004 }
47005 if (("LaunchConditions" == childName))
47006 {
47007 childValue = new LaunchConditions();
47008 }
47009 if (("FindRelatedProducts" == childName))
47010 {
47011 childValue = new FindRelatedProducts();
47012 }
47013 if (("AppSearch" == childName))
47014 {
47015 childValue = new AppSearch();
47016 }
47017 if (("CCPSearch" == childName))
47018 {
47019 childValue = new CCPSearch();
47020 }
47021 if (("RMCCPSearch" == childName))
47022 {
47023 childValue = new RMCCPSearch();
47024 }
47025 if (("ValidateProductID" == childName))
47026 {
47027 childValue = new ValidateProductID();
47028 }
47029 if (("CostInitialize" == childName))
47030 {
47031 childValue = new CostInitialize();
47032 }
47033 if (("FileCost" == childName))
47034 {
47035 childValue = new FileCost();
47036 }
47037 if (("IsolateComponents" == childName))
47038 {
47039 childValue = new IsolateComponents();
47040 }
47041 if (("CostFinalize" == childName))
47042 {
47043 childValue = new CostFinalize();
47044 }
47045 if (("SetODBCFolders" == childName))
47046 {
47047 childValue = new SetODBCFolders();
47048 }
47049 if (("MigrateFeatureStates" == childName))
47050 {
47051 childValue = new MigrateFeatureStates();
47052 }
47053 if (("InstallValidate" == childName))
47054 {
47055 childValue = new InstallValidate();
47056 }
47057 if (("InstallInitialize" == childName))
47058 {
47059 childValue = new InstallInitialize();
47060 }
47061 if (("AllocateRegistrySpace" == childName))
47062 {
47063 childValue = new AllocateRegistrySpace();
47064 }
47065 if (("ProcessComponents" == childName))
47066 {
47067 childValue = new ProcessComponents();
47068 }
47069 if (("UnpublishComponents" == childName))
47070 {
47071 childValue = new UnpublishComponents();
47072 }
47073 if (("UnpublishFeatures" == childName))
47074 {
47075 childValue = new UnpublishFeatures();
47076 }
47077 if (("StopServices" == childName))
47078 {
47079 childValue = new StopServices();
47080 }
47081 if (("DeleteServices" == childName))
47082 {
47083 childValue = new DeleteServices();
47084 }
47085 if (("UnregisterComPlus" == childName))
47086 {
47087 childValue = new UnregisterComPlus();
47088 }
47089 if (("SelfUnregModules" == childName))
47090 {
47091 childValue = new SelfUnregModules();
47092 }
47093 if (("UnregisterTypeLibraries" == childName))
47094 {
47095 childValue = new UnregisterTypeLibraries();
47096 }
47097 if (("RemoveODBC" == childName))
47098 {
47099 childValue = new RemoveODBC();
47100 }
47101 if (("UnregisterFonts" == childName))
47102 {
47103 childValue = new UnregisterFonts();
47104 }
47105 if (("RemoveRegistryValues" == childName))
47106 {
47107 childValue = new RemoveRegistryValues();
47108 }
47109 if (("UnregisterClassInfo" == childName))
47110 {
47111 childValue = new UnregisterClassInfo();
47112 }
47113 if (("UnregisterExtensionInfo" == childName))
47114 {
47115 childValue = new UnregisterExtensionInfo();
47116 }
47117 if (("UnregisterProgIdInfo" == childName))
47118 {
47119 childValue = new UnregisterProgIdInfo();
47120 }
47121 if (("UnregisterMIMEInfo" == childName))
47122 {
47123 childValue = new UnregisterMIMEInfo();
47124 }
47125 if (("RemoveIniValues" == childName))
47126 {
47127 childValue = new RemoveIniValues();
47128 }
47129 if (("RemoveShortcuts" == childName))
47130 {
47131 childValue = new RemoveShortcuts();
47132 }
47133 if (("RemoveEnvironmentStrings" == childName))
47134 {
47135 childValue = new RemoveEnvironmentStrings();
47136 }
47137 if (("RemoveDuplicateFiles" == childName))
47138 {
47139 childValue = new RemoveDuplicateFiles();
47140 }
47141 if (("RemoveFiles" == childName))
47142 {
47143 childValue = new RemoveFiles();
47144 }
47145 if (("RemoveFolders" == childName))
47146 {
47147 childValue = new RemoveFolders();
47148 }
47149 if (("CreateFolders" == childName))
47150 {
47151 childValue = new CreateFolders();
47152 }
47153 if (("MoveFiles" == childName))
47154 {
47155 childValue = new MoveFiles();
47156 }
47157 if (("InstallFiles" == childName))
47158 {
47159 childValue = new InstallFiles();
47160 }
47161 if (("DuplicateFiles" == childName))
47162 {
47163 childValue = new DuplicateFiles();
47164 }
47165 if (("PatchFiles" == childName))
47166 {
47167 childValue = new PatchFiles();
47168 }
47169 if (("BindImage" == childName))
47170 {
47171 childValue = new BindImage();
47172 }
47173 if (("CreateShortcuts" == childName))
47174 {
47175 childValue = new CreateShortcuts();
47176 }
47177 if (("RegisterClassInfo" == childName))
47178 {
47179 childValue = new RegisterClassInfo();
47180 }
47181 if (("RegisterExtensionInfo" == childName))
47182 {
47183 childValue = new RegisterExtensionInfo();
47184 }
47185 if (("RegisterProgIdInfo" == childName))
47186 {
47187 childValue = new RegisterProgIdInfo();
47188 }
47189 if (("RegisterMIMEInfo" == childName))
47190 {
47191 childValue = new RegisterMIMEInfo();
47192 }
47193 if (("WriteRegistryValues" == childName))
47194 {
47195 childValue = new WriteRegistryValues();
47196 }
47197 if (("WriteIniValues" == childName))
47198 {
47199 childValue = new WriteIniValues();
47200 }
47201 if (("WriteEnvironmentStrings" == childName))
47202 {
47203 childValue = new WriteEnvironmentStrings();
47204 }
47205 if (("RegisterFonts" == childName))
47206 {
47207 childValue = new RegisterFonts();
47208 }
47209 if (("InstallODBC" == childName))
47210 {
47211 childValue = new InstallODBC();
47212 }
47213 if (("RegisterTypeLibraries" == childName))
47214 {
47215 childValue = new RegisterTypeLibraries();
47216 }
47217 if (("SelfRegModules" == childName))
47218 {
47219 childValue = new SelfRegModules();
47220 }
47221 if (("RegisterComPlus" == childName))
47222 {
47223 childValue = new RegisterComPlus();
47224 }
47225 if (("InstallServices" == childName))
47226 {
47227 childValue = new InstallServices();
47228 }
47229 if (("StartServices" == childName))
47230 {
47231 childValue = new StartServices();
47232 }
47233 if (("RegisterUser" == childName))
47234 {
47235 childValue = new RegisterUser();
47236 }
47237 if (("RegisterProduct" == childName))
47238 {
47239 childValue = new RegisterProduct();
47240 }
47241 if (("PublishComponents" == childName))
47242 {
47243 childValue = new PublishComponents();
47244 }
47245 if (("PublishFeatures" == childName))
47246 {
47247 childValue = new PublishFeatures();
47248 }
47249 if (("PublishProduct" == childName))
47250 {
47251 childValue = new PublishProduct();
47252 }
47253 if (("InstallFinalize" == childName))
47254 {
47255 childValue = new InstallFinalize();
47256 }
47257 if (("RemoveExistingProducts" == childName))
47258 {
47259 childValue = new RemoveExistingProducts();
47260 }
47261 if (("DisableRollback" == childName))
47262 {
47263 childValue = new DisableRollback();
47264 }
47265 if (("InstallExecute" == childName))
47266 {
47267 childValue = new InstallExecute();
47268 }
47269 if (("InstallExecuteAgain" == childName))
47270 {
47271 childValue = new InstallExecuteAgain();
47272 }
47273 if (("MsiPublishAssemblies" == childName))
47274 {
47275 childValue = new MsiPublishAssemblies();
47276 }
47277 if (("MsiUnpublishAssemblies" == childName))
47278 {
47279 childValue = new MsiUnpublishAssemblies();
47280 }
47281 if ((null == childValue))
47282 {
47283 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
47284 }
47285 return childValue;
47286 }
47287
47288 /// <summary>
47289 /// Processes this element and all child elements into an XmlWriter.
47290 /// </summary>
47291 public virtual void OutputXml(XmlWriter writer)
47292 {
47293 if ((null == writer))
47294 {
47295 throw new ArgumentNullException("writer");
47296 }
47297 writer.WriteStartElement("InstallExecuteSequence", "http://wixtoolset.org/schemas/v4/wxs");
47298 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
47299 {
47300 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
47301 childElement.OutputXml(writer);
47302 }
47303 writer.WriteEndElement();
47304 }
47305
47306 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
47307 void ISetAttributes.SetAttribute(string name, string value)
47308 {
47309 if (String.IsNullOrEmpty(name))
47310 {
47311 throw new ArgumentNullException("name");
47312 }
47313 }
47314 }
47315
47316 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
47317 public class AdminUISequence : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
47318 {
47319
47320 private ElementCollection children;
47321
47322 private ISchemaElement parentElement;
47323
47324 public AdminUISequence()
47325 {
47326 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
47327 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Custom)));
47328 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Show)));
47329 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostInitialize)));
47330 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileCost)));
47331 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostFinalize)));
47332 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ExecuteAction)));
47333 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallValidate)));
47334 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallInitialize)));
47335 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallAdminPackage)));
47336 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFiles)));
47337 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFinalize)));
47338 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(LaunchConditions)));
47339 this.children = childCollection0;
47340 }
47341
47342 public virtual IEnumerable Children
47343 {
47344 get
47345 {
47346 return this.children;
47347 }
47348 }
47349
47350 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
47351 public virtual IEnumerable this[System.Type childType]
47352 {
47353 get
47354 {
47355 return this.children.Filter(childType);
47356 }
47357 }
47358
47359 public virtual ISchemaElement ParentElement
47360 {
47361 get
47362 {
47363 return this.parentElement;
47364 }
47365 set
47366 {
47367 this.parentElement = value;
47368 }
47369 }
47370
47371 public virtual void AddChild(ISchemaElement child)
47372 {
47373 if ((null == child))
47374 {
47375 throw new ArgumentNullException("child");
47376 }
47377 this.children.AddElement(child);
47378 child.ParentElement = this;
47379 }
47380
47381 public virtual void RemoveChild(ISchemaElement child)
47382 {
47383 if ((null == child))
47384 {
47385 throw new ArgumentNullException("child");
47386 }
47387 this.children.RemoveElement(child);
47388 child.ParentElement = null;
47389 }
47390
47391 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
47392 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
47393 ISchemaElement ICreateChildren.CreateChild(string childName)
47394 {
47395 if (String.IsNullOrEmpty(childName))
47396 {
47397 throw new ArgumentNullException("childName");
47398 }
47399 ISchemaElement childValue = null;
47400 if (("Custom" == childName))
47401 {
47402 childValue = new Custom();
47403 }
47404 if (("Show" == childName))
47405 {
47406 childValue = new Show();
47407 }
47408 if (("CostInitialize" == childName))
47409 {
47410 childValue = new CostInitialize();
47411 }
47412 if (("FileCost" == childName))
47413 {
47414 childValue = new FileCost();
47415 }
47416 if (("CostFinalize" == childName))
47417 {
47418 childValue = new CostFinalize();
47419 }
47420 if (("ExecuteAction" == childName))
47421 {
47422 childValue = new ExecuteAction();
47423 }
47424 if (("InstallValidate" == childName))
47425 {
47426 childValue = new InstallValidate();
47427 }
47428 if (("InstallInitialize" == childName))
47429 {
47430 childValue = new InstallInitialize();
47431 }
47432 if (("InstallAdminPackage" == childName))
47433 {
47434 childValue = new InstallAdminPackage();
47435 }
47436 if (("InstallFiles" == childName))
47437 {
47438 childValue = new InstallFiles();
47439 }
47440 if (("InstallFinalize" == childName))
47441 {
47442 childValue = new InstallFinalize();
47443 }
47444 if (("LaunchConditions" == childName))
47445 {
47446 childValue = new LaunchConditions();
47447 }
47448 if ((null == childValue))
47449 {
47450 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
47451 }
47452 return childValue;
47453 }
47454
47455 /// <summary>
47456 /// Processes this element and all child elements into an XmlWriter.
47457 /// </summary>
47458 public virtual void OutputXml(XmlWriter writer)
47459 {
47460 if ((null == writer))
47461 {
47462 throw new ArgumentNullException("writer");
47463 }
47464 writer.WriteStartElement("AdminUISequence", "http://wixtoolset.org/schemas/v4/wxs");
47465 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
47466 {
47467 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
47468 childElement.OutputXml(writer);
47469 }
47470 writer.WriteEndElement();
47471 }
47472
47473 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
47474 void ISetAttributes.SetAttribute(string name, string value)
47475 {
47476 if (String.IsNullOrEmpty(name))
47477 {
47478 throw new ArgumentNullException("name");
47479 }
47480 }
47481 }
47482
47483 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
47484 public class AdminExecuteSequence : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
47485 {
47486
47487 private ElementCollection children;
47488
47489 private ISchemaElement parentElement;
47490
47491 public AdminExecuteSequence()
47492 {
47493 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
47494 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Custom)));
47495 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostInitialize)));
47496 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileCost)));
47497 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostFinalize)));
47498 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallValidate)));
47499 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallInitialize)));
47500 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallAdminPackage)));
47501 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFiles)));
47502 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFiles)));
47503 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFinalize)));
47504 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(LaunchConditions)));
47505 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ResolveSource)));
47506 this.children = childCollection0;
47507 }
47508
47509 public virtual IEnumerable Children
47510 {
47511 get
47512 {
47513 return this.children;
47514 }
47515 }
47516
47517 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
47518 public virtual IEnumerable this[System.Type childType]
47519 {
47520 get
47521 {
47522 return this.children.Filter(childType);
47523 }
47524 }
47525
47526 public virtual ISchemaElement ParentElement
47527 {
47528 get
47529 {
47530 return this.parentElement;
47531 }
47532 set
47533 {
47534 this.parentElement = value;
47535 }
47536 }
47537
47538 public virtual void AddChild(ISchemaElement child)
47539 {
47540 if ((null == child))
47541 {
47542 throw new ArgumentNullException("child");
47543 }
47544 this.children.AddElement(child);
47545 child.ParentElement = this;
47546 }
47547
47548 public virtual void RemoveChild(ISchemaElement child)
47549 {
47550 if ((null == child))
47551 {
47552 throw new ArgumentNullException("child");
47553 }
47554 this.children.RemoveElement(child);
47555 child.ParentElement = null;
47556 }
47557
47558 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
47559 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
47560 ISchemaElement ICreateChildren.CreateChild(string childName)
47561 {
47562 if (String.IsNullOrEmpty(childName))
47563 {
47564 throw new ArgumentNullException("childName");
47565 }
47566 ISchemaElement childValue = null;
47567 if (("Custom" == childName))
47568 {
47569 childValue = new Custom();
47570 }
47571 if (("CostInitialize" == childName))
47572 {
47573 childValue = new CostInitialize();
47574 }
47575 if (("FileCost" == childName))
47576 {
47577 childValue = new FileCost();
47578 }
47579 if (("CostFinalize" == childName))
47580 {
47581 childValue = new CostFinalize();
47582 }
47583 if (("InstallValidate" == childName))
47584 {
47585 childValue = new InstallValidate();
47586 }
47587 if (("InstallInitialize" == childName))
47588 {
47589 childValue = new InstallInitialize();
47590 }
47591 if (("InstallAdminPackage" == childName))
47592 {
47593 childValue = new InstallAdminPackage();
47594 }
47595 if (("InstallFiles" == childName))
47596 {
47597 childValue = new InstallFiles();
47598 }
47599 if (("PatchFiles" == childName))
47600 {
47601 childValue = new PatchFiles();
47602 }
47603 if (("InstallFinalize" == childName))
47604 {
47605 childValue = new InstallFinalize();
47606 }
47607 if (("LaunchConditions" == childName))
47608 {
47609 childValue = new LaunchConditions();
47610 }
47611 if (("ResolveSource" == childName))
47612 {
47613 childValue = new ResolveSource();
47614 }
47615 if ((null == childValue))
47616 {
47617 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
47618 }
47619 return childValue;
47620 }
47621
47622 /// <summary>
47623 /// Processes this element and all child elements into an XmlWriter.
47624 /// </summary>
47625 public virtual void OutputXml(XmlWriter writer)
47626 {
47627 if ((null == writer))
47628 {
47629 throw new ArgumentNullException("writer");
47630 }
47631 writer.WriteStartElement("AdminExecuteSequence", "http://wixtoolset.org/schemas/v4/wxs");
47632 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
47633 {
47634 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
47635 childElement.OutputXml(writer);
47636 }
47637 writer.WriteEndElement();
47638 }
47639
47640 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
47641 void ISetAttributes.SetAttribute(string name, string value)
47642 {
47643 if (String.IsNullOrEmpty(name))
47644 {
47645 throw new ArgumentNullException("name");
47646 }
47647 }
47648 }
47649
47650 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
47651 public class AdvertiseExecuteSequence : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
47652 {
47653
47654 private ElementCollection children;
47655
47656 private ISchemaElement parentElement;
47657
47658 public AdvertiseExecuteSequence()
47659 {
47660 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
47661 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostInitialize)));
47662 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostFinalize)));
47663 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Custom)));
47664 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallValidate)));
47665 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallInitialize)));
47666 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CreateShortcuts)));
47667 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterClassInfo)));
47668 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterExtensionInfo)));
47669 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterMIMEInfo)));
47670 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterProgIdInfo)));
47671 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishComponents)));
47672 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishFeatures)));
47673 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishProduct)));
47674 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFinalize)));
47675 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiPublishAssemblies)));
47676 this.children = childCollection0;
47677 }
47678
47679 public virtual IEnumerable Children
47680 {
47681 get
47682 {
47683 return this.children;
47684 }
47685 }
47686
47687 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
47688 public virtual IEnumerable this[System.Type childType]
47689 {
47690 get
47691 {
47692 return this.children.Filter(childType);
47693 }
47694 }
47695
47696 public virtual ISchemaElement ParentElement
47697 {
47698 get
47699 {
47700 return this.parentElement;
47701 }
47702 set
47703 {
47704 this.parentElement = value;
47705 }
47706 }
47707
47708 public virtual void AddChild(ISchemaElement child)
47709 {
47710 if ((null == child))
47711 {
47712 throw new ArgumentNullException("child");
47713 }
47714 this.children.AddElement(child);
47715 child.ParentElement = this;
47716 }
47717
47718 public virtual void RemoveChild(ISchemaElement child)
47719 {
47720 if ((null == child))
47721 {
47722 throw new ArgumentNullException("child");
47723 }
47724 this.children.RemoveElement(child);
47725 child.ParentElement = null;
47726 }
47727
47728 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
47729 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
47730 ISchemaElement ICreateChildren.CreateChild(string childName)
47731 {
47732 if (String.IsNullOrEmpty(childName))
47733 {
47734 throw new ArgumentNullException("childName");
47735 }
47736 ISchemaElement childValue = null;
47737 if (("CostInitialize" == childName))
47738 {
47739 childValue = new CostInitialize();
47740 }
47741 if (("CostFinalize" == childName))
47742 {
47743 childValue = new CostFinalize();
47744 }
47745 if (("Custom" == childName))
47746 {
47747 childValue = new Custom();
47748 }
47749 if (("InstallValidate" == childName))
47750 {
47751 childValue = new InstallValidate();
47752 }
47753 if (("InstallInitialize" == childName))
47754 {
47755 childValue = new InstallInitialize();
47756 }
47757 if (("CreateShortcuts" == childName))
47758 {
47759 childValue = new CreateShortcuts();
47760 }
47761 if (("RegisterClassInfo" == childName))
47762 {
47763 childValue = new RegisterClassInfo();
47764 }
47765 if (("RegisterExtensionInfo" == childName))
47766 {
47767 childValue = new RegisterExtensionInfo();
47768 }
47769 if (("RegisterMIMEInfo" == childName))
47770 {
47771 childValue = new RegisterMIMEInfo();
47772 }
47773 if (("RegisterProgIdInfo" == childName))
47774 {
47775 childValue = new RegisterProgIdInfo();
47776 }
47777 if (("PublishComponents" == childName))
47778 {
47779 childValue = new PublishComponents();
47780 }
47781 if (("PublishFeatures" == childName))
47782 {
47783 childValue = new PublishFeatures();
47784 }
47785 if (("PublishProduct" == childName))
47786 {
47787 childValue = new PublishProduct();
47788 }
47789 if (("InstallFinalize" == childName))
47790 {
47791 childValue = new InstallFinalize();
47792 }
47793 if (("MsiPublishAssemblies" == childName))
47794 {
47795 childValue = new MsiPublishAssemblies();
47796 }
47797 if ((null == childValue))
47798 {
47799 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
47800 }
47801 return childValue;
47802 }
47803
47804 /// <summary>
47805 /// Processes this element and all child elements into an XmlWriter.
47806 /// </summary>
47807 public virtual void OutputXml(XmlWriter writer)
47808 {
47809 if ((null == writer))
47810 {
47811 throw new ArgumentNullException("writer");
47812 }
47813 writer.WriteStartElement("AdvertiseExecuteSequence", "http://wixtoolset.org/schemas/v4/wxs");
47814 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
47815 {
47816 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
47817 childElement.OutputXml(writer);
47818 }
47819 writer.WriteEndElement();
47820 }
47821
47822 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
47823 void ISetAttributes.SetAttribute(string name, string value)
47824 {
47825 if (String.IsNullOrEmpty(name))
47826 {
47827 throw new ArgumentNullException("name");
47828 }
47829 }
47830 }
47831
47832 /// <summary>
47833 /// Binary data used for CustomAction elements and UI controls.
47834 /// </summary>
47835 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
47836 public class Binary : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
47837 {
47838
47839 private ElementCollection children;
47840
47841 private string idField;
47842
47843 private bool idFieldSet;
47844
47845 private string sourceFileField;
47846
47847 private bool sourceFileFieldSet;
47848
47849 private string srcField;
47850
47851 private bool srcFieldSet;
47852
47853 private YesNoType suppressModularizationField;
47854
47855 private bool suppressModularizationFieldSet;
47856
47857 private ISchemaElement parentElement;
47858
47859 public Binary()
47860 {
47861 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
47862 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement)));
47863 this.children = childCollection0;
47864 }
47865
47866 public virtual IEnumerable Children
47867 {
47868 get
47869 {
47870 return this.children;
47871 }
47872 }
47873
47874 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
47875 public virtual IEnumerable this[System.Type childType]
47876 {
47877 get
47878 {
47879 return this.children.Filter(childType);
47880 }
47881 }
47882
47883 /// <summary>
47884 /// 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.
47885 /// </summary>
47886 public string Id
47887 {
47888 get
47889 {
47890 return this.idField;
47891 }
47892 set
47893 {
47894 this.idFieldSet = true;
47895 this.idField = value;
47896 }
47897 }
47898
47899 /// <summary>
47900 /// Path to the binary file.
47901 /// </summary>
47902 public string SourceFile
47903 {
47904 get
47905 {
47906 return this.sourceFileField;
47907 }
47908 set
47909 {
47910 this.sourceFileFieldSet = true;
47911 this.sourceFileField = value;
47912 }
47913 }
47914
47915 [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
47916 public string src
47917 {
47918 get
47919 {
47920 return this.srcField;
47921 }
47922 set
47923 {
47924 this.srcFieldSet = true;
47925 this.srcField = value;
47926 }
47927 }
47928
47929 /// <summary>
47930 /// Use to suppress modularization of this Binary identifier in merge modules.
47931 /// </summary>
47932 public YesNoType SuppressModularization
47933 {
47934 get
47935 {
47936 return this.suppressModularizationField;
47937 }
47938 set
47939 {
47940 this.suppressModularizationFieldSet = true;
47941 this.suppressModularizationField = value;
47942 }
47943 }
47944
47945 public virtual ISchemaElement ParentElement
47946 {
47947 get
47948 {
47949 return this.parentElement;
47950 }
47951 set
47952 {
47953 this.parentElement = value;
47954 }
47955 }
47956
47957 public virtual void AddChild(ISchemaElement child)
47958 {
47959 if ((null == child))
47960 {
47961 throw new ArgumentNullException("child");
47962 }
47963 this.children.AddElement(child);
47964 child.ParentElement = this;
47965 }
47966
47967 public virtual void RemoveChild(ISchemaElement child)
47968 {
47969 if ((null == child))
47970 {
47971 throw new ArgumentNullException("child");
47972 }
47973 this.children.RemoveElement(child);
47974 child.ParentElement = null;
47975 }
47976
47977 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
47978 ISchemaElement ICreateChildren.CreateChild(string childName)
47979 {
47980 if (String.IsNullOrEmpty(childName))
47981 {
47982 throw new ArgumentNullException("childName");
47983 }
47984 ISchemaElement childValue = null;
47985 if ((null == childValue))
47986 {
47987 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
47988 }
47989 return childValue;
47990 }
47991
47992 /// <summary>
47993 /// Processes this element and all child elements into an XmlWriter.
47994 /// </summary>
47995 public virtual void OutputXml(XmlWriter writer)
47996 {
47997 if ((null == writer))
47998 {
47999 throw new ArgumentNullException("writer");
48000 }
48001 writer.WriteStartElement("Binary", "http://wixtoolset.org/schemas/v4/wxs");
48002 if (this.idFieldSet)
48003 {
48004 writer.WriteAttributeString("Id", this.idField);
48005 }
48006 if (this.sourceFileFieldSet)
48007 {
48008 writer.WriteAttributeString("SourceFile", this.sourceFileField);
48009 }
48010 if (this.srcFieldSet)
48011 {
48012 writer.WriteAttributeString("src", this.srcField);
48013 }
48014 if (this.suppressModularizationFieldSet)
48015 {
48016 if ((this.suppressModularizationField == YesNoType.no))
48017 {
48018 writer.WriteAttributeString("SuppressModularization", "no");
48019 }
48020 if ((this.suppressModularizationField == YesNoType.yes))
48021 {
48022 writer.WriteAttributeString("SuppressModularization", "yes");
48023 }
48024 }
48025 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
48026 {
48027 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
48028 childElement.OutputXml(writer);
48029 }
48030 writer.WriteEndElement();
48031 }
48032
48033 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
48034 void ISetAttributes.SetAttribute(string name, string value)
48035 {
48036 if (String.IsNullOrEmpty(name))
48037 {
48038 throw new ArgumentNullException("name");
48039 }
48040 if (("Id" == name))
48041 {
48042 this.idField = value;
48043 this.idFieldSet = true;
48044 }
48045 if (("SourceFile" == name))
48046 {
48047 this.sourceFileField = value;
48048 this.sourceFileFieldSet = true;
48049 }
48050 if (("src" == name))
48051 {
48052 this.srcField = value;
48053 this.srcFieldSet = true;
48054 }
48055 if (("SuppressModularization" == name))
48056 {
48057 this.suppressModularizationField = Enums.ParseYesNoType(value);
48058 this.suppressModularizationFieldSet = true;
48059 }
48060 }
48061 }
48062
48063 /// <summary>
48064 /// Icon used for Shortcut, ProgId, or Class elements (but not UI controls)
48065 /// </summary>
48066 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
48067 public class Icon : ISchemaElement, ISetAttributes
48068 {
48069
48070 private string idField;
48071
48072 private bool idFieldSet;
48073
48074 private string sourceFileField;
48075
48076 private bool sourceFileFieldSet;
48077
48078 private string srcField;
48079
48080 private bool srcFieldSet;
48081
48082 private ISchemaElement parentElement;
48083
48084 /// <summary>
48085 /// 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.
48086 /// </summary>
48087 public string Id
48088 {
48089 get
48090 {
48091 return this.idField;
48092 }
48093 set
48094 {
48095 this.idFieldSet = true;
48096 this.idField = value;
48097 }
48098 }
48099
48100 /// <summary>
48101 /// Path to the icon file.
48102 /// </summary>
48103 public string SourceFile
48104 {
48105 get
48106 {
48107 return this.sourceFileField;
48108 }
48109 set
48110 {
48111 this.sourceFileFieldSet = true;
48112 this.sourceFileField = value;
48113 }
48114 }
48115
48116 [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
48117 public string src
48118 {
48119 get
48120 {
48121 return this.srcField;
48122 }
48123 set
48124 {
48125 this.srcFieldSet = true;
48126 this.srcField = value;
48127 }
48128 }
48129
48130 public virtual ISchemaElement ParentElement
48131 {
48132 get
48133 {
48134 return this.parentElement;
48135 }
48136 set
48137 {
48138 this.parentElement = value;
48139 }
48140 }
48141
48142 /// <summary>
48143 /// Processes this element and all child elements into an XmlWriter.
48144 /// </summary>
48145 public virtual void OutputXml(XmlWriter writer)
48146 {
48147 if ((null == writer))
48148 {
48149 throw new ArgumentNullException("writer");
48150 }
48151 writer.WriteStartElement("Icon", "http://wixtoolset.org/schemas/v4/wxs");
48152 if (this.idFieldSet)
48153 {
48154 writer.WriteAttributeString("Id", this.idField);
48155 }
48156 if (this.sourceFileFieldSet)
48157 {
48158 writer.WriteAttributeString("SourceFile", this.sourceFileField);
48159 }
48160 if (this.srcFieldSet)
48161 {
48162 writer.WriteAttributeString("src", this.srcField);
48163 }
48164 writer.WriteEndElement();
48165 }
48166
48167 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
48168 void ISetAttributes.SetAttribute(string name, string value)
48169 {
48170 if (String.IsNullOrEmpty(name))
48171 {
48172 throw new ArgumentNullException("name");
48173 }
48174 if (("Id" == name))
48175 {
48176 this.idField = value;
48177 this.idFieldSet = true;
48178 }
48179 if (("SourceFile" == name))
48180 {
48181 this.sourceFileField = value;
48182 this.sourceFileFieldSet = true;
48183 }
48184 if (("src" == name))
48185 {
48186 this.srcField = value;
48187 this.srcFieldSet = true;
48188 }
48189 }
48190 }
48191
48192 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
48193 public class EmbeddedChainer : ISchemaElement, ISetAttributes
48194 {
48195
48196 private string idField;
48197
48198 private bool idFieldSet;
48199
48200 private string commandLineField;
48201
48202 private bool commandLineFieldSet;
48203
48204 private string binarySourceField;
48205
48206 private bool binarySourceFieldSet;
48207
48208 private string fileSourceField;
48209
48210 private bool fileSourceFieldSet;
48211
48212 private string propertySourceField;
48213
48214 private bool propertySourceFieldSet;
48215
48216 private string contentField;
48217
48218 private bool contentFieldSet;
48219
48220 private ISchemaElement parentElement;
48221
48222 /// <summary>
48223 /// Unique identifier for embedded chainer.
48224 /// </summary>
48225 public string Id
48226 {
48227 get
48228 {
48229 return this.idField;
48230 }
48231 set
48232 {
48233 this.idFieldSet = true;
48234 this.idField = value;
48235 }
48236 }
48237
48238 /// <summary>
48239 /// Value to append to the transaction handle and passed to the chainer executable.
48240 /// </summary>
48241 public string CommandLine
48242 {
48243 get
48244 {
48245 return this.commandLineField;
48246 }
48247 set
48248 {
48249 this.commandLineFieldSet = true;
48250 this.commandLineField = value;
48251 }
48252 }
48253
48254 /// <summary>
48255 /// Reference to the Binary element that contains the chainer executable. Mutually exclusive with
48256 /// the FileSource and PropertySource attributes.
48257 /// </summary>
48258 public string BinarySource
48259 {
48260 get
48261 {
48262 return this.binarySourceField;
48263 }
48264 set
48265 {
48266 this.binarySourceFieldSet = true;
48267 this.binarySourceField = value;
48268 }
48269 }
48270
48271 /// <summary>
48272 /// Reference to the File element that is the chainer executable. Mutually exclusive with
48273 /// the BinarySource and PropertySource attributes.
48274 /// </summary>
48275 public string FileSource
48276 {
48277 get
48278 {
48279 return this.fileSourceField;
48280 }
48281 set
48282 {
48283 this.fileSourceFieldSet = true;
48284 this.fileSourceField = value;
48285 }
48286 }
48287
48288 /// <summary>
48289 /// Reference to a Property that resolves to the full path to the chainer executable. Mutually exclusive with
48290 /// the BinarySource and FileSource attributes.
48291 /// </summary>
48292 public string PropertySource
48293 {
48294 get
48295 {
48296 return this.propertySourceField;
48297 }
48298 set
48299 {
48300 this.propertySourceFieldSet = true;
48301 this.propertySourceField = value;
48302 }
48303 }
48304
48305 /// <summary>
48306 /// Element value is the condition. CDATA may be used to when a condition contains many XML characters
48307 /// that must be escaped. It is important to note that each EmbeddedChainer element must have a mutually exclusive condition
48308 /// to ensure that only one embedded chainer will execute at a time. If the conditions are not mutually exclusive the chainer
48309 /// that executes is undeterministic.
48310 /// </summary>
48311 public string Content
48312 {
48313 get
48314 {
48315 return this.contentField;
48316 }
48317 set
48318 {
48319 this.contentFieldSet = true;
48320 this.contentField = value;
48321 }
48322 }
48323
48324 public virtual ISchemaElement ParentElement
48325 {
48326 get
48327 {
48328 return this.parentElement;
48329 }
48330 set
48331 {
48332 this.parentElement = value;
48333 }
48334 }
48335
48336 /// <summary>
48337 /// Processes this element and all child elements into an XmlWriter.
48338 /// </summary>
48339 public virtual void OutputXml(XmlWriter writer)
48340 {
48341 if ((null == writer))
48342 {
48343 throw new ArgumentNullException("writer");
48344 }
48345 writer.WriteStartElement("EmbeddedChainer", "http://wixtoolset.org/schemas/v4/wxs");
48346 if (this.idFieldSet)
48347 {
48348 writer.WriteAttributeString("Id", this.idField);
48349 }
48350 if (this.commandLineFieldSet)
48351 {
48352 writer.WriteAttributeString("CommandLine", this.commandLineField);
48353 }
48354 if (this.binarySourceFieldSet)
48355 {
48356 writer.WriteAttributeString("BinarySource", this.binarySourceField);
48357 }
48358 if (this.fileSourceFieldSet)
48359 {
48360 writer.WriteAttributeString("FileSource", this.fileSourceField);
48361 }
48362 if (this.propertySourceFieldSet)
48363 {
48364 writer.WriteAttributeString("PropertySource", this.propertySourceField);
48365 }
48366 if (this.contentFieldSet)
48367 {
48368 writer.WriteString(this.contentField);
48369 }
48370 writer.WriteEndElement();
48371 }
48372
48373 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
48374 void ISetAttributes.SetAttribute(string name, string value)
48375 {
48376 if (String.IsNullOrEmpty(name))
48377 {
48378 throw new ArgumentNullException("name");
48379 }
48380 if (("Id" == name))
48381 {
48382 this.idField = value;
48383 this.idFieldSet = true;
48384 }
48385 if (("CommandLine" == name))
48386 {
48387 this.commandLineField = value;
48388 this.commandLineFieldSet = true;
48389 }
48390 if (("BinarySource" == name))
48391 {
48392 this.binarySourceField = value;
48393 this.binarySourceFieldSet = true;
48394 }
48395 if (("FileSource" == name))
48396 {
48397 this.fileSourceField = value;
48398 this.fileSourceFieldSet = true;
48399 }
48400 if (("PropertySource" == name))
48401 {
48402 this.propertySourceField = value;
48403 this.propertySourceFieldSet = true;
48404 }
48405 if (("Content" == name))
48406 {
48407 this.contentField = value;
48408 this.contentFieldSet = true;
48409 }
48410 }
48411 }
48412
48413 /// <summary>
48414 /// Reference to an EmbeddedChainer element. This will force the entire referenced Fragment's contents
48415 /// to be included in the installer database.
48416 /// </summary>
48417 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
48418 public class EmbeddedChainerRef : ISchemaElement, ISetAttributes
48419 {
48420
48421 private string idField;
48422
48423 private bool idFieldSet;
48424
48425 private ISchemaElement parentElement;
48426
48427 public string Id
48428 {
48429 get
48430 {
48431 return this.idField;
48432 }
48433 set
48434 {
48435 this.idFieldSet = true;
48436 this.idField = value;
48437 }
48438 }
48439
48440 public virtual ISchemaElement ParentElement
48441 {
48442 get
48443 {
48444 return this.parentElement;
48445 }
48446 set
48447 {
48448 this.parentElement = value;
48449 }
48450 }
48451
48452 /// <summary>
48453 /// Processes this element and all child elements into an XmlWriter.
48454 /// </summary>
48455 public virtual void OutputXml(XmlWriter writer)
48456 {
48457 if ((null == writer))
48458 {
48459 throw new ArgumentNullException("writer");
48460 }
48461 writer.WriteStartElement("EmbeddedChainerRef", "http://wixtoolset.org/schemas/v4/wxs");
48462 if (this.idFieldSet)
48463 {
48464 writer.WriteAttributeString("Id", this.idField);
48465 }
48466 writer.WriteEndElement();
48467 }
48468
48469 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
48470 void ISetAttributes.SetAttribute(string name, string value)
48471 {
48472 if (String.IsNullOrEmpty(name))
48473 {
48474 throw new ArgumentNullException("name");
48475 }
48476 if (("Id" == name))
48477 {
48478 this.idField = value;
48479 this.idFieldSet = true;
48480 }
48481 }
48482 }
48483
48484 /// <summary>
48485 /// Element value is the condition. Use CDATA if message contains delimiter characters.
48486 /// </summary>
48487 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
48488 public class EmbeddedUI : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
48489 {
48490
48491 private ElementCollection children;
48492
48493 private string idField;
48494
48495 private bool idFieldSet;
48496
48497 private YesNoType ignoreFatalExitField;
48498
48499 private bool ignoreFatalExitFieldSet;
48500
48501 private YesNoType ignoreErrorField;
48502
48503 private bool ignoreErrorFieldSet;
48504
48505 private YesNoType ignoreWarningField;
48506
48507 private bool ignoreWarningFieldSet;
48508
48509 private YesNoType ignoreUserField;
48510
48511 private bool ignoreUserFieldSet;
48512
48513 private YesNoType ignoreInfoField;
48514
48515 private bool ignoreInfoFieldSet;
48516
48517 private YesNoType ignoreFilesInUseField;
48518
48519 private bool ignoreFilesInUseFieldSet;
48520
48521 private YesNoType ignoreResolveSourceField;
48522
48523 private bool ignoreResolveSourceFieldSet;
48524
48525 private YesNoType ignoreOutOfDiskSpaceField;
48526
48527 private bool ignoreOutOfDiskSpaceFieldSet;
48528
48529 private YesNoType ignoreActionStartField;
48530
48531 private bool ignoreActionStartFieldSet;
48532
48533 private YesNoType ignoreActionDataField;
48534
48535 private bool ignoreActionDataFieldSet;
48536
48537 private YesNoType ignoreProgressField;
48538
48539 private bool ignoreProgressFieldSet;
48540
48541 private YesNoType ignoreCommonDataField;
48542
48543 private bool ignoreCommonDataFieldSet;
48544
48545 private YesNoType ignoreInitializeField;
48546
48547 private bool ignoreInitializeFieldSet;
48548
48549 private YesNoType ignoreTerminateField;
48550
48551 private bool ignoreTerminateFieldSet;
48552
48553 private YesNoType ignoreShowDialogField;
48554
48555 private bool ignoreShowDialogFieldSet;
48556
48557 private YesNoType ignoreRMFilesInUseField;
48558
48559 private bool ignoreRMFilesInUseFieldSet;
48560
48561 private YesNoType ignoreInstallStartField;
48562
48563 private bool ignoreInstallStartFieldSet;
48564
48565 private YesNoType ignoreInstallEndField;
48566
48567 private bool ignoreInstallEndFieldSet;
48568
48569 private string nameField;
48570
48571 private bool nameFieldSet;
48572
48573 private string sourceFileField;
48574
48575 private bool sourceFileFieldSet;
48576
48577 private YesNoType supportBasicUIField;
48578
48579 private bool supportBasicUIFieldSet;
48580
48581 private ISchemaElement parentElement;
48582
48583 public EmbeddedUI()
48584 {
48585 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
48586 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(EmbeddedUIResource)));
48587 this.children = childCollection0;
48588 }
48589
48590 public virtual IEnumerable Children
48591 {
48592 get
48593 {
48594 return this.children;
48595 }
48596 }
48597
48598 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
48599 public virtual IEnumerable this[System.Type childType]
48600 {
48601 get
48602 {
48603 return this.children.Filter(childType);
48604 }
48605 }
48606
48607 /// <summary>
48608 /// Unique identifier for embedded UI.If this attribute is not specified the Name attribute or the file name
48609 /// portion of the SourceFile attribute will be used.
48610 /// </summary>
48611 public string Id
48612 {
48613 get
48614 {
48615 return this.idField;
48616 }
48617 set
48618 {
48619 this.idFieldSet = true;
48620 this.idField = value;
48621 }
48622 }
48623
48624 /// <summary>
48625 /// Embedded UI will not recieve any INSTALLLOGMODE_FATALEXIT messages.
48626 /// </summary>
48627 public YesNoType IgnoreFatalExit
48628 {
48629 get
48630 {
48631 return this.ignoreFatalExitField;
48632 }
48633 set
48634 {
48635 this.ignoreFatalExitFieldSet = true;
48636 this.ignoreFatalExitField = value;
48637 }
48638 }
48639
48640 /// <summary>
48641 /// Embedded UI will not recieve any INSTALLLOGMODE_ERROR messages.
48642 /// </summary>
48643 public YesNoType IgnoreError
48644 {
48645 get
48646 {
48647 return this.ignoreErrorField;
48648 }
48649 set
48650 {
48651 this.ignoreErrorFieldSet = true;
48652 this.ignoreErrorField = value;
48653 }
48654 }
48655
48656 /// <summary>
48657 /// Embedded UI will not recieve any INSTALLLOGMODE_WARNING messages.
48658 /// </summary>
48659 public YesNoType IgnoreWarning
48660 {
48661 get
48662 {
48663 return this.ignoreWarningField;
48664 }
48665 set
48666 {
48667 this.ignoreWarningFieldSet = true;
48668 this.ignoreWarningField = value;
48669 }
48670 }
48671
48672 /// <summary>
48673 /// Embedded UI will not recieve any INSTALLLOGMODE_USER messages.
48674 /// </summary>
48675 public YesNoType IgnoreUser
48676 {
48677 get
48678 {
48679 return this.ignoreUserField;
48680 }
48681 set
48682 {
48683 this.ignoreUserFieldSet = true;
48684 this.ignoreUserField = value;
48685 }
48686 }
48687
48688 /// <summary>
48689 /// Embedded UI will not recieve any INSTALLLOGMODE_INFO messages.
48690 /// </summary>
48691 public YesNoType IgnoreInfo
48692 {
48693 get
48694 {
48695 return this.ignoreInfoField;
48696 }
48697 set
48698 {
48699 this.ignoreInfoFieldSet = true;
48700 this.ignoreInfoField = value;
48701 }
48702 }
48703
48704 /// <summary>
48705 /// Embedded UI will not recieve any INSTALLLOGMODE_FILESINUSE messages.
48706 /// </summary>
48707 public YesNoType IgnoreFilesInUse
48708 {
48709 get
48710 {
48711 return this.ignoreFilesInUseField;
48712 }
48713 set
48714 {
48715 this.ignoreFilesInUseFieldSet = true;
48716 this.ignoreFilesInUseField = value;
48717 }
48718 }
48719
48720 /// <summary>
48721 /// Embedded UI will not recieve any INSTALLLOGMODE_RESOLVESOURCE messages.
48722 /// </summary>
48723 public YesNoType IgnoreResolveSource
48724 {
48725 get
48726 {
48727 return this.ignoreResolveSourceField;
48728 }
48729 set
48730 {
48731 this.ignoreResolveSourceFieldSet = true;
48732 this.ignoreResolveSourceField = value;
48733 }
48734 }
48735
48736 /// <summary>
48737 /// Embedded UI will not recieve any INSTALLLOGMODE_OUTOFDISKSPACE messages.
48738 /// </summary>
48739 public YesNoType IgnoreOutOfDiskSpace
48740 {
48741 get
48742 {
48743 return this.ignoreOutOfDiskSpaceField;
48744 }
48745 set
48746 {
48747 this.ignoreOutOfDiskSpaceFieldSet = true;
48748 this.ignoreOutOfDiskSpaceField = value;
48749 }
48750 }
48751
48752 /// <summary>
48753 /// Embedded UI will not recieve any INSTALLLOGMODE_ACTIONSTART messages.
48754 /// </summary>
48755 public YesNoType IgnoreActionStart
48756 {
48757 get
48758 {
48759 return this.ignoreActionStartField;
48760 }
48761 set
48762 {
48763 this.ignoreActionStartFieldSet = true;
48764 this.ignoreActionStartField = value;
48765 }
48766 }
48767
48768 /// <summary>
48769 /// Embedded UI will not recieve any INSTALLLOGMODE_ACTIONDATA messages.
48770 /// </summary>
48771 public YesNoType IgnoreActionData
48772 {
48773 get
48774 {
48775 return this.ignoreActionDataField;
48776 }
48777 set
48778 {
48779 this.ignoreActionDataFieldSet = true;
48780 this.ignoreActionDataField = value;
48781 }
48782 }
48783
48784 /// <summary>
48785 /// Embedded UI will not recieve any INSTALLLOGMODE_PROGRESS messages.
48786 /// </summary>
48787 public YesNoType IgnoreProgress
48788 {
48789 get
48790 {
48791 return this.ignoreProgressField;
48792 }
48793 set
48794 {
48795 this.ignoreProgressFieldSet = true;
48796 this.ignoreProgressField = value;
48797 }
48798 }
48799
48800 /// <summary>
48801 /// Embedded UI will not recieve any INSTALLLOGMODE_COMMONDATA messages.
48802 /// </summary>
48803 public YesNoType IgnoreCommonData
48804 {
48805 get
48806 {
48807 return this.ignoreCommonDataField;
48808 }
48809 set
48810 {
48811 this.ignoreCommonDataFieldSet = true;
48812 this.ignoreCommonDataField = value;
48813 }
48814 }
48815
48816 /// <summary>
48817 /// Embedded UI will not recieve any INSTALLLOGMODE_INITIALIZE messages.
48818 /// </summary>
48819 public YesNoType IgnoreInitialize
48820 {
48821 get
48822 {
48823 return this.ignoreInitializeField;
48824 }
48825 set
48826 {
48827 this.ignoreInitializeFieldSet = true;
48828 this.ignoreInitializeField = value;
48829 }
48830 }
48831
48832 /// <summary>
48833 /// Embedded UI will not recieve any INSTALLLOGMODE_TERMINATE messages.
48834 /// </summary>
48835 public YesNoType IgnoreTerminate
48836 {
48837 get
48838 {
48839 return this.ignoreTerminateField;
48840 }
48841 set
48842 {
48843 this.ignoreTerminateFieldSet = true;
48844 this.ignoreTerminateField = value;
48845 }
48846 }
48847
48848 /// <summary>
48849 /// Embedded UI will not recieve any INSTALLLOGMODE_SHOWDIALOG messages.
48850 /// </summary>
48851 public YesNoType IgnoreShowDialog
48852 {
48853 get
48854 {
48855 return this.ignoreShowDialogField;
48856 }
48857 set
48858 {
48859 this.ignoreShowDialogFieldSet = true;
48860 this.ignoreShowDialogField = value;
48861 }
48862 }
48863
48864 /// <summary>
48865 /// Embedded UI will not recieve any INSTALLLOGMODE_RMFILESINUSE messages.
48866 /// </summary>
48867 [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")]
48868 public YesNoType IgnoreRMFilesInUse
48869 {
48870 get
48871 {
48872 return this.ignoreRMFilesInUseField;
48873 }
48874 set
48875 {
48876 this.ignoreRMFilesInUseFieldSet = true;
48877 this.ignoreRMFilesInUseField = value;
48878 }
48879 }
48880
48881 /// <summary>
48882 /// Embedded UI will not recieve any INSTALLLOGMODE_INSTALLSTART messages.
48883 /// </summary>
48884 public YesNoType IgnoreInstallStart
48885 {
48886 get
48887 {
48888 return this.ignoreInstallStartField;
48889 }
48890 set
48891 {
48892 this.ignoreInstallStartFieldSet = true;
48893 this.ignoreInstallStartField = value;
48894 }
48895 }
48896
48897 /// <summary>
48898 /// Embedded UI will not recieve any INSTALLLOGMODE_INSTALLEND messages.
48899 /// </summary>
48900 public YesNoType IgnoreInstallEnd
48901 {
48902 get
48903 {
48904 return this.ignoreInstallEndField;
48905 }
48906 set
48907 {
48908 this.ignoreInstallEndFieldSet = true;
48909 this.ignoreInstallEndField = value;
48910 }
48911 }
48912
48913 /// <summary>
48914 /// The name for the embedded UI DLL when it is extracted from the Product and executed. (Windows Installer
48915 /// does not support the typical short filename and long filename combination for embedded UI files as it
48916 /// does for other kinds of files.) If this attribute is not specified the file name portion of the SourceFile
48917 /// attribute will be used.
48918 /// </summary>
48919 public string Name
48920 {
48921 get
48922 {
48923 return this.nameField;
48924 }
48925 set
48926 {
48927 this.nameFieldSet = true;
48928 this.nameField = value;
48929 }
48930 }
48931
48932 /// <summary>
48933 /// Path to the binary file that is the embedded UI. This must be a DLL that exports the following
48934 /// three entry points: InitializeEmbeddedUI, EmbeddedUIHandler and ShutdownEmbeddedUI.
48935 /// </summary>
48936 public string SourceFile
48937 {
48938 get
48939 {
48940 return this.sourceFileField;
48941 }
48942 set
48943 {
48944 this.sourceFileFieldSet = true;
48945 this.sourceFileField = value;
48946 }
48947 }
48948
48949 /// <summary>
48950 /// Set yes to allow the Windows Installer to display the embedded UI during basic UI level installation.
48951 /// </summary>
48952 public YesNoType SupportBasicUI
48953 {
48954 get
48955 {
48956 return this.supportBasicUIField;
48957 }
48958 set
48959 {
48960 this.supportBasicUIFieldSet = true;
48961 this.supportBasicUIField = value;
48962 }
48963 }
48964
48965 public virtual ISchemaElement ParentElement
48966 {
48967 get
48968 {
48969 return this.parentElement;
48970 }
48971 set
48972 {
48973 this.parentElement = value;
48974 }
48975 }
48976
48977 public virtual void AddChild(ISchemaElement child)
48978 {
48979 if ((null == child))
48980 {
48981 throw new ArgumentNullException("child");
48982 }
48983 this.children.AddElement(child);
48984 child.ParentElement = this;
48985 }
48986
48987 public virtual void RemoveChild(ISchemaElement child)
48988 {
48989 if ((null == child))
48990 {
48991 throw new ArgumentNullException("child");
48992 }
48993 this.children.RemoveElement(child);
48994 child.ParentElement = null;
48995 }
48996
48997 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
48998 ISchemaElement ICreateChildren.CreateChild(string childName)
48999 {
49000 if (String.IsNullOrEmpty(childName))
49001 {
49002 throw new ArgumentNullException("childName");
49003 }
49004 ISchemaElement childValue = null;
49005 if (("EmbeddedUIResource" == childName))
49006 {
49007 childValue = new EmbeddedUIResource();
49008 }
49009 if ((null == childValue))
49010 {
49011 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
49012 }
49013 return childValue;
49014 }
49015
49016 /// <summary>
49017 /// Processes this element and all child elements into an XmlWriter.
49018 /// </summary>
49019 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
49020 public virtual void OutputXml(XmlWriter writer)
49021 {
49022 if ((null == writer))
49023 {
49024 throw new ArgumentNullException("writer");
49025 }
49026 writer.WriteStartElement("EmbeddedUI", "http://wixtoolset.org/schemas/v4/wxs");
49027 if (this.idFieldSet)
49028 {
49029 writer.WriteAttributeString("Id", this.idField);
49030 }
49031 if (this.ignoreFatalExitFieldSet)
49032 {
49033 if ((this.ignoreFatalExitField == YesNoType.no))
49034 {
49035 writer.WriteAttributeString("IgnoreFatalExit", "no");
49036 }
49037 if ((this.ignoreFatalExitField == YesNoType.yes))
49038 {
49039 writer.WriteAttributeString("IgnoreFatalExit", "yes");
49040 }
49041 }
49042 if (this.ignoreErrorFieldSet)
49043 {
49044 if ((this.ignoreErrorField == YesNoType.no))
49045 {
49046 writer.WriteAttributeString("IgnoreError", "no");
49047 }
49048 if ((this.ignoreErrorField == YesNoType.yes))
49049 {
49050 writer.WriteAttributeString("IgnoreError", "yes");
49051 }
49052 }
49053 if (this.ignoreWarningFieldSet)
49054 {
49055 if ((this.ignoreWarningField == YesNoType.no))
49056 {
49057 writer.WriteAttributeString("IgnoreWarning", "no");
49058 }
49059 if ((this.ignoreWarningField == YesNoType.yes))
49060 {
49061 writer.WriteAttributeString("IgnoreWarning", "yes");
49062 }
49063 }
49064 if (this.ignoreUserFieldSet)
49065 {
49066 if ((this.ignoreUserField == YesNoType.no))
49067 {
49068 writer.WriteAttributeString("IgnoreUser", "no");
49069 }
49070 if ((this.ignoreUserField == YesNoType.yes))
49071 {
49072 writer.WriteAttributeString("IgnoreUser", "yes");
49073 }
49074 }
49075 if (this.ignoreInfoFieldSet)
49076 {
49077 if ((this.ignoreInfoField == YesNoType.no))
49078 {
49079 writer.WriteAttributeString("IgnoreInfo", "no");
49080 }
49081 if ((this.ignoreInfoField == YesNoType.yes))
49082 {
49083 writer.WriteAttributeString("IgnoreInfo", "yes");
49084 }
49085 }
49086 if (this.ignoreFilesInUseFieldSet)
49087 {
49088 if ((this.ignoreFilesInUseField == YesNoType.no))
49089 {
49090 writer.WriteAttributeString("IgnoreFilesInUse", "no");
49091 }
49092 if ((this.ignoreFilesInUseField == YesNoType.yes))
49093 {
49094 writer.WriteAttributeString("IgnoreFilesInUse", "yes");
49095 }
49096 }
49097 if (this.ignoreResolveSourceFieldSet)
49098 {
49099 if ((this.ignoreResolveSourceField == YesNoType.no))
49100 {
49101 writer.WriteAttributeString("IgnoreResolveSource", "no");
49102 }
49103 if ((this.ignoreResolveSourceField == YesNoType.yes))
49104 {
49105 writer.WriteAttributeString("IgnoreResolveSource", "yes");
49106 }
49107 }
49108 if (this.ignoreOutOfDiskSpaceFieldSet)
49109 {
49110 if ((this.ignoreOutOfDiskSpaceField == YesNoType.no))
49111 {
49112 writer.WriteAttributeString("IgnoreOutOfDiskSpace", "no");
49113 }
49114 if ((this.ignoreOutOfDiskSpaceField == YesNoType.yes))
49115 {
49116 writer.WriteAttributeString("IgnoreOutOfDiskSpace", "yes");
49117 }
49118 }
49119 if (this.ignoreActionStartFieldSet)
49120 {
49121 if ((this.ignoreActionStartField == YesNoType.no))
49122 {
49123 writer.WriteAttributeString("IgnoreActionStart", "no");
49124 }
49125 if ((this.ignoreActionStartField == YesNoType.yes))
49126 {
49127 writer.WriteAttributeString("IgnoreActionStart", "yes");
49128 }
49129 }
49130 if (this.ignoreActionDataFieldSet)
49131 {
49132 if ((this.ignoreActionDataField == YesNoType.no))
49133 {
49134 writer.WriteAttributeString("IgnoreActionData", "no");
49135 }
49136 if ((this.ignoreActionDataField == YesNoType.yes))
49137 {
49138 writer.WriteAttributeString("IgnoreActionData", "yes");
49139 }
49140 }
49141 if (this.ignoreProgressFieldSet)
49142 {
49143 if ((this.ignoreProgressField == YesNoType.no))
49144 {
49145 writer.WriteAttributeString("IgnoreProgress", "no");
49146 }
49147 if ((this.ignoreProgressField == YesNoType.yes))
49148 {
49149 writer.WriteAttributeString("IgnoreProgress", "yes");
49150 }
49151 }
49152 if (this.ignoreCommonDataFieldSet)
49153 {
49154 if ((this.ignoreCommonDataField == YesNoType.no))
49155 {
49156 writer.WriteAttributeString("IgnoreCommonData", "no");
49157 }
49158 if ((this.ignoreCommonDataField == YesNoType.yes))
49159 {
49160 writer.WriteAttributeString("IgnoreCommonData", "yes");
49161 }
49162 }
49163 if (this.ignoreInitializeFieldSet)
49164 {
49165 if ((this.ignoreInitializeField == YesNoType.no))
49166 {
49167 writer.WriteAttributeString("IgnoreInitialize", "no");
49168 }
49169 if ((this.ignoreInitializeField == YesNoType.yes))
49170 {
49171 writer.WriteAttributeString("IgnoreInitialize", "yes");
49172 }
49173 }
49174 if (this.ignoreTerminateFieldSet)
49175 {
49176 if ((this.ignoreTerminateField == YesNoType.no))
49177 {
49178 writer.WriteAttributeString("IgnoreTerminate", "no");
49179 }
49180 if ((this.ignoreTerminateField == YesNoType.yes))
49181 {
49182 writer.WriteAttributeString("IgnoreTerminate", "yes");
49183 }
49184 }
49185 if (this.ignoreShowDialogFieldSet)
49186 {
49187 if ((this.ignoreShowDialogField == YesNoType.no))
49188 {
49189 writer.WriteAttributeString("IgnoreShowDialog", "no");
49190 }
49191 if ((this.ignoreShowDialogField == YesNoType.yes))
49192 {
49193 writer.WriteAttributeString("IgnoreShowDialog", "yes");
49194 }
49195 }
49196 if (this.ignoreRMFilesInUseFieldSet)
49197 {
49198 if ((this.ignoreRMFilesInUseField == YesNoType.no))
49199 {
49200 writer.WriteAttributeString("IgnoreRMFilesInUse", "no");
49201 }
49202 if ((this.ignoreRMFilesInUseField == YesNoType.yes))
49203 {
49204 writer.WriteAttributeString("IgnoreRMFilesInUse", "yes");
49205 }
49206 }
49207 if (this.ignoreInstallStartFieldSet)
49208 {
49209 if ((this.ignoreInstallStartField == YesNoType.no))
49210 {
49211 writer.WriteAttributeString("IgnoreInstallStart", "no");
49212 }
49213 if ((this.ignoreInstallStartField == YesNoType.yes))
49214 {
49215 writer.WriteAttributeString("IgnoreInstallStart", "yes");
49216 }
49217 }
49218 if (this.ignoreInstallEndFieldSet)
49219 {
49220 if ((this.ignoreInstallEndField == YesNoType.no))
49221 {
49222 writer.WriteAttributeString("IgnoreInstallEnd", "no");
49223 }
49224 if ((this.ignoreInstallEndField == YesNoType.yes))
49225 {
49226 writer.WriteAttributeString("IgnoreInstallEnd", "yes");
49227 }
49228 }
49229 if (this.nameFieldSet)
49230 {
49231 writer.WriteAttributeString("Name", this.nameField);
49232 }
49233 if (this.sourceFileFieldSet)
49234 {
49235 writer.WriteAttributeString("SourceFile", this.sourceFileField);
49236 }
49237 if (this.supportBasicUIFieldSet)
49238 {
49239 if ((this.supportBasicUIField == YesNoType.no))
49240 {
49241 writer.WriteAttributeString("SupportBasicUI", "no");
49242 }
49243 if ((this.supportBasicUIField == YesNoType.yes))
49244 {
49245 writer.WriteAttributeString("SupportBasicUI", "yes");
49246 }
49247 }
49248 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
49249 {
49250 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
49251 childElement.OutputXml(writer);
49252 }
49253 writer.WriteEndElement();
49254 }
49255
49256 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
49257 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
49258 void ISetAttributes.SetAttribute(string name, string value)
49259 {
49260 if (String.IsNullOrEmpty(name))
49261 {
49262 throw new ArgumentNullException("name");
49263 }
49264 if (("Id" == name))
49265 {
49266 this.idField = value;
49267 this.idFieldSet = true;
49268 }
49269 if (("IgnoreFatalExit" == name))
49270 {
49271 this.ignoreFatalExitField = Enums.ParseYesNoType(value);
49272 this.ignoreFatalExitFieldSet = true;
49273 }
49274 if (("IgnoreError" == name))
49275 {
49276 this.ignoreErrorField = Enums.ParseYesNoType(value);
49277 this.ignoreErrorFieldSet = true;
49278 }
49279 if (("IgnoreWarning" == name))
49280 {
49281 this.ignoreWarningField = Enums.ParseYesNoType(value);
49282 this.ignoreWarningFieldSet = true;
49283 }
49284 if (("IgnoreUser" == name))
49285 {
49286 this.ignoreUserField = Enums.ParseYesNoType(value);
49287 this.ignoreUserFieldSet = true;
49288 }
49289 if (("IgnoreInfo" == name))
49290 {
49291 this.ignoreInfoField = Enums.ParseYesNoType(value);
49292 this.ignoreInfoFieldSet = true;
49293 }
49294 if (("IgnoreFilesInUse" == name))
49295 {
49296 this.ignoreFilesInUseField = Enums.ParseYesNoType(value);
49297 this.ignoreFilesInUseFieldSet = true;
49298 }
49299 if (("IgnoreResolveSource" == name))
49300 {
49301 this.ignoreResolveSourceField = Enums.ParseYesNoType(value);
49302 this.ignoreResolveSourceFieldSet = true;
49303 }
49304 if (("IgnoreOutOfDiskSpace" == name))
49305 {
49306 this.ignoreOutOfDiskSpaceField = Enums.ParseYesNoType(value);
49307 this.ignoreOutOfDiskSpaceFieldSet = true;
49308 }
49309 if (("IgnoreActionStart" == name))
49310 {
49311 this.ignoreActionStartField = Enums.ParseYesNoType(value);
49312 this.ignoreActionStartFieldSet = true;
49313 }
49314 if (("IgnoreActionData" == name))
49315 {
49316 this.ignoreActionDataField = Enums.ParseYesNoType(value);
49317 this.ignoreActionDataFieldSet = true;
49318 }
49319 if (("IgnoreProgress" == name))
49320 {
49321 this.ignoreProgressField = Enums.ParseYesNoType(value);
49322 this.ignoreProgressFieldSet = true;
49323 }
49324 if (("IgnoreCommonData" == name))
49325 {
49326 this.ignoreCommonDataField = Enums.ParseYesNoType(value);
49327 this.ignoreCommonDataFieldSet = true;
49328 }
49329 if (("IgnoreInitialize" == name))
49330 {
49331 this.ignoreInitializeField = Enums.ParseYesNoType(value);
49332 this.ignoreInitializeFieldSet = true;
49333 }
49334 if (("IgnoreTerminate" == name))
49335 {
49336 this.ignoreTerminateField = Enums.ParseYesNoType(value);
49337 this.ignoreTerminateFieldSet = true;
49338 }
49339 if (("IgnoreShowDialog" == name))
49340 {
49341 this.ignoreShowDialogField = Enums.ParseYesNoType(value);
49342 this.ignoreShowDialogFieldSet = true;
49343 }
49344 if (("IgnoreRMFilesInUse" == name))
49345 {
49346 this.ignoreRMFilesInUseField = Enums.ParseYesNoType(value);
49347 this.ignoreRMFilesInUseFieldSet = true;
49348 }
49349 if (("IgnoreInstallStart" == name))
49350 {
49351 this.ignoreInstallStartField = Enums.ParseYesNoType(value);
49352 this.ignoreInstallStartFieldSet = true;
49353 }
49354 if (("IgnoreInstallEnd" == name))
49355 {
49356 this.ignoreInstallEndField = Enums.ParseYesNoType(value);
49357 this.ignoreInstallEndFieldSet = true;
49358 }
49359 if (("Name" == name))
49360 {
49361 this.nameField = value;
49362 this.nameFieldSet = true;
49363 }
49364 if (("SourceFile" == name))
49365 {
49366 this.sourceFileField = value;
49367 this.sourceFileFieldSet = true;
49368 }
49369 if (("SupportBasicUI" == name))
49370 {
49371 this.supportBasicUIField = Enums.ParseYesNoType(value);
49372 this.supportBasicUIFieldSet = true;
49373 }
49374 }
49375 }
49376
49377 /// <summary>
49378 /// Defines a resource for use by the embedded UI.
49379 /// </summary>
49380 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
49381 public class EmbeddedUIResource : ISchemaElement, ISetAttributes
49382 {
49383
49384 private string idField;
49385
49386 private bool idFieldSet;
49387
49388 private string nameField;
49389
49390 private bool nameFieldSet;
49391
49392 private string sourceFileField;
49393
49394 private bool sourceFileFieldSet;
49395
49396 private ISchemaElement parentElement;
49397
49398 /// <summary>
49399 /// Identifier for the embedded UI resource.
49400 /// </summary>
49401 public string Id
49402 {
49403 get
49404 {
49405 return this.idField;
49406 }
49407 set
49408 {
49409 this.idFieldSet = true;
49410 this.idField = value;
49411 }
49412 }
49413
49414 /// <summary>
49415 /// The name for the resource when it is extracted from the Product for use by the embedded UI DLL. (Windows
49416 /// Installer does not support the typical short filename and long filename combination for embedded UI files
49417 /// as it does for other kinds of files.) If this attribute is not specified the Id attribute will be used.
49418 /// </summary>
49419 public string Name
49420 {
49421 get
49422 {
49423 return this.nameField;
49424 }
49425 set
49426 {
49427 this.nameFieldSet = true;
49428 this.nameField = value;
49429 }
49430 }
49431
49432 /// <summary>
49433 /// Path to the binary file that is the embedded UI resource.
49434 /// </summary>
49435 public string SourceFile
49436 {
49437 get
49438 {
49439 return this.sourceFileField;
49440 }
49441 set
49442 {
49443 this.sourceFileFieldSet = true;
49444 this.sourceFileField = value;
49445 }
49446 }
49447
49448 public virtual ISchemaElement ParentElement
49449 {
49450 get
49451 {
49452 return this.parentElement;
49453 }
49454 set
49455 {
49456 this.parentElement = value;
49457 }
49458 }
49459
49460 /// <summary>
49461 /// Processes this element and all child elements into an XmlWriter.
49462 /// </summary>
49463 public virtual void OutputXml(XmlWriter writer)
49464 {
49465 if ((null == writer))
49466 {
49467 throw new ArgumentNullException("writer");
49468 }
49469 writer.WriteStartElement("EmbeddedUIResource", "http://wixtoolset.org/schemas/v4/wxs");
49470 if (this.idFieldSet)
49471 {
49472 writer.WriteAttributeString("Id", this.idField);
49473 }
49474 if (this.nameFieldSet)
49475 {
49476 writer.WriteAttributeString("Name", this.nameField);
49477 }
49478 if (this.sourceFileFieldSet)
49479 {
49480 writer.WriteAttributeString("SourceFile", this.sourceFileField);
49481 }
49482 writer.WriteEndElement();
49483 }
49484
49485 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
49486 void ISetAttributes.SetAttribute(string name, string value)
49487 {
49488 if (String.IsNullOrEmpty(name))
49489 {
49490 throw new ArgumentNullException("name");
49491 }
49492 if (("Id" == name))
49493 {
49494 this.idField = value;
49495 this.idFieldSet = true;
49496 }
49497 if (("Name" == name))
49498 {
49499 this.nameField = value;
49500 this.nameFieldSet = true;
49501 }
49502 if (("SourceFile" == name))
49503 {
49504 this.sourceFileField = value;
49505 this.sourceFileFieldSet = true;
49506 }
49507 }
49508 }
49509
49510 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
49511 public class Error : ISchemaElement, ISetAttributes
49512 {
49513
49514 private int idField;
49515
49516 private bool idFieldSet;
49517
49518 private string contentField;
49519
49520 private bool contentFieldSet;
49521
49522 private ISchemaElement parentElement;
49523
49524 /// <summary>
49525 /// Number of the error for which a message is being provided. See MSI SDK for error definitions.
49526 /// </summary>
49527 public int Id
49528 {
49529 get
49530 {
49531 return this.idField;
49532 }
49533 set
49534 {
49535 this.idFieldSet = true;
49536 this.idField = value;
49537 }
49538 }
49539
49540 /// <summary>
49541 /// Element value is Message, use CDATA if message contains delimiter characters
49542 /// </summary>
49543 public string Content
49544 {
49545 get
49546 {
49547 return this.contentField;
49548 }
49549 set
49550 {
49551 this.contentFieldSet = true;
49552 this.contentField = value;
49553 }
49554 }
49555
49556 public virtual ISchemaElement ParentElement
49557 {
49558 get
49559 {
49560 return this.parentElement;
49561 }
49562 set
49563 {
49564 this.parentElement = value;
49565 }
49566 }
49567
49568 /// <summary>
49569 /// Processes this element and all child elements into an XmlWriter.
49570 /// </summary>
49571 public virtual void OutputXml(XmlWriter writer)
49572 {
49573 if ((null == writer))
49574 {
49575 throw new ArgumentNullException("writer");
49576 }
49577 writer.WriteStartElement("Error", "http://wixtoolset.org/schemas/v4/wxs");
49578 if (this.idFieldSet)
49579 {
49580 writer.WriteAttributeString("Id", this.idField.ToString(CultureInfo.InvariantCulture));
49581 }
49582 if (this.contentFieldSet)
49583 {
49584 writer.WriteString(this.contentField);
49585 }
49586 writer.WriteEndElement();
49587 }
49588
49589 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
49590 void ISetAttributes.SetAttribute(string name, string value)
49591 {
49592 if (String.IsNullOrEmpty(name))
49593 {
49594 throw new ArgumentNullException("name");
49595 }
49596 if (("Id" == name))
49597 {
49598 this.idField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
49599 this.idFieldSet = true;
49600 }
49601 if (("Content" == name))
49602 {
49603 this.contentField = value;
49604 this.contentFieldSet = true;
49605 }
49606 }
49607 }
49608
49609 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
49610 public class Publish : ISchemaElement, ISetAttributes
49611 {
49612
49613 private string controlField;
49614
49615 private bool controlFieldSet;
49616
49617 private string dialogField;
49618
49619 private bool dialogFieldSet;
49620
49621 private string eventField;
49622
49623 private bool eventFieldSet;
49624
49625 private string orderField;
49626
49627 private bool orderFieldSet;
49628
49629 private string propertyField;
49630
49631 private bool propertyFieldSet;
49632
49633 private string valueField;
49634
49635 private bool valueFieldSet;
49636
49637 private string contentField;
49638
49639 private bool contentFieldSet;
49640
49641 private ISchemaElement parentElement;
49642
49643 /// <summary>
49644 /// The parent Control for this Publish element, should only be specified when this element is a child of the UI element.
49645 /// </summary>
49646 public string Control
49647 {
49648 get
49649 {
49650 return this.controlField;
49651 }
49652 set
49653 {
49654 this.controlFieldSet = true;
49655 this.controlField = value;
49656 }
49657 }
49658
49659 /// <summary>
49660 /// The parent Dialog for this Publish element, should only be specified when this element is a child of the UI element.
49661 /// This attribute will create a reference to the specified Dialog, so an additional DialogRef is not necessary.
49662 /// </summary>
49663 public string Dialog
49664 {
49665 get
49666 {
49667 return this.dialogField;
49668 }
49669 set
49670 {
49671 this.dialogFieldSet = true;
49672 this.dialogField = value;
49673 }
49674 }
49675
49676 /// <summary>
49677 /// Set this attribute's value to one of the standard control events to trigger that event.
49678 /// Either this attribute or the Property attribute must be set, but not both at the same time.
49679 /// </summary>
49680 public string Event
49681 {
49682 get
49683 {
49684 return this.eventField;
49685 }
49686 set
49687 {
49688 this.eventFieldSet = true;
49689 this.eventField = value;
49690 }
49691 }
49692
49693 /// <summary>
49694 /// This attribute should only need to be set if this element is nested under a UI element in order to
49695 /// control the order in which this publish event will be started.
49696 /// If this element is nested under a Control element, the default value will be one greater than any
49697 /// previous Publish element's order (the first element's default value is 1).
49698 /// If this element is nested under a UI element, the default value is always 1 (it does not get a
49699 /// default value based on any previous Publish elements).
49700 /// </summary>
49701 public string Order
49702 {
49703 get
49704 {
49705 return this.orderField;
49706 }
49707 set
49708 {
49709 this.orderFieldSet = true;
49710 this.orderField = value;
49711 }
49712 }
49713
49714 /// <summary>
49715 /// Set this attribute's value to a property name to set that property.
49716 /// Either this attribute or the Event attribute must be set, but not both at the same time.
49717 /// </summary>
49718 public string Property
49719 {
49720 get
49721 {
49722 return this.propertyField;
49723 }
49724 set
49725 {
49726 this.propertyFieldSet = true;
49727 this.propertyField = value;
49728 }
49729 }
49730
49731 /// <summary>
49732 /// If the Property attribute is specified, set the value of this attribute to the new value for the property.
49733 /// To set a property to null, do not set this attribute (the ControlEvent Argument column will be set to '{}').
49734 /// Otherwise, this attribute's value should be the argument for the event specified in the Event attribute.
49735 /// If the event doesn't take an attribute, a common value to use is "0".
49736 /// </summary>
49737 public string Value
49738 {
49739 get
49740 {
49741 return this.valueField;
49742 }
49743 set
49744 {
49745 this.valueFieldSet = true;
49746 this.valueField = value;
49747 }
49748 }
49749
49750 /// <summary>
49751 /// The element value is the optional Condition expression.
49752 /// </summary>
49753 public string Content
49754 {
49755 get
49756 {
49757 return this.contentField;
49758 }
49759 set
49760 {
49761 this.contentFieldSet = true;
49762 this.contentField = value;
49763 }
49764 }
49765
49766 public virtual ISchemaElement ParentElement
49767 {
49768 get
49769 {
49770 return this.parentElement;
49771 }
49772 set
49773 {
49774 this.parentElement = value;
49775 }
49776 }
49777
49778 /// <summary>
49779 /// Processes this element and all child elements into an XmlWriter.
49780 /// </summary>
49781 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
49782 public virtual void OutputXml(XmlWriter writer)
49783 {
49784 if ((null == writer))
49785 {
49786 throw new ArgumentNullException("writer");
49787 }
49788 writer.WriteStartElement("Publish", "http://wixtoolset.org/schemas/v4/wxs");
49789 if (this.controlFieldSet)
49790 {
49791 writer.WriteAttributeString("Control", this.controlField);
49792 }
49793 if (this.dialogFieldSet)
49794 {
49795 writer.WriteAttributeString("Dialog", this.dialogField);
49796 }
49797 if (this.eventFieldSet)
49798 {
49799 writer.WriteAttributeString("Event", this.eventField);
49800 }
49801 if (this.orderFieldSet)
49802 {
49803 writer.WriteAttributeString("Order", this.orderField);
49804 }
49805 if (this.propertyFieldSet)
49806 {
49807 writer.WriteAttributeString("Property", this.propertyField);
49808 }
49809 if (this.valueFieldSet)
49810 {
49811 writer.WriteAttributeString("Value", this.valueField);
49812 }
49813 if (this.contentFieldSet)
49814 {
49815 writer.WriteString(this.contentField);
49816 }
49817 writer.WriteEndElement();
49818 }
49819
49820 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
49821 void ISetAttributes.SetAttribute(string name, string value)
49822 {
49823 if (String.IsNullOrEmpty(name))
49824 {
49825 throw new ArgumentNullException("name");
49826 }
49827 if (("Control" == name))
49828 {
49829 this.controlField = value;
49830 this.controlFieldSet = true;
49831 }
49832 if (("Dialog" == name))
49833 {
49834 this.dialogField = value;
49835 this.dialogFieldSet = true;
49836 }
49837 if (("Event" == name))
49838 {
49839 this.eventField = value;
49840 this.eventFieldSet = true;
49841 }
49842 if (("Order" == name))
49843 {
49844 this.orderField = value;
49845 this.orderFieldSet = true;
49846 }
49847 if (("Property" == name))
49848 {
49849 this.propertyField = value;
49850 this.propertyFieldSet = true;
49851 }
49852 if (("Value" == name))
49853 {
49854 this.valueField = value;
49855 this.valueFieldSet = true;
49856 }
49857 if (("Content" == name))
49858 {
49859 this.contentField = value;
49860 this.contentFieldSet = true;
49861 }
49862 }
49863 }
49864
49865 /// <summary>
49866 /// Sets attributes for events in the EventMapping table
49867 /// </summary>
49868 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
49869 public class Subscribe : ISchemaElement, ISetAttributes
49870 {
49871
49872 private string eventField;
49873
49874 private bool eventFieldSet;
49875
49876 private string attributeField;
49877
49878 private bool attributeFieldSet;
49879
49880 private ISchemaElement parentElement;
49881
49882 /// <summary>
49883 /// must be one of the standard control events'
49884 /// </summary>
49885 public string Event
49886 {
49887 get
49888 {
49889 return this.eventField;
49890 }
49891 set
49892 {
49893 this.eventFieldSet = true;
49894 this.eventField = value;
49895 }
49896 }
49897
49898 /// <summary>
49899 /// if not present can only handle enable, disable, hide, unhide events
49900 /// </summary>
49901 public string Attribute
49902 {
49903 get
49904 {
49905 return this.attributeField;
49906 }
49907 set
49908 {
49909 this.attributeFieldSet = true;
49910 this.attributeField = value;
49911 }
49912 }
49913
49914 public virtual ISchemaElement ParentElement
49915 {
49916 get
49917 {
49918 return this.parentElement;
49919 }
49920 set
49921 {
49922 this.parentElement = value;
49923 }
49924 }
49925
49926 /// <summary>
49927 /// Processes this element and all child elements into an XmlWriter.
49928 /// </summary>
49929 public virtual void OutputXml(XmlWriter writer)
49930 {
49931 if ((null == writer))
49932 {
49933 throw new ArgumentNullException("writer");
49934 }
49935 writer.WriteStartElement("Subscribe", "http://wixtoolset.org/schemas/v4/wxs");
49936 if (this.eventFieldSet)
49937 {
49938 writer.WriteAttributeString("Event", this.eventField);
49939 }
49940 if (this.attributeFieldSet)
49941 {
49942 writer.WriteAttributeString("Attribute", this.attributeField);
49943 }
49944 writer.WriteEndElement();
49945 }
49946
49947 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
49948 void ISetAttributes.SetAttribute(string name, string value)
49949 {
49950 if (String.IsNullOrEmpty(name))
49951 {
49952 throw new ArgumentNullException("name");
49953 }
49954 if (("Event" == name))
49955 {
49956 this.eventField = value;
49957 this.eventFieldSet = true;
49958 }
49959 if (("Attribute" == name))
49960 {
49961 this.attributeField = value;
49962 this.attributeFieldSet = true;
49963 }
49964 }
49965 }
49966
49967 /// <summary>
49968 /// An alternative to using the Text attribute when the value contains special XML characters like &lt;, &gt;, or &amp;.
49969 /// </summary>
49970 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
49971 public class Text : ISchemaElement, ISetAttributes
49972 {
49973
49974 private string sourceFileField;
49975
49976 private bool sourceFileFieldSet;
49977
49978 private string srcField;
49979
49980 private bool srcFieldSet;
49981
49982 private string contentField;
49983
49984 private bool contentFieldSet;
49985
49986 private ISchemaElement parentElement;
49987
49988 /// <summary>
49989 /// Instructs the text to be imported from a file instead of the element value during the binding process.
49990 /// </summary>
49991 public string SourceFile
49992 {
49993 get
49994 {
49995 return this.sourceFileField;
49996 }
49997 set
49998 {
49999 this.sourceFileFieldSet = true;
50000 this.sourceFileField = value;
50001 }
50002 }
50003
50004 [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")]
50005 public string src
50006 {
50007 get
50008 {
50009 return this.srcField;
50010 }
50011 set
50012 {
50013 this.srcFieldSet = true;
50014 this.srcField = value;
50015 }
50016 }
50017
50018 public string Content
50019 {
50020 get
50021 {
50022 return this.contentField;
50023 }
50024 set
50025 {
50026 this.contentFieldSet = true;
50027 this.contentField = value;
50028 }
50029 }
50030
50031 public virtual ISchemaElement ParentElement
50032 {
50033 get
50034 {
50035 return this.parentElement;
50036 }
50037 set
50038 {
50039 this.parentElement = value;
50040 }
50041 }
50042
50043 /// <summary>
50044 /// Processes this element and all child elements into an XmlWriter.
50045 /// </summary>
50046 public virtual void OutputXml(XmlWriter writer)
50047 {
50048 if ((null == writer))
50049 {
50050 throw new ArgumentNullException("writer");
50051 }
50052 writer.WriteStartElement("Text", "http://wixtoolset.org/schemas/v4/wxs");
50053 if (this.sourceFileFieldSet)
50054 {
50055 writer.WriteAttributeString("SourceFile", this.sourceFileField);
50056 }
50057 if (this.srcFieldSet)
50058 {
50059 writer.WriteAttributeString("src", this.srcField);
50060 }
50061 if (this.contentFieldSet)
50062 {
50063 writer.WriteString(this.contentField);
50064 }
50065 writer.WriteEndElement();
50066 }
50067
50068 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
50069 void ISetAttributes.SetAttribute(string name, string value)
50070 {
50071 if (String.IsNullOrEmpty(name))
50072 {
50073 throw new ArgumentNullException("name");
50074 }
50075 if (("SourceFile" == name))
50076 {
50077 this.sourceFileField = value;
50078 this.sourceFileFieldSet = true;
50079 }
50080 if (("src" == name))
50081 {
50082 this.srcField = value;
50083 this.srcFieldSet = true;
50084 }
50085 if (("Content" == name))
50086 {
50087 this.contentField = value;
50088 this.contentFieldSet = true;
50089 }
50090 }
50091 }
50092
50093 /// <summary>
50094 /// Contains the controls that appear on each dialog.
50095 /// </summary>
50096 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
50097 public class Control : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
50098 {
50099
50100 private ElementCollection children;
50101
50102 private string idField;
50103
50104 private bool idFieldSet;
50105
50106 private string typeField;
50107
50108 private bool typeFieldSet;
50109
50110 private string xField;
50111
50112 private bool xFieldSet;
50113
50114 private string yField;
50115
50116 private bool yFieldSet;
50117
50118 private string widthField;
50119
50120 private bool widthFieldSet;
50121
50122 private string heightField;
50123
50124 private bool heightFieldSet;
50125
50126 private string propertyField;
50127
50128 private bool propertyFieldSet;
50129
50130 private string textField;
50131
50132 private bool textFieldSet;
50133
50134 private string helpField;
50135
50136 private bool helpFieldSet;
50137
50138 private string toolTipField;
50139
50140 private bool toolTipFieldSet;
50141
50142 private string checkBoxValueField;
50143
50144 private bool checkBoxValueFieldSet;
50145
50146 private string checkBoxPropertyRefField;
50147
50148 private bool checkBoxPropertyRefFieldSet;
50149
50150 private YesNoType tabSkipField;
50151
50152 private bool tabSkipFieldSet;
50153
50154 private YesNoType defaultField;
50155
50156 private bool defaultFieldSet;
50157
50158 private YesNoType cancelField;
50159
50160 private bool cancelFieldSet;
50161
50162 private YesNoType hiddenField;
50163
50164 private bool hiddenFieldSet;
50165
50166 private YesNoType disabledField;
50167
50168 private bool disabledFieldSet;
50169
50170 private YesNoType sunkenField;
50171
50172 private bool sunkenFieldSet;
50173
50174 private YesNoType indirectField;
50175
50176 private bool indirectFieldSet;
50177
50178 private YesNoType integerField;
50179
50180 private bool integerFieldSet;
50181
50182 private YesNoType rightToLeftField;
50183
50184 private bool rightToLeftFieldSet;
50185
50186 private YesNoType rightAlignedField;
50187
50188 private bool rightAlignedFieldSet;
50189
50190 private YesNoType leftScrollField;
50191
50192 private bool leftScrollFieldSet;
50193
50194 private YesNoType transparentField;
50195
50196 private bool transparentFieldSet;
50197
50198 private YesNoType noPrefixField;
50199
50200 private bool noPrefixFieldSet;
50201
50202 private YesNoType noWrapField;
50203
50204 private bool noWrapFieldSet;
50205
50206 private YesNoType formatSizeField;
50207
50208 private bool formatSizeFieldSet;
50209
50210 private YesNoType userLanguageField;
50211
50212 private bool userLanguageFieldSet;
50213
50214 private YesNoType multilineField;
50215
50216 private bool multilineFieldSet;
50217
50218 private YesNoType passwordField;
50219
50220 private bool passwordFieldSet;
50221
50222 private YesNoType progressBlocksField;
50223
50224 private bool progressBlocksFieldSet;
50225
50226 private YesNoType removableField;
50227
50228 private bool removableFieldSet;
50229
50230 private YesNoType fixedField;
50231
50232 private bool fixedFieldSet;
50233
50234 private YesNoType remoteField;
50235
50236 private bool remoteFieldSet;
50237
50238 private YesNoType cDROMField;
50239
50240 private bool cDROMFieldSet;
50241
50242 private YesNoType rAMDiskField;
50243
50244 private bool rAMDiskFieldSet;
50245
50246 private YesNoType floppyField;
50247
50248 private bool floppyFieldSet;
50249
50250 private YesNoType showRollbackCostField;
50251
50252 private bool showRollbackCostFieldSet;
50253
50254 private YesNoType sortedField;
50255
50256 private bool sortedFieldSet;
50257
50258 private YesNoType comboListField;
50259
50260 private bool comboListFieldSet;
50261
50262 private YesNoType imageField;
50263
50264 private bool imageFieldSet;
50265
50266 private IconSizeType iconSizeField;
50267
50268 private bool iconSizeFieldSet;
50269
50270 private YesNoType fixedSizeField;
50271
50272 private bool fixedSizeFieldSet;
50273
50274 private YesNoType iconField;
50275
50276 private bool iconFieldSet;
50277
50278 private YesNoType bitmapField;
50279
50280 private bool bitmapFieldSet;
50281
50282 private YesNoType pushLikeField;
50283
50284 private bool pushLikeFieldSet;
50285
50286 private YesNoType hasBorderField;
50287
50288 private bool hasBorderFieldSet;
50289
50290 private YesNoType elevationShieldField;
50291
50292 private bool elevationShieldFieldSet;
50293
50294 private ISchemaElement parentElement;
50295
50296 public Control()
50297 {
50298 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
50299 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Text)));
50300 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ComboBox)));
50301 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ListBox)));
50302 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ListView)));
50303 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(RadioButtonGroup)));
50304 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Property)));
50305 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Binary)));
50306 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice);
50307 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Condition)));
50308 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Publish)));
50309 childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Subscribe)));
50310 childCollection0.AddCollection(childCollection1);
50311 this.children = childCollection0;
50312 }
50313
50314 public virtual IEnumerable Children
50315 {
50316 get
50317 {
50318 return this.children;
50319 }
50320 }
50321
50322 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
50323 public virtual IEnumerable this[System.Type childType]
50324 {
50325 get
50326 {
50327 return this.children.Filter(childType);
50328 }
50329 }
50330
50331 /// <summary>
50332 /// Combined with the Dialog Id to make up the primary key of the Control table.
50333 /// </summary>
50334 public string Id
50335 {
50336 get
50337 {
50338 return this.idField;
50339 }
50340 set
50341 {
50342 this.idFieldSet = true;
50343 this.idField = value;
50344 }
50345 }
50346
50347 /// <summary>
50348 /// 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
50349 /// </summary>
50350 public string Type
50351 {
50352 get
50353 {
50354 return this.typeField;
50355 }
50356 set
50357 {
50358 this.typeFieldSet = true;
50359 this.typeField = value;
50360 }
50361 }
50362
50363 /// <summary>
50364 /// Horizontal coordinate of the upper-left corner of the rectangular boundary of the control. This must be a non-negative number.
50365 /// </summary>
50366 public string X
50367 {
50368 get
50369 {
50370 return this.xField;
50371 }
50372 set
50373 {
50374 this.xFieldSet = true;
50375 this.xField = value;
50376 }
50377 }
50378
50379 /// <summary>
50380 /// Vertical coordinate of the upper-left corner of the rectangular boundary of the control. This must be a non-negative number.
50381 /// </summary>
50382 public string Y
50383 {
50384 get
50385 {
50386 return this.yField;
50387 }
50388 set
50389 {
50390 this.yFieldSet = true;
50391 this.yField = value;
50392 }
50393 }
50394
50395 /// <summary>
50396 /// Width of the rectangular boundary of the control. This must be a non-negative number.
50397 /// </summary>
50398 public string Width
50399 {
50400 get
50401 {
50402 return this.widthField;
50403 }
50404 set
50405 {
50406 this.widthFieldSet = true;
50407 this.widthField = value;
50408 }
50409 }
50410
50411 /// <summary>
50412 /// Height of the rectangular boundary of the control. This must be a non-negative number.
50413 /// </summary>
50414 public string Height
50415 {
50416 get
50417 {
50418 return this.heightField;
50419 }
50420 set
50421 {
50422 this.heightFieldSet = true;
50423 this.heightField = value;
50424 }
50425 }
50426
50427 /// <summary>
50428 /// The name of a defined property to be linked to this control. This column is required for active controls.
50429 /// </summary>
50430 public string Property
50431 {
50432 get
50433 {
50434 return this.propertyField;
50435 }
50436 set
50437 {
50438 this.propertyFieldSet = true;
50439 this.propertyField = value;
50440 }
50441 }
50442
50443 /// <summary>
50444 /// 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
50445 /// </summary>
50446 public string Text
50447 {
50448 get
50449 {
50450 return this.textField;
50451 }
50452 set
50453 {
50454 this.textFieldSet = true;
50455 this.textField = value;
50456 }
50457 }
50458
50459 /// <summary>
50460 /// This attribute is reserved for future use. There is no need to use this until Windows Installer uses it for something.
50461 /// </summary>
50462 public string Help
50463 {
50464 get
50465 {
50466 return this.helpField;
50467 }
50468 set
50469 {
50470 this.helpFieldSet = true;
50471 this.helpField = value;
50472 }
50473 }
50474
50475 /// <summary>
50476 /// The string used for the Tooltip.
50477 /// </summary>
50478 public string ToolTip
50479 {
50480 get
50481 {
50482 return this.toolTipField;
50483 }
50484 set
50485 {
50486 this.toolTipFieldSet = true;
50487 this.toolTipField = value;
50488 }
50489 }
50490
50491 /// <summary>
50492 /// 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.
50493 /// </summary>
50494 public string CheckBoxValue
50495 {
50496 get
50497 {
50498 return this.checkBoxValueField;
50499 }
50500 set
50501 {
50502 this.checkBoxValueFieldSet = true;
50503 this.checkBoxValueField = value;
50504 }
50505 }
50506
50507 /// <summary>
50508 /// 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.
50509 /// </summary>
50510 public string CheckBoxPropertyRef
50511 {
50512 get
50513 {
50514 return this.checkBoxPropertyRefField;
50515 }
50516 set
50517 {
50518 this.checkBoxPropertyRefFieldSet = true;
50519 this.checkBoxPropertyRefField = value;
50520 }
50521 }
50522
50523 /// <summary>
50524 /// Set this attribute to "yes" to cause this Control to be skipped in the tab sequence.
50525 /// </summary>
50526 public YesNoType TabSkip
50527 {
50528 get
50529 {
50530 return this.tabSkipField;
50531 }
50532 set
50533 {
50534 this.tabSkipFieldSet = true;
50535 this.tabSkipField = value;
50536 }
50537 }
50538
50539 /// <summary>
50540 /// Set this attribute to "yes" to cause this Control to be invoked by the return key.
50541 /// </summary>
50542 public YesNoType Default
50543 {
50544 get
50545 {
50546 return this.defaultField;
50547 }
50548 set
50549 {
50550 this.defaultFieldSet = true;
50551 this.defaultField = value;
50552 }
50553 }
50554
50555 /// <summary>
50556 /// Set this attribute to "yes" to cause this Control to be invoked by the escape key.
50557 /// </summary>
50558 public YesNoType Cancel
50559 {
50560 get
50561 {
50562 return this.cancelField;
50563 }
50564 set
50565 {
50566 this.cancelFieldSet = true;
50567 this.cancelField = value;
50568 }
50569 }
50570
50571 /// <summary>
50572 /// Set this attribute to "yes" to cause the Control to be hidden.
50573 /// </summary>
50574 public YesNoType Hidden
50575 {
50576 get
50577 {
50578 return this.hiddenField;
50579 }
50580 set
50581 {
50582 this.hiddenFieldSet = true;
50583 this.hiddenField = value;
50584 }
50585 }
50586
50587 /// <summary>
50588 /// Set this attribute to "yes" to cause the Control to be disabled.
50589 /// </summary>
50590 public YesNoType Disabled
50591 {
50592 get
50593 {
50594 return this.disabledField;
50595 }
50596 set
50597 {
50598 this.disabledFieldSet = true;
50599 this.disabledField = value;
50600 }
50601 }
50602
50603 /// <summary>
50604 /// Set this attribute to "yes" to cause the Control to be sunken.
50605 /// </summary>
50606 public YesNoType Sunken
50607 {
50608 get
50609 {
50610 return this.sunkenField;
50611 }
50612 set
50613 {
50614 this.sunkenFieldSet = true;
50615 this.sunkenField = value;
50616 }
50617 }
50618
50619 /// <summary>
50620 /// 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.
50621 /// </summary>
50622 public YesNoType Indirect
50623 {
50624 get
50625 {
50626 return this.indirectField;
50627 }
50628 set
50629 {
50630 this.indirectFieldSet = true;
50631 this.indirectField = value;
50632 }
50633 }
50634
50635 /// <summary>
50636 /// 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.
50637 /// </summary>
50638 public YesNoType Integer
50639 {
50640 get
50641 {
50642 return this.integerField;
50643 }
50644 set
50645 {
50646 this.integerFieldSet = true;
50647 this.integerField = value;
50648 }
50649 }
50650
50651 /// <summary>
50652 /// Set this attribute to "yes" to cause the Control to display from right to left.
50653 /// </summary>
50654 public YesNoType RightToLeft
50655 {
50656 get
50657 {
50658 return this.rightToLeftField;
50659 }
50660 set
50661 {
50662 this.rightToLeftFieldSet = true;
50663 this.rightToLeftField = value;
50664 }
50665 }
50666
50667 /// <summary>
50668 /// Set this attribute to "yes" to cause the Control to be right aligned.
50669 /// </summary>
50670 public YesNoType RightAligned
50671 {
50672 get
50673 {
50674 return this.rightAlignedField;
50675 }
50676 set
50677 {
50678 this.rightAlignedFieldSet = true;
50679 this.rightAlignedField = value;
50680 }
50681 }
50682
50683 /// <summary>
50684 /// Set this attribute to "yes" to cause the scroll bar to display on the left side of the Control.
50685 /// </summary>
50686 public YesNoType LeftScroll
50687 {
50688 get
50689 {
50690 return this.leftScrollField;
50691 }
50692 set
50693 {
50694 this.leftScrollFieldSet = true;
50695 this.leftScrollField = value;
50696 }
50697 }
50698
50699 /// <summary>
50700 /// This attribute is only valid for Text Controls.
50701 /// </summary>
50702 public YesNoType Transparent
50703 {
50704 get
50705 {
50706 return this.transparentField;
50707 }
50708 set
50709 {
50710 this.transparentFieldSet = true;
50711 this.transparentField = value;
50712 }
50713 }
50714
50715 /// <summary>
50716 /// This attribute is only valid for Text Controls.
50717 /// </summary>
50718 public YesNoType NoPrefix
50719 {
50720 get
50721 {
50722 return this.noPrefixField;
50723 }
50724 set
50725 {
50726 this.noPrefixFieldSet = true;
50727 this.noPrefixField = value;
50728 }
50729 }
50730
50731 /// <summary>
50732 /// This attribute is only valid for Text Controls.
50733 /// </summary>
50734 public YesNoType NoWrap
50735 {
50736 get
50737 {
50738 return this.noWrapField;
50739 }
50740 set
50741 {
50742 this.noWrapFieldSet = true;
50743 this.noWrapField = value;
50744 }
50745 }
50746
50747 /// <summary>
50748 /// This attribute is only valid for Text Controls.
50749 /// </summary>
50750 public YesNoType FormatSize
50751 {
50752 get
50753 {
50754 return this.formatSizeField;
50755 }
50756 set
50757 {
50758 this.formatSizeFieldSet = true;
50759 this.formatSizeField = value;
50760 }
50761 }
50762
50763 /// <summary>
50764 /// This attribute is only valid for Text Controls.
50765 /// </summary>
50766 public YesNoType UserLanguage
50767 {
50768 get
50769 {
50770 return this.userLanguageField;
50771 }
50772 set
50773 {
50774 this.userLanguageFieldSet = true;
50775 this.userLanguageField = value;
50776 }
50777 }
50778
50779 /// <summary>
50780 /// This attribute is only valid for Edit Controls.
50781 /// </summary>
50782 public YesNoType Multiline
50783 {
50784 get
50785 {
50786 return this.multilineField;
50787 }
50788 set
50789 {
50790 this.multilineFieldSet = true;
50791 this.multilineField = value;
50792 }
50793 }
50794
50795 /// <summary>
50796 /// This attribute is only valid for Edit Controls.
50797 /// </summary>
50798 public YesNoType Password
50799 {
50800 get
50801 {
50802 return this.passwordField;
50803 }
50804 set
50805 {
50806 this.passwordFieldSet = true;
50807 this.passwordField = value;
50808 }
50809 }
50810
50811 /// <summary>
50812 /// This attribute is only valid for ProgressBar Controls.
50813 /// </summary>
50814 public YesNoType ProgressBlocks
50815 {
50816 get
50817 {
50818 return this.progressBlocksField;
50819 }
50820 set
50821 {
50822 this.progressBlocksFieldSet = true;
50823 this.progressBlocksField = value;
50824 }
50825 }
50826
50827 /// <summary>
50828 /// This attribute is only valid for Volume and Directory Controls.
50829 /// </summary>
50830 public YesNoType Removable
50831 {
50832 get
50833 {
50834 return this.removableField;
50835 }
50836 set
50837 {
50838 this.removableFieldSet = true;
50839 this.removableField = value;
50840 }
50841 }
50842
50843 /// <summary>
50844 /// This attribute is only valid for Volume and Directory Controls.
50845 /// </summary>
50846 public YesNoType Fixed
50847 {
50848 get
50849 {
50850 return this.fixedField;
50851 }
50852 set
50853 {
50854 this.fixedFieldSet = true;
50855 this.fixedField = value;
50856 }
50857 }
50858
50859 /// <summary>
50860 /// This attribute is only valid for Volume and Directory Controls.
50861 /// </summary>
50862 public YesNoType Remote
50863 {
50864 get
50865 {
50866 return this.remoteField;
50867 }
50868 set
50869 {
50870 this.remoteFieldSet = true;
50871 this.remoteField = value;
50872 }
50873 }
50874
50875 /// <summary>
50876 /// This attribute is only valid for Volume and Directory Controls.
50877 /// </summary>
50878 [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")]
50879 public YesNoType CDROM
50880 {
50881 get
50882 {
50883 return this.cDROMField;
50884 }
50885 set
50886 {
50887 this.cDROMFieldSet = true;
50888 this.cDROMField = value;
50889 }
50890 }
50891
50892 /// <summary>
50893 /// This attribute is only valid for Volume and Directory Controls.
50894 /// </summary>
50895 [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")]
50896 public YesNoType RAMDisk
50897 {
50898 get
50899 {
50900 return this.rAMDiskField;
50901 }
50902 set
50903 {
50904 this.rAMDiskFieldSet = true;
50905 this.rAMDiskField = value;
50906 }
50907 }
50908
50909 /// <summary>
50910 /// This attribute is only valid for Volume and Directory Controls.
50911 /// </summary>
50912 public YesNoType Floppy
50913 {
50914 get
50915 {
50916 return this.floppyField;
50917 }
50918 set
50919 {
50920 this.floppyFieldSet = true;
50921 this.floppyField = value;
50922 }
50923 }
50924
50925 /// <summary>
50926 /// This attribute is only valid for VolumeCostList Controls.
50927 /// </summary>
50928 public YesNoType ShowRollbackCost
50929 {
50930 get
50931 {
50932 return this.showRollbackCostField;
50933 }
50934 set
50935 {
50936 this.showRollbackCostFieldSet = true;
50937 this.showRollbackCostField = value;
50938 }
50939 }
50940
50941 /// <summary>
50942 /// This attribute is only valid for ListBox, ListView, and ComboBox Controls. Set
50943 /// the value of this attribute to "yes" to have entries appear in the order specified under the Control.
50944 /// If the attribute value is "no" or absent the entries in the control will appear in alphabetical order.
50945 /// </summary>
50946 public YesNoType Sorted
50947 {
50948 get
50949 {
50950 return this.sortedField;
50951 }
50952 set
50953 {
50954 this.sortedFieldSet = true;
50955 this.sortedField = value;
50956 }
50957 }
50958
50959 /// <summary>
50960 /// This attribute is only valid for ComboBox Controls.
50961 /// </summary>
50962 public YesNoType ComboList
50963 {
50964 get
50965 {
50966 return this.comboListField;
50967 }
50968 set
50969 {
50970 this.comboListFieldSet = true;
50971 this.comboListField = value;
50972 }
50973 }
50974
50975 /// <summary>
50976 /// This attribute is only valid for RadioButton, PushButton, and Icon Controls.
50977 /// </summary>
50978 public YesNoType Image
50979 {
50980 get
50981 {
50982 return this.imageField;
50983 }
50984 set
50985 {
50986 this.imageFieldSet = true;
50987 this.imageField = value;
50988 }
50989 }
50990
50991 /// <summary>
50992 /// This attribute is only valid for RadioButton, PushButton, and Icon Controls.
50993 /// </summary>
50994 public IconSizeType IconSize
50995 {
50996 get
50997 {
50998 return this.iconSizeField;
50999 }
51000 set
51001 {
51002 this.iconSizeFieldSet = true;
51003 this.iconSizeField = value;
51004 }
51005 }
51006
51007 /// <summary>
51008 /// This attribute is only valid for RadioButton, PushButton, and Icon Controls.
51009 /// </summary>
51010 public YesNoType FixedSize
51011 {
51012 get
51013 {
51014 return this.fixedSizeField;
51015 }
51016 set
51017 {
51018 this.fixedSizeFieldSet = true;
51019 this.fixedSizeField = value;
51020 }
51021 }
51022
51023 /// <summary>
51024 /// This attribute is only valid for RadioButton and PushButton Controls.
51025 /// </summary>
51026 public YesNoType Icon
51027 {
51028 get
51029 {
51030 return this.iconField;
51031 }
51032 set
51033 {
51034 this.iconFieldSet = true;
51035 this.iconField = value;
51036 }
51037 }
51038
51039 /// <summary>
51040 /// This attribute is only valid for RadioButton and PushButton Controls.
51041 /// </summary>
51042 public YesNoType Bitmap
51043 {
51044 get
51045 {
51046 return this.bitmapField;
51047 }
51048 set
51049 {
51050 this.bitmapFieldSet = true;
51051 this.bitmapField = value;
51052 }
51053 }
51054
51055 /// <summary>
51056 /// This attribute is only valid for RadioButton and Checkbox Controls.
51057 /// </summary>
51058 public YesNoType PushLike
51059 {
51060 get
51061 {
51062 return this.pushLikeField;
51063 }
51064 set
51065 {
51066 this.pushLikeFieldSet = true;
51067 this.pushLikeField = value;
51068 }
51069 }
51070
51071 /// <summary>
51072 /// This attribute is only valid for RadioButton Controls.
51073 /// </summary>
51074 public YesNoType HasBorder
51075 {
51076 get
51077 {
51078 return this.hasBorderField;
51079 }
51080 set
51081 {
51082 this.hasBorderFieldSet = true;
51083 this.hasBorderField = value;
51084 }
51085 }
51086
51087 /// <summary>
51088 /// This attribute is only valid for PushButton controls.
51089 /// Set this attribute to "yes" to add the User Account Control (UAC) elevation icon (shield icon) to the PushButton control.
51090 /// If this attribute's value is "yes" and the installation is not yet running with elevated privileges,
51091 /// the pushbutton control is created using the User Account Control (UAC) elevation icon (shield icon).
51092 /// If this attribute's value is "yes" and the installation is already running with elevated privileges,
51093 /// the pushbutton control is created using the other icon attributes.
51094 /// Otherwise, the pushbutton control is created using the other icon attributes.
51095 /// </summary>
51096 public YesNoType ElevationShield
51097 {
51098 get
51099 {
51100 return this.elevationShieldField;
51101 }
51102 set
51103 {
51104 this.elevationShieldFieldSet = true;
51105 this.elevationShieldField = value;
51106 }
51107 }
51108
51109 public virtual ISchemaElement ParentElement
51110 {
51111 get
51112 {
51113 return this.parentElement;
51114 }
51115 set
51116 {
51117 this.parentElement = value;
51118 }
51119 }
51120
51121 public virtual void AddChild(ISchemaElement child)
51122 {
51123 if ((null == child))
51124 {
51125 throw new ArgumentNullException("child");
51126 }
51127 this.children.AddElement(child);
51128 child.ParentElement = this;
51129 }
51130
51131 public virtual void RemoveChild(ISchemaElement child)
51132 {
51133 if ((null == child))
51134 {
51135 throw new ArgumentNullException("child");
51136 }
51137 this.children.RemoveElement(child);
51138 child.ParentElement = null;
51139 }
51140
51141 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
51142 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
51143 ISchemaElement ICreateChildren.CreateChild(string childName)
51144 {
51145 if (String.IsNullOrEmpty(childName))
51146 {
51147 throw new ArgumentNullException("childName");
51148 }
51149 ISchemaElement childValue = null;
51150 if (("Text" == childName))
51151 {
51152 childValue = new Text();
51153 }
51154 if (("ComboBox" == childName))
51155 {
51156 childValue = new ComboBox();
51157 }
51158 if (("ListBox" == childName))
51159 {
51160 childValue = new ListBox();
51161 }
51162 if (("ListView" == childName))
51163 {
51164 childValue = new ListView();
51165 }
51166 if (("RadioButtonGroup" == childName))
51167 {
51168 childValue = new RadioButtonGroup();
51169 }
51170 if (("Property" == childName))
51171 {
51172 childValue = new Property();
51173 }
51174 if (("Binary" == childName))
51175 {
51176 childValue = new Binary();
51177 }
51178 if (("Condition" == childName))
51179 {
51180 childValue = new Condition();
51181 }
51182 if (("Publish" == childName))
51183 {
51184 childValue = new Publish();
51185 }
51186 if (("Subscribe" == childName))
51187 {
51188 childValue = new Subscribe();
51189 }
51190 if ((null == childValue))
51191 {
51192 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
51193 }
51194 return childValue;
51195 }
51196
51197 /// <summary>
51198 /// Parses a IconSizeType from a string.
51199 /// </summary>
51200 public static IconSizeType ParseIconSizeType(string value)
51201 {
51202 IconSizeType parsedValue;
51203 Control.TryParseIconSizeType(value, out parsedValue);
51204 return parsedValue;
51205 }
51206
51207 /// <summary>
51208 /// Tries to parse a IconSizeType from a string.
51209 /// </summary>
51210 public static bool TryParseIconSizeType(string value, out IconSizeType parsedValue)
51211 {
51212 parsedValue = IconSizeType.NotSet;
51213 if (string.IsNullOrEmpty(value))
51214 {
51215 return false;
51216 }
51217 if (("16" == value))
51218 {
51219 parsedValue = IconSizeType.Item16;
51220 }
51221 else
51222 {
51223 if (("32" == value))
51224 {
51225 parsedValue = IconSizeType.Item32;
51226 }
51227 else
51228 {
51229 if (("48" == value))
51230 {
51231 parsedValue = IconSizeType.Item48;
51232 }
51233 else
51234 {
51235 parsedValue = IconSizeType.IllegalValue;
51236 return false;
51237 }
51238 }
51239 }
51240 return true;
51241 }
51242
51243 /// <summary>
51244 /// Processes this element and all child elements into an XmlWriter.
51245 /// </summary>
51246 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
51247 public virtual void OutputXml(XmlWriter writer)
51248 {
51249 if ((null == writer))
51250 {
51251 throw new ArgumentNullException("writer");
51252 }
51253 writer.WriteStartElement("Control", "http://wixtoolset.org/schemas/v4/wxs");
51254 if (this.idFieldSet)
51255 {
51256 writer.WriteAttributeString("Id", this.idField);
51257 }
51258 if (this.typeFieldSet)
51259 {
51260 writer.WriteAttributeString("Type", this.typeField);
51261 }
51262 if (this.xFieldSet)
51263 {
51264 writer.WriteAttributeString("X", this.xField);
51265 }
51266 if (this.yFieldSet)
51267 {
51268 writer.WriteAttributeString("Y", this.yField);
51269 }
51270 if (this.widthFieldSet)
51271 {
51272 writer.WriteAttributeString("Width", this.widthField);
51273 }
51274 if (this.heightFieldSet)
51275 {
51276 writer.WriteAttributeString("Height", this.heightField);
51277 }
51278 if (this.propertyFieldSet)
51279 {
51280 writer.WriteAttributeString("Property", this.propertyField);
51281 }
51282 if (this.textFieldSet)
51283 {
51284 writer.WriteAttributeString("Text", this.textField);
51285 }
51286 if (this.helpFieldSet)
51287 {
51288 writer.WriteAttributeString("Help", this.helpField);
51289 }
51290 if (this.toolTipFieldSet)
51291 {
51292 writer.WriteAttributeString("ToolTip", this.toolTipField);
51293 }
51294 if (this.checkBoxValueFieldSet)
51295 {
51296 writer.WriteAttributeString("CheckBoxValue", this.checkBoxValueField);
51297 }
51298 if (this.checkBoxPropertyRefFieldSet)
51299 {
51300 writer.WriteAttributeString("CheckBoxPropertyRef", this.checkBoxPropertyRefField);
51301 }
51302 if (this.tabSkipFieldSet)
51303 {
51304 if ((this.tabSkipField == YesNoType.no))
51305 {
51306 writer.WriteAttributeString("TabSkip", "no");
51307 }
51308 if ((this.tabSkipField == YesNoType.yes))
51309 {
51310 writer.WriteAttributeString("TabSkip", "yes");
51311 }
51312 }
51313 if (this.defaultFieldSet)
51314 {
51315 if ((this.defaultField == YesNoType.no))
51316 {
51317 writer.WriteAttributeString("Default", "no");
51318 }
51319 if ((this.defaultField == YesNoType.yes))
51320 {
51321 writer.WriteAttributeString("Default", "yes");
51322 }
51323 }
51324 if (this.cancelFieldSet)
51325 {
51326 if ((this.cancelField == YesNoType.no))
51327 {
51328 writer.WriteAttributeString("Cancel", "no");
51329 }
51330 if ((this.cancelField == YesNoType.yes))
51331 {
51332 writer.WriteAttributeString("Cancel", "yes");
51333 }
51334 }
51335 if (this.hiddenFieldSet)
51336 {
51337 if ((this.hiddenField == YesNoType.no))
51338 {
51339 writer.WriteAttributeString("Hidden", "no");
51340 }
51341 if ((this.hiddenField == YesNoType.yes))
51342 {
51343 writer.WriteAttributeString("Hidden", "yes");
51344 }
51345 }
51346 if (this.disabledFieldSet)
51347 {
51348 if ((this.disabledField == YesNoType.no))
51349 {
51350 writer.WriteAttributeString("Disabled", "no");
51351 }
51352 if ((this.disabledField == YesNoType.yes))
51353 {
51354 writer.WriteAttributeString("Disabled", "yes");
51355 }
51356 }
51357 if (this.sunkenFieldSet)
51358 {
51359 if ((this.sunkenField == YesNoType.no))
51360 {
51361 writer.WriteAttributeString("Sunken", "no");
51362 }
51363 if ((this.sunkenField == YesNoType.yes))
51364 {
51365 writer.WriteAttributeString("Sunken", "yes");
51366 }
51367 }
51368 if (this.indirectFieldSet)
51369 {
51370 if ((this.indirectField == YesNoType.no))
51371 {
51372 writer.WriteAttributeString("Indirect", "no");
51373 }
51374 if ((this.indirectField == YesNoType.yes))
51375 {
51376 writer.WriteAttributeString("Indirect", "yes");
51377 }
51378 }
51379 if (this.integerFieldSet)
51380 {
51381 if ((this.integerField == YesNoType.no))
51382 {
51383 writer.WriteAttributeString("Integer", "no");
51384 }
51385 if ((this.integerField == YesNoType.yes))
51386 {
51387 writer.WriteAttributeString("Integer", "yes");
51388 }
51389 }
51390 if (this.rightToLeftFieldSet)
51391 {
51392 if ((this.rightToLeftField == YesNoType.no))
51393 {
51394 writer.WriteAttributeString("RightToLeft", "no");
51395 }
51396 if ((this.rightToLeftField == YesNoType.yes))
51397 {
51398 writer.WriteAttributeString("RightToLeft", "yes");
51399 }
51400 }
51401 if (this.rightAlignedFieldSet)
51402 {
51403 if ((this.rightAlignedField == YesNoType.no))
51404 {
51405 writer.WriteAttributeString("RightAligned", "no");
51406 }
51407 if ((this.rightAlignedField == YesNoType.yes))
51408 {
51409 writer.WriteAttributeString("RightAligned", "yes");
51410 }
51411 }
51412 if (this.leftScrollFieldSet)
51413 {
51414 if ((this.leftScrollField == YesNoType.no))
51415 {
51416 writer.WriteAttributeString("LeftScroll", "no");
51417 }
51418 if ((this.leftScrollField == YesNoType.yes))
51419 {
51420 writer.WriteAttributeString("LeftScroll", "yes");
51421 }
51422 }
51423 if (this.transparentFieldSet)
51424 {
51425 if ((this.transparentField == YesNoType.no))
51426 {
51427 writer.WriteAttributeString("Transparent", "no");
51428 }
51429 if ((this.transparentField == YesNoType.yes))
51430 {
51431 writer.WriteAttributeString("Transparent", "yes");
51432 }
51433 }
51434 if (this.noPrefixFieldSet)
51435 {
51436 if ((this.noPrefixField == YesNoType.no))
51437 {
51438 writer.WriteAttributeString("NoPrefix", "no");
51439 }
51440 if ((this.noPrefixField == YesNoType.yes))
51441 {
51442 writer.WriteAttributeString("NoPrefix", "yes");
51443 }
51444 }
51445 if (this.noWrapFieldSet)
51446 {
51447 if ((this.noWrapField == YesNoType.no))
51448 {
51449 writer.WriteAttributeString("NoWrap", "no");
51450 }
51451 if ((this.noWrapField == YesNoType.yes))
51452 {
51453 writer.WriteAttributeString("NoWrap", "yes");
51454 }
51455 }
51456 if (this.formatSizeFieldSet)
51457 {
51458 if ((this.formatSizeField == YesNoType.no))
51459 {
51460 writer.WriteAttributeString("FormatSize", "no");
51461 }
51462 if ((this.formatSizeField == YesNoType.yes))
51463 {
51464 writer.WriteAttributeString("FormatSize", "yes");
51465 }
51466 }
51467 if (this.userLanguageFieldSet)
51468 {
51469 if ((this.userLanguageField == YesNoType.no))
51470 {
51471 writer.WriteAttributeString("UserLanguage", "no");
51472 }
51473 if ((this.userLanguageField == YesNoType.yes))
51474 {
51475 writer.WriteAttributeString("UserLanguage", "yes");
51476 }
51477 }
51478 if (this.multilineFieldSet)
51479 {
51480 if ((this.multilineField == YesNoType.no))
51481 {
51482 writer.WriteAttributeString("Multiline", "no");
51483 }
51484 if ((this.multilineField == YesNoType.yes))
51485 {
51486 writer.WriteAttributeString("Multiline", "yes");
51487 }
51488 }
51489 if (this.passwordFieldSet)
51490 {
51491 if ((this.passwordField == YesNoType.no))
51492 {
51493 writer.WriteAttributeString("Password", "no");
51494 }
51495 if ((this.passwordField == YesNoType.yes))
51496 {
51497 writer.WriteAttributeString("Password", "yes");
51498 }
51499 }
51500 if (this.progressBlocksFieldSet)
51501 {
51502 if ((this.progressBlocksField == YesNoType.no))
51503 {
51504 writer.WriteAttributeString("ProgressBlocks", "no");
51505 }
51506 if ((this.progressBlocksField == YesNoType.yes))
51507 {
51508 writer.WriteAttributeString("ProgressBlocks", "yes");
51509 }
51510 }
51511 if (this.removableFieldSet)
51512 {
51513 if ((this.removableField == YesNoType.no))
51514 {
51515 writer.WriteAttributeString("Removable", "no");
51516 }
51517 if ((this.removableField == YesNoType.yes))
51518 {
51519 writer.WriteAttributeString("Removable", "yes");
51520 }
51521 }
51522 if (this.fixedFieldSet)
51523 {
51524 if ((this.fixedField == YesNoType.no))
51525 {
51526 writer.WriteAttributeString("Fixed", "no");
51527 }
51528 if ((this.fixedField == YesNoType.yes))
51529 {
51530 writer.WriteAttributeString("Fixed", "yes");
51531 }
51532 }
51533 if (this.remoteFieldSet)
51534 {
51535 if ((this.remoteField == YesNoType.no))
51536 {
51537 writer.WriteAttributeString("Remote", "no");
51538 }
51539 if ((this.remoteField == YesNoType.yes))
51540 {
51541 writer.WriteAttributeString("Remote", "yes");
51542 }
51543 }
51544 if (this.cDROMFieldSet)
51545 {
51546 if ((this.cDROMField == YesNoType.no))
51547 {
51548 writer.WriteAttributeString("CDROM", "no");
51549 }
51550 if ((this.cDROMField == YesNoType.yes))
51551 {
51552 writer.WriteAttributeString("CDROM", "yes");
51553 }
51554 }
51555 if (this.rAMDiskFieldSet)
51556 {
51557 if ((this.rAMDiskField == YesNoType.no))
51558 {
51559 writer.WriteAttributeString("RAMDisk", "no");
51560 }
51561 if ((this.rAMDiskField == YesNoType.yes))
51562 {
51563 writer.WriteAttributeString("RAMDisk", "yes");
51564 }
51565 }
51566 if (this.floppyFieldSet)
51567 {
51568 if ((this.floppyField == YesNoType.no))
51569 {
51570 writer.WriteAttributeString("Floppy", "no");
51571 }
51572 if ((this.floppyField == YesNoType.yes))
51573 {
51574 writer.WriteAttributeString("Floppy", "yes");
51575 }
51576 }
51577 if (this.showRollbackCostFieldSet)
51578 {
51579 if ((this.showRollbackCostField == YesNoType.no))
51580 {
51581 writer.WriteAttributeString("ShowRollbackCost", "no");
51582 }
51583 if ((this.showRollbackCostField == YesNoType.yes))
51584 {
51585 writer.WriteAttributeString("ShowRollbackCost", "yes");
51586 }
51587 }
51588 if (this.sortedFieldSet)
51589 {
51590 if ((this.sortedField == YesNoType.no))
51591 {
51592 writer.WriteAttributeString("Sorted", "no");
51593 }
51594 if ((this.sortedField == YesNoType.yes))
51595 {
51596 writer.WriteAttributeString("Sorted", "yes");
51597 }
51598 }
51599 if (this.comboListFieldSet)
51600 {
51601 if ((this.comboListField == YesNoType.no))
51602 {
51603 writer.WriteAttributeString("ComboList", "no");
51604 }
51605 if ((this.comboListField == YesNoType.yes))
51606 {
51607 writer.WriteAttributeString("ComboList", "yes");
51608 }
51609 }
51610 if (this.imageFieldSet)
51611 {
51612 if ((this.imageField == YesNoType.no))
51613 {
51614 writer.WriteAttributeString("Image", "no");
51615 }
51616 if ((this.imageField == YesNoType.yes))
51617 {
51618 writer.WriteAttributeString("Image", "yes");
51619 }
51620 }
51621 if (this.iconSizeFieldSet)
51622 {
51623 if ((this.iconSizeField == IconSizeType.Item16))
51624 {
51625 writer.WriteAttributeString("IconSize", "16");
51626 }
51627 if ((this.iconSizeField == IconSizeType.Item32))
51628 {
51629 writer.WriteAttributeString("IconSize", "32");
51630 }
51631 if ((this.iconSizeField == IconSizeType.Item48))
51632 {
51633 writer.WriteAttributeString("IconSize", "48");
51634 }
51635 }
51636 if (this.fixedSizeFieldSet)
51637 {
51638 if ((this.fixedSizeField == YesNoType.no))
51639 {
51640 writer.WriteAttributeString("FixedSize", "no");
51641 }
51642 if ((this.fixedSizeField == YesNoType.yes))
51643 {
51644 writer.WriteAttributeString("FixedSize", "yes");
51645 }
51646 }
51647 if (this.iconFieldSet)
51648 {
51649 if ((this.iconField == YesNoType.no))
51650 {
51651 writer.WriteAttributeString("Icon", "no");
51652 }
51653 if ((this.iconField == YesNoType.yes))
51654 {
51655 writer.WriteAttributeString("Icon", "yes");
51656 }
51657 }
51658 if (this.bitmapFieldSet)
51659 {
51660 if ((this.bitmapField == YesNoType.no))
51661 {
51662 writer.WriteAttributeString("Bitmap", "no");
51663 }
51664 if ((this.bitmapField == YesNoType.yes))
51665 {
51666 writer.WriteAttributeString("Bitmap", "yes");
51667 }
51668 }
51669 if (this.pushLikeFieldSet)
51670 {
51671 if ((this.pushLikeField == YesNoType.no))
51672 {
51673 writer.WriteAttributeString("PushLike", "no");
51674 }
51675 if ((this.pushLikeField == YesNoType.yes))
51676 {
51677 writer.WriteAttributeString("PushLike", "yes");
51678 }
51679 }
51680 if (this.hasBorderFieldSet)
51681 {
51682 if ((this.hasBorderField == YesNoType.no))
51683 {
51684 writer.WriteAttributeString("HasBorder", "no");
51685 }
51686 if ((this.hasBorderField == YesNoType.yes))
51687 {
51688 writer.WriteAttributeString("HasBorder", "yes");
51689 }
51690 }
51691 if (this.elevationShieldFieldSet)
51692 {
51693 if ((this.elevationShieldField == YesNoType.no))
51694 {
51695 writer.WriteAttributeString("ElevationShield", "no");
51696 }
51697 if ((this.elevationShieldField == YesNoType.yes))
51698 {
51699 writer.WriteAttributeString("ElevationShield", "yes");
51700 }
51701 }
51702 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
51703 {
51704 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
51705 childElement.OutputXml(writer);
51706 }
51707 writer.WriteEndElement();
51708 }
51709
51710 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
51711 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
51712 void ISetAttributes.SetAttribute(string name, string value)
51713 {
51714 if (String.IsNullOrEmpty(name))
51715 {
51716 throw new ArgumentNullException("name");
51717 }
51718 if (("Id" == name))
51719 {
51720 this.idField = value;
51721 this.idFieldSet = true;
51722 }
51723 if (("Type" == name))
51724 {
51725 this.typeField = value;
51726 this.typeFieldSet = true;
51727 }
51728 if (("X" == name))
51729 {
51730 this.xField = value;
51731 this.xFieldSet = true;
51732 }
51733 if (("Y" == name))
51734 {
51735 this.yField = value;
51736 this.yFieldSet = true;
51737 }
51738 if (("Width" == name))
51739 {
51740 this.widthField = value;
51741 this.widthFieldSet = true;
51742 }
51743 if (("Height" == name))
51744 {
51745 this.heightField = value;
51746 this.heightFieldSet = true;
51747 }
51748 if (("Property" == name))
51749 {
51750 this.propertyField = value;
51751 this.propertyFieldSet = true;
51752 }
51753 if (("Text" == name))
51754 {
51755 this.textField = value;
51756 this.textFieldSet = true;
51757 }
51758 if (("Help" == name))
51759 {
51760 this.helpField = value;
51761 this.helpFieldSet = true;
51762 }
51763 if (("ToolTip" == name))
51764 {
51765 this.toolTipField = value;
51766 this.toolTipFieldSet = true;
51767 }
51768 if (("CheckBoxValue" == name))
51769 {
51770 this.checkBoxValueField = value;
51771 this.checkBoxValueFieldSet = true;
51772 }
51773 if (("CheckBoxPropertyRef" == name))
51774 {
51775 this.checkBoxPropertyRefField = value;
51776 this.checkBoxPropertyRefFieldSet = true;
51777 }
51778 if (("TabSkip" == name))
51779 {
51780 this.tabSkipField = Enums.ParseYesNoType(value);
51781 this.tabSkipFieldSet = true;
51782 }
51783 if (("Default" == name))
51784 {
51785 this.defaultField = Enums.ParseYesNoType(value);
51786 this.defaultFieldSet = true;
51787 }
51788 if (("Cancel" == name))
51789 {
51790 this.cancelField = Enums.ParseYesNoType(value);
51791 this.cancelFieldSet = true;
51792 }
51793 if (("Hidden" == name))
51794 {
51795 this.hiddenField = Enums.ParseYesNoType(value);
51796 this.hiddenFieldSet = true;
51797 }
51798 if (("Disabled" == name))
51799 {
51800 this.disabledField = Enums.ParseYesNoType(value);
51801 this.disabledFieldSet = true;
51802 }
51803 if (("Sunken" == name))
51804 {
51805 this.sunkenField = Enums.ParseYesNoType(value);
51806 this.sunkenFieldSet = true;
51807 }
51808 if (("Indirect" == name))
51809 {
51810 this.indirectField = Enums.ParseYesNoType(value);
51811 this.indirectFieldSet = true;
51812 }
51813 if (("Integer" == name))
51814 {
51815 this.integerField = Enums.ParseYesNoType(value);
51816 this.integerFieldSet = true;
51817 }
51818 if (("RightToLeft" == name))
51819 {
51820 this.rightToLeftField = Enums.ParseYesNoType(value);
51821 this.rightToLeftFieldSet = true;
51822 }
51823 if (("RightAligned" == name))
51824 {
51825 this.rightAlignedField = Enums.ParseYesNoType(value);
51826 this.rightAlignedFieldSet = true;
51827 }
51828 if (("LeftScroll" == name))
51829 {
51830 this.leftScrollField = Enums.ParseYesNoType(value);
51831 this.leftScrollFieldSet = true;
51832 }
51833 if (("Transparent" == name))
51834 {
51835 this.transparentField = Enums.ParseYesNoType(value);
51836 this.transparentFieldSet = true;
51837 }
51838 if (("NoPrefix" == name))
51839 {
51840 this.noPrefixField = Enums.ParseYesNoType(value);
51841 this.noPrefixFieldSet = true;
51842 }
51843 if (("NoWrap" == name))
51844 {
51845 this.noWrapField = Enums.ParseYesNoType(value);
51846 this.noWrapFieldSet = true;
51847 }
51848 if (("FormatSize" == name))
51849 {
51850 this.formatSizeField = Enums.ParseYesNoType(value);
51851 this.formatSizeFieldSet = true;
51852 }
51853 if (("UserLanguage" == name))
51854 {
51855 this.userLanguageField = Enums.ParseYesNoType(value);
51856 this.userLanguageFieldSet = true;
51857 }
51858 if (("Multiline" == name))
51859 {
51860 this.multilineField = Enums.ParseYesNoType(value);
51861 this.multilineFieldSet = true;
51862 }
51863 if (("Password" == name))
51864 {
51865 this.passwordField = Enums.ParseYesNoType(value);
51866 this.passwordFieldSet = true;
51867 }
51868 if (("ProgressBlocks" == name))
51869 {
51870 this.progressBlocksField = Enums.ParseYesNoType(value);
51871 this.progressBlocksFieldSet = true;
51872 }
51873 if (("Removable" == name))
51874 {
51875 this.removableField = Enums.ParseYesNoType(value);
51876 this.removableFieldSet = true;
51877 }
51878 if (("Fixed" == name))
51879 {
51880 this.fixedField = Enums.ParseYesNoType(value);
51881 this.fixedFieldSet = true;
51882 }
51883 if (("Remote" == name))
51884 {
51885 this.remoteField = Enums.ParseYesNoType(value);
51886 this.remoteFieldSet = true;
51887 }
51888 if (("CDROM" == name))
51889 {
51890 this.cDROMField = Enums.ParseYesNoType(value);
51891 this.cDROMFieldSet = true;
51892 }
51893 if (("RAMDisk" == name))
51894 {
51895 this.rAMDiskField = Enums.ParseYesNoType(value);
51896 this.rAMDiskFieldSet = true;
51897 }
51898 if (("Floppy" == name))
51899 {
51900 this.floppyField = Enums.ParseYesNoType(value);
51901 this.floppyFieldSet = true;
51902 }
51903 if (("ShowRollbackCost" == name))
51904 {
51905 this.showRollbackCostField = Enums.ParseYesNoType(value);
51906 this.showRollbackCostFieldSet = true;
51907 }
51908 if (("Sorted" == name))
51909 {
51910 this.sortedField = Enums.ParseYesNoType(value);
51911 this.sortedFieldSet = true;
51912 }
51913 if (("ComboList" == name))
51914 {
51915 this.comboListField = Enums.ParseYesNoType(value);
51916 this.comboListFieldSet = true;
51917 }
51918 if (("Image" == name))
51919 {
51920 this.imageField = Enums.ParseYesNoType(value);
51921 this.imageFieldSet = true;
51922 }
51923 if (("IconSize" == name))
51924 {
51925 this.iconSizeField = Control.ParseIconSizeType(value);
51926 this.iconSizeFieldSet = true;
51927 }
51928 if (("FixedSize" == name))
51929 {
51930 this.fixedSizeField = Enums.ParseYesNoType(value);
51931 this.fixedSizeFieldSet = true;
51932 }
51933 if (("Icon" == name))
51934 {
51935 this.iconField = Enums.ParseYesNoType(value);
51936 this.iconFieldSet = true;
51937 }
51938 if (("Bitmap" == name))
51939 {
51940 this.bitmapField = Enums.ParseYesNoType(value);
51941 this.bitmapFieldSet = true;
51942 }
51943 if (("PushLike" == name))
51944 {
51945 this.pushLikeField = Enums.ParseYesNoType(value);
51946 this.pushLikeFieldSet = true;
51947 }
51948 if (("HasBorder" == name))
51949 {
51950 this.hasBorderField = Enums.ParseYesNoType(value);
51951 this.hasBorderFieldSet = true;
51952 }
51953 if (("ElevationShield" == name))
51954 {
51955 this.elevationShieldField = Enums.ParseYesNoType(value);
51956 this.elevationShieldFieldSet = true;
51957 }
51958 }
51959
51960 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
51961 public enum IconSizeType
51962 {
51963
51964 IllegalValue = int.MaxValue,
51965
51966 NotSet = -1,
51967
51968 Item16,
51969
51970 Item32,
51971
51972 Item48,
51973 }
51974 }
51975
51976 /// <summary>
51977 /// Billboard to display during install of a Feature
51978 /// </summary>
51979 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
51980 public class Billboard : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
51981 {
51982
51983 private ElementCollection children;
51984
51985 private string idField;
51986
51987 private bool idFieldSet;
51988
51989 private string featureField;
51990
51991 private bool featureFieldSet;
51992
51993 private ISchemaElement parentElement;
51994
51995 public Billboard()
51996 {
51997 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
51998 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Control)));
51999 this.children = childCollection0;
52000 }
52001
52002 public virtual IEnumerable Children
52003 {
52004 get
52005 {
52006 return this.children;
52007 }
52008 }
52009
52010 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
52011 public virtual IEnumerable this[System.Type childType]
52012 {
52013 get
52014 {
52015 return this.children.Filter(childType);
52016 }
52017 }
52018
52019 /// <summary>
52020 /// Unique identifier for the Billboard.
52021 /// </summary>
52022 public string Id
52023 {
52024 get
52025 {
52026 return this.idField;
52027 }
52028 set
52029 {
52030 this.idFieldSet = true;
52031 this.idField = value;
52032 }
52033 }
52034
52035 /// <summary>
52036 /// Feature whose state determines if the Billboard is shown.
52037 /// </summary>
52038 public string Feature
52039 {
52040 get
52041 {
52042 return this.featureField;
52043 }
52044 set
52045 {
52046 this.featureFieldSet = true;
52047 this.featureField = value;
52048 }
52049 }
52050
52051 public virtual ISchemaElement ParentElement
52052 {
52053 get
52054 {
52055 return this.parentElement;
52056 }
52057 set
52058 {
52059 this.parentElement = value;
52060 }
52061 }
52062
52063 public virtual void AddChild(ISchemaElement child)
52064 {
52065 if ((null == child))
52066 {
52067 throw new ArgumentNullException("child");
52068 }
52069 this.children.AddElement(child);
52070 child.ParentElement = this;
52071 }
52072
52073 public virtual void RemoveChild(ISchemaElement child)
52074 {
52075 if ((null == child))
52076 {
52077 throw new ArgumentNullException("child");
52078 }
52079 this.children.RemoveElement(child);
52080 child.ParentElement = null;
52081 }
52082
52083 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
52084 ISchemaElement ICreateChildren.CreateChild(string childName)
52085 {
52086 if (String.IsNullOrEmpty(childName))
52087 {
52088 throw new ArgumentNullException("childName");
52089 }
52090 ISchemaElement childValue = null;
52091 if (("Control" == childName))
52092 {
52093 childValue = new Control();
52094 }
52095 if ((null == childValue))
52096 {
52097 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
52098 }
52099 return childValue;
52100 }
52101
52102 /// <summary>
52103 /// Processes this element and all child elements into an XmlWriter.
52104 /// </summary>
52105 public virtual void OutputXml(XmlWriter writer)
52106 {
52107 if ((null == writer))
52108 {
52109 throw new ArgumentNullException("writer");
52110 }
52111 writer.WriteStartElement("Billboard", "http://wixtoolset.org/schemas/v4/wxs");
52112 if (this.idFieldSet)
52113 {
52114 writer.WriteAttributeString("Id", this.idField);
52115 }
52116 if (this.featureFieldSet)
52117 {
52118 writer.WriteAttributeString("Feature", this.featureField);
52119 }
52120 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
52121 {
52122 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
52123 childElement.OutputXml(writer);
52124 }
52125 writer.WriteEndElement();
52126 }
52127
52128 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
52129 void ISetAttributes.SetAttribute(string name, string value)
52130 {
52131 if (String.IsNullOrEmpty(name))
52132 {
52133 throw new ArgumentNullException("name");
52134 }
52135 if (("Id" == name))
52136 {
52137 this.idField = value;
52138 this.idFieldSet = true;
52139 }
52140 if (("Feature" == name))
52141 {
52142 this.featureField = value;
52143 this.featureFieldSet = true;
52144 }
52145 }
52146 }
52147
52148 /// <summary>
52149 /// Billboard action during which child Billboards are displayed
52150 /// </summary>
52151 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
52152 public class BillboardAction : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
52153 {
52154
52155 private ElementCollection children;
52156
52157 private string idField;
52158
52159 private bool idFieldSet;
52160
52161 private ISchemaElement parentElement;
52162
52163 public BillboardAction()
52164 {
52165 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
52166 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Billboard)));
52167 this.children = childCollection0;
52168 }
52169
52170 public virtual IEnumerable Children
52171 {
52172 get
52173 {
52174 return this.children;
52175 }
52176 }
52177
52178 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
52179 public virtual IEnumerable this[System.Type childType]
52180 {
52181 get
52182 {
52183 return this.children.Filter(childType);
52184 }
52185 }
52186
52187 /// <summary>
52188 /// Action name that determines when the Billboard should be shown.
52189 /// </summary>
52190 public string Id
52191 {
52192 get
52193 {
52194 return this.idField;
52195 }
52196 set
52197 {
52198 this.idFieldSet = true;
52199 this.idField = value;
52200 }
52201 }
52202
52203 public virtual ISchemaElement ParentElement
52204 {
52205 get
52206 {
52207 return this.parentElement;
52208 }
52209 set
52210 {
52211 this.parentElement = value;
52212 }
52213 }
52214
52215 public virtual void AddChild(ISchemaElement child)
52216 {
52217 if ((null == child))
52218 {
52219 throw new ArgumentNullException("child");
52220 }
52221 this.children.AddElement(child);
52222 child.ParentElement = this;
52223 }
52224
52225 public virtual void RemoveChild(ISchemaElement child)
52226 {
52227 if ((null == child))
52228 {
52229 throw new ArgumentNullException("child");
52230 }
52231 this.children.RemoveElement(child);
52232 child.ParentElement = null;
52233 }
52234
52235 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
52236 ISchemaElement ICreateChildren.CreateChild(string childName)
52237 {
52238 if (String.IsNullOrEmpty(childName))
52239 {
52240 throw new ArgumentNullException("childName");
52241 }
52242 ISchemaElement childValue = null;
52243 if (("Billboard" == childName))
52244 {
52245 childValue = new Billboard();
52246 }
52247 if ((null == childValue))
52248 {
52249 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
52250 }
52251 return childValue;
52252 }
52253
52254 /// <summary>
52255 /// Processes this element and all child elements into an XmlWriter.
52256 /// </summary>
52257 public virtual void OutputXml(XmlWriter writer)
52258 {
52259 if ((null == writer))
52260 {
52261 throw new ArgumentNullException("writer");
52262 }
52263 writer.WriteStartElement("BillboardAction", "http://wixtoolset.org/schemas/v4/wxs");
52264 if (this.idFieldSet)
52265 {
52266 writer.WriteAttributeString("Id", this.idField);
52267 }
52268 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
52269 {
52270 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
52271 childElement.OutputXml(writer);
52272 }
52273 writer.WriteEndElement();
52274 }
52275
52276 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
52277 void ISetAttributes.SetAttribute(string name, string value)
52278 {
52279 if (String.IsNullOrEmpty(name))
52280 {
52281 throw new ArgumentNullException("name");
52282 }
52283 if (("Id" == name))
52284 {
52285 this.idField = value;
52286 this.idFieldSet = true;
52287 }
52288 }
52289 }
52290
52291 /// <summary>
52292 /// Defines a dialog box in the Dialog Table.
52293 /// </summary>
52294 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
52295 public class Dialog : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
52296 {
52297
52298 private ElementCollection children;
52299
52300 private string idField;
52301
52302 private bool idFieldSet;
52303
52304 private int xField;
52305
52306 private bool xFieldSet;
52307
52308 private int yField;
52309
52310 private bool yFieldSet;
52311
52312 private int widthField;
52313
52314 private bool widthFieldSet;
52315
52316 private int heightField;
52317
52318 private bool heightFieldSet;
52319
52320 private string titleField;
52321
52322 private bool titleFieldSet;
52323
52324 private YesNoType hiddenField;
52325
52326 private bool hiddenFieldSet;
52327
52328 private YesNoType modelessField;
52329
52330 private bool modelessFieldSet;
52331
52332 private YesNoType noMinimizeField;
52333
52334 private bool noMinimizeFieldSet;
52335
52336 private YesNoType systemModalField;
52337
52338 private bool systemModalFieldSet;
52339
52340 private YesNoType keepModelessField;
52341
52342 private bool keepModelessFieldSet;
52343
52344 private YesNoType trackDiskSpaceField;
52345
52346 private bool trackDiskSpaceFieldSet;
52347
52348 private YesNoType customPaletteField;
52349
52350 private bool customPaletteFieldSet;
52351
52352 private YesNoType rightToLeftField;
52353
52354 private bool rightToLeftFieldSet;
52355
52356 private YesNoType rightAlignedField;
52357
52358 private bool rightAlignedFieldSet;
52359
52360 private YesNoType leftScrollField;
52361
52362 private bool leftScrollFieldSet;
52363
52364 private YesNoType errorDialogField;
52365
52366 private bool errorDialogFieldSet;
52367
52368 private ISchemaElement parentElement;
52369
52370 public Dialog()
52371 {
52372 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
52373 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Control)));
52374 this.children = childCollection0;
52375 }
52376
52377 public virtual IEnumerable Children
52378 {
52379 get
52380 {
52381 return this.children;
52382 }
52383 }
52384
52385 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
52386 public virtual IEnumerable this[System.Type childType]
52387 {
52388 get
52389 {
52390 return this.children.Filter(childType);
52391 }
52392 }
52393
52394 /// <summary>
52395 /// Unique identifier for the dialog.
52396 /// </summary>
52397 public string Id
52398 {
52399 get
52400 {
52401 return this.idField;
52402 }
52403 set
52404 {
52405 this.idFieldSet = true;
52406 this.idField = value;
52407 }
52408 }
52409
52410 /// <summary>
52411 /// Horizontal placement of the dialog box as a percentage of screen width. The default value is 50.
52412 /// </summary>
52413 public int X
52414 {
52415 get
52416 {
52417 return this.xField;
52418 }
52419 set
52420 {
52421 this.xFieldSet = true;
52422 this.xField = value;
52423 }
52424 }
52425
52426 /// <summary>
52427 /// Vertical placement of the dialog box as a percentage of screen height. The default value is 50.
52428 /// </summary>
52429 public int Y
52430 {
52431 get
52432 {
52433 return this.yField;
52434 }
52435 set
52436 {
52437 this.yFieldSet = true;
52438 this.yField = value;
52439 }
52440 }
52441
52442 /// <summary>
52443 /// The width of the dialog box in dialog units.
52444 /// </summary>
52445 public int Width
52446 {
52447 get
52448 {
52449 return this.widthField;
52450 }
52451 set
52452 {
52453 this.widthFieldSet = true;
52454 this.widthField = value;
52455 }
52456 }
52457
52458 /// <summary>
52459 /// The height of the dialog box in dialog units.
52460 /// </summary>
52461 public int Height
52462 {
52463 get
52464 {
52465 return this.heightField;
52466 }
52467 set
52468 {
52469 this.heightFieldSet = true;
52470 this.heightField = value;
52471 }
52472 }
52473
52474 /// <summary>
52475 /// The title of the dialog box.
52476 /// </summary>
52477 public string Title
52478 {
52479 get
52480 {
52481 return this.titleField;
52482 }
52483 set
52484 {
52485 this.titleFieldSet = true;
52486 this.titleField = value;
52487 }
52488 }
52489
52490 /// <summary>
52491 /// Used to hide the dialog.
52492 /// </summary>
52493 public YesNoType Hidden
52494 {
52495 get
52496 {
52497 return this.hiddenField;
52498 }
52499 set
52500 {
52501 this.hiddenFieldSet = true;
52502 this.hiddenField = value;
52503 }
52504 }
52505
52506 /// <summary>
52507 /// Used to set the dialog as modeless.
52508 /// </summary>
52509 public YesNoType Modeless
52510 {
52511 get
52512 {
52513 return this.modelessField;
52514 }
52515 set
52516 {
52517 this.modelessFieldSet = true;
52518 this.modelessField = value;
52519 }
52520 }
52521
52522 /// <summary>
52523 /// Used to specify if the dialog can be minimized.
52524 /// </summary>
52525 public YesNoType NoMinimize
52526 {
52527 get
52528 {
52529 return this.noMinimizeField;
52530 }
52531 set
52532 {
52533 this.noMinimizeFieldSet = true;
52534 this.noMinimizeField = value;
52535 }
52536 }
52537
52538 /// <summary>
52539 /// Used to set the dialog as system modal.
52540 /// </summary>
52541 public YesNoType SystemModal
52542 {
52543 get
52544 {
52545 return this.systemModalField;
52546 }
52547 set
52548 {
52549 this.systemModalFieldSet = true;
52550 this.systemModalField = value;
52551 }
52552 }
52553
52554 /// <summary>
52555 /// Keep modeless dialogs alive when this dialog is created through DoAction.
52556 /// </summary>
52557 public YesNoType KeepModeless
52558 {
52559 get
52560 {
52561 return this.keepModelessField;
52562 }
52563 set
52564 {
52565 this.keepModelessFieldSet = true;
52566 this.keepModelessField = value;
52567 }
52568 }
52569
52570 /// <summary>
52571 /// Have the dialog periodically call the installer to check if available disk space has changed.
52572 /// </summary>
52573 public YesNoType TrackDiskSpace
52574 {
52575 get
52576 {
52577 return this.trackDiskSpaceField;
52578 }
52579 set
52580 {
52581 this.trackDiskSpaceFieldSet = true;
52582 this.trackDiskSpaceField = value;
52583 }
52584 }
52585
52586 /// <summary>
52587 /// Used to specify if pictures in the dialog box are rendered with a custom palette.
52588 /// </summary>
52589 public YesNoType CustomPalette
52590 {
52591 get
52592 {
52593 return this.customPaletteField;
52594 }
52595 set
52596 {
52597 this.customPaletteFieldSet = true;
52598 this.customPaletteField = value;
52599 }
52600 }
52601
52602 /// <summary>
52603 /// Used to specify if the text in the dialog should be displayed in right to left reading order.
52604 /// </summary>
52605 public YesNoType RightToLeft
52606 {
52607 get
52608 {
52609 return this.rightToLeftField;
52610 }
52611 set
52612 {
52613 this.rightToLeftFieldSet = true;
52614 this.rightToLeftField = value;
52615 }
52616 }
52617
52618 /// <summary>
52619 /// Align text on the right.
52620 /// </summary>
52621 public YesNoType RightAligned
52622 {
52623 get
52624 {
52625 return this.rightAlignedField;
52626 }
52627 set
52628 {
52629 this.rightAlignedFieldSet = true;
52630 this.rightAlignedField = value;
52631 }
52632 }
52633
52634 /// <summary>
52635 /// Used to align the scroll bar on the left.
52636 /// </summary>
52637 public YesNoType LeftScroll
52638 {
52639 get
52640 {
52641 return this.leftScrollField;
52642 }
52643 set
52644 {
52645 this.leftScrollFieldSet = true;
52646 this.leftScrollField = value;
52647 }
52648 }
52649
52650 /// <summary>
52651 /// Specifies this dialog as an error dialog.
52652 /// </summary>
52653 public YesNoType ErrorDialog
52654 {
52655 get
52656 {
52657 return this.errorDialogField;
52658 }
52659 set
52660 {
52661 this.errorDialogFieldSet = true;
52662 this.errorDialogField = value;
52663 }
52664 }
52665
52666 public virtual ISchemaElement ParentElement
52667 {
52668 get
52669 {
52670 return this.parentElement;
52671 }
52672 set
52673 {
52674 this.parentElement = value;
52675 }
52676 }
52677
52678 public virtual void AddChild(ISchemaElement child)
52679 {
52680 if ((null == child))
52681 {
52682 throw new ArgumentNullException("child");
52683 }
52684 this.children.AddElement(child);
52685 child.ParentElement = this;
52686 }
52687
52688 public virtual void RemoveChild(ISchemaElement child)
52689 {
52690 if ((null == child))
52691 {
52692 throw new ArgumentNullException("child");
52693 }
52694 this.children.RemoveElement(child);
52695 child.ParentElement = null;
52696 }
52697
52698 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
52699 ISchemaElement ICreateChildren.CreateChild(string childName)
52700 {
52701 if (String.IsNullOrEmpty(childName))
52702 {
52703 throw new ArgumentNullException("childName");
52704 }
52705 ISchemaElement childValue = null;
52706 if (("Control" == childName))
52707 {
52708 childValue = new Control();
52709 }
52710 if ((null == childValue))
52711 {
52712 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
52713 }
52714 return childValue;
52715 }
52716
52717 /// <summary>
52718 /// Processes this element and all child elements into an XmlWriter.
52719 /// </summary>
52720 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
52721 public virtual void OutputXml(XmlWriter writer)
52722 {
52723 if ((null == writer))
52724 {
52725 throw new ArgumentNullException("writer");
52726 }
52727 writer.WriteStartElement("Dialog", "http://wixtoolset.org/schemas/v4/wxs");
52728 if (this.idFieldSet)
52729 {
52730 writer.WriteAttributeString("Id", this.idField);
52731 }
52732 if (this.xFieldSet)
52733 {
52734 writer.WriteAttributeString("X", this.xField.ToString(CultureInfo.InvariantCulture));
52735 }
52736 if (this.yFieldSet)
52737 {
52738 writer.WriteAttributeString("Y", this.yField.ToString(CultureInfo.InvariantCulture));
52739 }
52740 if (this.widthFieldSet)
52741 {
52742 writer.WriteAttributeString("Width", this.widthField.ToString(CultureInfo.InvariantCulture));
52743 }
52744 if (this.heightFieldSet)
52745 {
52746 writer.WriteAttributeString("Height", this.heightField.ToString(CultureInfo.InvariantCulture));
52747 }
52748 if (this.titleFieldSet)
52749 {
52750 writer.WriteAttributeString("Title", this.titleField);
52751 }
52752 if (this.hiddenFieldSet)
52753 {
52754 if ((this.hiddenField == YesNoType.no))
52755 {
52756 writer.WriteAttributeString("Hidden", "no");
52757 }
52758 if ((this.hiddenField == YesNoType.yes))
52759 {
52760 writer.WriteAttributeString("Hidden", "yes");
52761 }
52762 }
52763 if (this.modelessFieldSet)
52764 {
52765 if ((this.modelessField == YesNoType.no))
52766 {
52767 writer.WriteAttributeString("Modeless", "no");
52768 }
52769 if ((this.modelessField == YesNoType.yes))
52770 {
52771 writer.WriteAttributeString("Modeless", "yes");
52772 }
52773 }
52774 if (this.noMinimizeFieldSet)
52775 {
52776 if ((this.noMinimizeField == YesNoType.no))
52777 {
52778 writer.WriteAttributeString("NoMinimize", "no");
52779 }
52780 if ((this.noMinimizeField == YesNoType.yes))
52781 {
52782 writer.WriteAttributeString("NoMinimize", "yes");
52783 }
52784 }
52785 if (this.systemModalFieldSet)
52786 {
52787 if ((this.systemModalField == YesNoType.no))
52788 {
52789 writer.WriteAttributeString("SystemModal", "no");
52790 }
52791 if ((this.systemModalField == YesNoType.yes))
52792 {
52793 writer.WriteAttributeString("SystemModal", "yes");
52794 }
52795 }
52796 if (this.keepModelessFieldSet)
52797 {
52798 if ((this.keepModelessField == YesNoType.no))
52799 {
52800 writer.WriteAttributeString("KeepModeless", "no");
52801 }
52802 if ((this.keepModelessField == YesNoType.yes))
52803 {
52804 writer.WriteAttributeString("KeepModeless", "yes");
52805 }
52806 }
52807 if (this.trackDiskSpaceFieldSet)
52808 {
52809 if ((this.trackDiskSpaceField == YesNoType.no))
52810 {
52811 writer.WriteAttributeString("TrackDiskSpace", "no");
52812 }
52813 if ((this.trackDiskSpaceField == YesNoType.yes))
52814 {
52815 writer.WriteAttributeString("TrackDiskSpace", "yes");
52816 }
52817 }
52818 if (this.customPaletteFieldSet)
52819 {
52820 if ((this.customPaletteField == YesNoType.no))
52821 {
52822 writer.WriteAttributeString("CustomPalette", "no");
52823 }
52824 if ((this.customPaletteField == YesNoType.yes))
52825 {
52826 writer.WriteAttributeString("CustomPalette", "yes");
52827 }
52828 }
52829 if (this.rightToLeftFieldSet)
52830 {
52831 if ((this.rightToLeftField == YesNoType.no))
52832 {
52833 writer.WriteAttributeString("RightToLeft", "no");
52834 }
52835 if ((this.rightToLeftField == YesNoType.yes))
52836 {
52837 writer.WriteAttributeString("RightToLeft", "yes");
52838 }
52839 }
52840 if (this.rightAlignedFieldSet)
52841 {
52842 if ((this.rightAlignedField == YesNoType.no))
52843 {
52844 writer.WriteAttributeString("RightAligned", "no");
52845 }
52846 if ((this.rightAlignedField == YesNoType.yes))
52847 {
52848 writer.WriteAttributeString("RightAligned", "yes");
52849 }
52850 }
52851 if (this.leftScrollFieldSet)
52852 {
52853 if ((this.leftScrollField == YesNoType.no))
52854 {
52855 writer.WriteAttributeString("LeftScroll", "no");
52856 }
52857 if ((this.leftScrollField == YesNoType.yes))
52858 {
52859 writer.WriteAttributeString("LeftScroll", "yes");
52860 }
52861 }
52862 if (this.errorDialogFieldSet)
52863 {
52864 if ((this.errorDialogField == YesNoType.no))
52865 {
52866 writer.WriteAttributeString("ErrorDialog", "no");
52867 }
52868 if ((this.errorDialogField == YesNoType.yes))
52869 {
52870 writer.WriteAttributeString("ErrorDialog", "yes");
52871 }
52872 }
52873 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
52874 {
52875 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
52876 childElement.OutputXml(writer);
52877 }
52878 writer.WriteEndElement();
52879 }
52880
52881 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
52882 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
52883 void ISetAttributes.SetAttribute(string name, string value)
52884 {
52885 if (String.IsNullOrEmpty(name))
52886 {
52887 throw new ArgumentNullException("name");
52888 }
52889 if (("Id" == name))
52890 {
52891 this.idField = value;
52892 this.idFieldSet = true;
52893 }
52894 if (("X" == name))
52895 {
52896 this.xField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
52897 this.xFieldSet = true;
52898 }
52899 if (("Y" == name))
52900 {
52901 this.yField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
52902 this.yFieldSet = true;
52903 }
52904 if (("Width" == name))
52905 {
52906 this.widthField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
52907 this.widthFieldSet = true;
52908 }
52909 if (("Height" == name))
52910 {
52911 this.heightField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
52912 this.heightFieldSet = true;
52913 }
52914 if (("Title" == name))
52915 {
52916 this.titleField = value;
52917 this.titleFieldSet = true;
52918 }
52919 if (("Hidden" == name))
52920 {
52921 this.hiddenField = Enums.ParseYesNoType(value);
52922 this.hiddenFieldSet = true;
52923 }
52924 if (("Modeless" == name))
52925 {
52926 this.modelessField = Enums.ParseYesNoType(value);
52927 this.modelessFieldSet = true;
52928 }
52929 if (("NoMinimize" == name))
52930 {
52931 this.noMinimizeField = Enums.ParseYesNoType(value);
52932 this.noMinimizeFieldSet = true;
52933 }
52934 if (("SystemModal" == name))
52935 {
52936 this.systemModalField = Enums.ParseYesNoType(value);
52937 this.systemModalFieldSet = true;
52938 }
52939 if (("KeepModeless" == name))
52940 {
52941 this.keepModelessField = Enums.ParseYesNoType(value);
52942 this.keepModelessFieldSet = true;
52943 }
52944 if (("TrackDiskSpace" == name))
52945 {
52946 this.trackDiskSpaceField = Enums.ParseYesNoType(value);
52947 this.trackDiskSpaceFieldSet = true;
52948 }
52949 if (("CustomPalette" == name))
52950 {
52951 this.customPaletteField = Enums.ParseYesNoType(value);
52952 this.customPaletteFieldSet = true;
52953 }
52954 if (("RightToLeft" == name))
52955 {
52956 this.rightToLeftField = Enums.ParseYesNoType(value);
52957 this.rightToLeftFieldSet = true;
52958 }
52959 if (("RightAligned" == name))
52960 {
52961 this.rightAlignedField = Enums.ParseYesNoType(value);
52962 this.rightAlignedFieldSet = true;
52963 }
52964 if (("LeftScroll" == name))
52965 {
52966 this.leftScrollField = Enums.ParseYesNoType(value);
52967 this.leftScrollFieldSet = true;
52968 }
52969 if (("ErrorDialog" == name))
52970 {
52971 this.errorDialogField = Enums.ParseYesNoType(value);
52972 this.errorDialogFieldSet = true;
52973 }
52974 }
52975 }
52976
52977 /// <summary>
52978 /// Reference to a Dialog. This will cause the entire referenced section's contents
52979 /// to be included in the installer database.
52980 /// </summary>
52981 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
52982 public class DialogRef : ISchemaElement, ISetAttributes
52983 {
52984
52985 private string idField;
52986
52987 private bool idFieldSet;
52988
52989 private ISchemaElement parentElement;
52990
52991 /// <summary>
52992 /// The identifier of the Dialog to reference.
52993 /// </summary>
52994 public string Id
52995 {
52996 get
52997 {
52998 return this.idField;
52999 }
53000 set
53001 {
53002 this.idFieldSet = true;
53003 this.idField = value;
53004 }
53005 }
53006
53007 public virtual ISchemaElement ParentElement
53008 {
53009 get
53010 {
53011 return this.parentElement;
53012 }
53013 set
53014 {
53015 this.parentElement = value;
53016 }
53017 }
53018
53019 /// <summary>
53020 /// Processes this element and all child elements into an XmlWriter.
53021 /// </summary>
53022 public virtual void OutputXml(XmlWriter writer)
53023 {
53024 if ((null == writer))
53025 {
53026 throw new ArgumentNullException("writer");
53027 }
53028 writer.WriteStartElement("DialogRef", "http://wixtoolset.org/schemas/v4/wxs");
53029 if (this.idFieldSet)
53030 {
53031 writer.WriteAttributeString("Id", this.idField);
53032 }
53033 writer.WriteEndElement();
53034 }
53035
53036 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
53037 void ISetAttributes.SetAttribute(string name, string value)
53038 {
53039 if (String.IsNullOrEmpty(name))
53040 {
53041 throw new ArgumentNullException("name");
53042 }
53043 if (("Id" == name))
53044 {
53045 this.idField = value;
53046 this.idFieldSet = true;
53047 }
53048 }
53049 }
53050
53051 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
53052 public class ProgressText : ISchemaElement, ISetAttributes
53053 {
53054
53055 private string actionField;
53056
53057 private bool actionFieldSet;
53058
53059 private string templateField;
53060
53061 private bool templateFieldSet;
53062
53063 private string contentField;
53064
53065 private bool contentFieldSet;
53066
53067 private ISchemaElement parentElement;
53068
53069 public string Action
53070 {
53071 get
53072 {
53073 return this.actionField;
53074 }
53075 set
53076 {
53077 this.actionFieldSet = true;
53078 this.actionField = value;
53079 }
53080 }
53081
53082 /// <summary>
53083 /// used to format ActionData messages from action processing
53084 /// </summary>
53085 public string Template
53086 {
53087 get
53088 {
53089 return this.templateField;
53090 }
53091 set
53092 {
53093 this.templateFieldSet = true;
53094 this.templateField = value;
53095 }
53096 }
53097
53098 /// <summary>
53099 /// Element value is progress message text for action
53100 /// </summary>
53101 public string Content
53102 {
53103 get
53104 {
53105 return this.contentField;
53106 }
53107 set
53108 {
53109 this.contentFieldSet = true;
53110 this.contentField = value;
53111 }
53112 }
53113
53114 public virtual ISchemaElement ParentElement
53115 {
53116 get
53117 {
53118 return this.parentElement;
53119 }
53120 set
53121 {
53122 this.parentElement = value;
53123 }
53124 }
53125
53126 /// <summary>
53127 /// Processes this element and all child elements into an XmlWriter.
53128 /// </summary>
53129 public virtual void OutputXml(XmlWriter writer)
53130 {
53131 if ((null == writer))
53132 {
53133 throw new ArgumentNullException("writer");
53134 }
53135 writer.WriteStartElement("ProgressText", "http://wixtoolset.org/schemas/v4/wxs");
53136 if (this.actionFieldSet)
53137 {
53138 writer.WriteAttributeString("Action", this.actionField);
53139 }
53140 if (this.templateFieldSet)
53141 {
53142 writer.WriteAttributeString("Template", this.templateField);
53143 }
53144 if (this.contentFieldSet)
53145 {
53146 writer.WriteString(this.contentField);
53147 }
53148 writer.WriteEndElement();
53149 }
53150
53151 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
53152 void ISetAttributes.SetAttribute(string name, string value)
53153 {
53154 if (String.IsNullOrEmpty(name))
53155 {
53156 throw new ArgumentNullException("name");
53157 }
53158 if (("Action" == name))
53159 {
53160 this.actionField = value;
53161 this.actionFieldSet = true;
53162 }
53163 if (("Template" == name))
53164 {
53165 this.templateField = value;
53166 this.templateFieldSet = true;
53167 }
53168 if (("Content" == name))
53169 {
53170 this.contentField = value;
53171 this.contentFieldSet = true;
53172 }
53173 }
53174 }
53175
53176 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
53177 public class TextStyle : ISchemaElement, ISetAttributes
53178 {
53179
53180 private string idField;
53181
53182 private bool idFieldSet;
53183
53184 private string faceNameField;
53185
53186 private bool faceNameFieldSet;
53187
53188 private string sizeField;
53189
53190 private bool sizeFieldSet;
53191
53192 private int redField;
53193
53194 private bool redFieldSet;
53195
53196 private int greenField;
53197
53198 private bool greenFieldSet;
53199
53200 private int blueField;
53201
53202 private bool blueFieldSet;
53203
53204 private YesNoType boldField;
53205
53206 private bool boldFieldSet;
53207
53208 private YesNoType italicField;
53209
53210 private bool italicFieldSet;
53211
53212 private YesNoType underlineField;
53213
53214 private bool underlineFieldSet;
53215
53216 private YesNoType strikeField;
53217
53218 private bool strikeFieldSet;
53219
53220 private ISchemaElement parentElement;
53221
53222 public string Id
53223 {
53224 get
53225 {
53226 return this.idField;
53227 }
53228 set
53229 {
53230 this.idFieldSet = true;
53231 this.idField = value;
53232 }
53233 }
53234
53235 public string FaceName
53236 {
53237 get
53238 {
53239 return this.faceNameField;
53240 }
53241 set
53242 {
53243 this.faceNameFieldSet = true;
53244 this.faceNameField = value;
53245 }
53246 }
53247
53248 public string Size
53249 {
53250 get
53251 {
53252 return this.sizeField;
53253 }
53254 set
53255 {
53256 this.sizeFieldSet = true;
53257 this.sizeField = value;
53258 }
53259 }
53260
53261 /// <summary>
53262 /// 0 to 255
53263 /// </summary>
53264 public int Red
53265 {
53266 get
53267 {
53268 return this.redField;
53269 }
53270 set
53271 {
53272 this.redFieldSet = true;
53273 this.redField = value;
53274 }
53275 }
53276
53277 /// <summary>
53278 /// 0 to 255
53279 /// </summary>
53280 public int Green
53281 {
53282 get
53283 {
53284 return this.greenField;
53285 }
53286 set
53287 {
53288 this.greenFieldSet = true;
53289 this.greenField = value;
53290 }
53291 }
53292
53293 /// <summary>
53294 /// 0 to 255
53295 /// </summary>
53296 public int Blue
53297 {
53298 get
53299 {
53300 return this.blueField;
53301 }
53302 set
53303 {
53304 this.blueFieldSet = true;
53305 this.blueField = value;
53306 }
53307 }
53308
53309 public YesNoType Bold
53310 {
53311 get
53312 {
53313 return this.boldField;
53314 }
53315 set
53316 {
53317 this.boldFieldSet = true;
53318 this.boldField = value;
53319 }
53320 }
53321
53322 public YesNoType Italic
53323 {
53324 get
53325 {
53326 return this.italicField;
53327 }
53328 set
53329 {
53330 this.italicFieldSet = true;
53331 this.italicField = value;
53332 }
53333 }
53334
53335 public YesNoType Underline
53336 {
53337 get
53338 {
53339 return this.underlineField;
53340 }
53341 set
53342 {
53343 this.underlineFieldSet = true;
53344 this.underlineField = value;
53345 }
53346 }
53347
53348 public YesNoType Strike
53349 {
53350 get
53351 {
53352 return this.strikeField;
53353 }
53354 set
53355 {
53356 this.strikeFieldSet = true;
53357 this.strikeField = value;
53358 }
53359 }
53360
53361 public virtual ISchemaElement ParentElement
53362 {
53363 get
53364 {
53365 return this.parentElement;
53366 }
53367 set
53368 {
53369 this.parentElement = value;
53370 }
53371 }
53372
53373 /// <summary>
53374 /// Processes this element and all child elements into an XmlWriter.
53375 /// </summary>
53376 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
53377 public virtual void OutputXml(XmlWriter writer)
53378 {
53379 if ((null == writer))
53380 {
53381 throw new ArgumentNullException("writer");
53382 }
53383 writer.WriteStartElement("TextStyle", "http://wixtoolset.org/schemas/v4/wxs");
53384 if (this.idFieldSet)
53385 {
53386 writer.WriteAttributeString("Id", this.idField);
53387 }
53388 if (this.faceNameFieldSet)
53389 {
53390 writer.WriteAttributeString("FaceName", this.faceNameField);
53391 }
53392 if (this.sizeFieldSet)
53393 {
53394 writer.WriteAttributeString("Size", this.sizeField);
53395 }
53396 if (this.redFieldSet)
53397 {
53398 writer.WriteAttributeString("Red", this.redField.ToString(CultureInfo.InvariantCulture));
53399 }
53400 if (this.greenFieldSet)
53401 {
53402 writer.WriteAttributeString("Green", this.greenField.ToString(CultureInfo.InvariantCulture));
53403 }
53404 if (this.blueFieldSet)
53405 {
53406 writer.WriteAttributeString("Blue", this.blueField.ToString(CultureInfo.InvariantCulture));
53407 }
53408 if (this.boldFieldSet)
53409 {
53410 if ((this.boldField == YesNoType.no))
53411 {
53412 writer.WriteAttributeString("Bold", "no");
53413 }
53414 if ((this.boldField == YesNoType.yes))
53415 {
53416 writer.WriteAttributeString("Bold", "yes");
53417 }
53418 }
53419 if (this.italicFieldSet)
53420 {
53421 if ((this.italicField == YesNoType.no))
53422 {
53423 writer.WriteAttributeString("Italic", "no");
53424 }
53425 if ((this.italicField == YesNoType.yes))
53426 {
53427 writer.WriteAttributeString("Italic", "yes");
53428 }
53429 }
53430 if (this.underlineFieldSet)
53431 {
53432 if ((this.underlineField == YesNoType.no))
53433 {
53434 writer.WriteAttributeString("Underline", "no");
53435 }
53436 if ((this.underlineField == YesNoType.yes))
53437 {
53438 writer.WriteAttributeString("Underline", "yes");
53439 }
53440 }
53441 if (this.strikeFieldSet)
53442 {
53443 if ((this.strikeField == YesNoType.no))
53444 {
53445 writer.WriteAttributeString("Strike", "no");
53446 }
53447 if ((this.strikeField == YesNoType.yes))
53448 {
53449 writer.WriteAttributeString("Strike", "yes");
53450 }
53451 }
53452 writer.WriteEndElement();
53453 }
53454
53455 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
53456 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
53457 void ISetAttributes.SetAttribute(string name, string value)
53458 {
53459 if (String.IsNullOrEmpty(name))
53460 {
53461 throw new ArgumentNullException("name");
53462 }
53463 if (("Id" == name))
53464 {
53465 this.idField = value;
53466 this.idFieldSet = true;
53467 }
53468 if (("FaceName" == name))
53469 {
53470 this.faceNameField = value;
53471 this.faceNameFieldSet = true;
53472 }
53473 if (("Size" == name))
53474 {
53475 this.sizeField = value;
53476 this.sizeFieldSet = true;
53477 }
53478 if (("Red" == name))
53479 {
53480 this.redField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
53481 this.redFieldSet = true;
53482 }
53483 if (("Green" == name))
53484 {
53485 this.greenField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
53486 this.greenFieldSet = true;
53487 }
53488 if (("Blue" == name))
53489 {
53490 this.blueField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
53491 this.blueFieldSet = true;
53492 }
53493 if (("Bold" == name))
53494 {
53495 this.boldField = Enums.ParseYesNoType(value);
53496 this.boldFieldSet = true;
53497 }
53498 if (("Italic" == name))
53499 {
53500 this.italicField = Enums.ParseYesNoType(value);
53501 this.italicFieldSet = true;
53502 }
53503 if (("Underline" == name))
53504 {
53505 this.underlineField = Enums.ParseYesNoType(value);
53506 this.underlineFieldSet = true;
53507 }
53508 if (("Strike" == name))
53509 {
53510 this.strikeField = Enums.ParseYesNoType(value);
53511 this.strikeFieldSet = true;
53512 }
53513 }
53514 }
53515
53516 /// <summary>
53517 /// The value (and optional text) associated with an item in a ComboBox, ListBox, or ListView.
53518 /// </summary>
53519 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
53520 public class ListItem : ISchemaElement, ISetAttributes
53521 {
53522
53523 private string valueField;
53524
53525 private bool valueFieldSet;
53526
53527 private string textField;
53528
53529 private bool textFieldSet;
53530
53531 private string iconField;
53532
53533 private bool iconFieldSet;
53534
53535 private ISchemaElement parentElement;
53536
53537 /// <summary>
53538 /// The value assigned to the associated ComboBox, ListBox, or ListView property if this item is selected.
53539 /// </summary>
53540 public string Value
53541 {
53542 get
53543 {
53544 return this.valueField;
53545 }
53546 set
53547 {
53548 this.valueFieldSet = true;
53549 this.valueField = value;
53550 }
53551 }
53552
53553 /// <summary>
53554 /// The localizable, visible text to be assigned to the item.
53555 /// If not specified, this will default to the value of the Value attribute.
53556 /// </summary>
53557 public string Text
53558 {
53559 get
53560 {
53561 return this.textField;
53562 }
53563 set
53564 {
53565 this.textFieldSet = true;
53566 this.textField = value;
53567 }
53568 }
53569
53570 /// <summary>
53571 /// The identifier of the Binary (not Icon) element containing the icon to associate with this item.
53572 /// This value is only valid when nested under a ListView element.
53573 /// </summary>
53574 public string Icon
53575 {
53576 get
53577 {
53578 return this.iconField;
53579 }
53580 set
53581 {
53582 this.iconFieldSet = true;
53583 this.iconField = value;
53584 }
53585 }
53586
53587 public virtual ISchemaElement ParentElement
53588 {
53589 get
53590 {
53591 return this.parentElement;
53592 }
53593 set
53594 {
53595 this.parentElement = value;
53596 }
53597 }
53598
53599 /// <summary>
53600 /// Processes this element and all child elements into an XmlWriter.
53601 /// </summary>
53602 public virtual void OutputXml(XmlWriter writer)
53603 {
53604 if ((null == writer))
53605 {
53606 throw new ArgumentNullException("writer");
53607 }
53608 writer.WriteStartElement("ListItem", "http://wixtoolset.org/schemas/v4/wxs");
53609 if (this.valueFieldSet)
53610 {
53611 writer.WriteAttributeString("Value", this.valueField);
53612 }
53613 if (this.textFieldSet)
53614 {
53615 writer.WriteAttributeString("Text", this.textField);
53616 }
53617 if (this.iconFieldSet)
53618 {
53619 writer.WriteAttributeString("Icon", this.iconField);
53620 }
53621 writer.WriteEndElement();
53622 }
53623
53624 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
53625 void ISetAttributes.SetAttribute(string name, string value)
53626 {
53627 if (String.IsNullOrEmpty(name))
53628 {
53629 throw new ArgumentNullException("name");
53630 }
53631 if (("Value" == name))
53632 {
53633 this.valueField = value;
53634 this.valueFieldSet = true;
53635 }
53636 if (("Text" == name))
53637 {
53638 this.textField = value;
53639 this.textFieldSet = true;
53640 }
53641 if (("Icon" == name))
53642 {
53643 this.iconField = value;
53644 this.iconFieldSet = true;
53645 }
53646 }
53647 }
53648
53649 /// <summary>
53650 /// Set of items for a particular ListBox control tied to an install Property
53651 /// </summary>
53652 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
53653 public class ListBox : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
53654 {
53655
53656 private ElementCollection children;
53657
53658 private string propertyField;
53659
53660 private bool propertyFieldSet;
53661
53662 private ISchemaElement parentElement;
53663
53664 public ListBox()
53665 {
53666 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
53667 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ListItem)));
53668 this.children = childCollection0;
53669 }
53670
53671 public virtual IEnumerable Children
53672 {
53673 get
53674 {
53675 return this.children;
53676 }
53677 }
53678
53679 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
53680 public virtual IEnumerable this[System.Type childType]
53681 {
53682 get
53683 {
53684 return this.children.Filter(childType);
53685 }
53686 }
53687
53688 /// <summary>
53689 /// Property tied to this group
53690 /// </summary>
53691 public string Property
53692 {
53693 get
53694 {
53695 return this.propertyField;
53696 }
53697 set
53698 {
53699 this.propertyFieldSet = true;
53700 this.propertyField = value;
53701 }
53702 }
53703
53704 public virtual ISchemaElement ParentElement
53705 {
53706 get
53707 {
53708 return this.parentElement;
53709 }
53710 set
53711 {
53712 this.parentElement = value;
53713 }
53714 }
53715
53716 public virtual void AddChild(ISchemaElement child)
53717 {
53718 if ((null == child))
53719 {
53720 throw new ArgumentNullException("child");
53721 }
53722 this.children.AddElement(child);
53723 child.ParentElement = this;
53724 }
53725
53726 public virtual void RemoveChild(ISchemaElement child)
53727 {
53728 if ((null == child))
53729 {
53730 throw new ArgumentNullException("child");
53731 }
53732 this.children.RemoveElement(child);
53733 child.ParentElement = null;
53734 }
53735
53736 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
53737 ISchemaElement ICreateChildren.CreateChild(string childName)
53738 {
53739 if (String.IsNullOrEmpty(childName))
53740 {
53741 throw new ArgumentNullException("childName");
53742 }
53743 ISchemaElement childValue = null;
53744 if (("ListItem" == childName))
53745 {
53746 childValue = new ListItem();
53747 }
53748 if ((null == childValue))
53749 {
53750 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
53751 }
53752 return childValue;
53753 }
53754
53755 /// <summary>
53756 /// Processes this element and all child elements into an XmlWriter.
53757 /// </summary>
53758 public virtual void OutputXml(XmlWriter writer)
53759 {
53760 if ((null == writer))
53761 {
53762 throw new ArgumentNullException("writer");
53763 }
53764 writer.WriteStartElement("ListBox", "http://wixtoolset.org/schemas/v4/wxs");
53765 if (this.propertyFieldSet)
53766 {
53767 writer.WriteAttributeString("Property", this.propertyField);
53768 }
53769 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
53770 {
53771 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
53772 childElement.OutputXml(writer);
53773 }
53774 writer.WriteEndElement();
53775 }
53776
53777 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
53778 void ISetAttributes.SetAttribute(string name, string value)
53779 {
53780 if (String.IsNullOrEmpty(name))
53781 {
53782 throw new ArgumentNullException("name");
53783 }
53784 if (("Property" == name))
53785 {
53786 this.propertyField = value;
53787 this.propertyFieldSet = true;
53788 }
53789 }
53790 }
53791
53792 /// <summary>
53793 /// Set of items for a particular ComboBox control tied to an install Property
53794 /// </summary>
53795 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
53796 public class ComboBox : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
53797 {
53798
53799 private ElementCollection children;
53800
53801 private string propertyField;
53802
53803 private bool propertyFieldSet;
53804
53805 private ISchemaElement parentElement;
53806
53807 public ComboBox()
53808 {
53809 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
53810 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ListItem)));
53811 this.children = childCollection0;
53812 }
53813
53814 public virtual IEnumerable Children
53815 {
53816 get
53817 {
53818 return this.children;
53819 }
53820 }
53821
53822 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
53823 public virtual IEnumerable this[System.Type childType]
53824 {
53825 get
53826 {
53827 return this.children.Filter(childType);
53828 }
53829 }
53830
53831 /// <summary>
53832 /// Property tied to this group
53833 /// </summary>
53834 public string Property
53835 {
53836 get
53837 {
53838 return this.propertyField;
53839 }
53840 set
53841 {
53842 this.propertyFieldSet = true;
53843 this.propertyField = value;
53844 }
53845 }
53846
53847 public virtual ISchemaElement ParentElement
53848 {
53849 get
53850 {
53851 return this.parentElement;
53852 }
53853 set
53854 {
53855 this.parentElement = value;
53856 }
53857 }
53858
53859 public virtual void AddChild(ISchemaElement child)
53860 {
53861 if ((null == child))
53862 {
53863 throw new ArgumentNullException("child");
53864 }
53865 this.children.AddElement(child);
53866 child.ParentElement = this;
53867 }
53868
53869 public virtual void RemoveChild(ISchemaElement child)
53870 {
53871 if ((null == child))
53872 {
53873 throw new ArgumentNullException("child");
53874 }
53875 this.children.RemoveElement(child);
53876 child.ParentElement = null;
53877 }
53878
53879 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
53880 ISchemaElement ICreateChildren.CreateChild(string childName)
53881 {
53882 if (String.IsNullOrEmpty(childName))
53883 {
53884 throw new ArgumentNullException("childName");
53885 }
53886 ISchemaElement childValue = null;
53887 if (("ListItem" == childName))
53888 {
53889 childValue = new ListItem();
53890 }
53891 if ((null == childValue))
53892 {
53893 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
53894 }
53895 return childValue;
53896 }
53897
53898 /// <summary>
53899 /// Processes this element and all child elements into an XmlWriter.
53900 /// </summary>
53901 public virtual void OutputXml(XmlWriter writer)
53902 {
53903 if ((null == writer))
53904 {
53905 throw new ArgumentNullException("writer");
53906 }
53907 writer.WriteStartElement("ComboBox", "http://wixtoolset.org/schemas/v4/wxs");
53908 if (this.propertyFieldSet)
53909 {
53910 writer.WriteAttributeString("Property", this.propertyField);
53911 }
53912 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
53913 {
53914 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
53915 childElement.OutputXml(writer);
53916 }
53917 writer.WriteEndElement();
53918 }
53919
53920 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
53921 void ISetAttributes.SetAttribute(string name, string value)
53922 {
53923 if (String.IsNullOrEmpty(name))
53924 {
53925 throw new ArgumentNullException("name");
53926 }
53927 if (("Property" == name))
53928 {
53929 this.propertyField = value;
53930 this.propertyFieldSet = true;
53931 }
53932 }
53933 }
53934
53935 /// <summary>
53936 /// Set of items for a particular ListView control tied to an install Property
53937 /// </summary>
53938 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
53939 public class ListView : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
53940 {
53941
53942 private ElementCollection children;
53943
53944 private string propertyField;
53945
53946 private bool propertyFieldSet;
53947
53948 private ISchemaElement parentElement;
53949
53950 public ListView()
53951 {
53952 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
53953 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ListItem)));
53954 this.children = childCollection0;
53955 }
53956
53957 public virtual IEnumerable Children
53958 {
53959 get
53960 {
53961 return this.children;
53962 }
53963 }
53964
53965 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
53966 public virtual IEnumerable this[System.Type childType]
53967 {
53968 get
53969 {
53970 return this.children.Filter(childType);
53971 }
53972 }
53973
53974 /// <summary>
53975 /// Property tied to this group
53976 /// </summary>
53977 public string Property
53978 {
53979 get
53980 {
53981 return this.propertyField;
53982 }
53983 set
53984 {
53985 this.propertyFieldSet = true;
53986 this.propertyField = value;
53987 }
53988 }
53989
53990 public virtual ISchemaElement ParentElement
53991 {
53992 get
53993 {
53994 return this.parentElement;
53995 }
53996 set
53997 {
53998 this.parentElement = value;
53999 }
54000 }
54001
54002 public virtual void AddChild(ISchemaElement child)
54003 {
54004 if ((null == child))
54005 {
54006 throw new ArgumentNullException("child");
54007 }
54008 this.children.AddElement(child);
54009 child.ParentElement = this;
54010 }
54011
54012 public virtual void RemoveChild(ISchemaElement child)
54013 {
54014 if ((null == child))
54015 {
54016 throw new ArgumentNullException("child");
54017 }
54018 this.children.RemoveElement(child);
54019 child.ParentElement = null;
54020 }
54021
54022 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
54023 ISchemaElement ICreateChildren.CreateChild(string childName)
54024 {
54025 if (String.IsNullOrEmpty(childName))
54026 {
54027 throw new ArgumentNullException("childName");
54028 }
54029 ISchemaElement childValue = null;
54030 if (("ListItem" == childName))
54031 {
54032 childValue = new ListItem();
54033 }
54034 if ((null == childValue))
54035 {
54036 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
54037 }
54038 return childValue;
54039 }
54040
54041 /// <summary>
54042 /// Processes this element and all child elements into an XmlWriter.
54043 /// </summary>
54044 public virtual void OutputXml(XmlWriter writer)
54045 {
54046 if ((null == writer))
54047 {
54048 throw new ArgumentNullException("writer");
54049 }
54050 writer.WriteStartElement("ListView", "http://wixtoolset.org/schemas/v4/wxs");
54051 if (this.propertyFieldSet)
54052 {
54053 writer.WriteAttributeString("Property", this.propertyField);
54054 }
54055 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
54056 {
54057 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
54058 childElement.OutputXml(writer);
54059 }
54060 writer.WriteEndElement();
54061 }
54062
54063 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
54064 void ISetAttributes.SetAttribute(string name, string value)
54065 {
54066 if (String.IsNullOrEmpty(name))
54067 {
54068 throw new ArgumentNullException("name");
54069 }
54070 if (("Property" == name))
54071 {
54072 this.propertyField = value;
54073 this.propertyFieldSet = true;
54074 }
54075 }
54076 }
54077
54078 /// <summary>
54079 /// Text or Icon plus Value that is assigned to the Property of the parent Control (RadioButtonGroup).
54080 /// </summary>
54081 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
54082 public class RadioButton : ISchemaElement, ISetAttributes
54083 {
54084
54085 private string bitmapField;
54086
54087 private bool bitmapFieldSet;
54088
54089 private string heightField;
54090
54091 private bool heightFieldSet;
54092
54093 private string helpField;
54094
54095 private bool helpFieldSet;
54096
54097 private string iconField;
54098
54099 private bool iconFieldSet;
54100
54101 private string textField;
54102
54103 private bool textFieldSet;
54104
54105 private string toolTipField;
54106
54107 private bool toolTipFieldSet;
54108
54109 private string valueField;
54110
54111 private bool valueFieldSet;
54112
54113 private string widthField;
54114
54115 private bool widthFieldSet;
54116
54117 private string xField;
54118
54119 private bool xFieldSet;
54120
54121 private string yField;
54122
54123 private bool yFieldSet;
54124
54125 private ISchemaElement parentElement;
54126
54127 /// <summary>
54128 /// This attribute defines the bitmap displayed with the radio button. The value of the attribute creates a reference
54129 /// to a Binary element that represents the bitmap. This attribute is mutually exclusive with the Icon and Text
54130 /// attributes.
54131 /// </summary>
54132 public string Bitmap
54133 {
54134 get
54135 {
54136 return this.bitmapField;
54137 }
54138 set
54139 {
54140 this.bitmapFieldSet = true;
54141 this.bitmapField = value;
54142 }
54143 }
54144
54145 public string Height
54146 {
54147 get
54148 {
54149 return this.heightField;
54150 }
54151 set
54152 {
54153 this.heightFieldSet = true;
54154 this.heightField = value;
54155 }
54156 }
54157
54158 public string Help
54159 {
54160 get
54161 {
54162 return this.helpField;
54163 }
54164 set
54165 {
54166 this.helpFieldSet = true;
54167 this.helpField = value;
54168 }
54169 }
54170
54171 /// <summary>
54172 /// This attribute defines the icon displayed with the radio button. The value of the attribute creates a reference
54173 /// to a Binary element that represents the icon. This attribute is mutually exclusive with the Bitmap and Text
54174 /// attributes.
54175 /// </summary>
54176 public string Icon
54177 {
54178 get
54179 {
54180 return this.iconField;
54181 }
54182 set
54183 {
54184 this.iconFieldSet = true;
54185 this.iconField = value;
54186 }
54187 }
54188
54189 /// <summary>
54190 /// Text displayed with the radio button. This attribute is mutually exclusive with the Bitmap and Icon attributes.
54191 /// </summary>
54192 public string Text
54193 {
54194 get
54195 {
54196 return this.textField;
54197 }
54198 set
54199 {
54200 this.textFieldSet = true;
54201 this.textField = value;
54202 }
54203 }
54204
54205 public string ToolTip
54206 {
54207 get
54208 {
54209 return this.toolTipField;
54210 }
54211 set
54212 {
54213 this.toolTipFieldSet = true;
54214 this.toolTipField = value;
54215 }
54216 }
54217
54218 /// <summary>
54219 /// Value assigned to the associated control Property when this radio button is selected.
54220 /// </summary>
54221 public string Value
54222 {
54223 get
54224 {
54225 return this.valueField;
54226 }
54227 set
54228 {
54229 this.valueFieldSet = true;
54230 this.valueField = value;
54231 }
54232 }
54233
54234 public string Width
54235 {
54236 get
54237 {
54238 return this.widthField;
54239 }
54240 set
54241 {
54242 this.widthFieldSet = true;
54243 this.widthField = value;
54244 }
54245 }
54246
54247 public string X
54248 {
54249 get
54250 {
54251 return this.xField;
54252 }
54253 set
54254 {
54255 this.xFieldSet = true;
54256 this.xField = value;
54257 }
54258 }
54259
54260 public string Y
54261 {
54262 get
54263 {
54264 return this.yField;
54265 }
54266 set
54267 {
54268 this.yFieldSet = true;
54269 this.yField = value;
54270 }
54271 }
54272
54273 public virtual ISchemaElement ParentElement
54274 {
54275 get
54276 {
54277 return this.parentElement;
54278 }
54279 set
54280 {
54281 this.parentElement = value;
54282 }
54283 }
54284
54285 /// <summary>
54286 /// Processes this element and all child elements into an XmlWriter.
54287 /// </summary>
54288 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
54289 public virtual void OutputXml(XmlWriter writer)
54290 {
54291 if ((null == writer))
54292 {
54293 throw new ArgumentNullException("writer");
54294 }
54295 writer.WriteStartElement("RadioButton", "http://wixtoolset.org/schemas/v4/wxs");
54296 if (this.bitmapFieldSet)
54297 {
54298 writer.WriteAttributeString("Bitmap", this.bitmapField);
54299 }
54300 if (this.heightFieldSet)
54301 {
54302 writer.WriteAttributeString("Height", this.heightField);
54303 }
54304 if (this.helpFieldSet)
54305 {
54306 writer.WriteAttributeString("Help", this.helpField);
54307 }
54308 if (this.iconFieldSet)
54309 {
54310 writer.WriteAttributeString("Icon", this.iconField);
54311 }
54312 if (this.textFieldSet)
54313 {
54314 writer.WriteAttributeString("Text", this.textField);
54315 }
54316 if (this.toolTipFieldSet)
54317 {
54318 writer.WriteAttributeString("ToolTip", this.toolTipField);
54319 }
54320 if (this.valueFieldSet)
54321 {
54322 writer.WriteAttributeString("Value", this.valueField);
54323 }
54324 if (this.widthFieldSet)
54325 {
54326 writer.WriteAttributeString("Width", this.widthField);
54327 }
54328 if (this.xFieldSet)
54329 {
54330 writer.WriteAttributeString("X", this.xField);
54331 }
54332 if (this.yFieldSet)
54333 {
54334 writer.WriteAttributeString("Y", this.yField);
54335 }
54336 writer.WriteEndElement();
54337 }
54338
54339 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
54340 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
54341 void ISetAttributes.SetAttribute(string name, string value)
54342 {
54343 if (String.IsNullOrEmpty(name))
54344 {
54345 throw new ArgumentNullException("name");
54346 }
54347 if (("Bitmap" == name))
54348 {
54349 this.bitmapField = value;
54350 this.bitmapFieldSet = true;
54351 }
54352 if (("Height" == name))
54353 {
54354 this.heightField = value;
54355 this.heightFieldSet = true;
54356 }
54357 if (("Help" == name))
54358 {
54359 this.helpField = value;
54360 this.helpFieldSet = true;
54361 }
54362 if (("Icon" == name))
54363 {
54364 this.iconField = value;
54365 this.iconFieldSet = true;
54366 }
54367 if (("Text" == name))
54368 {
54369 this.textField = value;
54370 this.textFieldSet = true;
54371 }
54372 if (("ToolTip" == name))
54373 {
54374 this.toolTipField = value;
54375 this.toolTipFieldSet = true;
54376 }
54377 if (("Value" == name))
54378 {
54379 this.valueField = value;
54380 this.valueFieldSet = true;
54381 }
54382 if (("Width" == name))
54383 {
54384 this.widthField = value;
54385 this.widthFieldSet = true;
54386 }
54387 if (("X" == name))
54388 {
54389 this.xField = value;
54390 this.xFieldSet = true;
54391 }
54392 if (("Y" == name))
54393 {
54394 this.yField = value;
54395 this.yFieldSet = true;
54396 }
54397 }
54398 }
54399
54400 /// <summary>
54401 /// Set of radio buttons tied to the specified Property
54402 /// </summary>
54403 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
54404 public class RadioButtonGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
54405 {
54406
54407 private ElementCollection children;
54408
54409 private string propertyField;
54410
54411 private bool propertyFieldSet;
54412
54413 private ISchemaElement parentElement;
54414
54415 public RadioButtonGroup()
54416 {
54417 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
54418 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(RadioButton)));
54419 this.children = childCollection0;
54420 }
54421
54422 public virtual IEnumerable Children
54423 {
54424 get
54425 {
54426 return this.children;
54427 }
54428 }
54429
54430 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
54431 public virtual IEnumerable this[System.Type childType]
54432 {
54433 get
54434 {
54435 return this.children.Filter(childType);
54436 }
54437 }
54438
54439 /// <summary>
54440 /// Property tied to this group.
54441 /// </summary>
54442 public string Property
54443 {
54444 get
54445 {
54446 return this.propertyField;
54447 }
54448 set
54449 {
54450 this.propertyFieldSet = true;
54451 this.propertyField = value;
54452 }
54453 }
54454
54455 public virtual ISchemaElement ParentElement
54456 {
54457 get
54458 {
54459 return this.parentElement;
54460 }
54461 set
54462 {
54463 this.parentElement = value;
54464 }
54465 }
54466
54467 public virtual void AddChild(ISchemaElement child)
54468 {
54469 if ((null == child))
54470 {
54471 throw new ArgumentNullException("child");
54472 }
54473 this.children.AddElement(child);
54474 child.ParentElement = this;
54475 }
54476
54477 public virtual void RemoveChild(ISchemaElement child)
54478 {
54479 if ((null == child))
54480 {
54481 throw new ArgumentNullException("child");
54482 }
54483 this.children.RemoveElement(child);
54484 child.ParentElement = null;
54485 }
54486
54487 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
54488 ISchemaElement ICreateChildren.CreateChild(string childName)
54489 {
54490 if (String.IsNullOrEmpty(childName))
54491 {
54492 throw new ArgumentNullException("childName");
54493 }
54494 ISchemaElement childValue = null;
54495 if (("RadioButton" == childName))
54496 {
54497 childValue = new RadioButton();
54498 }
54499 if ((null == childValue))
54500 {
54501 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
54502 }
54503 return childValue;
54504 }
54505
54506 /// <summary>
54507 /// Processes this element and all child elements into an XmlWriter.
54508 /// </summary>
54509 public virtual void OutputXml(XmlWriter writer)
54510 {
54511 if ((null == writer))
54512 {
54513 throw new ArgumentNullException("writer");
54514 }
54515 writer.WriteStartElement("RadioButtonGroup", "http://wixtoolset.org/schemas/v4/wxs");
54516 if (this.propertyFieldSet)
54517 {
54518 writer.WriteAttributeString("Property", this.propertyField);
54519 }
54520 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
54521 {
54522 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
54523 childElement.OutputXml(writer);
54524 }
54525 writer.WriteEndElement();
54526 }
54527
54528 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
54529 void ISetAttributes.SetAttribute(string name, string value)
54530 {
54531 if (String.IsNullOrEmpty(name))
54532 {
54533 throw new ArgumentNullException("name");
54534 }
54535 if (("Property" == name))
54536 {
54537 this.propertyField = value;
54538 this.propertyFieldSet = true;
54539 }
54540 }
54541 }
54542
54543 /// <summary>
54544 /// Text associated with certain controls
54545 /// </summary>
54546 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
54547 public class UIText : ISchemaElement, ISetAttributes
54548 {
54549
54550 private string idField;
54551
54552 private bool idFieldSet;
54553
54554 private string contentField;
54555
54556 private bool contentFieldSet;
54557
54558 private ISchemaElement parentElement;
54559
54560 public string Id
54561 {
54562 get
54563 {
54564 return this.idField;
54565 }
54566 set
54567 {
54568 this.idFieldSet = true;
54569 this.idField = value;
54570 }
54571 }
54572
54573 /// <summary>
54574 /// Element value is text, may use CDATA if needed to escape XML delimiters
54575 /// </summary>
54576 public string Content
54577 {
54578 get
54579 {
54580 return this.contentField;
54581 }
54582 set
54583 {
54584 this.contentFieldSet = true;
54585 this.contentField = value;
54586 }
54587 }
54588
54589 public virtual ISchemaElement ParentElement
54590 {
54591 get
54592 {
54593 return this.parentElement;
54594 }
54595 set
54596 {
54597 this.parentElement = value;
54598 }
54599 }
54600
54601 /// <summary>
54602 /// Processes this element and all child elements into an XmlWriter.
54603 /// </summary>
54604 public virtual void OutputXml(XmlWriter writer)
54605 {
54606 if ((null == writer))
54607 {
54608 throw new ArgumentNullException("writer");
54609 }
54610 writer.WriteStartElement("UIText", "http://wixtoolset.org/schemas/v4/wxs");
54611 if (this.idFieldSet)
54612 {
54613 writer.WriteAttributeString("Id", this.idField);
54614 }
54615 if (this.contentFieldSet)
54616 {
54617 writer.WriteString(this.contentField);
54618 }
54619 writer.WriteEndElement();
54620 }
54621
54622 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
54623 void ISetAttributes.SetAttribute(string name, string value)
54624 {
54625 if (String.IsNullOrEmpty(name))
54626 {
54627 throw new ArgumentNullException("name");
54628 }
54629 if (("Id" == name))
54630 {
54631 this.idField = value;
54632 this.idFieldSet = true;
54633 }
54634 if (("Content" == name))
54635 {
54636 this.contentField = value;
54637 this.contentFieldSet = true;
54638 }
54639 }
54640 }
54641
54642 /// <summary>
54643 /// Reference to a UI element. This will force the entire referenced Fragment's contents
54644 /// to be included in the installer database.
54645 /// </summary>
54646 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
54647 public class UIRef : ISchemaElement, ISetAttributes
54648 {
54649
54650 private string idField;
54651
54652 private bool idFieldSet;
54653
54654 private ISchemaElement parentElement;
54655
54656 public string Id
54657 {
54658 get
54659 {
54660 return this.idField;
54661 }
54662 set
54663 {
54664 this.idFieldSet = true;
54665 this.idField = value;
54666 }
54667 }
54668
54669 public virtual ISchemaElement ParentElement
54670 {
54671 get
54672 {
54673 return this.parentElement;
54674 }
54675 set
54676 {
54677 this.parentElement = value;
54678 }
54679 }
54680
54681 /// <summary>
54682 /// Processes this element and all child elements into an XmlWriter.
54683 /// </summary>
54684 public virtual void OutputXml(XmlWriter writer)
54685 {
54686 if ((null == writer))
54687 {
54688 throw new ArgumentNullException("writer");
54689 }
54690 writer.WriteStartElement("UIRef", "http://wixtoolset.org/schemas/v4/wxs");
54691 if (this.idFieldSet)
54692 {
54693 writer.WriteAttributeString("Id", this.idField);
54694 }
54695 writer.WriteEndElement();
54696 }
54697
54698 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
54699 void ISetAttributes.SetAttribute(string name, string value)
54700 {
54701 if (String.IsNullOrEmpty(name))
54702 {
54703 throw new ArgumentNullException("name");
54704 }
54705 if (("Id" == name))
54706 {
54707 this.idField = value;
54708 this.idFieldSet = true;
54709 }
54710 }
54711 }
54712
54713 /// <summary>
54714 /// Enclosing element to compartmentalize UI specifications.
54715 /// </summary>
54716 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
54717 public class UI : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
54718 {
54719
54720 private ElementCollection children;
54721
54722 private string idField;
54723
54724 private bool idFieldSet;
54725
54726 private ISchemaElement parentElement;
54727
54728 public UI()
54729 {
54730 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
54731 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedUI)));
54732 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Error)));
54733 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ProgressText)));
54734 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BillboardAction)));
54735 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComboBox)));
54736 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ListBox)));
54737 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ListView)));
54738 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RadioButtonGroup)));
54739 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(TextStyle)));
54740 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UIText)));
54741 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Dialog)));
54742 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DialogRef)));
54743 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Publish)));
54744 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PropertyRef)));
54745 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Property)));
54746 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Binary)));
54747 ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Sequence);
54748 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(AdminUISequence)));
54749 childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(InstallUISequence)));
54750 childCollection0.AddCollection(childCollection1);
54751 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UIRef)));
54752 this.children = childCollection0;
54753 }
54754
54755 public virtual IEnumerable Children
54756 {
54757 get
54758 {
54759 return this.children;
54760 }
54761 }
54762
54763 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
54764 public virtual IEnumerable this[System.Type childType]
54765 {
54766 get
54767 {
54768 return this.children.Filter(childType);
54769 }
54770 }
54771
54772 public string Id
54773 {
54774 get
54775 {
54776 return this.idField;
54777 }
54778 set
54779 {
54780 this.idFieldSet = true;
54781 this.idField = value;
54782 }
54783 }
54784
54785 public virtual ISchemaElement ParentElement
54786 {
54787 get
54788 {
54789 return this.parentElement;
54790 }
54791 set
54792 {
54793 this.parentElement = value;
54794 }
54795 }
54796
54797 public virtual void AddChild(ISchemaElement child)
54798 {
54799 if ((null == child))
54800 {
54801 throw new ArgumentNullException("child");
54802 }
54803 this.children.AddElement(child);
54804 child.ParentElement = this;
54805 }
54806
54807 public virtual void RemoveChild(ISchemaElement child)
54808 {
54809 if ((null == child))
54810 {
54811 throw new ArgumentNullException("child");
54812 }
54813 this.children.RemoveElement(child);
54814 child.ParentElement = null;
54815 }
54816
54817 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
54818 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
54819 ISchemaElement ICreateChildren.CreateChild(string childName)
54820 {
54821 if (String.IsNullOrEmpty(childName))
54822 {
54823 throw new ArgumentNullException("childName");
54824 }
54825 ISchemaElement childValue = null;
54826 if (("EmbeddedUI" == childName))
54827 {
54828 childValue = new EmbeddedUI();
54829 }
54830 if (("Error" == childName))
54831 {
54832 childValue = new Error();
54833 }
54834 if (("ProgressText" == childName))
54835 {
54836 childValue = new ProgressText();
54837 }
54838 if (("BillboardAction" == childName))
54839 {
54840 childValue = new BillboardAction();
54841 }
54842 if (("ComboBox" == childName))
54843 {
54844 childValue = new ComboBox();
54845 }
54846 if (("ListBox" == childName))
54847 {
54848 childValue = new ListBox();
54849 }
54850 if (("ListView" == childName))
54851 {
54852 childValue = new ListView();
54853 }
54854 if (("RadioButtonGroup" == childName))
54855 {
54856 childValue = new RadioButtonGroup();
54857 }
54858 if (("TextStyle" == childName))
54859 {
54860 childValue = new TextStyle();
54861 }
54862 if (("UIText" == childName))
54863 {
54864 childValue = new UIText();
54865 }
54866 if (("Dialog" == childName))
54867 {
54868 childValue = new Dialog();
54869 }
54870 if (("DialogRef" == childName))
54871 {
54872 childValue = new DialogRef();
54873 }
54874 if (("Publish" == childName))
54875 {
54876 childValue = new Publish();
54877 }
54878 if (("PropertyRef" == childName))
54879 {
54880 childValue = new PropertyRef();
54881 }
54882 if (("Property" == childName))
54883 {
54884 childValue = new Property();
54885 }
54886 if (("Binary" == childName))
54887 {
54888 childValue = new Binary();
54889 }
54890 if (("AdminUISequence" == childName))
54891 {
54892 childValue = new AdminUISequence();
54893 }
54894 if (("InstallUISequence" == childName))
54895 {
54896 childValue = new InstallUISequence();
54897 }
54898 if (("UIRef" == childName))
54899 {
54900 childValue = new UIRef();
54901 }
54902 if ((null == childValue))
54903 {
54904 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
54905 }
54906 return childValue;
54907 }
54908
54909 /// <summary>
54910 /// Processes this element and all child elements into an XmlWriter.
54911 /// </summary>
54912 public virtual void OutputXml(XmlWriter writer)
54913 {
54914 if ((null == writer))
54915 {
54916 throw new ArgumentNullException("writer");
54917 }
54918 writer.WriteStartElement("UI", "http://wixtoolset.org/schemas/v4/wxs");
54919 if (this.idFieldSet)
54920 {
54921 writer.WriteAttributeString("Id", this.idField);
54922 }
54923 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
54924 {
54925 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
54926 childElement.OutputXml(writer);
54927 }
54928 writer.WriteEndElement();
54929 }
54930
54931 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
54932 void ISetAttributes.SetAttribute(string name, string value)
54933 {
54934 if (String.IsNullOrEmpty(name))
54935 {
54936 throw new ArgumentNullException("name");
54937 }
54938 if (("Id" == name))
54939 {
54940 this.idField = value;
54941 this.idFieldSet = true;
54942 }
54943 }
54944 }
54945
54946 /// <summary>
54947 /// Defines a custom table for use from a custom action.
54948 /// </summary>
54949 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
54950 public class CustomTable : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
54951 {
54952
54953 private ElementCollection children;
54954
54955 private string idField;
54956
54957 private bool idFieldSet;
54958
54959 private YesNoType bootstrapperApplicationDataField;
54960
54961 private bool bootstrapperApplicationDataFieldSet;
54962
54963 private ISchemaElement parentElement;
54964
54965 public CustomTable()
54966 {
54967 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
54968 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Column)));
54969 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Row)));
54970 this.children = childCollection0;
54971 }
54972
54973 public virtual IEnumerable Children
54974 {
54975 get
54976 {
54977 return this.children;
54978 }
54979 }
54980
54981 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
54982 public virtual IEnumerable this[System.Type childType]
54983 {
54984 get
54985 {
54986 return this.children.Filter(childType);
54987 }
54988 }
54989
54990 /// <summary>
54991 /// Identifier for the custom table.
54992 /// </summary>
54993 public string Id
54994 {
54995 get
54996 {
54997 return this.idField;
54998 }
54999 set
55000 {
55001 this.idFieldSet = true;
55002 this.idField = value;
55003 }
55004 }
55005
55006 /// <summary>
55007 /// Indicates the table data is transformed into the bootstrapper application data manifest.
55008 /// </summary>
55009 public YesNoType BootstrapperApplicationData
55010 {
55011 get
55012 {
55013 return this.bootstrapperApplicationDataField;
55014 }
55015 set
55016 {
55017 this.bootstrapperApplicationDataFieldSet = true;
55018 this.bootstrapperApplicationDataField = value;
55019 }
55020 }
55021
55022 public virtual ISchemaElement ParentElement
55023 {
55024 get
55025 {
55026 return this.parentElement;
55027 }
55028 set
55029 {
55030 this.parentElement = value;
55031 }
55032 }
55033
55034 public virtual void AddChild(ISchemaElement child)
55035 {
55036 if ((null == child))
55037 {
55038 throw new ArgumentNullException("child");
55039 }
55040 this.children.AddElement(child);
55041 child.ParentElement = this;
55042 }
55043
55044 public virtual void RemoveChild(ISchemaElement child)
55045 {
55046 if ((null == child))
55047 {
55048 throw new ArgumentNullException("child");
55049 }
55050 this.children.RemoveElement(child);
55051 child.ParentElement = null;
55052 }
55053
55054 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
55055 ISchemaElement ICreateChildren.CreateChild(string childName)
55056 {
55057 if (String.IsNullOrEmpty(childName))
55058 {
55059 throw new ArgumentNullException("childName");
55060 }
55061 ISchemaElement childValue = null;
55062 if (("Column" == childName))
55063 {
55064 childValue = new Column();
55065 }
55066 if (("Row" == childName))
55067 {
55068 childValue = new Row();
55069 }
55070 if ((null == childValue))
55071 {
55072 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
55073 }
55074 return childValue;
55075 }
55076
55077 /// <summary>
55078 /// Processes this element and all child elements into an XmlWriter.
55079 /// </summary>
55080 public virtual void OutputXml(XmlWriter writer)
55081 {
55082 if ((null == writer))
55083 {
55084 throw new ArgumentNullException("writer");
55085 }
55086 writer.WriteStartElement("CustomTable", "http://wixtoolset.org/schemas/v4/wxs");
55087 if (this.idFieldSet)
55088 {
55089 writer.WriteAttributeString("Id", this.idField);
55090 }
55091 if (this.bootstrapperApplicationDataFieldSet)
55092 {
55093 if ((this.bootstrapperApplicationDataField == YesNoType.no))
55094 {
55095 writer.WriteAttributeString("BootstrapperApplicationData", "no");
55096 }
55097 if ((this.bootstrapperApplicationDataField == YesNoType.yes))
55098 {
55099 writer.WriteAttributeString("BootstrapperApplicationData", "yes");
55100 }
55101 }
55102 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
55103 {
55104 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
55105 childElement.OutputXml(writer);
55106 }
55107 writer.WriteEndElement();
55108 }
55109
55110 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
55111 void ISetAttributes.SetAttribute(string name, string value)
55112 {
55113 if (String.IsNullOrEmpty(name))
55114 {
55115 throw new ArgumentNullException("name");
55116 }
55117 if (("Id" == name))
55118 {
55119 this.idField = value;
55120 this.idFieldSet = true;
55121 }
55122 if (("BootstrapperApplicationData" == name))
55123 {
55124 this.bootstrapperApplicationDataField = Enums.ParseYesNoType(value);
55125 this.bootstrapperApplicationDataFieldSet = true;
55126 }
55127 }
55128 }
55129
55130 /// <summary>
55131 /// Column definition for a Custom Table
55132 /// </summary>
55133 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
55134 public class Column : ISchemaElement, ISetAttributes
55135 {
55136
55137 private string idField;
55138
55139 private bool idFieldSet;
55140
55141 private YesNoType primaryKeyField;
55142
55143 private bool primaryKeyFieldSet;
55144
55145 private TypeType typeField;
55146
55147 private bool typeFieldSet;
55148
55149 private int widthField;
55150
55151 private bool widthFieldSet;
55152
55153 private YesNoType nullableField;
55154
55155 private bool nullableFieldSet;
55156
55157 private YesNoType localizableField;
55158
55159 private bool localizableFieldSet;
55160
55161 private long minValueField;
55162
55163 private bool minValueFieldSet;
55164
55165 private long maxValueField;
55166
55167 private bool maxValueFieldSet;
55168
55169 private string keyTableField;
55170
55171 private bool keyTableFieldSet;
55172
55173 private int keyColumnField;
55174
55175 private bool keyColumnFieldSet;
55176
55177 private CategoryType categoryField;
55178
55179 private bool categoryFieldSet;
55180
55181 private string setField;
55182
55183 private bool setFieldSet;
55184
55185 private string descriptionField;
55186
55187 private bool descriptionFieldSet;
55188
55189 private ModularizeType modularizeField;
55190
55191 private bool modularizeFieldSet;
55192
55193 private ISchemaElement parentElement;
55194
55195 /// <summary>
55196 /// Identifier for the column.
55197 /// </summary>
55198 public string Id
55199 {
55200 get
55201 {
55202 return this.idField;
55203 }
55204 set
55205 {
55206 this.idFieldSet = true;
55207 this.idField = value;
55208 }
55209 }
55210
55211 /// <summary>
55212 /// Whether this column is a primary key.
55213 /// </summary>
55214 public YesNoType PrimaryKey
55215 {
55216 get
55217 {
55218 return this.primaryKeyField;
55219 }
55220 set
55221 {
55222 this.primaryKeyFieldSet = true;
55223 this.primaryKeyField = value;
55224 }
55225 }
55226
55227 /// <summary>
55228 /// The type of this column.
55229 /// </summary>
55230 public TypeType Type
55231 {
55232 get
55233 {
55234 return this.typeField;
55235 }
55236 set
55237 {
55238 this.typeFieldSet = true;
55239 this.typeField = value;
55240 }
55241 }
55242
55243 /// <summary>
55244 /// Width of this column.
55245 /// </summary>
55246 public int Width
55247 {
55248 get
55249 {
55250 return this.widthField;
55251 }
55252 set
55253 {
55254 this.widthFieldSet = true;
55255 this.widthField = value;
55256 }
55257 }
55258
55259 /// <summary>
55260 /// Whether this column can be left null.
55261 /// </summary>
55262 public YesNoType Nullable
55263 {
55264 get
55265 {
55266 return this.nullableField;
55267 }
55268 set
55269 {
55270 this.nullableFieldSet = true;
55271 this.nullableField = value;
55272 }
55273 }
55274
55275 /// <summary>
55276 /// Whether this column can be localized.
55277 /// </summary>
55278 public YesNoType Localizable
55279 {
55280 get
55281 {
55282 return this.localizableField;
55283 }
55284 set
55285 {
55286 this.localizableFieldSet = true;
55287 this.localizableField = value;
55288 }
55289 }
55290
55291 /// <summary>
55292 /// Minimum value for a numeric value, date or version in this column.
55293 /// </summary>
55294 public long MinValue
55295 {
55296 get
55297 {
55298 return this.minValueField;
55299 }
55300 set
55301 {
55302 this.minValueFieldSet = true;
55303 this.minValueField = value;
55304 }
55305 }
55306
55307 /// <summary>
55308 /// Maximum value for a numeric value, date or version in this column.
55309 /// </summary>
55310 public long MaxValue
55311 {
55312 get
55313 {
55314 return this.maxValueField;
55315 }
55316 set
55317 {
55318 this.maxValueFieldSet = true;
55319 this.maxValueField = value;
55320 }
55321 }
55322
55323 /// <summary>
55324 /// Table in which this column is an external key. Can be semicolon delimited.
55325 /// </summary>
55326 public string KeyTable
55327 {
55328 get
55329 {
55330 return this.keyTableField;
55331 }
55332 set
55333 {
55334 this.keyTableFieldSet = true;
55335 this.keyTableField = value;
55336 }
55337 }
55338
55339 /// <summary>
55340 /// Column in the table in KeyTable attribute.
55341 /// </summary>
55342 public int KeyColumn
55343 {
55344 get
55345 {
55346 return this.keyColumnField;
55347 }
55348 set
55349 {
55350 this.keyColumnFieldSet = true;
55351 this.keyColumnField = value;
55352 }
55353 }
55354
55355 /// <summary>
55356 /// Category of this column.
55357 /// This attribute must be specified with a value of 'Binary' if the Type attribute's value is 'binary'.
55358 /// </summary>
55359 public CategoryType Category
55360 {
55361 get
55362 {
55363 return this.categoryField;
55364 }
55365 set
55366 {
55367 this.categoryFieldSet = true;
55368 this.categoryField = value;
55369 }
55370 }
55371
55372 /// <summary>
55373 /// Semicolon delimited list of permissible values.
55374 /// </summary>
55375 public string Set
55376 {
55377 get
55378 {
55379 return this.setField;
55380 }
55381 set
55382 {
55383 this.setFieldSet = true;
55384 this.setField = value;
55385 }
55386 }
55387
55388 /// <summary>
55389 /// Description of this column.
55390 /// </summary>
55391 public string Description
55392 {
55393 get
55394 {
55395 return this.descriptionField;
55396 }
55397 set
55398 {
55399 this.descriptionFieldSet = true;
55400 this.descriptionField = value;
55401 }
55402 }
55403
55404 /// <summary>
55405 /// How this column should be modularized, if at all.
55406 /// </summary>
55407 public ModularizeType Modularize
55408 {
55409 get
55410 {
55411 return this.modularizeField;
55412 }
55413 set
55414 {
55415 this.modularizeFieldSet = true;
55416 this.modularizeField = value;
55417 }
55418 }
55419
55420 public virtual ISchemaElement ParentElement
55421 {
55422 get
55423 {
55424 return this.parentElement;
55425 }
55426 set
55427 {
55428 this.parentElement = value;
55429 }
55430 }
55431
55432 /// <summary>
55433 /// Parses a TypeType from a string.
55434 /// </summary>
55435 public static TypeType ParseTypeType(string value)
55436 {
55437 TypeType parsedValue;
55438 Column.TryParseTypeType(value, out parsedValue);
55439 return parsedValue;
55440 }
55441
55442 /// <summary>
55443 /// Tries to parse a TypeType from a string.
55444 /// </summary>
55445 public static bool TryParseTypeType(string value, out TypeType parsedValue)
55446 {
55447 parsedValue = TypeType.NotSet;
55448 if (string.IsNullOrEmpty(value))
55449 {
55450 return false;
55451 }
55452 if (("binary" == value))
55453 {
55454 parsedValue = TypeType.binary;
55455 }
55456 else
55457 {
55458 if (("int" == value))
55459 {
55460 parsedValue = TypeType.@int;
55461 }
55462 else
55463 {
55464 if (("string" == value))
55465 {
55466 parsedValue = TypeType.@string;
55467 }
55468 else
55469 {
55470 parsedValue = TypeType.IllegalValue;
55471 return false;
55472 }
55473 }
55474 }
55475 return true;
55476 }
55477
55478 /// <summary>
55479 /// Parses a CategoryType from a string.
55480 /// </summary>
55481 public static CategoryType ParseCategoryType(string value)
55482 {
55483 CategoryType parsedValue;
55484 Column.TryParseCategoryType(value, out parsedValue);
55485 return parsedValue;
55486 }
55487
55488 /// <summary>
55489 /// Tries to parse a CategoryType from a string.
55490 /// </summary>
55491 public static bool TryParseCategoryType(string value, out CategoryType parsedValue)
55492 {
55493 parsedValue = CategoryType.NotSet;
55494 if (string.IsNullOrEmpty(value))
55495 {
55496 return false;
55497 }
55498 if (("Text" == value))
55499 {
55500 parsedValue = CategoryType.text;
55501 }
55502 else
55503 {
55504 if (("UpperCase" == value))
55505 {
55506 parsedValue = CategoryType.upperCase;
55507 }
55508 else
55509 {
55510 if (("LowerCase" == value))
55511 {
55512 parsedValue = CategoryType.lowerCase;
55513 }
55514 else
55515 {
55516 if (("Integer" == value))
55517 {
55518 parsedValue = CategoryType.integer;
55519 }
55520 else
55521 {
55522 if (("DoubleInteger" == value))
55523 {
55524 parsedValue = CategoryType.doubleInteger;
55525 }
55526 else
55527 {
55528 if (("TimeDate" == value))
55529 {
55530 parsedValue = CategoryType.timeDate;
55531 }
55532 else
55533 {
55534 if (("Identifier" == value))
55535 {
55536 parsedValue = CategoryType.identifier;
55537 }
55538 else
55539 {
55540 if (("Property" == value))
55541 {
55542 parsedValue = CategoryType.property;
55543 }
55544 else
55545 {
55546 if (("Filename" == value))
55547 {
55548 parsedValue = CategoryType.filename;
55549 }
55550 else
55551 {
55552 if (("WildCardFilename" == value))
55553 {
55554 parsedValue = CategoryType.wildCardFilename;
55555 }
55556 else
55557 {
55558 if (("Path" == value))
55559 {
55560 parsedValue = CategoryType.path;
55561 }
55562 else
55563 {
55564 if (("Paths" == value))
55565 {
55566 parsedValue = CategoryType.paths;
55567 }
55568 else
55569 {
55570 if (("AnyPath" == value))
55571 {
55572 parsedValue = CategoryType.anyPath;
55573 }
55574 else
55575 {
55576 if (("DefaultDir" == value))
55577 {
55578 parsedValue = CategoryType.defaultDir;
55579 }
55580 else
55581 {
55582 if (("RegPath" == value))
55583 {
55584 parsedValue = CategoryType.regPath;
55585 }
55586 else
55587 {
55588 if (("Formatted" == value))
55589 {
55590 parsedValue = CategoryType.formatted;
55591 }
55592 else
55593 {
55594 if (("FormattedSddl" == value))
55595 {
55596 parsedValue = CategoryType.formattedSddl;
55597 }
55598 else
55599 {
55600 if (("Template" == value))
55601 {
55602 parsedValue = CategoryType.template;
55603 }
55604 else
55605 {
55606 if (("Condition" == value))
55607 {
55608 parsedValue = CategoryType.condition;
55609 }
55610 else
55611 {
55612 if (("Guid" == value))
55613 {
55614 parsedValue = CategoryType.guid;
55615 }
55616 else
55617 {
55618 if (("Version" == value))
55619 {
55620 parsedValue = CategoryType.version;
55621 }
55622 else
55623 {
55624 if (("Language" == value))
55625 {
55626 parsedValue = CategoryType.language;
55627 }
55628 else
55629 {
55630 if (("Binary" == value))
55631 {
55632 parsedValue = CategoryType.binary;
55633 }
55634 else
55635 {
55636 if (("CustomSource" == value))
55637 {
55638 parsedValue = CategoryType.customSource;
55639 }
55640 else
55641 {
55642 if (("Cabinet" == value))
55643 {
55644 parsedValue = CategoryType.cabinet;
55645 }
55646 else
55647 {
55648 if (("Shortcut" == value))
55649 {
55650 parsedValue = CategoryType.shortcut;
55651 }
55652 else
55653 {
55654 parsedValue = CategoryType.IllegalValue;
55655 return false;
55656 }
55657 }
55658 }
55659 }
55660 }
55661 }
55662 }
55663 }
55664 }
55665 }
55666 }
55667 }
55668 }
55669 }
55670 }
55671 }
55672 }
55673 }
55674 }
55675 }
55676 }
55677 }
55678 }
55679 }
55680 }
55681 }
55682 return true;
55683 }
55684
55685 /// <summary>
55686 /// Parses a ModularizeType from a string.
55687 /// </summary>
55688 public static ModularizeType ParseModularizeType(string value)
55689 {
55690 ModularizeType parsedValue;
55691 Column.TryParseModularizeType(value, out parsedValue);
55692 return parsedValue;
55693 }
55694
55695 /// <summary>
55696 /// Tries to parse a ModularizeType from a string.
55697 /// </summary>
55698 public static bool TryParseModularizeType(string value, out ModularizeType parsedValue)
55699 {
55700 parsedValue = ModularizeType.NotSet;
55701 if (string.IsNullOrEmpty(value))
55702 {
55703 return false;
55704 }
55705 if (("None" == value))
55706 {
55707 parsedValue = ModularizeType.None;
55708 }
55709 else
55710 {
55711 if (("Column" == value))
55712 {
55713 parsedValue = ModularizeType.Column;
55714 }
55715 else
55716 {
55717 if (("Condition" == value))
55718 {
55719 parsedValue = ModularizeType.Condition;
55720 }
55721 else
55722 {
55723 if (("Icon" == value))
55724 {
55725 parsedValue = ModularizeType.Icon;
55726 }
55727 else
55728 {
55729 if (("Property" == value))
55730 {
55731 parsedValue = ModularizeType.Property;
55732 }
55733 else
55734 {
55735 if (("SemicolonDelimited" == value))
55736 {
55737 parsedValue = ModularizeType.SemicolonDelimited;
55738 }
55739 else
55740 {
55741 parsedValue = ModularizeType.IllegalValue;
55742 return false;
55743 }
55744 }
55745 }
55746 }
55747 }
55748 }
55749 return true;
55750 }
55751
55752 /// <summary>
55753 /// Processes this element and all child elements into an XmlWriter.
55754 /// </summary>
55755 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
55756 public virtual void OutputXml(XmlWriter writer)
55757 {
55758 if ((null == writer))
55759 {
55760 throw new ArgumentNullException("writer");
55761 }
55762 writer.WriteStartElement("Column", "http://wixtoolset.org/schemas/v4/wxs");
55763 if (this.idFieldSet)
55764 {
55765 writer.WriteAttributeString("Id", this.idField);
55766 }
55767 if (this.primaryKeyFieldSet)
55768 {
55769 if ((this.primaryKeyField == YesNoType.no))
55770 {
55771 writer.WriteAttributeString("PrimaryKey", "no");
55772 }
55773 if ((this.primaryKeyField == YesNoType.yes))
55774 {
55775 writer.WriteAttributeString("PrimaryKey", "yes");
55776 }
55777 }
55778 if (this.typeFieldSet)
55779 {
55780 if ((this.typeField == TypeType.binary))
55781 {
55782 writer.WriteAttributeString("Type", "binary");
55783 }
55784 if ((this.typeField == TypeType.@int))
55785 {
55786 writer.WriteAttributeString("Type", "int");
55787 }
55788 if ((this.typeField == TypeType.@string))
55789 {
55790 writer.WriteAttributeString("Type", "string");
55791 }
55792 }
55793 if (this.widthFieldSet)
55794 {
55795 writer.WriteAttributeString("Width", this.widthField.ToString(CultureInfo.InvariantCulture));
55796 }
55797 if (this.nullableFieldSet)
55798 {
55799 if ((this.nullableField == YesNoType.no))
55800 {
55801 writer.WriteAttributeString("Nullable", "no");
55802 }
55803 if ((this.nullableField == YesNoType.yes))
55804 {
55805 writer.WriteAttributeString("Nullable", "yes");
55806 }
55807 }
55808 if (this.localizableFieldSet)
55809 {
55810 if ((this.localizableField == YesNoType.no))
55811 {
55812 writer.WriteAttributeString("Localizable", "no");
55813 }
55814 if ((this.localizableField == YesNoType.yes))
55815 {
55816 writer.WriteAttributeString("Localizable", "yes");
55817 }
55818 }
55819 if (this.minValueFieldSet)
55820 {
55821 writer.WriteAttributeString("MinValue", this.minValueField.ToString(CultureInfo.InvariantCulture));
55822 }
55823 if (this.maxValueFieldSet)
55824 {
55825 writer.WriteAttributeString("MaxValue", this.maxValueField.ToString(CultureInfo.InvariantCulture));
55826 }
55827 if (this.keyTableFieldSet)
55828 {
55829 writer.WriteAttributeString("KeyTable", this.keyTableField);
55830 }
55831 if (this.keyColumnFieldSet)
55832 {
55833 writer.WriteAttributeString("KeyColumn", this.keyColumnField.ToString(CultureInfo.InvariantCulture));
55834 }
55835 if (this.categoryFieldSet)
55836 {
55837 if ((this.categoryField == CategoryType.text))
55838 {
55839 writer.WriteAttributeString("Category", "text");
55840 }
55841 if ((this.categoryField == CategoryType.upperCase))
55842 {
55843 writer.WriteAttributeString("Category", "upperCase");
55844 }
55845 if ((this.categoryField == CategoryType.lowerCase))
55846 {
55847 writer.WriteAttributeString("Category", "lowerCase");
55848 }
55849 if ((this.categoryField == CategoryType.integer))
55850 {
55851 writer.WriteAttributeString("Category", "integer");
55852 }
55853 if ((this.categoryField == CategoryType.doubleInteger))
55854 {
55855 writer.WriteAttributeString("Category", "doubleInteger");
55856 }
55857 if ((this.categoryField == CategoryType.timeDate))
55858 {
55859 writer.WriteAttributeString("Category", "timeDate");
55860 }
55861 if ((this.categoryField == CategoryType.identifier))
55862 {
55863 writer.WriteAttributeString("Category", "identifier");
55864 }
55865 if ((this.categoryField == CategoryType.property))
55866 {
55867 writer.WriteAttributeString("Category", "property");
55868 }
55869 if ((this.categoryField == CategoryType.filename))
55870 {
55871 writer.WriteAttributeString("Category", "filename");
55872 }
55873 if ((this.categoryField == CategoryType.wildCardFilename))
55874 {
55875 writer.WriteAttributeString("Category", "wildCardFilename");
55876 }
55877 if ((this.categoryField == CategoryType.path))
55878 {
55879 writer.WriteAttributeString("Category", "path");
55880 }
55881 if ((this.categoryField == CategoryType.paths))
55882 {
55883 writer.WriteAttributeString("Category", "paths");
55884 }
55885 if ((this.categoryField == CategoryType.anyPath))
55886 {
55887 writer.WriteAttributeString("Category", "anyPath");
55888 }
55889 if ((this.categoryField == CategoryType.defaultDir))
55890 {
55891 writer.WriteAttributeString("Category", "defaultDir");
55892 }
55893 if ((this.categoryField == CategoryType.regPath))
55894 {
55895 writer.WriteAttributeString("Category", "regPath");
55896 }
55897 if ((this.categoryField == CategoryType.formatted))
55898 {
55899 writer.WriteAttributeString("Category", "formatted");
55900 }
55901 if ((this.categoryField == CategoryType.formattedSddl))
55902 {
55903 writer.WriteAttributeString("Category", "formattedSddl");
55904 }
55905 if ((this.categoryField == CategoryType.template))
55906 {
55907 writer.WriteAttributeString("Category", "template");
55908 }
55909 if ((this.categoryField == CategoryType.condition))
55910 {
55911 writer.WriteAttributeString("Category", "condition");
55912 }
55913 if ((this.categoryField == CategoryType.guid))
55914 {
55915 writer.WriteAttributeString("Category", "guid");
55916 }
55917 if ((this.categoryField == CategoryType.version))
55918 {
55919 writer.WriteAttributeString("Category", "version");
55920 }
55921 if ((this.categoryField == CategoryType.language))
55922 {
55923 writer.WriteAttributeString("Category", "language");
55924 }
55925 if ((this.categoryField == CategoryType.binary))
55926 {
55927 writer.WriteAttributeString("Category", "Binary");
55928 }
55929 if ((this.categoryField == CategoryType.customSource))
55930 {
55931 writer.WriteAttributeString("Category", "customSource");
55932 }
55933 if ((this.categoryField == CategoryType.cabinet))
55934 {
55935 writer.WriteAttributeString("Category", "cabinet");
55936 }
55937 if ((this.categoryField == CategoryType.shortcut))
55938 {
55939 writer.WriteAttributeString("Category", "shortcut");
55940 }
55941 }
55942 if (this.setFieldSet)
55943 {
55944 writer.WriteAttributeString("Set", this.setField);
55945 }
55946 if (this.descriptionFieldSet)
55947 {
55948 writer.WriteAttributeString("Description", this.descriptionField);
55949 }
55950 if (this.modularizeFieldSet)
55951 {
55952 if ((this.modularizeField == ModularizeType.None))
55953 {
55954 writer.WriteAttributeString("Modularize", "None");
55955 }
55956 if ((this.modularizeField == ModularizeType.Column))
55957 {
55958 writer.WriteAttributeString("Modularize", "Column");
55959 }
55960 if ((this.modularizeField == ModularizeType.Condition))
55961 {
55962 writer.WriteAttributeString("Modularize", "Condition");
55963 }
55964 if ((this.modularizeField == ModularizeType.Icon))
55965 {
55966 writer.WriteAttributeString("Modularize", "Icon");
55967 }
55968 if ((this.modularizeField == ModularizeType.Property))
55969 {
55970 writer.WriteAttributeString("Modularize", "Property");
55971 }
55972 if ((this.modularizeField == ModularizeType.SemicolonDelimited))
55973 {
55974 writer.WriteAttributeString("Modularize", "SemicolonDelimited");
55975 }
55976 }
55977 writer.WriteEndElement();
55978 }
55979
55980 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
55981 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
55982 void ISetAttributes.SetAttribute(string name, string value)
55983 {
55984 if (String.IsNullOrEmpty(name))
55985 {
55986 throw new ArgumentNullException("name");
55987 }
55988 if (("Id" == name))
55989 {
55990 this.idField = value;
55991 this.idFieldSet = true;
55992 }
55993 if (("PrimaryKey" == name))
55994 {
55995 this.primaryKeyField = Enums.ParseYesNoType(value);
55996 this.primaryKeyFieldSet = true;
55997 }
55998 if (("Type" == name))
55999 {
56000 this.typeField = Column.ParseTypeType(value);
56001 this.typeFieldSet = true;
56002 }
56003 if (("Width" == name))
56004 {
56005 this.widthField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
56006 this.widthFieldSet = true;
56007 }
56008 if (("Nullable" == name))
56009 {
56010 this.nullableField = Enums.ParseYesNoType(value);
56011 this.nullableFieldSet = true;
56012 }
56013 if (("Localizable" == name))
56014 {
56015 this.localizableField = Enums.ParseYesNoType(value);
56016 this.localizableFieldSet = true;
56017 }
56018 if (("MinValue" == name))
56019 {
56020 this.minValueField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
56021 this.minValueFieldSet = true;
56022 }
56023 if (("MaxValue" == name))
56024 {
56025 this.maxValueField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
56026 this.maxValueFieldSet = true;
56027 }
56028 if (("KeyTable" == name))
56029 {
56030 this.keyTableField = value;
56031 this.keyTableFieldSet = true;
56032 }
56033 if (("KeyColumn" == name))
56034 {
56035 this.keyColumnField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
56036 this.keyColumnFieldSet = true;
56037 }
56038 if (("Category" == name))
56039 {
56040 this.categoryField = Column.ParseCategoryType(value);
56041 this.categoryFieldSet = true;
56042 }
56043 if (("Set" == name))
56044 {
56045 this.setField = value;
56046 this.setFieldSet = true;
56047 }
56048 if (("Description" == name))
56049 {
56050 this.descriptionField = value;
56051 this.descriptionFieldSet = true;
56052 }
56053 if (("Modularize" == name))
56054 {
56055 this.modularizeField = Column.ParseModularizeType(value);
56056 this.modularizeFieldSet = true;
56057 }
56058 }
56059
56060 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
56061 public enum TypeType
56062 {
56063
56064 IllegalValue = int.MaxValue,
56065
56066 NotSet = -1,
56067
56068 /// <summary>
56069 /// Column contains a path to a file that will be inserted into the column as a binary object.
56070 /// If this value is set, the Category attribute must also be set with a value of 'Binary' to pass ICE validation.
56071 /// </summary>
56072 binary,
56073
56074 /// <summary>
56075 /// Column contains an integer or datetime value (the MinValue and MaxValue attributes should also be set).
56076 /// </summary>
56077 @int,
56078
56079 /// <summary>
56080 /// Column contains a non-localizable string value.
56081 /// </summary>
56082 @string,
56083 }
56084
56085 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
56086 public enum CategoryType
56087 {
56088
56089 IllegalValue = int.MaxValue,
56090
56091 NotSet = -1,
56092
56093 text,
56094
56095 upperCase,
56096
56097 lowerCase,
56098
56099 integer,
56100
56101 doubleInteger,
56102
56103 timeDate,
56104
56105 identifier,
56106
56107 property,
56108
56109 filename,
56110
56111 wildCardFilename,
56112
56113 path,
56114
56115 paths,
56116
56117 anyPath,
56118
56119 defaultDir,
56120
56121 regPath,
56122
56123 formatted,
56124
56125 formattedSddl,
56126
56127 template,
56128
56129 condition,
56130
56131 guid,
56132
56133 version,
56134
56135 language,
56136
56137 binary,
56138
56139 customSource,
56140
56141 cabinet,
56142
56143 shortcut,
56144 }
56145
56146 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
56147 public enum ModularizeType
56148 {
56149
56150 IllegalValue = int.MaxValue,
56151
56152 NotSet = -1,
56153
56154 /// <summary>
56155 /// Column should not be modularized. This is the default value.
56156 /// </summary>
56157 None,
56158
56159 /// <summary>
56160 /// Column should be modularized.
56161 /// </summary>
56162 Column,
56163
56164 /// <summary>
56165 /// Column is a condition and should be modularized.
56166 /// </summary>
56167 Condition,
56168
56169 /// <summary>
56170 /// When the column is an primary or foreign key to the Icon table it should be modularized special.
56171 /// </summary>
56172 Icon,
56173
56174 /// <summary>
56175 /// Any Properties in the column should be modularized.
56176 /// </summary>
56177 Property,
56178
56179 /// <summary>
56180 /// Semi-colon list of keys, all of which need to be modularized.
56181 /// </summary>
56182 SemicolonDelimited,
56183 }
56184 }
56185
56186 /// <summary>
56187 /// Row data for a Custom Table
56188 /// </summary>
56189 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
56190 public class Row : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
56191 {
56192
56193 private ElementCollection children;
56194
56195 private ISchemaElement parentElement;
56196
56197 public Row()
56198 {
56199 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
56200 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Data)));
56201 this.children = childCollection0;
56202 }
56203
56204 public virtual IEnumerable Children
56205 {
56206 get
56207 {
56208 return this.children;
56209 }
56210 }
56211
56212 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
56213 public virtual IEnumerable this[System.Type childType]
56214 {
56215 get
56216 {
56217 return this.children.Filter(childType);
56218 }
56219 }
56220
56221 public virtual ISchemaElement ParentElement
56222 {
56223 get
56224 {
56225 return this.parentElement;
56226 }
56227 set
56228 {
56229 this.parentElement = value;
56230 }
56231 }
56232
56233 public virtual void AddChild(ISchemaElement child)
56234 {
56235 if ((null == child))
56236 {
56237 throw new ArgumentNullException("child");
56238 }
56239 this.children.AddElement(child);
56240 child.ParentElement = this;
56241 }
56242
56243 public virtual void RemoveChild(ISchemaElement child)
56244 {
56245 if ((null == child))
56246 {
56247 throw new ArgumentNullException("child");
56248 }
56249 this.children.RemoveElement(child);
56250 child.ParentElement = null;
56251 }
56252
56253 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
56254 ISchemaElement ICreateChildren.CreateChild(string childName)
56255 {
56256 if (String.IsNullOrEmpty(childName))
56257 {
56258 throw new ArgumentNullException("childName");
56259 }
56260 ISchemaElement childValue = null;
56261 if (("Data" == childName))
56262 {
56263 childValue = new Data();
56264 }
56265 if ((null == childValue))
56266 {
56267 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
56268 }
56269 return childValue;
56270 }
56271
56272 /// <summary>
56273 /// Processes this element and all child elements into an XmlWriter.
56274 /// </summary>
56275 public virtual void OutputXml(XmlWriter writer)
56276 {
56277 if ((null == writer))
56278 {
56279 throw new ArgumentNullException("writer");
56280 }
56281 writer.WriteStartElement("Row", "http://wixtoolset.org/schemas/v4/wxs");
56282 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
56283 {
56284 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
56285 childElement.OutputXml(writer);
56286 }
56287 writer.WriteEndElement();
56288 }
56289
56290 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
56291 void ISetAttributes.SetAttribute(string name, string value)
56292 {
56293 if (String.IsNullOrEmpty(name))
56294 {
56295 throw new ArgumentNullException("name");
56296 }
56297 }
56298 }
56299
56300 /// <summary>
56301 /// Used for a Custom Table. Specifies the data for the parent Row and specified Column.
56302 /// </summary>
56303 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
56304 public class Data : ISchemaElement, ISetAttributes
56305 {
56306
56307 private string columnField;
56308
56309 private bool columnFieldSet;
56310
56311 private string contentField;
56312
56313 private bool contentFieldSet;
56314
56315 private ISchemaElement parentElement;
56316
56317 /// <summary>
56318 /// Specifies in which column to insert this data.
56319 /// </summary>
56320 public string Column
56321 {
56322 get
56323 {
56324 return this.columnField;
56325 }
56326 set
56327 {
56328 this.columnFieldSet = true;
56329 this.columnField = value;
56330 }
56331 }
56332
56333 /// <summary>
56334 /// A data value
56335 /// </summary>
56336 public string Content
56337 {
56338 get
56339 {
56340 return this.contentField;
56341 }
56342 set
56343 {
56344 this.contentFieldSet = true;
56345 this.contentField = value;
56346 }
56347 }
56348
56349 public virtual ISchemaElement ParentElement
56350 {
56351 get
56352 {
56353 return this.parentElement;
56354 }
56355 set
56356 {
56357 this.parentElement = value;
56358 }
56359 }
56360
56361 /// <summary>
56362 /// Processes this element and all child elements into an XmlWriter.
56363 /// </summary>
56364 public virtual void OutputXml(XmlWriter writer)
56365 {
56366 if ((null == writer))
56367 {
56368 throw new ArgumentNullException("writer");
56369 }
56370 writer.WriteStartElement("Data", "http://wixtoolset.org/schemas/v4/wxs");
56371 if (this.columnFieldSet)
56372 {
56373 writer.WriteAttributeString("Column", this.columnField);
56374 }
56375 if (this.contentFieldSet)
56376 {
56377 writer.WriteString(this.contentField);
56378 }
56379 writer.WriteEndElement();
56380 }
56381
56382 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
56383 void ISetAttributes.SetAttribute(string name, string value)
56384 {
56385 if (String.IsNullOrEmpty(name))
56386 {
56387 throw new ArgumentNullException("name");
56388 }
56389 if (("Column" == name))
56390 {
56391 this.columnField = value;
56392 this.columnFieldSet = true;
56393 }
56394 if (("Content" == name))
56395 {
56396 this.contentField = value;
56397 this.contentFieldSet = true;
56398 }
56399 }
56400 }
56401
56402 /// <summary>
56403 /// Use this element to ensure that a table appears in the installer database, even if its empty.
56404 /// </summary>
56405 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
56406 public class EnsureTable : ISchemaElement, ISetAttributes
56407 {
56408
56409 private string idField;
56410
56411 private bool idFieldSet;
56412
56413 private ISchemaElement parentElement;
56414
56415 /// <summary>
56416 /// The name of the table.
56417 /// </summary>
56418 public string Id
56419 {
56420 get
56421 {
56422 return this.idField;
56423 }
56424 set
56425 {
56426 this.idFieldSet = true;
56427 this.idField = value;
56428 }
56429 }
56430
56431 public virtual ISchemaElement ParentElement
56432 {
56433 get
56434 {
56435 return this.parentElement;
56436 }
56437 set
56438 {
56439 this.parentElement = value;
56440 }
56441 }
56442
56443 /// <summary>
56444 /// Processes this element and all child elements into an XmlWriter.
56445 /// </summary>
56446 public virtual void OutputXml(XmlWriter writer)
56447 {
56448 if ((null == writer))
56449 {
56450 throw new ArgumentNullException("writer");
56451 }
56452 writer.WriteStartElement("EnsureTable", "http://wixtoolset.org/schemas/v4/wxs");
56453 if (this.idFieldSet)
56454 {
56455 writer.WriteAttributeString("Id", this.idField);
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 (("Id" == name))
56468 {
56469 this.idField = value;
56470 this.idFieldSet = true;
56471 }
56472 }
56473 }
56474
56475 /// <summary>
56476 /// This element exposes advanced WiX functionality. Use this element to declare WiX variables
56477 /// from directly within your authoring. WiX variables are not resolved until the final msi/msm/pcp
56478 /// file is actually generated. WiX variables do not persist into the msi/msm/pcp file, so they cannot
56479 /// be used when an MSI file is being installed; it's a WiX-only concept.
56480 /// </summary>
56481 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
56482 public class WixVariable : ISchemaElement, ISetAttributes
56483 {
56484
56485 private string idField;
56486
56487 private bool idFieldSet;
56488
56489 private YesNoType overridableField;
56490
56491 private bool overridableFieldSet;
56492
56493 private string valueField;
56494
56495 private bool valueFieldSet;
56496
56497 private ISchemaElement parentElement;
56498
56499 /// <summary>
56500 /// The name of the variable.
56501 /// </summary>
56502 public string Id
56503 {
56504 get
56505 {
56506 return this.idField;
56507 }
56508 set
56509 {
56510 this.idFieldSet = true;
56511 this.idField = value;
56512 }
56513 }
56514
56515 /// <summary>
56516 /// Set this value to 'yes' in order to make the variable's value overridable either by
56517 /// another WixVariable entry or via the command-line option -d&lt;name&gt;=&lt;value&gt;
56518 /// for light.exe. If the same variable is declared overridable in multiple places it
56519 /// will cause an error (since WiX won't know which value is correct). The default value
56520 /// is 'no'.
56521 /// </summary>
56522 public YesNoType Overridable
56523 {
56524 get
56525 {
56526 return this.overridableField;
56527 }
56528 set
56529 {
56530 this.overridableFieldSet = true;
56531 this.overridableField = value;
56532 }
56533 }
56534
56535 /// <summary>
56536 /// The value of the variable. The value cannot be an empty string because that would
56537 /// make it possible to accidentally set a column to null.
56538 /// </summary>
56539 public string Value
56540 {
56541 get
56542 {
56543 return this.valueField;
56544 }
56545 set
56546 {
56547 this.valueFieldSet = true;
56548 this.valueField = value;
56549 }
56550 }
56551
56552 public virtual ISchemaElement ParentElement
56553 {
56554 get
56555 {
56556 return this.parentElement;
56557 }
56558 set
56559 {
56560 this.parentElement = value;
56561 }
56562 }
56563
56564 /// <summary>
56565 /// Processes this element and all child elements into an XmlWriter.
56566 /// </summary>
56567 public virtual void OutputXml(XmlWriter writer)
56568 {
56569 if ((null == writer))
56570 {
56571 throw new ArgumentNullException("writer");
56572 }
56573 writer.WriteStartElement("WixVariable", "http://wixtoolset.org/schemas/v4/wxs");
56574 if (this.idFieldSet)
56575 {
56576 writer.WriteAttributeString("Id", this.idField);
56577 }
56578 if (this.overridableFieldSet)
56579 {
56580 if ((this.overridableField == YesNoType.no))
56581 {
56582 writer.WriteAttributeString("Overridable", "no");
56583 }
56584 if ((this.overridableField == YesNoType.yes))
56585 {
56586 writer.WriteAttributeString("Overridable", "yes");
56587 }
56588 }
56589 if (this.valueFieldSet)
56590 {
56591 writer.WriteAttributeString("Value", this.valueField);
56592 }
56593 writer.WriteEndElement();
56594 }
56595
56596 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
56597 void ISetAttributes.SetAttribute(string name, string value)
56598 {
56599 if (String.IsNullOrEmpty(name))
56600 {
56601 throw new ArgumentNullException("name");
56602 }
56603 if (("Id" == name))
56604 {
56605 this.idField = value;
56606 this.idFieldSet = true;
56607 }
56608 if (("Overridable" == name))
56609 {
56610 this.overridableField = Enums.ParseYesNoType(value);
56611 this.overridableFieldSet = true;
56612 }
56613 if (("Value" == name))
56614 {
56615 this.valueField = value;
56616 this.valueFieldSet = true;
56617 }
56618 }
56619 }
56620
56621 /// <summary>
56622 /// Use this element to contain definitions for instance transforms.
56623 /// </summary>
56624 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
56625 public class InstanceTransforms : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
56626 {
56627
56628 private ElementCollection children;
56629
56630 private string propertyField;
56631
56632 private bool propertyFieldSet;
56633
56634 private ISchemaElement parentElement;
56635
56636 public InstanceTransforms()
56637 {
56638 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
56639 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Instance)));
56640 this.children = childCollection0;
56641 }
56642
56643 public virtual IEnumerable Children
56644 {
56645 get
56646 {
56647 return this.children;
56648 }
56649 }
56650
56651 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
56652 public virtual IEnumerable this[System.Type childType]
56653 {
56654 get
56655 {
56656 return this.children.Filter(childType);
56657 }
56658 }
56659
56660 /// <summary>
56661 /// The Id of the Property who's value should change for each instance.
56662 /// </summary>
56663 public string Property
56664 {
56665 get
56666 {
56667 return this.propertyField;
56668 }
56669 set
56670 {
56671 this.propertyFieldSet = true;
56672 this.propertyField = value;
56673 }
56674 }
56675
56676 public virtual ISchemaElement ParentElement
56677 {
56678 get
56679 {
56680 return this.parentElement;
56681 }
56682 set
56683 {
56684 this.parentElement = value;
56685 }
56686 }
56687
56688 public virtual void AddChild(ISchemaElement child)
56689 {
56690 if ((null == child))
56691 {
56692 throw new ArgumentNullException("child");
56693 }
56694 this.children.AddElement(child);
56695 child.ParentElement = this;
56696 }
56697
56698 public virtual void RemoveChild(ISchemaElement child)
56699 {
56700 if ((null == child))
56701 {
56702 throw new ArgumentNullException("child");
56703 }
56704 this.children.RemoveElement(child);
56705 child.ParentElement = null;
56706 }
56707
56708 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
56709 ISchemaElement ICreateChildren.CreateChild(string childName)
56710 {
56711 if (String.IsNullOrEmpty(childName))
56712 {
56713 throw new ArgumentNullException("childName");
56714 }
56715 ISchemaElement childValue = null;
56716 if (("Instance" == childName))
56717 {
56718 childValue = new Instance();
56719 }
56720 if ((null == childValue))
56721 {
56722 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
56723 }
56724 return childValue;
56725 }
56726
56727 /// <summary>
56728 /// Processes this element and all child elements into an XmlWriter.
56729 /// </summary>
56730 public virtual void OutputXml(XmlWriter writer)
56731 {
56732 if ((null == writer))
56733 {
56734 throw new ArgumentNullException("writer");
56735 }
56736 writer.WriteStartElement("InstanceTransforms", "http://wixtoolset.org/schemas/v4/wxs");
56737 if (this.propertyFieldSet)
56738 {
56739 writer.WriteAttributeString("Property", this.propertyField);
56740 }
56741 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
56742 {
56743 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
56744 childElement.OutputXml(writer);
56745 }
56746 writer.WriteEndElement();
56747 }
56748
56749 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
56750 void ISetAttributes.SetAttribute(string name, string value)
56751 {
56752 if (String.IsNullOrEmpty(name))
56753 {
56754 throw new ArgumentNullException("name");
56755 }
56756 if (("Property" == name))
56757 {
56758 this.propertyField = value;
56759 this.propertyFieldSet = true;
56760 }
56761 }
56762 }
56763
56764 /// <summary>
56765 /// Defines an instance transform for your product.
56766 /// </summary>
56767 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
56768 public class Instance : ISchemaElement, ISetAttributes
56769 {
56770
56771 private string idField;
56772
56773 private bool idFieldSet;
56774
56775 private string productCodeField;
56776
56777 private bool productCodeFieldSet;
56778
56779 private string productNameField;
56780
56781 private bool productNameFieldSet;
56782
56783 private string upgradeCodeField;
56784
56785 private bool upgradeCodeFieldSet;
56786
56787 private ISchemaElement parentElement;
56788
56789 /// <summary>
56790 /// The identity of the instance transform. This value will define the name by which the instance
56791 /// should be referred to on the command line. In addition, the value of the this attribute will
56792 /// determine what the value of the property specified in Property attribute on InstanceTransforms
56793 /// will change to for each instance.
56794 /// </summary>
56795 public string Id
56796 {
56797 get
56798 {
56799 return this.idField;
56800 }
56801 set
56802 {
56803 this.idFieldSet = true;
56804 this.idField = value;
56805 }
56806 }
56807
56808 /// <summary>
56809 /// The ProductCode for this instance.
56810 /// </summary>
56811 public string ProductCode
56812 {
56813 get
56814 {
56815 return this.productCodeField;
56816 }
56817 set
56818 {
56819 this.productCodeFieldSet = true;
56820 this.productCodeField = value;
56821 }
56822 }
56823
56824 /// <summary>
56825 /// The ProductName for this instance.
56826 /// </summary>
56827 public string ProductName
56828 {
56829 get
56830 {
56831 return this.productNameField;
56832 }
56833 set
56834 {
56835 this.productNameFieldSet = true;
56836 this.productNameField = value;
56837 }
56838 }
56839
56840 /// <summary>
56841 /// The UpgradeCode for this instance.
56842 /// </summary>
56843 public string UpgradeCode
56844 {
56845 get
56846 {
56847 return this.upgradeCodeField;
56848 }
56849 set
56850 {
56851 this.upgradeCodeFieldSet = true;
56852 this.upgradeCodeField = value;
56853 }
56854 }
56855
56856 public virtual ISchemaElement ParentElement
56857 {
56858 get
56859 {
56860 return this.parentElement;
56861 }
56862 set
56863 {
56864 this.parentElement = value;
56865 }
56866 }
56867
56868 /// <summary>
56869 /// Processes this element and all child elements into an XmlWriter.
56870 /// </summary>
56871 public virtual void OutputXml(XmlWriter writer)
56872 {
56873 if ((null == writer))
56874 {
56875 throw new ArgumentNullException("writer");
56876 }
56877 writer.WriteStartElement("Instance", "http://wixtoolset.org/schemas/v4/wxs");
56878 if (this.idFieldSet)
56879 {
56880 writer.WriteAttributeString("Id", this.idField);
56881 }
56882 if (this.productCodeFieldSet)
56883 {
56884 writer.WriteAttributeString("ProductCode", this.productCodeField);
56885 }
56886 if (this.productNameFieldSet)
56887 {
56888 writer.WriteAttributeString("ProductName", this.productNameField);
56889 }
56890 if (this.upgradeCodeFieldSet)
56891 {
56892 writer.WriteAttributeString("UpgradeCode", this.upgradeCodeField);
56893 }
56894 writer.WriteEndElement();
56895 }
56896
56897 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
56898 void ISetAttributes.SetAttribute(string name, string value)
56899 {
56900 if (String.IsNullOrEmpty(name))
56901 {
56902 throw new ArgumentNullException("name");
56903 }
56904 if (("Id" == name))
56905 {
56906 this.idField = value;
56907 this.idFieldSet = true;
56908 }
56909 if (("ProductCode" == name))
56910 {
56911 this.productCodeField = value;
56912 this.productCodeFieldSet = true;
56913 }
56914 if (("ProductName" == name))
56915 {
56916 this.productNameField = value;
56917 this.productNameFieldSet = true;
56918 }
56919 if (("UpgradeCode" == name))
56920 {
56921 this.upgradeCodeField = value;
56922 this.upgradeCodeFieldSet = true;
56923 }
56924 }
56925 }
56926
56927 /// <summary>
56928 /// Simplifies authoring for major upgrades, including support for preventing downgrades.
56929 ///
56930 /// The parent Product element must have valid UpgradeCode and Version attributes.
56931 ///
56932 /// When the FindRelatedProducts action detects a related product installed on the system,
56933 /// it appends the product code to the property named WIX_UPGRADE_DETECTED. After the
56934 /// FindRelatedProducts action is run, the value of the WIX_UPGRADE_DETECTED property is a
56935 /// list of product codes, separated by semicolons (;), detected on the system.
56936 /// </summary>
56937 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
56938 public class MajorUpgrade : ISchemaElement, ISetAttributes
56939 {
56940
56941 private YesNoType allowDowngradesField;
56942
56943 private bool allowDowngradesFieldSet;
56944
56945 private YesNoType allowSameVersionUpgradesField;
56946
56947 private bool allowSameVersionUpgradesFieldSet;
56948
56949 private YesNoType disallowField;
56950
56951 private bool disallowFieldSet;
56952
56953 private string downgradeErrorMessageField;
56954
56955 private bool downgradeErrorMessageFieldSet;
56956
56957 private string disallowUpgradeErrorMessageField;
56958
56959 private bool disallowUpgradeErrorMessageFieldSet;
56960
56961 private YesNoType migrateFeaturesField;
56962
56963 private bool migrateFeaturesFieldSet;
56964
56965 private YesNoType ignoreLanguageField;
56966
56967 private bool ignoreLanguageFieldSet;
56968
56969 private YesNoType ignoreRemoveFailureField;
56970
56971 private bool ignoreRemoveFailureFieldSet;
56972
56973 private string removeFeaturesField;
56974
56975 private bool removeFeaturesFieldSet;
56976
56977 private ScheduleType scheduleField;
56978
56979 private bool scheduleFieldSet;
56980
56981 private ISchemaElement parentElement;
56982
56983 /// <summary>
56984 /// When set to no (the default), products with lower version numbers are blocked from
56985 /// installing when a product with a higher version is installed; the DowngradeErrorMessage
56986 /// attribute must also be specified.
56987 ///
56988 /// When set to yes, any version can be installed over any other version.
56989 /// </summary>
56990 public YesNoType AllowDowngrades
56991 {
56992 get
56993 {
56994 return this.allowDowngradesField;
56995 }
56996 set
56997 {
56998 this.allowDowngradesFieldSet = true;
56999 this.allowDowngradesField = value;
57000 }
57001 }
57002
57003 /// <summary>
57004 /// When set to no (the default), installing a product with the same version and upgrade code
57005 /// (but different product code) is allowed and treated by MSI as two products. When set to yes,
57006 /// WiX sets the msidbUpgradeAttributesVersionMaxInclusive attribute, which tells MSI to treat
57007 /// a product with the same version as a major upgrade.
57008 ///
57009 /// This is useful when two product versions differ only in the fourth version field. MSI
57010 /// specifically ignores that field when comparing product versions, so two products that
57011 /// differ only in the fourth version field are the same product and need this attribute set to
57012 /// yes to be detected.
57013 ///
57014 /// Note that because MSI ignores the fourth product version field, setting this attribute to
57015 /// yes also allows downgrades when the first three product version fields are identical.
57016 /// For example, product version 1.0.0.1 will "upgrade" 1.0.0.2998 because they're seen as the
57017 /// same version (1.0.0). That could reintroduce serious bugs so the safest choice is to change
57018 /// the first three version fields and omit this attribute to get the default of no.
57019 ///
57020 /// This attribute cannot be "yes" when AllowDowngrades is also "yes" -- AllowDowngrades
57021 /// already allows two products with the same version number to upgrade each other.
57022 /// </summary>
57023 public YesNoType AllowSameVersionUpgrades
57024 {
57025 get
57026 {
57027 return this.allowSameVersionUpgradesField;
57028 }
57029 set
57030 {
57031 this.allowSameVersionUpgradesFieldSet = true;
57032 this.allowSameVersionUpgradesField = value;
57033 }
57034 }
57035
57036 /// <summary>
57037 /// When set to yes, products with higer version numbers are blocked from
57038 /// installing when a product with a lower version is installed; the UpgradeErrorMessage
57039 /// attribute must also be specified.
57040 ///
57041 /// When set to no (the default), any version can be installed over any lower version.
57042 /// </summary>
57043 public YesNoType Disallow
57044 {
57045 get
57046 {
57047 return this.disallowField;
57048 }
57049 set
57050 {
57051 this.disallowFieldSet = true;
57052 this.disallowField = value;
57053 }
57054 }
57055
57056 /// <summary>
57057 /// The message displayed if users try to install a product with a lower version number
57058 /// when a product with a higher version is installed. Used only when AllowDowngrades
57059 /// is no (the default).
57060 /// </summary>
57061 public string DowngradeErrorMessage
57062 {
57063 get
57064 {
57065 return this.downgradeErrorMessageField;
57066 }
57067 set
57068 {
57069 this.downgradeErrorMessageFieldSet = true;
57070 this.downgradeErrorMessageField = value;
57071 }
57072 }
57073
57074 /// <summary>
57075 /// The message displayed if users try to install a product with a higer version number
57076 /// when a product with a lower version is installed. Used only when Disallow
57077 /// is yes.
57078 /// </summary>
57079 public string DisallowUpgradeErrorMessage
57080 {
57081 get
57082 {
57083 return this.disallowUpgradeErrorMessageField;
57084 }
57085 set
57086 {
57087 this.disallowUpgradeErrorMessageFieldSet = true;
57088 this.disallowUpgradeErrorMessageField = value;
57089 }
57090 }
57091
57092 /// <summary>
57093 /// When set to yes (the default), the MigrateFeatureStates standard action will set the
57094 /// feature states of the upgrade product to those of the installed product.
57095 ///
57096 /// When set to no, the installed features have no effect on the upgrade installation.
57097 /// </summary>
57098 public YesNoType MigrateFeatures
57099 {
57100 get
57101 {
57102 return this.migrateFeaturesField;
57103 }
57104 set
57105 {
57106 this.migrateFeaturesFieldSet = true;
57107 this.migrateFeaturesField = value;
57108 }
57109 }
57110
57111 /// <summary>
57112 /// When set to yes, the Upgrade table rows will match any product with the same UpgradeCode.
57113 ///
57114 /// When set to no (the default), the Upgrade table rows will match only products with the
57115 /// same UpgradeCode and ProductLanguage.
57116 /// </summary>
57117 public YesNoType IgnoreLanguage
57118 {
57119 get
57120 {
57121 return this.ignoreLanguageField;
57122 }
57123 set
57124 {
57125 this.ignoreLanguageFieldSet = true;
57126 this.ignoreLanguageField = value;
57127 }
57128 }
57129
57130 /// <summary>
57131 /// When set to yes, failures removing the installed product during the upgrade will be
57132 /// ignored.
57133 ///
57134 /// When set to no (the default), failures removing the installed product during the upgrade
57135 /// will be considered a failure and, depending on the scheduling, roll back the upgrade.
57136 /// </summary>
57137 public YesNoType IgnoreRemoveFailure
57138 {
57139 get
57140 {
57141 return this.ignoreRemoveFailureField;
57142 }
57143 set
57144 {
57145 this.ignoreRemoveFailureFieldSet = true;
57146 this.ignoreRemoveFailureField = value;
57147 }
57148 }
57149
57150 /// <summary>
57151 /// A formatted string that contains the list of features to remove from the installed
57152 /// product. The default is to remove all features. Note that if you use formatted property
57153 /// values that evaluate to an empty string, no features will be removed; only omitting
57154 /// this attribute defaults to removing all features.
57155 /// </summary>
57156 public string RemoveFeatures
57157 {
57158 get
57159 {
57160 return this.removeFeaturesField;
57161 }
57162 set
57163 {
57164 this.removeFeaturesFieldSet = true;
57165 this.removeFeaturesField = value;
57166 }
57167 }
57168
57169 /// <summary>
57170 /// Determines the scheduling of the RemoveExistingProducts standard action, which is when
57171 /// the installed product is removed. The default is "afterInstallValidate" which removes
57172 /// the installed product entirely before installing the upgrade product. It's slowest but
57173 /// gives the most flexibility in changing components and features in the upgrade product.
57174 ///
57175 /// For more information, see
57176 /// </summary>
57177 public ScheduleType Schedule
57178 {
57179 get
57180 {
57181 return this.scheduleField;
57182 }
57183 set
57184 {
57185 this.scheduleFieldSet = true;
57186 this.scheduleField = value;
57187 }
57188 }
57189
57190 public virtual ISchemaElement ParentElement
57191 {
57192 get
57193 {
57194 return this.parentElement;
57195 }
57196 set
57197 {
57198 this.parentElement = value;
57199 }
57200 }
57201
57202 /// <summary>
57203 /// Parses a ScheduleType from a string.
57204 /// </summary>
57205 public static ScheduleType ParseScheduleType(string value)
57206 {
57207 ScheduleType parsedValue;
57208 MajorUpgrade.TryParseScheduleType(value, out parsedValue);
57209 return parsedValue;
57210 }
57211
57212 /// <summary>
57213 /// Tries to parse a ScheduleType from a string.
57214 /// </summary>
57215 public static bool TryParseScheduleType(string value, out ScheduleType parsedValue)
57216 {
57217 parsedValue = ScheduleType.NotSet;
57218 if (string.IsNullOrEmpty(value))
57219 {
57220 return false;
57221 }
57222 if (("afterInstallValidate" == value))
57223 {
57224 parsedValue = ScheduleType.afterInstallValidate;
57225 }
57226 else
57227 {
57228 if (("afterInstallInitialize" == value))
57229 {
57230 parsedValue = ScheduleType.afterInstallInitialize;
57231 }
57232 else
57233 {
57234 if (("afterInstallExecute" == value))
57235 {
57236 parsedValue = ScheduleType.afterInstallExecute;
57237 }
57238 else
57239 {
57240 if (("afterInstallExecuteAgain" == value))
57241 {
57242 parsedValue = ScheduleType.afterInstallExecuteAgain;
57243 }
57244 else
57245 {
57246 if (("afterInstallFinalize" == value))
57247 {
57248 parsedValue = ScheduleType.afterInstallFinalize;
57249 }
57250 else
57251 {
57252 parsedValue = ScheduleType.IllegalValue;
57253 return false;
57254 }
57255 }
57256 }
57257 }
57258 }
57259 return true;
57260 }
57261
57262 /// <summary>
57263 /// Processes this element and all child elements into an XmlWriter.
57264 /// </summary>
57265 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
57266 public virtual void OutputXml(XmlWriter writer)
57267 {
57268 if ((null == writer))
57269 {
57270 throw new ArgumentNullException("writer");
57271 }
57272 writer.WriteStartElement("MajorUpgrade", "http://wixtoolset.org/schemas/v4/wxs");
57273 if (this.allowDowngradesFieldSet)
57274 {
57275 if ((this.allowDowngradesField == YesNoType.no))
57276 {
57277 writer.WriteAttributeString("AllowDowngrades", "no");
57278 }
57279 if ((this.allowDowngradesField == YesNoType.yes))
57280 {
57281 writer.WriteAttributeString("AllowDowngrades", "yes");
57282 }
57283 }
57284 if (this.allowSameVersionUpgradesFieldSet)
57285 {
57286 if ((this.allowSameVersionUpgradesField == YesNoType.no))
57287 {
57288 writer.WriteAttributeString("AllowSameVersionUpgrades", "no");
57289 }
57290 if ((this.allowSameVersionUpgradesField == YesNoType.yes))
57291 {
57292 writer.WriteAttributeString("AllowSameVersionUpgrades", "yes");
57293 }
57294 }
57295 if (this.disallowFieldSet)
57296 {
57297 if ((this.disallowField == YesNoType.no))
57298 {
57299 writer.WriteAttributeString("Disallow", "no");
57300 }
57301 if ((this.disallowField == YesNoType.yes))
57302 {
57303 writer.WriteAttributeString("Disallow", "yes");
57304 }
57305 }
57306 if (this.downgradeErrorMessageFieldSet)
57307 {
57308 writer.WriteAttributeString("DowngradeErrorMessage", this.downgradeErrorMessageField);
57309 }
57310 if (this.disallowUpgradeErrorMessageFieldSet)
57311 {
57312 writer.WriteAttributeString("DisallowUpgradeErrorMessage", this.disallowUpgradeErrorMessageField);
57313 }
57314 if (this.migrateFeaturesFieldSet)
57315 {
57316 if ((this.migrateFeaturesField == YesNoType.no))
57317 {
57318 writer.WriteAttributeString("MigrateFeatures", "no");
57319 }
57320 if ((this.migrateFeaturesField == YesNoType.yes))
57321 {
57322 writer.WriteAttributeString("MigrateFeatures", "yes");
57323 }
57324 }
57325 if (this.ignoreLanguageFieldSet)
57326 {
57327 if ((this.ignoreLanguageField == YesNoType.no))
57328 {
57329 writer.WriteAttributeString("IgnoreLanguage", "no");
57330 }
57331 if ((this.ignoreLanguageField == YesNoType.yes))
57332 {
57333 writer.WriteAttributeString("IgnoreLanguage", "yes");
57334 }
57335 }
57336 if (this.ignoreRemoveFailureFieldSet)
57337 {
57338 if ((this.ignoreRemoveFailureField == YesNoType.no))
57339 {
57340 writer.WriteAttributeString("IgnoreRemoveFailure", "no");
57341 }
57342 if ((this.ignoreRemoveFailureField == YesNoType.yes))
57343 {
57344 writer.WriteAttributeString("IgnoreRemoveFailure", "yes");
57345 }
57346 }
57347 if (this.removeFeaturesFieldSet)
57348 {
57349 writer.WriteAttributeString("RemoveFeatures", this.removeFeaturesField);
57350 }
57351 if (this.scheduleFieldSet)
57352 {
57353 if ((this.scheduleField == ScheduleType.afterInstallValidate))
57354 {
57355 writer.WriteAttributeString("Schedule", "afterInstallValidate");
57356 }
57357 if ((this.scheduleField == ScheduleType.afterInstallInitialize))
57358 {
57359 writer.WriteAttributeString("Schedule", "afterInstallInitialize");
57360 }
57361 if ((this.scheduleField == ScheduleType.afterInstallExecute))
57362 {
57363 writer.WriteAttributeString("Schedule", "afterInstallExecute");
57364 }
57365 if ((this.scheduleField == ScheduleType.afterInstallExecuteAgain))
57366 {
57367 writer.WriteAttributeString("Schedule", "afterInstallExecuteAgain");
57368 }
57369 if ((this.scheduleField == ScheduleType.afterInstallFinalize))
57370 {
57371 writer.WriteAttributeString("Schedule", "afterInstallFinalize");
57372 }
57373 }
57374 writer.WriteEndElement();
57375 }
57376
57377 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
57378 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
57379 void ISetAttributes.SetAttribute(string name, string value)
57380 {
57381 if (String.IsNullOrEmpty(name))
57382 {
57383 throw new ArgumentNullException("name");
57384 }
57385 if (("AllowDowngrades" == name))
57386 {
57387 this.allowDowngradesField = Enums.ParseYesNoType(value);
57388 this.allowDowngradesFieldSet = true;
57389 }
57390 if (("AllowSameVersionUpgrades" == name))
57391 {
57392 this.allowSameVersionUpgradesField = Enums.ParseYesNoType(value);
57393 this.allowSameVersionUpgradesFieldSet = true;
57394 }
57395 if (("Disallow" == name))
57396 {
57397 this.disallowField = Enums.ParseYesNoType(value);
57398 this.disallowFieldSet = true;
57399 }
57400 if (("DowngradeErrorMessage" == name))
57401 {
57402 this.downgradeErrorMessageField = value;
57403 this.downgradeErrorMessageFieldSet = true;
57404 }
57405 if (("DisallowUpgradeErrorMessage" == name))
57406 {
57407 this.disallowUpgradeErrorMessageField = value;
57408 this.disallowUpgradeErrorMessageFieldSet = true;
57409 }
57410 if (("MigrateFeatures" == name))
57411 {
57412 this.migrateFeaturesField = Enums.ParseYesNoType(value);
57413 this.migrateFeaturesFieldSet = true;
57414 }
57415 if (("IgnoreLanguage" == name))
57416 {
57417 this.ignoreLanguageField = Enums.ParseYesNoType(value);
57418 this.ignoreLanguageFieldSet = true;
57419 }
57420 if (("IgnoreRemoveFailure" == name))
57421 {
57422 this.ignoreRemoveFailureField = Enums.ParseYesNoType(value);
57423 this.ignoreRemoveFailureFieldSet = true;
57424 }
57425 if (("RemoveFeatures" == name))
57426 {
57427 this.removeFeaturesField = value;
57428 this.removeFeaturesFieldSet = true;
57429 }
57430 if (("Schedule" == name))
57431 {
57432 this.scheduleField = MajorUpgrade.ParseScheduleType(value);
57433 this.scheduleFieldSet = true;
57434 }
57435 }
57436
57437 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
57438 public enum ScheduleType
57439 {
57440
57441 IllegalValue = int.MaxValue,
57442
57443 NotSet = -1,
57444
57445 /// <summary>
57446 /// (Default) Schedules RemoveExistingProducts after the InstallValidate standard
57447 /// action. This scheduling removes the installed product entirely before installing
57448 /// the upgrade product. It's slowest but gives the most flexibility in changing
57449 /// components and features in the upgrade product. Note that if the installation
57450 /// of the upgrade product fails, the machine will have neither version installed.
57451 /// </summary>
57452 afterInstallValidate,
57453
57454 /// <summary>
57455 /// Schedules RemoveExistingProducts after the InstallInitialize standard action.
57456 /// This is similar to the afterInstallValidate scheduling, but if the installation
57457 /// of the upgrade product fails, Windows Installer also rolls back the removal of
57458 /// the installed product -- in other words, reinstalls it.
57459 /// </summary>
57460 afterInstallInitialize,
57461
57462 /// <summary>
57463 /// Schedules RemoveExistingProducts between the InstallExecute and InstallFinalize standard actions.
57464 /// This scheduling installs the upgrade product "on top of" the installed product then lets
57465 /// RemoveExistingProducts uninstall any components that don't also exist in the upgrade product.
57466 /// Note that this scheduling requires strict adherence to the component rules because it relies
57467 /// on component reference counts to be accurate during installation of the upgrade product and
57468 /// removal of the installed product. For more information, see
57469 /// </summary>
57470 afterInstallExecute,
57471
57472 /// <summary>
57473 /// Schedules RemoveExistingProducts between the InstallExecuteAgain and InstallFinalize standard actions.
57474 /// This is identical to the afterInstallExecute scheduling but after the InstallExecuteAgain standard
57475 /// action instead of InstallExecute.
57476 /// </summary>
57477 afterInstallExecuteAgain,
57478
57479 /// <summary>
57480 /// Schedules RemoveExistingProducts after the InstallFinalize standard action. This is similar to the
57481 /// afterInstallExecute and afterInstallExecuteAgain schedulings but takes place outside the
57482 /// installation transaction so if installation of the upgrade product fails, Windows Installer does
57483 /// not roll back the removal of the installed product, so the machine will have both versions
57484 /// installed.
57485 /// </summary>
57486 afterInstallFinalize,
57487 }
57488 }
57489
57490 [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")]
57491 public class ProductSearch : ISchemaElement, ISetAttributes
57492 {
57493
57494 private string minimumField;
57495
57496 private bool minimumFieldSet;
57497
57498 private string maximumField;
57499
57500 private bool maximumFieldSet;
57501
57502 private string languageField;
57503
57504 private bool languageFieldSet;
57505
57506 private YesNoType includeMinimumField;
57507
57508 private bool includeMinimumFieldSet;
57509
57510 private YesNoType includeMaximumField;
57511
57512 private bool includeMaximumFieldSet;
57513
57514 private YesNoType excludeLanguagesField;
57515
57516 private bool excludeLanguagesFieldSet;
57517
57518 private string upgradeCodeField;
57519
57520 private bool upgradeCodeFieldSet;
57521
57522 private string contentField;
57523
57524 private bool contentFieldSet;
57525
57526 private ISchemaElement parentElement;
57527
57528 /// <summary>
57529 /// Specifies the lower bound on the range of product versions to be detected by FindRelatedProducts.
57530 /// </summary>
57531 public string Minimum
57532 {
57533 get
57534 {
57535 return this.minimumField;
57536 }
57537 set
57538 {
57539 this.minimumFieldSet = true;
57540 this.minimumField = value;
57541 }
57542 }
57543
57544 /// <summary>
57545 /// Specifies the upper boundary of the range of product versions detected by FindRelatedProducts.
57546 /// </summary>
57547 public string Maximum
57548 {
57549 get
57550 {
57551 return this.maximumField;
57552 }
57553 set
57554 {
57555 this.maximumFieldSet = true;
57556 this.maximumField = value;
57557 }
57558 }
57559
57560 /// <summary>
57561 /// 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.
57562 /// </summary>
57563 public string Language
57564 {
57565 get
57566 {
57567 return this.languageField;
57568 }
57569 set
57570 {
57571 this.languageFieldSet = true;
57572 this.languageField = value;
57573 }
57574 }
57575
57576 /// <summary>
57577 /// Set to "no" to make the range of versions detected exclude the value specified in Minimum. This attribute is "yes" by default.
57578 /// </summary>
57579 public YesNoType IncludeMinimum
57580 {
57581 get
57582 {
57583 return this.includeMinimumField;
57584 }
57585 set
57586 {
57587 this.includeMinimumFieldSet = true;
57588 this.includeMinimumField = value;
57589 }
57590 }
57591
57592 /// <summary>
57593 /// Set to "yes" to make the range of versions detected include the value specified in Maximum.
57594 /// </summary>
57595 public YesNoType IncludeMaximum
57596 {
57597 get
57598 {
57599 return this.includeMaximumField;
57600 }
57601 set
57602 {
57603 this.includeMaximumFieldSet = true;
57604 this.includeMaximumField = value;
57605 }
57606 }
57607
57608 /// <summary>
57609 /// Set to "yes" to detect all languages, excluding the languages listed in the Language attribute.
57610 /// </summary>
57611 public YesNoType ExcludeLanguages
57612 {
57613 get
57614 {
57615 return this.excludeLanguagesField;
57616 }
57617 set
57618 {
57619 this.excludeLanguagesFieldSet = true;
57620 this.excludeLanguagesField = value;
57621 }
57622 }
57623
57624 /// <summary>
57625 /// This value specifies the upgrade code for the products that are to be detected by the FindRelatedProducts action.
57626 /// </summary>
57627 public string UpgradeCode
57628 {
57629 get
57630 {
57631 return this.upgradeCodeField;
57632 }
57633 set
57634 {
57635 this.upgradeCodeFieldSet = true;
57636 this.upgradeCodeField = value;
57637 }
57638 }
57639
57640 public string Content
57641 {
57642 get
57643 {
57644 return this.contentField;
57645 }
57646 set
57647 {
57648 this.contentFieldSet = true;
57649 this.contentField = value;
57650 }
57651 }
57652
57653 public virtual ISchemaElement ParentElement
57654 {
57655 get
57656 {
57657 return this.parentElement;
57658 }
57659 set
57660 {
57661 this.parentElement = value;
57662 }
57663 }
57664
57665 /// <summary>
57666 /// Processes this element and all child elements into an XmlWriter.
57667 /// </summary>
57668 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
57669 public virtual void OutputXml(XmlWriter writer)
57670 {
57671 if ((null == writer))
57672 {
57673 throw new ArgumentNullException("writer");
57674 }
57675 writer.WriteStartElement("ProductSearch", "http://wixtoolset.org/schemas/v4/wxs");
57676 if (this.minimumFieldSet)
57677 {
57678 writer.WriteAttributeString("Minimum", this.minimumField);
57679 }
57680 if (this.maximumFieldSet)
57681 {
57682 writer.WriteAttributeString("Maximum", this.maximumField);
57683 }
57684 if (this.languageFieldSet)
57685 {
57686 writer.WriteAttributeString("Language", this.languageField);
57687 }
57688 if (this.includeMinimumFieldSet)
57689 {
57690 if ((this.includeMinimumField == YesNoType.no))
57691 {
57692 writer.WriteAttributeString("IncludeMinimum", "no");
57693 }
57694 if ((this.includeMinimumField == YesNoType.yes))
57695 {
57696 writer.WriteAttributeString("IncludeMinimum", "yes");
57697 }
57698 }
57699 if (this.includeMaximumFieldSet)
57700 {
57701 if ((this.includeMaximumField == YesNoType.no))
57702 {
57703 writer.WriteAttributeString("IncludeMaximum", "no");
57704 }
57705 if ((this.includeMaximumField == YesNoType.yes))
57706 {
57707 writer.WriteAttributeString("IncludeMaximum", "yes");
57708 }
57709 }
57710 if (this.excludeLanguagesFieldSet)
57711 {
57712 if ((this.excludeLanguagesField == YesNoType.no))
57713 {
57714 writer.WriteAttributeString("ExcludeLanguages", "no");
57715 }
57716 if ((this.excludeLanguagesField == YesNoType.yes))
57717 {
57718 writer.WriteAttributeString("ExcludeLanguages", "yes");
57719 }
57720 }
57721 if (this.upgradeCodeFieldSet)
57722 {
57723 writer.WriteAttributeString("UpgradeCode", this.upgradeCodeField);
57724 }
57725 if (this.contentFieldSet)
57726 {
57727 writer.WriteString(this.contentField);
57728 }
57729 writer.WriteEndElement();
57730 }
57731
57732 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
57733 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
57734 void ISetAttributes.SetAttribute(string name, string value)
57735 {
57736 if (String.IsNullOrEmpty(name))
57737 {
57738 throw new ArgumentNullException("name");
57739 }
57740 if (("Minimum" == name))
57741 {
57742 this.minimumField = value;
57743 this.minimumFieldSet = true;
57744 }
57745 if (("Maximum" == name))
57746 {
57747 this.maximumField = value;
57748 this.maximumFieldSet = true;
57749 }
57750 if (("Language" == name))
57751 {
57752 this.languageField = value;
57753 this.languageFieldSet = true;
57754 }
57755 if (("IncludeMinimum" == name))
57756 {
57757 this.includeMinimumField = Enums.ParseYesNoType(value);
57758 this.includeMinimumFieldSet = true;
57759 }
57760 if (("IncludeMaximum" == name))
57761 {
57762 this.includeMaximumField = Enums.ParseYesNoType(value);
57763 this.includeMaximumFieldSet = true;
57764 }
57765 if (("ExcludeLanguages" == name))
57766 {
57767 this.excludeLanguagesField = Enums.ParseYesNoType(value);
57768 this.excludeLanguagesFieldSet = true;
57769 }
57770 if (("UpgradeCode" == name))
57771 {
57772 this.upgradeCodeField = value;
57773 this.upgradeCodeFieldSet = true;
57774 }
57775 if (("Content" == name))
57776 {
57777 this.contentField = value;
57778 this.contentFieldSet = true;
57779 }
57780 }
57781 }
57782}