aboutsummaryrefslogtreecommitdiff
path: root/src/wixext/util.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/wixext/util.cs')
-rw-r--r--src/wixext/util.cs11461
1 files changed, 11461 insertions, 0 deletions
diff --git a/src/wixext/util.cs b/src/wixext/util.cs
new file mode 100644
index 00000000..9ebe89a7
--- /dev/null
+++ b/src/wixext/util.cs
@@ -0,0 +1,11461 @@
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.Util.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 using WixToolset.Data.Serialize;
20
21
22 /// <summary>
23 /// Values of this type will either be "yes" or "no".
24 /// </summary>
25 [GeneratedCode("XsdGen", "4.0.0.0")]
26 public enum YesNoType
27 {
28
29 IllegalValue = int.MaxValue,
30
31 NotSet = -1,
32
33 no,
34
35 yes,
36 }
37
38 [GeneratedCode("XsdGen", "4.0.0.0")]
39 public class Enums
40 {
41
42 /// <summary>
43 /// Parses a YesNoType from a string.
44 /// </summary>
45 public static YesNoType ParseYesNoType(string value)
46 {
47 YesNoType parsedValue;
48 Enums.TryParseYesNoType(value, out parsedValue);
49 return parsedValue;
50 }
51
52 /// <summary>
53 /// Tries to parse a YesNoType from a string.
54 /// </summary>
55 public static bool TryParseYesNoType(string value, out YesNoType parsedValue)
56 {
57 parsedValue = YesNoType.NotSet;
58 if (string.IsNullOrEmpty(value))
59 {
60 return false;
61 }
62 if (("no" == value))
63 {
64 parsedValue = YesNoType.no;
65 }
66 else
67 {
68 if (("yes" == value))
69 {
70 parsedValue = YesNoType.yes;
71 }
72 else
73 {
74 parsedValue = YesNoType.IllegalValue;
75 return false;
76 }
77 }
78 return true;
79 }
80
81 /// <summary>
82 /// Parses a PerformanceCounterLanguageType from a string.
83 /// </summary>
84 public static PerformanceCounterLanguageType ParsePerformanceCounterLanguageType(string value)
85 {
86 PerformanceCounterLanguageType parsedValue;
87 Enums.TryParsePerformanceCounterLanguageType(value, out parsedValue);
88 return parsedValue;
89 }
90
91 /// <summary>
92 /// Tries to parse a PerformanceCounterLanguageType from a string.
93 /// </summary>
94 public static bool TryParsePerformanceCounterLanguageType(string value, out PerformanceCounterLanguageType parsedValue)
95 {
96 parsedValue = PerformanceCounterLanguageType.NotSet;
97 if (string.IsNullOrEmpty(value))
98 {
99 return false;
100 }
101 if (("afrikaans" == value))
102 {
103 parsedValue = PerformanceCounterLanguageType.afrikaans;
104 }
105 else
106 {
107 if (("albanian" == value))
108 {
109 parsedValue = PerformanceCounterLanguageType.albanian;
110 }
111 else
112 {
113 if (("arabic" == value))
114 {
115 parsedValue = PerformanceCounterLanguageType.arabic;
116 }
117 else
118 {
119 if (("armenian" == value))
120 {
121 parsedValue = PerformanceCounterLanguageType.armenian;
122 }
123 else
124 {
125 if (("assamese" == value))
126 {
127 parsedValue = PerformanceCounterLanguageType.assamese;
128 }
129 else
130 {
131 if (("azeri" == value))
132 {
133 parsedValue = PerformanceCounterLanguageType.azeri;
134 }
135 else
136 {
137 if (("basque" == value))
138 {
139 parsedValue = PerformanceCounterLanguageType.basque;
140 }
141 else
142 {
143 if (("belarusian" == value))
144 {
145 parsedValue = PerformanceCounterLanguageType.belarusian;
146 }
147 else
148 {
149 if (("bengali" == value))
150 {
151 parsedValue = PerformanceCounterLanguageType.bengali;
152 }
153 else
154 {
155 if (("bulgarian" == value))
156 {
157 parsedValue = PerformanceCounterLanguageType.bulgarian;
158 }
159 else
160 {
161 if (("catalan" == value))
162 {
163 parsedValue = PerformanceCounterLanguageType.catalan;
164 }
165 else
166 {
167 if (("chinese" == value))
168 {
169 parsedValue = PerformanceCounterLanguageType.chinese;
170 }
171 else
172 {
173 if (("croatian" == value))
174 {
175 parsedValue = PerformanceCounterLanguageType.croatian;
176 }
177 else
178 {
179 if (("czech" == value))
180 {
181 parsedValue = PerformanceCounterLanguageType.czech;
182 }
183 else
184 {
185 if (("danish" == value))
186 {
187 parsedValue = PerformanceCounterLanguageType.danish;
188 }
189 else
190 {
191 if (("divehi" == value))
192 {
193 parsedValue = PerformanceCounterLanguageType.divehi;
194 }
195 else
196 {
197 if (("dutch" == value))
198 {
199 parsedValue = PerformanceCounterLanguageType.dutch;
200 }
201 else
202 {
203 if (("english" == value))
204 {
205 parsedValue = PerformanceCounterLanguageType.english;
206 }
207 else
208 {
209 if (("estonian" == value))
210 {
211 parsedValue = PerformanceCounterLanguageType.estonian;
212 }
213 else
214 {
215 if (("faeroese" == value))
216 {
217 parsedValue = PerformanceCounterLanguageType.faeroese;
218 }
219 else
220 {
221 if (("farsi" == value))
222 {
223 parsedValue = PerformanceCounterLanguageType.farsi;
224 }
225 else
226 {
227 if (("finnish" == value))
228 {
229 parsedValue = PerformanceCounterLanguageType.finnish;
230 }
231 else
232 {
233 if (("french" == value))
234 {
235 parsedValue = PerformanceCounterLanguageType.french;
236 }
237 else
238 {
239 if (("galician" == value))
240 {
241 parsedValue = PerformanceCounterLanguageType.galician;
242 }
243 else
244 {
245 if (("georgian" == value))
246 {
247 parsedValue = PerformanceCounterLanguageType.georgian;
248 }
249 else
250 {
251 if (("german" == value))
252 {
253 parsedValue = PerformanceCounterLanguageType.german;
254 }
255 else
256 {
257 if (("greek" == value))
258 {
259 parsedValue = PerformanceCounterLanguageType.greek;
260 }
261 else
262 {
263 if (("gujarati" == value))
264 {
265 parsedValue = PerformanceCounterLanguageType.gujarati;
266 }
267 else
268 {
269 if (("hebrew" == value))
270 {
271 parsedValue = PerformanceCounterLanguageType.hebrew;
272 }
273 else
274 {
275 if (("hindi" == value))
276 {
277 parsedValue = PerformanceCounterLanguageType.hindi;
278 }
279 else
280 {
281 if (("hungarian" == value))
282 {
283 parsedValue = PerformanceCounterLanguageType.hungarian;
284 }
285 else
286 {
287 if (("icelandic" == value))
288 {
289 parsedValue = PerformanceCounterLanguageType.icelandic;
290 }
291 else
292 {
293 if (("indonesian" == value))
294 {
295 parsedValue = PerformanceCounterLanguageType.indonesian;
296 }
297 else
298 {
299 if (("italian" == value))
300 {
301 parsedValue = PerformanceCounterLanguageType.italian;
302 }
303 else
304 {
305 if (("japanese" == value))
306 {
307 parsedValue = PerformanceCounterLanguageType.japanese;
308 }
309 else
310 {
311 if (("kannada" == value))
312 {
313 parsedValue = PerformanceCounterLanguageType.kannada;
314 }
315 else
316 {
317 if (("kashmiri" == value))
318 {
319 parsedValue = PerformanceCounterLanguageType.kashmiri;
320 }
321 else
322 {
323 if (("kazak" == value))
324 {
325 parsedValue = PerformanceCounterLanguageType.kazak;
326 }
327 else
328 {
329 if (("konkani" == value))
330 {
331 parsedValue = PerformanceCounterLanguageType.konkani;
332 }
333 else
334 {
335 if (("korean" == value))
336 {
337 parsedValue = PerformanceCounterLanguageType.korean;
338 }
339 else
340 {
341 if (("kyrgyz" == value))
342 {
343 parsedValue = PerformanceCounterLanguageType.kyrgyz;
344 }
345 else
346 {
347 if (("latvian" == value))
348 {
349 parsedValue = PerformanceCounterLanguageType.latvian;
350 }
351 else
352 {
353 if (("lithuanian" == value))
354 {
355 parsedValue = PerformanceCounterLanguageType.lithuanian;
356 }
357 else
358 {
359 if (("macedonian" == value))
360 {
361 parsedValue = PerformanceCounterLanguageType.macedonian;
362 }
363 else
364 {
365 if (("malay" == value))
366 {
367 parsedValue = PerformanceCounterLanguageType.malay;
368 }
369 else
370 {
371 if (("malayalam" == value))
372 {
373 parsedValue = PerformanceCounterLanguageType.malayalam;
374 }
375 else
376 {
377 if (("manipuri" == value))
378 {
379 parsedValue = PerformanceCounterLanguageType.manipuri;
380 }
381 else
382 {
383 if (("marathi" == value))
384 {
385 parsedValue = PerformanceCounterLanguageType.marathi;
386 }
387 else
388 {
389 if (("mongolian" == value))
390 {
391 parsedValue = PerformanceCounterLanguageType.mongolian;
392 }
393 else
394 {
395 if (("nepali" == value))
396 {
397 parsedValue = PerformanceCounterLanguageType.nepali;
398 }
399 else
400 {
401 if (("norwegian" == value))
402 {
403 parsedValue = PerformanceCounterLanguageType.norwegian;
404 }
405 else
406 {
407 if (("oriya" == value))
408 {
409 parsedValue = PerformanceCounterLanguageType.oriya;
410 }
411 else
412 {
413 if (("polish" == value))
414 {
415 parsedValue = PerformanceCounterLanguageType.polish;
416 }
417 else
418 {
419 if (("portuguese" == value))
420 {
421 parsedValue = PerformanceCounterLanguageType.portuguese;
422 }
423 else
424 {
425 if (("punjabi" == value))
426 {
427 parsedValue = PerformanceCounterLanguageType.punjabi;
428 }
429 else
430 {
431 if (("romanian" == value))
432 {
433 parsedValue = PerformanceCounterLanguageType.romanian;
434 }
435 else
436 {
437 if (("russian" == value))
438 {
439 parsedValue = PerformanceCounterLanguageType.russian;
440 }
441 else
442 {
443 if (("sanskrit" == value))
444 {
445 parsedValue = PerformanceCounterLanguageType.sanskrit;
446 }
447 else
448 {
449 if (("serbian" == value))
450 {
451 parsedValue = PerformanceCounterLanguageType.serbian;
452 }
453 else
454 {
455 if (("sindhi" == value))
456 {
457 parsedValue = PerformanceCounterLanguageType.sindhi;
458 }
459 else
460 {
461 if (("slovak" == value))
462 {
463 parsedValue = PerformanceCounterLanguageType.slovak;
464 }
465 else
466 {
467 if (("slovenian" == value))
468 {
469 parsedValue = PerformanceCounterLanguageType.slovenian;
470 }
471 else
472 {
473 if (("spanish" == value))
474 {
475 parsedValue = PerformanceCounterLanguageType.spanish;
476 }
477 else
478 {
479 if (("swahili" == value))
480 {
481 parsedValue = PerformanceCounterLanguageType.swahili;
482 }
483 else
484 {
485 if (("swedish" == value))
486 {
487 parsedValue = PerformanceCounterLanguageType.swedish;
488 }
489 else
490 {
491 if (("syriac" == value))
492 {
493 parsedValue = PerformanceCounterLanguageType.syriac;
494 }
495 else
496 {
497 if (("tamil" == value))
498 {
499 parsedValue = PerformanceCounterLanguageType.tamil;
500 }
501 else
502 {
503 if (("tatar" == value))
504 {
505 parsedValue = PerformanceCounterLanguageType.tatar;
506 }
507 else
508 {
509 if (("telugu" == value))
510 {
511 parsedValue = PerformanceCounterLanguageType.telugu;
512 }
513 else
514 {
515 if (("thai" == value))
516 {
517 parsedValue = PerformanceCounterLanguageType.thai;
518 }
519 else
520 {
521 if (("turkish" == value))
522 {
523 parsedValue = PerformanceCounterLanguageType.turkish;
524 }
525 else
526 {
527 if (("ukrainian" == value))
528 {
529 parsedValue = PerformanceCounterLanguageType.ukrainian;
530 }
531 else
532 {
533 if (("urdu" == value))
534 {
535 parsedValue = PerformanceCounterLanguageType.urdu;
536 }
537 else
538 {
539 if (("uzbek" == value))
540 {
541 parsedValue = PerformanceCounterLanguageType.uzbek;
542 }
543 else
544 {
545 if (("vietnamese" == value))
546 {
547 parsedValue = PerformanceCounterLanguageType.vietnamese;
548 }
549 else
550 {
551 parsedValue = PerformanceCounterLanguageType.IllegalValue;
552 return false;
553 }
554 }
555 }
556 }
557 }
558 }
559 }
560 }
561 }
562 }
563 }
564 }
565 }
566 }
567 }
568 }
569 }
570 }
571 }
572 }
573 }
574 }
575 }
576 }
577 }
578 }
579 }
580 }
581 }
582 }
583 }
584 }
585 }
586 }
587 }
588 }
589 }
590 }
591 }
592 }
593 }
594 }
595 }
596 }
597 }
598 }
599 }
600 }
601 }
602 }
603 }
604 }
605 }
606 }
607 }
608 }
609 }
610 }
611 }
612 }
613 }
614 }
615 }
616 }
617 }
618 }
619 }
620 }
621 }
622 }
623 }
624 }
625 }
626 }
627 }
628 return true;
629 }
630
631 /// <summary>
632 /// Parses a PerformanceCounterTypesType from a string.
633 /// </summary>
634 public static PerformanceCounterTypesType ParsePerformanceCounterTypesType(string value)
635 {
636 PerformanceCounterTypesType parsedValue;
637 Enums.TryParsePerformanceCounterTypesType(value, out parsedValue);
638 return parsedValue;
639 }
640
641 /// <summary>
642 /// Tries to parse a PerformanceCounterTypesType from a string.
643 /// </summary>
644 public static bool TryParsePerformanceCounterTypesType(string value, out PerformanceCounterTypesType parsedValue)
645 {
646 parsedValue = PerformanceCounterTypesType.NotSet;
647 if (string.IsNullOrEmpty(value))
648 {
649 return false;
650 }
651 if (("averageBase" == value))
652 {
653 parsedValue = PerformanceCounterTypesType.averageBase;
654 }
655 else
656 {
657 if (("averageCount64" == value))
658 {
659 parsedValue = PerformanceCounterTypesType.averageCount64;
660 }
661 else
662 {
663 if (("averageTimer32" == value))
664 {
665 parsedValue = PerformanceCounterTypesType.averageTimer32;
666 }
667 else
668 {
669 if (("counterDelta32" == value))
670 {
671 parsedValue = PerformanceCounterTypesType.counterDelta32;
672 }
673 else
674 {
675 if (("counterTimerInverse" == value))
676 {
677 parsedValue = PerformanceCounterTypesType.counterTimerInverse;
678 }
679 else
680 {
681 if (("sampleFraction" == value))
682 {
683 parsedValue = PerformanceCounterTypesType.sampleFraction;
684 }
685 else
686 {
687 if (("timer100Ns" == value))
688 {
689 parsedValue = PerformanceCounterTypesType.timer100Ns;
690 }
691 else
692 {
693 if (("counterTimer" == value))
694 {
695 parsedValue = PerformanceCounterTypesType.counterTimer;
696 }
697 else
698 {
699 if (("rawFraction" == value))
700 {
701 parsedValue = PerformanceCounterTypesType.rawFraction;
702 }
703 else
704 {
705 if (("timer100NsInverse" == value))
706 {
707 parsedValue = PerformanceCounterTypesType.timer100NsInverse;
708 }
709 else
710 {
711 if (("counterMultiTimer" == value))
712 {
713 parsedValue = PerformanceCounterTypesType.counterMultiTimer;
714 }
715 else
716 {
717 if (("counterMultiTimer100Ns" == value))
718 {
719 parsedValue = PerformanceCounterTypesType.counterMultiTimer100Ns;
720 }
721 else
722 {
723 if (("counterMultiTimerInverse" == value))
724 {
725 parsedValue = PerformanceCounterTypesType.counterMultiTimerInverse;
726 }
727 else
728 {
729 if (("counterMultiTimer100NsInverse" == value))
730 {
731 parsedValue = PerformanceCounterTypesType.counterMultiTimer100NsInverse;
732 }
733 else
734 {
735 if (("elapsedTime" == value))
736 {
737 parsedValue = PerformanceCounterTypesType.elapsedTime;
738 }
739 else
740 {
741 if (("sampleBase" == value))
742 {
743 parsedValue = PerformanceCounterTypesType.sampleBase;
744 }
745 else
746 {
747 if (("rawBase" == value))
748 {
749 parsedValue = PerformanceCounterTypesType.rawBase;
750 }
751 else
752 {
753 if (("counterMultiBase" == value))
754 {
755 parsedValue = PerformanceCounterTypesType.counterMultiBase;
756 }
757 else
758 {
759 if (("rateOfCountsPerSecond64" == value))
760 {
761 parsedValue = PerformanceCounterTypesType.rateOfCountsPerSecond64;
762 }
763 else
764 {
765 if (("rateOfCountsPerSecond32" == value))
766 {
767 parsedValue = PerformanceCounterTypesType.rateOfCountsPerSecond32;
768 }
769 else
770 {
771 if (("countPerTimeInterval64" == value))
772 {
773 parsedValue = PerformanceCounterTypesType.countPerTimeInterval64;
774 }
775 else
776 {
777 if (("countPerTimeInterval32" == value))
778 {
779 parsedValue = PerformanceCounterTypesType.countPerTimeInterval32;
780 }
781 else
782 {
783 if (("sampleCounter" == value))
784 {
785 parsedValue = PerformanceCounterTypesType.sampleCounter;
786 }
787 else
788 {
789 if (("counterDelta64" == value))
790 {
791 parsedValue = PerformanceCounterTypesType.counterDelta64;
792 }
793 else
794 {
795 if (("numberOfItems64" == value))
796 {
797 parsedValue = PerformanceCounterTypesType.numberOfItems64;
798 }
799 else
800 {
801 if (("numberOfItems32" == value))
802 {
803 parsedValue = PerformanceCounterTypesType.numberOfItems32;
804 }
805 else
806 {
807 if (("numberOfItemsHEX64" == value))
808 {
809 parsedValue = PerformanceCounterTypesType.numberOfItemsHEX64;
810 }
811 else
812 {
813 if (("numberOfItemsHEX32" == value))
814 {
815 parsedValue = PerformanceCounterTypesType.numberOfItemsHEX32;
816 }
817 else
818 {
819 parsedValue = PerformanceCounterTypesType.IllegalValue;
820 return false;
821 }
822 }
823 }
824 }
825 }
826 }
827 }
828 }
829 }
830 }
831 }
832 }
833 }
834 }
835 }
836 }
837 }
838 }
839 }
840 }
841 }
842 }
843 }
844 }
845 }
846 }
847 }
848 }
849 return true;
850 }
851 }
852
853 /// <summary>
854 /// Enumeration of valid languages for performance counters.
855 /// </summary>
856 [GeneratedCode("XsdGen", "4.0.0.0")]
857 public enum PerformanceCounterLanguageType
858 {
859
860 IllegalValue = int.MaxValue,
861
862 NotSet = -1,
863
864 afrikaans,
865
866 albanian,
867
868 arabic,
869
870 armenian,
871
872 assamese,
873
874 azeri,
875
876 basque,
877
878 belarusian,
879
880 bengali,
881
882 bulgarian,
883
884 catalan,
885
886 chinese,
887
888 croatian,
889
890 czech,
891
892 danish,
893
894 divehi,
895
896 dutch,
897
898 english,
899
900 estonian,
901
902 faeroese,
903
904 farsi,
905
906 finnish,
907
908 french,
909
910 galician,
911
912 georgian,
913
914 german,
915
916 greek,
917
918 gujarati,
919
920 hebrew,
921
922 hindi,
923
924 hungarian,
925
926 icelandic,
927
928 indonesian,
929
930 italian,
931
932 japanese,
933
934 kannada,
935
936 kashmiri,
937
938 kazak,
939
940 konkani,
941
942 korean,
943
944 kyrgyz,
945
946 latvian,
947
948 lithuanian,
949
950 macedonian,
951
952 malay,
953
954 malayalam,
955
956 manipuri,
957
958 marathi,
959
960 mongolian,
961
962 nepali,
963
964 norwegian,
965
966 oriya,
967
968 polish,
969
970 portuguese,
971
972 punjabi,
973
974 romanian,
975
976 russian,
977
978 sanskrit,
979
980 serbian,
981
982 sindhi,
983
984 slovak,
985
986 slovenian,
987
988 spanish,
989
990 swahili,
991
992 swedish,
993
994 syriac,
995
996 tamil,
997
998 tatar,
999
1000 telugu,
1001
1002 thai,
1003
1004 turkish,
1005
1006 ukrainian,
1007
1008 urdu,
1009
1010 uzbek,
1011
1012 vietnamese,
1013 }
1014
1015 /// <summary>
1016 /// Enumeration of valid types for performance counters.
1017 /// </summary>
1018 [GeneratedCode("XsdGen", "4.0.0.0")]
1019 public enum PerformanceCounterTypesType
1020 {
1021
1022 IllegalValue = int.MaxValue,
1023
1024 NotSet = -1,
1025
1026 averageBase,
1027
1028 averageCount64,
1029
1030 averageTimer32,
1031
1032 counterDelta32,
1033
1034 counterTimerInverse,
1035
1036 sampleFraction,
1037
1038 timer100Ns,
1039
1040 counterTimer,
1041
1042 rawFraction,
1043
1044 timer100NsInverse,
1045
1046 counterMultiTimer,
1047
1048 counterMultiTimer100Ns,
1049
1050 counterMultiTimerInverse,
1051
1052 counterMultiTimer100NsInverse,
1053
1054 elapsedTime,
1055
1056 sampleBase,
1057
1058 rawBase,
1059
1060 counterMultiBase,
1061
1062 rateOfCountsPerSecond64,
1063
1064 rateOfCountsPerSecond32,
1065
1066 countPerTimeInterval64,
1067
1068 countPerTimeInterval32,
1069
1070 sampleCounter,
1071
1072 counterDelta64,
1073
1074 numberOfItems64,
1075
1076 numberOfItems32,
1077
1078 numberOfItemsHEX64,
1079
1080 numberOfItemsHEX32,
1081 }
1082
1083 /// <summary>
1084 /// Closes applications or schedules a reboot if application cannot be closed.
1085 /// </summary>
1086 [GeneratedCode("XsdGen", "4.0.0.0")]
1087 public class CloseApplication : ISchemaElement, ISetAttributes
1088 {
1089
1090 private string idField;
1091
1092 private bool idFieldSet;
1093
1094 private string targetField;
1095
1096 private bool targetFieldSet;
1097
1098 private string descriptionField;
1099
1100 private bool descriptionFieldSet;
1101
1102 private int sequenceField;
1103
1104 private bool sequenceFieldSet;
1105
1106 private YesNoType closeMessageField;
1107
1108 private bool closeMessageFieldSet;
1109
1110 private YesNoType endSessionMessageField;
1111
1112 private bool endSessionMessageFieldSet;
1113
1114 private YesNoType elevatedCloseMessageField;
1115
1116 private bool elevatedCloseMessageFieldSet;
1117
1118 private YesNoType elevatedEndSessionMessageField;
1119
1120 private bool elevatedEndSessionMessageFieldSet;
1121
1122 private YesNoType rebootPromptField;
1123
1124 private bool rebootPromptFieldSet;
1125
1126 private YesNoType promptToContinueField;
1127
1128 private bool promptToContinueFieldSet;
1129
1130 private string propertyField;
1131
1132 private bool propertyFieldSet;
1133
1134 private int terminateProcessField;
1135
1136 private bool terminateProcessFieldSet;
1137
1138 private int timeoutField;
1139
1140 private bool timeoutFieldSet;
1141
1142 private string contentField;
1143
1144 private bool contentFieldSet;
1145
1146 private ISchemaElement parentElement;
1147
1148 /// <summary>
1149 /// Identifier for the close application (primary key). If the Id is not specified, one will be generated.
1150 /// </summary>
1151 public string Id
1152 {
1153 get
1154 {
1155 return this.idField;
1156 }
1157 set
1158 {
1159 this.idFieldSet = true;
1160 this.idField = value;
1161 }
1162 }
1163
1164 /// <summary>
1165 /// Name of the exectuable to be closed. This should only be the file name.
1166 /// </summary>
1167 public string Target
1168 {
1169 get
1170 {
1171 return this.targetField;
1172 }
1173 set
1174 {
1175 this.targetFieldSet = true;
1176 this.targetField = value;
1177 }
1178 }
1179
1180 /// <summary>
1181 /// Description to show if application is running and needs to be closed.
1182 /// </summary>
1183 public string Description
1184 {
1185 get
1186 {
1187 return this.descriptionField;
1188 }
1189 set
1190 {
1191 this.descriptionFieldSet = true;
1192 this.descriptionField = value;
1193 }
1194 }
1195
1196 /// <summary>
1197 /// Optionally orders the applications to be closed.
1198 /// </summary>
1199 public int Sequence
1200 {
1201 get
1202 {
1203 return this.sequenceField;
1204 }
1205 set
1206 {
1207 this.sequenceFieldSet = true;
1208 this.sequenceField = value;
1209 }
1210 }
1211
1212 /// <summary>
1213 /// Optionally sends a close message to the application. Default is no.
1214 /// </summary>
1215 public YesNoType CloseMessage
1216 {
1217 get
1218 {
1219 return this.closeMessageField;
1220 }
1221 set
1222 {
1223 this.closeMessageFieldSet = true;
1224 this.closeMessageField = value;
1225 }
1226 }
1227
1228 /// <summary>
1229 /// Sends WM_QUERYENDSESSION then WM_ENDSESSION messages to the application. Default is "no".
1230 /// </summary>
1231 public YesNoType EndSessionMessage
1232 {
1233 get
1234 {
1235 return this.endSessionMessageField;
1236 }
1237 set
1238 {
1239 this.endSessionMessageFieldSet = true;
1240 this.endSessionMessageField = value;
1241 }
1242 }
1243
1244 /// <summary>
1245 /// Optionally sends a close message to the application from deffered action without impersonation. Default is no.
1246 /// </summary>
1247 public YesNoType ElevatedCloseMessage
1248 {
1249 get
1250 {
1251 return this.elevatedCloseMessageField;
1252 }
1253 set
1254 {
1255 this.elevatedCloseMessageFieldSet = true;
1256 this.elevatedCloseMessageField = value;
1257 }
1258 }
1259
1260 /// <summary>
1261 /// Sends WM_QUERYENDSESSION then WM_ENDSESSION messages to the application from a deffered action without impersonation. Default is "no".
1262 /// </summary>
1263 public YesNoType ElevatedEndSessionMessage
1264 {
1265 get
1266 {
1267 return this.elevatedEndSessionMessageField;
1268 }
1269 set
1270 {
1271 this.elevatedEndSessionMessageFieldSet = true;
1272 this.elevatedEndSessionMessageField = value;
1273 }
1274 }
1275
1276 /// <summary>
1277 /// Optionally prompts for reboot if application is still running. The default is "yes". The TerminateProcess attribute must be "no" or not specified if this attribute is "yes".
1278 /// </summary>
1279 public YesNoType RebootPrompt
1280 {
1281 get
1282 {
1283 return this.rebootPromptField;
1284 }
1285 set
1286 {
1287 this.rebootPromptFieldSet = true;
1288 this.rebootPromptField = value;
1289 }
1290 }
1291
1292 /// <summary>
1293 /// When this attribute is set to "yes", the user will be prompted when the application is still running. The Description attribute must contain the message to
1294 /// display in the prompt. The prompt occurs before executing any of the other options and gives the options to "Abort", "Retry", or "Ignore". Abort will cancel
1295 /// the install. Retry will attempt the check again and if the application is still running, prompt again. "Ignore" will continue and execute any other options
1296 /// set on the CloseApplication element. The default is "no".
1297 /// </summary>
1298 public YesNoType PromptToContinue
1299 {
1300 get
1301 {
1302 return this.promptToContinueField;
1303 }
1304 set
1305 {
1306 this.promptToContinueFieldSet = true;
1307 this.promptToContinueField = value;
1308 }
1309 }
1310
1311 /// <summary>
1312 /// Property to be set if application is still running. Useful for launch conditions or to conditionalize custom UI to ask user to shut down apps.
1313 /// </summary>
1314 public string Property
1315 {
1316 get
1317 {
1318 return this.propertyField;
1319 }
1320 set
1321 {
1322 this.propertyFieldSet = true;
1323 this.propertyField = value;
1324 }
1325 }
1326
1327 /// <summary>
1328 /// Attempts to terminates process and return the specified exit code if application is still running after sending any requested close and/or end session messages.
1329 /// If this attribute is specified, the RebootPrompt attribute must be "no". The default is "no".
1330 /// </summary>
1331 public int TerminateProcess
1332 {
1333 get
1334 {
1335 return this.terminateProcessField;
1336 }
1337 set
1338 {
1339 this.terminateProcessFieldSet = true;
1340 this.terminateProcessField = value;
1341 }
1342 }
1343
1344 /// <summary>
1345 /// Optional time in seconds to wait for the application to exit after the close and/or end session messages. If the application is still running after the timeout then
1346 /// the RebootPrompt or TerminateProcess attributes will be considered. The default value is "5" seconds.
1347 /// </summary>
1348 public int Timeout
1349 {
1350 get
1351 {
1352 return this.timeoutField;
1353 }
1354 set
1355 {
1356 this.timeoutFieldSet = true;
1357 this.timeoutField = value;
1358 }
1359 }
1360
1361 /// <summary>
1362 /// Condition that determines if the application should be closed. Must be blank or evaluate to true
1363 /// for the application to be scheduled for closing.
1364 /// </summary>
1365 public string Content
1366 {
1367 get
1368 {
1369 return this.contentField;
1370 }
1371 set
1372 {
1373 this.contentFieldSet = true;
1374 this.contentField = value;
1375 }
1376 }
1377
1378 public virtual ISchemaElement ParentElement
1379 {
1380 get
1381 {
1382 return this.parentElement;
1383 }
1384 set
1385 {
1386 this.parentElement = value;
1387 }
1388 }
1389
1390 /// <summary>
1391 /// Processes this element and all child elements into an XmlWriter.
1392 /// </summary>
1393 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
1394 public virtual void OutputXml(XmlWriter writer)
1395 {
1396 if ((null == writer))
1397 {
1398 throw new ArgumentNullException("writer");
1399 }
1400 writer.WriteStartElement("CloseApplication", "http://wixtoolset.org/schemas/v4/wxs/util");
1401 if (this.idFieldSet)
1402 {
1403 writer.WriteAttributeString("Id", this.idField);
1404 }
1405 if (this.targetFieldSet)
1406 {
1407 writer.WriteAttributeString("Target", this.targetField);
1408 }
1409 if (this.descriptionFieldSet)
1410 {
1411 writer.WriteAttributeString("Description", this.descriptionField);
1412 }
1413 if (this.sequenceFieldSet)
1414 {
1415 writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture));
1416 }
1417 if (this.closeMessageFieldSet)
1418 {
1419 if ((this.closeMessageField == YesNoType.no))
1420 {
1421 writer.WriteAttributeString("CloseMessage", "no");
1422 }
1423 if ((this.closeMessageField == YesNoType.yes))
1424 {
1425 writer.WriteAttributeString("CloseMessage", "yes");
1426 }
1427 }
1428 if (this.endSessionMessageFieldSet)
1429 {
1430 if ((this.endSessionMessageField == YesNoType.no))
1431 {
1432 writer.WriteAttributeString("EndSessionMessage", "no");
1433 }
1434 if ((this.endSessionMessageField == YesNoType.yes))
1435 {
1436 writer.WriteAttributeString("EndSessionMessage", "yes");
1437 }
1438 }
1439 if (this.elevatedCloseMessageFieldSet)
1440 {
1441 if ((this.elevatedCloseMessageField == YesNoType.no))
1442 {
1443 writer.WriteAttributeString("ElevatedCloseMessage", "no");
1444 }
1445 if ((this.elevatedCloseMessageField == YesNoType.yes))
1446 {
1447 writer.WriteAttributeString("ElevatedCloseMessage", "yes");
1448 }
1449 }
1450 if (this.elevatedEndSessionMessageFieldSet)
1451 {
1452 if ((this.elevatedEndSessionMessageField == YesNoType.no))
1453 {
1454 writer.WriteAttributeString("ElevatedEndSessionMessage", "no");
1455 }
1456 if ((this.elevatedEndSessionMessageField == YesNoType.yes))
1457 {
1458 writer.WriteAttributeString("ElevatedEndSessionMessage", "yes");
1459 }
1460 }
1461 if (this.rebootPromptFieldSet)
1462 {
1463 if ((this.rebootPromptField == YesNoType.no))
1464 {
1465 writer.WriteAttributeString("RebootPrompt", "no");
1466 }
1467 if ((this.rebootPromptField == YesNoType.yes))
1468 {
1469 writer.WriteAttributeString("RebootPrompt", "yes");
1470 }
1471 }
1472 if (this.promptToContinueFieldSet)
1473 {
1474 if ((this.promptToContinueField == YesNoType.no))
1475 {
1476 writer.WriteAttributeString("PromptToContinue", "no");
1477 }
1478 if ((this.promptToContinueField == YesNoType.yes))
1479 {
1480 writer.WriteAttributeString("PromptToContinue", "yes");
1481 }
1482 }
1483 if (this.propertyFieldSet)
1484 {
1485 writer.WriteAttributeString("Property", this.propertyField);
1486 }
1487 if (this.terminateProcessFieldSet)
1488 {
1489 writer.WriteAttributeString("TerminateProcess", this.terminateProcessField.ToString(CultureInfo.InvariantCulture));
1490 }
1491 if (this.timeoutFieldSet)
1492 {
1493 writer.WriteAttributeString("Timeout", this.timeoutField.ToString(CultureInfo.InvariantCulture));
1494 }
1495 if (this.contentFieldSet)
1496 {
1497 writer.WriteString(this.contentField);
1498 }
1499 writer.WriteEndElement();
1500 }
1501
1502 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
1503 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
1504 void ISetAttributes.SetAttribute(string name, string value)
1505 {
1506 if (String.IsNullOrEmpty(name))
1507 {
1508 throw new ArgumentNullException("name");
1509 }
1510 if (("Id" == name))
1511 {
1512 this.idField = value;
1513 this.idFieldSet = true;
1514 }
1515 if (("Target" == name))
1516 {
1517 this.targetField = value;
1518 this.targetFieldSet = true;
1519 }
1520 if (("Description" == name))
1521 {
1522 this.descriptionField = value;
1523 this.descriptionFieldSet = true;
1524 }
1525 if (("Sequence" == name))
1526 {
1527 this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
1528 this.sequenceFieldSet = true;
1529 }
1530 if (("CloseMessage" == name))
1531 {
1532 this.closeMessageField = Enums.ParseYesNoType(value);
1533 this.closeMessageFieldSet = true;
1534 }
1535 if (("EndSessionMessage" == name))
1536 {
1537 this.endSessionMessageField = Enums.ParseYesNoType(value);
1538 this.endSessionMessageFieldSet = true;
1539 }
1540 if (("ElevatedCloseMessage" == name))
1541 {
1542 this.elevatedCloseMessageField = Enums.ParseYesNoType(value);
1543 this.elevatedCloseMessageFieldSet = true;
1544 }
1545 if (("ElevatedEndSessionMessage" == name))
1546 {
1547 this.elevatedEndSessionMessageField = Enums.ParseYesNoType(value);
1548 this.elevatedEndSessionMessageFieldSet = true;
1549 }
1550 if (("RebootPrompt" == name))
1551 {
1552 this.rebootPromptField = Enums.ParseYesNoType(value);
1553 this.rebootPromptFieldSet = true;
1554 }
1555 if (("PromptToContinue" == name))
1556 {
1557 this.promptToContinueField = Enums.ParseYesNoType(value);
1558 this.promptToContinueFieldSet = true;
1559 }
1560 if (("Property" == name))
1561 {
1562 this.propertyField = value;
1563 this.propertyFieldSet = true;
1564 }
1565 if (("TerminateProcess" == name))
1566 {
1567 this.terminateProcessField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
1568 this.terminateProcessFieldSet = true;
1569 }
1570 if (("Timeout" == name))
1571 {
1572 this.timeoutField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
1573 this.timeoutFieldSet = true;
1574 }
1575 if (("Content" == name))
1576 {
1577 this.contentField = value;
1578 this.contentFieldSet = true;
1579 }
1580 }
1581 }
1582
1583 /// <summary>
1584 /// Describes a component search.
1585 /// </summary>
1586 [GeneratedCode("XsdGen", "4.0.0.0")]
1587 public class ComponentSearch : ISchemaElement, ISetAttributes
1588 {
1589
1590 private string idField;
1591
1592 private bool idFieldSet;
1593
1594 private string variableField;
1595
1596 private bool variableFieldSet;
1597
1598 private string conditionField;
1599
1600 private bool conditionFieldSet;
1601
1602 private string afterField;
1603
1604 private bool afterFieldSet;
1605
1606 private string guidField;
1607
1608 private bool guidFieldSet;
1609
1610 private string productCodeField;
1611
1612 private bool productCodeFieldSet;
1613
1614 private ResultType resultField;
1615
1616 private bool resultFieldSet;
1617
1618 private ISchemaElement parentElement;
1619
1620 /// <summary>
1621 /// Id of the search for ordering and dependency.
1622 /// </summary>
1623 public string Id
1624 {
1625 get
1626 {
1627 return this.idField;
1628 }
1629 set
1630 {
1631 this.idFieldSet = true;
1632 this.idField = value;
1633 }
1634 }
1635
1636 /// <summary>
1637 /// Name of the variable in which to place the result of the search.
1638 /// </summary>
1639 public string Variable
1640 {
1641 get
1642 {
1643 return this.variableField;
1644 }
1645 set
1646 {
1647 this.variableFieldSet = true;
1648 this.variableField = value;
1649 }
1650 }
1651
1652 /// <summary>
1653 /// Condition for evaluating the search. If this evaluates to false, the search is not executed at all.
1654 /// </summary>
1655 public string Condition
1656 {
1657 get
1658 {
1659 return this.conditionField;
1660 }
1661 set
1662 {
1663 this.conditionFieldSet = true;
1664 this.conditionField = value;
1665 }
1666 }
1667
1668 /// <summary>
1669 /// Id of the search that this one should come after.
1670 /// </summary>
1671 public string After
1672 {
1673 get
1674 {
1675 return this.afterField;
1676 }
1677 set
1678 {
1679 this.afterFieldSet = true;
1680 this.afterField = value;
1681 }
1682 }
1683
1684 /// <summary>
1685 /// Component to search for.
1686 /// </summary>
1687 public string Guid
1688 {
1689 get
1690 {
1691 return this.guidField;
1692 }
1693 set
1694 {
1695 this.guidFieldSet = true;
1696 this.guidField = value;
1697 }
1698 }
1699
1700 /// <summary>
1701 /// Optional ProductCode to determine if the component is installed.
1702 /// </summary>
1703 public string ProductCode
1704 {
1705 get
1706 {
1707 return this.productCodeField;
1708 }
1709 set
1710 {
1711 this.productCodeFieldSet = true;
1712 this.productCodeField = value;
1713 }
1714 }
1715
1716 /// <summary>
1717 /// Rather than saving the matching key path into the variable, a ComponentSearch can save an attribute of the component instead.
1718 /// </summary>
1719 public ResultType Result
1720 {
1721 get
1722 {
1723 return this.resultField;
1724 }
1725 set
1726 {
1727 this.resultFieldSet = true;
1728 this.resultField = value;
1729 }
1730 }
1731
1732 public virtual ISchemaElement ParentElement
1733 {
1734 get
1735 {
1736 return this.parentElement;
1737 }
1738 set
1739 {
1740 this.parentElement = value;
1741 }
1742 }
1743
1744 /// <summary>
1745 /// Parses a ResultType from a string.
1746 /// </summary>
1747 public static ResultType ParseResultType(string value)
1748 {
1749 ResultType parsedValue;
1750 ComponentSearch.TryParseResultType(value, out parsedValue);
1751 return parsedValue;
1752 }
1753
1754 /// <summary>
1755 /// Tries to parse a ResultType from a string.
1756 /// </summary>
1757 public static bool TryParseResultType(string value, out ResultType parsedValue)
1758 {
1759 parsedValue = ResultType.NotSet;
1760 if (string.IsNullOrEmpty(value))
1761 {
1762 return false;
1763 }
1764 if (("directory" == value))
1765 {
1766 parsedValue = ResultType.directory;
1767 }
1768 else
1769 {
1770 if (("state" == value))
1771 {
1772 parsedValue = ResultType.state;
1773 }
1774 else
1775 {
1776 if (("keyPath" == value))
1777 {
1778 parsedValue = ResultType.keyPath;
1779 }
1780 else
1781 {
1782 parsedValue = ResultType.IllegalValue;
1783 return false;
1784 }
1785 }
1786 }
1787 return true;
1788 }
1789
1790 /// <summary>
1791 /// Processes this element and all child elements into an XmlWriter.
1792 /// </summary>
1793 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
1794 public virtual void OutputXml(XmlWriter writer)
1795 {
1796 if ((null == writer))
1797 {
1798 throw new ArgumentNullException("writer");
1799 }
1800 writer.WriteStartElement("ComponentSearch", "http://wixtoolset.org/schemas/v4/wxs/util");
1801 if (this.idFieldSet)
1802 {
1803 writer.WriteAttributeString("Id", this.idField);
1804 }
1805 if (this.variableFieldSet)
1806 {
1807 writer.WriteAttributeString("Variable", this.variableField);
1808 }
1809 if (this.conditionFieldSet)
1810 {
1811 writer.WriteAttributeString("Condition", this.conditionField);
1812 }
1813 if (this.afterFieldSet)
1814 {
1815 writer.WriteAttributeString("After", this.afterField);
1816 }
1817 if (this.guidFieldSet)
1818 {
1819 writer.WriteAttributeString("Guid", this.guidField);
1820 }
1821 if (this.productCodeFieldSet)
1822 {
1823 writer.WriteAttributeString("ProductCode", this.productCodeField);
1824 }
1825 if (this.resultFieldSet)
1826 {
1827 if ((this.resultField == ResultType.directory))
1828 {
1829 writer.WriteAttributeString("Result", "directory");
1830 }
1831 if ((this.resultField == ResultType.state))
1832 {
1833 writer.WriteAttributeString("Result", "state");
1834 }
1835 if ((this.resultField == ResultType.keyPath))
1836 {
1837 writer.WriteAttributeString("Result", "keyPath");
1838 }
1839 }
1840 writer.WriteEndElement();
1841 }
1842
1843 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
1844 void ISetAttributes.SetAttribute(string name, string value)
1845 {
1846 if (String.IsNullOrEmpty(name))
1847 {
1848 throw new ArgumentNullException("name");
1849 }
1850 if (("Id" == name))
1851 {
1852 this.idField = value;
1853 this.idFieldSet = true;
1854 }
1855 if (("Variable" == name))
1856 {
1857 this.variableField = value;
1858 this.variableFieldSet = true;
1859 }
1860 if (("Condition" == name))
1861 {
1862 this.conditionField = value;
1863 this.conditionFieldSet = true;
1864 }
1865 if (("After" == name))
1866 {
1867 this.afterField = value;
1868 this.afterFieldSet = true;
1869 }
1870 if (("Guid" == name))
1871 {
1872 this.guidField = value;
1873 this.guidFieldSet = true;
1874 }
1875 if (("ProductCode" == name))
1876 {
1877 this.productCodeField = value;
1878 this.productCodeFieldSet = true;
1879 }
1880 if (("Result" == name))
1881 {
1882 this.resultField = ComponentSearch.ParseResultType(value);
1883 this.resultFieldSet = true;
1884 }
1885 }
1886
1887 [GeneratedCode("XsdGen", "4.0.0.0")]
1888 public enum ResultType
1889 {
1890
1891 IllegalValue = int.MaxValue,
1892
1893 NotSet = -1,
1894
1895 /// <summary>
1896 /// Saves the parent directory for the component's file key path; other types of key path are returned unmodified.
1897 /// </summary>
1898 directory,
1899
1900 /// <summary>
1901 /// Saves the state of the component: absent (2), locally installed (3), will run from source (4), or installed in default location (either local or from source) (5)
1902 /// </summary>
1903 state,
1904
1905 /// <summary>
1906 /// Saves the key path of the component if installed. This is the default.
1907 /// </summary>
1908 keyPath,
1909 }
1910 }
1911
1912 /// <summary>
1913 /// References a ComponentSearch.
1914 /// </summary>
1915 [GeneratedCode("XsdGen", "4.0.0.0")]
1916 public class ComponentSearchRef : ISchemaElement, ISetAttributes
1917 {
1918
1919 private string idField;
1920
1921 private bool idFieldSet;
1922
1923 private ISchemaElement parentElement;
1924
1925 public string Id
1926 {
1927 get
1928 {
1929 return this.idField;
1930 }
1931 set
1932 {
1933 this.idFieldSet = true;
1934 this.idField = value;
1935 }
1936 }
1937
1938 public virtual ISchemaElement ParentElement
1939 {
1940 get
1941 {
1942 return this.parentElement;
1943 }
1944 set
1945 {
1946 this.parentElement = value;
1947 }
1948 }
1949
1950 /// <summary>
1951 /// Processes this element and all child elements into an XmlWriter.
1952 /// </summary>
1953 public virtual void OutputXml(XmlWriter writer)
1954 {
1955 if ((null == writer))
1956 {
1957 throw new ArgumentNullException("writer");
1958 }
1959 writer.WriteStartElement("ComponentSearchRef", "http://wixtoolset.org/schemas/v4/wxs/util");
1960 if (this.idFieldSet)
1961 {
1962 writer.WriteAttributeString("Id", this.idField);
1963 }
1964 writer.WriteEndElement();
1965 }
1966
1967 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
1968 void ISetAttributes.SetAttribute(string name, string value)
1969 {
1970 if (String.IsNullOrEmpty(name))
1971 {
1972 throw new ArgumentNullException("name");
1973 }
1974 if (("Id" == name))
1975 {
1976 this.idField = value;
1977 this.idFieldSet = true;
1978 }
1979 }
1980 }
1981
1982 /// <summary>
1983 /// Describes a directory search.
1984 /// </summary>
1985 [GeneratedCode("XsdGen", "4.0.0.0")]
1986 public class DirectorySearch : ISchemaElement, ISetAttributes
1987 {
1988
1989 private string idField;
1990
1991 private bool idFieldSet;
1992
1993 private string variableField;
1994
1995 private bool variableFieldSet;
1996
1997 private string conditionField;
1998
1999 private bool conditionFieldSet;
2000
2001 private string afterField;
2002
2003 private bool afterFieldSet;
2004
2005 private string pathField;
2006
2007 private bool pathFieldSet;
2008
2009 private ResultType resultField;
2010
2011 private bool resultFieldSet;
2012
2013 private ISchemaElement parentElement;
2014
2015 /// <summary>
2016 /// Id of the search for ordering and dependency.
2017 /// </summary>
2018 public string Id
2019 {
2020 get
2021 {
2022 return this.idField;
2023 }
2024 set
2025 {
2026 this.idFieldSet = true;
2027 this.idField = value;
2028 }
2029 }
2030
2031 /// <summary>
2032 /// Name of the variable in which to place the result of the search.
2033 /// </summary>
2034 public string Variable
2035 {
2036 get
2037 {
2038 return this.variableField;
2039 }
2040 set
2041 {
2042 this.variableFieldSet = true;
2043 this.variableField = value;
2044 }
2045 }
2046
2047 /// <summary>
2048 /// Condition for evaluating the search. If this evaluates to false, the search is not executed at all.
2049 /// </summary>
2050 public string Condition
2051 {
2052 get
2053 {
2054 return this.conditionField;
2055 }
2056 set
2057 {
2058 this.conditionFieldSet = true;
2059 this.conditionField = value;
2060 }
2061 }
2062
2063 /// <summary>
2064 /// Id of the search that this one should come after.
2065 /// </summary>
2066 public string After
2067 {
2068 get
2069 {
2070 return this.afterField;
2071 }
2072 set
2073 {
2074 this.afterFieldSet = true;
2075 this.afterField = value;
2076 }
2077 }
2078
2079 /// <summary>
2080 /// Directory path to search for.
2081 /// </summary>
2082 public string Path
2083 {
2084 get
2085 {
2086 return this.pathField;
2087 }
2088 set
2089 {
2090 this.pathFieldSet = true;
2091 this.pathField = value;
2092 }
2093 }
2094
2095 /// <summary>
2096 /// Rather than saving the matching directory path into the variable, a DirectorySearch can save an
2097 /// attribute of the matching directory instead.
2098 /// </summary>
2099 public ResultType Result
2100 {
2101 get
2102 {
2103 return this.resultField;
2104 }
2105 set
2106 {
2107 this.resultFieldSet = true;
2108 this.resultField = value;
2109 }
2110 }
2111
2112 public virtual ISchemaElement ParentElement
2113 {
2114 get
2115 {
2116 return this.parentElement;
2117 }
2118 set
2119 {
2120 this.parentElement = value;
2121 }
2122 }
2123
2124 /// <summary>
2125 /// Parses a ResultType from a string.
2126 /// </summary>
2127 public static ResultType ParseResultType(string value)
2128 {
2129 ResultType parsedValue;
2130 DirectorySearch.TryParseResultType(value, out parsedValue);
2131 return parsedValue;
2132 }
2133
2134 /// <summary>
2135 /// Tries to parse a ResultType from a string.
2136 /// </summary>
2137 public static bool TryParseResultType(string value, out ResultType parsedValue)
2138 {
2139 parsedValue = ResultType.NotSet;
2140 if (string.IsNullOrEmpty(value))
2141 {
2142 return false;
2143 }
2144 if (("exists" == value))
2145 {
2146 parsedValue = ResultType.exists;
2147 }
2148 else
2149 {
2150 parsedValue = ResultType.IllegalValue;
2151 return false;
2152 }
2153 return true;
2154 }
2155
2156 /// <summary>
2157 /// Processes this element and all child elements into an XmlWriter.
2158 /// </summary>
2159 public virtual void OutputXml(XmlWriter writer)
2160 {
2161 if ((null == writer))
2162 {
2163 throw new ArgumentNullException("writer");
2164 }
2165 writer.WriteStartElement("DirectorySearch", "http://wixtoolset.org/schemas/v4/wxs/util");
2166 if (this.idFieldSet)
2167 {
2168 writer.WriteAttributeString("Id", this.idField);
2169 }
2170 if (this.variableFieldSet)
2171 {
2172 writer.WriteAttributeString("Variable", this.variableField);
2173 }
2174 if (this.conditionFieldSet)
2175 {
2176 writer.WriteAttributeString("Condition", this.conditionField);
2177 }
2178 if (this.afterFieldSet)
2179 {
2180 writer.WriteAttributeString("After", this.afterField);
2181 }
2182 if (this.pathFieldSet)
2183 {
2184 writer.WriteAttributeString("Path", this.pathField);
2185 }
2186 if (this.resultFieldSet)
2187 {
2188 if ((this.resultField == ResultType.exists))
2189 {
2190 writer.WriteAttributeString("Result", "exists");
2191 }
2192 }
2193 writer.WriteEndElement();
2194 }
2195
2196 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
2197 void ISetAttributes.SetAttribute(string name, string value)
2198 {
2199 if (String.IsNullOrEmpty(name))
2200 {
2201 throw new ArgumentNullException("name");
2202 }
2203 if (("Id" == name))
2204 {
2205 this.idField = value;
2206 this.idFieldSet = true;
2207 }
2208 if (("Variable" == name))
2209 {
2210 this.variableField = value;
2211 this.variableFieldSet = true;
2212 }
2213 if (("Condition" == name))
2214 {
2215 this.conditionField = value;
2216 this.conditionFieldSet = true;
2217 }
2218 if (("After" == name))
2219 {
2220 this.afterField = value;
2221 this.afterFieldSet = true;
2222 }
2223 if (("Path" == name))
2224 {
2225 this.pathField = value;
2226 this.pathFieldSet = true;
2227 }
2228 if (("Result" == name))
2229 {
2230 this.resultField = DirectorySearch.ParseResultType(value);
2231 this.resultFieldSet = true;
2232 }
2233 }
2234
2235 [GeneratedCode("XsdGen", "4.0.0.0")]
2236 public enum ResultType
2237 {
2238
2239 IllegalValue = int.MaxValue,
2240
2241 NotSet = -1,
2242
2243 /// <summary>
2244 /// Saves true if a matching directory is found; false otherwise.
2245 /// </summary>
2246 exists,
2247 }
2248 }
2249
2250 /// <summary>
2251 /// References a DirectorySearch.
2252 /// </summary>
2253 [GeneratedCode("XsdGen", "4.0.0.0")]
2254 public class DirectorySearchRef : ISchemaElement, ISetAttributes
2255 {
2256
2257 private string idField;
2258
2259 private bool idFieldSet;
2260
2261 private ISchemaElement parentElement;
2262
2263 public string Id
2264 {
2265 get
2266 {
2267 return this.idField;
2268 }
2269 set
2270 {
2271 this.idFieldSet = true;
2272 this.idField = value;
2273 }
2274 }
2275
2276 public virtual ISchemaElement ParentElement
2277 {
2278 get
2279 {
2280 return this.parentElement;
2281 }
2282 set
2283 {
2284 this.parentElement = value;
2285 }
2286 }
2287
2288 /// <summary>
2289 /// Processes this element and all child elements into an XmlWriter.
2290 /// </summary>
2291 public virtual void OutputXml(XmlWriter writer)
2292 {
2293 if ((null == writer))
2294 {
2295 throw new ArgumentNullException("writer");
2296 }
2297 writer.WriteStartElement("DirectorySearchRef", "http://wixtoolset.org/schemas/v4/wxs/util");
2298 if (this.idFieldSet)
2299 {
2300 writer.WriteAttributeString("Id", this.idField);
2301 }
2302 writer.WriteEndElement();
2303 }
2304
2305 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
2306 void ISetAttributes.SetAttribute(string name, string value)
2307 {
2308 if (String.IsNullOrEmpty(name))
2309 {
2310 throw new ArgumentNullException("name");
2311 }
2312 if (("Id" == name))
2313 {
2314 this.idField = value;
2315 this.idFieldSet = true;
2316 }
2317 }
2318 }
2319
2320 /// <summary>
2321 /// Creates an event source.
2322 /// </summary>
2323 [GeneratedCode("XsdGen", "4.0.0.0")]
2324 public class EventSource : ISchemaElement, ISetAttributes
2325 {
2326
2327 private int categoryCountField;
2328
2329 private bool categoryCountFieldSet;
2330
2331 private string categoryMessageFileField;
2332
2333 private bool categoryMessageFileFieldSet;
2334
2335 private string eventMessageFileField;
2336
2337 private bool eventMessageFileFieldSet;
2338
2339 private YesNoType keyPathField;
2340
2341 private bool keyPathFieldSet;
2342
2343 private string logField;
2344
2345 private bool logFieldSet;
2346
2347 private string nameField;
2348
2349 private bool nameFieldSet;
2350
2351 private string parameterMessageFileField;
2352
2353 private bool parameterMessageFileFieldSet;
2354
2355 private YesNoType supportsErrorsField;
2356
2357 private bool supportsErrorsFieldSet;
2358
2359 private YesNoType supportsFailureAuditsField;
2360
2361 private bool supportsFailureAuditsFieldSet;
2362
2363 private YesNoType supportsInformationalsField;
2364
2365 private bool supportsInformationalsFieldSet;
2366
2367 private YesNoType supportsSuccessAuditsField;
2368
2369 private bool supportsSuccessAuditsFieldSet;
2370
2371 private YesNoType supportsWarningsField;
2372
2373 private bool supportsWarningsFieldSet;
2374
2375 private ISchemaElement parentElement;
2376
2377 /// <summary>
2378 /// The number of categories in CategoryMessageFile. CategoryMessageFile
2379 /// must be specified too.
2380 /// </summary>
2381 public int CategoryCount
2382 {
2383 get
2384 {
2385 return this.categoryCountField;
2386 }
2387 set
2388 {
2389 this.categoryCountFieldSet = true;
2390 this.categoryCountField = value;
2391 }
2392 }
2393
2394 /// <summary>
2395 /// Name of the category message file. CategoryCount must be specified too.
2396 /// Note that this is a formatted field, so you can use [#fileId] syntax to
2397 /// refer to a file being installed. It is also written as a REG_EXPAND_SZ
2398 /// string, so you can use %environment_variable% syntax to refer to a file
2399 /// already present on the user's machine.
2400 /// </summary>
2401 public string CategoryMessageFile
2402 {
2403 get
2404 {
2405 return this.categoryMessageFileField;
2406 }
2407 set
2408 {
2409 this.categoryMessageFileFieldSet = true;
2410 this.categoryMessageFileField = value;
2411 }
2412 }
2413
2414 /// <summary>
2415 /// Name of the event message file.
2416 /// Note that this is a formatted field, so you can use [#fileId] syntax to
2417 /// refer to a file being installed. It is also written as a REG_EXPAND_SZ
2418 /// string, so you can use %environment_variable% syntax to refer to a file
2419 /// already present on the user's machine.
2420 /// </summary>
2421 public string EventMessageFile
2422 {
2423 get
2424 {
2425 return this.eventMessageFileField;
2426 }
2427 set
2428 {
2429 this.eventMessageFileFieldSet = true;
2430 this.eventMessageFileField = value;
2431 }
2432 }
2433
2434 /// <summary>
2435 /// Marks the EventSource registry as the key path of the component it belongs to.
2436 /// </summary>
2437 public YesNoType KeyPath
2438 {
2439 get
2440 {
2441 return this.keyPathField;
2442 }
2443 set
2444 {
2445 this.keyPathFieldSet = true;
2446 this.keyPathField = value;
2447 }
2448 }
2449
2450 /// <summary>
2451 /// Name of the event source's log.
2452 /// </summary>
2453 public string Log
2454 {
2455 get
2456 {
2457 return this.logField;
2458 }
2459 set
2460 {
2461 this.logFieldSet = true;
2462 this.logField = value;
2463 }
2464 }
2465
2466 /// <summary>
2467 /// Name of the event source.
2468 /// </summary>
2469 public string Name
2470 {
2471 get
2472 {
2473 return this.nameField;
2474 }
2475 set
2476 {
2477 this.nameFieldSet = true;
2478 this.nameField = value;
2479 }
2480 }
2481
2482 /// <summary>
2483 /// Name of the parameter message file.
2484 /// Note that this is a formatted field, so you can use [#fileId] syntax to
2485 /// refer to a file being installed. It is also written as a REG_EXPAND_SZ
2486 /// string, so you can use %environment_variable% syntax to refer to a file
2487 /// already present on the user's machine.
2488 /// </summary>
2489 public string ParameterMessageFile
2490 {
2491 get
2492 {
2493 return this.parameterMessageFileField;
2494 }
2495 set
2496 {
2497 this.parameterMessageFileFieldSet = true;
2498 this.parameterMessageFileField = value;
2499 }
2500 }
2501
2502 /// <summary>
2503 /// Equivalent to EVENTLOG_ERROR_TYPE.
2504 /// </summary>
2505 public YesNoType SupportsErrors
2506 {
2507 get
2508 {
2509 return this.supportsErrorsField;
2510 }
2511 set
2512 {
2513 this.supportsErrorsFieldSet = true;
2514 this.supportsErrorsField = value;
2515 }
2516 }
2517
2518 /// <summary>
2519 /// Equivalent to EVENTLOG_AUDIT_FAILURE.
2520 /// </summary>
2521 public YesNoType SupportsFailureAudits
2522 {
2523 get
2524 {
2525 return this.supportsFailureAuditsField;
2526 }
2527 set
2528 {
2529 this.supportsFailureAuditsFieldSet = true;
2530 this.supportsFailureAuditsField = value;
2531 }
2532 }
2533
2534 /// <summary>
2535 /// Equivalent to EVENTLOG_INFORMATION_TYPE.
2536 /// </summary>
2537 public YesNoType SupportsInformationals
2538 {
2539 get
2540 {
2541 return this.supportsInformationalsField;
2542 }
2543 set
2544 {
2545 this.supportsInformationalsFieldSet = true;
2546 this.supportsInformationalsField = value;
2547 }
2548 }
2549
2550 /// <summary>
2551 /// Equivalent to EVENTLOG_AUDIT_SUCCESS.
2552 /// </summary>
2553 public YesNoType SupportsSuccessAudits
2554 {
2555 get
2556 {
2557 return this.supportsSuccessAuditsField;
2558 }
2559 set
2560 {
2561 this.supportsSuccessAuditsFieldSet = true;
2562 this.supportsSuccessAuditsField = value;
2563 }
2564 }
2565
2566 /// <summary>
2567 /// Equivalent to EVENTLOG_WARNING_TYPE.
2568 /// </summary>
2569 public YesNoType SupportsWarnings
2570 {
2571 get
2572 {
2573 return this.supportsWarningsField;
2574 }
2575 set
2576 {
2577 this.supportsWarningsFieldSet = true;
2578 this.supportsWarningsField = value;
2579 }
2580 }
2581
2582 public virtual ISchemaElement ParentElement
2583 {
2584 get
2585 {
2586 return this.parentElement;
2587 }
2588 set
2589 {
2590 this.parentElement = value;
2591 }
2592 }
2593
2594 /// <summary>
2595 /// Processes this element and all child elements into an XmlWriter.
2596 /// </summary>
2597 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
2598 public virtual void OutputXml(XmlWriter writer)
2599 {
2600 if ((null == writer))
2601 {
2602 throw new ArgumentNullException("writer");
2603 }
2604 writer.WriteStartElement("EventSource", "http://wixtoolset.org/schemas/v4/wxs/util");
2605 if (this.categoryCountFieldSet)
2606 {
2607 writer.WriteAttributeString("CategoryCount", this.categoryCountField.ToString(CultureInfo.InvariantCulture));
2608 }
2609 if (this.categoryMessageFileFieldSet)
2610 {
2611 writer.WriteAttributeString("CategoryMessageFile", this.categoryMessageFileField);
2612 }
2613 if (this.eventMessageFileFieldSet)
2614 {
2615 writer.WriteAttributeString("EventMessageFile", this.eventMessageFileField);
2616 }
2617 if (this.keyPathFieldSet)
2618 {
2619 if ((this.keyPathField == YesNoType.no))
2620 {
2621 writer.WriteAttributeString("KeyPath", "no");
2622 }
2623 if ((this.keyPathField == YesNoType.yes))
2624 {
2625 writer.WriteAttributeString("KeyPath", "yes");
2626 }
2627 }
2628 if (this.logFieldSet)
2629 {
2630 writer.WriteAttributeString("Log", this.logField);
2631 }
2632 if (this.nameFieldSet)
2633 {
2634 writer.WriteAttributeString("Name", this.nameField);
2635 }
2636 if (this.parameterMessageFileFieldSet)
2637 {
2638 writer.WriteAttributeString("ParameterMessageFile", this.parameterMessageFileField);
2639 }
2640 if (this.supportsErrorsFieldSet)
2641 {
2642 if ((this.supportsErrorsField == YesNoType.no))
2643 {
2644 writer.WriteAttributeString("SupportsErrors", "no");
2645 }
2646 if ((this.supportsErrorsField == YesNoType.yes))
2647 {
2648 writer.WriteAttributeString("SupportsErrors", "yes");
2649 }
2650 }
2651 if (this.supportsFailureAuditsFieldSet)
2652 {
2653 if ((this.supportsFailureAuditsField == YesNoType.no))
2654 {
2655 writer.WriteAttributeString("SupportsFailureAudits", "no");
2656 }
2657 if ((this.supportsFailureAuditsField == YesNoType.yes))
2658 {
2659 writer.WriteAttributeString("SupportsFailureAudits", "yes");
2660 }
2661 }
2662 if (this.supportsInformationalsFieldSet)
2663 {
2664 if ((this.supportsInformationalsField == YesNoType.no))
2665 {
2666 writer.WriteAttributeString("SupportsInformationals", "no");
2667 }
2668 if ((this.supportsInformationalsField == YesNoType.yes))
2669 {
2670 writer.WriteAttributeString("SupportsInformationals", "yes");
2671 }
2672 }
2673 if (this.supportsSuccessAuditsFieldSet)
2674 {
2675 if ((this.supportsSuccessAuditsField == YesNoType.no))
2676 {
2677 writer.WriteAttributeString("SupportsSuccessAudits", "no");
2678 }
2679 if ((this.supportsSuccessAuditsField == YesNoType.yes))
2680 {
2681 writer.WriteAttributeString("SupportsSuccessAudits", "yes");
2682 }
2683 }
2684 if (this.supportsWarningsFieldSet)
2685 {
2686 if ((this.supportsWarningsField == YesNoType.no))
2687 {
2688 writer.WriteAttributeString("SupportsWarnings", "no");
2689 }
2690 if ((this.supportsWarningsField == YesNoType.yes))
2691 {
2692 writer.WriteAttributeString("SupportsWarnings", "yes");
2693 }
2694 }
2695 writer.WriteEndElement();
2696 }
2697
2698 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
2699 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
2700 void ISetAttributes.SetAttribute(string name, string value)
2701 {
2702 if (String.IsNullOrEmpty(name))
2703 {
2704 throw new ArgumentNullException("name");
2705 }
2706 if (("CategoryCount" == name))
2707 {
2708 this.categoryCountField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
2709 this.categoryCountFieldSet = true;
2710 }
2711 if (("CategoryMessageFile" == name))
2712 {
2713 this.categoryMessageFileField = value;
2714 this.categoryMessageFileFieldSet = true;
2715 }
2716 if (("EventMessageFile" == name))
2717 {
2718 this.eventMessageFileField = value;
2719 this.eventMessageFileFieldSet = true;
2720 }
2721 if (("KeyPath" == name))
2722 {
2723 this.keyPathField = Enums.ParseYesNoType(value);
2724 this.keyPathFieldSet = true;
2725 }
2726 if (("Log" == name))
2727 {
2728 this.logField = value;
2729 this.logFieldSet = true;
2730 }
2731 if (("Name" == name))
2732 {
2733 this.nameField = value;
2734 this.nameFieldSet = true;
2735 }
2736 if (("ParameterMessageFile" == name))
2737 {
2738 this.parameterMessageFileField = value;
2739 this.parameterMessageFileFieldSet = true;
2740 }
2741 if (("SupportsErrors" == name))
2742 {
2743 this.supportsErrorsField = Enums.ParseYesNoType(value);
2744 this.supportsErrorsFieldSet = true;
2745 }
2746 if (("SupportsFailureAudits" == name))
2747 {
2748 this.supportsFailureAuditsField = Enums.ParseYesNoType(value);
2749 this.supportsFailureAuditsFieldSet = true;
2750 }
2751 if (("SupportsInformationals" == name))
2752 {
2753 this.supportsInformationalsField = Enums.ParseYesNoType(value);
2754 this.supportsInformationalsFieldSet = true;
2755 }
2756 if (("SupportsSuccessAudits" == name))
2757 {
2758 this.supportsSuccessAuditsField = Enums.ParseYesNoType(value);
2759 this.supportsSuccessAuditsFieldSet = true;
2760 }
2761 if (("SupportsWarnings" == name))
2762 {
2763 this.supportsWarningsField = Enums.ParseYesNoType(value);
2764 this.supportsWarningsFieldSet = true;
2765 }
2766 }
2767 }
2768
2769 /// <summary>
2770 /// Describes a file search.
2771 /// </summary>
2772 [GeneratedCode("XsdGen", "4.0.0.0")]
2773 public class FileSearch : ISchemaElement, ISetAttributes
2774 {
2775
2776 private string idField;
2777
2778 private bool idFieldSet;
2779
2780 private string variableField;
2781
2782 private bool variableFieldSet;
2783
2784 private string conditionField;
2785
2786 private bool conditionFieldSet;
2787
2788 private string afterField;
2789
2790 private bool afterFieldSet;
2791
2792 private string pathField;
2793
2794 private bool pathFieldSet;
2795
2796 private ResultType resultField;
2797
2798 private bool resultFieldSet;
2799
2800 private ISchemaElement parentElement;
2801
2802 /// <summary>
2803 /// Id of the search for ordering and dependency.
2804 /// </summary>
2805 public string Id
2806 {
2807 get
2808 {
2809 return this.idField;
2810 }
2811 set
2812 {
2813 this.idFieldSet = true;
2814 this.idField = value;
2815 }
2816 }
2817
2818 /// <summary>
2819 /// Name of the variable in which to place the result of the search.
2820 /// </summary>
2821 public string Variable
2822 {
2823 get
2824 {
2825 return this.variableField;
2826 }
2827 set
2828 {
2829 this.variableFieldSet = true;
2830 this.variableField = value;
2831 }
2832 }
2833
2834 /// <summary>
2835 /// Condition for evaluating the search. If this evaluates to false, the search is not executed at all.
2836 /// </summary>
2837 public string Condition
2838 {
2839 get
2840 {
2841 return this.conditionField;
2842 }
2843 set
2844 {
2845 this.conditionFieldSet = true;
2846 this.conditionField = value;
2847 }
2848 }
2849
2850 /// <summary>
2851 /// Id of the search that this one should come after.
2852 /// </summary>
2853 public string After
2854 {
2855 get
2856 {
2857 return this.afterField;
2858 }
2859 set
2860 {
2861 this.afterFieldSet = true;
2862 this.afterField = value;
2863 }
2864 }
2865
2866 /// <summary>
2867 /// File path to search for.
2868 /// </summary>
2869 public string Path
2870 {
2871 get
2872 {
2873 return this.pathField;
2874 }
2875 set
2876 {
2877 this.pathFieldSet = true;
2878 this.pathField = value;
2879 }
2880 }
2881
2882 /// <summary>
2883 /// Rather than saving the matching file path into the variable, a FileSearch can save an attribute of the matching file instead.
2884 /// </summary>
2885 public ResultType Result
2886 {
2887 get
2888 {
2889 return this.resultField;
2890 }
2891 set
2892 {
2893 this.resultFieldSet = true;
2894 this.resultField = value;
2895 }
2896 }
2897
2898 public virtual ISchemaElement ParentElement
2899 {
2900 get
2901 {
2902 return this.parentElement;
2903 }
2904 set
2905 {
2906 this.parentElement = value;
2907 }
2908 }
2909
2910 /// <summary>
2911 /// Parses a ResultType from a string.
2912 /// </summary>
2913 public static ResultType ParseResultType(string value)
2914 {
2915 ResultType parsedValue;
2916 FileSearch.TryParseResultType(value, out parsedValue);
2917 return parsedValue;
2918 }
2919
2920 /// <summary>
2921 /// Tries to parse a ResultType from a string.
2922 /// </summary>
2923 public static bool TryParseResultType(string value, out ResultType parsedValue)
2924 {
2925 parsedValue = ResultType.NotSet;
2926 if (string.IsNullOrEmpty(value))
2927 {
2928 return false;
2929 }
2930 if (("exists" == value))
2931 {
2932 parsedValue = ResultType.exists;
2933 }
2934 else
2935 {
2936 if (("version" == value))
2937 {
2938 parsedValue = ResultType.version;
2939 }
2940 else
2941 {
2942 parsedValue = ResultType.IllegalValue;
2943 return false;
2944 }
2945 }
2946 return true;
2947 }
2948
2949 /// <summary>
2950 /// Processes this element and all child elements into an XmlWriter.
2951 /// </summary>
2952 public virtual void OutputXml(XmlWriter writer)
2953 {
2954 if ((null == writer))
2955 {
2956 throw new ArgumentNullException("writer");
2957 }
2958 writer.WriteStartElement("FileSearch", "http://wixtoolset.org/schemas/v4/wxs/util");
2959 if (this.idFieldSet)
2960 {
2961 writer.WriteAttributeString("Id", this.idField);
2962 }
2963 if (this.variableFieldSet)
2964 {
2965 writer.WriteAttributeString("Variable", this.variableField);
2966 }
2967 if (this.conditionFieldSet)
2968 {
2969 writer.WriteAttributeString("Condition", this.conditionField);
2970 }
2971 if (this.afterFieldSet)
2972 {
2973 writer.WriteAttributeString("After", this.afterField);
2974 }
2975 if (this.pathFieldSet)
2976 {
2977 writer.WriteAttributeString("Path", this.pathField);
2978 }
2979 if (this.resultFieldSet)
2980 {
2981 if ((this.resultField == ResultType.exists))
2982 {
2983 writer.WriteAttributeString("Result", "exists");
2984 }
2985 if ((this.resultField == ResultType.version))
2986 {
2987 writer.WriteAttributeString("Result", "version");
2988 }
2989 }
2990 writer.WriteEndElement();
2991 }
2992
2993 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
2994 void ISetAttributes.SetAttribute(string name, string value)
2995 {
2996 if (String.IsNullOrEmpty(name))
2997 {
2998 throw new ArgumentNullException("name");
2999 }
3000 if (("Id" == name))
3001 {
3002 this.idField = value;
3003 this.idFieldSet = true;
3004 }
3005 if (("Variable" == name))
3006 {
3007 this.variableField = value;
3008 this.variableFieldSet = true;
3009 }
3010 if (("Condition" == name))
3011 {
3012 this.conditionField = value;
3013 this.conditionFieldSet = true;
3014 }
3015 if (("After" == name))
3016 {
3017 this.afterField = value;
3018 this.afterFieldSet = true;
3019 }
3020 if (("Path" == name))
3021 {
3022 this.pathField = value;
3023 this.pathFieldSet = true;
3024 }
3025 if (("Result" == name))
3026 {
3027 this.resultField = FileSearch.ParseResultType(value);
3028 this.resultFieldSet = true;
3029 }
3030 }
3031
3032 [GeneratedCode("XsdGen", "4.0.0.0")]
3033 public enum ResultType
3034 {
3035
3036 IllegalValue = int.MaxValue,
3037
3038 NotSet = -1,
3039
3040 /// <summary>
3041 /// Saves true if a matching file is found; false otherwise.
3042 /// </summary>
3043 exists,
3044
3045 /// <summary>
3046 /// Saves the version information for files that have it (.exe, .dll); zero-version (0.0.0.0) otherwise.
3047 /// </summary>
3048 version,
3049 }
3050 }
3051
3052 /// <summary>
3053 /// References a FileSearch.
3054 /// </summary>
3055 [GeneratedCode("XsdGen", "4.0.0.0")]
3056 public class FileSearchRef : ISchemaElement, ISetAttributes
3057 {
3058
3059 private string idField;
3060
3061 private bool idFieldSet;
3062
3063 private ISchemaElement parentElement;
3064
3065 public string Id
3066 {
3067 get
3068 {
3069 return this.idField;
3070 }
3071 set
3072 {
3073 this.idFieldSet = true;
3074 this.idField = value;
3075 }
3076 }
3077
3078 public virtual ISchemaElement ParentElement
3079 {
3080 get
3081 {
3082 return this.parentElement;
3083 }
3084 set
3085 {
3086 this.parentElement = value;
3087 }
3088 }
3089
3090 /// <summary>
3091 /// Processes this element and all child elements into an XmlWriter.
3092 /// </summary>
3093 public virtual void OutputXml(XmlWriter writer)
3094 {
3095 if ((null == writer))
3096 {
3097 throw new ArgumentNullException("writer");
3098 }
3099 writer.WriteStartElement("FileSearchRef", "http://wixtoolset.org/schemas/v4/wxs/util");
3100 if (this.idFieldSet)
3101 {
3102 writer.WriteAttributeString("Id", this.idField);
3103 }
3104 writer.WriteEndElement();
3105 }
3106
3107 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
3108 void ISetAttributes.SetAttribute(string name, string value)
3109 {
3110 if (String.IsNullOrEmpty(name))
3111 {
3112 throw new ArgumentNullException("name");
3113 }
3114 if (("Id" == name))
3115 {
3116 this.idField = value;
3117 this.idFieldSet = true;
3118 }
3119 }
3120 }
3121
3122 /// <summary>
3123 /// Creates a file share out of the component's directory.
3124 /// </summary>
3125 [GeneratedCode("XsdGen", "4.0.0.0")]
3126 public class FileShare : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
3127 {
3128
3129 private ElementCollection children;
3130
3131 private string idField;
3132
3133 private bool idFieldSet;
3134
3135 private string nameField;
3136
3137 private bool nameFieldSet;
3138
3139 private string descriptionField;
3140
3141 private bool descriptionFieldSet;
3142
3143 private ISchemaElement parentElement;
3144
3145 public FileShare()
3146 {
3147 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
3148 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(FileSharePermission)));
3149 this.children = childCollection0;
3150 }
3151
3152 public virtual IEnumerable Children
3153 {
3154 get
3155 {
3156 return this.children;
3157 }
3158 }
3159
3160 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
3161 public virtual IEnumerable this[System.Type childType]
3162 {
3163 get
3164 {
3165 return this.children.Filter(childType);
3166 }
3167 }
3168
3169 /// <summary>
3170 /// Identifier for the file share (primary key).
3171 /// </summary>
3172 public string Id
3173 {
3174 get
3175 {
3176 return this.idField;
3177 }
3178 set
3179 {
3180 this.idFieldSet = true;
3181 this.idField = value;
3182 }
3183 }
3184
3185 /// <summary>
3186 /// Name of the file share.
3187 /// </summary>
3188 public string Name
3189 {
3190 get
3191 {
3192 return this.nameField;
3193 }
3194 set
3195 {
3196 this.nameFieldSet = true;
3197 this.nameField = value;
3198 }
3199 }
3200
3201 /// <summary>
3202 /// Description of the file share.
3203 /// </summary>
3204 public string Description
3205 {
3206 get
3207 {
3208 return this.descriptionField;
3209 }
3210 set
3211 {
3212 this.descriptionFieldSet = true;
3213 this.descriptionField = value;
3214 }
3215 }
3216
3217 public virtual ISchemaElement ParentElement
3218 {
3219 get
3220 {
3221 return this.parentElement;
3222 }
3223 set
3224 {
3225 this.parentElement = value;
3226 }
3227 }
3228
3229 public virtual void AddChild(ISchemaElement child)
3230 {
3231 if ((null == child))
3232 {
3233 throw new ArgumentNullException("child");
3234 }
3235 this.children.AddElement(child);
3236 child.ParentElement = this;
3237 }
3238
3239 public virtual void RemoveChild(ISchemaElement child)
3240 {
3241 if ((null == child))
3242 {
3243 throw new ArgumentNullException("child");
3244 }
3245 this.children.RemoveElement(child);
3246 child.ParentElement = null;
3247 }
3248
3249 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
3250 ISchemaElement ICreateChildren.CreateChild(string childName)
3251 {
3252 if (String.IsNullOrEmpty(childName))
3253 {
3254 throw new ArgumentNullException("childName");
3255 }
3256 ISchemaElement childValue = null;
3257 if (("FileSharePermission" == childName))
3258 {
3259 childValue = new FileSharePermission();
3260 }
3261 if ((null == childValue))
3262 {
3263 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
3264 }
3265 return childValue;
3266 }
3267
3268 /// <summary>
3269 /// Processes this element and all child elements into an XmlWriter.
3270 /// </summary>
3271 public virtual void OutputXml(XmlWriter writer)
3272 {
3273 if ((null == writer))
3274 {
3275 throw new ArgumentNullException("writer");
3276 }
3277 writer.WriteStartElement("FileShare", "http://wixtoolset.org/schemas/v4/wxs/util");
3278 if (this.idFieldSet)
3279 {
3280 writer.WriteAttributeString("Id", this.idField);
3281 }
3282 if (this.nameFieldSet)
3283 {
3284 writer.WriteAttributeString("Name", this.nameField);
3285 }
3286 if (this.descriptionFieldSet)
3287 {
3288 writer.WriteAttributeString("Description", this.descriptionField);
3289 }
3290 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
3291 {
3292 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
3293 childElement.OutputXml(writer);
3294 }
3295 writer.WriteEndElement();
3296 }
3297
3298 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
3299 void ISetAttributes.SetAttribute(string name, string value)
3300 {
3301 if (String.IsNullOrEmpty(name))
3302 {
3303 throw new ArgumentNullException("name");
3304 }
3305 if (("Id" == name))
3306 {
3307 this.idField = value;
3308 this.idFieldSet = true;
3309 }
3310 if (("Name" == name))
3311 {
3312 this.nameField = value;
3313 this.nameFieldSet = true;
3314 }
3315 if (("Description" == name))
3316 {
3317 this.descriptionField = value;
3318 this.descriptionFieldSet = true;
3319 }
3320 }
3321 }
3322
3323 /// <summary>
3324 /// Sets ACLs on a FileShare. This element has no Id attribute.
3325 /// The table and key are taken from the parent element.
3326 /// </summary>
3327 [GeneratedCode("XsdGen", "4.0.0.0")]
3328 public class FileSharePermission : ISchemaElement, ISetAttributes
3329 {
3330
3331 private string userField;
3332
3333 private bool userFieldSet;
3334
3335 private YesNoType readField;
3336
3337 private bool readFieldSet;
3338
3339 private YesNoType deleteField;
3340
3341 private bool deleteFieldSet;
3342
3343 private YesNoType readPermissionField;
3344
3345 private bool readPermissionFieldSet;
3346
3347 private YesNoType changePermissionField;
3348
3349 private bool changePermissionFieldSet;
3350
3351 private YesNoType takeOwnershipField;
3352
3353 private bool takeOwnershipFieldSet;
3354
3355 private YesNoType readAttributesField;
3356
3357 private bool readAttributesFieldSet;
3358
3359 private YesNoType writeAttributesField;
3360
3361 private bool writeAttributesFieldSet;
3362
3363 private YesNoType readExtendedAttributesField;
3364
3365 private bool readExtendedAttributesFieldSet;
3366
3367 private YesNoType writeExtendedAttributesField;
3368
3369 private bool writeExtendedAttributesFieldSet;
3370
3371 private YesNoType synchronizeField;
3372
3373 private bool synchronizeFieldSet;
3374
3375 private YesNoType createFileField;
3376
3377 private bool createFileFieldSet;
3378
3379 private YesNoType createChildField;
3380
3381 private bool createChildFieldSet;
3382
3383 private YesNoType deleteChildField;
3384
3385 private bool deleteChildFieldSet;
3386
3387 private YesNoType traverseField;
3388
3389 private bool traverseFieldSet;
3390
3391 private YesNoType genericAllField;
3392
3393 private bool genericAllFieldSet;
3394
3395 private YesNoType genericExecuteField;
3396
3397 private bool genericExecuteFieldSet;
3398
3399 private YesNoType genericWriteField;
3400
3401 private bool genericWriteFieldSet;
3402
3403 private YesNoType genericReadField;
3404
3405 private bool genericReadFieldSet;
3406
3407 private ISchemaElement parentElement;
3408
3409 public string User
3410 {
3411 get
3412 {
3413 return this.userField;
3414 }
3415 set
3416 {
3417 this.userFieldSet = true;
3418 this.userField = value;
3419 }
3420 }
3421
3422 public YesNoType Read
3423 {
3424 get
3425 {
3426 return this.readField;
3427 }
3428 set
3429 {
3430 this.readFieldSet = true;
3431 this.readField = value;
3432 }
3433 }
3434
3435 public YesNoType Delete
3436 {
3437 get
3438 {
3439 return this.deleteField;
3440 }
3441 set
3442 {
3443 this.deleteFieldSet = true;
3444 this.deleteField = value;
3445 }
3446 }
3447
3448 public YesNoType ReadPermission
3449 {
3450 get
3451 {
3452 return this.readPermissionField;
3453 }
3454 set
3455 {
3456 this.readPermissionFieldSet = true;
3457 this.readPermissionField = value;
3458 }
3459 }
3460
3461 public YesNoType ChangePermission
3462 {
3463 get
3464 {
3465 return this.changePermissionField;
3466 }
3467 set
3468 {
3469 this.changePermissionFieldSet = true;
3470 this.changePermissionField = value;
3471 }
3472 }
3473
3474 public YesNoType TakeOwnership
3475 {
3476 get
3477 {
3478 return this.takeOwnershipField;
3479 }
3480 set
3481 {
3482 this.takeOwnershipFieldSet = true;
3483 this.takeOwnershipField = value;
3484 }
3485 }
3486
3487 public YesNoType ReadAttributes
3488 {
3489 get
3490 {
3491 return this.readAttributesField;
3492 }
3493 set
3494 {
3495 this.readAttributesFieldSet = true;
3496 this.readAttributesField = value;
3497 }
3498 }
3499
3500 public YesNoType WriteAttributes
3501 {
3502 get
3503 {
3504 return this.writeAttributesField;
3505 }
3506 set
3507 {
3508 this.writeAttributesFieldSet = true;
3509 this.writeAttributesField = value;
3510 }
3511 }
3512
3513 public YesNoType ReadExtendedAttributes
3514 {
3515 get
3516 {
3517 return this.readExtendedAttributesField;
3518 }
3519 set
3520 {
3521 this.readExtendedAttributesFieldSet = true;
3522 this.readExtendedAttributesField = value;
3523 }
3524 }
3525
3526 public YesNoType WriteExtendedAttributes
3527 {
3528 get
3529 {
3530 return this.writeExtendedAttributesField;
3531 }
3532 set
3533 {
3534 this.writeExtendedAttributesFieldSet = true;
3535 this.writeExtendedAttributesField = value;
3536 }
3537 }
3538
3539 public YesNoType Synchronize
3540 {
3541 get
3542 {
3543 return this.synchronizeField;
3544 }
3545 set
3546 {
3547 this.synchronizeFieldSet = true;
3548 this.synchronizeField = value;
3549 }
3550 }
3551
3552 /// <summary>
3553 /// For a directory, the right to create a file in the directory. Only valid under a 'CreateFolder' parent.
3554 /// </summary>
3555 public YesNoType CreateFile
3556 {
3557 get
3558 {
3559 return this.createFileField;
3560 }
3561 set
3562 {
3563 this.createFileFieldSet = true;
3564 this.createFileField = value;
3565 }
3566 }
3567
3568 /// <summary>
3569 /// For a directory, the right to create a subdirectory. Only valid under a 'CreateFolder' parent.
3570 /// </summary>
3571 public YesNoType CreateChild
3572 {
3573 get
3574 {
3575 return this.createChildField;
3576 }
3577 set
3578 {
3579 this.createChildFieldSet = true;
3580 this.createChildField = value;
3581 }
3582 }
3583
3584 /// <summary>
3585 /// 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.
3586 /// </summary>
3587 public YesNoType DeleteChild
3588 {
3589 get
3590 {
3591 return this.deleteChildField;
3592 }
3593 set
3594 {
3595 this.deleteChildFieldSet = true;
3596 this.deleteChildField = value;
3597 }
3598 }
3599
3600 /// <summary>
3601 /// 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.
3602 /// </summary>
3603 public YesNoType Traverse
3604 {
3605 get
3606 {
3607 return this.traverseField;
3608 }
3609 set
3610 {
3611 this.traverseFieldSet = true;
3612 this.traverseField = value;
3613 }
3614 }
3615
3616 public YesNoType GenericAll
3617 {
3618 get
3619 {
3620 return this.genericAllField;
3621 }
3622 set
3623 {
3624 this.genericAllFieldSet = true;
3625 this.genericAllField = value;
3626 }
3627 }
3628
3629 public YesNoType GenericExecute
3630 {
3631 get
3632 {
3633 return this.genericExecuteField;
3634 }
3635 set
3636 {
3637 this.genericExecuteFieldSet = true;
3638 this.genericExecuteField = value;
3639 }
3640 }
3641
3642 public YesNoType GenericWrite
3643 {
3644 get
3645 {
3646 return this.genericWriteField;
3647 }
3648 set
3649 {
3650 this.genericWriteFieldSet = true;
3651 this.genericWriteField = value;
3652 }
3653 }
3654
3655 /// <summary>
3656 /// specifying this will fail to grant read access
3657 /// </summary>
3658 public YesNoType GenericRead
3659 {
3660 get
3661 {
3662 return this.genericReadField;
3663 }
3664 set
3665 {
3666 this.genericReadFieldSet = true;
3667 this.genericReadField = value;
3668 }
3669 }
3670
3671 public virtual ISchemaElement ParentElement
3672 {
3673 get
3674 {
3675 return this.parentElement;
3676 }
3677 set
3678 {
3679 this.parentElement = value;
3680 }
3681 }
3682
3683 /// <summary>
3684 /// Processes this element and all child elements into an XmlWriter.
3685 /// </summary>
3686 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
3687 public virtual void OutputXml(XmlWriter writer)
3688 {
3689 if ((null == writer))
3690 {
3691 throw new ArgumentNullException("writer");
3692 }
3693 writer.WriteStartElement("FileSharePermission", "http://wixtoolset.org/schemas/v4/wxs/util");
3694 if (this.userFieldSet)
3695 {
3696 writer.WriteAttributeString("User", this.userField);
3697 }
3698 if (this.readFieldSet)
3699 {
3700 if ((this.readField == YesNoType.no))
3701 {
3702 writer.WriteAttributeString("Read", "no");
3703 }
3704 if ((this.readField == YesNoType.yes))
3705 {
3706 writer.WriteAttributeString("Read", "yes");
3707 }
3708 }
3709 if (this.deleteFieldSet)
3710 {
3711 if ((this.deleteField == YesNoType.no))
3712 {
3713 writer.WriteAttributeString("Delete", "no");
3714 }
3715 if ((this.deleteField == YesNoType.yes))
3716 {
3717 writer.WriteAttributeString("Delete", "yes");
3718 }
3719 }
3720 if (this.readPermissionFieldSet)
3721 {
3722 if ((this.readPermissionField == YesNoType.no))
3723 {
3724 writer.WriteAttributeString("ReadPermission", "no");
3725 }
3726 if ((this.readPermissionField == YesNoType.yes))
3727 {
3728 writer.WriteAttributeString("ReadPermission", "yes");
3729 }
3730 }
3731 if (this.changePermissionFieldSet)
3732 {
3733 if ((this.changePermissionField == YesNoType.no))
3734 {
3735 writer.WriteAttributeString("ChangePermission", "no");
3736 }
3737 if ((this.changePermissionField == YesNoType.yes))
3738 {
3739 writer.WriteAttributeString("ChangePermission", "yes");
3740 }
3741 }
3742 if (this.takeOwnershipFieldSet)
3743 {
3744 if ((this.takeOwnershipField == YesNoType.no))
3745 {
3746 writer.WriteAttributeString("TakeOwnership", "no");
3747 }
3748 if ((this.takeOwnershipField == YesNoType.yes))
3749 {
3750 writer.WriteAttributeString("TakeOwnership", "yes");
3751 }
3752 }
3753 if (this.readAttributesFieldSet)
3754 {
3755 if ((this.readAttributesField == YesNoType.no))
3756 {
3757 writer.WriteAttributeString("ReadAttributes", "no");
3758 }
3759 if ((this.readAttributesField == YesNoType.yes))
3760 {
3761 writer.WriteAttributeString("ReadAttributes", "yes");
3762 }
3763 }
3764 if (this.writeAttributesFieldSet)
3765 {
3766 if ((this.writeAttributesField == YesNoType.no))
3767 {
3768 writer.WriteAttributeString("WriteAttributes", "no");
3769 }
3770 if ((this.writeAttributesField == YesNoType.yes))
3771 {
3772 writer.WriteAttributeString("WriteAttributes", "yes");
3773 }
3774 }
3775 if (this.readExtendedAttributesFieldSet)
3776 {
3777 if ((this.readExtendedAttributesField == YesNoType.no))
3778 {
3779 writer.WriteAttributeString("ReadExtendedAttributes", "no");
3780 }
3781 if ((this.readExtendedAttributesField == YesNoType.yes))
3782 {
3783 writer.WriteAttributeString("ReadExtendedAttributes", "yes");
3784 }
3785 }
3786 if (this.writeExtendedAttributesFieldSet)
3787 {
3788 if ((this.writeExtendedAttributesField == YesNoType.no))
3789 {
3790 writer.WriteAttributeString("WriteExtendedAttributes", "no");
3791 }
3792 if ((this.writeExtendedAttributesField == YesNoType.yes))
3793 {
3794 writer.WriteAttributeString("WriteExtendedAttributes", "yes");
3795 }
3796 }
3797 if (this.synchronizeFieldSet)
3798 {
3799 if ((this.synchronizeField == YesNoType.no))
3800 {
3801 writer.WriteAttributeString("Synchronize", "no");
3802 }
3803 if ((this.synchronizeField == YesNoType.yes))
3804 {
3805 writer.WriteAttributeString("Synchronize", "yes");
3806 }
3807 }
3808 if (this.createFileFieldSet)
3809 {
3810 if ((this.createFileField == YesNoType.no))
3811 {
3812 writer.WriteAttributeString("CreateFile", "no");
3813 }
3814 if ((this.createFileField == YesNoType.yes))
3815 {
3816 writer.WriteAttributeString("CreateFile", "yes");
3817 }
3818 }
3819 if (this.createChildFieldSet)
3820 {
3821 if ((this.createChildField == YesNoType.no))
3822 {
3823 writer.WriteAttributeString("CreateChild", "no");
3824 }
3825 if ((this.createChildField == YesNoType.yes))
3826 {
3827 writer.WriteAttributeString("CreateChild", "yes");
3828 }
3829 }
3830 if (this.deleteChildFieldSet)
3831 {
3832 if ((this.deleteChildField == YesNoType.no))
3833 {
3834 writer.WriteAttributeString("DeleteChild", "no");
3835 }
3836 if ((this.deleteChildField == YesNoType.yes))
3837 {
3838 writer.WriteAttributeString("DeleteChild", "yes");
3839 }
3840 }
3841 if (this.traverseFieldSet)
3842 {
3843 if ((this.traverseField == YesNoType.no))
3844 {
3845 writer.WriteAttributeString("Traverse", "no");
3846 }
3847 if ((this.traverseField == YesNoType.yes))
3848 {
3849 writer.WriteAttributeString("Traverse", "yes");
3850 }
3851 }
3852 if (this.genericAllFieldSet)
3853 {
3854 if ((this.genericAllField == YesNoType.no))
3855 {
3856 writer.WriteAttributeString("GenericAll", "no");
3857 }
3858 if ((this.genericAllField == YesNoType.yes))
3859 {
3860 writer.WriteAttributeString("GenericAll", "yes");
3861 }
3862 }
3863 if (this.genericExecuteFieldSet)
3864 {
3865 if ((this.genericExecuteField == YesNoType.no))
3866 {
3867 writer.WriteAttributeString("GenericExecute", "no");
3868 }
3869 if ((this.genericExecuteField == YesNoType.yes))
3870 {
3871 writer.WriteAttributeString("GenericExecute", "yes");
3872 }
3873 }
3874 if (this.genericWriteFieldSet)
3875 {
3876 if ((this.genericWriteField == YesNoType.no))
3877 {
3878 writer.WriteAttributeString("GenericWrite", "no");
3879 }
3880 if ((this.genericWriteField == YesNoType.yes))
3881 {
3882 writer.WriteAttributeString("GenericWrite", "yes");
3883 }
3884 }
3885 if (this.genericReadFieldSet)
3886 {
3887 if ((this.genericReadField == YesNoType.no))
3888 {
3889 writer.WriteAttributeString("GenericRead", "no");
3890 }
3891 if ((this.genericReadField == YesNoType.yes))
3892 {
3893 writer.WriteAttributeString("GenericRead", "yes");
3894 }
3895 }
3896 writer.WriteEndElement();
3897 }
3898
3899 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
3900 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
3901 void ISetAttributes.SetAttribute(string name, string value)
3902 {
3903 if (String.IsNullOrEmpty(name))
3904 {
3905 throw new ArgumentNullException("name");
3906 }
3907 if (("User" == name))
3908 {
3909 this.userField = value;
3910 this.userFieldSet = true;
3911 }
3912 if (("Read" == name))
3913 {
3914 this.readField = Enums.ParseYesNoType(value);
3915 this.readFieldSet = true;
3916 }
3917 if (("Delete" == name))
3918 {
3919 this.deleteField = Enums.ParseYesNoType(value);
3920 this.deleteFieldSet = true;
3921 }
3922 if (("ReadPermission" == name))
3923 {
3924 this.readPermissionField = Enums.ParseYesNoType(value);
3925 this.readPermissionFieldSet = true;
3926 }
3927 if (("ChangePermission" == name))
3928 {
3929 this.changePermissionField = Enums.ParseYesNoType(value);
3930 this.changePermissionFieldSet = true;
3931 }
3932 if (("TakeOwnership" == name))
3933 {
3934 this.takeOwnershipField = Enums.ParseYesNoType(value);
3935 this.takeOwnershipFieldSet = true;
3936 }
3937 if (("ReadAttributes" == name))
3938 {
3939 this.readAttributesField = Enums.ParseYesNoType(value);
3940 this.readAttributesFieldSet = true;
3941 }
3942 if (("WriteAttributes" == name))
3943 {
3944 this.writeAttributesField = Enums.ParseYesNoType(value);
3945 this.writeAttributesFieldSet = true;
3946 }
3947 if (("ReadExtendedAttributes" == name))
3948 {
3949 this.readExtendedAttributesField = Enums.ParseYesNoType(value);
3950 this.readExtendedAttributesFieldSet = true;
3951 }
3952 if (("WriteExtendedAttributes" == name))
3953 {
3954 this.writeExtendedAttributesField = Enums.ParseYesNoType(value);
3955 this.writeExtendedAttributesFieldSet = true;
3956 }
3957 if (("Synchronize" == name))
3958 {
3959 this.synchronizeField = Enums.ParseYesNoType(value);
3960 this.synchronizeFieldSet = true;
3961 }
3962 if (("CreateFile" == name))
3963 {
3964 this.createFileField = Enums.ParseYesNoType(value);
3965 this.createFileFieldSet = true;
3966 }
3967 if (("CreateChild" == name))
3968 {
3969 this.createChildField = Enums.ParseYesNoType(value);
3970 this.createChildFieldSet = true;
3971 }
3972 if (("DeleteChild" == name))
3973 {
3974 this.deleteChildField = Enums.ParseYesNoType(value);
3975 this.deleteChildFieldSet = true;
3976 }
3977 if (("Traverse" == name))
3978 {
3979 this.traverseField = Enums.ParseYesNoType(value);
3980 this.traverseFieldSet = true;
3981 }
3982 if (("GenericAll" == name))
3983 {
3984 this.genericAllField = Enums.ParseYesNoType(value);
3985 this.genericAllFieldSet = true;
3986 }
3987 if (("GenericExecute" == name))
3988 {
3989 this.genericExecuteField = Enums.ParseYesNoType(value);
3990 this.genericExecuteFieldSet = true;
3991 }
3992 if (("GenericWrite" == name))
3993 {
3994 this.genericWriteField = Enums.ParseYesNoType(value);
3995 this.genericWriteFieldSet = true;
3996 }
3997 if (("GenericRead" == name))
3998 {
3999 this.genericReadField = Enums.ParseYesNoType(value);
4000 this.genericReadFieldSet = true;
4001 }
4002 }
4003 }
4004
4005 /// <summary>
4006 /// Formats a file's contents at install time. The contents are formatted according to the rules of the
4007 /// </summary>
4008 [GeneratedCode("XsdGen", "4.0.0.0")]
4009 public class FormatFile : ISchemaElement, ISetAttributes
4010 {
4011
4012 private string binaryKeyField;
4013
4014 private bool binaryKeyFieldSet;
4015
4016 private ISchemaElement parentElement;
4017
4018 /// <summary>
4019 /// The id of a Binary row that contains a copy of the file. The file in the Binary table overwrites whatever
4020 /// file is installed by the parent component.
4021 /// </summary>
4022 public string BinaryKey
4023 {
4024 get
4025 {
4026 return this.binaryKeyField;
4027 }
4028 set
4029 {
4030 this.binaryKeyFieldSet = true;
4031 this.binaryKeyField = value;
4032 }
4033 }
4034
4035 public virtual ISchemaElement ParentElement
4036 {
4037 get
4038 {
4039 return this.parentElement;
4040 }
4041 set
4042 {
4043 this.parentElement = value;
4044 }
4045 }
4046
4047 /// <summary>
4048 /// Processes this element and all child elements into an XmlWriter.
4049 /// </summary>
4050 public virtual void OutputXml(XmlWriter writer)
4051 {
4052 if ((null == writer))
4053 {
4054 throw new ArgumentNullException("writer");
4055 }
4056 writer.WriteStartElement("FormatFile", "http://wixtoolset.org/schemas/v4/wxs/util");
4057 if (this.binaryKeyFieldSet)
4058 {
4059 writer.WriteAttributeString("BinaryKey", this.binaryKeyField);
4060 }
4061 writer.WriteEndElement();
4062 }
4063
4064 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
4065 void ISetAttributes.SetAttribute(string name, string value)
4066 {
4067 if (String.IsNullOrEmpty(name))
4068 {
4069 throw new ArgumentNullException("name");
4070 }
4071 if (("BinaryKey" == name))
4072 {
4073 this.binaryKeyField = value;
4074 this.binaryKeyFieldSet = true;
4075 }
4076 }
4077 }
4078
4079 /// <summary>
4080 /// Finds user groups on the local machine or specified Active Directory domain. The local machine will be
4081 /// searched for the group first then fallback to looking in Active Directory. This element is not capable
4082 /// of creating new groups but can be used to add new or existing users to an existing group.
4083 /// </summary>
4084 [GeneratedCode("XsdGen", "4.0.0.0")]
4085 public class Group : ISchemaElement, ISetAttributes
4086 {
4087
4088 private string idField;
4089
4090 private bool idFieldSet;
4091
4092 private string nameField;
4093
4094 private bool nameFieldSet;
4095
4096 private string domainField;
4097
4098 private bool domainFieldSet;
4099
4100 private ISchemaElement parentElement;
4101
4102 /// <summary>
4103 /// Unique identifier in your installation package for this group.
4104 /// </summary>
4105 public string Id
4106 {
4107 get
4108 {
4109 return this.idField;
4110 }
4111 set
4112 {
4113 this.idFieldSet = true;
4114 this.idField = value;
4115 }
4116 }
4117
4118 /// <summary>
4119 /// A
4120 /// </summary>
4121 public string Name
4122 {
4123 get
4124 {
4125 return this.nameField;
4126 }
4127 set
4128 {
4129 this.nameFieldSet = true;
4130 this.nameField = value;
4131 }
4132 }
4133
4134 /// <summary>
4135 /// An optional
4136 /// </summary>
4137 public string Domain
4138 {
4139 get
4140 {
4141 return this.domainField;
4142 }
4143 set
4144 {
4145 this.domainFieldSet = true;
4146 this.domainField = value;
4147 }
4148 }
4149
4150 public virtual ISchemaElement ParentElement
4151 {
4152 get
4153 {
4154 return this.parentElement;
4155 }
4156 set
4157 {
4158 this.parentElement = value;
4159 }
4160 }
4161
4162 /// <summary>
4163 /// Processes this element and all child elements into an XmlWriter.
4164 /// </summary>
4165 public virtual void OutputXml(XmlWriter writer)
4166 {
4167 if ((null == writer))
4168 {
4169 throw new ArgumentNullException("writer");
4170 }
4171 writer.WriteStartElement("Group", "http://wixtoolset.org/schemas/v4/wxs/util");
4172 if (this.idFieldSet)
4173 {
4174 writer.WriteAttributeString("Id", this.idField);
4175 }
4176 if (this.nameFieldSet)
4177 {
4178 writer.WriteAttributeString("Name", this.nameField);
4179 }
4180 if (this.domainFieldSet)
4181 {
4182 writer.WriteAttributeString("Domain", this.domainField);
4183 }
4184 writer.WriteEndElement();
4185 }
4186
4187 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
4188 void ISetAttributes.SetAttribute(string name, string value)
4189 {
4190 if (String.IsNullOrEmpty(name))
4191 {
4192 throw new ArgumentNullException("name");
4193 }
4194 if (("Id" == name))
4195 {
4196 this.idField = value;
4197 this.idFieldSet = true;
4198 }
4199 if (("Name" == name))
4200 {
4201 this.nameField = value;
4202 this.nameFieldSet = true;
4203 }
4204 if (("Domain" == name))
4205 {
4206 this.domainField = value;
4207 this.domainFieldSet = true;
4208 }
4209 }
4210 }
4211
4212 /// <summary>
4213 /// Used to join a user to a group
4214 /// </summary>
4215 [GeneratedCode("XsdGen", "4.0.0.0")]
4216 public class GroupRef : ISchemaElement, ISetAttributes
4217 {
4218
4219 private string idField;
4220
4221 private bool idFieldSet;
4222
4223 private ISchemaElement parentElement;
4224
4225 public string Id
4226 {
4227 get
4228 {
4229 return this.idField;
4230 }
4231 set
4232 {
4233 this.idFieldSet = true;
4234 this.idField = value;
4235 }
4236 }
4237
4238 public virtual ISchemaElement ParentElement
4239 {
4240 get
4241 {
4242 return this.parentElement;
4243 }
4244 set
4245 {
4246 this.parentElement = value;
4247 }
4248 }
4249
4250 /// <summary>
4251 /// Processes this element and all child elements into an XmlWriter.
4252 /// </summary>
4253 public virtual void OutputXml(XmlWriter writer)
4254 {
4255 if ((null == writer))
4256 {
4257 throw new ArgumentNullException("writer");
4258 }
4259 writer.WriteStartElement("GroupRef", "http://wixtoolset.org/schemas/v4/wxs/util");
4260 if (this.idFieldSet)
4261 {
4262 writer.WriteAttributeString("Id", this.idField);
4263 }
4264 writer.WriteEndElement();
4265 }
4266
4267 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
4268 void ISetAttributes.SetAttribute(string name, string value)
4269 {
4270 if (String.IsNullOrEmpty(name))
4271 {
4272 throw new ArgumentNullException("name");
4273 }
4274 if (("Id" == name))
4275 {
4276 this.idField = value;
4277 this.idFieldSet = true;
4278 }
4279 }
4280 }
4281
4282 /// <summary>
4283 /// Creates a shortcut to a URL.
4284 /// </summary>
4285 [GeneratedCode("XsdGen", "4.0.0.0")]
4286 public class InternetShortcut : ISchemaElement, ISetAttributes
4287 {
4288
4289 private string idField;
4290
4291 private bool idFieldSet;
4292
4293 private string directoryField;
4294
4295 private bool directoryFieldSet;
4296
4297 private string nameField;
4298
4299 private bool nameFieldSet;
4300
4301 private string targetField;
4302
4303 private bool targetFieldSet;
4304
4305 private TypeType typeField;
4306
4307 private bool typeFieldSet;
4308
4309 private string iconFileField;
4310
4311 private bool iconFileFieldSet;
4312
4313 private int iconIndexField;
4314
4315 private bool iconIndexFieldSet;
4316
4317 private ISchemaElement parentElement;
4318
4319 /// <summary>
4320 /// Unique identifier in your installation package for this Internet shortcut.
4321 /// </summary>
4322 public string Id
4323 {
4324 get
4325 {
4326 return this.idField;
4327 }
4328 set
4329 {
4330 this.idFieldSet = true;
4331 this.idField = value;
4332 }
4333 }
4334
4335 /// <summary>
4336 /// Identifier reference to Directory element where shortcut is to be created. This attribute's value defaults to the parent Component directory.
4337 /// </summary>
4338 public string Directory
4339 {
4340 get
4341 {
4342 return this.directoryField;
4343 }
4344 set
4345 {
4346 this.directoryFieldSet = true;
4347 this.directoryField = value;
4348 }
4349 }
4350
4351 /// <summary>
4352 /// The name of the shortcut file, which is visible to the user. (The .lnk
4353 /// extension is added automatically and by default, is not shown to the user.)
4354 /// </summary>
4355 public string Name
4356 {
4357 get
4358 {
4359 return this.nameField;
4360 }
4361 set
4362 {
4363 this.nameFieldSet = true;
4364 this.nameField = value;
4365 }
4366 }
4367
4368 /// <summary>
4369 /// URL that should be opened when the user selects the shortcut. Windows
4370 /// opens the URL in the appropriate handler for the protocol specified
4371 /// in the URL. Note that this is a formatted field, so you can use
4372 /// [#fileId] syntax to refer to a file being installed (using the file:
4373 /// protocol).
4374 /// </summary>
4375 public string Target
4376 {
4377 get
4378 {
4379 return this.targetField;
4380 }
4381 set
4382 {
4383 this.targetFieldSet = true;
4384 this.targetField = value;
4385 }
4386 }
4387
4388 /// <summary>
4389 /// Which type of shortcut should be created.
4390 /// </summary>
4391 public TypeType Type
4392 {
4393 get
4394 {
4395 return this.typeField;
4396 }
4397 set
4398 {
4399 this.typeFieldSet = true;
4400 this.typeField = value;
4401 }
4402 }
4403
4404 /// <summary>
4405 /// Icon file that should be displayed. Note that this is a formatted field, so you can use
4406 /// [#fileId] syntax to refer to a file being installed (using the file:
4407 /// protocol).
4408 /// </summary>
4409 public string IconFile
4410 {
4411 get
4412 {
4413 return this.iconFileField;
4414 }
4415 set
4416 {
4417 this.iconFileFieldSet = true;
4418 this.iconFileField = value;
4419 }
4420 }
4421
4422 /// <summary>
4423 /// Index of the icon being referenced
4424 /// </summary>
4425 public int IconIndex
4426 {
4427 get
4428 {
4429 return this.iconIndexField;
4430 }
4431 set
4432 {
4433 this.iconIndexFieldSet = true;
4434 this.iconIndexField = value;
4435 }
4436 }
4437
4438 public virtual ISchemaElement ParentElement
4439 {
4440 get
4441 {
4442 return this.parentElement;
4443 }
4444 set
4445 {
4446 this.parentElement = value;
4447 }
4448 }
4449
4450 /// <summary>
4451 /// Parses a TypeType from a string.
4452 /// </summary>
4453 public static TypeType ParseTypeType(string value)
4454 {
4455 TypeType parsedValue;
4456 InternetShortcut.TryParseTypeType(value, out parsedValue);
4457 return parsedValue;
4458 }
4459
4460 /// <summary>
4461 /// Tries to parse a TypeType from a string.
4462 /// </summary>
4463 public static bool TryParseTypeType(string value, out TypeType parsedValue)
4464 {
4465 parsedValue = TypeType.NotSet;
4466 if (string.IsNullOrEmpty(value))
4467 {
4468 return false;
4469 }
4470 if (("url" == value))
4471 {
4472 parsedValue = TypeType.url;
4473 }
4474 else
4475 {
4476 if (("link" == value))
4477 {
4478 parsedValue = TypeType.link;
4479 }
4480 else
4481 {
4482 parsedValue = TypeType.IllegalValue;
4483 return false;
4484 }
4485 }
4486 return true;
4487 }
4488
4489 /// <summary>
4490 /// Processes this element and all child elements into an XmlWriter.
4491 /// </summary>
4492 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
4493 public virtual void OutputXml(XmlWriter writer)
4494 {
4495 if ((null == writer))
4496 {
4497 throw new ArgumentNullException("writer");
4498 }
4499 writer.WriteStartElement("InternetShortcut", "http://wixtoolset.org/schemas/v4/wxs/util");
4500 if (this.idFieldSet)
4501 {
4502 writer.WriteAttributeString("Id", this.idField);
4503 }
4504 if (this.directoryFieldSet)
4505 {
4506 writer.WriteAttributeString("Directory", this.directoryField);
4507 }
4508 if (this.nameFieldSet)
4509 {
4510 writer.WriteAttributeString("Name", this.nameField);
4511 }
4512 if (this.targetFieldSet)
4513 {
4514 writer.WriteAttributeString("Target", this.targetField);
4515 }
4516 if (this.typeFieldSet)
4517 {
4518 if ((this.typeField == TypeType.url))
4519 {
4520 writer.WriteAttributeString("Type", "url");
4521 }
4522 if ((this.typeField == TypeType.link))
4523 {
4524 writer.WriteAttributeString("Type", "link");
4525 }
4526 }
4527 if (this.iconFileFieldSet)
4528 {
4529 writer.WriteAttributeString("IconFile", this.iconFileField);
4530 }
4531 if (this.iconIndexFieldSet)
4532 {
4533 writer.WriteAttributeString("IconIndex", this.iconIndexField.ToString(CultureInfo.InvariantCulture));
4534 }
4535 writer.WriteEndElement();
4536 }
4537
4538 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
4539 void ISetAttributes.SetAttribute(string name, string value)
4540 {
4541 if (String.IsNullOrEmpty(name))
4542 {
4543 throw new ArgumentNullException("name");
4544 }
4545 if (("Id" == name))
4546 {
4547 this.idField = value;
4548 this.idFieldSet = true;
4549 }
4550 if (("Directory" == name))
4551 {
4552 this.directoryField = value;
4553 this.directoryFieldSet = true;
4554 }
4555 if (("Name" == name))
4556 {
4557 this.nameField = value;
4558 this.nameFieldSet = true;
4559 }
4560 if (("Target" == name))
4561 {
4562 this.targetField = value;
4563 this.targetFieldSet = true;
4564 }
4565 if (("Type" == name))
4566 {
4567 this.typeField = InternetShortcut.ParseTypeType(value);
4568 this.typeFieldSet = true;
4569 }
4570 if (("IconFile" == name))
4571 {
4572 this.iconFileField = value;
4573 this.iconFileFieldSet = true;
4574 }
4575 if (("IconIndex" == name))
4576 {
4577 this.iconIndexField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
4578 this.iconIndexFieldSet = true;
4579 }
4580 }
4581
4582 [GeneratedCode("XsdGen", "4.0.0.0")]
4583 public enum TypeType
4584 {
4585
4586 IllegalValue = int.MaxValue,
4587
4588 NotSet = -1,
4589
4590 /// <summary>
4591 /// Creates .url files using IUniformResourceLocatorW.
4592 /// </summary>
4593 url,
4594
4595 /// <summary>
4596 /// Creates .lnk files using IShellLinkW (default).
4597 /// </summary>
4598 link,
4599 }
4600 }
4601
4602 /// <summary>
4603 /// Used to create performance categories and configure performance counters.
4604 /// </summary>
4605 [GeneratedCode("XsdGen", "4.0.0.0")]
4606 public class PerformanceCategory : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
4607 {
4608
4609 private ElementCollection children;
4610
4611 private string idField;
4612
4613 private bool idFieldSet;
4614
4615 private string nameField;
4616
4617 private bool nameFieldSet;
4618
4619 private string helpField;
4620
4621 private bool helpFieldSet;
4622
4623 private YesNoType multiInstanceField;
4624
4625 private bool multiInstanceFieldSet;
4626
4627 private string libraryField;
4628
4629 private bool libraryFieldSet;
4630
4631 private string openField;
4632
4633 private bool openFieldSet;
4634
4635 private string closeField;
4636
4637 private bool closeFieldSet;
4638
4639 private string collectField;
4640
4641 private bool collectFieldSet;
4642
4643 private PerformanceCounterLanguageType defaultLanguageField;
4644
4645 private bool defaultLanguageFieldSet;
4646
4647 private ISchemaElement parentElement;
4648
4649 public PerformanceCategory()
4650 {
4651 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
4652 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(PerformanceCounter)));
4653 this.children = childCollection0;
4654 }
4655
4656 public virtual IEnumerable Children
4657 {
4658 get
4659 {
4660 return this.children;
4661 }
4662 }
4663
4664 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
4665 public virtual IEnumerable this[System.Type childType]
4666 {
4667 get
4668 {
4669 return this.children.Filter(childType);
4670 }
4671 }
4672
4673 /// <summary>
4674 /// Unique identifier in your installation package for this performance counter category.
4675 /// </summary>
4676 public string Id
4677 {
4678 get
4679 {
4680 return this.idField;
4681 }
4682 set
4683 {
4684 this.idFieldSet = true;
4685 this.idField = value;
4686 }
4687 }
4688
4689 /// <summary>
4690 /// Name for the performance counter category. If this attribute is not provided the Id attribute is used as the name of the performance counter category.
4691 /// </summary>
4692 public string Name
4693 {
4694 get
4695 {
4696 return this.nameField;
4697 }
4698 set
4699 {
4700 this.nameFieldSet = true;
4701 this.nameField = value;
4702 }
4703 }
4704
4705 /// <summary>
4706 /// Optional help text for the performance counter category.
4707 /// </summary>
4708 public string Help
4709 {
4710 get
4711 {
4712 return this.helpField;
4713 }
4714 set
4715 {
4716 this.helpFieldSet = true;
4717 this.helpField = value;
4718 }
4719 }
4720
4721 /// <summary>
4722 /// Flag that specifies whether the performance counter category is multi or single instanced. Default is single instance.
4723 /// </summary>
4724 public YesNoType MultiInstance
4725 {
4726 get
4727 {
4728 return this.multiInstanceField;
4729 }
4730 set
4731 {
4732 this.multiInstanceFieldSet = true;
4733 this.multiInstanceField = value;
4734 }
4735 }
4736
4737 /// <summary>
4738 /// DLL that contains the performance counter. The default is "netfxperf.dll" which should be used for all managed code performance counters.
4739 /// </summary>
4740 public string Library
4741 {
4742 get
4743 {
4744 return this.libraryField;
4745 }
4746 set
4747 {
4748 this.libraryFieldSet = true;
4749 this.libraryField = value;
4750 }
4751 }
4752
4753 /// <summary>
4754 /// Function entry point in to the Library DLL called when opening the performance counter. The default is "OpenPerformanceData" which should be used for all managed code performance counters.
4755 /// </summary>
4756 public string Open
4757 {
4758 get
4759 {
4760 return this.openField;
4761 }
4762 set
4763 {
4764 this.openFieldSet = true;
4765 this.openField = value;
4766 }
4767 }
4768
4769 /// <summary>
4770 /// Function entry point in to the Library DLL called when closing the performance counter. The default is "ClosePerformanceData" which should be used for all managed code performance counters.
4771 /// </summary>
4772 public string Close
4773 {
4774 get
4775 {
4776 return this.closeField;
4777 }
4778 set
4779 {
4780 this.closeFieldSet = true;
4781 this.closeField = value;
4782 }
4783 }
4784
4785 /// <summary>
4786 /// Function entry point in to the Library DLL called when collecting data from the performance counter. The default is "CollectPerformanceData" which should be used for all managed code performance counters.
4787 /// </summary>
4788 public string Collect
4789 {
4790 get
4791 {
4792 return this.collectField;
4793 }
4794 set
4795 {
4796 this.collectFieldSet = true;
4797 this.collectField = value;
4798 }
4799 }
4800
4801 /// <summary>
4802 /// Default language for the performance category and contained counters' names and help text.
4803 /// </summary>
4804 public PerformanceCounterLanguageType DefaultLanguage
4805 {
4806 get
4807 {
4808 return this.defaultLanguageField;
4809 }
4810 set
4811 {
4812 this.defaultLanguageFieldSet = true;
4813 this.defaultLanguageField = value;
4814 }
4815 }
4816
4817 public virtual ISchemaElement ParentElement
4818 {
4819 get
4820 {
4821 return this.parentElement;
4822 }
4823 set
4824 {
4825 this.parentElement = value;
4826 }
4827 }
4828
4829 public virtual void AddChild(ISchemaElement child)
4830 {
4831 if ((null == child))
4832 {
4833 throw new ArgumentNullException("child");
4834 }
4835 this.children.AddElement(child);
4836 child.ParentElement = this;
4837 }
4838
4839 public virtual void RemoveChild(ISchemaElement child)
4840 {
4841 if ((null == child))
4842 {
4843 throw new ArgumentNullException("child");
4844 }
4845 this.children.RemoveElement(child);
4846 child.ParentElement = null;
4847 }
4848
4849 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
4850 ISchemaElement ICreateChildren.CreateChild(string childName)
4851 {
4852 if (String.IsNullOrEmpty(childName))
4853 {
4854 throw new ArgumentNullException("childName");
4855 }
4856 ISchemaElement childValue = null;
4857 if (("PerformanceCounter" == childName))
4858 {
4859 childValue = new PerformanceCounter();
4860 }
4861 if ((null == childValue))
4862 {
4863 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
4864 }
4865 return childValue;
4866 }
4867
4868 /// <summary>
4869 /// Processes this element and all child elements into an XmlWriter.
4870 /// </summary>
4871 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
4872 public virtual void OutputXml(XmlWriter writer)
4873 {
4874 if ((null == writer))
4875 {
4876 throw new ArgumentNullException("writer");
4877 }
4878 writer.WriteStartElement("PerformanceCategory", "http://wixtoolset.org/schemas/v4/wxs/util");
4879 if (this.idFieldSet)
4880 {
4881 writer.WriteAttributeString("Id", this.idField);
4882 }
4883 if (this.nameFieldSet)
4884 {
4885 writer.WriteAttributeString("Name", this.nameField);
4886 }
4887 if (this.helpFieldSet)
4888 {
4889 writer.WriteAttributeString("Help", this.helpField);
4890 }
4891 if (this.multiInstanceFieldSet)
4892 {
4893 if ((this.multiInstanceField == YesNoType.no))
4894 {
4895 writer.WriteAttributeString("MultiInstance", "no");
4896 }
4897 if ((this.multiInstanceField == YesNoType.yes))
4898 {
4899 writer.WriteAttributeString("MultiInstance", "yes");
4900 }
4901 }
4902 if (this.libraryFieldSet)
4903 {
4904 writer.WriteAttributeString("Library", this.libraryField);
4905 }
4906 if (this.openFieldSet)
4907 {
4908 writer.WriteAttributeString("Open", this.openField);
4909 }
4910 if (this.closeFieldSet)
4911 {
4912 writer.WriteAttributeString("Close", this.closeField);
4913 }
4914 if (this.collectFieldSet)
4915 {
4916 writer.WriteAttributeString("Collect", this.collectField);
4917 }
4918 if (this.defaultLanguageFieldSet)
4919 {
4920 if ((this.defaultLanguageField == PerformanceCounterLanguageType.afrikaans))
4921 {
4922 writer.WriteAttributeString("DefaultLanguage", "afrikaans");
4923 }
4924 if ((this.defaultLanguageField == PerformanceCounterLanguageType.albanian))
4925 {
4926 writer.WriteAttributeString("DefaultLanguage", "albanian");
4927 }
4928 if ((this.defaultLanguageField == PerformanceCounterLanguageType.arabic))
4929 {
4930 writer.WriteAttributeString("DefaultLanguage", "arabic");
4931 }
4932 if ((this.defaultLanguageField == PerformanceCounterLanguageType.armenian))
4933 {
4934 writer.WriteAttributeString("DefaultLanguage", "armenian");
4935 }
4936 if ((this.defaultLanguageField == PerformanceCounterLanguageType.assamese))
4937 {
4938 writer.WriteAttributeString("DefaultLanguage", "assamese");
4939 }
4940 if ((this.defaultLanguageField == PerformanceCounterLanguageType.azeri))
4941 {
4942 writer.WriteAttributeString("DefaultLanguage", "azeri");
4943 }
4944 if ((this.defaultLanguageField == PerformanceCounterLanguageType.basque))
4945 {
4946 writer.WriteAttributeString("DefaultLanguage", "basque");
4947 }
4948 if ((this.defaultLanguageField == PerformanceCounterLanguageType.belarusian))
4949 {
4950 writer.WriteAttributeString("DefaultLanguage", "belarusian");
4951 }
4952 if ((this.defaultLanguageField == PerformanceCounterLanguageType.bengali))
4953 {
4954 writer.WriteAttributeString("DefaultLanguage", "bengali");
4955 }
4956 if ((this.defaultLanguageField == PerformanceCounterLanguageType.bulgarian))
4957 {
4958 writer.WriteAttributeString("DefaultLanguage", "bulgarian");
4959 }
4960 if ((this.defaultLanguageField == PerformanceCounterLanguageType.catalan))
4961 {
4962 writer.WriteAttributeString("DefaultLanguage", "catalan");
4963 }
4964 if ((this.defaultLanguageField == PerformanceCounterLanguageType.chinese))
4965 {
4966 writer.WriteAttributeString("DefaultLanguage", "chinese");
4967 }
4968 if ((this.defaultLanguageField == PerformanceCounterLanguageType.croatian))
4969 {
4970 writer.WriteAttributeString("DefaultLanguage", "croatian");
4971 }
4972 if ((this.defaultLanguageField == PerformanceCounterLanguageType.czech))
4973 {
4974 writer.WriteAttributeString("DefaultLanguage", "czech");
4975 }
4976 if ((this.defaultLanguageField == PerformanceCounterLanguageType.danish))
4977 {
4978 writer.WriteAttributeString("DefaultLanguage", "danish");
4979 }
4980 if ((this.defaultLanguageField == PerformanceCounterLanguageType.divehi))
4981 {
4982 writer.WriteAttributeString("DefaultLanguage", "divehi");
4983 }
4984 if ((this.defaultLanguageField == PerformanceCounterLanguageType.dutch))
4985 {
4986 writer.WriteAttributeString("DefaultLanguage", "dutch");
4987 }
4988 if ((this.defaultLanguageField == PerformanceCounterLanguageType.english))
4989 {
4990 writer.WriteAttributeString("DefaultLanguage", "english");
4991 }
4992 if ((this.defaultLanguageField == PerformanceCounterLanguageType.estonian))
4993 {
4994 writer.WriteAttributeString("DefaultLanguage", "estonian");
4995 }
4996 if ((this.defaultLanguageField == PerformanceCounterLanguageType.faeroese))
4997 {
4998 writer.WriteAttributeString("DefaultLanguage", "faeroese");
4999 }
5000 if ((this.defaultLanguageField == PerformanceCounterLanguageType.farsi))
5001 {
5002 writer.WriteAttributeString("DefaultLanguage", "farsi");
5003 }
5004 if ((this.defaultLanguageField == PerformanceCounterLanguageType.finnish))
5005 {
5006 writer.WriteAttributeString("DefaultLanguage", "finnish");
5007 }
5008 if ((this.defaultLanguageField == PerformanceCounterLanguageType.french))
5009 {
5010 writer.WriteAttributeString("DefaultLanguage", "french");
5011 }
5012 if ((this.defaultLanguageField == PerformanceCounterLanguageType.galician))
5013 {
5014 writer.WriteAttributeString("DefaultLanguage", "galician");
5015 }
5016 if ((this.defaultLanguageField == PerformanceCounterLanguageType.georgian))
5017 {
5018 writer.WriteAttributeString("DefaultLanguage", "georgian");
5019 }
5020 if ((this.defaultLanguageField == PerformanceCounterLanguageType.german))
5021 {
5022 writer.WriteAttributeString("DefaultLanguage", "german");
5023 }
5024 if ((this.defaultLanguageField == PerformanceCounterLanguageType.greek))
5025 {
5026 writer.WriteAttributeString("DefaultLanguage", "greek");
5027 }
5028 if ((this.defaultLanguageField == PerformanceCounterLanguageType.gujarati))
5029 {
5030 writer.WriteAttributeString("DefaultLanguage", "gujarati");
5031 }
5032 if ((this.defaultLanguageField == PerformanceCounterLanguageType.hebrew))
5033 {
5034 writer.WriteAttributeString("DefaultLanguage", "hebrew");
5035 }
5036 if ((this.defaultLanguageField == PerformanceCounterLanguageType.hindi))
5037 {
5038 writer.WriteAttributeString("DefaultLanguage", "hindi");
5039 }
5040 if ((this.defaultLanguageField == PerformanceCounterLanguageType.hungarian))
5041 {
5042 writer.WriteAttributeString("DefaultLanguage", "hungarian");
5043 }
5044 if ((this.defaultLanguageField == PerformanceCounterLanguageType.icelandic))
5045 {
5046 writer.WriteAttributeString("DefaultLanguage", "icelandic");
5047 }
5048 if ((this.defaultLanguageField == PerformanceCounterLanguageType.indonesian))
5049 {
5050 writer.WriteAttributeString("DefaultLanguage", "indonesian");
5051 }
5052 if ((this.defaultLanguageField == PerformanceCounterLanguageType.italian))
5053 {
5054 writer.WriteAttributeString("DefaultLanguage", "italian");
5055 }
5056 if ((this.defaultLanguageField == PerformanceCounterLanguageType.japanese))
5057 {
5058 writer.WriteAttributeString("DefaultLanguage", "japanese");
5059 }
5060 if ((this.defaultLanguageField == PerformanceCounterLanguageType.kannada))
5061 {
5062 writer.WriteAttributeString("DefaultLanguage", "kannada");
5063 }
5064 if ((this.defaultLanguageField == PerformanceCounterLanguageType.kashmiri))
5065 {
5066 writer.WriteAttributeString("DefaultLanguage", "kashmiri");
5067 }
5068 if ((this.defaultLanguageField == PerformanceCounterLanguageType.kazak))
5069 {
5070 writer.WriteAttributeString("DefaultLanguage", "kazak");
5071 }
5072 if ((this.defaultLanguageField == PerformanceCounterLanguageType.konkani))
5073 {
5074 writer.WriteAttributeString("DefaultLanguage", "konkani");
5075 }
5076 if ((this.defaultLanguageField == PerformanceCounterLanguageType.korean))
5077 {
5078 writer.WriteAttributeString("DefaultLanguage", "korean");
5079 }
5080 if ((this.defaultLanguageField == PerformanceCounterLanguageType.kyrgyz))
5081 {
5082 writer.WriteAttributeString("DefaultLanguage", "kyrgyz");
5083 }
5084 if ((this.defaultLanguageField == PerformanceCounterLanguageType.latvian))
5085 {
5086 writer.WriteAttributeString("DefaultLanguage", "latvian");
5087 }
5088 if ((this.defaultLanguageField == PerformanceCounterLanguageType.lithuanian))
5089 {
5090 writer.WriteAttributeString("DefaultLanguage", "lithuanian");
5091 }
5092 if ((this.defaultLanguageField == PerformanceCounterLanguageType.macedonian))
5093 {
5094 writer.WriteAttributeString("DefaultLanguage", "macedonian");
5095 }
5096 if ((this.defaultLanguageField == PerformanceCounterLanguageType.malay))
5097 {
5098 writer.WriteAttributeString("DefaultLanguage", "malay");
5099 }
5100 if ((this.defaultLanguageField == PerformanceCounterLanguageType.malayalam))
5101 {
5102 writer.WriteAttributeString("DefaultLanguage", "malayalam");
5103 }
5104 if ((this.defaultLanguageField == PerformanceCounterLanguageType.manipuri))
5105 {
5106 writer.WriteAttributeString("DefaultLanguage", "manipuri");
5107 }
5108 if ((this.defaultLanguageField == PerformanceCounterLanguageType.marathi))
5109 {
5110 writer.WriteAttributeString("DefaultLanguage", "marathi");
5111 }
5112 if ((this.defaultLanguageField == PerformanceCounterLanguageType.mongolian))
5113 {
5114 writer.WriteAttributeString("DefaultLanguage", "mongolian");
5115 }
5116 if ((this.defaultLanguageField == PerformanceCounterLanguageType.nepali))
5117 {
5118 writer.WriteAttributeString("DefaultLanguage", "nepali");
5119 }
5120 if ((this.defaultLanguageField == PerformanceCounterLanguageType.norwegian))
5121 {
5122 writer.WriteAttributeString("DefaultLanguage", "norwegian");
5123 }
5124 if ((this.defaultLanguageField == PerformanceCounterLanguageType.oriya))
5125 {
5126 writer.WriteAttributeString("DefaultLanguage", "oriya");
5127 }
5128 if ((this.defaultLanguageField == PerformanceCounterLanguageType.polish))
5129 {
5130 writer.WriteAttributeString("DefaultLanguage", "polish");
5131 }
5132 if ((this.defaultLanguageField == PerformanceCounterLanguageType.portuguese))
5133 {
5134 writer.WriteAttributeString("DefaultLanguage", "portuguese");
5135 }
5136 if ((this.defaultLanguageField == PerformanceCounterLanguageType.punjabi))
5137 {
5138 writer.WriteAttributeString("DefaultLanguage", "punjabi");
5139 }
5140 if ((this.defaultLanguageField == PerformanceCounterLanguageType.romanian))
5141 {
5142 writer.WriteAttributeString("DefaultLanguage", "romanian");
5143 }
5144 if ((this.defaultLanguageField == PerformanceCounterLanguageType.russian))
5145 {
5146 writer.WriteAttributeString("DefaultLanguage", "russian");
5147 }
5148 if ((this.defaultLanguageField == PerformanceCounterLanguageType.sanskrit))
5149 {
5150 writer.WriteAttributeString("DefaultLanguage", "sanskrit");
5151 }
5152 if ((this.defaultLanguageField == PerformanceCounterLanguageType.serbian))
5153 {
5154 writer.WriteAttributeString("DefaultLanguage", "serbian");
5155 }
5156 if ((this.defaultLanguageField == PerformanceCounterLanguageType.sindhi))
5157 {
5158 writer.WriteAttributeString("DefaultLanguage", "sindhi");
5159 }
5160 if ((this.defaultLanguageField == PerformanceCounterLanguageType.slovak))
5161 {
5162 writer.WriteAttributeString("DefaultLanguage", "slovak");
5163 }
5164 if ((this.defaultLanguageField == PerformanceCounterLanguageType.slovenian))
5165 {
5166 writer.WriteAttributeString("DefaultLanguage", "slovenian");
5167 }
5168 if ((this.defaultLanguageField == PerformanceCounterLanguageType.spanish))
5169 {
5170 writer.WriteAttributeString("DefaultLanguage", "spanish");
5171 }
5172 if ((this.defaultLanguageField == PerformanceCounterLanguageType.swahili))
5173 {
5174 writer.WriteAttributeString("DefaultLanguage", "swahili");
5175 }
5176 if ((this.defaultLanguageField == PerformanceCounterLanguageType.swedish))
5177 {
5178 writer.WriteAttributeString("DefaultLanguage", "swedish");
5179 }
5180 if ((this.defaultLanguageField == PerformanceCounterLanguageType.syriac))
5181 {
5182 writer.WriteAttributeString("DefaultLanguage", "syriac");
5183 }
5184 if ((this.defaultLanguageField == PerformanceCounterLanguageType.tamil))
5185 {
5186 writer.WriteAttributeString("DefaultLanguage", "tamil");
5187 }
5188 if ((this.defaultLanguageField == PerformanceCounterLanguageType.tatar))
5189 {
5190 writer.WriteAttributeString("DefaultLanguage", "tatar");
5191 }
5192 if ((this.defaultLanguageField == PerformanceCounterLanguageType.telugu))
5193 {
5194 writer.WriteAttributeString("DefaultLanguage", "telugu");
5195 }
5196 if ((this.defaultLanguageField == PerformanceCounterLanguageType.thai))
5197 {
5198 writer.WriteAttributeString("DefaultLanguage", "thai");
5199 }
5200 if ((this.defaultLanguageField == PerformanceCounterLanguageType.turkish))
5201 {
5202 writer.WriteAttributeString("DefaultLanguage", "turkish");
5203 }
5204 if ((this.defaultLanguageField == PerformanceCounterLanguageType.ukrainian))
5205 {
5206 writer.WriteAttributeString("DefaultLanguage", "ukrainian");
5207 }
5208 if ((this.defaultLanguageField == PerformanceCounterLanguageType.urdu))
5209 {
5210 writer.WriteAttributeString("DefaultLanguage", "urdu");
5211 }
5212 if ((this.defaultLanguageField == PerformanceCounterLanguageType.uzbek))
5213 {
5214 writer.WriteAttributeString("DefaultLanguage", "uzbek");
5215 }
5216 if ((this.defaultLanguageField == PerformanceCounterLanguageType.vietnamese))
5217 {
5218 writer.WriteAttributeString("DefaultLanguage", "vietnamese");
5219 }
5220 }
5221 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
5222 {
5223 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
5224 childElement.OutputXml(writer);
5225 }
5226 writer.WriteEndElement();
5227 }
5228
5229 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
5230 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
5231 void ISetAttributes.SetAttribute(string name, string value)
5232 {
5233 if (String.IsNullOrEmpty(name))
5234 {
5235 throw new ArgumentNullException("name");
5236 }
5237 if (("Id" == name))
5238 {
5239 this.idField = value;
5240 this.idFieldSet = true;
5241 }
5242 if (("Name" == name))
5243 {
5244 this.nameField = value;
5245 this.nameFieldSet = true;
5246 }
5247 if (("Help" == name))
5248 {
5249 this.helpField = value;
5250 this.helpFieldSet = true;
5251 }
5252 if (("MultiInstance" == name))
5253 {
5254 this.multiInstanceField = Enums.ParseYesNoType(value);
5255 this.multiInstanceFieldSet = true;
5256 }
5257 if (("Library" == name))
5258 {
5259 this.libraryField = value;
5260 this.libraryFieldSet = true;
5261 }
5262 if (("Open" == name))
5263 {
5264 this.openField = value;
5265 this.openFieldSet = true;
5266 }
5267 if (("Close" == name))
5268 {
5269 this.closeField = value;
5270 this.closeFieldSet = true;
5271 }
5272 if (("Collect" == name))
5273 {
5274 this.collectField = value;
5275 this.collectFieldSet = true;
5276 }
5277 if (("DefaultLanguage" == name))
5278 {
5279 this.defaultLanguageField = Enums.ParsePerformanceCounterLanguageType(value);
5280 this.defaultLanguageFieldSet = true;
5281 }
5282 }
5283 }
5284
5285 /// <summary>
5286 /// Creates a performance counter in a performance category.
5287 /// </summary>
5288 [GeneratedCode("XsdGen", "4.0.0.0")]
5289 public class PerformanceCounter : ISchemaElement, ISetAttributes
5290 {
5291
5292 private string nameField;
5293
5294 private bool nameFieldSet;
5295
5296 private string helpField;
5297
5298 private bool helpFieldSet;
5299
5300 private PerformanceCounterTypesType typeField;
5301
5302 private bool typeFieldSet;
5303
5304 private PerformanceCounterLanguageType languageField;
5305
5306 private bool languageFieldSet;
5307
5308 private ISchemaElement parentElement;
5309
5310 /// <summary>
5311 /// Name for the performance counter.
5312 /// </summary>
5313 public string Name
5314 {
5315 get
5316 {
5317 return this.nameField;
5318 }
5319 set
5320 {
5321 this.nameFieldSet = true;
5322 this.nameField = value;
5323 }
5324 }
5325
5326 /// <summary>
5327 /// Optional help text for the performance counter.
5328 /// </summary>
5329 public string Help
5330 {
5331 get
5332 {
5333 return this.helpField;
5334 }
5335 set
5336 {
5337 this.helpFieldSet = true;
5338 this.helpField = value;
5339 }
5340 }
5341
5342 /// <summary>
5343 /// Type of the performance counter.
5344 /// </summary>
5345 public PerformanceCounterTypesType Type
5346 {
5347 get
5348 {
5349 return this.typeField;
5350 }
5351 set
5352 {
5353 this.typeFieldSet = true;
5354 this.typeField = value;
5355 }
5356 }
5357
5358 /// <summary>
5359 /// Language for the peformance counter name and help. The default is to use the parent PerformanceCategory element's DefaultLanguage attribute.
5360 /// </summary>
5361 public PerformanceCounterLanguageType Language
5362 {
5363 get
5364 {
5365 return this.languageField;
5366 }
5367 set
5368 {
5369 this.languageFieldSet = true;
5370 this.languageField = value;
5371 }
5372 }
5373
5374 public virtual ISchemaElement ParentElement
5375 {
5376 get
5377 {
5378 return this.parentElement;
5379 }
5380 set
5381 {
5382 this.parentElement = value;
5383 }
5384 }
5385
5386 /// <summary>
5387 /// Processes this element and all child elements into an XmlWriter.
5388 /// </summary>
5389 public virtual void OutputXml(XmlWriter writer)
5390 {
5391 if ((null == writer))
5392 {
5393 throw new ArgumentNullException("writer");
5394 }
5395 writer.WriteStartElement("PerformanceCounter", "http://wixtoolset.org/schemas/v4/wxs/util");
5396 if (this.nameFieldSet)
5397 {
5398 writer.WriteAttributeString("Name", this.nameField);
5399 }
5400 if (this.helpFieldSet)
5401 {
5402 writer.WriteAttributeString("Help", this.helpField);
5403 }
5404 if (this.typeFieldSet)
5405 {
5406 if ((this.typeField == PerformanceCounterTypesType.averageBase))
5407 {
5408 writer.WriteAttributeString("Type", "averageBase");
5409 }
5410 if ((this.typeField == PerformanceCounterTypesType.averageCount64))
5411 {
5412 writer.WriteAttributeString("Type", "averageCount64");
5413 }
5414 if ((this.typeField == PerformanceCounterTypesType.averageTimer32))
5415 {
5416 writer.WriteAttributeString("Type", "averageTimer32");
5417 }
5418 if ((this.typeField == PerformanceCounterTypesType.counterDelta32))
5419 {
5420 writer.WriteAttributeString("Type", "counterDelta32");
5421 }
5422 if ((this.typeField == PerformanceCounterTypesType.counterTimerInverse))
5423 {
5424 writer.WriteAttributeString("Type", "counterTimerInverse");
5425 }
5426 if ((this.typeField == PerformanceCounterTypesType.sampleFraction))
5427 {
5428 writer.WriteAttributeString("Type", "sampleFraction");
5429 }
5430 if ((this.typeField == PerformanceCounterTypesType.timer100Ns))
5431 {
5432 writer.WriteAttributeString("Type", "timer100Ns");
5433 }
5434 if ((this.typeField == PerformanceCounterTypesType.counterTimer))
5435 {
5436 writer.WriteAttributeString("Type", "counterTimer");
5437 }
5438 if ((this.typeField == PerformanceCounterTypesType.rawFraction))
5439 {
5440 writer.WriteAttributeString("Type", "rawFraction");
5441 }
5442 if ((this.typeField == PerformanceCounterTypesType.timer100NsInverse))
5443 {
5444 writer.WriteAttributeString("Type", "timer100NsInverse");
5445 }
5446 if ((this.typeField == PerformanceCounterTypesType.counterMultiTimer))
5447 {
5448 writer.WriteAttributeString("Type", "counterMultiTimer");
5449 }
5450 if ((this.typeField == PerformanceCounterTypesType.counterMultiTimer100Ns))
5451 {
5452 writer.WriteAttributeString("Type", "counterMultiTimer100Ns");
5453 }
5454 if ((this.typeField == PerformanceCounterTypesType.counterMultiTimerInverse))
5455 {
5456 writer.WriteAttributeString("Type", "counterMultiTimerInverse");
5457 }
5458 if ((this.typeField == PerformanceCounterTypesType.counterMultiTimer100NsInverse))
5459 {
5460 writer.WriteAttributeString("Type", "counterMultiTimer100NsInverse");
5461 }
5462 if ((this.typeField == PerformanceCounterTypesType.elapsedTime))
5463 {
5464 writer.WriteAttributeString("Type", "elapsedTime");
5465 }
5466 if ((this.typeField == PerformanceCounterTypesType.sampleBase))
5467 {
5468 writer.WriteAttributeString("Type", "sampleBase");
5469 }
5470 if ((this.typeField == PerformanceCounterTypesType.rawBase))
5471 {
5472 writer.WriteAttributeString("Type", "rawBase");
5473 }
5474 if ((this.typeField == PerformanceCounterTypesType.counterMultiBase))
5475 {
5476 writer.WriteAttributeString("Type", "counterMultiBase");
5477 }
5478 if ((this.typeField == PerformanceCounterTypesType.rateOfCountsPerSecond64))
5479 {
5480 writer.WriteAttributeString("Type", "rateOfCountsPerSecond64");
5481 }
5482 if ((this.typeField == PerformanceCounterTypesType.rateOfCountsPerSecond32))
5483 {
5484 writer.WriteAttributeString("Type", "rateOfCountsPerSecond32");
5485 }
5486 if ((this.typeField == PerformanceCounterTypesType.countPerTimeInterval64))
5487 {
5488 writer.WriteAttributeString("Type", "countPerTimeInterval64");
5489 }
5490 if ((this.typeField == PerformanceCounterTypesType.countPerTimeInterval32))
5491 {
5492 writer.WriteAttributeString("Type", "countPerTimeInterval32");
5493 }
5494 if ((this.typeField == PerformanceCounterTypesType.sampleCounter))
5495 {
5496 writer.WriteAttributeString("Type", "sampleCounter");
5497 }
5498 if ((this.typeField == PerformanceCounterTypesType.counterDelta64))
5499 {
5500 writer.WriteAttributeString("Type", "counterDelta64");
5501 }
5502 if ((this.typeField == PerformanceCounterTypesType.numberOfItems64))
5503 {
5504 writer.WriteAttributeString("Type", "numberOfItems64");
5505 }
5506 if ((this.typeField == PerformanceCounterTypesType.numberOfItems32))
5507 {
5508 writer.WriteAttributeString("Type", "numberOfItems32");
5509 }
5510 if ((this.typeField == PerformanceCounterTypesType.numberOfItemsHEX64))
5511 {
5512 writer.WriteAttributeString("Type", "numberOfItemsHEX64");
5513 }
5514 if ((this.typeField == PerformanceCounterTypesType.numberOfItemsHEX32))
5515 {
5516 writer.WriteAttributeString("Type", "numberOfItemsHEX32");
5517 }
5518 }
5519 if (this.languageFieldSet)
5520 {
5521 if ((this.languageField == PerformanceCounterLanguageType.afrikaans))
5522 {
5523 writer.WriteAttributeString("Language", "afrikaans");
5524 }
5525 if ((this.languageField == PerformanceCounterLanguageType.albanian))
5526 {
5527 writer.WriteAttributeString("Language", "albanian");
5528 }
5529 if ((this.languageField == PerformanceCounterLanguageType.arabic))
5530 {
5531 writer.WriteAttributeString("Language", "arabic");
5532 }
5533 if ((this.languageField == PerformanceCounterLanguageType.armenian))
5534 {
5535 writer.WriteAttributeString("Language", "armenian");
5536 }
5537 if ((this.languageField == PerformanceCounterLanguageType.assamese))
5538 {
5539 writer.WriteAttributeString("Language", "assamese");
5540 }
5541 if ((this.languageField == PerformanceCounterLanguageType.azeri))
5542 {
5543 writer.WriteAttributeString("Language", "azeri");
5544 }
5545 if ((this.languageField == PerformanceCounterLanguageType.basque))
5546 {
5547 writer.WriteAttributeString("Language", "basque");
5548 }
5549 if ((this.languageField == PerformanceCounterLanguageType.belarusian))
5550 {
5551 writer.WriteAttributeString("Language", "belarusian");
5552 }
5553 if ((this.languageField == PerformanceCounterLanguageType.bengali))
5554 {
5555 writer.WriteAttributeString("Language", "bengali");
5556 }
5557 if ((this.languageField == PerformanceCounterLanguageType.bulgarian))
5558 {
5559 writer.WriteAttributeString("Language", "bulgarian");
5560 }
5561 if ((this.languageField == PerformanceCounterLanguageType.catalan))
5562 {
5563 writer.WriteAttributeString("Language", "catalan");
5564 }
5565 if ((this.languageField == PerformanceCounterLanguageType.chinese))
5566 {
5567 writer.WriteAttributeString("Language", "chinese");
5568 }
5569 if ((this.languageField == PerformanceCounterLanguageType.croatian))
5570 {
5571 writer.WriteAttributeString("Language", "croatian");
5572 }
5573 if ((this.languageField == PerformanceCounterLanguageType.czech))
5574 {
5575 writer.WriteAttributeString("Language", "czech");
5576 }
5577 if ((this.languageField == PerformanceCounterLanguageType.danish))
5578 {
5579 writer.WriteAttributeString("Language", "danish");
5580 }
5581 if ((this.languageField == PerformanceCounterLanguageType.divehi))
5582 {
5583 writer.WriteAttributeString("Language", "divehi");
5584 }
5585 if ((this.languageField == PerformanceCounterLanguageType.dutch))
5586 {
5587 writer.WriteAttributeString("Language", "dutch");
5588 }
5589 if ((this.languageField == PerformanceCounterLanguageType.english))
5590 {
5591 writer.WriteAttributeString("Language", "english");
5592 }
5593 if ((this.languageField == PerformanceCounterLanguageType.estonian))
5594 {
5595 writer.WriteAttributeString("Language", "estonian");
5596 }
5597 if ((this.languageField == PerformanceCounterLanguageType.faeroese))
5598 {
5599 writer.WriteAttributeString("Language", "faeroese");
5600 }
5601 if ((this.languageField == PerformanceCounterLanguageType.farsi))
5602 {
5603 writer.WriteAttributeString("Language", "farsi");
5604 }
5605 if ((this.languageField == PerformanceCounterLanguageType.finnish))
5606 {
5607 writer.WriteAttributeString("Language", "finnish");
5608 }
5609 if ((this.languageField == PerformanceCounterLanguageType.french))
5610 {
5611 writer.WriteAttributeString("Language", "french");
5612 }
5613 if ((this.languageField == PerformanceCounterLanguageType.galician))
5614 {
5615 writer.WriteAttributeString("Language", "galician");
5616 }
5617 if ((this.languageField == PerformanceCounterLanguageType.georgian))
5618 {
5619 writer.WriteAttributeString("Language", "georgian");
5620 }
5621 if ((this.languageField == PerformanceCounterLanguageType.german))
5622 {
5623 writer.WriteAttributeString("Language", "german");
5624 }
5625 if ((this.languageField == PerformanceCounterLanguageType.greek))
5626 {
5627 writer.WriteAttributeString("Language", "greek");
5628 }
5629 if ((this.languageField == PerformanceCounterLanguageType.gujarati))
5630 {
5631 writer.WriteAttributeString("Language", "gujarati");
5632 }
5633 if ((this.languageField == PerformanceCounterLanguageType.hebrew))
5634 {
5635 writer.WriteAttributeString("Language", "hebrew");
5636 }
5637 if ((this.languageField == PerformanceCounterLanguageType.hindi))
5638 {
5639 writer.WriteAttributeString("Language", "hindi");
5640 }
5641 if ((this.languageField == PerformanceCounterLanguageType.hungarian))
5642 {
5643 writer.WriteAttributeString("Language", "hungarian");
5644 }
5645 if ((this.languageField == PerformanceCounterLanguageType.icelandic))
5646 {
5647 writer.WriteAttributeString("Language", "icelandic");
5648 }
5649 if ((this.languageField == PerformanceCounterLanguageType.indonesian))
5650 {
5651 writer.WriteAttributeString("Language", "indonesian");
5652 }
5653 if ((this.languageField == PerformanceCounterLanguageType.italian))
5654 {
5655 writer.WriteAttributeString("Language", "italian");
5656 }
5657 if ((this.languageField == PerformanceCounterLanguageType.japanese))
5658 {
5659 writer.WriteAttributeString("Language", "japanese");
5660 }
5661 if ((this.languageField == PerformanceCounterLanguageType.kannada))
5662 {
5663 writer.WriteAttributeString("Language", "kannada");
5664 }
5665 if ((this.languageField == PerformanceCounterLanguageType.kashmiri))
5666 {
5667 writer.WriteAttributeString("Language", "kashmiri");
5668 }
5669 if ((this.languageField == PerformanceCounterLanguageType.kazak))
5670 {
5671 writer.WriteAttributeString("Language", "kazak");
5672 }
5673 if ((this.languageField == PerformanceCounterLanguageType.konkani))
5674 {
5675 writer.WriteAttributeString("Language", "konkani");
5676 }
5677 if ((this.languageField == PerformanceCounterLanguageType.korean))
5678 {
5679 writer.WriteAttributeString("Language", "korean");
5680 }
5681 if ((this.languageField == PerformanceCounterLanguageType.kyrgyz))
5682 {
5683 writer.WriteAttributeString("Language", "kyrgyz");
5684 }
5685 if ((this.languageField == PerformanceCounterLanguageType.latvian))
5686 {
5687 writer.WriteAttributeString("Language", "latvian");
5688 }
5689 if ((this.languageField == PerformanceCounterLanguageType.lithuanian))
5690 {
5691 writer.WriteAttributeString("Language", "lithuanian");
5692 }
5693 if ((this.languageField == PerformanceCounterLanguageType.macedonian))
5694 {
5695 writer.WriteAttributeString("Language", "macedonian");
5696 }
5697 if ((this.languageField == PerformanceCounterLanguageType.malay))
5698 {
5699 writer.WriteAttributeString("Language", "malay");
5700 }
5701 if ((this.languageField == PerformanceCounterLanguageType.malayalam))
5702 {
5703 writer.WriteAttributeString("Language", "malayalam");
5704 }
5705 if ((this.languageField == PerformanceCounterLanguageType.manipuri))
5706 {
5707 writer.WriteAttributeString("Language", "manipuri");
5708 }
5709 if ((this.languageField == PerformanceCounterLanguageType.marathi))
5710 {
5711 writer.WriteAttributeString("Language", "marathi");
5712 }
5713 if ((this.languageField == PerformanceCounterLanguageType.mongolian))
5714 {
5715 writer.WriteAttributeString("Language", "mongolian");
5716 }
5717 if ((this.languageField == PerformanceCounterLanguageType.nepali))
5718 {
5719 writer.WriteAttributeString("Language", "nepali");
5720 }
5721 if ((this.languageField == PerformanceCounterLanguageType.norwegian))
5722 {
5723 writer.WriteAttributeString("Language", "norwegian");
5724 }
5725 if ((this.languageField == PerformanceCounterLanguageType.oriya))
5726 {
5727 writer.WriteAttributeString("Language", "oriya");
5728 }
5729 if ((this.languageField == PerformanceCounterLanguageType.polish))
5730 {
5731 writer.WriteAttributeString("Language", "polish");
5732 }
5733 if ((this.languageField == PerformanceCounterLanguageType.portuguese))
5734 {
5735 writer.WriteAttributeString("Language", "portuguese");
5736 }
5737 if ((this.languageField == PerformanceCounterLanguageType.punjabi))
5738 {
5739 writer.WriteAttributeString("Language", "punjabi");
5740 }
5741 if ((this.languageField == PerformanceCounterLanguageType.romanian))
5742 {
5743 writer.WriteAttributeString("Language", "romanian");
5744 }
5745 if ((this.languageField == PerformanceCounterLanguageType.russian))
5746 {
5747 writer.WriteAttributeString("Language", "russian");
5748 }
5749 if ((this.languageField == PerformanceCounterLanguageType.sanskrit))
5750 {
5751 writer.WriteAttributeString("Language", "sanskrit");
5752 }
5753 if ((this.languageField == PerformanceCounterLanguageType.serbian))
5754 {
5755 writer.WriteAttributeString("Language", "serbian");
5756 }
5757 if ((this.languageField == PerformanceCounterLanguageType.sindhi))
5758 {
5759 writer.WriteAttributeString("Language", "sindhi");
5760 }
5761 if ((this.languageField == PerformanceCounterLanguageType.slovak))
5762 {
5763 writer.WriteAttributeString("Language", "slovak");
5764 }
5765 if ((this.languageField == PerformanceCounterLanguageType.slovenian))
5766 {
5767 writer.WriteAttributeString("Language", "slovenian");
5768 }
5769 if ((this.languageField == PerformanceCounterLanguageType.spanish))
5770 {
5771 writer.WriteAttributeString("Language", "spanish");
5772 }
5773 if ((this.languageField == PerformanceCounterLanguageType.swahili))
5774 {
5775 writer.WriteAttributeString("Language", "swahili");
5776 }
5777 if ((this.languageField == PerformanceCounterLanguageType.swedish))
5778 {
5779 writer.WriteAttributeString("Language", "swedish");
5780 }
5781 if ((this.languageField == PerformanceCounterLanguageType.syriac))
5782 {
5783 writer.WriteAttributeString("Language", "syriac");
5784 }
5785 if ((this.languageField == PerformanceCounterLanguageType.tamil))
5786 {
5787 writer.WriteAttributeString("Language", "tamil");
5788 }
5789 if ((this.languageField == PerformanceCounterLanguageType.tatar))
5790 {
5791 writer.WriteAttributeString("Language", "tatar");
5792 }
5793 if ((this.languageField == PerformanceCounterLanguageType.telugu))
5794 {
5795 writer.WriteAttributeString("Language", "telugu");
5796 }
5797 if ((this.languageField == PerformanceCounterLanguageType.thai))
5798 {
5799 writer.WriteAttributeString("Language", "thai");
5800 }
5801 if ((this.languageField == PerformanceCounterLanguageType.turkish))
5802 {
5803 writer.WriteAttributeString("Language", "turkish");
5804 }
5805 if ((this.languageField == PerformanceCounterLanguageType.ukrainian))
5806 {
5807 writer.WriteAttributeString("Language", "ukrainian");
5808 }
5809 if ((this.languageField == PerformanceCounterLanguageType.urdu))
5810 {
5811 writer.WriteAttributeString("Language", "urdu");
5812 }
5813 if ((this.languageField == PerformanceCounterLanguageType.uzbek))
5814 {
5815 writer.WriteAttributeString("Language", "uzbek");
5816 }
5817 if ((this.languageField == PerformanceCounterLanguageType.vietnamese))
5818 {
5819 writer.WriteAttributeString("Language", "vietnamese");
5820 }
5821 }
5822 writer.WriteEndElement();
5823 }
5824
5825 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
5826 void ISetAttributes.SetAttribute(string name, string value)
5827 {
5828 if (String.IsNullOrEmpty(name))
5829 {
5830 throw new ArgumentNullException("name");
5831 }
5832 if (("Name" == name))
5833 {
5834 this.nameField = value;
5835 this.nameFieldSet = true;
5836 }
5837 if (("Help" == name))
5838 {
5839 this.helpField = value;
5840 this.helpFieldSet = true;
5841 }
5842 if (("Type" == name))
5843 {
5844 this.typeField = Enums.ParsePerformanceCounterTypesType(value);
5845 this.typeFieldSet = true;
5846 }
5847 if (("Language" == name))
5848 {
5849 this.languageField = Enums.ParsePerformanceCounterLanguageType(value);
5850 this.languageFieldSet = true;
5851 }
5852 }
5853 }
5854
5855 /// <summary>
5856 /// Used to install Perfmon counters.
5857 /// </summary>
5858 [GeneratedCode("XsdGen", "4.0.0.0")]
5859 public class PerfCounter : ISchemaElement, ISetAttributes
5860 {
5861
5862 private string nameField;
5863
5864 private bool nameFieldSet;
5865
5866 private ISchemaElement parentElement;
5867
5868 public string Name
5869 {
5870 get
5871 {
5872 return this.nameField;
5873 }
5874 set
5875 {
5876 this.nameFieldSet = true;
5877 this.nameField = value;
5878 }
5879 }
5880
5881 public virtual ISchemaElement ParentElement
5882 {
5883 get
5884 {
5885 return this.parentElement;
5886 }
5887 set
5888 {
5889 this.parentElement = value;
5890 }
5891 }
5892
5893 /// <summary>
5894 /// Processes this element and all child elements into an XmlWriter.
5895 /// </summary>
5896 public virtual void OutputXml(XmlWriter writer)
5897 {
5898 if ((null == writer))
5899 {
5900 throw new ArgumentNullException("writer");
5901 }
5902 writer.WriteStartElement("PerfCounter", "http://wixtoolset.org/schemas/v4/wxs/util");
5903 if (this.nameFieldSet)
5904 {
5905 writer.WriteAttributeString("Name", this.nameField);
5906 }
5907 writer.WriteEndElement();
5908 }
5909
5910 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
5911 void ISetAttributes.SetAttribute(string name, string value)
5912 {
5913 if (String.IsNullOrEmpty(name))
5914 {
5915 throw new ArgumentNullException("name");
5916 }
5917 if (("Name" == name))
5918 {
5919 this.nameField = value;
5920 this.nameFieldSet = true;
5921 }
5922 }
5923 }
5924
5925 /// <summary>
5926 /// Used to install Perfmon Counter Manifests.
5927 /// Note that this functionality cannot be used with major upgrades that are scheduled after the InstallExecute,
5928 /// InstallExecuteAgain, or InstallFinalize actions. For more information on major upgrade scheduling, see
5929 /// </summary>
5930 [GeneratedCode("XsdGen", "4.0.0.0")]
5931 public class PerfCounterManifest : ISchemaElement, ISetAttributes
5932 {
5933
5934 private string resourceFileDirectoryField;
5935
5936 private bool resourceFileDirectoryFieldSet;
5937
5938 private ISchemaElement parentElement;
5939
5940 /// <summary>
5941 /// The directory that holds the resource file of the providers in the perfmon counter manifest. Often the resource file path cannot be determined until setup time. Put the directory here and during perfmon manifest registrtion the path will be updated in the registry. If not specified, Perfmon will look for the resource file in the same directory of the perfmon counter manifest file.
5942 /// </summary>
5943 public string ResourceFileDirectory
5944 {
5945 get
5946 {
5947 return this.resourceFileDirectoryField;
5948 }
5949 set
5950 {
5951 this.resourceFileDirectoryFieldSet = true;
5952 this.resourceFileDirectoryField = value;
5953 }
5954 }
5955
5956 public virtual ISchemaElement ParentElement
5957 {
5958 get
5959 {
5960 return this.parentElement;
5961 }
5962 set
5963 {
5964 this.parentElement = value;
5965 }
5966 }
5967
5968 /// <summary>
5969 /// Processes this element and all child elements into an XmlWriter.
5970 /// </summary>
5971 public virtual void OutputXml(XmlWriter writer)
5972 {
5973 if ((null == writer))
5974 {
5975 throw new ArgumentNullException("writer");
5976 }
5977 writer.WriteStartElement("PerfCounterManifest", "http://wixtoolset.org/schemas/v4/wxs/util");
5978 if (this.resourceFileDirectoryFieldSet)
5979 {
5980 writer.WriteAttributeString("ResourceFileDirectory", this.resourceFileDirectoryField);
5981 }
5982 writer.WriteEndElement();
5983 }
5984
5985 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
5986 void ISetAttributes.SetAttribute(string name, string value)
5987 {
5988 if (String.IsNullOrEmpty(name))
5989 {
5990 throw new ArgumentNullException("name");
5991 }
5992 if (("ResourceFileDirectory" == name))
5993 {
5994 this.resourceFileDirectoryField = value;
5995 this.resourceFileDirectoryFieldSet = true;
5996 }
5997 }
5998 }
5999
6000 /// <summary>
6001 /// Used to install Event Manifests.
6002 /// </summary>
6003 [GeneratedCode("XsdGen", "4.0.0.0")]
6004 public class EventManifest : ISchemaElement, ISetAttributes
6005 {
6006
6007 private string messageFileField;
6008
6009 private bool messageFileFieldSet;
6010
6011 private string parameterFileField;
6012
6013 private bool parameterFileFieldSet;
6014
6015 private string resourceFileField;
6016
6017 private bool resourceFileFieldSet;
6018
6019 private ISchemaElement parentElement;
6020
6021 /// <summary>
6022 /// The message file (including path) of all the providers in the event manifest. Often the message file path cannot be determined until setup time. Put your MessageFile here and the messageFileName attribute of the all the providers in the manifest will be updated with the path before it is registered.
6023 /// </summary>
6024 public string MessageFile
6025 {
6026 get
6027 {
6028 return this.messageFileField;
6029 }
6030 set
6031 {
6032 this.messageFileFieldSet = true;
6033 this.messageFileField = value;
6034 }
6035 }
6036
6037 /// <summary>
6038 /// The parameter file (including path) of all the providers in the event manifest. Often the parameter file path cannot be determined until setup time. Put your ParameterFile here and the parameterFileName attribute of the all the providers in the manifest will be updated with the path before it is registered.
6039 /// </summary>
6040 public string ParameterFile
6041 {
6042 get
6043 {
6044 return this.parameterFileField;
6045 }
6046 set
6047 {
6048 this.parameterFileFieldSet = true;
6049 this.parameterFileField = value;
6050 }
6051 }
6052
6053 /// <summary>
6054 /// The resource file (including path) of all the providers in the event manifest. Often the resource file path cannot be determined until setup time. Put your ResourceFile here and the resourceFileName attribute of the all the providers in the manifest will be updated with the path before it is registered.
6055 /// </summary>
6056 public string ResourceFile
6057 {
6058 get
6059 {
6060 return this.resourceFileField;
6061 }
6062 set
6063 {
6064 this.resourceFileFieldSet = true;
6065 this.resourceFileField = value;
6066 }
6067 }
6068
6069 public virtual ISchemaElement ParentElement
6070 {
6071 get
6072 {
6073 return this.parentElement;
6074 }
6075 set
6076 {
6077 this.parentElement = value;
6078 }
6079 }
6080
6081 /// <summary>
6082 /// Processes this element and all child elements into an XmlWriter.
6083 /// </summary>
6084 public virtual void OutputXml(XmlWriter writer)
6085 {
6086 if ((null == writer))
6087 {
6088 throw new ArgumentNullException("writer");
6089 }
6090 writer.WriteStartElement("EventManifest", "http://wixtoolset.org/schemas/v4/wxs/util");
6091 if (this.messageFileFieldSet)
6092 {
6093 writer.WriteAttributeString("MessageFile", this.messageFileField);
6094 }
6095 if (this.parameterFileFieldSet)
6096 {
6097 writer.WriteAttributeString("ParameterFile", this.parameterFileField);
6098 }
6099 if (this.resourceFileFieldSet)
6100 {
6101 writer.WriteAttributeString("ResourceFile", this.resourceFileField);
6102 }
6103 writer.WriteEndElement();
6104 }
6105
6106 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
6107 void ISetAttributes.SetAttribute(string name, string value)
6108 {
6109 if (String.IsNullOrEmpty(name))
6110 {
6111 throw new ArgumentNullException("name");
6112 }
6113 if (("MessageFile" == name))
6114 {
6115 this.messageFileField = value;
6116 this.messageFileFieldSet = true;
6117 }
6118 if (("ParameterFile" == name))
6119 {
6120 this.parameterFileField = value;
6121 this.parameterFileFieldSet = true;
6122 }
6123 if (("ResourceFile" == name))
6124 {
6125 this.resourceFileField = value;
6126 this.resourceFileFieldSet = true;
6127 }
6128 }
6129 }
6130
6131 /// <summary>
6132 /// Sets ACLs on File, Registry, CreateFolder, or ServiceInstall. When under a Registry element, this cannot be used
6133 /// if the Action attribute's value is remove or removeKeyOnInstall. This element has no Id attribute.
6134 /// The table and key are taken from the parent element.
6135 /// </summary>
6136 [GeneratedCode("XsdGen", "4.0.0.0")]
6137 public class PermissionEx : ISchemaElement, ISetAttributes
6138 {
6139
6140 private string domainField;
6141
6142 private bool domainFieldSet;
6143
6144 private string userField;
6145
6146 private bool userFieldSet;
6147
6148 private YesNoType readField;
6149
6150 private bool readFieldSet;
6151
6152 private YesNoType deleteField;
6153
6154 private bool deleteFieldSet;
6155
6156 private YesNoType readPermissionField;
6157
6158 private bool readPermissionFieldSet;
6159
6160 private YesNoType changePermissionField;
6161
6162 private bool changePermissionFieldSet;
6163
6164 private YesNoType takeOwnershipField;
6165
6166 private bool takeOwnershipFieldSet;
6167
6168 private YesNoType readAttributesField;
6169
6170 private bool readAttributesFieldSet;
6171
6172 private YesNoType writeAttributesField;
6173
6174 private bool writeAttributesFieldSet;
6175
6176 private YesNoType readExtendedAttributesField;
6177
6178 private bool readExtendedAttributesFieldSet;
6179
6180 private YesNoType writeExtendedAttributesField;
6181
6182 private bool writeExtendedAttributesFieldSet;
6183
6184 private YesNoType synchronizeField;
6185
6186 private bool synchronizeFieldSet;
6187
6188 private YesNoType createFileField;
6189
6190 private bool createFileFieldSet;
6191
6192 private YesNoType createChildField;
6193
6194 private bool createChildFieldSet;
6195
6196 private YesNoType deleteChildField;
6197
6198 private bool deleteChildFieldSet;
6199
6200 private YesNoType traverseField;
6201
6202 private bool traverseFieldSet;
6203
6204 private YesNoType appendField;
6205
6206 private bool appendFieldSet;
6207
6208 private YesNoType executeField;
6209
6210 private bool executeFieldSet;
6211
6212 private YesNoType writeField;
6213
6214 private bool writeFieldSet;
6215
6216 private YesNoType createSubkeysField;
6217
6218 private bool createSubkeysFieldSet;
6219
6220 private YesNoType enumerateSubkeysField;
6221
6222 private bool enumerateSubkeysFieldSet;
6223
6224 private YesNoType notifyField;
6225
6226 private bool notifyFieldSet;
6227
6228 private YesNoType createLinkField;
6229
6230 private bool createLinkFieldSet;
6231
6232 private YesNoType genericAllField;
6233
6234 private bool genericAllFieldSet;
6235
6236 private YesNoType genericExecuteField;
6237
6238 private bool genericExecuteFieldSet;
6239
6240 private YesNoType genericWriteField;
6241
6242 private bool genericWriteFieldSet;
6243
6244 private YesNoType genericReadField;
6245
6246 private bool genericReadFieldSet;
6247
6248 private YesNoType serviceQueryConfigField;
6249
6250 private bool serviceQueryConfigFieldSet;
6251
6252 private YesNoType serviceChangeConfigField;
6253
6254 private bool serviceChangeConfigFieldSet;
6255
6256 private YesNoType serviceQueryStatusField;
6257
6258 private bool serviceQueryStatusFieldSet;
6259
6260 private YesNoType serviceEnumerateDependentsField;
6261
6262 private bool serviceEnumerateDependentsFieldSet;
6263
6264 private YesNoType serviceStartField;
6265
6266 private bool serviceStartFieldSet;
6267
6268 private YesNoType serviceStopField;
6269
6270 private bool serviceStopFieldSet;
6271
6272 private YesNoType servicePauseContinueField;
6273
6274 private bool servicePauseContinueFieldSet;
6275
6276 private YesNoType serviceInterrogateField;
6277
6278 private bool serviceInterrogateFieldSet;
6279
6280 private YesNoType serviceUserDefinedControlField;
6281
6282 private bool serviceUserDefinedControlFieldSet;
6283
6284 private ISchemaElement parentElement;
6285
6286 public string Domain
6287 {
6288 get
6289 {
6290 return this.domainField;
6291 }
6292 set
6293 {
6294 this.domainFieldSet = true;
6295 this.domainField = value;
6296 }
6297 }
6298
6299 public string User
6300 {
6301 get
6302 {
6303 return this.userField;
6304 }
6305 set
6306 {
6307 this.userFieldSet = true;
6308 this.userField = value;
6309 }
6310 }
6311
6312 public YesNoType Read
6313 {
6314 get
6315 {
6316 return this.readField;
6317 }
6318 set
6319 {
6320 this.readFieldSet = true;
6321 this.readField = value;
6322 }
6323 }
6324
6325 public YesNoType Delete
6326 {
6327 get
6328 {
6329 return this.deleteField;
6330 }
6331 set
6332 {
6333 this.deleteFieldSet = true;
6334 this.deleteField = value;
6335 }
6336 }
6337
6338 public YesNoType ReadPermission
6339 {
6340 get
6341 {
6342 return this.readPermissionField;
6343 }
6344 set
6345 {
6346 this.readPermissionFieldSet = true;
6347 this.readPermissionField = value;
6348 }
6349 }
6350
6351 public YesNoType ChangePermission
6352 {
6353 get
6354 {
6355 return this.changePermissionField;
6356 }
6357 set
6358 {
6359 this.changePermissionFieldSet = true;
6360 this.changePermissionField = value;
6361 }
6362 }
6363
6364 public YesNoType TakeOwnership
6365 {
6366 get
6367 {
6368 return this.takeOwnershipField;
6369 }
6370 set
6371 {
6372 this.takeOwnershipFieldSet = true;
6373 this.takeOwnershipField = value;
6374 }
6375 }
6376
6377 public YesNoType ReadAttributes
6378 {
6379 get
6380 {
6381 return this.readAttributesField;
6382 }
6383 set
6384 {
6385 this.readAttributesFieldSet = true;
6386 this.readAttributesField = value;
6387 }
6388 }
6389
6390 public YesNoType WriteAttributes
6391 {
6392 get
6393 {
6394 return this.writeAttributesField;
6395 }
6396 set
6397 {
6398 this.writeAttributesFieldSet = true;
6399 this.writeAttributesField = value;
6400 }
6401 }
6402
6403 public YesNoType ReadExtendedAttributes
6404 {
6405 get
6406 {
6407 return this.readExtendedAttributesField;
6408 }
6409 set
6410 {
6411 this.readExtendedAttributesFieldSet = true;
6412 this.readExtendedAttributesField = value;
6413 }
6414 }
6415
6416 public YesNoType WriteExtendedAttributes
6417 {
6418 get
6419 {
6420 return this.writeExtendedAttributesField;
6421 }
6422 set
6423 {
6424 this.writeExtendedAttributesFieldSet = true;
6425 this.writeExtendedAttributesField = value;
6426 }
6427 }
6428
6429 public YesNoType Synchronize
6430 {
6431 get
6432 {
6433 return this.synchronizeField;
6434 }
6435 set
6436 {
6437 this.synchronizeFieldSet = true;
6438 this.synchronizeField = value;
6439 }
6440 }
6441
6442 /// <summary>
6443 /// For a directory, the right to create a file in the directory. Only valid under a 'CreateFolder' parent.
6444 /// </summary>
6445 public YesNoType CreateFile
6446 {
6447 get
6448 {
6449 return this.createFileField;
6450 }
6451 set
6452 {
6453 this.createFileFieldSet = true;
6454 this.createFileField = value;
6455 }
6456 }
6457
6458 /// <summary>
6459 /// For a directory, the right to create a subdirectory. Only valid under a 'CreateFolder' parent.
6460 /// </summary>
6461 public YesNoType CreateChild
6462 {
6463 get
6464 {
6465 return this.createChildField;
6466 }
6467 set
6468 {
6469 this.createChildFieldSet = true;
6470 this.createChildField = value;
6471 }
6472 }
6473
6474 /// <summary>
6475 /// 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.
6476 /// </summary>
6477 public YesNoType DeleteChild
6478 {
6479 get
6480 {
6481 return this.deleteChildField;
6482 }
6483 set
6484 {
6485 this.deleteChildFieldSet = true;
6486 this.deleteChildField = value;
6487 }
6488 }
6489
6490 /// <summary>
6491 /// 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.
6492 /// </summary>
6493 public YesNoType Traverse
6494 {
6495 get
6496 {
6497 return this.traverseField;
6498 }
6499 set
6500 {
6501 this.traverseFieldSet = true;
6502 this.traverseField = value;
6503 }
6504 }
6505
6506 public YesNoType Append
6507 {
6508 get
6509 {
6510 return this.appendField;
6511 }
6512 set
6513 {
6514 this.appendFieldSet = true;
6515 this.appendField = value;
6516 }
6517 }
6518
6519 public YesNoType Execute
6520 {
6521 get
6522 {
6523 return this.executeField;
6524 }
6525 set
6526 {
6527 this.executeFieldSet = true;
6528 this.executeField = value;
6529 }
6530 }
6531
6532 public YesNoType Write
6533 {
6534 get
6535 {
6536 return this.writeField;
6537 }
6538 set
6539 {
6540 this.writeFieldSet = true;
6541 this.writeField = value;
6542 }
6543 }
6544
6545 public YesNoType CreateSubkeys
6546 {
6547 get
6548 {
6549 return this.createSubkeysField;
6550 }
6551 set
6552 {
6553 this.createSubkeysFieldSet = true;
6554 this.createSubkeysField = value;
6555 }
6556 }
6557
6558 public YesNoType EnumerateSubkeys
6559 {
6560 get
6561 {
6562 return this.enumerateSubkeysField;
6563 }
6564 set
6565 {
6566 this.enumerateSubkeysFieldSet = true;
6567 this.enumerateSubkeysField = value;
6568 }
6569 }
6570
6571 public YesNoType Notify
6572 {
6573 get
6574 {
6575 return this.notifyField;
6576 }
6577 set
6578 {
6579 this.notifyFieldSet = true;
6580 this.notifyField = value;
6581 }
6582 }
6583
6584 public YesNoType CreateLink
6585 {
6586 get
6587 {
6588 return this.createLinkField;
6589 }
6590 set
6591 {
6592 this.createLinkFieldSet = true;
6593 this.createLinkField = value;
6594 }
6595 }
6596
6597 public YesNoType GenericAll
6598 {
6599 get
6600 {
6601 return this.genericAllField;
6602 }
6603 set
6604 {
6605 this.genericAllFieldSet = true;
6606 this.genericAllField = value;
6607 }
6608 }
6609
6610 public YesNoType GenericExecute
6611 {
6612 get
6613 {
6614 return this.genericExecuteField;
6615 }
6616 set
6617 {
6618 this.genericExecuteFieldSet = true;
6619 this.genericExecuteField = value;
6620 }
6621 }
6622
6623 public YesNoType GenericWrite
6624 {
6625 get
6626 {
6627 return this.genericWriteField;
6628 }
6629 set
6630 {
6631 this.genericWriteFieldSet = true;
6632 this.genericWriteField = value;
6633 }
6634 }
6635
6636 /// <summary>
6637 /// specifying this will fail to grant read access
6638 /// </summary>
6639 public YesNoType GenericRead
6640 {
6641 get
6642 {
6643 return this.genericReadField;
6644 }
6645 set
6646 {
6647 this.genericReadFieldSet = true;
6648 this.genericReadField = value;
6649 }
6650 }
6651
6652 /// <summary>
6653 /// Required to call the QueryServiceConfig and QueryServiceConfig2 functions to query the service configuration. Only valid under a 'ServiceInstall' parent.
6654 /// </summary>
6655 public YesNoType ServiceQueryConfig
6656 {
6657 get
6658 {
6659 return this.serviceQueryConfigField;
6660 }
6661 set
6662 {
6663 this.serviceQueryConfigFieldSet = true;
6664 this.serviceQueryConfigField = value;
6665 }
6666 }
6667
6668 /// <summary>
6669 /// Required to call the ChangeServiceConfig or ChangeServiceConfig2 function to change the service configuration. Only valid under a 'ServiceInstall' parent.
6670 /// </summary>
6671 public YesNoType ServiceChangeConfig
6672 {
6673 get
6674 {
6675 return this.serviceChangeConfigField;
6676 }
6677 set
6678 {
6679 this.serviceChangeConfigFieldSet = true;
6680 this.serviceChangeConfigField = value;
6681 }
6682 }
6683
6684 /// <summary>
6685 /// Required to call the QueryServiceStatus function to ask the service control manager about the status of the service. Only valid under a 'ServiceInstall' parent.
6686 /// </summary>
6687 public YesNoType ServiceQueryStatus
6688 {
6689 get
6690 {
6691 return this.serviceQueryStatusField;
6692 }
6693 set
6694 {
6695 this.serviceQueryStatusFieldSet = true;
6696 this.serviceQueryStatusField = value;
6697 }
6698 }
6699
6700 /// <summary>
6701 /// Required to call the EnumDependentServices function to enumerate all the services dependent on the service. Only valid under a 'ServiceInstall' parent.
6702 /// </summary>
6703 public YesNoType ServiceEnumerateDependents
6704 {
6705 get
6706 {
6707 return this.serviceEnumerateDependentsField;
6708 }
6709 set
6710 {
6711 this.serviceEnumerateDependentsFieldSet = true;
6712 this.serviceEnumerateDependentsField = value;
6713 }
6714 }
6715
6716 /// <summary>
6717 /// Required to call the StartService function to start the service. Only valid under a 'ServiceInstall' parent.
6718 /// </summary>
6719 public YesNoType ServiceStart
6720 {
6721 get
6722 {
6723 return this.serviceStartField;
6724 }
6725 set
6726 {
6727 this.serviceStartFieldSet = true;
6728 this.serviceStartField = value;
6729 }
6730 }
6731
6732 /// <summary>
6733 /// Required to call the ControlService function to stop the service. Only valid under a 'ServiceInstall' parent.
6734 /// </summary>
6735 public YesNoType ServiceStop
6736 {
6737 get
6738 {
6739 return this.serviceStopField;
6740 }
6741 set
6742 {
6743 this.serviceStopFieldSet = true;
6744 this.serviceStopField = value;
6745 }
6746 }
6747
6748 /// <summary>
6749 /// Required to call the ControlService function to pause or continue the service. Only valid under a 'ServiceInstall' parent.
6750 /// </summary>
6751 public YesNoType ServicePauseContinue
6752 {
6753 get
6754 {
6755 return this.servicePauseContinueField;
6756 }
6757 set
6758 {
6759 this.servicePauseContinueFieldSet = true;
6760 this.servicePauseContinueField = value;
6761 }
6762 }
6763
6764 /// <summary>
6765 /// Required to call the ControlService function to ask the service to report its status immediately. Only valid under a 'ServiceInstall' parent.
6766 /// </summary>
6767 public YesNoType ServiceInterrogate
6768 {
6769 get
6770 {
6771 return this.serviceInterrogateField;
6772 }
6773 set
6774 {
6775 this.serviceInterrogateFieldSet = true;
6776 this.serviceInterrogateField = value;
6777 }
6778 }
6779
6780 /// <summary>
6781 /// Required to call the ControlService function to specify a user-defined control code. Only valid under a 'ServiceInstall' parent.
6782 /// </summary>
6783 public YesNoType ServiceUserDefinedControl
6784 {
6785 get
6786 {
6787 return this.serviceUserDefinedControlField;
6788 }
6789 set
6790 {
6791 this.serviceUserDefinedControlFieldSet = true;
6792 this.serviceUserDefinedControlField = value;
6793 }
6794 }
6795
6796 public virtual ISchemaElement ParentElement
6797 {
6798 get
6799 {
6800 return this.parentElement;
6801 }
6802 set
6803 {
6804 this.parentElement = value;
6805 }
6806 }
6807
6808 /// <summary>
6809 /// Processes this element and all child elements into an XmlWriter.
6810 /// </summary>
6811 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
6812 public virtual void OutputXml(XmlWriter writer)
6813 {
6814 if ((null == writer))
6815 {
6816 throw new ArgumentNullException("writer");
6817 }
6818 writer.WriteStartElement("PermissionEx", "http://wixtoolset.org/schemas/v4/wxs/util");
6819 if (this.domainFieldSet)
6820 {
6821 writer.WriteAttributeString("Domain", this.domainField);
6822 }
6823 if (this.userFieldSet)
6824 {
6825 writer.WriteAttributeString("User", this.userField);
6826 }
6827 if (this.readFieldSet)
6828 {
6829 if ((this.readField == YesNoType.no))
6830 {
6831 writer.WriteAttributeString("Read", "no");
6832 }
6833 if ((this.readField == YesNoType.yes))
6834 {
6835 writer.WriteAttributeString("Read", "yes");
6836 }
6837 }
6838 if (this.deleteFieldSet)
6839 {
6840 if ((this.deleteField == YesNoType.no))
6841 {
6842 writer.WriteAttributeString("Delete", "no");
6843 }
6844 if ((this.deleteField == YesNoType.yes))
6845 {
6846 writer.WriteAttributeString("Delete", "yes");
6847 }
6848 }
6849 if (this.readPermissionFieldSet)
6850 {
6851 if ((this.readPermissionField == YesNoType.no))
6852 {
6853 writer.WriteAttributeString("ReadPermission", "no");
6854 }
6855 if ((this.readPermissionField == YesNoType.yes))
6856 {
6857 writer.WriteAttributeString("ReadPermission", "yes");
6858 }
6859 }
6860 if (this.changePermissionFieldSet)
6861 {
6862 if ((this.changePermissionField == YesNoType.no))
6863 {
6864 writer.WriteAttributeString("ChangePermission", "no");
6865 }
6866 if ((this.changePermissionField == YesNoType.yes))
6867 {
6868 writer.WriteAttributeString("ChangePermission", "yes");
6869 }
6870 }
6871 if (this.takeOwnershipFieldSet)
6872 {
6873 if ((this.takeOwnershipField == YesNoType.no))
6874 {
6875 writer.WriteAttributeString("TakeOwnership", "no");
6876 }
6877 if ((this.takeOwnershipField == YesNoType.yes))
6878 {
6879 writer.WriteAttributeString("TakeOwnership", "yes");
6880 }
6881 }
6882 if (this.readAttributesFieldSet)
6883 {
6884 if ((this.readAttributesField == YesNoType.no))
6885 {
6886 writer.WriteAttributeString("ReadAttributes", "no");
6887 }
6888 if ((this.readAttributesField == YesNoType.yes))
6889 {
6890 writer.WriteAttributeString("ReadAttributes", "yes");
6891 }
6892 }
6893 if (this.writeAttributesFieldSet)
6894 {
6895 if ((this.writeAttributesField == YesNoType.no))
6896 {
6897 writer.WriteAttributeString("WriteAttributes", "no");
6898 }
6899 if ((this.writeAttributesField == YesNoType.yes))
6900 {
6901 writer.WriteAttributeString("WriteAttributes", "yes");
6902 }
6903 }
6904 if (this.readExtendedAttributesFieldSet)
6905 {
6906 if ((this.readExtendedAttributesField == YesNoType.no))
6907 {
6908 writer.WriteAttributeString("ReadExtendedAttributes", "no");
6909 }
6910 if ((this.readExtendedAttributesField == YesNoType.yes))
6911 {
6912 writer.WriteAttributeString("ReadExtendedAttributes", "yes");
6913 }
6914 }
6915 if (this.writeExtendedAttributesFieldSet)
6916 {
6917 if ((this.writeExtendedAttributesField == YesNoType.no))
6918 {
6919 writer.WriteAttributeString("WriteExtendedAttributes", "no");
6920 }
6921 if ((this.writeExtendedAttributesField == YesNoType.yes))
6922 {
6923 writer.WriteAttributeString("WriteExtendedAttributes", "yes");
6924 }
6925 }
6926 if (this.synchronizeFieldSet)
6927 {
6928 if ((this.synchronizeField == YesNoType.no))
6929 {
6930 writer.WriteAttributeString("Synchronize", "no");
6931 }
6932 if ((this.synchronizeField == YesNoType.yes))
6933 {
6934 writer.WriteAttributeString("Synchronize", "yes");
6935 }
6936 }
6937 if (this.createFileFieldSet)
6938 {
6939 if ((this.createFileField == YesNoType.no))
6940 {
6941 writer.WriteAttributeString("CreateFile", "no");
6942 }
6943 if ((this.createFileField == YesNoType.yes))
6944 {
6945 writer.WriteAttributeString("CreateFile", "yes");
6946 }
6947 }
6948 if (this.createChildFieldSet)
6949 {
6950 if ((this.createChildField == YesNoType.no))
6951 {
6952 writer.WriteAttributeString("CreateChild", "no");
6953 }
6954 if ((this.createChildField == YesNoType.yes))
6955 {
6956 writer.WriteAttributeString("CreateChild", "yes");
6957 }
6958 }
6959 if (this.deleteChildFieldSet)
6960 {
6961 if ((this.deleteChildField == YesNoType.no))
6962 {
6963 writer.WriteAttributeString("DeleteChild", "no");
6964 }
6965 if ((this.deleteChildField == YesNoType.yes))
6966 {
6967 writer.WriteAttributeString("DeleteChild", "yes");
6968 }
6969 }
6970 if (this.traverseFieldSet)
6971 {
6972 if ((this.traverseField == YesNoType.no))
6973 {
6974 writer.WriteAttributeString("Traverse", "no");
6975 }
6976 if ((this.traverseField == YesNoType.yes))
6977 {
6978 writer.WriteAttributeString("Traverse", "yes");
6979 }
6980 }
6981 if (this.appendFieldSet)
6982 {
6983 if ((this.appendField == YesNoType.no))
6984 {
6985 writer.WriteAttributeString("Append", "no");
6986 }
6987 if ((this.appendField == YesNoType.yes))
6988 {
6989 writer.WriteAttributeString("Append", "yes");
6990 }
6991 }
6992 if (this.executeFieldSet)
6993 {
6994 if ((this.executeField == YesNoType.no))
6995 {
6996 writer.WriteAttributeString("Execute", "no");
6997 }
6998 if ((this.executeField == YesNoType.yes))
6999 {
7000 writer.WriteAttributeString("Execute", "yes");
7001 }
7002 }
7003 if (this.writeFieldSet)
7004 {
7005 if ((this.writeField == YesNoType.no))
7006 {
7007 writer.WriteAttributeString("Write", "no");
7008 }
7009 if ((this.writeField == YesNoType.yes))
7010 {
7011 writer.WriteAttributeString("Write", "yes");
7012 }
7013 }
7014 if (this.createSubkeysFieldSet)
7015 {
7016 if ((this.createSubkeysField == YesNoType.no))
7017 {
7018 writer.WriteAttributeString("CreateSubkeys", "no");
7019 }
7020 if ((this.createSubkeysField == YesNoType.yes))
7021 {
7022 writer.WriteAttributeString("CreateSubkeys", "yes");
7023 }
7024 }
7025 if (this.enumerateSubkeysFieldSet)
7026 {
7027 if ((this.enumerateSubkeysField == YesNoType.no))
7028 {
7029 writer.WriteAttributeString("EnumerateSubkeys", "no");
7030 }
7031 if ((this.enumerateSubkeysField == YesNoType.yes))
7032 {
7033 writer.WriteAttributeString("EnumerateSubkeys", "yes");
7034 }
7035 }
7036 if (this.notifyFieldSet)
7037 {
7038 if ((this.notifyField == YesNoType.no))
7039 {
7040 writer.WriteAttributeString("Notify", "no");
7041 }
7042 if ((this.notifyField == YesNoType.yes))
7043 {
7044 writer.WriteAttributeString("Notify", "yes");
7045 }
7046 }
7047 if (this.createLinkFieldSet)
7048 {
7049 if ((this.createLinkField == YesNoType.no))
7050 {
7051 writer.WriteAttributeString("CreateLink", "no");
7052 }
7053 if ((this.createLinkField == YesNoType.yes))
7054 {
7055 writer.WriteAttributeString("CreateLink", "yes");
7056 }
7057 }
7058 if (this.genericAllFieldSet)
7059 {
7060 if ((this.genericAllField == YesNoType.no))
7061 {
7062 writer.WriteAttributeString("GenericAll", "no");
7063 }
7064 if ((this.genericAllField == YesNoType.yes))
7065 {
7066 writer.WriteAttributeString("GenericAll", "yes");
7067 }
7068 }
7069 if (this.genericExecuteFieldSet)
7070 {
7071 if ((this.genericExecuteField == YesNoType.no))
7072 {
7073 writer.WriteAttributeString("GenericExecute", "no");
7074 }
7075 if ((this.genericExecuteField == YesNoType.yes))
7076 {
7077 writer.WriteAttributeString("GenericExecute", "yes");
7078 }
7079 }
7080 if (this.genericWriteFieldSet)
7081 {
7082 if ((this.genericWriteField == YesNoType.no))
7083 {
7084 writer.WriteAttributeString("GenericWrite", "no");
7085 }
7086 if ((this.genericWriteField == YesNoType.yes))
7087 {
7088 writer.WriteAttributeString("GenericWrite", "yes");
7089 }
7090 }
7091 if (this.genericReadFieldSet)
7092 {
7093 if ((this.genericReadField == YesNoType.no))
7094 {
7095 writer.WriteAttributeString("GenericRead", "no");
7096 }
7097 if ((this.genericReadField == YesNoType.yes))
7098 {
7099 writer.WriteAttributeString("GenericRead", "yes");
7100 }
7101 }
7102 if (this.serviceQueryConfigFieldSet)
7103 {
7104 if ((this.serviceQueryConfigField == YesNoType.no))
7105 {
7106 writer.WriteAttributeString("ServiceQueryConfig", "no");
7107 }
7108 if ((this.serviceQueryConfigField == YesNoType.yes))
7109 {
7110 writer.WriteAttributeString("ServiceQueryConfig", "yes");
7111 }
7112 }
7113 if (this.serviceChangeConfigFieldSet)
7114 {
7115 if ((this.serviceChangeConfigField == YesNoType.no))
7116 {
7117 writer.WriteAttributeString("ServiceChangeConfig", "no");
7118 }
7119 if ((this.serviceChangeConfigField == YesNoType.yes))
7120 {
7121 writer.WriteAttributeString("ServiceChangeConfig", "yes");
7122 }
7123 }
7124 if (this.serviceQueryStatusFieldSet)
7125 {
7126 if ((this.serviceQueryStatusField == YesNoType.no))
7127 {
7128 writer.WriteAttributeString("ServiceQueryStatus", "no");
7129 }
7130 if ((this.serviceQueryStatusField == YesNoType.yes))
7131 {
7132 writer.WriteAttributeString("ServiceQueryStatus", "yes");
7133 }
7134 }
7135 if (this.serviceEnumerateDependentsFieldSet)
7136 {
7137 if ((this.serviceEnumerateDependentsField == YesNoType.no))
7138 {
7139 writer.WriteAttributeString("ServiceEnumerateDependents", "no");
7140 }
7141 if ((this.serviceEnumerateDependentsField == YesNoType.yes))
7142 {
7143 writer.WriteAttributeString("ServiceEnumerateDependents", "yes");
7144 }
7145 }
7146 if (this.serviceStartFieldSet)
7147 {
7148 if ((this.serviceStartField == YesNoType.no))
7149 {
7150 writer.WriteAttributeString("ServiceStart", "no");
7151 }
7152 if ((this.serviceStartField == YesNoType.yes))
7153 {
7154 writer.WriteAttributeString("ServiceStart", "yes");
7155 }
7156 }
7157 if (this.serviceStopFieldSet)
7158 {
7159 if ((this.serviceStopField == YesNoType.no))
7160 {
7161 writer.WriteAttributeString("ServiceStop", "no");
7162 }
7163 if ((this.serviceStopField == YesNoType.yes))
7164 {
7165 writer.WriteAttributeString("ServiceStop", "yes");
7166 }
7167 }
7168 if (this.servicePauseContinueFieldSet)
7169 {
7170 if ((this.servicePauseContinueField == YesNoType.no))
7171 {
7172 writer.WriteAttributeString("ServicePauseContinue", "no");
7173 }
7174 if ((this.servicePauseContinueField == YesNoType.yes))
7175 {
7176 writer.WriteAttributeString("ServicePauseContinue", "yes");
7177 }
7178 }
7179 if (this.serviceInterrogateFieldSet)
7180 {
7181 if ((this.serviceInterrogateField == YesNoType.no))
7182 {
7183 writer.WriteAttributeString("ServiceInterrogate", "no");
7184 }
7185 if ((this.serviceInterrogateField == YesNoType.yes))
7186 {
7187 writer.WriteAttributeString("ServiceInterrogate", "yes");
7188 }
7189 }
7190 if (this.serviceUserDefinedControlFieldSet)
7191 {
7192 if ((this.serviceUserDefinedControlField == YesNoType.no))
7193 {
7194 writer.WriteAttributeString("ServiceUserDefinedControl", "no");
7195 }
7196 if ((this.serviceUserDefinedControlField == YesNoType.yes))
7197 {
7198 writer.WriteAttributeString("ServiceUserDefinedControl", "yes");
7199 }
7200 }
7201 writer.WriteEndElement();
7202 }
7203
7204 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
7205 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
7206 void ISetAttributes.SetAttribute(string name, string value)
7207 {
7208 if (String.IsNullOrEmpty(name))
7209 {
7210 throw new ArgumentNullException("name");
7211 }
7212 if (("Domain" == name))
7213 {
7214 this.domainField = value;
7215 this.domainFieldSet = true;
7216 }
7217 if (("User" == name))
7218 {
7219 this.userField = value;
7220 this.userFieldSet = true;
7221 }
7222 if (("Read" == name))
7223 {
7224 this.readField = Enums.ParseYesNoType(value);
7225 this.readFieldSet = true;
7226 }
7227 if (("Delete" == name))
7228 {
7229 this.deleteField = Enums.ParseYesNoType(value);
7230 this.deleteFieldSet = true;
7231 }
7232 if (("ReadPermission" == name))
7233 {
7234 this.readPermissionField = Enums.ParseYesNoType(value);
7235 this.readPermissionFieldSet = true;
7236 }
7237 if (("ChangePermission" == name))
7238 {
7239 this.changePermissionField = Enums.ParseYesNoType(value);
7240 this.changePermissionFieldSet = true;
7241 }
7242 if (("TakeOwnership" == name))
7243 {
7244 this.takeOwnershipField = Enums.ParseYesNoType(value);
7245 this.takeOwnershipFieldSet = true;
7246 }
7247 if (("ReadAttributes" == name))
7248 {
7249 this.readAttributesField = Enums.ParseYesNoType(value);
7250 this.readAttributesFieldSet = true;
7251 }
7252 if (("WriteAttributes" == name))
7253 {
7254 this.writeAttributesField = Enums.ParseYesNoType(value);
7255 this.writeAttributesFieldSet = true;
7256 }
7257 if (("ReadExtendedAttributes" == name))
7258 {
7259 this.readExtendedAttributesField = Enums.ParseYesNoType(value);
7260 this.readExtendedAttributesFieldSet = true;
7261 }
7262 if (("WriteExtendedAttributes" == name))
7263 {
7264 this.writeExtendedAttributesField = Enums.ParseYesNoType(value);
7265 this.writeExtendedAttributesFieldSet = true;
7266 }
7267 if (("Synchronize" == name))
7268 {
7269 this.synchronizeField = Enums.ParseYesNoType(value);
7270 this.synchronizeFieldSet = true;
7271 }
7272 if (("CreateFile" == name))
7273 {
7274 this.createFileField = Enums.ParseYesNoType(value);
7275 this.createFileFieldSet = true;
7276 }
7277 if (("CreateChild" == name))
7278 {
7279 this.createChildField = Enums.ParseYesNoType(value);
7280 this.createChildFieldSet = true;
7281 }
7282 if (("DeleteChild" == name))
7283 {
7284 this.deleteChildField = Enums.ParseYesNoType(value);
7285 this.deleteChildFieldSet = true;
7286 }
7287 if (("Traverse" == name))
7288 {
7289 this.traverseField = Enums.ParseYesNoType(value);
7290 this.traverseFieldSet = true;
7291 }
7292 if (("Append" == name))
7293 {
7294 this.appendField = Enums.ParseYesNoType(value);
7295 this.appendFieldSet = true;
7296 }
7297 if (("Execute" == name))
7298 {
7299 this.executeField = Enums.ParseYesNoType(value);
7300 this.executeFieldSet = true;
7301 }
7302 if (("Write" == name))
7303 {
7304 this.writeField = Enums.ParseYesNoType(value);
7305 this.writeFieldSet = true;
7306 }
7307 if (("CreateSubkeys" == name))
7308 {
7309 this.createSubkeysField = Enums.ParseYesNoType(value);
7310 this.createSubkeysFieldSet = true;
7311 }
7312 if (("EnumerateSubkeys" == name))
7313 {
7314 this.enumerateSubkeysField = Enums.ParseYesNoType(value);
7315 this.enumerateSubkeysFieldSet = true;
7316 }
7317 if (("Notify" == name))
7318 {
7319 this.notifyField = Enums.ParseYesNoType(value);
7320 this.notifyFieldSet = true;
7321 }
7322 if (("CreateLink" == name))
7323 {
7324 this.createLinkField = Enums.ParseYesNoType(value);
7325 this.createLinkFieldSet = true;
7326 }
7327 if (("GenericAll" == name))
7328 {
7329 this.genericAllField = Enums.ParseYesNoType(value);
7330 this.genericAllFieldSet = true;
7331 }
7332 if (("GenericExecute" == name))
7333 {
7334 this.genericExecuteField = Enums.ParseYesNoType(value);
7335 this.genericExecuteFieldSet = true;
7336 }
7337 if (("GenericWrite" == name))
7338 {
7339 this.genericWriteField = Enums.ParseYesNoType(value);
7340 this.genericWriteFieldSet = true;
7341 }
7342 if (("GenericRead" == name))
7343 {
7344 this.genericReadField = Enums.ParseYesNoType(value);
7345 this.genericReadFieldSet = true;
7346 }
7347 if (("ServiceQueryConfig" == name))
7348 {
7349 this.serviceQueryConfigField = Enums.ParseYesNoType(value);
7350 this.serviceQueryConfigFieldSet = true;
7351 }
7352 if (("ServiceChangeConfig" == name))
7353 {
7354 this.serviceChangeConfigField = Enums.ParseYesNoType(value);
7355 this.serviceChangeConfigFieldSet = true;
7356 }
7357 if (("ServiceQueryStatus" == name))
7358 {
7359 this.serviceQueryStatusField = Enums.ParseYesNoType(value);
7360 this.serviceQueryStatusFieldSet = true;
7361 }
7362 if (("ServiceEnumerateDependents" == name))
7363 {
7364 this.serviceEnumerateDependentsField = Enums.ParseYesNoType(value);
7365 this.serviceEnumerateDependentsFieldSet = true;
7366 }
7367 if (("ServiceStart" == name))
7368 {
7369 this.serviceStartField = Enums.ParseYesNoType(value);
7370 this.serviceStartFieldSet = true;
7371 }
7372 if (("ServiceStop" == name))
7373 {
7374 this.serviceStopField = Enums.ParseYesNoType(value);
7375 this.serviceStopFieldSet = true;
7376 }
7377 if (("ServicePauseContinue" == name))
7378 {
7379 this.servicePauseContinueField = Enums.ParseYesNoType(value);
7380 this.servicePauseContinueFieldSet = true;
7381 }
7382 if (("ServiceInterrogate" == name))
7383 {
7384 this.serviceInterrogateField = Enums.ParseYesNoType(value);
7385 this.serviceInterrogateFieldSet = true;
7386 }
7387 if (("ServiceUserDefinedControl" == name))
7388 {
7389 this.serviceUserDefinedControlField = Enums.ParseYesNoType(value);
7390 this.serviceUserDefinedControlFieldSet = true;
7391 }
7392 }
7393 }
7394
7395 /// <summary>
7396 /// Describes a product search.
7397 /// </summary>
7398 [GeneratedCode("XsdGen", "4.0.0.0")]
7399 public class ProductSearch : ISchemaElement, ISetAttributes
7400 {
7401
7402 private string idField;
7403
7404 private bool idFieldSet;
7405
7406 private string variableField;
7407
7408 private bool variableFieldSet;
7409
7410 private string conditionField;
7411
7412 private bool conditionFieldSet;
7413
7414 private string afterField;
7415
7416 private bool afterFieldSet;
7417
7418 private string guidField;
7419
7420 private bool guidFieldSet;
7421
7422 private string productCodeField;
7423
7424 private bool productCodeFieldSet;
7425
7426 private string upgradeCodeField;
7427
7428 private bool upgradeCodeFieldSet;
7429
7430 private ResultType resultField;
7431
7432 private bool resultFieldSet;
7433
7434 private ISchemaElement parentElement;
7435
7436 /// <summary>
7437 /// Id of the search for ordering and dependency.
7438 /// </summary>
7439 public string Id
7440 {
7441 get
7442 {
7443 return this.idField;
7444 }
7445 set
7446 {
7447 this.idFieldSet = true;
7448 this.idField = value;
7449 }
7450 }
7451
7452 /// <summary>
7453 /// Name of the variable in which to place the result of the search.
7454 /// </summary>
7455 public string Variable
7456 {
7457 get
7458 {
7459 return this.variableField;
7460 }
7461 set
7462 {
7463 this.variableFieldSet = true;
7464 this.variableField = value;
7465 }
7466 }
7467
7468 /// <summary>
7469 /// Condition for evaluating the search. If this evaluates to false, the search is not executed at all.
7470 /// </summary>
7471 public string Condition
7472 {
7473 get
7474 {
7475 return this.conditionField;
7476 }
7477 set
7478 {
7479 this.conditionFieldSet = true;
7480 this.conditionField = value;
7481 }
7482 }
7483
7484 /// <summary>
7485 /// Id of the search that this one should come after.
7486 /// </summary>
7487 public string After
7488 {
7489 get
7490 {
7491 return this.afterField;
7492 }
7493 set
7494 {
7495 this.afterFieldSet = true;
7496 this.afterField = value;
7497 }
7498 }
7499
7500 /// <summary>
7501 /// The Guid attribute has been deprecated; use the ProductCode or UpgradeCode attribute instead. If this attribute is used, it is assumed to be a ProductCode.
7502 /// </summary>
7503 public string Guid
7504 {
7505 get
7506 {
7507 return this.guidField;
7508 }
7509 set
7510 {
7511 this.guidFieldSet = true;
7512 this.guidField = value;
7513 }
7514 }
7515
7516 /// <summary>
7517 /// The ProductCode to use for the search. This attribute must be omitted if UpgradeCode is specified.
7518 /// </summary>
7519 public string ProductCode
7520 {
7521 get
7522 {
7523 return this.productCodeField;
7524 }
7525 set
7526 {
7527 this.productCodeFieldSet = true;
7528 this.productCodeField = value;
7529 }
7530 }
7531
7532 /// <summary>
7533 /// The UpgradeCode to use for the search. This attribute must be omitted if ProductCode is specified. Note that if multiple products are found, the highest versioned product will be used for the result.
7534 /// </summary>
7535 public string UpgradeCode
7536 {
7537 get
7538 {
7539 return this.upgradeCodeField;
7540 }
7541 set
7542 {
7543 this.upgradeCodeFieldSet = true;
7544 this.upgradeCodeField = value;
7545 }
7546 }
7547
7548 /// <summary>
7549 /// Rather than saving the product version into the variable, a ProductSearch can save another attribute of the matching product instead.
7550 /// </summary>
7551 public ResultType Result
7552 {
7553 get
7554 {
7555 return this.resultField;
7556 }
7557 set
7558 {
7559 this.resultFieldSet = true;
7560 this.resultField = value;
7561 }
7562 }
7563
7564 public virtual ISchemaElement ParentElement
7565 {
7566 get
7567 {
7568 return this.parentElement;
7569 }
7570 set
7571 {
7572 this.parentElement = value;
7573 }
7574 }
7575
7576 /// <summary>
7577 /// Parses a ResultType from a string.
7578 /// </summary>
7579 public static ResultType ParseResultType(string value)
7580 {
7581 ResultType parsedValue;
7582 ProductSearch.TryParseResultType(value, out parsedValue);
7583 return parsedValue;
7584 }
7585
7586 /// <summary>
7587 /// Tries to parse a ResultType from a string.
7588 /// </summary>
7589 public static bool TryParseResultType(string value, out ResultType parsedValue)
7590 {
7591 parsedValue = ResultType.NotSet;
7592 if (string.IsNullOrEmpty(value))
7593 {
7594 return false;
7595 }
7596 if (("version" == value))
7597 {
7598 parsedValue = ResultType.version;
7599 }
7600 else
7601 {
7602 if (("language" == value))
7603 {
7604 parsedValue = ResultType.language;
7605 }
7606 else
7607 {
7608 if (("state" == value))
7609 {
7610 parsedValue = ResultType.state;
7611 }
7612 else
7613 {
7614 if (("assignment" == value))
7615 {
7616 parsedValue = ResultType.assignment;
7617 }
7618 else
7619 {
7620 parsedValue = ResultType.IllegalValue;
7621 return false;
7622 }
7623 }
7624 }
7625 }
7626 return true;
7627 }
7628
7629 /// <summary>
7630 /// Processes this element and all child elements into an XmlWriter.
7631 /// </summary>
7632 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
7633 public virtual void OutputXml(XmlWriter writer)
7634 {
7635 if ((null == writer))
7636 {
7637 throw new ArgumentNullException("writer");
7638 }
7639 writer.WriteStartElement("ProductSearch", "http://wixtoolset.org/schemas/v4/wxs/util");
7640 if (this.idFieldSet)
7641 {
7642 writer.WriteAttributeString("Id", this.idField);
7643 }
7644 if (this.variableFieldSet)
7645 {
7646 writer.WriteAttributeString("Variable", this.variableField);
7647 }
7648 if (this.conditionFieldSet)
7649 {
7650 writer.WriteAttributeString("Condition", this.conditionField);
7651 }
7652 if (this.afterFieldSet)
7653 {
7654 writer.WriteAttributeString("After", this.afterField);
7655 }
7656 if (this.guidFieldSet)
7657 {
7658 writer.WriteAttributeString("Guid", this.guidField);
7659 }
7660 if (this.productCodeFieldSet)
7661 {
7662 writer.WriteAttributeString("ProductCode", this.productCodeField);
7663 }
7664 if (this.upgradeCodeFieldSet)
7665 {
7666 writer.WriteAttributeString("UpgradeCode", this.upgradeCodeField);
7667 }
7668 if (this.resultFieldSet)
7669 {
7670 if ((this.resultField == ResultType.version))
7671 {
7672 writer.WriteAttributeString("Result", "version");
7673 }
7674 if ((this.resultField == ResultType.language))
7675 {
7676 writer.WriteAttributeString("Result", "language");
7677 }
7678 if ((this.resultField == ResultType.state))
7679 {
7680 writer.WriteAttributeString("Result", "state");
7681 }
7682 if ((this.resultField == ResultType.assignment))
7683 {
7684 writer.WriteAttributeString("Result", "assignment");
7685 }
7686 }
7687 writer.WriteEndElement();
7688 }
7689
7690 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
7691 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
7692 void ISetAttributes.SetAttribute(string name, string value)
7693 {
7694 if (String.IsNullOrEmpty(name))
7695 {
7696 throw new ArgumentNullException("name");
7697 }
7698 if (("Id" == name))
7699 {
7700 this.idField = value;
7701 this.idFieldSet = true;
7702 }
7703 if (("Variable" == name))
7704 {
7705 this.variableField = value;
7706 this.variableFieldSet = true;
7707 }
7708 if (("Condition" == name))
7709 {
7710 this.conditionField = value;
7711 this.conditionFieldSet = true;
7712 }
7713 if (("After" == name))
7714 {
7715 this.afterField = value;
7716 this.afterFieldSet = true;
7717 }
7718 if (("Guid" == name))
7719 {
7720 this.guidField = value;
7721 this.guidFieldSet = true;
7722 }
7723 if (("ProductCode" == name))
7724 {
7725 this.productCodeField = value;
7726 this.productCodeFieldSet = true;
7727 }
7728 if (("UpgradeCode" == name))
7729 {
7730 this.upgradeCodeField = value;
7731 this.upgradeCodeFieldSet = true;
7732 }
7733 if (("Result" == name))
7734 {
7735 this.resultField = ProductSearch.ParseResultType(value);
7736 this.resultFieldSet = true;
7737 }
7738 }
7739
7740 [GeneratedCode("XsdGen", "4.0.0.0")]
7741 public enum ResultType
7742 {
7743
7744 IllegalValue = int.MaxValue,
7745
7746 NotSet = -1,
7747
7748 /// <summary>
7749 /// Saves the version of a matching product if found; 0.0.0.0 otherwise. This is the default.
7750 /// </summary>
7751 version,
7752
7753 /// <summary>
7754 /// Saves the language of a matching product if found; empty otherwise.
7755 /// </summary>
7756 language,
7757
7758 /// <summary>
7759 /// Saves the state of the product: advertised (1), absent (2), or locally installed (5).
7760 /// </summary>
7761 state,
7762
7763 /// <summary>
7764 /// Saves the assignment type of the product: per-user (0), or per-machine (1).
7765 /// </summary>
7766 assignment,
7767 }
7768 }
7769
7770 /// <summary>
7771 /// References a ProductSearch.
7772 /// </summary>
7773 [GeneratedCode("XsdGen", "4.0.0.0")]
7774 public class ProductSearchRef : ISchemaElement, ISetAttributes
7775 {
7776
7777 private string idField;
7778
7779 private bool idFieldSet;
7780
7781 private ISchemaElement parentElement;
7782
7783 public string Id
7784 {
7785 get
7786 {
7787 return this.idField;
7788 }
7789 set
7790 {
7791 this.idFieldSet = true;
7792 this.idField = value;
7793 }
7794 }
7795
7796 public virtual ISchemaElement ParentElement
7797 {
7798 get
7799 {
7800 return this.parentElement;
7801 }
7802 set
7803 {
7804 this.parentElement = value;
7805 }
7806 }
7807
7808 /// <summary>
7809 /// Processes this element and all child elements into an XmlWriter.
7810 /// </summary>
7811 public virtual void OutputXml(XmlWriter writer)
7812 {
7813 if ((null == writer))
7814 {
7815 throw new ArgumentNullException("writer");
7816 }
7817 writer.WriteStartElement("ProductSearchRef", "http://wixtoolset.org/schemas/v4/wxs/util");
7818 if (this.idFieldSet)
7819 {
7820 writer.WriteAttributeString("Id", this.idField);
7821 }
7822 writer.WriteEndElement();
7823 }
7824
7825 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
7826 void ISetAttributes.SetAttribute(string name, string value)
7827 {
7828 if (String.IsNullOrEmpty(name))
7829 {
7830 throw new ArgumentNullException("name");
7831 }
7832 if (("Id" == name))
7833 {
7834 this.idField = value;
7835 this.idFieldSet = true;
7836 }
7837 }
7838 }
7839
7840 /// <summary>
7841 /// Remove a folder and all contained files and folders if the parent component is selected for installation or removal.
7842 /// The folder must be specified in the Property attribute as the name of a property that will have a value that resolves
7843 /// to the full path of the folder before the CostInitialize action. Note that Directory ids cannot be used.
7844 /// For more details, see the Remarks.
7845 /// </summary>
7846 [GeneratedCode("XsdGen", "4.0.0.0")]
7847 public class RemoveFolderEx : ISchemaElement, ISetAttributes
7848 {
7849
7850 private string idField;
7851
7852 private bool idFieldSet;
7853
7854 private string propertyField;
7855
7856 private bool propertyFieldSet;
7857
7858 private OnType onField;
7859
7860 private bool onFieldSet;
7861
7862 private ISchemaElement parentElement;
7863
7864 /// <summary>
7865 /// Primary key used to identify this particular entry. If this is not specified, a stable identifier
7866 /// will be generated at compile time based on the other attributes.
7867 /// </summary>
7868 public string Id
7869 {
7870 get
7871 {
7872 return this.idField;
7873 }
7874 set
7875 {
7876 this.idFieldSet = true;
7877 this.idField = value;
7878 }
7879 }
7880
7881 /// <summary>
7882 /// The id of a property that resolves to the full path of the source directory. The property does not have
7883 /// to exist in the installer database at creation time; it could be created at installation time by a custom
7884 /// action, on the command line, etc. The property value can contain environment variables surrounded by
7885 /// percent signs such as from a REG_EXPAND_SZ registry value; environment variables will be expanded before
7886 /// being evaluated for a full path.
7887 /// </summary>
7888 public string Property
7889 {
7890 get
7891 {
7892 return this.propertyField;
7893 }
7894 set
7895 {
7896 this.propertyFieldSet = true;
7897 this.propertyField = value;
7898 }
7899 }
7900
7901 /// <summary>
7902 /// This value determines when the folder may be removed.
7903 /// </summary>
7904 public OnType On
7905 {
7906 get
7907 {
7908 return this.onField;
7909 }
7910 set
7911 {
7912 this.onFieldSet = true;
7913 this.onField = value;
7914 }
7915 }
7916
7917 public virtual ISchemaElement ParentElement
7918 {
7919 get
7920 {
7921 return this.parentElement;
7922 }
7923 set
7924 {
7925 this.parentElement = value;
7926 }
7927 }
7928
7929 /// <summary>
7930 /// Parses a OnType from a string.
7931 /// </summary>
7932 public static OnType ParseOnType(string value)
7933 {
7934 OnType parsedValue;
7935 RemoveFolderEx.TryParseOnType(value, out parsedValue);
7936 return parsedValue;
7937 }
7938
7939 /// <summary>
7940 /// Tries to parse a OnType from a string.
7941 /// </summary>
7942 public static bool TryParseOnType(string value, out OnType parsedValue)
7943 {
7944 parsedValue = OnType.NotSet;
7945 if (string.IsNullOrEmpty(value))
7946 {
7947 return false;
7948 }
7949 if (("install" == value))
7950 {
7951 parsedValue = OnType.install;
7952 }
7953 else
7954 {
7955 if (("uninstall" == value))
7956 {
7957 parsedValue = OnType.uninstall;
7958 }
7959 else
7960 {
7961 if (("both" == value))
7962 {
7963 parsedValue = OnType.both;
7964 }
7965 else
7966 {
7967 parsedValue = OnType.IllegalValue;
7968 return false;
7969 }
7970 }
7971 }
7972 return true;
7973 }
7974
7975 /// <summary>
7976 /// Processes this element and all child elements into an XmlWriter.
7977 /// </summary>
7978 public virtual void OutputXml(XmlWriter writer)
7979 {
7980 if ((null == writer))
7981 {
7982 throw new ArgumentNullException("writer");
7983 }
7984 writer.WriteStartElement("RemoveFolderEx", "http://wixtoolset.org/schemas/v4/wxs/util");
7985 if (this.idFieldSet)
7986 {
7987 writer.WriteAttributeString("Id", this.idField);
7988 }
7989 if (this.propertyFieldSet)
7990 {
7991 writer.WriteAttributeString("Property", this.propertyField);
7992 }
7993 if (this.onFieldSet)
7994 {
7995 if ((this.onField == OnType.install))
7996 {
7997 writer.WriteAttributeString("On", "install");
7998 }
7999 if ((this.onField == OnType.uninstall))
8000 {
8001 writer.WriteAttributeString("On", "uninstall");
8002 }
8003 if ((this.onField == OnType.both))
8004 {
8005 writer.WriteAttributeString("On", "both");
8006 }
8007 }
8008 writer.WriteEndElement();
8009 }
8010
8011 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
8012 void ISetAttributes.SetAttribute(string name, string value)
8013 {
8014 if (String.IsNullOrEmpty(name))
8015 {
8016 throw new ArgumentNullException("name");
8017 }
8018 if (("Id" == name))
8019 {
8020 this.idField = value;
8021 this.idFieldSet = true;
8022 }
8023 if (("Property" == name))
8024 {
8025 this.propertyField = value;
8026 this.propertyFieldSet = true;
8027 }
8028 if (("On" == name))
8029 {
8030 this.onField = RemoveFolderEx.ParseOnType(value);
8031 this.onFieldSet = true;
8032 }
8033 }
8034
8035 [GeneratedCode("XsdGen", "4.0.0.0")]
8036 public enum OnType
8037 {
8038
8039 IllegalValue = int.MaxValue,
8040
8041 NotSet = -1,
8042
8043 /// <summary>
8044 /// Removes the folder only when the parent component is being installed (msiInstallStateLocal or msiInstallStateSource).
8045 /// </summary>
8046 install,
8047
8048 /// <summary>
8049 /// Default: Removes the folder only when the parent component is being removed (msiInstallStateAbsent).
8050 /// </summary>
8051 uninstall,
8052
8053 /// <summary>
8054 /// Removes the folder when the parent component is being installed or removed.
8055 /// </summary>
8056 both,
8057 }
8058 }
8059
8060 /// <summary>
8061 /// Registers a resource with the Restart Manager.
8062 /// </summary>
8063 [GeneratedCode("XsdGen", "4.0.0.0")]
8064 public class RestartResource : ISchemaElement, ISetAttributes
8065 {
8066
8067 private string idField;
8068
8069 private bool idFieldSet;
8070
8071 private string pathField;
8072
8073 private bool pathFieldSet;
8074
8075 private string processNameField;
8076
8077 private bool processNameFieldSet;
8078
8079 private string serviceNameField;
8080
8081 private bool serviceNameFieldSet;
8082
8083 private ISchemaElement parentElement;
8084
8085 /// <summary>
8086 /// The unique identifier for this resource. A unique identifier will
8087 /// be generated automatically if not specified.
8088 /// </summary>
8089 public string Id
8090 {
8091 get
8092 {
8093 return this.idField;
8094 }
8095 set
8096 {
8097 this.idFieldSet = true;
8098 this.idField = value;
8099 }
8100 }
8101
8102 /// <summary>
8103 /// The full path to the process module to register with the Restart Manager.
8104 /// This can be a formatted value that resolves to a full path.
8105 /// </summary>
8106 public string Path
8107 {
8108 get
8109 {
8110 return this.pathField;
8111 }
8112 set
8113 {
8114 this.pathFieldSet = true;
8115 this.pathField = value;
8116 }
8117 }
8118
8119 /// <summary>
8120 /// The name of a process to register with the Restart Manager.
8121 /// This can be a formatted value that resolves to a process name.
8122 /// </summary>
8123 public string ProcessName
8124 {
8125 get
8126 {
8127 return this.processNameField;
8128 }
8129 set
8130 {
8131 this.processNameFieldSet = true;
8132 this.processNameField = value;
8133 }
8134 }
8135
8136 /// <summary>
8137 /// The name of a Windows service to register with the Restart Manager.
8138 /// This can be a formatted value that resolves to a service name.
8139 /// </summary>
8140 public string ServiceName
8141 {
8142 get
8143 {
8144 return this.serviceNameField;
8145 }
8146 set
8147 {
8148 this.serviceNameFieldSet = true;
8149 this.serviceNameField = value;
8150 }
8151 }
8152
8153 public virtual ISchemaElement ParentElement
8154 {
8155 get
8156 {
8157 return this.parentElement;
8158 }
8159 set
8160 {
8161 this.parentElement = value;
8162 }
8163 }
8164
8165 /// <summary>
8166 /// Processes this element and all child elements into an XmlWriter.
8167 /// </summary>
8168 public virtual void OutputXml(XmlWriter writer)
8169 {
8170 if ((null == writer))
8171 {
8172 throw new ArgumentNullException("writer");
8173 }
8174 writer.WriteStartElement("RestartResource", "http://wixtoolset.org/schemas/v4/wxs/util");
8175 if (this.idFieldSet)
8176 {
8177 writer.WriteAttributeString("Id", this.idField);
8178 }
8179 if (this.pathFieldSet)
8180 {
8181 writer.WriteAttributeString("Path", this.pathField);
8182 }
8183 if (this.processNameFieldSet)
8184 {
8185 writer.WriteAttributeString("ProcessName", this.processNameField);
8186 }
8187 if (this.serviceNameFieldSet)
8188 {
8189 writer.WriteAttributeString("ServiceName", this.serviceNameField);
8190 }
8191 writer.WriteEndElement();
8192 }
8193
8194 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
8195 void ISetAttributes.SetAttribute(string name, string value)
8196 {
8197 if (String.IsNullOrEmpty(name))
8198 {
8199 throw new ArgumentNullException("name");
8200 }
8201 if (("Id" == name))
8202 {
8203 this.idField = value;
8204 this.idFieldSet = true;
8205 }
8206 if (("Path" == name))
8207 {
8208 this.pathField = value;
8209 this.pathFieldSet = true;
8210 }
8211 if (("ProcessName" == name))
8212 {
8213 this.processNameField = value;
8214 this.processNameFieldSet = true;
8215 }
8216 if (("ServiceName" == name))
8217 {
8218 this.serviceNameField = value;
8219 this.serviceNameFieldSet = true;
8220 }
8221 }
8222 }
8223
8224 /// <summary>
8225 /// Describes a registry search.
8226 /// </summary>
8227 [GeneratedCode("XsdGen", "4.0.0.0")]
8228 public class RegistrySearch : ISchemaElement, ISetAttributes
8229 {
8230
8231 private string idField;
8232
8233 private bool idFieldSet;
8234
8235 private string variableField;
8236
8237 private bool variableFieldSet;
8238
8239 private string conditionField;
8240
8241 private bool conditionFieldSet;
8242
8243 private string afterField;
8244
8245 private bool afterFieldSet;
8246
8247 private RootType rootField;
8248
8249 private bool rootFieldSet;
8250
8251 private string keyField;
8252
8253 private bool keyFieldSet;
8254
8255 private string valueField;
8256
8257 private bool valueFieldSet;
8258
8259 private FormatType formatField;
8260
8261 private bool formatFieldSet;
8262
8263 private YesNoType expandEnvironmentVariablesField;
8264
8265 private bool expandEnvironmentVariablesFieldSet;
8266
8267 private ResultType resultField;
8268
8269 private bool resultFieldSet;
8270
8271 private YesNoType win64Field;
8272
8273 private bool win64FieldSet;
8274
8275 private ISchemaElement parentElement;
8276
8277 /// <summary>
8278 /// Id of the search for ordering and dependency.
8279 /// </summary>
8280 public string Id
8281 {
8282 get
8283 {
8284 return this.idField;
8285 }
8286 set
8287 {
8288 this.idFieldSet = true;
8289 this.idField = value;
8290 }
8291 }
8292
8293 /// <summary>
8294 /// Name of the variable in which to place the result of the search.
8295 /// </summary>
8296 public string Variable
8297 {
8298 get
8299 {
8300 return this.variableField;
8301 }
8302 set
8303 {
8304 this.variableFieldSet = true;
8305 this.variableField = value;
8306 }
8307 }
8308
8309 /// <summary>
8310 /// Condition for evaluating the search. If this evaluates to false, the search is not executed at all.
8311 /// </summary>
8312 public string Condition
8313 {
8314 get
8315 {
8316 return this.conditionField;
8317 }
8318 set
8319 {
8320 this.conditionFieldSet = true;
8321 this.conditionField = value;
8322 }
8323 }
8324
8325 /// <summary>
8326 /// Id of the search that this one should come after.
8327 /// </summary>
8328 public string After
8329 {
8330 get
8331 {
8332 return this.afterField;
8333 }
8334 set
8335 {
8336 this.afterFieldSet = true;
8337 this.afterField = value;
8338 }
8339 }
8340
8341 /// <summary>
8342 /// Registry root hive to search under.
8343 /// </summary>
8344 public RootType Root
8345 {
8346 get
8347 {
8348 return this.rootField;
8349 }
8350 set
8351 {
8352 this.rootFieldSet = true;
8353 this.rootField = value;
8354 }
8355 }
8356
8357 /// <summary>
8358 /// Key to search for.
8359 /// </summary>
8360 public string Key
8361 {
8362 get
8363 {
8364 return this.keyField;
8365 }
8366 set
8367 {
8368 this.keyFieldSet = true;
8369 this.keyField = value;
8370 }
8371 }
8372
8373 /// <summary>
8374 /// Optional value to search for under the given Key.
8375 /// </summary>
8376 public string Value
8377 {
8378 get
8379 {
8380 return this.valueField;
8381 }
8382 set
8383 {
8384 this.valueFieldSet = true;
8385 this.valueField = value;
8386 }
8387 }
8388
8389 /// <summary>
8390 /// What format to return the value in.
8391 /// </summary>
8392 public FormatType Format
8393 {
8394 get
8395 {
8396 return this.formatField;
8397 }
8398 set
8399 {
8400 this.formatFieldSet = true;
8401 this.formatField = value;
8402 }
8403 }
8404
8405 /// <summary>
8406 /// Whether to expand any environment variables in REG_SZ, REG_EXPAND_SZ, or REG_MULTI_SZ values.
8407 /// </summary>
8408 public YesNoType ExpandEnvironmentVariables
8409 {
8410 get
8411 {
8412 return this.expandEnvironmentVariablesField;
8413 }
8414 set
8415 {
8416 this.expandEnvironmentVariablesFieldSet = true;
8417 this.expandEnvironmentVariablesField = value;
8418 }
8419 }
8420
8421 /// <summary>
8422 /// Rather than saving the matching registry value into the variable, a RegistrySearch can save an attribute of the matching entry instead.
8423 /// </summary>
8424 public ResultType Result
8425 {
8426 get
8427 {
8428 return this.resultField;
8429 }
8430 set
8431 {
8432 this.resultFieldSet = true;
8433 this.resultField = value;
8434 }
8435 }
8436
8437 /// <summary>
8438 /// Instructs the search to look in the 64-bit registry when the value is 'yes'. When the value is 'no', the search looks in the 32-bit registry. The default value is 'no'.
8439 /// </summary>
8440 public YesNoType Win64
8441 {
8442 get
8443 {
8444 return this.win64Field;
8445 }
8446 set
8447 {
8448 this.win64FieldSet = true;
8449 this.win64Field = value;
8450 }
8451 }
8452
8453 public virtual ISchemaElement ParentElement
8454 {
8455 get
8456 {
8457 return this.parentElement;
8458 }
8459 set
8460 {
8461 this.parentElement = value;
8462 }
8463 }
8464
8465 /// <summary>
8466 /// Parses a RootType from a string.
8467 /// </summary>
8468 public static RootType ParseRootType(string value)
8469 {
8470 RootType parsedValue;
8471 RegistrySearch.TryParseRootType(value, out parsedValue);
8472 return parsedValue;
8473 }
8474
8475 /// <summary>
8476 /// Tries to parse a RootType from a string.
8477 /// </summary>
8478 public static bool TryParseRootType(string value, out RootType parsedValue)
8479 {
8480 parsedValue = RootType.NotSet;
8481 if (string.IsNullOrEmpty(value))
8482 {
8483 return false;
8484 }
8485 if (("HKLM" == value))
8486 {
8487 parsedValue = RootType.HKLM;
8488 }
8489 else
8490 {
8491 if (("HKCU" == value))
8492 {
8493 parsedValue = RootType.HKCU;
8494 }
8495 else
8496 {
8497 if (("HKCR" == value))
8498 {
8499 parsedValue = RootType.HKCR;
8500 }
8501 else
8502 {
8503 if (("HKU" == value))
8504 {
8505 parsedValue = RootType.HKU;
8506 }
8507 else
8508 {
8509 parsedValue = RootType.IllegalValue;
8510 return false;
8511 }
8512 }
8513 }
8514 }
8515 return true;
8516 }
8517
8518 /// <summary>
8519 /// Parses a FormatType from a string.
8520 /// </summary>
8521 public static FormatType ParseFormatType(string value)
8522 {
8523 FormatType parsedValue;
8524 RegistrySearch.TryParseFormatType(value, out parsedValue);
8525 return parsedValue;
8526 }
8527
8528 /// <summary>
8529 /// Tries to parse a FormatType from a string.
8530 /// </summary>
8531 public static bool TryParseFormatType(string value, out FormatType parsedValue)
8532 {
8533 parsedValue = FormatType.NotSet;
8534 if (string.IsNullOrEmpty(value))
8535 {
8536 return false;
8537 }
8538 if (("raw" == value))
8539 {
8540 parsedValue = FormatType.raw;
8541 }
8542 else
8543 {
8544 if (("compatible" == value))
8545 {
8546 parsedValue = FormatType.compatible;
8547 }
8548 else
8549 {
8550 parsedValue = FormatType.IllegalValue;
8551 return false;
8552 }
8553 }
8554 return true;
8555 }
8556
8557 /// <summary>
8558 /// Parses a ResultType from a string.
8559 /// </summary>
8560 public static ResultType ParseResultType(string value)
8561 {
8562 ResultType parsedValue;
8563 RegistrySearch.TryParseResultType(value, out parsedValue);
8564 return parsedValue;
8565 }
8566
8567 /// <summary>
8568 /// Tries to parse a ResultType from a string.
8569 /// </summary>
8570 public static bool TryParseResultType(string value, out ResultType parsedValue)
8571 {
8572 parsedValue = ResultType.NotSet;
8573 if (string.IsNullOrEmpty(value))
8574 {
8575 return false;
8576 }
8577 if (("exists" == value))
8578 {
8579 parsedValue = ResultType.exists;
8580 }
8581 else
8582 {
8583 if (("value" == value))
8584 {
8585 parsedValue = ResultType.value;
8586 }
8587 else
8588 {
8589 parsedValue = ResultType.IllegalValue;
8590 return false;
8591 }
8592 }
8593 return true;
8594 }
8595
8596 /// <summary>
8597 /// Processes this element and all child elements into an XmlWriter.
8598 /// </summary>
8599 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
8600 public virtual void OutputXml(XmlWriter writer)
8601 {
8602 if ((null == writer))
8603 {
8604 throw new ArgumentNullException("writer");
8605 }
8606 writer.WriteStartElement("RegistrySearch", "http://wixtoolset.org/schemas/v4/wxs/util");
8607 if (this.idFieldSet)
8608 {
8609 writer.WriteAttributeString("Id", this.idField);
8610 }
8611 if (this.variableFieldSet)
8612 {
8613 writer.WriteAttributeString("Variable", this.variableField);
8614 }
8615 if (this.conditionFieldSet)
8616 {
8617 writer.WriteAttributeString("Condition", this.conditionField);
8618 }
8619 if (this.afterFieldSet)
8620 {
8621 writer.WriteAttributeString("After", this.afterField);
8622 }
8623 if (this.rootFieldSet)
8624 {
8625 if ((this.rootField == RootType.HKLM))
8626 {
8627 writer.WriteAttributeString("Root", "HKLM");
8628 }
8629 if ((this.rootField == RootType.HKCU))
8630 {
8631 writer.WriteAttributeString("Root", "HKCU");
8632 }
8633 if ((this.rootField == RootType.HKCR))
8634 {
8635 writer.WriteAttributeString("Root", "HKCR");
8636 }
8637 if ((this.rootField == RootType.HKU))
8638 {
8639 writer.WriteAttributeString("Root", "HKU");
8640 }
8641 }
8642 if (this.keyFieldSet)
8643 {
8644 writer.WriteAttributeString("Key", this.keyField);
8645 }
8646 if (this.valueFieldSet)
8647 {
8648 writer.WriteAttributeString("Value", this.valueField);
8649 }
8650 if (this.formatFieldSet)
8651 {
8652 if ((this.formatField == FormatType.raw))
8653 {
8654 writer.WriteAttributeString("Format", "raw");
8655 }
8656 if ((this.formatField == FormatType.compatible))
8657 {
8658 writer.WriteAttributeString("Format", "compatible");
8659 }
8660 }
8661 if (this.expandEnvironmentVariablesFieldSet)
8662 {
8663 if ((this.expandEnvironmentVariablesField == YesNoType.no))
8664 {
8665 writer.WriteAttributeString("ExpandEnvironmentVariables", "no");
8666 }
8667 if ((this.expandEnvironmentVariablesField == YesNoType.yes))
8668 {
8669 writer.WriteAttributeString("ExpandEnvironmentVariables", "yes");
8670 }
8671 }
8672 if (this.resultFieldSet)
8673 {
8674 if ((this.resultField == ResultType.exists))
8675 {
8676 writer.WriteAttributeString("Result", "exists");
8677 }
8678 if ((this.resultField == ResultType.value))
8679 {
8680 writer.WriteAttributeString("Result", "value");
8681 }
8682 }
8683 if (this.win64FieldSet)
8684 {
8685 if ((this.win64Field == YesNoType.no))
8686 {
8687 writer.WriteAttributeString("Win64", "no");
8688 }
8689 if ((this.win64Field == YesNoType.yes))
8690 {
8691 writer.WriteAttributeString("Win64", "yes");
8692 }
8693 }
8694 writer.WriteEndElement();
8695 }
8696
8697 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
8698 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
8699 void ISetAttributes.SetAttribute(string name, string value)
8700 {
8701 if (String.IsNullOrEmpty(name))
8702 {
8703 throw new ArgumentNullException("name");
8704 }
8705 if (("Id" == name))
8706 {
8707 this.idField = value;
8708 this.idFieldSet = true;
8709 }
8710 if (("Variable" == name))
8711 {
8712 this.variableField = value;
8713 this.variableFieldSet = true;
8714 }
8715 if (("Condition" == name))
8716 {
8717 this.conditionField = value;
8718 this.conditionFieldSet = true;
8719 }
8720 if (("After" == name))
8721 {
8722 this.afterField = value;
8723 this.afterFieldSet = true;
8724 }
8725 if (("Root" == name))
8726 {
8727 this.rootField = RegistrySearch.ParseRootType(value);
8728 this.rootFieldSet = true;
8729 }
8730 if (("Key" == name))
8731 {
8732 this.keyField = value;
8733 this.keyFieldSet = true;
8734 }
8735 if (("Value" == name))
8736 {
8737 this.valueField = value;
8738 this.valueFieldSet = true;
8739 }
8740 if (("Format" == name))
8741 {
8742 this.formatField = RegistrySearch.ParseFormatType(value);
8743 this.formatFieldSet = true;
8744 }
8745 if (("ExpandEnvironmentVariables" == name))
8746 {
8747 this.expandEnvironmentVariablesField = Enums.ParseYesNoType(value);
8748 this.expandEnvironmentVariablesFieldSet = true;
8749 }
8750 if (("Result" == name))
8751 {
8752 this.resultField = RegistrySearch.ParseResultType(value);
8753 this.resultFieldSet = true;
8754 }
8755 if (("Win64" == name))
8756 {
8757 this.win64Field = Enums.ParseYesNoType(value);
8758 this.win64FieldSet = true;
8759 }
8760 }
8761
8762 [GeneratedCode("XsdGen", "4.0.0.0")]
8763 public enum RootType
8764 {
8765
8766 IllegalValue = int.MaxValue,
8767
8768 NotSet = -1,
8769
8770 /// <summary>
8771 /// HKEY_LOCAL_MACHINE
8772 /// </summary>
8773 HKLM,
8774
8775 /// <summary>
8776 /// HKEY_CURRENT_USER
8777 /// </summary>
8778 HKCU,
8779
8780 /// <summary>
8781 /// HKEY_CLASSES_ROOT
8782 /// </summary>
8783 HKCR,
8784
8785 /// <summary>
8786 /// HKEY_USERS
8787 /// </summary>
8788 HKU,
8789 }
8790
8791 [GeneratedCode("XsdGen", "4.0.0.0")]
8792 public enum FormatType
8793 {
8794
8795 IllegalValue = int.MaxValue,
8796
8797 NotSet = -1,
8798
8799 /// <summary>
8800 /// Returns the unformatted value directly from the registry. For example, a REG_DWORD value of '1' is returned as '1', not '#1'.
8801 /// </summary>
8802 raw,
8803
8804 /// <summary>
8805 /// Returns the value formatted as Windows Installer would. For example, a REG_DWORD value of '1' is returned as '#1', not '1'.
8806 /// </summary>
8807 compatible,
8808 }
8809
8810 [GeneratedCode("XsdGen", "4.0.0.0")]
8811 public enum ResultType
8812 {
8813
8814 IllegalValue = int.MaxValue,
8815
8816 NotSet = -1,
8817
8818 /// <summary>
8819 /// Saves true if a matching registry entry is found; false otherwise.
8820 /// </summary>
8821 exists,
8822
8823 /// <summary>
8824 /// Saves the value of the registry key in the variable. This is the default.
8825 /// </summary>
8826 value,
8827 }
8828 }
8829
8830 /// <summary>
8831 /// References a RegistrySearch.
8832 /// </summary>
8833 [GeneratedCode("XsdGen", "4.0.0.0")]
8834 public class RegistrySearchRef : ISchemaElement, ISetAttributes
8835 {
8836
8837 private string idField;
8838
8839 private bool idFieldSet;
8840
8841 private ISchemaElement parentElement;
8842
8843 public string Id
8844 {
8845 get
8846 {
8847 return this.idField;
8848 }
8849 set
8850 {
8851 this.idFieldSet = true;
8852 this.idField = value;
8853 }
8854 }
8855
8856 public virtual ISchemaElement ParentElement
8857 {
8858 get
8859 {
8860 return this.parentElement;
8861 }
8862 set
8863 {
8864 this.parentElement = value;
8865 }
8866 }
8867
8868 /// <summary>
8869 /// Processes this element and all child elements into an XmlWriter.
8870 /// </summary>
8871 public virtual void OutputXml(XmlWriter writer)
8872 {
8873 if ((null == writer))
8874 {
8875 throw new ArgumentNullException("writer");
8876 }
8877 writer.WriteStartElement("RegistrySearchRef", "http://wixtoolset.org/schemas/v4/wxs/util");
8878 if (this.idFieldSet)
8879 {
8880 writer.WriteAttributeString("Id", this.idField);
8881 }
8882 writer.WriteEndElement();
8883 }
8884
8885 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
8886 void ISetAttributes.SetAttribute(string name, string value)
8887 {
8888 if (String.IsNullOrEmpty(name))
8889 {
8890 throw new ArgumentNullException("name");
8891 }
8892 if (("Id" == name))
8893 {
8894 this.idField = value;
8895 this.idFieldSet = true;
8896 }
8897 }
8898 }
8899
8900 /// <summary>
8901 /// Service configuration information for failure actions.
8902 /// </summary>
8903 [GeneratedCode("XsdGen", "4.0.0.0")]
8904 public class ServiceConfig : ISchemaElement, ISetAttributes
8905 {
8906
8907 private string serviceNameField;
8908
8909 private bool serviceNameFieldSet;
8910
8911 private FirstFailureActionTypeType firstFailureActionTypeField;
8912
8913 private bool firstFailureActionTypeFieldSet;
8914
8915 private SecondFailureActionTypeType secondFailureActionTypeField;
8916
8917 private bool secondFailureActionTypeFieldSet;
8918
8919 private ThirdFailureActionTypeType thirdFailureActionTypeField;
8920
8921 private bool thirdFailureActionTypeFieldSet;
8922
8923 private int resetPeriodInDaysField;
8924
8925 private bool resetPeriodInDaysFieldSet;
8926
8927 private int restartServiceDelayInSecondsField;
8928
8929 private bool restartServiceDelayInSecondsFieldSet;
8930
8931 private string programCommandLineField;
8932
8933 private bool programCommandLineFieldSet;
8934
8935 private string rebootMessageField;
8936
8937 private bool rebootMessageFieldSet;
8938
8939 private ISchemaElement parentElement;
8940
8941 /// <summary>
8942 /// Required if not under a ServiceInstall element.
8943 /// </summary>
8944 public string ServiceName
8945 {
8946 get
8947 {
8948 return this.serviceNameField;
8949 }
8950 set
8951 {
8952 this.serviceNameFieldSet = true;
8953 this.serviceNameField = value;
8954 }
8955 }
8956
8957 /// <summary>
8958 /// Action to take on the first failure of the service.
8959 /// </summary>
8960 public FirstFailureActionTypeType FirstFailureActionType
8961 {
8962 get
8963 {
8964 return this.firstFailureActionTypeField;
8965 }
8966 set
8967 {
8968 this.firstFailureActionTypeFieldSet = true;
8969 this.firstFailureActionTypeField = value;
8970 }
8971 }
8972
8973 /// <summary>
8974 /// Action to take on the second failure of the service.
8975 /// </summary>
8976 public SecondFailureActionTypeType SecondFailureActionType
8977 {
8978 get
8979 {
8980 return this.secondFailureActionTypeField;
8981 }
8982 set
8983 {
8984 this.secondFailureActionTypeFieldSet = true;
8985 this.secondFailureActionTypeField = value;
8986 }
8987 }
8988
8989 /// <summary>
8990 /// Action to take on the third failure of the service.
8991 /// </summary>
8992 public ThirdFailureActionTypeType ThirdFailureActionType
8993 {
8994 get
8995 {
8996 return this.thirdFailureActionTypeField;
8997 }
8998 set
8999 {
9000 this.thirdFailureActionTypeFieldSet = true;
9001 this.thirdFailureActionTypeField = value;
9002 }
9003 }
9004
9005 /// <summary>
9006 /// Number of days after which to reset the failure count to zero if there are no failures.
9007 /// </summary>
9008 public int ResetPeriodInDays
9009 {
9010 get
9011 {
9012 return this.resetPeriodInDaysField;
9013 }
9014 set
9015 {
9016 this.resetPeriodInDaysFieldSet = true;
9017 this.resetPeriodInDaysField = value;
9018 }
9019 }
9020
9021 /// <summary>
9022 /// If any of the three *ActionType attributes is "restart", this specifies the number of seconds to wait before doing so.
9023 /// </summary>
9024 public int RestartServiceDelayInSeconds
9025 {
9026 get
9027 {
9028 return this.restartServiceDelayInSecondsField;
9029 }
9030 set
9031 {
9032 this.restartServiceDelayInSecondsFieldSet = true;
9033 this.restartServiceDelayInSecondsField = value;
9034 }
9035 }
9036
9037 /// <summary>
9038 /// If any of the three *ActionType attributes is "runCommand", this specifies the command to run when doing so. This value is formatted.
9039 /// </summary>
9040 public string ProgramCommandLine
9041 {
9042 get
9043 {
9044 return this.programCommandLineField;
9045 }
9046 set
9047 {
9048 this.programCommandLineFieldSet = true;
9049 this.programCommandLineField = value;
9050 }
9051 }
9052
9053 /// <summary>
9054 /// If any of the three *ActionType attributes is "reboot", this specifies the message to broadcast to server users before doing so.
9055 /// </summary>
9056 public string RebootMessage
9057 {
9058 get
9059 {
9060 return this.rebootMessageField;
9061 }
9062 set
9063 {
9064 this.rebootMessageFieldSet = true;
9065 this.rebootMessageField = value;
9066 }
9067 }
9068
9069 public virtual ISchemaElement ParentElement
9070 {
9071 get
9072 {
9073 return this.parentElement;
9074 }
9075 set
9076 {
9077 this.parentElement = value;
9078 }
9079 }
9080
9081 /// <summary>
9082 /// Parses a FirstFailureActionTypeType from a string.
9083 /// </summary>
9084 public static FirstFailureActionTypeType ParseFirstFailureActionTypeType(string value)
9085 {
9086 FirstFailureActionTypeType parsedValue;
9087 ServiceConfig.TryParseFirstFailureActionTypeType(value, out parsedValue);
9088 return parsedValue;
9089 }
9090
9091 /// <summary>
9092 /// Tries to parse a FirstFailureActionTypeType from a string.
9093 /// </summary>
9094 public static bool TryParseFirstFailureActionTypeType(string value, out FirstFailureActionTypeType parsedValue)
9095 {
9096 parsedValue = FirstFailureActionTypeType.NotSet;
9097 if (string.IsNullOrEmpty(value))
9098 {
9099 return false;
9100 }
9101 if (("none" == value))
9102 {
9103 parsedValue = FirstFailureActionTypeType.none;
9104 }
9105 else
9106 {
9107 if (("reboot" == value))
9108 {
9109 parsedValue = FirstFailureActionTypeType.reboot;
9110 }
9111 else
9112 {
9113 if (("restart" == value))
9114 {
9115 parsedValue = FirstFailureActionTypeType.restart;
9116 }
9117 else
9118 {
9119 if (("runCommand" == value))
9120 {
9121 parsedValue = FirstFailureActionTypeType.runCommand;
9122 }
9123 else
9124 {
9125 parsedValue = FirstFailureActionTypeType.IllegalValue;
9126 return false;
9127 }
9128 }
9129 }
9130 }
9131 return true;
9132 }
9133
9134 /// <summary>
9135 /// Parses a SecondFailureActionTypeType from a string.
9136 /// </summary>
9137 public static SecondFailureActionTypeType ParseSecondFailureActionTypeType(string value)
9138 {
9139 SecondFailureActionTypeType parsedValue;
9140 ServiceConfig.TryParseSecondFailureActionTypeType(value, out parsedValue);
9141 return parsedValue;
9142 }
9143
9144 /// <summary>
9145 /// Tries to parse a SecondFailureActionTypeType from a string.
9146 /// </summary>
9147 public static bool TryParseSecondFailureActionTypeType(string value, out SecondFailureActionTypeType parsedValue)
9148 {
9149 parsedValue = SecondFailureActionTypeType.NotSet;
9150 if (string.IsNullOrEmpty(value))
9151 {
9152 return false;
9153 }
9154 if (("none" == value))
9155 {
9156 parsedValue = SecondFailureActionTypeType.none;
9157 }
9158 else
9159 {
9160 if (("reboot" == value))
9161 {
9162 parsedValue = SecondFailureActionTypeType.reboot;
9163 }
9164 else
9165 {
9166 if (("restart" == value))
9167 {
9168 parsedValue = SecondFailureActionTypeType.restart;
9169 }
9170 else
9171 {
9172 if (("runCommand" == value))
9173 {
9174 parsedValue = SecondFailureActionTypeType.runCommand;
9175 }
9176 else
9177 {
9178 parsedValue = SecondFailureActionTypeType.IllegalValue;
9179 return false;
9180 }
9181 }
9182 }
9183 }
9184 return true;
9185 }
9186
9187 /// <summary>
9188 /// Parses a ThirdFailureActionTypeType from a string.
9189 /// </summary>
9190 public static ThirdFailureActionTypeType ParseThirdFailureActionTypeType(string value)
9191 {
9192 ThirdFailureActionTypeType parsedValue;
9193 ServiceConfig.TryParseThirdFailureActionTypeType(value, out parsedValue);
9194 return parsedValue;
9195 }
9196
9197 /// <summary>
9198 /// Tries to parse a ThirdFailureActionTypeType from a string.
9199 /// </summary>
9200 public static bool TryParseThirdFailureActionTypeType(string value, out ThirdFailureActionTypeType parsedValue)
9201 {
9202 parsedValue = ThirdFailureActionTypeType.NotSet;
9203 if (string.IsNullOrEmpty(value))
9204 {
9205 return false;
9206 }
9207 if (("none" == value))
9208 {
9209 parsedValue = ThirdFailureActionTypeType.none;
9210 }
9211 else
9212 {
9213 if (("reboot" == value))
9214 {
9215 parsedValue = ThirdFailureActionTypeType.reboot;
9216 }
9217 else
9218 {
9219 if (("restart" == value))
9220 {
9221 parsedValue = ThirdFailureActionTypeType.restart;
9222 }
9223 else
9224 {
9225 if (("runCommand" == value))
9226 {
9227 parsedValue = ThirdFailureActionTypeType.runCommand;
9228 }
9229 else
9230 {
9231 parsedValue = ThirdFailureActionTypeType.IllegalValue;
9232 return false;
9233 }
9234 }
9235 }
9236 }
9237 return true;
9238 }
9239
9240 /// <summary>
9241 /// Processes this element and all child elements into an XmlWriter.
9242 /// </summary>
9243 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
9244 public virtual void OutputXml(XmlWriter writer)
9245 {
9246 if ((null == writer))
9247 {
9248 throw new ArgumentNullException("writer");
9249 }
9250 writer.WriteStartElement("ServiceConfig", "http://wixtoolset.org/schemas/v4/wxs/util");
9251 if (this.serviceNameFieldSet)
9252 {
9253 writer.WriteAttributeString("ServiceName", this.serviceNameField);
9254 }
9255 if (this.firstFailureActionTypeFieldSet)
9256 {
9257 if ((this.firstFailureActionTypeField == FirstFailureActionTypeType.none))
9258 {
9259 writer.WriteAttributeString("FirstFailureActionType", "none");
9260 }
9261 if ((this.firstFailureActionTypeField == FirstFailureActionTypeType.reboot))
9262 {
9263 writer.WriteAttributeString("FirstFailureActionType", "reboot");
9264 }
9265 if ((this.firstFailureActionTypeField == FirstFailureActionTypeType.restart))
9266 {
9267 writer.WriteAttributeString("FirstFailureActionType", "restart");
9268 }
9269 if ((this.firstFailureActionTypeField == FirstFailureActionTypeType.runCommand))
9270 {
9271 writer.WriteAttributeString("FirstFailureActionType", "runCommand");
9272 }
9273 }
9274 if (this.secondFailureActionTypeFieldSet)
9275 {
9276 if ((this.secondFailureActionTypeField == SecondFailureActionTypeType.none))
9277 {
9278 writer.WriteAttributeString("SecondFailureActionType", "none");
9279 }
9280 if ((this.secondFailureActionTypeField == SecondFailureActionTypeType.reboot))
9281 {
9282 writer.WriteAttributeString("SecondFailureActionType", "reboot");
9283 }
9284 if ((this.secondFailureActionTypeField == SecondFailureActionTypeType.restart))
9285 {
9286 writer.WriteAttributeString("SecondFailureActionType", "restart");
9287 }
9288 if ((this.secondFailureActionTypeField == SecondFailureActionTypeType.runCommand))
9289 {
9290 writer.WriteAttributeString("SecondFailureActionType", "runCommand");
9291 }
9292 }
9293 if (this.thirdFailureActionTypeFieldSet)
9294 {
9295 if ((this.thirdFailureActionTypeField == ThirdFailureActionTypeType.none))
9296 {
9297 writer.WriteAttributeString("ThirdFailureActionType", "none");
9298 }
9299 if ((this.thirdFailureActionTypeField == ThirdFailureActionTypeType.reboot))
9300 {
9301 writer.WriteAttributeString("ThirdFailureActionType", "reboot");
9302 }
9303 if ((this.thirdFailureActionTypeField == ThirdFailureActionTypeType.restart))
9304 {
9305 writer.WriteAttributeString("ThirdFailureActionType", "restart");
9306 }
9307 if ((this.thirdFailureActionTypeField == ThirdFailureActionTypeType.runCommand))
9308 {
9309 writer.WriteAttributeString("ThirdFailureActionType", "runCommand");
9310 }
9311 }
9312 if (this.resetPeriodInDaysFieldSet)
9313 {
9314 writer.WriteAttributeString("ResetPeriodInDays", this.resetPeriodInDaysField.ToString(CultureInfo.InvariantCulture));
9315 }
9316 if (this.restartServiceDelayInSecondsFieldSet)
9317 {
9318 writer.WriteAttributeString("RestartServiceDelayInSeconds", this.restartServiceDelayInSecondsField.ToString(CultureInfo.InvariantCulture));
9319 }
9320 if (this.programCommandLineFieldSet)
9321 {
9322 writer.WriteAttributeString("ProgramCommandLine", this.programCommandLineField);
9323 }
9324 if (this.rebootMessageFieldSet)
9325 {
9326 writer.WriteAttributeString("RebootMessage", this.rebootMessageField);
9327 }
9328 writer.WriteEndElement();
9329 }
9330
9331 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
9332 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
9333 void ISetAttributes.SetAttribute(string name, string value)
9334 {
9335 if (String.IsNullOrEmpty(name))
9336 {
9337 throw new ArgumentNullException("name");
9338 }
9339 if (("ServiceName" == name))
9340 {
9341 this.serviceNameField = value;
9342 this.serviceNameFieldSet = true;
9343 }
9344 if (("FirstFailureActionType" == name))
9345 {
9346 this.firstFailureActionTypeField = ServiceConfig.ParseFirstFailureActionTypeType(value);
9347 this.firstFailureActionTypeFieldSet = true;
9348 }
9349 if (("SecondFailureActionType" == name))
9350 {
9351 this.secondFailureActionTypeField = ServiceConfig.ParseSecondFailureActionTypeType(value);
9352 this.secondFailureActionTypeFieldSet = true;
9353 }
9354 if (("ThirdFailureActionType" == name))
9355 {
9356 this.thirdFailureActionTypeField = ServiceConfig.ParseThirdFailureActionTypeType(value);
9357 this.thirdFailureActionTypeFieldSet = true;
9358 }
9359 if (("ResetPeriodInDays" == name))
9360 {
9361 this.resetPeriodInDaysField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
9362 this.resetPeriodInDaysFieldSet = true;
9363 }
9364 if (("RestartServiceDelayInSeconds" == name))
9365 {
9366 this.restartServiceDelayInSecondsField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
9367 this.restartServiceDelayInSecondsFieldSet = true;
9368 }
9369 if (("ProgramCommandLine" == name))
9370 {
9371 this.programCommandLineField = value;
9372 this.programCommandLineFieldSet = true;
9373 }
9374 if (("RebootMessage" == name))
9375 {
9376 this.rebootMessageField = value;
9377 this.rebootMessageFieldSet = true;
9378 }
9379 }
9380
9381 [GeneratedCode("XsdGen", "4.0.0.0")]
9382 public enum FirstFailureActionTypeType
9383 {
9384
9385 IllegalValue = int.MaxValue,
9386
9387 NotSet = -1,
9388
9389 none,
9390
9391 reboot,
9392
9393 restart,
9394
9395 runCommand,
9396 }
9397
9398 [GeneratedCode("XsdGen", "4.0.0.0")]
9399 public enum SecondFailureActionTypeType
9400 {
9401
9402 IllegalValue = int.MaxValue,
9403
9404 NotSet = -1,
9405
9406 none,
9407
9408 reboot,
9409
9410 restart,
9411
9412 runCommand,
9413 }
9414
9415 [GeneratedCode("XsdGen", "4.0.0.0")]
9416 public enum ThirdFailureActionTypeType
9417 {
9418
9419 IllegalValue = int.MaxValue,
9420
9421 NotSet = -1,
9422
9423 none,
9424
9425 reboot,
9426
9427 restart,
9428
9429 runCommand,
9430 }
9431 }
9432
9433 /// <summary>
9434 /// Updates the last modified date/time of a file.
9435 /// </summary>
9436 [GeneratedCode("XsdGen", "4.0.0.0")]
9437 public class TouchFile : ISchemaElement, ISetAttributes
9438 {
9439
9440 private string idField;
9441
9442 private bool idFieldSet;
9443
9444 private string pathField;
9445
9446 private bool pathFieldSet;
9447
9448 private YesNoType onInstallField;
9449
9450 private bool onInstallFieldSet;
9451
9452 private YesNoType onReinstallField;
9453
9454 private bool onReinstallFieldSet;
9455
9456 private YesNoType onUninstallField;
9457
9458 private bool onUninstallFieldSet;
9459
9460 private YesNoType nonvitalField;
9461
9462 private bool nonvitalFieldSet;
9463
9464 private ISchemaElement parentElement;
9465
9466 /// <summary>
9467 /// Identifier for the touch file operation. If the identifier is not specified it will be generated.
9468 /// </summary>
9469 public string Id
9470 {
9471 get
9472 {
9473 return this.idField;
9474 }
9475 set
9476 {
9477 this.idFieldSet = true;
9478 this.idField = value;
9479 }
9480 }
9481
9482 /// <summary>
9483 /// Path of the file to update. This value is formatted.
9484 /// </summary>
9485 public string Path
9486 {
9487 get
9488 {
9489 return this.pathField;
9490 }
9491 set
9492 {
9493 this.pathFieldSet = true;
9494 this.pathField = value;
9495 }
9496 }
9497
9498 /// <summary>
9499 /// Specifies whether or not the modified time of the file should be updated on install. If the OnInstall, OnReinstall and OnUninstall attributes are all absent the default is 'yes'.
9500 /// </summary>
9501 public YesNoType OnInstall
9502 {
9503 get
9504 {
9505 return this.onInstallField;
9506 }
9507 set
9508 {
9509 this.onInstallFieldSet = true;
9510 this.onInstallField = value;
9511 }
9512 }
9513
9514 /// <summary>
9515 /// Specifies whether or not the modified time of the file should be updated on reinstall. If the OnInstall, OnReinstall and OnUninstall attributes are all absent the default is 'yes'.
9516 /// </summary>
9517 public YesNoType OnReinstall
9518 {
9519 get
9520 {
9521 return this.onReinstallField;
9522 }
9523 set
9524 {
9525 this.onReinstallFieldSet = true;
9526 this.onReinstallField = value;
9527 }
9528 }
9529
9530 /// <summary>
9531 /// Specifies whether or not the modified time of the file should be updated on uninstall. If the OnInstall, OnReinstall and OnUninstall attributes are all absent the default is 'no'.
9532 /// </summary>
9533 public YesNoType OnUninstall
9534 {
9535 get
9536 {
9537 return this.onUninstallField;
9538 }
9539 set
9540 {
9541 this.onUninstallFieldSet = true;
9542 this.onUninstallField = value;
9543 }
9544 }
9545
9546 /// <summary>
9547 /// Indicates the installation will succeed even if the modified time of the file cannot be updated. The default is 'no'.
9548 /// </summary>
9549 public YesNoType Nonvital
9550 {
9551 get
9552 {
9553 return this.nonvitalField;
9554 }
9555 set
9556 {
9557 this.nonvitalFieldSet = true;
9558 this.nonvitalField = value;
9559 }
9560 }
9561
9562 public virtual ISchemaElement ParentElement
9563 {
9564 get
9565 {
9566 return this.parentElement;
9567 }
9568 set
9569 {
9570 this.parentElement = value;
9571 }
9572 }
9573
9574 /// <summary>
9575 /// Processes this element and all child elements into an XmlWriter.
9576 /// </summary>
9577 public virtual void OutputXml(XmlWriter writer)
9578 {
9579 if ((null == writer))
9580 {
9581 throw new ArgumentNullException("writer");
9582 }
9583 writer.WriteStartElement("TouchFile", "http://wixtoolset.org/schemas/v4/wxs/util");
9584 if (this.idFieldSet)
9585 {
9586 writer.WriteAttributeString("Id", this.idField);
9587 }
9588 if (this.pathFieldSet)
9589 {
9590 writer.WriteAttributeString("Path", this.pathField);
9591 }
9592 if (this.onInstallFieldSet)
9593 {
9594 if ((this.onInstallField == YesNoType.no))
9595 {
9596 writer.WriteAttributeString("OnInstall", "no");
9597 }
9598 if ((this.onInstallField == YesNoType.yes))
9599 {
9600 writer.WriteAttributeString("OnInstall", "yes");
9601 }
9602 }
9603 if (this.onReinstallFieldSet)
9604 {
9605 if ((this.onReinstallField == YesNoType.no))
9606 {
9607 writer.WriteAttributeString("OnReinstall", "no");
9608 }
9609 if ((this.onReinstallField == YesNoType.yes))
9610 {
9611 writer.WriteAttributeString("OnReinstall", "yes");
9612 }
9613 }
9614 if (this.onUninstallFieldSet)
9615 {
9616 if ((this.onUninstallField == YesNoType.no))
9617 {
9618 writer.WriteAttributeString("OnUninstall", "no");
9619 }
9620 if ((this.onUninstallField == YesNoType.yes))
9621 {
9622 writer.WriteAttributeString("OnUninstall", "yes");
9623 }
9624 }
9625 if (this.nonvitalFieldSet)
9626 {
9627 if ((this.nonvitalField == YesNoType.no))
9628 {
9629 writer.WriteAttributeString("Nonvital", "no");
9630 }
9631 if ((this.nonvitalField == YesNoType.yes))
9632 {
9633 writer.WriteAttributeString("Nonvital", "yes");
9634 }
9635 }
9636 writer.WriteEndElement();
9637 }
9638
9639 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
9640 void ISetAttributes.SetAttribute(string name, string value)
9641 {
9642 if (String.IsNullOrEmpty(name))
9643 {
9644 throw new ArgumentNullException("name");
9645 }
9646 if (("Id" == name))
9647 {
9648 this.idField = value;
9649 this.idFieldSet = true;
9650 }
9651 if (("Path" == name))
9652 {
9653 this.pathField = value;
9654 this.pathFieldSet = true;
9655 }
9656 if (("OnInstall" == name))
9657 {
9658 this.onInstallField = Enums.ParseYesNoType(value);
9659 this.onInstallFieldSet = true;
9660 }
9661 if (("OnReinstall" == name))
9662 {
9663 this.onReinstallField = Enums.ParseYesNoType(value);
9664 this.onReinstallFieldSet = true;
9665 }
9666 if (("OnUninstall" == name))
9667 {
9668 this.onUninstallField = Enums.ParseYesNoType(value);
9669 this.onUninstallFieldSet = true;
9670 }
9671 if (("Nonvital" == name))
9672 {
9673 this.nonvitalField = Enums.ParseYesNoType(value);
9674 this.nonvitalFieldSet = true;
9675 }
9676 }
9677 }
9678
9679 /// <summary>
9680 /// User for all kinds of things. When it is not nested under a component it is included in the MSI so it can be referenced by other elements such as the User attribute in the AppPool element. When it is nested under a Component element, the User will be created on install and can also be used for reference.
9681 /// </summary>
9682 [GeneratedCode("XsdGen", "4.0.0.0")]
9683 public class User : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
9684 {
9685
9686 private ElementCollection children;
9687
9688 private string idField;
9689
9690 private bool idFieldSet;
9691
9692 private string nameField;
9693
9694 private bool nameFieldSet;
9695
9696 private string domainField;
9697
9698 private bool domainFieldSet;
9699
9700 private string passwordField;
9701
9702 private bool passwordFieldSet;
9703
9704 private YesNoType passwordNeverExpiresField;
9705
9706 private bool passwordNeverExpiresFieldSet;
9707
9708 private YesNoType canNotChangePasswordField;
9709
9710 private bool canNotChangePasswordFieldSet;
9711
9712 private YesNoType removeOnUninstallField;
9713
9714 private bool removeOnUninstallFieldSet;
9715
9716 private YesNoType failIfExistsField;
9717
9718 private bool failIfExistsFieldSet;
9719
9720 private YesNoType logonAsServiceField;
9721
9722 private bool logonAsServiceFieldSet;
9723
9724 private YesNoType logonAsBatchJobField;
9725
9726 private bool logonAsBatchJobFieldSet;
9727
9728 private YesNoType updateIfExistsField;
9729
9730 private bool updateIfExistsFieldSet;
9731
9732 private YesNoType passwordExpiredField;
9733
9734 private bool passwordExpiredFieldSet;
9735
9736 private YesNoType disabledField;
9737
9738 private bool disabledFieldSet;
9739
9740 private YesNoType createUserField;
9741
9742 private bool createUserFieldSet;
9743
9744 private YesNoType vitalField;
9745
9746 private bool vitalFieldSet;
9747
9748 private ISchemaElement parentElement;
9749
9750 public User()
9751 {
9752 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
9753 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(GroupRef)));
9754 this.children = childCollection0;
9755 }
9756
9757 public virtual IEnumerable Children
9758 {
9759 get
9760 {
9761 return this.children;
9762 }
9763 }
9764
9765 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
9766 public virtual IEnumerable this[System.Type childType]
9767 {
9768 get
9769 {
9770 return this.children.Filter(childType);
9771 }
9772 }
9773
9774 public string Id
9775 {
9776 get
9777 {
9778 return this.idField;
9779 }
9780 set
9781 {
9782 this.idFieldSet = true;
9783 this.idField = value;
9784 }
9785 }
9786
9787 /// <summary>
9788 /// A
9789 /// </summary>
9790 public string Name
9791 {
9792 get
9793 {
9794 return this.nameField;
9795 }
9796 set
9797 {
9798 this.nameFieldSet = true;
9799 this.nameField = value;
9800 }
9801 }
9802
9803 /// <summary>
9804 /// A
9805 /// </summary>
9806 public string Domain
9807 {
9808 get
9809 {
9810 return this.domainField;
9811 }
9812 set
9813 {
9814 this.domainFieldSet = true;
9815 this.domainField = value;
9816 }
9817 }
9818
9819 /// <summary>
9820 /// Usually a Property that is passed in on the command-line to keep it more secure.
9821 /// </summary>
9822 public string Password
9823 {
9824 get
9825 {
9826 return this.passwordField;
9827 }
9828 set
9829 {
9830 this.passwordFieldSet = true;
9831 this.passwordField = value;
9832 }
9833 }
9834
9835 /// <summary>
9836 /// The account's password never expires. Equivalent to UF_DONT_EXPIRE_PASSWD.
9837 /// </summary>
9838 public YesNoType PasswordNeverExpires
9839 {
9840 get
9841 {
9842 return this.passwordNeverExpiresField;
9843 }
9844 set
9845 {
9846 this.passwordNeverExpiresFieldSet = true;
9847 this.passwordNeverExpiresField = value;
9848 }
9849 }
9850
9851 /// <summary>
9852 /// The user cannot change the account's password. Equivalent to UF_PASSWD_CANT_CHANGE.
9853 /// </summary>
9854 public YesNoType CanNotChangePassword
9855 {
9856 get
9857 {
9858 return this.canNotChangePasswordField;
9859 }
9860 set
9861 {
9862 this.canNotChangePasswordFieldSet = true;
9863 this.canNotChangePasswordField = value;
9864 }
9865 }
9866
9867 /// <summary>
9868 /// Indicates whether the user account should be removed or left behind on uninstall.
9869 /// </summary>
9870 public YesNoType RemoveOnUninstall
9871 {
9872 get
9873 {
9874 return this.removeOnUninstallField;
9875 }
9876 set
9877 {
9878 this.removeOnUninstallFieldSet = true;
9879 this.removeOnUninstallField = value;
9880 }
9881 }
9882
9883 /// <summary>
9884 /// Indicates if the install should fail if the user already exists.
9885 /// </summary>
9886 public YesNoType FailIfExists
9887 {
9888 get
9889 {
9890 return this.failIfExistsField;
9891 }
9892 set
9893 {
9894 this.failIfExistsFieldSet = true;
9895 this.failIfExistsField = value;
9896 }
9897 }
9898
9899 /// <summary>
9900 /// Indicates whether or not the user can logon as a serivce. User creation can be skipped if all that is desired is to set this access right on the user.
9901 /// </summary>
9902 public YesNoType LogonAsService
9903 {
9904 get
9905 {
9906 return this.logonAsServiceField;
9907 }
9908 set
9909 {
9910 this.logonAsServiceFieldSet = true;
9911 this.logonAsServiceField = value;
9912 }
9913 }
9914
9915 /// <summary>
9916 /// Indicates whether or not the user can logon as a batch job. User creation can be skipped if all that is desired is to set this access right on the user.
9917 /// </summary>
9918 public YesNoType LogonAsBatchJob
9919 {
9920 get
9921 {
9922 return this.logonAsBatchJobField;
9923 }
9924 set
9925 {
9926 this.logonAsBatchJobFieldSet = true;
9927 this.logonAsBatchJobField = value;
9928 }
9929 }
9930
9931 /// <summary>
9932 /// Indicates if the user account properties should be updated if the user already exists.
9933 /// </summary>
9934 public YesNoType UpdateIfExists
9935 {
9936 get
9937 {
9938 return this.updateIfExistsField;
9939 }
9940 set
9941 {
9942 this.updateIfExistsFieldSet = true;
9943 this.updateIfExistsField = value;
9944 }
9945 }
9946
9947 /// <summary>
9948 /// Indicates whether the user must change their password on their first login.
9949 /// </summary>
9950 public YesNoType PasswordExpired
9951 {
9952 get
9953 {
9954 return this.passwordExpiredField;
9955 }
9956 set
9957 {
9958 this.passwordExpiredFieldSet = true;
9959 this.passwordExpiredField = value;
9960 }
9961 }
9962
9963 /// <summary>
9964 /// The account is disabled. Equivalent to UF_ACCOUNTDISABLE.
9965 /// </summary>
9966 public YesNoType Disabled
9967 {
9968 get
9969 {
9970 return this.disabledField;
9971 }
9972 set
9973 {
9974 this.disabledFieldSet = true;
9975 this.disabledField = value;
9976 }
9977 }
9978
9979 /// <summary>
9980 /// Indicates whether or not to create the user. User creation can be skipped if all that is desired is to join a user to groups.
9981 /// </summary>
9982 public YesNoType CreateUser
9983 {
9984 get
9985 {
9986 return this.createUserField;
9987 }
9988 set
9989 {
9990 this.createUserFieldSet = true;
9991 this.createUserField = value;
9992 }
9993 }
9994
9995 /// <summary>
9996 /// Indicates whether failure to create the user or add the user to a group fails the installation. The default value is "yes".
9997 /// </summary>
9998 public YesNoType Vital
9999 {
10000 get
10001 {
10002 return this.vitalField;
10003 }
10004 set
10005 {
10006 this.vitalFieldSet = true;
10007 this.vitalField = value;
10008 }
10009 }
10010
10011 public virtual ISchemaElement ParentElement
10012 {
10013 get
10014 {
10015 return this.parentElement;
10016 }
10017 set
10018 {
10019 this.parentElement = value;
10020 }
10021 }
10022
10023 public virtual void AddChild(ISchemaElement child)
10024 {
10025 if ((null == child))
10026 {
10027 throw new ArgumentNullException("child");
10028 }
10029 this.children.AddElement(child);
10030 child.ParentElement = this;
10031 }
10032
10033 public virtual void RemoveChild(ISchemaElement child)
10034 {
10035 if ((null == child))
10036 {
10037 throw new ArgumentNullException("child");
10038 }
10039 this.children.RemoveElement(child);
10040 child.ParentElement = null;
10041 }
10042
10043 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
10044 ISchemaElement ICreateChildren.CreateChild(string childName)
10045 {
10046 if (String.IsNullOrEmpty(childName))
10047 {
10048 throw new ArgumentNullException("childName");
10049 }
10050 ISchemaElement childValue = null;
10051 if (("GroupRef" == childName))
10052 {
10053 childValue = new GroupRef();
10054 }
10055 if ((null == childValue))
10056 {
10057 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
10058 }
10059 return childValue;
10060 }
10061
10062 /// <summary>
10063 /// Processes this element and all child elements into an XmlWriter.
10064 /// </summary>
10065 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
10066 public virtual void OutputXml(XmlWriter writer)
10067 {
10068 if ((null == writer))
10069 {
10070 throw new ArgumentNullException("writer");
10071 }
10072 writer.WriteStartElement("User", "http://wixtoolset.org/schemas/v4/wxs/util");
10073 if (this.idFieldSet)
10074 {
10075 writer.WriteAttributeString("Id", this.idField);
10076 }
10077 if (this.nameFieldSet)
10078 {
10079 writer.WriteAttributeString("Name", this.nameField);
10080 }
10081 if (this.domainFieldSet)
10082 {
10083 writer.WriteAttributeString("Domain", this.domainField);
10084 }
10085 if (this.passwordFieldSet)
10086 {
10087 writer.WriteAttributeString("Password", this.passwordField);
10088 }
10089 if (this.passwordNeverExpiresFieldSet)
10090 {
10091 if ((this.passwordNeverExpiresField == YesNoType.no))
10092 {
10093 writer.WriteAttributeString("PasswordNeverExpires", "no");
10094 }
10095 if ((this.passwordNeverExpiresField == YesNoType.yes))
10096 {
10097 writer.WriteAttributeString("PasswordNeverExpires", "yes");
10098 }
10099 }
10100 if (this.canNotChangePasswordFieldSet)
10101 {
10102 if ((this.canNotChangePasswordField == YesNoType.no))
10103 {
10104 writer.WriteAttributeString("CanNotChangePassword", "no");
10105 }
10106 if ((this.canNotChangePasswordField == YesNoType.yes))
10107 {
10108 writer.WriteAttributeString("CanNotChangePassword", "yes");
10109 }
10110 }
10111 if (this.removeOnUninstallFieldSet)
10112 {
10113 if ((this.removeOnUninstallField == YesNoType.no))
10114 {
10115 writer.WriteAttributeString("RemoveOnUninstall", "no");
10116 }
10117 if ((this.removeOnUninstallField == YesNoType.yes))
10118 {
10119 writer.WriteAttributeString("RemoveOnUninstall", "yes");
10120 }
10121 }
10122 if (this.failIfExistsFieldSet)
10123 {
10124 if ((this.failIfExistsField == YesNoType.no))
10125 {
10126 writer.WriteAttributeString("FailIfExists", "no");
10127 }
10128 if ((this.failIfExistsField == YesNoType.yes))
10129 {
10130 writer.WriteAttributeString("FailIfExists", "yes");
10131 }
10132 }
10133 if (this.logonAsServiceFieldSet)
10134 {
10135 if ((this.logonAsServiceField == YesNoType.no))
10136 {
10137 writer.WriteAttributeString("LogonAsService", "no");
10138 }
10139 if ((this.logonAsServiceField == YesNoType.yes))
10140 {
10141 writer.WriteAttributeString("LogonAsService", "yes");
10142 }
10143 }
10144 if (this.logonAsBatchJobFieldSet)
10145 {
10146 if ((this.logonAsBatchJobField == YesNoType.no))
10147 {
10148 writer.WriteAttributeString("LogonAsBatchJob", "no");
10149 }
10150 if ((this.logonAsBatchJobField == YesNoType.yes))
10151 {
10152 writer.WriteAttributeString("LogonAsBatchJob", "yes");
10153 }
10154 }
10155 if (this.updateIfExistsFieldSet)
10156 {
10157 if ((this.updateIfExistsField == YesNoType.no))
10158 {
10159 writer.WriteAttributeString("UpdateIfExists", "no");
10160 }
10161 if ((this.updateIfExistsField == YesNoType.yes))
10162 {
10163 writer.WriteAttributeString("UpdateIfExists", "yes");
10164 }
10165 }
10166 if (this.passwordExpiredFieldSet)
10167 {
10168 if ((this.passwordExpiredField == YesNoType.no))
10169 {
10170 writer.WriteAttributeString("PasswordExpired", "no");
10171 }
10172 if ((this.passwordExpiredField == YesNoType.yes))
10173 {
10174 writer.WriteAttributeString("PasswordExpired", "yes");
10175 }
10176 }
10177 if (this.disabledFieldSet)
10178 {
10179 if ((this.disabledField == YesNoType.no))
10180 {
10181 writer.WriteAttributeString("Disabled", "no");
10182 }
10183 if ((this.disabledField == YesNoType.yes))
10184 {
10185 writer.WriteAttributeString("Disabled", "yes");
10186 }
10187 }
10188 if (this.createUserFieldSet)
10189 {
10190 if ((this.createUserField == YesNoType.no))
10191 {
10192 writer.WriteAttributeString("CreateUser", "no");
10193 }
10194 if ((this.createUserField == YesNoType.yes))
10195 {
10196 writer.WriteAttributeString("CreateUser", "yes");
10197 }
10198 }
10199 if (this.vitalFieldSet)
10200 {
10201 if ((this.vitalField == YesNoType.no))
10202 {
10203 writer.WriteAttributeString("Vital", "no");
10204 }
10205 if ((this.vitalField == YesNoType.yes))
10206 {
10207 writer.WriteAttributeString("Vital", "yes");
10208 }
10209 }
10210 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
10211 {
10212 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
10213 childElement.OutputXml(writer);
10214 }
10215 writer.WriteEndElement();
10216 }
10217
10218 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
10219 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
10220 void ISetAttributes.SetAttribute(string name, string value)
10221 {
10222 if (String.IsNullOrEmpty(name))
10223 {
10224 throw new ArgumentNullException("name");
10225 }
10226 if (("Id" == name))
10227 {
10228 this.idField = value;
10229 this.idFieldSet = true;
10230 }
10231 if (("Name" == name))
10232 {
10233 this.nameField = value;
10234 this.nameFieldSet = true;
10235 }
10236 if (("Domain" == name))
10237 {
10238 this.domainField = value;
10239 this.domainFieldSet = true;
10240 }
10241 if (("Password" == name))
10242 {
10243 this.passwordField = value;
10244 this.passwordFieldSet = true;
10245 }
10246 if (("PasswordNeverExpires" == name))
10247 {
10248 this.passwordNeverExpiresField = Enums.ParseYesNoType(value);
10249 this.passwordNeverExpiresFieldSet = true;
10250 }
10251 if (("CanNotChangePassword" == name))
10252 {
10253 this.canNotChangePasswordField = Enums.ParseYesNoType(value);
10254 this.canNotChangePasswordFieldSet = true;
10255 }
10256 if (("RemoveOnUninstall" == name))
10257 {
10258 this.removeOnUninstallField = Enums.ParseYesNoType(value);
10259 this.removeOnUninstallFieldSet = true;
10260 }
10261 if (("FailIfExists" == name))
10262 {
10263 this.failIfExistsField = Enums.ParseYesNoType(value);
10264 this.failIfExistsFieldSet = true;
10265 }
10266 if (("LogonAsService" == name))
10267 {
10268 this.logonAsServiceField = Enums.ParseYesNoType(value);
10269 this.logonAsServiceFieldSet = true;
10270 }
10271 if (("LogonAsBatchJob" == name))
10272 {
10273 this.logonAsBatchJobField = Enums.ParseYesNoType(value);
10274 this.logonAsBatchJobFieldSet = true;
10275 }
10276 if (("UpdateIfExists" == name))
10277 {
10278 this.updateIfExistsField = Enums.ParseYesNoType(value);
10279 this.updateIfExistsFieldSet = true;
10280 }
10281 if (("PasswordExpired" == name))
10282 {
10283 this.passwordExpiredField = Enums.ParseYesNoType(value);
10284 this.passwordExpiredFieldSet = true;
10285 }
10286 if (("Disabled" == name))
10287 {
10288 this.disabledField = Enums.ParseYesNoType(value);
10289 this.disabledFieldSet = true;
10290 }
10291 if (("CreateUser" == name))
10292 {
10293 this.createUserField = Enums.ParseYesNoType(value);
10294 this.createUserFieldSet = true;
10295 }
10296 if (("Vital" == name))
10297 {
10298 this.vitalField = Enums.ParseYesNoType(value);
10299 this.vitalFieldSet = true;
10300 }
10301 }
10302 }
10303
10304 /// <summary>
10305 /// Adds or removes .xml file entries. If you use the XmlFile element you must reference WixUtilExtension.dll as it contains the XmlFile custom actions.
10306 /// </summary>
10307 [GeneratedCode("XsdGen", "4.0.0.0")]
10308 public class XmlFile : ISchemaElement, ISetAttributes
10309 {
10310
10311 private string idField;
10312
10313 private bool idFieldSet;
10314
10315 private string elementPathField;
10316
10317 private bool elementPathFieldSet;
10318
10319 private string fileField;
10320
10321 private bool fileFieldSet;
10322
10323 private string nameField;
10324
10325 private bool nameFieldSet;
10326
10327 private string valueField;
10328
10329 private bool valueFieldSet;
10330
10331 private ActionType actionField;
10332
10333 private bool actionFieldSet;
10334
10335 private YesNoType permanentField;
10336
10337 private bool permanentFieldSet;
10338
10339 private YesNoType preserveModifiedDateField;
10340
10341 private bool preserveModifiedDateFieldSet;
10342
10343 private int sequenceField;
10344
10345 private bool sequenceFieldSet;
10346
10347 private SelectionLanguageType selectionLanguageField;
10348
10349 private bool selectionLanguageFieldSet;
10350
10351 private ISchemaElement parentElement;
10352
10353 /// <summary>
10354 /// Identifier for xml file modification.
10355 /// </summary>
10356 public string Id
10357 {
10358 get
10359 {
10360 return this.idField;
10361 }
10362 set
10363 {
10364 this.idFieldSet = true;
10365 this.idField = value;
10366 }
10367 }
10368
10369 /// <summary>
10370 /// The XPath of the element to be modified. Note that this is a formatted field and therefore, square brackets in the XPath must be escaped. In addition, XPaths allow backslashes to be used to escape characters, so if you intend to include literal backslashes, you must escape them as well by doubling them in this attribute. The string is formatted by MSI first, and the result is consumed as the XPath.
10371 /// </summary>
10372 public string ElementPath
10373 {
10374 get
10375 {
10376 return this.elementPathField;
10377 }
10378 set
10379 {
10380 this.elementPathFieldSet = true;
10381 this.elementPathField = value;
10382 }
10383 }
10384
10385 /// <summary>
10386 /// Path of the .xml file to configure.
10387 /// </summary>
10388 public string File
10389 {
10390 get
10391 {
10392 return this.fileField;
10393 }
10394 set
10395 {
10396 this.fileFieldSet = true;
10397 this.fileField = value;
10398 }
10399 }
10400
10401 /// <summary>
10402 /// Name of XML node to set/add to the specified element. Not setting this attribute causes the element's text value to be set. Otherwise this specified the attribute name that is set.
10403 /// </summary>
10404 public string Name
10405 {
10406 get
10407 {
10408 return this.nameField;
10409 }
10410 set
10411 {
10412 this.nameFieldSet = true;
10413 this.nameField = value;
10414 }
10415 }
10416
10417 /// <summary>
10418 /// The value to be written. See the
10419 /// </summary>
10420 public string Value
10421 {
10422 get
10423 {
10424 return this.valueField;
10425 }
10426 set
10427 {
10428 this.valueFieldSet = true;
10429 this.valueField = value;
10430 }
10431 }
10432
10433 /// <summary>
10434 /// The type of modification to be made to the XML file when the component is installed.
10435 /// </summary>
10436 public ActionType Action
10437 {
10438 get
10439 {
10440 return this.actionField;
10441 }
10442 set
10443 {
10444 this.actionFieldSet = true;
10445 this.actionField = value;
10446 }
10447 }
10448
10449 /// <summary>
10450 /// Specifies whether or not the modification should be removed on uninstall. This has no effect on uninstall if the action was deleteValue.
10451 /// </summary>
10452 public YesNoType Permanent
10453 {
10454 get
10455 {
10456 return this.permanentField;
10457 }
10458 set
10459 {
10460 this.permanentFieldSet = true;
10461 this.permanentField = value;
10462 }
10463 }
10464
10465 /// <summary>
10466 /// Specifies wheter or not the modification should preserve the modified date. Preserving the modified date will allow the file to be patched if no other modifications have been made.
10467 /// </summary>
10468 public YesNoType PreserveModifiedDate
10469 {
10470 get
10471 {
10472 return this.preserveModifiedDateField;
10473 }
10474 set
10475 {
10476 this.preserveModifiedDateFieldSet = true;
10477 this.preserveModifiedDateField = value;
10478 }
10479 }
10480
10481 /// <summary>
10482 /// Specifies the order in which the modification is to be attempted on the XML file. It is important to ensure that new elements are created before you attempt to add an attribute to them.
10483 /// </summary>
10484 public int Sequence
10485 {
10486 get
10487 {
10488 return this.sequenceField;
10489 }
10490 set
10491 {
10492 this.sequenceFieldSet = true;
10493 this.sequenceField = value;
10494 }
10495 }
10496
10497 /// <summary>
10498 /// Specify whether the DOM object should use XPath language or the old XSLPattern language (default) as the query language.
10499 /// </summary>
10500 public SelectionLanguageType SelectionLanguage
10501 {
10502 get
10503 {
10504 return this.selectionLanguageField;
10505 }
10506 set
10507 {
10508 this.selectionLanguageFieldSet = true;
10509 this.selectionLanguageField = value;
10510 }
10511 }
10512
10513 public virtual ISchemaElement ParentElement
10514 {
10515 get
10516 {
10517 return this.parentElement;
10518 }
10519 set
10520 {
10521 this.parentElement = value;
10522 }
10523 }
10524
10525 /// <summary>
10526 /// Parses a ActionType from a string.
10527 /// </summary>
10528 public static ActionType ParseActionType(string value)
10529 {
10530 ActionType parsedValue;
10531 XmlFile.TryParseActionType(value, out parsedValue);
10532 return parsedValue;
10533 }
10534
10535 /// <summary>
10536 /// Tries to parse a ActionType from a string.
10537 /// </summary>
10538 public static bool TryParseActionType(string value, out ActionType parsedValue)
10539 {
10540 parsedValue = ActionType.NotSet;
10541 if (string.IsNullOrEmpty(value))
10542 {
10543 return false;
10544 }
10545 if (("createElement" == value))
10546 {
10547 parsedValue = ActionType.createElement;
10548 }
10549 else
10550 {
10551 if (("deleteValue" == value))
10552 {
10553 parsedValue = ActionType.deleteValue;
10554 }
10555 else
10556 {
10557 if (("setValue" == value))
10558 {
10559 parsedValue = ActionType.setValue;
10560 }
10561 else
10562 {
10563 if (("bulkSetValue" == value))
10564 {
10565 parsedValue = ActionType.bulkSetValue;
10566 }
10567 else
10568 {
10569 parsedValue = ActionType.IllegalValue;
10570 return false;
10571 }
10572 }
10573 }
10574 }
10575 return true;
10576 }
10577
10578 /// <summary>
10579 /// Parses a SelectionLanguageType from a string.
10580 /// </summary>
10581 public static SelectionLanguageType ParseSelectionLanguageType(string value)
10582 {
10583 SelectionLanguageType parsedValue;
10584 XmlFile.TryParseSelectionLanguageType(value, out parsedValue);
10585 return parsedValue;
10586 }
10587
10588 /// <summary>
10589 /// Tries to parse a SelectionLanguageType from a string.
10590 /// </summary>
10591 public static bool TryParseSelectionLanguageType(string value, out SelectionLanguageType parsedValue)
10592 {
10593 parsedValue = SelectionLanguageType.NotSet;
10594 if (string.IsNullOrEmpty(value))
10595 {
10596 return false;
10597 }
10598 if (("XPath" == value))
10599 {
10600 parsedValue = SelectionLanguageType.XPath;
10601 }
10602 else
10603 {
10604 if (("XSLPattern" == value))
10605 {
10606 parsedValue = SelectionLanguageType.XSLPattern;
10607 }
10608 else
10609 {
10610 parsedValue = SelectionLanguageType.IllegalValue;
10611 return false;
10612 }
10613 }
10614 return true;
10615 }
10616
10617 /// <summary>
10618 /// Processes this element and all child elements into an XmlWriter.
10619 /// </summary>
10620 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
10621 public virtual void OutputXml(XmlWriter writer)
10622 {
10623 if ((null == writer))
10624 {
10625 throw new ArgumentNullException("writer");
10626 }
10627 writer.WriteStartElement("XmlFile", "http://wixtoolset.org/schemas/v4/wxs/util");
10628 if (this.idFieldSet)
10629 {
10630 writer.WriteAttributeString("Id", this.idField);
10631 }
10632 if (this.elementPathFieldSet)
10633 {
10634 writer.WriteAttributeString("ElementPath", this.elementPathField);
10635 }
10636 if (this.fileFieldSet)
10637 {
10638 writer.WriteAttributeString("File", this.fileField);
10639 }
10640 if (this.nameFieldSet)
10641 {
10642 writer.WriteAttributeString("Name", this.nameField);
10643 }
10644 if (this.valueFieldSet)
10645 {
10646 writer.WriteAttributeString("Value", this.valueField);
10647 }
10648 if (this.actionFieldSet)
10649 {
10650 if ((this.actionField == ActionType.createElement))
10651 {
10652 writer.WriteAttributeString("Action", "createElement");
10653 }
10654 if ((this.actionField == ActionType.deleteValue))
10655 {
10656 writer.WriteAttributeString("Action", "deleteValue");
10657 }
10658 if ((this.actionField == ActionType.setValue))
10659 {
10660 writer.WriteAttributeString("Action", "setValue");
10661 }
10662 if ((this.actionField == ActionType.bulkSetValue))
10663 {
10664 writer.WriteAttributeString("Action", "bulkSetValue");
10665 }
10666 }
10667 if (this.permanentFieldSet)
10668 {
10669 if ((this.permanentField == YesNoType.no))
10670 {
10671 writer.WriteAttributeString("Permanent", "no");
10672 }
10673 if ((this.permanentField == YesNoType.yes))
10674 {
10675 writer.WriteAttributeString("Permanent", "yes");
10676 }
10677 }
10678 if (this.preserveModifiedDateFieldSet)
10679 {
10680 if ((this.preserveModifiedDateField == YesNoType.no))
10681 {
10682 writer.WriteAttributeString("PreserveModifiedDate", "no");
10683 }
10684 if ((this.preserveModifiedDateField == YesNoType.yes))
10685 {
10686 writer.WriteAttributeString("PreserveModifiedDate", "yes");
10687 }
10688 }
10689 if (this.sequenceFieldSet)
10690 {
10691 writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture));
10692 }
10693 if (this.selectionLanguageFieldSet)
10694 {
10695 if ((this.selectionLanguageField == SelectionLanguageType.XPath))
10696 {
10697 writer.WriteAttributeString("SelectionLanguage", "XPath");
10698 }
10699 if ((this.selectionLanguageField == SelectionLanguageType.XSLPattern))
10700 {
10701 writer.WriteAttributeString("SelectionLanguage", "XSLPattern");
10702 }
10703 }
10704 writer.WriteEndElement();
10705 }
10706
10707 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
10708 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
10709 void ISetAttributes.SetAttribute(string name, string value)
10710 {
10711 if (String.IsNullOrEmpty(name))
10712 {
10713 throw new ArgumentNullException("name");
10714 }
10715 if (("Id" == name))
10716 {
10717 this.idField = value;
10718 this.idFieldSet = true;
10719 }
10720 if (("ElementPath" == name))
10721 {
10722 this.elementPathField = value;
10723 this.elementPathFieldSet = true;
10724 }
10725 if (("File" == name))
10726 {
10727 this.fileField = value;
10728 this.fileFieldSet = true;
10729 }
10730 if (("Name" == name))
10731 {
10732 this.nameField = value;
10733 this.nameFieldSet = true;
10734 }
10735 if (("Value" == name))
10736 {
10737 this.valueField = value;
10738 this.valueFieldSet = true;
10739 }
10740 if (("Action" == name))
10741 {
10742 this.actionField = XmlFile.ParseActionType(value);
10743 this.actionFieldSet = true;
10744 }
10745 if (("Permanent" == name))
10746 {
10747 this.permanentField = Enums.ParseYesNoType(value);
10748 this.permanentFieldSet = true;
10749 }
10750 if (("PreserveModifiedDate" == name))
10751 {
10752 this.preserveModifiedDateField = Enums.ParseYesNoType(value);
10753 this.preserveModifiedDateFieldSet = true;
10754 }
10755 if (("Sequence" == name))
10756 {
10757 this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
10758 this.sequenceFieldSet = true;
10759 }
10760 if (("SelectionLanguage" == name))
10761 {
10762 this.selectionLanguageField = XmlFile.ParseSelectionLanguageType(value);
10763 this.selectionLanguageFieldSet = true;
10764 }
10765 }
10766
10767 [GeneratedCode("XsdGen", "4.0.0.0")]
10768 public enum ActionType
10769 {
10770
10771 IllegalValue = int.MaxValue,
10772
10773 NotSet = -1,
10774
10775 /// <summary>
10776 /// Creates a new element under the element specified in ElementPath. The Name attribute is required in this case and specifies the name of the new element. The Value attribute is not necessary when createElement is specified as the action. If the Value attribute is set, it will cause the new element's text value to be set.
10777 /// </summary>
10778 createElement,
10779
10780 /// <summary>
10781 /// Deletes a value from the element specified in the ElementPath. If Name is specified, the attribute with that name is deleted. If Name is not specified, the text value of the element specified in the ElementPath is deleted. The Value attribute is ignored if deleteValue is the action specified.
10782 /// </summary>
10783 deleteValue,
10784
10785 /// <summary>
10786 /// Sets a value in the element specified in the ElementPath. If Name is specified, and attribute with that name is set to the value specified in Value. If Name is not specified, the text value of the element is set. Value is a required attribute if setValue is the action specified.
10787 /// </summary>
10788 setValue,
10789
10790 /// <summary>
10791 /// Sets all the values in the elements that match the ElementPath. If Name is specified, attributes with that name are set to the same value specified in Value. If Name is not specified, the text values of the elements are set. Value is a required attribute if setBulkValue is the action specified.
10792 /// </summary>
10793 bulkSetValue,
10794 }
10795
10796 [GeneratedCode("XsdGen", "4.0.0.0")]
10797 public enum SelectionLanguageType
10798 {
10799
10800 IllegalValue = int.MaxValue,
10801
10802 NotSet = -1,
10803
10804 XPath,
10805
10806 XSLPattern,
10807 }
10808 }
10809
10810 /// <summary>
10811 /// Adds or removes .xml file entries. If you use the XmlConfig element you must reference WixUtilExtension.dll as it contains the XmlConfig custom actions.
10812 /// </summary>
10813 [GeneratedCode("XsdGen", "4.0.0.0")]
10814 public class XmlConfig : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
10815 {
10816
10817 private ElementCollection children;
10818
10819 private string idField;
10820
10821 private bool idFieldSet;
10822
10823 private ActionType actionField;
10824
10825 private bool actionFieldSet;
10826
10827 private string elementIdField;
10828
10829 private bool elementIdFieldSet;
10830
10831 private string elementPathField;
10832
10833 private bool elementPathFieldSet;
10834
10835 private string fileField;
10836
10837 private bool fileFieldSet;
10838
10839 private string nameField;
10840
10841 private bool nameFieldSet;
10842
10843 private NodeType nodeField;
10844
10845 private bool nodeFieldSet;
10846
10847 private OnType onField;
10848
10849 private bool onFieldSet;
10850
10851 private YesNoType preserveModifiedDateField;
10852
10853 private bool preserveModifiedDateFieldSet;
10854
10855 private int sequenceField;
10856
10857 private bool sequenceFieldSet;
10858
10859 private string valueField;
10860
10861 private bool valueFieldSet;
10862
10863 private string verifyPathField;
10864
10865 private bool verifyPathFieldSet;
10866
10867 private ISchemaElement parentElement;
10868
10869 public XmlConfig()
10870 {
10871 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
10872 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(XmlConfig)));
10873 this.children = childCollection0;
10874 }
10875
10876 public virtual IEnumerable Children
10877 {
10878 get
10879 {
10880 return this.children;
10881 }
10882 }
10883
10884 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
10885 public virtual IEnumerable this[System.Type childType]
10886 {
10887 get
10888 {
10889 return this.children.Filter(childType);
10890 }
10891 }
10892
10893 /// <summary>
10894 /// Identifier for xml file modification.
10895 /// </summary>
10896 public string Id
10897 {
10898 get
10899 {
10900 return this.idField;
10901 }
10902 set
10903 {
10904 this.idFieldSet = true;
10905 this.idField = value;
10906 }
10907 }
10908
10909 public ActionType Action
10910 {
10911 get
10912 {
10913 return this.actionField;
10914 }
10915 set
10916 {
10917 this.actionFieldSet = true;
10918 this.actionField = value;
10919 }
10920 }
10921
10922 /// <summary>
10923 /// The Id of another XmlConfig to add attributes to. In this case, the 'ElementPath', 'Action', 'Node', and 'On' attributes must be omitted.
10924 /// </summary>
10925 public string ElementId
10926 {
10927 get
10928 {
10929 return this.elementIdField;
10930 }
10931 set
10932 {
10933 this.elementIdFieldSet = true;
10934 this.elementIdField = value;
10935 }
10936 }
10937
10938 /// <summary>
10939 /// The XPath of the parent element being modified. Note that this is a formatted field and therefore, square brackets in the XPath must be escaped. In addition, XPaths allow backslashes to be used to escape characters, so if you intend to include literal backslashes, you must escape them as well by doubling them in this attribute. The string is formatted by MSI first, and the result is consumed as the XPath.
10940 /// </summary>
10941 public string ElementPath
10942 {
10943 get
10944 {
10945 return this.elementPathField;
10946 }
10947 set
10948 {
10949 this.elementPathFieldSet = true;
10950 this.elementPathField = value;
10951 }
10952 }
10953
10954 /// <summary>
10955 /// Path of the .xml file to configure.
10956 /// </summary>
10957 public string File
10958 {
10959 get
10960 {
10961 return this.fileField;
10962 }
10963 set
10964 {
10965 this.fileFieldSet = true;
10966 this.fileField = value;
10967 }
10968 }
10969
10970 /// <summary>
10971 /// Name of XML node to set/add to the specified element. Not setting this attribute causes the element's text value to be set. Otherwise this specified the attribute name that is set.
10972 /// </summary>
10973 public string Name
10974 {
10975 get
10976 {
10977 return this.nameField;
10978 }
10979 set
10980 {
10981 this.nameFieldSet = true;
10982 this.nameField = value;
10983 }
10984 }
10985
10986 public NodeType Node
10987 {
10988 get
10989 {
10990 return this.nodeField;
10991 }
10992 set
10993 {
10994 this.nodeFieldSet = true;
10995 this.nodeField = value;
10996 }
10997 }
10998
10999 public OnType On
11000 {
11001 get
11002 {
11003 return this.onField;
11004 }
11005 set
11006 {
11007 this.onFieldSet = true;
11008 this.onField = value;
11009 }
11010 }
11011
11012 /// <summary>
11013 /// Specifies wheter or not the modification should preserve the modified date. Preserving the modified date will allow the file to be patched if no other modifications have been made.
11014 /// </summary>
11015 public YesNoType PreserveModifiedDate
11016 {
11017 get
11018 {
11019 return this.preserveModifiedDateField;
11020 }
11021 set
11022 {
11023 this.preserveModifiedDateFieldSet = true;
11024 this.preserveModifiedDateField = value;
11025 }
11026 }
11027
11028 /// <summary>
11029 /// Specifies the order in which the modification is to be attempted on the XML file. It is important to ensure that new elements are created before you attempt to add an attribute to them.
11030 /// </summary>
11031 public int Sequence
11032 {
11033 get
11034 {
11035 return this.sequenceField;
11036 }
11037 set
11038 {
11039 this.sequenceFieldSet = true;
11040 this.sequenceField = value;
11041 }
11042 }
11043
11044 /// <summary>
11045 /// The value to be written. See the
11046 /// </summary>
11047 public string Value
11048 {
11049 get
11050 {
11051 return this.valueField;
11052 }
11053 set
11054 {
11055 this.valueFieldSet = true;
11056 this.valueField = value;
11057 }
11058 }
11059
11060 /// <summary>
11061 /// The XPath to the element being modified. This is required for 'delete' actions. For 'create' actions, VerifyPath is used to decide if the element already exists. Note that this is a formatted field and therefore, square brackets in the XPath must be escaped. In addition, XPaths allow backslashes to be used to escape characters, so if you intend to include literal backslashes, you must escape them as well by doubling them in this attribute. The string is formatted by MSI first, and the result is consumed as the XPath.
11062 /// </summary>
11063 public string VerifyPath
11064 {
11065 get
11066 {
11067 return this.verifyPathField;
11068 }
11069 set
11070 {
11071 this.verifyPathFieldSet = true;
11072 this.verifyPathField = value;
11073 }
11074 }
11075
11076 public virtual ISchemaElement ParentElement
11077 {
11078 get
11079 {
11080 return this.parentElement;
11081 }
11082 set
11083 {
11084 this.parentElement = value;
11085 }
11086 }
11087
11088 public virtual void AddChild(ISchemaElement child)
11089 {
11090 if ((null == child))
11091 {
11092 throw new ArgumentNullException("child");
11093 }
11094 this.children.AddElement(child);
11095 child.ParentElement = this;
11096 }
11097
11098 public virtual void RemoveChild(ISchemaElement child)
11099 {
11100 if ((null == child))
11101 {
11102 throw new ArgumentNullException("child");
11103 }
11104 this.children.RemoveElement(child);
11105 child.ParentElement = null;
11106 }
11107
11108 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
11109 ISchemaElement ICreateChildren.CreateChild(string childName)
11110 {
11111 if (String.IsNullOrEmpty(childName))
11112 {
11113 throw new ArgumentNullException("childName");
11114 }
11115 ISchemaElement childValue = null;
11116 if (("XmlConfig" == childName))
11117 {
11118 childValue = new XmlConfig();
11119 }
11120 if ((null == childValue))
11121 {
11122 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
11123 }
11124 return childValue;
11125 }
11126
11127 /// <summary>
11128 /// Parses a ActionType from a string.
11129 /// </summary>
11130 public static ActionType ParseActionType(string value)
11131 {
11132 ActionType parsedValue;
11133 XmlConfig.TryParseActionType(value, out parsedValue);
11134 return parsedValue;
11135 }
11136
11137 /// <summary>
11138 /// Tries to parse a ActionType from a string.
11139 /// </summary>
11140 public static bool TryParseActionType(string value, out ActionType parsedValue)
11141 {
11142 parsedValue = ActionType.NotSet;
11143 if (string.IsNullOrEmpty(value))
11144 {
11145 return false;
11146 }
11147 if (("create" == value))
11148 {
11149 parsedValue = ActionType.create;
11150 }
11151 else
11152 {
11153 if (("delete" == value))
11154 {
11155 parsedValue = ActionType.delete;
11156 }
11157 else
11158 {
11159 parsedValue = ActionType.IllegalValue;
11160 return false;
11161 }
11162 }
11163 return true;
11164 }
11165
11166 /// <summary>
11167 /// Parses a NodeType from a string.
11168 /// </summary>
11169 public static NodeType ParseNodeType(string value)
11170 {
11171 NodeType parsedValue;
11172 XmlConfig.TryParseNodeType(value, out parsedValue);
11173 return parsedValue;
11174 }
11175
11176 /// <summary>
11177 /// Tries to parse a NodeType from a string.
11178 /// </summary>
11179 public static bool TryParseNodeType(string value, out NodeType parsedValue)
11180 {
11181 parsedValue = NodeType.NotSet;
11182 if (string.IsNullOrEmpty(value))
11183 {
11184 return false;
11185 }
11186 if (("element" == value))
11187 {
11188 parsedValue = NodeType.element;
11189 }
11190 else
11191 {
11192 if (("value" == value))
11193 {
11194 parsedValue = NodeType.value;
11195 }
11196 else
11197 {
11198 if (("document" == value))
11199 {
11200 parsedValue = NodeType.document;
11201 }
11202 else
11203 {
11204 parsedValue = NodeType.IllegalValue;
11205 return false;
11206 }
11207 }
11208 }
11209 return true;
11210 }
11211
11212 /// <summary>
11213 /// Parses a OnType from a string.
11214 /// </summary>
11215 public static OnType ParseOnType(string value)
11216 {
11217 OnType parsedValue;
11218 XmlConfig.TryParseOnType(value, out parsedValue);
11219 return parsedValue;
11220 }
11221
11222 /// <summary>
11223 /// Tries to parse a OnType from a string.
11224 /// </summary>
11225 public static bool TryParseOnType(string value, out OnType parsedValue)
11226 {
11227 parsedValue = OnType.NotSet;
11228 if (string.IsNullOrEmpty(value))
11229 {
11230 return false;
11231 }
11232 if (("install" == value))
11233 {
11234 parsedValue = OnType.install;
11235 }
11236 else
11237 {
11238 if (("uninstall" == value))
11239 {
11240 parsedValue = OnType.uninstall;
11241 }
11242 else
11243 {
11244 parsedValue = OnType.IllegalValue;
11245 return false;
11246 }
11247 }
11248 return true;
11249 }
11250
11251 /// <summary>
11252 /// Processes this element and all child elements into an XmlWriter.
11253 /// </summary>
11254 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
11255 public virtual void OutputXml(XmlWriter writer)
11256 {
11257 if ((null == writer))
11258 {
11259 throw new ArgumentNullException("writer");
11260 }
11261 writer.WriteStartElement("XmlConfig", "http://wixtoolset.org/schemas/v4/wxs/util");
11262 if (this.idFieldSet)
11263 {
11264 writer.WriteAttributeString("Id", this.idField);
11265 }
11266 if (this.actionFieldSet)
11267 {
11268 if ((this.actionField == ActionType.create))
11269 {
11270 writer.WriteAttributeString("Action", "create");
11271 }
11272 if ((this.actionField == ActionType.delete))
11273 {
11274 writer.WriteAttributeString("Action", "delete");
11275 }
11276 }
11277 if (this.elementIdFieldSet)
11278 {
11279 writer.WriteAttributeString("ElementId", this.elementIdField);
11280 }
11281 if (this.elementPathFieldSet)
11282 {
11283 writer.WriteAttributeString("ElementPath", this.elementPathField);
11284 }
11285 if (this.fileFieldSet)
11286 {
11287 writer.WriteAttributeString("File", this.fileField);
11288 }
11289 if (this.nameFieldSet)
11290 {
11291 writer.WriteAttributeString("Name", this.nameField);
11292 }
11293 if (this.nodeFieldSet)
11294 {
11295 if ((this.nodeField == NodeType.element))
11296 {
11297 writer.WriteAttributeString("Node", "element");
11298 }
11299 if ((this.nodeField == NodeType.value))
11300 {
11301 writer.WriteAttributeString("Node", "value");
11302 }
11303 if ((this.nodeField == NodeType.document))
11304 {
11305 writer.WriteAttributeString("Node", "document");
11306 }
11307 }
11308 if (this.onFieldSet)
11309 {
11310 if ((this.onField == OnType.install))
11311 {
11312 writer.WriteAttributeString("On", "install");
11313 }
11314 if ((this.onField == OnType.uninstall))
11315 {
11316 writer.WriteAttributeString("On", "uninstall");
11317 }
11318 }
11319 if (this.preserveModifiedDateFieldSet)
11320 {
11321 if ((this.preserveModifiedDateField == YesNoType.no))
11322 {
11323 writer.WriteAttributeString("PreserveModifiedDate", "no");
11324 }
11325 if ((this.preserveModifiedDateField == YesNoType.yes))
11326 {
11327 writer.WriteAttributeString("PreserveModifiedDate", "yes");
11328 }
11329 }
11330 if (this.sequenceFieldSet)
11331 {
11332 writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture));
11333 }
11334 if (this.valueFieldSet)
11335 {
11336 writer.WriteAttributeString("Value", this.valueField);
11337 }
11338 if (this.verifyPathFieldSet)
11339 {
11340 writer.WriteAttributeString("VerifyPath", this.verifyPathField);
11341 }
11342 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
11343 {
11344 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
11345 childElement.OutputXml(writer);
11346 }
11347 writer.WriteEndElement();
11348 }
11349
11350 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
11351 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
11352 void ISetAttributes.SetAttribute(string name, string value)
11353 {
11354 if (String.IsNullOrEmpty(name))
11355 {
11356 throw new ArgumentNullException("name");
11357 }
11358 if (("Id" == name))
11359 {
11360 this.idField = value;
11361 this.idFieldSet = true;
11362 }
11363 if (("Action" == name))
11364 {
11365 this.actionField = XmlConfig.ParseActionType(value);
11366 this.actionFieldSet = true;
11367 }
11368 if (("ElementId" == name))
11369 {
11370 this.elementIdField = value;
11371 this.elementIdFieldSet = true;
11372 }
11373 if (("ElementPath" == name))
11374 {
11375 this.elementPathField = value;
11376 this.elementPathFieldSet = true;
11377 }
11378 if (("File" == name))
11379 {
11380 this.fileField = value;
11381 this.fileFieldSet = true;
11382 }
11383 if (("Name" == name))
11384 {
11385 this.nameField = value;
11386 this.nameFieldSet = true;
11387 }
11388 if (("Node" == name))
11389 {
11390 this.nodeField = XmlConfig.ParseNodeType(value);
11391 this.nodeFieldSet = true;
11392 }
11393 if (("On" == name))
11394 {
11395 this.onField = XmlConfig.ParseOnType(value);
11396 this.onFieldSet = true;
11397 }
11398 if (("PreserveModifiedDate" == name))
11399 {
11400 this.preserveModifiedDateField = Enums.ParseYesNoType(value);
11401 this.preserveModifiedDateFieldSet = true;
11402 }
11403 if (("Sequence" == name))
11404 {
11405 this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
11406 this.sequenceFieldSet = true;
11407 }
11408 if (("Value" == name))
11409 {
11410 this.valueField = value;
11411 this.valueFieldSet = true;
11412 }
11413 if (("VerifyPath" == name))
11414 {
11415 this.verifyPathField = value;
11416 this.verifyPathFieldSet = true;
11417 }
11418 }
11419
11420 [GeneratedCode("XsdGen", "4.0.0.0")]
11421 public enum ActionType
11422 {
11423
11424 IllegalValue = int.MaxValue,
11425
11426 NotSet = -1,
11427
11428 create,
11429
11430 delete,
11431 }
11432
11433 [GeneratedCode("XsdGen", "4.0.0.0")]
11434 public enum NodeType
11435 {
11436
11437 IllegalValue = int.MaxValue,
11438
11439 NotSet = -1,
11440
11441 element,
11442
11443 value,
11444
11445 document,
11446 }
11447
11448 [GeneratedCode("XsdGen", "4.0.0.0")]
11449 public enum OnType
11450 {
11451
11452 IllegalValue = int.MaxValue,
11453
11454 NotSet = -1,
11455
11456 install,
11457
11458 uninstall,
11459 }
11460 }
11461}