summaryrefslogtreecommitdiff
path: root/src/tools/heat/Serialize/iis.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/heat/Serialize/iis.cs')
-rw-r--r--src/tools/heat/Serialize/iis.cs5915
1 files changed, 5915 insertions, 0 deletions
diff --git a/src/tools/heat/Serialize/iis.cs b/src/tools/heat/Serialize/iis.cs
new file mode 100644
index 00000000..3f2943f8
--- /dev/null
+++ b/src/tools/heat/Serialize/iis.cs
@@ -0,0 +1,5915 @@
1//------------------------------------------------------------------------------
2// <auto-generated>
3// This code was generated by a tool.
4// Runtime Version:4.0.30319.42000
5//
6// Changes to this file may cause incorrect behavior and will be lost if
7// the code is regenerated.
8// </auto-generated>
9//------------------------------------------------------------------------------
10
11#pragma warning disable 1591
12namespace WixToolset.Harvesters.Serialize.IIs
13{
14 using System;
15 using System.CodeDom.Compiler;
16 using System.Collections;
17 using System.Diagnostics.CodeAnalysis;
18 using System.Globalization;
19 using System.Xml;
20 using WixToolset.Harvesters.Serialize;
21
22
23 /// <summary>
24 /// Values of this type will either be "yes" or "no".
25 /// </summary>
26 [GeneratedCode("XsdGen", "4.0.0.0")]
27 public enum YesNoType
28 {
29
30 IllegalValue = int.MaxValue,
31
32 NotSet = -1,
33
34 no,
35
36 yes,
37 }
38
39 [GeneratedCode("XsdGen", "4.0.0.0")]
40 public class Enums
41 {
42
43 /// <summary>
44 /// Parses a YesNoType from a string.
45 /// </summary>
46 public static YesNoType ParseYesNoType(string value)
47 {
48 YesNoType parsedValue;
49 Enums.TryParseYesNoType(value, out parsedValue);
50 return parsedValue;
51 }
52
53 /// <summary>
54 /// Tries to parse a YesNoType from a string.
55 /// </summary>
56 public static bool TryParseYesNoType(string value, out YesNoType parsedValue)
57 {
58 parsedValue = YesNoType.NotSet;
59 if (string.IsNullOrEmpty(value))
60 {
61 return false;
62 }
63 if (("no" == value))
64 {
65 parsedValue = YesNoType.no;
66 }
67 else
68 {
69 if (("yes" == value))
70 {
71 parsedValue = YesNoType.yes;
72 }
73 else
74 {
75 parsedValue = YesNoType.IllegalValue;
76 return false;
77 }
78 }
79 return true;
80 }
81
82 /// <summary>
83 /// Parses a YesNoDefaultType from a string.
84 /// </summary>
85 public static YesNoDefaultType ParseYesNoDefaultType(string value)
86 {
87 YesNoDefaultType parsedValue;
88 Enums.TryParseYesNoDefaultType(value, out parsedValue);
89 return parsedValue;
90 }
91
92 /// <summary>
93 /// Tries to parse a YesNoDefaultType from a string.
94 /// </summary>
95 public static bool TryParseYesNoDefaultType(string value, out YesNoDefaultType parsedValue)
96 {
97 parsedValue = YesNoDefaultType.NotSet;
98 if (string.IsNullOrEmpty(value))
99 {
100 return false;
101 }
102 if (("default" == value))
103 {
104 parsedValue = YesNoDefaultType.@default;
105 }
106 else
107 {
108 if (("no" == value))
109 {
110 parsedValue = YesNoDefaultType.no;
111 }
112 else
113 {
114 if (("yes" == value))
115 {
116 parsedValue = YesNoDefaultType.yes;
117 }
118 else
119 {
120 parsedValue = YesNoDefaultType.IllegalValue;
121 return false;
122 }
123 }
124 }
125 return true;
126 }
127 }
128
129 /// <summary>
130 /// Values of this type will either be "default", "yes", or "no".
131 /// </summary>
132 [GeneratedCode("XsdGen", "4.0.0.0")]
133 public enum YesNoDefaultType
134 {
135
136 IllegalValue = int.MaxValue,
137
138 NotSet = -1,
139
140 @default,
141
142 no,
143
144 yes,
145 }
146
147 /// <summary>
148 /// WebDirProperties used by one or more WebSites. Lists properties common to IIS web sites and vroots. Corresponding properties can be viewed through the IIS Manager snap-in. One property entry can be reused by multiple sites or vroots using the Id field as a reference, using WebVirtualDir.DirProperties, WebSite.DirProperties, or WebDir.DirProperties.
149 /// </summary>
150 [GeneratedCode("XsdGen", "4.0.0.0")]
151 public class WebDirProperties : ISchemaElement, ISetAttributes
152 {
153
154 private string idField;
155
156 private bool idFieldSet;
157
158 private YesNoType readField;
159
160 private bool readFieldSet;
161
162 private YesNoType writeField;
163
164 private bool writeFieldSet;
165
166 private YesNoType scriptField;
167
168 private bool scriptFieldSet;
169
170 private YesNoType executeField;
171
172 private bool executeFieldSet;
173
174 private YesNoType anonymousAccessField;
175
176 private bool anonymousAccessFieldSet;
177
178 private string anonymousUserField;
179
180 private bool anonymousUserFieldSet;
181
182 private YesNoType iIsControlledPasswordField;
183
184 private bool iIsControlledPasswordFieldSet;
185
186 private YesNoType windowsAuthenticationField;
187
188 private bool windowsAuthenticationFieldSet;
189
190 private YesNoType digestAuthenticationField;
191
192 private bool digestAuthenticationFieldSet;
193
194 private YesNoType basicAuthenticationField;
195
196 private bool basicAuthenticationFieldSet;
197
198 private YesNoType passportAuthenticationField;
199
200 private bool passportAuthenticationFieldSet;
201
202 private YesNoType logVisitsField;
203
204 private bool logVisitsFieldSet;
205
206 private YesNoType indexField;
207
208 private bool indexFieldSet;
209
210 private string defaultDocumentsField;
211
212 private bool defaultDocumentsFieldSet;
213
214 private YesNoType aspDetailedErrorField;
215
216 private bool aspDetailedErrorFieldSet;
217
218 private string httpExpiresField;
219
220 private bool httpExpiresFieldSet;
221
222 private long cacheControlMaxAgeField;
223
224 private bool cacheControlMaxAgeFieldSet;
225
226 private string cacheControlCustomField;
227
228 private bool cacheControlCustomFieldSet;
229
230 private YesNoType clearCustomErrorField;
231
232 private bool clearCustomErrorFieldSet;
233
234 private YesNoType accessSSLField;
235
236 private bool accessSSLFieldSet;
237
238 private YesNoType accessSSL128Field;
239
240 private bool accessSSL128FieldSet;
241
242 private YesNoType accessSSLMapCertField;
243
244 private bool accessSSLMapCertFieldSet;
245
246 private YesNoType accessSSLNegotiateCertField;
247
248 private bool accessSSLNegotiateCertFieldSet;
249
250 private YesNoType accessSSLRequireCertField;
251
252 private bool accessSSLRequireCertFieldSet;
253
254 private string authenticationProvidersField;
255
256 private bool authenticationProvidersFieldSet;
257
258 private ISchemaElement parentElement;
259
260 public string Id
261 {
262 get
263 {
264 return this.idField;
265 }
266 set
267 {
268 this.idFieldSet = true;
269 this.idField = value;
270 }
271 }
272
273 public YesNoType Read
274 {
275 get
276 {
277 return this.readField;
278 }
279 set
280 {
281 this.readFieldSet = true;
282 this.readField = value;
283 }
284 }
285
286 public YesNoType Write
287 {
288 get
289 {
290 return this.writeField;
291 }
292 set
293 {
294 this.writeFieldSet = true;
295 this.writeField = value;
296 }
297 }
298
299 public YesNoType Script
300 {
301 get
302 {
303 return this.scriptField;
304 }
305 set
306 {
307 this.scriptFieldSet = true;
308 this.scriptField = value;
309 }
310 }
311
312 public YesNoType Execute
313 {
314 get
315 {
316 return this.executeField;
317 }
318 set
319 {
320 this.executeFieldSet = true;
321 this.executeField = value;
322 }
323 }
324
325 /// <summary>
326 /// Sets the Enable Anonymous Access checkbox, which maps anonymous users to a Windows user account. When setting this to 'yes' you should also provide the user account using the AnonymousUser attribute, and determine what setting to use for the IIsControlledPassword attribute. Defaults to 'no.'
327 /// </summary>
328 public YesNoType AnonymousAccess
329 {
330 get
331 {
332 return this.anonymousAccessField;
333 }
334 set
335 {
336 this.anonymousAccessFieldSet = true;
337 this.anonymousAccessField = value;
338 }
339 }
340
341 /// <summary>
342 /// Reference to the Id attribute on the User element to be used as the anonymous user for the directory. See the User element for more information.
343 /// </summary>
344 public string AnonymousUser
345 {
346 get
347 {
348 return this.anonymousUserField;
349 }
350 set
351 {
352 this.anonymousUserFieldSet = true;
353 this.anonymousUserField = value;
354 }
355 }
356
357 /// <summary>
358 /// Sets whether IIS should control the password used for the Windows account specified in the AnonymousUser attribute. Defaults to 'no.'
359 /// </summary>
360 public YesNoType IIsControlledPassword
361 {
362 get
363 {
364 return this.iIsControlledPasswordField;
365 }
366 set
367 {
368 this.iIsControlledPasswordFieldSet = true;
369 this.iIsControlledPasswordField = value;
370 }
371 }
372
373 /// <summary>
374 /// Sets the Windows Authentication option, which enables integrated Windows authentication to be used on the site. Defaults to 'no.'
375 /// </summary>
376 public YesNoType WindowsAuthentication
377 {
378 get
379 {
380 return this.windowsAuthenticationField;
381 }
382 set
383 {
384 this.windowsAuthenticationFieldSet = true;
385 this.windowsAuthenticationField = value;
386 }
387 }
388
389 /// <summary>
390 /// Sets the Digest Authentication option, which allows using digest authentication with domain user accounts. Defaults to 'no.'
391 /// </summary>
392 public YesNoType DigestAuthentication
393 {
394 get
395 {
396 return this.digestAuthenticationField;
397 }
398 set
399 {
400 this.digestAuthenticationFieldSet = true;
401 this.digestAuthenticationField = value;
402 }
403 }
404
405 /// <summary>
406 /// Sets the Basic Authentication option, which allows clients to provide credentials in plaintext over the wire. Defaults to 'no.'
407 /// </summary>
408 public YesNoType BasicAuthentication
409 {
410 get
411 {
412 return this.basicAuthenticationField;
413 }
414 set
415 {
416 this.basicAuthenticationFieldSet = true;
417 this.basicAuthenticationField = value;
418 }
419 }
420
421 /// <summary>
422 /// Sets the Passport Authentication option, which allows clients to provide credentials via a .Net Passport account. Defaults to 'no.'
423 /// </summary>
424 public YesNoType PassportAuthentication
425 {
426 get
427 {
428 return this.passportAuthenticationField;
429 }
430 set
431 {
432 this.passportAuthenticationFieldSet = true;
433 this.passportAuthenticationField = value;
434 }
435 }
436
437 /// <summary>
438 /// Sets whether visits to this site should be logged. Defaults to 'no.'
439 /// </summary>
440 public YesNoType LogVisits
441 {
442 get
443 {
444 return this.logVisitsField;
445 }
446 set
447 {
448 this.logVisitsFieldSet = true;
449 this.logVisitsField = value;
450 }
451 }
452
453 /// <summary>
454 /// Sets the Index Resource option, which specifies whether this web directory should be indexed. Defaults to 'no.'
455 /// </summary>
456 public YesNoType Index
457 {
458 get
459 {
460 return this.indexField;
461 }
462 set
463 {
464 this.indexFieldSet = true;
465 this.indexField = value;
466 }
467 }
468
469 /// <summary>
470 /// The list of default documents to set for this web directory, in comma-delimited format.
471 /// </summary>
472 public string DefaultDocuments
473 {
474 get
475 {
476 return this.defaultDocumentsField;
477 }
478 set
479 {
480 this.defaultDocumentsFieldSet = true;
481 this.defaultDocumentsField = value;
482 }
483 }
484
485 /// <summary>
486 /// Sets the option for whether to send detailed ASP errors back to the client on script error. Default is 'no.'
487 /// </summary>
488 public YesNoType AspDetailedError
489 {
490 get
491 {
492 return this.aspDetailedErrorField;
493 }
494 set
495 {
496 this.aspDetailedErrorFieldSet = true;
497 this.aspDetailedErrorField = value;
498 }
499 }
500
501 /// <summary>
502 /// Value to set the HttpExpires attribute to for a Web Dir in the metabase.
503 /// </summary>
504 public string HttpExpires
505 {
506 get
507 {
508 return this.httpExpiresField;
509 }
510 set
511 {
512 this.httpExpiresFieldSet = true;
513 this.httpExpiresField = value;
514 }
515 }
516
517 /// <summary>
518 /// Integer value specifying the cache control maximum age value.
519 /// </summary>
520 public long CacheControlMaxAge
521 {
522 get
523 {
524 return this.cacheControlMaxAgeField;
525 }
526 set
527 {
528 this.cacheControlMaxAgeFieldSet = true;
529 this.cacheControlMaxAgeField = value;
530 }
531 }
532
533 /// <summary>
534 /// Custom HTTP 1.1 cache control directives.
535 /// </summary>
536 public string CacheControlCustom
537 {
538 get
539 {
540 return this.cacheControlCustomField;
541 }
542 set
543 {
544 this.cacheControlCustomFieldSet = true;
545 this.cacheControlCustomField = value;
546 }
547 }
548
549 /// <summary>
550 /// Specifies whether IIs will return custom errors for this directory.
551 /// </summary>
552 public YesNoType ClearCustomError
553 {
554 get
555 {
556 return this.clearCustomErrorField;
557 }
558 set
559 {
560 this.clearCustomErrorFieldSet = true;
561 this.clearCustomErrorField = value;
562 }
563 }
564
565 /// <summary>
566 /// A value of true indicates that file access requires SSL file permission processing, with or without a client certificate. This corresponds to AccessSSL flag for AccessSSLFlags IIS metabase property.
567 /// </summary>
568 [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")]
569 public YesNoType AccessSSL
570 {
571 get
572 {
573 return this.accessSSLField;
574 }
575 set
576 {
577 this.accessSSLFieldSet = true;
578 this.accessSSLField = value;
579 }
580 }
581
582 /// <summary>
583 /// A value of true indicates that file access requires SSL file permission processing with a minimum key size of 128 bits, with or without a client certificate. This corresponds to AccessSSL128 flag for AccessSSLFlags IIS metabase property.
584 /// </summary>
585 [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")]
586 public YesNoType AccessSSL128
587 {
588 get
589 {
590 return this.accessSSL128Field;
591 }
592 set
593 {
594 this.accessSSL128FieldSet = true;
595 this.accessSSL128Field = value;
596 }
597 }
598
599 /// <summary>
600 /// This corresponds to AccessSSLMapCert flag for AccessSSLFlags IIS metabase property.
601 /// </summary>
602 [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")]
603 public YesNoType AccessSSLMapCert
604 {
605 get
606 {
607 return this.accessSSLMapCertField;
608 }
609 set
610 {
611 this.accessSSLMapCertFieldSet = true;
612 this.accessSSLMapCertField = value;
613 }
614 }
615
616 /// <summary>
617 /// This corresponds to AccessSSLNegotiateCert flag for AccessSSLFlags IIS metabase property.
618 /// </summary>
619 [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")]
620 public YesNoType AccessSSLNegotiateCert
621 {
622 get
623 {
624 return this.accessSSLNegotiateCertField;
625 }
626 set
627 {
628 this.accessSSLNegotiateCertFieldSet = true;
629 this.accessSSLNegotiateCertField = value;
630 }
631 }
632
633 /// <summary>
634 /// This corresponds to AccessSSLRequireCert flag for AccessSSLFlags IIS metabase property.
635 /// </summary>
636 [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")]
637 public YesNoType AccessSSLRequireCert
638 {
639 get
640 {
641 return this.accessSSLRequireCertField;
642 }
643 set
644 {
645 this.accessSSLRequireCertFieldSet = true;
646 this.accessSSLRequireCertField = value;
647 }
648 }
649
650 /// <summary>
651 /// Comma delimited list, in order of precedence, of Windows authentication providers that IIS will attempt to use: NTLM, Kerberos, Negotiate, and others.
652 /// </summary>
653 public string AuthenticationProviders
654 {
655 get
656 {
657 return this.authenticationProvidersField;
658 }
659 set
660 {
661 this.authenticationProvidersFieldSet = true;
662 this.authenticationProvidersField = value;
663 }
664 }
665
666 public virtual ISchemaElement ParentElement
667 {
668 get
669 {
670 return this.parentElement;
671 }
672 set
673 {
674 this.parentElement = value;
675 }
676 }
677
678 /// <summary>
679 /// Processes this element and all child elements into an XmlWriter.
680 /// </summary>
681 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
682 public virtual void OutputXml(XmlWriter writer)
683 {
684 if ((null == writer))
685 {
686 throw new ArgumentNullException("writer");
687 }
688 writer.WriteStartElement("WebDirProperties", "http://wixtoolset.org/schemas/v4/wxs/iis");
689 if (this.idFieldSet)
690 {
691 writer.WriteAttributeString("Id", this.idField);
692 }
693 if (this.readFieldSet)
694 {
695 if ((this.readField == YesNoType.no))
696 {
697 writer.WriteAttributeString("Read", "no");
698 }
699 if ((this.readField == YesNoType.yes))
700 {
701 writer.WriteAttributeString("Read", "yes");
702 }
703 }
704 if (this.writeFieldSet)
705 {
706 if ((this.writeField == YesNoType.no))
707 {
708 writer.WriteAttributeString("Write", "no");
709 }
710 if ((this.writeField == YesNoType.yes))
711 {
712 writer.WriteAttributeString("Write", "yes");
713 }
714 }
715 if (this.scriptFieldSet)
716 {
717 if ((this.scriptField == YesNoType.no))
718 {
719 writer.WriteAttributeString("Script", "no");
720 }
721 if ((this.scriptField == YesNoType.yes))
722 {
723 writer.WriteAttributeString("Script", "yes");
724 }
725 }
726 if (this.executeFieldSet)
727 {
728 if ((this.executeField == YesNoType.no))
729 {
730 writer.WriteAttributeString("Execute", "no");
731 }
732 if ((this.executeField == YesNoType.yes))
733 {
734 writer.WriteAttributeString("Execute", "yes");
735 }
736 }
737 if (this.anonymousAccessFieldSet)
738 {
739 if ((this.anonymousAccessField == YesNoType.no))
740 {
741 writer.WriteAttributeString("AnonymousAccess", "no");
742 }
743 if ((this.anonymousAccessField == YesNoType.yes))
744 {
745 writer.WriteAttributeString("AnonymousAccess", "yes");
746 }
747 }
748 if (this.anonymousUserFieldSet)
749 {
750 writer.WriteAttributeString("AnonymousUser", this.anonymousUserField);
751 }
752 if (this.iIsControlledPasswordFieldSet)
753 {
754 if ((this.iIsControlledPasswordField == YesNoType.no))
755 {
756 writer.WriteAttributeString("IIsControlledPassword", "no");
757 }
758 if ((this.iIsControlledPasswordField == YesNoType.yes))
759 {
760 writer.WriteAttributeString("IIsControlledPassword", "yes");
761 }
762 }
763 if (this.windowsAuthenticationFieldSet)
764 {
765 if ((this.windowsAuthenticationField == YesNoType.no))
766 {
767 writer.WriteAttributeString("WindowsAuthentication", "no");
768 }
769 if ((this.windowsAuthenticationField == YesNoType.yes))
770 {
771 writer.WriteAttributeString("WindowsAuthentication", "yes");
772 }
773 }
774 if (this.digestAuthenticationFieldSet)
775 {
776 if ((this.digestAuthenticationField == YesNoType.no))
777 {
778 writer.WriteAttributeString("DigestAuthentication", "no");
779 }
780 if ((this.digestAuthenticationField == YesNoType.yes))
781 {
782 writer.WriteAttributeString("DigestAuthentication", "yes");
783 }
784 }
785 if (this.basicAuthenticationFieldSet)
786 {
787 if ((this.basicAuthenticationField == YesNoType.no))
788 {
789 writer.WriteAttributeString("BasicAuthentication", "no");
790 }
791 if ((this.basicAuthenticationField == YesNoType.yes))
792 {
793 writer.WriteAttributeString("BasicAuthentication", "yes");
794 }
795 }
796 if (this.passportAuthenticationFieldSet)
797 {
798 if ((this.passportAuthenticationField == YesNoType.no))
799 {
800 writer.WriteAttributeString("PassportAuthentication", "no");
801 }
802 if ((this.passportAuthenticationField == YesNoType.yes))
803 {
804 writer.WriteAttributeString("PassportAuthentication", "yes");
805 }
806 }
807 if (this.logVisitsFieldSet)
808 {
809 if ((this.logVisitsField == YesNoType.no))
810 {
811 writer.WriteAttributeString("LogVisits", "no");
812 }
813 if ((this.logVisitsField == YesNoType.yes))
814 {
815 writer.WriteAttributeString("LogVisits", "yes");
816 }
817 }
818 if (this.indexFieldSet)
819 {
820 if ((this.indexField == YesNoType.no))
821 {
822 writer.WriteAttributeString("Index", "no");
823 }
824 if ((this.indexField == YesNoType.yes))
825 {
826 writer.WriteAttributeString("Index", "yes");
827 }
828 }
829 if (this.defaultDocumentsFieldSet)
830 {
831 writer.WriteAttributeString("DefaultDocuments", this.defaultDocumentsField);
832 }
833 if (this.aspDetailedErrorFieldSet)
834 {
835 if ((this.aspDetailedErrorField == YesNoType.no))
836 {
837 writer.WriteAttributeString("AspDetailedError", "no");
838 }
839 if ((this.aspDetailedErrorField == YesNoType.yes))
840 {
841 writer.WriteAttributeString("AspDetailedError", "yes");
842 }
843 }
844 if (this.httpExpiresFieldSet)
845 {
846 writer.WriteAttributeString("HttpExpires", this.httpExpiresField);
847 }
848 if (this.cacheControlMaxAgeFieldSet)
849 {
850 writer.WriteAttributeString("CacheControlMaxAge", this.cacheControlMaxAgeField.ToString(CultureInfo.InvariantCulture));
851 }
852 if (this.cacheControlCustomFieldSet)
853 {
854 writer.WriteAttributeString("CacheControlCustom", this.cacheControlCustomField);
855 }
856 if (this.clearCustomErrorFieldSet)
857 {
858 if ((this.clearCustomErrorField == YesNoType.no))
859 {
860 writer.WriteAttributeString("ClearCustomError", "no");
861 }
862 if ((this.clearCustomErrorField == YesNoType.yes))
863 {
864 writer.WriteAttributeString("ClearCustomError", "yes");
865 }
866 }
867 if (this.accessSSLFieldSet)
868 {
869 if ((this.accessSSLField == YesNoType.no))
870 {
871 writer.WriteAttributeString("AccessSSL", "no");
872 }
873 if ((this.accessSSLField == YesNoType.yes))
874 {
875 writer.WriteAttributeString("AccessSSL", "yes");
876 }
877 }
878 if (this.accessSSL128FieldSet)
879 {
880 if ((this.accessSSL128Field == YesNoType.no))
881 {
882 writer.WriteAttributeString("AccessSSL128", "no");
883 }
884 if ((this.accessSSL128Field == YesNoType.yes))
885 {
886 writer.WriteAttributeString("AccessSSL128", "yes");
887 }
888 }
889 if (this.accessSSLMapCertFieldSet)
890 {
891 if ((this.accessSSLMapCertField == YesNoType.no))
892 {
893 writer.WriteAttributeString("AccessSSLMapCert", "no");
894 }
895 if ((this.accessSSLMapCertField == YesNoType.yes))
896 {
897 writer.WriteAttributeString("AccessSSLMapCert", "yes");
898 }
899 }
900 if (this.accessSSLNegotiateCertFieldSet)
901 {
902 if ((this.accessSSLNegotiateCertField == YesNoType.no))
903 {
904 writer.WriteAttributeString("AccessSSLNegotiateCert", "no");
905 }
906 if ((this.accessSSLNegotiateCertField == YesNoType.yes))
907 {
908 writer.WriteAttributeString("AccessSSLNegotiateCert", "yes");
909 }
910 }
911 if (this.accessSSLRequireCertFieldSet)
912 {
913 if ((this.accessSSLRequireCertField == YesNoType.no))
914 {
915 writer.WriteAttributeString("AccessSSLRequireCert", "no");
916 }
917 if ((this.accessSSLRequireCertField == YesNoType.yes))
918 {
919 writer.WriteAttributeString("AccessSSLRequireCert", "yes");
920 }
921 }
922 if (this.authenticationProvidersFieldSet)
923 {
924 writer.WriteAttributeString("AuthenticationProviders", this.authenticationProvidersField);
925 }
926 writer.WriteEndElement();
927 }
928
929 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
930 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
931 void ISetAttributes.SetAttribute(string name, string value)
932 {
933 if (String.IsNullOrEmpty(name))
934 {
935 throw new ArgumentNullException("name");
936 }
937 if (("Id" == name))
938 {
939 this.idField = value;
940 this.idFieldSet = true;
941 }
942 if (("Read" == name))
943 {
944 this.readField = Enums.ParseYesNoType(value);
945 this.readFieldSet = true;
946 }
947 if (("Write" == name))
948 {
949 this.writeField = Enums.ParseYesNoType(value);
950 this.writeFieldSet = true;
951 }
952 if (("Script" == name))
953 {
954 this.scriptField = Enums.ParseYesNoType(value);
955 this.scriptFieldSet = true;
956 }
957 if (("Execute" == name))
958 {
959 this.executeField = Enums.ParseYesNoType(value);
960 this.executeFieldSet = true;
961 }
962 if (("AnonymousAccess" == name))
963 {
964 this.anonymousAccessField = Enums.ParseYesNoType(value);
965 this.anonymousAccessFieldSet = true;
966 }
967 if (("AnonymousUser" == name))
968 {
969 this.anonymousUserField = value;
970 this.anonymousUserFieldSet = true;
971 }
972 if (("IIsControlledPassword" == name))
973 {
974 this.iIsControlledPasswordField = Enums.ParseYesNoType(value);
975 this.iIsControlledPasswordFieldSet = true;
976 }
977 if (("WindowsAuthentication" == name))
978 {
979 this.windowsAuthenticationField = Enums.ParseYesNoType(value);
980 this.windowsAuthenticationFieldSet = true;
981 }
982 if (("DigestAuthentication" == name))
983 {
984 this.digestAuthenticationField = Enums.ParseYesNoType(value);
985 this.digestAuthenticationFieldSet = true;
986 }
987 if (("BasicAuthentication" == name))
988 {
989 this.basicAuthenticationField = Enums.ParseYesNoType(value);
990 this.basicAuthenticationFieldSet = true;
991 }
992 if (("PassportAuthentication" == name))
993 {
994 this.passportAuthenticationField = Enums.ParseYesNoType(value);
995 this.passportAuthenticationFieldSet = true;
996 }
997 if (("LogVisits" == name))
998 {
999 this.logVisitsField = Enums.ParseYesNoType(value);
1000 this.logVisitsFieldSet = true;
1001 }
1002 if (("Index" == name))
1003 {
1004 this.indexField = Enums.ParseYesNoType(value);
1005 this.indexFieldSet = true;
1006 }
1007 if (("DefaultDocuments" == name))
1008 {
1009 this.defaultDocumentsField = value;
1010 this.defaultDocumentsFieldSet = true;
1011 }
1012 if (("AspDetailedError" == name))
1013 {
1014 this.aspDetailedErrorField = Enums.ParseYesNoType(value);
1015 this.aspDetailedErrorFieldSet = true;
1016 }
1017 if (("HttpExpires" == name))
1018 {
1019 this.httpExpiresField = value;
1020 this.httpExpiresFieldSet = true;
1021 }
1022 if (("CacheControlMaxAge" == name))
1023 {
1024 this.cacheControlMaxAgeField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
1025 this.cacheControlMaxAgeFieldSet = true;
1026 }
1027 if (("CacheControlCustom" == name))
1028 {
1029 this.cacheControlCustomField = value;
1030 this.cacheControlCustomFieldSet = true;
1031 }
1032 if (("ClearCustomError" == name))
1033 {
1034 this.clearCustomErrorField = Enums.ParseYesNoType(value);
1035 this.clearCustomErrorFieldSet = true;
1036 }
1037 if (("AccessSSL" == name))
1038 {
1039 this.accessSSLField = Enums.ParseYesNoType(value);
1040 this.accessSSLFieldSet = true;
1041 }
1042 if (("AccessSSL128" == name))
1043 {
1044 this.accessSSL128Field = Enums.ParseYesNoType(value);
1045 this.accessSSL128FieldSet = true;
1046 }
1047 if (("AccessSSLMapCert" == name))
1048 {
1049 this.accessSSLMapCertField = Enums.ParseYesNoType(value);
1050 this.accessSSLMapCertFieldSet = true;
1051 }
1052 if (("AccessSSLNegotiateCert" == name))
1053 {
1054 this.accessSSLNegotiateCertField = Enums.ParseYesNoType(value);
1055 this.accessSSLNegotiateCertFieldSet = true;
1056 }
1057 if (("AccessSSLRequireCert" == name))
1058 {
1059 this.accessSSLRequireCertField = Enums.ParseYesNoType(value);
1060 this.accessSSLRequireCertFieldSet = true;
1061 }
1062 if (("AuthenticationProviders" == name))
1063 {
1064 this.authenticationProvidersField = value;
1065 this.authenticationProvidersFieldSet = true;
1066 }
1067 }
1068 }
1069
1070 /// <summary>
1071 /// Custom Web Errors used by WebSites and Virtual Directories.
1072 /// </summary>
1073 [GeneratedCode("XsdGen", "4.0.0.0")]
1074 public class WebError : ISchemaElement, ISetAttributes
1075 {
1076
1077 private int errorCodeField;
1078
1079 private bool errorCodeFieldSet;
1080
1081 private int subCodeField;
1082
1083 private bool subCodeFieldSet;
1084
1085 private string fileField;
1086
1087 private bool fileFieldSet;
1088
1089 private string uRLField;
1090
1091 private bool uRLFieldSet;
1092
1093 private ISchemaElement parentElement;
1094
1095 /// <summary>
1096 /// HTTP 1.1 error code.
1097 /// </summary>
1098 public int ErrorCode
1099 {
1100 get
1101 {
1102 return this.errorCodeField;
1103 }
1104 set
1105 {
1106 this.errorCodeFieldSet = true;
1107 this.errorCodeField = value;
1108 }
1109 }
1110
1111 /// <summary>
1112 /// Error sub code. Set to 0 to get the wild card "*".
1113 /// </summary>
1114 public int SubCode
1115 {
1116 get
1117 {
1118 return this.subCodeField;
1119 }
1120 set
1121 {
1122 this.subCodeFieldSet = true;
1123 this.subCodeField = value;
1124 }
1125 }
1126
1127 /// <summary>
1128 /// File to be sent to the client for this error code and sub code. This can be formatted. For example: [#FileId].
1129 /// </summary>
1130 public string File
1131 {
1132 get
1133 {
1134 return this.fileField;
1135 }
1136 set
1137 {
1138 this.fileFieldSet = true;
1139 this.fileField = value;
1140 }
1141 }
1142
1143 /// <summary>
1144 /// URL to be sent to the client for this error code and sub code. This can be formatted.
1145 /// </summary>
1146 [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")]
1147 public string URL
1148 {
1149 get
1150 {
1151 return this.uRLField;
1152 }
1153 set
1154 {
1155 this.uRLFieldSet = true;
1156 this.uRLField = value;
1157 }
1158 }
1159
1160 public virtual ISchemaElement ParentElement
1161 {
1162 get
1163 {
1164 return this.parentElement;
1165 }
1166 set
1167 {
1168 this.parentElement = value;
1169 }
1170 }
1171
1172 /// <summary>
1173 /// Processes this element and all child elements into an XmlWriter.
1174 /// </summary>
1175 public virtual void OutputXml(XmlWriter writer)
1176 {
1177 if ((null == writer))
1178 {
1179 throw new ArgumentNullException("writer");
1180 }
1181 writer.WriteStartElement("WebError", "http://wixtoolset.org/schemas/v4/wxs/iis");
1182 if (this.errorCodeFieldSet)
1183 {
1184 writer.WriteAttributeString("ErrorCode", this.errorCodeField.ToString(CultureInfo.InvariantCulture));
1185 }
1186 if (this.subCodeFieldSet)
1187 {
1188 writer.WriteAttributeString("SubCode", this.subCodeField.ToString(CultureInfo.InvariantCulture));
1189 }
1190 if (this.fileFieldSet)
1191 {
1192 writer.WriteAttributeString("File", this.fileField);
1193 }
1194 if (this.uRLFieldSet)
1195 {
1196 writer.WriteAttributeString("URL", this.uRLField);
1197 }
1198 writer.WriteEndElement();
1199 }
1200
1201 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
1202 void ISetAttributes.SetAttribute(string name, string value)
1203 {
1204 if (String.IsNullOrEmpty(name))
1205 {
1206 throw new ArgumentNullException("name");
1207 }
1208 if (("ErrorCode" == name))
1209 {
1210 this.errorCodeField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
1211 this.errorCodeFieldSet = true;
1212 }
1213 if (("SubCode" == name))
1214 {
1215 this.subCodeField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
1216 this.subCodeFieldSet = true;
1217 }
1218 if (("File" == name))
1219 {
1220 this.fileField = value;
1221 this.fileFieldSet = true;
1222 }
1223 if (("URL" == name))
1224 {
1225 this.uRLField = value;
1226 this.uRLFieldSet = true;
1227 }
1228 }
1229 }
1230
1231 /// <summary>
1232 /// Custom HTTP Header definition for IIS resources such as WebSite and WebVirtualDir.
1233 /// </summary>
1234 [GeneratedCode("XsdGen", "4.0.0.0")]
1235 public class HttpHeader : ISchemaElement, ISetAttributes
1236 {
1237
1238 private string idField;
1239
1240 private bool idFieldSet;
1241
1242 private string nameField;
1243
1244 private bool nameFieldSet;
1245
1246 private string valueField;
1247
1248 private bool valueFieldSet;
1249
1250 private ISchemaElement parentElement;
1251
1252 /// <summary>
1253 /// Primary key for custom HTTP Header entry. This will default to the Name attribute.
1254 /// </summary>
1255 public string Id
1256 {
1257 get
1258 {
1259 return this.idField;
1260 }
1261 set
1262 {
1263 this.idFieldSet = true;
1264 this.idField = value;
1265 }
1266 }
1267
1268 /// <summary>
1269 /// Name of the custom HTTP Header.
1270 /// </summary>
1271 public string Name
1272 {
1273 get
1274 {
1275 return this.nameField;
1276 }
1277 set
1278 {
1279 this.nameFieldSet = true;
1280 this.nameField = value;
1281 }
1282 }
1283
1284 /// <summary>
1285 /// Value for the custom HTTP Header. This attribute can contain a formatted string that is processed at install time to insert the values of properties using [PropertyName] syntax. Also supported are environment variables, file installation paths, and component installation directories; see
1286 /// </summary>
1287 public string Value
1288 {
1289 get
1290 {
1291 return this.valueField;
1292 }
1293 set
1294 {
1295 this.valueFieldSet = true;
1296 this.valueField = value;
1297 }
1298 }
1299
1300 public virtual ISchemaElement ParentElement
1301 {
1302 get
1303 {
1304 return this.parentElement;
1305 }
1306 set
1307 {
1308 this.parentElement = value;
1309 }
1310 }
1311
1312 /// <summary>
1313 /// Processes this element and all child elements into an XmlWriter.
1314 /// </summary>
1315 public virtual void OutputXml(XmlWriter writer)
1316 {
1317 if ((null == writer))
1318 {
1319 throw new ArgumentNullException("writer");
1320 }
1321 writer.WriteStartElement("HttpHeader", "http://wixtoolset.org/schemas/v4/wxs/iis");
1322 if (this.idFieldSet)
1323 {
1324 writer.WriteAttributeString("Id", this.idField);
1325 }
1326 if (this.nameFieldSet)
1327 {
1328 writer.WriteAttributeString("Name", this.nameField);
1329 }
1330 if (this.valueFieldSet)
1331 {
1332 writer.WriteAttributeString("Value", this.valueField);
1333 }
1334 writer.WriteEndElement();
1335 }
1336
1337 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
1338 void ISetAttributes.SetAttribute(string name, string value)
1339 {
1340 if (String.IsNullOrEmpty(name))
1341 {
1342 throw new ArgumentNullException("name");
1343 }
1344 if (("Id" == name))
1345 {
1346 this.idField = value;
1347 this.idFieldSet = true;
1348 }
1349 if (("Name" == name))
1350 {
1351 this.nameField = value;
1352 this.nameFieldSet = true;
1353 }
1354 if (("Value" == name))
1355 {
1356 this.valueField = value;
1357 this.valueFieldSet = true;
1358 }
1359 }
1360 }
1361
1362 /// <summary>
1363 /// MimeMap definition for IIS resources.
1364 /// </summary>
1365 [GeneratedCode("XsdGen", "4.0.0.0")]
1366 public class MimeMap : ISchemaElement, ISetAttributes
1367 {
1368
1369 private string idField;
1370
1371 private bool idFieldSet;
1372
1373 private string typeField;
1374
1375 private bool typeFieldSet;
1376
1377 private string extensionField;
1378
1379 private bool extensionFieldSet;
1380
1381 private ISchemaElement parentElement;
1382
1383 /// <summary>
1384 /// Id for the MimeMap.
1385 /// </summary>
1386 public string Id
1387 {
1388 get
1389 {
1390 return this.idField;
1391 }
1392 set
1393 {
1394 this.idFieldSet = true;
1395 this.idField = value;
1396 }
1397 }
1398
1399 /// <summary>
1400 /// Mime-type covered by the MimeMap.
1401 /// </summary>
1402 public string Type
1403 {
1404 get
1405 {
1406 return this.typeField;
1407 }
1408 set
1409 {
1410 this.typeFieldSet = true;
1411 this.typeField = value;
1412 }
1413 }
1414
1415 /// <summary>
1416 /// Extension covered by the MimeMap. Must begin with a dot.
1417 /// </summary>
1418 public string Extension
1419 {
1420 get
1421 {
1422 return this.extensionField;
1423 }
1424 set
1425 {
1426 this.extensionFieldSet = true;
1427 this.extensionField = value;
1428 }
1429 }
1430
1431 public virtual ISchemaElement ParentElement
1432 {
1433 get
1434 {
1435 return this.parentElement;
1436 }
1437 set
1438 {
1439 this.parentElement = value;
1440 }
1441 }
1442
1443 /// <summary>
1444 /// Processes this element and all child elements into an XmlWriter.
1445 /// </summary>
1446 public virtual void OutputXml(XmlWriter writer)
1447 {
1448 if ((null == writer))
1449 {
1450 throw new ArgumentNullException("writer");
1451 }
1452 writer.WriteStartElement("MimeMap", "http://wixtoolset.org/schemas/v4/wxs/iis");
1453 if (this.idFieldSet)
1454 {
1455 writer.WriteAttributeString("Id", this.idField);
1456 }
1457 if (this.typeFieldSet)
1458 {
1459 writer.WriteAttributeString("Type", this.typeField);
1460 }
1461 if (this.extensionFieldSet)
1462 {
1463 writer.WriteAttributeString("Extension", this.extensionField);
1464 }
1465 writer.WriteEndElement();
1466 }
1467
1468 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
1469 void ISetAttributes.SetAttribute(string name, string value)
1470 {
1471 if (String.IsNullOrEmpty(name))
1472 {
1473 throw new ArgumentNullException("name");
1474 }
1475 if (("Id" == name))
1476 {
1477 this.idField = value;
1478 this.idFieldSet = true;
1479 }
1480 if (("Type" == name))
1481 {
1482 this.typeField = value;
1483 this.typeFieldSet = true;
1484 }
1485 if (("Extension" == name))
1486 {
1487 this.extensionField = value;
1488 this.extensionFieldSet = true;
1489 }
1490 }
1491 }
1492
1493 /// <summary>
1494 /// IIs Filter for a Component
1495 /// </summary>
1496 [GeneratedCode("XsdGen", "4.0.0.0")]
1497 public class WebFilter : ISchemaElement, ISetAttributes
1498 {
1499
1500 private string idField;
1501
1502 private bool idFieldSet;
1503
1504 private string nameField;
1505
1506 private bool nameFieldSet;
1507
1508 private string pathField;
1509
1510 private bool pathFieldSet;
1511
1512 private string webSiteField;
1513
1514 private bool webSiteFieldSet;
1515
1516 private string descriptionField;
1517
1518 private bool descriptionFieldSet;
1519
1520 private int flagsField;
1521
1522 private bool flagsFieldSet;
1523
1524 private string loadOrderField;
1525
1526 private bool loadOrderFieldSet;
1527
1528 private ISchemaElement parentElement;
1529
1530 /// <summary>
1531 /// The unique Id for the web filter.
1532 /// </summary>
1533 public string Id
1534 {
1535 get
1536 {
1537 return this.idField;
1538 }
1539 set
1540 {
1541 this.idFieldSet = true;
1542 this.idField = value;
1543 }
1544 }
1545
1546 /// <summary>
1547 /// The name of the filter to be used in IIS.
1548 /// </summary>
1549 public string Name
1550 {
1551 get
1552 {
1553 return this.nameField;
1554 }
1555 set
1556 {
1557 this.nameFieldSet = true;
1558 this.nameField = value;
1559 }
1560 }
1561
1562 /// <summary>
1563 /// The path of the filter executable file.
1564 /// This should usually be a value like '[!FileId]', where 'FileId' is the file identifier
1565 /// of the filter executable file.
1566 /// </summary>
1567 public string Path
1568 {
1569 get
1570 {
1571 return this.pathField;
1572 }
1573 set
1574 {
1575 this.pathFieldSet = true;
1576 this.pathField = value;
1577 }
1578 }
1579
1580 /// <summary>
1581 /// Specifies the parent website for this filter (if there is one).
1582 /// If this is a global filter, then this attribute should not be specified.
1583 /// </summary>
1584 public string WebSite
1585 {
1586 get
1587 {
1588 return this.webSiteField;
1589 }
1590 set
1591 {
1592 this.webSiteFieldSet = true;
1593 this.webSiteField = value;
1594 }
1595 }
1596
1597 /// <summary>
1598 /// Description of the filter.
1599 /// </summary>
1600 public string Description
1601 {
1602 get
1603 {
1604 return this.descriptionField;
1605 }
1606 set
1607 {
1608 this.descriptionFieldSet = true;
1609 this.descriptionField = value;
1610 }
1611 }
1612
1613 /// <summary>
1614 /// Sets the MD_FILTER_FLAGS metabase key for the filter. This must be an integer. See MSDN 'FilterFlags' documentation for more details.
1615 /// </summary>
1616 public int Flags
1617 {
1618 get
1619 {
1620 return this.flagsField;
1621 }
1622 set
1623 {
1624 this.flagsFieldSet = true;
1625 this.flagsField = value;
1626 }
1627 }
1628
1629 /// <summary>
1630 /// The legal values are "first", "last", or a number.
1631 /// If a number is specified, it must be greater than 0.
1632 /// </summary>
1633 public string LoadOrder
1634 {
1635 get
1636 {
1637 return this.loadOrderField;
1638 }
1639 set
1640 {
1641 this.loadOrderFieldSet = true;
1642 this.loadOrderField = value;
1643 }
1644 }
1645
1646 public virtual ISchemaElement ParentElement
1647 {
1648 get
1649 {
1650 return this.parentElement;
1651 }
1652 set
1653 {
1654 this.parentElement = value;
1655 }
1656 }
1657
1658 /// <summary>
1659 /// Processes this element and all child elements into an XmlWriter.
1660 /// </summary>
1661 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
1662 public virtual void OutputXml(XmlWriter writer)
1663 {
1664 if ((null == writer))
1665 {
1666 throw new ArgumentNullException("writer");
1667 }
1668 writer.WriteStartElement("WebFilter", "http://wixtoolset.org/schemas/v4/wxs/iis");
1669 if (this.idFieldSet)
1670 {
1671 writer.WriteAttributeString("Id", this.idField);
1672 }
1673 if (this.nameFieldSet)
1674 {
1675 writer.WriteAttributeString("Name", this.nameField);
1676 }
1677 if (this.pathFieldSet)
1678 {
1679 writer.WriteAttributeString("Path", this.pathField);
1680 }
1681 if (this.webSiteFieldSet)
1682 {
1683 writer.WriteAttributeString("WebSite", this.webSiteField);
1684 }
1685 if (this.descriptionFieldSet)
1686 {
1687 writer.WriteAttributeString("Description", this.descriptionField);
1688 }
1689 if (this.flagsFieldSet)
1690 {
1691 writer.WriteAttributeString("Flags", this.flagsField.ToString(CultureInfo.InvariantCulture));
1692 }
1693 if (this.loadOrderFieldSet)
1694 {
1695 writer.WriteAttributeString("LoadOrder", this.loadOrderField);
1696 }
1697 writer.WriteEndElement();
1698 }
1699
1700 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
1701 void ISetAttributes.SetAttribute(string name, string value)
1702 {
1703 if (String.IsNullOrEmpty(name))
1704 {
1705 throw new ArgumentNullException("name");
1706 }
1707 if (("Id" == name))
1708 {
1709 this.idField = value;
1710 this.idFieldSet = true;
1711 }
1712 if (("Name" == name))
1713 {
1714 this.nameField = value;
1715 this.nameFieldSet = true;
1716 }
1717 if (("Path" == name))
1718 {
1719 this.pathField = value;
1720 this.pathFieldSet = true;
1721 }
1722 if (("WebSite" == name))
1723 {
1724 this.webSiteField = value;
1725 this.webSiteFieldSet = true;
1726 }
1727 if (("Description" == name))
1728 {
1729 this.descriptionField = value;
1730 this.descriptionFieldSet = true;
1731 }
1732 if (("Flags" == name))
1733 {
1734 this.flagsField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
1735 this.flagsFieldSet = true;
1736 }
1737 if (("LoadOrder" == name))
1738 {
1739 this.loadOrderField = value;
1740 this.loadOrderFieldSet = true;
1741 }
1742 }
1743 }
1744
1745 /// <summary>
1746 /// Extension for WebApplication
1747 /// </summary>
1748 [GeneratedCode("XsdGen", "4.0.0.0")]
1749 public class WebApplicationExtension : ISchemaElement, ISetAttributes
1750 {
1751
1752 private string executableField;
1753
1754 private bool executableFieldSet;
1755
1756 private string extensionField;
1757
1758 private bool extensionFieldSet;
1759
1760 private string verbsField;
1761
1762 private bool verbsFieldSet;
1763
1764 private YesNoType scriptField;
1765
1766 private bool scriptFieldSet;
1767
1768 private YesNoType checkPathField;
1769
1770 private bool checkPathFieldSet;
1771
1772 private ISchemaElement parentElement;
1773
1774 /// <summary>
1775 /// usually a Property that resolves to short file name path
1776 /// </summary>
1777 public string Executable
1778 {
1779 get
1780 {
1781 return this.executableField;
1782 }
1783 set
1784 {
1785 this.executableFieldSet = true;
1786 this.executableField = value;
1787 }
1788 }
1789
1790 /// <summary>
1791 /// Extension being registered. Do not prefix with a '.' (e.g. you should use "html", not ".html"). To register for all extensions, use Extension="*". To register a wildcard application map (which handles all requests, even those for directories or files with no extension) omit the Extension attribute completely.
1792 /// </summary>
1793 public string Extension
1794 {
1795 get
1796 {
1797 return this.extensionField;
1798 }
1799 set
1800 {
1801 this.extensionFieldSet = true;
1802 this.extensionField = value;
1803 }
1804 }
1805
1806 public string Verbs
1807 {
1808 get
1809 {
1810 return this.verbsField;
1811 }
1812 set
1813 {
1814 this.verbsFieldSet = true;
1815 this.verbsField = value;
1816 }
1817 }
1818
1819 public YesNoType Script
1820 {
1821 get
1822 {
1823 return this.scriptField;
1824 }
1825 set
1826 {
1827 this.scriptFieldSet = true;
1828 this.scriptField = value;
1829 }
1830 }
1831
1832 public YesNoType CheckPath
1833 {
1834 get
1835 {
1836 return this.checkPathField;
1837 }
1838 set
1839 {
1840 this.checkPathFieldSet = true;
1841 this.checkPathField = value;
1842 }
1843 }
1844
1845 public virtual ISchemaElement ParentElement
1846 {
1847 get
1848 {
1849 return this.parentElement;
1850 }
1851 set
1852 {
1853 this.parentElement = value;
1854 }
1855 }
1856
1857 /// <summary>
1858 /// Processes this element and all child elements into an XmlWriter.
1859 /// </summary>
1860 public virtual void OutputXml(XmlWriter writer)
1861 {
1862 if ((null == writer))
1863 {
1864 throw new ArgumentNullException("writer");
1865 }
1866 writer.WriteStartElement("WebApplicationExtension", "http://wixtoolset.org/schemas/v4/wxs/iis");
1867 if (this.executableFieldSet)
1868 {
1869 writer.WriteAttributeString("Executable", this.executableField);
1870 }
1871 if (this.extensionFieldSet)
1872 {
1873 writer.WriteAttributeString("Extension", this.extensionField);
1874 }
1875 if (this.verbsFieldSet)
1876 {
1877 writer.WriteAttributeString("Verbs", this.verbsField);
1878 }
1879 if (this.scriptFieldSet)
1880 {
1881 if ((this.scriptField == YesNoType.no))
1882 {
1883 writer.WriteAttributeString("Script", "no");
1884 }
1885 if ((this.scriptField == YesNoType.yes))
1886 {
1887 writer.WriteAttributeString("Script", "yes");
1888 }
1889 }
1890 if (this.checkPathFieldSet)
1891 {
1892 if ((this.checkPathField == YesNoType.no))
1893 {
1894 writer.WriteAttributeString("CheckPath", "no");
1895 }
1896 if ((this.checkPathField == YesNoType.yes))
1897 {
1898 writer.WriteAttributeString("CheckPath", "yes");
1899 }
1900 }
1901 writer.WriteEndElement();
1902 }
1903
1904 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
1905 void ISetAttributes.SetAttribute(string name, string value)
1906 {
1907 if (String.IsNullOrEmpty(name))
1908 {
1909 throw new ArgumentNullException("name");
1910 }
1911 if (("Executable" == name))
1912 {
1913 this.executableField = value;
1914 this.executableFieldSet = true;
1915 }
1916 if (("Extension" == name))
1917 {
1918 this.extensionField = value;
1919 this.extensionFieldSet = true;
1920 }
1921 if (("Verbs" == name))
1922 {
1923 this.verbsField = value;
1924 this.verbsFieldSet = true;
1925 }
1926 if (("Script" == name))
1927 {
1928 this.scriptField = Enums.ParseYesNoType(value);
1929 this.scriptFieldSet = true;
1930 }
1931 if (("CheckPath" == name))
1932 {
1933 this.checkPathField = Enums.ParseYesNoType(value);
1934 this.checkPathFieldSet = true;
1935 }
1936 }
1937 }
1938
1939 /// <summary>
1940 /// IIS6 Application Pool
1941 /// </summary>
1942 [GeneratedCode("XsdGen", "4.0.0.0")]
1943 public class WebAppPool : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
1944 {
1945
1946 private ElementCollection children;
1947
1948 private string idField;
1949
1950 private bool idFieldSet;
1951
1952 private string nameField;
1953
1954 private bool nameFieldSet;
1955
1956 private string userField;
1957
1958 private bool userFieldSet;
1959
1960 private int recycleMinutesField;
1961
1962 private bool recycleMinutesFieldSet;
1963
1964 private int recycleRequestsField;
1965
1966 private bool recycleRequestsFieldSet;
1967
1968 private int virtualMemoryField;
1969
1970 private bool virtualMemoryFieldSet;
1971
1972 private int privateMemoryField;
1973
1974 private bool privateMemoryFieldSet;
1975
1976 private int idleTimeoutField;
1977
1978 private bool idleTimeoutFieldSet;
1979
1980 private int queueLimitField;
1981
1982 private bool queueLimitFieldSet;
1983
1984 private long maxCpuUsageField;
1985
1986 private bool maxCpuUsageFieldSet;
1987
1988 private int refreshCpuField;
1989
1990 private bool refreshCpuFieldSet;
1991
1992 private CpuActionType cpuActionField;
1993
1994 private bool cpuActionFieldSet;
1995
1996 private int maxWorkerProcessesField;
1997
1998 private bool maxWorkerProcessesFieldSet;
1999
2000 private IdentityType identityField;
2001
2002 private bool identityFieldSet;
2003
2004 private string managedPipelineModeField;
2005
2006 private bool managedPipelineModeFieldSet;
2007
2008 private string managedRuntimeVersionField;
2009
2010 private bool managedRuntimeVersionFieldSet;
2011
2012 private ISchemaElement parentElement;
2013
2014 public WebAppPool()
2015 {
2016 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
2017 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(RecycleTime)));
2018 this.children = childCollection0;
2019 }
2020
2021 public virtual IEnumerable Children
2022 {
2023 get
2024 {
2025 return this.children;
2026 }
2027 }
2028
2029 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
2030 public virtual IEnumerable this[System.Type childType]
2031 {
2032 get
2033 {
2034 return this.children.Filter(childType);
2035 }
2036 }
2037
2038 /// <summary>
2039 /// Id of the AppPool.
2040 /// </summary>
2041 public string Id
2042 {
2043 get
2044 {
2045 return this.idField;
2046 }
2047 set
2048 {
2049 this.idFieldSet = true;
2050 this.idField = value;
2051 }
2052 }
2053
2054 /// <summary>
2055 /// Name of the AppPool to be shown in IIs.
2056 /// </summary>
2057 public string Name
2058 {
2059 get
2060 {
2061 return this.nameField;
2062 }
2063 set
2064 {
2065 this.nameFieldSet = true;
2066 this.nameField = value;
2067 }
2068 }
2069
2070 /// <summary>
2071 /// User account to run the AppPool as. To use this, you must set the Identity attribute to 'other'.
2072 /// </summary>
2073 public string User
2074 {
2075 get
2076 {
2077 return this.userField;
2078 }
2079 set
2080 {
2081 this.userFieldSet = true;
2082 this.userField = value;
2083 }
2084 }
2085
2086 /// <summary>
2087 /// How often, in minutes, you want the AppPool to be recycled.
2088 /// </summary>
2089 public int RecycleMinutes
2090 {
2091 get
2092 {
2093 return this.recycleMinutesField;
2094 }
2095 set
2096 {
2097 this.recycleMinutesFieldSet = true;
2098 this.recycleMinutesField = value;
2099 }
2100 }
2101
2102 /// <summary>
2103 /// How often, in requests, you want the AppPool to be recycled.
2104 /// </summary>
2105 public int RecycleRequests
2106 {
2107 get
2108 {
2109 return this.recycleRequestsField;
2110 }
2111 set
2112 {
2113 this.recycleRequestsFieldSet = true;
2114 this.recycleRequestsField = value;
2115 }
2116 }
2117
2118 /// <summary>
2119 /// Specifies the amount of virtual memory (in KB) that a worker process can use before the worker process recycles. The maximum value supported for this attribute is 4,294,967 KB.
2120 /// </summary>
2121 public int VirtualMemory
2122 {
2123 get
2124 {
2125 return this.virtualMemoryField;
2126 }
2127 set
2128 {
2129 this.virtualMemoryFieldSet = true;
2130 this.virtualMemoryField = value;
2131 }
2132 }
2133
2134 /// <summary>
2135 /// Specifies the amount of private memory (in KB) that a worker process can use before the worker process recycles. The maximum value supported for this attribute is 4,294,967 KB.
2136 /// </summary>
2137 public int PrivateMemory
2138 {
2139 get
2140 {
2141 return this.privateMemoryField;
2142 }
2143 set
2144 {
2145 this.privateMemoryFieldSet = true;
2146 this.privateMemoryField = value;
2147 }
2148 }
2149
2150 /// <summary>
2151 /// Shutdown worker process after being idle for (time in minutes).
2152 /// </summary>
2153 public int IdleTimeout
2154 {
2155 get
2156 {
2157 return this.idleTimeoutField;
2158 }
2159 set
2160 {
2161 this.idleTimeoutFieldSet = true;
2162 this.idleTimeoutField = value;
2163 }
2164 }
2165
2166 /// <summary>
2167 /// Limit the kernel request queue (number of requests).
2168 /// </summary>
2169 public int QueueLimit
2170 {
2171 get
2172 {
2173 return this.queueLimitField;
2174 }
2175 set
2176 {
2177 this.queueLimitFieldSet = true;
2178 this.queueLimitField = value;
2179 }
2180 }
2181
2182 /// <summary>
2183 /// Maximum CPU usage (percent).
2184 /// </summary>
2185 public long MaxCpuUsage
2186 {
2187 get
2188 {
2189 return this.maxCpuUsageField;
2190 }
2191 set
2192 {
2193 this.maxCpuUsageFieldSet = true;
2194 this.maxCpuUsageField = value;
2195 }
2196 }
2197
2198 /// <summary>
2199 /// Refresh CPU usage numbers (in minutes).
2200 /// </summary>
2201 public int RefreshCpu
2202 {
2203 get
2204 {
2205 return this.refreshCpuField;
2206 }
2207 set
2208 {
2209 this.refreshCpuFieldSet = true;
2210 this.refreshCpuField = value;
2211 }
2212 }
2213
2214 /// <summary>
2215 /// Action taken when CPU exceeds maximum CPU use (as defined with MaxCpuUsage and RefreshCpu).
2216 /// </summary>
2217 public CpuActionType CpuAction
2218 {
2219 get
2220 {
2221 return this.cpuActionField;
2222 }
2223 set
2224 {
2225 this.cpuActionFieldSet = true;
2226 this.cpuActionField = value;
2227 }
2228 }
2229
2230 /// <summary>
2231 /// Maximum number of worker processes.
2232 /// </summary>
2233 public int MaxWorkerProcesses
2234 {
2235 get
2236 {
2237 return this.maxWorkerProcessesField;
2238 }
2239 set
2240 {
2241 this.maxWorkerProcessesFieldSet = true;
2242 this.maxWorkerProcessesField = value;
2243 }
2244 }
2245
2246 /// <summary>
2247 /// Identity you want the AppPool to run under (applicationPoolIdentity is only available on IIS7). Use the 'other' value in conjunction with the User attribute to specify non-standard user.
2248 /// </summary>
2249 public IdentityType Identity
2250 {
2251 get
2252 {
2253 return this.identityField;
2254 }
2255 set
2256 {
2257 this.identityFieldSet = true;
2258 this.identityField = value;
2259 }
2260 }
2261
2262 /// <summary>
2263 /// Specifies the request-processing mode that is used to process requests for managed content. Only available on IIS7, ignored on IIS6.
2264 /// See
2265 /// </summary>
2266 public string ManagedPipelineMode
2267 {
2268 get
2269 {
2270 return this.managedPipelineModeField;
2271 }
2272 set
2273 {
2274 this.managedPipelineModeFieldSet = true;
2275 this.managedPipelineModeField = value;
2276 }
2277 }
2278
2279 /// <summary>
2280 /// Specifies the .NET Framework version to be used by the application pool. Only available on IIS7, ignored on IIS6.
2281 /// See
2282 /// </summary>
2283 public string ManagedRuntimeVersion
2284 {
2285 get
2286 {
2287 return this.managedRuntimeVersionField;
2288 }
2289 set
2290 {
2291 this.managedRuntimeVersionFieldSet = true;
2292 this.managedRuntimeVersionField = value;
2293 }
2294 }
2295
2296 public virtual ISchemaElement ParentElement
2297 {
2298 get
2299 {
2300 return this.parentElement;
2301 }
2302 set
2303 {
2304 this.parentElement = value;
2305 }
2306 }
2307
2308 public virtual void AddChild(ISchemaElement child)
2309 {
2310 if ((null == child))
2311 {
2312 throw new ArgumentNullException("child");
2313 }
2314 this.children.AddElement(child);
2315 child.ParentElement = this;
2316 }
2317
2318 public virtual void RemoveChild(ISchemaElement child)
2319 {
2320 if ((null == child))
2321 {
2322 throw new ArgumentNullException("child");
2323 }
2324 this.children.RemoveElement(child);
2325 child.ParentElement = null;
2326 }
2327
2328 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
2329 ISchemaElement ICreateChildren.CreateChild(string childName)
2330 {
2331 if (String.IsNullOrEmpty(childName))
2332 {
2333 throw new ArgumentNullException("childName");
2334 }
2335 ISchemaElement childValue = null;
2336 if (("RecycleTime" == childName))
2337 {
2338 childValue = new RecycleTime();
2339 }
2340 if ((null == childValue))
2341 {
2342 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
2343 }
2344 return childValue;
2345 }
2346
2347 /// <summary>
2348 /// Parses a CpuActionType from a string.
2349 /// </summary>
2350 public static CpuActionType ParseCpuActionType(string value)
2351 {
2352 CpuActionType parsedValue;
2353 WebAppPool.TryParseCpuActionType(value, out parsedValue);
2354 return parsedValue;
2355 }
2356
2357 /// <summary>
2358 /// Tries to parse a CpuActionType from a string.
2359 /// </summary>
2360 public static bool TryParseCpuActionType(string value, out CpuActionType parsedValue)
2361 {
2362 parsedValue = CpuActionType.NotSet;
2363 if (string.IsNullOrEmpty(value))
2364 {
2365 return false;
2366 }
2367 if (("none" == value))
2368 {
2369 parsedValue = CpuActionType.none;
2370 }
2371 else
2372 {
2373 if (("shutdown" == value))
2374 {
2375 parsedValue = CpuActionType.shutdown;
2376 }
2377 else
2378 {
2379 parsedValue = CpuActionType.IllegalValue;
2380 return false;
2381 }
2382 }
2383 return true;
2384 }
2385
2386 /// <summary>
2387 /// Parses a IdentityType from a string.
2388 /// </summary>
2389 public static IdentityType ParseIdentityType(string value)
2390 {
2391 IdentityType parsedValue;
2392 WebAppPool.TryParseIdentityType(value, out parsedValue);
2393 return parsedValue;
2394 }
2395
2396 /// <summary>
2397 /// Tries to parse a IdentityType from a string.
2398 /// </summary>
2399 public static bool TryParseIdentityType(string value, out IdentityType parsedValue)
2400 {
2401 parsedValue = IdentityType.NotSet;
2402 if (string.IsNullOrEmpty(value))
2403 {
2404 return false;
2405 }
2406 if (("networkService" == value))
2407 {
2408 parsedValue = IdentityType.networkService;
2409 }
2410 else
2411 {
2412 if (("localService" == value))
2413 {
2414 parsedValue = IdentityType.localService;
2415 }
2416 else
2417 {
2418 if (("localSystem" == value))
2419 {
2420 parsedValue = IdentityType.localSystem;
2421 }
2422 else
2423 {
2424 if (("other" == value))
2425 {
2426 parsedValue = IdentityType.other;
2427 }
2428 else
2429 {
2430 if (("applicationPoolIdentity" == value))
2431 {
2432 parsedValue = IdentityType.applicationPoolIdentity;
2433 }
2434 else
2435 {
2436 parsedValue = IdentityType.IllegalValue;
2437 return false;
2438 }
2439 }
2440 }
2441 }
2442 }
2443 return true;
2444 }
2445
2446 /// <summary>
2447 /// Processes this element and all child elements into an XmlWriter.
2448 /// </summary>
2449 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
2450 public virtual void OutputXml(XmlWriter writer)
2451 {
2452 if ((null == writer))
2453 {
2454 throw new ArgumentNullException("writer");
2455 }
2456 writer.WriteStartElement("WebAppPool", "http://wixtoolset.org/schemas/v4/wxs/iis");
2457 if (this.idFieldSet)
2458 {
2459 writer.WriteAttributeString("Id", this.idField);
2460 }
2461 if (this.nameFieldSet)
2462 {
2463 writer.WriteAttributeString("Name", this.nameField);
2464 }
2465 if (this.userFieldSet)
2466 {
2467 writer.WriteAttributeString("User", this.userField);
2468 }
2469 if (this.recycleMinutesFieldSet)
2470 {
2471 writer.WriteAttributeString("RecycleMinutes", this.recycleMinutesField.ToString(CultureInfo.InvariantCulture));
2472 }
2473 if (this.recycleRequestsFieldSet)
2474 {
2475 writer.WriteAttributeString("RecycleRequests", this.recycleRequestsField.ToString(CultureInfo.InvariantCulture));
2476 }
2477 if (this.virtualMemoryFieldSet)
2478 {
2479 writer.WriteAttributeString("VirtualMemory", this.virtualMemoryField.ToString(CultureInfo.InvariantCulture));
2480 }
2481 if (this.privateMemoryFieldSet)
2482 {
2483 writer.WriteAttributeString("PrivateMemory", this.privateMemoryField.ToString(CultureInfo.InvariantCulture));
2484 }
2485 if (this.idleTimeoutFieldSet)
2486 {
2487 writer.WriteAttributeString("IdleTimeout", this.idleTimeoutField.ToString(CultureInfo.InvariantCulture));
2488 }
2489 if (this.queueLimitFieldSet)
2490 {
2491 writer.WriteAttributeString("QueueLimit", this.queueLimitField.ToString(CultureInfo.InvariantCulture));
2492 }
2493 if (this.maxCpuUsageFieldSet)
2494 {
2495 writer.WriteAttributeString("MaxCpuUsage", this.maxCpuUsageField.ToString(CultureInfo.InvariantCulture));
2496 }
2497 if (this.refreshCpuFieldSet)
2498 {
2499 writer.WriteAttributeString("RefreshCpu", this.refreshCpuField.ToString(CultureInfo.InvariantCulture));
2500 }
2501 if (this.cpuActionFieldSet)
2502 {
2503 if ((this.cpuActionField == CpuActionType.none))
2504 {
2505 writer.WriteAttributeString("CpuAction", "none");
2506 }
2507 if ((this.cpuActionField == CpuActionType.shutdown))
2508 {
2509 writer.WriteAttributeString("CpuAction", "shutdown");
2510 }
2511 }
2512 if (this.maxWorkerProcessesFieldSet)
2513 {
2514 writer.WriteAttributeString("MaxWorkerProcesses", this.maxWorkerProcessesField.ToString(CultureInfo.InvariantCulture));
2515 }
2516 if (this.identityFieldSet)
2517 {
2518 if ((this.identityField == IdentityType.networkService))
2519 {
2520 writer.WriteAttributeString("Identity", "networkService");
2521 }
2522 if ((this.identityField == IdentityType.localService))
2523 {
2524 writer.WriteAttributeString("Identity", "localService");
2525 }
2526 if ((this.identityField == IdentityType.localSystem))
2527 {
2528 writer.WriteAttributeString("Identity", "localSystem");
2529 }
2530 if ((this.identityField == IdentityType.other))
2531 {
2532 writer.WriteAttributeString("Identity", "other");
2533 }
2534 if ((this.identityField == IdentityType.applicationPoolIdentity))
2535 {
2536 writer.WriteAttributeString("Identity", "applicationPoolIdentity");
2537 }
2538 }
2539 if (this.managedPipelineModeFieldSet)
2540 {
2541 writer.WriteAttributeString("ManagedPipelineMode", this.managedPipelineModeField);
2542 }
2543 if (this.managedRuntimeVersionFieldSet)
2544 {
2545 writer.WriteAttributeString("ManagedRuntimeVersion", this.managedRuntimeVersionField);
2546 }
2547 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
2548 {
2549 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
2550 childElement.OutputXml(writer);
2551 }
2552 writer.WriteEndElement();
2553 }
2554
2555 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
2556 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
2557 void ISetAttributes.SetAttribute(string name, string value)
2558 {
2559 if (String.IsNullOrEmpty(name))
2560 {
2561 throw new ArgumentNullException("name");
2562 }
2563 if (("Id" == name))
2564 {
2565 this.idField = value;
2566 this.idFieldSet = true;
2567 }
2568 if (("Name" == name))
2569 {
2570 this.nameField = value;
2571 this.nameFieldSet = true;
2572 }
2573 if (("User" == name))
2574 {
2575 this.userField = value;
2576 this.userFieldSet = true;
2577 }
2578 if (("RecycleMinutes" == name))
2579 {
2580 this.recycleMinutesField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
2581 this.recycleMinutesFieldSet = true;
2582 }
2583 if (("RecycleRequests" == name))
2584 {
2585 this.recycleRequestsField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
2586 this.recycleRequestsFieldSet = true;
2587 }
2588 if (("VirtualMemory" == name))
2589 {
2590 this.virtualMemoryField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
2591 this.virtualMemoryFieldSet = true;
2592 }
2593 if (("PrivateMemory" == name))
2594 {
2595 this.privateMemoryField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
2596 this.privateMemoryFieldSet = true;
2597 }
2598 if (("IdleTimeout" == name))
2599 {
2600 this.idleTimeoutField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
2601 this.idleTimeoutFieldSet = true;
2602 }
2603 if (("QueueLimit" == name))
2604 {
2605 this.queueLimitField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
2606 this.queueLimitFieldSet = true;
2607 }
2608 if (("MaxCpuUsage" == name))
2609 {
2610 this.maxCpuUsageField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
2611 this.maxCpuUsageFieldSet = true;
2612 }
2613 if (("RefreshCpu" == name))
2614 {
2615 this.refreshCpuField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
2616 this.refreshCpuFieldSet = true;
2617 }
2618 if (("CpuAction" == name))
2619 {
2620 this.cpuActionField = WebAppPool.ParseCpuActionType(value);
2621 this.cpuActionFieldSet = true;
2622 }
2623 if (("MaxWorkerProcesses" == name))
2624 {
2625 this.maxWorkerProcessesField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
2626 this.maxWorkerProcessesFieldSet = true;
2627 }
2628 if (("Identity" == name))
2629 {
2630 this.identityField = WebAppPool.ParseIdentityType(value);
2631 this.identityFieldSet = true;
2632 }
2633 if (("ManagedPipelineMode" == name))
2634 {
2635 this.managedPipelineModeField = value;
2636 this.managedPipelineModeFieldSet = true;
2637 }
2638 if (("ManagedRuntimeVersion" == name))
2639 {
2640 this.managedRuntimeVersionField = value;
2641 this.managedRuntimeVersionFieldSet = true;
2642 }
2643 }
2644
2645 [GeneratedCode("XsdGen", "4.0.0.0")]
2646 public enum CpuActionType
2647 {
2648
2649 IllegalValue = int.MaxValue,
2650
2651 NotSet = -1,
2652
2653 none,
2654
2655 shutdown,
2656 }
2657
2658 [GeneratedCode("XsdGen", "4.0.0.0")]
2659 public enum IdentityType
2660 {
2661
2662 IllegalValue = int.MaxValue,
2663
2664 NotSet = -1,
2665
2666 networkService,
2667
2668 localService,
2669
2670 localSystem,
2671
2672 other,
2673
2674 applicationPoolIdentity,
2675 }
2676 }
2677
2678 /// <summary>
2679 /// IIS6 Application Pool Recycle Times on 24 hour clock.
2680 /// </summary>
2681 [GeneratedCode("XsdGen", "4.0.0.0")]
2682 public class RecycleTime : ISchemaElement, ISetAttributes
2683 {
2684
2685 private string valueField;
2686
2687 private bool valueFieldSet;
2688
2689 private ISchemaElement parentElement;
2690
2691 public string Value
2692 {
2693 get
2694 {
2695 return this.valueField;
2696 }
2697 set
2698 {
2699 this.valueFieldSet = true;
2700 this.valueField = value;
2701 }
2702 }
2703
2704 public virtual ISchemaElement ParentElement
2705 {
2706 get
2707 {
2708 return this.parentElement;
2709 }
2710 set
2711 {
2712 this.parentElement = value;
2713 }
2714 }
2715
2716 /// <summary>
2717 /// Processes this element and all child elements into an XmlWriter.
2718 /// </summary>
2719 public virtual void OutputXml(XmlWriter writer)
2720 {
2721 if ((null == writer))
2722 {
2723 throw new ArgumentNullException("writer");
2724 }
2725 writer.WriteStartElement("RecycleTime", "http://wixtoolset.org/schemas/v4/wxs/iis");
2726 if (this.valueFieldSet)
2727 {
2728 writer.WriteAttributeString("Value", this.valueField);
2729 }
2730 writer.WriteEndElement();
2731 }
2732
2733 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
2734 void ISetAttributes.SetAttribute(string name, string value)
2735 {
2736 if (String.IsNullOrEmpty(name))
2737 {
2738 throw new ArgumentNullException("name");
2739 }
2740 if (("Value" == name))
2741 {
2742 this.valueField = value;
2743 this.valueFieldSet = true;
2744 }
2745 }
2746 }
2747
2748 /// <summary>
2749 /// Used to install and uninstall certificates.
2750 /// </summary>
2751 [GeneratedCode("XsdGen", "4.0.0.0")]
2752 public class Certificate : ISchemaElement, ISetAttributes
2753 {
2754
2755 private string idField;
2756
2757 private bool idFieldSet;
2758
2759 private string nameField;
2760
2761 private bool nameFieldSet;
2762
2763 private StoreNameType storeNameField;
2764
2765 private bool storeNameFieldSet;
2766
2767 private StoreLocationType storeLocationField;
2768
2769 private bool storeLocationFieldSet;
2770
2771 private YesNoType overwriteField;
2772
2773 private bool overwriteFieldSet;
2774
2775 private YesNoType requestField;
2776
2777 private bool requestFieldSet;
2778
2779 private string binaryKeyField;
2780
2781 private bool binaryKeyFieldSet;
2782
2783 private string certificatePathField;
2784
2785 private bool certificatePathFieldSet;
2786
2787 private string pFXPasswordField;
2788
2789 private bool pFXPasswordFieldSet;
2790
2791 private ISchemaElement parentElement;
2792
2793 /// <summary>
2794 /// Unique identifier for this certificate in the installation package.
2795 /// </summary>
2796 public string Id
2797 {
2798 get
2799 {
2800 return this.idField;
2801 }
2802 set
2803 {
2804 this.idFieldSet = true;
2805 this.idField = value;
2806 }
2807 }
2808
2809 /// <summary>
2810 /// Name of the certificate that will be installed or uninstalled in the specified store.
2811 /// This attribute may be set via a formatted Property (e.g. [MyProperty]).
2812 /// </summary>
2813 public string Name
2814 {
2815 get
2816 {
2817 return this.nameField;
2818 }
2819 set
2820 {
2821 this.nameFieldSet = true;
2822 this.nameField = value;
2823 }
2824 }
2825
2826 public StoreNameType StoreName
2827 {
2828 get
2829 {
2830 return this.storeNameField;
2831 }
2832 set
2833 {
2834 this.storeNameFieldSet = true;
2835 this.storeNameField = value;
2836 }
2837 }
2838
2839 public StoreLocationType StoreLocation
2840 {
2841 get
2842 {
2843 return this.storeLocationField;
2844 }
2845 set
2846 {
2847 this.storeLocationFieldSet = true;
2848 this.storeLocationField = value;
2849 }
2850 }
2851
2852 public YesNoType Overwrite
2853 {
2854 get
2855 {
2856 return this.overwriteField;
2857 }
2858 set
2859 {
2860 this.overwriteFieldSet = true;
2861 this.overwriteField = value;
2862 }
2863 }
2864
2865 /// <summary>
2866 /// This attribute controls whether the CertificatePath attribute is a path to a certificate file (Request='no') or the
2867 /// certificate authority to request the certificate from (Request='yes').
2868 /// </summary>
2869 public YesNoType Request
2870 {
2871 get
2872 {
2873 return this.requestField;
2874 }
2875 set
2876 {
2877 this.requestFieldSet = true;
2878 this.requestField = value;
2879 }
2880 }
2881
2882 /// <summary>
2883 /// Reference to a Binary element that will store the certificate as a stream inside the package. This attribute cannot be specified with
2884 /// the CertificatePath attribute.
2885 /// </summary>
2886 public string BinaryKey
2887 {
2888 get
2889 {
2890 return this.binaryKeyField;
2891 }
2892 set
2893 {
2894 this.binaryKeyFieldSet = true;
2895 this.binaryKeyField = value;
2896 }
2897 }
2898
2899 /// <summary>
2900 /// If the Request attribute is "no" then this attribute is the path to the certificate file outside of the package.
2901 /// If the Request attribute is "yes" then this atribute is the certificate authority to request the certificate from.
2902 /// This attribute may be set via a formatted Property (e.g. [MyProperty]).
2903 /// </summary>
2904 public string CertificatePath
2905 {
2906 get
2907 {
2908 return this.certificatePathField;
2909 }
2910 set
2911 {
2912 this.certificatePathFieldSet = true;
2913 this.certificatePathField = value;
2914 }
2915 }
2916
2917 /// <summary>
2918 /// If the Binary stream or path to the file outside of the package is a password protected PFX file, the password for that
2919 /// PFX must be specified here. This attribute may be set via a formatted Property (e.g. [MyProperty]).
2920 /// </summary>
2921 [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")]
2922 public string PFXPassword
2923 {
2924 get
2925 {
2926 return this.pFXPasswordField;
2927 }
2928 set
2929 {
2930 this.pFXPasswordFieldSet = true;
2931 this.pFXPasswordField = value;
2932 }
2933 }
2934
2935 public virtual ISchemaElement ParentElement
2936 {
2937 get
2938 {
2939 return this.parentElement;
2940 }
2941 set
2942 {
2943 this.parentElement = value;
2944 }
2945 }
2946
2947 /// <summary>
2948 /// Parses a StoreNameType from a string.
2949 /// </summary>
2950 public static StoreNameType ParseStoreNameType(string value)
2951 {
2952 StoreNameType parsedValue;
2953 Certificate.TryParseStoreNameType(value, out parsedValue);
2954 return parsedValue;
2955 }
2956
2957 /// <summary>
2958 /// Tries to parse a StoreNameType from a string.
2959 /// </summary>
2960 public static bool TryParseStoreNameType(string value, out StoreNameType parsedValue)
2961 {
2962 parsedValue = StoreNameType.NotSet;
2963 if (string.IsNullOrEmpty(value))
2964 {
2965 return false;
2966 }
2967 if (("ca" == value))
2968 {
2969 parsedValue = StoreNameType.ca;
2970 }
2971 else
2972 {
2973 if (("my" == value))
2974 {
2975 parsedValue = StoreNameType.my;
2976 }
2977 else
2978 {
2979 if (("personal" == value))
2980 {
2981 parsedValue = StoreNameType.personal;
2982 }
2983 else
2984 {
2985 if (("request" == value))
2986 {
2987 parsedValue = StoreNameType.request;
2988 }
2989 else
2990 {
2991 if (("root" == value))
2992 {
2993 parsedValue = StoreNameType.root;
2994 }
2995 else
2996 {
2997 if (("otherPeople" == value))
2998 {
2999 parsedValue = StoreNameType.otherPeople;
3000 }
3001 else
3002 {
3003 if (("trustedPeople" == value))
3004 {
3005 parsedValue = StoreNameType.trustedPeople;
3006 }
3007 else
3008 {
3009 if (("trustedPublisher" == value))
3010 {
3011 parsedValue = StoreNameType.trustedPublisher;
3012 }
3013 else
3014 {
3015 parsedValue = StoreNameType.IllegalValue;
3016 return false;
3017 }
3018 }
3019 }
3020 }
3021 }
3022 }
3023 }
3024 }
3025 return true;
3026 }
3027
3028 /// <summary>
3029 /// Parses a StoreLocationType from a string.
3030 /// </summary>
3031 public static StoreLocationType ParseStoreLocationType(string value)
3032 {
3033 StoreLocationType parsedValue;
3034 Certificate.TryParseStoreLocationType(value, out parsedValue);
3035 return parsedValue;
3036 }
3037
3038 /// <summary>
3039 /// Tries to parse a StoreLocationType from a string.
3040 /// </summary>
3041 public static bool TryParseStoreLocationType(string value, out StoreLocationType parsedValue)
3042 {
3043 parsedValue = StoreLocationType.NotSet;
3044 if (string.IsNullOrEmpty(value))
3045 {
3046 return false;
3047 }
3048 if (("currentUser" == value))
3049 {
3050 parsedValue = StoreLocationType.currentUser;
3051 }
3052 else
3053 {
3054 if (("localMachine" == value))
3055 {
3056 parsedValue = StoreLocationType.localMachine;
3057 }
3058 else
3059 {
3060 parsedValue = StoreLocationType.IllegalValue;
3061 return false;
3062 }
3063 }
3064 return true;
3065 }
3066
3067 /// <summary>
3068 /// Processes this element and all child elements into an XmlWriter.
3069 /// </summary>
3070 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
3071 public virtual void OutputXml(XmlWriter writer)
3072 {
3073 if ((null == writer))
3074 {
3075 throw new ArgumentNullException("writer");
3076 }
3077 writer.WriteStartElement("Certificate", "http://wixtoolset.org/schemas/v4/wxs/iis");
3078 if (this.idFieldSet)
3079 {
3080 writer.WriteAttributeString("Id", this.idField);
3081 }
3082 if (this.nameFieldSet)
3083 {
3084 writer.WriteAttributeString("Name", this.nameField);
3085 }
3086 if (this.storeNameFieldSet)
3087 {
3088 if ((this.storeNameField == StoreNameType.ca))
3089 {
3090 writer.WriteAttributeString("StoreName", "ca");
3091 }
3092 if ((this.storeNameField == StoreNameType.my))
3093 {
3094 writer.WriteAttributeString("StoreName", "my");
3095 }
3096 if ((this.storeNameField == StoreNameType.personal))
3097 {
3098 writer.WriteAttributeString("StoreName", "personal");
3099 }
3100 if ((this.storeNameField == StoreNameType.request))
3101 {
3102 writer.WriteAttributeString("StoreName", "request");
3103 }
3104 if ((this.storeNameField == StoreNameType.root))
3105 {
3106 writer.WriteAttributeString("StoreName", "root");
3107 }
3108 if ((this.storeNameField == StoreNameType.otherPeople))
3109 {
3110 writer.WriteAttributeString("StoreName", "otherPeople");
3111 }
3112 if ((this.storeNameField == StoreNameType.trustedPeople))
3113 {
3114 writer.WriteAttributeString("StoreName", "trustedPeople");
3115 }
3116 if ((this.storeNameField == StoreNameType.trustedPublisher))
3117 {
3118 writer.WriteAttributeString("StoreName", "trustedPublisher");
3119 }
3120 }
3121 if (this.storeLocationFieldSet)
3122 {
3123 if ((this.storeLocationField == StoreLocationType.currentUser))
3124 {
3125 writer.WriteAttributeString("StoreLocation", "currentUser");
3126 }
3127 if ((this.storeLocationField == StoreLocationType.localMachine))
3128 {
3129 writer.WriteAttributeString("StoreLocation", "localMachine");
3130 }
3131 }
3132 if (this.overwriteFieldSet)
3133 {
3134 if ((this.overwriteField == YesNoType.no))
3135 {
3136 writer.WriteAttributeString("Overwrite", "no");
3137 }
3138 if ((this.overwriteField == YesNoType.yes))
3139 {
3140 writer.WriteAttributeString("Overwrite", "yes");
3141 }
3142 }
3143 if (this.requestFieldSet)
3144 {
3145 if ((this.requestField == YesNoType.no))
3146 {
3147 writer.WriteAttributeString("Request", "no");
3148 }
3149 if ((this.requestField == YesNoType.yes))
3150 {
3151 writer.WriteAttributeString("Request", "yes");
3152 }
3153 }
3154 if (this.binaryKeyFieldSet)
3155 {
3156 writer.WriteAttributeString("BinaryKey", this.binaryKeyField);
3157 }
3158 if (this.certificatePathFieldSet)
3159 {
3160 writer.WriteAttributeString("CertificatePath", this.certificatePathField);
3161 }
3162 if (this.pFXPasswordFieldSet)
3163 {
3164 writer.WriteAttributeString("PFXPassword", this.pFXPasswordField);
3165 }
3166 writer.WriteEndElement();
3167 }
3168
3169 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
3170 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
3171 void ISetAttributes.SetAttribute(string name, string value)
3172 {
3173 if (String.IsNullOrEmpty(name))
3174 {
3175 throw new ArgumentNullException("name");
3176 }
3177 if (("Id" == name))
3178 {
3179 this.idField = value;
3180 this.idFieldSet = true;
3181 }
3182 if (("Name" == name))
3183 {
3184 this.nameField = value;
3185 this.nameFieldSet = true;
3186 }
3187 if (("StoreName" == name))
3188 {
3189 this.storeNameField = Certificate.ParseStoreNameType(value);
3190 this.storeNameFieldSet = true;
3191 }
3192 if (("StoreLocation" == name))
3193 {
3194 this.storeLocationField = Certificate.ParseStoreLocationType(value);
3195 this.storeLocationFieldSet = true;
3196 }
3197 if (("Overwrite" == name))
3198 {
3199 this.overwriteField = Enums.ParseYesNoType(value);
3200 this.overwriteFieldSet = true;
3201 }
3202 if (("Request" == name))
3203 {
3204 this.requestField = Enums.ParseYesNoType(value);
3205 this.requestFieldSet = true;
3206 }
3207 if (("BinaryKey" == name))
3208 {
3209 this.binaryKeyField = value;
3210 this.binaryKeyFieldSet = true;
3211 }
3212 if (("CertificatePath" == name))
3213 {
3214 this.certificatePathField = value;
3215 this.certificatePathFieldSet = true;
3216 }
3217 if (("PFXPassword" == name))
3218 {
3219 this.pFXPasswordField = value;
3220 this.pFXPasswordFieldSet = true;
3221 }
3222 }
3223
3224 [GeneratedCode("XsdGen", "4.0.0.0")]
3225 public enum StoreNameType
3226 {
3227
3228 IllegalValue = int.MaxValue,
3229
3230 NotSet = -1,
3231
3232 /// <summary>
3233 /// Contains the certificates of certificate authorities that the user trusts to issue certificates to others. Certificates in these stores are normally supplied with the operating system or by the user's network administrator.
3234 /// </summary>
3235 ca,
3236
3237 /// <summary>
3238 /// Use the "personal" value instead.
3239 /// </summary>
3240 my,
3241
3242 /// <summary>
3243 /// Contains personal certificates. These certificates will usually have an associated private key. This store is often
3244 /// referred to as the "MY" certificate store.
3245 /// </summary>
3246 personal,
3247
3248 request,
3249
3250 /// <summary>
3251 /// Contains the certificates of certificate authorities that the user trusts to issue certificates to others. Certificates in these stores are normally supplied with the operating system or by the user's network administrator. Certificates in this store are typically self-signed.
3252 /// </summary>
3253 root,
3254
3255 /// <summary>
3256 /// Contains the certificates of those that the user normally sends enveloped messages to or receives signed messages from.
3257 /// See
3258 /// </summary>
3259 otherPeople,
3260
3261 /// <summary>
3262 /// Contains the certificates of those directly trusted people and resources.
3263 /// See
3264 /// </summary>
3265 trustedPeople,
3266
3267 /// <summary>
3268 /// Contains the certificates of those publishers who are trusted.
3269 /// See
3270 /// </summary>
3271 trustedPublisher,
3272 }
3273
3274 [GeneratedCode("XsdGen", "4.0.0.0")]
3275 public enum StoreLocationType
3276 {
3277
3278 IllegalValue = int.MaxValue,
3279
3280 NotSet = -1,
3281
3282 currentUser,
3283
3284 localMachine,
3285 }
3286 }
3287
3288 /// <summary>
3289 /// Associates a certificate with the parent WebSite. The Certificate element should be
3290 /// in the same Component as the parent WebSite.
3291 /// </summary>
3292 [GeneratedCode("XsdGen", "4.0.0.0")]
3293 public class CertificateRef : ISchemaElement, ISetAttributes
3294 {
3295
3296 private string idField;
3297
3298 private bool idFieldSet;
3299
3300 private ISchemaElement parentElement;
3301
3302 /// <summary>
3303 /// The identifier of the referenced Certificate.
3304 /// </summary>
3305 public string Id
3306 {
3307 get
3308 {
3309 return this.idField;
3310 }
3311 set
3312 {
3313 this.idFieldSet = true;
3314 this.idField = value;
3315 }
3316 }
3317
3318 public virtual ISchemaElement ParentElement
3319 {
3320 get
3321 {
3322 return this.parentElement;
3323 }
3324 set
3325 {
3326 this.parentElement = value;
3327 }
3328 }
3329
3330 /// <summary>
3331 /// Processes this element and all child elements into an XmlWriter.
3332 /// </summary>
3333 public virtual void OutputXml(XmlWriter writer)
3334 {
3335 if ((null == writer))
3336 {
3337 throw new ArgumentNullException("writer");
3338 }
3339 writer.WriteStartElement("CertificateRef", "http://wixtoolset.org/schemas/v4/wxs/iis");
3340 if (this.idFieldSet)
3341 {
3342 writer.WriteAttributeString("Id", this.idField);
3343 }
3344 writer.WriteEndElement();
3345 }
3346
3347 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
3348 void ISetAttributes.SetAttribute(string name, string value)
3349 {
3350 if (String.IsNullOrEmpty(name))
3351 {
3352 throw new ArgumentNullException("name");
3353 }
3354 if (("Id" == name))
3355 {
3356 this.idField = value;
3357 this.idFieldSet = true;
3358 }
3359 }
3360 }
3361
3362 /// <summary>
3363 /// IIS Properties
3364 /// </summary>
3365 [GeneratedCode("XsdGen", "4.0.0.0")]
3366 public class WebProperty : ISchemaElement, ISetAttributes
3367 {
3368
3369 private IdType idField;
3370
3371 private bool idFieldSet;
3372
3373 private string valueField;
3374
3375 private bool valueFieldSet;
3376
3377 private ISchemaElement parentElement;
3378
3379 public IdType Id
3380 {
3381 get
3382 {
3383 return this.idField;
3384 }
3385 set
3386 {
3387 this.idFieldSet = true;
3388 this.idField = value;
3389 }
3390 }
3391
3392 /// <summary>
3393 /// The value to be used for the WebProperty specified in the Id attribute. See
3394 /// the remarks section for information on acceptable values for each Id.
3395 /// </summary>
3396 public string Value
3397 {
3398 get
3399 {
3400 return this.valueField;
3401 }
3402 set
3403 {
3404 this.valueFieldSet = true;
3405 this.valueField = value;
3406 }
3407 }
3408
3409 public virtual ISchemaElement ParentElement
3410 {
3411 get
3412 {
3413 return this.parentElement;
3414 }
3415 set
3416 {
3417 this.parentElement = value;
3418 }
3419 }
3420
3421 /// <summary>
3422 /// Parses a IdType from a string.
3423 /// </summary>
3424 public static IdType ParseIdType(string value)
3425 {
3426 IdType parsedValue;
3427 WebProperty.TryParseIdType(value, out parsedValue);
3428 return parsedValue;
3429 }
3430
3431 /// <summary>
3432 /// Tries to parse a IdType from a string.
3433 /// </summary>
3434 public static bool TryParseIdType(string value, out IdType parsedValue)
3435 {
3436 parsedValue = IdType.NotSet;
3437 if (string.IsNullOrEmpty(value))
3438 {
3439 return false;
3440 }
3441 if (("ETagChangeNumber" == value))
3442 {
3443 parsedValue = IdType.ETagChangeNumber;
3444 }
3445 else
3446 {
3447 if (("IIs5IsolationMode" == value))
3448 {
3449 parsedValue = IdType.IIs5IsolationMode;
3450 }
3451 else
3452 {
3453 if (("MaxGlobalBandwidth" == value))
3454 {
3455 parsedValue = IdType.MaxGlobalBandwidth;
3456 }
3457 else
3458 {
3459 if (("LogInUTF8" == value))
3460 {
3461 parsedValue = IdType.LogInUTF8;
3462 }
3463 else
3464 {
3465 parsedValue = IdType.IllegalValue;
3466 return false;
3467 }
3468 }
3469 }
3470 }
3471 return true;
3472 }
3473
3474 /// <summary>
3475 /// Processes this element and all child elements into an XmlWriter.
3476 /// </summary>
3477 public virtual void OutputXml(XmlWriter writer)
3478 {
3479 if ((null == writer))
3480 {
3481 throw new ArgumentNullException("writer");
3482 }
3483 writer.WriteStartElement("WebProperty", "http://wixtoolset.org/schemas/v4/wxs/iis");
3484 if (this.idFieldSet)
3485 {
3486 if ((this.idField == IdType.ETagChangeNumber))
3487 {
3488 writer.WriteAttributeString("Id", "ETagChangeNumber");
3489 }
3490 if ((this.idField == IdType.IIs5IsolationMode))
3491 {
3492 writer.WriteAttributeString("Id", "IIs5IsolationMode");
3493 }
3494 if ((this.idField == IdType.MaxGlobalBandwidth))
3495 {
3496 writer.WriteAttributeString("Id", "MaxGlobalBandwidth");
3497 }
3498 if ((this.idField == IdType.LogInUTF8))
3499 {
3500 writer.WriteAttributeString("Id", "LogInUTF8");
3501 }
3502 }
3503 if (this.valueFieldSet)
3504 {
3505 writer.WriteAttributeString("Value", this.valueField);
3506 }
3507 writer.WriteEndElement();
3508 }
3509
3510 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
3511 void ISetAttributes.SetAttribute(string name, string value)
3512 {
3513 if (String.IsNullOrEmpty(name))
3514 {
3515 throw new ArgumentNullException("name");
3516 }
3517 if (("Id" == name))
3518 {
3519 this.idField = WebProperty.ParseIdType(value);
3520 this.idFieldSet = true;
3521 }
3522 if (("Value" == name))
3523 {
3524 this.valueField = value;
3525 this.valueFieldSet = true;
3526 }
3527 }
3528
3529 [GeneratedCode("XsdGen", "4.0.0.0")]
3530 public enum IdType
3531 {
3532
3533 IllegalValue = int.MaxValue,
3534
3535 NotSet = -1,
3536
3537 ETagChangeNumber,
3538
3539 IIs5IsolationMode,
3540
3541 MaxGlobalBandwidth,
3542
3543 LogInUTF8,
3544 }
3545 }
3546
3547 /// <summary>
3548 /// Defines properties for a web application. These properties can be used for more than one application defined in a web site or vroot, by defining this element in a common location and referring to it by setting the WebApplication attribute of the WebSite and WebVirtualDir elements.
3549 /// </summary>
3550 [GeneratedCode("XsdGen", "4.0.0.0")]
3551 public class WebApplication : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
3552 {
3553
3554 private ElementCollection children;
3555
3556 private string idField;
3557
3558 private bool idFieldSet;
3559
3560 private string nameField;
3561
3562 private bool nameFieldSet;
3563
3564 private IsolationType isolationField;
3565
3566 private bool isolationFieldSet;
3567
3568 private YesNoDefaultType allowSessionsField;
3569
3570 private bool allowSessionsFieldSet;
3571
3572 private int sessionTimeoutField;
3573
3574 private bool sessionTimeoutFieldSet;
3575
3576 private YesNoDefaultType bufferField;
3577
3578 private bool bufferFieldSet;
3579
3580 private YesNoDefaultType parentPathsField;
3581
3582 private bool parentPathsFieldSet;
3583
3584 private DefaultScriptType defaultScriptField;
3585
3586 private bool defaultScriptFieldSet;
3587
3588 private int scriptTimeoutField;
3589
3590 private bool scriptTimeoutFieldSet;
3591
3592 private YesNoDefaultType serverDebuggingField;
3593
3594 private bool serverDebuggingFieldSet;
3595
3596 private YesNoDefaultType clientDebuggingField;
3597
3598 private bool clientDebuggingFieldSet;
3599
3600 private string webAppPoolField;
3601
3602 private bool webAppPoolFieldSet;
3603
3604 private ISchemaElement parentElement;
3605
3606 public WebApplication()
3607 {
3608 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence);
3609 childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(WebApplicationExtension)));
3610 this.children = childCollection0;
3611 }
3612
3613 public virtual IEnumerable Children
3614 {
3615 get
3616 {
3617 return this.children;
3618 }
3619 }
3620
3621 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
3622 public virtual IEnumerable this[System.Type childType]
3623 {
3624 get
3625 {
3626 return this.children.Filter(childType);
3627 }
3628 }
3629
3630 public string Id
3631 {
3632 get
3633 {
3634 return this.idField;
3635 }
3636 set
3637 {
3638 this.idFieldSet = true;
3639 this.idField = value;
3640 }
3641 }
3642
3643 /// <summary>
3644 /// Sets the name of this application.
3645 /// </summary>
3646 public string Name
3647 {
3648 get
3649 {
3650 return this.nameField;
3651 }
3652 set
3653 {
3654 this.nameFieldSet = true;
3655 this.nameField = value;
3656 }
3657 }
3658
3659 /// <summary>
3660 /// Sets the application isolation level for this application for pre-IIS 6 applications.
3661 /// </summary>
3662 public IsolationType Isolation
3663 {
3664 get
3665 {
3666 return this.isolationField;
3667 }
3668 set
3669 {
3670 this.isolationFieldSet = true;
3671 this.isolationField = value;
3672 }
3673 }
3674
3675 /// <summary>
3676 /// Sets the Enable Session State option. When enabled, you can set the session timeout using the SessionTimeout attribute.
3677 /// </summary>
3678 public YesNoDefaultType AllowSessions
3679 {
3680 get
3681 {
3682 return this.allowSessionsField;
3683 }
3684 set
3685 {
3686 this.allowSessionsFieldSet = true;
3687 this.allowSessionsField = value;
3688 }
3689 }
3690
3691 /// <summary>
3692 /// Sets the timeout value for sessions in minutes.
3693 /// </summary>
3694 public int SessionTimeout
3695 {
3696 get
3697 {
3698 return this.sessionTimeoutField;
3699 }
3700 set
3701 {
3702 this.sessionTimeoutFieldSet = true;
3703 this.sessionTimeoutField = value;
3704 }
3705 }
3706
3707 /// <summary>
3708 /// Sets the option that enables response buffering in the application, which allows ASP script to set response headers anywhere in the script.
3709 /// </summary>
3710 public YesNoDefaultType Buffer
3711 {
3712 get
3713 {
3714 return this.bufferField;
3715 }
3716 set
3717 {
3718 this.bufferFieldSet = true;
3719 this.bufferField = value;
3720 }
3721 }
3722
3723 /// <summary>
3724 /// Sets the parent paths option, which allows a client to use relative paths to reach parent directories from this application.
3725 /// </summary>
3726 public YesNoDefaultType ParentPaths
3727 {
3728 get
3729 {
3730 return this.parentPathsField;
3731 }
3732 set
3733 {
3734 this.parentPathsFieldSet = true;
3735 this.parentPathsField = value;
3736 }
3737 }
3738
3739 /// <summary>
3740 /// Sets the default script language for the site.
3741 /// </summary>
3742 public DefaultScriptType DefaultScript
3743 {
3744 get
3745 {
3746 return this.defaultScriptField;
3747 }
3748 set
3749 {
3750 this.defaultScriptFieldSet = true;
3751 this.defaultScriptField = value;
3752 }
3753 }
3754
3755 /// <summary>
3756 /// Sets the timeout value in seconds for executing ASP scripts.
3757 /// </summary>
3758 public int ScriptTimeout
3759 {
3760 get
3761 {
3762 return this.scriptTimeoutField;
3763 }
3764 set
3765 {
3766 this.scriptTimeoutFieldSet = true;
3767 this.scriptTimeoutField = value;
3768 }
3769 }
3770
3771 /// <summary>
3772 /// Enable ASP server-side script debugging.
3773 /// </summary>
3774 public YesNoDefaultType ServerDebugging
3775 {
3776 get
3777 {
3778 return this.serverDebuggingField;
3779 }
3780 set
3781 {
3782 this.serverDebuggingFieldSet = true;
3783 this.serverDebuggingField = value;
3784 }
3785 }
3786
3787 /// <summary>
3788 /// Enable ASP client-side script debugging.
3789 /// </summary>
3790 public YesNoDefaultType ClientDebugging
3791 {
3792 get
3793 {
3794 return this.clientDebuggingField;
3795 }
3796 set
3797 {
3798 this.clientDebuggingFieldSet = true;
3799 this.clientDebuggingField = value;
3800 }
3801 }
3802
3803 /// <summary>
3804 /// References the Id attribute of a WebAppPool element to use as the application pool for this application in IIS 6 applications.
3805 /// </summary>
3806 public string WebAppPool
3807 {
3808 get
3809 {
3810 return this.webAppPoolField;
3811 }
3812 set
3813 {
3814 this.webAppPoolFieldSet = true;
3815 this.webAppPoolField = value;
3816 }
3817 }
3818
3819 public virtual ISchemaElement ParentElement
3820 {
3821 get
3822 {
3823 return this.parentElement;
3824 }
3825 set
3826 {
3827 this.parentElement = value;
3828 }
3829 }
3830
3831 public virtual void AddChild(ISchemaElement child)
3832 {
3833 if ((null == child))
3834 {
3835 throw new ArgumentNullException("child");
3836 }
3837 this.children.AddElement(child);
3838 child.ParentElement = this;
3839 }
3840
3841 public virtual void RemoveChild(ISchemaElement child)
3842 {
3843 if ((null == child))
3844 {
3845 throw new ArgumentNullException("child");
3846 }
3847 this.children.RemoveElement(child);
3848 child.ParentElement = null;
3849 }
3850
3851 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
3852 ISchemaElement ICreateChildren.CreateChild(string childName)
3853 {
3854 if (String.IsNullOrEmpty(childName))
3855 {
3856 throw new ArgumentNullException("childName");
3857 }
3858 ISchemaElement childValue = null;
3859 if (("WebApplicationExtension" == childName))
3860 {
3861 childValue = new WebApplicationExtension();
3862 }
3863 if ((null == childValue))
3864 {
3865 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
3866 }
3867 return childValue;
3868 }
3869
3870 /// <summary>
3871 /// Parses a IsolationType from a string.
3872 /// </summary>
3873 public static IsolationType ParseIsolationType(string value)
3874 {
3875 IsolationType parsedValue;
3876 WebApplication.TryParseIsolationType(value, out parsedValue);
3877 return parsedValue;
3878 }
3879
3880 /// <summary>
3881 /// Tries to parse a IsolationType from a string.
3882 /// </summary>
3883 public static bool TryParseIsolationType(string value, out IsolationType parsedValue)
3884 {
3885 parsedValue = IsolationType.NotSet;
3886 if (string.IsNullOrEmpty(value))
3887 {
3888 return false;
3889 }
3890 if (("low" == value))
3891 {
3892 parsedValue = IsolationType.low;
3893 }
3894 else
3895 {
3896 if (("medium" == value))
3897 {
3898 parsedValue = IsolationType.medium;
3899 }
3900 else
3901 {
3902 if (("high" == value))
3903 {
3904 parsedValue = IsolationType.high;
3905 }
3906 else
3907 {
3908 parsedValue = IsolationType.IllegalValue;
3909 return false;
3910 }
3911 }
3912 }
3913 return true;
3914 }
3915
3916 /// <summary>
3917 /// Parses a DefaultScriptType from a string.
3918 /// </summary>
3919 public static DefaultScriptType ParseDefaultScriptType(string value)
3920 {
3921 DefaultScriptType parsedValue;
3922 WebApplication.TryParseDefaultScriptType(value, out parsedValue);
3923 return parsedValue;
3924 }
3925
3926 /// <summary>
3927 /// Tries to parse a DefaultScriptType from a string.
3928 /// </summary>
3929 public static bool TryParseDefaultScriptType(string value, out DefaultScriptType parsedValue)
3930 {
3931 parsedValue = DefaultScriptType.NotSet;
3932 if (string.IsNullOrEmpty(value))
3933 {
3934 return false;
3935 }
3936 if (("VBScript" == value))
3937 {
3938 parsedValue = DefaultScriptType.VBScript;
3939 }
3940 else
3941 {
3942 if (("JScript" == value))
3943 {
3944 parsedValue = DefaultScriptType.JScript;
3945 }
3946 else
3947 {
3948 parsedValue = DefaultScriptType.IllegalValue;
3949 return false;
3950 }
3951 }
3952 return true;
3953 }
3954
3955 /// <summary>
3956 /// Processes this element and all child elements into an XmlWriter.
3957 /// </summary>
3958 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
3959 public virtual void OutputXml(XmlWriter writer)
3960 {
3961 if ((null == writer))
3962 {
3963 throw new ArgumentNullException("writer");
3964 }
3965 writer.WriteStartElement("WebApplication", "http://wixtoolset.org/schemas/v4/wxs/iis");
3966 if (this.idFieldSet)
3967 {
3968 writer.WriteAttributeString("Id", this.idField);
3969 }
3970 if (this.nameFieldSet)
3971 {
3972 writer.WriteAttributeString("Name", this.nameField);
3973 }
3974 if (this.isolationFieldSet)
3975 {
3976 if ((this.isolationField == IsolationType.low))
3977 {
3978 writer.WriteAttributeString("Isolation", "low");
3979 }
3980 if ((this.isolationField == IsolationType.medium))
3981 {
3982 writer.WriteAttributeString("Isolation", "medium");
3983 }
3984 if ((this.isolationField == IsolationType.high))
3985 {
3986 writer.WriteAttributeString("Isolation", "high");
3987 }
3988 }
3989 if (this.allowSessionsFieldSet)
3990 {
3991 if ((this.allowSessionsField == YesNoDefaultType.@default))
3992 {
3993 writer.WriteAttributeString("AllowSessions", "default");
3994 }
3995 if ((this.allowSessionsField == YesNoDefaultType.no))
3996 {
3997 writer.WriteAttributeString("AllowSessions", "no");
3998 }
3999 if ((this.allowSessionsField == YesNoDefaultType.yes))
4000 {
4001 writer.WriteAttributeString("AllowSessions", "yes");
4002 }
4003 }
4004 if (this.sessionTimeoutFieldSet)
4005 {
4006 writer.WriteAttributeString("SessionTimeout", this.sessionTimeoutField.ToString(CultureInfo.InvariantCulture));
4007 }
4008 if (this.bufferFieldSet)
4009 {
4010 if ((this.bufferField == YesNoDefaultType.@default))
4011 {
4012 writer.WriteAttributeString("Buffer", "default");
4013 }
4014 if ((this.bufferField == YesNoDefaultType.no))
4015 {
4016 writer.WriteAttributeString("Buffer", "no");
4017 }
4018 if ((this.bufferField == YesNoDefaultType.yes))
4019 {
4020 writer.WriteAttributeString("Buffer", "yes");
4021 }
4022 }
4023 if (this.parentPathsFieldSet)
4024 {
4025 if ((this.parentPathsField == YesNoDefaultType.@default))
4026 {
4027 writer.WriteAttributeString("ParentPaths", "default");
4028 }
4029 if ((this.parentPathsField == YesNoDefaultType.no))
4030 {
4031 writer.WriteAttributeString("ParentPaths", "no");
4032 }
4033 if ((this.parentPathsField == YesNoDefaultType.yes))
4034 {
4035 writer.WriteAttributeString("ParentPaths", "yes");
4036 }
4037 }
4038 if (this.defaultScriptFieldSet)
4039 {
4040 if ((this.defaultScriptField == DefaultScriptType.VBScript))
4041 {
4042 writer.WriteAttributeString("DefaultScript", "VBScript");
4043 }
4044 if ((this.defaultScriptField == DefaultScriptType.JScript))
4045 {
4046 writer.WriteAttributeString("DefaultScript", "JScript");
4047 }
4048 }
4049 if (this.scriptTimeoutFieldSet)
4050 {
4051 writer.WriteAttributeString("ScriptTimeout", this.scriptTimeoutField.ToString(CultureInfo.InvariantCulture));
4052 }
4053 if (this.serverDebuggingFieldSet)
4054 {
4055 if ((this.serverDebuggingField == YesNoDefaultType.@default))
4056 {
4057 writer.WriteAttributeString("ServerDebugging", "default");
4058 }
4059 if ((this.serverDebuggingField == YesNoDefaultType.no))
4060 {
4061 writer.WriteAttributeString("ServerDebugging", "no");
4062 }
4063 if ((this.serverDebuggingField == YesNoDefaultType.yes))
4064 {
4065 writer.WriteAttributeString("ServerDebugging", "yes");
4066 }
4067 }
4068 if (this.clientDebuggingFieldSet)
4069 {
4070 if ((this.clientDebuggingField == YesNoDefaultType.@default))
4071 {
4072 writer.WriteAttributeString("ClientDebugging", "default");
4073 }
4074 if ((this.clientDebuggingField == YesNoDefaultType.no))
4075 {
4076 writer.WriteAttributeString("ClientDebugging", "no");
4077 }
4078 if ((this.clientDebuggingField == YesNoDefaultType.yes))
4079 {
4080 writer.WriteAttributeString("ClientDebugging", "yes");
4081 }
4082 }
4083 if (this.webAppPoolFieldSet)
4084 {
4085 writer.WriteAttributeString("WebAppPool", this.webAppPoolField);
4086 }
4087 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
4088 {
4089 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
4090 childElement.OutputXml(writer);
4091 }
4092 writer.WriteEndElement();
4093 }
4094
4095 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
4096 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
4097 void ISetAttributes.SetAttribute(string name, string value)
4098 {
4099 if (String.IsNullOrEmpty(name))
4100 {
4101 throw new ArgumentNullException("name");
4102 }
4103 if (("Id" == name))
4104 {
4105 this.idField = value;
4106 this.idFieldSet = true;
4107 }
4108 if (("Name" == name))
4109 {
4110 this.nameField = value;
4111 this.nameFieldSet = true;
4112 }
4113 if (("Isolation" == name))
4114 {
4115 this.isolationField = WebApplication.ParseIsolationType(value);
4116 this.isolationFieldSet = true;
4117 }
4118 if (("AllowSessions" == name))
4119 {
4120 this.allowSessionsField = Enums.ParseYesNoDefaultType(value);
4121 this.allowSessionsFieldSet = true;
4122 }
4123 if (("SessionTimeout" == name))
4124 {
4125 this.sessionTimeoutField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
4126 this.sessionTimeoutFieldSet = true;
4127 }
4128 if (("Buffer" == name))
4129 {
4130 this.bufferField = Enums.ParseYesNoDefaultType(value);
4131 this.bufferFieldSet = true;
4132 }
4133 if (("ParentPaths" == name))
4134 {
4135 this.parentPathsField = Enums.ParseYesNoDefaultType(value);
4136 this.parentPathsFieldSet = true;
4137 }
4138 if (("DefaultScript" == name))
4139 {
4140 this.defaultScriptField = WebApplication.ParseDefaultScriptType(value);
4141 this.defaultScriptFieldSet = true;
4142 }
4143 if (("ScriptTimeout" == name))
4144 {
4145 this.scriptTimeoutField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
4146 this.scriptTimeoutFieldSet = true;
4147 }
4148 if (("ServerDebugging" == name))
4149 {
4150 this.serverDebuggingField = Enums.ParseYesNoDefaultType(value);
4151 this.serverDebuggingFieldSet = true;
4152 }
4153 if (("ClientDebugging" == name))
4154 {
4155 this.clientDebuggingField = Enums.ParseYesNoDefaultType(value);
4156 this.clientDebuggingFieldSet = true;
4157 }
4158 if (("WebAppPool" == name))
4159 {
4160 this.webAppPoolField = value;
4161 this.webAppPoolFieldSet = true;
4162 }
4163 }
4164
4165 [GeneratedCode("XsdGen", "4.0.0.0")]
4166 public enum IsolationType
4167 {
4168
4169 IllegalValue = int.MaxValue,
4170
4171 NotSet = -1,
4172
4173 /// <summary>
4174 /// Means the application executes within the IIS process.
4175 /// </summary>
4176 low,
4177
4178 /// <summary>
4179 /// Executes pooled in a separate process.
4180 /// </summary>
4181 medium,
4182
4183 /// <summary>
4184 /// Means execution alone in a separate process.
4185 /// </summary>
4186 high,
4187 }
4188
4189 [GeneratedCode("XsdGen", "4.0.0.0")]
4190 public enum DefaultScriptType
4191 {
4192
4193 IllegalValue = int.MaxValue,
4194
4195 NotSet = -1,
4196
4197 VBScript,
4198
4199 JScript,
4200 }
4201 }
4202
4203 /// <summary>
4204 /// WebAddress for WebSite
4205 /// </summary>
4206 [GeneratedCode("XsdGen", "4.0.0.0")]
4207 public class WebAddress : ISchemaElement, ISetAttributes
4208 {
4209
4210 private string idField;
4211
4212 private bool idFieldSet;
4213
4214 private string iPField;
4215
4216 private bool iPFieldSet;
4217
4218 private string portField;
4219
4220 private bool portFieldSet;
4221
4222 private string headerField;
4223
4224 private bool headerFieldSet;
4225
4226 private YesNoType secureField;
4227
4228 private bool secureFieldSet;
4229
4230 private ISchemaElement parentElement;
4231
4232 public string Id
4233 {
4234 get
4235 {
4236 return this.idField;
4237 }
4238 set
4239 {
4240 this.idFieldSet = true;
4241 this.idField = value;
4242 }
4243 }
4244
4245 /// <summary>
4246 /// The IP address to locate an existing WebSite or create a new WebSite. When the WebAddress is part of a WebSite element
4247 /// used to locate an existing web site the following rules are used:
4248 /// </summary>
4249 public string IP
4250 {
4251 get
4252 {
4253 return this.iPField;
4254 }
4255 set
4256 {
4257 this.iPFieldSet = true;
4258 this.iPField = value;
4259 }
4260 }
4261
4262 public string Port
4263 {
4264 get
4265 {
4266 return this.portField;
4267 }
4268 set
4269 {
4270 this.portFieldSet = true;
4271 this.portField = value;
4272 }
4273 }
4274
4275 public string Header
4276 {
4277 get
4278 {
4279 return this.headerField;
4280 }
4281 set
4282 {
4283 this.headerFieldSet = true;
4284 this.headerField = value;
4285 }
4286 }
4287
4288 /// <summary>
4289 /// Determines if this address represents a secure binding. The default is 'no'.
4290 /// </summary>
4291 public YesNoType Secure
4292 {
4293 get
4294 {
4295 return this.secureField;
4296 }
4297 set
4298 {
4299 this.secureFieldSet = true;
4300 this.secureField = value;
4301 }
4302 }
4303
4304 public virtual ISchemaElement ParentElement
4305 {
4306 get
4307 {
4308 return this.parentElement;
4309 }
4310 set
4311 {
4312 this.parentElement = value;
4313 }
4314 }
4315
4316 /// <summary>
4317 /// Processes this element and all child elements into an XmlWriter.
4318 /// </summary>
4319 public virtual void OutputXml(XmlWriter writer)
4320 {
4321 if ((null == writer))
4322 {
4323 throw new ArgumentNullException("writer");
4324 }
4325 writer.WriteStartElement("WebAddress", "http://wixtoolset.org/schemas/v4/wxs/iis");
4326 if (this.idFieldSet)
4327 {
4328 writer.WriteAttributeString("Id", this.idField);
4329 }
4330 if (this.iPFieldSet)
4331 {
4332 writer.WriteAttributeString("IP", this.iPField);
4333 }
4334 if (this.portFieldSet)
4335 {
4336 writer.WriteAttributeString("Port", this.portField);
4337 }
4338 if (this.headerFieldSet)
4339 {
4340 writer.WriteAttributeString("Header", this.headerField);
4341 }
4342 if (this.secureFieldSet)
4343 {
4344 if ((this.secureField == YesNoType.no))
4345 {
4346 writer.WriteAttributeString("Secure", "no");
4347 }
4348 if ((this.secureField == YesNoType.yes))
4349 {
4350 writer.WriteAttributeString("Secure", "yes");
4351 }
4352 }
4353 writer.WriteEndElement();
4354 }
4355
4356 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
4357 void ISetAttributes.SetAttribute(string name, string value)
4358 {
4359 if (String.IsNullOrEmpty(name))
4360 {
4361 throw new ArgumentNullException("name");
4362 }
4363 if (("Id" == name))
4364 {
4365 this.idField = value;
4366 this.idFieldSet = true;
4367 }
4368 if (("IP" == name))
4369 {
4370 this.iPField = value;
4371 this.iPFieldSet = true;
4372 }
4373 if (("Port" == name))
4374 {
4375 this.portField = value;
4376 this.portFieldSet = true;
4377 }
4378 if (("Header" == name))
4379 {
4380 this.headerField = value;
4381 this.headerFieldSet = true;
4382 }
4383 if (("Secure" == name))
4384 {
4385 this.secureField = Enums.ParseYesNoType(value);
4386 this.secureFieldSet = true;
4387 }
4388 }
4389 }
4390
4391 /// <summary>
4392 /// Defines an IIS virtual directory. When this element is a child of WebSite element, the virtual directory is defined within that web site. Otherwise this virtual directory must reference a WebSite element via the WebSite attribute
4393 /// </summary>
4394 [GeneratedCode("XsdGen", "4.0.0.0")]
4395 public class WebVirtualDir : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
4396 {
4397
4398 private ElementCollection children;
4399
4400 private string idField;
4401
4402 private bool idFieldSet;
4403
4404 private string webSiteField;
4405
4406 private bool webSiteFieldSet;
4407
4408 private string aliasField;
4409
4410 private bool aliasFieldSet;
4411
4412 private string directoryField;
4413
4414 private bool directoryFieldSet;
4415
4416 private string dirPropertiesField;
4417
4418 private bool dirPropertiesFieldSet;
4419
4420 private string webApplicationField;
4421
4422 private bool webApplicationFieldSet;
4423
4424 private ISchemaElement parentElement;
4425
4426 public WebVirtualDir()
4427 {
4428 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
4429 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WebApplication)));
4430 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WebDirProperties)));
4431 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WebError)));
4432 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WebVirtualDir)));
4433 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(HttpHeader)));
4434 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MimeMap)));
4435 this.children = childCollection0;
4436 }
4437
4438 public virtual IEnumerable Children
4439 {
4440 get
4441 {
4442 return this.children;
4443 }
4444 }
4445
4446 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
4447 public virtual IEnumerable this[System.Type childType]
4448 {
4449 get
4450 {
4451 return this.children.Filter(childType);
4452 }
4453 }
4454
4455 public string Id
4456 {
4457 get
4458 {
4459 return this.idField;
4460 }
4461 set
4462 {
4463 this.idFieldSet = true;
4464 this.idField = value;
4465 }
4466 }
4467
4468 /// <summary>
4469 /// References the Id attribute for a WebSite in which this virtual directory belongs. Required when this element is not a child of WebSite element.
4470 /// </summary>
4471 public string WebSite
4472 {
4473 get
4474 {
4475 return this.webSiteField;
4476 }
4477 set
4478 {
4479 this.webSiteFieldSet = true;
4480 this.webSiteField = value;
4481 }
4482 }
4483
4484 /// <summary>
4485 /// Sets the application name, which is the URL relative path used to access this virtual directory
4486 /// </summary>
4487 public string Alias
4488 {
4489 get
4490 {
4491 return this.aliasField;
4492 }
4493 set
4494 {
4495 this.aliasFieldSet = true;
4496 this.aliasField = value;
4497 }
4498 }
4499
4500 /// <summary>
4501 /// References the Id attribute for a Directory element that points to the content for this virtual directory.
4502 /// </summary>
4503 public string Directory
4504 {
4505 get
4506 {
4507 return this.directoryField;
4508 }
4509 set
4510 {
4511 this.directoryFieldSet = true;
4512 this.directoryField = value;
4513 }
4514 }
4515
4516 /// <summary>
4517 /// References the Id attribute for a WebDirProperties element that specifies the security and access properties for this virtual directory.
4518 /// This attribute may not be specified if a WebDirProperties element is directly nested in this element.
4519 /// </summary>
4520 public string DirProperties
4521 {
4522 get
4523 {
4524 return this.dirPropertiesField;
4525 }
4526 set
4527 {
4528 this.dirPropertiesFieldSet = true;
4529 this.dirPropertiesField = value;
4530 }
4531 }
4532
4533 /// <summary>
4534 /// References the Id attribute for a WebApplication element that specifies web application settings for this virtual directory. If a WebApplication child is not specified, the virtual directory does not host web applications.
4535 /// </summary>
4536 public string WebApplication
4537 {
4538 get
4539 {
4540 return this.webApplicationField;
4541 }
4542 set
4543 {
4544 this.webApplicationFieldSet = true;
4545 this.webApplicationField = value;
4546 }
4547 }
4548
4549 public virtual ISchemaElement ParentElement
4550 {
4551 get
4552 {
4553 return this.parentElement;
4554 }
4555 set
4556 {
4557 this.parentElement = value;
4558 }
4559 }
4560
4561 public virtual void AddChild(ISchemaElement child)
4562 {
4563 if ((null == child))
4564 {
4565 throw new ArgumentNullException("child");
4566 }
4567 this.children.AddElement(child);
4568 child.ParentElement = this;
4569 }
4570
4571 public virtual void RemoveChild(ISchemaElement child)
4572 {
4573 if ((null == child))
4574 {
4575 throw new ArgumentNullException("child");
4576 }
4577 this.children.RemoveElement(child);
4578 child.ParentElement = null;
4579 }
4580
4581 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
4582 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
4583 ISchemaElement ICreateChildren.CreateChild(string childName)
4584 {
4585 if (String.IsNullOrEmpty(childName))
4586 {
4587 throw new ArgumentNullException("childName");
4588 }
4589 ISchemaElement childValue = null;
4590 if (("WebApplication" == childName))
4591 {
4592 childValue = new WebApplication();
4593 }
4594 if (("WebDirProperties" == childName))
4595 {
4596 childValue = new WebDirProperties();
4597 }
4598 if (("WebError" == childName))
4599 {
4600 childValue = new WebError();
4601 }
4602 if (("WebVirtualDir" == childName))
4603 {
4604 childValue = new WebVirtualDir();
4605 }
4606 if (("HttpHeader" == childName))
4607 {
4608 childValue = new HttpHeader();
4609 }
4610 if (("MimeMap" == childName))
4611 {
4612 childValue = new MimeMap();
4613 }
4614 if ((null == childValue))
4615 {
4616 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
4617 }
4618 return childValue;
4619 }
4620
4621 /// <summary>
4622 /// Processes this element and all child elements into an XmlWriter.
4623 /// </summary>
4624 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
4625 public virtual void OutputXml(XmlWriter writer)
4626 {
4627 if ((null == writer))
4628 {
4629 throw new ArgumentNullException("writer");
4630 }
4631 writer.WriteStartElement("WebVirtualDir", "http://wixtoolset.org/schemas/v4/wxs/iis");
4632 if (this.idFieldSet)
4633 {
4634 writer.WriteAttributeString("Id", this.idField);
4635 }
4636 if (this.webSiteFieldSet)
4637 {
4638 writer.WriteAttributeString("WebSite", this.webSiteField);
4639 }
4640 if (this.aliasFieldSet)
4641 {
4642 writer.WriteAttributeString("Alias", this.aliasField);
4643 }
4644 if (this.directoryFieldSet)
4645 {
4646 writer.WriteAttributeString("Directory", this.directoryField);
4647 }
4648 if (this.dirPropertiesFieldSet)
4649 {
4650 writer.WriteAttributeString("DirProperties", this.dirPropertiesField);
4651 }
4652 if (this.webApplicationFieldSet)
4653 {
4654 writer.WriteAttributeString("WebApplication", this.webApplicationField);
4655 }
4656 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
4657 {
4658 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
4659 childElement.OutputXml(writer);
4660 }
4661 writer.WriteEndElement();
4662 }
4663
4664 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
4665 void ISetAttributes.SetAttribute(string name, string value)
4666 {
4667 if (String.IsNullOrEmpty(name))
4668 {
4669 throw new ArgumentNullException("name");
4670 }
4671 if (("Id" == name))
4672 {
4673 this.idField = value;
4674 this.idFieldSet = true;
4675 }
4676 if (("WebSite" == name))
4677 {
4678 this.webSiteField = value;
4679 this.webSiteFieldSet = true;
4680 }
4681 if (("Alias" == name))
4682 {
4683 this.aliasField = value;
4684 this.aliasFieldSet = true;
4685 }
4686 if (("Directory" == name))
4687 {
4688 this.directoryField = value;
4689 this.directoryFieldSet = true;
4690 }
4691 if (("DirProperties" == name))
4692 {
4693 this.dirPropertiesField = value;
4694 this.dirPropertiesFieldSet = true;
4695 }
4696 if (("WebApplication" == name))
4697 {
4698 this.webApplicationField = value;
4699 this.webApplicationFieldSet = true;
4700 }
4701 }
4702 }
4703
4704 /// <summary>
4705 /// Defines a subdirectory within an IIS web site. When this element is a child of WebSite, the web directory is defined within that web site. Otherwise the web directory must reference a WebSite element via the WebSite attribute.
4706 /// </summary>
4707 [GeneratedCode("XsdGen", "4.0.0.0")]
4708 public class WebDir : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
4709 {
4710
4711 private ElementCollection children;
4712
4713 private string idField;
4714
4715 private bool idFieldSet;
4716
4717 private string webSiteField;
4718
4719 private bool webSiteFieldSet;
4720
4721 private string pathField;
4722
4723 private bool pathFieldSet;
4724
4725 private string dirPropertiesField;
4726
4727 private bool dirPropertiesFieldSet;
4728
4729 private ISchemaElement parentElement;
4730
4731 public WebDir()
4732 {
4733 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
4734 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WebApplication)));
4735 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WebDirProperties)));
4736 this.children = childCollection0;
4737 }
4738
4739 public virtual IEnumerable Children
4740 {
4741 get
4742 {
4743 return this.children;
4744 }
4745 }
4746
4747 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
4748 public virtual IEnumerable this[System.Type childType]
4749 {
4750 get
4751 {
4752 return this.children.Filter(childType);
4753 }
4754 }
4755
4756 public string Id
4757 {
4758 get
4759 {
4760 return this.idField;
4761 }
4762 set
4763 {
4764 this.idFieldSet = true;
4765 this.idField = value;
4766 }
4767 }
4768
4769 /// <summary>
4770 /// References the Id attribute for a WebSite element in which this directory belongs. Required when this element is not a child of a WebSite element.
4771 /// </summary>
4772 public string WebSite
4773 {
4774 get
4775 {
4776 return this.webSiteField;
4777 }
4778 set
4779 {
4780 this.webSiteFieldSet = true;
4781 this.webSiteField = value;
4782 }
4783 }
4784
4785 /// <summary>
4786 /// Specifies the name of this web directory.
4787 /// </summary>
4788 public string Path
4789 {
4790 get
4791 {
4792 return this.pathField;
4793 }
4794 set
4795 {
4796 this.pathFieldSet = true;
4797 this.pathField = value;
4798 }
4799 }
4800
4801 /// <summary>
4802 /// References the Id attribute for a WebDirProperties element that specifies the security and access properties for this web directory.
4803 /// This attribute may not be specified if a WebDirProperties element is directly nested in this element.
4804 /// </summary>
4805 public string DirProperties
4806 {
4807 get
4808 {
4809 return this.dirPropertiesField;
4810 }
4811 set
4812 {
4813 this.dirPropertiesFieldSet = true;
4814 this.dirPropertiesField = value;
4815 }
4816 }
4817
4818 public virtual ISchemaElement ParentElement
4819 {
4820 get
4821 {
4822 return this.parentElement;
4823 }
4824 set
4825 {
4826 this.parentElement = value;
4827 }
4828 }
4829
4830 public virtual void AddChild(ISchemaElement child)
4831 {
4832 if ((null == child))
4833 {
4834 throw new ArgumentNullException("child");
4835 }
4836 this.children.AddElement(child);
4837 child.ParentElement = this;
4838 }
4839
4840 public virtual void RemoveChild(ISchemaElement child)
4841 {
4842 if ((null == child))
4843 {
4844 throw new ArgumentNullException("child");
4845 }
4846 this.children.RemoveElement(child);
4847 child.ParentElement = null;
4848 }
4849
4850 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
4851 ISchemaElement ICreateChildren.CreateChild(string childName)
4852 {
4853 if (String.IsNullOrEmpty(childName))
4854 {
4855 throw new ArgumentNullException("childName");
4856 }
4857 ISchemaElement childValue = null;
4858 if (("WebApplication" == childName))
4859 {
4860 childValue = new WebApplication();
4861 }
4862 if (("WebDirProperties" == childName))
4863 {
4864 childValue = new WebDirProperties();
4865 }
4866 if ((null == childValue))
4867 {
4868 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
4869 }
4870 return childValue;
4871 }
4872
4873 /// <summary>
4874 /// Processes this element and all child elements into an XmlWriter.
4875 /// </summary>
4876 public virtual void OutputXml(XmlWriter writer)
4877 {
4878 if ((null == writer))
4879 {
4880 throw new ArgumentNullException("writer");
4881 }
4882 writer.WriteStartElement("WebDir", "http://wixtoolset.org/schemas/v4/wxs/iis");
4883 if (this.idFieldSet)
4884 {
4885 writer.WriteAttributeString("Id", this.idField);
4886 }
4887 if (this.webSiteFieldSet)
4888 {
4889 writer.WriteAttributeString("WebSite", this.webSiteField);
4890 }
4891 if (this.pathFieldSet)
4892 {
4893 writer.WriteAttributeString("Path", this.pathField);
4894 }
4895 if (this.dirPropertiesFieldSet)
4896 {
4897 writer.WriteAttributeString("DirProperties", this.dirPropertiesField);
4898 }
4899 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
4900 {
4901 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
4902 childElement.OutputXml(writer);
4903 }
4904 writer.WriteEndElement();
4905 }
4906
4907 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
4908 void ISetAttributes.SetAttribute(string name, string value)
4909 {
4910 if (String.IsNullOrEmpty(name))
4911 {
4912 throw new ArgumentNullException("name");
4913 }
4914 if (("Id" == name))
4915 {
4916 this.idField = value;
4917 this.idFieldSet = true;
4918 }
4919 if (("WebSite" == name))
4920 {
4921 this.webSiteField = value;
4922 this.webSiteFieldSet = true;
4923 }
4924 if (("Path" == name))
4925 {
4926 this.pathField = value;
4927 this.pathFieldSet = true;
4928 }
4929 if (("DirProperties" == name))
4930 {
4931 this.dirPropertiesField = value;
4932 this.dirPropertiesFieldSet = true;
4933 }
4934 }
4935 }
4936
4937 /// <summary>
4938 /// IIs Web Site
4939 /// </summary>
4940 [GeneratedCode("XsdGen", "4.0.0.0")]
4941 public class WebSite : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes
4942 {
4943
4944 private ElementCollection children;
4945
4946 private string idField;
4947
4948 private bool idFieldSet;
4949
4950 private YesNoType autoStartField;
4951
4952 private bool autoStartFieldSet;
4953
4954 private YesNoType configureIfExistsField;
4955
4956 private bool configureIfExistsFieldSet;
4957
4958 private long connectionTimeoutField;
4959
4960 private bool connectionTimeoutFieldSet;
4961
4962 private string descriptionField;
4963
4964 private bool descriptionFieldSet;
4965
4966 private string directoryField;
4967
4968 private bool directoryFieldSet;
4969
4970 private string dirPropertiesField;
4971
4972 private bool dirPropertiesFieldSet;
4973
4974 private int sequenceField;
4975
4976 private bool sequenceFieldSet;
4977
4978 private string siteIdField;
4979
4980 private bool siteIdFieldSet;
4981
4982 private YesNoType startOnInstallField;
4983
4984 private bool startOnInstallFieldSet;
4985
4986 private string webApplicationField;
4987
4988 private bool webApplicationFieldSet;
4989
4990 private string webLogField;
4991
4992 private bool webLogFieldSet;
4993
4994 private ISchemaElement parentElement;
4995
4996 public WebSite()
4997 {
4998 ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice);
4999 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WebAddress)));
5000 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WebApplication)));
5001 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WebDirProperties)));
5002 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MimeMap)));
5003 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CertificateRef)));
5004 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(HttpHeader)));
5005 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WebDir)));
5006 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WebError)));
5007 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WebFilter)));
5008 childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WebVirtualDir)));
5009 this.children = childCollection0;
5010 }
5011
5012 public virtual IEnumerable Children
5013 {
5014 get
5015 {
5016 return this.children;
5017 }
5018 }
5019
5020 [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")]
5021 public virtual IEnumerable this[System.Type childType]
5022 {
5023 get
5024 {
5025 return this.children.Filter(childType);
5026 }
5027 }
5028
5029 /// <summary>
5030 /// Identifier for the WebSite. Used within the MSI package only.
5031 /// </summary>
5032 public string Id
5033 {
5034 get
5035 {
5036 return this.idField;
5037 }
5038 set
5039 {
5040 this.idFieldSet = true;
5041 this.idField = value;
5042 }
5043 }
5044
5045 /// <summary>
5046 /// Specifies whether to automatically start the web site.
5047 /// </summary>
5048 public YesNoType AutoStart
5049 {
5050 get
5051 {
5052 return this.autoStartField;
5053 }
5054 set
5055 {
5056 this.autoStartFieldSet = true;
5057 this.autoStartField = value;
5058 }
5059 }
5060
5061 /// <summary>
5062 /// Specifies whether to configure the web site if it already exists. Note: This will not affect uninstall behavior. If the web site exists on uninstall, it will be removed.
5063 /// </summary>
5064 public YesNoType ConfigureIfExists
5065 {
5066 get
5067 {
5068 return this.configureIfExistsField;
5069 }
5070 set
5071 {
5072 this.configureIfExistsFieldSet = true;
5073 this.configureIfExistsField = value;
5074 }
5075 }
5076
5077 /// <summary>
5078 /// Sets the timeout value for connections in seconds.
5079 /// </summary>
5080 public long ConnectionTimeout
5081 {
5082 get
5083 {
5084 return this.connectionTimeoutField;
5085 }
5086 set
5087 {
5088 this.connectionTimeoutFieldSet = true;
5089 this.connectionTimeoutField = value;
5090 }
5091 }
5092
5093 /// <summary>
5094 /// This is the name of the web site that will show up in the IIS management console.
5095 /// </summary>
5096 public string Description
5097 {
5098 get
5099 {
5100 return this.descriptionField;
5101 }
5102 set
5103 {
5104 this.descriptionFieldSet = true;
5105 this.descriptionField = value;
5106 }
5107 }
5108
5109 /// <summary>
5110 /// Root directory of the web site. Resolved to a directory in the Directory table at install time by the server custom actions.
5111 /// </summary>
5112 public string Directory
5113 {
5114 get
5115 {
5116 return this.directoryField;
5117 }
5118 set
5119 {
5120 this.directoryFieldSet = true;
5121 this.directoryField = value;
5122 }
5123 }
5124
5125 /// <summary>
5126 /// References the Id attribute for a WebDirProperties element that specifies the security and access properties for this website root directory.
5127 /// This attribute may not be specified if a WebDirProperties element is directly nested in this element.
5128 /// </summary>
5129 public string DirProperties
5130 {
5131 get
5132 {
5133 return this.dirPropertiesField;
5134 }
5135 set
5136 {
5137 this.dirPropertiesFieldSet = true;
5138 this.dirPropertiesField = value;
5139 }
5140 }
5141
5142 /// <summary>
5143 /// Sequence that the web site is to be created in.
5144 /// </summary>
5145 public int Sequence
5146 {
5147 get
5148 {
5149 return this.sequenceField;
5150 }
5151 set
5152 {
5153 this.sequenceFieldSet = true;
5154 this.sequenceField = value;
5155 }
5156 }
5157
5158 /// <summary>
5159 /// Optional attribute to directly specify the site id of the WebSite. Use this to ensure all web
5160 /// sites in a web garden get the same site id. If a number is provided, the site id must be unique
5161 /// on all target machines. If "*" is used, the Description attribute will be hashed to create a unique
5162 /// value for the site id. This value must be a positive number or a "*" or a formatted value that resolves
5163 /// to "-1" (for the same behavior as "*") or a positive number or blank. If this attribute is absent then
5164 /// the web site will be located using the WebAddress element associated with the web site.
5165 /// </summary>
5166 public string SiteId
5167 {
5168 get
5169 {
5170 return this.siteIdField;
5171 }
5172 set
5173 {
5174 this.siteIdFieldSet = true;
5175 this.siteIdField = value;
5176 }
5177 }
5178
5179 /// <summary>
5180 /// Specifies whether to start the web site on install.
5181 /// </summary>
5182 public YesNoType StartOnInstall
5183 {
5184 get
5185 {
5186 return this.startOnInstallField;
5187 }
5188 set
5189 {
5190 this.startOnInstallFieldSet = true;
5191 this.startOnInstallField = value;
5192 }
5193 }
5194
5195 /// <summary>
5196 /// Reference to a WebApplication that is to be installed as part of this web site.
5197 /// </summary>
5198 public string WebApplication
5199 {
5200 get
5201 {
5202 return this.webApplicationField;
5203 }
5204 set
5205 {
5206 this.webApplicationFieldSet = true;
5207 this.webApplicationField = value;
5208 }
5209 }
5210
5211 /// <summary>
5212 /// Reference to WebLog definition.
5213 /// </summary>
5214 public string WebLog
5215 {
5216 get
5217 {
5218 return this.webLogField;
5219 }
5220 set
5221 {
5222 this.webLogFieldSet = true;
5223 this.webLogField = value;
5224 }
5225 }
5226
5227 public virtual ISchemaElement ParentElement
5228 {
5229 get
5230 {
5231 return this.parentElement;
5232 }
5233 set
5234 {
5235 this.parentElement = value;
5236 }
5237 }
5238
5239 public virtual void AddChild(ISchemaElement child)
5240 {
5241 if ((null == child))
5242 {
5243 throw new ArgumentNullException("child");
5244 }
5245 this.children.AddElement(child);
5246 child.ParentElement = this;
5247 }
5248
5249 public virtual void RemoveChild(ISchemaElement child)
5250 {
5251 if ((null == child))
5252 {
5253 throw new ArgumentNullException("child");
5254 }
5255 this.children.RemoveElement(child);
5256 child.ParentElement = null;
5257 }
5258
5259 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
5260 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
5261 ISchemaElement ICreateChildren.CreateChild(string childName)
5262 {
5263 if (String.IsNullOrEmpty(childName))
5264 {
5265 throw new ArgumentNullException("childName");
5266 }
5267 ISchemaElement childValue = null;
5268 if (("WebAddress" == childName))
5269 {
5270 childValue = new WebAddress();
5271 }
5272 if (("WebApplication" == childName))
5273 {
5274 childValue = new WebApplication();
5275 }
5276 if (("WebDirProperties" == childName))
5277 {
5278 childValue = new WebDirProperties();
5279 }
5280 if (("MimeMap" == childName))
5281 {
5282 childValue = new MimeMap();
5283 }
5284 if (("CertificateRef" == childName))
5285 {
5286 childValue = new CertificateRef();
5287 }
5288 if (("HttpHeader" == childName))
5289 {
5290 childValue = new HttpHeader();
5291 }
5292 if (("WebDir" == childName))
5293 {
5294 childValue = new WebDir();
5295 }
5296 if (("WebError" == childName))
5297 {
5298 childValue = new WebError();
5299 }
5300 if (("WebFilter" == childName))
5301 {
5302 childValue = new WebFilter();
5303 }
5304 if (("WebVirtualDir" == childName))
5305 {
5306 childValue = new WebVirtualDir();
5307 }
5308 if ((null == childValue))
5309 {
5310 throw new InvalidOperationException(String.Concat(childName, " is not a valid child name."));
5311 }
5312 return childValue;
5313 }
5314
5315 /// <summary>
5316 /// Processes this element and all child elements into an XmlWriter.
5317 /// </summary>
5318 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
5319 public virtual void OutputXml(XmlWriter writer)
5320 {
5321 if ((null == writer))
5322 {
5323 throw new ArgumentNullException("writer");
5324 }
5325 writer.WriteStartElement("WebSite", "http://wixtoolset.org/schemas/v4/wxs/iis");
5326 if (this.idFieldSet)
5327 {
5328 writer.WriteAttributeString("Id", this.idField);
5329 }
5330 if (this.autoStartFieldSet)
5331 {
5332 if ((this.autoStartField == YesNoType.no))
5333 {
5334 writer.WriteAttributeString("AutoStart", "no");
5335 }
5336 if ((this.autoStartField == YesNoType.yes))
5337 {
5338 writer.WriteAttributeString("AutoStart", "yes");
5339 }
5340 }
5341 if (this.configureIfExistsFieldSet)
5342 {
5343 if ((this.configureIfExistsField == YesNoType.no))
5344 {
5345 writer.WriteAttributeString("ConfigureIfExists", "no");
5346 }
5347 if ((this.configureIfExistsField == YesNoType.yes))
5348 {
5349 writer.WriteAttributeString("ConfigureIfExists", "yes");
5350 }
5351 }
5352 if (this.connectionTimeoutFieldSet)
5353 {
5354 writer.WriteAttributeString("ConnectionTimeout", this.connectionTimeoutField.ToString(CultureInfo.InvariantCulture));
5355 }
5356 if (this.descriptionFieldSet)
5357 {
5358 writer.WriteAttributeString("Description", this.descriptionField);
5359 }
5360 if (this.directoryFieldSet)
5361 {
5362 writer.WriteAttributeString("Directory", this.directoryField);
5363 }
5364 if (this.dirPropertiesFieldSet)
5365 {
5366 writer.WriteAttributeString("DirProperties", this.dirPropertiesField);
5367 }
5368 if (this.sequenceFieldSet)
5369 {
5370 writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture));
5371 }
5372 if (this.siteIdFieldSet)
5373 {
5374 writer.WriteAttributeString("SiteId", this.siteIdField);
5375 }
5376 if (this.startOnInstallFieldSet)
5377 {
5378 if ((this.startOnInstallField == YesNoType.no))
5379 {
5380 writer.WriteAttributeString("StartOnInstall", "no");
5381 }
5382 if ((this.startOnInstallField == YesNoType.yes))
5383 {
5384 writer.WriteAttributeString("StartOnInstall", "yes");
5385 }
5386 }
5387 if (this.webApplicationFieldSet)
5388 {
5389 writer.WriteAttributeString("WebApplication", this.webApplicationField);
5390 }
5391 if (this.webLogFieldSet)
5392 {
5393 writer.WriteAttributeString("WebLog", this.webLogField);
5394 }
5395 for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); )
5396 {
5397 ISchemaElement childElement = ((ISchemaElement)(enumerator.Current));
5398 childElement.OutputXml(writer);
5399 }
5400 writer.WriteEndElement();
5401 }
5402
5403 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
5404 [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
5405 void ISetAttributes.SetAttribute(string name, string value)
5406 {
5407 if (String.IsNullOrEmpty(name))
5408 {
5409 throw new ArgumentNullException("name");
5410 }
5411 if (("Id" == name))
5412 {
5413 this.idField = value;
5414 this.idFieldSet = true;
5415 }
5416 if (("AutoStart" == name))
5417 {
5418 this.autoStartField = Enums.ParseYesNoType(value);
5419 this.autoStartFieldSet = true;
5420 }
5421 if (("ConfigureIfExists" == name))
5422 {
5423 this.configureIfExistsField = Enums.ParseYesNoType(value);
5424 this.configureIfExistsFieldSet = true;
5425 }
5426 if (("ConnectionTimeout" == name))
5427 {
5428 this.connectionTimeoutField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
5429 this.connectionTimeoutFieldSet = true;
5430 }
5431 if (("Description" == name))
5432 {
5433 this.descriptionField = value;
5434 this.descriptionFieldSet = true;
5435 }
5436 if (("Directory" == name))
5437 {
5438 this.directoryField = value;
5439 this.directoryFieldSet = true;
5440 }
5441 if (("DirProperties" == name))
5442 {
5443 this.dirPropertiesField = value;
5444 this.dirPropertiesFieldSet = true;
5445 }
5446 if (("Sequence" == name))
5447 {
5448 this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture);
5449 this.sequenceFieldSet = true;
5450 }
5451 if (("SiteId" == name))
5452 {
5453 this.siteIdField = value;
5454 this.siteIdFieldSet = true;
5455 }
5456 if (("StartOnInstall" == name))
5457 {
5458 this.startOnInstallField = Enums.ParseYesNoType(value);
5459 this.startOnInstallFieldSet = true;
5460 }
5461 if (("WebApplication" == name))
5462 {
5463 this.webApplicationField = value;
5464 this.webApplicationFieldSet = true;
5465 }
5466 if (("WebLog" == name))
5467 {
5468 this.webLogField = value;
5469 this.webLogFieldSet = true;
5470 }
5471 }
5472 }
5473
5474 /// <summary>
5475 /// WebLog definition.
5476 /// </summary>
5477 [GeneratedCode("XsdGen", "4.0.0.0")]
5478 public class WebLog : ISchemaElement, ISetAttributes
5479 {
5480
5481 private string idField;
5482
5483 private bool idFieldSet;
5484
5485 private TypeType typeField;
5486
5487 private bool typeFieldSet;
5488
5489 private ISchemaElement parentElement;
5490
5491 /// <summary>
5492 /// Identifier for the WebLog.
5493 /// </summary>
5494 public string Id
5495 {
5496 get
5497 {
5498 return this.idField;
5499 }
5500 set
5501 {
5502 this.idFieldSet = true;
5503 this.idField = value;
5504 }
5505 }
5506
5507 public TypeType Type
5508 {
5509 get
5510 {
5511 return this.typeField;
5512 }
5513 set
5514 {
5515 this.typeFieldSet = true;
5516 this.typeField = value;
5517 }
5518 }
5519
5520 public virtual ISchemaElement ParentElement
5521 {
5522 get
5523 {
5524 return this.parentElement;
5525 }
5526 set
5527 {
5528 this.parentElement = value;
5529 }
5530 }
5531
5532 /// <summary>
5533 /// Parses a TypeType from a string.
5534 /// </summary>
5535 public static TypeType ParseTypeType(string value)
5536 {
5537 TypeType parsedValue;
5538 WebLog.TryParseTypeType(value, out parsedValue);
5539 return parsedValue;
5540 }
5541
5542 /// <summary>
5543 /// Tries to parse a TypeType from a string.
5544 /// </summary>
5545 public static bool TryParseTypeType(string value, out TypeType parsedValue)
5546 {
5547 parsedValue = TypeType.NotSet;
5548 if (string.IsNullOrEmpty(value))
5549 {
5550 return false;
5551 }
5552 if (("IIS" == value))
5553 {
5554 parsedValue = TypeType.IIS;
5555 }
5556 else
5557 {
5558 if (("NCSA" == value))
5559 {
5560 parsedValue = TypeType.NCSA;
5561 }
5562 else
5563 {
5564 if (("none" == value))
5565 {
5566 parsedValue = TypeType.none;
5567 }
5568 else
5569 {
5570 if (("ODBC" == value))
5571 {
5572 parsedValue = TypeType.ODBC;
5573 }
5574 else
5575 {
5576 if (("W3C" == value))
5577 {
5578 parsedValue = TypeType.W3C;
5579 }
5580 else
5581 {
5582 parsedValue = TypeType.IllegalValue;
5583 return false;
5584 }
5585 }
5586 }
5587 }
5588 }
5589 return true;
5590 }
5591
5592 /// <summary>
5593 /// Processes this element and all child elements into an XmlWriter.
5594 /// </summary>
5595 public virtual void OutputXml(XmlWriter writer)
5596 {
5597 if ((null == writer))
5598 {
5599 throw new ArgumentNullException("writer");
5600 }
5601 writer.WriteStartElement("WebLog", "http://wixtoolset.org/schemas/v4/wxs/iis");
5602 if (this.idFieldSet)
5603 {
5604 writer.WriteAttributeString("Id", this.idField);
5605 }
5606 if (this.typeFieldSet)
5607 {
5608 if ((this.typeField == TypeType.IIS))
5609 {
5610 writer.WriteAttributeString("Type", "IIS");
5611 }
5612 if ((this.typeField == TypeType.NCSA))
5613 {
5614 writer.WriteAttributeString("Type", "NCSA");
5615 }
5616 if ((this.typeField == TypeType.none))
5617 {
5618 writer.WriteAttributeString("Type", "none");
5619 }
5620 if ((this.typeField == TypeType.ODBC))
5621 {
5622 writer.WriteAttributeString("Type", "ODBC");
5623 }
5624 if ((this.typeField == TypeType.W3C))
5625 {
5626 writer.WriteAttributeString("Type", "W3C");
5627 }
5628 }
5629 writer.WriteEndElement();
5630 }
5631
5632 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
5633 void ISetAttributes.SetAttribute(string name, string value)
5634 {
5635 if (String.IsNullOrEmpty(name))
5636 {
5637 throw new ArgumentNullException("name");
5638 }
5639 if (("Id" == name))
5640 {
5641 this.idField = value;
5642 this.idFieldSet = true;
5643 }
5644 if (("Type" == name))
5645 {
5646 this.typeField = WebLog.ParseTypeType(value);
5647 this.typeFieldSet = true;
5648 }
5649 }
5650
5651 [GeneratedCode("XsdGen", "4.0.0.0")]
5652 public enum TypeType
5653 {
5654
5655 IllegalValue = int.MaxValue,
5656
5657 NotSet = -1,
5658
5659 /// <summary>
5660 /// Microsoft IIS Log File Format
5661 /// </summary>
5662 IIS,
5663
5664 /// <summary>
5665 /// NCSA Common Log File Format
5666 /// </summary>
5667 NCSA,
5668
5669 /// <summary>
5670 /// Disables logging.
5671 /// </summary>
5672 none,
5673
5674 /// <summary>
5675 /// ODBC Logging
5676 /// </summary>
5677 ODBC,
5678
5679 /// <summary>
5680 /// W3C Extended Log File Format
5681 /// </summary>
5682 W3C,
5683 }
5684 }
5685
5686 /// <summary>
5687 /// The WebServiceExtension property is used by the Web server to determine whether a Web service extension is permitted to run.
5688 /// </summary>
5689 [GeneratedCode("XsdGen", "4.0.0.0")]
5690 public class WebServiceExtension : ISchemaElement, ISetAttributes
5691 {
5692
5693 private string idField;
5694
5695 private bool idFieldSet;
5696
5697 private string fileField;
5698
5699 private bool fileFieldSet;
5700
5701 private string descriptionField;
5702
5703 private bool descriptionFieldSet;
5704
5705 private string groupField;
5706
5707 private bool groupFieldSet;
5708
5709 private YesNoType allowField;
5710
5711 private bool allowFieldSet;
5712
5713 private YesNoType uIDeletableField;
5714
5715 private bool uIDeletableFieldSet;
5716
5717 private ISchemaElement parentElement;
5718
5719 public string Id
5720 {
5721 get
5722 {
5723 return this.idField;
5724 }
5725 set
5726 {
5727 this.idFieldSet = true;
5728 this.idField = value;
5729 }
5730 }
5731
5732 /// <summary>
5733 /// Usually a Property that resolves to short file name path
5734 /// </summary>
5735 public string File
5736 {
5737 get
5738 {
5739 return this.fileField;
5740 }
5741 set
5742 {
5743 this.fileFieldSet = true;
5744 this.fileField = value;
5745 }
5746 }
5747
5748 /// <summary>
5749 /// Description of the extension.
5750 /// </summary>
5751 public string Description
5752 {
5753 get
5754 {
5755 return this.descriptionField;
5756 }
5757 set
5758 {
5759 this.descriptionFieldSet = true;
5760 this.descriptionField = value;
5761 }
5762 }
5763
5764 /// <summary>
5765 /// String used to identify groups of extensions.
5766 /// </summary>
5767 public string Group
5768 {
5769 get
5770 {
5771 return this.groupField;
5772 }
5773 set
5774 {
5775 this.groupFieldSet = true;
5776 this.groupField = value;
5777 }
5778 }
5779
5780 /// <summary>
5781 /// Indicates if the extension is allowed or denied.
5782 /// </summary>
5783 public YesNoType Allow
5784 {
5785 get
5786 {
5787 return this.allowField;
5788 }
5789 set
5790 {
5791 this.allowFieldSet = true;
5792 this.allowField = value;
5793 }
5794 }
5795
5796 /// <summary>
5797 /// Indicates if the UI is allowed to delete the extension from the list of not. Default: Not deletable.
5798 /// </summary>
5799 [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")]
5800 public YesNoType UIDeletable
5801 {
5802 get
5803 {
5804 return this.uIDeletableField;
5805 }
5806 set
5807 {
5808 this.uIDeletableFieldSet = true;
5809 this.uIDeletableField = value;
5810 }
5811 }
5812
5813 public virtual ISchemaElement ParentElement
5814 {
5815 get
5816 {
5817 return this.parentElement;
5818 }
5819 set
5820 {
5821 this.parentElement = value;
5822 }
5823 }
5824
5825 /// <summary>
5826 /// Processes this element and all child elements into an XmlWriter.
5827 /// </summary>
5828 public virtual void OutputXml(XmlWriter writer)
5829 {
5830 if ((null == writer))
5831 {
5832 throw new ArgumentNullException("writer");
5833 }
5834 writer.WriteStartElement("WebServiceExtension", "http://wixtoolset.org/schemas/v4/wxs/iis");
5835 if (this.idFieldSet)
5836 {
5837 writer.WriteAttributeString("Id", this.idField);
5838 }
5839 if (this.fileFieldSet)
5840 {
5841 writer.WriteAttributeString("File", this.fileField);
5842 }
5843 if (this.descriptionFieldSet)
5844 {
5845 writer.WriteAttributeString("Description", this.descriptionField);
5846 }
5847 if (this.groupFieldSet)
5848 {
5849 writer.WriteAttributeString("Group", this.groupField);
5850 }
5851 if (this.allowFieldSet)
5852 {
5853 if ((this.allowField == YesNoType.no))
5854 {
5855 writer.WriteAttributeString("Allow", "no");
5856 }
5857 if ((this.allowField == YesNoType.yes))
5858 {
5859 writer.WriteAttributeString("Allow", "yes");
5860 }
5861 }
5862 if (this.uIDeletableFieldSet)
5863 {
5864 if ((this.uIDeletableField == YesNoType.no))
5865 {
5866 writer.WriteAttributeString("UIDeletable", "no");
5867 }
5868 if ((this.uIDeletableField == YesNoType.yes))
5869 {
5870 writer.WriteAttributeString("UIDeletable", "yes");
5871 }
5872 }
5873 writer.WriteEndElement();
5874 }
5875
5876 [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
5877 void ISetAttributes.SetAttribute(string name, string value)
5878 {
5879 if (String.IsNullOrEmpty(name))
5880 {
5881 throw new ArgumentNullException("name");
5882 }
5883 if (("Id" == name))
5884 {
5885 this.idField = value;
5886 this.idFieldSet = true;
5887 }
5888 if (("File" == name))
5889 {
5890 this.fileField = value;
5891 this.fileFieldSet = true;
5892 }
5893 if (("Description" == name))
5894 {
5895 this.descriptionField = value;
5896 this.descriptionFieldSet = true;
5897 }
5898 if (("Group" == name))
5899 {
5900 this.groupField = value;
5901 this.groupFieldSet = true;
5902 }
5903 if (("Allow" == name))
5904 {
5905 this.allowField = Enums.ParseYesNoType(value);
5906 this.allowFieldSet = true;
5907 }
5908 if (("UIDeletable" == name))
5909 {
5910 this.uIDeletableField = Enums.ParseYesNoType(value);
5911 this.uIDeletableFieldSet = true;
5912 }
5913 }
5914 }
5915}